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        pub const ADDRESS_BALANCE_FIELD: &'static MessageField = &MessageField {
7301            name: "address_balance",
7302            json_name: "addressBalance",
7303            number: 4i32,
7304            message_fields: None,
7305        };
7306        pub const COIN_BALANCE_FIELD: &'static MessageField = &MessageField {
7307            name: "coin_balance",
7308            json_name: "coinBalance",
7309            number: 5i32,
7310            message_fields: None,
7311        };
7312    }
7313    impl MessageFields for Balance {
7314        const FIELDS: &'static [&'static MessageField] = &[
7315            Self::COIN_TYPE_FIELD,
7316            Self::BALANCE_FIELD,
7317            Self::ADDRESS_BALANCE_FIELD,
7318            Self::COIN_BALANCE_FIELD,
7319        ];
7320    }
7321    impl Balance {
7322        pub fn path_builder() -> BalanceFieldPathBuilder {
7323            BalanceFieldPathBuilder::new()
7324        }
7325    }
7326    pub struct BalanceFieldPathBuilder {
7327        path: Vec<&'static str>,
7328    }
7329    impl BalanceFieldPathBuilder {
7330        #[allow(clippy::new_without_default)]
7331        pub fn new() -> Self {
7332            Self { path: Default::default() }
7333        }
7334        #[doc(hidden)]
7335        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7336            Self { path: base }
7337        }
7338        pub fn finish(self) -> String {
7339            self.path.join(".")
7340        }
7341        pub fn coin_type(mut self) -> String {
7342            self.path.push(Balance::COIN_TYPE_FIELD.name);
7343            self.finish()
7344        }
7345        pub fn balance(mut self) -> String {
7346            self.path.push(Balance::BALANCE_FIELD.name);
7347            self.finish()
7348        }
7349        pub fn address_balance(mut self) -> String {
7350            self.path.push(Balance::ADDRESS_BALANCE_FIELD.name);
7351            self.finish()
7352        }
7353        pub fn coin_balance(mut self) -> String {
7354            self.path.push(Balance::COIN_BALANCE_FIELD.name);
7355            self.finish()
7356        }
7357    }
7358    impl ListDynamicFieldsRequest {
7359        pub const PARENT_FIELD: &'static MessageField = &MessageField {
7360            name: "parent",
7361            json_name: "parent",
7362            number: 1i32,
7363            message_fields: None,
7364        };
7365        pub const PAGE_SIZE_FIELD: &'static MessageField = &MessageField {
7366            name: "page_size",
7367            json_name: "pageSize",
7368            number: 2i32,
7369            message_fields: None,
7370        };
7371        pub const PAGE_TOKEN_FIELD: &'static MessageField = &MessageField {
7372            name: "page_token",
7373            json_name: "pageToken",
7374            number: 3i32,
7375            message_fields: None,
7376        };
7377        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
7378            name: "read_mask",
7379            json_name: "readMask",
7380            number: 4i32,
7381            message_fields: None,
7382        };
7383    }
7384    impl MessageFields for ListDynamicFieldsRequest {
7385        const FIELDS: &'static [&'static MessageField] = &[
7386            Self::PARENT_FIELD,
7387            Self::PAGE_SIZE_FIELD,
7388            Self::PAGE_TOKEN_FIELD,
7389            Self::READ_MASK_FIELD,
7390        ];
7391    }
7392    impl ListDynamicFieldsRequest {
7393        pub fn path_builder() -> ListDynamicFieldsRequestFieldPathBuilder {
7394            ListDynamicFieldsRequestFieldPathBuilder::new()
7395        }
7396    }
7397    pub struct ListDynamicFieldsRequestFieldPathBuilder {
7398        path: Vec<&'static str>,
7399    }
7400    impl ListDynamicFieldsRequestFieldPathBuilder {
7401        #[allow(clippy::new_without_default)]
7402        pub fn new() -> Self {
7403            Self { path: Default::default() }
7404        }
7405        #[doc(hidden)]
7406        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7407            Self { path: base }
7408        }
7409        pub fn finish(self) -> String {
7410            self.path.join(".")
7411        }
7412        pub fn parent(mut self) -> String {
7413            self.path.push(ListDynamicFieldsRequest::PARENT_FIELD.name);
7414            self.finish()
7415        }
7416        pub fn page_size(mut self) -> String {
7417            self.path.push(ListDynamicFieldsRequest::PAGE_SIZE_FIELD.name);
7418            self.finish()
7419        }
7420        pub fn page_token(mut self) -> String {
7421            self.path.push(ListDynamicFieldsRequest::PAGE_TOKEN_FIELD.name);
7422            self.finish()
7423        }
7424        pub fn read_mask(mut self) -> String {
7425            self.path.push(ListDynamicFieldsRequest::READ_MASK_FIELD.name);
7426            self.finish()
7427        }
7428    }
7429    impl ListDynamicFieldsResponse {
7430        pub const DYNAMIC_FIELDS_FIELD: &'static MessageField = &MessageField {
7431            name: "dynamic_fields",
7432            json_name: "dynamicFields",
7433            number: 1i32,
7434            message_fields: Some(DynamicField::FIELDS),
7435        };
7436        pub const NEXT_PAGE_TOKEN_FIELD: &'static MessageField = &MessageField {
7437            name: "next_page_token",
7438            json_name: "nextPageToken",
7439            number: 2i32,
7440            message_fields: None,
7441        };
7442    }
7443    impl MessageFields for ListDynamicFieldsResponse {
7444        const FIELDS: &'static [&'static MessageField] = &[
7445            Self::DYNAMIC_FIELDS_FIELD,
7446            Self::NEXT_PAGE_TOKEN_FIELD,
7447        ];
7448    }
7449    impl ListDynamicFieldsResponse {
7450        pub fn path_builder() -> ListDynamicFieldsResponseFieldPathBuilder {
7451            ListDynamicFieldsResponseFieldPathBuilder::new()
7452        }
7453    }
7454    pub struct ListDynamicFieldsResponseFieldPathBuilder {
7455        path: Vec<&'static str>,
7456    }
7457    impl ListDynamicFieldsResponseFieldPathBuilder {
7458        #[allow(clippy::new_without_default)]
7459        pub fn new() -> Self {
7460            Self { path: Default::default() }
7461        }
7462        #[doc(hidden)]
7463        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7464            Self { path: base }
7465        }
7466        pub fn finish(self) -> String {
7467            self.path.join(".")
7468        }
7469        pub fn dynamic_fields(mut self) -> DynamicFieldFieldPathBuilder {
7470            self.path.push(ListDynamicFieldsResponse::DYNAMIC_FIELDS_FIELD.name);
7471            DynamicFieldFieldPathBuilder::new_with_base(self.path)
7472        }
7473        pub fn next_page_token(mut self) -> String {
7474            self.path.push(ListDynamicFieldsResponse::NEXT_PAGE_TOKEN_FIELD.name);
7475            self.finish()
7476        }
7477    }
7478    impl DynamicField {
7479        pub const KIND_FIELD: &'static MessageField = &MessageField {
7480            name: "kind",
7481            json_name: "kind",
7482            number: 1i32,
7483            message_fields: None,
7484        };
7485        pub const PARENT_FIELD: &'static MessageField = &MessageField {
7486            name: "parent",
7487            json_name: "parent",
7488            number: 2i32,
7489            message_fields: None,
7490        };
7491        pub const FIELD_ID_FIELD: &'static MessageField = &MessageField {
7492            name: "field_id",
7493            json_name: "fieldId",
7494            number: 3i32,
7495            message_fields: None,
7496        };
7497        pub const FIELD_OBJECT_FIELD: &'static MessageField = &MessageField {
7498            name: "field_object",
7499            json_name: "fieldObject",
7500            number: 4i32,
7501            message_fields: Some(Object::FIELDS),
7502        };
7503        pub const NAME_FIELD: &'static MessageField = &MessageField {
7504            name: "name",
7505            json_name: "name",
7506            number: 5i32,
7507            message_fields: Some(Bcs::FIELDS),
7508        };
7509        pub const VALUE_FIELD: &'static MessageField = &MessageField {
7510            name: "value",
7511            json_name: "value",
7512            number: 6i32,
7513            message_fields: Some(Bcs::FIELDS),
7514        };
7515        pub const VALUE_TYPE_FIELD: &'static MessageField = &MessageField {
7516            name: "value_type",
7517            json_name: "valueType",
7518            number: 7i32,
7519            message_fields: None,
7520        };
7521        pub const CHILD_ID_FIELD: &'static MessageField = &MessageField {
7522            name: "child_id",
7523            json_name: "childId",
7524            number: 8i32,
7525            message_fields: None,
7526        };
7527        pub const CHILD_OBJECT_FIELD: &'static MessageField = &MessageField {
7528            name: "child_object",
7529            json_name: "childObject",
7530            number: 9i32,
7531            message_fields: Some(Object::FIELDS),
7532        };
7533    }
7534    impl MessageFields for DynamicField {
7535        const FIELDS: &'static [&'static MessageField] = &[
7536            Self::KIND_FIELD,
7537            Self::PARENT_FIELD,
7538            Self::FIELD_ID_FIELD,
7539            Self::FIELD_OBJECT_FIELD,
7540            Self::NAME_FIELD,
7541            Self::VALUE_FIELD,
7542            Self::VALUE_TYPE_FIELD,
7543            Self::CHILD_ID_FIELD,
7544            Self::CHILD_OBJECT_FIELD,
7545        ];
7546    }
7547    impl DynamicField {
7548        pub fn path_builder() -> DynamicFieldFieldPathBuilder {
7549            DynamicFieldFieldPathBuilder::new()
7550        }
7551    }
7552    pub struct DynamicFieldFieldPathBuilder {
7553        path: Vec<&'static str>,
7554    }
7555    impl DynamicFieldFieldPathBuilder {
7556        #[allow(clippy::new_without_default)]
7557        pub fn new() -> Self {
7558            Self { path: Default::default() }
7559        }
7560        #[doc(hidden)]
7561        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7562            Self { path: base }
7563        }
7564        pub fn finish(self) -> String {
7565            self.path.join(".")
7566        }
7567        pub fn kind(mut self) -> String {
7568            self.path.push(DynamicField::KIND_FIELD.name);
7569            self.finish()
7570        }
7571        pub fn parent(mut self) -> String {
7572            self.path.push(DynamicField::PARENT_FIELD.name);
7573            self.finish()
7574        }
7575        pub fn field_id(mut self) -> String {
7576            self.path.push(DynamicField::FIELD_ID_FIELD.name);
7577            self.finish()
7578        }
7579        pub fn field_object(mut self) -> ObjectFieldPathBuilder {
7580            self.path.push(DynamicField::FIELD_OBJECT_FIELD.name);
7581            ObjectFieldPathBuilder::new_with_base(self.path)
7582        }
7583        pub fn name(mut self) -> BcsFieldPathBuilder {
7584            self.path.push(DynamicField::NAME_FIELD.name);
7585            BcsFieldPathBuilder::new_with_base(self.path)
7586        }
7587        pub fn value(mut self) -> BcsFieldPathBuilder {
7588            self.path.push(DynamicField::VALUE_FIELD.name);
7589            BcsFieldPathBuilder::new_with_base(self.path)
7590        }
7591        pub fn value_type(mut self) -> String {
7592            self.path.push(DynamicField::VALUE_TYPE_FIELD.name);
7593            self.finish()
7594        }
7595        pub fn child_id(mut self) -> String {
7596            self.path.push(DynamicField::CHILD_ID_FIELD.name);
7597            self.finish()
7598        }
7599        pub fn child_object(mut self) -> ObjectFieldPathBuilder {
7600            self.path.push(DynamicField::CHILD_OBJECT_FIELD.name);
7601            ObjectFieldPathBuilder::new_with_base(self.path)
7602        }
7603    }
7604    impl ListOwnedObjectsRequest {
7605        pub const OWNER_FIELD: &'static MessageField = &MessageField {
7606            name: "owner",
7607            json_name: "owner",
7608            number: 1i32,
7609            message_fields: None,
7610        };
7611        pub const PAGE_SIZE_FIELD: &'static MessageField = &MessageField {
7612            name: "page_size",
7613            json_name: "pageSize",
7614            number: 2i32,
7615            message_fields: None,
7616        };
7617        pub const PAGE_TOKEN_FIELD: &'static MessageField = &MessageField {
7618            name: "page_token",
7619            json_name: "pageToken",
7620            number: 3i32,
7621            message_fields: None,
7622        };
7623        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
7624            name: "read_mask",
7625            json_name: "readMask",
7626            number: 4i32,
7627            message_fields: None,
7628        };
7629        pub const OBJECT_TYPE_FIELD: &'static MessageField = &MessageField {
7630            name: "object_type",
7631            json_name: "objectType",
7632            number: 5i32,
7633            message_fields: None,
7634        };
7635    }
7636    impl MessageFields for ListOwnedObjectsRequest {
7637        const FIELDS: &'static [&'static MessageField] = &[
7638            Self::OWNER_FIELD,
7639            Self::PAGE_SIZE_FIELD,
7640            Self::PAGE_TOKEN_FIELD,
7641            Self::READ_MASK_FIELD,
7642            Self::OBJECT_TYPE_FIELD,
7643        ];
7644    }
7645    impl ListOwnedObjectsRequest {
7646        pub fn path_builder() -> ListOwnedObjectsRequestFieldPathBuilder {
7647            ListOwnedObjectsRequestFieldPathBuilder::new()
7648        }
7649    }
7650    pub struct ListOwnedObjectsRequestFieldPathBuilder {
7651        path: Vec<&'static str>,
7652    }
7653    impl ListOwnedObjectsRequestFieldPathBuilder {
7654        #[allow(clippy::new_without_default)]
7655        pub fn new() -> Self {
7656            Self { path: Default::default() }
7657        }
7658        #[doc(hidden)]
7659        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7660            Self { path: base }
7661        }
7662        pub fn finish(self) -> String {
7663            self.path.join(".")
7664        }
7665        pub fn owner(mut self) -> String {
7666            self.path.push(ListOwnedObjectsRequest::OWNER_FIELD.name);
7667            self.finish()
7668        }
7669        pub fn page_size(mut self) -> String {
7670            self.path.push(ListOwnedObjectsRequest::PAGE_SIZE_FIELD.name);
7671            self.finish()
7672        }
7673        pub fn page_token(mut self) -> String {
7674            self.path.push(ListOwnedObjectsRequest::PAGE_TOKEN_FIELD.name);
7675            self.finish()
7676        }
7677        pub fn read_mask(mut self) -> String {
7678            self.path.push(ListOwnedObjectsRequest::READ_MASK_FIELD.name);
7679            self.finish()
7680        }
7681        pub fn object_type(mut self) -> String {
7682            self.path.push(ListOwnedObjectsRequest::OBJECT_TYPE_FIELD.name);
7683            self.finish()
7684        }
7685    }
7686    impl ListOwnedObjectsResponse {
7687        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
7688            name: "objects",
7689            json_name: "objects",
7690            number: 1i32,
7691            message_fields: Some(Object::FIELDS),
7692        };
7693        pub const NEXT_PAGE_TOKEN_FIELD: &'static MessageField = &MessageField {
7694            name: "next_page_token",
7695            json_name: "nextPageToken",
7696            number: 2i32,
7697            message_fields: None,
7698        };
7699    }
7700    impl MessageFields for ListOwnedObjectsResponse {
7701        const FIELDS: &'static [&'static MessageField] = &[
7702            Self::OBJECTS_FIELD,
7703            Self::NEXT_PAGE_TOKEN_FIELD,
7704        ];
7705    }
7706    impl ListOwnedObjectsResponse {
7707        pub fn path_builder() -> ListOwnedObjectsResponseFieldPathBuilder {
7708            ListOwnedObjectsResponseFieldPathBuilder::new()
7709        }
7710    }
7711    pub struct ListOwnedObjectsResponseFieldPathBuilder {
7712        path: Vec<&'static str>,
7713    }
7714    impl ListOwnedObjectsResponseFieldPathBuilder {
7715        #[allow(clippy::new_without_default)]
7716        pub fn new() -> Self {
7717            Self { path: Default::default() }
7718        }
7719        #[doc(hidden)]
7720        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7721            Self { path: base }
7722        }
7723        pub fn finish(self) -> String {
7724            self.path.join(".")
7725        }
7726        pub fn objects(mut self) -> ObjectFieldPathBuilder {
7727            self.path.push(ListOwnedObjectsResponse::OBJECTS_FIELD.name);
7728            ObjectFieldPathBuilder::new_with_base(self.path)
7729        }
7730        pub fn next_page_token(mut self) -> String {
7731            self.path.push(ListOwnedObjectsResponse::NEXT_PAGE_TOKEN_FIELD.name);
7732            self.finish()
7733        }
7734    }
7735    impl SubscribeCheckpointsRequest {
7736        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
7737            name: "read_mask",
7738            json_name: "readMask",
7739            number: 1i32,
7740            message_fields: None,
7741        };
7742    }
7743    impl MessageFields for SubscribeCheckpointsRequest {
7744        const FIELDS: &'static [&'static MessageField] = &[Self::READ_MASK_FIELD];
7745    }
7746    impl SubscribeCheckpointsRequest {
7747        pub fn path_builder() -> SubscribeCheckpointsRequestFieldPathBuilder {
7748            SubscribeCheckpointsRequestFieldPathBuilder::new()
7749        }
7750    }
7751    pub struct SubscribeCheckpointsRequestFieldPathBuilder {
7752        path: Vec<&'static str>,
7753    }
7754    impl SubscribeCheckpointsRequestFieldPathBuilder {
7755        #[allow(clippy::new_without_default)]
7756        pub fn new() -> Self {
7757            Self { path: Default::default() }
7758        }
7759        #[doc(hidden)]
7760        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7761            Self { path: base }
7762        }
7763        pub fn finish(self) -> String {
7764            self.path.join(".")
7765        }
7766        pub fn read_mask(mut self) -> String {
7767            self.path.push(SubscribeCheckpointsRequest::READ_MASK_FIELD.name);
7768            self.finish()
7769        }
7770    }
7771    impl SubscribeCheckpointsResponse {
7772        pub const CURSOR_FIELD: &'static MessageField = &MessageField {
7773            name: "cursor",
7774            json_name: "cursor",
7775            number: 1i32,
7776            message_fields: None,
7777        };
7778        pub const CHECKPOINT_FIELD: &'static MessageField = &MessageField {
7779            name: "checkpoint",
7780            json_name: "checkpoint",
7781            number: 2i32,
7782            message_fields: Some(Checkpoint::FIELDS),
7783        };
7784    }
7785    impl MessageFields for SubscribeCheckpointsResponse {
7786        const FIELDS: &'static [&'static MessageField] = &[
7787            Self::CURSOR_FIELD,
7788            Self::CHECKPOINT_FIELD,
7789        ];
7790    }
7791    impl SubscribeCheckpointsResponse {
7792        pub fn path_builder() -> SubscribeCheckpointsResponseFieldPathBuilder {
7793            SubscribeCheckpointsResponseFieldPathBuilder::new()
7794        }
7795    }
7796    pub struct SubscribeCheckpointsResponseFieldPathBuilder {
7797        path: Vec<&'static str>,
7798    }
7799    impl SubscribeCheckpointsResponseFieldPathBuilder {
7800        #[allow(clippy::new_without_default)]
7801        pub fn new() -> Self {
7802            Self { path: Default::default() }
7803        }
7804        #[doc(hidden)]
7805        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7806            Self { path: base }
7807        }
7808        pub fn finish(self) -> String {
7809            self.path.join(".")
7810        }
7811        pub fn cursor(mut self) -> String {
7812            self.path.push(SubscribeCheckpointsResponse::CURSOR_FIELD.name);
7813            self.finish()
7814        }
7815        pub fn checkpoint(mut self) -> CheckpointFieldPathBuilder {
7816            self.path.push(SubscribeCheckpointsResponse::CHECKPOINT_FIELD.name);
7817            CheckpointFieldPathBuilder::new_with_base(self.path)
7818        }
7819    }
7820    impl SystemState {
7821        pub const VERSION_FIELD: &'static MessageField = &MessageField {
7822            name: "version",
7823            json_name: "version",
7824            number: 1i32,
7825            message_fields: None,
7826        };
7827        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
7828            name: "epoch",
7829            json_name: "epoch",
7830            number: 2i32,
7831            message_fields: None,
7832        };
7833        pub const PROTOCOL_VERSION_FIELD: &'static MessageField = &MessageField {
7834            name: "protocol_version",
7835            json_name: "protocolVersion",
7836            number: 3i32,
7837            message_fields: None,
7838        };
7839        pub const VALIDATORS_FIELD: &'static MessageField = &MessageField {
7840            name: "validators",
7841            json_name: "validators",
7842            number: 4i32,
7843            message_fields: Some(ValidatorSet::FIELDS),
7844        };
7845        pub const STORAGE_FUND_FIELD: &'static MessageField = &MessageField {
7846            name: "storage_fund",
7847            json_name: "storageFund",
7848            number: 5i32,
7849            message_fields: Some(StorageFund::FIELDS),
7850        };
7851        pub const PARAMETERS_FIELD: &'static MessageField = &MessageField {
7852            name: "parameters",
7853            json_name: "parameters",
7854            number: 6i32,
7855            message_fields: Some(SystemParameters::FIELDS),
7856        };
7857        pub const REFERENCE_GAS_PRICE_FIELD: &'static MessageField = &MessageField {
7858            name: "reference_gas_price",
7859            json_name: "referenceGasPrice",
7860            number: 7i32,
7861            message_fields: None,
7862        };
7863        pub const VALIDATOR_REPORT_RECORDS_FIELD: &'static MessageField = &MessageField {
7864            name: "validator_report_records",
7865            json_name: "validatorReportRecords",
7866            number: 8i32,
7867            message_fields: Some(ValidatorReportRecord::FIELDS),
7868        };
7869        pub const STAKE_SUBSIDY_FIELD: &'static MessageField = &MessageField {
7870            name: "stake_subsidy",
7871            json_name: "stakeSubsidy",
7872            number: 9i32,
7873            message_fields: Some(StakeSubsidy::FIELDS),
7874        };
7875        pub const SAFE_MODE_FIELD: &'static MessageField = &MessageField {
7876            name: "safe_mode",
7877            json_name: "safeMode",
7878            number: 10i32,
7879            message_fields: None,
7880        };
7881        pub const SAFE_MODE_STORAGE_REWARDS_FIELD: &'static MessageField = &MessageField {
7882            name: "safe_mode_storage_rewards",
7883            json_name: "safeModeStorageRewards",
7884            number: 11i32,
7885            message_fields: None,
7886        };
7887        pub const SAFE_MODE_COMPUTATION_REWARDS_FIELD: &'static MessageField = &MessageField {
7888            name: "safe_mode_computation_rewards",
7889            json_name: "safeModeComputationRewards",
7890            number: 12i32,
7891            message_fields: None,
7892        };
7893        pub const SAFE_MODE_STORAGE_REBATES_FIELD: &'static MessageField = &MessageField {
7894            name: "safe_mode_storage_rebates",
7895            json_name: "safeModeStorageRebates",
7896            number: 13i32,
7897            message_fields: None,
7898        };
7899        pub const SAFE_MODE_NON_REFUNDABLE_STORAGE_FEE_FIELD: &'static MessageField = &MessageField {
7900            name: "safe_mode_non_refundable_storage_fee",
7901            json_name: "safeModeNonRefundableStorageFee",
7902            number: 14i32,
7903            message_fields: None,
7904        };
7905        pub const EPOCH_START_TIMESTAMP_MS_FIELD: &'static MessageField = &MessageField {
7906            name: "epoch_start_timestamp_ms",
7907            json_name: "epochStartTimestampMs",
7908            number: 15i32,
7909            message_fields: None,
7910        };
7911        pub const EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
7912            name: "extra_fields",
7913            json_name: "extraFields",
7914            number: 16i32,
7915            message_fields: Some(MoveTable::FIELDS),
7916        };
7917    }
7918    impl MessageFields for SystemState {
7919        const FIELDS: &'static [&'static MessageField] = &[
7920            Self::VERSION_FIELD,
7921            Self::EPOCH_FIELD,
7922            Self::PROTOCOL_VERSION_FIELD,
7923            Self::VALIDATORS_FIELD,
7924            Self::STORAGE_FUND_FIELD,
7925            Self::PARAMETERS_FIELD,
7926            Self::REFERENCE_GAS_PRICE_FIELD,
7927            Self::VALIDATOR_REPORT_RECORDS_FIELD,
7928            Self::STAKE_SUBSIDY_FIELD,
7929            Self::SAFE_MODE_FIELD,
7930            Self::SAFE_MODE_STORAGE_REWARDS_FIELD,
7931            Self::SAFE_MODE_COMPUTATION_REWARDS_FIELD,
7932            Self::SAFE_MODE_STORAGE_REBATES_FIELD,
7933            Self::SAFE_MODE_NON_REFUNDABLE_STORAGE_FEE_FIELD,
7934            Self::EPOCH_START_TIMESTAMP_MS_FIELD,
7935            Self::EXTRA_FIELDS_FIELD,
7936        ];
7937    }
7938    impl SystemState {
7939        pub fn path_builder() -> SystemStateFieldPathBuilder {
7940            SystemStateFieldPathBuilder::new()
7941        }
7942    }
7943    pub struct SystemStateFieldPathBuilder {
7944        path: Vec<&'static str>,
7945    }
7946    impl SystemStateFieldPathBuilder {
7947        #[allow(clippy::new_without_default)]
7948        pub fn new() -> Self {
7949            Self { path: Default::default() }
7950        }
7951        #[doc(hidden)]
7952        pub fn new_with_base(base: Vec<&'static str>) -> Self {
7953            Self { path: base }
7954        }
7955        pub fn finish(self) -> String {
7956            self.path.join(".")
7957        }
7958        pub fn version(mut self) -> String {
7959            self.path.push(SystemState::VERSION_FIELD.name);
7960            self.finish()
7961        }
7962        pub fn epoch(mut self) -> String {
7963            self.path.push(SystemState::EPOCH_FIELD.name);
7964            self.finish()
7965        }
7966        pub fn protocol_version(mut self) -> String {
7967            self.path.push(SystemState::PROTOCOL_VERSION_FIELD.name);
7968            self.finish()
7969        }
7970        pub fn validators(mut self) -> ValidatorSetFieldPathBuilder {
7971            self.path.push(SystemState::VALIDATORS_FIELD.name);
7972            ValidatorSetFieldPathBuilder::new_with_base(self.path)
7973        }
7974        pub fn storage_fund(mut self) -> StorageFundFieldPathBuilder {
7975            self.path.push(SystemState::STORAGE_FUND_FIELD.name);
7976            StorageFundFieldPathBuilder::new_with_base(self.path)
7977        }
7978        pub fn parameters(mut self) -> SystemParametersFieldPathBuilder {
7979            self.path.push(SystemState::PARAMETERS_FIELD.name);
7980            SystemParametersFieldPathBuilder::new_with_base(self.path)
7981        }
7982        pub fn reference_gas_price(mut self) -> String {
7983            self.path.push(SystemState::REFERENCE_GAS_PRICE_FIELD.name);
7984            self.finish()
7985        }
7986        pub fn validator_report_records(
7987            mut self,
7988        ) -> ValidatorReportRecordFieldPathBuilder {
7989            self.path.push(SystemState::VALIDATOR_REPORT_RECORDS_FIELD.name);
7990            ValidatorReportRecordFieldPathBuilder::new_with_base(self.path)
7991        }
7992        pub fn stake_subsidy(mut self) -> StakeSubsidyFieldPathBuilder {
7993            self.path.push(SystemState::STAKE_SUBSIDY_FIELD.name);
7994            StakeSubsidyFieldPathBuilder::new_with_base(self.path)
7995        }
7996        pub fn safe_mode(mut self) -> String {
7997            self.path.push(SystemState::SAFE_MODE_FIELD.name);
7998            self.finish()
7999        }
8000        pub fn safe_mode_storage_rewards(mut self) -> String {
8001            self.path.push(SystemState::SAFE_MODE_STORAGE_REWARDS_FIELD.name);
8002            self.finish()
8003        }
8004        pub fn safe_mode_computation_rewards(mut self) -> String {
8005            self.path.push(SystemState::SAFE_MODE_COMPUTATION_REWARDS_FIELD.name);
8006            self.finish()
8007        }
8008        pub fn safe_mode_storage_rebates(mut self) -> String {
8009            self.path.push(SystemState::SAFE_MODE_STORAGE_REBATES_FIELD.name);
8010            self.finish()
8011        }
8012        pub fn safe_mode_non_refundable_storage_fee(mut self) -> String {
8013            self.path.push(SystemState::SAFE_MODE_NON_REFUNDABLE_STORAGE_FEE_FIELD.name);
8014            self.finish()
8015        }
8016        pub fn epoch_start_timestamp_ms(mut self) -> String {
8017            self.path.push(SystemState::EPOCH_START_TIMESTAMP_MS_FIELD.name);
8018            self.finish()
8019        }
8020        pub fn extra_fields(mut self) -> MoveTableFieldPathBuilder {
8021            self.path.push(SystemState::EXTRA_FIELDS_FIELD.name);
8022            MoveTableFieldPathBuilder::new_with_base(self.path)
8023        }
8024    }
8025    impl ValidatorReportRecord {
8026        pub const REPORTED_FIELD: &'static MessageField = &MessageField {
8027            name: "reported",
8028            json_name: "reported",
8029            number: 1i32,
8030            message_fields: None,
8031        };
8032        pub const REPORTERS_FIELD: &'static MessageField = &MessageField {
8033            name: "reporters",
8034            json_name: "reporters",
8035            number: 2i32,
8036            message_fields: None,
8037        };
8038    }
8039    impl MessageFields for ValidatorReportRecord {
8040        const FIELDS: &'static [&'static MessageField] = &[
8041            Self::REPORTED_FIELD,
8042            Self::REPORTERS_FIELD,
8043        ];
8044    }
8045    impl ValidatorReportRecord {
8046        pub fn path_builder() -> ValidatorReportRecordFieldPathBuilder {
8047            ValidatorReportRecordFieldPathBuilder::new()
8048        }
8049    }
8050    pub struct ValidatorReportRecordFieldPathBuilder {
8051        path: Vec<&'static str>,
8052    }
8053    impl ValidatorReportRecordFieldPathBuilder {
8054        #[allow(clippy::new_without_default)]
8055        pub fn new() -> Self {
8056            Self { path: Default::default() }
8057        }
8058        #[doc(hidden)]
8059        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8060            Self { path: base }
8061        }
8062        pub fn finish(self) -> String {
8063            self.path.join(".")
8064        }
8065        pub fn reported(mut self) -> String {
8066            self.path.push(ValidatorReportRecord::REPORTED_FIELD.name);
8067            self.finish()
8068        }
8069        pub fn reporters(mut self) -> String {
8070            self.path.push(ValidatorReportRecord::REPORTERS_FIELD.name);
8071            self.finish()
8072        }
8073    }
8074    impl SystemParameters {
8075        pub const EPOCH_DURATION_MS_FIELD: &'static MessageField = &MessageField {
8076            name: "epoch_duration_ms",
8077            json_name: "epochDurationMs",
8078            number: 1i32,
8079            message_fields: None,
8080        };
8081        pub const STAKE_SUBSIDY_START_EPOCH_FIELD: &'static MessageField = &MessageField {
8082            name: "stake_subsidy_start_epoch",
8083            json_name: "stakeSubsidyStartEpoch",
8084            number: 2i32,
8085            message_fields: None,
8086        };
8087        pub const MIN_VALIDATOR_COUNT_FIELD: &'static MessageField = &MessageField {
8088            name: "min_validator_count",
8089            json_name: "minValidatorCount",
8090            number: 3i32,
8091            message_fields: None,
8092        };
8093        pub const MAX_VALIDATOR_COUNT_FIELD: &'static MessageField = &MessageField {
8094            name: "max_validator_count",
8095            json_name: "maxValidatorCount",
8096            number: 4i32,
8097            message_fields: None,
8098        };
8099        pub const MIN_VALIDATOR_JOINING_STAKE_FIELD: &'static MessageField = &MessageField {
8100            name: "min_validator_joining_stake",
8101            json_name: "minValidatorJoiningStake",
8102            number: 5i32,
8103            message_fields: None,
8104        };
8105        pub const VALIDATOR_LOW_STAKE_THRESHOLD_FIELD: &'static MessageField = &MessageField {
8106            name: "validator_low_stake_threshold",
8107            json_name: "validatorLowStakeThreshold",
8108            number: 6i32,
8109            message_fields: None,
8110        };
8111        pub const VALIDATOR_VERY_LOW_STAKE_THRESHOLD_FIELD: &'static MessageField = &MessageField {
8112            name: "validator_very_low_stake_threshold",
8113            json_name: "validatorVeryLowStakeThreshold",
8114            number: 7i32,
8115            message_fields: None,
8116        };
8117        pub const VALIDATOR_LOW_STAKE_GRACE_PERIOD_FIELD: &'static MessageField = &MessageField {
8118            name: "validator_low_stake_grace_period",
8119            json_name: "validatorLowStakeGracePeriod",
8120            number: 8i32,
8121            message_fields: None,
8122        };
8123        pub const EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
8124            name: "extra_fields",
8125            json_name: "extraFields",
8126            number: 9i32,
8127            message_fields: Some(MoveTable::FIELDS),
8128        };
8129    }
8130    impl MessageFields for SystemParameters {
8131        const FIELDS: &'static [&'static MessageField] = &[
8132            Self::EPOCH_DURATION_MS_FIELD,
8133            Self::STAKE_SUBSIDY_START_EPOCH_FIELD,
8134            Self::MIN_VALIDATOR_COUNT_FIELD,
8135            Self::MAX_VALIDATOR_COUNT_FIELD,
8136            Self::MIN_VALIDATOR_JOINING_STAKE_FIELD,
8137            Self::VALIDATOR_LOW_STAKE_THRESHOLD_FIELD,
8138            Self::VALIDATOR_VERY_LOW_STAKE_THRESHOLD_FIELD,
8139            Self::VALIDATOR_LOW_STAKE_GRACE_PERIOD_FIELD,
8140            Self::EXTRA_FIELDS_FIELD,
8141        ];
8142    }
8143    impl SystemParameters {
8144        pub fn path_builder() -> SystemParametersFieldPathBuilder {
8145            SystemParametersFieldPathBuilder::new()
8146        }
8147    }
8148    pub struct SystemParametersFieldPathBuilder {
8149        path: Vec<&'static str>,
8150    }
8151    impl SystemParametersFieldPathBuilder {
8152        #[allow(clippy::new_without_default)]
8153        pub fn new() -> Self {
8154            Self { path: Default::default() }
8155        }
8156        #[doc(hidden)]
8157        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8158            Self { path: base }
8159        }
8160        pub fn finish(self) -> String {
8161            self.path.join(".")
8162        }
8163        pub fn epoch_duration_ms(mut self) -> String {
8164            self.path.push(SystemParameters::EPOCH_DURATION_MS_FIELD.name);
8165            self.finish()
8166        }
8167        pub fn stake_subsidy_start_epoch(mut self) -> String {
8168            self.path.push(SystemParameters::STAKE_SUBSIDY_START_EPOCH_FIELD.name);
8169            self.finish()
8170        }
8171        pub fn min_validator_count(mut self) -> String {
8172            self.path.push(SystemParameters::MIN_VALIDATOR_COUNT_FIELD.name);
8173            self.finish()
8174        }
8175        pub fn max_validator_count(mut self) -> String {
8176            self.path.push(SystemParameters::MAX_VALIDATOR_COUNT_FIELD.name);
8177            self.finish()
8178        }
8179        pub fn min_validator_joining_stake(mut self) -> String {
8180            self.path.push(SystemParameters::MIN_VALIDATOR_JOINING_STAKE_FIELD.name);
8181            self.finish()
8182        }
8183        pub fn validator_low_stake_threshold(mut self) -> String {
8184            self.path.push(SystemParameters::VALIDATOR_LOW_STAKE_THRESHOLD_FIELD.name);
8185            self.finish()
8186        }
8187        pub fn validator_very_low_stake_threshold(mut self) -> String {
8188            self.path
8189                .push(SystemParameters::VALIDATOR_VERY_LOW_STAKE_THRESHOLD_FIELD.name);
8190            self.finish()
8191        }
8192        pub fn validator_low_stake_grace_period(mut self) -> String {
8193            self.path
8194                .push(SystemParameters::VALIDATOR_LOW_STAKE_GRACE_PERIOD_FIELD.name);
8195            self.finish()
8196        }
8197        pub fn extra_fields(mut self) -> MoveTableFieldPathBuilder {
8198            self.path.push(SystemParameters::EXTRA_FIELDS_FIELD.name);
8199            MoveTableFieldPathBuilder::new_with_base(self.path)
8200        }
8201    }
8202    impl MoveTable {
8203        pub const ID_FIELD: &'static MessageField = &MessageField {
8204            name: "id",
8205            json_name: "id",
8206            number: 1i32,
8207            message_fields: None,
8208        };
8209        pub const SIZE_FIELD: &'static MessageField = &MessageField {
8210            name: "size",
8211            json_name: "size",
8212            number: 2i32,
8213            message_fields: None,
8214        };
8215    }
8216    impl MessageFields for MoveTable {
8217        const FIELDS: &'static [&'static MessageField] = &[
8218            Self::ID_FIELD,
8219            Self::SIZE_FIELD,
8220        ];
8221    }
8222    impl MoveTable {
8223        pub fn path_builder() -> MoveTableFieldPathBuilder {
8224            MoveTableFieldPathBuilder::new()
8225        }
8226    }
8227    pub struct MoveTableFieldPathBuilder {
8228        path: Vec<&'static str>,
8229    }
8230    impl MoveTableFieldPathBuilder {
8231        #[allow(clippy::new_without_default)]
8232        pub fn new() -> Self {
8233            Self { path: Default::default() }
8234        }
8235        #[doc(hidden)]
8236        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8237            Self { path: base }
8238        }
8239        pub fn finish(self) -> String {
8240            self.path.join(".")
8241        }
8242        pub fn id(mut self) -> String {
8243            self.path.push(MoveTable::ID_FIELD.name);
8244            self.finish()
8245        }
8246        pub fn size(mut self) -> String {
8247            self.path.push(MoveTable::SIZE_FIELD.name);
8248            self.finish()
8249        }
8250    }
8251    impl StakeSubsidy {
8252        pub const BALANCE_FIELD: &'static MessageField = &MessageField {
8253            name: "balance",
8254            json_name: "balance",
8255            number: 1i32,
8256            message_fields: None,
8257        };
8258        pub const DISTRIBUTION_COUNTER_FIELD: &'static MessageField = &MessageField {
8259            name: "distribution_counter",
8260            json_name: "distributionCounter",
8261            number: 2i32,
8262            message_fields: None,
8263        };
8264        pub const CURRENT_DISTRIBUTION_AMOUNT_FIELD: &'static MessageField = &MessageField {
8265            name: "current_distribution_amount",
8266            json_name: "currentDistributionAmount",
8267            number: 3i32,
8268            message_fields: None,
8269        };
8270        pub const STAKE_SUBSIDY_PERIOD_LENGTH_FIELD: &'static MessageField = &MessageField {
8271            name: "stake_subsidy_period_length",
8272            json_name: "stakeSubsidyPeriodLength",
8273            number: 4i32,
8274            message_fields: None,
8275        };
8276        pub const STAKE_SUBSIDY_DECREASE_RATE_FIELD: &'static MessageField = &MessageField {
8277            name: "stake_subsidy_decrease_rate",
8278            json_name: "stakeSubsidyDecreaseRate",
8279            number: 5i32,
8280            message_fields: None,
8281        };
8282        pub const EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
8283            name: "extra_fields",
8284            json_name: "extraFields",
8285            number: 6i32,
8286            message_fields: Some(MoveTable::FIELDS),
8287        };
8288    }
8289    impl MessageFields for StakeSubsidy {
8290        const FIELDS: &'static [&'static MessageField] = &[
8291            Self::BALANCE_FIELD,
8292            Self::DISTRIBUTION_COUNTER_FIELD,
8293            Self::CURRENT_DISTRIBUTION_AMOUNT_FIELD,
8294            Self::STAKE_SUBSIDY_PERIOD_LENGTH_FIELD,
8295            Self::STAKE_SUBSIDY_DECREASE_RATE_FIELD,
8296            Self::EXTRA_FIELDS_FIELD,
8297        ];
8298    }
8299    impl StakeSubsidy {
8300        pub fn path_builder() -> StakeSubsidyFieldPathBuilder {
8301            StakeSubsidyFieldPathBuilder::new()
8302        }
8303    }
8304    pub struct StakeSubsidyFieldPathBuilder {
8305        path: Vec<&'static str>,
8306    }
8307    impl StakeSubsidyFieldPathBuilder {
8308        #[allow(clippy::new_without_default)]
8309        pub fn new() -> Self {
8310            Self { path: Default::default() }
8311        }
8312        #[doc(hidden)]
8313        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8314            Self { path: base }
8315        }
8316        pub fn finish(self) -> String {
8317            self.path.join(".")
8318        }
8319        pub fn balance(mut self) -> String {
8320            self.path.push(StakeSubsidy::BALANCE_FIELD.name);
8321            self.finish()
8322        }
8323        pub fn distribution_counter(mut self) -> String {
8324            self.path.push(StakeSubsidy::DISTRIBUTION_COUNTER_FIELD.name);
8325            self.finish()
8326        }
8327        pub fn current_distribution_amount(mut self) -> String {
8328            self.path.push(StakeSubsidy::CURRENT_DISTRIBUTION_AMOUNT_FIELD.name);
8329            self.finish()
8330        }
8331        pub fn stake_subsidy_period_length(mut self) -> String {
8332            self.path.push(StakeSubsidy::STAKE_SUBSIDY_PERIOD_LENGTH_FIELD.name);
8333            self.finish()
8334        }
8335        pub fn stake_subsidy_decrease_rate(mut self) -> String {
8336            self.path.push(StakeSubsidy::STAKE_SUBSIDY_DECREASE_RATE_FIELD.name);
8337            self.finish()
8338        }
8339        pub fn extra_fields(mut self) -> MoveTableFieldPathBuilder {
8340            self.path.push(StakeSubsidy::EXTRA_FIELDS_FIELD.name);
8341            MoveTableFieldPathBuilder::new_with_base(self.path)
8342        }
8343    }
8344    impl StorageFund {
8345        pub const TOTAL_OBJECT_STORAGE_REBATES_FIELD: &'static MessageField = &MessageField {
8346            name: "total_object_storage_rebates",
8347            json_name: "totalObjectStorageRebates",
8348            number: 1i32,
8349            message_fields: None,
8350        };
8351        pub const NON_REFUNDABLE_BALANCE_FIELD: &'static MessageField = &MessageField {
8352            name: "non_refundable_balance",
8353            json_name: "nonRefundableBalance",
8354            number: 2i32,
8355            message_fields: None,
8356        };
8357    }
8358    impl MessageFields for StorageFund {
8359        const FIELDS: &'static [&'static MessageField] = &[
8360            Self::TOTAL_OBJECT_STORAGE_REBATES_FIELD,
8361            Self::NON_REFUNDABLE_BALANCE_FIELD,
8362        ];
8363    }
8364    impl StorageFund {
8365        pub fn path_builder() -> StorageFundFieldPathBuilder {
8366            StorageFundFieldPathBuilder::new()
8367        }
8368    }
8369    pub struct StorageFundFieldPathBuilder {
8370        path: Vec<&'static str>,
8371    }
8372    impl StorageFundFieldPathBuilder {
8373        #[allow(clippy::new_without_default)]
8374        pub fn new() -> Self {
8375            Self { path: Default::default() }
8376        }
8377        #[doc(hidden)]
8378        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8379            Self { path: base }
8380        }
8381        pub fn finish(self) -> String {
8382            self.path.join(".")
8383        }
8384        pub fn total_object_storage_rebates(mut self) -> String {
8385            self.path.push(StorageFund::TOTAL_OBJECT_STORAGE_REBATES_FIELD.name);
8386            self.finish()
8387        }
8388        pub fn non_refundable_balance(mut self) -> String {
8389            self.path.push(StorageFund::NON_REFUNDABLE_BALANCE_FIELD.name);
8390            self.finish()
8391        }
8392    }
8393    impl ValidatorSet {
8394        pub const TOTAL_STAKE_FIELD: &'static MessageField = &MessageField {
8395            name: "total_stake",
8396            json_name: "totalStake",
8397            number: 1i32,
8398            message_fields: None,
8399        };
8400        pub const ACTIVE_VALIDATORS_FIELD: &'static MessageField = &MessageField {
8401            name: "active_validators",
8402            json_name: "activeValidators",
8403            number: 2i32,
8404            message_fields: Some(Validator::FIELDS),
8405        };
8406        pub const PENDING_ACTIVE_VALIDATORS_FIELD: &'static MessageField = &MessageField {
8407            name: "pending_active_validators",
8408            json_name: "pendingActiveValidators",
8409            number: 3i32,
8410            message_fields: Some(MoveTable::FIELDS),
8411        };
8412        pub const PENDING_REMOVALS_FIELD: &'static MessageField = &MessageField {
8413            name: "pending_removals",
8414            json_name: "pendingRemovals",
8415            number: 4i32,
8416            message_fields: None,
8417        };
8418        pub const STAKING_POOL_MAPPINGS_FIELD: &'static MessageField = &MessageField {
8419            name: "staking_pool_mappings",
8420            json_name: "stakingPoolMappings",
8421            number: 5i32,
8422            message_fields: Some(MoveTable::FIELDS),
8423        };
8424        pub const INACTIVE_VALIDATORS_FIELD: &'static MessageField = &MessageField {
8425            name: "inactive_validators",
8426            json_name: "inactiveValidators",
8427            number: 6i32,
8428            message_fields: Some(MoveTable::FIELDS),
8429        };
8430        pub const VALIDATOR_CANDIDATES_FIELD: &'static MessageField = &MessageField {
8431            name: "validator_candidates",
8432            json_name: "validatorCandidates",
8433            number: 7i32,
8434            message_fields: Some(MoveTable::FIELDS),
8435        };
8436        pub const AT_RISK_VALIDATORS_FIELD: &'static MessageField = &MessageField {
8437            name: "at_risk_validators",
8438            json_name: "atRiskValidators",
8439            number: 8i32,
8440            message_fields: None,
8441        };
8442        pub const EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
8443            name: "extra_fields",
8444            json_name: "extraFields",
8445            number: 9i32,
8446            message_fields: Some(MoveTable::FIELDS),
8447        };
8448    }
8449    impl MessageFields for ValidatorSet {
8450        const FIELDS: &'static [&'static MessageField] = &[
8451            Self::TOTAL_STAKE_FIELD,
8452            Self::ACTIVE_VALIDATORS_FIELD,
8453            Self::PENDING_ACTIVE_VALIDATORS_FIELD,
8454            Self::PENDING_REMOVALS_FIELD,
8455            Self::STAKING_POOL_MAPPINGS_FIELD,
8456            Self::INACTIVE_VALIDATORS_FIELD,
8457            Self::VALIDATOR_CANDIDATES_FIELD,
8458            Self::AT_RISK_VALIDATORS_FIELD,
8459            Self::EXTRA_FIELDS_FIELD,
8460        ];
8461    }
8462    impl ValidatorSet {
8463        pub fn path_builder() -> ValidatorSetFieldPathBuilder {
8464            ValidatorSetFieldPathBuilder::new()
8465        }
8466    }
8467    pub struct ValidatorSetFieldPathBuilder {
8468        path: Vec<&'static str>,
8469    }
8470    impl ValidatorSetFieldPathBuilder {
8471        #[allow(clippy::new_without_default)]
8472        pub fn new() -> Self {
8473            Self { path: Default::default() }
8474        }
8475        #[doc(hidden)]
8476        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8477            Self { path: base }
8478        }
8479        pub fn finish(self) -> String {
8480            self.path.join(".")
8481        }
8482        pub fn total_stake(mut self) -> String {
8483            self.path.push(ValidatorSet::TOTAL_STAKE_FIELD.name);
8484            self.finish()
8485        }
8486        pub fn active_validators(mut self) -> ValidatorFieldPathBuilder {
8487            self.path.push(ValidatorSet::ACTIVE_VALIDATORS_FIELD.name);
8488            ValidatorFieldPathBuilder::new_with_base(self.path)
8489        }
8490        pub fn pending_active_validators(mut self) -> MoveTableFieldPathBuilder {
8491            self.path.push(ValidatorSet::PENDING_ACTIVE_VALIDATORS_FIELD.name);
8492            MoveTableFieldPathBuilder::new_with_base(self.path)
8493        }
8494        pub fn pending_removals(mut self) -> String {
8495            self.path.push(ValidatorSet::PENDING_REMOVALS_FIELD.name);
8496            self.finish()
8497        }
8498        pub fn staking_pool_mappings(mut self) -> MoveTableFieldPathBuilder {
8499            self.path.push(ValidatorSet::STAKING_POOL_MAPPINGS_FIELD.name);
8500            MoveTableFieldPathBuilder::new_with_base(self.path)
8501        }
8502        pub fn inactive_validators(mut self) -> MoveTableFieldPathBuilder {
8503            self.path.push(ValidatorSet::INACTIVE_VALIDATORS_FIELD.name);
8504            MoveTableFieldPathBuilder::new_with_base(self.path)
8505        }
8506        pub fn validator_candidates(mut self) -> MoveTableFieldPathBuilder {
8507            self.path.push(ValidatorSet::VALIDATOR_CANDIDATES_FIELD.name);
8508            MoveTableFieldPathBuilder::new_with_base(self.path)
8509        }
8510        pub fn at_risk_validators(mut self) -> String {
8511            self.path.push(ValidatorSet::AT_RISK_VALIDATORS_FIELD.name);
8512            self.finish()
8513        }
8514        pub fn extra_fields(mut self) -> MoveTableFieldPathBuilder {
8515            self.path.push(ValidatorSet::EXTRA_FIELDS_FIELD.name);
8516            MoveTableFieldPathBuilder::new_with_base(self.path)
8517        }
8518    }
8519    impl Validator {
8520        pub const NAME_FIELD: &'static MessageField = &MessageField {
8521            name: "name",
8522            json_name: "name",
8523            number: 1i32,
8524            message_fields: None,
8525        };
8526        pub const ADDRESS_FIELD: &'static MessageField = &MessageField {
8527            name: "address",
8528            json_name: "address",
8529            number: 2i32,
8530            message_fields: None,
8531        };
8532        pub const DESCRIPTION_FIELD: &'static MessageField = &MessageField {
8533            name: "description",
8534            json_name: "description",
8535            number: 3i32,
8536            message_fields: None,
8537        };
8538        pub const IMAGE_URL_FIELD: &'static MessageField = &MessageField {
8539            name: "image_url",
8540            json_name: "imageUrl",
8541            number: 4i32,
8542            message_fields: None,
8543        };
8544        pub const PROJECT_URL_FIELD: &'static MessageField = &MessageField {
8545            name: "project_url",
8546            json_name: "projectUrl",
8547            number: 5i32,
8548            message_fields: None,
8549        };
8550        pub const PROTOCOL_PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
8551            name: "protocol_public_key",
8552            json_name: "protocolPublicKey",
8553            number: 7i32,
8554            message_fields: None,
8555        };
8556        pub const PROOF_OF_POSSESSION_FIELD: &'static MessageField = &MessageField {
8557            name: "proof_of_possession",
8558            json_name: "proofOfPossession",
8559            number: 8i32,
8560            message_fields: None,
8561        };
8562        pub const NETWORK_PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
8563            name: "network_public_key",
8564            json_name: "networkPublicKey",
8565            number: 10i32,
8566            message_fields: None,
8567        };
8568        pub const WORKER_PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
8569            name: "worker_public_key",
8570            json_name: "workerPublicKey",
8571            number: 12i32,
8572            message_fields: None,
8573        };
8574        pub const NETWORK_ADDRESS_FIELD: &'static MessageField = &MessageField {
8575            name: "network_address",
8576            json_name: "networkAddress",
8577            number: 13i32,
8578            message_fields: None,
8579        };
8580        pub const P2P_ADDRESS_FIELD: &'static MessageField = &MessageField {
8581            name: "p2p_address",
8582            json_name: "p2pAddress",
8583            number: 14i32,
8584            message_fields: None,
8585        };
8586        pub const PRIMARY_ADDRESS_FIELD: &'static MessageField = &MessageField {
8587            name: "primary_address",
8588            json_name: "primaryAddress",
8589            number: 15i32,
8590            message_fields: None,
8591        };
8592        pub const WORKER_ADDRESS_FIELD: &'static MessageField = &MessageField {
8593            name: "worker_address",
8594            json_name: "workerAddress",
8595            number: 16i32,
8596            message_fields: None,
8597        };
8598        pub const NEXT_EPOCH_PROTOCOL_PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
8599            name: "next_epoch_protocol_public_key",
8600            json_name: "nextEpochProtocolPublicKey",
8601            number: 18i32,
8602            message_fields: None,
8603        };
8604        pub const NEXT_EPOCH_PROOF_OF_POSSESSION_FIELD: &'static MessageField = &MessageField {
8605            name: "next_epoch_proof_of_possession",
8606            json_name: "nextEpochProofOfPossession",
8607            number: 19i32,
8608            message_fields: None,
8609        };
8610        pub const NEXT_EPOCH_NETWORK_PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
8611            name: "next_epoch_network_public_key",
8612            json_name: "nextEpochNetworkPublicKey",
8613            number: 21i32,
8614            message_fields: None,
8615        };
8616        pub const NEXT_EPOCH_WORKER_PUBLIC_KEY_FIELD: &'static MessageField = &MessageField {
8617            name: "next_epoch_worker_public_key",
8618            json_name: "nextEpochWorkerPublicKey",
8619            number: 23i32,
8620            message_fields: None,
8621        };
8622        pub const NEXT_EPOCH_NETWORK_ADDRESS_FIELD: &'static MessageField = &MessageField {
8623            name: "next_epoch_network_address",
8624            json_name: "nextEpochNetworkAddress",
8625            number: 24i32,
8626            message_fields: None,
8627        };
8628        pub const NEXT_EPOCH_P2P_ADDRESS_FIELD: &'static MessageField = &MessageField {
8629            name: "next_epoch_p2p_address",
8630            json_name: "nextEpochP2pAddress",
8631            number: 25i32,
8632            message_fields: None,
8633        };
8634        pub const NEXT_EPOCH_PRIMARY_ADDRESS_FIELD: &'static MessageField = &MessageField {
8635            name: "next_epoch_primary_address",
8636            json_name: "nextEpochPrimaryAddress",
8637            number: 26i32,
8638            message_fields: None,
8639        };
8640        pub const NEXT_EPOCH_WORKER_ADDRESS_FIELD: &'static MessageField = &MessageField {
8641            name: "next_epoch_worker_address",
8642            json_name: "nextEpochWorkerAddress",
8643            number: 27i32,
8644            message_fields: None,
8645        };
8646        pub const METADATA_EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
8647            name: "metadata_extra_fields",
8648            json_name: "metadataExtraFields",
8649            number: 28i32,
8650            message_fields: Some(MoveTable::FIELDS),
8651        };
8652        pub const VOTING_POWER_FIELD: &'static MessageField = &MessageField {
8653            name: "voting_power",
8654            json_name: "votingPower",
8655            number: 29i32,
8656            message_fields: None,
8657        };
8658        pub const OPERATION_CAP_ID_FIELD: &'static MessageField = &MessageField {
8659            name: "operation_cap_id",
8660            json_name: "operationCapId",
8661            number: 30i32,
8662            message_fields: None,
8663        };
8664        pub const GAS_PRICE_FIELD: &'static MessageField = &MessageField {
8665            name: "gas_price",
8666            json_name: "gasPrice",
8667            number: 31i32,
8668            message_fields: None,
8669        };
8670        pub const STAKING_POOL_FIELD: &'static MessageField = &MessageField {
8671            name: "staking_pool",
8672            json_name: "stakingPool",
8673            number: 32i32,
8674            message_fields: Some(StakingPool::FIELDS),
8675        };
8676        pub const COMMISSION_RATE_FIELD: &'static MessageField = &MessageField {
8677            name: "commission_rate",
8678            json_name: "commissionRate",
8679            number: 33i32,
8680            message_fields: None,
8681        };
8682        pub const NEXT_EPOCH_STAKE_FIELD: &'static MessageField = &MessageField {
8683            name: "next_epoch_stake",
8684            json_name: "nextEpochStake",
8685            number: 34i32,
8686            message_fields: None,
8687        };
8688        pub const NEXT_EPOCH_GAS_PRICE_FIELD: &'static MessageField = &MessageField {
8689            name: "next_epoch_gas_price",
8690            json_name: "nextEpochGasPrice",
8691            number: 35i32,
8692            message_fields: None,
8693        };
8694        pub const NEXT_EPOCH_COMMISSION_RATE_FIELD: &'static MessageField = &MessageField {
8695            name: "next_epoch_commission_rate",
8696            json_name: "nextEpochCommissionRate",
8697            number: 36i32,
8698            message_fields: None,
8699        };
8700        pub const EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
8701            name: "extra_fields",
8702            json_name: "extraFields",
8703            number: 37i32,
8704            message_fields: Some(MoveTable::FIELDS),
8705        };
8706    }
8707    impl MessageFields for Validator {
8708        const FIELDS: &'static [&'static MessageField] = &[
8709            Self::NAME_FIELD,
8710            Self::ADDRESS_FIELD,
8711            Self::DESCRIPTION_FIELD,
8712            Self::IMAGE_URL_FIELD,
8713            Self::PROJECT_URL_FIELD,
8714            Self::PROTOCOL_PUBLIC_KEY_FIELD,
8715            Self::PROOF_OF_POSSESSION_FIELD,
8716            Self::NETWORK_PUBLIC_KEY_FIELD,
8717            Self::WORKER_PUBLIC_KEY_FIELD,
8718            Self::NETWORK_ADDRESS_FIELD,
8719            Self::P2P_ADDRESS_FIELD,
8720            Self::PRIMARY_ADDRESS_FIELD,
8721            Self::WORKER_ADDRESS_FIELD,
8722            Self::NEXT_EPOCH_PROTOCOL_PUBLIC_KEY_FIELD,
8723            Self::NEXT_EPOCH_PROOF_OF_POSSESSION_FIELD,
8724            Self::NEXT_EPOCH_NETWORK_PUBLIC_KEY_FIELD,
8725            Self::NEXT_EPOCH_WORKER_PUBLIC_KEY_FIELD,
8726            Self::NEXT_EPOCH_NETWORK_ADDRESS_FIELD,
8727            Self::NEXT_EPOCH_P2P_ADDRESS_FIELD,
8728            Self::NEXT_EPOCH_PRIMARY_ADDRESS_FIELD,
8729            Self::NEXT_EPOCH_WORKER_ADDRESS_FIELD,
8730            Self::METADATA_EXTRA_FIELDS_FIELD,
8731            Self::VOTING_POWER_FIELD,
8732            Self::OPERATION_CAP_ID_FIELD,
8733            Self::GAS_PRICE_FIELD,
8734            Self::STAKING_POOL_FIELD,
8735            Self::COMMISSION_RATE_FIELD,
8736            Self::NEXT_EPOCH_STAKE_FIELD,
8737            Self::NEXT_EPOCH_GAS_PRICE_FIELD,
8738            Self::NEXT_EPOCH_COMMISSION_RATE_FIELD,
8739            Self::EXTRA_FIELDS_FIELD,
8740        ];
8741    }
8742    impl Validator {
8743        pub fn path_builder() -> ValidatorFieldPathBuilder {
8744            ValidatorFieldPathBuilder::new()
8745        }
8746    }
8747    pub struct ValidatorFieldPathBuilder {
8748        path: Vec<&'static str>,
8749    }
8750    impl ValidatorFieldPathBuilder {
8751        #[allow(clippy::new_without_default)]
8752        pub fn new() -> Self {
8753            Self { path: Default::default() }
8754        }
8755        #[doc(hidden)]
8756        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8757            Self { path: base }
8758        }
8759        pub fn finish(self) -> String {
8760            self.path.join(".")
8761        }
8762        pub fn name(mut self) -> String {
8763            self.path.push(Validator::NAME_FIELD.name);
8764            self.finish()
8765        }
8766        pub fn address(mut self) -> String {
8767            self.path.push(Validator::ADDRESS_FIELD.name);
8768            self.finish()
8769        }
8770        pub fn description(mut self) -> String {
8771            self.path.push(Validator::DESCRIPTION_FIELD.name);
8772            self.finish()
8773        }
8774        pub fn image_url(mut self) -> String {
8775            self.path.push(Validator::IMAGE_URL_FIELD.name);
8776            self.finish()
8777        }
8778        pub fn project_url(mut self) -> String {
8779            self.path.push(Validator::PROJECT_URL_FIELD.name);
8780            self.finish()
8781        }
8782        pub fn protocol_public_key(mut self) -> String {
8783            self.path.push(Validator::PROTOCOL_PUBLIC_KEY_FIELD.name);
8784            self.finish()
8785        }
8786        pub fn proof_of_possession(mut self) -> String {
8787            self.path.push(Validator::PROOF_OF_POSSESSION_FIELD.name);
8788            self.finish()
8789        }
8790        pub fn network_public_key(mut self) -> String {
8791            self.path.push(Validator::NETWORK_PUBLIC_KEY_FIELD.name);
8792            self.finish()
8793        }
8794        pub fn worker_public_key(mut self) -> String {
8795            self.path.push(Validator::WORKER_PUBLIC_KEY_FIELD.name);
8796            self.finish()
8797        }
8798        pub fn network_address(mut self) -> String {
8799            self.path.push(Validator::NETWORK_ADDRESS_FIELD.name);
8800            self.finish()
8801        }
8802        pub fn p2p_address(mut self) -> String {
8803            self.path.push(Validator::P2P_ADDRESS_FIELD.name);
8804            self.finish()
8805        }
8806        pub fn primary_address(mut self) -> String {
8807            self.path.push(Validator::PRIMARY_ADDRESS_FIELD.name);
8808            self.finish()
8809        }
8810        pub fn worker_address(mut self) -> String {
8811            self.path.push(Validator::WORKER_ADDRESS_FIELD.name);
8812            self.finish()
8813        }
8814        pub fn next_epoch_protocol_public_key(mut self) -> String {
8815            self.path.push(Validator::NEXT_EPOCH_PROTOCOL_PUBLIC_KEY_FIELD.name);
8816            self.finish()
8817        }
8818        pub fn next_epoch_proof_of_possession(mut self) -> String {
8819            self.path.push(Validator::NEXT_EPOCH_PROOF_OF_POSSESSION_FIELD.name);
8820            self.finish()
8821        }
8822        pub fn next_epoch_network_public_key(mut self) -> String {
8823            self.path.push(Validator::NEXT_EPOCH_NETWORK_PUBLIC_KEY_FIELD.name);
8824            self.finish()
8825        }
8826        pub fn next_epoch_worker_public_key(mut self) -> String {
8827            self.path.push(Validator::NEXT_EPOCH_WORKER_PUBLIC_KEY_FIELD.name);
8828            self.finish()
8829        }
8830        pub fn next_epoch_network_address(mut self) -> String {
8831            self.path.push(Validator::NEXT_EPOCH_NETWORK_ADDRESS_FIELD.name);
8832            self.finish()
8833        }
8834        pub fn next_epoch_p2p_address(mut self) -> String {
8835            self.path.push(Validator::NEXT_EPOCH_P2P_ADDRESS_FIELD.name);
8836            self.finish()
8837        }
8838        pub fn next_epoch_primary_address(mut self) -> String {
8839            self.path.push(Validator::NEXT_EPOCH_PRIMARY_ADDRESS_FIELD.name);
8840            self.finish()
8841        }
8842        pub fn next_epoch_worker_address(mut self) -> String {
8843            self.path.push(Validator::NEXT_EPOCH_WORKER_ADDRESS_FIELD.name);
8844            self.finish()
8845        }
8846        pub fn metadata_extra_fields(mut self) -> MoveTableFieldPathBuilder {
8847            self.path.push(Validator::METADATA_EXTRA_FIELDS_FIELD.name);
8848            MoveTableFieldPathBuilder::new_with_base(self.path)
8849        }
8850        pub fn voting_power(mut self) -> String {
8851            self.path.push(Validator::VOTING_POWER_FIELD.name);
8852            self.finish()
8853        }
8854        pub fn operation_cap_id(mut self) -> String {
8855            self.path.push(Validator::OPERATION_CAP_ID_FIELD.name);
8856            self.finish()
8857        }
8858        pub fn gas_price(mut self) -> String {
8859            self.path.push(Validator::GAS_PRICE_FIELD.name);
8860            self.finish()
8861        }
8862        pub fn staking_pool(mut self) -> StakingPoolFieldPathBuilder {
8863            self.path.push(Validator::STAKING_POOL_FIELD.name);
8864            StakingPoolFieldPathBuilder::new_with_base(self.path)
8865        }
8866        pub fn commission_rate(mut self) -> String {
8867            self.path.push(Validator::COMMISSION_RATE_FIELD.name);
8868            self.finish()
8869        }
8870        pub fn next_epoch_stake(mut self) -> String {
8871            self.path.push(Validator::NEXT_EPOCH_STAKE_FIELD.name);
8872            self.finish()
8873        }
8874        pub fn next_epoch_gas_price(mut self) -> String {
8875            self.path.push(Validator::NEXT_EPOCH_GAS_PRICE_FIELD.name);
8876            self.finish()
8877        }
8878        pub fn next_epoch_commission_rate(mut self) -> String {
8879            self.path.push(Validator::NEXT_EPOCH_COMMISSION_RATE_FIELD.name);
8880            self.finish()
8881        }
8882        pub fn extra_fields(mut self) -> MoveTableFieldPathBuilder {
8883            self.path.push(Validator::EXTRA_FIELDS_FIELD.name);
8884            MoveTableFieldPathBuilder::new_with_base(self.path)
8885        }
8886    }
8887    impl StakingPool {
8888        pub const ID_FIELD: &'static MessageField = &MessageField {
8889            name: "id",
8890            json_name: "id",
8891            number: 1i32,
8892            message_fields: None,
8893        };
8894        pub const ACTIVATION_EPOCH_FIELD: &'static MessageField = &MessageField {
8895            name: "activation_epoch",
8896            json_name: "activationEpoch",
8897            number: 2i32,
8898            message_fields: None,
8899        };
8900        pub const DEACTIVATION_EPOCH_FIELD: &'static MessageField = &MessageField {
8901            name: "deactivation_epoch",
8902            json_name: "deactivationEpoch",
8903            number: 3i32,
8904            message_fields: None,
8905        };
8906        pub const SUI_BALANCE_FIELD: &'static MessageField = &MessageField {
8907            name: "sui_balance",
8908            json_name: "suiBalance",
8909            number: 4i32,
8910            message_fields: None,
8911        };
8912        pub const REWARDS_POOL_FIELD: &'static MessageField = &MessageField {
8913            name: "rewards_pool",
8914            json_name: "rewardsPool",
8915            number: 5i32,
8916            message_fields: None,
8917        };
8918        pub const POOL_TOKEN_BALANCE_FIELD: &'static MessageField = &MessageField {
8919            name: "pool_token_balance",
8920            json_name: "poolTokenBalance",
8921            number: 6i32,
8922            message_fields: None,
8923        };
8924        pub const EXCHANGE_RATES_FIELD: &'static MessageField = &MessageField {
8925            name: "exchange_rates",
8926            json_name: "exchangeRates",
8927            number: 7i32,
8928            message_fields: Some(MoveTable::FIELDS),
8929        };
8930        pub const PENDING_STAKE_FIELD: &'static MessageField = &MessageField {
8931            name: "pending_stake",
8932            json_name: "pendingStake",
8933            number: 8i32,
8934            message_fields: None,
8935        };
8936        pub const PENDING_TOTAL_SUI_WITHDRAW_FIELD: &'static MessageField = &MessageField {
8937            name: "pending_total_sui_withdraw",
8938            json_name: "pendingTotalSuiWithdraw",
8939            number: 9i32,
8940            message_fields: None,
8941        };
8942        pub const PENDING_POOL_TOKEN_WITHDRAW_FIELD: &'static MessageField = &MessageField {
8943            name: "pending_pool_token_withdraw",
8944            json_name: "pendingPoolTokenWithdraw",
8945            number: 10i32,
8946            message_fields: None,
8947        };
8948        pub const EXTRA_FIELDS_FIELD: &'static MessageField = &MessageField {
8949            name: "extra_fields",
8950            json_name: "extraFields",
8951            number: 11i32,
8952            message_fields: Some(MoveTable::FIELDS),
8953        };
8954    }
8955    impl MessageFields for StakingPool {
8956        const FIELDS: &'static [&'static MessageField] = &[
8957            Self::ID_FIELD,
8958            Self::ACTIVATION_EPOCH_FIELD,
8959            Self::DEACTIVATION_EPOCH_FIELD,
8960            Self::SUI_BALANCE_FIELD,
8961            Self::REWARDS_POOL_FIELD,
8962            Self::POOL_TOKEN_BALANCE_FIELD,
8963            Self::EXCHANGE_RATES_FIELD,
8964            Self::PENDING_STAKE_FIELD,
8965            Self::PENDING_TOTAL_SUI_WITHDRAW_FIELD,
8966            Self::PENDING_POOL_TOKEN_WITHDRAW_FIELD,
8967            Self::EXTRA_FIELDS_FIELD,
8968        ];
8969    }
8970    impl StakingPool {
8971        pub fn path_builder() -> StakingPoolFieldPathBuilder {
8972            StakingPoolFieldPathBuilder::new()
8973        }
8974    }
8975    pub struct StakingPoolFieldPathBuilder {
8976        path: Vec<&'static str>,
8977    }
8978    impl StakingPoolFieldPathBuilder {
8979        #[allow(clippy::new_without_default)]
8980        pub fn new() -> Self {
8981            Self { path: Default::default() }
8982        }
8983        #[doc(hidden)]
8984        pub fn new_with_base(base: Vec<&'static str>) -> Self {
8985            Self { path: base }
8986        }
8987        pub fn finish(self) -> String {
8988            self.path.join(".")
8989        }
8990        pub fn id(mut self) -> String {
8991            self.path.push(StakingPool::ID_FIELD.name);
8992            self.finish()
8993        }
8994        pub fn activation_epoch(mut self) -> String {
8995            self.path.push(StakingPool::ACTIVATION_EPOCH_FIELD.name);
8996            self.finish()
8997        }
8998        pub fn deactivation_epoch(mut self) -> String {
8999            self.path.push(StakingPool::DEACTIVATION_EPOCH_FIELD.name);
9000            self.finish()
9001        }
9002        pub fn sui_balance(mut self) -> String {
9003            self.path.push(StakingPool::SUI_BALANCE_FIELD.name);
9004            self.finish()
9005        }
9006        pub fn rewards_pool(mut self) -> String {
9007            self.path.push(StakingPool::REWARDS_POOL_FIELD.name);
9008            self.finish()
9009        }
9010        pub fn pool_token_balance(mut self) -> String {
9011            self.path.push(StakingPool::POOL_TOKEN_BALANCE_FIELD.name);
9012            self.finish()
9013        }
9014        pub fn exchange_rates(mut self) -> MoveTableFieldPathBuilder {
9015            self.path.push(StakingPool::EXCHANGE_RATES_FIELD.name);
9016            MoveTableFieldPathBuilder::new_with_base(self.path)
9017        }
9018        pub fn pending_stake(mut self) -> String {
9019            self.path.push(StakingPool::PENDING_STAKE_FIELD.name);
9020            self.finish()
9021        }
9022        pub fn pending_total_sui_withdraw(mut self) -> String {
9023            self.path.push(StakingPool::PENDING_TOTAL_SUI_WITHDRAW_FIELD.name);
9024            self.finish()
9025        }
9026        pub fn pending_pool_token_withdraw(mut self) -> String {
9027            self.path.push(StakingPool::PENDING_POOL_TOKEN_WITHDRAW_FIELD.name);
9028            self.finish()
9029        }
9030        pub fn extra_fields(mut self) -> MoveTableFieldPathBuilder {
9031            self.path.push(StakingPool::EXTRA_FIELDS_FIELD.name);
9032            MoveTableFieldPathBuilder::new_with_base(self.path)
9033        }
9034    }
9035    impl Transaction {
9036        pub const BCS_FIELD: &'static MessageField = &MessageField {
9037            name: "bcs",
9038            json_name: "bcs",
9039            number: 1i32,
9040            message_fields: Some(Bcs::FIELDS),
9041        };
9042        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
9043            name: "digest",
9044            json_name: "digest",
9045            number: 2i32,
9046            message_fields: None,
9047        };
9048        pub const VERSION_FIELD: &'static MessageField = &MessageField {
9049            name: "version",
9050            json_name: "version",
9051            number: 3i32,
9052            message_fields: None,
9053        };
9054        pub const KIND_FIELD: &'static MessageField = &MessageField {
9055            name: "kind",
9056            json_name: "kind",
9057            number: 4i32,
9058            message_fields: Some(TransactionKind::FIELDS),
9059        };
9060        pub const SENDER_FIELD: &'static MessageField = &MessageField {
9061            name: "sender",
9062            json_name: "sender",
9063            number: 5i32,
9064            message_fields: None,
9065        };
9066        pub const GAS_PAYMENT_FIELD: &'static MessageField = &MessageField {
9067            name: "gas_payment",
9068            json_name: "gasPayment",
9069            number: 6i32,
9070            message_fields: Some(GasPayment::FIELDS),
9071        };
9072        pub const EXPIRATION_FIELD: &'static MessageField = &MessageField {
9073            name: "expiration",
9074            json_name: "expiration",
9075            number: 7i32,
9076            message_fields: Some(TransactionExpiration::FIELDS),
9077        };
9078    }
9079    impl MessageFields for Transaction {
9080        const FIELDS: &'static [&'static MessageField] = &[
9081            Self::BCS_FIELD,
9082            Self::DIGEST_FIELD,
9083            Self::VERSION_FIELD,
9084            Self::KIND_FIELD,
9085            Self::SENDER_FIELD,
9086            Self::GAS_PAYMENT_FIELD,
9087            Self::EXPIRATION_FIELD,
9088        ];
9089    }
9090    impl Transaction {
9091        pub fn path_builder() -> TransactionFieldPathBuilder {
9092            TransactionFieldPathBuilder::new()
9093        }
9094    }
9095    pub struct TransactionFieldPathBuilder {
9096        path: Vec<&'static str>,
9097    }
9098    impl TransactionFieldPathBuilder {
9099        #[allow(clippy::new_without_default)]
9100        pub fn new() -> Self {
9101            Self { path: Default::default() }
9102        }
9103        #[doc(hidden)]
9104        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9105            Self { path: base }
9106        }
9107        pub fn finish(self) -> String {
9108            self.path.join(".")
9109        }
9110        pub fn bcs(mut self) -> BcsFieldPathBuilder {
9111            self.path.push(Transaction::BCS_FIELD.name);
9112            BcsFieldPathBuilder::new_with_base(self.path)
9113        }
9114        pub fn digest(mut self) -> String {
9115            self.path.push(Transaction::DIGEST_FIELD.name);
9116            self.finish()
9117        }
9118        pub fn version(mut self) -> String {
9119            self.path.push(Transaction::VERSION_FIELD.name);
9120            self.finish()
9121        }
9122        pub fn kind(mut self) -> TransactionKindFieldPathBuilder {
9123            self.path.push(Transaction::KIND_FIELD.name);
9124            TransactionKindFieldPathBuilder::new_with_base(self.path)
9125        }
9126        pub fn sender(mut self) -> String {
9127            self.path.push(Transaction::SENDER_FIELD.name);
9128            self.finish()
9129        }
9130        pub fn gas_payment(mut self) -> GasPaymentFieldPathBuilder {
9131            self.path.push(Transaction::GAS_PAYMENT_FIELD.name);
9132            GasPaymentFieldPathBuilder::new_with_base(self.path)
9133        }
9134        pub fn expiration(mut self) -> TransactionExpirationFieldPathBuilder {
9135            self.path.push(Transaction::EXPIRATION_FIELD.name);
9136            TransactionExpirationFieldPathBuilder::new_with_base(self.path)
9137        }
9138    }
9139    impl GasPayment {
9140        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
9141            name: "objects",
9142            json_name: "objects",
9143            number: 1i32,
9144            message_fields: Some(ObjectReference::FIELDS),
9145        };
9146        pub const OWNER_FIELD: &'static MessageField = &MessageField {
9147            name: "owner",
9148            json_name: "owner",
9149            number: 2i32,
9150            message_fields: None,
9151        };
9152        pub const PRICE_FIELD: &'static MessageField = &MessageField {
9153            name: "price",
9154            json_name: "price",
9155            number: 3i32,
9156            message_fields: None,
9157        };
9158        pub const BUDGET_FIELD: &'static MessageField = &MessageField {
9159            name: "budget",
9160            json_name: "budget",
9161            number: 4i32,
9162            message_fields: None,
9163        };
9164    }
9165    impl MessageFields for GasPayment {
9166        const FIELDS: &'static [&'static MessageField] = &[
9167            Self::OBJECTS_FIELD,
9168            Self::OWNER_FIELD,
9169            Self::PRICE_FIELD,
9170            Self::BUDGET_FIELD,
9171        ];
9172    }
9173    impl GasPayment {
9174        pub fn path_builder() -> GasPaymentFieldPathBuilder {
9175            GasPaymentFieldPathBuilder::new()
9176        }
9177    }
9178    pub struct GasPaymentFieldPathBuilder {
9179        path: Vec<&'static str>,
9180    }
9181    impl GasPaymentFieldPathBuilder {
9182        #[allow(clippy::new_without_default)]
9183        pub fn new() -> Self {
9184            Self { path: Default::default() }
9185        }
9186        #[doc(hidden)]
9187        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9188            Self { path: base }
9189        }
9190        pub fn finish(self) -> String {
9191            self.path.join(".")
9192        }
9193        pub fn objects(mut self) -> ObjectReferenceFieldPathBuilder {
9194            self.path.push(GasPayment::OBJECTS_FIELD.name);
9195            ObjectReferenceFieldPathBuilder::new_with_base(self.path)
9196        }
9197        pub fn owner(mut self) -> String {
9198            self.path.push(GasPayment::OWNER_FIELD.name);
9199            self.finish()
9200        }
9201        pub fn price(mut self) -> String {
9202            self.path.push(GasPayment::PRICE_FIELD.name);
9203            self.finish()
9204        }
9205        pub fn budget(mut self) -> String {
9206            self.path.push(GasPayment::BUDGET_FIELD.name);
9207            self.finish()
9208        }
9209    }
9210    impl TransactionExpiration {
9211        pub const KIND_FIELD: &'static MessageField = &MessageField {
9212            name: "kind",
9213            json_name: "kind",
9214            number: 1i32,
9215            message_fields: None,
9216        };
9217        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
9218            name: "epoch",
9219            json_name: "epoch",
9220            number: 2i32,
9221            message_fields: None,
9222        };
9223        pub const MIN_EPOCH_FIELD: &'static MessageField = &MessageField {
9224            name: "min_epoch",
9225            json_name: "minEpoch",
9226            number: 3i32,
9227            message_fields: None,
9228        };
9229        pub const MIN_TIMESTAMP_FIELD: &'static MessageField = &MessageField {
9230            name: "min_timestamp",
9231            json_name: "minTimestamp",
9232            number: 4i32,
9233            message_fields: None,
9234        };
9235        pub const MAX_TIMESTAMP_FIELD: &'static MessageField = &MessageField {
9236            name: "max_timestamp",
9237            json_name: "maxTimestamp",
9238            number: 5i32,
9239            message_fields: None,
9240        };
9241        pub const CHAIN_FIELD: &'static MessageField = &MessageField {
9242            name: "chain",
9243            json_name: "chain",
9244            number: 6i32,
9245            message_fields: None,
9246        };
9247        pub const NONCE_FIELD: &'static MessageField = &MessageField {
9248            name: "nonce",
9249            json_name: "nonce",
9250            number: 7i32,
9251            message_fields: None,
9252        };
9253    }
9254    impl MessageFields for TransactionExpiration {
9255        const FIELDS: &'static [&'static MessageField] = &[
9256            Self::KIND_FIELD,
9257            Self::EPOCH_FIELD,
9258            Self::MIN_EPOCH_FIELD,
9259            Self::MIN_TIMESTAMP_FIELD,
9260            Self::MAX_TIMESTAMP_FIELD,
9261            Self::CHAIN_FIELD,
9262            Self::NONCE_FIELD,
9263        ];
9264    }
9265    impl TransactionExpiration {
9266        pub fn path_builder() -> TransactionExpirationFieldPathBuilder {
9267            TransactionExpirationFieldPathBuilder::new()
9268        }
9269    }
9270    pub struct TransactionExpirationFieldPathBuilder {
9271        path: Vec<&'static str>,
9272    }
9273    impl TransactionExpirationFieldPathBuilder {
9274        #[allow(clippy::new_without_default)]
9275        pub fn new() -> Self {
9276            Self { path: Default::default() }
9277        }
9278        #[doc(hidden)]
9279        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9280            Self { path: base }
9281        }
9282        pub fn finish(self) -> String {
9283            self.path.join(".")
9284        }
9285        pub fn kind(mut self) -> String {
9286            self.path.push(TransactionExpiration::KIND_FIELD.name);
9287            self.finish()
9288        }
9289        pub fn epoch(mut self) -> String {
9290            self.path.push(TransactionExpiration::EPOCH_FIELD.name);
9291            self.finish()
9292        }
9293        pub fn min_epoch(mut self) -> String {
9294            self.path.push(TransactionExpiration::MIN_EPOCH_FIELD.name);
9295            self.finish()
9296        }
9297        pub fn min_timestamp(mut self) -> String {
9298            self.path.push(TransactionExpiration::MIN_TIMESTAMP_FIELD.name);
9299            self.finish()
9300        }
9301        pub fn max_timestamp(mut self) -> String {
9302            self.path.push(TransactionExpiration::MAX_TIMESTAMP_FIELD.name);
9303            self.finish()
9304        }
9305        pub fn chain(mut self) -> String {
9306            self.path.push(TransactionExpiration::CHAIN_FIELD.name);
9307            self.finish()
9308        }
9309        pub fn nonce(mut self) -> String {
9310            self.path.push(TransactionExpiration::NONCE_FIELD.name);
9311            self.finish()
9312        }
9313    }
9314    impl TransactionKind {
9315        pub const KIND_FIELD: &'static MessageField = &MessageField {
9316            name: "kind",
9317            json_name: "kind",
9318            number: 1i32,
9319            message_fields: None,
9320        };
9321        pub const PROGRAMMABLE_TRANSACTION_FIELD: &'static MessageField = &MessageField {
9322            name: "programmable_transaction",
9323            json_name: "programmableTransaction",
9324            number: 2i32,
9325            message_fields: Some(ProgrammableTransaction::FIELDS),
9326        };
9327        pub const CHANGE_EPOCH_FIELD: &'static MessageField = &MessageField {
9328            name: "change_epoch",
9329            json_name: "changeEpoch",
9330            number: 3i32,
9331            message_fields: Some(ChangeEpoch::FIELDS),
9332        };
9333        pub const GENESIS_FIELD: &'static MessageField = &MessageField {
9334            name: "genesis",
9335            json_name: "genesis",
9336            number: 4i32,
9337            message_fields: Some(GenesisTransaction::FIELDS),
9338        };
9339        pub const CONSENSUS_COMMIT_PROLOGUE_FIELD: &'static MessageField = &MessageField {
9340            name: "consensus_commit_prologue",
9341            json_name: "consensusCommitPrologue",
9342            number: 5i32,
9343            message_fields: Some(ConsensusCommitPrologue::FIELDS),
9344        };
9345        pub const AUTHENTICATOR_STATE_UPDATE_FIELD: &'static MessageField = &MessageField {
9346            name: "authenticator_state_update",
9347            json_name: "authenticatorStateUpdate",
9348            number: 6i32,
9349            message_fields: Some(AuthenticatorStateUpdate::FIELDS),
9350        };
9351        pub const END_OF_EPOCH_FIELD: &'static MessageField = &MessageField {
9352            name: "end_of_epoch",
9353            json_name: "endOfEpoch",
9354            number: 7i32,
9355            message_fields: Some(EndOfEpochTransaction::FIELDS),
9356        };
9357        pub const RANDOMNESS_STATE_UPDATE_FIELD: &'static MessageField = &MessageField {
9358            name: "randomness_state_update",
9359            json_name: "randomnessStateUpdate",
9360            number: 8i32,
9361            message_fields: Some(RandomnessStateUpdate::FIELDS),
9362        };
9363    }
9364    impl MessageFields for TransactionKind {
9365        const FIELDS: &'static [&'static MessageField] = &[
9366            Self::KIND_FIELD,
9367            Self::PROGRAMMABLE_TRANSACTION_FIELD,
9368            Self::CHANGE_EPOCH_FIELD,
9369            Self::GENESIS_FIELD,
9370            Self::CONSENSUS_COMMIT_PROLOGUE_FIELD,
9371            Self::AUTHENTICATOR_STATE_UPDATE_FIELD,
9372            Self::END_OF_EPOCH_FIELD,
9373            Self::RANDOMNESS_STATE_UPDATE_FIELD,
9374        ];
9375    }
9376    impl TransactionKind {
9377        pub fn path_builder() -> TransactionKindFieldPathBuilder {
9378            TransactionKindFieldPathBuilder::new()
9379        }
9380    }
9381    pub struct TransactionKindFieldPathBuilder {
9382        path: Vec<&'static str>,
9383    }
9384    impl TransactionKindFieldPathBuilder {
9385        #[allow(clippy::new_without_default)]
9386        pub fn new() -> Self {
9387            Self { path: Default::default() }
9388        }
9389        #[doc(hidden)]
9390        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9391            Self { path: base }
9392        }
9393        pub fn finish(self) -> String {
9394            self.path.join(".")
9395        }
9396        pub fn kind(mut self) -> String {
9397            self.path.push(TransactionKind::KIND_FIELD.name);
9398            self.finish()
9399        }
9400        pub fn programmable_transaction(
9401            mut self,
9402        ) -> ProgrammableTransactionFieldPathBuilder {
9403            self.path.push(TransactionKind::PROGRAMMABLE_TRANSACTION_FIELD.name);
9404            ProgrammableTransactionFieldPathBuilder::new_with_base(self.path)
9405        }
9406        pub fn change_epoch(mut self) -> ChangeEpochFieldPathBuilder {
9407            self.path.push(TransactionKind::CHANGE_EPOCH_FIELD.name);
9408            ChangeEpochFieldPathBuilder::new_with_base(self.path)
9409        }
9410        pub fn genesis(mut self) -> GenesisTransactionFieldPathBuilder {
9411            self.path.push(TransactionKind::GENESIS_FIELD.name);
9412            GenesisTransactionFieldPathBuilder::new_with_base(self.path)
9413        }
9414        pub fn consensus_commit_prologue(
9415            mut self,
9416        ) -> ConsensusCommitPrologueFieldPathBuilder {
9417            self.path.push(TransactionKind::CONSENSUS_COMMIT_PROLOGUE_FIELD.name);
9418            ConsensusCommitPrologueFieldPathBuilder::new_with_base(self.path)
9419        }
9420        pub fn authenticator_state_update(
9421            mut self,
9422        ) -> AuthenticatorStateUpdateFieldPathBuilder {
9423            self.path.push(TransactionKind::AUTHENTICATOR_STATE_UPDATE_FIELD.name);
9424            AuthenticatorStateUpdateFieldPathBuilder::new_with_base(self.path)
9425        }
9426        pub fn end_of_epoch(mut self) -> EndOfEpochTransactionFieldPathBuilder {
9427            self.path.push(TransactionKind::END_OF_EPOCH_FIELD.name);
9428            EndOfEpochTransactionFieldPathBuilder::new_with_base(self.path)
9429        }
9430        pub fn randomness_state_update(
9431            mut self,
9432        ) -> RandomnessStateUpdateFieldPathBuilder {
9433            self.path.push(TransactionKind::RANDOMNESS_STATE_UPDATE_FIELD.name);
9434            RandomnessStateUpdateFieldPathBuilder::new_with_base(self.path)
9435        }
9436    }
9437    impl ProgrammableTransaction {
9438        pub const INPUTS_FIELD: &'static MessageField = &MessageField {
9439            name: "inputs",
9440            json_name: "inputs",
9441            number: 1i32,
9442            message_fields: Some(Input::FIELDS),
9443        };
9444        pub const COMMANDS_FIELD: &'static MessageField = &MessageField {
9445            name: "commands",
9446            json_name: "commands",
9447            number: 2i32,
9448            message_fields: Some(Command::FIELDS),
9449        };
9450    }
9451    impl MessageFields for ProgrammableTransaction {
9452        const FIELDS: &'static [&'static MessageField] = &[
9453            Self::INPUTS_FIELD,
9454            Self::COMMANDS_FIELD,
9455        ];
9456    }
9457    impl ProgrammableTransaction {
9458        pub fn path_builder() -> ProgrammableTransactionFieldPathBuilder {
9459            ProgrammableTransactionFieldPathBuilder::new()
9460        }
9461    }
9462    pub struct ProgrammableTransactionFieldPathBuilder {
9463        path: Vec<&'static str>,
9464    }
9465    impl ProgrammableTransactionFieldPathBuilder {
9466        #[allow(clippy::new_without_default)]
9467        pub fn new() -> Self {
9468            Self { path: Default::default() }
9469        }
9470        #[doc(hidden)]
9471        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9472            Self { path: base }
9473        }
9474        pub fn finish(self) -> String {
9475            self.path.join(".")
9476        }
9477        pub fn inputs(mut self) -> InputFieldPathBuilder {
9478            self.path.push(ProgrammableTransaction::INPUTS_FIELD.name);
9479            InputFieldPathBuilder::new_with_base(self.path)
9480        }
9481        pub fn commands(mut self) -> CommandFieldPathBuilder {
9482            self.path.push(ProgrammableTransaction::COMMANDS_FIELD.name);
9483            CommandFieldPathBuilder::new_with_base(self.path)
9484        }
9485    }
9486    impl Command {
9487        pub const MOVE_CALL_FIELD: &'static MessageField = &MessageField {
9488            name: "move_call",
9489            json_name: "moveCall",
9490            number: 1i32,
9491            message_fields: Some(MoveCall::FIELDS),
9492        };
9493        pub const TRANSFER_OBJECTS_FIELD: &'static MessageField = &MessageField {
9494            name: "transfer_objects",
9495            json_name: "transferObjects",
9496            number: 2i32,
9497            message_fields: Some(TransferObjects::FIELDS),
9498        };
9499        pub const SPLIT_COINS_FIELD: &'static MessageField = &MessageField {
9500            name: "split_coins",
9501            json_name: "splitCoins",
9502            number: 3i32,
9503            message_fields: Some(SplitCoins::FIELDS),
9504        };
9505        pub const MERGE_COINS_FIELD: &'static MessageField = &MessageField {
9506            name: "merge_coins",
9507            json_name: "mergeCoins",
9508            number: 4i32,
9509            message_fields: Some(MergeCoins::FIELDS),
9510        };
9511        pub const PUBLISH_FIELD: &'static MessageField = &MessageField {
9512            name: "publish",
9513            json_name: "publish",
9514            number: 5i32,
9515            message_fields: Some(Publish::FIELDS),
9516        };
9517        pub const MAKE_MOVE_VECTOR_FIELD: &'static MessageField = &MessageField {
9518            name: "make_move_vector",
9519            json_name: "makeMoveVector",
9520            number: 6i32,
9521            message_fields: Some(MakeMoveVector::FIELDS),
9522        };
9523        pub const UPGRADE_FIELD: &'static MessageField = &MessageField {
9524            name: "upgrade",
9525            json_name: "upgrade",
9526            number: 7i32,
9527            message_fields: Some(Upgrade::FIELDS),
9528        };
9529    }
9530    impl MessageFields for Command {
9531        const FIELDS: &'static [&'static MessageField] = &[
9532            Self::MOVE_CALL_FIELD,
9533            Self::TRANSFER_OBJECTS_FIELD,
9534            Self::SPLIT_COINS_FIELD,
9535            Self::MERGE_COINS_FIELD,
9536            Self::PUBLISH_FIELD,
9537            Self::MAKE_MOVE_VECTOR_FIELD,
9538            Self::UPGRADE_FIELD,
9539        ];
9540    }
9541    impl Command {
9542        pub fn path_builder() -> CommandFieldPathBuilder {
9543            CommandFieldPathBuilder::new()
9544        }
9545    }
9546    pub struct CommandFieldPathBuilder {
9547        path: Vec<&'static str>,
9548    }
9549    impl CommandFieldPathBuilder {
9550        #[allow(clippy::new_without_default)]
9551        pub fn new() -> Self {
9552            Self { path: Default::default() }
9553        }
9554        #[doc(hidden)]
9555        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9556            Self { path: base }
9557        }
9558        pub fn finish(self) -> String {
9559            self.path.join(".")
9560        }
9561        pub fn move_call(mut self) -> MoveCallFieldPathBuilder {
9562            self.path.push(Command::MOVE_CALL_FIELD.name);
9563            MoveCallFieldPathBuilder::new_with_base(self.path)
9564        }
9565        pub fn transfer_objects(mut self) -> TransferObjectsFieldPathBuilder {
9566            self.path.push(Command::TRANSFER_OBJECTS_FIELD.name);
9567            TransferObjectsFieldPathBuilder::new_with_base(self.path)
9568        }
9569        pub fn split_coins(mut self) -> SplitCoinsFieldPathBuilder {
9570            self.path.push(Command::SPLIT_COINS_FIELD.name);
9571            SplitCoinsFieldPathBuilder::new_with_base(self.path)
9572        }
9573        pub fn merge_coins(mut self) -> MergeCoinsFieldPathBuilder {
9574            self.path.push(Command::MERGE_COINS_FIELD.name);
9575            MergeCoinsFieldPathBuilder::new_with_base(self.path)
9576        }
9577        pub fn publish(mut self) -> PublishFieldPathBuilder {
9578            self.path.push(Command::PUBLISH_FIELD.name);
9579            PublishFieldPathBuilder::new_with_base(self.path)
9580        }
9581        pub fn make_move_vector(mut self) -> MakeMoveVectorFieldPathBuilder {
9582            self.path.push(Command::MAKE_MOVE_VECTOR_FIELD.name);
9583            MakeMoveVectorFieldPathBuilder::new_with_base(self.path)
9584        }
9585        pub fn upgrade(mut self) -> UpgradeFieldPathBuilder {
9586            self.path.push(Command::UPGRADE_FIELD.name);
9587            UpgradeFieldPathBuilder::new_with_base(self.path)
9588        }
9589    }
9590    impl MoveCall {
9591        pub const PACKAGE_FIELD: &'static MessageField = &MessageField {
9592            name: "package",
9593            json_name: "package",
9594            number: 1i32,
9595            message_fields: None,
9596        };
9597        pub const MODULE_FIELD: &'static MessageField = &MessageField {
9598            name: "module",
9599            json_name: "module",
9600            number: 2i32,
9601            message_fields: None,
9602        };
9603        pub const FUNCTION_FIELD: &'static MessageField = &MessageField {
9604            name: "function",
9605            json_name: "function",
9606            number: 3i32,
9607            message_fields: None,
9608        };
9609        pub const TYPE_ARGUMENTS_FIELD: &'static MessageField = &MessageField {
9610            name: "type_arguments",
9611            json_name: "typeArguments",
9612            number: 4i32,
9613            message_fields: None,
9614        };
9615        pub const ARGUMENTS_FIELD: &'static MessageField = &MessageField {
9616            name: "arguments",
9617            json_name: "arguments",
9618            number: 5i32,
9619            message_fields: Some(Argument::FIELDS),
9620        };
9621    }
9622    impl MessageFields for MoveCall {
9623        const FIELDS: &'static [&'static MessageField] = &[
9624            Self::PACKAGE_FIELD,
9625            Self::MODULE_FIELD,
9626            Self::FUNCTION_FIELD,
9627            Self::TYPE_ARGUMENTS_FIELD,
9628            Self::ARGUMENTS_FIELD,
9629        ];
9630    }
9631    impl MoveCall {
9632        pub fn path_builder() -> MoveCallFieldPathBuilder {
9633            MoveCallFieldPathBuilder::new()
9634        }
9635    }
9636    pub struct MoveCallFieldPathBuilder {
9637        path: Vec<&'static str>,
9638    }
9639    impl MoveCallFieldPathBuilder {
9640        #[allow(clippy::new_without_default)]
9641        pub fn new() -> Self {
9642            Self { path: Default::default() }
9643        }
9644        #[doc(hidden)]
9645        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9646            Self { path: base }
9647        }
9648        pub fn finish(self) -> String {
9649            self.path.join(".")
9650        }
9651        pub fn package(mut self) -> String {
9652            self.path.push(MoveCall::PACKAGE_FIELD.name);
9653            self.finish()
9654        }
9655        pub fn module(mut self) -> String {
9656            self.path.push(MoveCall::MODULE_FIELD.name);
9657            self.finish()
9658        }
9659        pub fn function(mut self) -> String {
9660            self.path.push(MoveCall::FUNCTION_FIELD.name);
9661            self.finish()
9662        }
9663        pub fn type_arguments(mut self) -> String {
9664            self.path.push(MoveCall::TYPE_ARGUMENTS_FIELD.name);
9665            self.finish()
9666        }
9667        pub fn arguments(mut self) -> ArgumentFieldPathBuilder {
9668            self.path.push(MoveCall::ARGUMENTS_FIELD.name);
9669            ArgumentFieldPathBuilder::new_with_base(self.path)
9670        }
9671    }
9672    impl TransferObjects {
9673        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
9674            name: "objects",
9675            json_name: "objects",
9676            number: 1i32,
9677            message_fields: Some(Argument::FIELDS),
9678        };
9679        pub const ADDRESS_FIELD: &'static MessageField = &MessageField {
9680            name: "address",
9681            json_name: "address",
9682            number: 2i32,
9683            message_fields: Some(Argument::FIELDS),
9684        };
9685    }
9686    impl MessageFields for TransferObjects {
9687        const FIELDS: &'static [&'static MessageField] = &[
9688            Self::OBJECTS_FIELD,
9689            Self::ADDRESS_FIELD,
9690        ];
9691    }
9692    impl TransferObjects {
9693        pub fn path_builder() -> TransferObjectsFieldPathBuilder {
9694            TransferObjectsFieldPathBuilder::new()
9695        }
9696    }
9697    pub struct TransferObjectsFieldPathBuilder {
9698        path: Vec<&'static str>,
9699    }
9700    impl TransferObjectsFieldPathBuilder {
9701        #[allow(clippy::new_without_default)]
9702        pub fn new() -> Self {
9703            Self { path: Default::default() }
9704        }
9705        #[doc(hidden)]
9706        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9707            Self { path: base }
9708        }
9709        pub fn finish(self) -> String {
9710            self.path.join(".")
9711        }
9712        pub fn objects(mut self) -> ArgumentFieldPathBuilder {
9713            self.path.push(TransferObjects::OBJECTS_FIELD.name);
9714            ArgumentFieldPathBuilder::new_with_base(self.path)
9715        }
9716        pub fn address(mut self) -> ArgumentFieldPathBuilder {
9717            self.path.push(TransferObjects::ADDRESS_FIELD.name);
9718            ArgumentFieldPathBuilder::new_with_base(self.path)
9719        }
9720    }
9721    impl SplitCoins {
9722        pub const COIN_FIELD: &'static MessageField = &MessageField {
9723            name: "coin",
9724            json_name: "coin",
9725            number: 1i32,
9726            message_fields: Some(Argument::FIELDS),
9727        };
9728        pub const AMOUNTS_FIELD: &'static MessageField = &MessageField {
9729            name: "amounts",
9730            json_name: "amounts",
9731            number: 2i32,
9732            message_fields: Some(Argument::FIELDS),
9733        };
9734    }
9735    impl MessageFields for SplitCoins {
9736        const FIELDS: &'static [&'static MessageField] = &[
9737            Self::COIN_FIELD,
9738            Self::AMOUNTS_FIELD,
9739        ];
9740    }
9741    impl SplitCoins {
9742        pub fn path_builder() -> SplitCoinsFieldPathBuilder {
9743            SplitCoinsFieldPathBuilder::new()
9744        }
9745    }
9746    pub struct SplitCoinsFieldPathBuilder {
9747        path: Vec<&'static str>,
9748    }
9749    impl SplitCoinsFieldPathBuilder {
9750        #[allow(clippy::new_without_default)]
9751        pub fn new() -> Self {
9752            Self { path: Default::default() }
9753        }
9754        #[doc(hidden)]
9755        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9756            Self { path: base }
9757        }
9758        pub fn finish(self) -> String {
9759            self.path.join(".")
9760        }
9761        pub fn coin(mut self) -> ArgumentFieldPathBuilder {
9762            self.path.push(SplitCoins::COIN_FIELD.name);
9763            ArgumentFieldPathBuilder::new_with_base(self.path)
9764        }
9765        pub fn amounts(mut self) -> ArgumentFieldPathBuilder {
9766            self.path.push(SplitCoins::AMOUNTS_FIELD.name);
9767            ArgumentFieldPathBuilder::new_with_base(self.path)
9768        }
9769    }
9770    impl MergeCoins {
9771        pub const COIN_FIELD: &'static MessageField = &MessageField {
9772            name: "coin",
9773            json_name: "coin",
9774            number: 1i32,
9775            message_fields: Some(Argument::FIELDS),
9776        };
9777        pub const COINS_TO_MERGE_FIELD: &'static MessageField = &MessageField {
9778            name: "coins_to_merge",
9779            json_name: "coinsToMerge",
9780            number: 2i32,
9781            message_fields: Some(Argument::FIELDS),
9782        };
9783    }
9784    impl MessageFields for MergeCoins {
9785        const FIELDS: &'static [&'static MessageField] = &[
9786            Self::COIN_FIELD,
9787            Self::COINS_TO_MERGE_FIELD,
9788        ];
9789    }
9790    impl MergeCoins {
9791        pub fn path_builder() -> MergeCoinsFieldPathBuilder {
9792            MergeCoinsFieldPathBuilder::new()
9793        }
9794    }
9795    pub struct MergeCoinsFieldPathBuilder {
9796        path: Vec<&'static str>,
9797    }
9798    impl MergeCoinsFieldPathBuilder {
9799        #[allow(clippy::new_without_default)]
9800        pub fn new() -> Self {
9801            Self { path: Default::default() }
9802        }
9803        #[doc(hidden)]
9804        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9805            Self { path: base }
9806        }
9807        pub fn finish(self) -> String {
9808            self.path.join(".")
9809        }
9810        pub fn coin(mut self) -> ArgumentFieldPathBuilder {
9811            self.path.push(MergeCoins::COIN_FIELD.name);
9812            ArgumentFieldPathBuilder::new_with_base(self.path)
9813        }
9814        pub fn coins_to_merge(mut self) -> ArgumentFieldPathBuilder {
9815            self.path.push(MergeCoins::COINS_TO_MERGE_FIELD.name);
9816            ArgumentFieldPathBuilder::new_with_base(self.path)
9817        }
9818    }
9819    impl Publish {
9820        pub const MODULES_FIELD: &'static MessageField = &MessageField {
9821            name: "modules",
9822            json_name: "modules",
9823            number: 1i32,
9824            message_fields: None,
9825        };
9826        pub const DEPENDENCIES_FIELD: &'static MessageField = &MessageField {
9827            name: "dependencies",
9828            json_name: "dependencies",
9829            number: 2i32,
9830            message_fields: None,
9831        };
9832    }
9833    impl MessageFields for Publish {
9834        const FIELDS: &'static [&'static MessageField] = &[
9835            Self::MODULES_FIELD,
9836            Self::DEPENDENCIES_FIELD,
9837        ];
9838    }
9839    impl Publish {
9840        pub fn path_builder() -> PublishFieldPathBuilder {
9841            PublishFieldPathBuilder::new()
9842        }
9843    }
9844    pub struct PublishFieldPathBuilder {
9845        path: Vec<&'static str>,
9846    }
9847    impl PublishFieldPathBuilder {
9848        #[allow(clippy::new_without_default)]
9849        pub fn new() -> Self {
9850            Self { path: Default::default() }
9851        }
9852        #[doc(hidden)]
9853        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9854            Self { path: base }
9855        }
9856        pub fn finish(self) -> String {
9857            self.path.join(".")
9858        }
9859        pub fn modules(mut self) -> String {
9860            self.path.push(Publish::MODULES_FIELD.name);
9861            self.finish()
9862        }
9863        pub fn dependencies(mut self) -> String {
9864            self.path.push(Publish::DEPENDENCIES_FIELD.name);
9865            self.finish()
9866        }
9867    }
9868    impl MakeMoveVector {
9869        pub const ELEMENT_TYPE_FIELD: &'static MessageField = &MessageField {
9870            name: "element_type",
9871            json_name: "elementType",
9872            number: 1i32,
9873            message_fields: None,
9874        };
9875        pub const ELEMENTS_FIELD: &'static MessageField = &MessageField {
9876            name: "elements",
9877            json_name: "elements",
9878            number: 2i32,
9879            message_fields: Some(Argument::FIELDS),
9880        };
9881    }
9882    impl MessageFields for MakeMoveVector {
9883        const FIELDS: &'static [&'static MessageField] = &[
9884            Self::ELEMENT_TYPE_FIELD,
9885            Self::ELEMENTS_FIELD,
9886        ];
9887    }
9888    impl MakeMoveVector {
9889        pub fn path_builder() -> MakeMoveVectorFieldPathBuilder {
9890            MakeMoveVectorFieldPathBuilder::new()
9891        }
9892    }
9893    pub struct MakeMoveVectorFieldPathBuilder {
9894        path: Vec<&'static str>,
9895    }
9896    impl MakeMoveVectorFieldPathBuilder {
9897        #[allow(clippy::new_without_default)]
9898        pub fn new() -> Self {
9899            Self { path: Default::default() }
9900        }
9901        #[doc(hidden)]
9902        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9903            Self { path: base }
9904        }
9905        pub fn finish(self) -> String {
9906            self.path.join(".")
9907        }
9908        pub fn element_type(mut self) -> String {
9909            self.path.push(MakeMoveVector::ELEMENT_TYPE_FIELD.name);
9910            self.finish()
9911        }
9912        pub fn elements(mut self) -> ArgumentFieldPathBuilder {
9913            self.path.push(MakeMoveVector::ELEMENTS_FIELD.name);
9914            ArgumentFieldPathBuilder::new_with_base(self.path)
9915        }
9916    }
9917    impl Upgrade {
9918        pub const MODULES_FIELD: &'static MessageField = &MessageField {
9919            name: "modules",
9920            json_name: "modules",
9921            number: 1i32,
9922            message_fields: None,
9923        };
9924        pub const DEPENDENCIES_FIELD: &'static MessageField = &MessageField {
9925            name: "dependencies",
9926            json_name: "dependencies",
9927            number: 2i32,
9928            message_fields: None,
9929        };
9930        pub const PACKAGE_FIELD: &'static MessageField = &MessageField {
9931            name: "package",
9932            json_name: "package",
9933            number: 3i32,
9934            message_fields: None,
9935        };
9936        pub const TICKET_FIELD: &'static MessageField = &MessageField {
9937            name: "ticket",
9938            json_name: "ticket",
9939            number: 4i32,
9940            message_fields: Some(Argument::FIELDS),
9941        };
9942    }
9943    impl MessageFields for Upgrade {
9944        const FIELDS: &'static [&'static MessageField] = &[
9945            Self::MODULES_FIELD,
9946            Self::DEPENDENCIES_FIELD,
9947            Self::PACKAGE_FIELD,
9948            Self::TICKET_FIELD,
9949        ];
9950    }
9951    impl Upgrade {
9952        pub fn path_builder() -> UpgradeFieldPathBuilder {
9953            UpgradeFieldPathBuilder::new()
9954        }
9955    }
9956    pub struct UpgradeFieldPathBuilder {
9957        path: Vec<&'static str>,
9958    }
9959    impl UpgradeFieldPathBuilder {
9960        #[allow(clippy::new_without_default)]
9961        pub fn new() -> Self {
9962            Self { path: Default::default() }
9963        }
9964        #[doc(hidden)]
9965        pub fn new_with_base(base: Vec<&'static str>) -> Self {
9966            Self { path: base }
9967        }
9968        pub fn finish(self) -> String {
9969            self.path.join(".")
9970        }
9971        pub fn modules(mut self) -> String {
9972            self.path.push(Upgrade::MODULES_FIELD.name);
9973            self.finish()
9974        }
9975        pub fn dependencies(mut self) -> String {
9976            self.path.push(Upgrade::DEPENDENCIES_FIELD.name);
9977            self.finish()
9978        }
9979        pub fn package(mut self) -> String {
9980            self.path.push(Upgrade::PACKAGE_FIELD.name);
9981            self.finish()
9982        }
9983        pub fn ticket(mut self) -> ArgumentFieldPathBuilder {
9984            self.path.push(Upgrade::TICKET_FIELD.name);
9985            ArgumentFieldPathBuilder::new_with_base(self.path)
9986        }
9987    }
9988    impl RandomnessStateUpdate {
9989        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
9990            name: "epoch",
9991            json_name: "epoch",
9992            number: 1i32,
9993            message_fields: None,
9994        };
9995        pub const RANDOMNESS_ROUND_FIELD: &'static MessageField = &MessageField {
9996            name: "randomness_round",
9997            json_name: "randomnessRound",
9998            number: 2i32,
9999            message_fields: None,
10000        };
10001        pub const RANDOM_BYTES_FIELD: &'static MessageField = &MessageField {
10002            name: "random_bytes",
10003            json_name: "randomBytes",
10004            number: 3i32,
10005            message_fields: None,
10006        };
10007        pub const RANDOMNESS_OBJECT_INITIAL_SHARED_VERSION_FIELD: &'static MessageField = &MessageField {
10008            name: "randomness_object_initial_shared_version",
10009            json_name: "randomnessObjectInitialSharedVersion",
10010            number: 4i32,
10011            message_fields: None,
10012        };
10013    }
10014    impl MessageFields for RandomnessStateUpdate {
10015        const FIELDS: &'static [&'static MessageField] = &[
10016            Self::EPOCH_FIELD,
10017            Self::RANDOMNESS_ROUND_FIELD,
10018            Self::RANDOM_BYTES_FIELD,
10019            Self::RANDOMNESS_OBJECT_INITIAL_SHARED_VERSION_FIELD,
10020        ];
10021    }
10022    impl RandomnessStateUpdate {
10023        pub fn path_builder() -> RandomnessStateUpdateFieldPathBuilder {
10024            RandomnessStateUpdateFieldPathBuilder::new()
10025        }
10026    }
10027    pub struct RandomnessStateUpdateFieldPathBuilder {
10028        path: Vec<&'static str>,
10029    }
10030    impl RandomnessStateUpdateFieldPathBuilder {
10031        #[allow(clippy::new_without_default)]
10032        pub fn new() -> Self {
10033            Self { path: Default::default() }
10034        }
10035        #[doc(hidden)]
10036        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10037            Self { path: base }
10038        }
10039        pub fn finish(self) -> String {
10040            self.path.join(".")
10041        }
10042        pub fn epoch(mut self) -> String {
10043            self.path.push(RandomnessStateUpdate::EPOCH_FIELD.name);
10044            self.finish()
10045        }
10046        pub fn randomness_round(mut self) -> String {
10047            self.path.push(RandomnessStateUpdate::RANDOMNESS_ROUND_FIELD.name);
10048            self.finish()
10049        }
10050        pub fn random_bytes(mut self) -> String {
10051            self.path.push(RandomnessStateUpdate::RANDOM_BYTES_FIELD.name);
10052            self.finish()
10053        }
10054        pub fn randomness_object_initial_shared_version(mut self) -> String {
10055            self.path
10056                .push(
10057                    RandomnessStateUpdate::RANDOMNESS_OBJECT_INITIAL_SHARED_VERSION_FIELD
10058                        .name,
10059                );
10060            self.finish()
10061        }
10062    }
10063    impl ChangeEpoch {
10064        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
10065            name: "epoch",
10066            json_name: "epoch",
10067            number: 1i32,
10068            message_fields: None,
10069        };
10070        pub const PROTOCOL_VERSION_FIELD: &'static MessageField = &MessageField {
10071            name: "protocol_version",
10072            json_name: "protocolVersion",
10073            number: 2i32,
10074            message_fields: None,
10075        };
10076        pub const STORAGE_CHARGE_FIELD: &'static MessageField = &MessageField {
10077            name: "storage_charge",
10078            json_name: "storageCharge",
10079            number: 3i32,
10080            message_fields: None,
10081        };
10082        pub const COMPUTATION_CHARGE_FIELD: &'static MessageField = &MessageField {
10083            name: "computation_charge",
10084            json_name: "computationCharge",
10085            number: 4i32,
10086            message_fields: None,
10087        };
10088        pub const STORAGE_REBATE_FIELD: &'static MessageField = &MessageField {
10089            name: "storage_rebate",
10090            json_name: "storageRebate",
10091            number: 5i32,
10092            message_fields: None,
10093        };
10094        pub const NON_REFUNDABLE_STORAGE_FEE_FIELD: &'static MessageField = &MessageField {
10095            name: "non_refundable_storage_fee",
10096            json_name: "nonRefundableStorageFee",
10097            number: 6i32,
10098            message_fields: None,
10099        };
10100        pub const EPOCH_START_TIMESTAMP_FIELD: &'static MessageField = &MessageField {
10101            name: "epoch_start_timestamp",
10102            json_name: "epochStartTimestamp",
10103            number: 7i32,
10104            message_fields: None,
10105        };
10106        pub const SYSTEM_PACKAGES_FIELD: &'static MessageField = &MessageField {
10107            name: "system_packages",
10108            json_name: "systemPackages",
10109            number: 8i32,
10110            message_fields: Some(SystemPackage::FIELDS),
10111        };
10112    }
10113    impl MessageFields for ChangeEpoch {
10114        const FIELDS: &'static [&'static MessageField] = &[
10115            Self::EPOCH_FIELD,
10116            Self::PROTOCOL_VERSION_FIELD,
10117            Self::STORAGE_CHARGE_FIELD,
10118            Self::COMPUTATION_CHARGE_FIELD,
10119            Self::STORAGE_REBATE_FIELD,
10120            Self::NON_REFUNDABLE_STORAGE_FEE_FIELD,
10121            Self::EPOCH_START_TIMESTAMP_FIELD,
10122            Self::SYSTEM_PACKAGES_FIELD,
10123        ];
10124    }
10125    impl ChangeEpoch {
10126        pub fn path_builder() -> ChangeEpochFieldPathBuilder {
10127            ChangeEpochFieldPathBuilder::new()
10128        }
10129    }
10130    pub struct ChangeEpochFieldPathBuilder {
10131        path: Vec<&'static str>,
10132    }
10133    impl ChangeEpochFieldPathBuilder {
10134        #[allow(clippy::new_without_default)]
10135        pub fn new() -> Self {
10136            Self { path: Default::default() }
10137        }
10138        #[doc(hidden)]
10139        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10140            Self { path: base }
10141        }
10142        pub fn finish(self) -> String {
10143            self.path.join(".")
10144        }
10145        pub fn epoch(mut self) -> String {
10146            self.path.push(ChangeEpoch::EPOCH_FIELD.name);
10147            self.finish()
10148        }
10149        pub fn protocol_version(mut self) -> String {
10150            self.path.push(ChangeEpoch::PROTOCOL_VERSION_FIELD.name);
10151            self.finish()
10152        }
10153        pub fn storage_charge(mut self) -> String {
10154            self.path.push(ChangeEpoch::STORAGE_CHARGE_FIELD.name);
10155            self.finish()
10156        }
10157        pub fn computation_charge(mut self) -> String {
10158            self.path.push(ChangeEpoch::COMPUTATION_CHARGE_FIELD.name);
10159            self.finish()
10160        }
10161        pub fn storage_rebate(mut self) -> String {
10162            self.path.push(ChangeEpoch::STORAGE_REBATE_FIELD.name);
10163            self.finish()
10164        }
10165        pub fn non_refundable_storage_fee(mut self) -> String {
10166            self.path.push(ChangeEpoch::NON_REFUNDABLE_STORAGE_FEE_FIELD.name);
10167            self.finish()
10168        }
10169        pub fn epoch_start_timestamp(mut self) -> String {
10170            self.path.push(ChangeEpoch::EPOCH_START_TIMESTAMP_FIELD.name);
10171            self.finish()
10172        }
10173        pub fn system_packages(mut self) -> SystemPackageFieldPathBuilder {
10174            self.path.push(ChangeEpoch::SYSTEM_PACKAGES_FIELD.name);
10175            SystemPackageFieldPathBuilder::new_with_base(self.path)
10176        }
10177    }
10178    impl SystemPackage {
10179        pub const VERSION_FIELD: &'static MessageField = &MessageField {
10180            name: "version",
10181            json_name: "version",
10182            number: 1i32,
10183            message_fields: None,
10184        };
10185        pub const MODULES_FIELD: &'static MessageField = &MessageField {
10186            name: "modules",
10187            json_name: "modules",
10188            number: 2i32,
10189            message_fields: None,
10190        };
10191        pub const DEPENDENCIES_FIELD: &'static MessageField = &MessageField {
10192            name: "dependencies",
10193            json_name: "dependencies",
10194            number: 3i32,
10195            message_fields: None,
10196        };
10197    }
10198    impl MessageFields for SystemPackage {
10199        const FIELDS: &'static [&'static MessageField] = &[
10200            Self::VERSION_FIELD,
10201            Self::MODULES_FIELD,
10202            Self::DEPENDENCIES_FIELD,
10203        ];
10204    }
10205    impl SystemPackage {
10206        pub fn path_builder() -> SystemPackageFieldPathBuilder {
10207            SystemPackageFieldPathBuilder::new()
10208        }
10209    }
10210    pub struct SystemPackageFieldPathBuilder {
10211        path: Vec<&'static str>,
10212    }
10213    impl SystemPackageFieldPathBuilder {
10214        #[allow(clippy::new_without_default)]
10215        pub fn new() -> Self {
10216            Self { path: Default::default() }
10217        }
10218        #[doc(hidden)]
10219        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10220            Self { path: base }
10221        }
10222        pub fn finish(self) -> String {
10223            self.path.join(".")
10224        }
10225        pub fn version(mut self) -> String {
10226            self.path.push(SystemPackage::VERSION_FIELD.name);
10227            self.finish()
10228        }
10229        pub fn modules(mut self) -> String {
10230            self.path.push(SystemPackage::MODULES_FIELD.name);
10231            self.finish()
10232        }
10233        pub fn dependencies(mut self) -> String {
10234            self.path.push(SystemPackage::DEPENDENCIES_FIELD.name);
10235            self.finish()
10236        }
10237    }
10238    impl GenesisTransaction {
10239        pub const OBJECTS_FIELD: &'static MessageField = &MessageField {
10240            name: "objects",
10241            json_name: "objects",
10242            number: 1i32,
10243            message_fields: Some(Object::FIELDS),
10244        };
10245    }
10246    impl MessageFields for GenesisTransaction {
10247        const FIELDS: &'static [&'static MessageField] = &[Self::OBJECTS_FIELD];
10248    }
10249    impl GenesisTransaction {
10250        pub fn path_builder() -> GenesisTransactionFieldPathBuilder {
10251            GenesisTransactionFieldPathBuilder::new()
10252        }
10253    }
10254    pub struct GenesisTransactionFieldPathBuilder {
10255        path: Vec<&'static str>,
10256    }
10257    impl GenesisTransactionFieldPathBuilder {
10258        #[allow(clippy::new_without_default)]
10259        pub fn new() -> Self {
10260            Self { path: Default::default() }
10261        }
10262        #[doc(hidden)]
10263        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10264            Self { path: base }
10265        }
10266        pub fn finish(self) -> String {
10267            self.path.join(".")
10268        }
10269        pub fn objects(mut self) -> ObjectFieldPathBuilder {
10270            self.path.push(GenesisTransaction::OBJECTS_FIELD.name);
10271            ObjectFieldPathBuilder::new_with_base(self.path)
10272        }
10273    }
10274    impl ConsensusCommitPrologue {
10275        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
10276            name: "epoch",
10277            json_name: "epoch",
10278            number: 1i32,
10279            message_fields: None,
10280        };
10281        pub const ROUND_FIELD: &'static MessageField = &MessageField {
10282            name: "round",
10283            json_name: "round",
10284            number: 2i32,
10285            message_fields: None,
10286        };
10287        pub const COMMIT_TIMESTAMP_FIELD: &'static MessageField = &MessageField {
10288            name: "commit_timestamp",
10289            json_name: "commitTimestamp",
10290            number: 3i32,
10291            message_fields: None,
10292        };
10293        pub const CONSENSUS_COMMIT_DIGEST_FIELD: &'static MessageField = &MessageField {
10294            name: "consensus_commit_digest",
10295            json_name: "consensusCommitDigest",
10296            number: 4i32,
10297            message_fields: None,
10298        };
10299        pub const SUB_DAG_INDEX_FIELD: &'static MessageField = &MessageField {
10300            name: "sub_dag_index",
10301            json_name: "subDagIndex",
10302            number: 5i32,
10303            message_fields: None,
10304        };
10305        pub const CONSENSUS_DETERMINED_VERSION_ASSIGNMENTS_FIELD: &'static MessageField = &MessageField {
10306            name: "consensus_determined_version_assignments",
10307            json_name: "consensusDeterminedVersionAssignments",
10308            number: 6i32,
10309            message_fields: Some(ConsensusDeterminedVersionAssignments::FIELDS),
10310        };
10311        pub const ADDITIONAL_STATE_DIGEST_FIELD: &'static MessageField = &MessageField {
10312            name: "additional_state_digest",
10313            json_name: "additionalStateDigest",
10314            number: 7i32,
10315            message_fields: None,
10316        };
10317    }
10318    impl MessageFields for ConsensusCommitPrologue {
10319        const FIELDS: &'static [&'static MessageField] = &[
10320            Self::EPOCH_FIELD,
10321            Self::ROUND_FIELD,
10322            Self::COMMIT_TIMESTAMP_FIELD,
10323            Self::CONSENSUS_COMMIT_DIGEST_FIELD,
10324            Self::SUB_DAG_INDEX_FIELD,
10325            Self::CONSENSUS_DETERMINED_VERSION_ASSIGNMENTS_FIELD,
10326            Self::ADDITIONAL_STATE_DIGEST_FIELD,
10327        ];
10328    }
10329    impl ConsensusCommitPrologue {
10330        pub fn path_builder() -> ConsensusCommitPrologueFieldPathBuilder {
10331            ConsensusCommitPrologueFieldPathBuilder::new()
10332        }
10333    }
10334    pub struct ConsensusCommitPrologueFieldPathBuilder {
10335        path: Vec<&'static str>,
10336    }
10337    impl ConsensusCommitPrologueFieldPathBuilder {
10338        #[allow(clippy::new_without_default)]
10339        pub fn new() -> Self {
10340            Self { path: Default::default() }
10341        }
10342        #[doc(hidden)]
10343        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10344            Self { path: base }
10345        }
10346        pub fn finish(self) -> String {
10347            self.path.join(".")
10348        }
10349        pub fn epoch(mut self) -> String {
10350            self.path.push(ConsensusCommitPrologue::EPOCH_FIELD.name);
10351            self.finish()
10352        }
10353        pub fn round(mut self) -> String {
10354            self.path.push(ConsensusCommitPrologue::ROUND_FIELD.name);
10355            self.finish()
10356        }
10357        pub fn commit_timestamp(mut self) -> String {
10358            self.path.push(ConsensusCommitPrologue::COMMIT_TIMESTAMP_FIELD.name);
10359            self.finish()
10360        }
10361        pub fn consensus_commit_digest(mut self) -> String {
10362            self.path.push(ConsensusCommitPrologue::CONSENSUS_COMMIT_DIGEST_FIELD.name);
10363            self.finish()
10364        }
10365        pub fn sub_dag_index(mut self) -> String {
10366            self.path.push(ConsensusCommitPrologue::SUB_DAG_INDEX_FIELD.name);
10367            self.finish()
10368        }
10369        pub fn consensus_determined_version_assignments(
10370            mut self,
10371        ) -> ConsensusDeterminedVersionAssignmentsFieldPathBuilder {
10372            self.path
10373                .push(
10374                    ConsensusCommitPrologue::CONSENSUS_DETERMINED_VERSION_ASSIGNMENTS_FIELD
10375                        .name,
10376                );
10377            ConsensusDeterminedVersionAssignmentsFieldPathBuilder::new_with_base(
10378                self.path,
10379            )
10380        }
10381        pub fn additional_state_digest(mut self) -> String {
10382            self.path.push(ConsensusCommitPrologue::ADDITIONAL_STATE_DIGEST_FIELD.name);
10383            self.finish()
10384        }
10385    }
10386    impl VersionAssignment {
10387        pub const OBJECT_ID_FIELD: &'static MessageField = &MessageField {
10388            name: "object_id",
10389            json_name: "objectId",
10390            number: 1i32,
10391            message_fields: None,
10392        };
10393        pub const START_VERSION_FIELD: &'static MessageField = &MessageField {
10394            name: "start_version",
10395            json_name: "startVersion",
10396            number: 2i32,
10397            message_fields: None,
10398        };
10399        pub const VERSION_FIELD: &'static MessageField = &MessageField {
10400            name: "version",
10401            json_name: "version",
10402            number: 3i32,
10403            message_fields: None,
10404        };
10405    }
10406    impl MessageFields for VersionAssignment {
10407        const FIELDS: &'static [&'static MessageField] = &[
10408            Self::OBJECT_ID_FIELD,
10409            Self::START_VERSION_FIELD,
10410            Self::VERSION_FIELD,
10411        ];
10412    }
10413    impl VersionAssignment {
10414        pub fn path_builder() -> VersionAssignmentFieldPathBuilder {
10415            VersionAssignmentFieldPathBuilder::new()
10416        }
10417    }
10418    pub struct VersionAssignmentFieldPathBuilder {
10419        path: Vec<&'static str>,
10420    }
10421    impl VersionAssignmentFieldPathBuilder {
10422        #[allow(clippy::new_without_default)]
10423        pub fn new() -> Self {
10424            Self { path: Default::default() }
10425        }
10426        #[doc(hidden)]
10427        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10428            Self { path: base }
10429        }
10430        pub fn finish(self) -> String {
10431            self.path.join(".")
10432        }
10433        pub fn object_id(mut self) -> String {
10434            self.path.push(VersionAssignment::OBJECT_ID_FIELD.name);
10435            self.finish()
10436        }
10437        pub fn start_version(mut self) -> String {
10438            self.path.push(VersionAssignment::START_VERSION_FIELD.name);
10439            self.finish()
10440        }
10441        pub fn version(mut self) -> String {
10442            self.path.push(VersionAssignment::VERSION_FIELD.name);
10443            self.finish()
10444        }
10445    }
10446    impl CanceledTransaction {
10447        pub const DIGEST_FIELD: &'static MessageField = &MessageField {
10448            name: "digest",
10449            json_name: "digest",
10450            number: 1i32,
10451            message_fields: None,
10452        };
10453        pub const VERSION_ASSIGNMENTS_FIELD: &'static MessageField = &MessageField {
10454            name: "version_assignments",
10455            json_name: "versionAssignments",
10456            number: 2i32,
10457            message_fields: Some(VersionAssignment::FIELDS),
10458        };
10459    }
10460    impl MessageFields for CanceledTransaction {
10461        const FIELDS: &'static [&'static MessageField] = &[
10462            Self::DIGEST_FIELD,
10463            Self::VERSION_ASSIGNMENTS_FIELD,
10464        ];
10465    }
10466    impl CanceledTransaction {
10467        pub fn path_builder() -> CanceledTransactionFieldPathBuilder {
10468            CanceledTransactionFieldPathBuilder::new()
10469        }
10470    }
10471    pub struct CanceledTransactionFieldPathBuilder {
10472        path: Vec<&'static str>,
10473    }
10474    impl CanceledTransactionFieldPathBuilder {
10475        #[allow(clippy::new_without_default)]
10476        pub fn new() -> Self {
10477            Self { path: Default::default() }
10478        }
10479        #[doc(hidden)]
10480        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10481            Self { path: base }
10482        }
10483        pub fn finish(self) -> String {
10484            self.path.join(".")
10485        }
10486        pub fn digest(mut self) -> String {
10487            self.path.push(CanceledTransaction::DIGEST_FIELD.name);
10488            self.finish()
10489        }
10490        pub fn version_assignments(mut self) -> VersionAssignmentFieldPathBuilder {
10491            self.path.push(CanceledTransaction::VERSION_ASSIGNMENTS_FIELD.name);
10492            VersionAssignmentFieldPathBuilder::new_with_base(self.path)
10493        }
10494    }
10495    impl ConsensusDeterminedVersionAssignments {
10496        pub const VERSION_FIELD: &'static MessageField = &MessageField {
10497            name: "version",
10498            json_name: "version",
10499            number: 1i32,
10500            message_fields: None,
10501        };
10502        pub const CANCELED_TRANSACTIONS_FIELD: &'static MessageField = &MessageField {
10503            name: "canceled_transactions",
10504            json_name: "canceledTransactions",
10505            number: 3i32,
10506            message_fields: Some(CanceledTransaction::FIELDS),
10507        };
10508    }
10509    impl MessageFields for ConsensusDeterminedVersionAssignments {
10510        const FIELDS: &'static [&'static MessageField] = &[
10511            Self::VERSION_FIELD,
10512            Self::CANCELED_TRANSACTIONS_FIELD,
10513        ];
10514    }
10515    impl ConsensusDeterminedVersionAssignments {
10516        pub fn path_builder() -> ConsensusDeterminedVersionAssignmentsFieldPathBuilder {
10517            ConsensusDeterminedVersionAssignmentsFieldPathBuilder::new()
10518        }
10519    }
10520    pub struct ConsensusDeterminedVersionAssignmentsFieldPathBuilder {
10521        path: Vec<&'static str>,
10522    }
10523    impl ConsensusDeterminedVersionAssignmentsFieldPathBuilder {
10524        #[allow(clippy::new_without_default)]
10525        pub fn new() -> Self {
10526            Self { path: Default::default() }
10527        }
10528        #[doc(hidden)]
10529        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10530            Self { path: base }
10531        }
10532        pub fn finish(self) -> String {
10533            self.path.join(".")
10534        }
10535        pub fn version(mut self) -> String {
10536            self.path.push(ConsensusDeterminedVersionAssignments::VERSION_FIELD.name);
10537            self.finish()
10538        }
10539        pub fn canceled_transactions(mut self) -> CanceledTransactionFieldPathBuilder {
10540            self.path
10541                .push(
10542                    ConsensusDeterminedVersionAssignments::CANCELED_TRANSACTIONS_FIELD
10543                        .name,
10544                );
10545            CanceledTransactionFieldPathBuilder::new_with_base(self.path)
10546        }
10547    }
10548    impl AuthenticatorStateUpdate {
10549        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
10550            name: "epoch",
10551            json_name: "epoch",
10552            number: 1i32,
10553            message_fields: None,
10554        };
10555        pub const ROUND_FIELD: &'static MessageField = &MessageField {
10556            name: "round",
10557            json_name: "round",
10558            number: 2i32,
10559            message_fields: None,
10560        };
10561        pub const NEW_ACTIVE_JWKS_FIELD: &'static MessageField = &MessageField {
10562            name: "new_active_jwks",
10563            json_name: "newActiveJwks",
10564            number: 3i32,
10565            message_fields: Some(ActiveJwk::FIELDS),
10566        };
10567        pub const AUTHENTICATOR_OBJECT_INITIAL_SHARED_VERSION_FIELD: &'static MessageField = &MessageField {
10568            name: "authenticator_object_initial_shared_version",
10569            json_name: "authenticatorObjectInitialSharedVersion",
10570            number: 4i32,
10571            message_fields: None,
10572        };
10573    }
10574    impl MessageFields for AuthenticatorStateUpdate {
10575        const FIELDS: &'static [&'static MessageField] = &[
10576            Self::EPOCH_FIELD,
10577            Self::ROUND_FIELD,
10578            Self::NEW_ACTIVE_JWKS_FIELD,
10579            Self::AUTHENTICATOR_OBJECT_INITIAL_SHARED_VERSION_FIELD,
10580        ];
10581    }
10582    impl AuthenticatorStateUpdate {
10583        pub fn path_builder() -> AuthenticatorStateUpdateFieldPathBuilder {
10584            AuthenticatorStateUpdateFieldPathBuilder::new()
10585        }
10586    }
10587    pub struct AuthenticatorStateUpdateFieldPathBuilder {
10588        path: Vec<&'static str>,
10589    }
10590    impl AuthenticatorStateUpdateFieldPathBuilder {
10591        #[allow(clippy::new_without_default)]
10592        pub fn new() -> Self {
10593            Self { path: Default::default() }
10594        }
10595        #[doc(hidden)]
10596        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10597            Self { path: base }
10598        }
10599        pub fn finish(self) -> String {
10600            self.path.join(".")
10601        }
10602        pub fn epoch(mut self) -> String {
10603            self.path.push(AuthenticatorStateUpdate::EPOCH_FIELD.name);
10604            self.finish()
10605        }
10606        pub fn round(mut self) -> String {
10607            self.path.push(AuthenticatorStateUpdate::ROUND_FIELD.name);
10608            self.finish()
10609        }
10610        pub fn new_active_jwks(mut self) -> ActiveJwkFieldPathBuilder {
10611            self.path.push(AuthenticatorStateUpdate::NEW_ACTIVE_JWKS_FIELD.name);
10612            ActiveJwkFieldPathBuilder::new_with_base(self.path)
10613        }
10614        pub fn authenticator_object_initial_shared_version(mut self) -> String {
10615            self.path
10616                .push(
10617                    AuthenticatorStateUpdate::AUTHENTICATOR_OBJECT_INITIAL_SHARED_VERSION_FIELD
10618                        .name,
10619                );
10620            self.finish()
10621        }
10622    }
10623    impl ActiveJwk {
10624        pub const ID_FIELD: &'static MessageField = &MessageField {
10625            name: "id",
10626            json_name: "id",
10627            number: 1i32,
10628            message_fields: Some(JwkId::FIELDS),
10629        };
10630        pub const JWK_FIELD: &'static MessageField = &MessageField {
10631            name: "jwk",
10632            json_name: "jwk",
10633            number: 2i32,
10634            message_fields: Some(Jwk::FIELDS),
10635        };
10636        pub const EPOCH_FIELD: &'static MessageField = &MessageField {
10637            name: "epoch",
10638            json_name: "epoch",
10639            number: 3i32,
10640            message_fields: None,
10641        };
10642    }
10643    impl MessageFields for ActiveJwk {
10644        const FIELDS: &'static [&'static MessageField] = &[
10645            Self::ID_FIELD,
10646            Self::JWK_FIELD,
10647            Self::EPOCH_FIELD,
10648        ];
10649    }
10650    impl ActiveJwk {
10651        pub fn path_builder() -> ActiveJwkFieldPathBuilder {
10652            ActiveJwkFieldPathBuilder::new()
10653        }
10654    }
10655    pub struct ActiveJwkFieldPathBuilder {
10656        path: Vec<&'static str>,
10657    }
10658    impl ActiveJwkFieldPathBuilder {
10659        #[allow(clippy::new_without_default)]
10660        pub fn new() -> Self {
10661            Self { path: Default::default() }
10662        }
10663        #[doc(hidden)]
10664        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10665            Self { path: base }
10666        }
10667        pub fn finish(self) -> String {
10668            self.path.join(".")
10669        }
10670        pub fn id(mut self) -> JwkIdFieldPathBuilder {
10671            self.path.push(ActiveJwk::ID_FIELD.name);
10672            JwkIdFieldPathBuilder::new_with_base(self.path)
10673        }
10674        pub fn jwk(mut self) -> JwkFieldPathBuilder {
10675            self.path.push(ActiveJwk::JWK_FIELD.name);
10676            JwkFieldPathBuilder::new_with_base(self.path)
10677        }
10678        pub fn epoch(mut self) -> String {
10679            self.path.push(ActiveJwk::EPOCH_FIELD.name);
10680            self.finish()
10681        }
10682    }
10683    impl EndOfEpochTransaction {
10684        pub const TRANSACTIONS_FIELD: &'static MessageField = &MessageField {
10685            name: "transactions",
10686            json_name: "transactions",
10687            number: 1i32,
10688            message_fields: Some(EndOfEpochTransactionKind::FIELDS),
10689        };
10690    }
10691    impl MessageFields for EndOfEpochTransaction {
10692        const FIELDS: &'static [&'static MessageField] = &[Self::TRANSACTIONS_FIELD];
10693    }
10694    impl EndOfEpochTransaction {
10695        pub fn path_builder() -> EndOfEpochTransactionFieldPathBuilder {
10696            EndOfEpochTransactionFieldPathBuilder::new()
10697        }
10698    }
10699    pub struct EndOfEpochTransactionFieldPathBuilder {
10700        path: Vec<&'static str>,
10701    }
10702    impl EndOfEpochTransactionFieldPathBuilder {
10703        #[allow(clippy::new_without_default)]
10704        pub fn new() -> Self {
10705            Self { path: Default::default() }
10706        }
10707        #[doc(hidden)]
10708        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10709            Self { path: base }
10710        }
10711        pub fn finish(self) -> String {
10712            self.path.join(".")
10713        }
10714        pub fn transactions(mut self) -> EndOfEpochTransactionKindFieldPathBuilder {
10715            self.path.push(EndOfEpochTransaction::TRANSACTIONS_FIELD.name);
10716            EndOfEpochTransactionKindFieldPathBuilder::new_with_base(self.path)
10717        }
10718    }
10719    impl EndOfEpochTransactionKind {
10720        pub const KIND_FIELD: &'static MessageField = &MessageField {
10721            name: "kind",
10722            json_name: "kind",
10723            number: 1i32,
10724            message_fields: None,
10725        };
10726        pub const CHANGE_EPOCH_FIELD: &'static MessageField = &MessageField {
10727            name: "change_epoch",
10728            json_name: "changeEpoch",
10729            number: 2i32,
10730            message_fields: Some(ChangeEpoch::FIELDS),
10731        };
10732        pub const AUTHENTICATOR_STATE_EXPIRE_FIELD: &'static MessageField = &MessageField {
10733            name: "authenticator_state_expire",
10734            json_name: "authenticatorStateExpire",
10735            number: 3i32,
10736            message_fields: Some(AuthenticatorStateExpire::FIELDS),
10737        };
10738        pub const EXECUTION_TIME_OBSERVATIONS_FIELD: &'static MessageField = &MessageField {
10739            name: "execution_time_observations",
10740            json_name: "executionTimeObservations",
10741            number: 4i32,
10742            message_fields: Some(ExecutionTimeObservations::FIELDS),
10743        };
10744        pub const BRIDGE_CHAIN_ID_FIELD: &'static MessageField = &MessageField {
10745            name: "bridge_chain_id",
10746            json_name: "bridgeChainId",
10747            number: 5i32,
10748            message_fields: None,
10749        };
10750        pub const BRIDGE_OBJECT_VERSION_FIELD: &'static MessageField = &MessageField {
10751            name: "bridge_object_version",
10752            json_name: "bridgeObjectVersion",
10753            number: 6i32,
10754            message_fields: None,
10755        };
10756    }
10757    impl MessageFields for EndOfEpochTransactionKind {
10758        const FIELDS: &'static [&'static MessageField] = &[
10759            Self::KIND_FIELD,
10760            Self::CHANGE_EPOCH_FIELD,
10761            Self::AUTHENTICATOR_STATE_EXPIRE_FIELD,
10762            Self::EXECUTION_TIME_OBSERVATIONS_FIELD,
10763            Self::BRIDGE_CHAIN_ID_FIELD,
10764            Self::BRIDGE_OBJECT_VERSION_FIELD,
10765        ];
10766    }
10767    impl EndOfEpochTransactionKind {
10768        pub fn path_builder() -> EndOfEpochTransactionKindFieldPathBuilder {
10769            EndOfEpochTransactionKindFieldPathBuilder::new()
10770        }
10771    }
10772    pub struct EndOfEpochTransactionKindFieldPathBuilder {
10773        path: Vec<&'static str>,
10774    }
10775    impl EndOfEpochTransactionKindFieldPathBuilder {
10776        #[allow(clippy::new_without_default)]
10777        pub fn new() -> Self {
10778            Self { path: Default::default() }
10779        }
10780        #[doc(hidden)]
10781        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10782            Self { path: base }
10783        }
10784        pub fn finish(self) -> String {
10785            self.path.join(".")
10786        }
10787        pub fn kind(mut self) -> String {
10788            self.path.push(EndOfEpochTransactionKind::KIND_FIELD.name);
10789            self.finish()
10790        }
10791        pub fn change_epoch(mut self) -> ChangeEpochFieldPathBuilder {
10792            self.path.push(EndOfEpochTransactionKind::CHANGE_EPOCH_FIELD.name);
10793            ChangeEpochFieldPathBuilder::new_with_base(self.path)
10794        }
10795        pub fn authenticator_state_expire(
10796            mut self,
10797        ) -> AuthenticatorStateExpireFieldPathBuilder {
10798            self.path
10799                .push(EndOfEpochTransactionKind::AUTHENTICATOR_STATE_EXPIRE_FIELD.name);
10800            AuthenticatorStateExpireFieldPathBuilder::new_with_base(self.path)
10801        }
10802        pub fn execution_time_observations(
10803            mut self,
10804        ) -> ExecutionTimeObservationsFieldPathBuilder {
10805            self.path
10806                .push(EndOfEpochTransactionKind::EXECUTION_TIME_OBSERVATIONS_FIELD.name);
10807            ExecutionTimeObservationsFieldPathBuilder::new_with_base(self.path)
10808        }
10809        pub fn bridge_chain_id(mut self) -> String {
10810            self.path.push(EndOfEpochTransactionKind::BRIDGE_CHAIN_ID_FIELD.name);
10811            self.finish()
10812        }
10813        pub fn bridge_object_version(mut self) -> String {
10814            self.path.push(EndOfEpochTransactionKind::BRIDGE_OBJECT_VERSION_FIELD.name);
10815            self.finish()
10816        }
10817    }
10818    impl AuthenticatorStateExpire {
10819        pub const MIN_EPOCH_FIELD: &'static MessageField = &MessageField {
10820            name: "min_epoch",
10821            json_name: "minEpoch",
10822            number: 1i32,
10823            message_fields: None,
10824        };
10825        pub const AUTHENTICATOR_OBJECT_INITIAL_SHARED_VERSION_FIELD: &'static MessageField = &MessageField {
10826            name: "authenticator_object_initial_shared_version",
10827            json_name: "authenticatorObjectInitialSharedVersion",
10828            number: 2i32,
10829            message_fields: None,
10830        };
10831    }
10832    impl MessageFields for AuthenticatorStateExpire {
10833        const FIELDS: &'static [&'static MessageField] = &[
10834            Self::MIN_EPOCH_FIELD,
10835            Self::AUTHENTICATOR_OBJECT_INITIAL_SHARED_VERSION_FIELD,
10836        ];
10837    }
10838    impl AuthenticatorStateExpire {
10839        pub fn path_builder() -> AuthenticatorStateExpireFieldPathBuilder {
10840            AuthenticatorStateExpireFieldPathBuilder::new()
10841        }
10842    }
10843    pub struct AuthenticatorStateExpireFieldPathBuilder {
10844        path: Vec<&'static str>,
10845    }
10846    impl AuthenticatorStateExpireFieldPathBuilder {
10847        #[allow(clippy::new_without_default)]
10848        pub fn new() -> Self {
10849            Self { path: Default::default() }
10850        }
10851        #[doc(hidden)]
10852        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10853            Self { path: base }
10854        }
10855        pub fn finish(self) -> String {
10856            self.path.join(".")
10857        }
10858        pub fn min_epoch(mut self) -> String {
10859            self.path.push(AuthenticatorStateExpire::MIN_EPOCH_FIELD.name);
10860            self.finish()
10861        }
10862        pub fn authenticator_object_initial_shared_version(mut self) -> String {
10863            self.path
10864                .push(
10865                    AuthenticatorStateExpire::AUTHENTICATOR_OBJECT_INITIAL_SHARED_VERSION_FIELD
10866                        .name,
10867                );
10868            self.finish()
10869        }
10870    }
10871    impl ExecutionTimeObservations {
10872        pub const VERSION_FIELD: &'static MessageField = &MessageField {
10873            name: "version",
10874            json_name: "version",
10875            number: 1i32,
10876            message_fields: None,
10877        };
10878        pub const OBSERVATIONS_FIELD: &'static MessageField = &MessageField {
10879            name: "observations",
10880            json_name: "observations",
10881            number: 2i32,
10882            message_fields: Some(ExecutionTimeObservation::FIELDS),
10883        };
10884    }
10885    impl MessageFields for ExecutionTimeObservations {
10886        const FIELDS: &'static [&'static MessageField] = &[
10887            Self::VERSION_FIELD,
10888            Self::OBSERVATIONS_FIELD,
10889        ];
10890    }
10891    impl ExecutionTimeObservations {
10892        pub fn path_builder() -> ExecutionTimeObservationsFieldPathBuilder {
10893            ExecutionTimeObservationsFieldPathBuilder::new()
10894        }
10895    }
10896    pub struct ExecutionTimeObservationsFieldPathBuilder {
10897        path: Vec<&'static str>,
10898    }
10899    impl ExecutionTimeObservationsFieldPathBuilder {
10900        #[allow(clippy::new_without_default)]
10901        pub fn new() -> Self {
10902            Self { path: Default::default() }
10903        }
10904        #[doc(hidden)]
10905        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10906            Self { path: base }
10907        }
10908        pub fn finish(self) -> String {
10909            self.path.join(".")
10910        }
10911        pub fn version(mut self) -> String {
10912            self.path.push(ExecutionTimeObservations::VERSION_FIELD.name);
10913            self.finish()
10914        }
10915        pub fn observations(mut self) -> ExecutionTimeObservationFieldPathBuilder {
10916            self.path.push(ExecutionTimeObservations::OBSERVATIONS_FIELD.name);
10917            ExecutionTimeObservationFieldPathBuilder::new_with_base(self.path)
10918        }
10919    }
10920    impl ExecutionTimeObservation {
10921        pub const KIND_FIELD: &'static MessageField = &MessageField {
10922            name: "kind",
10923            json_name: "kind",
10924            number: 1i32,
10925            message_fields: None,
10926        };
10927        pub const MOVE_ENTRY_POINT_FIELD: &'static MessageField = &MessageField {
10928            name: "move_entry_point",
10929            json_name: "moveEntryPoint",
10930            number: 2i32,
10931            message_fields: Some(MoveCall::FIELDS),
10932        };
10933        pub const VALIDATOR_OBSERVATIONS_FIELD: &'static MessageField = &MessageField {
10934            name: "validator_observations",
10935            json_name: "validatorObservations",
10936            number: 3i32,
10937            message_fields: Some(ValidatorExecutionTimeObservation::FIELDS),
10938        };
10939    }
10940    impl MessageFields for ExecutionTimeObservation {
10941        const FIELDS: &'static [&'static MessageField] = &[
10942            Self::KIND_FIELD,
10943            Self::MOVE_ENTRY_POINT_FIELD,
10944            Self::VALIDATOR_OBSERVATIONS_FIELD,
10945        ];
10946    }
10947    impl ExecutionTimeObservation {
10948        pub fn path_builder() -> ExecutionTimeObservationFieldPathBuilder {
10949            ExecutionTimeObservationFieldPathBuilder::new()
10950        }
10951    }
10952    pub struct ExecutionTimeObservationFieldPathBuilder {
10953        path: Vec<&'static str>,
10954    }
10955    impl ExecutionTimeObservationFieldPathBuilder {
10956        #[allow(clippy::new_without_default)]
10957        pub fn new() -> Self {
10958            Self { path: Default::default() }
10959        }
10960        #[doc(hidden)]
10961        pub fn new_with_base(base: Vec<&'static str>) -> Self {
10962            Self { path: base }
10963        }
10964        pub fn finish(self) -> String {
10965            self.path.join(".")
10966        }
10967        pub fn kind(mut self) -> String {
10968            self.path.push(ExecutionTimeObservation::KIND_FIELD.name);
10969            self.finish()
10970        }
10971        pub fn move_entry_point(mut self) -> MoveCallFieldPathBuilder {
10972            self.path.push(ExecutionTimeObservation::MOVE_ENTRY_POINT_FIELD.name);
10973            MoveCallFieldPathBuilder::new_with_base(self.path)
10974        }
10975        pub fn validator_observations(
10976            mut self,
10977        ) -> ValidatorExecutionTimeObservationFieldPathBuilder {
10978            self.path.push(ExecutionTimeObservation::VALIDATOR_OBSERVATIONS_FIELD.name);
10979            ValidatorExecutionTimeObservationFieldPathBuilder::new_with_base(self.path)
10980        }
10981    }
10982    impl ValidatorExecutionTimeObservation {
10983        pub const VALIDATOR_FIELD: &'static MessageField = &MessageField {
10984            name: "validator",
10985            json_name: "validator",
10986            number: 1i32,
10987            message_fields: None,
10988        };
10989        pub const DURATION_FIELD: &'static MessageField = &MessageField {
10990            name: "duration",
10991            json_name: "duration",
10992            number: 2i32,
10993            message_fields: None,
10994        };
10995    }
10996    impl MessageFields for ValidatorExecutionTimeObservation {
10997        const FIELDS: &'static [&'static MessageField] = &[
10998            Self::VALIDATOR_FIELD,
10999            Self::DURATION_FIELD,
11000        ];
11001    }
11002    impl ValidatorExecutionTimeObservation {
11003        pub fn path_builder() -> ValidatorExecutionTimeObservationFieldPathBuilder {
11004            ValidatorExecutionTimeObservationFieldPathBuilder::new()
11005        }
11006    }
11007    pub struct ValidatorExecutionTimeObservationFieldPathBuilder {
11008        path: Vec<&'static str>,
11009    }
11010    impl ValidatorExecutionTimeObservationFieldPathBuilder {
11011        #[allow(clippy::new_without_default)]
11012        pub fn new() -> Self {
11013            Self { path: Default::default() }
11014        }
11015        #[doc(hidden)]
11016        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11017            Self { path: base }
11018        }
11019        pub fn finish(self) -> String {
11020            self.path.join(".")
11021        }
11022        pub fn validator(mut self) -> String {
11023            self.path.push(ValidatorExecutionTimeObservation::VALIDATOR_FIELD.name);
11024            self.finish()
11025        }
11026        pub fn duration(mut self) -> String {
11027            self.path.push(ValidatorExecutionTimeObservation::DURATION_FIELD.name);
11028            self.finish()
11029        }
11030    }
11031    impl ExecuteTransactionRequest {
11032        pub const TRANSACTION_FIELD: &'static MessageField = &MessageField {
11033            name: "transaction",
11034            json_name: "transaction",
11035            number: 1i32,
11036            message_fields: Some(Transaction::FIELDS),
11037        };
11038        pub const SIGNATURES_FIELD: &'static MessageField = &MessageField {
11039            name: "signatures",
11040            json_name: "signatures",
11041            number: 2i32,
11042            message_fields: Some(UserSignature::FIELDS),
11043        };
11044        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
11045            name: "read_mask",
11046            json_name: "readMask",
11047            number: 3i32,
11048            message_fields: None,
11049        };
11050    }
11051    impl MessageFields for ExecuteTransactionRequest {
11052        const FIELDS: &'static [&'static MessageField] = &[
11053            Self::TRANSACTION_FIELD,
11054            Self::SIGNATURES_FIELD,
11055            Self::READ_MASK_FIELD,
11056        ];
11057    }
11058    impl ExecuteTransactionRequest {
11059        pub fn path_builder() -> ExecuteTransactionRequestFieldPathBuilder {
11060            ExecuteTransactionRequestFieldPathBuilder::new()
11061        }
11062    }
11063    pub struct ExecuteTransactionRequestFieldPathBuilder {
11064        path: Vec<&'static str>,
11065    }
11066    impl ExecuteTransactionRequestFieldPathBuilder {
11067        #[allow(clippy::new_without_default)]
11068        pub fn new() -> Self {
11069            Self { path: Default::default() }
11070        }
11071        #[doc(hidden)]
11072        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11073            Self { path: base }
11074        }
11075        pub fn finish(self) -> String {
11076            self.path.join(".")
11077        }
11078        pub fn transaction(mut self) -> TransactionFieldPathBuilder {
11079            self.path.push(ExecuteTransactionRequest::TRANSACTION_FIELD.name);
11080            TransactionFieldPathBuilder::new_with_base(self.path)
11081        }
11082        pub fn signatures(mut self) -> UserSignatureFieldPathBuilder {
11083            self.path.push(ExecuteTransactionRequest::SIGNATURES_FIELD.name);
11084            UserSignatureFieldPathBuilder::new_with_base(self.path)
11085        }
11086        pub fn read_mask(mut self) -> String {
11087            self.path.push(ExecuteTransactionRequest::READ_MASK_FIELD.name);
11088            self.finish()
11089        }
11090    }
11091    impl ExecuteTransactionResponse {
11092        pub const TRANSACTION_FIELD: &'static MessageField = &MessageField {
11093            name: "transaction",
11094            json_name: "transaction",
11095            number: 1i32,
11096            message_fields: Some(ExecutedTransaction::FIELDS),
11097        };
11098    }
11099    impl MessageFields for ExecuteTransactionResponse {
11100        const FIELDS: &'static [&'static MessageField] = &[Self::TRANSACTION_FIELD];
11101    }
11102    impl ExecuteTransactionResponse {
11103        pub fn path_builder() -> ExecuteTransactionResponseFieldPathBuilder {
11104            ExecuteTransactionResponseFieldPathBuilder::new()
11105        }
11106    }
11107    pub struct ExecuteTransactionResponseFieldPathBuilder {
11108        path: Vec<&'static str>,
11109    }
11110    impl ExecuteTransactionResponseFieldPathBuilder {
11111        #[allow(clippy::new_without_default)]
11112        pub fn new() -> Self {
11113            Self { path: Default::default() }
11114        }
11115        #[doc(hidden)]
11116        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11117            Self { path: base }
11118        }
11119        pub fn finish(self) -> String {
11120            self.path.join(".")
11121        }
11122        pub fn transaction(mut self) -> ExecutedTransactionFieldPathBuilder {
11123            self.path.push(ExecuteTransactionResponse::TRANSACTION_FIELD.name);
11124            ExecutedTransactionFieldPathBuilder::new_with_base(self.path)
11125        }
11126    }
11127    impl SimulateTransactionRequest {
11128        pub const TRANSACTION_FIELD: &'static MessageField = &MessageField {
11129            name: "transaction",
11130            json_name: "transaction",
11131            number: 1i32,
11132            message_fields: Some(Transaction::FIELDS),
11133        };
11134        pub const READ_MASK_FIELD: &'static MessageField = &MessageField {
11135            name: "read_mask",
11136            json_name: "readMask",
11137            number: 2i32,
11138            message_fields: None,
11139        };
11140        pub const CHECKS_FIELD: &'static MessageField = &MessageField {
11141            name: "checks",
11142            json_name: "checks",
11143            number: 3i32,
11144            message_fields: None,
11145        };
11146        pub const DO_GAS_SELECTION_FIELD: &'static MessageField = &MessageField {
11147            name: "do_gas_selection",
11148            json_name: "doGasSelection",
11149            number: 4i32,
11150            message_fields: None,
11151        };
11152    }
11153    impl MessageFields for SimulateTransactionRequest {
11154        const FIELDS: &'static [&'static MessageField] = &[
11155            Self::TRANSACTION_FIELD,
11156            Self::READ_MASK_FIELD,
11157            Self::CHECKS_FIELD,
11158            Self::DO_GAS_SELECTION_FIELD,
11159        ];
11160    }
11161    impl SimulateTransactionRequest {
11162        pub fn path_builder() -> SimulateTransactionRequestFieldPathBuilder {
11163            SimulateTransactionRequestFieldPathBuilder::new()
11164        }
11165    }
11166    pub struct SimulateTransactionRequestFieldPathBuilder {
11167        path: Vec<&'static str>,
11168    }
11169    impl SimulateTransactionRequestFieldPathBuilder {
11170        #[allow(clippy::new_without_default)]
11171        pub fn new() -> Self {
11172            Self { path: Default::default() }
11173        }
11174        #[doc(hidden)]
11175        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11176            Self { path: base }
11177        }
11178        pub fn finish(self) -> String {
11179            self.path.join(".")
11180        }
11181        pub fn transaction(mut self) -> TransactionFieldPathBuilder {
11182            self.path.push(SimulateTransactionRequest::TRANSACTION_FIELD.name);
11183            TransactionFieldPathBuilder::new_with_base(self.path)
11184        }
11185        pub fn read_mask(mut self) -> String {
11186            self.path.push(SimulateTransactionRequest::READ_MASK_FIELD.name);
11187            self.finish()
11188        }
11189        pub fn checks(mut self) -> String {
11190            self.path.push(SimulateTransactionRequest::CHECKS_FIELD.name);
11191            self.finish()
11192        }
11193        pub fn do_gas_selection(mut self) -> String {
11194            self.path.push(SimulateTransactionRequest::DO_GAS_SELECTION_FIELD.name);
11195            self.finish()
11196        }
11197    }
11198    impl SimulateTransactionResponse {
11199        pub const TRANSACTION_FIELD: &'static MessageField = &MessageField {
11200            name: "transaction",
11201            json_name: "transaction",
11202            number: 1i32,
11203            message_fields: Some(ExecutedTransaction::FIELDS),
11204        };
11205        pub const COMMAND_OUTPUTS_FIELD: &'static MessageField = &MessageField {
11206            name: "command_outputs",
11207            json_name: "commandOutputs",
11208            number: 2i32,
11209            message_fields: Some(CommandResult::FIELDS),
11210        };
11211    }
11212    impl MessageFields for SimulateTransactionResponse {
11213        const FIELDS: &'static [&'static MessageField] = &[
11214            Self::TRANSACTION_FIELD,
11215            Self::COMMAND_OUTPUTS_FIELD,
11216        ];
11217    }
11218    impl SimulateTransactionResponse {
11219        pub fn path_builder() -> SimulateTransactionResponseFieldPathBuilder {
11220            SimulateTransactionResponseFieldPathBuilder::new()
11221        }
11222    }
11223    pub struct SimulateTransactionResponseFieldPathBuilder {
11224        path: Vec<&'static str>,
11225    }
11226    impl SimulateTransactionResponseFieldPathBuilder {
11227        #[allow(clippy::new_without_default)]
11228        pub fn new() -> Self {
11229            Self { path: Default::default() }
11230        }
11231        #[doc(hidden)]
11232        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11233            Self { path: base }
11234        }
11235        pub fn finish(self) -> String {
11236            self.path.join(".")
11237        }
11238        pub fn transaction(mut self) -> ExecutedTransactionFieldPathBuilder {
11239            self.path.push(SimulateTransactionResponse::TRANSACTION_FIELD.name);
11240            ExecutedTransactionFieldPathBuilder::new_with_base(self.path)
11241        }
11242        pub fn command_outputs(mut self) -> CommandResultFieldPathBuilder {
11243            self.path.push(SimulateTransactionResponse::COMMAND_OUTPUTS_FIELD.name);
11244            CommandResultFieldPathBuilder::new_with_base(self.path)
11245        }
11246    }
11247    impl CommandResult {
11248        pub const RETURN_VALUES_FIELD: &'static MessageField = &MessageField {
11249            name: "return_values",
11250            json_name: "returnValues",
11251            number: 1i32,
11252            message_fields: Some(CommandOutput::FIELDS),
11253        };
11254        pub const MUTATED_BY_REF_FIELD: &'static MessageField = &MessageField {
11255            name: "mutated_by_ref",
11256            json_name: "mutatedByRef",
11257            number: 2i32,
11258            message_fields: Some(CommandOutput::FIELDS),
11259        };
11260    }
11261    impl MessageFields for CommandResult {
11262        const FIELDS: &'static [&'static MessageField] = &[
11263            Self::RETURN_VALUES_FIELD,
11264            Self::MUTATED_BY_REF_FIELD,
11265        ];
11266    }
11267    impl CommandResult {
11268        pub fn path_builder() -> CommandResultFieldPathBuilder {
11269            CommandResultFieldPathBuilder::new()
11270        }
11271    }
11272    pub struct CommandResultFieldPathBuilder {
11273        path: Vec<&'static str>,
11274    }
11275    impl CommandResultFieldPathBuilder {
11276        #[allow(clippy::new_without_default)]
11277        pub fn new() -> Self {
11278            Self { path: Default::default() }
11279        }
11280        #[doc(hidden)]
11281        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11282            Self { path: base }
11283        }
11284        pub fn finish(self) -> String {
11285            self.path.join(".")
11286        }
11287        pub fn return_values(mut self) -> CommandOutputFieldPathBuilder {
11288            self.path.push(CommandResult::RETURN_VALUES_FIELD.name);
11289            CommandOutputFieldPathBuilder::new_with_base(self.path)
11290        }
11291        pub fn mutated_by_ref(mut self) -> CommandOutputFieldPathBuilder {
11292            self.path.push(CommandResult::MUTATED_BY_REF_FIELD.name);
11293            CommandOutputFieldPathBuilder::new_with_base(self.path)
11294        }
11295    }
11296    impl CommandOutput {
11297        pub const ARGUMENT_FIELD: &'static MessageField = &MessageField {
11298            name: "argument",
11299            json_name: "argument",
11300            number: 1i32,
11301            message_fields: Some(Argument::FIELDS),
11302        };
11303        pub const VALUE_FIELD: &'static MessageField = &MessageField {
11304            name: "value",
11305            json_name: "value",
11306            number: 2i32,
11307            message_fields: Some(Bcs::FIELDS),
11308        };
11309        pub const JSON_FIELD: &'static MessageField = &MessageField {
11310            name: "json",
11311            json_name: "json",
11312            number: 3i32,
11313            message_fields: None,
11314        };
11315    }
11316    impl MessageFields for CommandOutput {
11317        const FIELDS: &'static [&'static MessageField] = &[
11318            Self::ARGUMENT_FIELD,
11319            Self::VALUE_FIELD,
11320            Self::JSON_FIELD,
11321        ];
11322    }
11323    impl CommandOutput {
11324        pub fn path_builder() -> CommandOutputFieldPathBuilder {
11325            CommandOutputFieldPathBuilder::new()
11326        }
11327    }
11328    pub struct CommandOutputFieldPathBuilder {
11329        path: Vec<&'static str>,
11330    }
11331    impl CommandOutputFieldPathBuilder {
11332        #[allow(clippy::new_without_default)]
11333        pub fn new() -> Self {
11334            Self { path: Default::default() }
11335        }
11336        #[doc(hidden)]
11337        pub fn new_with_base(base: Vec<&'static str>) -> Self {
11338            Self { path: base }
11339        }
11340        pub fn finish(self) -> String {
11341            self.path.join(".")
11342        }
11343        pub fn argument(mut self) -> ArgumentFieldPathBuilder {
11344            self.path.push(CommandOutput::ARGUMENT_FIELD.name);
11345            ArgumentFieldPathBuilder::new_with_base(self.path)
11346        }
11347        pub fn value(mut self) -> BcsFieldPathBuilder {
11348            self.path.push(CommandOutput::VALUE_FIELD.name);
11349            BcsFieldPathBuilder::new_with_base(self.path)
11350        }
11351        pub fn json(mut self) -> String {
11352            self.path.push(CommandOutput::JSON_FIELD.name);
11353            self.finish()
11354        }
11355    }
11356}