sui_rpc/proto/generated/
sui.rpc.v2.field_info.rs

1mod _field_impls {
2    #![allow(clippy::wrong_self_convention)]
3    use super::*;
4    use crate::field::MessageFields;
5    use crate::field::MessageField;
6    impl Argument {
7        pub const KIND_FIELD: &'static MessageField = &MessageField {
8            name: "kind",
9            json_name: "kind",
10            number: 1i32,
11            message_fields: None,
12        };
13        pub const INPUT_FIELD: &'static MessageField = &MessageField {
14            name: "input",
15            json_name: "input",
16            number: 2i32,
17            message_fields: None,
18        };
19        pub const RESULT_FIELD: &'static MessageField = &MessageField {
20            name: "result",
21            json_name: "result",
22            number: 3i32,
23            message_fields: None,
24        };
25        pub const SUBRESULT_FIELD: &'static MessageField = &MessageField {
26            name: "subresult",
27            json_name: "subresult",
28            number: 4i32,
29            message_fields: None,
30        };
31    }
32    impl MessageFields for Argument {
33        const FIELDS: &'static [&'static MessageField] = &[
34            Self::KIND_FIELD,
35            Self::INPUT_FIELD,
36            Self::RESULT_FIELD,
37            Self::SUBRESULT_FIELD,
38        ];
39    }
40    impl Argument {
41        pub fn path_builder() -> ArgumentFieldPathBuilder {
42            ArgumentFieldPathBuilder::new()
43        }
44    }
45    pub struct ArgumentFieldPathBuilder {
46        path: Vec<&'static str>,
47    }
48    impl ArgumentFieldPathBuilder {
49        #[allow(clippy::new_without_default)]
50        pub fn new() -> Self {
51            Self { path: Default::default() }
52        }
53        #[doc(hidden)]
54        pub fn new_with_base(base: Vec<&'static str>) -> Self {
55            Self { path: base }
56        }
57        pub fn finish(self) -> String {
58            self.path.join(".")
59        }
60        pub fn kind(mut self) -> String {
61            self.path.push(Argument::KIND_FIELD.name);
62            self.finish()
63        }
64        pub fn input(mut self) -> String {
65            self.path.push(Argument::INPUT_FIELD.name);
66            self.finish()
67        }
68        pub fn result(mut self) -> String {
69            self.path.push(Argument::RESULT_FIELD.name);
70            self.finish()
71        }
72        pub fn subresult(mut self) -> String {
73            self.path.push(Argument::SUBRESULT_FIELD.name);
74            self.finish()
75        }
76    }
77    impl BalanceChange {
78        pub const ADDRESS_FIELD: &'static MessageField = &MessageField {
79            name: "address",
80            json_name: "address",
81            number: 1i32,
82            message_fields: None,
83        };
84        pub const COIN_TYPE_FIELD: &'static MessageField = &MessageField {
85            name: "coin_type",
86            json_name: "coinType",
87            number: 2i32,
88            message_fields: None,
89        };
90        pub const AMOUNT_FIELD: &'static MessageField = &MessageField {
91            name: "amount",
92            json_name: "amount",
93            number: 3i32,
94            message_fields: None,
95        };
96    }
97    impl MessageFields for BalanceChange {
98        const FIELDS: &'static [&'static MessageField] = &[
99            Self::ADDRESS_FIELD,
100            Self::COIN_TYPE_FIELD,
101            Self::AMOUNT_FIELD,
102        ];
103    }
104    impl BalanceChange {
105        pub fn path_builder() -> BalanceChangeFieldPathBuilder {
106            BalanceChangeFieldPathBuilder::new()
107        }
108    }
109    pub struct BalanceChangeFieldPathBuilder {
110        path: Vec<&'static str>,
111    }
112    impl BalanceChangeFieldPathBuilder {
113        #[allow(clippy::new_without_default)]
114        pub fn new() -> Self {
115            Self { path: Default::default() }
116        }
117        #[doc(hidden)]
118        pub fn new_with_base(base: Vec<&'static str>) -> Self {
119            Self { path: base }
120        }
121        pub fn finish(self) -> String {
122            self.path.join(".")
123        }
124        pub fn address(mut self) -> String {
125            self.path.push(BalanceChange::ADDRESS_FIELD.name);
126            self.finish()
127        }
128        pub fn coin_type(mut self) -> String {
129            self.path.push(BalanceChange::COIN_TYPE_FIELD.name);
130            self.finish()
131        }
132        pub fn amount(mut self) -> String {
133            self.path.push(BalanceChange::AMOUNT_FIELD.name);
134            self.finish()
135        }
136    }
137    impl Bcs {
138        pub const NAME_FIELD: &'static MessageField = &MessageField {
139            name: "name",
140            json_name: "name",
141            number: 1i32,
142            message_fields: None,
143        };
144        pub const VALUE_FIELD: &'static MessageField = &MessageField {
145            name: "value",
146            json_name: "value",
147            number: 2i32,
148            message_fields: None,
149        };
150    }
151    impl MessageFields for Bcs {
152        const FIELDS: &'static [&'static MessageField] = &[
153            Self::NAME_FIELD,
154            Self::VALUE_FIELD,
155        ];
156    }
157    impl Bcs {
158        pub fn path_builder() -> BcsFieldPathBuilder {
159            BcsFieldPathBuilder::new()
160        }
161    }
162    pub struct BcsFieldPathBuilder {
163        path: Vec<&'static str>,
164    }
165    impl BcsFieldPathBuilder {
166        #[allow(clippy::new_without_default)]
167        pub fn new() -> Self {
168            Self { path: Default::default() }
169        }
170        #[doc(hidden)]
171        pub fn new_with_base(base: Vec<&'static str>) -> Self {
172            Self { path: base }
173        }
174        pub fn finish(self) -> String {
175            self.path.join(".")
176        }
177        pub fn name(mut self) -> String {
178            self.path.push(Bcs::NAME_FIELD.name);
179            self.finish()
180        }
181        pub fn value(mut self) -> String {
182            self.path.push(Bcs::VALUE_FIELD.name);
183            self.finish()
184        }
185    }
186    impl Checkpoint {
187        pub const SEQUENCE_NUMBER_FIELD: &'static MessageField = &MessageField {
188            name: "sequence_number",
189            json_name: "sequenceNumber",
190            number: 1i32,
191            message_fields: None,
192        };
193        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
194            name: "digest",
195            json_name: "digest",
196            number: 2i32,
197            message_fields: None,
198        };
199        pub const SUMMARY_FIELD: &'static MessageField = &MessageField {
200            name: "summary",
201            json_name: "summary",
202            number: 3i32,
203            message_fields: Some(CheckpointSummary::FIELDS),
204        };
205        pub const SIGNATURE_FIELD: &'static MessageField = &MessageField {
206            name: "signature",
207            json_name: "signature",
208            number: 4i32,
209            message_fields: Some(ValidatorAggregatedSignature::FIELDS),
210        };
211        pub const CONTENTS_FIELD: &'static MessageField = &MessageField {
212            name: "contents",
213            json_name: "contents",
214            number: 5i32,
215            message_fields: Some(CheckpointContents::FIELDS),
216        };
217        pub const TRANSACTIONS_FIELD: &'static MessageField = &MessageField {
218            name: "transactions",
219            json_name: "transactions",
220            number: 6i32,
221            message_fields: Some(ExecutedTransaction::FIELDS),
222        };
223        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
224            name: "objects",
225            json_name: "objects",
226            number: 7i32,
227            message_fields: Some(ObjectSet::FIELDS),
228        };
229    }
230    impl MessageFields for Checkpoint {
231        const FIELDS: &'static [&'static MessageField] = &[
232            Self::SEQUENCE_NUMBER_FIELD,
233            Self::DIGEST_FIELD,
234            Self::SUMMARY_FIELD,
235            Self::SIGNATURE_FIELD,
236            Self::CONTENTS_FIELD,
237            Self::TRANSACTIONS_FIELD,
238            Self::OBJECTS_FIELD,
239        ];
240    }
241    impl Checkpoint {
242        pub fn path_builder() -> CheckpointFieldPathBuilder {
243            CheckpointFieldPathBuilder::new()
244        }
245    }
246    pub struct CheckpointFieldPathBuilder {
247        path: Vec<&'static str>,
248    }
249    impl CheckpointFieldPathBuilder {
250        #[allow(clippy::new_without_default)]
251        pub fn new() -> Self {
252            Self { path: Default::default() }
253        }
254        #[doc(hidden)]
255        pub fn new_with_base(base: Vec<&'static str>) -> Self {
256            Self { path: base }
257        }
258        pub fn finish(self) -> String {
259            self.path.join(".")
260        }
261        pub fn sequence_number(mut self) -> String {
262            self.path.push(Checkpoint::SEQUENCE_NUMBER_FIELD.name);
263            self.finish()
264        }
265        pub fn digest(mut self) -> String {
266            self.path.push(Checkpoint::DIGEST_FIELD.name);
267            self.finish()
268        }
269        pub fn summary(mut self) -> CheckpointSummaryFieldPathBuilder {
270            self.path.push(Checkpoint::SUMMARY_FIELD.name);
271            CheckpointSummaryFieldPathBuilder::new_with_base(self.path)
272        }
273        pub fn signature(mut self) -> ValidatorAggregatedSignatureFieldPathBuilder {
274            self.path.push(Checkpoint::SIGNATURE_FIELD.name);
275            ValidatorAggregatedSignatureFieldPathBuilder::new_with_base(self.path)
276        }
277        pub fn contents(mut self) -> CheckpointContentsFieldPathBuilder {
278            self.path.push(Checkpoint::CONTENTS_FIELD.name);
279            CheckpointContentsFieldPathBuilder::new_with_base(self.path)
280        }
281        pub fn transactions(mut self) -> ExecutedTransactionFieldPathBuilder {
282            self.path.push(Checkpoint::TRANSACTIONS_FIELD.name);
283            ExecutedTransactionFieldPathBuilder::new_with_base(self.path)
284        }
285        pub fn objects(mut self) -> ObjectSetFieldPathBuilder {
286            self.path.push(Checkpoint::OBJECTS_FIELD.name);
287            ObjectSetFieldPathBuilder::new_with_base(self.path)
288        }
289    }
290    impl CheckpointContents {
291        pub const BCS_FIELD: &'static MessageField = &MessageField {
292            name: "bcs",
293            json_name: "bcs",
294            number: 1i32,
295            message_fields: Some(Bcs::FIELDS),
296        };
297        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
298            name: "digest",
299            json_name: "digest",
300            number: 2i32,
301            message_fields: None,
302        };
303        pub const VERSION_FIELD: &'static MessageField = &MessageField {
304            name: "version",
305            json_name: "version",
306            number: 3i32,
307            message_fields: None,
308        };
309        pub const TRANSACTIONS_FIELD: &'static MessageField = &MessageField {
310            name: "transactions",
311            json_name: "transactions",
312            number: 4i32,
313            message_fields: Some(CheckpointedTransactionInfo::FIELDS),
314        };
315    }
316    impl MessageFields for CheckpointContents {
317        const FIELDS: &'static [&'static MessageField] = &[
318            Self::BCS_FIELD,
319            Self::DIGEST_FIELD,
320            Self::VERSION_FIELD,
321            Self::TRANSACTIONS_FIELD,
322        ];
323    }
324    impl CheckpointContents {
325        pub fn path_builder() -> CheckpointContentsFieldPathBuilder {
326            CheckpointContentsFieldPathBuilder::new()
327        }
328    }
329    pub struct CheckpointContentsFieldPathBuilder {
330        path: Vec<&'static str>,
331    }
332    impl CheckpointContentsFieldPathBuilder {
333        #[allow(clippy::new_without_default)]
334        pub fn new() -> Self {
335            Self { path: Default::default() }
336        }
337        #[doc(hidden)]
338        pub fn new_with_base(base: Vec<&'static str>) -> Self {
339            Self { path: base }
340        }
341        pub fn finish(self) -> String {
342            self.path.join(".")
343        }
344        pub fn bcs(mut self) -> BcsFieldPathBuilder {
345            self.path.push(CheckpointContents::BCS_FIELD.name);
346            BcsFieldPathBuilder::new_with_base(self.path)
347        }
348        pub fn digest(mut self) -> String {
349            self.path.push(CheckpointContents::DIGEST_FIELD.name);
350            self.finish()
351        }
352        pub fn version(mut self) -> String {
353            self.path.push(CheckpointContents::VERSION_FIELD.name);
354            self.finish()
355        }
356        pub fn transactions(mut self) -> CheckpointedTransactionInfoFieldPathBuilder {
357            self.path.push(CheckpointContents::TRANSACTIONS_FIELD.name);
358            CheckpointedTransactionInfoFieldPathBuilder::new_with_base(self.path)
359        }
360    }
361    impl CheckpointedTransactionInfo {
362        pub const TRANSACTION_FIELD: &'static MessageField = &MessageField {
363            name: "transaction",
364            json_name: "transaction",
365            number: 1i32,
366            message_fields: None,
367        };
368        pub const EFFECTS_FIELD: &'static MessageField = &MessageField {
369            name: "effects",
370            json_name: "effects",
371            number: 2i32,
372            message_fields: None,
373        };
374        pub const SIGNATURES_FIELD: &'static MessageField = &MessageField {
375            name: "signatures",
376            json_name: "signatures",
377            number: 3i32,
378            message_fields: Some(UserSignature::FIELDS),
379        };
380        pub const ADDRESS_ALIASES_VERSIONS_FIELD: &'static MessageField = &MessageField {
381            name: "address_aliases_versions",
382            json_name: "addressAliasesVersions",
383            number: 4i32,
384            message_fields: Some(AddressAliasesVersion::FIELDS),
385        };
386    }
387    impl MessageFields for CheckpointedTransactionInfo {
388        const FIELDS: &'static [&'static MessageField] = &[
389            Self::TRANSACTION_FIELD,
390            Self::EFFECTS_FIELD,
391            Self::SIGNATURES_FIELD,
392            Self::ADDRESS_ALIASES_VERSIONS_FIELD,
393        ];
394    }
395    impl CheckpointedTransactionInfo {
396        pub fn path_builder() -> CheckpointedTransactionInfoFieldPathBuilder {
397            CheckpointedTransactionInfoFieldPathBuilder::new()
398        }
399    }
400    pub struct CheckpointedTransactionInfoFieldPathBuilder {
401        path: Vec<&'static str>,
402    }
403    impl CheckpointedTransactionInfoFieldPathBuilder {
404        #[allow(clippy::new_without_default)]
405        pub fn new() -> Self {
406            Self { path: Default::default() }
407        }
408        #[doc(hidden)]
409        pub fn new_with_base(base: Vec<&'static str>) -> Self {
410            Self { path: base }
411        }
412        pub fn finish(self) -> String {
413            self.path.join(".")
414        }
415        pub fn transaction(mut self) -> String {
416            self.path.push(CheckpointedTransactionInfo::TRANSACTION_FIELD.name);
417            self.finish()
418        }
419        pub fn effects(mut self) -> String {
420            self.path.push(CheckpointedTransactionInfo::EFFECTS_FIELD.name);
421            self.finish()
422        }
423        pub fn signatures(mut self) -> UserSignatureFieldPathBuilder {
424            self.path.push(CheckpointedTransactionInfo::SIGNATURES_FIELD.name);
425            UserSignatureFieldPathBuilder::new_with_base(self.path)
426        }
427        pub fn address_aliases_versions(
428            mut self,
429        ) -> AddressAliasesVersionFieldPathBuilder {
430            self.path
431                .push(CheckpointedTransactionInfo::ADDRESS_ALIASES_VERSIONS_FIELD.name);
432            AddressAliasesVersionFieldPathBuilder::new_with_base(self.path)
433        }
434    }
435    impl AddressAliasesVersion {
436        pub const VERSION_FIELD: &'static MessageField = &MessageField {
437            name: "version",
438            json_name: "version",
439            number: 1i32,
440            message_fields: None,
441        };
442    }
443    impl MessageFields for AddressAliasesVersion {
444        const FIELDS: &'static [&'static MessageField] = &[Self::VERSION_FIELD];
445    }
446    impl AddressAliasesVersion {
447        pub fn path_builder() -> AddressAliasesVersionFieldPathBuilder {
448            AddressAliasesVersionFieldPathBuilder::new()
449        }
450    }
451    pub struct AddressAliasesVersionFieldPathBuilder {
452        path: Vec<&'static str>,
453    }
454    impl AddressAliasesVersionFieldPathBuilder {
455        #[allow(clippy::new_without_default)]
456        pub fn new() -> Self {
457            Self { path: Default::default() }
458        }
459        #[doc(hidden)]
460        pub fn new_with_base(base: Vec<&'static str>) -> Self {
461            Self { path: base }
462        }
463        pub fn finish(self) -> String {
464            self.path.join(".")
465        }
466        pub fn version(mut self) -> String {
467            self.path.push(AddressAliasesVersion::VERSION_FIELD.name);
468            self.finish()
469        }
470    }
471    impl CheckpointSummary {
472        pub const BCS_FIELD: &'static MessageField = &MessageField {
473            name: "bcs",
474            json_name: "bcs",
475            number: 1i32,
476            message_fields: Some(Bcs::FIELDS),
477        };
478        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
479            name: "digest",
480            json_name: "digest",
481            number: 2i32,
482            message_fields: None,
483        };
484        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
485            name: "epoch",
486            json_name: "epoch",
487            number: 3i32,
488            message_fields: None,
489        };
490        pub const SEQUENCE_NUMBER_FIELD: &'static MessageField = &MessageField {
491            name: "sequence_number",
492            json_name: "sequenceNumber",
493            number: 4i32,
494            message_fields: None,
495        };
496        pub const TOTAL_NETWORK_TRANSACTIONS_FIELD: &'static MessageField = &MessageField {
497            name: "total_network_transactions",
498            json_name: "totalNetworkTransactions",
499            number: 5i32,
500            message_fields: None,
501        };
502        pub const CONTENT_DIGEST_FIELD: &'static MessageField = &MessageField {
503            name: "content_digest",
504            json_name: "contentDigest",
505            number: 6i32,
506            message_fields: None,
507        };
508        pub const PREVIOUS_DIGEST_FIELD: &'static MessageField = &MessageField {
509            name: "previous_digest",
510            json_name: "previousDigest",
511            number: 7i32,
512            message_fields: None,
513        };
514        pub const EPOCH_ROLLING_GAS_COST_SUMMARY_FIELD: &'static MessageField = &MessageField {
515            name: "epoch_rolling_gas_cost_summary",
516            json_name: "epochRollingGasCostSummary",
517            number: 8i32,
518            message_fields: Some(GasCostSummary::FIELDS),
519        };
520        pub const TIMESTAMP_FIELD: &'static MessageField = &MessageField {
521            name: "timestamp",
522            json_name: "timestamp",
523            number: 9i32,
524            message_fields: None,
525        };
526        pub const COMMITMENTS_FIELD: &'static MessageField = &MessageField {
527            name: "commitments",
528            json_name: "commitments",
529            number: 10i32,
530            message_fields: Some(CheckpointCommitment::FIELDS),
531        };
532        pub const END_OF_EPOCH_DATA_FIELD: &'static MessageField = &MessageField {
533            name: "end_of_epoch_data",
534            json_name: "endOfEpochData",
535            number: 11i32,
536            message_fields: Some(EndOfEpochData::FIELDS),
537        };
538        pub const VERSION_SPECIFIC_DATA_FIELD: &'static MessageField = &MessageField {
539            name: "version_specific_data",
540            json_name: "versionSpecificData",
541            number: 12i32,
542            message_fields: None,
543        };
544    }
545    impl MessageFields for CheckpointSummary {
546        const FIELDS: &'static [&'static MessageField] = &[
547            Self::BCS_FIELD,
548            Self::DIGEST_FIELD,
549            Self::EPOCH_FIELD,
550            Self::SEQUENCE_NUMBER_FIELD,
551            Self::TOTAL_NETWORK_TRANSACTIONS_FIELD,
552            Self::CONTENT_DIGEST_FIELD,
553            Self::PREVIOUS_DIGEST_FIELD,
554            Self::EPOCH_ROLLING_GAS_COST_SUMMARY_FIELD,
555            Self::TIMESTAMP_FIELD,
556            Self::COMMITMENTS_FIELD,
557            Self::END_OF_EPOCH_DATA_FIELD,
558            Self::VERSION_SPECIFIC_DATA_FIELD,
559        ];
560    }
561    impl CheckpointSummary {
562        pub fn path_builder() -> CheckpointSummaryFieldPathBuilder {
563            CheckpointSummaryFieldPathBuilder::new()
564        }
565    }
566    pub struct CheckpointSummaryFieldPathBuilder {
567        path: Vec<&'static str>,
568    }
569    impl CheckpointSummaryFieldPathBuilder {
570        #[allow(clippy::new_without_default)]
571        pub fn new() -> Self {
572            Self { path: Default::default() }
573        }
574        #[doc(hidden)]
575        pub fn new_with_base(base: Vec<&'static str>) -> Self {
576            Self { path: base }
577        }
578        pub fn finish(self) -> String {
579            self.path.join(".")
580        }
581        pub fn bcs(mut self) -> BcsFieldPathBuilder {
582            self.path.push(CheckpointSummary::BCS_FIELD.name);
583            BcsFieldPathBuilder::new_with_base(self.path)
584        }
585        pub fn digest(mut self) -> String {
586            self.path.push(CheckpointSummary::DIGEST_FIELD.name);
587            self.finish()
588        }
589        pub fn epoch(mut self) -> String {
590            self.path.push(CheckpointSummary::EPOCH_FIELD.name);
591            self.finish()
592        }
593        pub fn sequence_number(mut self) -> String {
594            self.path.push(CheckpointSummary::SEQUENCE_NUMBER_FIELD.name);
595            self.finish()
596        }
597        pub fn total_network_transactions(mut self) -> String {
598            self.path.push(CheckpointSummary::TOTAL_NETWORK_TRANSACTIONS_FIELD.name);
599            self.finish()
600        }
601        pub fn content_digest(mut self) -> String {
602            self.path.push(CheckpointSummary::CONTENT_DIGEST_FIELD.name);
603            self.finish()
604        }
605        pub fn previous_digest(mut self) -> String {
606            self.path.push(CheckpointSummary::PREVIOUS_DIGEST_FIELD.name);
607            self.finish()
608        }
609        pub fn epoch_rolling_gas_cost_summary(
610            mut self,
611        ) -> GasCostSummaryFieldPathBuilder {
612            self.path.push(CheckpointSummary::EPOCH_ROLLING_GAS_COST_SUMMARY_FIELD.name);
613            GasCostSummaryFieldPathBuilder::new_with_base(self.path)
614        }
615        pub fn timestamp(mut self) -> String {
616            self.path.push(CheckpointSummary::TIMESTAMP_FIELD.name);
617            self.finish()
618        }
619        pub fn commitments(mut self) -> CheckpointCommitmentFieldPathBuilder {
620            self.path.push(CheckpointSummary::COMMITMENTS_FIELD.name);
621            CheckpointCommitmentFieldPathBuilder::new_with_base(self.path)
622        }
623        pub fn end_of_epoch_data(mut self) -> EndOfEpochDataFieldPathBuilder {
624            self.path.push(CheckpointSummary::END_OF_EPOCH_DATA_FIELD.name);
625            EndOfEpochDataFieldPathBuilder::new_with_base(self.path)
626        }
627        pub fn version_specific_data(mut self) -> String {
628            self.path.push(CheckpointSummary::VERSION_SPECIFIC_DATA_FIELD.name);
629            self.finish()
630        }
631    }
632    impl EndOfEpochData {
633        pub const NEXT_EPOCH_COMMITTEE_FIELD: &'static MessageField = &MessageField {
634            name: "next_epoch_committee",
635            json_name: "nextEpochCommittee",
636            number: 1i32,
637            message_fields: Some(ValidatorCommitteeMember::FIELDS),
638        };
639        pub const NEXT_EPOCH_PROTOCOL_VERSION_FIELD: &'static MessageField = &MessageField {
640            name: "next_epoch_protocol_version",
641            json_name: "nextEpochProtocolVersion",
642            number: 2i32,
643            message_fields: None,
644        };
645        pub const EPOCH_COMMITMENTS_FIELD: &'static MessageField = &MessageField {
646            name: "epoch_commitments",
647            json_name: "epochCommitments",
648            number: 3i32,
649            message_fields: Some(CheckpointCommitment::FIELDS),
650        };
651    }
652    impl MessageFields for EndOfEpochData {
653        const FIELDS: &'static [&'static MessageField] = &[
654            Self::NEXT_EPOCH_COMMITTEE_FIELD,
655            Self::NEXT_EPOCH_PROTOCOL_VERSION_FIELD,
656            Self::EPOCH_COMMITMENTS_FIELD,
657        ];
658    }
659    impl EndOfEpochData {
660        pub fn path_builder() -> EndOfEpochDataFieldPathBuilder {
661            EndOfEpochDataFieldPathBuilder::new()
662        }
663    }
664    pub struct EndOfEpochDataFieldPathBuilder {
665        path: Vec<&'static str>,
666    }
667    impl EndOfEpochDataFieldPathBuilder {
668        #[allow(clippy::new_without_default)]
669        pub fn new() -> Self {
670            Self { path: Default::default() }
671        }
672        #[doc(hidden)]
673        pub fn new_with_base(base: Vec<&'static str>) -> Self {
674            Self { path: base }
675        }
676        pub fn finish(self) -> String {
677            self.path.join(".")
678        }
679        pub fn next_epoch_committee(
680            mut self,
681        ) -> ValidatorCommitteeMemberFieldPathBuilder {
682            self.path.push(EndOfEpochData::NEXT_EPOCH_COMMITTEE_FIELD.name);
683            ValidatorCommitteeMemberFieldPathBuilder::new_with_base(self.path)
684        }
685        pub fn next_epoch_protocol_version(mut self) -> String {
686            self.path.push(EndOfEpochData::NEXT_EPOCH_PROTOCOL_VERSION_FIELD.name);
687            self.finish()
688        }
689        pub fn epoch_commitments(mut self) -> CheckpointCommitmentFieldPathBuilder {
690            self.path.push(EndOfEpochData::EPOCH_COMMITMENTS_FIELD.name);
691            CheckpointCommitmentFieldPathBuilder::new_with_base(self.path)
692        }
693    }
694    impl CheckpointCommitment {
695        pub const KIND_FIELD: &'static MessageField = &MessageField {
696            name: "kind",
697            json_name: "kind",
698            number: 1i32,
699            message_fields: None,
700        };
701        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
702            name: "digest",
703            json_name: "digest",
704            number: 2i32,
705            message_fields: None,
706        };
707    }
708    impl MessageFields for CheckpointCommitment {
709        const FIELDS: &'static [&'static MessageField] = &[
710            Self::KIND_FIELD,
711            Self::DIGEST_FIELD,
712        ];
713    }
714    impl CheckpointCommitment {
715        pub fn path_builder() -> CheckpointCommitmentFieldPathBuilder {
716            CheckpointCommitmentFieldPathBuilder::new()
717        }
718    }
719    pub struct CheckpointCommitmentFieldPathBuilder {
720        path: Vec<&'static str>,
721    }
722    impl CheckpointCommitmentFieldPathBuilder {
723        #[allow(clippy::new_without_default)]
724        pub fn new() -> Self {
725            Self { path: Default::default() }
726        }
727        #[doc(hidden)]
728        pub fn new_with_base(base: Vec<&'static str>) -> Self {
729            Self { path: base }
730        }
731        pub fn finish(self) -> String {
732            self.path.join(".")
733        }
734        pub fn kind(mut self) -> String {
735            self.path.push(CheckpointCommitment::KIND_FIELD.name);
736            self.finish()
737        }
738        pub fn digest(mut self) -> String {
739            self.path.push(CheckpointCommitment::DIGEST_FIELD.name);
740            self.finish()
741        }
742    }
743    impl TransactionEffects {
744        pub const BCS_FIELD: &'static MessageField = &MessageField {
745            name: "bcs",
746            json_name: "bcs",
747            number: 1i32,
748            message_fields: Some(Bcs::FIELDS),
749        };
750        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
751            name: "digest",
752            json_name: "digest",
753            number: 2i32,
754            message_fields: None,
755        };
756        pub const VERSION_FIELD: &'static MessageField = &MessageField {
757            name: "version",
758            json_name: "version",
759            number: 3i32,
760            message_fields: None,
761        };
762        pub const STATUS_FIELD: &'static MessageField = &MessageField {
763            name: "status",
764            json_name: "status",
765            number: 4i32,
766            message_fields: Some(ExecutionStatus::FIELDS),
767        };
768        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
769            name: "epoch",
770            json_name: "epoch",
771            number: 5i32,
772            message_fields: None,
773        };
774        pub const GAS_USED_FIELD: &'static MessageField = &MessageField {
775            name: "gas_used",
776            json_name: "gasUsed",
777            number: 6i32,
778            message_fields: Some(GasCostSummary::FIELDS),
779        };
780        pub const TRANSACTION_DIGEST_FIELD: &'static MessageField = &MessageField {
781            name: "transaction_digest",
782            json_name: "transactionDigest",
783            number: 7i32,
784            message_fields: None,
785        };
786        pub const GAS_OBJECT_FIELD: &'static MessageField = &MessageField {
787            name: "gas_object",
788            json_name: "gasObject",
789            number: 8i32,
790            message_fields: Some(ChangedObject::FIELDS),
791        };
792        pub const EVENTS_DIGEST_FIELD: &'static MessageField = &MessageField {
793            name: "events_digest",
794            json_name: "eventsDigest",
795            number: 9i32,
796            message_fields: None,
797        };
798        pub const DEPENDENCIES_FIELD: &'static MessageField = &MessageField {
799            name: "dependencies",
800            json_name: "dependencies",
801            number: 10i32,
802            message_fields: None,
803        };
804        pub const LAMPORT_VERSION_FIELD: &'static MessageField = &MessageField {
805            name: "lamport_version",
806            json_name: "lamportVersion",
807            number: 11i32,
808            message_fields: None,
809        };
810        pub const CHANGED_OBJECTS_FIELD: &'static MessageField = &MessageField {
811            name: "changed_objects",
812            json_name: "changedObjects",
813            number: 12i32,
814            message_fields: Some(ChangedObject::FIELDS),
815        };
816        pub const UNCHANGED_CONSENSUS_OBJECTS_FIELD: &'static MessageField = &MessageField {
817            name: "unchanged_consensus_objects",
818            json_name: "unchangedConsensusObjects",
819            number: 13i32,
820            message_fields: Some(UnchangedConsensusObject::FIELDS),
821        };
822        pub const AUXILIARY_DATA_DIGEST_FIELD: &'static MessageField = &MessageField {
823            name: "auxiliary_data_digest",
824            json_name: "auxiliaryDataDigest",
825            number: 14i32,
826            message_fields: None,
827        };
828        pub const UNCHANGED_LOADED_RUNTIME_OBJECTS_FIELD: &'static MessageField = &MessageField {
829            name: "unchanged_loaded_runtime_objects",
830            json_name: "unchangedLoadedRuntimeObjects",
831            number: 15i32,
832            message_fields: Some(ObjectReference::FIELDS),
833        };
834    }
835    impl MessageFields for TransactionEffects {
836        const FIELDS: &'static [&'static MessageField] = &[
837            Self::BCS_FIELD,
838            Self::DIGEST_FIELD,
839            Self::VERSION_FIELD,
840            Self::STATUS_FIELD,
841            Self::EPOCH_FIELD,
842            Self::GAS_USED_FIELD,
843            Self::TRANSACTION_DIGEST_FIELD,
844            Self::GAS_OBJECT_FIELD,
845            Self::EVENTS_DIGEST_FIELD,
846            Self::DEPENDENCIES_FIELD,
847            Self::LAMPORT_VERSION_FIELD,
848            Self::CHANGED_OBJECTS_FIELD,
849            Self::UNCHANGED_CONSENSUS_OBJECTS_FIELD,
850            Self::AUXILIARY_DATA_DIGEST_FIELD,
851            Self::UNCHANGED_LOADED_RUNTIME_OBJECTS_FIELD,
852        ];
853    }
854    impl TransactionEffects {
855        pub fn path_builder() -> TransactionEffectsFieldPathBuilder {
856            TransactionEffectsFieldPathBuilder::new()
857        }
858    }
859    pub struct TransactionEffectsFieldPathBuilder {
860        path: Vec<&'static str>,
861    }
862    impl TransactionEffectsFieldPathBuilder {
863        #[allow(clippy::new_without_default)]
864        pub fn new() -> Self {
865            Self { path: Default::default() }
866        }
867        #[doc(hidden)]
868        pub fn new_with_base(base: Vec<&'static str>) -> Self {
869            Self { path: base }
870        }
871        pub fn finish(self) -> String {
872            self.path.join(".")
873        }
874        pub fn bcs(mut self) -> BcsFieldPathBuilder {
875            self.path.push(TransactionEffects::BCS_FIELD.name);
876            BcsFieldPathBuilder::new_with_base(self.path)
877        }
878        pub fn digest(mut self) -> String {
879            self.path.push(TransactionEffects::DIGEST_FIELD.name);
880            self.finish()
881        }
882        pub fn version(mut self) -> String {
883            self.path.push(TransactionEffects::VERSION_FIELD.name);
884            self.finish()
885        }
886        pub fn status(mut self) -> ExecutionStatusFieldPathBuilder {
887            self.path.push(TransactionEffects::STATUS_FIELD.name);
888            ExecutionStatusFieldPathBuilder::new_with_base(self.path)
889        }
890        pub fn epoch(mut self) -> String {
891            self.path.push(TransactionEffects::EPOCH_FIELD.name);
892            self.finish()
893        }
894        pub fn gas_used(mut self) -> GasCostSummaryFieldPathBuilder {
895            self.path.push(TransactionEffects::GAS_USED_FIELD.name);
896            GasCostSummaryFieldPathBuilder::new_with_base(self.path)
897        }
898        pub fn transaction_digest(mut self) -> String {
899            self.path.push(TransactionEffects::TRANSACTION_DIGEST_FIELD.name);
900            self.finish()
901        }
902        pub fn gas_object(mut self) -> ChangedObjectFieldPathBuilder {
903            self.path.push(TransactionEffects::GAS_OBJECT_FIELD.name);
904            ChangedObjectFieldPathBuilder::new_with_base(self.path)
905        }
906        pub fn events_digest(mut self) -> String {
907            self.path.push(TransactionEffects::EVENTS_DIGEST_FIELD.name);
908            self.finish()
909        }
910        pub fn dependencies(mut self) -> String {
911            self.path.push(TransactionEffects::DEPENDENCIES_FIELD.name);
912            self.finish()
913        }
914        pub fn lamport_version(mut self) -> String {
915            self.path.push(TransactionEffects::LAMPORT_VERSION_FIELD.name);
916            self.finish()
917        }
918        pub fn changed_objects(mut self) -> ChangedObjectFieldPathBuilder {
919            self.path.push(TransactionEffects::CHANGED_OBJECTS_FIELD.name);
920            ChangedObjectFieldPathBuilder::new_with_base(self.path)
921        }
922        pub fn unchanged_consensus_objects(
923            mut self,
924        ) -> UnchangedConsensusObjectFieldPathBuilder {
925            self.path.push(TransactionEffects::UNCHANGED_CONSENSUS_OBJECTS_FIELD.name);
926            UnchangedConsensusObjectFieldPathBuilder::new_with_base(self.path)
927        }
928        pub fn auxiliary_data_digest(mut self) -> String {
929            self.path.push(TransactionEffects::AUXILIARY_DATA_DIGEST_FIELD.name);
930            self.finish()
931        }
932        pub fn unchanged_loaded_runtime_objects(
933            mut self,
934        ) -> ObjectReferenceFieldPathBuilder {
935            self.path
936                .push(TransactionEffects::UNCHANGED_LOADED_RUNTIME_OBJECTS_FIELD.name);
937            ObjectReferenceFieldPathBuilder::new_with_base(self.path)
938        }
939    }
940    impl ChangedObject {
941        pub const OBJECT_ID_FIELD: &'static MessageField = &MessageField {
942            name: "object_id",
943            json_name: "objectId",
944            number: 1i32,
945            message_fields: None,
946        };
947        pub const INPUT_STATE_FIELD: &'static MessageField = &MessageField {
948            name: "input_state",
949            json_name: "inputState",
950            number: 2i32,
951            message_fields: None,
952        };
953        pub const INPUT_VERSION_FIELD: &'static MessageField = &MessageField {
954            name: "input_version",
955            json_name: "inputVersion",
956            number: 3i32,
957            message_fields: None,
958        };
959        pub const INPUT_DIGEST_FIELD: &'static MessageField = &MessageField {
960            name: "input_digest",
961            json_name: "inputDigest",
962            number: 4i32,
963            message_fields: None,
964        };
965        pub const INPUT_OWNER_FIELD: &'static MessageField = &MessageField {
966            name: "input_owner",
967            json_name: "inputOwner",
968            number: 5i32,
969            message_fields: Some(Owner::FIELDS),
970        };
971        pub const OUTPUT_STATE_FIELD: &'static MessageField = &MessageField {
972            name: "output_state",
973            json_name: "outputState",
974            number: 6i32,
975            message_fields: None,
976        };
977        pub const OUTPUT_VERSION_FIELD: &'static MessageField = &MessageField {
978            name: "output_version",
979            json_name: "outputVersion",
980            number: 7i32,
981            message_fields: None,
982        };
983        pub const OUTPUT_DIGEST_FIELD: &'static MessageField = &MessageField {
984            name: "output_digest",
985            json_name: "outputDigest",
986            number: 8i32,
987            message_fields: None,
988        };
989        pub const OUTPUT_OWNER_FIELD: &'static MessageField = &MessageField {
990            name: "output_owner",
991            json_name: "outputOwner",
992            number: 9i32,
993            message_fields: Some(Owner::FIELDS),
994        };
995        pub const ACCUMULATOR_WRITE_FIELD: &'static MessageField = &MessageField {
996            name: "accumulator_write",
997            json_name: "accumulatorWrite",
998            number: 12i32,
999            message_fields: Some(AccumulatorWrite::FIELDS),
1000        };
1001        pub const ID_OPERATION_FIELD: &'static MessageField = &MessageField {
1002            name: "id_operation",
1003            json_name: "idOperation",
1004            number: 10i32,
1005            message_fields: None,
1006        };
1007        pub const OBJECT_TYPE_FIELD: &'static MessageField = &MessageField {
1008            name: "object_type",
1009            json_name: "objectType",
1010            number: 11i32,
1011            message_fields: None,
1012        };
1013    }
1014    impl MessageFields for ChangedObject {
1015        const FIELDS: &'static [&'static MessageField] = &[
1016            Self::OBJECT_ID_FIELD,
1017            Self::INPUT_STATE_FIELD,
1018            Self::INPUT_VERSION_FIELD,
1019            Self::INPUT_DIGEST_FIELD,
1020            Self::INPUT_OWNER_FIELD,
1021            Self::OUTPUT_STATE_FIELD,
1022            Self::OUTPUT_VERSION_FIELD,
1023            Self::OUTPUT_DIGEST_FIELD,
1024            Self::OUTPUT_OWNER_FIELD,
1025            Self::ACCUMULATOR_WRITE_FIELD,
1026            Self::ID_OPERATION_FIELD,
1027            Self::OBJECT_TYPE_FIELD,
1028        ];
1029    }
1030    impl ChangedObject {
1031        pub fn path_builder() -> ChangedObjectFieldPathBuilder {
1032            ChangedObjectFieldPathBuilder::new()
1033        }
1034    }
1035    pub struct ChangedObjectFieldPathBuilder {
1036        path: Vec<&'static str>,
1037    }
1038    impl ChangedObjectFieldPathBuilder {
1039        #[allow(clippy::new_without_default)]
1040        pub fn new() -> Self {
1041            Self { path: Default::default() }
1042        }
1043        #[doc(hidden)]
1044        pub fn new_with_base(base: Vec<&'static str>) -> Self {
1045            Self { path: base }
1046        }
1047        pub fn finish(self) -> String {
1048            self.path.join(".")
1049        }
1050        pub fn object_id(mut self) -> String {
1051            self.path.push(ChangedObject::OBJECT_ID_FIELD.name);
1052            self.finish()
1053        }
1054        pub fn input_state(mut self) -> String {
1055            self.path.push(ChangedObject::INPUT_STATE_FIELD.name);
1056            self.finish()
1057        }
1058        pub fn input_version(mut self) -> String {
1059            self.path.push(ChangedObject::INPUT_VERSION_FIELD.name);
1060            self.finish()
1061        }
1062        pub fn input_digest(mut self) -> String {
1063            self.path.push(ChangedObject::INPUT_DIGEST_FIELD.name);
1064            self.finish()
1065        }
1066        pub fn input_owner(mut self) -> OwnerFieldPathBuilder {
1067            self.path.push(ChangedObject::INPUT_OWNER_FIELD.name);
1068            OwnerFieldPathBuilder::new_with_base(self.path)
1069        }
1070        pub fn output_state(mut self) -> String {
1071            self.path.push(ChangedObject::OUTPUT_STATE_FIELD.name);
1072            self.finish()
1073        }
1074        pub fn output_version(mut self) -> String {
1075            self.path.push(ChangedObject::OUTPUT_VERSION_FIELD.name);
1076            self.finish()
1077        }
1078        pub fn output_digest(mut self) -> String {
1079            self.path.push(ChangedObject::OUTPUT_DIGEST_FIELD.name);
1080            self.finish()
1081        }
1082        pub fn output_owner(mut self) -> OwnerFieldPathBuilder {
1083            self.path.push(ChangedObject::OUTPUT_OWNER_FIELD.name);
1084            OwnerFieldPathBuilder::new_with_base(self.path)
1085        }
1086        pub fn accumulator_write(mut self) -> AccumulatorWriteFieldPathBuilder {
1087            self.path.push(ChangedObject::ACCUMULATOR_WRITE_FIELD.name);
1088            AccumulatorWriteFieldPathBuilder::new_with_base(self.path)
1089        }
1090        pub fn id_operation(mut self) -> String {
1091            self.path.push(ChangedObject::ID_OPERATION_FIELD.name);
1092            self.finish()
1093        }
1094        pub fn object_type(mut self) -> String {
1095            self.path.push(ChangedObject::OBJECT_TYPE_FIELD.name);
1096            self.finish()
1097        }
1098    }
1099    impl AccumulatorWrite {
1100        pub const ADDRESS_FIELD: &'static MessageField = &MessageField {
1101            name: "address",
1102            json_name: "address",
1103            number: 1i32,
1104            message_fields: None,
1105        };
1106        pub const ACCUMULATOR_TYPE_FIELD: &'static MessageField = &MessageField {
1107            name: "accumulator_type",
1108            json_name: "accumulatorType",
1109            number: 2i32,
1110            message_fields: None,
1111        };
1112        pub const OPERATION_FIELD: &'static MessageField = &MessageField {
1113            name: "operation",
1114            json_name: "operation",
1115            number: 3i32,
1116            message_fields: None,
1117        };
1118        pub const VALUE_FIELD: &'static MessageField = &MessageField {
1119            name: "value",
1120            json_name: "value",
1121            number: 5i32,
1122            message_fields: None,
1123        };
1124    }
1125    impl MessageFields for AccumulatorWrite {
1126        const FIELDS: &'static [&'static MessageField] = &[
1127            Self::ADDRESS_FIELD,
1128            Self::ACCUMULATOR_TYPE_FIELD,
1129            Self::OPERATION_FIELD,
1130            Self::VALUE_FIELD,
1131        ];
1132    }
1133    impl AccumulatorWrite {
1134        pub fn path_builder() -> AccumulatorWriteFieldPathBuilder {
1135            AccumulatorWriteFieldPathBuilder::new()
1136        }
1137    }
1138    pub struct AccumulatorWriteFieldPathBuilder {
1139        path: Vec<&'static str>,
1140    }
1141    impl AccumulatorWriteFieldPathBuilder {
1142        #[allow(clippy::new_without_default)]
1143        pub fn new() -> Self {
1144            Self { path: Default::default() }
1145        }
1146        #[doc(hidden)]
1147        pub fn new_with_base(base: Vec<&'static str>) -> Self {
1148            Self { path: base }
1149        }
1150        pub fn finish(self) -> String {
1151            self.path.join(".")
1152        }
1153        pub fn address(mut self) -> String {
1154            self.path.push(AccumulatorWrite::ADDRESS_FIELD.name);
1155            self.finish()
1156        }
1157        pub fn accumulator_type(mut self) -> String {
1158            self.path.push(AccumulatorWrite::ACCUMULATOR_TYPE_FIELD.name);
1159            self.finish()
1160        }
1161        pub fn operation(mut self) -> String {
1162            self.path.push(AccumulatorWrite::OPERATION_FIELD.name);
1163            self.finish()
1164        }
1165        pub fn value(mut self) -> String {
1166            self.path.push(AccumulatorWrite::VALUE_FIELD.name);
1167            self.finish()
1168        }
1169    }
1170    impl UnchangedConsensusObject {
1171        pub const KIND_FIELD: &'static MessageField = &MessageField {
1172            name: "kind",
1173            json_name: "kind",
1174            number: 1i32,
1175            message_fields: None,
1176        };
1177        pub const OBJECT_ID_FIELD: &'static MessageField = &MessageField {
1178            name: "object_id",
1179            json_name: "objectId",
1180            number: 2i32,
1181            message_fields: None,
1182        };
1183        pub const VERSION_FIELD: &'static MessageField = &MessageField {
1184            name: "version",
1185            json_name: "version",
1186            number: 3i32,
1187            message_fields: None,
1188        };
1189        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
1190            name: "digest",
1191            json_name: "digest",
1192            number: 4i32,
1193            message_fields: None,
1194        };
1195        pub const OBJECT_TYPE_FIELD: &'static MessageField = &MessageField {
1196            name: "object_type",
1197            json_name: "objectType",
1198            number: 5i32,
1199            message_fields: None,
1200        };
1201    }
1202    impl MessageFields for UnchangedConsensusObject {
1203        const FIELDS: &'static [&'static MessageField] = &[
1204            Self::KIND_FIELD,
1205            Self::OBJECT_ID_FIELD,
1206            Self::VERSION_FIELD,
1207            Self::DIGEST_FIELD,
1208            Self::OBJECT_TYPE_FIELD,
1209        ];
1210    }
1211    impl UnchangedConsensusObject {
1212        pub fn path_builder() -> UnchangedConsensusObjectFieldPathBuilder {
1213            UnchangedConsensusObjectFieldPathBuilder::new()
1214        }
1215    }
1216    pub struct UnchangedConsensusObjectFieldPathBuilder {
1217        path: Vec<&'static str>,
1218    }
1219    impl UnchangedConsensusObjectFieldPathBuilder {
1220        #[allow(clippy::new_without_default)]
1221        pub fn new() -> Self {
1222            Self { path: Default::default() }
1223        }
1224        #[doc(hidden)]
1225        pub fn new_with_base(base: Vec<&'static str>) -> Self {
1226            Self { path: base }
1227        }
1228        pub fn finish(self) -> String {
1229            self.path.join(".")
1230        }
1231        pub fn kind(mut self) -> String {
1232            self.path.push(UnchangedConsensusObject::KIND_FIELD.name);
1233            self.finish()
1234        }
1235        pub fn object_id(mut self) -> String {
1236            self.path.push(UnchangedConsensusObject::OBJECT_ID_FIELD.name);
1237            self.finish()
1238        }
1239        pub fn version(mut self) -> String {
1240            self.path.push(UnchangedConsensusObject::VERSION_FIELD.name);
1241            self.finish()
1242        }
1243        pub fn digest(mut self) -> String {
1244            self.path.push(UnchangedConsensusObject::DIGEST_FIELD.name);
1245            self.finish()
1246        }
1247        pub fn object_type(mut self) -> String {
1248            self.path.push(UnchangedConsensusObject::OBJECT_TYPE_FIELD.name);
1249            self.finish()
1250        }
1251    }
1252    impl Epoch {
1253        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
1254            name: "epoch",
1255            json_name: "epoch",
1256            number: 1i32,
1257            message_fields: None,
1258        };
1259        pub const COMMITTEE_FIELD: &'static MessageField = &MessageField {
1260            name: "committee",
1261            json_name: "committee",
1262            number: 2i32,
1263            message_fields: Some(ValidatorCommittee::FIELDS),
1264        };
1265        pub const SYSTEM_STATE_FIELD: &'static MessageField = &MessageField {
1266            name: "system_state",
1267            json_name: "systemState",
1268            number: 3i32,
1269            message_fields: Some(SystemState::FIELDS),
1270        };
1271        pub const FIRST_CHECKPOINT_FIELD: &'static MessageField = &MessageField {
1272            name: "first_checkpoint",
1273            json_name: "firstCheckpoint",
1274            number: 4i32,
1275            message_fields: None,
1276        };
1277        pub const LAST_CHECKPOINT_FIELD: &'static MessageField = &MessageField {
1278            name: "last_checkpoint",
1279            json_name: "lastCheckpoint",
1280            number: 5i32,
1281            message_fields: None,
1282        };
1283        pub const START_FIELD: &'static MessageField = &MessageField {
1284            name: "start",
1285            json_name: "start",
1286            number: 6i32,
1287            message_fields: None,
1288        };
1289        pub const END_FIELD: &'static MessageField = &MessageField {
1290            name: "end",
1291            json_name: "end",
1292            number: 7i32,
1293            message_fields: None,
1294        };
1295        pub const REFERENCE_GAS_PRICE_FIELD: &'static MessageField = &MessageField {
1296            name: "reference_gas_price",
1297            json_name: "referenceGasPrice",
1298            number: 8i32,
1299            message_fields: None,
1300        };
1301        pub const PROTOCOL_CONFIG_FIELD: &'static MessageField = &MessageField {
1302            name: "protocol_config",
1303            json_name: "protocolConfig",
1304            number: 9i32,
1305            message_fields: Some(ProtocolConfig::FIELDS),
1306        };
1307    }
1308    impl MessageFields for Epoch {
1309        const FIELDS: &'static [&'static MessageField] = &[
1310            Self::EPOCH_FIELD,
1311            Self::COMMITTEE_FIELD,
1312            Self::SYSTEM_STATE_FIELD,
1313            Self::FIRST_CHECKPOINT_FIELD,
1314            Self::LAST_CHECKPOINT_FIELD,
1315            Self::START_FIELD,
1316            Self::END_FIELD,
1317            Self::REFERENCE_GAS_PRICE_FIELD,
1318            Self::PROTOCOL_CONFIG_FIELD,
1319        ];
1320    }
1321    impl Epoch {
1322        pub fn path_builder() -> EpochFieldPathBuilder {
1323            EpochFieldPathBuilder::new()
1324        }
1325    }
1326    pub struct EpochFieldPathBuilder {
1327        path: Vec<&'static str>,
1328    }
1329    impl EpochFieldPathBuilder {
1330        #[allow(clippy::new_without_default)]
1331        pub fn new() -> Self {
1332            Self { path: Default::default() }
1333        }
1334        #[doc(hidden)]
1335        pub fn new_with_base(base: Vec<&'static str>) -> Self {
1336            Self { path: base }
1337        }
1338        pub fn finish(self) -> String {
1339            self.path.join(".")
1340        }
1341        pub fn epoch(mut self) -> String {
1342            self.path.push(Epoch::EPOCH_FIELD.name);
1343            self.finish()
1344        }
1345        pub fn committee(mut self) -> ValidatorCommitteeFieldPathBuilder {
1346            self.path.push(Epoch::COMMITTEE_FIELD.name);
1347            ValidatorCommitteeFieldPathBuilder::new_with_base(self.path)
1348        }
1349        pub fn system_state(mut self) -> SystemStateFieldPathBuilder {
1350            self.path.push(Epoch::SYSTEM_STATE_FIELD.name);
1351            SystemStateFieldPathBuilder::new_with_base(self.path)
1352        }
1353        pub fn first_checkpoint(mut self) -> String {
1354            self.path.push(Epoch::FIRST_CHECKPOINT_FIELD.name);
1355            self.finish()
1356        }
1357        pub fn last_checkpoint(mut self) -> String {
1358            self.path.push(Epoch::LAST_CHECKPOINT_FIELD.name);
1359            self.finish()
1360        }
1361        pub fn start(mut self) -> String {
1362            self.path.push(Epoch::START_FIELD.name);
1363            self.finish()
1364        }
1365        pub fn end(mut self) -> String {
1366            self.path.push(Epoch::END_FIELD.name);
1367            self.finish()
1368        }
1369        pub fn reference_gas_price(mut self) -> String {
1370            self.path.push(Epoch::REFERENCE_GAS_PRICE_FIELD.name);
1371            self.finish()
1372        }
1373        pub fn protocol_config(mut self) -> ProtocolConfigFieldPathBuilder {
1374            self.path.push(Epoch::PROTOCOL_CONFIG_FIELD.name);
1375            ProtocolConfigFieldPathBuilder::new_with_base(self.path)
1376        }
1377    }
1378    impl TransactionEvents {
1379        pub const BCS_FIELD: &'static MessageField = &MessageField {
1380            name: "bcs",
1381            json_name: "bcs",
1382            number: 1i32,
1383            message_fields: Some(Bcs::FIELDS),
1384        };
1385        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
1386            name: "digest",
1387            json_name: "digest",
1388            number: 2i32,
1389            message_fields: None,
1390        };
1391        pub const EVENTS_FIELD: &'static MessageField = &MessageField {
1392            name: "events",
1393            json_name: "events",
1394            number: 3i32,
1395            message_fields: Some(Event::FIELDS),
1396        };
1397    }
1398    impl MessageFields for TransactionEvents {
1399        const FIELDS: &'static [&'static MessageField] = &[
1400            Self::BCS_FIELD,
1401            Self::DIGEST_FIELD,
1402            Self::EVENTS_FIELD,
1403        ];
1404    }
1405    impl TransactionEvents {
1406        pub fn path_builder() -> TransactionEventsFieldPathBuilder {
1407            TransactionEventsFieldPathBuilder::new()
1408        }
1409    }
1410    pub struct TransactionEventsFieldPathBuilder {
1411        path: Vec<&'static str>,
1412    }
1413    impl TransactionEventsFieldPathBuilder {
1414        #[allow(clippy::new_without_default)]
1415        pub fn new() -> Self {
1416            Self { path: Default::default() }
1417        }
1418        #[doc(hidden)]
1419        pub fn new_with_base(base: Vec<&'static str>) -> Self {
1420            Self { path: base }
1421        }
1422        pub fn finish(self) -> String {
1423            self.path.join(".")
1424        }
1425        pub fn bcs(mut self) -> BcsFieldPathBuilder {
1426            self.path.push(TransactionEvents::BCS_FIELD.name);
1427            BcsFieldPathBuilder::new_with_base(self.path)
1428        }
1429        pub fn digest(mut self) -> String {
1430            self.path.push(TransactionEvents::DIGEST_FIELD.name);
1431            self.finish()
1432        }
1433        pub fn events(mut self) -> EventFieldPathBuilder {
1434            self.path.push(TransactionEvents::EVENTS_FIELD.name);
1435            EventFieldPathBuilder::new_with_base(self.path)
1436        }
1437    }
1438    impl Event {
1439        pub const PACKAGE_ID_FIELD: &'static MessageField = &MessageField {
1440            name: "package_id",
1441            json_name: "packageId",
1442            number: 1i32,
1443            message_fields: None,
1444        };
1445        pub const MODULE_FIELD: &'static MessageField = &MessageField {
1446            name: "module",
1447            json_name: "module",
1448            number: 2i32,
1449            message_fields: None,
1450        };
1451        pub const SENDER_FIELD: &'static MessageField = &MessageField {
1452            name: "sender",
1453            json_name: "sender",
1454            number: 3i32,
1455            message_fields: None,
1456        };
1457        pub const EVENT_TYPE_FIELD: &'static MessageField = &MessageField {
1458            name: "event_type",
1459            json_name: "eventType",
1460            number: 4i32,
1461            message_fields: None,
1462        };
1463        pub const CONTENTS_FIELD: &'static MessageField = &MessageField {
1464            name: "contents",
1465            json_name: "contents",
1466            number: 5i32,
1467            message_fields: Some(Bcs::FIELDS),
1468        };
1469        pub const JSON_FIELD: &'static MessageField = &MessageField {
1470            name: "json",
1471            json_name: "json",
1472            number: 6i32,
1473            message_fields: None,
1474        };
1475    }
1476    impl MessageFields for Event {
1477        const FIELDS: &'static [&'static MessageField] = &[
1478            Self::PACKAGE_ID_FIELD,
1479            Self::MODULE_FIELD,
1480            Self::SENDER_FIELD,
1481            Self::EVENT_TYPE_FIELD,
1482            Self::CONTENTS_FIELD,
1483            Self::JSON_FIELD,
1484        ];
1485    }
1486    impl Event {
1487        pub fn path_builder() -> EventFieldPathBuilder {
1488            EventFieldPathBuilder::new()
1489        }
1490    }
1491    pub struct EventFieldPathBuilder {
1492        path: Vec<&'static str>,
1493    }
1494    impl EventFieldPathBuilder {
1495        #[allow(clippy::new_without_default)]
1496        pub fn new() -> Self {
1497            Self { path: Default::default() }
1498        }
1499        #[doc(hidden)]
1500        pub fn new_with_base(base: Vec<&'static str>) -> Self {
1501            Self { path: base }
1502        }
1503        pub fn finish(self) -> String {
1504            self.path.join(".")
1505        }
1506        pub fn package_id(mut self) -> String {
1507            self.path.push(Event::PACKAGE_ID_FIELD.name);
1508            self.finish()
1509        }
1510        pub fn module(mut self) -> String {
1511            self.path.push(Event::MODULE_FIELD.name);
1512            self.finish()
1513        }
1514        pub fn sender(mut self) -> String {
1515            self.path.push(Event::SENDER_FIELD.name);
1516            self.finish()
1517        }
1518        pub fn event_type(mut self) -> String {
1519            self.path.push(Event::EVENT_TYPE_FIELD.name);
1520            self.finish()
1521        }
1522        pub fn contents(mut self) -> BcsFieldPathBuilder {
1523            self.path.push(Event::CONTENTS_FIELD.name);
1524            BcsFieldPathBuilder::new_with_base(self.path)
1525        }
1526        pub fn json(mut self) -> String {
1527            self.path.push(Event::JSON_FIELD.name);
1528            self.finish()
1529        }
1530    }
1531    impl ExecutedTransaction {
1532        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
1533            name: "digest",
1534            json_name: "digest",
1535            number: 1i32,
1536            message_fields: None,
1537        };
1538        pub const TRANSACTION_FIELD: &'static MessageField = &MessageField {
1539            name: "transaction",
1540            json_name: "transaction",
1541            number: 2i32,
1542            message_fields: Some(Transaction::FIELDS),
1543        };
1544        pub const SIGNATURES_FIELD: &'static MessageField = &MessageField {
1545            name: "signatures",
1546            json_name: "signatures",
1547            number: 3i32,
1548            message_fields: Some(UserSignature::FIELDS),
1549        };
1550        pub const EFFECTS_FIELD: &'static MessageField = &MessageField {
1551            name: "effects",
1552            json_name: "effects",
1553            number: 4i32,
1554            message_fields: Some(TransactionEffects::FIELDS),
1555        };
1556        pub const EVENTS_FIELD: &'static MessageField = &MessageField {
1557            name: "events",
1558            json_name: "events",
1559            number: 5i32,
1560            message_fields: Some(TransactionEvents::FIELDS),
1561        };
1562        pub const CHECKPOINT_FIELD: &'static MessageField = &MessageField {
1563            name: "checkpoint",
1564            json_name: "checkpoint",
1565            number: 6i32,
1566            message_fields: None,
1567        };
1568        pub const TIMESTAMP_FIELD: &'static MessageField = &MessageField {
1569            name: "timestamp",
1570            json_name: "timestamp",
1571            number: 7i32,
1572            message_fields: None,
1573        };
1574        pub const BALANCE_CHANGES_FIELD: &'static MessageField = &MessageField {
1575            name: "balance_changes",
1576            json_name: "balanceChanges",
1577            number: 8i32,
1578            message_fields: Some(BalanceChange::FIELDS),
1579        };
1580        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
1581            name: "objects",
1582            json_name: "objects",
1583            number: 9i32,
1584            message_fields: Some(ObjectSet::FIELDS),
1585        };
1586    }
1587    impl MessageFields for ExecutedTransaction {
1588        const FIELDS: &'static [&'static MessageField] = &[
1589            Self::DIGEST_FIELD,
1590            Self::TRANSACTION_FIELD,
1591            Self::SIGNATURES_FIELD,
1592            Self::EFFECTS_FIELD,
1593            Self::EVENTS_FIELD,
1594            Self::CHECKPOINT_FIELD,
1595            Self::TIMESTAMP_FIELD,
1596            Self::BALANCE_CHANGES_FIELD,
1597            Self::OBJECTS_FIELD,
1598        ];
1599    }
1600    impl ExecutedTransaction {
1601        pub fn path_builder() -> ExecutedTransactionFieldPathBuilder {
1602            ExecutedTransactionFieldPathBuilder::new()
1603        }
1604    }
1605    pub struct ExecutedTransactionFieldPathBuilder {
1606        path: Vec<&'static str>,
1607    }
1608    impl ExecutedTransactionFieldPathBuilder {
1609        #[allow(clippy::new_without_default)]
1610        pub fn new() -> Self {
1611            Self { path: Default::default() }
1612        }
1613        #[doc(hidden)]
1614        pub fn new_with_base(base: Vec<&'static str>) -> Self {
1615            Self { path: base }
1616        }
1617        pub fn finish(self) -> String {
1618            self.path.join(".")
1619        }
1620        pub fn digest(mut self) -> String {
1621            self.path.push(ExecutedTransaction::DIGEST_FIELD.name);
1622            self.finish()
1623        }
1624        pub fn transaction(mut self) -> TransactionFieldPathBuilder {
1625            self.path.push(ExecutedTransaction::TRANSACTION_FIELD.name);
1626            TransactionFieldPathBuilder::new_with_base(self.path)
1627        }
1628        pub fn signatures(mut self) -> UserSignatureFieldPathBuilder {
1629            self.path.push(ExecutedTransaction::SIGNATURES_FIELD.name);
1630            UserSignatureFieldPathBuilder::new_with_base(self.path)
1631        }
1632        pub fn effects(mut self) -> TransactionEffectsFieldPathBuilder {
1633            self.path.push(ExecutedTransaction::EFFECTS_FIELD.name);
1634            TransactionEffectsFieldPathBuilder::new_with_base(self.path)
1635        }
1636        pub fn events(mut self) -> TransactionEventsFieldPathBuilder {
1637            self.path.push(ExecutedTransaction::EVENTS_FIELD.name);
1638            TransactionEventsFieldPathBuilder::new_with_base(self.path)
1639        }
1640        pub fn checkpoint(mut self) -> String {
1641            self.path.push(ExecutedTransaction::CHECKPOINT_FIELD.name);
1642            self.finish()
1643        }
1644        pub fn timestamp(mut self) -> String {
1645            self.path.push(ExecutedTransaction::TIMESTAMP_FIELD.name);
1646            self.finish()
1647        }
1648        pub fn balance_changes(mut self) -> BalanceChangeFieldPathBuilder {
1649            self.path.push(ExecutedTransaction::BALANCE_CHANGES_FIELD.name);
1650            BalanceChangeFieldPathBuilder::new_with_base(self.path)
1651        }
1652        pub fn objects(mut self) -> ObjectSetFieldPathBuilder {
1653            self.path.push(ExecutedTransaction::OBJECTS_FIELD.name);
1654            ObjectSetFieldPathBuilder::new_with_base(self.path)
1655        }
1656    }
1657    impl ExecutionStatus {
1658        pub const SUCCESS_FIELD: &'static MessageField = &MessageField {
1659            name: "success",
1660            json_name: "success",
1661            number: 1i32,
1662            message_fields: None,
1663        };
1664        pub const ERROR_FIELD: &'static MessageField = &MessageField {
1665            name: "error",
1666            json_name: "error",
1667            number: 2i32,
1668            message_fields: Some(ExecutionError::FIELDS),
1669        };
1670    }
1671    impl MessageFields for ExecutionStatus {
1672        const FIELDS: &'static [&'static MessageField] = &[
1673            Self::SUCCESS_FIELD,
1674            Self::ERROR_FIELD,
1675        ];
1676    }
1677    impl ExecutionStatus {
1678        pub fn path_builder() -> ExecutionStatusFieldPathBuilder {
1679            ExecutionStatusFieldPathBuilder::new()
1680        }
1681    }
1682    pub struct ExecutionStatusFieldPathBuilder {
1683        path: Vec<&'static str>,
1684    }
1685    impl ExecutionStatusFieldPathBuilder {
1686        #[allow(clippy::new_without_default)]
1687        pub fn new() -> Self {
1688            Self { path: Default::default() }
1689        }
1690        #[doc(hidden)]
1691        pub fn new_with_base(base: Vec<&'static str>) -> Self {
1692            Self { path: base }
1693        }
1694        pub fn finish(self) -> String {
1695            self.path.join(".")
1696        }
1697        pub fn success(mut self) -> String {
1698            self.path.push(ExecutionStatus::SUCCESS_FIELD.name);
1699            self.finish()
1700        }
1701        pub fn error(mut self) -> ExecutionErrorFieldPathBuilder {
1702            self.path.push(ExecutionStatus::ERROR_FIELD.name);
1703            ExecutionErrorFieldPathBuilder::new_with_base(self.path)
1704        }
1705    }
1706    impl ExecutionError {
1707        pub const DESCRIPTION_FIELD: &'static MessageField = &MessageField {
1708            name: "description",
1709            json_name: "description",
1710            number: 1i32,
1711            message_fields: None,
1712        };
1713        pub const COMMAND_FIELD: &'static MessageField = &MessageField {
1714            name: "command",
1715            json_name: "command",
1716            number: 2i32,
1717            message_fields: None,
1718        };
1719        pub const KIND_FIELD: &'static MessageField = &MessageField {
1720            name: "kind",
1721            json_name: "kind",
1722            number: 3i32,
1723            message_fields: None,
1724        };
1725        pub const ABORT_FIELD: &'static MessageField = &MessageField {
1726            name: "abort",
1727            json_name: "abort",
1728            number: 4i32,
1729            message_fields: Some(MoveAbort::FIELDS),
1730        };
1731        pub const SIZE_ERROR_FIELD: &'static MessageField = &MessageField {
1732            name: "size_error",
1733            json_name: "sizeError",
1734            number: 5i32,
1735            message_fields: Some(SizeError::FIELDS),
1736        };
1737        pub const COMMAND_ARGUMENT_ERROR_FIELD: &'static MessageField = &MessageField {
1738            name: "command_argument_error",
1739            json_name: "commandArgumentError",
1740            number: 6i32,
1741            message_fields: Some(CommandArgumentError::FIELDS),
1742        };
1743        pub const TYPE_ARGUMENT_ERROR_FIELD: &'static MessageField = &MessageField {
1744            name: "type_argument_error",
1745            json_name: "typeArgumentError",
1746            number: 7i32,
1747            message_fields: Some(TypeArgumentError::FIELDS),
1748        };
1749        pub const PACKAGE_UPGRADE_ERROR_FIELD: &'static MessageField = &MessageField {
1750            name: "package_upgrade_error",
1751            json_name: "packageUpgradeError",
1752            number: 8i32,
1753            message_fields: Some(PackageUpgradeError::FIELDS),
1754        };
1755        pub const INDEX_ERROR_FIELD: &'static MessageField = &MessageField {
1756            name: "index_error",
1757            json_name: "indexError",
1758            number: 9i32,
1759            message_fields: Some(IndexError::FIELDS),
1760        };
1761        pub const OBJECT_ID_FIELD: &'static MessageField = &MessageField {
1762            name: "object_id",
1763            json_name: "objectId",
1764            number: 10i32,
1765            message_fields: None,
1766        };
1767        pub const COIN_DENY_LIST_ERROR_FIELD: &'static MessageField = &MessageField {
1768            name: "coin_deny_list_error",
1769            json_name: "coinDenyListError",
1770            number: 11i32,
1771            message_fields: Some(CoinDenyListError::FIELDS),
1772        };
1773        pub const CONGESTED_OBJECTS_FIELD: &'static MessageField = &MessageField {
1774            name: "congested_objects",
1775            json_name: "congestedObjects",
1776            number: 12i32,
1777            message_fields: Some(CongestedObjects::FIELDS),
1778        };
1779    }
1780    impl MessageFields for ExecutionError {
1781        const FIELDS: &'static [&'static MessageField] = &[
1782            Self::DESCRIPTION_FIELD,
1783            Self::COMMAND_FIELD,
1784            Self::KIND_FIELD,
1785            Self::ABORT_FIELD,
1786            Self::SIZE_ERROR_FIELD,
1787            Self::COMMAND_ARGUMENT_ERROR_FIELD,
1788            Self::TYPE_ARGUMENT_ERROR_FIELD,
1789            Self::PACKAGE_UPGRADE_ERROR_FIELD,
1790            Self::INDEX_ERROR_FIELD,
1791            Self::OBJECT_ID_FIELD,
1792            Self::COIN_DENY_LIST_ERROR_FIELD,
1793            Self::CONGESTED_OBJECTS_FIELD,
1794        ];
1795    }
1796    impl ExecutionError {
1797        pub fn path_builder() -> ExecutionErrorFieldPathBuilder {
1798            ExecutionErrorFieldPathBuilder::new()
1799        }
1800    }
1801    pub struct ExecutionErrorFieldPathBuilder {
1802        path: Vec<&'static str>,
1803    }
1804    impl ExecutionErrorFieldPathBuilder {
1805        #[allow(clippy::new_without_default)]
1806        pub fn new() -> Self {
1807            Self { path: Default::default() }
1808        }
1809        #[doc(hidden)]
1810        pub fn new_with_base(base: Vec<&'static str>) -> Self {
1811            Self { path: base }
1812        }
1813        pub fn finish(self) -> String {
1814            self.path.join(".")
1815        }
1816        pub fn description(mut self) -> String {
1817            self.path.push(ExecutionError::DESCRIPTION_FIELD.name);
1818            self.finish()
1819        }
1820        pub fn command(mut self) -> String {
1821            self.path.push(ExecutionError::COMMAND_FIELD.name);
1822            self.finish()
1823        }
1824        pub fn kind(mut self) -> String {
1825            self.path.push(ExecutionError::KIND_FIELD.name);
1826            self.finish()
1827        }
1828        pub fn abort(mut self) -> MoveAbortFieldPathBuilder {
1829            self.path.push(ExecutionError::ABORT_FIELD.name);
1830            MoveAbortFieldPathBuilder::new_with_base(self.path)
1831        }
1832        pub fn size_error(mut self) -> SizeErrorFieldPathBuilder {
1833            self.path.push(ExecutionError::SIZE_ERROR_FIELD.name);
1834            SizeErrorFieldPathBuilder::new_with_base(self.path)
1835        }
1836        pub fn command_argument_error(mut self) -> CommandArgumentErrorFieldPathBuilder {
1837            self.path.push(ExecutionError::COMMAND_ARGUMENT_ERROR_FIELD.name);
1838            CommandArgumentErrorFieldPathBuilder::new_with_base(self.path)
1839        }
1840        pub fn type_argument_error(mut self) -> TypeArgumentErrorFieldPathBuilder {
1841            self.path.push(ExecutionError::TYPE_ARGUMENT_ERROR_FIELD.name);
1842            TypeArgumentErrorFieldPathBuilder::new_with_base(self.path)
1843        }
1844        pub fn package_upgrade_error(mut self) -> PackageUpgradeErrorFieldPathBuilder {
1845            self.path.push(ExecutionError::PACKAGE_UPGRADE_ERROR_FIELD.name);
1846            PackageUpgradeErrorFieldPathBuilder::new_with_base(self.path)
1847        }
1848        pub fn index_error(mut self) -> IndexErrorFieldPathBuilder {
1849            self.path.push(ExecutionError::INDEX_ERROR_FIELD.name);
1850            IndexErrorFieldPathBuilder::new_with_base(self.path)
1851        }
1852        pub fn object_id(mut self) -> String {
1853            self.path.push(ExecutionError::OBJECT_ID_FIELD.name);
1854            self.finish()
1855        }
1856        pub fn coin_deny_list_error(mut self) -> CoinDenyListErrorFieldPathBuilder {
1857            self.path.push(ExecutionError::COIN_DENY_LIST_ERROR_FIELD.name);
1858            CoinDenyListErrorFieldPathBuilder::new_with_base(self.path)
1859        }
1860        pub fn congested_objects(mut self) -> CongestedObjectsFieldPathBuilder {
1861            self.path.push(ExecutionError::CONGESTED_OBJECTS_FIELD.name);
1862            CongestedObjectsFieldPathBuilder::new_with_base(self.path)
1863        }
1864    }
1865    impl MoveAbort {
1866        pub const ABORT_CODE_FIELD: &'static MessageField = &MessageField {
1867            name: "abort_code",
1868            json_name: "abortCode",
1869            number: 1i32,
1870            message_fields: None,
1871        };
1872        pub const LOCATION_FIELD: &'static MessageField = &MessageField {
1873            name: "location",
1874            json_name: "location",
1875            number: 2i32,
1876            message_fields: Some(MoveLocation::FIELDS),
1877        };
1878        pub const CLEVER_ERROR_FIELD: &'static MessageField = &MessageField {
1879            name: "clever_error",
1880            json_name: "cleverError",
1881            number: 3i32,
1882            message_fields: Some(CleverError::FIELDS),
1883        };
1884    }
1885    impl MessageFields for MoveAbort {
1886        const FIELDS: &'static [&'static MessageField] = &[
1887            Self::ABORT_CODE_FIELD,
1888            Self::LOCATION_FIELD,
1889            Self::CLEVER_ERROR_FIELD,
1890        ];
1891    }
1892    impl MoveAbort {
1893        pub fn path_builder() -> MoveAbortFieldPathBuilder {
1894            MoveAbortFieldPathBuilder::new()
1895        }
1896    }
1897    pub struct MoveAbortFieldPathBuilder {
1898        path: Vec<&'static str>,
1899    }
1900    impl MoveAbortFieldPathBuilder {
1901        #[allow(clippy::new_without_default)]
1902        pub fn new() -> Self {
1903            Self { path: Default::default() }
1904        }
1905        #[doc(hidden)]
1906        pub fn new_with_base(base: Vec<&'static str>) -> Self {
1907            Self { path: base }
1908        }
1909        pub fn finish(self) -> String {
1910            self.path.join(".")
1911        }
1912        pub fn abort_code(mut self) -> String {
1913            self.path.push(MoveAbort::ABORT_CODE_FIELD.name);
1914            self.finish()
1915        }
1916        pub fn location(mut self) -> MoveLocationFieldPathBuilder {
1917            self.path.push(MoveAbort::LOCATION_FIELD.name);
1918            MoveLocationFieldPathBuilder::new_with_base(self.path)
1919        }
1920        pub fn clever_error(mut self) -> CleverErrorFieldPathBuilder {
1921            self.path.push(MoveAbort::CLEVER_ERROR_FIELD.name);
1922            CleverErrorFieldPathBuilder::new_with_base(self.path)
1923        }
1924    }
1925    impl MoveLocation {
1926        pub const PACKAGE_FIELD: &'static MessageField = &MessageField {
1927            name: "package",
1928            json_name: "package",
1929            number: 1i32,
1930            message_fields: None,
1931        };
1932        pub const MODULE_FIELD: &'static MessageField = &MessageField {
1933            name: "module",
1934            json_name: "module",
1935            number: 2i32,
1936            message_fields: None,
1937        };
1938        pub const FUNCTION_FIELD: &'static MessageField = &MessageField {
1939            name: "function",
1940            json_name: "function",
1941            number: 3i32,
1942            message_fields: None,
1943        };
1944        pub const INSTRUCTION_FIELD: &'static MessageField = &MessageField {
1945            name: "instruction",
1946            json_name: "instruction",
1947            number: 4i32,
1948            message_fields: None,
1949        };
1950        pub const FUNCTION_NAME_FIELD: &'static MessageField = &MessageField {
1951            name: "function_name",
1952            json_name: "functionName",
1953            number: 5i32,
1954            message_fields: None,
1955        };
1956    }
1957    impl MessageFields for MoveLocation {
1958        const FIELDS: &'static [&'static MessageField] = &[
1959            Self::PACKAGE_FIELD,
1960            Self::MODULE_FIELD,
1961            Self::FUNCTION_FIELD,
1962            Self::INSTRUCTION_FIELD,
1963            Self::FUNCTION_NAME_FIELD,
1964        ];
1965    }
1966    impl MoveLocation {
1967        pub fn path_builder() -> MoveLocationFieldPathBuilder {
1968            MoveLocationFieldPathBuilder::new()
1969        }
1970    }
1971    pub struct MoveLocationFieldPathBuilder {
1972        path: Vec<&'static str>,
1973    }
1974    impl MoveLocationFieldPathBuilder {
1975        #[allow(clippy::new_without_default)]
1976        pub fn new() -> Self {
1977            Self { path: Default::default() }
1978        }
1979        #[doc(hidden)]
1980        pub fn new_with_base(base: Vec<&'static str>) -> Self {
1981            Self { path: base }
1982        }
1983        pub fn finish(self) -> String {
1984            self.path.join(".")
1985        }
1986        pub fn package(mut self) -> String {
1987            self.path.push(MoveLocation::PACKAGE_FIELD.name);
1988            self.finish()
1989        }
1990        pub fn module(mut self) -> String {
1991            self.path.push(MoveLocation::MODULE_FIELD.name);
1992            self.finish()
1993        }
1994        pub fn function(mut self) -> String {
1995            self.path.push(MoveLocation::FUNCTION_FIELD.name);
1996            self.finish()
1997        }
1998        pub fn instruction(mut self) -> String {
1999            self.path.push(MoveLocation::INSTRUCTION_FIELD.name);
2000            self.finish()
2001        }
2002        pub fn function_name(mut self) -> String {
2003            self.path.push(MoveLocation::FUNCTION_NAME_FIELD.name);
2004            self.finish()
2005        }
2006    }
2007    impl CleverError {
2008        pub const ERROR_CODE_FIELD: &'static MessageField = &MessageField {
2009            name: "error_code",
2010            json_name: "errorCode",
2011            number: 1i32,
2012            message_fields: None,
2013        };
2014        pub const LINE_NUMBER_FIELD: &'static MessageField = &MessageField {
2015            name: "line_number",
2016            json_name: "lineNumber",
2017            number: 2i32,
2018            message_fields: None,
2019        };
2020        pub const CONSTANT_NAME_FIELD: &'static MessageField = &MessageField {
2021            name: "constant_name",
2022            json_name: "constantName",
2023            number: 3i32,
2024            message_fields: None,
2025        };
2026        pub const CONSTANT_TYPE_FIELD: &'static MessageField = &MessageField {
2027            name: "constant_type",
2028            json_name: "constantType",
2029            number: 4i32,
2030            message_fields: None,
2031        };
2032        pub const RENDERED_FIELD: &'static MessageField = &MessageField {
2033            name: "rendered",
2034            json_name: "rendered",
2035            number: 5i32,
2036            message_fields: None,
2037        };
2038        pub const RAW_FIELD: &'static MessageField = &MessageField {
2039            name: "raw",
2040            json_name: "raw",
2041            number: 6i32,
2042            message_fields: None,
2043        };
2044    }
2045    impl MessageFields for CleverError {
2046        const FIELDS: &'static [&'static MessageField] = &[
2047            Self::ERROR_CODE_FIELD,
2048            Self::LINE_NUMBER_FIELD,
2049            Self::CONSTANT_NAME_FIELD,
2050            Self::CONSTANT_TYPE_FIELD,
2051            Self::RENDERED_FIELD,
2052            Self::RAW_FIELD,
2053        ];
2054    }
2055    impl CleverError {
2056        pub fn path_builder() -> CleverErrorFieldPathBuilder {
2057            CleverErrorFieldPathBuilder::new()
2058        }
2059    }
2060    pub struct CleverErrorFieldPathBuilder {
2061        path: Vec<&'static str>,
2062    }
2063    impl CleverErrorFieldPathBuilder {
2064        #[allow(clippy::new_without_default)]
2065        pub fn new() -> Self {
2066            Self { path: Default::default() }
2067        }
2068        #[doc(hidden)]
2069        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2070            Self { path: base }
2071        }
2072        pub fn finish(self) -> String {
2073            self.path.join(".")
2074        }
2075        pub fn error_code(mut self) -> String {
2076            self.path.push(CleverError::ERROR_CODE_FIELD.name);
2077            self.finish()
2078        }
2079        pub fn line_number(mut self) -> String {
2080            self.path.push(CleverError::LINE_NUMBER_FIELD.name);
2081            self.finish()
2082        }
2083        pub fn constant_name(mut self) -> String {
2084            self.path.push(CleverError::CONSTANT_NAME_FIELD.name);
2085            self.finish()
2086        }
2087        pub fn constant_type(mut self) -> String {
2088            self.path.push(CleverError::CONSTANT_TYPE_FIELD.name);
2089            self.finish()
2090        }
2091        pub fn rendered(mut self) -> String {
2092            self.path.push(CleverError::RENDERED_FIELD.name);
2093            self.finish()
2094        }
2095        pub fn raw(mut self) -> String {
2096            self.path.push(CleverError::RAW_FIELD.name);
2097            self.finish()
2098        }
2099    }
2100    impl SizeError {
2101        pub const SIZE_FIELD: &'static MessageField = &MessageField {
2102            name: "size",
2103            json_name: "size",
2104            number: 1i32,
2105            message_fields: None,
2106        };
2107        pub const MAX_SIZE_FIELD: &'static MessageField = &MessageField {
2108            name: "max_size",
2109            json_name: "maxSize",
2110            number: 2i32,
2111            message_fields: None,
2112        };
2113    }
2114    impl MessageFields for SizeError {
2115        const FIELDS: &'static [&'static MessageField] = &[
2116            Self::SIZE_FIELD,
2117            Self::MAX_SIZE_FIELD,
2118        ];
2119    }
2120    impl SizeError {
2121        pub fn path_builder() -> SizeErrorFieldPathBuilder {
2122            SizeErrorFieldPathBuilder::new()
2123        }
2124    }
2125    pub struct SizeErrorFieldPathBuilder {
2126        path: Vec<&'static str>,
2127    }
2128    impl SizeErrorFieldPathBuilder {
2129        #[allow(clippy::new_without_default)]
2130        pub fn new() -> Self {
2131            Self { path: Default::default() }
2132        }
2133        #[doc(hidden)]
2134        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2135            Self { path: base }
2136        }
2137        pub fn finish(self) -> String {
2138            self.path.join(".")
2139        }
2140        pub fn size(mut self) -> String {
2141            self.path.push(SizeError::SIZE_FIELD.name);
2142            self.finish()
2143        }
2144        pub fn max_size(mut self) -> String {
2145            self.path.push(SizeError::MAX_SIZE_FIELD.name);
2146            self.finish()
2147        }
2148    }
2149    impl IndexError {
2150        pub const INDEX_FIELD: &'static MessageField = &MessageField {
2151            name: "index",
2152            json_name: "index",
2153            number: 1i32,
2154            message_fields: None,
2155        };
2156        pub const SUBRESULT_FIELD: &'static MessageField = &MessageField {
2157            name: "subresult",
2158            json_name: "subresult",
2159            number: 2i32,
2160            message_fields: None,
2161        };
2162    }
2163    impl MessageFields for IndexError {
2164        const FIELDS: &'static [&'static MessageField] = &[
2165            Self::INDEX_FIELD,
2166            Self::SUBRESULT_FIELD,
2167        ];
2168    }
2169    impl IndexError {
2170        pub fn path_builder() -> IndexErrorFieldPathBuilder {
2171            IndexErrorFieldPathBuilder::new()
2172        }
2173    }
2174    pub struct IndexErrorFieldPathBuilder {
2175        path: Vec<&'static str>,
2176    }
2177    impl IndexErrorFieldPathBuilder {
2178        #[allow(clippy::new_without_default)]
2179        pub fn new() -> Self {
2180            Self { path: Default::default() }
2181        }
2182        #[doc(hidden)]
2183        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2184            Self { path: base }
2185        }
2186        pub fn finish(self) -> String {
2187            self.path.join(".")
2188        }
2189        pub fn index(mut self) -> String {
2190            self.path.push(IndexError::INDEX_FIELD.name);
2191            self.finish()
2192        }
2193        pub fn subresult(mut self) -> String {
2194            self.path.push(IndexError::SUBRESULT_FIELD.name);
2195            self.finish()
2196        }
2197    }
2198    impl CoinDenyListError {
2199        pub const ADDRESS_FIELD: &'static MessageField = &MessageField {
2200            name: "address",
2201            json_name: "address",
2202            number: 1i32,
2203            message_fields: None,
2204        };
2205        pub const COIN_TYPE_FIELD: &'static MessageField = &MessageField {
2206            name: "coin_type",
2207            json_name: "coinType",
2208            number: 2i32,
2209            message_fields: None,
2210        };
2211    }
2212    impl MessageFields for CoinDenyListError {
2213        const FIELDS: &'static [&'static MessageField] = &[
2214            Self::ADDRESS_FIELD,
2215            Self::COIN_TYPE_FIELD,
2216        ];
2217    }
2218    impl CoinDenyListError {
2219        pub fn path_builder() -> CoinDenyListErrorFieldPathBuilder {
2220            CoinDenyListErrorFieldPathBuilder::new()
2221        }
2222    }
2223    pub struct CoinDenyListErrorFieldPathBuilder {
2224        path: Vec<&'static str>,
2225    }
2226    impl CoinDenyListErrorFieldPathBuilder {
2227        #[allow(clippy::new_without_default)]
2228        pub fn new() -> Self {
2229            Self { path: Default::default() }
2230        }
2231        #[doc(hidden)]
2232        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2233            Self { path: base }
2234        }
2235        pub fn finish(self) -> String {
2236            self.path.join(".")
2237        }
2238        pub fn address(mut self) -> String {
2239            self.path.push(CoinDenyListError::ADDRESS_FIELD.name);
2240            self.finish()
2241        }
2242        pub fn coin_type(mut self) -> String {
2243            self.path.push(CoinDenyListError::COIN_TYPE_FIELD.name);
2244            self.finish()
2245        }
2246    }
2247    impl CongestedObjects {
2248        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
2249            name: "objects",
2250            json_name: "objects",
2251            number: 1i32,
2252            message_fields: None,
2253        };
2254    }
2255    impl MessageFields for CongestedObjects {
2256        const FIELDS: &'static [&'static MessageField] = &[Self::OBJECTS_FIELD];
2257    }
2258    impl CongestedObjects {
2259        pub fn path_builder() -> CongestedObjectsFieldPathBuilder {
2260            CongestedObjectsFieldPathBuilder::new()
2261        }
2262    }
2263    pub struct CongestedObjectsFieldPathBuilder {
2264        path: Vec<&'static str>,
2265    }
2266    impl CongestedObjectsFieldPathBuilder {
2267        #[allow(clippy::new_without_default)]
2268        pub fn new() -> Self {
2269            Self { path: Default::default() }
2270        }
2271        #[doc(hidden)]
2272        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2273            Self { path: base }
2274        }
2275        pub fn finish(self) -> String {
2276            self.path.join(".")
2277        }
2278        pub fn objects(mut self) -> String {
2279            self.path.push(CongestedObjects::OBJECTS_FIELD.name);
2280            self.finish()
2281        }
2282    }
2283    impl CommandArgumentError {
2284        pub const ARGUMENT_FIELD: &'static MessageField = &MessageField {
2285            name: "argument",
2286            json_name: "argument",
2287            number: 1i32,
2288            message_fields: None,
2289        };
2290        pub const KIND_FIELD: &'static MessageField = &MessageField {
2291            name: "kind",
2292            json_name: "kind",
2293            number: 2i32,
2294            message_fields: None,
2295        };
2296        pub const INDEX_ERROR_FIELD: &'static MessageField = &MessageField {
2297            name: "index_error",
2298            json_name: "indexError",
2299            number: 3i32,
2300            message_fields: Some(IndexError::FIELDS),
2301        };
2302    }
2303    impl MessageFields for CommandArgumentError {
2304        const FIELDS: &'static [&'static MessageField] = &[
2305            Self::ARGUMENT_FIELD,
2306            Self::KIND_FIELD,
2307            Self::INDEX_ERROR_FIELD,
2308        ];
2309    }
2310    impl CommandArgumentError {
2311        pub fn path_builder() -> CommandArgumentErrorFieldPathBuilder {
2312            CommandArgumentErrorFieldPathBuilder::new()
2313        }
2314    }
2315    pub struct CommandArgumentErrorFieldPathBuilder {
2316        path: Vec<&'static str>,
2317    }
2318    impl CommandArgumentErrorFieldPathBuilder {
2319        #[allow(clippy::new_without_default)]
2320        pub fn new() -> Self {
2321            Self { path: Default::default() }
2322        }
2323        #[doc(hidden)]
2324        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2325            Self { path: base }
2326        }
2327        pub fn finish(self) -> String {
2328            self.path.join(".")
2329        }
2330        pub fn argument(mut self) -> String {
2331            self.path.push(CommandArgumentError::ARGUMENT_FIELD.name);
2332            self.finish()
2333        }
2334        pub fn kind(mut self) -> String {
2335            self.path.push(CommandArgumentError::KIND_FIELD.name);
2336            self.finish()
2337        }
2338        pub fn index_error(mut self) -> IndexErrorFieldPathBuilder {
2339            self.path.push(CommandArgumentError::INDEX_ERROR_FIELD.name);
2340            IndexErrorFieldPathBuilder::new_with_base(self.path)
2341        }
2342    }
2343    impl PackageUpgradeError {
2344        pub const KIND_FIELD: &'static MessageField = &MessageField {
2345            name: "kind",
2346            json_name: "kind",
2347            number: 1i32,
2348            message_fields: None,
2349        };
2350        pub const PACKAGE_ID_FIELD: &'static MessageField = &MessageField {
2351            name: "package_id",
2352            json_name: "packageId",
2353            number: 2i32,
2354            message_fields: None,
2355        };
2356        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
2357            name: "digest",
2358            json_name: "digest",
2359            number: 3i32,
2360            message_fields: None,
2361        };
2362        pub const POLICY_FIELD: &'static MessageField = &MessageField {
2363            name: "policy",
2364            json_name: "policy",
2365            number: 4i32,
2366            message_fields: None,
2367        };
2368        pub const TICKET_ID_FIELD: &'static MessageField = &MessageField {
2369            name: "ticket_id",
2370            json_name: "ticketId",
2371            number: 5i32,
2372            message_fields: None,
2373        };
2374    }
2375    impl MessageFields for PackageUpgradeError {
2376        const FIELDS: &'static [&'static MessageField] = &[
2377            Self::KIND_FIELD,
2378            Self::PACKAGE_ID_FIELD,
2379            Self::DIGEST_FIELD,
2380            Self::POLICY_FIELD,
2381            Self::TICKET_ID_FIELD,
2382        ];
2383    }
2384    impl PackageUpgradeError {
2385        pub fn path_builder() -> PackageUpgradeErrorFieldPathBuilder {
2386            PackageUpgradeErrorFieldPathBuilder::new()
2387        }
2388    }
2389    pub struct PackageUpgradeErrorFieldPathBuilder {
2390        path: Vec<&'static str>,
2391    }
2392    impl PackageUpgradeErrorFieldPathBuilder {
2393        #[allow(clippy::new_without_default)]
2394        pub fn new() -> Self {
2395            Self { path: Default::default() }
2396        }
2397        #[doc(hidden)]
2398        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2399            Self { path: base }
2400        }
2401        pub fn finish(self) -> String {
2402            self.path.join(".")
2403        }
2404        pub fn kind(mut self) -> String {
2405            self.path.push(PackageUpgradeError::KIND_FIELD.name);
2406            self.finish()
2407        }
2408        pub fn package_id(mut self) -> String {
2409            self.path.push(PackageUpgradeError::PACKAGE_ID_FIELD.name);
2410            self.finish()
2411        }
2412        pub fn digest(mut self) -> String {
2413            self.path.push(PackageUpgradeError::DIGEST_FIELD.name);
2414            self.finish()
2415        }
2416        pub fn policy(mut self) -> String {
2417            self.path.push(PackageUpgradeError::POLICY_FIELD.name);
2418            self.finish()
2419        }
2420        pub fn ticket_id(mut self) -> String {
2421            self.path.push(PackageUpgradeError::TICKET_ID_FIELD.name);
2422            self.finish()
2423        }
2424    }
2425    impl TypeArgumentError {
2426        pub const TYPE_ARGUMENT_FIELD: &'static MessageField = &MessageField {
2427            name: "type_argument",
2428            json_name: "typeArgument",
2429            number: 1i32,
2430            message_fields: None,
2431        };
2432        pub const KIND_FIELD: &'static MessageField = &MessageField {
2433            name: "kind",
2434            json_name: "kind",
2435            number: 2i32,
2436            message_fields: None,
2437        };
2438    }
2439    impl MessageFields for TypeArgumentError {
2440        const FIELDS: &'static [&'static MessageField] = &[
2441            Self::TYPE_ARGUMENT_FIELD,
2442            Self::KIND_FIELD,
2443        ];
2444    }
2445    impl TypeArgumentError {
2446        pub fn path_builder() -> TypeArgumentErrorFieldPathBuilder {
2447            TypeArgumentErrorFieldPathBuilder::new()
2448        }
2449    }
2450    pub struct TypeArgumentErrorFieldPathBuilder {
2451        path: Vec<&'static str>,
2452    }
2453    impl TypeArgumentErrorFieldPathBuilder {
2454        #[allow(clippy::new_without_default)]
2455        pub fn new() -> Self {
2456            Self { path: Default::default() }
2457        }
2458        #[doc(hidden)]
2459        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2460            Self { path: base }
2461        }
2462        pub fn finish(self) -> String {
2463            self.path.join(".")
2464        }
2465        pub fn type_argument(mut self) -> String {
2466            self.path.push(TypeArgumentError::TYPE_ARGUMENT_FIELD.name);
2467            self.finish()
2468        }
2469        pub fn kind(mut self) -> String {
2470            self.path.push(TypeArgumentError::KIND_FIELD.name);
2471            self.finish()
2472        }
2473    }
2474    impl GasCostSummary {
2475        pub const COMPUTATION_COST_FIELD: &'static MessageField = &MessageField {
2476            name: "computation_cost",
2477            json_name: "computationCost",
2478            number: 1i32,
2479            message_fields: None,
2480        };
2481        pub const STORAGE_COST_FIELD: &'static MessageField = &MessageField {
2482            name: "storage_cost",
2483            json_name: "storageCost",
2484            number: 2i32,
2485            message_fields: None,
2486        };
2487        pub const STORAGE_REBATE_FIELD: &'static MessageField = &MessageField {
2488            name: "storage_rebate",
2489            json_name: "storageRebate",
2490            number: 3i32,
2491            message_fields: None,
2492        };
2493        pub const NON_REFUNDABLE_STORAGE_FEE_FIELD: &'static MessageField = &MessageField {
2494            name: "non_refundable_storage_fee",
2495            json_name: "nonRefundableStorageFee",
2496            number: 4i32,
2497            message_fields: None,
2498        };
2499    }
2500    impl MessageFields for GasCostSummary {
2501        const FIELDS: &'static [&'static MessageField] = &[
2502            Self::COMPUTATION_COST_FIELD,
2503            Self::STORAGE_COST_FIELD,
2504            Self::STORAGE_REBATE_FIELD,
2505            Self::NON_REFUNDABLE_STORAGE_FEE_FIELD,
2506        ];
2507    }
2508    impl GasCostSummary {
2509        pub fn path_builder() -> GasCostSummaryFieldPathBuilder {
2510            GasCostSummaryFieldPathBuilder::new()
2511        }
2512    }
2513    pub struct GasCostSummaryFieldPathBuilder {
2514        path: Vec<&'static str>,
2515    }
2516    impl GasCostSummaryFieldPathBuilder {
2517        #[allow(clippy::new_without_default)]
2518        pub fn new() -> Self {
2519            Self { path: Default::default() }
2520        }
2521        #[doc(hidden)]
2522        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2523            Self { path: base }
2524        }
2525        pub fn finish(self) -> String {
2526            self.path.join(".")
2527        }
2528        pub fn computation_cost(mut self) -> String {
2529            self.path.push(GasCostSummary::COMPUTATION_COST_FIELD.name);
2530            self.finish()
2531        }
2532        pub fn storage_cost(mut self) -> String {
2533            self.path.push(GasCostSummary::STORAGE_COST_FIELD.name);
2534            self.finish()
2535        }
2536        pub fn storage_rebate(mut self) -> String {
2537            self.path.push(GasCostSummary::STORAGE_REBATE_FIELD.name);
2538            self.finish()
2539        }
2540        pub fn non_refundable_storage_fee(mut self) -> String {
2541            self.path.push(GasCostSummary::NON_REFUNDABLE_STORAGE_FEE_FIELD.name);
2542            self.finish()
2543        }
2544    }
2545    impl Input {
2546        pub const KIND_FIELD: &'static MessageField = &MessageField {
2547            name: "kind",
2548            json_name: "kind",
2549            number: 1i32,
2550            message_fields: None,
2551        };
2552        pub const PURE_FIELD: &'static MessageField = &MessageField {
2553            name: "pure",
2554            json_name: "pure",
2555            number: 2i32,
2556            message_fields: None,
2557        };
2558        pub const OBJECT_ID_FIELD: &'static MessageField = &MessageField {
2559            name: "object_id",
2560            json_name: "objectId",
2561            number: 3i32,
2562            message_fields: None,
2563        };
2564        pub const VERSION_FIELD: &'static MessageField = &MessageField {
2565            name: "version",
2566            json_name: "version",
2567            number: 4i32,
2568            message_fields: None,
2569        };
2570        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
2571            name: "digest",
2572            json_name: "digest",
2573            number: 5i32,
2574            message_fields: None,
2575        };
2576        pub const MUTABLE_FIELD: &'static MessageField = &MessageField {
2577            name: "mutable",
2578            json_name: "mutable",
2579            number: 6i32,
2580            message_fields: None,
2581        };
2582        pub const MUTABILITY_FIELD: &'static MessageField = &MessageField {
2583            name: "mutability",
2584            json_name: "mutability",
2585            number: 7i32,
2586            message_fields: None,
2587        };
2588        pub const FUNDS_WITHDRAWAL_FIELD: &'static MessageField = &MessageField {
2589            name: "funds_withdrawal",
2590            json_name: "fundsWithdrawal",
2591            number: 8i32,
2592            message_fields: Some(FundsWithdrawal::FIELDS),
2593        };
2594        pub const LITERAL_FIELD: &'static MessageField = &MessageField {
2595            name: "literal",
2596            json_name: "literal",
2597            number: 1000i32,
2598            message_fields: None,
2599        };
2600    }
2601    impl MessageFields for Input {
2602        const FIELDS: &'static [&'static MessageField] = &[
2603            Self::KIND_FIELD,
2604            Self::PURE_FIELD,
2605            Self::OBJECT_ID_FIELD,
2606            Self::VERSION_FIELD,
2607            Self::DIGEST_FIELD,
2608            Self::MUTABLE_FIELD,
2609            Self::MUTABILITY_FIELD,
2610            Self::FUNDS_WITHDRAWAL_FIELD,
2611            Self::LITERAL_FIELD,
2612        ];
2613    }
2614    impl Input {
2615        pub fn path_builder() -> InputFieldPathBuilder {
2616            InputFieldPathBuilder::new()
2617        }
2618    }
2619    pub struct InputFieldPathBuilder {
2620        path: Vec<&'static str>,
2621    }
2622    impl InputFieldPathBuilder {
2623        #[allow(clippy::new_without_default)]
2624        pub fn new() -> Self {
2625            Self { path: Default::default() }
2626        }
2627        #[doc(hidden)]
2628        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2629            Self { path: base }
2630        }
2631        pub fn finish(self) -> String {
2632            self.path.join(".")
2633        }
2634        pub fn kind(mut self) -> String {
2635            self.path.push(Input::KIND_FIELD.name);
2636            self.finish()
2637        }
2638        pub fn pure(mut self) -> String {
2639            self.path.push(Input::PURE_FIELD.name);
2640            self.finish()
2641        }
2642        pub fn object_id(mut self) -> String {
2643            self.path.push(Input::OBJECT_ID_FIELD.name);
2644            self.finish()
2645        }
2646        pub fn version(mut self) -> String {
2647            self.path.push(Input::VERSION_FIELD.name);
2648            self.finish()
2649        }
2650        pub fn digest(mut self) -> String {
2651            self.path.push(Input::DIGEST_FIELD.name);
2652            self.finish()
2653        }
2654        pub fn mutable(mut self) -> String {
2655            self.path.push(Input::MUTABLE_FIELD.name);
2656            self.finish()
2657        }
2658        pub fn mutability(mut self) -> String {
2659            self.path.push(Input::MUTABILITY_FIELD.name);
2660            self.finish()
2661        }
2662        pub fn funds_withdrawal(mut self) -> FundsWithdrawalFieldPathBuilder {
2663            self.path.push(Input::FUNDS_WITHDRAWAL_FIELD.name);
2664            FundsWithdrawalFieldPathBuilder::new_with_base(self.path)
2665        }
2666        pub fn literal(mut self) -> String {
2667            self.path.push(Input::LITERAL_FIELD.name);
2668            self.finish()
2669        }
2670    }
2671    impl FundsWithdrawal {
2672        pub const AMOUNT_FIELD: &'static MessageField = &MessageField {
2673            name: "amount",
2674            json_name: "amount",
2675            number: 1i32,
2676            message_fields: None,
2677        };
2678        pub const COIN_TYPE_FIELD: &'static MessageField = &MessageField {
2679            name: "coin_type",
2680            json_name: "coinType",
2681            number: 2i32,
2682            message_fields: None,
2683        };
2684        pub const SOURCE_FIELD: &'static MessageField = &MessageField {
2685            name: "source",
2686            json_name: "source",
2687            number: 3i32,
2688            message_fields: None,
2689        };
2690    }
2691    impl MessageFields for FundsWithdrawal {
2692        const FIELDS: &'static [&'static MessageField] = &[
2693            Self::AMOUNT_FIELD,
2694            Self::COIN_TYPE_FIELD,
2695            Self::SOURCE_FIELD,
2696        ];
2697    }
2698    impl FundsWithdrawal {
2699        pub fn path_builder() -> FundsWithdrawalFieldPathBuilder {
2700            FundsWithdrawalFieldPathBuilder::new()
2701        }
2702    }
2703    pub struct FundsWithdrawalFieldPathBuilder {
2704        path: Vec<&'static str>,
2705    }
2706    impl FundsWithdrawalFieldPathBuilder {
2707        #[allow(clippy::new_without_default)]
2708        pub fn new() -> Self {
2709            Self { path: Default::default() }
2710        }
2711        #[doc(hidden)]
2712        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2713            Self { path: base }
2714        }
2715        pub fn finish(self) -> String {
2716            self.path.join(".")
2717        }
2718        pub fn amount(mut self) -> String {
2719            self.path.push(FundsWithdrawal::AMOUNT_FIELD.name);
2720            self.finish()
2721        }
2722        pub fn coin_type(mut self) -> String {
2723            self.path.push(FundsWithdrawal::COIN_TYPE_FIELD.name);
2724            self.finish()
2725        }
2726        pub fn source(mut self) -> String {
2727            self.path.push(FundsWithdrawal::SOURCE_FIELD.name);
2728            self.finish()
2729        }
2730    }
2731    impl JwkId {
2732        pub const ISS_FIELD: &'static MessageField = &MessageField {
2733            name: "iss",
2734            json_name: "iss",
2735            number: 1i32,
2736            message_fields: None,
2737        };
2738        pub const KID_FIELD: &'static MessageField = &MessageField {
2739            name: "kid",
2740            json_name: "kid",
2741            number: 2i32,
2742            message_fields: None,
2743        };
2744    }
2745    impl MessageFields for JwkId {
2746        const FIELDS: &'static [&'static MessageField] = &[
2747            Self::ISS_FIELD,
2748            Self::KID_FIELD,
2749        ];
2750    }
2751    impl JwkId {
2752        pub fn path_builder() -> JwkIdFieldPathBuilder {
2753            JwkIdFieldPathBuilder::new()
2754        }
2755    }
2756    pub struct JwkIdFieldPathBuilder {
2757        path: Vec<&'static str>,
2758    }
2759    impl JwkIdFieldPathBuilder {
2760        #[allow(clippy::new_without_default)]
2761        pub fn new() -> Self {
2762            Self { path: Default::default() }
2763        }
2764        #[doc(hidden)]
2765        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2766            Self { path: base }
2767        }
2768        pub fn finish(self) -> String {
2769            self.path.join(".")
2770        }
2771        pub fn iss(mut self) -> String {
2772            self.path.push(JwkId::ISS_FIELD.name);
2773            self.finish()
2774        }
2775        pub fn kid(mut self) -> String {
2776            self.path.push(JwkId::KID_FIELD.name);
2777            self.finish()
2778        }
2779    }
2780    impl Jwk {
2781        pub const KTY_FIELD: &'static MessageField = &MessageField {
2782            name: "kty",
2783            json_name: "kty",
2784            number: 1i32,
2785            message_fields: None,
2786        };
2787        pub const E_FIELD: &'static MessageField = &MessageField {
2788            name: "e",
2789            json_name: "e",
2790            number: 2i32,
2791            message_fields: None,
2792        };
2793        pub const N_FIELD: &'static MessageField = &MessageField {
2794            name: "n",
2795            json_name: "n",
2796            number: 3i32,
2797            message_fields: None,
2798        };
2799        pub const ALG_FIELD: &'static MessageField = &MessageField {
2800            name: "alg",
2801            json_name: "alg",
2802            number: 4i32,
2803            message_fields: None,
2804        };
2805    }
2806    impl MessageFields for Jwk {
2807        const FIELDS: &'static [&'static MessageField] = &[
2808            Self::KTY_FIELD,
2809            Self::E_FIELD,
2810            Self::N_FIELD,
2811            Self::ALG_FIELD,
2812        ];
2813    }
2814    impl Jwk {
2815        pub fn path_builder() -> JwkFieldPathBuilder {
2816            JwkFieldPathBuilder::new()
2817        }
2818    }
2819    pub struct JwkFieldPathBuilder {
2820        path: Vec<&'static str>,
2821    }
2822    impl JwkFieldPathBuilder {
2823        #[allow(clippy::new_without_default)]
2824        pub fn new() -> Self {
2825            Self { path: Default::default() }
2826        }
2827        #[doc(hidden)]
2828        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2829            Self { path: base }
2830        }
2831        pub fn finish(self) -> String {
2832            self.path.join(".")
2833        }
2834        pub fn kty(mut self) -> String {
2835            self.path.push(Jwk::KTY_FIELD.name);
2836            self.finish()
2837        }
2838        pub fn e(mut self) -> String {
2839            self.path.push(Jwk::E_FIELD.name);
2840            self.finish()
2841        }
2842        pub fn n(mut self) -> String {
2843            self.path.push(Jwk::N_FIELD.name);
2844            self.finish()
2845        }
2846        pub fn alg(mut self) -> String {
2847            self.path.push(Jwk::ALG_FIELD.name);
2848            self.finish()
2849        }
2850    }
2851    impl GetServiceInfoRequest {}
2852    impl MessageFields for GetServiceInfoRequest {
2853        const FIELDS: &'static [&'static MessageField] = &[];
2854    }
2855    impl GetServiceInfoRequest {
2856        pub fn path_builder() -> GetServiceInfoRequestFieldPathBuilder {
2857            GetServiceInfoRequestFieldPathBuilder::new()
2858        }
2859    }
2860    pub struct GetServiceInfoRequestFieldPathBuilder {
2861        path: Vec<&'static str>,
2862    }
2863    impl GetServiceInfoRequestFieldPathBuilder {
2864        #[allow(clippy::new_without_default)]
2865        pub fn new() -> Self {
2866            Self { path: Default::default() }
2867        }
2868        #[doc(hidden)]
2869        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2870            Self { path: base }
2871        }
2872        pub fn finish(self) -> String {
2873            self.path.join(".")
2874        }
2875    }
2876    impl GetServiceInfoResponse {
2877        pub const CHAIN_ID_FIELD: &'static MessageField = &MessageField {
2878            name: "chain_id",
2879            json_name: "chainId",
2880            number: 1i32,
2881            message_fields: None,
2882        };
2883        pub const CHAIN_FIELD: &'static MessageField = &MessageField {
2884            name: "chain",
2885            json_name: "chain",
2886            number: 2i32,
2887            message_fields: None,
2888        };
2889        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
2890            name: "epoch",
2891            json_name: "epoch",
2892            number: 3i32,
2893            message_fields: None,
2894        };
2895        pub const CHECKPOINT_HEIGHT_FIELD: &'static MessageField = &MessageField {
2896            name: "checkpoint_height",
2897            json_name: "checkpointHeight",
2898            number: 4i32,
2899            message_fields: None,
2900        };
2901        pub const TIMESTAMP_FIELD: &'static MessageField = &MessageField {
2902            name: "timestamp",
2903            json_name: "timestamp",
2904            number: 5i32,
2905            message_fields: None,
2906        };
2907        pub const LOWEST_AVAILABLE_CHECKPOINT_FIELD: &'static MessageField = &MessageField {
2908            name: "lowest_available_checkpoint",
2909            json_name: "lowestAvailableCheckpoint",
2910            number: 6i32,
2911            message_fields: None,
2912        };
2913        pub const LOWEST_AVAILABLE_CHECKPOINT_OBJECTS_FIELD: &'static MessageField = &MessageField {
2914            name: "lowest_available_checkpoint_objects",
2915            json_name: "lowestAvailableCheckpointObjects",
2916            number: 7i32,
2917            message_fields: None,
2918        };
2919        pub const SERVER_FIELD: &'static MessageField = &MessageField {
2920            name: "server",
2921            json_name: "server",
2922            number: 8i32,
2923            message_fields: None,
2924        };
2925    }
2926    impl MessageFields for GetServiceInfoResponse {
2927        const FIELDS: &'static [&'static MessageField] = &[
2928            Self::CHAIN_ID_FIELD,
2929            Self::CHAIN_FIELD,
2930            Self::EPOCH_FIELD,
2931            Self::CHECKPOINT_HEIGHT_FIELD,
2932            Self::TIMESTAMP_FIELD,
2933            Self::LOWEST_AVAILABLE_CHECKPOINT_FIELD,
2934            Self::LOWEST_AVAILABLE_CHECKPOINT_OBJECTS_FIELD,
2935            Self::SERVER_FIELD,
2936        ];
2937    }
2938    impl GetServiceInfoResponse {
2939        pub fn path_builder() -> GetServiceInfoResponseFieldPathBuilder {
2940            GetServiceInfoResponseFieldPathBuilder::new()
2941        }
2942    }
2943    pub struct GetServiceInfoResponseFieldPathBuilder {
2944        path: Vec<&'static str>,
2945    }
2946    impl GetServiceInfoResponseFieldPathBuilder {
2947        #[allow(clippy::new_without_default)]
2948        pub fn new() -> Self {
2949            Self { path: Default::default() }
2950        }
2951        #[doc(hidden)]
2952        pub fn new_with_base(base: Vec<&'static str>) -> Self {
2953            Self { path: base }
2954        }
2955        pub fn finish(self) -> String {
2956            self.path.join(".")
2957        }
2958        pub fn chain_id(mut self) -> String {
2959            self.path.push(GetServiceInfoResponse::CHAIN_ID_FIELD.name);
2960            self.finish()
2961        }
2962        pub fn chain(mut self) -> String {
2963            self.path.push(GetServiceInfoResponse::CHAIN_FIELD.name);
2964            self.finish()
2965        }
2966        pub fn epoch(mut self) -> String {
2967            self.path.push(GetServiceInfoResponse::EPOCH_FIELD.name);
2968            self.finish()
2969        }
2970        pub fn checkpoint_height(mut self) -> String {
2971            self.path.push(GetServiceInfoResponse::CHECKPOINT_HEIGHT_FIELD.name);
2972            self.finish()
2973        }
2974        pub fn timestamp(mut self) -> String {
2975            self.path.push(GetServiceInfoResponse::TIMESTAMP_FIELD.name);
2976            self.finish()
2977        }
2978        pub fn lowest_available_checkpoint(mut self) -> String {
2979            self.path
2980                .push(GetServiceInfoResponse::LOWEST_AVAILABLE_CHECKPOINT_FIELD.name);
2981            self.finish()
2982        }
2983        pub fn lowest_available_checkpoint_objects(mut self) -> String {
2984            self.path
2985                .push(
2986                    GetServiceInfoResponse::LOWEST_AVAILABLE_CHECKPOINT_OBJECTS_FIELD
2987                        .name,
2988                );
2989            self.finish()
2990        }
2991        pub fn server(mut self) -> String {
2992            self.path.push(GetServiceInfoResponse::SERVER_FIELD.name);
2993            self.finish()
2994        }
2995    }
2996    impl GetObjectRequest {
2997        pub const OBJECT_ID_FIELD: &'static MessageField = &MessageField {
2998            name: "object_id",
2999            json_name: "objectId",
3000            number: 1i32,
3001            message_fields: None,
3002        };
3003        pub const VERSION_FIELD: &'static MessageField = &MessageField {
3004            name: "version",
3005            json_name: "version",
3006            number: 2i32,
3007            message_fields: None,
3008        };
3009        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
3010            name: "read_mask",
3011            json_name: "readMask",
3012            number: 3i32,
3013            message_fields: None,
3014        };
3015    }
3016    impl MessageFields for GetObjectRequest {
3017        const FIELDS: &'static [&'static MessageField] = &[
3018            Self::OBJECT_ID_FIELD,
3019            Self::VERSION_FIELD,
3020            Self::READ_MASK_FIELD,
3021        ];
3022    }
3023    impl GetObjectRequest {
3024        pub fn path_builder() -> GetObjectRequestFieldPathBuilder {
3025            GetObjectRequestFieldPathBuilder::new()
3026        }
3027    }
3028    pub struct GetObjectRequestFieldPathBuilder {
3029        path: Vec<&'static str>,
3030    }
3031    impl GetObjectRequestFieldPathBuilder {
3032        #[allow(clippy::new_without_default)]
3033        pub fn new() -> Self {
3034            Self { path: Default::default() }
3035        }
3036        #[doc(hidden)]
3037        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3038            Self { path: base }
3039        }
3040        pub fn finish(self) -> String {
3041            self.path.join(".")
3042        }
3043        pub fn object_id(mut self) -> String {
3044            self.path.push(GetObjectRequest::OBJECT_ID_FIELD.name);
3045            self.finish()
3046        }
3047        pub fn version(mut self) -> String {
3048            self.path.push(GetObjectRequest::VERSION_FIELD.name);
3049            self.finish()
3050        }
3051        pub fn read_mask(mut self) -> String {
3052            self.path.push(GetObjectRequest::READ_MASK_FIELD.name);
3053            self.finish()
3054        }
3055    }
3056    impl GetObjectResponse {
3057        pub const OBJECT_FIELD: &'static MessageField = &MessageField {
3058            name: "object",
3059            json_name: "object",
3060            number: 1i32,
3061            message_fields: Some(Object::FIELDS),
3062        };
3063    }
3064    impl MessageFields for GetObjectResponse {
3065        const FIELDS: &'static [&'static MessageField] = &[Self::OBJECT_FIELD];
3066    }
3067    impl GetObjectResponse {
3068        pub fn path_builder() -> GetObjectResponseFieldPathBuilder {
3069            GetObjectResponseFieldPathBuilder::new()
3070        }
3071    }
3072    pub struct GetObjectResponseFieldPathBuilder {
3073        path: Vec<&'static str>,
3074    }
3075    impl GetObjectResponseFieldPathBuilder {
3076        #[allow(clippy::new_without_default)]
3077        pub fn new() -> Self {
3078            Self { path: Default::default() }
3079        }
3080        #[doc(hidden)]
3081        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3082            Self { path: base }
3083        }
3084        pub fn finish(self) -> String {
3085            self.path.join(".")
3086        }
3087        pub fn object(mut self) -> ObjectFieldPathBuilder {
3088            self.path.push(GetObjectResponse::OBJECT_FIELD.name);
3089            ObjectFieldPathBuilder::new_with_base(self.path)
3090        }
3091    }
3092    impl BatchGetObjectsRequest {
3093        pub const REQUESTS_FIELD: &'static MessageField = &MessageField {
3094            name: "requests",
3095            json_name: "requests",
3096            number: 1i32,
3097            message_fields: Some(GetObjectRequest::FIELDS),
3098        };
3099        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
3100            name: "read_mask",
3101            json_name: "readMask",
3102            number: 2i32,
3103            message_fields: None,
3104        };
3105    }
3106    impl MessageFields for BatchGetObjectsRequest {
3107        const FIELDS: &'static [&'static MessageField] = &[
3108            Self::REQUESTS_FIELD,
3109            Self::READ_MASK_FIELD,
3110        ];
3111    }
3112    impl BatchGetObjectsRequest {
3113        pub fn path_builder() -> BatchGetObjectsRequestFieldPathBuilder {
3114            BatchGetObjectsRequestFieldPathBuilder::new()
3115        }
3116    }
3117    pub struct BatchGetObjectsRequestFieldPathBuilder {
3118        path: Vec<&'static str>,
3119    }
3120    impl BatchGetObjectsRequestFieldPathBuilder {
3121        #[allow(clippy::new_without_default)]
3122        pub fn new() -> Self {
3123            Self { path: Default::default() }
3124        }
3125        #[doc(hidden)]
3126        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3127            Self { path: base }
3128        }
3129        pub fn finish(self) -> String {
3130            self.path.join(".")
3131        }
3132        pub fn requests(mut self) -> GetObjectRequestFieldPathBuilder {
3133            self.path.push(BatchGetObjectsRequest::REQUESTS_FIELD.name);
3134            GetObjectRequestFieldPathBuilder::new_with_base(self.path)
3135        }
3136        pub fn read_mask(mut self) -> String {
3137            self.path.push(BatchGetObjectsRequest::READ_MASK_FIELD.name);
3138            self.finish()
3139        }
3140    }
3141    impl BatchGetObjectsResponse {
3142        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
3143            name: "objects",
3144            json_name: "objects",
3145            number: 1i32,
3146            message_fields: Some(GetObjectResult::FIELDS),
3147        };
3148    }
3149    impl MessageFields for BatchGetObjectsResponse {
3150        const FIELDS: &'static [&'static MessageField] = &[Self::OBJECTS_FIELD];
3151    }
3152    impl BatchGetObjectsResponse {
3153        pub fn path_builder() -> BatchGetObjectsResponseFieldPathBuilder {
3154            BatchGetObjectsResponseFieldPathBuilder::new()
3155        }
3156    }
3157    pub struct BatchGetObjectsResponseFieldPathBuilder {
3158        path: Vec<&'static str>,
3159    }
3160    impl BatchGetObjectsResponseFieldPathBuilder {
3161        #[allow(clippy::new_without_default)]
3162        pub fn new() -> Self {
3163            Self { path: Default::default() }
3164        }
3165        #[doc(hidden)]
3166        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3167            Self { path: base }
3168        }
3169        pub fn finish(self) -> String {
3170            self.path.join(".")
3171        }
3172        pub fn objects(mut self) -> GetObjectResultFieldPathBuilder {
3173            self.path.push(BatchGetObjectsResponse::OBJECTS_FIELD.name);
3174            GetObjectResultFieldPathBuilder::new_with_base(self.path)
3175        }
3176    }
3177    impl GetObjectResult {
3178        pub const OBJECT_FIELD: &'static MessageField = &MessageField {
3179            name: "object",
3180            json_name: "object",
3181            number: 1i32,
3182            message_fields: Some(Object::FIELDS),
3183        };
3184        pub const ERROR_FIELD: &'static MessageField = &MessageField {
3185            name: "error",
3186            json_name: "error",
3187            number: 2i32,
3188            message_fields: None,
3189        };
3190    }
3191    impl MessageFields for GetObjectResult {
3192        const FIELDS: &'static [&'static MessageField] = &[
3193            Self::OBJECT_FIELD,
3194            Self::ERROR_FIELD,
3195        ];
3196    }
3197    impl GetObjectResult {
3198        pub fn path_builder() -> GetObjectResultFieldPathBuilder {
3199            GetObjectResultFieldPathBuilder::new()
3200        }
3201    }
3202    pub struct GetObjectResultFieldPathBuilder {
3203        path: Vec<&'static str>,
3204    }
3205    impl GetObjectResultFieldPathBuilder {
3206        #[allow(clippy::new_without_default)]
3207        pub fn new() -> Self {
3208            Self { path: Default::default() }
3209        }
3210        #[doc(hidden)]
3211        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3212            Self { path: base }
3213        }
3214        pub fn finish(self) -> String {
3215            self.path.join(".")
3216        }
3217        pub fn object(mut self) -> ObjectFieldPathBuilder {
3218            self.path.push(GetObjectResult::OBJECT_FIELD.name);
3219            ObjectFieldPathBuilder::new_with_base(self.path)
3220        }
3221        pub fn error(mut self) -> String {
3222            self.path.push(GetObjectResult::ERROR_FIELD.name);
3223            self.finish()
3224        }
3225    }
3226    impl GetTransactionRequest {
3227        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
3228            name: "digest",
3229            json_name: "digest",
3230            number: 1i32,
3231            message_fields: None,
3232        };
3233        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
3234            name: "read_mask",
3235            json_name: "readMask",
3236            number: 2i32,
3237            message_fields: None,
3238        };
3239    }
3240    impl MessageFields for GetTransactionRequest {
3241        const FIELDS: &'static [&'static MessageField] = &[
3242            Self::DIGEST_FIELD,
3243            Self::READ_MASK_FIELD,
3244        ];
3245    }
3246    impl GetTransactionRequest {
3247        pub fn path_builder() -> GetTransactionRequestFieldPathBuilder {
3248            GetTransactionRequestFieldPathBuilder::new()
3249        }
3250    }
3251    pub struct GetTransactionRequestFieldPathBuilder {
3252        path: Vec<&'static str>,
3253    }
3254    impl GetTransactionRequestFieldPathBuilder {
3255        #[allow(clippy::new_without_default)]
3256        pub fn new() -> Self {
3257            Self { path: Default::default() }
3258        }
3259        #[doc(hidden)]
3260        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3261            Self { path: base }
3262        }
3263        pub fn finish(self) -> String {
3264            self.path.join(".")
3265        }
3266        pub fn digest(mut self) -> String {
3267            self.path.push(GetTransactionRequest::DIGEST_FIELD.name);
3268            self.finish()
3269        }
3270        pub fn read_mask(mut self) -> String {
3271            self.path.push(GetTransactionRequest::READ_MASK_FIELD.name);
3272            self.finish()
3273        }
3274    }
3275    impl GetTransactionResponse {
3276        pub const TRANSACTION_FIELD: &'static MessageField = &MessageField {
3277            name: "transaction",
3278            json_name: "transaction",
3279            number: 1i32,
3280            message_fields: Some(ExecutedTransaction::FIELDS),
3281        };
3282    }
3283    impl MessageFields for GetTransactionResponse {
3284        const FIELDS: &'static [&'static MessageField] = &[Self::TRANSACTION_FIELD];
3285    }
3286    impl GetTransactionResponse {
3287        pub fn path_builder() -> GetTransactionResponseFieldPathBuilder {
3288            GetTransactionResponseFieldPathBuilder::new()
3289        }
3290    }
3291    pub struct GetTransactionResponseFieldPathBuilder {
3292        path: Vec<&'static str>,
3293    }
3294    impl GetTransactionResponseFieldPathBuilder {
3295        #[allow(clippy::new_without_default)]
3296        pub fn new() -> Self {
3297            Self { path: Default::default() }
3298        }
3299        #[doc(hidden)]
3300        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3301            Self { path: base }
3302        }
3303        pub fn finish(self) -> String {
3304            self.path.join(".")
3305        }
3306        pub fn transaction(mut self) -> ExecutedTransactionFieldPathBuilder {
3307            self.path.push(GetTransactionResponse::TRANSACTION_FIELD.name);
3308            ExecutedTransactionFieldPathBuilder::new_with_base(self.path)
3309        }
3310    }
3311    impl BatchGetTransactionsRequest {
3312        pub const DIGESTS_FIELD: &'static MessageField = &MessageField {
3313            name: "digests",
3314            json_name: "digests",
3315            number: 1i32,
3316            message_fields: None,
3317        };
3318        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
3319            name: "read_mask",
3320            json_name: "readMask",
3321            number: 2i32,
3322            message_fields: None,
3323        };
3324    }
3325    impl MessageFields for BatchGetTransactionsRequest {
3326        const FIELDS: &'static [&'static MessageField] = &[
3327            Self::DIGESTS_FIELD,
3328            Self::READ_MASK_FIELD,
3329        ];
3330    }
3331    impl BatchGetTransactionsRequest {
3332        pub fn path_builder() -> BatchGetTransactionsRequestFieldPathBuilder {
3333            BatchGetTransactionsRequestFieldPathBuilder::new()
3334        }
3335    }
3336    pub struct BatchGetTransactionsRequestFieldPathBuilder {
3337        path: Vec<&'static str>,
3338    }
3339    impl BatchGetTransactionsRequestFieldPathBuilder {
3340        #[allow(clippy::new_without_default)]
3341        pub fn new() -> Self {
3342            Self { path: Default::default() }
3343        }
3344        #[doc(hidden)]
3345        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3346            Self { path: base }
3347        }
3348        pub fn finish(self) -> String {
3349            self.path.join(".")
3350        }
3351        pub fn digests(mut self) -> String {
3352            self.path.push(BatchGetTransactionsRequest::DIGESTS_FIELD.name);
3353            self.finish()
3354        }
3355        pub fn read_mask(mut self) -> String {
3356            self.path.push(BatchGetTransactionsRequest::READ_MASK_FIELD.name);
3357            self.finish()
3358        }
3359    }
3360    impl BatchGetTransactionsResponse {
3361        pub const TRANSACTIONS_FIELD: &'static MessageField = &MessageField {
3362            name: "transactions",
3363            json_name: "transactions",
3364            number: 1i32,
3365            message_fields: Some(GetTransactionResult::FIELDS),
3366        };
3367    }
3368    impl MessageFields for BatchGetTransactionsResponse {
3369        const FIELDS: &'static [&'static MessageField] = &[Self::TRANSACTIONS_FIELD];
3370    }
3371    impl BatchGetTransactionsResponse {
3372        pub fn path_builder() -> BatchGetTransactionsResponseFieldPathBuilder {
3373            BatchGetTransactionsResponseFieldPathBuilder::new()
3374        }
3375    }
3376    pub struct BatchGetTransactionsResponseFieldPathBuilder {
3377        path: Vec<&'static str>,
3378    }
3379    impl BatchGetTransactionsResponseFieldPathBuilder {
3380        #[allow(clippy::new_without_default)]
3381        pub fn new() -> Self {
3382            Self { path: Default::default() }
3383        }
3384        #[doc(hidden)]
3385        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3386            Self { path: base }
3387        }
3388        pub fn finish(self) -> String {
3389            self.path.join(".")
3390        }
3391        pub fn transactions(mut self) -> GetTransactionResultFieldPathBuilder {
3392            self.path.push(BatchGetTransactionsResponse::TRANSACTIONS_FIELD.name);
3393            GetTransactionResultFieldPathBuilder::new_with_base(self.path)
3394        }
3395    }
3396    impl GetTransactionResult {
3397        pub const TRANSACTION_FIELD: &'static MessageField = &MessageField {
3398            name: "transaction",
3399            json_name: "transaction",
3400            number: 1i32,
3401            message_fields: Some(ExecutedTransaction::FIELDS),
3402        };
3403        pub const ERROR_FIELD: &'static MessageField = &MessageField {
3404            name: "error",
3405            json_name: "error",
3406            number: 2i32,
3407            message_fields: None,
3408        };
3409    }
3410    impl MessageFields for GetTransactionResult {
3411        const FIELDS: &'static [&'static MessageField] = &[
3412            Self::TRANSACTION_FIELD,
3413            Self::ERROR_FIELD,
3414        ];
3415    }
3416    impl GetTransactionResult {
3417        pub fn path_builder() -> GetTransactionResultFieldPathBuilder {
3418            GetTransactionResultFieldPathBuilder::new()
3419        }
3420    }
3421    pub struct GetTransactionResultFieldPathBuilder {
3422        path: Vec<&'static str>,
3423    }
3424    impl GetTransactionResultFieldPathBuilder {
3425        #[allow(clippy::new_without_default)]
3426        pub fn new() -> Self {
3427            Self { path: Default::default() }
3428        }
3429        #[doc(hidden)]
3430        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3431            Self { path: base }
3432        }
3433        pub fn finish(self) -> String {
3434            self.path.join(".")
3435        }
3436        pub fn transaction(mut self) -> ExecutedTransactionFieldPathBuilder {
3437            self.path.push(GetTransactionResult::TRANSACTION_FIELD.name);
3438            ExecutedTransactionFieldPathBuilder::new_with_base(self.path)
3439        }
3440        pub fn error(mut self) -> String {
3441            self.path.push(GetTransactionResult::ERROR_FIELD.name);
3442            self.finish()
3443        }
3444    }
3445    impl GetCheckpointRequest {
3446        pub const SEQUENCE_NUMBER_FIELD: &'static MessageField = &MessageField {
3447            name: "sequence_number",
3448            json_name: "sequenceNumber",
3449            number: 1i32,
3450            message_fields: None,
3451        };
3452        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
3453            name: "digest",
3454            json_name: "digest",
3455            number: 2i32,
3456            message_fields: None,
3457        };
3458        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
3459            name: "read_mask",
3460            json_name: "readMask",
3461            number: 3i32,
3462            message_fields: None,
3463        };
3464    }
3465    impl MessageFields for GetCheckpointRequest {
3466        const FIELDS: &'static [&'static MessageField] = &[
3467            Self::SEQUENCE_NUMBER_FIELD,
3468            Self::DIGEST_FIELD,
3469            Self::READ_MASK_FIELD,
3470        ];
3471    }
3472    impl GetCheckpointRequest {
3473        pub fn path_builder() -> GetCheckpointRequestFieldPathBuilder {
3474            GetCheckpointRequestFieldPathBuilder::new()
3475        }
3476    }
3477    pub struct GetCheckpointRequestFieldPathBuilder {
3478        path: Vec<&'static str>,
3479    }
3480    impl GetCheckpointRequestFieldPathBuilder {
3481        #[allow(clippy::new_without_default)]
3482        pub fn new() -> Self {
3483            Self { path: Default::default() }
3484        }
3485        #[doc(hidden)]
3486        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3487            Self { path: base }
3488        }
3489        pub fn finish(self) -> String {
3490            self.path.join(".")
3491        }
3492        pub fn sequence_number(mut self) -> String {
3493            self.path.push(GetCheckpointRequest::SEQUENCE_NUMBER_FIELD.name);
3494            self.finish()
3495        }
3496        pub fn digest(mut self) -> String {
3497            self.path.push(GetCheckpointRequest::DIGEST_FIELD.name);
3498            self.finish()
3499        }
3500        pub fn read_mask(mut self) -> String {
3501            self.path.push(GetCheckpointRequest::READ_MASK_FIELD.name);
3502            self.finish()
3503        }
3504    }
3505    impl GetCheckpointResponse {
3506        pub const CHECKPOINT_FIELD: &'static MessageField = &MessageField {
3507            name: "checkpoint",
3508            json_name: "checkpoint",
3509            number: 1i32,
3510            message_fields: Some(Checkpoint::FIELDS),
3511        };
3512    }
3513    impl MessageFields for GetCheckpointResponse {
3514        const FIELDS: &'static [&'static MessageField] = &[Self::CHECKPOINT_FIELD];
3515    }
3516    impl GetCheckpointResponse {
3517        pub fn path_builder() -> GetCheckpointResponseFieldPathBuilder {
3518            GetCheckpointResponseFieldPathBuilder::new()
3519        }
3520    }
3521    pub struct GetCheckpointResponseFieldPathBuilder {
3522        path: Vec<&'static str>,
3523    }
3524    impl GetCheckpointResponseFieldPathBuilder {
3525        #[allow(clippy::new_without_default)]
3526        pub fn new() -> Self {
3527            Self { path: Default::default() }
3528        }
3529        #[doc(hidden)]
3530        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3531            Self { path: base }
3532        }
3533        pub fn finish(self) -> String {
3534            self.path.join(".")
3535        }
3536        pub fn checkpoint(mut self) -> CheckpointFieldPathBuilder {
3537            self.path.push(GetCheckpointResponse::CHECKPOINT_FIELD.name);
3538            CheckpointFieldPathBuilder::new_with_base(self.path)
3539        }
3540    }
3541    impl GetEpochRequest {
3542        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
3543            name: "epoch",
3544            json_name: "epoch",
3545            number: 1i32,
3546            message_fields: None,
3547        };
3548        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
3549            name: "read_mask",
3550            json_name: "readMask",
3551            number: 2i32,
3552            message_fields: None,
3553        };
3554    }
3555    impl MessageFields for GetEpochRequest {
3556        const FIELDS: &'static [&'static MessageField] = &[
3557            Self::EPOCH_FIELD,
3558            Self::READ_MASK_FIELD,
3559        ];
3560    }
3561    impl GetEpochRequest {
3562        pub fn path_builder() -> GetEpochRequestFieldPathBuilder {
3563            GetEpochRequestFieldPathBuilder::new()
3564        }
3565    }
3566    pub struct GetEpochRequestFieldPathBuilder {
3567        path: Vec<&'static str>,
3568    }
3569    impl GetEpochRequestFieldPathBuilder {
3570        #[allow(clippy::new_without_default)]
3571        pub fn new() -> Self {
3572            Self { path: Default::default() }
3573        }
3574        #[doc(hidden)]
3575        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3576            Self { path: base }
3577        }
3578        pub fn finish(self) -> String {
3579            self.path.join(".")
3580        }
3581        pub fn epoch(mut self) -> String {
3582            self.path.push(GetEpochRequest::EPOCH_FIELD.name);
3583            self.finish()
3584        }
3585        pub fn read_mask(mut self) -> String {
3586            self.path.push(GetEpochRequest::READ_MASK_FIELD.name);
3587            self.finish()
3588        }
3589    }
3590    impl GetEpochResponse {
3591        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
3592            name: "epoch",
3593            json_name: "epoch",
3594            number: 1i32,
3595            message_fields: Some(Epoch::FIELDS),
3596        };
3597    }
3598    impl MessageFields for GetEpochResponse {
3599        const FIELDS: &'static [&'static MessageField] = &[Self::EPOCH_FIELD];
3600    }
3601    impl GetEpochResponse {
3602        pub fn path_builder() -> GetEpochResponseFieldPathBuilder {
3603            GetEpochResponseFieldPathBuilder::new()
3604        }
3605    }
3606    pub struct GetEpochResponseFieldPathBuilder {
3607        path: Vec<&'static str>,
3608    }
3609    impl GetEpochResponseFieldPathBuilder {
3610        #[allow(clippy::new_without_default)]
3611        pub fn new() -> Self {
3612            Self { path: Default::default() }
3613        }
3614        #[doc(hidden)]
3615        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3616            Self { path: base }
3617        }
3618        pub fn finish(self) -> String {
3619            self.path.join(".")
3620        }
3621        pub fn epoch(mut self) -> EpochFieldPathBuilder {
3622            self.path.push(GetEpochResponse::EPOCH_FIELD.name);
3623            EpochFieldPathBuilder::new_with_base(self.path)
3624        }
3625    }
3626    impl Package {
3627        pub const STORAGE_ID_FIELD: &'static MessageField = &MessageField {
3628            name: "storage_id",
3629            json_name: "storageId",
3630            number: 1i32,
3631            message_fields: None,
3632        };
3633        pub const ORIGINAL_ID_FIELD: &'static MessageField = &MessageField {
3634            name: "original_id",
3635            json_name: "originalId",
3636            number: 2i32,
3637            message_fields: None,
3638        };
3639        pub const VERSION_FIELD: &'static MessageField = &MessageField {
3640            name: "version",
3641            json_name: "version",
3642            number: 3i32,
3643            message_fields: None,
3644        };
3645        pub const MODULES_FIELD: &'static MessageField = &MessageField {
3646            name: "modules",
3647            json_name: "modules",
3648            number: 4i32,
3649            message_fields: Some(Module::FIELDS),
3650        };
3651        pub const TYPE_ORIGINS_FIELD: &'static MessageField = &MessageField {
3652            name: "type_origins",
3653            json_name: "typeOrigins",
3654            number: 5i32,
3655            message_fields: Some(TypeOrigin::FIELDS),
3656        };
3657        pub const LINKAGE_FIELD: &'static MessageField = &MessageField {
3658            name: "linkage",
3659            json_name: "linkage",
3660            number: 6i32,
3661            message_fields: Some(Linkage::FIELDS),
3662        };
3663    }
3664    impl MessageFields for Package {
3665        const FIELDS: &'static [&'static MessageField] = &[
3666            Self::STORAGE_ID_FIELD,
3667            Self::ORIGINAL_ID_FIELD,
3668            Self::VERSION_FIELD,
3669            Self::MODULES_FIELD,
3670            Self::TYPE_ORIGINS_FIELD,
3671            Self::LINKAGE_FIELD,
3672        ];
3673    }
3674    impl Package {
3675        pub fn path_builder() -> PackageFieldPathBuilder {
3676            PackageFieldPathBuilder::new()
3677        }
3678    }
3679    pub struct PackageFieldPathBuilder {
3680        path: Vec<&'static str>,
3681    }
3682    impl PackageFieldPathBuilder {
3683        #[allow(clippy::new_without_default)]
3684        pub fn new() -> Self {
3685            Self { path: Default::default() }
3686        }
3687        #[doc(hidden)]
3688        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3689            Self { path: base }
3690        }
3691        pub fn finish(self) -> String {
3692            self.path.join(".")
3693        }
3694        pub fn storage_id(mut self) -> String {
3695            self.path.push(Package::STORAGE_ID_FIELD.name);
3696            self.finish()
3697        }
3698        pub fn original_id(mut self) -> String {
3699            self.path.push(Package::ORIGINAL_ID_FIELD.name);
3700            self.finish()
3701        }
3702        pub fn version(mut self) -> String {
3703            self.path.push(Package::VERSION_FIELD.name);
3704            self.finish()
3705        }
3706        pub fn modules(mut self) -> ModuleFieldPathBuilder {
3707            self.path.push(Package::MODULES_FIELD.name);
3708            ModuleFieldPathBuilder::new_with_base(self.path)
3709        }
3710        pub fn type_origins(mut self) -> TypeOriginFieldPathBuilder {
3711            self.path.push(Package::TYPE_ORIGINS_FIELD.name);
3712            TypeOriginFieldPathBuilder::new_with_base(self.path)
3713        }
3714        pub fn linkage(mut self) -> LinkageFieldPathBuilder {
3715            self.path.push(Package::LINKAGE_FIELD.name);
3716            LinkageFieldPathBuilder::new_with_base(self.path)
3717        }
3718    }
3719    impl Module {
3720        pub const NAME_FIELD: &'static MessageField = &MessageField {
3721            name: "name",
3722            json_name: "name",
3723            number: 1i32,
3724            message_fields: None,
3725        };
3726        pub const CONTENTS_FIELD: &'static MessageField = &MessageField {
3727            name: "contents",
3728            json_name: "contents",
3729            number: 2i32,
3730            message_fields: None,
3731        };
3732        pub const DATATYPES_FIELD: &'static MessageField = &MessageField {
3733            name: "datatypes",
3734            json_name: "datatypes",
3735            number: 3i32,
3736            message_fields: Some(DatatypeDescriptor::FIELDS),
3737        };
3738        pub const FUNCTIONS_FIELD: &'static MessageField = &MessageField {
3739            name: "functions",
3740            json_name: "functions",
3741            number: 4i32,
3742            message_fields: Some(FunctionDescriptor::FIELDS),
3743        };
3744    }
3745    impl MessageFields for Module {
3746        const FIELDS: &'static [&'static MessageField] = &[
3747            Self::NAME_FIELD,
3748            Self::CONTENTS_FIELD,
3749            Self::DATATYPES_FIELD,
3750            Self::FUNCTIONS_FIELD,
3751        ];
3752    }
3753    impl Module {
3754        pub fn path_builder() -> ModuleFieldPathBuilder {
3755            ModuleFieldPathBuilder::new()
3756        }
3757    }
3758    pub struct ModuleFieldPathBuilder {
3759        path: Vec<&'static str>,
3760    }
3761    impl ModuleFieldPathBuilder {
3762        #[allow(clippy::new_without_default)]
3763        pub fn new() -> Self {
3764            Self { path: Default::default() }
3765        }
3766        #[doc(hidden)]
3767        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3768            Self { path: base }
3769        }
3770        pub fn finish(self) -> String {
3771            self.path.join(".")
3772        }
3773        pub fn name(mut self) -> String {
3774            self.path.push(Module::NAME_FIELD.name);
3775            self.finish()
3776        }
3777        pub fn contents(mut self) -> String {
3778            self.path.push(Module::CONTENTS_FIELD.name);
3779            self.finish()
3780        }
3781        pub fn datatypes(mut self) -> DatatypeDescriptorFieldPathBuilder {
3782            self.path.push(Module::DATATYPES_FIELD.name);
3783            DatatypeDescriptorFieldPathBuilder::new_with_base(self.path)
3784        }
3785        pub fn functions(mut self) -> FunctionDescriptorFieldPathBuilder {
3786            self.path.push(Module::FUNCTIONS_FIELD.name);
3787            FunctionDescriptorFieldPathBuilder::new_with_base(self.path)
3788        }
3789    }
3790    impl DatatypeDescriptor {
3791        pub const TYPE_NAME_FIELD: &'static MessageField = &MessageField {
3792            name: "type_name",
3793            json_name: "typeName",
3794            number: 1i32,
3795            message_fields: None,
3796        };
3797        pub const DEFINING_ID_FIELD: &'static MessageField = &MessageField {
3798            name: "defining_id",
3799            json_name: "definingId",
3800            number: 2i32,
3801            message_fields: None,
3802        };
3803        pub const MODULE_FIELD: &'static MessageField = &MessageField {
3804            name: "module",
3805            json_name: "module",
3806            number: 3i32,
3807            message_fields: None,
3808        };
3809        pub const NAME_FIELD: &'static MessageField = &MessageField {
3810            name: "name",
3811            json_name: "name",
3812            number: 4i32,
3813            message_fields: None,
3814        };
3815        pub const ABILITIES_FIELD: &'static MessageField = &MessageField {
3816            name: "abilities",
3817            json_name: "abilities",
3818            number: 5i32,
3819            message_fields: None,
3820        };
3821        pub const TYPE_PARAMETERS_FIELD: &'static MessageField = &MessageField {
3822            name: "type_parameters",
3823            json_name: "typeParameters",
3824            number: 6i32,
3825            message_fields: Some(TypeParameter::FIELDS),
3826        };
3827        pub const KIND_FIELD: &'static MessageField = &MessageField {
3828            name: "kind",
3829            json_name: "kind",
3830            number: 7i32,
3831            message_fields: None,
3832        };
3833        pub const FIELDS_FIELD: &'static MessageField = &MessageField {
3834            name: "fields",
3835            json_name: "fields",
3836            number: 8i32,
3837            message_fields: Some(FieldDescriptor::FIELDS),
3838        };
3839        pub const VARIANTS_FIELD: &'static MessageField = &MessageField {
3840            name: "variants",
3841            json_name: "variants",
3842            number: 9i32,
3843            message_fields: Some(VariantDescriptor::FIELDS),
3844        };
3845    }
3846    impl MessageFields for DatatypeDescriptor {
3847        const FIELDS: &'static [&'static MessageField] = &[
3848            Self::TYPE_NAME_FIELD,
3849            Self::DEFINING_ID_FIELD,
3850            Self::MODULE_FIELD,
3851            Self::NAME_FIELD,
3852            Self::ABILITIES_FIELD,
3853            Self::TYPE_PARAMETERS_FIELD,
3854            Self::KIND_FIELD,
3855            Self::FIELDS_FIELD,
3856            Self::VARIANTS_FIELD,
3857        ];
3858    }
3859    impl DatatypeDescriptor {
3860        pub fn path_builder() -> DatatypeDescriptorFieldPathBuilder {
3861            DatatypeDescriptorFieldPathBuilder::new()
3862        }
3863    }
3864    pub struct DatatypeDescriptorFieldPathBuilder {
3865        path: Vec<&'static str>,
3866    }
3867    impl DatatypeDescriptorFieldPathBuilder {
3868        #[allow(clippy::new_without_default)]
3869        pub fn new() -> Self {
3870            Self { path: Default::default() }
3871        }
3872        #[doc(hidden)]
3873        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3874            Self { path: base }
3875        }
3876        pub fn finish(self) -> String {
3877            self.path.join(".")
3878        }
3879        pub fn type_name(mut self) -> String {
3880            self.path.push(DatatypeDescriptor::TYPE_NAME_FIELD.name);
3881            self.finish()
3882        }
3883        pub fn defining_id(mut self) -> String {
3884            self.path.push(DatatypeDescriptor::DEFINING_ID_FIELD.name);
3885            self.finish()
3886        }
3887        pub fn module(mut self) -> String {
3888            self.path.push(DatatypeDescriptor::MODULE_FIELD.name);
3889            self.finish()
3890        }
3891        pub fn name(mut self) -> String {
3892            self.path.push(DatatypeDescriptor::NAME_FIELD.name);
3893            self.finish()
3894        }
3895        pub fn abilities(mut self) -> String {
3896            self.path.push(DatatypeDescriptor::ABILITIES_FIELD.name);
3897            self.finish()
3898        }
3899        pub fn type_parameters(mut self) -> TypeParameterFieldPathBuilder {
3900            self.path.push(DatatypeDescriptor::TYPE_PARAMETERS_FIELD.name);
3901            TypeParameterFieldPathBuilder::new_with_base(self.path)
3902        }
3903        pub fn kind(mut self) -> String {
3904            self.path.push(DatatypeDescriptor::KIND_FIELD.name);
3905            self.finish()
3906        }
3907        pub fn fields(mut self) -> FieldDescriptorFieldPathBuilder {
3908            self.path.push(DatatypeDescriptor::FIELDS_FIELD.name);
3909            FieldDescriptorFieldPathBuilder::new_with_base(self.path)
3910        }
3911        pub fn variants(mut self) -> VariantDescriptorFieldPathBuilder {
3912            self.path.push(DatatypeDescriptor::VARIANTS_FIELD.name);
3913            VariantDescriptorFieldPathBuilder::new_with_base(self.path)
3914        }
3915    }
3916    impl TypeParameter {
3917        pub const CONSTRAINTS_FIELD: &'static MessageField = &MessageField {
3918            name: "constraints",
3919            json_name: "constraints",
3920            number: 1i32,
3921            message_fields: None,
3922        };
3923        pub const IS_PHANTOM_FIELD: &'static MessageField = &MessageField {
3924            name: "is_phantom",
3925            json_name: "isPhantom",
3926            number: 2i32,
3927            message_fields: None,
3928        };
3929    }
3930    impl MessageFields for TypeParameter {
3931        const FIELDS: &'static [&'static MessageField] = &[
3932            Self::CONSTRAINTS_FIELD,
3933            Self::IS_PHANTOM_FIELD,
3934        ];
3935    }
3936    impl TypeParameter {
3937        pub fn path_builder() -> TypeParameterFieldPathBuilder {
3938            TypeParameterFieldPathBuilder::new()
3939        }
3940    }
3941    pub struct TypeParameterFieldPathBuilder {
3942        path: Vec<&'static str>,
3943    }
3944    impl TypeParameterFieldPathBuilder {
3945        #[allow(clippy::new_without_default)]
3946        pub fn new() -> Self {
3947            Self { path: Default::default() }
3948        }
3949        #[doc(hidden)]
3950        pub fn new_with_base(base: Vec<&'static str>) -> Self {
3951            Self { path: base }
3952        }
3953        pub fn finish(self) -> String {
3954            self.path.join(".")
3955        }
3956        pub fn constraints(mut self) -> String {
3957            self.path.push(TypeParameter::CONSTRAINTS_FIELD.name);
3958            self.finish()
3959        }
3960        pub fn is_phantom(mut self) -> String {
3961            self.path.push(TypeParameter::IS_PHANTOM_FIELD.name);
3962            self.finish()
3963        }
3964    }
3965    impl FieldDescriptor {
3966        pub const NAME_FIELD: &'static MessageField = &MessageField {
3967            name: "name",
3968            json_name: "name",
3969            number: 1i32,
3970            message_fields: None,
3971        };
3972        pub const POSITION_FIELD: &'static MessageField = &MessageField {
3973            name: "position",
3974            json_name: "position",
3975            number: 2i32,
3976            message_fields: None,
3977        };
3978        pub const TYPE_FIELD: &'static MessageField = &MessageField {
3979            name: "type",
3980            json_name: "type",
3981            number: 3i32,
3982            message_fields: Some(OpenSignatureBody::FIELDS),
3983        };
3984    }
3985    impl MessageFields for FieldDescriptor {
3986        const FIELDS: &'static [&'static MessageField] = &[
3987            Self::NAME_FIELD,
3988            Self::POSITION_FIELD,
3989            Self::TYPE_FIELD,
3990        ];
3991    }
3992    impl FieldDescriptor {
3993        pub fn path_builder() -> FieldDescriptorFieldPathBuilder {
3994            FieldDescriptorFieldPathBuilder::new()
3995        }
3996    }
3997    pub struct FieldDescriptorFieldPathBuilder {
3998        path: Vec<&'static str>,
3999    }
4000    impl FieldDescriptorFieldPathBuilder {
4001        #[allow(clippy::new_without_default)]
4002        pub fn new() -> Self {
4003            Self { path: Default::default() }
4004        }
4005        #[doc(hidden)]
4006        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4007            Self { path: base }
4008        }
4009        pub fn finish(self) -> String {
4010            self.path.join(".")
4011        }
4012        pub fn name(mut self) -> String {
4013            self.path.push(FieldDescriptor::NAME_FIELD.name);
4014            self.finish()
4015        }
4016        pub fn position(mut self) -> String {
4017            self.path.push(FieldDescriptor::POSITION_FIELD.name);
4018            self.finish()
4019        }
4020        pub fn r#type(mut self) -> OpenSignatureBodyFieldPathBuilder {
4021            self.path.push(FieldDescriptor::TYPE_FIELD.name);
4022            OpenSignatureBodyFieldPathBuilder::new_with_base(self.path)
4023        }
4024    }
4025    impl VariantDescriptor {
4026        pub const NAME_FIELD: &'static MessageField = &MessageField {
4027            name: "name",
4028            json_name: "name",
4029            number: 1i32,
4030            message_fields: None,
4031        };
4032        pub const POSITION_FIELD: &'static MessageField = &MessageField {
4033            name: "position",
4034            json_name: "position",
4035            number: 2i32,
4036            message_fields: None,
4037        };
4038        pub const FIELDS_FIELD: &'static MessageField = &MessageField {
4039            name: "fields",
4040            json_name: "fields",
4041            number: 3i32,
4042            message_fields: Some(FieldDescriptor::FIELDS),
4043        };
4044    }
4045    impl MessageFields for VariantDescriptor {
4046        const FIELDS: &'static [&'static MessageField] = &[
4047            Self::NAME_FIELD,
4048            Self::POSITION_FIELD,
4049            Self::FIELDS_FIELD,
4050        ];
4051    }
4052    impl VariantDescriptor {
4053        pub fn path_builder() -> VariantDescriptorFieldPathBuilder {
4054            VariantDescriptorFieldPathBuilder::new()
4055        }
4056    }
4057    pub struct VariantDescriptorFieldPathBuilder {
4058        path: Vec<&'static str>,
4059    }
4060    impl VariantDescriptorFieldPathBuilder {
4061        #[allow(clippy::new_without_default)]
4062        pub fn new() -> Self {
4063            Self { path: Default::default() }
4064        }
4065        #[doc(hidden)]
4066        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4067            Self { path: base }
4068        }
4069        pub fn finish(self) -> String {
4070            self.path.join(".")
4071        }
4072        pub fn name(mut self) -> String {
4073            self.path.push(VariantDescriptor::NAME_FIELD.name);
4074            self.finish()
4075        }
4076        pub fn position(mut self) -> String {
4077            self.path.push(VariantDescriptor::POSITION_FIELD.name);
4078            self.finish()
4079        }
4080        pub fn fields(mut self) -> FieldDescriptorFieldPathBuilder {
4081            self.path.push(VariantDescriptor::FIELDS_FIELD.name);
4082            FieldDescriptorFieldPathBuilder::new_with_base(self.path)
4083        }
4084    }
4085    impl OpenSignatureBody {
4086        pub const TYPE_FIELD: &'static MessageField = &MessageField {
4087            name: "type",
4088            json_name: "type",
4089            number: 1i32,
4090            message_fields: None,
4091        };
4092        pub const TYPE_NAME_FIELD: &'static MessageField = &MessageField {
4093            name: "type_name",
4094            json_name: "typeName",
4095            number: 2i32,
4096            message_fields: None,
4097        };
4098        pub const TYPE_PARAMETER_INSTANTIATION_FIELD: &'static MessageField = &MessageField {
4099            name: "type_parameter_instantiation",
4100            json_name: "typeParameterInstantiation",
4101            number: 3i32,
4102            message_fields: None,
4103        };
4104        pub const TYPE_PARAMETER_FIELD: &'static MessageField = &MessageField {
4105            name: "type_parameter",
4106            json_name: "typeParameter",
4107            number: 4i32,
4108            message_fields: None,
4109        };
4110    }
4111    impl MessageFields for OpenSignatureBody {
4112        const FIELDS: &'static [&'static MessageField] = &[
4113            Self::TYPE_FIELD,
4114            Self::TYPE_NAME_FIELD,
4115            Self::TYPE_PARAMETER_INSTANTIATION_FIELD,
4116            Self::TYPE_PARAMETER_FIELD,
4117        ];
4118    }
4119    impl OpenSignatureBody {
4120        pub fn path_builder() -> OpenSignatureBodyFieldPathBuilder {
4121            OpenSignatureBodyFieldPathBuilder::new()
4122        }
4123    }
4124    pub struct OpenSignatureBodyFieldPathBuilder {
4125        path: Vec<&'static str>,
4126    }
4127    impl OpenSignatureBodyFieldPathBuilder {
4128        #[allow(clippy::new_without_default)]
4129        pub fn new() -> Self {
4130            Self { path: Default::default() }
4131        }
4132        #[doc(hidden)]
4133        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4134            Self { path: base }
4135        }
4136        pub fn finish(self) -> String {
4137            self.path.join(".")
4138        }
4139        pub fn r#type(mut self) -> String {
4140            self.path.push(OpenSignatureBody::TYPE_FIELD.name);
4141            self.finish()
4142        }
4143        pub fn type_name(mut self) -> String {
4144            self.path.push(OpenSignatureBody::TYPE_NAME_FIELD.name);
4145            self.finish()
4146        }
4147        pub fn type_parameter_instantiation(mut self) -> String {
4148            self.path.push(OpenSignatureBody::TYPE_PARAMETER_INSTANTIATION_FIELD.name);
4149            self.finish()
4150        }
4151        pub fn type_parameter(mut self) -> String {
4152            self.path.push(OpenSignatureBody::TYPE_PARAMETER_FIELD.name);
4153            self.finish()
4154        }
4155    }
4156    impl FunctionDescriptor {
4157        pub const NAME_FIELD: &'static MessageField = &MessageField {
4158            name: "name",
4159            json_name: "name",
4160            number: 1i32,
4161            message_fields: None,
4162        };
4163        pub const VISIBILITY_FIELD: &'static MessageField = &MessageField {
4164            name: "visibility",
4165            json_name: "visibility",
4166            number: 5i32,
4167            message_fields: None,
4168        };
4169        pub const IS_ENTRY_FIELD: &'static MessageField = &MessageField {
4170            name: "is_entry",
4171            json_name: "isEntry",
4172            number: 6i32,
4173            message_fields: None,
4174        };
4175        pub const TYPE_PARAMETERS_FIELD: &'static MessageField = &MessageField {
4176            name: "type_parameters",
4177            json_name: "typeParameters",
4178            number: 7i32,
4179            message_fields: Some(TypeParameter::FIELDS),
4180        };
4181        pub const PARAMETERS_FIELD: &'static MessageField = &MessageField {
4182            name: "parameters",
4183            json_name: "parameters",
4184            number: 8i32,
4185            message_fields: Some(OpenSignature::FIELDS),
4186        };
4187        pub const RETURNS_FIELD: &'static MessageField = &MessageField {
4188            name: "returns",
4189            json_name: "returns",
4190            number: 9i32,
4191            message_fields: Some(OpenSignature::FIELDS),
4192        };
4193    }
4194    impl MessageFields for FunctionDescriptor {
4195        const FIELDS: &'static [&'static MessageField] = &[
4196            Self::NAME_FIELD,
4197            Self::VISIBILITY_FIELD,
4198            Self::IS_ENTRY_FIELD,
4199            Self::TYPE_PARAMETERS_FIELD,
4200            Self::PARAMETERS_FIELD,
4201            Self::RETURNS_FIELD,
4202        ];
4203    }
4204    impl FunctionDescriptor {
4205        pub fn path_builder() -> FunctionDescriptorFieldPathBuilder {
4206            FunctionDescriptorFieldPathBuilder::new()
4207        }
4208    }
4209    pub struct FunctionDescriptorFieldPathBuilder {
4210        path: Vec<&'static str>,
4211    }
4212    impl FunctionDescriptorFieldPathBuilder {
4213        #[allow(clippy::new_without_default)]
4214        pub fn new() -> Self {
4215            Self { path: Default::default() }
4216        }
4217        #[doc(hidden)]
4218        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4219            Self { path: base }
4220        }
4221        pub fn finish(self) -> String {
4222            self.path.join(".")
4223        }
4224        pub fn name(mut self) -> String {
4225            self.path.push(FunctionDescriptor::NAME_FIELD.name);
4226            self.finish()
4227        }
4228        pub fn visibility(mut self) -> String {
4229            self.path.push(FunctionDescriptor::VISIBILITY_FIELD.name);
4230            self.finish()
4231        }
4232        pub fn is_entry(mut self) -> String {
4233            self.path.push(FunctionDescriptor::IS_ENTRY_FIELD.name);
4234            self.finish()
4235        }
4236        pub fn type_parameters(mut self) -> TypeParameterFieldPathBuilder {
4237            self.path.push(FunctionDescriptor::TYPE_PARAMETERS_FIELD.name);
4238            TypeParameterFieldPathBuilder::new_with_base(self.path)
4239        }
4240        pub fn parameters(mut self) -> OpenSignatureFieldPathBuilder {
4241            self.path.push(FunctionDescriptor::PARAMETERS_FIELD.name);
4242            OpenSignatureFieldPathBuilder::new_with_base(self.path)
4243        }
4244        pub fn returns(mut self) -> OpenSignatureFieldPathBuilder {
4245            self.path.push(FunctionDescriptor::RETURNS_FIELD.name);
4246            OpenSignatureFieldPathBuilder::new_with_base(self.path)
4247        }
4248    }
4249    impl OpenSignature {
4250        pub const REFERENCE_FIELD: &'static MessageField = &MessageField {
4251            name: "reference",
4252            json_name: "reference",
4253            number: 1i32,
4254            message_fields: None,
4255        };
4256        pub const BODY_FIELD: &'static MessageField = &MessageField {
4257            name: "body",
4258            json_name: "body",
4259            number: 2i32,
4260            message_fields: Some(OpenSignatureBody::FIELDS),
4261        };
4262    }
4263    impl MessageFields for OpenSignature {
4264        const FIELDS: &'static [&'static MessageField] = &[
4265            Self::REFERENCE_FIELD,
4266            Self::BODY_FIELD,
4267        ];
4268    }
4269    impl OpenSignature {
4270        pub fn path_builder() -> OpenSignatureFieldPathBuilder {
4271            OpenSignatureFieldPathBuilder::new()
4272        }
4273    }
4274    pub struct OpenSignatureFieldPathBuilder {
4275        path: Vec<&'static str>,
4276    }
4277    impl OpenSignatureFieldPathBuilder {
4278        #[allow(clippy::new_without_default)]
4279        pub fn new() -> Self {
4280            Self { path: Default::default() }
4281        }
4282        #[doc(hidden)]
4283        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4284            Self { path: base }
4285        }
4286        pub fn finish(self) -> String {
4287            self.path.join(".")
4288        }
4289        pub fn reference(mut self) -> String {
4290            self.path.push(OpenSignature::REFERENCE_FIELD.name);
4291            self.finish()
4292        }
4293        pub fn body(mut self) -> OpenSignatureBodyFieldPathBuilder {
4294            self.path.push(OpenSignature::BODY_FIELD.name);
4295            OpenSignatureBodyFieldPathBuilder::new_with_base(self.path)
4296        }
4297    }
4298    impl TypeOrigin {
4299        pub const MODULE_NAME_FIELD: &'static MessageField = &MessageField {
4300            name: "module_name",
4301            json_name: "moduleName",
4302            number: 1i32,
4303            message_fields: None,
4304        };
4305        pub const DATATYPE_NAME_FIELD: &'static MessageField = &MessageField {
4306            name: "datatype_name",
4307            json_name: "datatypeName",
4308            number: 2i32,
4309            message_fields: None,
4310        };
4311        pub const PACKAGE_ID_FIELD: &'static MessageField = &MessageField {
4312            name: "package_id",
4313            json_name: "packageId",
4314            number: 3i32,
4315            message_fields: None,
4316        };
4317    }
4318    impl MessageFields for TypeOrigin {
4319        const FIELDS: &'static [&'static MessageField] = &[
4320            Self::MODULE_NAME_FIELD,
4321            Self::DATATYPE_NAME_FIELD,
4322            Self::PACKAGE_ID_FIELD,
4323        ];
4324    }
4325    impl TypeOrigin {
4326        pub fn path_builder() -> TypeOriginFieldPathBuilder {
4327            TypeOriginFieldPathBuilder::new()
4328        }
4329    }
4330    pub struct TypeOriginFieldPathBuilder {
4331        path: Vec<&'static str>,
4332    }
4333    impl TypeOriginFieldPathBuilder {
4334        #[allow(clippy::new_without_default)]
4335        pub fn new() -> Self {
4336            Self { path: Default::default() }
4337        }
4338        #[doc(hidden)]
4339        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4340            Self { path: base }
4341        }
4342        pub fn finish(self) -> String {
4343            self.path.join(".")
4344        }
4345        pub fn module_name(mut self) -> String {
4346            self.path.push(TypeOrigin::MODULE_NAME_FIELD.name);
4347            self.finish()
4348        }
4349        pub fn datatype_name(mut self) -> String {
4350            self.path.push(TypeOrigin::DATATYPE_NAME_FIELD.name);
4351            self.finish()
4352        }
4353        pub fn package_id(mut self) -> String {
4354            self.path.push(TypeOrigin::PACKAGE_ID_FIELD.name);
4355            self.finish()
4356        }
4357    }
4358    impl Linkage {
4359        pub const ORIGINAL_ID_FIELD: &'static MessageField = &MessageField {
4360            name: "original_id",
4361            json_name: "originalId",
4362            number: 1i32,
4363            message_fields: None,
4364        };
4365        pub const UPGRADED_ID_FIELD: &'static MessageField = &MessageField {
4366            name: "upgraded_id",
4367            json_name: "upgradedId",
4368            number: 2i32,
4369            message_fields: None,
4370        };
4371        pub const UPGRADED_VERSION_FIELD: &'static MessageField = &MessageField {
4372            name: "upgraded_version",
4373            json_name: "upgradedVersion",
4374            number: 3i32,
4375            message_fields: None,
4376        };
4377    }
4378    impl MessageFields for Linkage {
4379        const FIELDS: &'static [&'static MessageField] = &[
4380            Self::ORIGINAL_ID_FIELD,
4381            Self::UPGRADED_ID_FIELD,
4382            Self::UPGRADED_VERSION_FIELD,
4383        ];
4384    }
4385    impl Linkage {
4386        pub fn path_builder() -> LinkageFieldPathBuilder {
4387            LinkageFieldPathBuilder::new()
4388        }
4389    }
4390    pub struct LinkageFieldPathBuilder {
4391        path: Vec<&'static str>,
4392    }
4393    impl LinkageFieldPathBuilder {
4394        #[allow(clippy::new_without_default)]
4395        pub fn new() -> Self {
4396            Self { path: Default::default() }
4397        }
4398        #[doc(hidden)]
4399        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4400            Self { path: base }
4401        }
4402        pub fn finish(self) -> String {
4403            self.path.join(".")
4404        }
4405        pub fn original_id(mut self) -> String {
4406            self.path.push(Linkage::ORIGINAL_ID_FIELD.name);
4407            self.finish()
4408        }
4409        pub fn upgraded_id(mut self) -> String {
4410            self.path.push(Linkage::UPGRADED_ID_FIELD.name);
4411            self.finish()
4412        }
4413        pub fn upgraded_version(mut self) -> String {
4414            self.path.push(Linkage::UPGRADED_VERSION_FIELD.name);
4415            self.finish()
4416        }
4417    }
4418    impl GetPackageRequest {
4419        pub const PACKAGE_ID_FIELD: &'static MessageField = &MessageField {
4420            name: "package_id",
4421            json_name: "packageId",
4422            number: 1i32,
4423            message_fields: None,
4424        };
4425    }
4426    impl MessageFields for GetPackageRequest {
4427        const FIELDS: &'static [&'static MessageField] = &[Self::PACKAGE_ID_FIELD];
4428    }
4429    impl GetPackageRequest {
4430        pub fn path_builder() -> GetPackageRequestFieldPathBuilder {
4431            GetPackageRequestFieldPathBuilder::new()
4432        }
4433    }
4434    pub struct GetPackageRequestFieldPathBuilder {
4435        path: Vec<&'static str>,
4436    }
4437    impl GetPackageRequestFieldPathBuilder {
4438        #[allow(clippy::new_without_default)]
4439        pub fn new() -> Self {
4440            Self { path: Default::default() }
4441        }
4442        #[doc(hidden)]
4443        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4444            Self { path: base }
4445        }
4446        pub fn finish(self) -> String {
4447            self.path.join(".")
4448        }
4449        pub fn package_id(mut self) -> String {
4450            self.path.push(GetPackageRequest::PACKAGE_ID_FIELD.name);
4451            self.finish()
4452        }
4453    }
4454    impl GetPackageResponse {
4455        pub const PACKAGE_FIELD: &'static MessageField = &MessageField {
4456            name: "package",
4457            json_name: "package",
4458            number: 1i32,
4459            message_fields: Some(Package::FIELDS),
4460        };
4461    }
4462    impl MessageFields for GetPackageResponse {
4463        const FIELDS: &'static [&'static MessageField] = &[Self::PACKAGE_FIELD];
4464    }
4465    impl GetPackageResponse {
4466        pub fn path_builder() -> GetPackageResponseFieldPathBuilder {
4467            GetPackageResponseFieldPathBuilder::new()
4468        }
4469    }
4470    pub struct GetPackageResponseFieldPathBuilder {
4471        path: Vec<&'static str>,
4472    }
4473    impl GetPackageResponseFieldPathBuilder {
4474        #[allow(clippy::new_without_default)]
4475        pub fn new() -> Self {
4476            Self { path: Default::default() }
4477        }
4478        #[doc(hidden)]
4479        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4480            Self { path: base }
4481        }
4482        pub fn finish(self) -> String {
4483            self.path.join(".")
4484        }
4485        pub fn package(mut self) -> PackageFieldPathBuilder {
4486            self.path.push(GetPackageResponse::PACKAGE_FIELD.name);
4487            PackageFieldPathBuilder::new_with_base(self.path)
4488        }
4489    }
4490    impl GetDatatypeRequest {
4491        pub const PACKAGE_ID_FIELD: &'static MessageField = &MessageField {
4492            name: "package_id",
4493            json_name: "packageId",
4494            number: 1i32,
4495            message_fields: None,
4496        };
4497        pub const MODULE_NAME_FIELD: &'static MessageField = &MessageField {
4498            name: "module_name",
4499            json_name: "moduleName",
4500            number: 2i32,
4501            message_fields: None,
4502        };
4503        pub const NAME_FIELD: &'static MessageField = &MessageField {
4504            name: "name",
4505            json_name: "name",
4506            number: 3i32,
4507            message_fields: None,
4508        };
4509    }
4510    impl MessageFields for GetDatatypeRequest {
4511        const FIELDS: &'static [&'static MessageField] = &[
4512            Self::PACKAGE_ID_FIELD,
4513            Self::MODULE_NAME_FIELD,
4514            Self::NAME_FIELD,
4515        ];
4516    }
4517    impl GetDatatypeRequest {
4518        pub fn path_builder() -> GetDatatypeRequestFieldPathBuilder {
4519            GetDatatypeRequestFieldPathBuilder::new()
4520        }
4521    }
4522    pub struct GetDatatypeRequestFieldPathBuilder {
4523        path: Vec<&'static str>,
4524    }
4525    impl GetDatatypeRequestFieldPathBuilder {
4526        #[allow(clippy::new_without_default)]
4527        pub fn new() -> Self {
4528            Self { path: Default::default() }
4529        }
4530        #[doc(hidden)]
4531        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4532            Self { path: base }
4533        }
4534        pub fn finish(self) -> String {
4535            self.path.join(".")
4536        }
4537        pub fn package_id(mut self) -> String {
4538            self.path.push(GetDatatypeRequest::PACKAGE_ID_FIELD.name);
4539            self.finish()
4540        }
4541        pub fn module_name(mut self) -> String {
4542            self.path.push(GetDatatypeRequest::MODULE_NAME_FIELD.name);
4543            self.finish()
4544        }
4545        pub fn name(mut self) -> String {
4546            self.path.push(GetDatatypeRequest::NAME_FIELD.name);
4547            self.finish()
4548        }
4549    }
4550    impl GetDatatypeResponse {
4551        pub const DATATYPE_FIELD: &'static MessageField = &MessageField {
4552            name: "datatype",
4553            json_name: "datatype",
4554            number: 1i32,
4555            message_fields: Some(DatatypeDescriptor::FIELDS),
4556        };
4557    }
4558    impl MessageFields for GetDatatypeResponse {
4559        const FIELDS: &'static [&'static MessageField] = &[Self::DATATYPE_FIELD];
4560    }
4561    impl GetDatatypeResponse {
4562        pub fn path_builder() -> GetDatatypeResponseFieldPathBuilder {
4563            GetDatatypeResponseFieldPathBuilder::new()
4564        }
4565    }
4566    pub struct GetDatatypeResponseFieldPathBuilder {
4567        path: Vec<&'static str>,
4568    }
4569    impl GetDatatypeResponseFieldPathBuilder {
4570        #[allow(clippy::new_without_default)]
4571        pub fn new() -> Self {
4572            Self { path: Default::default() }
4573        }
4574        #[doc(hidden)]
4575        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4576            Self { path: base }
4577        }
4578        pub fn finish(self) -> String {
4579            self.path.join(".")
4580        }
4581        pub fn datatype(mut self) -> DatatypeDescriptorFieldPathBuilder {
4582            self.path.push(GetDatatypeResponse::DATATYPE_FIELD.name);
4583            DatatypeDescriptorFieldPathBuilder::new_with_base(self.path)
4584        }
4585    }
4586    impl GetFunctionRequest {
4587        pub const PACKAGE_ID_FIELD: &'static MessageField = &MessageField {
4588            name: "package_id",
4589            json_name: "packageId",
4590            number: 1i32,
4591            message_fields: None,
4592        };
4593        pub const MODULE_NAME_FIELD: &'static MessageField = &MessageField {
4594            name: "module_name",
4595            json_name: "moduleName",
4596            number: 2i32,
4597            message_fields: None,
4598        };
4599        pub const NAME_FIELD: &'static MessageField = &MessageField {
4600            name: "name",
4601            json_name: "name",
4602            number: 3i32,
4603            message_fields: None,
4604        };
4605    }
4606    impl MessageFields for GetFunctionRequest {
4607        const FIELDS: &'static [&'static MessageField] = &[
4608            Self::PACKAGE_ID_FIELD,
4609            Self::MODULE_NAME_FIELD,
4610            Self::NAME_FIELD,
4611        ];
4612    }
4613    impl GetFunctionRequest {
4614        pub fn path_builder() -> GetFunctionRequestFieldPathBuilder {
4615            GetFunctionRequestFieldPathBuilder::new()
4616        }
4617    }
4618    pub struct GetFunctionRequestFieldPathBuilder {
4619        path: Vec<&'static str>,
4620    }
4621    impl GetFunctionRequestFieldPathBuilder {
4622        #[allow(clippy::new_without_default)]
4623        pub fn new() -> Self {
4624            Self { path: Default::default() }
4625        }
4626        #[doc(hidden)]
4627        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4628            Self { path: base }
4629        }
4630        pub fn finish(self) -> String {
4631            self.path.join(".")
4632        }
4633        pub fn package_id(mut self) -> String {
4634            self.path.push(GetFunctionRequest::PACKAGE_ID_FIELD.name);
4635            self.finish()
4636        }
4637        pub fn module_name(mut self) -> String {
4638            self.path.push(GetFunctionRequest::MODULE_NAME_FIELD.name);
4639            self.finish()
4640        }
4641        pub fn name(mut self) -> String {
4642            self.path.push(GetFunctionRequest::NAME_FIELD.name);
4643            self.finish()
4644        }
4645    }
4646    impl GetFunctionResponse {
4647        pub const FUNCTION_FIELD: &'static MessageField = &MessageField {
4648            name: "function",
4649            json_name: "function",
4650            number: 1i32,
4651            message_fields: Some(FunctionDescriptor::FIELDS),
4652        };
4653    }
4654    impl MessageFields for GetFunctionResponse {
4655        const FIELDS: &'static [&'static MessageField] = &[Self::FUNCTION_FIELD];
4656    }
4657    impl GetFunctionResponse {
4658        pub fn path_builder() -> GetFunctionResponseFieldPathBuilder {
4659            GetFunctionResponseFieldPathBuilder::new()
4660        }
4661    }
4662    pub struct GetFunctionResponseFieldPathBuilder {
4663        path: Vec<&'static str>,
4664    }
4665    impl GetFunctionResponseFieldPathBuilder {
4666        #[allow(clippy::new_without_default)]
4667        pub fn new() -> Self {
4668            Self { path: Default::default() }
4669        }
4670        #[doc(hidden)]
4671        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4672            Self { path: base }
4673        }
4674        pub fn finish(self) -> String {
4675            self.path.join(".")
4676        }
4677        pub fn function(mut self) -> FunctionDescriptorFieldPathBuilder {
4678            self.path.push(GetFunctionResponse::FUNCTION_FIELD.name);
4679            FunctionDescriptorFieldPathBuilder::new_with_base(self.path)
4680        }
4681    }
4682    impl ListPackageVersionsRequest {
4683        pub const PACKAGE_ID_FIELD: &'static MessageField = &MessageField {
4684            name: "package_id",
4685            json_name: "packageId",
4686            number: 1i32,
4687            message_fields: None,
4688        };
4689        pub const PAGE_SIZE_FIELD: &'static MessageField = &MessageField {
4690            name: "page_size",
4691            json_name: "pageSize",
4692            number: 2i32,
4693            message_fields: None,
4694        };
4695        pub const PAGE_TOKEN_FIELD: &'static MessageField = &MessageField {
4696            name: "page_token",
4697            json_name: "pageToken",
4698            number: 3i32,
4699            message_fields: None,
4700        };
4701    }
4702    impl MessageFields for ListPackageVersionsRequest {
4703        const FIELDS: &'static [&'static MessageField] = &[
4704            Self::PACKAGE_ID_FIELD,
4705            Self::PAGE_SIZE_FIELD,
4706            Self::PAGE_TOKEN_FIELD,
4707        ];
4708    }
4709    impl ListPackageVersionsRequest {
4710        pub fn path_builder() -> ListPackageVersionsRequestFieldPathBuilder {
4711            ListPackageVersionsRequestFieldPathBuilder::new()
4712        }
4713    }
4714    pub struct ListPackageVersionsRequestFieldPathBuilder {
4715        path: Vec<&'static str>,
4716    }
4717    impl ListPackageVersionsRequestFieldPathBuilder {
4718        #[allow(clippy::new_without_default)]
4719        pub fn new() -> Self {
4720            Self { path: Default::default() }
4721        }
4722        #[doc(hidden)]
4723        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4724            Self { path: base }
4725        }
4726        pub fn finish(self) -> String {
4727            self.path.join(".")
4728        }
4729        pub fn package_id(mut self) -> String {
4730            self.path.push(ListPackageVersionsRequest::PACKAGE_ID_FIELD.name);
4731            self.finish()
4732        }
4733        pub fn page_size(mut self) -> String {
4734            self.path.push(ListPackageVersionsRequest::PAGE_SIZE_FIELD.name);
4735            self.finish()
4736        }
4737        pub fn page_token(mut self) -> String {
4738            self.path.push(ListPackageVersionsRequest::PAGE_TOKEN_FIELD.name);
4739            self.finish()
4740        }
4741    }
4742    impl ListPackageVersionsResponse {
4743        pub const VERSIONS_FIELD: &'static MessageField = &MessageField {
4744            name: "versions",
4745            json_name: "versions",
4746            number: 1i32,
4747            message_fields: Some(PackageVersion::FIELDS),
4748        };
4749        pub const NEXT_PAGE_TOKEN_FIELD: &'static MessageField = &MessageField {
4750            name: "next_page_token",
4751            json_name: "nextPageToken",
4752            number: 2i32,
4753            message_fields: None,
4754        };
4755    }
4756    impl MessageFields for ListPackageVersionsResponse {
4757        const FIELDS: &'static [&'static MessageField] = &[
4758            Self::VERSIONS_FIELD,
4759            Self::NEXT_PAGE_TOKEN_FIELD,
4760        ];
4761    }
4762    impl ListPackageVersionsResponse {
4763        pub fn path_builder() -> ListPackageVersionsResponseFieldPathBuilder {
4764            ListPackageVersionsResponseFieldPathBuilder::new()
4765        }
4766    }
4767    pub struct ListPackageVersionsResponseFieldPathBuilder {
4768        path: Vec<&'static str>,
4769    }
4770    impl ListPackageVersionsResponseFieldPathBuilder {
4771        #[allow(clippy::new_without_default)]
4772        pub fn new() -> Self {
4773            Self { path: Default::default() }
4774        }
4775        #[doc(hidden)]
4776        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4777            Self { path: base }
4778        }
4779        pub fn finish(self) -> String {
4780            self.path.join(".")
4781        }
4782        pub fn versions(mut self) -> PackageVersionFieldPathBuilder {
4783            self.path.push(ListPackageVersionsResponse::VERSIONS_FIELD.name);
4784            PackageVersionFieldPathBuilder::new_with_base(self.path)
4785        }
4786        pub fn next_page_token(mut self) -> String {
4787            self.path.push(ListPackageVersionsResponse::NEXT_PAGE_TOKEN_FIELD.name);
4788            self.finish()
4789        }
4790    }
4791    impl PackageVersion {
4792        pub const PACKAGE_ID_FIELD: &'static MessageField = &MessageField {
4793            name: "package_id",
4794            json_name: "packageId",
4795            number: 1i32,
4796            message_fields: None,
4797        };
4798        pub const VERSION_FIELD: &'static MessageField = &MessageField {
4799            name: "version",
4800            json_name: "version",
4801            number: 2i32,
4802            message_fields: None,
4803        };
4804    }
4805    impl MessageFields for PackageVersion {
4806        const FIELDS: &'static [&'static MessageField] = &[
4807            Self::PACKAGE_ID_FIELD,
4808            Self::VERSION_FIELD,
4809        ];
4810    }
4811    impl PackageVersion {
4812        pub fn path_builder() -> PackageVersionFieldPathBuilder {
4813            PackageVersionFieldPathBuilder::new()
4814        }
4815    }
4816    pub struct PackageVersionFieldPathBuilder {
4817        path: Vec<&'static str>,
4818    }
4819    impl PackageVersionFieldPathBuilder {
4820        #[allow(clippy::new_without_default)]
4821        pub fn new() -> Self {
4822            Self { path: Default::default() }
4823        }
4824        #[doc(hidden)]
4825        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4826            Self { path: base }
4827        }
4828        pub fn finish(self) -> String {
4829            self.path.join(".")
4830        }
4831        pub fn package_id(mut self) -> String {
4832            self.path.push(PackageVersion::PACKAGE_ID_FIELD.name);
4833            self.finish()
4834        }
4835        pub fn version(mut self) -> String {
4836            self.path.push(PackageVersion::VERSION_FIELD.name);
4837            self.finish()
4838        }
4839    }
4840    impl LookupNameRequest {
4841        pub const NAME_FIELD: &'static MessageField = &MessageField {
4842            name: "name",
4843            json_name: "name",
4844            number: 1i32,
4845            message_fields: None,
4846        };
4847    }
4848    impl MessageFields for LookupNameRequest {
4849        const FIELDS: &'static [&'static MessageField] = &[Self::NAME_FIELD];
4850    }
4851    impl LookupNameRequest {
4852        pub fn path_builder() -> LookupNameRequestFieldPathBuilder {
4853            LookupNameRequestFieldPathBuilder::new()
4854        }
4855    }
4856    pub struct LookupNameRequestFieldPathBuilder {
4857        path: Vec<&'static str>,
4858    }
4859    impl LookupNameRequestFieldPathBuilder {
4860        #[allow(clippy::new_without_default)]
4861        pub fn new() -> Self {
4862            Self { path: Default::default() }
4863        }
4864        #[doc(hidden)]
4865        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4866            Self { path: base }
4867        }
4868        pub fn finish(self) -> String {
4869            self.path.join(".")
4870        }
4871        pub fn name(mut self) -> String {
4872            self.path.push(LookupNameRequest::NAME_FIELD.name);
4873            self.finish()
4874        }
4875    }
4876    impl LookupNameResponse {
4877        pub const RECORD_FIELD: &'static MessageField = &MessageField {
4878            name: "record",
4879            json_name: "record",
4880            number: 1i32,
4881            message_fields: Some(NameRecord::FIELDS),
4882        };
4883    }
4884    impl MessageFields for LookupNameResponse {
4885        const FIELDS: &'static [&'static MessageField] = &[Self::RECORD_FIELD];
4886    }
4887    impl LookupNameResponse {
4888        pub fn path_builder() -> LookupNameResponseFieldPathBuilder {
4889            LookupNameResponseFieldPathBuilder::new()
4890        }
4891    }
4892    pub struct LookupNameResponseFieldPathBuilder {
4893        path: Vec<&'static str>,
4894    }
4895    impl LookupNameResponseFieldPathBuilder {
4896        #[allow(clippy::new_without_default)]
4897        pub fn new() -> Self {
4898            Self { path: Default::default() }
4899        }
4900        #[doc(hidden)]
4901        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4902            Self { path: base }
4903        }
4904        pub fn finish(self) -> String {
4905            self.path.join(".")
4906        }
4907        pub fn record(mut self) -> NameRecordFieldPathBuilder {
4908            self.path.push(LookupNameResponse::RECORD_FIELD.name);
4909            NameRecordFieldPathBuilder::new_with_base(self.path)
4910        }
4911    }
4912    impl ReverseLookupNameRequest {
4913        pub const ADDRESS_FIELD: &'static MessageField = &MessageField {
4914            name: "address",
4915            json_name: "address",
4916            number: 1i32,
4917            message_fields: None,
4918        };
4919    }
4920    impl MessageFields for ReverseLookupNameRequest {
4921        const FIELDS: &'static [&'static MessageField] = &[Self::ADDRESS_FIELD];
4922    }
4923    impl ReverseLookupNameRequest {
4924        pub fn path_builder() -> ReverseLookupNameRequestFieldPathBuilder {
4925            ReverseLookupNameRequestFieldPathBuilder::new()
4926        }
4927    }
4928    pub struct ReverseLookupNameRequestFieldPathBuilder {
4929        path: Vec<&'static str>,
4930    }
4931    impl ReverseLookupNameRequestFieldPathBuilder {
4932        #[allow(clippy::new_without_default)]
4933        pub fn new() -> Self {
4934            Self { path: Default::default() }
4935        }
4936        #[doc(hidden)]
4937        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4938            Self { path: base }
4939        }
4940        pub fn finish(self) -> String {
4941            self.path.join(".")
4942        }
4943        pub fn address(mut self) -> String {
4944            self.path.push(ReverseLookupNameRequest::ADDRESS_FIELD.name);
4945            self.finish()
4946        }
4947    }
4948    impl ReverseLookupNameResponse {
4949        pub const RECORD_FIELD: &'static MessageField = &MessageField {
4950            name: "record",
4951            json_name: "record",
4952            number: 1i32,
4953            message_fields: Some(NameRecord::FIELDS),
4954        };
4955    }
4956    impl MessageFields for ReverseLookupNameResponse {
4957        const FIELDS: &'static [&'static MessageField] = &[Self::RECORD_FIELD];
4958    }
4959    impl ReverseLookupNameResponse {
4960        pub fn path_builder() -> ReverseLookupNameResponseFieldPathBuilder {
4961            ReverseLookupNameResponseFieldPathBuilder::new()
4962        }
4963    }
4964    pub struct ReverseLookupNameResponseFieldPathBuilder {
4965        path: Vec<&'static str>,
4966    }
4967    impl ReverseLookupNameResponseFieldPathBuilder {
4968        #[allow(clippy::new_without_default)]
4969        pub fn new() -> Self {
4970            Self { path: Default::default() }
4971        }
4972        #[doc(hidden)]
4973        pub fn new_with_base(base: Vec<&'static str>) -> Self {
4974            Self { path: base }
4975        }
4976        pub fn finish(self) -> String {
4977            self.path.join(".")
4978        }
4979        pub fn record(mut self) -> NameRecordFieldPathBuilder {
4980            self.path.push(ReverseLookupNameResponse::RECORD_FIELD.name);
4981            NameRecordFieldPathBuilder::new_with_base(self.path)
4982        }
4983    }
4984    impl NameRecord {
4985        pub const ID_FIELD: &'static MessageField = &MessageField {
4986            name: "id",
4987            json_name: "id",
4988            number: 1i32,
4989            message_fields: None,
4990        };
4991        pub const NAME_FIELD: &'static MessageField = &MessageField {
4992            name: "name",
4993            json_name: "name",
4994            number: 2i32,
4995            message_fields: None,
4996        };
4997        pub const REGISTRATION_NFT_ID_FIELD: &'static MessageField = &MessageField {
4998            name: "registration_nft_id",
4999            json_name: "registrationNftId",
5000            number: 3i32,
5001            message_fields: None,
5002        };
5003        pub const EXPIRATION_TIMESTAMP_FIELD: &'static MessageField = &MessageField {
5004            name: "expiration_timestamp",
5005            json_name: "expirationTimestamp",
5006            number: 4i32,
5007            message_fields: None,
5008        };
5009        pub const TARGET_ADDRESS_FIELD: &'static MessageField = &MessageField {
5010            name: "target_address",
5011            json_name: "targetAddress",
5012            number: 5i32,
5013            message_fields: None,
5014        };
5015        pub const DATA_FIELD: &'static MessageField = &MessageField {
5016            name: "data",
5017            json_name: "data",
5018            number: 6i32,
5019            message_fields: None,
5020        };
5021    }
5022    impl MessageFields for NameRecord {
5023        const FIELDS: &'static [&'static MessageField] = &[
5024            Self::ID_FIELD,
5025            Self::NAME_FIELD,
5026            Self::REGISTRATION_NFT_ID_FIELD,
5027            Self::EXPIRATION_TIMESTAMP_FIELD,
5028            Self::TARGET_ADDRESS_FIELD,
5029            Self::DATA_FIELD,
5030        ];
5031    }
5032    impl NameRecord {
5033        pub fn path_builder() -> NameRecordFieldPathBuilder {
5034            NameRecordFieldPathBuilder::new()
5035        }
5036    }
5037    pub struct NameRecordFieldPathBuilder {
5038        path: Vec<&'static str>,
5039    }
5040    impl NameRecordFieldPathBuilder {
5041        #[allow(clippy::new_without_default)]
5042        pub fn new() -> Self {
5043            Self { path: Default::default() }
5044        }
5045        #[doc(hidden)]
5046        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5047            Self { path: base }
5048        }
5049        pub fn finish(self) -> String {
5050            self.path.join(".")
5051        }
5052        pub fn id(mut self) -> String {
5053            self.path.push(NameRecord::ID_FIELD.name);
5054            self.finish()
5055        }
5056        pub fn name(mut self) -> String {
5057            self.path.push(NameRecord::NAME_FIELD.name);
5058            self.finish()
5059        }
5060        pub fn registration_nft_id(mut self) -> String {
5061            self.path.push(NameRecord::REGISTRATION_NFT_ID_FIELD.name);
5062            self.finish()
5063        }
5064        pub fn expiration_timestamp(mut self) -> String {
5065            self.path.push(NameRecord::EXPIRATION_TIMESTAMP_FIELD.name);
5066            self.finish()
5067        }
5068        pub fn target_address(mut self) -> String {
5069            self.path.push(NameRecord::TARGET_ADDRESS_FIELD.name);
5070            self.finish()
5071        }
5072        pub fn data(mut self) -> String {
5073            self.path.push(NameRecord::DATA_FIELD.name);
5074            self.finish()
5075        }
5076    }
5077    impl Object {
5078        pub const BCS_FIELD: &'static MessageField = &MessageField {
5079            name: "bcs",
5080            json_name: "bcs",
5081            number: 1i32,
5082            message_fields: Some(Bcs::FIELDS),
5083        };
5084        pub const OBJECT_ID_FIELD: &'static MessageField = &MessageField {
5085            name: "object_id",
5086            json_name: "objectId",
5087            number: 2i32,
5088            message_fields: None,
5089        };
5090        pub const VERSION_FIELD: &'static MessageField = &MessageField {
5091            name: "version",
5092            json_name: "version",
5093            number: 3i32,
5094            message_fields: None,
5095        };
5096        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
5097            name: "digest",
5098            json_name: "digest",
5099            number: 4i32,
5100            message_fields: None,
5101        };
5102        pub const OWNER_FIELD: &'static MessageField = &MessageField {
5103            name: "owner",
5104            json_name: "owner",
5105            number: 5i32,
5106            message_fields: Some(Owner::FIELDS),
5107        };
5108        pub const OBJECT_TYPE_FIELD: &'static MessageField = &MessageField {
5109            name: "object_type",
5110            json_name: "objectType",
5111            number: 6i32,
5112            message_fields: None,
5113        };
5114        pub const HAS_PUBLIC_TRANSFER_FIELD: &'static MessageField = &MessageField {
5115            name: "has_public_transfer",
5116            json_name: "hasPublicTransfer",
5117            number: 7i32,
5118            message_fields: None,
5119        };
5120        pub const CONTENTS_FIELD: &'static MessageField = &MessageField {
5121            name: "contents",
5122            json_name: "contents",
5123            number: 8i32,
5124            message_fields: Some(Bcs::FIELDS),
5125        };
5126        pub const PACKAGE_FIELD: &'static MessageField = &MessageField {
5127            name: "package",
5128            json_name: "package",
5129            number: 9i32,
5130            message_fields: Some(Package::FIELDS),
5131        };
5132        pub const PREVIOUS_TRANSACTION_FIELD: &'static MessageField = &MessageField {
5133            name: "previous_transaction",
5134            json_name: "previousTransaction",
5135            number: 10i32,
5136            message_fields: None,
5137        };
5138        pub const STORAGE_REBATE_FIELD: &'static MessageField = &MessageField {
5139            name: "storage_rebate",
5140            json_name: "storageRebate",
5141            number: 11i32,
5142            message_fields: None,
5143        };
5144        pub const JSON_FIELD: &'static MessageField = &MessageField {
5145            name: "json",
5146            json_name: "json",
5147            number: 100i32,
5148            message_fields: None,
5149        };
5150        pub const BALANCE_FIELD: &'static MessageField = &MessageField {
5151            name: "balance",
5152            json_name: "balance",
5153            number: 101i32,
5154            message_fields: None,
5155        };
5156    }
5157    impl MessageFields for Object {
5158        const FIELDS: &'static [&'static MessageField] = &[
5159            Self::BCS_FIELD,
5160            Self::OBJECT_ID_FIELD,
5161            Self::VERSION_FIELD,
5162            Self::DIGEST_FIELD,
5163            Self::OWNER_FIELD,
5164            Self::OBJECT_TYPE_FIELD,
5165            Self::HAS_PUBLIC_TRANSFER_FIELD,
5166            Self::CONTENTS_FIELD,
5167            Self::PACKAGE_FIELD,
5168            Self::PREVIOUS_TRANSACTION_FIELD,
5169            Self::STORAGE_REBATE_FIELD,
5170            Self::JSON_FIELD,
5171            Self::BALANCE_FIELD,
5172        ];
5173    }
5174    impl Object {
5175        pub fn path_builder() -> ObjectFieldPathBuilder {
5176            ObjectFieldPathBuilder::new()
5177        }
5178    }
5179    pub struct ObjectFieldPathBuilder {
5180        path: Vec<&'static str>,
5181    }
5182    impl ObjectFieldPathBuilder {
5183        #[allow(clippy::new_without_default)]
5184        pub fn new() -> Self {
5185            Self { path: Default::default() }
5186        }
5187        #[doc(hidden)]
5188        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5189            Self { path: base }
5190        }
5191        pub fn finish(self) -> String {
5192            self.path.join(".")
5193        }
5194        pub fn bcs(mut self) -> BcsFieldPathBuilder {
5195            self.path.push(Object::BCS_FIELD.name);
5196            BcsFieldPathBuilder::new_with_base(self.path)
5197        }
5198        pub fn object_id(mut self) -> String {
5199            self.path.push(Object::OBJECT_ID_FIELD.name);
5200            self.finish()
5201        }
5202        pub fn version(mut self) -> String {
5203            self.path.push(Object::VERSION_FIELD.name);
5204            self.finish()
5205        }
5206        pub fn digest(mut self) -> String {
5207            self.path.push(Object::DIGEST_FIELD.name);
5208            self.finish()
5209        }
5210        pub fn owner(mut self) -> OwnerFieldPathBuilder {
5211            self.path.push(Object::OWNER_FIELD.name);
5212            OwnerFieldPathBuilder::new_with_base(self.path)
5213        }
5214        pub fn object_type(mut self) -> String {
5215            self.path.push(Object::OBJECT_TYPE_FIELD.name);
5216            self.finish()
5217        }
5218        pub fn has_public_transfer(mut self) -> String {
5219            self.path.push(Object::HAS_PUBLIC_TRANSFER_FIELD.name);
5220            self.finish()
5221        }
5222        pub fn contents(mut self) -> BcsFieldPathBuilder {
5223            self.path.push(Object::CONTENTS_FIELD.name);
5224            BcsFieldPathBuilder::new_with_base(self.path)
5225        }
5226        pub fn package(mut self) -> PackageFieldPathBuilder {
5227            self.path.push(Object::PACKAGE_FIELD.name);
5228            PackageFieldPathBuilder::new_with_base(self.path)
5229        }
5230        pub fn previous_transaction(mut self) -> String {
5231            self.path.push(Object::PREVIOUS_TRANSACTION_FIELD.name);
5232            self.finish()
5233        }
5234        pub fn storage_rebate(mut self) -> String {
5235            self.path.push(Object::STORAGE_REBATE_FIELD.name);
5236            self.finish()
5237        }
5238        pub fn json(mut self) -> String {
5239            self.path.push(Object::JSON_FIELD.name);
5240            self.finish()
5241        }
5242        pub fn balance(mut self) -> String {
5243            self.path.push(Object::BALANCE_FIELD.name);
5244            self.finish()
5245        }
5246    }
5247    impl ObjectSet {
5248        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
5249            name: "objects",
5250            json_name: "objects",
5251            number: 1i32,
5252            message_fields: Some(Object::FIELDS),
5253        };
5254    }
5255    impl MessageFields for ObjectSet {
5256        const FIELDS: &'static [&'static MessageField] = &[Self::OBJECTS_FIELD];
5257    }
5258    impl ObjectSet {
5259        pub fn path_builder() -> ObjectSetFieldPathBuilder {
5260            ObjectSetFieldPathBuilder::new()
5261        }
5262    }
5263    pub struct ObjectSetFieldPathBuilder {
5264        path: Vec<&'static str>,
5265    }
5266    impl ObjectSetFieldPathBuilder {
5267        #[allow(clippy::new_without_default)]
5268        pub fn new() -> Self {
5269            Self { path: Default::default() }
5270        }
5271        #[doc(hidden)]
5272        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5273            Self { path: base }
5274        }
5275        pub fn finish(self) -> String {
5276            self.path.join(".")
5277        }
5278        pub fn objects(mut self) -> ObjectFieldPathBuilder {
5279            self.path.push(ObjectSet::OBJECTS_FIELD.name);
5280            ObjectFieldPathBuilder::new_with_base(self.path)
5281        }
5282    }
5283    impl ObjectReference {
5284        pub const OBJECT_ID_FIELD: &'static MessageField = &MessageField {
5285            name: "object_id",
5286            json_name: "objectId",
5287            number: 1i32,
5288            message_fields: None,
5289        };
5290        pub const VERSION_FIELD: &'static MessageField = &MessageField {
5291            name: "version",
5292            json_name: "version",
5293            number: 2i32,
5294            message_fields: None,
5295        };
5296        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
5297            name: "digest",
5298            json_name: "digest",
5299            number: 3i32,
5300            message_fields: None,
5301        };
5302    }
5303    impl MessageFields for ObjectReference {
5304        const FIELDS: &'static [&'static MessageField] = &[
5305            Self::OBJECT_ID_FIELD,
5306            Self::VERSION_FIELD,
5307            Self::DIGEST_FIELD,
5308        ];
5309    }
5310    impl ObjectReference {
5311        pub fn path_builder() -> ObjectReferenceFieldPathBuilder {
5312            ObjectReferenceFieldPathBuilder::new()
5313        }
5314    }
5315    pub struct ObjectReferenceFieldPathBuilder {
5316        path: Vec<&'static str>,
5317    }
5318    impl ObjectReferenceFieldPathBuilder {
5319        #[allow(clippy::new_without_default)]
5320        pub fn new() -> Self {
5321            Self { path: Default::default() }
5322        }
5323        #[doc(hidden)]
5324        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5325            Self { path: base }
5326        }
5327        pub fn finish(self) -> String {
5328            self.path.join(".")
5329        }
5330        pub fn object_id(mut self) -> String {
5331            self.path.push(ObjectReference::OBJECT_ID_FIELD.name);
5332            self.finish()
5333        }
5334        pub fn version(mut self) -> String {
5335            self.path.push(ObjectReference::VERSION_FIELD.name);
5336            self.finish()
5337        }
5338        pub fn digest(mut self) -> String {
5339            self.path.push(ObjectReference::DIGEST_FIELD.name);
5340            self.finish()
5341        }
5342    }
5343    impl Owner {
5344        pub const KIND_FIELD: &'static MessageField = &MessageField {
5345            name: "kind",
5346            json_name: "kind",
5347            number: 1i32,
5348            message_fields: None,
5349        };
5350        pub const ADDRESS_FIELD: &'static MessageField = &MessageField {
5351            name: "address",
5352            json_name: "address",
5353            number: 2i32,
5354            message_fields: None,
5355        };
5356        pub const VERSION_FIELD: &'static MessageField = &MessageField {
5357            name: "version",
5358            json_name: "version",
5359            number: 3i32,
5360            message_fields: None,
5361        };
5362    }
5363    impl MessageFields for Owner {
5364        const FIELDS: &'static [&'static MessageField] = &[
5365            Self::KIND_FIELD,
5366            Self::ADDRESS_FIELD,
5367            Self::VERSION_FIELD,
5368        ];
5369    }
5370    impl Owner {
5371        pub fn path_builder() -> OwnerFieldPathBuilder {
5372            OwnerFieldPathBuilder::new()
5373        }
5374    }
5375    pub struct OwnerFieldPathBuilder {
5376        path: Vec<&'static str>,
5377    }
5378    impl OwnerFieldPathBuilder {
5379        #[allow(clippy::new_without_default)]
5380        pub fn new() -> Self {
5381            Self { path: Default::default() }
5382        }
5383        #[doc(hidden)]
5384        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5385            Self { path: base }
5386        }
5387        pub fn finish(self) -> String {
5388            self.path.join(".")
5389        }
5390        pub fn kind(mut self) -> String {
5391            self.path.push(Owner::KIND_FIELD.name);
5392            self.finish()
5393        }
5394        pub fn address(mut self) -> String {
5395            self.path.push(Owner::ADDRESS_FIELD.name);
5396            self.finish()
5397        }
5398        pub fn version(mut self) -> String {
5399            self.path.push(Owner::VERSION_FIELD.name);
5400            self.finish()
5401        }
5402    }
5403    impl ProtocolConfig {
5404        pub const PROTOCOL_VERSION_FIELD: &'static MessageField = &MessageField {
5405            name: "protocol_version",
5406            json_name: "protocolVersion",
5407            number: 1i32,
5408            message_fields: None,
5409        };
5410        pub const FEATURE_FLAGS_FIELD: &'static MessageField = &MessageField {
5411            name: "feature_flags",
5412            json_name: "featureFlags",
5413            number: 2i32,
5414            message_fields: None,
5415        };
5416        pub const ATTRIBUTES_FIELD: &'static MessageField = &MessageField {
5417            name: "attributes",
5418            json_name: "attributes",
5419            number: 3i32,
5420            message_fields: None,
5421        };
5422    }
5423    impl MessageFields for ProtocolConfig {
5424        const FIELDS: &'static [&'static MessageField] = &[
5425            Self::PROTOCOL_VERSION_FIELD,
5426            Self::FEATURE_FLAGS_FIELD,
5427            Self::ATTRIBUTES_FIELD,
5428        ];
5429    }
5430    impl ProtocolConfig {
5431        pub fn path_builder() -> ProtocolConfigFieldPathBuilder {
5432            ProtocolConfigFieldPathBuilder::new()
5433        }
5434    }
5435    pub struct ProtocolConfigFieldPathBuilder {
5436        path: Vec<&'static str>,
5437    }
5438    impl ProtocolConfigFieldPathBuilder {
5439        #[allow(clippy::new_without_default)]
5440        pub fn new() -> Self {
5441            Self { path: Default::default() }
5442        }
5443        #[doc(hidden)]
5444        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5445            Self { path: base }
5446        }
5447        pub fn finish(self) -> String {
5448            self.path.join(".")
5449        }
5450        pub fn protocol_version(mut self) -> String {
5451            self.path.push(ProtocolConfig::PROTOCOL_VERSION_FIELD.name);
5452            self.finish()
5453        }
5454        pub fn feature_flags(mut self) -> String {
5455            self.path.push(ProtocolConfig::FEATURE_FLAGS_FIELD.name);
5456            self.finish()
5457        }
5458        pub fn attributes(mut self) -> String {
5459            self.path.push(ProtocolConfig::ATTRIBUTES_FIELD.name);
5460            self.finish()
5461        }
5462    }
5463    impl UserSignature {
5464        pub const BCS_FIELD: &'static MessageField = &MessageField {
5465            name: "bcs",
5466            json_name: "bcs",
5467            number: 1i32,
5468            message_fields: Some(Bcs::FIELDS),
5469        };
5470        pub const SCHEME_FIELD: &'static MessageField = &MessageField {
5471            name: "scheme",
5472            json_name: "scheme",
5473            number: 2i32,
5474            message_fields: None,
5475        };
5476        pub const SIMPLE_FIELD: &'static MessageField = &MessageField {
5477            name: "simple",
5478            json_name: "simple",
5479            number: 3i32,
5480            message_fields: Some(SimpleSignature::FIELDS),
5481        };
5482        pub const MULTISIG_FIELD: &'static MessageField = &MessageField {
5483            name: "multisig",
5484            json_name: "multisig",
5485            number: 4i32,
5486            message_fields: Some(MultisigAggregatedSignature::FIELDS),
5487        };
5488        pub const ZKLOGIN_FIELD: &'static MessageField = &MessageField {
5489            name: "zklogin",
5490            json_name: "zklogin",
5491            number: 5i32,
5492            message_fields: Some(ZkLoginAuthenticator::FIELDS),
5493        };
5494        pub const PASSKEY_FIELD: &'static MessageField = &MessageField {
5495            name: "passkey",
5496            json_name: "passkey",
5497            number: 6i32,
5498            message_fields: Some(PasskeyAuthenticator::FIELDS),
5499        };
5500    }
5501    impl MessageFields for UserSignature {
5502        const FIELDS: &'static [&'static MessageField] = &[
5503            Self::BCS_FIELD,
5504            Self::SCHEME_FIELD,
5505            Self::SIMPLE_FIELD,
5506            Self::MULTISIG_FIELD,
5507            Self::ZKLOGIN_FIELD,
5508            Self::PASSKEY_FIELD,
5509        ];
5510    }
5511    impl UserSignature {
5512        pub fn path_builder() -> UserSignatureFieldPathBuilder {
5513            UserSignatureFieldPathBuilder::new()
5514        }
5515    }
5516    pub struct UserSignatureFieldPathBuilder {
5517        path: Vec<&'static str>,
5518    }
5519    impl UserSignatureFieldPathBuilder {
5520        #[allow(clippy::new_without_default)]
5521        pub fn new() -> Self {
5522            Self { path: Default::default() }
5523        }
5524        #[doc(hidden)]
5525        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5526            Self { path: base }
5527        }
5528        pub fn finish(self) -> String {
5529            self.path.join(".")
5530        }
5531        pub fn bcs(mut self) -> BcsFieldPathBuilder {
5532            self.path.push(UserSignature::BCS_FIELD.name);
5533            BcsFieldPathBuilder::new_with_base(self.path)
5534        }
5535        pub fn scheme(mut self) -> String {
5536            self.path.push(UserSignature::SCHEME_FIELD.name);
5537            self.finish()
5538        }
5539        pub fn simple(mut self) -> SimpleSignatureFieldPathBuilder {
5540            self.path.push(UserSignature::SIMPLE_FIELD.name);
5541            SimpleSignatureFieldPathBuilder::new_with_base(self.path)
5542        }
5543        pub fn multisig(mut self) -> MultisigAggregatedSignatureFieldPathBuilder {
5544            self.path.push(UserSignature::MULTISIG_FIELD.name);
5545            MultisigAggregatedSignatureFieldPathBuilder::new_with_base(self.path)
5546        }
5547        pub fn zklogin(mut self) -> ZkLoginAuthenticatorFieldPathBuilder {
5548            self.path.push(UserSignature::ZKLOGIN_FIELD.name);
5549            ZkLoginAuthenticatorFieldPathBuilder::new_with_base(self.path)
5550        }
5551        pub fn passkey(mut self) -> PasskeyAuthenticatorFieldPathBuilder {
5552            self.path.push(UserSignature::PASSKEY_FIELD.name);
5553            PasskeyAuthenticatorFieldPathBuilder::new_with_base(self.path)
5554        }
5555    }
5556    impl SimpleSignature {
5557        pub const SCHEME_FIELD: &'static MessageField = &MessageField {
5558            name: "scheme",
5559            json_name: "scheme",
5560            number: 1i32,
5561            message_fields: None,
5562        };
5563        pub const SIGNATURE_FIELD: &'static MessageField = &MessageField {
5564            name: "signature",
5565            json_name: "signature",
5566            number: 2i32,
5567            message_fields: None,
5568        };
5569        pub const PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
5570            name: "public_key",
5571            json_name: "publicKey",
5572            number: 3i32,
5573            message_fields: None,
5574        };
5575    }
5576    impl MessageFields for SimpleSignature {
5577        const FIELDS: &'static [&'static MessageField] = &[
5578            Self::SCHEME_FIELD,
5579            Self::SIGNATURE_FIELD,
5580            Self::PUBLIC_KEY_FIELD,
5581        ];
5582    }
5583    impl SimpleSignature {
5584        pub fn path_builder() -> SimpleSignatureFieldPathBuilder {
5585            SimpleSignatureFieldPathBuilder::new()
5586        }
5587    }
5588    pub struct SimpleSignatureFieldPathBuilder {
5589        path: Vec<&'static str>,
5590    }
5591    impl SimpleSignatureFieldPathBuilder {
5592        #[allow(clippy::new_without_default)]
5593        pub fn new() -> Self {
5594            Self { path: Default::default() }
5595        }
5596        #[doc(hidden)]
5597        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5598            Self { path: base }
5599        }
5600        pub fn finish(self) -> String {
5601            self.path.join(".")
5602        }
5603        pub fn scheme(mut self) -> String {
5604            self.path.push(SimpleSignature::SCHEME_FIELD.name);
5605            self.finish()
5606        }
5607        pub fn signature(mut self) -> String {
5608            self.path.push(SimpleSignature::SIGNATURE_FIELD.name);
5609            self.finish()
5610        }
5611        pub fn public_key(mut self) -> String {
5612            self.path.push(SimpleSignature::PUBLIC_KEY_FIELD.name);
5613            self.finish()
5614        }
5615    }
5616    impl ZkLoginPublicIdentifier {
5617        pub const ISS_FIELD: &'static MessageField = &MessageField {
5618            name: "iss",
5619            json_name: "iss",
5620            number: 1i32,
5621            message_fields: None,
5622        };
5623        pub const ADDRESS_SEED_FIELD: &'static MessageField = &MessageField {
5624            name: "address_seed",
5625            json_name: "addressSeed",
5626            number: 2i32,
5627            message_fields: None,
5628        };
5629    }
5630    impl MessageFields for ZkLoginPublicIdentifier {
5631        const FIELDS: &'static [&'static MessageField] = &[
5632            Self::ISS_FIELD,
5633            Self::ADDRESS_SEED_FIELD,
5634        ];
5635    }
5636    impl ZkLoginPublicIdentifier {
5637        pub fn path_builder() -> ZkLoginPublicIdentifierFieldPathBuilder {
5638            ZkLoginPublicIdentifierFieldPathBuilder::new()
5639        }
5640    }
5641    pub struct ZkLoginPublicIdentifierFieldPathBuilder {
5642        path: Vec<&'static str>,
5643    }
5644    impl ZkLoginPublicIdentifierFieldPathBuilder {
5645        #[allow(clippy::new_without_default)]
5646        pub fn new() -> Self {
5647            Self { path: Default::default() }
5648        }
5649        #[doc(hidden)]
5650        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5651            Self { path: base }
5652        }
5653        pub fn finish(self) -> String {
5654            self.path.join(".")
5655        }
5656        pub fn iss(mut self) -> String {
5657            self.path.push(ZkLoginPublicIdentifier::ISS_FIELD.name);
5658            self.finish()
5659        }
5660        pub fn address_seed(mut self) -> String {
5661            self.path.push(ZkLoginPublicIdentifier::ADDRESS_SEED_FIELD.name);
5662            self.finish()
5663        }
5664    }
5665    impl MultisigMemberPublicKey {
5666        pub const SCHEME_FIELD: &'static MessageField = &MessageField {
5667            name: "scheme",
5668            json_name: "scheme",
5669            number: 1i32,
5670            message_fields: None,
5671        };
5672        pub const PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
5673            name: "public_key",
5674            json_name: "publicKey",
5675            number: 2i32,
5676            message_fields: None,
5677        };
5678        pub const ZKLOGIN_FIELD: &'static MessageField = &MessageField {
5679            name: "zklogin",
5680            json_name: "zklogin",
5681            number: 3i32,
5682            message_fields: Some(ZkLoginPublicIdentifier::FIELDS),
5683        };
5684    }
5685    impl MessageFields for MultisigMemberPublicKey {
5686        const FIELDS: &'static [&'static MessageField] = &[
5687            Self::SCHEME_FIELD,
5688            Self::PUBLIC_KEY_FIELD,
5689            Self::ZKLOGIN_FIELD,
5690        ];
5691    }
5692    impl MultisigMemberPublicKey {
5693        pub fn path_builder() -> MultisigMemberPublicKeyFieldPathBuilder {
5694            MultisigMemberPublicKeyFieldPathBuilder::new()
5695        }
5696    }
5697    pub struct MultisigMemberPublicKeyFieldPathBuilder {
5698        path: Vec<&'static str>,
5699    }
5700    impl MultisigMemberPublicKeyFieldPathBuilder {
5701        #[allow(clippy::new_without_default)]
5702        pub fn new() -> Self {
5703            Self { path: Default::default() }
5704        }
5705        #[doc(hidden)]
5706        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5707            Self { path: base }
5708        }
5709        pub fn finish(self) -> String {
5710            self.path.join(".")
5711        }
5712        pub fn scheme(mut self) -> String {
5713            self.path.push(MultisigMemberPublicKey::SCHEME_FIELD.name);
5714            self.finish()
5715        }
5716        pub fn public_key(mut self) -> String {
5717            self.path.push(MultisigMemberPublicKey::PUBLIC_KEY_FIELD.name);
5718            self.finish()
5719        }
5720        pub fn zklogin(mut self) -> ZkLoginPublicIdentifierFieldPathBuilder {
5721            self.path.push(MultisigMemberPublicKey::ZKLOGIN_FIELD.name);
5722            ZkLoginPublicIdentifierFieldPathBuilder::new_with_base(self.path)
5723        }
5724    }
5725    impl MultisigMember {
5726        pub const PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
5727            name: "public_key",
5728            json_name: "publicKey",
5729            number: 1i32,
5730            message_fields: Some(MultisigMemberPublicKey::FIELDS),
5731        };
5732        pub const WEIGHT_FIELD: &'static MessageField = &MessageField {
5733            name: "weight",
5734            json_name: "weight",
5735            number: 2i32,
5736            message_fields: None,
5737        };
5738    }
5739    impl MessageFields for MultisigMember {
5740        const FIELDS: &'static [&'static MessageField] = &[
5741            Self::PUBLIC_KEY_FIELD,
5742            Self::WEIGHT_FIELD,
5743        ];
5744    }
5745    impl MultisigMember {
5746        pub fn path_builder() -> MultisigMemberFieldPathBuilder {
5747            MultisigMemberFieldPathBuilder::new()
5748        }
5749    }
5750    pub struct MultisigMemberFieldPathBuilder {
5751        path: Vec<&'static str>,
5752    }
5753    impl MultisigMemberFieldPathBuilder {
5754        #[allow(clippy::new_without_default)]
5755        pub fn new() -> Self {
5756            Self { path: Default::default() }
5757        }
5758        #[doc(hidden)]
5759        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5760            Self { path: base }
5761        }
5762        pub fn finish(self) -> String {
5763            self.path.join(".")
5764        }
5765        pub fn public_key(mut self) -> MultisigMemberPublicKeyFieldPathBuilder {
5766            self.path.push(MultisigMember::PUBLIC_KEY_FIELD.name);
5767            MultisigMemberPublicKeyFieldPathBuilder::new_with_base(self.path)
5768        }
5769        pub fn weight(mut self) -> String {
5770            self.path.push(MultisigMember::WEIGHT_FIELD.name);
5771            self.finish()
5772        }
5773    }
5774    impl MultisigCommittee {
5775        pub const MEMBERS_FIELD: &'static MessageField = &MessageField {
5776            name: "members",
5777            json_name: "members",
5778            number: 1i32,
5779            message_fields: Some(MultisigMember::FIELDS),
5780        };
5781        pub const THRESHOLD_FIELD: &'static MessageField = &MessageField {
5782            name: "threshold",
5783            json_name: "threshold",
5784            number: 2i32,
5785            message_fields: None,
5786        };
5787    }
5788    impl MessageFields for MultisigCommittee {
5789        const FIELDS: &'static [&'static MessageField] = &[
5790            Self::MEMBERS_FIELD,
5791            Self::THRESHOLD_FIELD,
5792        ];
5793    }
5794    impl MultisigCommittee {
5795        pub fn path_builder() -> MultisigCommitteeFieldPathBuilder {
5796            MultisigCommitteeFieldPathBuilder::new()
5797        }
5798    }
5799    pub struct MultisigCommitteeFieldPathBuilder {
5800        path: Vec<&'static str>,
5801    }
5802    impl MultisigCommitteeFieldPathBuilder {
5803        #[allow(clippy::new_without_default)]
5804        pub fn new() -> Self {
5805            Self { path: Default::default() }
5806        }
5807        #[doc(hidden)]
5808        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5809            Self { path: base }
5810        }
5811        pub fn finish(self) -> String {
5812            self.path.join(".")
5813        }
5814        pub fn members(mut self) -> MultisigMemberFieldPathBuilder {
5815            self.path.push(MultisigCommittee::MEMBERS_FIELD.name);
5816            MultisigMemberFieldPathBuilder::new_with_base(self.path)
5817        }
5818        pub fn threshold(mut self) -> String {
5819            self.path.push(MultisigCommittee::THRESHOLD_FIELD.name);
5820            self.finish()
5821        }
5822    }
5823    impl MultisigAggregatedSignature {
5824        pub const SIGNATURES_FIELD: &'static MessageField = &MessageField {
5825            name: "signatures",
5826            json_name: "signatures",
5827            number: 1i32,
5828            message_fields: Some(MultisigMemberSignature::FIELDS),
5829        };
5830        pub const BITMAP_FIELD: &'static MessageField = &MessageField {
5831            name: "bitmap",
5832            json_name: "bitmap",
5833            number: 2i32,
5834            message_fields: None,
5835        };
5836        pub const LEGACY_BITMAP_FIELD: &'static MessageField = &MessageField {
5837            name: "legacy_bitmap",
5838            json_name: "legacyBitmap",
5839            number: 3i32,
5840            message_fields: None,
5841        };
5842        pub const COMMITTEE_FIELD: &'static MessageField = &MessageField {
5843            name: "committee",
5844            json_name: "committee",
5845            number: 4i32,
5846            message_fields: Some(MultisigCommittee::FIELDS),
5847        };
5848    }
5849    impl MessageFields for MultisigAggregatedSignature {
5850        const FIELDS: &'static [&'static MessageField] = &[
5851            Self::SIGNATURES_FIELD,
5852            Self::BITMAP_FIELD,
5853            Self::LEGACY_BITMAP_FIELD,
5854            Self::COMMITTEE_FIELD,
5855        ];
5856    }
5857    impl MultisigAggregatedSignature {
5858        pub fn path_builder() -> MultisigAggregatedSignatureFieldPathBuilder {
5859            MultisigAggregatedSignatureFieldPathBuilder::new()
5860        }
5861    }
5862    pub struct MultisigAggregatedSignatureFieldPathBuilder {
5863        path: Vec<&'static str>,
5864    }
5865    impl MultisigAggregatedSignatureFieldPathBuilder {
5866        #[allow(clippy::new_without_default)]
5867        pub fn new() -> Self {
5868            Self { path: Default::default() }
5869        }
5870        #[doc(hidden)]
5871        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5872            Self { path: base }
5873        }
5874        pub fn finish(self) -> String {
5875            self.path.join(".")
5876        }
5877        pub fn signatures(mut self) -> MultisigMemberSignatureFieldPathBuilder {
5878            self.path.push(MultisigAggregatedSignature::SIGNATURES_FIELD.name);
5879            MultisigMemberSignatureFieldPathBuilder::new_with_base(self.path)
5880        }
5881        pub fn bitmap(mut self) -> String {
5882            self.path.push(MultisigAggregatedSignature::BITMAP_FIELD.name);
5883            self.finish()
5884        }
5885        pub fn legacy_bitmap(mut self) -> String {
5886            self.path.push(MultisigAggregatedSignature::LEGACY_BITMAP_FIELD.name);
5887            self.finish()
5888        }
5889        pub fn committee(mut self) -> MultisigCommitteeFieldPathBuilder {
5890            self.path.push(MultisigAggregatedSignature::COMMITTEE_FIELD.name);
5891            MultisigCommitteeFieldPathBuilder::new_with_base(self.path)
5892        }
5893    }
5894    impl MultisigMemberSignature {
5895        pub const SCHEME_FIELD: &'static MessageField = &MessageField {
5896            name: "scheme",
5897            json_name: "scheme",
5898            number: 1i32,
5899            message_fields: None,
5900        };
5901        pub const SIGNATURE_FIELD: &'static MessageField = &MessageField {
5902            name: "signature",
5903            json_name: "signature",
5904            number: 2i32,
5905            message_fields: None,
5906        };
5907        pub const ZKLOGIN_FIELD: &'static MessageField = &MessageField {
5908            name: "zklogin",
5909            json_name: "zklogin",
5910            number: 3i32,
5911            message_fields: Some(ZkLoginAuthenticator::FIELDS),
5912        };
5913        pub const PASSKEY_FIELD: &'static MessageField = &MessageField {
5914            name: "passkey",
5915            json_name: "passkey",
5916            number: 4i32,
5917            message_fields: Some(PasskeyAuthenticator::FIELDS),
5918        };
5919    }
5920    impl MessageFields for MultisigMemberSignature {
5921        const FIELDS: &'static [&'static MessageField] = &[
5922            Self::SCHEME_FIELD,
5923            Self::SIGNATURE_FIELD,
5924            Self::ZKLOGIN_FIELD,
5925            Self::PASSKEY_FIELD,
5926        ];
5927    }
5928    impl MultisigMemberSignature {
5929        pub fn path_builder() -> MultisigMemberSignatureFieldPathBuilder {
5930            MultisigMemberSignatureFieldPathBuilder::new()
5931        }
5932    }
5933    pub struct MultisigMemberSignatureFieldPathBuilder {
5934        path: Vec<&'static str>,
5935    }
5936    impl MultisigMemberSignatureFieldPathBuilder {
5937        #[allow(clippy::new_without_default)]
5938        pub fn new() -> Self {
5939            Self { path: Default::default() }
5940        }
5941        #[doc(hidden)]
5942        pub fn new_with_base(base: Vec<&'static str>) -> Self {
5943            Self { path: base }
5944        }
5945        pub fn finish(self) -> String {
5946            self.path.join(".")
5947        }
5948        pub fn scheme(mut self) -> String {
5949            self.path.push(MultisigMemberSignature::SCHEME_FIELD.name);
5950            self.finish()
5951        }
5952        pub fn signature(mut self) -> String {
5953            self.path.push(MultisigMemberSignature::SIGNATURE_FIELD.name);
5954            self.finish()
5955        }
5956        pub fn zklogin(mut self) -> ZkLoginAuthenticatorFieldPathBuilder {
5957            self.path.push(MultisigMemberSignature::ZKLOGIN_FIELD.name);
5958            ZkLoginAuthenticatorFieldPathBuilder::new_with_base(self.path)
5959        }
5960        pub fn passkey(mut self) -> PasskeyAuthenticatorFieldPathBuilder {
5961            self.path.push(MultisigMemberSignature::PASSKEY_FIELD.name);
5962            PasskeyAuthenticatorFieldPathBuilder::new_with_base(self.path)
5963        }
5964    }
5965    impl ZkLoginAuthenticator {
5966        pub const INPUTS_FIELD: &'static MessageField = &MessageField {
5967            name: "inputs",
5968            json_name: "inputs",
5969            number: 1i32,
5970            message_fields: Some(ZkLoginInputs::FIELDS),
5971        };
5972        pub const MAX_EPOCH_FIELD: &'static MessageField = &MessageField {
5973            name: "max_epoch",
5974            json_name: "maxEpoch",
5975            number: 2i32,
5976            message_fields: None,
5977        };
5978        pub const SIGNATURE_FIELD: &'static MessageField = &MessageField {
5979            name: "signature",
5980            json_name: "signature",
5981            number: 3i32,
5982            message_fields: Some(SimpleSignature::FIELDS),
5983        };
5984        pub const PUBLIC_IDENTIFIER_FIELD: &'static MessageField = &MessageField {
5985            name: "public_identifier",
5986            json_name: "publicIdentifier",
5987            number: 4i32,
5988            message_fields: Some(ZkLoginPublicIdentifier::FIELDS),
5989        };
5990        pub const JWK_ID_FIELD: &'static MessageField = &MessageField {
5991            name: "jwk_id",
5992            json_name: "jwkId",
5993            number: 5i32,
5994            message_fields: Some(JwkId::FIELDS),
5995        };
5996    }
5997    impl MessageFields for ZkLoginAuthenticator {
5998        const FIELDS: &'static [&'static MessageField] = &[
5999            Self::INPUTS_FIELD,
6000            Self::MAX_EPOCH_FIELD,
6001            Self::SIGNATURE_FIELD,
6002            Self::PUBLIC_IDENTIFIER_FIELD,
6003            Self::JWK_ID_FIELD,
6004        ];
6005    }
6006    impl ZkLoginAuthenticator {
6007        pub fn path_builder() -> ZkLoginAuthenticatorFieldPathBuilder {
6008            ZkLoginAuthenticatorFieldPathBuilder::new()
6009        }
6010    }
6011    pub struct ZkLoginAuthenticatorFieldPathBuilder {
6012        path: Vec<&'static str>,
6013    }
6014    impl ZkLoginAuthenticatorFieldPathBuilder {
6015        #[allow(clippy::new_without_default)]
6016        pub fn new() -> Self {
6017            Self { path: Default::default() }
6018        }
6019        #[doc(hidden)]
6020        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6021            Self { path: base }
6022        }
6023        pub fn finish(self) -> String {
6024            self.path.join(".")
6025        }
6026        pub fn inputs(mut self) -> ZkLoginInputsFieldPathBuilder {
6027            self.path.push(ZkLoginAuthenticator::INPUTS_FIELD.name);
6028            ZkLoginInputsFieldPathBuilder::new_with_base(self.path)
6029        }
6030        pub fn max_epoch(mut self) -> String {
6031            self.path.push(ZkLoginAuthenticator::MAX_EPOCH_FIELD.name);
6032            self.finish()
6033        }
6034        pub fn signature(mut self) -> SimpleSignatureFieldPathBuilder {
6035            self.path.push(ZkLoginAuthenticator::SIGNATURE_FIELD.name);
6036            SimpleSignatureFieldPathBuilder::new_with_base(self.path)
6037        }
6038        pub fn public_identifier(mut self) -> ZkLoginPublicIdentifierFieldPathBuilder {
6039            self.path.push(ZkLoginAuthenticator::PUBLIC_IDENTIFIER_FIELD.name);
6040            ZkLoginPublicIdentifierFieldPathBuilder::new_with_base(self.path)
6041        }
6042        pub fn jwk_id(mut self) -> JwkIdFieldPathBuilder {
6043            self.path.push(ZkLoginAuthenticator::JWK_ID_FIELD.name);
6044            JwkIdFieldPathBuilder::new_with_base(self.path)
6045        }
6046    }
6047    impl ZkLoginInputs {
6048        pub const PROOF_POINTS_FIELD: &'static MessageField = &MessageField {
6049            name: "proof_points",
6050            json_name: "proofPoints",
6051            number: 1i32,
6052            message_fields: Some(ZkLoginProof::FIELDS),
6053        };
6054        pub const ISS_BASE64_DETAILS_FIELD: &'static MessageField = &MessageField {
6055            name: "iss_base64_details",
6056            json_name: "issBase64Details",
6057            number: 2i32,
6058            message_fields: Some(ZkLoginClaim::FIELDS),
6059        };
6060        pub const HEADER_BASE64_FIELD: &'static MessageField = &MessageField {
6061            name: "header_base64",
6062            json_name: "headerBase64",
6063            number: 3i32,
6064            message_fields: None,
6065        };
6066        pub const ADDRESS_SEED_FIELD: &'static MessageField = &MessageField {
6067            name: "address_seed",
6068            json_name: "addressSeed",
6069            number: 4i32,
6070            message_fields: None,
6071        };
6072    }
6073    impl MessageFields for ZkLoginInputs {
6074        const FIELDS: &'static [&'static MessageField] = &[
6075            Self::PROOF_POINTS_FIELD,
6076            Self::ISS_BASE64_DETAILS_FIELD,
6077            Self::HEADER_BASE64_FIELD,
6078            Self::ADDRESS_SEED_FIELD,
6079        ];
6080    }
6081    impl ZkLoginInputs {
6082        pub fn path_builder() -> ZkLoginInputsFieldPathBuilder {
6083            ZkLoginInputsFieldPathBuilder::new()
6084        }
6085    }
6086    pub struct ZkLoginInputsFieldPathBuilder {
6087        path: Vec<&'static str>,
6088    }
6089    impl ZkLoginInputsFieldPathBuilder {
6090        #[allow(clippy::new_without_default)]
6091        pub fn new() -> Self {
6092            Self { path: Default::default() }
6093        }
6094        #[doc(hidden)]
6095        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6096            Self { path: base }
6097        }
6098        pub fn finish(self) -> String {
6099            self.path.join(".")
6100        }
6101        pub fn proof_points(mut self) -> ZkLoginProofFieldPathBuilder {
6102            self.path.push(ZkLoginInputs::PROOF_POINTS_FIELD.name);
6103            ZkLoginProofFieldPathBuilder::new_with_base(self.path)
6104        }
6105        pub fn iss_base64_details(mut self) -> ZkLoginClaimFieldPathBuilder {
6106            self.path.push(ZkLoginInputs::ISS_BASE64_DETAILS_FIELD.name);
6107            ZkLoginClaimFieldPathBuilder::new_with_base(self.path)
6108        }
6109        pub fn header_base64(mut self) -> String {
6110            self.path.push(ZkLoginInputs::HEADER_BASE64_FIELD.name);
6111            self.finish()
6112        }
6113        pub fn address_seed(mut self) -> String {
6114            self.path.push(ZkLoginInputs::ADDRESS_SEED_FIELD.name);
6115            self.finish()
6116        }
6117    }
6118    impl ZkLoginProof {
6119        pub const A_FIELD: &'static MessageField = &MessageField {
6120            name: "a",
6121            json_name: "a",
6122            number: 1i32,
6123            message_fields: Some(CircomG1::FIELDS),
6124        };
6125        pub const B_FIELD: &'static MessageField = &MessageField {
6126            name: "b",
6127            json_name: "b",
6128            number: 2i32,
6129            message_fields: Some(CircomG2::FIELDS),
6130        };
6131        pub const C_FIELD: &'static MessageField = &MessageField {
6132            name: "c",
6133            json_name: "c",
6134            number: 3i32,
6135            message_fields: Some(CircomG1::FIELDS),
6136        };
6137    }
6138    impl MessageFields for ZkLoginProof {
6139        const FIELDS: &'static [&'static MessageField] = &[
6140            Self::A_FIELD,
6141            Self::B_FIELD,
6142            Self::C_FIELD,
6143        ];
6144    }
6145    impl ZkLoginProof {
6146        pub fn path_builder() -> ZkLoginProofFieldPathBuilder {
6147            ZkLoginProofFieldPathBuilder::new()
6148        }
6149    }
6150    pub struct ZkLoginProofFieldPathBuilder {
6151        path: Vec<&'static str>,
6152    }
6153    impl ZkLoginProofFieldPathBuilder {
6154        #[allow(clippy::new_without_default)]
6155        pub fn new() -> Self {
6156            Self { path: Default::default() }
6157        }
6158        #[doc(hidden)]
6159        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6160            Self { path: base }
6161        }
6162        pub fn finish(self) -> String {
6163            self.path.join(".")
6164        }
6165        pub fn a(mut self) -> CircomG1FieldPathBuilder {
6166            self.path.push(ZkLoginProof::A_FIELD.name);
6167            CircomG1FieldPathBuilder::new_with_base(self.path)
6168        }
6169        pub fn b(mut self) -> CircomG2FieldPathBuilder {
6170            self.path.push(ZkLoginProof::B_FIELD.name);
6171            CircomG2FieldPathBuilder::new_with_base(self.path)
6172        }
6173        pub fn c(mut self) -> CircomG1FieldPathBuilder {
6174            self.path.push(ZkLoginProof::C_FIELD.name);
6175            CircomG1FieldPathBuilder::new_with_base(self.path)
6176        }
6177    }
6178    impl ZkLoginClaim {
6179        pub const VALUE_FIELD: &'static MessageField = &MessageField {
6180            name: "value",
6181            json_name: "value",
6182            number: 1i32,
6183            message_fields: None,
6184        };
6185        pub const INDEX_MOD_4_FIELD: &'static MessageField = &MessageField {
6186            name: "index_mod_4",
6187            json_name: "indexMod4",
6188            number: 2i32,
6189            message_fields: None,
6190        };
6191    }
6192    impl MessageFields for ZkLoginClaim {
6193        const FIELDS: &'static [&'static MessageField] = &[
6194            Self::VALUE_FIELD,
6195            Self::INDEX_MOD_4_FIELD,
6196        ];
6197    }
6198    impl ZkLoginClaim {
6199        pub fn path_builder() -> ZkLoginClaimFieldPathBuilder {
6200            ZkLoginClaimFieldPathBuilder::new()
6201        }
6202    }
6203    pub struct ZkLoginClaimFieldPathBuilder {
6204        path: Vec<&'static str>,
6205    }
6206    impl ZkLoginClaimFieldPathBuilder {
6207        #[allow(clippy::new_without_default)]
6208        pub fn new() -> Self {
6209            Self { path: Default::default() }
6210        }
6211        #[doc(hidden)]
6212        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6213            Self { path: base }
6214        }
6215        pub fn finish(self) -> String {
6216            self.path.join(".")
6217        }
6218        pub fn value(mut self) -> String {
6219            self.path.push(ZkLoginClaim::VALUE_FIELD.name);
6220            self.finish()
6221        }
6222        pub fn index_mod_4(mut self) -> String {
6223            self.path.push(ZkLoginClaim::INDEX_MOD_4_FIELD.name);
6224            self.finish()
6225        }
6226    }
6227    impl CircomG1 {
6228        pub const E0_FIELD: &'static MessageField = &MessageField {
6229            name: "e0",
6230            json_name: "e0",
6231            number: 1i32,
6232            message_fields: None,
6233        };
6234        pub const E1_FIELD: &'static MessageField = &MessageField {
6235            name: "e1",
6236            json_name: "e1",
6237            number: 2i32,
6238            message_fields: None,
6239        };
6240        pub const E2_FIELD: &'static MessageField = &MessageField {
6241            name: "e2",
6242            json_name: "e2",
6243            number: 3i32,
6244            message_fields: None,
6245        };
6246    }
6247    impl MessageFields for CircomG1 {
6248        const FIELDS: &'static [&'static MessageField] = &[
6249            Self::E0_FIELD,
6250            Self::E1_FIELD,
6251            Self::E2_FIELD,
6252        ];
6253    }
6254    impl CircomG1 {
6255        pub fn path_builder() -> CircomG1FieldPathBuilder {
6256            CircomG1FieldPathBuilder::new()
6257        }
6258    }
6259    pub struct CircomG1FieldPathBuilder {
6260        path: Vec<&'static str>,
6261    }
6262    impl CircomG1FieldPathBuilder {
6263        #[allow(clippy::new_without_default)]
6264        pub fn new() -> Self {
6265            Self { path: Default::default() }
6266        }
6267        #[doc(hidden)]
6268        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6269            Self { path: base }
6270        }
6271        pub fn finish(self) -> String {
6272            self.path.join(".")
6273        }
6274        pub fn e0(mut self) -> String {
6275            self.path.push(CircomG1::E0_FIELD.name);
6276            self.finish()
6277        }
6278        pub fn e1(mut self) -> String {
6279            self.path.push(CircomG1::E1_FIELD.name);
6280            self.finish()
6281        }
6282        pub fn e2(mut self) -> String {
6283            self.path.push(CircomG1::E2_FIELD.name);
6284            self.finish()
6285        }
6286    }
6287    impl CircomG2 {
6288        pub const E00_FIELD: &'static MessageField = &MessageField {
6289            name: "e00",
6290            json_name: "e00",
6291            number: 1i32,
6292            message_fields: None,
6293        };
6294        pub const E01_FIELD: &'static MessageField = &MessageField {
6295            name: "e01",
6296            json_name: "e01",
6297            number: 2i32,
6298            message_fields: None,
6299        };
6300        pub const E10_FIELD: &'static MessageField = &MessageField {
6301            name: "e10",
6302            json_name: "e10",
6303            number: 3i32,
6304            message_fields: None,
6305        };
6306        pub const E11_FIELD: &'static MessageField = &MessageField {
6307            name: "e11",
6308            json_name: "e11",
6309            number: 4i32,
6310            message_fields: None,
6311        };
6312        pub const E20_FIELD: &'static MessageField = &MessageField {
6313            name: "e20",
6314            json_name: "e20",
6315            number: 5i32,
6316            message_fields: None,
6317        };
6318        pub const E21_FIELD: &'static MessageField = &MessageField {
6319            name: "e21",
6320            json_name: "e21",
6321            number: 6i32,
6322            message_fields: None,
6323        };
6324    }
6325    impl MessageFields for CircomG2 {
6326        const FIELDS: &'static [&'static MessageField] = &[
6327            Self::E00_FIELD,
6328            Self::E01_FIELD,
6329            Self::E10_FIELD,
6330            Self::E11_FIELD,
6331            Self::E20_FIELD,
6332            Self::E21_FIELD,
6333        ];
6334    }
6335    impl CircomG2 {
6336        pub fn path_builder() -> CircomG2FieldPathBuilder {
6337            CircomG2FieldPathBuilder::new()
6338        }
6339    }
6340    pub struct CircomG2FieldPathBuilder {
6341        path: Vec<&'static str>,
6342    }
6343    impl CircomG2FieldPathBuilder {
6344        #[allow(clippy::new_without_default)]
6345        pub fn new() -> Self {
6346            Self { path: Default::default() }
6347        }
6348        #[doc(hidden)]
6349        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6350            Self { path: base }
6351        }
6352        pub fn finish(self) -> String {
6353            self.path.join(".")
6354        }
6355        pub fn e00(mut self) -> String {
6356            self.path.push(CircomG2::E00_FIELD.name);
6357            self.finish()
6358        }
6359        pub fn e01(mut self) -> String {
6360            self.path.push(CircomG2::E01_FIELD.name);
6361            self.finish()
6362        }
6363        pub fn e10(mut self) -> String {
6364            self.path.push(CircomG2::E10_FIELD.name);
6365            self.finish()
6366        }
6367        pub fn e11(mut self) -> String {
6368            self.path.push(CircomG2::E11_FIELD.name);
6369            self.finish()
6370        }
6371        pub fn e20(mut self) -> String {
6372            self.path.push(CircomG2::E20_FIELD.name);
6373            self.finish()
6374        }
6375        pub fn e21(mut self) -> String {
6376            self.path.push(CircomG2::E21_FIELD.name);
6377            self.finish()
6378        }
6379    }
6380    impl PasskeyAuthenticator {
6381        pub const AUTHENTICATOR_DATA_FIELD: &'static MessageField = &MessageField {
6382            name: "authenticator_data",
6383            json_name: "authenticatorData",
6384            number: 1i32,
6385            message_fields: None,
6386        };
6387        pub const CLIENT_DATA_JSON_FIELD: &'static MessageField = &MessageField {
6388            name: "client_data_json",
6389            json_name: "clientDataJson",
6390            number: 2i32,
6391            message_fields: None,
6392        };
6393        pub const SIGNATURE_FIELD: &'static MessageField = &MessageField {
6394            name: "signature",
6395            json_name: "signature",
6396            number: 3i32,
6397            message_fields: Some(SimpleSignature::FIELDS),
6398        };
6399    }
6400    impl MessageFields for PasskeyAuthenticator {
6401        const FIELDS: &'static [&'static MessageField] = &[
6402            Self::AUTHENTICATOR_DATA_FIELD,
6403            Self::CLIENT_DATA_JSON_FIELD,
6404            Self::SIGNATURE_FIELD,
6405        ];
6406    }
6407    impl PasskeyAuthenticator {
6408        pub fn path_builder() -> PasskeyAuthenticatorFieldPathBuilder {
6409            PasskeyAuthenticatorFieldPathBuilder::new()
6410        }
6411    }
6412    pub struct PasskeyAuthenticatorFieldPathBuilder {
6413        path: Vec<&'static str>,
6414    }
6415    impl PasskeyAuthenticatorFieldPathBuilder {
6416        #[allow(clippy::new_without_default)]
6417        pub fn new() -> Self {
6418            Self { path: Default::default() }
6419        }
6420        #[doc(hidden)]
6421        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6422            Self { path: base }
6423        }
6424        pub fn finish(self) -> String {
6425            self.path.join(".")
6426        }
6427        pub fn authenticator_data(mut self) -> String {
6428            self.path.push(PasskeyAuthenticator::AUTHENTICATOR_DATA_FIELD.name);
6429            self.finish()
6430        }
6431        pub fn client_data_json(mut self) -> String {
6432            self.path.push(PasskeyAuthenticator::CLIENT_DATA_JSON_FIELD.name);
6433            self.finish()
6434        }
6435        pub fn signature(mut self) -> SimpleSignatureFieldPathBuilder {
6436            self.path.push(PasskeyAuthenticator::SIGNATURE_FIELD.name);
6437            SimpleSignatureFieldPathBuilder::new_with_base(self.path)
6438        }
6439    }
6440    impl ValidatorCommittee {
6441        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
6442            name: "epoch",
6443            json_name: "epoch",
6444            number: 1i32,
6445            message_fields: None,
6446        };
6447        pub const MEMBERS_FIELD: &'static MessageField = &MessageField {
6448            name: "members",
6449            json_name: "members",
6450            number: 2i32,
6451            message_fields: Some(ValidatorCommitteeMember::FIELDS),
6452        };
6453    }
6454    impl MessageFields for ValidatorCommittee {
6455        const FIELDS: &'static [&'static MessageField] = &[
6456            Self::EPOCH_FIELD,
6457            Self::MEMBERS_FIELD,
6458        ];
6459    }
6460    impl ValidatorCommittee {
6461        pub fn path_builder() -> ValidatorCommitteeFieldPathBuilder {
6462            ValidatorCommitteeFieldPathBuilder::new()
6463        }
6464    }
6465    pub struct ValidatorCommitteeFieldPathBuilder {
6466        path: Vec<&'static str>,
6467    }
6468    impl ValidatorCommitteeFieldPathBuilder {
6469        #[allow(clippy::new_without_default)]
6470        pub fn new() -> Self {
6471            Self { path: Default::default() }
6472        }
6473        #[doc(hidden)]
6474        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6475            Self { path: base }
6476        }
6477        pub fn finish(self) -> String {
6478            self.path.join(".")
6479        }
6480        pub fn epoch(mut self) -> String {
6481            self.path.push(ValidatorCommittee::EPOCH_FIELD.name);
6482            self.finish()
6483        }
6484        pub fn members(mut self) -> ValidatorCommitteeMemberFieldPathBuilder {
6485            self.path.push(ValidatorCommittee::MEMBERS_FIELD.name);
6486            ValidatorCommitteeMemberFieldPathBuilder::new_with_base(self.path)
6487        }
6488    }
6489    impl ValidatorCommitteeMember {
6490        pub const PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
6491            name: "public_key",
6492            json_name: "publicKey",
6493            number: 1i32,
6494            message_fields: None,
6495        };
6496        pub const WEIGHT_FIELD: &'static MessageField = &MessageField {
6497            name: "weight",
6498            json_name: "weight",
6499            number: 2i32,
6500            message_fields: None,
6501        };
6502    }
6503    impl MessageFields for ValidatorCommitteeMember {
6504        const FIELDS: &'static [&'static MessageField] = &[
6505            Self::PUBLIC_KEY_FIELD,
6506            Self::WEIGHT_FIELD,
6507        ];
6508    }
6509    impl ValidatorCommitteeMember {
6510        pub fn path_builder() -> ValidatorCommitteeMemberFieldPathBuilder {
6511            ValidatorCommitteeMemberFieldPathBuilder::new()
6512        }
6513    }
6514    pub struct ValidatorCommitteeMemberFieldPathBuilder {
6515        path: Vec<&'static str>,
6516    }
6517    impl ValidatorCommitteeMemberFieldPathBuilder {
6518        #[allow(clippy::new_without_default)]
6519        pub fn new() -> Self {
6520            Self { path: Default::default() }
6521        }
6522        #[doc(hidden)]
6523        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6524            Self { path: base }
6525        }
6526        pub fn finish(self) -> String {
6527            self.path.join(".")
6528        }
6529        pub fn public_key(mut self) -> String {
6530            self.path.push(ValidatorCommitteeMember::PUBLIC_KEY_FIELD.name);
6531            self.finish()
6532        }
6533        pub fn weight(mut self) -> String {
6534            self.path.push(ValidatorCommitteeMember::WEIGHT_FIELD.name);
6535            self.finish()
6536        }
6537    }
6538    impl ValidatorAggregatedSignature {
6539        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
6540            name: "epoch",
6541            json_name: "epoch",
6542            number: 1i32,
6543            message_fields: None,
6544        };
6545        pub const SIGNATURE_FIELD: &'static MessageField = &MessageField {
6546            name: "signature",
6547            json_name: "signature",
6548            number: 2i32,
6549            message_fields: None,
6550        };
6551        pub const BITMAP_FIELD: &'static MessageField = &MessageField {
6552            name: "bitmap",
6553            json_name: "bitmap",
6554            number: 3i32,
6555            message_fields: None,
6556        };
6557    }
6558    impl MessageFields for ValidatorAggregatedSignature {
6559        const FIELDS: &'static [&'static MessageField] = &[
6560            Self::EPOCH_FIELD,
6561            Self::SIGNATURE_FIELD,
6562            Self::BITMAP_FIELD,
6563        ];
6564    }
6565    impl ValidatorAggregatedSignature {
6566        pub fn path_builder() -> ValidatorAggregatedSignatureFieldPathBuilder {
6567            ValidatorAggregatedSignatureFieldPathBuilder::new()
6568        }
6569    }
6570    pub struct ValidatorAggregatedSignatureFieldPathBuilder {
6571        path: Vec<&'static str>,
6572    }
6573    impl ValidatorAggregatedSignatureFieldPathBuilder {
6574        #[allow(clippy::new_without_default)]
6575        pub fn new() -> Self {
6576            Self { path: Default::default() }
6577        }
6578        #[doc(hidden)]
6579        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6580            Self { path: base }
6581        }
6582        pub fn finish(self) -> String {
6583            self.path.join(".")
6584        }
6585        pub fn epoch(mut self) -> String {
6586            self.path.push(ValidatorAggregatedSignature::EPOCH_FIELD.name);
6587            self.finish()
6588        }
6589        pub fn signature(mut self) -> String {
6590            self.path.push(ValidatorAggregatedSignature::SIGNATURE_FIELD.name);
6591            self.finish()
6592        }
6593        pub fn bitmap(mut self) -> String {
6594            self.path.push(ValidatorAggregatedSignature::BITMAP_FIELD.name);
6595            self.finish()
6596        }
6597    }
6598    impl VerifySignatureRequest {
6599        pub const MESSAGE_FIELD: &'static MessageField = &MessageField {
6600            name: "message",
6601            json_name: "message",
6602            number: 1i32,
6603            message_fields: Some(Bcs::FIELDS),
6604        };
6605        pub const SIGNATURE_FIELD: &'static MessageField = &MessageField {
6606            name: "signature",
6607            json_name: "signature",
6608            number: 2i32,
6609            message_fields: Some(UserSignature::FIELDS),
6610        };
6611        pub const ADDRESS_FIELD: &'static MessageField = &MessageField {
6612            name: "address",
6613            json_name: "address",
6614            number: 3i32,
6615            message_fields: None,
6616        };
6617        pub const JWKS_FIELD: &'static MessageField = &MessageField {
6618            name: "jwks",
6619            json_name: "jwks",
6620            number: 4i32,
6621            message_fields: Some(ActiveJwk::FIELDS),
6622        };
6623    }
6624    impl MessageFields for VerifySignatureRequest {
6625        const FIELDS: &'static [&'static MessageField] = &[
6626            Self::MESSAGE_FIELD,
6627            Self::SIGNATURE_FIELD,
6628            Self::ADDRESS_FIELD,
6629            Self::JWKS_FIELD,
6630        ];
6631    }
6632    impl VerifySignatureRequest {
6633        pub fn path_builder() -> VerifySignatureRequestFieldPathBuilder {
6634            VerifySignatureRequestFieldPathBuilder::new()
6635        }
6636    }
6637    pub struct VerifySignatureRequestFieldPathBuilder {
6638        path: Vec<&'static str>,
6639    }
6640    impl VerifySignatureRequestFieldPathBuilder {
6641        #[allow(clippy::new_without_default)]
6642        pub fn new() -> Self {
6643            Self { path: Default::default() }
6644        }
6645        #[doc(hidden)]
6646        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6647            Self { path: base }
6648        }
6649        pub fn finish(self) -> String {
6650            self.path.join(".")
6651        }
6652        pub fn message(mut self) -> BcsFieldPathBuilder {
6653            self.path.push(VerifySignatureRequest::MESSAGE_FIELD.name);
6654            BcsFieldPathBuilder::new_with_base(self.path)
6655        }
6656        pub fn signature(mut self) -> UserSignatureFieldPathBuilder {
6657            self.path.push(VerifySignatureRequest::SIGNATURE_FIELD.name);
6658            UserSignatureFieldPathBuilder::new_with_base(self.path)
6659        }
6660        pub fn address(mut self) -> String {
6661            self.path.push(VerifySignatureRequest::ADDRESS_FIELD.name);
6662            self.finish()
6663        }
6664        pub fn jwks(mut self) -> ActiveJwkFieldPathBuilder {
6665            self.path.push(VerifySignatureRequest::JWKS_FIELD.name);
6666            ActiveJwkFieldPathBuilder::new_with_base(self.path)
6667        }
6668    }
6669    impl VerifySignatureResponse {
6670        pub const IS_VALID_FIELD: &'static MessageField = &MessageField {
6671            name: "is_valid",
6672            json_name: "isValid",
6673            number: 1i32,
6674            message_fields: None,
6675        };
6676        pub const REASON_FIELD: &'static MessageField = &MessageField {
6677            name: "reason",
6678            json_name: "reason",
6679            number: 2i32,
6680            message_fields: None,
6681        };
6682    }
6683    impl MessageFields for VerifySignatureResponse {
6684        const FIELDS: &'static [&'static MessageField] = &[
6685            Self::IS_VALID_FIELD,
6686            Self::REASON_FIELD,
6687        ];
6688    }
6689    impl VerifySignatureResponse {
6690        pub fn path_builder() -> VerifySignatureResponseFieldPathBuilder {
6691            VerifySignatureResponseFieldPathBuilder::new()
6692        }
6693    }
6694    pub struct VerifySignatureResponseFieldPathBuilder {
6695        path: Vec<&'static str>,
6696    }
6697    impl VerifySignatureResponseFieldPathBuilder {
6698        #[allow(clippy::new_without_default)]
6699        pub fn new() -> Self {
6700            Self { path: Default::default() }
6701        }
6702        #[doc(hidden)]
6703        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6704            Self { path: base }
6705        }
6706        pub fn finish(self) -> String {
6707            self.path.join(".")
6708        }
6709        pub fn is_valid(mut self) -> String {
6710            self.path.push(VerifySignatureResponse::IS_VALID_FIELD.name);
6711            self.finish()
6712        }
6713        pub fn reason(mut self) -> String {
6714            self.path.push(VerifySignatureResponse::REASON_FIELD.name);
6715            self.finish()
6716        }
6717    }
6718    impl GetCoinInfoRequest {
6719        pub const COIN_TYPE_FIELD: &'static MessageField = &MessageField {
6720            name: "coin_type",
6721            json_name: "coinType",
6722            number: 1i32,
6723            message_fields: None,
6724        };
6725    }
6726    impl MessageFields for GetCoinInfoRequest {
6727        const FIELDS: &'static [&'static MessageField] = &[Self::COIN_TYPE_FIELD];
6728    }
6729    impl GetCoinInfoRequest {
6730        pub fn path_builder() -> GetCoinInfoRequestFieldPathBuilder {
6731            GetCoinInfoRequestFieldPathBuilder::new()
6732        }
6733    }
6734    pub struct GetCoinInfoRequestFieldPathBuilder {
6735        path: Vec<&'static str>,
6736    }
6737    impl GetCoinInfoRequestFieldPathBuilder {
6738        #[allow(clippy::new_without_default)]
6739        pub fn new() -> Self {
6740            Self { path: Default::default() }
6741        }
6742        #[doc(hidden)]
6743        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6744            Self { path: base }
6745        }
6746        pub fn finish(self) -> String {
6747            self.path.join(".")
6748        }
6749        pub fn coin_type(mut self) -> String {
6750            self.path.push(GetCoinInfoRequest::COIN_TYPE_FIELD.name);
6751            self.finish()
6752        }
6753    }
6754    impl GetCoinInfoResponse {
6755        pub const COIN_TYPE_FIELD: &'static MessageField = &MessageField {
6756            name: "coin_type",
6757            json_name: "coinType",
6758            number: 1i32,
6759            message_fields: None,
6760        };
6761        pub const METADATA_FIELD: &'static MessageField = &MessageField {
6762            name: "metadata",
6763            json_name: "metadata",
6764            number: 2i32,
6765            message_fields: Some(CoinMetadata::FIELDS),
6766        };
6767        pub const TREASURY_FIELD: &'static MessageField = &MessageField {
6768            name: "treasury",
6769            json_name: "treasury",
6770            number: 3i32,
6771            message_fields: Some(CoinTreasury::FIELDS),
6772        };
6773        pub const REGULATED_METADATA_FIELD: &'static MessageField = &MessageField {
6774            name: "regulated_metadata",
6775            json_name: "regulatedMetadata",
6776            number: 4i32,
6777            message_fields: Some(RegulatedCoinMetadata::FIELDS),
6778        };
6779    }
6780    impl MessageFields for GetCoinInfoResponse {
6781        const FIELDS: &'static [&'static MessageField] = &[
6782            Self::COIN_TYPE_FIELD,
6783            Self::METADATA_FIELD,
6784            Self::TREASURY_FIELD,
6785            Self::REGULATED_METADATA_FIELD,
6786        ];
6787    }
6788    impl GetCoinInfoResponse {
6789        pub fn path_builder() -> GetCoinInfoResponseFieldPathBuilder {
6790            GetCoinInfoResponseFieldPathBuilder::new()
6791        }
6792    }
6793    pub struct GetCoinInfoResponseFieldPathBuilder {
6794        path: Vec<&'static str>,
6795    }
6796    impl GetCoinInfoResponseFieldPathBuilder {
6797        #[allow(clippy::new_without_default)]
6798        pub fn new() -> Self {
6799            Self { path: Default::default() }
6800        }
6801        #[doc(hidden)]
6802        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6803            Self { path: base }
6804        }
6805        pub fn finish(self) -> String {
6806            self.path.join(".")
6807        }
6808        pub fn coin_type(mut self) -> String {
6809            self.path.push(GetCoinInfoResponse::COIN_TYPE_FIELD.name);
6810            self.finish()
6811        }
6812        pub fn metadata(mut self) -> CoinMetadataFieldPathBuilder {
6813            self.path.push(GetCoinInfoResponse::METADATA_FIELD.name);
6814            CoinMetadataFieldPathBuilder::new_with_base(self.path)
6815        }
6816        pub fn treasury(mut self) -> CoinTreasuryFieldPathBuilder {
6817            self.path.push(GetCoinInfoResponse::TREASURY_FIELD.name);
6818            CoinTreasuryFieldPathBuilder::new_with_base(self.path)
6819        }
6820        pub fn regulated_metadata(mut self) -> RegulatedCoinMetadataFieldPathBuilder {
6821            self.path.push(GetCoinInfoResponse::REGULATED_METADATA_FIELD.name);
6822            RegulatedCoinMetadataFieldPathBuilder::new_with_base(self.path)
6823        }
6824    }
6825    impl CoinMetadata {
6826        pub const ID_FIELD: &'static MessageField = &MessageField {
6827            name: "id",
6828            json_name: "id",
6829            number: 1i32,
6830            message_fields: None,
6831        };
6832        pub const DECIMALS_FIELD: &'static MessageField = &MessageField {
6833            name: "decimals",
6834            json_name: "decimals",
6835            number: 2i32,
6836            message_fields: None,
6837        };
6838        pub const NAME_FIELD: &'static MessageField = &MessageField {
6839            name: "name",
6840            json_name: "name",
6841            number: 3i32,
6842            message_fields: None,
6843        };
6844        pub const SYMBOL_FIELD: &'static MessageField = &MessageField {
6845            name: "symbol",
6846            json_name: "symbol",
6847            number: 4i32,
6848            message_fields: None,
6849        };
6850        pub const DESCRIPTION_FIELD: &'static MessageField = &MessageField {
6851            name: "description",
6852            json_name: "description",
6853            number: 5i32,
6854            message_fields: None,
6855        };
6856        pub const ICON_URL_FIELD: &'static MessageField = &MessageField {
6857            name: "icon_url",
6858            json_name: "iconUrl",
6859            number: 6i32,
6860            message_fields: None,
6861        };
6862        pub const METADATA_CAP_ID_FIELD: &'static MessageField = &MessageField {
6863            name: "metadata_cap_id",
6864            json_name: "metadataCapId",
6865            number: 7i32,
6866            message_fields: None,
6867        };
6868        pub const METADATA_CAP_STATE_FIELD: &'static MessageField = &MessageField {
6869            name: "metadata_cap_state",
6870            json_name: "metadataCapState",
6871            number: 8i32,
6872            message_fields: None,
6873        };
6874    }
6875    impl MessageFields for CoinMetadata {
6876        const FIELDS: &'static [&'static MessageField] = &[
6877            Self::ID_FIELD,
6878            Self::DECIMALS_FIELD,
6879            Self::NAME_FIELD,
6880            Self::SYMBOL_FIELD,
6881            Self::DESCRIPTION_FIELD,
6882            Self::ICON_URL_FIELD,
6883            Self::METADATA_CAP_ID_FIELD,
6884            Self::METADATA_CAP_STATE_FIELD,
6885        ];
6886    }
6887    impl CoinMetadata {
6888        pub fn path_builder() -> CoinMetadataFieldPathBuilder {
6889            CoinMetadataFieldPathBuilder::new()
6890        }
6891    }
6892    pub struct CoinMetadataFieldPathBuilder {
6893        path: Vec<&'static str>,
6894    }
6895    impl CoinMetadataFieldPathBuilder {
6896        #[allow(clippy::new_without_default)]
6897        pub fn new() -> Self {
6898            Self { path: Default::default() }
6899        }
6900        #[doc(hidden)]
6901        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6902            Self { path: base }
6903        }
6904        pub fn finish(self) -> String {
6905            self.path.join(".")
6906        }
6907        pub fn id(mut self) -> String {
6908            self.path.push(CoinMetadata::ID_FIELD.name);
6909            self.finish()
6910        }
6911        pub fn decimals(mut self) -> String {
6912            self.path.push(CoinMetadata::DECIMALS_FIELD.name);
6913            self.finish()
6914        }
6915        pub fn name(mut self) -> String {
6916            self.path.push(CoinMetadata::NAME_FIELD.name);
6917            self.finish()
6918        }
6919        pub fn symbol(mut self) -> String {
6920            self.path.push(CoinMetadata::SYMBOL_FIELD.name);
6921            self.finish()
6922        }
6923        pub fn description(mut self) -> String {
6924            self.path.push(CoinMetadata::DESCRIPTION_FIELD.name);
6925            self.finish()
6926        }
6927        pub fn icon_url(mut self) -> String {
6928            self.path.push(CoinMetadata::ICON_URL_FIELD.name);
6929            self.finish()
6930        }
6931        pub fn metadata_cap_id(mut self) -> String {
6932            self.path.push(CoinMetadata::METADATA_CAP_ID_FIELD.name);
6933            self.finish()
6934        }
6935        pub fn metadata_cap_state(mut self) -> String {
6936            self.path.push(CoinMetadata::METADATA_CAP_STATE_FIELD.name);
6937            self.finish()
6938        }
6939    }
6940    impl CoinTreasury {
6941        pub const ID_FIELD: &'static MessageField = &MessageField {
6942            name: "id",
6943            json_name: "id",
6944            number: 1i32,
6945            message_fields: None,
6946        };
6947        pub const TOTAL_SUPPLY_FIELD: &'static MessageField = &MessageField {
6948            name: "total_supply",
6949            json_name: "totalSupply",
6950            number: 2i32,
6951            message_fields: None,
6952        };
6953        pub const SUPPLY_STATE_FIELD: &'static MessageField = &MessageField {
6954            name: "supply_state",
6955            json_name: "supplyState",
6956            number: 3i32,
6957            message_fields: None,
6958        };
6959    }
6960    impl MessageFields for CoinTreasury {
6961        const FIELDS: &'static [&'static MessageField] = &[
6962            Self::ID_FIELD,
6963            Self::TOTAL_SUPPLY_FIELD,
6964            Self::SUPPLY_STATE_FIELD,
6965        ];
6966    }
6967    impl CoinTreasury {
6968        pub fn path_builder() -> CoinTreasuryFieldPathBuilder {
6969            CoinTreasuryFieldPathBuilder::new()
6970        }
6971    }
6972    pub struct CoinTreasuryFieldPathBuilder {
6973        path: Vec<&'static str>,
6974    }
6975    impl CoinTreasuryFieldPathBuilder {
6976        #[allow(clippy::new_without_default)]
6977        pub fn new() -> Self {
6978            Self { path: Default::default() }
6979        }
6980        #[doc(hidden)]
6981        pub fn new_with_base(base: Vec<&'static str>) -> Self {
6982            Self { path: base }
6983        }
6984        pub fn finish(self) -> String {
6985            self.path.join(".")
6986        }
6987        pub fn id(mut self) -> String {
6988            self.path.push(CoinTreasury::ID_FIELD.name);
6989            self.finish()
6990        }
6991        pub fn total_supply(mut self) -> String {
6992            self.path.push(CoinTreasury::TOTAL_SUPPLY_FIELD.name);
6993            self.finish()
6994        }
6995        pub fn supply_state(mut self) -> String {
6996            self.path.push(CoinTreasury::SUPPLY_STATE_FIELD.name);
6997            self.finish()
6998        }
6999    }
7000    impl RegulatedCoinMetadata {
7001        pub const ID_FIELD: &'static MessageField = &MessageField {
7002            name: "id",
7003            json_name: "id",
7004            number: 1i32,
7005            message_fields: None,
7006        };
7007        pub const COIN_METADATA_OBJECT_FIELD: &'static MessageField = &MessageField {
7008            name: "coin_metadata_object",
7009            json_name: "coinMetadataObject",
7010            number: 2i32,
7011            message_fields: None,
7012        };
7013        pub const DENY_CAP_OBJECT_FIELD: &'static MessageField = &MessageField {
7014            name: "deny_cap_object",
7015            json_name: "denyCapObject",
7016            number: 3i32,
7017            message_fields: None,
7018        };
7019        pub const ALLOW_GLOBAL_PAUSE_FIELD: &'static MessageField = &MessageField {
7020            name: "allow_global_pause",
7021            json_name: "allowGlobalPause",
7022            number: 4i32,
7023            message_fields: None,
7024        };
7025        pub const VARIANT_FIELD: &'static MessageField = &MessageField {
7026            name: "variant",
7027            json_name: "variant",
7028            number: 5i32,
7029            message_fields: None,
7030        };
7031        pub const COIN_REGULATED_STATE_FIELD: &'static MessageField = &MessageField {
7032            name: "coin_regulated_state",
7033            json_name: "coinRegulatedState",
7034            number: 6i32,
7035            message_fields: None,
7036        };
7037    }
7038    impl MessageFields for RegulatedCoinMetadata {
7039        const FIELDS: &'static [&'static MessageField] = &[
7040            Self::ID_FIELD,
7041            Self::COIN_METADATA_OBJECT_FIELD,
7042            Self::DENY_CAP_OBJECT_FIELD,
7043            Self::ALLOW_GLOBAL_PAUSE_FIELD,
7044            Self::VARIANT_FIELD,
7045            Self::COIN_REGULATED_STATE_FIELD,
7046        ];
7047    }
7048    impl RegulatedCoinMetadata {
7049        pub fn path_builder() -> RegulatedCoinMetadataFieldPathBuilder {
7050            RegulatedCoinMetadataFieldPathBuilder::new()
7051        }
7052    }
7053    pub struct RegulatedCoinMetadataFieldPathBuilder {
7054        path: Vec<&'static str>,
7055    }
7056    impl RegulatedCoinMetadataFieldPathBuilder {
7057        #[allow(clippy::new_without_default)]
7058        pub fn new() -> Self {
7059            Self { path: Default::default() }
7060        }
7061        #[doc(hidden)]
7062        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7063            Self { path: base }
7064        }
7065        pub fn finish(self) -> String {
7066            self.path.join(".")
7067        }
7068        pub fn id(mut self) -> String {
7069            self.path.push(RegulatedCoinMetadata::ID_FIELD.name);
7070            self.finish()
7071        }
7072        pub fn coin_metadata_object(mut self) -> String {
7073            self.path.push(RegulatedCoinMetadata::COIN_METADATA_OBJECT_FIELD.name);
7074            self.finish()
7075        }
7076        pub fn deny_cap_object(mut self) -> String {
7077            self.path.push(RegulatedCoinMetadata::DENY_CAP_OBJECT_FIELD.name);
7078            self.finish()
7079        }
7080        pub fn allow_global_pause(mut self) -> String {
7081            self.path.push(RegulatedCoinMetadata::ALLOW_GLOBAL_PAUSE_FIELD.name);
7082            self.finish()
7083        }
7084        pub fn variant(mut self) -> String {
7085            self.path.push(RegulatedCoinMetadata::VARIANT_FIELD.name);
7086            self.finish()
7087        }
7088        pub fn coin_regulated_state(mut self) -> String {
7089            self.path.push(RegulatedCoinMetadata::COIN_REGULATED_STATE_FIELD.name);
7090            self.finish()
7091        }
7092    }
7093    impl GetBalanceRequest {
7094        pub const OWNER_FIELD: &'static MessageField = &MessageField {
7095            name: "owner",
7096            json_name: "owner",
7097            number: 1i32,
7098            message_fields: None,
7099        };
7100        pub const COIN_TYPE_FIELD: &'static MessageField = &MessageField {
7101            name: "coin_type",
7102            json_name: "coinType",
7103            number: 2i32,
7104            message_fields: None,
7105        };
7106    }
7107    impl MessageFields for GetBalanceRequest {
7108        const FIELDS: &'static [&'static MessageField] = &[
7109            Self::OWNER_FIELD,
7110            Self::COIN_TYPE_FIELD,
7111        ];
7112    }
7113    impl GetBalanceRequest {
7114        pub fn path_builder() -> GetBalanceRequestFieldPathBuilder {
7115            GetBalanceRequestFieldPathBuilder::new()
7116        }
7117    }
7118    pub struct GetBalanceRequestFieldPathBuilder {
7119        path: Vec<&'static str>,
7120    }
7121    impl GetBalanceRequestFieldPathBuilder {
7122        #[allow(clippy::new_without_default)]
7123        pub fn new() -> Self {
7124            Self { path: Default::default() }
7125        }
7126        #[doc(hidden)]
7127        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7128            Self { path: base }
7129        }
7130        pub fn finish(self) -> String {
7131            self.path.join(".")
7132        }
7133        pub fn owner(mut self) -> String {
7134            self.path.push(GetBalanceRequest::OWNER_FIELD.name);
7135            self.finish()
7136        }
7137        pub fn coin_type(mut self) -> String {
7138            self.path.push(GetBalanceRequest::COIN_TYPE_FIELD.name);
7139            self.finish()
7140        }
7141    }
7142    impl GetBalanceResponse {
7143        pub const BALANCE_FIELD: &'static MessageField = &MessageField {
7144            name: "balance",
7145            json_name: "balance",
7146            number: 1i32,
7147            message_fields: Some(Balance::FIELDS),
7148        };
7149    }
7150    impl MessageFields for GetBalanceResponse {
7151        const FIELDS: &'static [&'static MessageField] = &[Self::BALANCE_FIELD];
7152    }
7153    impl GetBalanceResponse {
7154        pub fn path_builder() -> GetBalanceResponseFieldPathBuilder {
7155            GetBalanceResponseFieldPathBuilder::new()
7156        }
7157    }
7158    pub struct GetBalanceResponseFieldPathBuilder {
7159        path: Vec<&'static str>,
7160    }
7161    impl GetBalanceResponseFieldPathBuilder {
7162        #[allow(clippy::new_without_default)]
7163        pub fn new() -> Self {
7164            Self { path: Default::default() }
7165        }
7166        #[doc(hidden)]
7167        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7168            Self { path: base }
7169        }
7170        pub fn finish(self) -> String {
7171            self.path.join(".")
7172        }
7173        pub fn balance(mut self) -> BalanceFieldPathBuilder {
7174            self.path.push(GetBalanceResponse::BALANCE_FIELD.name);
7175            BalanceFieldPathBuilder::new_with_base(self.path)
7176        }
7177    }
7178    impl ListBalancesRequest {
7179        pub const OWNER_FIELD: &'static MessageField = &MessageField {
7180            name: "owner",
7181            json_name: "owner",
7182            number: 1i32,
7183            message_fields: None,
7184        };
7185        pub const PAGE_SIZE_FIELD: &'static MessageField = &MessageField {
7186            name: "page_size",
7187            json_name: "pageSize",
7188            number: 2i32,
7189            message_fields: None,
7190        };
7191        pub const PAGE_TOKEN_FIELD: &'static MessageField = &MessageField {
7192            name: "page_token",
7193            json_name: "pageToken",
7194            number: 3i32,
7195            message_fields: None,
7196        };
7197    }
7198    impl MessageFields for ListBalancesRequest {
7199        const FIELDS: &'static [&'static MessageField] = &[
7200            Self::OWNER_FIELD,
7201            Self::PAGE_SIZE_FIELD,
7202            Self::PAGE_TOKEN_FIELD,
7203        ];
7204    }
7205    impl ListBalancesRequest {
7206        pub fn path_builder() -> ListBalancesRequestFieldPathBuilder {
7207            ListBalancesRequestFieldPathBuilder::new()
7208        }
7209    }
7210    pub struct ListBalancesRequestFieldPathBuilder {
7211        path: Vec<&'static str>,
7212    }
7213    impl ListBalancesRequestFieldPathBuilder {
7214        #[allow(clippy::new_without_default)]
7215        pub fn new() -> Self {
7216            Self { path: Default::default() }
7217        }
7218        #[doc(hidden)]
7219        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7220            Self { path: base }
7221        }
7222        pub fn finish(self) -> String {
7223            self.path.join(".")
7224        }
7225        pub fn owner(mut self) -> String {
7226            self.path.push(ListBalancesRequest::OWNER_FIELD.name);
7227            self.finish()
7228        }
7229        pub fn page_size(mut self) -> String {
7230            self.path.push(ListBalancesRequest::PAGE_SIZE_FIELD.name);
7231            self.finish()
7232        }
7233        pub fn page_token(mut self) -> String {
7234            self.path.push(ListBalancesRequest::PAGE_TOKEN_FIELD.name);
7235            self.finish()
7236        }
7237    }
7238    impl ListBalancesResponse {
7239        pub const BALANCES_FIELD: &'static MessageField = &MessageField {
7240            name: "balances",
7241            json_name: "balances",
7242            number: 1i32,
7243            message_fields: Some(Balance::FIELDS),
7244        };
7245        pub const NEXT_PAGE_TOKEN_FIELD: &'static MessageField = &MessageField {
7246            name: "next_page_token",
7247            json_name: "nextPageToken",
7248            number: 2i32,
7249            message_fields: None,
7250        };
7251    }
7252    impl MessageFields for ListBalancesResponse {
7253        const FIELDS: &'static [&'static MessageField] = &[
7254            Self::BALANCES_FIELD,
7255            Self::NEXT_PAGE_TOKEN_FIELD,
7256        ];
7257    }
7258    impl ListBalancesResponse {
7259        pub fn path_builder() -> ListBalancesResponseFieldPathBuilder {
7260            ListBalancesResponseFieldPathBuilder::new()
7261        }
7262    }
7263    pub struct ListBalancesResponseFieldPathBuilder {
7264        path: Vec<&'static str>,
7265    }
7266    impl ListBalancesResponseFieldPathBuilder {
7267        #[allow(clippy::new_without_default)]
7268        pub fn new() -> Self {
7269            Self { path: Default::default() }
7270        }
7271        #[doc(hidden)]
7272        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7273            Self { path: base }
7274        }
7275        pub fn finish(self) -> String {
7276            self.path.join(".")
7277        }
7278        pub fn balances(mut self) -> BalanceFieldPathBuilder {
7279            self.path.push(ListBalancesResponse::BALANCES_FIELD.name);
7280            BalanceFieldPathBuilder::new_with_base(self.path)
7281        }
7282        pub fn next_page_token(mut self) -> String {
7283            self.path.push(ListBalancesResponse::NEXT_PAGE_TOKEN_FIELD.name);
7284            self.finish()
7285        }
7286    }
7287    impl Balance {
7288        pub const COIN_TYPE_FIELD: &'static MessageField = &MessageField {
7289            name: "coin_type",
7290            json_name: "coinType",
7291            number: 1i32,
7292            message_fields: None,
7293        };
7294        pub const BALANCE_FIELD: &'static MessageField = &MessageField {
7295            name: "balance",
7296            json_name: "balance",
7297            number: 3i32,
7298            message_fields: None,
7299        };
7300    }
7301    impl MessageFields for Balance {
7302        const FIELDS: &'static [&'static MessageField] = &[
7303            Self::COIN_TYPE_FIELD,
7304            Self::BALANCE_FIELD,
7305        ];
7306    }
7307    impl Balance {
7308        pub fn path_builder() -> BalanceFieldPathBuilder {
7309            BalanceFieldPathBuilder::new()
7310        }
7311    }
7312    pub struct BalanceFieldPathBuilder {
7313        path: Vec<&'static str>,
7314    }
7315    impl BalanceFieldPathBuilder {
7316        #[allow(clippy::new_without_default)]
7317        pub fn new() -> Self {
7318            Self { path: Default::default() }
7319        }
7320        #[doc(hidden)]
7321        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7322            Self { path: base }
7323        }
7324        pub fn finish(self) -> String {
7325            self.path.join(".")
7326        }
7327        pub fn coin_type(mut self) -> String {
7328            self.path.push(Balance::COIN_TYPE_FIELD.name);
7329            self.finish()
7330        }
7331        pub fn balance(mut self) -> String {
7332            self.path.push(Balance::BALANCE_FIELD.name);
7333            self.finish()
7334        }
7335    }
7336    impl ListDynamicFieldsRequest {
7337        pub const PARENT_FIELD: &'static MessageField = &MessageField {
7338            name: "parent",
7339            json_name: "parent",
7340            number: 1i32,
7341            message_fields: None,
7342        };
7343        pub const PAGE_SIZE_FIELD: &'static MessageField = &MessageField {
7344            name: "page_size",
7345            json_name: "pageSize",
7346            number: 2i32,
7347            message_fields: None,
7348        };
7349        pub const PAGE_TOKEN_FIELD: &'static MessageField = &MessageField {
7350            name: "page_token",
7351            json_name: "pageToken",
7352            number: 3i32,
7353            message_fields: None,
7354        };
7355        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
7356            name: "read_mask",
7357            json_name: "readMask",
7358            number: 4i32,
7359            message_fields: None,
7360        };
7361    }
7362    impl MessageFields for ListDynamicFieldsRequest {
7363        const FIELDS: &'static [&'static MessageField] = &[
7364            Self::PARENT_FIELD,
7365            Self::PAGE_SIZE_FIELD,
7366            Self::PAGE_TOKEN_FIELD,
7367            Self::READ_MASK_FIELD,
7368        ];
7369    }
7370    impl ListDynamicFieldsRequest {
7371        pub fn path_builder() -> ListDynamicFieldsRequestFieldPathBuilder {
7372            ListDynamicFieldsRequestFieldPathBuilder::new()
7373        }
7374    }
7375    pub struct ListDynamicFieldsRequestFieldPathBuilder {
7376        path: Vec<&'static str>,
7377    }
7378    impl ListDynamicFieldsRequestFieldPathBuilder {
7379        #[allow(clippy::new_without_default)]
7380        pub fn new() -> Self {
7381            Self { path: Default::default() }
7382        }
7383        #[doc(hidden)]
7384        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7385            Self { path: base }
7386        }
7387        pub fn finish(self) -> String {
7388            self.path.join(".")
7389        }
7390        pub fn parent(mut self) -> String {
7391            self.path.push(ListDynamicFieldsRequest::PARENT_FIELD.name);
7392            self.finish()
7393        }
7394        pub fn page_size(mut self) -> String {
7395            self.path.push(ListDynamicFieldsRequest::PAGE_SIZE_FIELD.name);
7396            self.finish()
7397        }
7398        pub fn page_token(mut self) -> String {
7399            self.path.push(ListDynamicFieldsRequest::PAGE_TOKEN_FIELD.name);
7400            self.finish()
7401        }
7402        pub fn read_mask(mut self) -> String {
7403            self.path.push(ListDynamicFieldsRequest::READ_MASK_FIELD.name);
7404            self.finish()
7405        }
7406    }
7407    impl ListDynamicFieldsResponse {
7408        pub const DYNAMIC_FIELDS_FIELD: &'static MessageField = &MessageField {
7409            name: "dynamic_fields",
7410            json_name: "dynamicFields",
7411            number: 1i32,
7412            message_fields: Some(DynamicField::FIELDS),
7413        };
7414        pub const NEXT_PAGE_TOKEN_FIELD: &'static MessageField = &MessageField {
7415            name: "next_page_token",
7416            json_name: "nextPageToken",
7417            number: 2i32,
7418            message_fields: None,
7419        };
7420    }
7421    impl MessageFields for ListDynamicFieldsResponse {
7422        const FIELDS: &'static [&'static MessageField] = &[
7423            Self::DYNAMIC_FIELDS_FIELD,
7424            Self::NEXT_PAGE_TOKEN_FIELD,
7425        ];
7426    }
7427    impl ListDynamicFieldsResponse {
7428        pub fn path_builder() -> ListDynamicFieldsResponseFieldPathBuilder {
7429            ListDynamicFieldsResponseFieldPathBuilder::new()
7430        }
7431    }
7432    pub struct ListDynamicFieldsResponseFieldPathBuilder {
7433        path: Vec<&'static str>,
7434    }
7435    impl ListDynamicFieldsResponseFieldPathBuilder {
7436        #[allow(clippy::new_without_default)]
7437        pub fn new() -> Self {
7438            Self { path: Default::default() }
7439        }
7440        #[doc(hidden)]
7441        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7442            Self { path: base }
7443        }
7444        pub fn finish(self) -> String {
7445            self.path.join(".")
7446        }
7447        pub fn dynamic_fields(mut self) -> DynamicFieldFieldPathBuilder {
7448            self.path.push(ListDynamicFieldsResponse::DYNAMIC_FIELDS_FIELD.name);
7449            DynamicFieldFieldPathBuilder::new_with_base(self.path)
7450        }
7451        pub fn next_page_token(mut self) -> String {
7452            self.path.push(ListDynamicFieldsResponse::NEXT_PAGE_TOKEN_FIELD.name);
7453            self.finish()
7454        }
7455    }
7456    impl DynamicField {
7457        pub const KIND_FIELD: &'static MessageField = &MessageField {
7458            name: "kind",
7459            json_name: "kind",
7460            number: 1i32,
7461            message_fields: None,
7462        };
7463        pub const PARENT_FIELD: &'static MessageField = &MessageField {
7464            name: "parent",
7465            json_name: "parent",
7466            number: 2i32,
7467            message_fields: None,
7468        };
7469        pub const FIELD_ID_FIELD: &'static MessageField = &MessageField {
7470            name: "field_id",
7471            json_name: "fieldId",
7472            number: 3i32,
7473            message_fields: None,
7474        };
7475        pub const FIELD_OBJECT_FIELD: &'static MessageField = &MessageField {
7476            name: "field_object",
7477            json_name: "fieldObject",
7478            number: 4i32,
7479            message_fields: Some(Object::FIELDS),
7480        };
7481        pub const NAME_FIELD: &'static MessageField = &MessageField {
7482            name: "name",
7483            json_name: "name",
7484            number: 5i32,
7485            message_fields: Some(Bcs::FIELDS),
7486        };
7487        pub const VALUE_FIELD: &'static MessageField = &MessageField {
7488            name: "value",
7489            json_name: "value",
7490            number: 6i32,
7491            message_fields: Some(Bcs::FIELDS),
7492        };
7493        pub const VALUE_TYPE_FIELD: &'static MessageField = &MessageField {
7494            name: "value_type",
7495            json_name: "valueType",
7496            number: 7i32,
7497            message_fields: None,
7498        };
7499        pub const CHILD_ID_FIELD: &'static MessageField = &MessageField {
7500            name: "child_id",
7501            json_name: "childId",
7502            number: 8i32,
7503            message_fields: None,
7504        };
7505        pub const CHILD_OBJECT_FIELD: &'static MessageField = &MessageField {
7506            name: "child_object",
7507            json_name: "childObject",
7508            number: 9i32,
7509            message_fields: Some(Object::FIELDS),
7510        };
7511    }
7512    impl MessageFields for DynamicField {
7513        const FIELDS: &'static [&'static MessageField] = &[
7514            Self::KIND_FIELD,
7515            Self::PARENT_FIELD,
7516            Self::FIELD_ID_FIELD,
7517            Self::FIELD_OBJECT_FIELD,
7518            Self::NAME_FIELD,
7519            Self::VALUE_FIELD,
7520            Self::VALUE_TYPE_FIELD,
7521            Self::CHILD_ID_FIELD,
7522            Self::CHILD_OBJECT_FIELD,
7523        ];
7524    }
7525    impl DynamicField {
7526        pub fn path_builder() -> DynamicFieldFieldPathBuilder {
7527            DynamicFieldFieldPathBuilder::new()
7528        }
7529    }
7530    pub struct DynamicFieldFieldPathBuilder {
7531        path: Vec<&'static str>,
7532    }
7533    impl DynamicFieldFieldPathBuilder {
7534        #[allow(clippy::new_without_default)]
7535        pub fn new() -> Self {
7536            Self { path: Default::default() }
7537        }
7538        #[doc(hidden)]
7539        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7540            Self { path: base }
7541        }
7542        pub fn finish(self) -> String {
7543            self.path.join(".")
7544        }
7545        pub fn kind(mut self) -> String {
7546            self.path.push(DynamicField::KIND_FIELD.name);
7547            self.finish()
7548        }
7549        pub fn parent(mut self) -> String {
7550            self.path.push(DynamicField::PARENT_FIELD.name);
7551            self.finish()
7552        }
7553        pub fn field_id(mut self) -> String {
7554            self.path.push(DynamicField::FIELD_ID_FIELD.name);
7555            self.finish()
7556        }
7557        pub fn field_object(mut self) -> ObjectFieldPathBuilder {
7558            self.path.push(DynamicField::FIELD_OBJECT_FIELD.name);
7559            ObjectFieldPathBuilder::new_with_base(self.path)
7560        }
7561        pub fn name(mut self) -> BcsFieldPathBuilder {
7562            self.path.push(DynamicField::NAME_FIELD.name);
7563            BcsFieldPathBuilder::new_with_base(self.path)
7564        }
7565        pub fn value(mut self) -> BcsFieldPathBuilder {
7566            self.path.push(DynamicField::VALUE_FIELD.name);
7567            BcsFieldPathBuilder::new_with_base(self.path)
7568        }
7569        pub fn value_type(mut self) -> String {
7570            self.path.push(DynamicField::VALUE_TYPE_FIELD.name);
7571            self.finish()
7572        }
7573        pub fn child_id(mut self) -> String {
7574            self.path.push(DynamicField::CHILD_ID_FIELD.name);
7575            self.finish()
7576        }
7577        pub fn child_object(mut self) -> ObjectFieldPathBuilder {
7578            self.path.push(DynamicField::CHILD_OBJECT_FIELD.name);
7579            ObjectFieldPathBuilder::new_with_base(self.path)
7580        }
7581    }
7582    impl ListOwnedObjectsRequest {
7583        pub const OWNER_FIELD: &'static MessageField = &MessageField {
7584            name: "owner",
7585            json_name: "owner",
7586            number: 1i32,
7587            message_fields: None,
7588        };
7589        pub const PAGE_SIZE_FIELD: &'static MessageField = &MessageField {
7590            name: "page_size",
7591            json_name: "pageSize",
7592            number: 2i32,
7593            message_fields: None,
7594        };
7595        pub const PAGE_TOKEN_FIELD: &'static MessageField = &MessageField {
7596            name: "page_token",
7597            json_name: "pageToken",
7598            number: 3i32,
7599            message_fields: None,
7600        };
7601        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
7602            name: "read_mask",
7603            json_name: "readMask",
7604            number: 4i32,
7605            message_fields: None,
7606        };
7607        pub const OBJECT_TYPE_FIELD: &'static MessageField = &MessageField {
7608            name: "object_type",
7609            json_name: "objectType",
7610            number: 5i32,
7611            message_fields: None,
7612        };
7613    }
7614    impl MessageFields for ListOwnedObjectsRequest {
7615        const FIELDS: &'static [&'static MessageField] = &[
7616            Self::OWNER_FIELD,
7617            Self::PAGE_SIZE_FIELD,
7618            Self::PAGE_TOKEN_FIELD,
7619            Self::READ_MASK_FIELD,
7620            Self::OBJECT_TYPE_FIELD,
7621        ];
7622    }
7623    impl ListOwnedObjectsRequest {
7624        pub fn path_builder() -> ListOwnedObjectsRequestFieldPathBuilder {
7625            ListOwnedObjectsRequestFieldPathBuilder::new()
7626        }
7627    }
7628    pub struct ListOwnedObjectsRequestFieldPathBuilder {
7629        path: Vec<&'static str>,
7630    }
7631    impl ListOwnedObjectsRequestFieldPathBuilder {
7632        #[allow(clippy::new_without_default)]
7633        pub fn new() -> Self {
7634            Self { path: Default::default() }
7635        }
7636        #[doc(hidden)]
7637        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7638            Self { path: base }
7639        }
7640        pub fn finish(self) -> String {
7641            self.path.join(".")
7642        }
7643        pub fn owner(mut self) -> String {
7644            self.path.push(ListOwnedObjectsRequest::OWNER_FIELD.name);
7645            self.finish()
7646        }
7647        pub fn page_size(mut self) -> String {
7648            self.path.push(ListOwnedObjectsRequest::PAGE_SIZE_FIELD.name);
7649            self.finish()
7650        }
7651        pub fn page_token(mut self) -> String {
7652            self.path.push(ListOwnedObjectsRequest::PAGE_TOKEN_FIELD.name);
7653            self.finish()
7654        }
7655        pub fn read_mask(mut self) -> String {
7656            self.path.push(ListOwnedObjectsRequest::READ_MASK_FIELD.name);
7657            self.finish()
7658        }
7659        pub fn object_type(mut self) -> String {
7660            self.path.push(ListOwnedObjectsRequest::OBJECT_TYPE_FIELD.name);
7661            self.finish()
7662        }
7663    }
7664    impl ListOwnedObjectsResponse {
7665        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
7666            name: "objects",
7667            json_name: "objects",
7668            number: 1i32,
7669            message_fields: Some(Object::FIELDS),
7670        };
7671        pub const NEXT_PAGE_TOKEN_FIELD: &'static MessageField = &MessageField {
7672            name: "next_page_token",
7673            json_name: "nextPageToken",
7674            number: 2i32,
7675            message_fields: None,
7676        };
7677    }
7678    impl MessageFields for ListOwnedObjectsResponse {
7679        const FIELDS: &'static [&'static MessageField] = &[
7680            Self::OBJECTS_FIELD,
7681            Self::NEXT_PAGE_TOKEN_FIELD,
7682        ];
7683    }
7684    impl ListOwnedObjectsResponse {
7685        pub fn path_builder() -> ListOwnedObjectsResponseFieldPathBuilder {
7686            ListOwnedObjectsResponseFieldPathBuilder::new()
7687        }
7688    }
7689    pub struct ListOwnedObjectsResponseFieldPathBuilder {
7690        path: Vec<&'static str>,
7691    }
7692    impl ListOwnedObjectsResponseFieldPathBuilder {
7693        #[allow(clippy::new_without_default)]
7694        pub fn new() -> Self {
7695            Self { path: Default::default() }
7696        }
7697        #[doc(hidden)]
7698        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7699            Self { path: base }
7700        }
7701        pub fn finish(self) -> String {
7702            self.path.join(".")
7703        }
7704        pub fn objects(mut self) -> ObjectFieldPathBuilder {
7705            self.path.push(ListOwnedObjectsResponse::OBJECTS_FIELD.name);
7706            ObjectFieldPathBuilder::new_with_base(self.path)
7707        }
7708        pub fn next_page_token(mut self) -> String {
7709            self.path.push(ListOwnedObjectsResponse::NEXT_PAGE_TOKEN_FIELD.name);
7710            self.finish()
7711        }
7712    }
7713    impl SubscribeCheckpointsRequest {
7714        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
7715            name: "read_mask",
7716            json_name: "readMask",
7717            number: 1i32,
7718            message_fields: None,
7719        };
7720    }
7721    impl MessageFields for SubscribeCheckpointsRequest {
7722        const FIELDS: &'static [&'static MessageField] = &[Self::READ_MASK_FIELD];
7723    }
7724    impl SubscribeCheckpointsRequest {
7725        pub fn path_builder() -> SubscribeCheckpointsRequestFieldPathBuilder {
7726            SubscribeCheckpointsRequestFieldPathBuilder::new()
7727        }
7728    }
7729    pub struct SubscribeCheckpointsRequestFieldPathBuilder {
7730        path: Vec<&'static str>,
7731    }
7732    impl SubscribeCheckpointsRequestFieldPathBuilder {
7733        #[allow(clippy::new_without_default)]
7734        pub fn new() -> Self {
7735            Self { path: Default::default() }
7736        }
7737        #[doc(hidden)]
7738        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7739            Self { path: base }
7740        }
7741        pub fn finish(self) -> String {
7742            self.path.join(".")
7743        }
7744        pub fn read_mask(mut self) -> String {
7745            self.path.push(SubscribeCheckpointsRequest::READ_MASK_FIELD.name);
7746            self.finish()
7747        }
7748    }
7749    impl SubscribeCheckpointsResponse {
7750        pub const CURSOR_FIELD: &'static MessageField = &MessageField {
7751            name: "cursor",
7752            json_name: "cursor",
7753            number: 1i32,
7754            message_fields: None,
7755        };
7756        pub const CHECKPOINT_FIELD: &'static MessageField = &MessageField {
7757            name: "checkpoint",
7758            json_name: "checkpoint",
7759            number: 2i32,
7760            message_fields: Some(Checkpoint::FIELDS),
7761        };
7762    }
7763    impl MessageFields for SubscribeCheckpointsResponse {
7764        const FIELDS: &'static [&'static MessageField] = &[
7765            Self::CURSOR_FIELD,
7766            Self::CHECKPOINT_FIELD,
7767        ];
7768    }
7769    impl SubscribeCheckpointsResponse {
7770        pub fn path_builder() -> SubscribeCheckpointsResponseFieldPathBuilder {
7771            SubscribeCheckpointsResponseFieldPathBuilder::new()
7772        }
7773    }
7774    pub struct SubscribeCheckpointsResponseFieldPathBuilder {
7775        path: Vec<&'static str>,
7776    }
7777    impl SubscribeCheckpointsResponseFieldPathBuilder {
7778        #[allow(clippy::new_without_default)]
7779        pub fn new() -> Self {
7780            Self { path: Default::default() }
7781        }
7782        #[doc(hidden)]
7783        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7784            Self { path: base }
7785        }
7786        pub fn finish(self) -> String {
7787            self.path.join(".")
7788        }
7789        pub fn cursor(mut self) -> String {
7790            self.path.push(SubscribeCheckpointsResponse::CURSOR_FIELD.name);
7791            self.finish()
7792        }
7793        pub fn checkpoint(mut self) -> CheckpointFieldPathBuilder {
7794            self.path.push(SubscribeCheckpointsResponse::CHECKPOINT_FIELD.name);
7795            CheckpointFieldPathBuilder::new_with_base(self.path)
7796        }
7797    }
7798    impl SystemState {
7799        pub const VERSION_FIELD: &'static MessageField = &MessageField {
7800            name: "version",
7801            json_name: "version",
7802            number: 1i32,
7803            message_fields: None,
7804        };
7805        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
7806            name: "epoch",
7807            json_name: "epoch",
7808            number: 2i32,
7809            message_fields: None,
7810        };
7811        pub const PROTOCOL_VERSION_FIELD: &'static MessageField = &MessageField {
7812            name: "protocol_version",
7813            json_name: "protocolVersion",
7814            number: 3i32,
7815            message_fields: None,
7816        };
7817        pub const VALIDATORS_FIELD: &'static MessageField = &MessageField {
7818            name: "validators",
7819            json_name: "validators",
7820            number: 4i32,
7821            message_fields: Some(ValidatorSet::FIELDS),
7822        };
7823        pub const STORAGE_FUND_FIELD: &'static MessageField = &MessageField {
7824            name: "storage_fund",
7825            json_name: "storageFund",
7826            number: 5i32,
7827            message_fields: Some(StorageFund::FIELDS),
7828        };
7829        pub const PARAMETERS_FIELD: &'static MessageField = &MessageField {
7830            name: "parameters",
7831            json_name: "parameters",
7832            number: 6i32,
7833            message_fields: Some(SystemParameters::FIELDS),
7834        };
7835        pub const REFERENCE_GAS_PRICE_FIELD: &'static MessageField = &MessageField {
7836            name: "reference_gas_price",
7837            json_name: "referenceGasPrice",
7838            number: 7i32,
7839            message_fields: None,
7840        };
7841        pub const VALIDATOR_REPORT_RECORDS_FIELD: &'static MessageField = &MessageField {
7842            name: "validator_report_records",
7843            json_name: "validatorReportRecords",
7844            number: 8i32,
7845            message_fields: Some(ValidatorReportRecord::FIELDS),
7846        };
7847        pub const STAKE_SUBSIDY_FIELD: &'static MessageField = &MessageField {
7848            name: "stake_subsidy",
7849            json_name: "stakeSubsidy",
7850            number: 9i32,
7851            message_fields: Some(StakeSubsidy::FIELDS),
7852        };
7853        pub const SAFE_MODE_FIELD: &'static MessageField = &MessageField {
7854            name: "safe_mode",
7855            json_name: "safeMode",
7856            number: 10i32,
7857            message_fields: None,
7858        };
7859        pub const SAFE_MODE_STORAGE_REWARDS_FIELD: &'static MessageField = &MessageField {
7860            name: "safe_mode_storage_rewards",
7861            json_name: "safeModeStorageRewards",
7862            number: 11i32,
7863            message_fields: None,
7864        };
7865        pub const SAFE_MODE_COMPUTATION_REWARDS_FIELD: &'static MessageField = &MessageField {
7866            name: "safe_mode_computation_rewards",
7867            json_name: "safeModeComputationRewards",
7868            number: 12i32,
7869            message_fields: None,
7870        };
7871        pub const SAFE_MODE_STORAGE_REBATES_FIELD: &'static MessageField = &MessageField {
7872            name: "safe_mode_storage_rebates",
7873            json_name: "safeModeStorageRebates",
7874            number: 13i32,
7875            message_fields: None,
7876        };
7877        pub const SAFE_MODE_NON_REFUNDABLE_STORAGE_FEE_FIELD: &'static MessageField = &MessageField {
7878            name: "safe_mode_non_refundable_storage_fee",
7879            json_name: "safeModeNonRefundableStorageFee",
7880            number: 14i32,
7881            message_fields: None,
7882        };
7883        pub const EPOCH_START_TIMESTAMP_MS_FIELD: &'static MessageField = &MessageField {
7884            name: "epoch_start_timestamp_ms",
7885            json_name: "epochStartTimestampMs",
7886            number: 15i32,
7887            message_fields: None,
7888        };
7889        pub const EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
7890            name: "extra_fields",
7891            json_name: "extraFields",
7892            number: 16i32,
7893            message_fields: Some(MoveTable::FIELDS),
7894        };
7895    }
7896    impl MessageFields for SystemState {
7897        const FIELDS: &'static [&'static MessageField] = &[
7898            Self::VERSION_FIELD,
7899            Self::EPOCH_FIELD,
7900            Self::PROTOCOL_VERSION_FIELD,
7901            Self::VALIDATORS_FIELD,
7902            Self::STORAGE_FUND_FIELD,
7903            Self::PARAMETERS_FIELD,
7904            Self::REFERENCE_GAS_PRICE_FIELD,
7905            Self::VALIDATOR_REPORT_RECORDS_FIELD,
7906            Self::STAKE_SUBSIDY_FIELD,
7907            Self::SAFE_MODE_FIELD,
7908            Self::SAFE_MODE_STORAGE_REWARDS_FIELD,
7909            Self::SAFE_MODE_COMPUTATION_REWARDS_FIELD,
7910            Self::SAFE_MODE_STORAGE_REBATES_FIELD,
7911            Self::SAFE_MODE_NON_REFUNDABLE_STORAGE_FEE_FIELD,
7912            Self::EPOCH_START_TIMESTAMP_MS_FIELD,
7913            Self::EXTRA_FIELDS_FIELD,
7914        ];
7915    }
7916    impl SystemState {
7917        pub fn path_builder() -> SystemStateFieldPathBuilder {
7918            SystemStateFieldPathBuilder::new()
7919        }
7920    }
7921    pub struct SystemStateFieldPathBuilder {
7922        path: Vec<&'static str>,
7923    }
7924    impl SystemStateFieldPathBuilder {
7925        #[allow(clippy::new_without_default)]
7926        pub fn new() -> Self {
7927            Self { path: Default::default() }
7928        }
7929        #[doc(hidden)]
7930        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7931            Self { path: base }
7932        }
7933        pub fn finish(self) -> String {
7934            self.path.join(".")
7935        }
7936        pub fn version(mut self) -> String {
7937            self.path.push(SystemState::VERSION_FIELD.name);
7938            self.finish()
7939        }
7940        pub fn epoch(mut self) -> String {
7941            self.path.push(SystemState::EPOCH_FIELD.name);
7942            self.finish()
7943        }
7944        pub fn protocol_version(mut self) -> String {
7945            self.path.push(SystemState::PROTOCOL_VERSION_FIELD.name);
7946            self.finish()
7947        }
7948        pub fn validators(mut self) -> ValidatorSetFieldPathBuilder {
7949            self.path.push(SystemState::VALIDATORS_FIELD.name);
7950            ValidatorSetFieldPathBuilder::new_with_base(self.path)
7951        }
7952        pub fn storage_fund(mut self) -> StorageFundFieldPathBuilder {
7953            self.path.push(SystemState::STORAGE_FUND_FIELD.name);
7954            StorageFundFieldPathBuilder::new_with_base(self.path)
7955        }
7956        pub fn parameters(mut self) -> SystemParametersFieldPathBuilder {
7957            self.path.push(SystemState::PARAMETERS_FIELD.name);
7958            SystemParametersFieldPathBuilder::new_with_base(self.path)
7959        }
7960        pub fn reference_gas_price(mut self) -> String {
7961            self.path.push(SystemState::REFERENCE_GAS_PRICE_FIELD.name);
7962            self.finish()
7963        }
7964        pub fn validator_report_records(
7965            mut self,
7966        ) -> ValidatorReportRecordFieldPathBuilder {
7967            self.path.push(SystemState::VALIDATOR_REPORT_RECORDS_FIELD.name);
7968            ValidatorReportRecordFieldPathBuilder::new_with_base(self.path)
7969        }
7970        pub fn stake_subsidy(mut self) -> StakeSubsidyFieldPathBuilder {
7971            self.path.push(SystemState::STAKE_SUBSIDY_FIELD.name);
7972            StakeSubsidyFieldPathBuilder::new_with_base(self.path)
7973        }
7974        pub fn safe_mode(mut self) -> String {
7975            self.path.push(SystemState::SAFE_MODE_FIELD.name);
7976            self.finish()
7977        }
7978        pub fn safe_mode_storage_rewards(mut self) -> String {
7979            self.path.push(SystemState::SAFE_MODE_STORAGE_REWARDS_FIELD.name);
7980            self.finish()
7981        }
7982        pub fn safe_mode_computation_rewards(mut self) -> String {
7983            self.path.push(SystemState::SAFE_MODE_COMPUTATION_REWARDS_FIELD.name);
7984            self.finish()
7985        }
7986        pub fn safe_mode_storage_rebates(mut self) -> String {
7987            self.path.push(SystemState::SAFE_MODE_STORAGE_REBATES_FIELD.name);
7988            self.finish()
7989        }
7990        pub fn safe_mode_non_refundable_storage_fee(mut self) -> String {
7991            self.path.push(SystemState::SAFE_MODE_NON_REFUNDABLE_STORAGE_FEE_FIELD.name);
7992            self.finish()
7993        }
7994        pub fn epoch_start_timestamp_ms(mut self) -> String {
7995            self.path.push(SystemState::EPOCH_START_TIMESTAMP_MS_FIELD.name);
7996            self.finish()
7997        }
7998        pub fn extra_fields(mut self) -> MoveTableFieldPathBuilder {
7999            self.path.push(SystemState::EXTRA_FIELDS_FIELD.name);
8000            MoveTableFieldPathBuilder::new_with_base(self.path)
8001        }
8002    }
8003    impl ValidatorReportRecord {
8004        pub const REPORTED_FIELD: &'static MessageField = &MessageField {
8005            name: "reported",
8006            json_name: "reported",
8007            number: 1i32,
8008            message_fields: None,
8009        };
8010        pub const REPORTERS_FIELD: &'static MessageField = &MessageField {
8011            name: "reporters",
8012            json_name: "reporters",
8013            number: 2i32,
8014            message_fields: None,
8015        };
8016    }
8017    impl MessageFields for ValidatorReportRecord {
8018        const FIELDS: &'static [&'static MessageField] = &[
8019            Self::REPORTED_FIELD,
8020            Self::REPORTERS_FIELD,
8021        ];
8022    }
8023    impl ValidatorReportRecord {
8024        pub fn path_builder() -> ValidatorReportRecordFieldPathBuilder {
8025            ValidatorReportRecordFieldPathBuilder::new()
8026        }
8027    }
8028    pub struct ValidatorReportRecordFieldPathBuilder {
8029        path: Vec<&'static str>,
8030    }
8031    impl ValidatorReportRecordFieldPathBuilder {
8032        #[allow(clippy::new_without_default)]
8033        pub fn new() -> Self {
8034            Self { path: Default::default() }
8035        }
8036        #[doc(hidden)]
8037        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8038            Self { path: base }
8039        }
8040        pub fn finish(self) -> String {
8041            self.path.join(".")
8042        }
8043        pub fn reported(mut self) -> String {
8044            self.path.push(ValidatorReportRecord::REPORTED_FIELD.name);
8045            self.finish()
8046        }
8047        pub fn reporters(mut self) -> String {
8048            self.path.push(ValidatorReportRecord::REPORTERS_FIELD.name);
8049            self.finish()
8050        }
8051    }
8052    impl SystemParameters {
8053        pub const EPOCH_DURATION_MS_FIELD: &'static MessageField = &MessageField {
8054            name: "epoch_duration_ms",
8055            json_name: "epochDurationMs",
8056            number: 1i32,
8057            message_fields: None,
8058        };
8059        pub const STAKE_SUBSIDY_START_EPOCH_FIELD: &'static MessageField = &MessageField {
8060            name: "stake_subsidy_start_epoch",
8061            json_name: "stakeSubsidyStartEpoch",
8062            number: 2i32,
8063            message_fields: None,
8064        };
8065        pub const MIN_VALIDATOR_COUNT_FIELD: &'static MessageField = &MessageField {
8066            name: "min_validator_count",
8067            json_name: "minValidatorCount",
8068            number: 3i32,
8069            message_fields: None,
8070        };
8071        pub const MAX_VALIDATOR_COUNT_FIELD: &'static MessageField = &MessageField {
8072            name: "max_validator_count",
8073            json_name: "maxValidatorCount",
8074            number: 4i32,
8075            message_fields: None,
8076        };
8077        pub const MIN_VALIDATOR_JOINING_STAKE_FIELD: &'static MessageField = &MessageField {
8078            name: "min_validator_joining_stake",
8079            json_name: "minValidatorJoiningStake",
8080            number: 5i32,
8081            message_fields: None,
8082        };
8083        pub const VALIDATOR_LOW_STAKE_THRESHOLD_FIELD: &'static MessageField = &MessageField {
8084            name: "validator_low_stake_threshold",
8085            json_name: "validatorLowStakeThreshold",
8086            number: 6i32,
8087            message_fields: None,
8088        };
8089        pub const VALIDATOR_VERY_LOW_STAKE_THRESHOLD_FIELD: &'static MessageField = &MessageField {
8090            name: "validator_very_low_stake_threshold",
8091            json_name: "validatorVeryLowStakeThreshold",
8092            number: 7i32,
8093            message_fields: None,
8094        };
8095        pub const VALIDATOR_LOW_STAKE_GRACE_PERIOD_FIELD: &'static MessageField = &MessageField {
8096            name: "validator_low_stake_grace_period",
8097            json_name: "validatorLowStakeGracePeriod",
8098            number: 8i32,
8099            message_fields: None,
8100        };
8101        pub const EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
8102            name: "extra_fields",
8103            json_name: "extraFields",
8104            number: 9i32,
8105            message_fields: Some(MoveTable::FIELDS),
8106        };
8107    }
8108    impl MessageFields for SystemParameters {
8109        const FIELDS: &'static [&'static MessageField] = &[
8110            Self::EPOCH_DURATION_MS_FIELD,
8111            Self::STAKE_SUBSIDY_START_EPOCH_FIELD,
8112            Self::MIN_VALIDATOR_COUNT_FIELD,
8113            Self::MAX_VALIDATOR_COUNT_FIELD,
8114            Self::MIN_VALIDATOR_JOINING_STAKE_FIELD,
8115            Self::VALIDATOR_LOW_STAKE_THRESHOLD_FIELD,
8116            Self::VALIDATOR_VERY_LOW_STAKE_THRESHOLD_FIELD,
8117            Self::VALIDATOR_LOW_STAKE_GRACE_PERIOD_FIELD,
8118            Self::EXTRA_FIELDS_FIELD,
8119        ];
8120    }
8121    impl SystemParameters {
8122        pub fn path_builder() -> SystemParametersFieldPathBuilder {
8123            SystemParametersFieldPathBuilder::new()
8124        }
8125    }
8126    pub struct SystemParametersFieldPathBuilder {
8127        path: Vec<&'static str>,
8128    }
8129    impl SystemParametersFieldPathBuilder {
8130        #[allow(clippy::new_without_default)]
8131        pub fn new() -> Self {
8132            Self { path: Default::default() }
8133        }
8134        #[doc(hidden)]
8135        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8136            Self { path: base }
8137        }
8138        pub fn finish(self) -> String {
8139            self.path.join(".")
8140        }
8141        pub fn epoch_duration_ms(mut self) -> String {
8142            self.path.push(SystemParameters::EPOCH_DURATION_MS_FIELD.name);
8143            self.finish()
8144        }
8145        pub fn stake_subsidy_start_epoch(mut self) -> String {
8146            self.path.push(SystemParameters::STAKE_SUBSIDY_START_EPOCH_FIELD.name);
8147            self.finish()
8148        }
8149        pub fn min_validator_count(mut self) -> String {
8150            self.path.push(SystemParameters::MIN_VALIDATOR_COUNT_FIELD.name);
8151            self.finish()
8152        }
8153        pub fn max_validator_count(mut self) -> String {
8154            self.path.push(SystemParameters::MAX_VALIDATOR_COUNT_FIELD.name);
8155            self.finish()
8156        }
8157        pub fn min_validator_joining_stake(mut self) -> String {
8158            self.path.push(SystemParameters::MIN_VALIDATOR_JOINING_STAKE_FIELD.name);
8159            self.finish()
8160        }
8161        pub fn validator_low_stake_threshold(mut self) -> String {
8162            self.path.push(SystemParameters::VALIDATOR_LOW_STAKE_THRESHOLD_FIELD.name);
8163            self.finish()
8164        }
8165        pub fn validator_very_low_stake_threshold(mut self) -> String {
8166            self.path
8167                .push(SystemParameters::VALIDATOR_VERY_LOW_STAKE_THRESHOLD_FIELD.name);
8168            self.finish()
8169        }
8170        pub fn validator_low_stake_grace_period(mut self) -> String {
8171            self.path
8172                .push(SystemParameters::VALIDATOR_LOW_STAKE_GRACE_PERIOD_FIELD.name);
8173            self.finish()
8174        }
8175        pub fn extra_fields(mut self) -> MoveTableFieldPathBuilder {
8176            self.path.push(SystemParameters::EXTRA_FIELDS_FIELD.name);
8177            MoveTableFieldPathBuilder::new_with_base(self.path)
8178        }
8179    }
8180    impl MoveTable {
8181        pub const ID_FIELD: &'static MessageField = &MessageField {
8182            name: "id",
8183            json_name: "id",
8184            number: 1i32,
8185            message_fields: None,
8186        };
8187        pub const SIZE_FIELD: &'static MessageField = &MessageField {
8188            name: "size",
8189            json_name: "size",
8190            number: 2i32,
8191            message_fields: None,
8192        };
8193    }
8194    impl MessageFields for MoveTable {
8195        const FIELDS: &'static [&'static MessageField] = &[
8196            Self::ID_FIELD,
8197            Self::SIZE_FIELD,
8198        ];
8199    }
8200    impl MoveTable {
8201        pub fn path_builder() -> MoveTableFieldPathBuilder {
8202            MoveTableFieldPathBuilder::new()
8203        }
8204    }
8205    pub struct MoveTableFieldPathBuilder {
8206        path: Vec<&'static str>,
8207    }
8208    impl MoveTableFieldPathBuilder {
8209        #[allow(clippy::new_without_default)]
8210        pub fn new() -> Self {
8211            Self { path: Default::default() }
8212        }
8213        #[doc(hidden)]
8214        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8215            Self { path: base }
8216        }
8217        pub fn finish(self) -> String {
8218            self.path.join(".")
8219        }
8220        pub fn id(mut self) -> String {
8221            self.path.push(MoveTable::ID_FIELD.name);
8222            self.finish()
8223        }
8224        pub fn size(mut self) -> String {
8225            self.path.push(MoveTable::SIZE_FIELD.name);
8226            self.finish()
8227        }
8228    }
8229    impl StakeSubsidy {
8230        pub const BALANCE_FIELD: &'static MessageField = &MessageField {
8231            name: "balance",
8232            json_name: "balance",
8233            number: 1i32,
8234            message_fields: None,
8235        };
8236        pub const DISTRIBUTION_COUNTER_FIELD: &'static MessageField = &MessageField {
8237            name: "distribution_counter",
8238            json_name: "distributionCounter",
8239            number: 2i32,
8240            message_fields: None,
8241        };
8242        pub const CURRENT_DISTRIBUTION_AMOUNT_FIELD: &'static MessageField = &MessageField {
8243            name: "current_distribution_amount",
8244            json_name: "currentDistributionAmount",
8245            number: 3i32,
8246            message_fields: None,
8247        };
8248        pub const STAKE_SUBSIDY_PERIOD_LENGTH_FIELD: &'static MessageField = &MessageField {
8249            name: "stake_subsidy_period_length",
8250            json_name: "stakeSubsidyPeriodLength",
8251            number: 4i32,
8252            message_fields: None,
8253        };
8254        pub const STAKE_SUBSIDY_DECREASE_RATE_FIELD: &'static MessageField = &MessageField {
8255            name: "stake_subsidy_decrease_rate",
8256            json_name: "stakeSubsidyDecreaseRate",
8257            number: 5i32,
8258            message_fields: None,
8259        };
8260        pub const EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
8261            name: "extra_fields",
8262            json_name: "extraFields",
8263            number: 6i32,
8264            message_fields: Some(MoveTable::FIELDS),
8265        };
8266    }
8267    impl MessageFields for StakeSubsidy {
8268        const FIELDS: &'static [&'static MessageField] = &[
8269            Self::BALANCE_FIELD,
8270            Self::DISTRIBUTION_COUNTER_FIELD,
8271            Self::CURRENT_DISTRIBUTION_AMOUNT_FIELD,
8272            Self::STAKE_SUBSIDY_PERIOD_LENGTH_FIELD,
8273            Self::STAKE_SUBSIDY_DECREASE_RATE_FIELD,
8274            Self::EXTRA_FIELDS_FIELD,
8275        ];
8276    }
8277    impl StakeSubsidy {
8278        pub fn path_builder() -> StakeSubsidyFieldPathBuilder {
8279            StakeSubsidyFieldPathBuilder::new()
8280        }
8281    }
8282    pub struct StakeSubsidyFieldPathBuilder {
8283        path: Vec<&'static str>,
8284    }
8285    impl StakeSubsidyFieldPathBuilder {
8286        #[allow(clippy::new_without_default)]
8287        pub fn new() -> Self {
8288            Self { path: Default::default() }
8289        }
8290        #[doc(hidden)]
8291        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8292            Self { path: base }
8293        }
8294        pub fn finish(self) -> String {
8295            self.path.join(".")
8296        }
8297        pub fn balance(mut self) -> String {
8298            self.path.push(StakeSubsidy::BALANCE_FIELD.name);
8299            self.finish()
8300        }
8301        pub fn distribution_counter(mut self) -> String {
8302            self.path.push(StakeSubsidy::DISTRIBUTION_COUNTER_FIELD.name);
8303            self.finish()
8304        }
8305        pub fn current_distribution_amount(mut self) -> String {
8306            self.path.push(StakeSubsidy::CURRENT_DISTRIBUTION_AMOUNT_FIELD.name);
8307            self.finish()
8308        }
8309        pub fn stake_subsidy_period_length(mut self) -> String {
8310            self.path.push(StakeSubsidy::STAKE_SUBSIDY_PERIOD_LENGTH_FIELD.name);
8311            self.finish()
8312        }
8313        pub fn stake_subsidy_decrease_rate(mut self) -> String {
8314            self.path.push(StakeSubsidy::STAKE_SUBSIDY_DECREASE_RATE_FIELD.name);
8315            self.finish()
8316        }
8317        pub fn extra_fields(mut self) -> MoveTableFieldPathBuilder {
8318            self.path.push(StakeSubsidy::EXTRA_FIELDS_FIELD.name);
8319            MoveTableFieldPathBuilder::new_with_base(self.path)
8320        }
8321    }
8322    impl StorageFund {
8323        pub const TOTAL_OBJECT_STORAGE_REBATES_FIELD: &'static MessageField = &MessageField {
8324            name: "total_object_storage_rebates",
8325            json_name: "totalObjectStorageRebates",
8326            number: 1i32,
8327            message_fields: None,
8328        };
8329        pub const NON_REFUNDABLE_BALANCE_FIELD: &'static MessageField = &MessageField {
8330            name: "non_refundable_balance",
8331            json_name: "nonRefundableBalance",
8332            number: 2i32,
8333            message_fields: None,
8334        };
8335    }
8336    impl MessageFields for StorageFund {
8337        const FIELDS: &'static [&'static MessageField] = &[
8338            Self::TOTAL_OBJECT_STORAGE_REBATES_FIELD,
8339            Self::NON_REFUNDABLE_BALANCE_FIELD,
8340        ];
8341    }
8342    impl StorageFund {
8343        pub fn path_builder() -> StorageFundFieldPathBuilder {
8344            StorageFundFieldPathBuilder::new()
8345        }
8346    }
8347    pub struct StorageFundFieldPathBuilder {
8348        path: Vec<&'static str>,
8349    }
8350    impl StorageFundFieldPathBuilder {
8351        #[allow(clippy::new_without_default)]
8352        pub fn new() -> Self {
8353            Self { path: Default::default() }
8354        }
8355        #[doc(hidden)]
8356        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8357            Self { path: base }
8358        }
8359        pub fn finish(self) -> String {
8360            self.path.join(".")
8361        }
8362        pub fn total_object_storage_rebates(mut self) -> String {
8363            self.path.push(StorageFund::TOTAL_OBJECT_STORAGE_REBATES_FIELD.name);
8364            self.finish()
8365        }
8366        pub fn non_refundable_balance(mut self) -> String {
8367            self.path.push(StorageFund::NON_REFUNDABLE_BALANCE_FIELD.name);
8368            self.finish()
8369        }
8370    }
8371    impl ValidatorSet {
8372        pub const TOTAL_STAKE_FIELD: &'static MessageField = &MessageField {
8373            name: "total_stake",
8374            json_name: "totalStake",
8375            number: 1i32,
8376            message_fields: None,
8377        };
8378        pub const ACTIVE_VALIDATORS_FIELD: &'static MessageField = &MessageField {
8379            name: "active_validators",
8380            json_name: "activeValidators",
8381            number: 2i32,
8382            message_fields: Some(Validator::FIELDS),
8383        };
8384        pub const PENDING_ACTIVE_VALIDATORS_FIELD: &'static MessageField = &MessageField {
8385            name: "pending_active_validators",
8386            json_name: "pendingActiveValidators",
8387            number: 3i32,
8388            message_fields: Some(MoveTable::FIELDS),
8389        };
8390        pub const PENDING_REMOVALS_FIELD: &'static MessageField = &MessageField {
8391            name: "pending_removals",
8392            json_name: "pendingRemovals",
8393            number: 4i32,
8394            message_fields: None,
8395        };
8396        pub const STAKING_POOL_MAPPINGS_FIELD: &'static MessageField = &MessageField {
8397            name: "staking_pool_mappings",
8398            json_name: "stakingPoolMappings",
8399            number: 5i32,
8400            message_fields: Some(MoveTable::FIELDS),
8401        };
8402        pub const INACTIVE_VALIDATORS_FIELD: &'static MessageField = &MessageField {
8403            name: "inactive_validators",
8404            json_name: "inactiveValidators",
8405            number: 6i32,
8406            message_fields: Some(MoveTable::FIELDS),
8407        };
8408        pub const VALIDATOR_CANDIDATES_FIELD: &'static MessageField = &MessageField {
8409            name: "validator_candidates",
8410            json_name: "validatorCandidates",
8411            number: 7i32,
8412            message_fields: Some(MoveTable::FIELDS),
8413        };
8414        pub const AT_RISK_VALIDATORS_FIELD: &'static MessageField = &MessageField {
8415            name: "at_risk_validators",
8416            json_name: "atRiskValidators",
8417            number: 8i32,
8418            message_fields: None,
8419        };
8420        pub const EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
8421            name: "extra_fields",
8422            json_name: "extraFields",
8423            number: 9i32,
8424            message_fields: Some(MoveTable::FIELDS),
8425        };
8426    }
8427    impl MessageFields for ValidatorSet {
8428        const FIELDS: &'static [&'static MessageField] = &[
8429            Self::TOTAL_STAKE_FIELD,
8430            Self::ACTIVE_VALIDATORS_FIELD,
8431            Self::PENDING_ACTIVE_VALIDATORS_FIELD,
8432            Self::PENDING_REMOVALS_FIELD,
8433            Self::STAKING_POOL_MAPPINGS_FIELD,
8434            Self::INACTIVE_VALIDATORS_FIELD,
8435            Self::VALIDATOR_CANDIDATES_FIELD,
8436            Self::AT_RISK_VALIDATORS_FIELD,
8437            Self::EXTRA_FIELDS_FIELD,
8438        ];
8439    }
8440    impl ValidatorSet {
8441        pub fn path_builder() -> ValidatorSetFieldPathBuilder {
8442            ValidatorSetFieldPathBuilder::new()
8443        }
8444    }
8445    pub struct ValidatorSetFieldPathBuilder {
8446        path: Vec<&'static str>,
8447    }
8448    impl ValidatorSetFieldPathBuilder {
8449        #[allow(clippy::new_without_default)]
8450        pub fn new() -> Self {
8451            Self { path: Default::default() }
8452        }
8453        #[doc(hidden)]
8454        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8455            Self { path: base }
8456        }
8457        pub fn finish(self) -> String {
8458            self.path.join(".")
8459        }
8460        pub fn total_stake(mut self) -> String {
8461            self.path.push(ValidatorSet::TOTAL_STAKE_FIELD.name);
8462            self.finish()
8463        }
8464        pub fn active_validators(mut self) -> ValidatorFieldPathBuilder {
8465            self.path.push(ValidatorSet::ACTIVE_VALIDATORS_FIELD.name);
8466            ValidatorFieldPathBuilder::new_with_base(self.path)
8467        }
8468        pub fn pending_active_validators(mut self) -> MoveTableFieldPathBuilder {
8469            self.path.push(ValidatorSet::PENDING_ACTIVE_VALIDATORS_FIELD.name);
8470            MoveTableFieldPathBuilder::new_with_base(self.path)
8471        }
8472        pub fn pending_removals(mut self) -> String {
8473            self.path.push(ValidatorSet::PENDING_REMOVALS_FIELD.name);
8474            self.finish()
8475        }
8476        pub fn staking_pool_mappings(mut self) -> MoveTableFieldPathBuilder {
8477            self.path.push(ValidatorSet::STAKING_POOL_MAPPINGS_FIELD.name);
8478            MoveTableFieldPathBuilder::new_with_base(self.path)
8479        }
8480        pub fn inactive_validators(mut self) -> MoveTableFieldPathBuilder {
8481            self.path.push(ValidatorSet::INACTIVE_VALIDATORS_FIELD.name);
8482            MoveTableFieldPathBuilder::new_with_base(self.path)
8483        }
8484        pub fn validator_candidates(mut self) -> MoveTableFieldPathBuilder {
8485            self.path.push(ValidatorSet::VALIDATOR_CANDIDATES_FIELD.name);
8486            MoveTableFieldPathBuilder::new_with_base(self.path)
8487        }
8488        pub fn at_risk_validators(mut self) -> String {
8489            self.path.push(ValidatorSet::AT_RISK_VALIDATORS_FIELD.name);
8490            self.finish()
8491        }
8492        pub fn extra_fields(mut self) -> MoveTableFieldPathBuilder {
8493            self.path.push(ValidatorSet::EXTRA_FIELDS_FIELD.name);
8494            MoveTableFieldPathBuilder::new_with_base(self.path)
8495        }
8496    }
8497    impl Validator {
8498        pub const NAME_FIELD: &'static MessageField = &MessageField {
8499            name: "name",
8500            json_name: "name",
8501            number: 1i32,
8502            message_fields: None,
8503        };
8504        pub const ADDRESS_FIELD: &'static MessageField = &MessageField {
8505            name: "address",
8506            json_name: "address",
8507            number: 2i32,
8508            message_fields: None,
8509        };
8510        pub const DESCRIPTION_FIELD: &'static MessageField = &MessageField {
8511            name: "description",
8512            json_name: "description",
8513            number: 3i32,
8514            message_fields: None,
8515        };
8516        pub const IMAGE_URL_FIELD: &'static MessageField = &MessageField {
8517            name: "image_url",
8518            json_name: "imageUrl",
8519            number: 4i32,
8520            message_fields: None,
8521        };
8522        pub const PROJECT_URL_FIELD: &'static MessageField = &MessageField {
8523            name: "project_url",
8524            json_name: "projectUrl",
8525            number: 5i32,
8526            message_fields: None,
8527        };
8528        pub const PROTOCOL_PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
8529            name: "protocol_public_key",
8530            json_name: "protocolPublicKey",
8531            number: 7i32,
8532            message_fields: None,
8533        };
8534        pub const PROOF_OF_POSSESSION_FIELD: &'static MessageField = &MessageField {
8535            name: "proof_of_possession",
8536            json_name: "proofOfPossession",
8537            number: 8i32,
8538            message_fields: None,
8539        };
8540        pub const NETWORK_PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
8541            name: "network_public_key",
8542            json_name: "networkPublicKey",
8543            number: 10i32,
8544            message_fields: None,
8545        };
8546        pub const WORKER_PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
8547            name: "worker_public_key",
8548            json_name: "workerPublicKey",
8549            number: 12i32,
8550            message_fields: None,
8551        };
8552        pub const NETWORK_ADDRESS_FIELD: &'static MessageField = &MessageField {
8553            name: "network_address",
8554            json_name: "networkAddress",
8555            number: 13i32,
8556            message_fields: None,
8557        };
8558        pub const P2P_ADDRESS_FIELD: &'static MessageField = &MessageField {
8559            name: "p2p_address",
8560            json_name: "p2pAddress",
8561            number: 14i32,
8562            message_fields: None,
8563        };
8564        pub const PRIMARY_ADDRESS_FIELD: &'static MessageField = &MessageField {
8565            name: "primary_address",
8566            json_name: "primaryAddress",
8567            number: 15i32,
8568            message_fields: None,
8569        };
8570        pub const WORKER_ADDRESS_FIELD: &'static MessageField = &MessageField {
8571            name: "worker_address",
8572            json_name: "workerAddress",
8573            number: 16i32,
8574            message_fields: None,
8575        };
8576        pub const NEXT_EPOCH_PROTOCOL_PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
8577            name: "next_epoch_protocol_public_key",
8578            json_name: "nextEpochProtocolPublicKey",
8579            number: 18i32,
8580            message_fields: None,
8581        };
8582        pub const NEXT_EPOCH_PROOF_OF_POSSESSION_FIELD: &'static MessageField = &MessageField {
8583            name: "next_epoch_proof_of_possession",
8584            json_name: "nextEpochProofOfPossession",
8585            number: 19i32,
8586            message_fields: None,
8587        };
8588        pub const NEXT_EPOCH_NETWORK_PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
8589            name: "next_epoch_network_public_key",
8590            json_name: "nextEpochNetworkPublicKey",
8591            number: 21i32,
8592            message_fields: None,
8593        };
8594        pub const NEXT_EPOCH_WORKER_PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
8595            name: "next_epoch_worker_public_key",
8596            json_name: "nextEpochWorkerPublicKey",
8597            number: 23i32,
8598            message_fields: None,
8599        };
8600        pub const NEXT_EPOCH_NETWORK_ADDRESS_FIELD: &'static MessageField = &MessageField {
8601            name: "next_epoch_network_address",
8602            json_name: "nextEpochNetworkAddress",
8603            number: 24i32,
8604            message_fields: None,
8605        };
8606        pub const NEXT_EPOCH_P2P_ADDRESS_FIELD: &'static MessageField = &MessageField {
8607            name: "next_epoch_p2p_address",
8608            json_name: "nextEpochP2pAddress",
8609            number: 25i32,
8610            message_fields: None,
8611        };
8612        pub const NEXT_EPOCH_PRIMARY_ADDRESS_FIELD: &'static MessageField = &MessageField {
8613            name: "next_epoch_primary_address",
8614            json_name: "nextEpochPrimaryAddress",
8615            number: 26i32,
8616            message_fields: None,
8617        };
8618        pub const NEXT_EPOCH_WORKER_ADDRESS_FIELD: &'static MessageField = &MessageField {
8619            name: "next_epoch_worker_address",
8620            json_name: "nextEpochWorkerAddress",
8621            number: 27i32,
8622            message_fields: None,
8623        };
8624        pub const METADATA_EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
8625            name: "metadata_extra_fields",
8626            json_name: "metadataExtraFields",
8627            number: 28i32,
8628            message_fields: Some(MoveTable::FIELDS),
8629        };
8630        pub const VOTING_POWER_FIELD: &'static MessageField = &MessageField {
8631            name: "voting_power",
8632            json_name: "votingPower",
8633            number: 29i32,
8634            message_fields: None,
8635        };
8636        pub const OPERATION_CAP_ID_FIELD: &'static MessageField = &MessageField {
8637            name: "operation_cap_id",
8638            json_name: "operationCapId",
8639            number: 30i32,
8640            message_fields: None,
8641        };
8642        pub const GAS_PRICE_FIELD: &'static MessageField = &MessageField {
8643            name: "gas_price",
8644            json_name: "gasPrice",
8645            number: 31i32,
8646            message_fields: None,
8647        };
8648        pub const STAKING_POOL_FIELD: &'static MessageField = &MessageField {
8649            name: "staking_pool",
8650            json_name: "stakingPool",
8651            number: 32i32,
8652            message_fields: Some(StakingPool::FIELDS),
8653        };
8654        pub const COMMISSION_RATE_FIELD: &'static MessageField = &MessageField {
8655            name: "commission_rate",
8656            json_name: "commissionRate",
8657            number: 33i32,
8658            message_fields: None,
8659        };
8660        pub const NEXT_EPOCH_STAKE_FIELD: &'static MessageField = &MessageField {
8661            name: "next_epoch_stake",
8662            json_name: "nextEpochStake",
8663            number: 34i32,
8664            message_fields: None,
8665        };
8666        pub const NEXT_EPOCH_GAS_PRICE_FIELD: &'static MessageField = &MessageField {
8667            name: "next_epoch_gas_price",
8668            json_name: "nextEpochGasPrice",
8669            number: 35i32,
8670            message_fields: None,
8671        };
8672        pub const NEXT_EPOCH_COMMISSION_RATE_FIELD: &'static MessageField = &MessageField {
8673            name: "next_epoch_commission_rate",
8674            json_name: "nextEpochCommissionRate",
8675            number: 36i32,
8676            message_fields: None,
8677        };
8678        pub const EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
8679            name: "extra_fields",
8680            json_name: "extraFields",
8681            number: 37i32,
8682            message_fields: Some(MoveTable::FIELDS),
8683        };
8684    }
8685    impl MessageFields for Validator {
8686        const FIELDS: &'static [&'static MessageField] = &[
8687            Self::NAME_FIELD,
8688            Self::ADDRESS_FIELD,
8689            Self::DESCRIPTION_FIELD,
8690            Self::IMAGE_URL_FIELD,
8691            Self::PROJECT_URL_FIELD,
8692            Self::PROTOCOL_PUBLIC_KEY_FIELD,
8693            Self::PROOF_OF_POSSESSION_FIELD,
8694            Self::NETWORK_PUBLIC_KEY_FIELD,
8695            Self::WORKER_PUBLIC_KEY_FIELD,
8696            Self::NETWORK_ADDRESS_FIELD,
8697            Self::P2P_ADDRESS_FIELD,
8698            Self::PRIMARY_ADDRESS_FIELD,
8699            Self::WORKER_ADDRESS_FIELD,
8700            Self::NEXT_EPOCH_PROTOCOL_PUBLIC_KEY_FIELD,
8701            Self::NEXT_EPOCH_PROOF_OF_POSSESSION_FIELD,
8702            Self::NEXT_EPOCH_NETWORK_PUBLIC_KEY_FIELD,
8703            Self::NEXT_EPOCH_WORKER_PUBLIC_KEY_FIELD,
8704            Self::NEXT_EPOCH_NETWORK_ADDRESS_FIELD,
8705            Self::NEXT_EPOCH_P2P_ADDRESS_FIELD,
8706            Self::NEXT_EPOCH_PRIMARY_ADDRESS_FIELD,
8707            Self::NEXT_EPOCH_WORKER_ADDRESS_FIELD,
8708            Self::METADATA_EXTRA_FIELDS_FIELD,
8709            Self::VOTING_POWER_FIELD,
8710            Self::OPERATION_CAP_ID_FIELD,
8711            Self::GAS_PRICE_FIELD,
8712            Self::STAKING_POOL_FIELD,
8713            Self::COMMISSION_RATE_FIELD,
8714            Self::NEXT_EPOCH_STAKE_FIELD,
8715            Self::NEXT_EPOCH_GAS_PRICE_FIELD,
8716            Self::NEXT_EPOCH_COMMISSION_RATE_FIELD,
8717            Self::EXTRA_FIELDS_FIELD,
8718        ];
8719    }
8720    impl Validator {
8721        pub fn path_builder() -> ValidatorFieldPathBuilder {
8722            ValidatorFieldPathBuilder::new()
8723        }
8724    }
8725    pub struct ValidatorFieldPathBuilder {
8726        path: Vec<&'static str>,
8727    }
8728    impl ValidatorFieldPathBuilder {
8729        #[allow(clippy::new_without_default)]
8730        pub fn new() -> Self {
8731            Self { path: Default::default() }
8732        }
8733        #[doc(hidden)]
8734        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8735            Self { path: base }
8736        }
8737        pub fn finish(self) -> String {
8738            self.path.join(".")
8739        }
8740        pub fn name(mut self) -> String {
8741            self.path.push(Validator::NAME_FIELD.name);
8742            self.finish()
8743        }
8744        pub fn address(mut self) -> String {
8745            self.path.push(Validator::ADDRESS_FIELD.name);
8746            self.finish()
8747        }
8748        pub fn description(mut self) -> String {
8749            self.path.push(Validator::DESCRIPTION_FIELD.name);
8750            self.finish()
8751        }
8752        pub fn image_url(mut self) -> String {
8753            self.path.push(Validator::IMAGE_URL_FIELD.name);
8754            self.finish()
8755        }
8756        pub fn project_url(mut self) -> String {
8757            self.path.push(Validator::PROJECT_URL_FIELD.name);
8758            self.finish()
8759        }
8760        pub fn protocol_public_key(mut self) -> String {
8761            self.path.push(Validator::PROTOCOL_PUBLIC_KEY_FIELD.name);
8762            self.finish()
8763        }
8764        pub fn proof_of_possession(mut self) -> String {
8765            self.path.push(Validator::PROOF_OF_POSSESSION_FIELD.name);
8766            self.finish()
8767        }
8768        pub fn network_public_key(mut self) -> String {
8769            self.path.push(Validator::NETWORK_PUBLIC_KEY_FIELD.name);
8770            self.finish()
8771        }
8772        pub fn worker_public_key(mut self) -> String {
8773            self.path.push(Validator::WORKER_PUBLIC_KEY_FIELD.name);
8774            self.finish()
8775        }
8776        pub fn network_address(mut self) -> String {
8777            self.path.push(Validator::NETWORK_ADDRESS_FIELD.name);
8778            self.finish()
8779        }
8780        pub fn p2p_address(mut self) -> String {
8781            self.path.push(Validator::P2P_ADDRESS_FIELD.name);
8782            self.finish()
8783        }
8784        pub fn primary_address(mut self) -> String {
8785            self.path.push(Validator::PRIMARY_ADDRESS_FIELD.name);
8786            self.finish()
8787        }
8788        pub fn worker_address(mut self) -> String {
8789            self.path.push(Validator::WORKER_ADDRESS_FIELD.name);
8790            self.finish()
8791        }
8792        pub fn next_epoch_protocol_public_key(mut self) -> String {
8793            self.path.push(Validator::NEXT_EPOCH_PROTOCOL_PUBLIC_KEY_FIELD.name);
8794            self.finish()
8795        }
8796        pub fn next_epoch_proof_of_possession(mut self) -> String {
8797            self.path.push(Validator::NEXT_EPOCH_PROOF_OF_POSSESSION_FIELD.name);
8798            self.finish()
8799        }
8800        pub fn next_epoch_network_public_key(mut self) -> String {
8801            self.path.push(Validator::NEXT_EPOCH_NETWORK_PUBLIC_KEY_FIELD.name);
8802            self.finish()
8803        }
8804        pub fn next_epoch_worker_public_key(mut self) -> String {
8805            self.path.push(Validator::NEXT_EPOCH_WORKER_PUBLIC_KEY_FIELD.name);
8806            self.finish()
8807        }
8808        pub fn next_epoch_network_address(mut self) -> String {
8809            self.path.push(Validator::NEXT_EPOCH_NETWORK_ADDRESS_FIELD.name);
8810            self.finish()
8811        }
8812        pub fn next_epoch_p2p_address(mut self) -> String {
8813            self.path.push(Validator::NEXT_EPOCH_P2P_ADDRESS_FIELD.name);
8814            self.finish()
8815        }
8816        pub fn next_epoch_primary_address(mut self) -> String {
8817            self.path.push(Validator::NEXT_EPOCH_PRIMARY_ADDRESS_FIELD.name);
8818            self.finish()
8819        }
8820        pub fn next_epoch_worker_address(mut self) -> String {
8821            self.path.push(Validator::NEXT_EPOCH_WORKER_ADDRESS_FIELD.name);
8822            self.finish()
8823        }
8824        pub fn metadata_extra_fields(mut self) -> MoveTableFieldPathBuilder {
8825            self.path.push(Validator::METADATA_EXTRA_FIELDS_FIELD.name);
8826            MoveTableFieldPathBuilder::new_with_base(self.path)
8827        }
8828        pub fn voting_power(mut self) -> String {
8829            self.path.push(Validator::VOTING_POWER_FIELD.name);
8830            self.finish()
8831        }
8832        pub fn operation_cap_id(mut self) -> String {
8833            self.path.push(Validator::OPERATION_CAP_ID_FIELD.name);
8834            self.finish()
8835        }
8836        pub fn gas_price(mut self) -> String {
8837            self.path.push(Validator::GAS_PRICE_FIELD.name);
8838            self.finish()
8839        }
8840        pub fn staking_pool(mut self) -> StakingPoolFieldPathBuilder {
8841            self.path.push(Validator::STAKING_POOL_FIELD.name);
8842            StakingPoolFieldPathBuilder::new_with_base(self.path)
8843        }
8844        pub fn commission_rate(mut self) -> String {
8845            self.path.push(Validator::COMMISSION_RATE_FIELD.name);
8846            self.finish()
8847        }
8848        pub fn next_epoch_stake(mut self) -> String {
8849            self.path.push(Validator::NEXT_EPOCH_STAKE_FIELD.name);
8850            self.finish()
8851        }
8852        pub fn next_epoch_gas_price(mut self) -> String {
8853            self.path.push(Validator::NEXT_EPOCH_GAS_PRICE_FIELD.name);
8854            self.finish()
8855        }
8856        pub fn next_epoch_commission_rate(mut self) -> String {
8857            self.path.push(Validator::NEXT_EPOCH_COMMISSION_RATE_FIELD.name);
8858            self.finish()
8859        }
8860        pub fn extra_fields(mut self) -> MoveTableFieldPathBuilder {
8861            self.path.push(Validator::EXTRA_FIELDS_FIELD.name);
8862            MoveTableFieldPathBuilder::new_with_base(self.path)
8863        }
8864    }
8865    impl StakingPool {
8866        pub const ID_FIELD: &'static MessageField = &MessageField {
8867            name: "id",
8868            json_name: "id",
8869            number: 1i32,
8870            message_fields: None,
8871        };
8872        pub const ACTIVATION_EPOCH_FIELD: &'static MessageField = &MessageField {
8873            name: "activation_epoch",
8874            json_name: "activationEpoch",
8875            number: 2i32,
8876            message_fields: None,
8877        };
8878        pub const DEACTIVATION_EPOCH_FIELD: &'static MessageField = &MessageField {
8879            name: "deactivation_epoch",
8880            json_name: "deactivationEpoch",
8881            number: 3i32,
8882            message_fields: None,
8883        };
8884        pub const SUI_BALANCE_FIELD: &'static MessageField = &MessageField {
8885            name: "sui_balance",
8886            json_name: "suiBalance",
8887            number: 4i32,
8888            message_fields: None,
8889        };
8890        pub const REWARDS_POOL_FIELD: &'static MessageField = &MessageField {
8891            name: "rewards_pool",
8892            json_name: "rewardsPool",
8893            number: 5i32,
8894            message_fields: None,
8895        };
8896        pub const POOL_TOKEN_BALANCE_FIELD: &'static MessageField = &MessageField {
8897            name: "pool_token_balance",
8898            json_name: "poolTokenBalance",
8899            number: 6i32,
8900            message_fields: None,
8901        };
8902        pub const EXCHANGE_RATES_FIELD: &'static MessageField = &MessageField {
8903            name: "exchange_rates",
8904            json_name: "exchangeRates",
8905            number: 7i32,
8906            message_fields: Some(MoveTable::FIELDS),
8907        };
8908        pub const PENDING_STAKE_FIELD: &'static MessageField = &MessageField {
8909            name: "pending_stake",
8910            json_name: "pendingStake",
8911            number: 8i32,
8912            message_fields: None,
8913        };
8914        pub const PENDING_TOTAL_SUI_WITHDRAW_FIELD: &'static MessageField = &MessageField {
8915            name: "pending_total_sui_withdraw",
8916            json_name: "pendingTotalSuiWithdraw",
8917            number: 9i32,
8918            message_fields: None,
8919        };
8920        pub const PENDING_POOL_TOKEN_WITHDRAW_FIELD: &'static MessageField = &MessageField {
8921            name: "pending_pool_token_withdraw",
8922            json_name: "pendingPoolTokenWithdraw",
8923            number: 10i32,
8924            message_fields: None,
8925        };
8926        pub const EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
8927            name: "extra_fields",
8928            json_name: "extraFields",
8929            number: 11i32,
8930            message_fields: Some(MoveTable::FIELDS),
8931        };
8932    }
8933    impl MessageFields for StakingPool {
8934        const FIELDS: &'static [&'static MessageField] = &[
8935            Self::ID_FIELD,
8936            Self::ACTIVATION_EPOCH_FIELD,
8937            Self::DEACTIVATION_EPOCH_FIELD,
8938            Self::SUI_BALANCE_FIELD,
8939            Self::REWARDS_POOL_FIELD,
8940            Self::POOL_TOKEN_BALANCE_FIELD,
8941            Self::EXCHANGE_RATES_FIELD,
8942            Self::PENDING_STAKE_FIELD,
8943            Self::PENDING_TOTAL_SUI_WITHDRAW_FIELD,
8944            Self::PENDING_POOL_TOKEN_WITHDRAW_FIELD,
8945            Self::EXTRA_FIELDS_FIELD,
8946        ];
8947    }
8948    impl StakingPool {
8949        pub fn path_builder() -> StakingPoolFieldPathBuilder {
8950            StakingPoolFieldPathBuilder::new()
8951        }
8952    }
8953    pub struct StakingPoolFieldPathBuilder {
8954        path: Vec<&'static str>,
8955    }
8956    impl StakingPoolFieldPathBuilder {
8957        #[allow(clippy::new_without_default)]
8958        pub fn new() -> Self {
8959            Self { path: Default::default() }
8960        }
8961        #[doc(hidden)]
8962        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8963            Self { path: base }
8964        }
8965        pub fn finish(self) -> String {
8966            self.path.join(".")
8967        }
8968        pub fn id(mut self) -> String {
8969            self.path.push(StakingPool::ID_FIELD.name);
8970            self.finish()
8971        }
8972        pub fn activation_epoch(mut self) -> String {
8973            self.path.push(StakingPool::ACTIVATION_EPOCH_FIELD.name);
8974            self.finish()
8975        }
8976        pub fn deactivation_epoch(mut self) -> String {
8977            self.path.push(StakingPool::DEACTIVATION_EPOCH_FIELD.name);
8978            self.finish()
8979        }
8980        pub fn sui_balance(mut self) -> String {
8981            self.path.push(StakingPool::SUI_BALANCE_FIELD.name);
8982            self.finish()
8983        }
8984        pub fn rewards_pool(mut self) -> String {
8985            self.path.push(StakingPool::REWARDS_POOL_FIELD.name);
8986            self.finish()
8987        }
8988        pub fn pool_token_balance(mut self) -> String {
8989            self.path.push(StakingPool::POOL_TOKEN_BALANCE_FIELD.name);
8990            self.finish()
8991        }
8992        pub fn exchange_rates(mut self) -> MoveTableFieldPathBuilder {
8993            self.path.push(StakingPool::EXCHANGE_RATES_FIELD.name);
8994            MoveTableFieldPathBuilder::new_with_base(self.path)
8995        }
8996        pub fn pending_stake(mut self) -> String {
8997            self.path.push(StakingPool::PENDING_STAKE_FIELD.name);
8998            self.finish()
8999        }
9000        pub fn pending_total_sui_withdraw(mut self) -> String {
9001            self.path.push(StakingPool::PENDING_TOTAL_SUI_WITHDRAW_FIELD.name);
9002            self.finish()
9003        }
9004        pub fn pending_pool_token_withdraw(mut self) -> String {
9005            self.path.push(StakingPool::PENDING_POOL_TOKEN_WITHDRAW_FIELD.name);
9006            self.finish()
9007        }
9008        pub fn extra_fields(mut self) -> MoveTableFieldPathBuilder {
9009            self.path.push(StakingPool::EXTRA_FIELDS_FIELD.name);
9010            MoveTableFieldPathBuilder::new_with_base(self.path)
9011        }
9012    }
9013    impl Transaction {
9014        pub const BCS_FIELD: &'static MessageField = &MessageField {
9015            name: "bcs",
9016            json_name: "bcs",
9017            number: 1i32,
9018            message_fields: Some(Bcs::FIELDS),
9019        };
9020        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
9021            name: "digest",
9022            json_name: "digest",
9023            number: 2i32,
9024            message_fields: None,
9025        };
9026        pub const VERSION_FIELD: &'static MessageField = &MessageField {
9027            name: "version",
9028            json_name: "version",
9029            number: 3i32,
9030            message_fields: None,
9031        };
9032        pub const KIND_FIELD: &'static MessageField = &MessageField {
9033            name: "kind",
9034            json_name: "kind",
9035            number: 4i32,
9036            message_fields: Some(TransactionKind::FIELDS),
9037        };
9038        pub const SENDER_FIELD: &'static MessageField = &MessageField {
9039            name: "sender",
9040            json_name: "sender",
9041            number: 5i32,
9042            message_fields: None,
9043        };
9044        pub const GAS_PAYMENT_FIELD: &'static MessageField = &MessageField {
9045            name: "gas_payment",
9046            json_name: "gasPayment",
9047            number: 6i32,
9048            message_fields: Some(GasPayment::FIELDS),
9049        };
9050        pub const EXPIRATION_FIELD: &'static MessageField = &MessageField {
9051            name: "expiration",
9052            json_name: "expiration",
9053            number: 7i32,
9054            message_fields: Some(TransactionExpiration::FIELDS),
9055        };
9056    }
9057    impl MessageFields for Transaction {
9058        const FIELDS: &'static [&'static MessageField] = &[
9059            Self::BCS_FIELD,
9060            Self::DIGEST_FIELD,
9061            Self::VERSION_FIELD,
9062            Self::KIND_FIELD,
9063            Self::SENDER_FIELD,
9064            Self::GAS_PAYMENT_FIELD,
9065            Self::EXPIRATION_FIELD,
9066        ];
9067    }
9068    impl Transaction {
9069        pub fn path_builder() -> TransactionFieldPathBuilder {
9070            TransactionFieldPathBuilder::new()
9071        }
9072    }
9073    pub struct TransactionFieldPathBuilder {
9074        path: Vec<&'static str>,
9075    }
9076    impl TransactionFieldPathBuilder {
9077        #[allow(clippy::new_without_default)]
9078        pub fn new() -> Self {
9079            Self { path: Default::default() }
9080        }
9081        #[doc(hidden)]
9082        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9083            Self { path: base }
9084        }
9085        pub fn finish(self) -> String {
9086            self.path.join(".")
9087        }
9088        pub fn bcs(mut self) -> BcsFieldPathBuilder {
9089            self.path.push(Transaction::BCS_FIELD.name);
9090            BcsFieldPathBuilder::new_with_base(self.path)
9091        }
9092        pub fn digest(mut self) -> String {
9093            self.path.push(Transaction::DIGEST_FIELD.name);
9094            self.finish()
9095        }
9096        pub fn version(mut self) -> String {
9097            self.path.push(Transaction::VERSION_FIELD.name);
9098            self.finish()
9099        }
9100        pub fn kind(mut self) -> TransactionKindFieldPathBuilder {
9101            self.path.push(Transaction::KIND_FIELD.name);
9102            TransactionKindFieldPathBuilder::new_with_base(self.path)
9103        }
9104        pub fn sender(mut self) -> String {
9105            self.path.push(Transaction::SENDER_FIELD.name);
9106            self.finish()
9107        }
9108        pub fn gas_payment(mut self) -> GasPaymentFieldPathBuilder {
9109            self.path.push(Transaction::GAS_PAYMENT_FIELD.name);
9110            GasPaymentFieldPathBuilder::new_with_base(self.path)
9111        }
9112        pub fn expiration(mut self) -> TransactionExpirationFieldPathBuilder {
9113            self.path.push(Transaction::EXPIRATION_FIELD.name);
9114            TransactionExpirationFieldPathBuilder::new_with_base(self.path)
9115        }
9116    }
9117    impl GasPayment {
9118        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
9119            name: "objects",
9120            json_name: "objects",
9121            number: 1i32,
9122            message_fields: Some(ObjectReference::FIELDS),
9123        };
9124        pub const OWNER_FIELD: &'static MessageField = &MessageField {
9125            name: "owner",
9126            json_name: "owner",
9127            number: 2i32,
9128            message_fields: None,
9129        };
9130        pub const PRICE_FIELD: &'static MessageField = &MessageField {
9131            name: "price",
9132            json_name: "price",
9133            number: 3i32,
9134            message_fields: None,
9135        };
9136        pub const BUDGET_FIELD: &'static MessageField = &MessageField {
9137            name: "budget",
9138            json_name: "budget",
9139            number: 4i32,
9140            message_fields: None,
9141        };
9142    }
9143    impl MessageFields for GasPayment {
9144        const FIELDS: &'static [&'static MessageField] = &[
9145            Self::OBJECTS_FIELD,
9146            Self::OWNER_FIELD,
9147            Self::PRICE_FIELD,
9148            Self::BUDGET_FIELD,
9149        ];
9150    }
9151    impl GasPayment {
9152        pub fn path_builder() -> GasPaymentFieldPathBuilder {
9153            GasPaymentFieldPathBuilder::new()
9154        }
9155    }
9156    pub struct GasPaymentFieldPathBuilder {
9157        path: Vec<&'static str>,
9158    }
9159    impl GasPaymentFieldPathBuilder {
9160        #[allow(clippy::new_without_default)]
9161        pub fn new() -> Self {
9162            Self { path: Default::default() }
9163        }
9164        #[doc(hidden)]
9165        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9166            Self { path: base }
9167        }
9168        pub fn finish(self) -> String {
9169            self.path.join(".")
9170        }
9171        pub fn objects(mut self) -> ObjectReferenceFieldPathBuilder {
9172            self.path.push(GasPayment::OBJECTS_FIELD.name);
9173            ObjectReferenceFieldPathBuilder::new_with_base(self.path)
9174        }
9175        pub fn owner(mut self) -> String {
9176            self.path.push(GasPayment::OWNER_FIELD.name);
9177            self.finish()
9178        }
9179        pub fn price(mut self) -> String {
9180            self.path.push(GasPayment::PRICE_FIELD.name);
9181            self.finish()
9182        }
9183        pub fn budget(mut self) -> String {
9184            self.path.push(GasPayment::BUDGET_FIELD.name);
9185            self.finish()
9186        }
9187    }
9188    impl TransactionExpiration {
9189        pub const KIND_FIELD: &'static MessageField = &MessageField {
9190            name: "kind",
9191            json_name: "kind",
9192            number: 1i32,
9193            message_fields: None,
9194        };
9195        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
9196            name: "epoch",
9197            json_name: "epoch",
9198            number: 2i32,
9199            message_fields: None,
9200        };
9201        pub const MIN_EPOCH_FIELD: &'static MessageField = &MessageField {
9202            name: "min_epoch",
9203            json_name: "minEpoch",
9204            number: 3i32,
9205            message_fields: None,
9206        };
9207        pub const MIN_TIMESTAMP_FIELD: &'static MessageField = &MessageField {
9208            name: "min_timestamp",
9209            json_name: "minTimestamp",
9210            number: 4i32,
9211            message_fields: None,
9212        };
9213        pub const MAX_TIMESTAMP_FIELD: &'static MessageField = &MessageField {
9214            name: "max_timestamp",
9215            json_name: "maxTimestamp",
9216            number: 5i32,
9217            message_fields: None,
9218        };
9219        pub const CHAIN_FIELD: &'static MessageField = &MessageField {
9220            name: "chain",
9221            json_name: "chain",
9222            number: 6i32,
9223            message_fields: None,
9224        };
9225        pub const NONCE_FIELD: &'static MessageField = &MessageField {
9226            name: "nonce",
9227            json_name: "nonce",
9228            number: 7i32,
9229            message_fields: None,
9230        };
9231    }
9232    impl MessageFields for TransactionExpiration {
9233        const FIELDS: &'static [&'static MessageField] = &[
9234            Self::KIND_FIELD,
9235            Self::EPOCH_FIELD,
9236            Self::MIN_EPOCH_FIELD,
9237            Self::MIN_TIMESTAMP_FIELD,
9238            Self::MAX_TIMESTAMP_FIELD,
9239            Self::CHAIN_FIELD,
9240            Self::NONCE_FIELD,
9241        ];
9242    }
9243    impl TransactionExpiration {
9244        pub fn path_builder() -> TransactionExpirationFieldPathBuilder {
9245            TransactionExpirationFieldPathBuilder::new()
9246        }
9247    }
9248    pub struct TransactionExpirationFieldPathBuilder {
9249        path: Vec<&'static str>,
9250    }
9251    impl TransactionExpirationFieldPathBuilder {
9252        #[allow(clippy::new_without_default)]
9253        pub fn new() -> Self {
9254            Self { path: Default::default() }
9255        }
9256        #[doc(hidden)]
9257        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9258            Self { path: base }
9259        }
9260        pub fn finish(self) -> String {
9261            self.path.join(".")
9262        }
9263        pub fn kind(mut self) -> String {
9264            self.path.push(TransactionExpiration::KIND_FIELD.name);
9265            self.finish()
9266        }
9267        pub fn epoch(mut self) -> String {
9268            self.path.push(TransactionExpiration::EPOCH_FIELD.name);
9269            self.finish()
9270        }
9271        pub fn min_epoch(mut self) -> String {
9272            self.path.push(TransactionExpiration::MIN_EPOCH_FIELD.name);
9273            self.finish()
9274        }
9275        pub fn min_timestamp(mut self) -> String {
9276            self.path.push(TransactionExpiration::MIN_TIMESTAMP_FIELD.name);
9277            self.finish()
9278        }
9279        pub fn max_timestamp(mut self) -> String {
9280            self.path.push(TransactionExpiration::MAX_TIMESTAMP_FIELD.name);
9281            self.finish()
9282        }
9283        pub fn chain(mut self) -> String {
9284            self.path.push(TransactionExpiration::CHAIN_FIELD.name);
9285            self.finish()
9286        }
9287        pub fn nonce(mut self) -> String {
9288            self.path.push(TransactionExpiration::NONCE_FIELD.name);
9289            self.finish()
9290        }
9291    }
9292    impl TransactionKind {
9293        pub const KIND_FIELD: &'static MessageField = &MessageField {
9294            name: "kind",
9295            json_name: "kind",
9296            number: 1i32,
9297            message_fields: None,
9298        };
9299        pub const PROGRAMMABLE_TRANSACTION_FIELD: &'static MessageField = &MessageField {
9300            name: "programmable_transaction",
9301            json_name: "programmableTransaction",
9302            number: 2i32,
9303            message_fields: Some(ProgrammableTransaction::FIELDS),
9304        };
9305        pub const CHANGE_EPOCH_FIELD: &'static MessageField = &MessageField {
9306            name: "change_epoch",
9307            json_name: "changeEpoch",
9308            number: 3i32,
9309            message_fields: Some(ChangeEpoch::FIELDS),
9310        };
9311        pub const GENESIS_FIELD: &'static MessageField = &MessageField {
9312            name: "genesis",
9313            json_name: "genesis",
9314            number: 4i32,
9315            message_fields: Some(GenesisTransaction::FIELDS),
9316        };
9317        pub const CONSENSUS_COMMIT_PROLOGUE_FIELD: &'static MessageField = &MessageField {
9318            name: "consensus_commit_prologue",
9319            json_name: "consensusCommitPrologue",
9320            number: 5i32,
9321            message_fields: Some(ConsensusCommitPrologue::FIELDS),
9322        };
9323        pub const AUTHENTICATOR_STATE_UPDATE_FIELD: &'static MessageField = &MessageField {
9324            name: "authenticator_state_update",
9325            json_name: "authenticatorStateUpdate",
9326            number: 6i32,
9327            message_fields: Some(AuthenticatorStateUpdate::FIELDS),
9328        };
9329        pub const END_OF_EPOCH_FIELD: &'static MessageField = &MessageField {
9330            name: "end_of_epoch",
9331            json_name: "endOfEpoch",
9332            number: 7i32,
9333            message_fields: Some(EndOfEpochTransaction::FIELDS),
9334        };
9335        pub const RANDOMNESS_STATE_UPDATE_FIELD: &'static MessageField = &MessageField {
9336            name: "randomness_state_update",
9337            json_name: "randomnessStateUpdate",
9338            number: 8i32,
9339            message_fields: Some(RandomnessStateUpdate::FIELDS),
9340        };
9341    }
9342    impl MessageFields for TransactionKind {
9343        const FIELDS: &'static [&'static MessageField] = &[
9344            Self::KIND_FIELD,
9345            Self::PROGRAMMABLE_TRANSACTION_FIELD,
9346            Self::CHANGE_EPOCH_FIELD,
9347            Self::GENESIS_FIELD,
9348            Self::CONSENSUS_COMMIT_PROLOGUE_FIELD,
9349            Self::AUTHENTICATOR_STATE_UPDATE_FIELD,
9350            Self::END_OF_EPOCH_FIELD,
9351            Self::RANDOMNESS_STATE_UPDATE_FIELD,
9352        ];
9353    }
9354    impl TransactionKind {
9355        pub fn path_builder() -> TransactionKindFieldPathBuilder {
9356            TransactionKindFieldPathBuilder::new()
9357        }
9358    }
9359    pub struct TransactionKindFieldPathBuilder {
9360        path: Vec<&'static str>,
9361    }
9362    impl TransactionKindFieldPathBuilder {
9363        #[allow(clippy::new_without_default)]
9364        pub fn new() -> Self {
9365            Self { path: Default::default() }
9366        }
9367        #[doc(hidden)]
9368        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9369            Self { path: base }
9370        }
9371        pub fn finish(self) -> String {
9372            self.path.join(".")
9373        }
9374        pub fn kind(mut self) -> String {
9375            self.path.push(TransactionKind::KIND_FIELD.name);
9376            self.finish()
9377        }
9378        pub fn programmable_transaction(
9379            mut self,
9380        ) -> ProgrammableTransactionFieldPathBuilder {
9381            self.path.push(TransactionKind::PROGRAMMABLE_TRANSACTION_FIELD.name);
9382            ProgrammableTransactionFieldPathBuilder::new_with_base(self.path)
9383        }
9384        pub fn change_epoch(mut self) -> ChangeEpochFieldPathBuilder {
9385            self.path.push(TransactionKind::CHANGE_EPOCH_FIELD.name);
9386            ChangeEpochFieldPathBuilder::new_with_base(self.path)
9387        }
9388        pub fn genesis(mut self) -> GenesisTransactionFieldPathBuilder {
9389            self.path.push(TransactionKind::GENESIS_FIELD.name);
9390            GenesisTransactionFieldPathBuilder::new_with_base(self.path)
9391        }
9392        pub fn consensus_commit_prologue(
9393            mut self,
9394        ) -> ConsensusCommitPrologueFieldPathBuilder {
9395            self.path.push(TransactionKind::CONSENSUS_COMMIT_PROLOGUE_FIELD.name);
9396            ConsensusCommitPrologueFieldPathBuilder::new_with_base(self.path)
9397        }
9398        pub fn authenticator_state_update(
9399            mut self,
9400        ) -> AuthenticatorStateUpdateFieldPathBuilder {
9401            self.path.push(TransactionKind::AUTHENTICATOR_STATE_UPDATE_FIELD.name);
9402            AuthenticatorStateUpdateFieldPathBuilder::new_with_base(self.path)
9403        }
9404        pub fn end_of_epoch(mut self) -> EndOfEpochTransactionFieldPathBuilder {
9405            self.path.push(TransactionKind::END_OF_EPOCH_FIELD.name);
9406            EndOfEpochTransactionFieldPathBuilder::new_with_base(self.path)
9407        }
9408        pub fn randomness_state_update(
9409            mut self,
9410        ) -> RandomnessStateUpdateFieldPathBuilder {
9411            self.path.push(TransactionKind::RANDOMNESS_STATE_UPDATE_FIELD.name);
9412            RandomnessStateUpdateFieldPathBuilder::new_with_base(self.path)
9413        }
9414    }
9415    impl ProgrammableTransaction {
9416        pub const INPUTS_FIELD: &'static MessageField = &MessageField {
9417            name: "inputs",
9418            json_name: "inputs",
9419            number: 1i32,
9420            message_fields: Some(Input::FIELDS),
9421        };
9422        pub const COMMANDS_FIELD: &'static MessageField = &MessageField {
9423            name: "commands",
9424            json_name: "commands",
9425            number: 2i32,
9426            message_fields: Some(Command::FIELDS),
9427        };
9428    }
9429    impl MessageFields for ProgrammableTransaction {
9430        const FIELDS: &'static [&'static MessageField] = &[
9431            Self::INPUTS_FIELD,
9432            Self::COMMANDS_FIELD,
9433        ];
9434    }
9435    impl ProgrammableTransaction {
9436        pub fn path_builder() -> ProgrammableTransactionFieldPathBuilder {
9437            ProgrammableTransactionFieldPathBuilder::new()
9438        }
9439    }
9440    pub struct ProgrammableTransactionFieldPathBuilder {
9441        path: Vec<&'static str>,
9442    }
9443    impl ProgrammableTransactionFieldPathBuilder {
9444        #[allow(clippy::new_without_default)]
9445        pub fn new() -> Self {
9446            Self { path: Default::default() }
9447        }
9448        #[doc(hidden)]
9449        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9450            Self { path: base }
9451        }
9452        pub fn finish(self) -> String {
9453            self.path.join(".")
9454        }
9455        pub fn inputs(mut self) -> InputFieldPathBuilder {
9456            self.path.push(ProgrammableTransaction::INPUTS_FIELD.name);
9457            InputFieldPathBuilder::new_with_base(self.path)
9458        }
9459        pub fn commands(mut self) -> CommandFieldPathBuilder {
9460            self.path.push(ProgrammableTransaction::COMMANDS_FIELD.name);
9461            CommandFieldPathBuilder::new_with_base(self.path)
9462        }
9463    }
9464    impl Command {
9465        pub const MOVE_CALL_FIELD: &'static MessageField = &MessageField {
9466            name: "move_call",
9467            json_name: "moveCall",
9468            number: 1i32,
9469            message_fields: Some(MoveCall::FIELDS),
9470        };
9471        pub const TRANSFER_OBJECTS_FIELD: &'static MessageField = &MessageField {
9472            name: "transfer_objects",
9473            json_name: "transferObjects",
9474            number: 2i32,
9475            message_fields: Some(TransferObjects::FIELDS),
9476        };
9477        pub const SPLIT_COINS_FIELD: &'static MessageField = &MessageField {
9478            name: "split_coins",
9479            json_name: "splitCoins",
9480            number: 3i32,
9481            message_fields: Some(SplitCoins::FIELDS),
9482        };
9483        pub const MERGE_COINS_FIELD: &'static MessageField = &MessageField {
9484            name: "merge_coins",
9485            json_name: "mergeCoins",
9486            number: 4i32,
9487            message_fields: Some(MergeCoins::FIELDS),
9488        };
9489        pub const PUBLISH_FIELD: &'static MessageField = &MessageField {
9490            name: "publish",
9491            json_name: "publish",
9492            number: 5i32,
9493            message_fields: Some(Publish::FIELDS),
9494        };
9495        pub const MAKE_MOVE_VECTOR_FIELD: &'static MessageField = &MessageField {
9496            name: "make_move_vector",
9497            json_name: "makeMoveVector",
9498            number: 6i32,
9499            message_fields: Some(MakeMoveVector::FIELDS),
9500        };
9501        pub const UPGRADE_FIELD: &'static MessageField = &MessageField {
9502            name: "upgrade",
9503            json_name: "upgrade",
9504            number: 7i32,
9505            message_fields: Some(Upgrade::FIELDS),
9506        };
9507    }
9508    impl MessageFields for Command {
9509        const FIELDS: &'static [&'static MessageField] = &[
9510            Self::MOVE_CALL_FIELD,
9511            Self::TRANSFER_OBJECTS_FIELD,
9512            Self::SPLIT_COINS_FIELD,
9513            Self::MERGE_COINS_FIELD,
9514            Self::PUBLISH_FIELD,
9515            Self::MAKE_MOVE_VECTOR_FIELD,
9516            Self::UPGRADE_FIELD,
9517        ];
9518    }
9519    impl Command {
9520        pub fn path_builder() -> CommandFieldPathBuilder {
9521            CommandFieldPathBuilder::new()
9522        }
9523    }
9524    pub struct CommandFieldPathBuilder {
9525        path: Vec<&'static str>,
9526    }
9527    impl CommandFieldPathBuilder {
9528        #[allow(clippy::new_without_default)]
9529        pub fn new() -> Self {
9530            Self { path: Default::default() }
9531        }
9532        #[doc(hidden)]
9533        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9534            Self { path: base }
9535        }
9536        pub fn finish(self) -> String {
9537            self.path.join(".")
9538        }
9539        pub fn move_call(mut self) -> MoveCallFieldPathBuilder {
9540            self.path.push(Command::MOVE_CALL_FIELD.name);
9541            MoveCallFieldPathBuilder::new_with_base(self.path)
9542        }
9543        pub fn transfer_objects(mut self) -> TransferObjectsFieldPathBuilder {
9544            self.path.push(Command::TRANSFER_OBJECTS_FIELD.name);
9545            TransferObjectsFieldPathBuilder::new_with_base(self.path)
9546        }
9547        pub fn split_coins(mut self) -> SplitCoinsFieldPathBuilder {
9548            self.path.push(Command::SPLIT_COINS_FIELD.name);
9549            SplitCoinsFieldPathBuilder::new_with_base(self.path)
9550        }
9551        pub fn merge_coins(mut self) -> MergeCoinsFieldPathBuilder {
9552            self.path.push(Command::MERGE_COINS_FIELD.name);
9553            MergeCoinsFieldPathBuilder::new_with_base(self.path)
9554        }
9555        pub fn publish(mut self) -> PublishFieldPathBuilder {
9556            self.path.push(Command::PUBLISH_FIELD.name);
9557            PublishFieldPathBuilder::new_with_base(self.path)
9558        }
9559        pub fn make_move_vector(mut self) -> MakeMoveVectorFieldPathBuilder {
9560            self.path.push(Command::MAKE_MOVE_VECTOR_FIELD.name);
9561            MakeMoveVectorFieldPathBuilder::new_with_base(self.path)
9562        }
9563        pub fn upgrade(mut self) -> UpgradeFieldPathBuilder {
9564            self.path.push(Command::UPGRADE_FIELD.name);
9565            UpgradeFieldPathBuilder::new_with_base(self.path)
9566        }
9567    }
9568    impl MoveCall {
9569        pub const PACKAGE_FIELD: &'static MessageField = &MessageField {
9570            name: "package",
9571            json_name: "package",
9572            number: 1i32,
9573            message_fields: None,
9574        };
9575        pub const MODULE_FIELD: &'static MessageField = &MessageField {
9576            name: "module",
9577            json_name: "module",
9578            number: 2i32,
9579            message_fields: None,
9580        };
9581        pub const FUNCTION_FIELD: &'static MessageField = &MessageField {
9582            name: "function",
9583            json_name: "function",
9584            number: 3i32,
9585            message_fields: None,
9586        };
9587        pub const TYPE_ARGUMENTS_FIELD: &'static MessageField = &MessageField {
9588            name: "type_arguments",
9589            json_name: "typeArguments",
9590            number: 4i32,
9591            message_fields: None,
9592        };
9593        pub const ARGUMENTS_FIELD: &'static MessageField = &MessageField {
9594            name: "arguments",
9595            json_name: "arguments",
9596            number: 5i32,
9597            message_fields: Some(Argument::FIELDS),
9598        };
9599    }
9600    impl MessageFields for MoveCall {
9601        const FIELDS: &'static [&'static MessageField] = &[
9602            Self::PACKAGE_FIELD,
9603            Self::MODULE_FIELD,
9604            Self::FUNCTION_FIELD,
9605            Self::TYPE_ARGUMENTS_FIELD,
9606            Self::ARGUMENTS_FIELD,
9607        ];
9608    }
9609    impl MoveCall {
9610        pub fn path_builder() -> MoveCallFieldPathBuilder {
9611            MoveCallFieldPathBuilder::new()
9612        }
9613    }
9614    pub struct MoveCallFieldPathBuilder {
9615        path: Vec<&'static str>,
9616    }
9617    impl MoveCallFieldPathBuilder {
9618        #[allow(clippy::new_without_default)]
9619        pub fn new() -> Self {
9620            Self { path: Default::default() }
9621        }
9622        #[doc(hidden)]
9623        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9624            Self { path: base }
9625        }
9626        pub fn finish(self) -> String {
9627            self.path.join(".")
9628        }
9629        pub fn package(mut self) -> String {
9630            self.path.push(MoveCall::PACKAGE_FIELD.name);
9631            self.finish()
9632        }
9633        pub fn module(mut self) -> String {
9634            self.path.push(MoveCall::MODULE_FIELD.name);
9635            self.finish()
9636        }
9637        pub fn function(mut self) -> String {
9638            self.path.push(MoveCall::FUNCTION_FIELD.name);
9639            self.finish()
9640        }
9641        pub fn type_arguments(mut self) -> String {
9642            self.path.push(MoveCall::TYPE_ARGUMENTS_FIELD.name);
9643            self.finish()
9644        }
9645        pub fn arguments(mut self) -> ArgumentFieldPathBuilder {
9646            self.path.push(MoveCall::ARGUMENTS_FIELD.name);
9647            ArgumentFieldPathBuilder::new_with_base(self.path)
9648        }
9649    }
9650    impl TransferObjects {
9651        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
9652            name: "objects",
9653            json_name: "objects",
9654            number: 1i32,
9655            message_fields: Some(Argument::FIELDS),
9656        };
9657        pub const ADDRESS_FIELD: &'static MessageField = &MessageField {
9658            name: "address",
9659            json_name: "address",
9660            number: 2i32,
9661            message_fields: Some(Argument::FIELDS),
9662        };
9663    }
9664    impl MessageFields for TransferObjects {
9665        const FIELDS: &'static [&'static MessageField] = &[
9666            Self::OBJECTS_FIELD,
9667            Self::ADDRESS_FIELD,
9668        ];
9669    }
9670    impl TransferObjects {
9671        pub fn path_builder() -> TransferObjectsFieldPathBuilder {
9672            TransferObjectsFieldPathBuilder::new()
9673        }
9674    }
9675    pub struct TransferObjectsFieldPathBuilder {
9676        path: Vec<&'static str>,
9677    }
9678    impl TransferObjectsFieldPathBuilder {
9679        #[allow(clippy::new_without_default)]
9680        pub fn new() -> Self {
9681            Self { path: Default::default() }
9682        }
9683        #[doc(hidden)]
9684        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9685            Self { path: base }
9686        }
9687        pub fn finish(self) -> String {
9688            self.path.join(".")
9689        }
9690        pub fn objects(mut self) -> ArgumentFieldPathBuilder {
9691            self.path.push(TransferObjects::OBJECTS_FIELD.name);
9692            ArgumentFieldPathBuilder::new_with_base(self.path)
9693        }
9694        pub fn address(mut self) -> ArgumentFieldPathBuilder {
9695            self.path.push(TransferObjects::ADDRESS_FIELD.name);
9696            ArgumentFieldPathBuilder::new_with_base(self.path)
9697        }
9698    }
9699    impl SplitCoins {
9700        pub const COIN_FIELD: &'static MessageField = &MessageField {
9701            name: "coin",
9702            json_name: "coin",
9703            number: 1i32,
9704            message_fields: Some(Argument::FIELDS),
9705        };
9706        pub const AMOUNTS_FIELD: &'static MessageField = &MessageField {
9707            name: "amounts",
9708            json_name: "amounts",
9709            number: 2i32,
9710            message_fields: Some(Argument::FIELDS),
9711        };
9712    }
9713    impl MessageFields for SplitCoins {
9714        const FIELDS: &'static [&'static MessageField] = &[
9715            Self::COIN_FIELD,
9716            Self::AMOUNTS_FIELD,
9717        ];
9718    }
9719    impl SplitCoins {
9720        pub fn path_builder() -> SplitCoinsFieldPathBuilder {
9721            SplitCoinsFieldPathBuilder::new()
9722        }
9723    }
9724    pub struct SplitCoinsFieldPathBuilder {
9725        path: Vec<&'static str>,
9726    }
9727    impl SplitCoinsFieldPathBuilder {
9728        #[allow(clippy::new_without_default)]
9729        pub fn new() -> Self {
9730            Self { path: Default::default() }
9731        }
9732        #[doc(hidden)]
9733        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9734            Self { path: base }
9735        }
9736        pub fn finish(self) -> String {
9737            self.path.join(".")
9738        }
9739        pub fn coin(mut self) -> ArgumentFieldPathBuilder {
9740            self.path.push(SplitCoins::COIN_FIELD.name);
9741            ArgumentFieldPathBuilder::new_with_base(self.path)
9742        }
9743        pub fn amounts(mut self) -> ArgumentFieldPathBuilder {
9744            self.path.push(SplitCoins::AMOUNTS_FIELD.name);
9745            ArgumentFieldPathBuilder::new_with_base(self.path)
9746        }
9747    }
9748    impl MergeCoins {
9749        pub const COIN_FIELD: &'static MessageField = &MessageField {
9750            name: "coin",
9751            json_name: "coin",
9752            number: 1i32,
9753            message_fields: Some(Argument::FIELDS),
9754        };
9755        pub const COINS_TO_MERGE_FIELD: &'static MessageField = &MessageField {
9756            name: "coins_to_merge",
9757            json_name: "coinsToMerge",
9758            number: 2i32,
9759            message_fields: Some(Argument::FIELDS),
9760        };
9761    }
9762    impl MessageFields for MergeCoins {
9763        const FIELDS: &'static [&'static MessageField] = &[
9764            Self::COIN_FIELD,
9765            Self::COINS_TO_MERGE_FIELD,
9766        ];
9767    }
9768    impl MergeCoins {
9769        pub fn path_builder() -> MergeCoinsFieldPathBuilder {
9770            MergeCoinsFieldPathBuilder::new()
9771        }
9772    }
9773    pub struct MergeCoinsFieldPathBuilder {
9774        path: Vec<&'static str>,
9775    }
9776    impl MergeCoinsFieldPathBuilder {
9777        #[allow(clippy::new_without_default)]
9778        pub fn new() -> Self {
9779            Self { path: Default::default() }
9780        }
9781        #[doc(hidden)]
9782        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9783            Self { path: base }
9784        }
9785        pub fn finish(self) -> String {
9786            self.path.join(".")
9787        }
9788        pub fn coin(mut self) -> ArgumentFieldPathBuilder {
9789            self.path.push(MergeCoins::COIN_FIELD.name);
9790            ArgumentFieldPathBuilder::new_with_base(self.path)
9791        }
9792        pub fn coins_to_merge(mut self) -> ArgumentFieldPathBuilder {
9793            self.path.push(MergeCoins::COINS_TO_MERGE_FIELD.name);
9794            ArgumentFieldPathBuilder::new_with_base(self.path)
9795        }
9796    }
9797    impl Publish {
9798        pub const MODULES_FIELD: &'static MessageField = &MessageField {
9799            name: "modules",
9800            json_name: "modules",
9801            number: 1i32,
9802            message_fields: None,
9803        };
9804        pub const DEPENDENCIES_FIELD: &'static MessageField = &MessageField {
9805            name: "dependencies",
9806            json_name: "dependencies",
9807            number: 2i32,
9808            message_fields: None,
9809        };
9810    }
9811    impl MessageFields for Publish {
9812        const FIELDS: &'static [&'static MessageField] = &[
9813            Self::MODULES_FIELD,
9814            Self::DEPENDENCIES_FIELD,
9815        ];
9816    }
9817    impl Publish {
9818        pub fn path_builder() -> PublishFieldPathBuilder {
9819            PublishFieldPathBuilder::new()
9820        }
9821    }
9822    pub struct PublishFieldPathBuilder {
9823        path: Vec<&'static str>,
9824    }
9825    impl PublishFieldPathBuilder {
9826        #[allow(clippy::new_without_default)]
9827        pub fn new() -> Self {
9828            Self { path: Default::default() }
9829        }
9830        #[doc(hidden)]
9831        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9832            Self { path: base }
9833        }
9834        pub fn finish(self) -> String {
9835            self.path.join(".")
9836        }
9837        pub fn modules(mut self) -> String {
9838            self.path.push(Publish::MODULES_FIELD.name);
9839            self.finish()
9840        }
9841        pub fn dependencies(mut self) -> String {
9842            self.path.push(Publish::DEPENDENCIES_FIELD.name);
9843            self.finish()
9844        }
9845    }
9846    impl MakeMoveVector {
9847        pub const ELEMENT_TYPE_FIELD: &'static MessageField = &MessageField {
9848            name: "element_type",
9849            json_name: "elementType",
9850            number: 1i32,
9851            message_fields: None,
9852        };
9853        pub const ELEMENTS_FIELD: &'static MessageField = &MessageField {
9854            name: "elements",
9855            json_name: "elements",
9856            number: 2i32,
9857            message_fields: Some(Argument::FIELDS),
9858        };
9859    }
9860    impl MessageFields for MakeMoveVector {
9861        const FIELDS: &'static [&'static MessageField] = &[
9862            Self::ELEMENT_TYPE_FIELD,
9863            Self::ELEMENTS_FIELD,
9864        ];
9865    }
9866    impl MakeMoveVector {
9867        pub fn path_builder() -> MakeMoveVectorFieldPathBuilder {
9868            MakeMoveVectorFieldPathBuilder::new()
9869        }
9870    }
9871    pub struct MakeMoveVectorFieldPathBuilder {
9872        path: Vec<&'static str>,
9873    }
9874    impl MakeMoveVectorFieldPathBuilder {
9875        #[allow(clippy::new_without_default)]
9876        pub fn new() -> Self {
9877            Self { path: Default::default() }
9878        }
9879        #[doc(hidden)]
9880        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9881            Self { path: base }
9882        }
9883        pub fn finish(self) -> String {
9884            self.path.join(".")
9885        }
9886        pub fn element_type(mut self) -> String {
9887            self.path.push(MakeMoveVector::ELEMENT_TYPE_FIELD.name);
9888            self.finish()
9889        }
9890        pub fn elements(mut self) -> ArgumentFieldPathBuilder {
9891            self.path.push(MakeMoveVector::ELEMENTS_FIELD.name);
9892            ArgumentFieldPathBuilder::new_with_base(self.path)
9893        }
9894    }
9895    impl Upgrade {
9896        pub const MODULES_FIELD: &'static MessageField = &MessageField {
9897            name: "modules",
9898            json_name: "modules",
9899            number: 1i32,
9900            message_fields: None,
9901        };
9902        pub const DEPENDENCIES_FIELD: &'static MessageField = &MessageField {
9903            name: "dependencies",
9904            json_name: "dependencies",
9905            number: 2i32,
9906            message_fields: None,
9907        };
9908        pub const PACKAGE_FIELD: &'static MessageField = &MessageField {
9909            name: "package",
9910            json_name: "package",
9911            number: 3i32,
9912            message_fields: None,
9913        };
9914        pub const TICKET_FIELD: &'static MessageField = &MessageField {
9915            name: "ticket",
9916            json_name: "ticket",
9917            number: 4i32,
9918            message_fields: Some(Argument::FIELDS),
9919        };
9920    }
9921    impl MessageFields for Upgrade {
9922        const FIELDS: &'static [&'static MessageField] = &[
9923            Self::MODULES_FIELD,
9924            Self::DEPENDENCIES_FIELD,
9925            Self::PACKAGE_FIELD,
9926            Self::TICKET_FIELD,
9927        ];
9928    }
9929    impl Upgrade {
9930        pub fn path_builder() -> UpgradeFieldPathBuilder {
9931            UpgradeFieldPathBuilder::new()
9932        }
9933    }
9934    pub struct UpgradeFieldPathBuilder {
9935        path: Vec<&'static str>,
9936    }
9937    impl UpgradeFieldPathBuilder {
9938        #[allow(clippy::new_without_default)]
9939        pub fn new() -> Self {
9940            Self { path: Default::default() }
9941        }
9942        #[doc(hidden)]
9943        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9944            Self { path: base }
9945        }
9946        pub fn finish(self) -> String {
9947            self.path.join(".")
9948        }
9949        pub fn modules(mut self) -> String {
9950            self.path.push(Upgrade::MODULES_FIELD.name);
9951            self.finish()
9952        }
9953        pub fn dependencies(mut self) -> String {
9954            self.path.push(Upgrade::DEPENDENCIES_FIELD.name);
9955            self.finish()
9956        }
9957        pub fn package(mut self) -> String {
9958            self.path.push(Upgrade::PACKAGE_FIELD.name);
9959            self.finish()
9960        }
9961        pub fn ticket(mut self) -> ArgumentFieldPathBuilder {
9962            self.path.push(Upgrade::TICKET_FIELD.name);
9963            ArgumentFieldPathBuilder::new_with_base(self.path)
9964        }
9965    }
9966    impl RandomnessStateUpdate {
9967        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
9968            name: "epoch",
9969            json_name: "epoch",
9970            number: 1i32,
9971            message_fields: None,
9972        };
9973        pub const RANDOMNESS_ROUND_FIELD: &'static MessageField = &MessageField {
9974            name: "randomness_round",
9975            json_name: "randomnessRound",
9976            number: 2i32,
9977            message_fields: None,
9978        };
9979        pub const RANDOM_BYTES_FIELD: &'static MessageField = &MessageField {
9980            name: "random_bytes",
9981            json_name: "randomBytes",
9982            number: 3i32,
9983            message_fields: None,
9984        };
9985        pub const RANDOMNESS_OBJECT_INITIAL_SHARED_VERSION_FIELD: &'static MessageField = &MessageField {
9986            name: "randomness_object_initial_shared_version",
9987            json_name: "randomnessObjectInitialSharedVersion",
9988            number: 4i32,
9989            message_fields: None,
9990        };
9991    }
9992    impl MessageFields for RandomnessStateUpdate {
9993        const FIELDS: &'static [&'static MessageField] = &[
9994            Self::EPOCH_FIELD,
9995            Self::RANDOMNESS_ROUND_FIELD,
9996            Self::RANDOM_BYTES_FIELD,
9997            Self::RANDOMNESS_OBJECT_INITIAL_SHARED_VERSION_FIELD,
9998        ];
9999    }
10000    impl RandomnessStateUpdate {
10001        pub fn path_builder() -> RandomnessStateUpdateFieldPathBuilder {
10002            RandomnessStateUpdateFieldPathBuilder::new()
10003        }
10004    }
10005    pub struct RandomnessStateUpdateFieldPathBuilder {
10006        path: Vec<&'static str>,
10007    }
10008    impl RandomnessStateUpdateFieldPathBuilder {
10009        #[allow(clippy::new_without_default)]
10010        pub fn new() -> Self {
10011            Self { path: Default::default() }
10012        }
10013        #[doc(hidden)]
10014        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10015            Self { path: base }
10016        }
10017        pub fn finish(self) -> String {
10018            self.path.join(".")
10019        }
10020        pub fn epoch(mut self) -> String {
10021            self.path.push(RandomnessStateUpdate::EPOCH_FIELD.name);
10022            self.finish()
10023        }
10024        pub fn randomness_round(mut self) -> String {
10025            self.path.push(RandomnessStateUpdate::RANDOMNESS_ROUND_FIELD.name);
10026            self.finish()
10027        }
10028        pub fn random_bytes(mut self) -> String {
10029            self.path.push(RandomnessStateUpdate::RANDOM_BYTES_FIELD.name);
10030            self.finish()
10031        }
10032        pub fn randomness_object_initial_shared_version(mut self) -> String {
10033            self.path
10034                .push(
10035                    RandomnessStateUpdate::RANDOMNESS_OBJECT_INITIAL_SHARED_VERSION_FIELD
10036                        .name,
10037                );
10038            self.finish()
10039        }
10040    }
10041    impl ChangeEpoch {
10042        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
10043            name: "epoch",
10044            json_name: "epoch",
10045            number: 1i32,
10046            message_fields: None,
10047        };
10048        pub const PROTOCOL_VERSION_FIELD: &'static MessageField = &MessageField {
10049            name: "protocol_version",
10050            json_name: "protocolVersion",
10051            number: 2i32,
10052            message_fields: None,
10053        };
10054        pub const STORAGE_CHARGE_FIELD: &'static MessageField = &MessageField {
10055            name: "storage_charge",
10056            json_name: "storageCharge",
10057            number: 3i32,
10058            message_fields: None,
10059        };
10060        pub const COMPUTATION_CHARGE_FIELD: &'static MessageField = &MessageField {
10061            name: "computation_charge",
10062            json_name: "computationCharge",
10063            number: 4i32,
10064            message_fields: None,
10065        };
10066        pub const STORAGE_REBATE_FIELD: &'static MessageField = &MessageField {
10067            name: "storage_rebate",
10068            json_name: "storageRebate",
10069            number: 5i32,
10070            message_fields: None,
10071        };
10072        pub const NON_REFUNDABLE_STORAGE_FEE_FIELD: &'static MessageField = &MessageField {
10073            name: "non_refundable_storage_fee",
10074            json_name: "nonRefundableStorageFee",
10075            number: 6i32,
10076            message_fields: None,
10077        };
10078        pub const EPOCH_START_TIMESTAMP_FIELD: &'static MessageField = &MessageField {
10079            name: "epoch_start_timestamp",
10080            json_name: "epochStartTimestamp",
10081            number: 7i32,
10082            message_fields: None,
10083        };
10084        pub const SYSTEM_PACKAGES_FIELD: &'static MessageField = &MessageField {
10085            name: "system_packages",
10086            json_name: "systemPackages",
10087            number: 8i32,
10088            message_fields: Some(SystemPackage::FIELDS),
10089        };
10090    }
10091    impl MessageFields for ChangeEpoch {
10092        const FIELDS: &'static [&'static MessageField] = &[
10093            Self::EPOCH_FIELD,
10094            Self::PROTOCOL_VERSION_FIELD,
10095            Self::STORAGE_CHARGE_FIELD,
10096            Self::COMPUTATION_CHARGE_FIELD,
10097            Self::STORAGE_REBATE_FIELD,
10098            Self::NON_REFUNDABLE_STORAGE_FEE_FIELD,
10099            Self::EPOCH_START_TIMESTAMP_FIELD,
10100            Self::SYSTEM_PACKAGES_FIELD,
10101        ];
10102    }
10103    impl ChangeEpoch {
10104        pub fn path_builder() -> ChangeEpochFieldPathBuilder {
10105            ChangeEpochFieldPathBuilder::new()
10106        }
10107    }
10108    pub struct ChangeEpochFieldPathBuilder {
10109        path: Vec<&'static str>,
10110    }
10111    impl ChangeEpochFieldPathBuilder {
10112        #[allow(clippy::new_without_default)]
10113        pub fn new() -> Self {
10114            Self { path: Default::default() }
10115        }
10116        #[doc(hidden)]
10117        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10118            Self { path: base }
10119        }
10120        pub fn finish(self) -> String {
10121            self.path.join(".")
10122        }
10123        pub fn epoch(mut self) -> String {
10124            self.path.push(ChangeEpoch::EPOCH_FIELD.name);
10125            self.finish()
10126        }
10127        pub fn protocol_version(mut self) -> String {
10128            self.path.push(ChangeEpoch::PROTOCOL_VERSION_FIELD.name);
10129            self.finish()
10130        }
10131        pub fn storage_charge(mut self) -> String {
10132            self.path.push(ChangeEpoch::STORAGE_CHARGE_FIELD.name);
10133            self.finish()
10134        }
10135        pub fn computation_charge(mut self) -> String {
10136            self.path.push(ChangeEpoch::COMPUTATION_CHARGE_FIELD.name);
10137            self.finish()
10138        }
10139        pub fn storage_rebate(mut self) -> String {
10140            self.path.push(ChangeEpoch::STORAGE_REBATE_FIELD.name);
10141            self.finish()
10142        }
10143        pub fn non_refundable_storage_fee(mut self) -> String {
10144            self.path.push(ChangeEpoch::NON_REFUNDABLE_STORAGE_FEE_FIELD.name);
10145            self.finish()
10146        }
10147        pub fn epoch_start_timestamp(mut self) -> String {
10148            self.path.push(ChangeEpoch::EPOCH_START_TIMESTAMP_FIELD.name);
10149            self.finish()
10150        }
10151        pub fn system_packages(mut self) -> SystemPackageFieldPathBuilder {
10152            self.path.push(ChangeEpoch::SYSTEM_PACKAGES_FIELD.name);
10153            SystemPackageFieldPathBuilder::new_with_base(self.path)
10154        }
10155    }
10156    impl SystemPackage {
10157        pub const VERSION_FIELD: &'static MessageField = &MessageField {
10158            name: "version",
10159            json_name: "version",
10160            number: 1i32,
10161            message_fields: None,
10162        };
10163        pub const MODULES_FIELD: &'static MessageField = &MessageField {
10164            name: "modules",
10165            json_name: "modules",
10166            number: 2i32,
10167            message_fields: None,
10168        };
10169        pub const DEPENDENCIES_FIELD: &'static MessageField = &MessageField {
10170            name: "dependencies",
10171            json_name: "dependencies",
10172            number: 3i32,
10173            message_fields: None,
10174        };
10175    }
10176    impl MessageFields for SystemPackage {
10177        const FIELDS: &'static [&'static MessageField] = &[
10178            Self::VERSION_FIELD,
10179            Self::MODULES_FIELD,
10180            Self::DEPENDENCIES_FIELD,
10181        ];
10182    }
10183    impl SystemPackage {
10184        pub fn path_builder() -> SystemPackageFieldPathBuilder {
10185            SystemPackageFieldPathBuilder::new()
10186        }
10187    }
10188    pub struct SystemPackageFieldPathBuilder {
10189        path: Vec<&'static str>,
10190    }
10191    impl SystemPackageFieldPathBuilder {
10192        #[allow(clippy::new_without_default)]
10193        pub fn new() -> Self {
10194            Self { path: Default::default() }
10195        }
10196        #[doc(hidden)]
10197        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10198            Self { path: base }
10199        }
10200        pub fn finish(self) -> String {
10201            self.path.join(".")
10202        }
10203        pub fn version(mut self) -> String {
10204            self.path.push(SystemPackage::VERSION_FIELD.name);
10205            self.finish()
10206        }
10207        pub fn modules(mut self) -> String {
10208            self.path.push(SystemPackage::MODULES_FIELD.name);
10209            self.finish()
10210        }
10211        pub fn dependencies(mut self) -> String {
10212            self.path.push(SystemPackage::DEPENDENCIES_FIELD.name);
10213            self.finish()
10214        }
10215    }
10216    impl GenesisTransaction {
10217        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
10218            name: "objects",
10219            json_name: "objects",
10220            number: 1i32,
10221            message_fields: Some(Object::FIELDS),
10222        };
10223    }
10224    impl MessageFields for GenesisTransaction {
10225        const FIELDS: &'static [&'static MessageField] = &[Self::OBJECTS_FIELD];
10226    }
10227    impl GenesisTransaction {
10228        pub fn path_builder() -> GenesisTransactionFieldPathBuilder {
10229            GenesisTransactionFieldPathBuilder::new()
10230        }
10231    }
10232    pub struct GenesisTransactionFieldPathBuilder {
10233        path: Vec<&'static str>,
10234    }
10235    impl GenesisTransactionFieldPathBuilder {
10236        #[allow(clippy::new_without_default)]
10237        pub fn new() -> Self {
10238            Self { path: Default::default() }
10239        }
10240        #[doc(hidden)]
10241        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10242            Self { path: base }
10243        }
10244        pub fn finish(self) -> String {
10245            self.path.join(".")
10246        }
10247        pub fn objects(mut self) -> ObjectFieldPathBuilder {
10248            self.path.push(GenesisTransaction::OBJECTS_FIELD.name);
10249            ObjectFieldPathBuilder::new_with_base(self.path)
10250        }
10251    }
10252    impl ConsensusCommitPrologue {
10253        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
10254            name: "epoch",
10255            json_name: "epoch",
10256            number: 1i32,
10257            message_fields: None,
10258        };
10259        pub const ROUND_FIELD: &'static MessageField = &MessageField {
10260            name: "round",
10261            json_name: "round",
10262            number: 2i32,
10263            message_fields: None,
10264        };
10265        pub const COMMIT_TIMESTAMP_FIELD: &'static MessageField = &MessageField {
10266            name: "commit_timestamp",
10267            json_name: "commitTimestamp",
10268            number: 3i32,
10269            message_fields: None,
10270        };
10271        pub const CONSENSUS_COMMIT_DIGEST_FIELD: &'static MessageField = &MessageField {
10272            name: "consensus_commit_digest",
10273            json_name: "consensusCommitDigest",
10274            number: 4i32,
10275            message_fields: None,
10276        };
10277        pub const SUB_DAG_INDEX_FIELD: &'static MessageField = &MessageField {
10278            name: "sub_dag_index",
10279            json_name: "subDagIndex",
10280            number: 5i32,
10281            message_fields: None,
10282        };
10283        pub const CONSENSUS_DETERMINED_VERSION_ASSIGNMENTS_FIELD: &'static MessageField = &MessageField {
10284            name: "consensus_determined_version_assignments",
10285            json_name: "consensusDeterminedVersionAssignments",
10286            number: 6i32,
10287            message_fields: Some(ConsensusDeterminedVersionAssignments::FIELDS),
10288        };
10289        pub const ADDITIONAL_STATE_DIGEST_FIELD: &'static MessageField = &MessageField {
10290            name: "additional_state_digest",
10291            json_name: "additionalStateDigest",
10292            number: 7i32,
10293            message_fields: None,
10294        };
10295    }
10296    impl MessageFields for ConsensusCommitPrologue {
10297        const FIELDS: &'static [&'static MessageField] = &[
10298            Self::EPOCH_FIELD,
10299            Self::ROUND_FIELD,
10300            Self::COMMIT_TIMESTAMP_FIELD,
10301            Self::CONSENSUS_COMMIT_DIGEST_FIELD,
10302            Self::SUB_DAG_INDEX_FIELD,
10303            Self::CONSENSUS_DETERMINED_VERSION_ASSIGNMENTS_FIELD,
10304            Self::ADDITIONAL_STATE_DIGEST_FIELD,
10305        ];
10306    }
10307    impl ConsensusCommitPrologue {
10308        pub fn path_builder() -> ConsensusCommitPrologueFieldPathBuilder {
10309            ConsensusCommitPrologueFieldPathBuilder::new()
10310        }
10311    }
10312    pub struct ConsensusCommitPrologueFieldPathBuilder {
10313        path: Vec<&'static str>,
10314    }
10315    impl ConsensusCommitPrologueFieldPathBuilder {
10316        #[allow(clippy::new_without_default)]
10317        pub fn new() -> Self {
10318            Self { path: Default::default() }
10319        }
10320        #[doc(hidden)]
10321        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10322            Self { path: base }
10323        }
10324        pub fn finish(self) -> String {
10325            self.path.join(".")
10326        }
10327        pub fn epoch(mut self) -> String {
10328            self.path.push(ConsensusCommitPrologue::EPOCH_FIELD.name);
10329            self.finish()
10330        }
10331        pub fn round(mut self) -> String {
10332            self.path.push(ConsensusCommitPrologue::ROUND_FIELD.name);
10333            self.finish()
10334        }
10335        pub fn commit_timestamp(mut self) -> String {
10336            self.path.push(ConsensusCommitPrologue::COMMIT_TIMESTAMP_FIELD.name);
10337            self.finish()
10338        }
10339        pub fn consensus_commit_digest(mut self) -> String {
10340            self.path.push(ConsensusCommitPrologue::CONSENSUS_COMMIT_DIGEST_FIELD.name);
10341            self.finish()
10342        }
10343        pub fn sub_dag_index(mut self) -> String {
10344            self.path.push(ConsensusCommitPrologue::SUB_DAG_INDEX_FIELD.name);
10345            self.finish()
10346        }
10347        pub fn consensus_determined_version_assignments(
10348            mut self,
10349        ) -> ConsensusDeterminedVersionAssignmentsFieldPathBuilder {
10350            self.path
10351                .push(
10352                    ConsensusCommitPrologue::CONSENSUS_DETERMINED_VERSION_ASSIGNMENTS_FIELD
10353                        .name,
10354                );
10355            ConsensusDeterminedVersionAssignmentsFieldPathBuilder::new_with_base(
10356                self.path,
10357            )
10358        }
10359        pub fn additional_state_digest(mut self) -> String {
10360            self.path.push(ConsensusCommitPrologue::ADDITIONAL_STATE_DIGEST_FIELD.name);
10361            self.finish()
10362        }
10363    }
10364    impl VersionAssignment {
10365        pub const OBJECT_ID_FIELD: &'static MessageField = &MessageField {
10366            name: "object_id",
10367            json_name: "objectId",
10368            number: 1i32,
10369            message_fields: None,
10370        };
10371        pub const START_VERSION_FIELD: &'static MessageField = &MessageField {
10372            name: "start_version",
10373            json_name: "startVersion",
10374            number: 2i32,
10375            message_fields: None,
10376        };
10377        pub const VERSION_FIELD: &'static MessageField = &MessageField {
10378            name: "version",
10379            json_name: "version",
10380            number: 3i32,
10381            message_fields: None,
10382        };
10383    }
10384    impl MessageFields for VersionAssignment {
10385        const FIELDS: &'static [&'static MessageField] = &[
10386            Self::OBJECT_ID_FIELD,
10387            Self::START_VERSION_FIELD,
10388            Self::VERSION_FIELD,
10389        ];
10390    }
10391    impl VersionAssignment {
10392        pub fn path_builder() -> VersionAssignmentFieldPathBuilder {
10393            VersionAssignmentFieldPathBuilder::new()
10394        }
10395    }
10396    pub struct VersionAssignmentFieldPathBuilder {
10397        path: Vec<&'static str>,
10398    }
10399    impl VersionAssignmentFieldPathBuilder {
10400        #[allow(clippy::new_without_default)]
10401        pub fn new() -> Self {
10402            Self { path: Default::default() }
10403        }
10404        #[doc(hidden)]
10405        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10406            Self { path: base }
10407        }
10408        pub fn finish(self) -> String {
10409            self.path.join(".")
10410        }
10411        pub fn object_id(mut self) -> String {
10412            self.path.push(VersionAssignment::OBJECT_ID_FIELD.name);
10413            self.finish()
10414        }
10415        pub fn start_version(mut self) -> String {
10416            self.path.push(VersionAssignment::START_VERSION_FIELD.name);
10417            self.finish()
10418        }
10419        pub fn version(mut self) -> String {
10420            self.path.push(VersionAssignment::VERSION_FIELD.name);
10421            self.finish()
10422        }
10423    }
10424    impl CanceledTransaction {
10425        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
10426            name: "digest",
10427            json_name: "digest",
10428            number: 1i32,
10429            message_fields: None,
10430        };
10431        pub const VERSION_ASSIGNMENTS_FIELD: &'static MessageField = &MessageField {
10432            name: "version_assignments",
10433            json_name: "versionAssignments",
10434            number: 2i32,
10435            message_fields: Some(VersionAssignment::FIELDS),
10436        };
10437    }
10438    impl MessageFields for CanceledTransaction {
10439        const FIELDS: &'static [&'static MessageField] = &[
10440            Self::DIGEST_FIELD,
10441            Self::VERSION_ASSIGNMENTS_FIELD,
10442        ];
10443    }
10444    impl CanceledTransaction {
10445        pub fn path_builder() -> CanceledTransactionFieldPathBuilder {
10446            CanceledTransactionFieldPathBuilder::new()
10447        }
10448    }
10449    pub struct CanceledTransactionFieldPathBuilder {
10450        path: Vec<&'static str>,
10451    }
10452    impl CanceledTransactionFieldPathBuilder {
10453        #[allow(clippy::new_without_default)]
10454        pub fn new() -> Self {
10455            Self { path: Default::default() }
10456        }
10457        #[doc(hidden)]
10458        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10459            Self { path: base }
10460        }
10461        pub fn finish(self) -> String {
10462            self.path.join(".")
10463        }
10464        pub fn digest(mut self) -> String {
10465            self.path.push(CanceledTransaction::DIGEST_FIELD.name);
10466            self.finish()
10467        }
10468        pub fn version_assignments(mut self) -> VersionAssignmentFieldPathBuilder {
10469            self.path.push(CanceledTransaction::VERSION_ASSIGNMENTS_FIELD.name);
10470            VersionAssignmentFieldPathBuilder::new_with_base(self.path)
10471        }
10472    }
10473    impl ConsensusDeterminedVersionAssignments {
10474        pub const VERSION_FIELD: &'static MessageField = &MessageField {
10475            name: "version",
10476            json_name: "version",
10477            number: 1i32,
10478            message_fields: None,
10479        };
10480        pub const CANCELED_TRANSACTIONS_FIELD: &'static MessageField = &MessageField {
10481            name: "canceled_transactions",
10482            json_name: "canceledTransactions",
10483            number: 3i32,
10484            message_fields: Some(CanceledTransaction::FIELDS),
10485        };
10486    }
10487    impl MessageFields for ConsensusDeterminedVersionAssignments {
10488        const FIELDS: &'static [&'static MessageField] = &[
10489            Self::VERSION_FIELD,
10490            Self::CANCELED_TRANSACTIONS_FIELD,
10491        ];
10492    }
10493    impl ConsensusDeterminedVersionAssignments {
10494        pub fn path_builder() -> ConsensusDeterminedVersionAssignmentsFieldPathBuilder {
10495            ConsensusDeterminedVersionAssignmentsFieldPathBuilder::new()
10496        }
10497    }
10498    pub struct ConsensusDeterminedVersionAssignmentsFieldPathBuilder {
10499        path: Vec<&'static str>,
10500    }
10501    impl ConsensusDeterminedVersionAssignmentsFieldPathBuilder {
10502        #[allow(clippy::new_without_default)]
10503        pub fn new() -> Self {
10504            Self { path: Default::default() }
10505        }
10506        #[doc(hidden)]
10507        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10508            Self { path: base }
10509        }
10510        pub fn finish(self) -> String {
10511            self.path.join(".")
10512        }
10513        pub fn version(mut self) -> String {
10514            self.path.push(ConsensusDeterminedVersionAssignments::VERSION_FIELD.name);
10515            self.finish()
10516        }
10517        pub fn canceled_transactions(mut self) -> CanceledTransactionFieldPathBuilder {
10518            self.path
10519                .push(
10520                    ConsensusDeterminedVersionAssignments::CANCELED_TRANSACTIONS_FIELD
10521                        .name,
10522                );
10523            CanceledTransactionFieldPathBuilder::new_with_base(self.path)
10524        }
10525    }
10526    impl AuthenticatorStateUpdate {
10527        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
10528            name: "epoch",
10529            json_name: "epoch",
10530            number: 1i32,
10531            message_fields: None,
10532        };
10533        pub const ROUND_FIELD: &'static MessageField = &MessageField {
10534            name: "round",
10535            json_name: "round",
10536            number: 2i32,
10537            message_fields: None,
10538        };
10539        pub const NEW_ACTIVE_JWKS_FIELD: &'static MessageField = &MessageField {
10540            name: "new_active_jwks",
10541            json_name: "newActiveJwks",
10542            number: 3i32,
10543            message_fields: Some(ActiveJwk::FIELDS),
10544        };
10545        pub const AUTHENTICATOR_OBJECT_INITIAL_SHARED_VERSION_FIELD: &'static MessageField = &MessageField {
10546            name: "authenticator_object_initial_shared_version",
10547            json_name: "authenticatorObjectInitialSharedVersion",
10548            number: 4i32,
10549            message_fields: None,
10550        };
10551    }
10552    impl MessageFields for AuthenticatorStateUpdate {
10553        const FIELDS: &'static [&'static MessageField] = &[
10554            Self::EPOCH_FIELD,
10555            Self::ROUND_FIELD,
10556            Self::NEW_ACTIVE_JWKS_FIELD,
10557            Self::AUTHENTICATOR_OBJECT_INITIAL_SHARED_VERSION_FIELD,
10558        ];
10559    }
10560    impl AuthenticatorStateUpdate {
10561        pub fn path_builder() -> AuthenticatorStateUpdateFieldPathBuilder {
10562            AuthenticatorStateUpdateFieldPathBuilder::new()
10563        }
10564    }
10565    pub struct AuthenticatorStateUpdateFieldPathBuilder {
10566        path: Vec<&'static str>,
10567    }
10568    impl AuthenticatorStateUpdateFieldPathBuilder {
10569        #[allow(clippy::new_without_default)]
10570        pub fn new() -> Self {
10571            Self { path: Default::default() }
10572        }
10573        #[doc(hidden)]
10574        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10575            Self { path: base }
10576        }
10577        pub fn finish(self) -> String {
10578            self.path.join(".")
10579        }
10580        pub fn epoch(mut self) -> String {
10581            self.path.push(AuthenticatorStateUpdate::EPOCH_FIELD.name);
10582            self.finish()
10583        }
10584        pub fn round(mut self) -> String {
10585            self.path.push(AuthenticatorStateUpdate::ROUND_FIELD.name);
10586            self.finish()
10587        }
10588        pub fn new_active_jwks(mut self) -> ActiveJwkFieldPathBuilder {
10589            self.path.push(AuthenticatorStateUpdate::NEW_ACTIVE_JWKS_FIELD.name);
10590            ActiveJwkFieldPathBuilder::new_with_base(self.path)
10591        }
10592        pub fn authenticator_object_initial_shared_version(mut self) -> String {
10593            self.path
10594                .push(
10595                    AuthenticatorStateUpdate::AUTHENTICATOR_OBJECT_INITIAL_SHARED_VERSION_FIELD
10596                        .name,
10597                );
10598            self.finish()
10599        }
10600    }
10601    impl ActiveJwk {
10602        pub const ID_FIELD: &'static MessageField = &MessageField {
10603            name: "id",
10604            json_name: "id",
10605            number: 1i32,
10606            message_fields: Some(JwkId::FIELDS),
10607        };
10608        pub const JWK_FIELD: &'static MessageField = &MessageField {
10609            name: "jwk",
10610            json_name: "jwk",
10611            number: 2i32,
10612            message_fields: Some(Jwk::FIELDS),
10613        };
10614        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
10615            name: "epoch",
10616            json_name: "epoch",
10617            number: 3i32,
10618            message_fields: None,
10619        };
10620    }
10621    impl MessageFields for ActiveJwk {
10622        const FIELDS: &'static [&'static MessageField] = &[
10623            Self::ID_FIELD,
10624            Self::JWK_FIELD,
10625            Self::EPOCH_FIELD,
10626        ];
10627    }
10628    impl ActiveJwk {
10629        pub fn path_builder() -> ActiveJwkFieldPathBuilder {
10630            ActiveJwkFieldPathBuilder::new()
10631        }
10632    }
10633    pub struct ActiveJwkFieldPathBuilder {
10634        path: Vec<&'static str>,
10635    }
10636    impl ActiveJwkFieldPathBuilder {
10637        #[allow(clippy::new_without_default)]
10638        pub fn new() -> Self {
10639            Self { path: Default::default() }
10640        }
10641        #[doc(hidden)]
10642        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10643            Self { path: base }
10644        }
10645        pub fn finish(self) -> String {
10646            self.path.join(".")
10647        }
10648        pub fn id(mut self) -> JwkIdFieldPathBuilder {
10649            self.path.push(ActiveJwk::ID_FIELD.name);
10650            JwkIdFieldPathBuilder::new_with_base(self.path)
10651        }
10652        pub fn jwk(mut self) -> JwkFieldPathBuilder {
10653            self.path.push(ActiveJwk::JWK_FIELD.name);
10654            JwkFieldPathBuilder::new_with_base(self.path)
10655        }
10656        pub fn epoch(mut self) -> String {
10657            self.path.push(ActiveJwk::EPOCH_FIELD.name);
10658            self.finish()
10659        }
10660    }
10661    impl EndOfEpochTransaction {
10662        pub const TRANSACTIONS_FIELD: &'static MessageField = &MessageField {
10663            name: "transactions",
10664            json_name: "transactions",
10665            number: 1i32,
10666            message_fields: Some(EndOfEpochTransactionKind::FIELDS),
10667        };
10668    }
10669    impl MessageFields for EndOfEpochTransaction {
10670        const FIELDS: &'static [&'static MessageField] = &[Self::TRANSACTIONS_FIELD];
10671    }
10672    impl EndOfEpochTransaction {
10673        pub fn path_builder() -> EndOfEpochTransactionFieldPathBuilder {
10674            EndOfEpochTransactionFieldPathBuilder::new()
10675        }
10676    }
10677    pub struct EndOfEpochTransactionFieldPathBuilder {
10678        path: Vec<&'static str>,
10679    }
10680    impl EndOfEpochTransactionFieldPathBuilder {
10681        #[allow(clippy::new_without_default)]
10682        pub fn new() -> Self {
10683            Self { path: Default::default() }
10684        }
10685        #[doc(hidden)]
10686        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10687            Self { path: base }
10688        }
10689        pub fn finish(self) -> String {
10690            self.path.join(".")
10691        }
10692        pub fn transactions(mut self) -> EndOfEpochTransactionKindFieldPathBuilder {
10693            self.path.push(EndOfEpochTransaction::TRANSACTIONS_FIELD.name);
10694            EndOfEpochTransactionKindFieldPathBuilder::new_with_base(self.path)
10695        }
10696    }
10697    impl EndOfEpochTransactionKind {
10698        pub const KIND_FIELD: &'static MessageField = &MessageField {
10699            name: "kind",
10700            json_name: "kind",
10701            number: 1i32,
10702            message_fields: None,
10703        };
10704        pub const CHANGE_EPOCH_FIELD: &'static MessageField = &MessageField {
10705            name: "change_epoch",
10706            json_name: "changeEpoch",
10707            number: 2i32,
10708            message_fields: Some(ChangeEpoch::FIELDS),
10709        };
10710        pub const AUTHENTICATOR_STATE_EXPIRE_FIELD: &'static MessageField = &MessageField {
10711            name: "authenticator_state_expire",
10712            json_name: "authenticatorStateExpire",
10713            number: 3i32,
10714            message_fields: Some(AuthenticatorStateExpire::FIELDS),
10715        };
10716        pub const EXECUTION_TIME_OBSERVATIONS_FIELD: &'static MessageField = &MessageField {
10717            name: "execution_time_observations",
10718            json_name: "executionTimeObservations",
10719            number: 4i32,
10720            message_fields: Some(ExecutionTimeObservations::FIELDS),
10721        };
10722        pub const BRIDGE_CHAIN_ID_FIELD: &'static MessageField = &MessageField {
10723            name: "bridge_chain_id",
10724            json_name: "bridgeChainId",
10725            number: 5i32,
10726            message_fields: None,
10727        };
10728        pub const BRIDGE_OBJECT_VERSION_FIELD: &'static MessageField = &MessageField {
10729            name: "bridge_object_version",
10730            json_name: "bridgeObjectVersion",
10731            number: 6i32,
10732            message_fields: None,
10733        };
10734    }
10735    impl MessageFields for EndOfEpochTransactionKind {
10736        const FIELDS: &'static [&'static MessageField] = &[
10737            Self::KIND_FIELD,
10738            Self::CHANGE_EPOCH_FIELD,
10739            Self::AUTHENTICATOR_STATE_EXPIRE_FIELD,
10740            Self::EXECUTION_TIME_OBSERVATIONS_FIELD,
10741            Self::BRIDGE_CHAIN_ID_FIELD,
10742            Self::BRIDGE_OBJECT_VERSION_FIELD,
10743        ];
10744    }
10745    impl EndOfEpochTransactionKind {
10746        pub fn path_builder() -> EndOfEpochTransactionKindFieldPathBuilder {
10747            EndOfEpochTransactionKindFieldPathBuilder::new()
10748        }
10749    }
10750    pub struct EndOfEpochTransactionKindFieldPathBuilder {
10751        path: Vec<&'static str>,
10752    }
10753    impl EndOfEpochTransactionKindFieldPathBuilder {
10754        #[allow(clippy::new_without_default)]
10755        pub fn new() -> Self {
10756            Self { path: Default::default() }
10757        }
10758        #[doc(hidden)]
10759        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10760            Self { path: base }
10761        }
10762        pub fn finish(self) -> String {
10763            self.path.join(".")
10764        }
10765        pub fn kind(mut self) -> String {
10766            self.path.push(EndOfEpochTransactionKind::KIND_FIELD.name);
10767            self.finish()
10768        }
10769        pub fn change_epoch(mut self) -> ChangeEpochFieldPathBuilder {
10770            self.path.push(EndOfEpochTransactionKind::CHANGE_EPOCH_FIELD.name);
10771            ChangeEpochFieldPathBuilder::new_with_base(self.path)
10772        }
10773        pub fn authenticator_state_expire(
10774            mut self,
10775        ) -> AuthenticatorStateExpireFieldPathBuilder {
10776            self.path
10777                .push(EndOfEpochTransactionKind::AUTHENTICATOR_STATE_EXPIRE_FIELD.name);
10778            AuthenticatorStateExpireFieldPathBuilder::new_with_base(self.path)
10779        }
10780        pub fn execution_time_observations(
10781            mut self,
10782        ) -> ExecutionTimeObservationsFieldPathBuilder {
10783            self.path
10784                .push(EndOfEpochTransactionKind::EXECUTION_TIME_OBSERVATIONS_FIELD.name);
10785            ExecutionTimeObservationsFieldPathBuilder::new_with_base(self.path)
10786        }
10787        pub fn bridge_chain_id(mut self) -> String {
10788            self.path.push(EndOfEpochTransactionKind::BRIDGE_CHAIN_ID_FIELD.name);
10789            self.finish()
10790        }
10791        pub fn bridge_object_version(mut self) -> String {
10792            self.path.push(EndOfEpochTransactionKind::BRIDGE_OBJECT_VERSION_FIELD.name);
10793            self.finish()
10794        }
10795    }
10796    impl AuthenticatorStateExpire {
10797        pub const MIN_EPOCH_FIELD: &'static MessageField = &MessageField {
10798            name: "min_epoch",
10799            json_name: "minEpoch",
10800            number: 1i32,
10801            message_fields: None,
10802        };
10803        pub const AUTHENTICATOR_OBJECT_INITIAL_SHARED_VERSION_FIELD: &'static MessageField = &MessageField {
10804            name: "authenticator_object_initial_shared_version",
10805            json_name: "authenticatorObjectInitialSharedVersion",
10806            number: 2i32,
10807            message_fields: None,
10808        };
10809    }
10810    impl MessageFields for AuthenticatorStateExpire {
10811        const FIELDS: &'static [&'static MessageField] = &[
10812            Self::MIN_EPOCH_FIELD,
10813            Self::AUTHENTICATOR_OBJECT_INITIAL_SHARED_VERSION_FIELD,
10814        ];
10815    }
10816    impl AuthenticatorStateExpire {
10817        pub fn path_builder() -> AuthenticatorStateExpireFieldPathBuilder {
10818            AuthenticatorStateExpireFieldPathBuilder::new()
10819        }
10820    }
10821    pub struct AuthenticatorStateExpireFieldPathBuilder {
10822        path: Vec<&'static str>,
10823    }
10824    impl AuthenticatorStateExpireFieldPathBuilder {
10825        #[allow(clippy::new_without_default)]
10826        pub fn new() -> Self {
10827            Self { path: Default::default() }
10828        }
10829        #[doc(hidden)]
10830        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10831            Self { path: base }
10832        }
10833        pub fn finish(self) -> String {
10834            self.path.join(".")
10835        }
10836        pub fn min_epoch(mut self) -> String {
10837            self.path.push(AuthenticatorStateExpire::MIN_EPOCH_FIELD.name);
10838            self.finish()
10839        }
10840        pub fn authenticator_object_initial_shared_version(mut self) -> String {
10841            self.path
10842                .push(
10843                    AuthenticatorStateExpire::AUTHENTICATOR_OBJECT_INITIAL_SHARED_VERSION_FIELD
10844                        .name,
10845                );
10846            self.finish()
10847        }
10848    }
10849    impl ExecutionTimeObservations {
10850        pub const VERSION_FIELD: &'static MessageField = &MessageField {
10851            name: "version",
10852            json_name: "version",
10853            number: 1i32,
10854            message_fields: None,
10855        };
10856        pub const OBSERVATIONS_FIELD: &'static MessageField = &MessageField {
10857            name: "observations",
10858            json_name: "observations",
10859            number: 2i32,
10860            message_fields: Some(ExecutionTimeObservation::FIELDS),
10861        };
10862    }
10863    impl MessageFields for ExecutionTimeObservations {
10864        const FIELDS: &'static [&'static MessageField] = &[
10865            Self::VERSION_FIELD,
10866            Self::OBSERVATIONS_FIELD,
10867        ];
10868    }
10869    impl ExecutionTimeObservations {
10870        pub fn path_builder() -> ExecutionTimeObservationsFieldPathBuilder {
10871            ExecutionTimeObservationsFieldPathBuilder::new()
10872        }
10873    }
10874    pub struct ExecutionTimeObservationsFieldPathBuilder {
10875        path: Vec<&'static str>,
10876    }
10877    impl ExecutionTimeObservationsFieldPathBuilder {
10878        #[allow(clippy::new_without_default)]
10879        pub fn new() -> Self {
10880            Self { path: Default::default() }
10881        }
10882        #[doc(hidden)]
10883        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10884            Self { path: base }
10885        }
10886        pub fn finish(self) -> String {
10887            self.path.join(".")
10888        }
10889        pub fn version(mut self) -> String {
10890            self.path.push(ExecutionTimeObservations::VERSION_FIELD.name);
10891            self.finish()
10892        }
10893        pub fn observations(mut self) -> ExecutionTimeObservationFieldPathBuilder {
10894            self.path.push(ExecutionTimeObservations::OBSERVATIONS_FIELD.name);
10895            ExecutionTimeObservationFieldPathBuilder::new_with_base(self.path)
10896        }
10897    }
10898    impl ExecutionTimeObservation {
10899        pub const KIND_FIELD: &'static MessageField = &MessageField {
10900            name: "kind",
10901            json_name: "kind",
10902            number: 1i32,
10903            message_fields: None,
10904        };
10905        pub const MOVE_ENTRY_POINT_FIELD: &'static MessageField = &MessageField {
10906            name: "move_entry_point",
10907            json_name: "moveEntryPoint",
10908            number: 2i32,
10909            message_fields: Some(MoveCall::FIELDS),
10910        };
10911        pub const VALIDATOR_OBSERVATIONS_FIELD: &'static MessageField = &MessageField {
10912            name: "validator_observations",
10913            json_name: "validatorObservations",
10914            number: 3i32,
10915            message_fields: Some(ValidatorExecutionTimeObservation::FIELDS),
10916        };
10917    }
10918    impl MessageFields for ExecutionTimeObservation {
10919        const FIELDS: &'static [&'static MessageField] = &[
10920            Self::KIND_FIELD,
10921            Self::MOVE_ENTRY_POINT_FIELD,
10922            Self::VALIDATOR_OBSERVATIONS_FIELD,
10923        ];
10924    }
10925    impl ExecutionTimeObservation {
10926        pub fn path_builder() -> ExecutionTimeObservationFieldPathBuilder {
10927            ExecutionTimeObservationFieldPathBuilder::new()
10928        }
10929    }
10930    pub struct ExecutionTimeObservationFieldPathBuilder {
10931        path: Vec<&'static str>,
10932    }
10933    impl ExecutionTimeObservationFieldPathBuilder {
10934        #[allow(clippy::new_without_default)]
10935        pub fn new() -> Self {
10936            Self { path: Default::default() }
10937        }
10938        #[doc(hidden)]
10939        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10940            Self { path: base }
10941        }
10942        pub fn finish(self) -> String {
10943            self.path.join(".")
10944        }
10945        pub fn kind(mut self) -> String {
10946            self.path.push(ExecutionTimeObservation::KIND_FIELD.name);
10947            self.finish()
10948        }
10949        pub fn move_entry_point(mut self) -> MoveCallFieldPathBuilder {
10950            self.path.push(ExecutionTimeObservation::MOVE_ENTRY_POINT_FIELD.name);
10951            MoveCallFieldPathBuilder::new_with_base(self.path)
10952        }
10953        pub fn validator_observations(
10954            mut self,
10955        ) -> ValidatorExecutionTimeObservationFieldPathBuilder {
10956            self.path.push(ExecutionTimeObservation::VALIDATOR_OBSERVATIONS_FIELD.name);
10957            ValidatorExecutionTimeObservationFieldPathBuilder::new_with_base(self.path)
10958        }
10959    }
10960    impl ValidatorExecutionTimeObservation {
10961        pub const VALIDATOR_FIELD: &'static MessageField = &MessageField {
10962            name: "validator",
10963            json_name: "validator",
10964            number: 1i32,
10965            message_fields: None,
10966        };
10967        pub const DURATION_FIELD: &'static MessageField = &MessageField {
10968            name: "duration",
10969            json_name: "duration",
10970            number: 2i32,
10971            message_fields: None,
10972        };
10973    }
10974    impl MessageFields for ValidatorExecutionTimeObservation {
10975        const FIELDS: &'static [&'static MessageField] = &[
10976            Self::VALIDATOR_FIELD,
10977            Self::DURATION_FIELD,
10978        ];
10979    }
10980    impl ValidatorExecutionTimeObservation {
10981        pub fn path_builder() -> ValidatorExecutionTimeObservationFieldPathBuilder {
10982            ValidatorExecutionTimeObservationFieldPathBuilder::new()
10983        }
10984    }
10985    pub struct ValidatorExecutionTimeObservationFieldPathBuilder {
10986        path: Vec<&'static str>,
10987    }
10988    impl ValidatorExecutionTimeObservationFieldPathBuilder {
10989        #[allow(clippy::new_without_default)]
10990        pub fn new() -> Self {
10991            Self { path: Default::default() }
10992        }
10993        #[doc(hidden)]
10994        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10995            Self { path: base }
10996        }
10997        pub fn finish(self) -> String {
10998            self.path.join(".")
10999        }
11000        pub fn validator(mut self) -> String {
11001            self.path.push(ValidatorExecutionTimeObservation::VALIDATOR_FIELD.name);
11002            self.finish()
11003        }
11004        pub fn duration(mut self) -> String {
11005            self.path.push(ValidatorExecutionTimeObservation::DURATION_FIELD.name);
11006            self.finish()
11007        }
11008    }
11009    impl ExecuteTransactionRequest {
11010        pub const TRANSACTION_FIELD: &'static MessageField = &MessageField {
11011            name: "transaction",
11012            json_name: "transaction",
11013            number: 1i32,
11014            message_fields: Some(Transaction::FIELDS),
11015        };
11016        pub const SIGNATURES_FIELD: &'static MessageField = &MessageField {
11017            name: "signatures",
11018            json_name: "signatures",
11019            number: 2i32,
11020            message_fields: Some(UserSignature::FIELDS),
11021        };
11022        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
11023            name: "read_mask",
11024            json_name: "readMask",
11025            number: 3i32,
11026            message_fields: None,
11027        };
11028    }
11029    impl MessageFields for ExecuteTransactionRequest {
11030        const FIELDS: &'static [&'static MessageField] = &[
11031            Self::TRANSACTION_FIELD,
11032            Self::SIGNATURES_FIELD,
11033            Self::READ_MASK_FIELD,
11034        ];
11035    }
11036    impl ExecuteTransactionRequest {
11037        pub fn path_builder() -> ExecuteTransactionRequestFieldPathBuilder {
11038            ExecuteTransactionRequestFieldPathBuilder::new()
11039        }
11040    }
11041    pub struct ExecuteTransactionRequestFieldPathBuilder {
11042        path: Vec<&'static str>,
11043    }
11044    impl ExecuteTransactionRequestFieldPathBuilder {
11045        #[allow(clippy::new_without_default)]
11046        pub fn new() -> Self {
11047            Self { path: Default::default() }
11048        }
11049        #[doc(hidden)]
11050        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11051            Self { path: base }
11052        }
11053        pub fn finish(self) -> String {
11054            self.path.join(".")
11055        }
11056        pub fn transaction(mut self) -> TransactionFieldPathBuilder {
11057            self.path.push(ExecuteTransactionRequest::TRANSACTION_FIELD.name);
11058            TransactionFieldPathBuilder::new_with_base(self.path)
11059        }
11060        pub fn signatures(mut self) -> UserSignatureFieldPathBuilder {
11061            self.path.push(ExecuteTransactionRequest::SIGNATURES_FIELD.name);
11062            UserSignatureFieldPathBuilder::new_with_base(self.path)
11063        }
11064        pub fn read_mask(mut self) -> String {
11065            self.path.push(ExecuteTransactionRequest::READ_MASK_FIELD.name);
11066            self.finish()
11067        }
11068    }
11069    impl ExecuteTransactionResponse {
11070        pub const TRANSACTION_FIELD: &'static MessageField = &MessageField {
11071            name: "transaction",
11072            json_name: "transaction",
11073            number: 1i32,
11074            message_fields: Some(ExecutedTransaction::FIELDS),
11075        };
11076    }
11077    impl MessageFields for ExecuteTransactionResponse {
11078        const FIELDS: &'static [&'static MessageField] = &[Self::TRANSACTION_FIELD];
11079    }
11080    impl ExecuteTransactionResponse {
11081        pub fn path_builder() -> ExecuteTransactionResponseFieldPathBuilder {
11082            ExecuteTransactionResponseFieldPathBuilder::new()
11083        }
11084    }
11085    pub struct ExecuteTransactionResponseFieldPathBuilder {
11086        path: Vec<&'static str>,
11087    }
11088    impl ExecuteTransactionResponseFieldPathBuilder {
11089        #[allow(clippy::new_without_default)]
11090        pub fn new() -> Self {
11091            Self { path: Default::default() }
11092        }
11093        #[doc(hidden)]
11094        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11095            Self { path: base }
11096        }
11097        pub fn finish(self) -> String {
11098            self.path.join(".")
11099        }
11100        pub fn transaction(mut self) -> ExecutedTransactionFieldPathBuilder {
11101            self.path.push(ExecuteTransactionResponse::TRANSACTION_FIELD.name);
11102            ExecutedTransactionFieldPathBuilder::new_with_base(self.path)
11103        }
11104    }
11105    impl SimulateTransactionRequest {
11106        pub const TRANSACTION_FIELD: &'static MessageField = &MessageField {
11107            name: "transaction",
11108            json_name: "transaction",
11109            number: 1i32,
11110            message_fields: Some(Transaction::FIELDS),
11111        };
11112        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
11113            name: "read_mask",
11114            json_name: "readMask",
11115            number: 2i32,
11116            message_fields: None,
11117        };
11118        pub const CHECKS_FIELD: &'static MessageField = &MessageField {
11119            name: "checks",
11120            json_name: "checks",
11121            number: 3i32,
11122            message_fields: None,
11123        };
11124        pub const DO_GAS_SELECTION_FIELD: &'static MessageField = &MessageField {
11125            name: "do_gas_selection",
11126            json_name: "doGasSelection",
11127            number: 4i32,
11128            message_fields: None,
11129        };
11130    }
11131    impl MessageFields for SimulateTransactionRequest {
11132        const FIELDS: &'static [&'static MessageField] = &[
11133            Self::TRANSACTION_FIELD,
11134            Self::READ_MASK_FIELD,
11135            Self::CHECKS_FIELD,
11136            Self::DO_GAS_SELECTION_FIELD,
11137        ];
11138    }
11139    impl SimulateTransactionRequest {
11140        pub fn path_builder() -> SimulateTransactionRequestFieldPathBuilder {
11141            SimulateTransactionRequestFieldPathBuilder::new()
11142        }
11143    }
11144    pub struct SimulateTransactionRequestFieldPathBuilder {
11145        path: Vec<&'static str>,
11146    }
11147    impl SimulateTransactionRequestFieldPathBuilder {
11148        #[allow(clippy::new_without_default)]
11149        pub fn new() -> Self {
11150            Self { path: Default::default() }
11151        }
11152        #[doc(hidden)]
11153        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11154            Self { path: base }
11155        }
11156        pub fn finish(self) -> String {
11157            self.path.join(".")
11158        }
11159        pub fn transaction(mut self) -> TransactionFieldPathBuilder {
11160            self.path.push(SimulateTransactionRequest::TRANSACTION_FIELD.name);
11161            TransactionFieldPathBuilder::new_with_base(self.path)
11162        }
11163        pub fn read_mask(mut self) -> String {
11164            self.path.push(SimulateTransactionRequest::READ_MASK_FIELD.name);
11165            self.finish()
11166        }
11167        pub fn checks(mut self) -> String {
11168            self.path.push(SimulateTransactionRequest::CHECKS_FIELD.name);
11169            self.finish()
11170        }
11171        pub fn do_gas_selection(mut self) -> String {
11172            self.path.push(SimulateTransactionRequest::DO_GAS_SELECTION_FIELD.name);
11173            self.finish()
11174        }
11175    }
11176    impl SimulateTransactionResponse {
11177        pub const TRANSACTION_FIELD: &'static MessageField = &MessageField {
11178            name: "transaction",
11179            json_name: "transaction",
11180            number: 1i32,
11181            message_fields: Some(ExecutedTransaction::FIELDS),
11182        };
11183        pub const COMMAND_OUTPUTS_FIELD: &'static MessageField = &MessageField {
11184            name: "command_outputs",
11185            json_name: "commandOutputs",
11186            number: 2i32,
11187            message_fields: Some(CommandResult::FIELDS),
11188        };
11189    }
11190    impl MessageFields for SimulateTransactionResponse {
11191        const FIELDS: &'static [&'static MessageField] = &[
11192            Self::TRANSACTION_FIELD,
11193            Self::COMMAND_OUTPUTS_FIELD,
11194        ];
11195    }
11196    impl SimulateTransactionResponse {
11197        pub fn path_builder() -> SimulateTransactionResponseFieldPathBuilder {
11198            SimulateTransactionResponseFieldPathBuilder::new()
11199        }
11200    }
11201    pub struct SimulateTransactionResponseFieldPathBuilder {
11202        path: Vec<&'static str>,
11203    }
11204    impl SimulateTransactionResponseFieldPathBuilder {
11205        #[allow(clippy::new_without_default)]
11206        pub fn new() -> Self {
11207            Self { path: Default::default() }
11208        }
11209        #[doc(hidden)]
11210        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11211            Self { path: base }
11212        }
11213        pub fn finish(self) -> String {
11214            self.path.join(".")
11215        }
11216        pub fn transaction(mut self) -> ExecutedTransactionFieldPathBuilder {
11217            self.path.push(SimulateTransactionResponse::TRANSACTION_FIELD.name);
11218            ExecutedTransactionFieldPathBuilder::new_with_base(self.path)
11219        }
11220        pub fn command_outputs(mut self) -> CommandResultFieldPathBuilder {
11221            self.path.push(SimulateTransactionResponse::COMMAND_OUTPUTS_FIELD.name);
11222            CommandResultFieldPathBuilder::new_with_base(self.path)
11223        }
11224    }
11225    impl CommandResult {
11226        pub const RETURN_VALUES_FIELD: &'static MessageField = &MessageField {
11227            name: "return_values",
11228            json_name: "returnValues",
11229            number: 1i32,
11230            message_fields: Some(CommandOutput::FIELDS),
11231        };
11232        pub const MUTATED_BY_REF_FIELD: &'static MessageField = &MessageField {
11233            name: "mutated_by_ref",
11234            json_name: "mutatedByRef",
11235            number: 2i32,
11236            message_fields: Some(CommandOutput::FIELDS),
11237        };
11238    }
11239    impl MessageFields for CommandResult {
11240        const FIELDS: &'static [&'static MessageField] = &[
11241            Self::RETURN_VALUES_FIELD,
11242            Self::MUTATED_BY_REF_FIELD,
11243        ];
11244    }
11245    impl CommandResult {
11246        pub fn path_builder() -> CommandResultFieldPathBuilder {
11247            CommandResultFieldPathBuilder::new()
11248        }
11249    }
11250    pub struct CommandResultFieldPathBuilder {
11251        path: Vec<&'static str>,
11252    }
11253    impl CommandResultFieldPathBuilder {
11254        #[allow(clippy::new_without_default)]
11255        pub fn new() -> Self {
11256            Self { path: Default::default() }
11257        }
11258        #[doc(hidden)]
11259        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11260            Self { path: base }
11261        }
11262        pub fn finish(self) -> String {
11263            self.path.join(".")
11264        }
11265        pub fn return_values(mut self) -> CommandOutputFieldPathBuilder {
11266            self.path.push(CommandResult::RETURN_VALUES_FIELD.name);
11267            CommandOutputFieldPathBuilder::new_with_base(self.path)
11268        }
11269        pub fn mutated_by_ref(mut self) -> CommandOutputFieldPathBuilder {
11270            self.path.push(CommandResult::MUTATED_BY_REF_FIELD.name);
11271            CommandOutputFieldPathBuilder::new_with_base(self.path)
11272        }
11273    }
11274    impl CommandOutput {
11275        pub const ARGUMENT_FIELD: &'static MessageField = &MessageField {
11276            name: "argument",
11277            json_name: "argument",
11278            number: 1i32,
11279            message_fields: Some(Argument::FIELDS),
11280        };
11281        pub const VALUE_FIELD: &'static MessageField = &MessageField {
11282            name: "value",
11283            json_name: "value",
11284            number: 2i32,
11285            message_fields: Some(Bcs::FIELDS),
11286        };
11287        pub const JSON_FIELD: &'static MessageField = &MessageField {
11288            name: "json",
11289            json_name: "json",
11290            number: 3i32,
11291            message_fields: None,
11292        };
11293    }
11294    impl MessageFields for CommandOutput {
11295        const FIELDS: &'static [&'static MessageField] = &[
11296            Self::ARGUMENT_FIELD,
11297            Self::VALUE_FIELD,
11298            Self::JSON_FIELD,
11299        ];
11300    }
11301    impl CommandOutput {
11302        pub fn path_builder() -> CommandOutputFieldPathBuilder {
11303            CommandOutputFieldPathBuilder::new()
11304        }
11305    }
11306    pub struct CommandOutputFieldPathBuilder {
11307        path: Vec<&'static str>,
11308    }
11309    impl CommandOutputFieldPathBuilder {
11310        #[allow(clippy::new_without_default)]
11311        pub fn new() -> Self {
11312            Self { path: Default::default() }
11313        }
11314        #[doc(hidden)]
11315        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11316            Self { path: base }
11317        }
11318        pub fn finish(self) -> String {
11319            self.path.join(".")
11320        }
11321        pub fn argument(mut self) -> ArgumentFieldPathBuilder {
11322            self.path.push(CommandOutput::ARGUMENT_FIELD.name);
11323            ArgumentFieldPathBuilder::new_with_base(self.path)
11324        }
11325        pub fn value(mut self) -> BcsFieldPathBuilder {
11326            self.path.push(CommandOutput::VALUE_FIELD.name);
11327            BcsFieldPathBuilder::new_with_base(self.path)
11328        }
11329        pub fn json(mut self) -> String {
11330            self.path.push(CommandOutput::JSON_FIELD.name);
11331            self.finish()
11332        }
11333    }
11334}