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