near_openapi_types/
lib.rs

1#[allow(unused_imports)]
2use progenitor_client::{encode_path, ClientHooks, OperationInfo, RequestBuilderExt};
3#[allow(unused_imports)]
4pub use progenitor_client::{ByteStream, ClientInfo, Error, ResponseValue};
5pub use near_account_id::AccountId;
6    #[doc = r" Error types."]
7    pub mod error {
8        #[doc = r" Error from a `TryFrom` or `FromStr` implementation."]
9        pub struct ConversionError(::std::borrow::Cow<'static, str>);
10        impl ::std::error::Error for ConversionError {}
11        impl ::std::fmt::Display for ConversionError {
12            fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> Result<(), ::std::fmt::Error> {
13                ::std::fmt::Display::fmt(&self.0, f)
14            }
15        }
16        impl ::std::fmt::Debug for ConversionError {
17            fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> Result<(), ::std::fmt::Error> {
18                ::std::fmt::Debug::fmt(&self.0, f)
19            }
20        }
21        impl From<&'static str> for ConversionError {
22            fn from(value: &'static str) -> Self {
23                Self(value.into())
24            }
25        }
26        impl From<String> for ConversionError {
27            fn from(value: String) -> Self {
28                Self(value.into())
29            }
30        }
31    }
32    #[doc = "Access key provides limited access to an account. Each access key belongs to some account and\n is identified by a unique (within the account) public key. One account may have large number of\n access keys. Access keys allow to act on behalf of the account by restricting transactions\n that can be issued.\n `account_id,public_key` is a key in the state"]
33    #[doc = r""]
34    #[doc = r" <details><summary>JSON schema</summary>"]
35    #[doc = r""]
36    #[doc = r" ```json"]
37    #[doc = "{"]
38    #[doc = "  \"description\": \"Access key provides limited access to an account. Each access key belongs to some account and\\n is identified by a unique (within the account) public key. One account may have large number of\\n access keys. Access keys allow to act on behalf of the account by restricting transactions\\n that can be issued.\\n `account_id,public_key` is a key in the state\","]
39    #[doc = "  \"type\": \"object\","]
40    #[doc = "  \"required\": ["]
41    #[doc = "    \"nonce\","]
42    #[doc = "    \"permission\""]
43    #[doc = "  ],"]
44    #[doc = "  \"properties\": {"]
45    #[doc = "    \"nonce\": {"]
46    #[doc = "      \"description\": \"Nonce for this access key, used for tx nonce generation. When access key is created, nonce\\n is set to `(block_height - 1) * 1e6` to avoid tx hash collision on access key re-creation.\\n See <https://github.com/near/nearcore/issues/3779> for more details.\","]
47    #[doc = "      \"type\": \"integer\","]
48    #[doc = "      \"format\": \"uint64\","]
49    #[doc = "      \"minimum\": 0.0"]
50    #[doc = "    },"]
51    #[doc = "    \"permission\": {"]
52    #[doc = "      \"description\": \"Defines permissions for this access key.\","]
53    #[doc = "      \"allOf\": ["]
54    #[doc = "        {"]
55    #[doc = "          \"$ref\": \"#/components/schemas/AccessKeyPermission\""]
56    #[doc = "        }"]
57    #[doc = "      ]"]
58    #[doc = "    }"]
59    #[doc = "  }"]
60    #[doc = "}"]
61    #[doc = r" ```"]
62    #[doc = r" </details>"]
63    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
64    pub struct AccessKey {
65        #[doc = "Nonce for this access key, used for tx nonce generation. When access key is created, nonce\n is set to `(block_height - 1) * 1e6` to avoid tx hash collision on access key re-creation.\n See <https://github.com/near/nearcore/issues/3779> for more details."]
66        pub nonce: u64,
67        #[doc = "Defines permissions for this access key."]
68        pub permission: AccessKeyPermission,
69    }
70    impl ::std::convert::From<&AccessKey> for AccessKey {
71        fn from(value: &AccessKey) -> Self {
72            value.clone()
73        }
74    }
75    #[doc = "Describes the cost of creating an access key."]
76    #[doc = r""]
77    #[doc = r" <details><summary>JSON schema</summary>"]
78    #[doc = r""]
79    #[doc = r" ```json"]
80    #[doc = "{"]
81    #[doc = "  \"description\": \"Describes the cost of creating an access key.\","]
82    #[doc = "  \"type\": \"object\","]
83    #[doc = "  \"required\": ["]
84    #[doc = "    \"full_access_cost\","]
85    #[doc = "    \"function_call_cost\","]
86    #[doc = "    \"function_call_cost_per_byte\""]
87    #[doc = "  ],"]
88    #[doc = "  \"properties\": {"]
89    #[doc = "    \"full_access_cost\": {"]
90    #[doc = "      \"description\": \"Base cost of creating a full access access-key.\","]
91    #[doc = "      \"allOf\": ["]
92    #[doc = "        {"]
93    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
94    #[doc = "        }"]
95    #[doc = "      ]"]
96    #[doc = "    },"]
97    #[doc = "    \"function_call_cost\": {"]
98    #[doc = "      \"description\": \"Base cost of creating an access-key restricted to specific functions.\","]
99    #[doc = "      \"allOf\": ["]
100    #[doc = "        {"]
101    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
102    #[doc = "        }"]
103    #[doc = "      ]"]
104    #[doc = "    },"]
105    #[doc = "    \"function_call_cost_per_byte\": {"]
106    #[doc = "      \"description\": \"Cost per byte of method_names of creating a restricted access-key.\","]
107    #[doc = "      \"allOf\": ["]
108    #[doc = "        {"]
109    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
110    #[doc = "        }"]
111    #[doc = "      ]"]
112    #[doc = "    }"]
113    #[doc = "  }"]
114    #[doc = "}"]
115    #[doc = r" ```"]
116    #[doc = r" </details>"]
117    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
118    pub struct AccessKeyCreationConfigView {
119        #[doc = "Base cost of creating a full access access-key."]
120        pub full_access_cost: Fee,
121        #[doc = "Base cost of creating an access-key restricted to specific functions."]
122        pub function_call_cost: Fee,
123        #[doc = "Cost per byte of method_names of creating a restricted access-key."]
124        pub function_call_cost_per_byte: Fee,
125    }
126    impl ::std::convert::From<&AccessKeyCreationConfigView> for AccessKeyCreationConfigView {
127        fn from(value: &AccessKeyCreationConfigView) -> Self {
128            value.clone()
129        }
130    }
131    #[doc = "`AccessKeyInfoView`"]
132    #[doc = r""]
133    #[doc = r" <details><summary>JSON schema</summary>"]
134    #[doc = r""]
135    #[doc = r" ```json"]
136    #[doc = "{"]
137    #[doc = "  \"type\": \"object\","]
138    #[doc = "  \"required\": ["]
139    #[doc = "    \"access_key\","]
140    #[doc = "    \"public_key\""]
141    #[doc = "  ],"]
142    #[doc = "  \"properties\": {"]
143    #[doc = "    \"access_key\": {"]
144    #[doc = "      \"$ref\": \"#/components/schemas/AccessKeyView\""]
145    #[doc = "    },"]
146    #[doc = "    \"public_key\": {"]
147    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
148    #[doc = "    }"]
149    #[doc = "  }"]
150    #[doc = "}"]
151    #[doc = r" ```"]
152    #[doc = r" </details>"]
153    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
154    pub struct AccessKeyInfoView {
155        pub access_key: AccessKeyView,
156        pub public_key: PublicKey,
157    }
158    impl ::std::convert::From<&AccessKeyInfoView> for AccessKeyInfoView {
159        fn from(value: &AccessKeyInfoView) -> Self {
160            value.clone()
161        }
162    }
163    #[doc = "`AccessKeyList`"]
164    #[doc = r""]
165    #[doc = r" <details><summary>JSON schema</summary>"]
166    #[doc = r""]
167    #[doc = r" ```json"]
168    #[doc = "{"]
169    #[doc = "  \"type\": \"object\","]
170    #[doc = "  \"required\": ["]
171    #[doc = "    \"keys\""]
172    #[doc = "  ],"]
173    #[doc = "  \"properties\": {"]
174    #[doc = "    \"keys\": {"]
175    #[doc = "      \"type\": \"array\","]
176    #[doc = "      \"items\": {"]
177    #[doc = "        \"$ref\": \"#/components/schemas/AccessKeyInfoView\""]
178    #[doc = "      }"]
179    #[doc = "    }"]
180    #[doc = "  }"]
181    #[doc = "}"]
182    #[doc = r" ```"]
183    #[doc = r" </details>"]
184    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
185    pub struct AccessKeyList {
186        pub keys: ::std::vec::Vec<AccessKeyInfoView>,
187    }
188    impl ::std::convert::From<&AccessKeyList> for AccessKeyList {
189        fn from(value: &AccessKeyList) -> Self {
190            value.clone()
191        }
192    }
193    #[doc = "Defines permissions for AccessKey"]
194    #[doc = r""]
195    #[doc = r" <details><summary>JSON schema</summary>"]
196    #[doc = r""]
197    #[doc = r" ```json"]
198    #[doc = "{"]
199    #[doc = "  \"description\": \"Defines permissions for AccessKey\","]
200    #[doc = "  \"oneOf\": ["]
201    #[doc = "    {"]
202    #[doc = "      \"type\": \"object\","]
203    #[doc = "      \"required\": ["]
204    #[doc = "        \"FunctionCall\""]
205    #[doc = "      ],"]
206    #[doc = "      \"properties\": {"]
207    #[doc = "        \"FunctionCall\": {"]
208    #[doc = "          \"$ref\": \"#/components/schemas/FunctionCallPermission\""]
209    #[doc = "        }"]
210    #[doc = "      },"]
211    #[doc = "      \"additionalProperties\": false"]
212    #[doc = "    },"]
213    #[doc = "    {"]
214    #[doc = "      \"description\": \"Grants full access to the account.\\n NOTE: It's used to replace account-level public keys.\","]
215    #[doc = "      \"type\": \"string\","]
216    #[doc = "      \"enum\": ["]
217    #[doc = "        \"FullAccess\""]
218    #[doc = "      ]"]
219    #[doc = "    }"]
220    #[doc = "  ]"]
221    #[doc = "}"]
222    #[doc = r" ```"]
223    #[doc = r" </details>"]
224    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
225    pub enum AccessKeyPermission {
226        FunctionCall(FunctionCallPermission),
227        #[doc = "Grants full access to the account.\n NOTE: It's used to replace account-level public keys."]
228        FullAccess,
229    }
230    impl ::std::convert::From<&Self> for AccessKeyPermission {
231        fn from(value: &AccessKeyPermission) -> Self {
232            value.clone()
233        }
234    }
235    impl ::std::convert::From<FunctionCallPermission> for AccessKeyPermission {
236        fn from(value: FunctionCallPermission) -> Self {
237            Self::FunctionCall(value)
238        }
239    }
240    #[doc = "`AccessKeyPermissionView`"]
241    #[doc = r""]
242    #[doc = r" <details><summary>JSON schema</summary>"]
243    #[doc = r""]
244    #[doc = r" ```json"]
245    #[doc = "{"]
246    #[doc = "  \"oneOf\": ["]
247    #[doc = "    {"]
248    #[doc = "      \"type\": \"string\","]
249    #[doc = "      \"enum\": ["]
250    #[doc = "        \"FullAccess\""]
251    #[doc = "      ]"]
252    #[doc = "    },"]
253    #[doc = "    {"]
254    #[doc = "      \"type\": \"object\","]
255    #[doc = "      \"required\": ["]
256    #[doc = "        \"FunctionCall\""]
257    #[doc = "      ],"]
258    #[doc = "      \"properties\": {"]
259    #[doc = "        \"FunctionCall\": {"]
260    #[doc = "          \"type\": \"object\","]
261    #[doc = "          \"required\": ["]
262    #[doc = "            \"method_names\","]
263    #[doc = "            \"receiver_id\""]
264    #[doc = "          ],"]
265    #[doc = "          \"properties\": {"]
266    #[doc = "            \"allowance\": {"]
267    #[doc = "              \"type\": ["]
268    #[doc = "                \"string\","]
269    #[doc = "                \"null\""]
270    #[doc = "              ]"]
271    #[doc = "            },"]
272    #[doc = "            \"method_names\": {"]
273    #[doc = "              \"type\": \"array\","]
274    #[doc = "              \"items\": {"]
275    #[doc = "                \"type\": \"string\""]
276    #[doc = "              }"]
277    #[doc = "            },"]
278    #[doc = "            \"receiver_id\": {"]
279    #[doc = "              \"type\": \"string\""]
280    #[doc = "            }"]
281    #[doc = "          }"]
282    #[doc = "        }"]
283    #[doc = "      },"]
284    #[doc = "      \"additionalProperties\": false"]
285    #[doc = "    }"]
286    #[doc = "  ]"]
287    #[doc = "}"]
288    #[doc = r" ```"]
289    #[doc = r" </details>"]
290    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
291    pub enum AccessKeyPermissionView {
292        FullAccess,
293        FunctionCall {
294            #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
295            allowance: ::std::option::Option<::std::string::String>,
296            method_names: ::std::vec::Vec<::std::string::String>,
297            receiver_id: ::std::string::String,
298        },
299    }
300    impl ::std::convert::From<&Self> for AccessKeyPermissionView {
301        fn from(value: &AccessKeyPermissionView) -> Self {
302            value.clone()
303        }
304    }
305    #[doc = "`AccessKeyView`"]
306    #[doc = r""]
307    #[doc = r" <details><summary>JSON schema</summary>"]
308    #[doc = r""]
309    #[doc = r" ```json"]
310    #[doc = "{"]
311    #[doc = "  \"type\": \"object\","]
312    #[doc = "  \"required\": ["]
313    #[doc = "    \"nonce\","]
314    #[doc = "    \"permission\""]
315    #[doc = "  ],"]
316    #[doc = "  \"properties\": {"]
317    #[doc = "    \"nonce\": {"]
318    #[doc = "      \"type\": \"integer\","]
319    #[doc = "      \"format\": \"uint64\","]
320    #[doc = "      \"minimum\": 0.0"]
321    #[doc = "    },"]
322    #[doc = "    \"permission\": {"]
323    #[doc = "      \"$ref\": \"#/components/schemas/AccessKeyPermissionView\""]
324    #[doc = "    }"]
325    #[doc = "  }"]
326    #[doc = "}"]
327    #[doc = r" ```"]
328    #[doc = r" </details>"]
329    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
330    pub struct AccessKeyView {
331        pub nonce: u64,
332        pub permission: AccessKeyPermissionView,
333    }
334    impl ::std::convert::From<&AccessKeyView> for AccessKeyView {
335        fn from(value: &AccessKeyView) -> Self {
336            value.clone()
337        }
338    }
339    #[doc = "The structure describes configuration for creation of new accounts."]
340    #[doc = r""]
341    #[doc = r" <details><summary>JSON schema</summary>"]
342    #[doc = r""]
343    #[doc = r" ```json"]
344    #[doc = "{"]
345    #[doc = "  \"description\": \"The structure describes configuration for creation of new accounts.\","]
346    #[doc = "  \"type\": \"object\","]
347    #[doc = "  \"required\": ["]
348    #[doc = "    \"min_allowed_top_level_account_length\","]
349    #[doc = "    \"registrar_account_id\""]
350    #[doc = "  ],"]
351    #[doc = "  \"properties\": {"]
352    #[doc = "    \"min_allowed_top_level_account_length\": {"]
353    #[doc = "      \"description\": \"The minimum length of the top-level account ID that is allowed to be created by any account.\","]
354    #[doc = "      \"type\": \"integer\","]
355    #[doc = "      \"format\": \"uint8\","]
356    #[doc = "      \"minimum\": 0.0"]
357    #[doc = "    },"]
358    #[doc = "    \"registrar_account_id\": {"]
359    #[doc = "      \"description\": \"The account ID of the account registrar. This account ID allowed to create top-level\\n accounts of any valid length.\","]
360    #[doc = "      \"allOf\": ["]
361    #[doc = "        {"]
362    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
363    #[doc = "        }"]
364    #[doc = "      ]"]
365    #[doc = "    }"]
366    #[doc = "  }"]
367    #[doc = "}"]
368    #[doc = r" ```"]
369    #[doc = r" </details>"]
370    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
371    pub struct AccountCreationConfigView {
372        #[doc = "The minimum length of the top-level account ID that is allowed to be created by any account."]
373        pub min_allowed_top_level_account_length: u8,
374        #[doc = "The account ID of the account registrar. This account ID allowed to create top-level\n accounts of any valid length."]
375        pub registrar_account_id: AccountId,
376    }
377    impl ::std::convert::From<&AccountCreationConfigView> for AccountCreationConfigView {
378        fn from(value: &AccountCreationConfigView) -> Self {
379            value.clone()
380        }
381    }
382    #[doc = "`AccountDataView`"]
383    #[doc = r""]
384    #[doc = r" <details><summary>JSON schema</summary>"]
385    #[doc = r""]
386    #[doc = r" ```json"]
387    #[doc = "{"]
388    #[doc = "  \"type\": \"object\","]
389    #[doc = "  \"required\": ["]
390    #[doc = "    \"account_key\","]
391    #[doc = "    \"peer_id\","]
392    #[doc = "    \"proxies\","]
393    #[doc = "    \"timestamp\""]
394    #[doc = "  ],"]
395    #[doc = "  \"properties\": {"]
396    #[doc = "    \"account_key\": {"]
397    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
398    #[doc = "    },"]
399    #[doc = "    \"peer_id\": {"]
400    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
401    #[doc = "    },"]
402    #[doc = "    \"proxies\": {"]
403    #[doc = "      \"type\": \"array\","]
404    #[doc = "      \"items\": {"]
405    #[doc = "        \"$ref\": \"#/components/schemas/Tier1ProxyView\""]
406    #[doc = "      }"]
407    #[doc = "    },"]
408    #[doc = "    \"timestamp\": {"]
409    #[doc = "      \"type\": \"string\""]
410    #[doc = "    }"]
411    #[doc = "  }"]
412    #[doc = "}"]
413    #[doc = r" ```"]
414    #[doc = r" </details>"]
415    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
416    pub struct AccountDataView {
417        pub account_key: PublicKey,
418        pub peer_id: PublicKey,
419        pub proxies: ::std::vec::Vec<Tier1ProxyView>,
420        pub timestamp: ::std::string::String,
421    }
422    impl ::std::convert::From<&AccountDataView> for AccountDataView {
423        fn from(value: &AccountDataView) -> Self {
424            value.clone()
425        }
426    }
427    #[doc = "`AccountIdValidityRulesVersion`"]
428    #[doc = r""]
429    #[doc = r" <details><summary>JSON schema</summary>"]
430    #[doc = r""]
431    #[doc = r" ```json"]
432    #[doc = "{"]
433    #[doc = "  \"type\": \"integer\","]
434    #[doc = "  \"format\": \"uint8\","]
435    #[doc = "  \"minimum\": 0.0"]
436    #[doc = "}"]
437    #[doc = r" ```"]
438    #[doc = r" </details>"]
439    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
440    #[serde(transparent)]
441    pub struct AccountIdValidityRulesVersion(pub u8);
442    impl ::std::ops::Deref for AccountIdValidityRulesVersion {
443        type Target = u8;
444        fn deref(&self) -> &u8 {
445            &self.0
446        }
447    }
448    impl ::std::convert::From<AccountIdValidityRulesVersion> for u8 {
449        fn from(value: AccountIdValidityRulesVersion) -> Self {
450            value.0
451        }
452    }
453    impl ::std::convert::From<&AccountIdValidityRulesVersion> for AccountIdValidityRulesVersion {
454        fn from(value: &AccountIdValidityRulesVersion) -> Self {
455            value.clone()
456        }
457    }
458    impl ::std::convert::From<u8> for AccountIdValidityRulesVersion {
459        fn from(value: u8) -> Self {
460            Self(value)
461        }
462    }
463    impl ::std::str::FromStr for AccountIdValidityRulesVersion {
464        type Err = <u8 as ::std::str::FromStr>::Err;
465        fn from_str(value: &str) -> ::std::result::Result<Self, Self::Err> {
466            Ok(Self(value.parse()?))
467        }
468    }
469    impl ::std::convert::TryFrom<&str> for AccountIdValidityRulesVersion {
470        type Error = <u8 as ::std::str::FromStr>::Err;
471        fn try_from(value: &str) -> ::std::result::Result<Self, Self::Error> {
472            value.parse()
473        }
474    }
475    impl ::std::convert::TryFrom<&String> for AccountIdValidityRulesVersion {
476        type Error = <u8 as ::std::str::FromStr>::Err;
477        fn try_from(value: &String) -> ::std::result::Result<Self, Self::Error> {
478            value.parse()
479        }
480    }
481    impl ::std::convert::TryFrom<String> for AccountIdValidityRulesVersion {
482        type Error = <u8 as ::std::str::FromStr>::Err;
483        fn try_from(value: String) -> ::std::result::Result<Self, Self::Error> {
484            value.parse()
485        }
486    }
487    impl ::std::fmt::Display for AccountIdValidityRulesVersion {
488        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
489            self.0.fmt(f)
490        }
491    }
492    #[doc = "Account info for validators"]
493    #[doc = r""]
494    #[doc = r" <details><summary>JSON schema</summary>"]
495    #[doc = r""]
496    #[doc = r" ```json"]
497    #[doc = "{"]
498    #[doc = "  \"description\": \"Account info for validators\","]
499    #[doc = "  \"type\": \"object\","]
500    #[doc = "  \"required\": ["]
501    #[doc = "    \"account_id\","]
502    #[doc = "    \"amount\","]
503    #[doc = "    \"public_key\""]
504    #[doc = "  ],"]
505    #[doc = "  \"properties\": {"]
506    #[doc = "    \"account_id\": {"]
507    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
508    #[doc = "    },"]
509    #[doc = "    \"amount\": {"]
510    #[doc = "      \"type\": \"string\""]
511    #[doc = "    },"]
512    #[doc = "    \"public_key\": {"]
513    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
514    #[doc = "    }"]
515    #[doc = "  }"]
516    #[doc = "}"]
517    #[doc = r" ```"]
518    #[doc = r" </details>"]
519    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
520    pub struct AccountInfo {
521        pub account_id: AccountId,
522        pub amount: ::std::string::String,
523        pub public_key: PublicKey,
524    }
525    impl ::std::convert::From<&AccountInfo> for AccountInfo {
526        fn from(value: &AccountInfo) -> Self {
527            value.clone()
528        }
529    }
530    #[doc = "A view of the account"]
531    #[doc = r""]
532    #[doc = r" <details><summary>JSON schema</summary>"]
533    #[doc = r""]
534    #[doc = r" ```json"]
535    #[doc = "{"]
536    #[doc = "  \"description\": \"A view of the account\","]
537    #[doc = "  \"type\": \"object\","]
538    #[doc = "  \"required\": ["]
539    #[doc = "    \"amount\","]
540    #[doc = "    \"code_hash\","]
541    #[doc = "    \"locked\","]
542    #[doc = "    \"storage_usage\""]
543    #[doc = "  ],"]
544    #[doc = "  \"properties\": {"]
545    #[doc = "    \"amount\": {"]
546    #[doc = "      \"type\": \"string\""]
547    #[doc = "    },"]
548    #[doc = "    \"code_hash\": {"]
549    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
550    #[doc = "    },"]
551    #[doc = "    \"global_contract_account_id\": {"]
552    #[doc = "      \"oneOf\": ["]
553    #[doc = "        {"]
554    #[doc = "          \"type\": \"null\""]
555    #[doc = "        },"]
556    #[doc = "        {"]
557    #[doc = "          \"allOf\": ["]
558    #[doc = "            {"]
559    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
560    #[doc = "            }"]
561    #[doc = "          ]"]
562    #[doc = "        }"]
563    #[doc = "      ]"]
564    #[doc = "    },"]
565    #[doc = "    \"global_contract_hash\": {"]
566    #[doc = "      \"oneOf\": ["]
567    #[doc = "        {"]
568    #[doc = "          \"type\": \"null\""]
569    #[doc = "        },"]
570    #[doc = "        {"]
571    #[doc = "          \"allOf\": ["]
572    #[doc = "            {"]
573    #[doc = "              \"$ref\": \"#/components/schemas/CryptoHash\""]
574    #[doc = "            }"]
575    #[doc = "          ]"]
576    #[doc = "        }"]
577    #[doc = "      ]"]
578    #[doc = "    },"]
579    #[doc = "    \"locked\": {"]
580    #[doc = "      \"type\": \"string\""]
581    #[doc = "    },"]
582    #[doc = "    \"storage_paid_at\": {"]
583    #[doc = "      \"description\": \"TODO(2271): deprecated.\","]
584    #[doc = "      \"default\": 0,"]
585    #[doc = "      \"type\": \"integer\","]
586    #[doc = "      \"format\": \"uint64\","]
587    #[doc = "      \"minimum\": 0.0"]
588    #[doc = "    },"]
589    #[doc = "    \"storage_usage\": {"]
590    #[doc = "      \"type\": \"integer\","]
591    #[doc = "      \"format\": \"uint64\","]
592    #[doc = "      \"minimum\": 0.0"]
593    #[doc = "    }"]
594    #[doc = "  }"]
595    #[doc = "}"]
596    #[doc = r" ```"]
597    #[doc = r" </details>"]
598    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
599    pub struct AccountView {
600        pub amount: ::std::string::String,
601        pub code_hash: CryptoHash,
602        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
603        pub global_contract_account_id: ::std::option::Option<AccountId>,
604        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
605        pub global_contract_hash: ::std::option::Option<CryptoHash>,
606        pub locked: ::std::string::String,
607        #[doc = "TODO(2271): deprecated."]
608        #[serde(default)]
609        pub storage_paid_at: u64,
610        pub storage_usage: u64,
611    }
612    impl ::std::convert::From<&AccountView> for AccountView {
613        fn from(value: &AccountView) -> Self {
614            value.clone()
615        }
616    }
617    #[doc = "`AccountWithPublicKey`"]
618    #[doc = r""]
619    #[doc = r" <details><summary>JSON schema</summary>"]
620    #[doc = r""]
621    #[doc = r" ```json"]
622    #[doc = "{"]
623    #[doc = "  \"type\": \"object\","]
624    #[doc = "  \"required\": ["]
625    #[doc = "    \"account_id\","]
626    #[doc = "    \"public_key\""]
627    #[doc = "  ],"]
628    #[doc = "  \"properties\": {"]
629    #[doc = "    \"account_id\": {"]
630    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
631    #[doc = "    },"]
632    #[doc = "    \"public_key\": {"]
633    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
634    #[doc = "    }"]
635    #[doc = "  }"]
636    #[doc = "}"]
637    #[doc = r" ```"]
638    #[doc = r" </details>"]
639    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
640    pub struct AccountWithPublicKey {
641        pub account_id: AccountId,
642        pub public_key: PublicKey,
643    }
644    impl ::std::convert::From<&AccountWithPublicKey> for AccountWithPublicKey {
645        fn from(value: &AccountWithPublicKey) -> Self {
646            value.clone()
647        }
648    }
649    #[doc = "`Action`"]
650    #[doc = r""]
651    #[doc = r" <details><summary>JSON schema</summary>"]
652    #[doc = r""]
653    #[doc = r" ```json"]
654    #[doc = "{"]
655    #[doc = "  \"oneOf\": ["]
656    #[doc = "    {"]
657    #[doc = "      \"description\": \"Create an (sub)account using a transaction `receiver_id` as an ID for\\n a new account ID must pass validation rules described here\\n <http://nomicon.io/Primitives/Account.html>.\","]
658    #[doc = "      \"type\": \"object\","]
659    #[doc = "      \"required\": ["]
660    #[doc = "        \"CreateAccount\""]
661    #[doc = "      ],"]
662    #[doc = "      \"properties\": {"]
663    #[doc = "        \"CreateAccount\": {"]
664    #[doc = "          \"$ref\": \"#/components/schemas/CreateAccountAction\""]
665    #[doc = "        }"]
666    #[doc = "      },"]
667    #[doc = "      \"additionalProperties\": false"]
668    #[doc = "    },"]
669    #[doc = "    {"]
670    #[doc = "      \"description\": \"Sets a Wasm code to a receiver_id\","]
671    #[doc = "      \"type\": \"object\","]
672    #[doc = "      \"required\": ["]
673    #[doc = "        \"DeployContract\""]
674    #[doc = "      ],"]
675    #[doc = "      \"properties\": {"]
676    #[doc = "        \"DeployContract\": {"]
677    #[doc = "          \"$ref\": \"#/components/schemas/DeployContractAction\""]
678    #[doc = "        }"]
679    #[doc = "      },"]
680    #[doc = "      \"additionalProperties\": false"]
681    #[doc = "    },"]
682    #[doc = "    {"]
683    #[doc = "      \"type\": \"object\","]
684    #[doc = "      \"required\": ["]
685    #[doc = "        \"FunctionCall\""]
686    #[doc = "      ],"]
687    #[doc = "      \"properties\": {"]
688    #[doc = "        \"FunctionCall\": {"]
689    #[doc = "          \"$ref\": \"#/components/schemas/FunctionCallAction\""]
690    #[doc = "        }"]
691    #[doc = "      },"]
692    #[doc = "      \"additionalProperties\": false"]
693    #[doc = "    },"]
694    #[doc = "    {"]
695    #[doc = "      \"type\": \"object\","]
696    #[doc = "      \"required\": ["]
697    #[doc = "        \"Transfer\""]
698    #[doc = "      ],"]
699    #[doc = "      \"properties\": {"]
700    #[doc = "        \"Transfer\": {"]
701    #[doc = "          \"$ref\": \"#/components/schemas/TransferAction\""]
702    #[doc = "        }"]
703    #[doc = "      },"]
704    #[doc = "      \"additionalProperties\": false"]
705    #[doc = "    },"]
706    #[doc = "    {"]
707    #[doc = "      \"type\": \"object\","]
708    #[doc = "      \"required\": ["]
709    #[doc = "        \"Stake\""]
710    #[doc = "      ],"]
711    #[doc = "      \"properties\": {"]
712    #[doc = "        \"Stake\": {"]
713    #[doc = "          \"$ref\": \"#/components/schemas/StakeAction\""]
714    #[doc = "        }"]
715    #[doc = "      },"]
716    #[doc = "      \"additionalProperties\": false"]
717    #[doc = "    },"]
718    #[doc = "    {"]
719    #[doc = "      \"type\": \"object\","]
720    #[doc = "      \"required\": ["]
721    #[doc = "        \"AddKey\""]
722    #[doc = "      ],"]
723    #[doc = "      \"properties\": {"]
724    #[doc = "        \"AddKey\": {"]
725    #[doc = "          \"$ref\": \"#/components/schemas/AddKeyAction\""]
726    #[doc = "        }"]
727    #[doc = "      },"]
728    #[doc = "      \"additionalProperties\": false"]
729    #[doc = "    },"]
730    #[doc = "    {"]
731    #[doc = "      \"type\": \"object\","]
732    #[doc = "      \"required\": ["]
733    #[doc = "        \"DeleteKey\""]
734    #[doc = "      ],"]
735    #[doc = "      \"properties\": {"]
736    #[doc = "        \"DeleteKey\": {"]
737    #[doc = "          \"$ref\": \"#/components/schemas/DeleteKeyAction\""]
738    #[doc = "        }"]
739    #[doc = "      },"]
740    #[doc = "      \"additionalProperties\": false"]
741    #[doc = "    },"]
742    #[doc = "    {"]
743    #[doc = "      \"type\": \"object\","]
744    #[doc = "      \"required\": ["]
745    #[doc = "        \"DeleteAccount\""]
746    #[doc = "      ],"]
747    #[doc = "      \"properties\": {"]
748    #[doc = "        \"DeleteAccount\": {"]
749    #[doc = "          \"$ref\": \"#/components/schemas/DeleteAccountAction\""]
750    #[doc = "        }"]
751    #[doc = "      },"]
752    #[doc = "      \"additionalProperties\": false"]
753    #[doc = "    },"]
754    #[doc = "    {"]
755    #[doc = "      \"type\": \"object\","]
756    #[doc = "      \"required\": ["]
757    #[doc = "        \"Delegate\""]
758    #[doc = "      ],"]
759    #[doc = "      \"properties\": {"]
760    #[doc = "        \"Delegate\": {"]
761    #[doc = "          \"$ref\": \"#/components/schemas/SignedDelegateAction\""]
762    #[doc = "        }"]
763    #[doc = "      },"]
764    #[doc = "      \"additionalProperties\": false"]
765    #[doc = "    },"]
766    #[doc = "    {"]
767    #[doc = "      \"type\": \"object\","]
768    #[doc = "      \"required\": ["]
769    #[doc = "        \"DeployGlobalContract\""]
770    #[doc = "      ],"]
771    #[doc = "      \"properties\": {"]
772    #[doc = "        \"DeployGlobalContract\": {"]
773    #[doc = "          \"$ref\": \"#/components/schemas/DeployGlobalContractAction\""]
774    #[doc = "        }"]
775    #[doc = "      },"]
776    #[doc = "      \"additionalProperties\": false"]
777    #[doc = "    },"]
778    #[doc = "    {"]
779    #[doc = "      \"type\": \"object\","]
780    #[doc = "      \"required\": ["]
781    #[doc = "        \"UseGlobalContract\""]
782    #[doc = "      ],"]
783    #[doc = "      \"properties\": {"]
784    #[doc = "        \"UseGlobalContract\": {"]
785    #[doc = "          \"$ref\": \"#/components/schemas/UseGlobalContractAction\""]
786    #[doc = "        }"]
787    #[doc = "      },"]
788    #[doc = "      \"additionalProperties\": false"]
789    #[doc = "    }"]
790    #[doc = "  ]"]
791    #[doc = "}"]
792    #[doc = r" ```"]
793    #[doc = r" </details>"]
794    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
795    pub enum Action {
796        #[doc = "Create an (sub)account using a transaction `receiver_id` as an ID for\n a new account ID must pass validation rules described here\n <http://nomicon.io/Primitives/Account.html>."]
797        CreateAccount(CreateAccountAction),
798        #[doc = "Sets a Wasm code to a receiver_id"]
799        DeployContract(DeployContractAction),
800        FunctionCall(FunctionCallAction),
801        Transfer(TransferAction),
802        Stake(StakeAction),
803        AddKey(AddKeyAction),
804        DeleteKey(DeleteKeyAction),
805        DeleteAccount(DeleteAccountAction),
806        Delegate(SignedDelegateAction),
807        DeployGlobalContract(DeployGlobalContractAction),
808        UseGlobalContract(UseGlobalContractAction),
809    }
810    impl ::std::convert::From<&Self> for Action {
811        fn from(value: &Action) -> Self {
812            value.clone()
813        }
814    }
815    impl ::std::convert::From<CreateAccountAction> for Action {
816        fn from(value: CreateAccountAction) -> Self {
817            Self::CreateAccount(value)
818        }
819    }
820    impl ::std::convert::From<DeployContractAction> for Action {
821        fn from(value: DeployContractAction) -> Self {
822            Self::DeployContract(value)
823        }
824    }
825    impl ::std::convert::From<FunctionCallAction> for Action {
826        fn from(value: FunctionCallAction) -> Self {
827            Self::FunctionCall(value)
828        }
829    }
830    impl ::std::convert::From<TransferAction> for Action {
831        fn from(value: TransferAction) -> Self {
832            Self::Transfer(value)
833        }
834    }
835    impl ::std::convert::From<StakeAction> for Action {
836        fn from(value: StakeAction) -> Self {
837            Self::Stake(value)
838        }
839    }
840    impl ::std::convert::From<AddKeyAction> for Action {
841        fn from(value: AddKeyAction) -> Self {
842            Self::AddKey(value)
843        }
844    }
845    impl ::std::convert::From<DeleteKeyAction> for Action {
846        fn from(value: DeleteKeyAction) -> Self {
847            Self::DeleteKey(value)
848        }
849    }
850    impl ::std::convert::From<DeleteAccountAction> for Action {
851        fn from(value: DeleteAccountAction) -> Self {
852            Self::DeleteAccount(value)
853        }
854    }
855    impl ::std::convert::From<SignedDelegateAction> for Action {
856        fn from(value: SignedDelegateAction) -> Self {
857            Self::Delegate(value)
858        }
859    }
860    impl ::std::convert::From<DeployGlobalContractAction> for Action {
861        fn from(value: DeployGlobalContractAction) -> Self {
862            Self::DeployGlobalContract(value)
863        }
864    }
865    impl ::std::convert::From<UseGlobalContractAction> for Action {
866        fn from(value: UseGlobalContractAction) -> Self {
867            Self::UseGlobalContract(value)
868        }
869    }
870    #[doc = "Describes the cost of creating a specific action, `Action`. Includes all variants."]
871    #[doc = r""]
872    #[doc = r" <details><summary>JSON schema</summary>"]
873    #[doc = r""]
874    #[doc = r" ```json"]
875    #[doc = "{"]
876    #[doc = "  \"description\": \"Describes the cost of creating a specific action, `Action`. Includes all variants.\","]
877    #[doc = "  \"type\": \"object\","]
878    #[doc = "  \"required\": ["]
879    #[doc = "    \"add_key_cost\","]
880    #[doc = "    \"create_account_cost\","]
881    #[doc = "    \"delegate_cost\","]
882    #[doc = "    \"delete_account_cost\","]
883    #[doc = "    \"delete_key_cost\","]
884    #[doc = "    \"deploy_contract_cost\","]
885    #[doc = "    \"deploy_contract_cost_per_byte\","]
886    #[doc = "    \"function_call_cost\","]
887    #[doc = "    \"function_call_cost_per_byte\","]
888    #[doc = "    \"stake_cost\","]
889    #[doc = "    \"transfer_cost\""]
890    #[doc = "  ],"]
891    #[doc = "  \"properties\": {"]
892    #[doc = "    \"add_key_cost\": {"]
893    #[doc = "      \"description\": \"Base cost of adding a key.\","]
894    #[doc = "      \"allOf\": ["]
895    #[doc = "        {"]
896    #[doc = "          \"$ref\": \"#/components/schemas/AccessKeyCreationConfigView\""]
897    #[doc = "        }"]
898    #[doc = "      ]"]
899    #[doc = "    },"]
900    #[doc = "    \"create_account_cost\": {"]
901    #[doc = "      \"description\": \"Base cost of creating an account.\","]
902    #[doc = "      \"allOf\": ["]
903    #[doc = "        {"]
904    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
905    #[doc = "        }"]
906    #[doc = "      ]"]
907    #[doc = "    },"]
908    #[doc = "    \"delegate_cost\": {"]
909    #[doc = "      \"description\": \"Base cost for processing a delegate action.\\n\\n This is on top of the costs for the actions inside the delegate action.\","]
910    #[doc = "      \"allOf\": ["]
911    #[doc = "        {"]
912    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
913    #[doc = "        }"]
914    #[doc = "      ]"]
915    #[doc = "    },"]
916    #[doc = "    \"delete_account_cost\": {"]
917    #[doc = "      \"description\": \"Base cost of deleting an account.\","]
918    #[doc = "      \"allOf\": ["]
919    #[doc = "        {"]
920    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
921    #[doc = "        }"]
922    #[doc = "      ]"]
923    #[doc = "    },"]
924    #[doc = "    \"delete_key_cost\": {"]
925    #[doc = "      \"description\": \"Base cost of deleting a key.\","]
926    #[doc = "      \"allOf\": ["]
927    #[doc = "        {"]
928    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
929    #[doc = "        }"]
930    #[doc = "      ]"]
931    #[doc = "    },"]
932    #[doc = "    \"deploy_contract_cost\": {"]
933    #[doc = "      \"description\": \"Base cost of deploying a contract.\","]
934    #[doc = "      \"allOf\": ["]
935    #[doc = "        {"]
936    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
937    #[doc = "        }"]
938    #[doc = "      ]"]
939    #[doc = "    },"]
940    #[doc = "    \"deploy_contract_cost_per_byte\": {"]
941    #[doc = "      \"description\": \"Cost per byte of deploying a contract.\","]
942    #[doc = "      \"allOf\": ["]
943    #[doc = "        {"]
944    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
945    #[doc = "        }"]
946    #[doc = "      ]"]
947    #[doc = "    },"]
948    #[doc = "    \"function_call_cost\": {"]
949    #[doc = "      \"description\": \"Base cost of calling a function.\","]
950    #[doc = "      \"allOf\": ["]
951    #[doc = "        {"]
952    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
953    #[doc = "        }"]
954    #[doc = "      ]"]
955    #[doc = "    },"]
956    #[doc = "    \"function_call_cost_per_byte\": {"]
957    #[doc = "      \"description\": \"Cost per byte of method name and arguments of calling a function.\","]
958    #[doc = "      \"allOf\": ["]
959    #[doc = "        {"]
960    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
961    #[doc = "        }"]
962    #[doc = "      ]"]
963    #[doc = "    },"]
964    #[doc = "    \"stake_cost\": {"]
965    #[doc = "      \"description\": \"Base cost of staking.\","]
966    #[doc = "      \"allOf\": ["]
967    #[doc = "        {"]
968    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
969    #[doc = "        }"]
970    #[doc = "      ]"]
971    #[doc = "    },"]
972    #[doc = "    \"transfer_cost\": {"]
973    #[doc = "      \"description\": \"Base cost of making a transfer.\","]
974    #[doc = "      \"allOf\": ["]
975    #[doc = "        {"]
976    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
977    #[doc = "        }"]
978    #[doc = "      ]"]
979    #[doc = "    }"]
980    #[doc = "  }"]
981    #[doc = "}"]
982    #[doc = r" ```"]
983    #[doc = r" </details>"]
984    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
985    pub struct ActionCreationConfigView {
986        #[doc = "Base cost of adding a key."]
987        pub add_key_cost: AccessKeyCreationConfigView,
988        #[doc = "Base cost of creating an account."]
989        pub create_account_cost: Fee,
990        #[doc = "Base cost for processing a delegate action.\n\n This is on top of the costs for the actions inside the delegate action."]
991        pub delegate_cost: Fee,
992        #[doc = "Base cost of deleting an account."]
993        pub delete_account_cost: Fee,
994        #[doc = "Base cost of deleting a key."]
995        pub delete_key_cost: Fee,
996        #[doc = "Base cost of deploying a contract."]
997        pub deploy_contract_cost: Fee,
998        #[doc = "Cost per byte of deploying a contract."]
999        pub deploy_contract_cost_per_byte: Fee,
1000        #[doc = "Base cost of calling a function."]
1001        pub function_call_cost: Fee,
1002        #[doc = "Cost per byte of method name and arguments of calling a function."]
1003        pub function_call_cost_per_byte: Fee,
1004        #[doc = "Base cost of staking."]
1005        pub stake_cost: Fee,
1006        #[doc = "Base cost of making a transfer."]
1007        pub transfer_cost: Fee,
1008    }
1009    impl ::std::convert::From<&ActionCreationConfigView> for ActionCreationConfigView {
1010        fn from(value: &ActionCreationConfigView) -> Self {
1011            value.clone()
1012        }
1013    }
1014    #[doc = "An error happened during Action execution"]
1015    #[doc = r""]
1016    #[doc = r" <details><summary>JSON schema</summary>"]
1017    #[doc = r""]
1018    #[doc = r" ```json"]
1019    #[doc = "{"]
1020    #[doc = "  \"description\": \"An error happened during Action execution\","]
1021    #[doc = "  \"type\": \"object\","]
1022    #[doc = "  \"required\": ["]
1023    #[doc = "    \"kind\""]
1024    #[doc = "  ],"]
1025    #[doc = "  \"properties\": {"]
1026    #[doc = "    \"index\": {"]
1027    #[doc = "      \"description\": \"Index of the failed action in the transaction.\\n Action index is not defined if ActionError.kind is `ActionErrorKind::LackBalanceForState`\","]
1028    #[doc = "      \"type\": ["]
1029    #[doc = "        \"integer\","]
1030    #[doc = "        \"null\""]
1031    #[doc = "      ],"]
1032    #[doc = "      \"format\": \"uint64\","]
1033    #[doc = "      \"minimum\": 0.0"]
1034    #[doc = "    },"]
1035    #[doc = "    \"kind\": {"]
1036    #[doc = "      \"description\": \"The kind of ActionError happened\","]
1037    #[doc = "      \"allOf\": ["]
1038    #[doc = "        {"]
1039    #[doc = "          \"$ref\": \"#/components/schemas/ActionErrorKind\""]
1040    #[doc = "        }"]
1041    #[doc = "      ]"]
1042    #[doc = "    }"]
1043    #[doc = "  }"]
1044    #[doc = "}"]
1045    #[doc = r" ```"]
1046    #[doc = r" </details>"]
1047    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1048    pub struct ActionError {
1049        #[doc = "Index of the failed action in the transaction.\n Action index is not defined if ActionError.kind is `ActionErrorKind::LackBalanceForState`"]
1050        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1051        pub index: ::std::option::Option<u64>,
1052        #[doc = "The kind of ActionError happened"]
1053        pub kind: ActionErrorKind,
1054    }
1055    impl ::std::convert::From<&ActionError> for ActionError {
1056        fn from(value: &ActionError) -> Self {
1057            value.clone()
1058        }
1059    }
1060    #[doc = "`ActionErrorKind`"]
1061    #[doc = r""]
1062    #[doc = r" <details><summary>JSON schema</summary>"]
1063    #[doc = r""]
1064    #[doc = r" ```json"]
1065    #[doc = "{"]
1066    #[doc = "  \"oneOf\": ["]
1067    #[doc = "    {"]
1068    #[doc = "      \"description\": \"Happens when CreateAccount action tries to create an account with account_id which is already exists in the storage\","]
1069    #[doc = "      \"type\": \"object\","]
1070    #[doc = "      \"required\": ["]
1071    #[doc = "        \"AccountAlreadyExists\""]
1072    #[doc = "      ],"]
1073    #[doc = "      \"properties\": {"]
1074    #[doc = "        \"AccountAlreadyExists\": {"]
1075    #[doc = "          \"type\": \"object\","]
1076    #[doc = "          \"required\": ["]
1077    #[doc = "            \"account_id\""]
1078    #[doc = "          ],"]
1079    #[doc = "          \"properties\": {"]
1080    #[doc = "            \"account_id\": {"]
1081    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1082    #[doc = "            }"]
1083    #[doc = "          }"]
1084    #[doc = "        }"]
1085    #[doc = "      },"]
1086    #[doc = "      \"additionalProperties\": false"]
1087    #[doc = "    },"]
1088    #[doc = "    {"]
1089    #[doc = "      \"description\": \"Happens when TX receiver_id doesn't exist (but action is not Action::CreateAccount)\","]
1090    #[doc = "      \"type\": \"object\","]
1091    #[doc = "      \"required\": ["]
1092    #[doc = "        \"AccountDoesNotExist\""]
1093    #[doc = "      ],"]
1094    #[doc = "      \"properties\": {"]
1095    #[doc = "        \"AccountDoesNotExist\": {"]
1096    #[doc = "          \"type\": \"object\","]
1097    #[doc = "          \"required\": ["]
1098    #[doc = "            \"account_id\""]
1099    #[doc = "          ],"]
1100    #[doc = "          \"properties\": {"]
1101    #[doc = "            \"account_id\": {"]
1102    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1103    #[doc = "            }"]
1104    #[doc = "          }"]
1105    #[doc = "        }"]
1106    #[doc = "      },"]
1107    #[doc = "      \"additionalProperties\": false"]
1108    #[doc = "    },"]
1109    #[doc = "    {"]
1110    #[doc = "      \"description\": \"A top-level account ID can only be created by registrar.\","]
1111    #[doc = "      \"type\": \"object\","]
1112    #[doc = "      \"required\": ["]
1113    #[doc = "        \"CreateAccountOnlyByRegistrar\""]
1114    #[doc = "      ],"]
1115    #[doc = "      \"properties\": {"]
1116    #[doc = "        \"CreateAccountOnlyByRegistrar\": {"]
1117    #[doc = "          \"type\": \"object\","]
1118    #[doc = "          \"required\": ["]
1119    #[doc = "            \"account_id\","]
1120    #[doc = "            \"predecessor_id\","]
1121    #[doc = "            \"registrar_account_id\""]
1122    #[doc = "          ],"]
1123    #[doc = "          \"properties\": {"]
1124    #[doc = "            \"account_id\": {"]
1125    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1126    #[doc = "            },"]
1127    #[doc = "            \"predecessor_id\": {"]
1128    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1129    #[doc = "            },"]
1130    #[doc = "            \"registrar_account_id\": {"]
1131    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1132    #[doc = "            }"]
1133    #[doc = "          }"]
1134    #[doc = "        }"]
1135    #[doc = "      },"]
1136    #[doc = "      \"additionalProperties\": false"]
1137    #[doc = "    },"]
1138    #[doc = "    {"]
1139    #[doc = "      \"description\": \"A newly created account must be under a namespace of the creator account\","]
1140    #[doc = "      \"type\": \"object\","]
1141    #[doc = "      \"required\": ["]
1142    #[doc = "        \"CreateAccountNotAllowed\""]
1143    #[doc = "      ],"]
1144    #[doc = "      \"properties\": {"]
1145    #[doc = "        \"CreateAccountNotAllowed\": {"]
1146    #[doc = "          \"type\": \"object\","]
1147    #[doc = "          \"required\": ["]
1148    #[doc = "            \"account_id\","]
1149    #[doc = "            \"predecessor_id\""]
1150    #[doc = "          ],"]
1151    #[doc = "          \"properties\": {"]
1152    #[doc = "            \"account_id\": {"]
1153    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1154    #[doc = "            },"]
1155    #[doc = "            \"predecessor_id\": {"]
1156    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1157    #[doc = "            }"]
1158    #[doc = "          }"]
1159    #[doc = "        }"]
1160    #[doc = "      },"]
1161    #[doc = "      \"additionalProperties\": false"]
1162    #[doc = "    },"]
1163    #[doc = "    {"]
1164    #[doc = "      \"description\": \"Administrative actions like `DeployContract`, `Stake`, `AddKey`, `DeleteKey`. can be proceed only if sender=receiver\\n or the first TX action is a `CreateAccount` action\","]
1165    #[doc = "      \"type\": \"object\","]
1166    #[doc = "      \"required\": ["]
1167    #[doc = "        \"ActorNoPermission\""]
1168    #[doc = "      ],"]
1169    #[doc = "      \"properties\": {"]
1170    #[doc = "        \"ActorNoPermission\": {"]
1171    #[doc = "          \"type\": \"object\","]
1172    #[doc = "          \"required\": ["]
1173    #[doc = "            \"account_id\","]
1174    #[doc = "            \"actor_id\""]
1175    #[doc = "          ],"]
1176    #[doc = "          \"properties\": {"]
1177    #[doc = "            \"account_id\": {"]
1178    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1179    #[doc = "            },"]
1180    #[doc = "            \"actor_id\": {"]
1181    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1182    #[doc = "            }"]
1183    #[doc = "          }"]
1184    #[doc = "        }"]
1185    #[doc = "      },"]
1186    #[doc = "      \"additionalProperties\": false"]
1187    #[doc = "    },"]
1188    #[doc = "    {"]
1189    #[doc = "      \"description\": \"Account tries to remove an access key that doesn't exist\","]
1190    #[doc = "      \"type\": \"object\","]
1191    #[doc = "      \"required\": ["]
1192    #[doc = "        \"DeleteKeyDoesNotExist\""]
1193    #[doc = "      ],"]
1194    #[doc = "      \"properties\": {"]
1195    #[doc = "        \"DeleteKeyDoesNotExist\": {"]
1196    #[doc = "          \"type\": \"object\","]
1197    #[doc = "          \"required\": ["]
1198    #[doc = "            \"account_id\","]
1199    #[doc = "            \"public_key\""]
1200    #[doc = "          ],"]
1201    #[doc = "          \"properties\": {"]
1202    #[doc = "            \"account_id\": {"]
1203    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1204    #[doc = "            },"]
1205    #[doc = "            \"public_key\": {"]
1206    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
1207    #[doc = "            }"]
1208    #[doc = "          }"]
1209    #[doc = "        }"]
1210    #[doc = "      },"]
1211    #[doc = "      \"additionalProperties\": false"]
1212    #[doc = "    },"]
1213    #[doc = "    {"]
1214    #[doc = "      \"description\": \"The public key is already used for an existing access key\","]
1215    #[doc = "      \"type\": \"object\","]
1216    #[doc = "      \"required\": ["]
1217    #[doc = "        \"AddKeyAlreadyExists\""]
1218    #[doc = "      ],"]
1219    #[doc = "      \"properties\": {"]
1220    #[doc = "        \"AddKeyAlreadyExists\": {"]
1221    #[doc = "          \"type\": \"object\","]
1222    #[doc = "          \"required\": ["]
1223    #[doc = "            \"account_id\","]
1224    #[doc = "            \"public_key\""]
1225    #[doc = "          ],"]
1226    #[doc = "          \"properties\": {"]
1227    #[doc = "            \"account_id\": {"]
1228    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1229    #[doc = "            },"]
1230    #[doc = "            \"public_key\": {"]
1231    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
1232    #[doc = "            }"]
1233    #[doc = "          }"]
1234    #[doc = "        }"]
1235    #[doc = "      },"]
1236    #[doc = "      \"additionalProperties\": false"]
1237    #[doc = "    },"]
1238    #[doc = "    {"]
1239    #[doc = "      \"description\": \"Account is staking and can not be deleted\","]
1240    #[doc = "      \"type\": \"object\","]
1241    #[doc = "      \"required\": ["]
1242    #[doc = "        \"DeleteAccountStaking\""]
1243    #[doc = "      ],"]
1244    #[doc = "      \"properties\": {"]
1245    #[doc = "        \"DeleteAccountStaking\": {"]
1246    #[doc = "          \"type\": \"object\","]
1247    #[doc = "          \"required\": ["]
1248    #[doc = "            \"account_id\""]
1249    #[doc = "          ],"]
1250    #[doc = "          \"properties\": {"]
1251    #[doc = "            \"account_id\": {"]
1252    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1253    #[doc = "            }"]
1254    #[doc = "          }"]
1255    #[doc = "        }"]
1256    #[doc = "      },"]
1257    #[doc = "      \"additionalProperties\": false"]
1258    #[doc = "    },"]
1259    #[doc = "    {"]
1260    #[doc = "      \"description\": \"ActionReceipt can't be completed, because the remaining balance will not be enough to cover storage.\","]
1261    #[doc = "      \"type\": \"object\","]
1262    #[doc = "      \"required\": ["]
1263    #[doc = "        \"LackBalanceForState\""]
1264    #[doc = "      ],"]
1265    #[doc = "      \"properties\": {"]
1266    #[doc = "        \"LackBalanceForState\": {"]
1267    #[doc = "          \"type\": \"object\","]
1268    #[doc = "          \"required\": ["]
1269    #[doc = "            \"account_id\","]
1270    #[doc = "            \"amount\""]
1271    #[doc = "          ],"]
1272    #[doc = "          \"properties\": {"]
1273    #[doc = "            \"account_id\": {"]
1274    #[doc = "              \"description\": \"An account which needs balance\","]
1275    #[doc = "              \"allOf\": ["]
1276    #[doc = "                {"]
1277    #[doc = "                  \"$ref\": \"#/components/schemas/AccountId\""]
1278    #[doc = "                }"]
1279    #[doc = "              ]"]
1280    #[doc = "            },"]
1281    #[doc = "            \"amount\": {"]
1282    #[doc = "              \"description\": \"Balance required to complete an action.\","]
1283    #[doc = "              \"type\": \"string\""]
1284    #[doc = "            }"]
1285    #[doc = "          }"]
1286    #[doc = "        }"]
1287    #[doc = "      },"]
1288    #[doc = "      \"additionalProperties\": false"]
1289    #[doc = "    },"]
1290    #[doc = "    {"]
1291    #[doc = "      \"description\": \"Account is not yet staked, but tries to unstake\","]
1292    #[doc = "      \"type\": \"object\","]
1293    #[doc = "      \"required\": ["]
1294    #[doc = "        \"TriesToUnstake\""]
1295    #[doc = "      ],"]
1296    #[doc = "      \"properties\": {"]
1297    #[doc = "        \"TriesToUnstake\": {"]
1298    #[doc = "          \"type\": \"object\","]
1299    #[doc = "          \"required\": ["]
1300    #[doc = "            \"account_id\""]
1301    #[doc = "          ],"]
1302    #[doc = "          \"properties\": {"]
1303    #[doc = "            \"account_id\": {"]
1304    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1305    #[doc = "            }"]
1306    #[doc = "          }"]
1307    #[doc = "        }"]
1308    #[doc = "      },"]
1309    #[doc = "      \"additionalProperties\": false"]
1310    #[doc = "    },"]
1311    #[doc = "    {"]
1312    #[doc = "      \"description\": \"The account doesn't have enough balance to increase the stake.\","]
1313    #[doc = "      \"type\": \"object\","]
1314    #[doc = "      \"required\": ["]
1315    #[doc = "        \"TriesToStake\""]
1316    #[doc = "      ],"]
1317    #[doc = "      \"properties\": {"]
1318    #[doc = "        \"TriesToStake\": {"]
1319    #[doc = "          \"type\": \"object\","]
1320    #[doc = "          \"required\": ["]
1321    #[doc = "            \"account_id\","]
1322    #[doc = "            \"balance\","]
1323    #[doc = "            \"locked\","]
1324    #[doc = "            \"stake\""]
1325    #[doc = "          ],"]
1326    #[doc = "          \"properties\": {"]
1327    #[doc = "            \"account_id\": {"]
1328    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1329    #[doc = "            },"]
1330    #[doc = "            \"balance\": {"]
1331    #[doc = "              \"type\": \"string\""]
1332    #[doc = "            },"]
1333    #[doc = "            \"locked\": {"]
1334    #[doc = "              \"type\": \"string\""]
1335    #[doc = "            },"]
1336    #[doc = "            \"stake\": {"]
1337    #[doc = "              \"type\": \"string\""]
1338    #[doc = "            }"]
1339    #[doc = "          }"]
1340    #[doc = "        }"]
1341    #[doc = "      },"]
1342    #[doc = "      \"additionalProperties\": false"]
1343    #[doc = "    },"]
1344    #[doc = "    {"]
1345    #[doc = "      \"type\": \"object\","]
1346    #[doc = "      \"required\": ["]
1347    #[doc = "        \"InsufficientStake\""]
1348    #[doc = "      ],"]
1349    #[doc = "      \"properties\": {"]
1350    #[doc = "        \"InsufficientStake\": {"]
1351    #[doc = "          \"type\": \"object\","]
1352    #[doc = "          \"required\": ["]
1353    #[doc = "            \"account_id\","]
1354    #[doc = "            \"minimum_stake\","]
1355    #[doc = "            \"stake\""]
1356    #[doc = "          ],"]
1357    #[doc = "          \"properties\": {"]
1358    #[doc = "            \"account_id\": {"]
1359    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1360    #[doc = "            },"]
1361    #[doc = "            \"minimum_stake\": {"]
1362    #[doc = "              \"type\": \"string\""]
1363    #[doc = "            },"]
1364    #[doc = "            \"stake\": {"]
1365    #[doc = "              \"type\": \"string\""]
1366    #[doc = "            }"]
1367    #[doc = "          }"]
1368    #[doc = "        }"]
1369    #[doc = "      },"]
1370    #[doc = "      \"additionalProperties\": false"]
1371    #[doc = "    },"]
1372    #[doc = "    {"]
1373    #[doc = "      \"description\": \"An error occurred during a `FunctionCall` Action, parameter is debug message.\","]
1374    #[doc = "      \"type\": \"object\","]
1375    #[doc = "      \"required\": ["]
1376    #[doc = "        \"FunctionCallError\""]
1377    #[doc = "      ],"]
1378    #[doc = "      \"properties\": {"]
1379    #[doc = "        \"FunctionCallError\": {"]
1380    #[doc = "          \"$ref\": \"#/components/schemas/FunctionCallError\""]
1381    #[doc = "        }"]
1382    #[doc = "      },"]
1383    #[doc = "      \"additionalProperties\": false"]
1384    #[doc = "    },"]
1385    #[doc = "    {"]
1386    #[doc = "      \"description\": \"Error occurs when a new `ActionReceipt` created by the `FunctionCall` action fails\\n receipt validation.\","]
1387    #[doc = "      \"type\": \"object\","]
1388    #[doc = "      \"required\": ["]
1389    #[doc = "        \"NewReceiptValidationError\""]
1390    #[doc = "      ],"]
1391    #[doc = "      \"properties\": {"]
1392    #[doc = "        \"NewReceiptValidationError\": {"]
1393    #[doc = "          \"$ref\": \"#/components/schemas/ReceiptValidationError\""]
1394    #[doc = "        }"]
1395    #[doc = "      },"]
1396    #[doc = "      \"additionalProperties\": false"]
1397    #[doc = "    },"]
1398    #[doc = "    {"]
1399    #[doc = "      \"description\": \"Error occurs when a `CreateAccount` action is called on a NEAR-implicit or ETH-implicit account.\\n See NEAR-implicit account creation NEP: <https://github.com/nearprotocol/NEPs/pull/71>.\\n Also, see ETH-implicit account creation NEP: <https://github.com/near/NEPs/issues/518>.\\n\\n TODO(#8598): This error is named very poorly. A better name would be\\n `OnlyNamedAccountCreationAllowed`.\","]
1400    #[doc = "      \"type\": \"object\","]
1401    #[doc = "      \"required\": ["]
1402    #[doc = "        \"OnlyImplicitAccountCreationAllowed\""]
1403    #[doc = "      ],"]
1404    #[doc = "      \"properties\": {"]
1405    #[doc = "        \"OnlyImplicitAccountCreationAllowed\": {"]
1406    #[doc = "          \"type\": \"object\","]
1407    #[doc = "          \"required\": ["]
1408    #[doc = "            \"account_id\""]
1409    #[doc = "          ],"]
1410    #[doc = "          \"properties\": {"]
1411    #[doc = "            \"account_id\": {"]
1412    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1413    #[doc = "            }"]
1414    #[doc = "          }"]
1415    #[doc = "        }"]
1416    #[doc = "      },"]
1417    #[doc = "      \"additionalProperties\": false"]
1418    #[doc = "    },"]
1419    #[doc = "    {"]
1420    #[doc = "      \"description\": \"Delete account whose state is large is temporarily banned.\","]
1421    #[doc = "      \"type\": \"object\","]
1422    #[doc = "      \"required\": ["]
1423    #[doc = "        \"DeleteAccountWithLargeState\""]
1424    #[doc = "      ],"]
1425    #[doc = "      \"properties\": {"]
1426    #[doc = "        \"DeleteAccountWithLargeState\": {"]
1427    #[doc = "          \"type\": \"object\","]
1428    #[doc = "          \"required\": ["]
1429    #[doc = "            \"account_id\""]
1430    #[doc = "          ],"]
1431    #[doc = "          \"properties\": {"]
1432    #[doc = "            \"account_id\": {"]
1433    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1434    #[doc = "            }"]
1435    #[doc = "          }"]
1436    #[doc = "        }"]
1437    #[doc = "      },"]
1438    #[doc = "      \"additionalProperties\": false"]
1439    #[doc = "    },"]
1440    #[doc = "    {"]
1441    #[doc = "      \"description\": \"Signature does not match the provided actions and given signer public key.\","]
1442    #[doc = "      \"type\": \"string\","]
1443    #[doc = "      \"enum\": ["]
1444    #[doc = "        \"DelegateActionInvalidSignature\""]
1445    #[doc = "      ]"]
1446    #[doc = "    },"]
1447    #[doc = "    {"]
1448    #[doc = "      \"description\": \"Receiver of the transaction doesn't match Sender of the delegate action\","]
1449    #[doc = "      \"type\": \"object\","]
1450    #[doc = "      \"required\": ["]
1451    #[doc = "        \"DelegateActionSenderDoesNotMatchTxReceiver\""]
1452    #[doc = "      ],"]
1453    #[doc = "      \"properties\": {"]
1454    #[doc = "        \"DelegateActionSenderDoesNotMatchTxReceiver\": {"]
1455    #[doc = "          \"type\": \"object\","]
1456    #[doc = "          \"required\": ["]
1457    #[doc = "            \"receiver_id\","]
1458    #[doc = "            \"sender_id\""]
1459    #[doc = "          ],"]
1460    #[doc = "          \"properties\": {"]
1461    #[doc = "            \"receiver_id\": {"]
1462    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1463    #[doc = "            },"]
1464    #[doc = "            \"sender_id\": {"]
1465    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1466    #[doc = "            }"]
1467    #[doc = "          }"]
1468    #[doc = "        }"]
1469    #[doc = "      },"]
1470    #[doc = "      \"additionalProperties\": false"]
1471    #[doc = "    },"]
1472    #[doc = "    {"]
1473    #[doc = "      \"description\": \"Delegate action has expired. `max_block_height` is less than actual block height.\","]
1474    #[doc = "      \"type\": \"string\","]
1475    #[doc = "      \"enum\": ["]
1476    #[doc = "        \"DelegateActionExpired\""]
1477    #[doc = "      ]"]
1478    #[doc = "    },"]
1479    #[doc = "    {"]
1480    #[doc = "      \"description\": \"The given public key doesn't exist for Sender account\","]
1481    #[doc = "      \"type\": \"object\","]
1482    #[doc = "      \"required\": ["]
1483    #[doc = "        \"DelegateActionAccessKeyError\""]
1484    #[doc = "      ],"]
1485    #[doc = "      \"properties\": {"]
1486    #[doc = "        \"DelegateActionAccessKeyError\": {"]
1487    #[doc = "          \"$ref\": \"#/components/schemas/InvalidAccessKeyError\""]
1488    #[doc = "        }"]
1489    #[doc = "      },"]
1490    #[doc = "      \"additionalProperties\": false"]
1491    #[doc = "    },"]
1492    #[doc = "    {"]
1493    #[doc = "      \"description\": \"DelegateAction nonce must be greater sender[public_key].nonce\","]
1494    #[doc = "      \"type\": \"object\","]
1495    #[doc = "      \"required\": ["]
1496    #[doc = "        \"DelegateActionInvalidNonce\""]
1497    #[doc = "      ],"]
1498    #[doc = "      \"properties\": {"]
1499    #[doc = "        \"DelegateActionInvalidNonce\": {"]
1500    #[doc = "          \"type\": \"object\","]
1501    #[doc = "          \"required\": ["]
1502    #[doc = "            \"ak_nonce\","]
1503    #[doc = "            \"delegate_nonce\""]
1504    #[doc = "          ],"]
1505    #[doc = "          \"properties\": {"]
1506    #[doc = "            \"ak_nonce\": {"]
1507    #[doc = "              \"type\": \"integer\","]
1508    #[doc = "              \"format\": \"uint64\","]
1509    #[doc = "              \"minimum\": 0.0"]
1510    #[doc = "            },"]
1511    #[doc = "            \"delegate_nonce\": {"]
1512    #[doc = "              \"type\": \"integer\","]
1513    #[doc = "              \"format\": \"uint64\","]
1514    #[doc = "              \"minimum\": 0.0"]
1515    #[doc = "            }"]
1516    #[doc = "          }"]
1517    #[doc = "        }"]
1518    #[doc = "      },"]
1519    #[doc = "      \"additionalProperties\": false"]
1520    #[doc = "    },"]
1521    #[doc = "    {"]
1522    #[doc = "      \"description\": \"DelegateAction nonce is larger than the upper bound given by the block height\","]
1523    #[doc = "      \"type\": \"object\","]
1524    #[doc = "      \"required\": ["]
1525    #[doc = "        \"DelegateActionNonceTooLarge\""]
1526    #[doc = "      ],"]
1527    #[doc = "      \"properties\": {"]
1528    #[doc = "        \"DelegateActionNonceTooLarge\": {"]
1529    #[doc = "          \"type\": \"object\","]
1530    #[doc = "          \"required\": ["]
1531    #[doc = "            \"delegate_nonce\","]
1532    #[doc = "            \"upper_bound\""]
1533    #[doc = "          ],"]
1534    #[doc = "          \"properties\": {"]
1535    #[doc = "            \"delegate_nonce\": {"]
1536    #[doc = "              \"type\": \"integer\","]
1537    #[doc = "              \"format\": \"uint64\","]
1538    #[doc = "              \"minimum\": 0.0"]
1539    #[doc = "            },"]
1540    #[doc = "            \"upper_bound\": {"]
1541    #[doc = "              \"type\": \"integer\","]
1542    #[doc = "              \"format\": \"uint64\","]
1543    #[doc = "              \"minimum\": 0.0"]
1544    #[doc = "            }"]
1545    #[doc = "          }"]
1546    #[doc = "        }"]
1547    #[doc = "      },"]
1548    #[doc = "      \"additionalProperties\": false"]
1549    #[doc = "    },"]
1550    #[doc = "    {"]
1551    #[doc = "      \"type\": \"object\","]
1552    #[doc = "      \"required\": ["]
1553    #[doc = "        \"GlobalContractDoesNotExist\""]
1554    #[doc = "      ],"]
1555    #[doc = "      \"properties\": {"]
1556    #[doc = "        \"GlobalContractDoesNotExist\": {"]
1557    #[doc = "          \"type\": \"object\","]
1558    #[doc = "          \"required\": ["]
1559    #[doc = "            \"identifier\""]
1560    #[doc = "          ],"]
1561    #[doc = "          \"properties\": {"]
1562    #[doc = "            \"identifier\": {"]
1563    #[doc = "              \"$ref\": \"#/components/schemas/GlobalContractIdentifier\""]
1564    #[doc = "            }"]
1565    #[doc = "          }"]
1566    #[doc = "        }"]
1567    #[doc = "      },"]
1568    #[doc = "      \"additionalProperties\": false"]
1569    #[doc = "    }"]
1570    #[doc = "  ]"]
1571    #[doc = "}"]
1572    #[doc = r" ```"]
1573    #[doc = r" </details>"]
1574    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1575    pub enum ActionErrorKind {
1576        #[doc = "Happens when CreateAccount action tries to create an account with account_id which is already exists in the storage"]
1577        AccountAlreadyExists { account_id: AccountId },
1578        #[doc = "Happens when TX receiver_id doesn't exist (but action is not Action::CreateAccount)"]
1579        AccountDoesNotExist { account_id: AccountId },
1580        #[doc = "A top-level account ID can only be created by registrar."]
1581        CreateAccountOnlyByRegistrar {
1582            account_id: AccountId,
1583            predecessor_id: AccountId,
1584            registrar_account_id: AccountId,
1585        },
1586        #[doc = "A newly created account must be under a namespace of the creator account"]
1587        CreateAccountNotAllowed {
1588            account_id: AccountId,
1589            predecessor_id: AccountId,
1590        },
1591        #[doc = "Administrative actions like `DeployContract`, `Stake`, `AddKey`, `DeleteKey`. can be proceed only if sender=receiver\n or the first TX action is a `CreateAccount` action"]
1592        ActorNoPermission {
1593            account_id: AccountId,
1594            actor_id: AccountId,
1595        },
1596        #[doc = "Account tries to remove an access key that doesn't exist"]
1597        DeleteKeyDoesNotExist {
1598            account_id: AccountId,
1599            public_key: PublicKey,
1600        },
1601        #[doc = "The public key is already used for an existing access key"]
1602        AddKeyAlreadyExists {
1603            account_id: AccountId,
1604            public_key: PublicKey,
1605        },
1606        #[doc = "Account is staking and can not be deleted"]
1607        DeleteAccountStaking { account_id: AccountId },
1608        #[doc = "ActionReceipt can't be completed, because the remaining balance will not be enough to cover storage."]
1609        LackBalanceForState {
1610            #[doc = "An account which needs balance"]
1611            account_id: AccountId,
1612            #[doc = "Balance required to complete an action."]
1613            amount: ::std::string::String,
1614        },
1615        #[doc = "Account is not yet staked, but tries to unstake"]
1616        TriesToUnstake { account_id: AccountId },
1617        #[doc = "The account doesn't have enough balance to increase the stake."]
1618        TriesToStake {
1619            account_id: AccountId,
1620            balance: ::std::string::String,
1621            locked: ::std::string::String,
1622            stake: ::std::string::String,
1623        },
1624        InsufficientStake {
1625            account_id: AccountId,
1626            minimum_stake: ::std::string::String,
1627            stake: ::std::string::String,
1628        },
1629        #[doc = "An error occurred during a `FunctionCall` Action, parameter is debug message."]
1630        FunctionCallError(FunctionCallError),
1631        #[doc = "Error occurs when a new `ActionReceipt` created by the `FunctionCall` action fails\n receipt validation."]
1632        NewReceiptValidationError(ReceiptValidationError),
1633        #[doc = "Error occurs when a `CreateAccount` action is called on a NEAR-implicit or ETH-implicit account.\n See NEAR-implicit account creation NEP: <https://github.com/nearprotocol/NEPs/pull/71>.\n Also, see ETH-implicit account creation NEP: <https://github.com/near/NEPs/issues/518>.\n\n TODO(#8598): This error is named very poorly. A better name would be\n `OnlyNamedAccountCreationAllowed`."]
1634        OnlyImplicitAccountCreationAllowed { account_id: AccountId },
1635        #[doc = "Delete account whose state is large is temporarily banned."]
1636        DeleteAccountWithLargeState { account_id: AccountId },
1637        #[doc = "Signature does not match the provided actions and given signer public key."]
1638        DelegateActionInvalidSignature,
1639        #[doc = "Receiver of the transaction doesn't match Sender of the delegate action"]
1640        DelegateActionSenderDoesNotMatchTxReceiver {
1641            receiver_id: AccountId,
1642            sender_id: AccountId,
1643        },
1644        #[doc = "Delegate action has expired. `max_block_height` is less than actual block height."]
1645        DelegateActionExpired,
1646        #[doc = "The given public key doesn't exist for Sender account"]
1647        DelegateActionAccessKeyError(InvalidAccessKeyError),
1648        #[doc = "DelegateAction nonce must be greater sender[public_key].nonce"]
1649        DelegateActionInvalidNonce { ak_nonce: u64, delegate_nonce: u64 },
1650        #[doc = "DelegateAction nonce is larger than the upper bound given by the block height"]
1651        DelegateActionNonceTooLarge {
1652            delegate_nonce: u64,
1653            upper_bound: u64,
1654        },
1655        GlobalContractDoesNotExist {
1656            identifier: GlobalContractIdentifier,
1657        },
1658    }
1659    impl ::std::convert::From<&Self> for ActionErrorKind {
1660        fn from(value: &ActionErrorKind) -> Self {
1661            value.clone()
1662        }
1663    }
1664    impl ::std::convert::From<FunctionCallError> for ActionErrorKind {
1665        fn from(value: FunctionCallError) -> Self {
1666            Self::FunctionCallError(value)
1667        }
1668    }
1669    impl ::std::convert::From<ReceiptValidationError> for ActionErrorKind {
1670        fn from(value: ReceiptValidationError) -> Self {
1671            Self::NewReceiptValidationError(value)
1672        }
1673    }
1674    impl ::std::convert::From<InvalidAccessKeyError> for ActionErrorKind {
1675        fn from(value: InvalidAccessKeyError) -> Self {
1676            Self::DelegateActionAccessKeyError(value)
1677        }
1678    }
1679    #[doc = "`ActionView`"]
1680    #[doc = r""]
1681    #[doc = r" <details><summary>JSON schema</summary>"]
1682    #[doc = r""]
1683    #[doc = r" ```json"]
1684    #[doc = "{"]
1685    #[doc = "  \"oneOf\": ["]
1686    #[doc = "    {"]
1687    #[doc = "      \"type\": \"string\","]
1688    #[doc = "      \"enum\": ["]
1689    #[doc = "        \"CreateAccount\""]
1690    #[doc = "      ]"]
1691    #[doc = "    },"]
1692    #[doc = "    {"]
1693    #[doc = "      \"type\": \"object\","]
1694    #[doc = "      \"required\": ["]
1695    #[doc = "        \"DeployContract\""]
1696    #[doc = "      ],"]
1697    #[doc = "      \"properties\": {"]
1698    #[doc = "        \"DeployContract\": {"]
1699    #[doc = "          \"type\": \"object\","]
1700    #[doc = "          \"required\": ["]
1701    #[doc = "            \"code\""]
1702    #[doc = "          ],"]
1703    #[doc = "          \"properties\": {"]
1704    #[doc = "            \"code\": {"]
1705    #[doc = "              \"type\": \"string\","]
1706    #[doc = "              \"format\": \"bytes\""]
1707    #[doc = "            }"]
1708    #[doc = "          }"]
1709    #[doc = "        }"]
1710    #[doc = "      },"]
1711    #[doc = "      \"additionalProperties\": false"]
1712    #[doc = "    },"]
1713    #[doc = "    {"]
1714    #[doc = "      \"type\": \"object\","]
1715    #[doc = "      \"required\": ["]
1716    #[doc = "        \"FunctionCall\""]
1717    #[doc = "      ],"]
1718    #[doc = "      \"properties\": {"]
1719    #[doc = "        \"FunctionCall\": {"]
1720    #[doc = "          \"type\": \"object\","]
1721    #[doc = "          \"required\": ["]
1722    #[doc = "            \"args\","]
1723    #[doc = "            \"deposit\","]
1724    #[doc = "            \"gas\","]
1725    #[doc = "            \"method_name\""]
1726    #[doc = "          ],"]
1727    #[doc = "          \"properties\": {"]
1728    #[doc = "            \"args\": {"]
1729    #[doc = "              \"type\": \"string\","]
1730    #[doc = "              \"format\": \"bytes\""]
1731    #[doc = "            },"]
1732    #[doc = "            \"deposit\": {"]
1733    #[doc = "              \"type\": \"string\""]
1734    #[doc = "            },"]
1735    #[doc = "            \"gas\": {"]
1736    #[doc = "              \"type\": \"integer\","]
1737    #[doc = "              \"format\": \"uint64\","]
1738    #[doc = "              \"minimum\": 0.0"]
1739    #[doc = "            },"]
1740    #[doc = "            \"method_name\": {"]
1741    #[doc = "              \"type\": \"string\""]
1742    #[doc = "            }"]
1743    #[doc = "          }"]
1744    #[doc = "        }"]
1745    #[doc = "      },"]
1746    #[doc = "      \"additionalProperties\": false"]
1747    #[doc = "    },"]
1748    #[doc = "    {"]
1749    #[doc = "      \"type\": \"object\","]
1750    #[doc = "      \"required\": ["]
1751    #[doc = "        \"Transfer\""]
1752    #[doc = "      ],"]
1753    #[doc = "      \"properties\": {"]
1754    #[doc = "        \"Transfer\": {"]
1755    #[doc = "          \"type\": \"object\","]
1756    #[doc = "          \"required\": ["]
1757    #[doc = "            \"deposit\""]
1758    #[doc = "          ],"]
1759    #[doc = "          \"properties\": {"]
1760    #[doc = "            \"deposit\": {"]
1761    #[doc = "              \"type\": \"string\""]
1762    #[doc = "            }"]
1763    #[doc = "          }"]
1764    #[doc = "        }"]
1765    #[doc = "      },"]
1766    #[doc = "      \"additionalProperties\": false"]
1767    #[doc = "    },"]
1768    #[doc = "    {"]
1769    #[doc = "      \"type\": \"object\","]
1770    #[doc = "      \"required\": ["]
1771    #[doc = "        \"Stake\""]
1772    #[doc = "      ],"]
1773    #[doc = "      \"properties\": {"]
1774    #[doc = "        \"Stake\": {"]
1775    #[doc = "          \"type\": \"object\","]
1776    #[doc = "          \"required\": ["]
1777    #[doc = "            \"public_key\","]
1778    #[doc = "            \"stake\""]
1779    #[doc = "          ],"]
1780    #[doc = "          \"properties\": {"]
1781    #[doc = "            \"public_key\": {"]
1782    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
1783    #[doc = "            },"]
1784    #[doc = "            \"stake\": {"]
1785    #[doc = "              \"type\": \"string\""]
1786    #[doc = "            }"]
1787    #[doc = "          }"]
1788    #[doc = "        }"]
1789    #[doc = "      },"]
1790    #[doc = "      \"additionalProperties\": false"]
1791    #[doc = "    },"]
1792    #[doc = "    {"]
1793    #[doc = "      \"type\": \"object\","]
1794    #[doc = "      \"required\": ["]
1795    #[doc = "        \"AddKey\""]
1796    #[doc = "      ],"]
1797    #[doc = "      \"properties\": {"]
1798    #[doc = "        \"AddKey\": {"]
1799    #[doc = "          \"type\": \"object\","]
1800    #[doc = "          \"required\": ["]
1801    #[doc = "            \"access_key\","]
1802    #[doc = "            \"public_key\""]
1803    #[doc = "          ],"]
1804    #[doc = "          \"properties\": {"]
1805    #[doc = "            \"access_key\": {"]
1806    #[doc = "              \"$ref\": \"#/components/schemas/AccessKeyView\""]
1807    #[doc = "            },"]
1808    #[doc = "            \"public_key\": {"]
1809    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
1810    #[doc = "            }"]
1811    #[doc = "          }"]
1812    #[doc = "        }"]
1813    #[doc = "      },"]
1814    #[doc = "      \"additionalProperties\": false"]
1815    #[doc = "    },"]
1816    #[doc = "    {"]
1817    #[doc = "      \"type\": \"object\","]
1818    #[doc = "      \"required\": ["]
1819    #[doc = "        \"DeleteKey\""]
1820    #[doc = "      ],"]
1821    #[doc = "      \"properties\": {"]
1822    #[doc = "        \"DeleteKey\": {"]
1823    #[doc = "          \"type\": \"object\","]
1824    #[doc = "          \"required\": ["]
1825    #[doc = "            \"public_key\""]
1826    #[doc = "          ],"]
1827    #[doc = "          \"properties\": {"]
1828    #[doc = "            \"public_key\": {"]
1829    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
1830    #[doc = "            }"]
1831    #[doc = "          }"]
1832    #[doc = "        }"]
1833    #[doc = "      },"]
1834    #[doc = "      \"additionalProperties\": false"]
1835    #[doc = "    },"]
1836    #[doc = "    {"]
1837    #[doc = "      \"type\": \"object\","]
1838    #[doc = "      \"required\": ["]
1839    #[doc = "        \"DeleteAccount\""]
1840    #[doc = "      ],"]
1841    #[doc = "      \"properties\": {"]
1842    #[doc = "        \"DeleteAccount\": {"]
1843    #[doc = "          \"type\": \"object\","]
1844    #[doc = "          \"required\": ["]
1845    #[doc = "            \"beneficiary_id\""]
1846    #[doc = "          ],"]
1847    #[doc = "          \"properties\": {"]
1848    #[doc = "            \"beneficiary_id\": {"]
1849    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1850    #[doc = "            }"]
1851    #[doc = "          }"]
1852    #[doc = "        }"]
1853    #[doc = "      },"]
1854    #[doc = "      \"additionalProperties\": false"]
1855    #[doc = "    },"]
1856    #[doc = "    {"]
1857    #[doc = "      \"type\": \"object\","]
1858    #[doc = "      \"required\": ["]
1859    #[doc = "        \"Delegate\""]
1860    #[doc = "      ],"]
1861    #[doc = "      \"properties\": {"]
1862    #[doc = "        \"Delegate\": {"]
1863    #[doc = "          \"type\": \"object\","]
1864    #[doc = "          \"required\": ["]
1865    #[doc = "            \"delegate_action\","]
1866    #[doc = "            \"signature\""]
1867    #[doc = "          ],"]
1868    #[doc = "          \"properties\": {"]
1869    #[doc = "            \"delegate_action\": {"]
1870    #[doc = "              \"$ref\": \"#/components/schemas/DelegateAction\""]
1871    #[doc = "            },"]
1872    #[doc = "            \"signature\": {"]
1873    #[doc = "              \"$ref\": \"#/components/schemas/Signature\""]
1874    #[doc = "            }"]
1875    #[doc = "          }"]
1876    #[doc = "        }"]
1877    #[doc = "      },"]
1878    #[doc = "      \"additionalProperties\": false"]
1879    #[doc = "    },"]
1880    #[doc = "    {"]
1881    #[doc = "      \"type\": \"object\","]
1882    #[doc = "      \"required\": ["]
1883    #[doc = "        \"DeployGlobalContract\""]
1884    #[doc = "      ],"]
1885    #[doc = "      \"properties\": {"]
1886    #[doc = "        \"DeployGlobalContract\": {"]
1887    #[doc = "          \"type\": \"object\","]
1888    #[doc = "          \"required\": ["]
1889    #[doc = "            \"code\""]
1890    #[doc = "          ],"]
1891    #[doc = "          \"properties\": {"]
1892    #[doc = "            \"code\": {"]
1893    #[doc = "              \"type\": \"string\","]
1894    #[doc = "              \"format\": \"bytes\""]
1895    #[doc = "            }"]
1896    #[doc = "          }"]
1897    #[doc = "        }"]
1898    #[doc = "      },"]
1899    #[doc = "      \"additionalProperties\": false"]
1900    #[doc = "    },"]
1901    #[doc = "    {"]
1902    #[doc = "      \"type\": \"object\","]
1903    #[doc = "      \"required\": ["]
1904    #[doc = "        \"DeployGlobalContractByAccountId\""]
1905    #[doc = "      ],"]
1906    #[doc = "      \"properties\": {"]
1907    #[doc = "        \"DeployGlobalContractByAccountId\": {"]
1908    #[doc = "          \"type\": \"object\","]
1909    #[doc = "          \"required\": ["]
1910    #[doc = "            \"code\""]
1911    #[doc = "          ],"]
1912    #[doc = "          \"properties\": {"]
1913    #[doc = "            \"code\": {"]
1914    #[doc = "              \"type\": \"string\","]
1915    #[doc = "              \"format\": \"bytes\""]
1916    #[doc = "            }"]
1917    #[doc = "          }"]
1918    #[doc = "        }"]
1919    #[doc = "      },"]
1920    #[doc = "      \"additionalProperties\": false"]
1921    #[doc = "    },"]
1922    #[doc = "    {"]
1923    #[doc = "      \"type\": \"object\","]
1924    #[doc = "      \"required\": ["]
1925    #[doc = "        \"UseGlobalContract\""]
1926    #[doc = "      ],"]
1927    #[doc = "      \"properties\": {"]
1928    #[doc = "        \"UseGlobalContract\": {"]
1929    #[doc = "          \"type\": \"object\","]
1930    #[doc = "          \"required\": ["]
1931    #[doc = "            \"code_hash\""]
1932    #[doc = "          ],"]
1933    #[doc = "          \"properties\": {"]
1934    #[doc = "            \"code_hash\": {"]
1935    #[doc = "              \"$ref\": \"#/components/schemas/CryptoHash\""]
1936    #[doc = "            }"]
1937    #[doc = "          }"]
1938    #[doc = "        }"]
1939    #[doc = "      },"]
1940    #[doc = "      \"additionalProperties\": false"]
1941    #[doc = "    },"]
1942    #[doc = "    {"]
1943    #[doc = "      \"type\": \"object\","]
1944    #[doc = "      \"required\": ["]
1945    #[doc = "        \"UseGlobalContractByAccountId\""]
1946    #[doc = "      ],"]
1947    #[doc = "      \"properties\": {"]
1948    #[doc = "        \"UseGlobalContractByAccountId\": {"]
1949    #[doc = "          \"type\": \"object\","]
1950    #[doc = "          \"required\": ["]
1951    #[doc = "            \"account_id\""]
1952    #[doc = "          ],"]
1953    #[doc = "          \"properties\": {"]
1954    #[doc = "            \"account_id\": {"]
1955    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
1956    #[doc = "            }"]
1957    #[doc = "          }"]
1958    #[doc = "        }"]
1959    #[doc = "      },"]
1960    #[doc = "      \"additionalProperties\": false"]
1961    #[doc = "    }"]
1962    #[doc = "  ]"]
1963    #[doc = "}"]
1964    #[doc = r" ```"]
1965    #[doc = r" </details>"]
1966    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1967    pub enum ActionView {
1968        CreateAccount,
1969        DeployContract {
1970            code: ::std::string::String,
1971        },
1972        FunctionCall {
1973            args: ::std::string::String,
1974            deposit: ::std::string::String,
1975            gas: u64,
1976            method_name: ::std::string::String,
1977        },
1978        Transfer {
1979            deposit: ::std::string::String,
1980        },
1981        Stake {
1982            public_key: PublicKey,
1983            stake: ::std::string::String,
1984        },
1985        AddKey {
1986            access_key: AccessKeyView,
1987            public_key: PublicKey,
1988        },
1989        DeleteKey {
1990            public_key: PublicKey,
1991        },
1992        DeleteAccount {
1993            beneficiary_id: AccountId,
1994        },
1995        Delegate {
1996            delegate_action: DelegateAction,
1997            signature: Signature,
1998        },
1999        DeployGlobalContract {
2000            code: ::std::string::String,
2001        },
2002        DeployGlobalContractByAccountId {
2003            code: ::std::string::String,
2004        },
2005        UseGlobalContract {
2006            code_hash: CryptoHash,
2007        },
2008        UseGlobalContractByAccountId {
2009            account_id: AccountId,
2010        },
2011    }
2012    impl ::std::convert::From<&Self> for ActionView {
2013        fn from(value: &ActionView) -> Self {
2014            value.clone()
2015        }
2016    }
2017    #[doc = "Describes the error for validating a list of actions."]
2018    #[doc = r""]
2019    #[doc = r" <details><summary>JSON schema</summary>"]
2020    #[doc = r""]
2021    #[doc = r" ```json"]
2022    #[doc = "{"]
2023    #[doc = "  \"description\": \"Describes the error for validating a list of actions.\","]
2024    #[doc = "  \"oneOf\": ["]
2025    #[doc = "    {"]
2026    #[doc = "      \"description\": \"The delete action must be a final action in transaction\","]
2027    #[doc = "      \"type\": \"string\","]
2028    #[doc = "      \"enum\": ["]
2029    #[doc = "        \"DeleteActionMustBeFinal\""]
2030    #[doc = "      ]"]
2031    #[doc = "    },"]
2032    #[doc = "    {"]
2033    #[doc = "      \"description\": \"The total prepaid gas (for all given actions) exceeded the limit.\","]
2034    #[doc = "      \"type\": \"object\","]
2035    #[doc = "      \"required\": ["]
2036    #[doc = "        \"TotalPrepaidGasExceeded\""]
2037    #[doc = "      ],"]
2038    #[doc = "      \"properties\": {"]
2039    #[doc = "        \"TotalPrepaidGasExceeded\": {"]
2040    #[doc = "          \"type\": \"object\","]
2041    #[doc = "          \"required\": ["]
2042    #[doc = "            \"limit\","]
2043    #[doc = "            \"total_prepaid_gas\""]
2044    #[doc = "          ],"]
2045    #[doc = "          \"properties\": {"]
2046    #[doc = "            \"limit\": {"]
2047    #[doc = "              \"type\": \"integer\","]
2048    #[doc = "              \"format\": \"uint64\","]
2049    #[doc = "              \"minimum\": 0.0"]
2050    #[doc = "            },"]
2051    #[doc = "            \"total_prepaid_gas\": {"]
2052    #[doc = "              \"type\": \"integer\","]
2053    #[doc = "              \"format\": \"uint64\","]
2054    #[doc = "              \"minimum\": 0.0"]
2055    #[doc = "            }"]
2056    #[doc = "          }"]
2057    #[doc = "        }"]
2058    #[doc = "      },"]
2059    #[doc = "      \"additionalProperties\": false"]
2060    #[doc = "    },"]
2061    #[doc = "    {"]
2062    #[doc = "      \"description\": \"The number of actions exceeded the given limit.\","]
2063    #[doc = "      \"type\": \"object\","]
2064    #[doc = "      \"required\": ["]
2065    #[doc = "        \"TotalNumberOfActionsExceeded\""]
2066    #[doc = "      ],"]
2067    #[doc = "      \"properties\": {"]
2068    #[doc = "        \"TotalNumberOfActionsExceeded\": {"]
2069    #[doc = "          \"type\": \"object\","]
2070    #[doc = "          \"required\": ["]
2071    #[doc = "            \"limit\","]
2072    #[doc = "            \"total_number_of_actions\""]
2073    #[doc = "          ],"]
2074    #[doc = "          \"properties\": {"]
2075    #[doc = "            \"limit\": {"]
2076    #[doc = "              \"type\": \"integer\","]
2077    #[doc = "              \"format\": \"uint64\","]
2078    #[doc = "              \"minimum\": 0.0"]
2079    #[doc = "            },"]
2080    #[doc = "            \"total_number_of_actions\": {"]
2081    #[doc = "              \"type\": \"integer\","]
2082    #[doc = "              \"format\": \"uint64\","]
2083    #[doc = "              \"minimum\": 0.0"]
2084    #[doc = "            }"]
2085    #[doc = "          }"]
2086    #[doc = "        }"]
2087    #[doc = "      },"]
2088    #[doc = "      \"additionalProperties\": false"]
2089    #[doc = "    },"]
2090    #[doc = "    {"]
2091    #[doc = "      \"description\": \"The total number of bytes of the method names exceeded the limit in a Add Key action.\","]
2092    #[doc = "      \"type\": \"object\","]
2093    #[doc = "      \"required\": ["]
2094    #[doc = "        \"AddKeyMethodNamesNumberOfBytesExceeded\""]
2095    #[doc = "      ],"]
2096    #[doc = "      \"properties\": {"]
2097    #[doc = "        \"AddKeyMethodNamesNumberOfBytesExceeded\": {"]
2098    #[doc = "          \"type\": \"object\","]
2099    #[doc = "          \"required\": ["]
2100    #[doc = "            \"limit\","]
2101    #[doc = "            \"total_number_of_bytes\""]
2102    #[doc = "          ],"]
2103    #[doc = "          \"properties\": {"]
2104    #[doc = "            \"limit\": {"]
2105    #[doc = "              \"type\": \"integer\","]
2106    #[doc = "              \"format\": \"uint64\","]
2107    #[doc = "              \"minimum\": 0.0"]
2108    #[doc = "            },"]
2109    #[doc = "            \"total_number_of_bytes\": {"]
2110    #[doc = "              \"type\": \"integer\","]
2111    #[doc = "              \"format\": \"uint64\","]
2112    #[doc = "              \"minimum\": 0.0"]
2113    #[doc = "            }"]
2114    #[doc = "          }"]
2115    #[doc = "        }"]
2116    #[doc = "      },"]
2117    #[doc = "      \"additionalProperties\": false"]
2118    #[doc = "    },"]
2119    #[doc = "    {"]
2120    #[doc = "      \"description\": \"The length of some method name exceeded the limit in a Add Key action.\","]
2121    #[doc = "      \"type\": \"object\","]
2122    #[doc = "      \"required\": ["]
2123    #[doc = "        \"AddKeyMethodNameLengthExceeded\""]
2124    #[doc = "      ],"]
2125    #[doc = "      \"properties\": {"]
2126    #[doc = "        \"AddKeyMethodNameLengthExceeded\": {"]
2127    #[doc = "          \"type\": \"object\","]
2128    #[doc = "          \"required\": ["]
2129    #[doc = "            \"length\","]
2130    #[doc = "            \"limit\""]
2131    #[doc = "          ],"]
2132    #[doc = "          \"properties\": {"]
2133    #[doc = "            \"length\": {"]
2134    #[doc = "              \"type\": \"integer\","]
2135    #[doc = "              \"format\": \"uint64\","]
2136    #[doc = "              \"minimum\": 0.0"]
2137    #[doc = "            },"]
2138    #[doc = "            \"limit\": {"]
2139    #[doc = "              \"type\": \"integer\","]
2140    #[doc = "              \"format\": \"uint64\","]
2141    #[doc = "              \"minimum\": 0.0"]
2142    #[doc = "            }"]
2143    #[doc = "          }"]
2144    #[doc = "        }"]
2145    #[doc = "      },"]
2146    #[doc = "      \"additionalProperties\": false"]
2147    #[doc = "    },"]
2148    #[doc = "    {"]
2149    #[doc = "      \"description\": \"Integer overflow during a compute.\","]
2150    #[doc = "      \"type\": \"string\","]
2151    #[doc = "      \"enum\": ["]
2152    #[doc = "        \"IntegerOverflow\""]
2153    #[doc = "      ]"]
2154    #[doc = "    },"]
2155    #[doc = "    {"]
2156    #[doc = "      \"description\": \"Invalid account ID.\","]
2157    #[doc = "      \"type\": \"object\","]
2158    #[doc = "      \"required\": ["]
2159    #[doc = "        \"InvalidAccountId\""]
2160    #[doc = "      ],"]
2161    #[doc = "      \"properties\": {"]
2162    #[doc = "        \"InvalidAccountId\": {"]
2163    #[doc = "          \"type\": \"object\","]
2164    #[doc = "          \"required\": ["]
2165    #[doc = "            \"account_id\""]
2166    #[doc = "          ],"]
2167    #[doc = "          \"properties\": {"]
2168    #[doc = "            \"account_id\": {"]
2169    #[doc = "              \"type\": \"string\""]
2170    #[doc = "            }"]
2171    #[doc = "          }"]
2172    #[doc = "        }"]
2173    #[doc = "      },"]
2174    #[doc = "      \"additionalProperties\": false"]
2175    #[doc = "    },"]
2176    #[doc = "    {"]
2177    #[doc = "      \"description\": \"The size of the contract code exceeded the limit in a DeployContract action.\","]
2178    #[doc = "      \"type\": \"object\","]
2179    #[doc = "      \"required\": ["]
2180    #[doc = "        \"ContractSizeExceeded\""]
2181    #[doc = "      ],"]
2182    #[doc = "      \"properties\": {"]
2183    #[doc = "        \"ContractSizeExceeded\": {"]
2184    #[doc = "          \"type\": \"object\","]
2185    #[doc = "          \"required\": ["]
2186    #[doc = "            \"limit\","]
2187    #[doc = "            \"size\""]
2188    #[doc = "          ],"]
2189    #[doc = "          \"properties\": {"]
2190    #[doc = "            \"limit\": {"]
2191    #[doc = "              \"type\": \"integer\","]
2192    #[doc = "              \"format\": \"uint64\","]
2193    #[doc = "              \"minimum\": 0.0"]
2194    #[doc = "            },"]
2195    #[doc = "            \"size\": {"]
2196    #[doc = "              \"type\": \"integer\","]
2197    #[doc = "              \"format\": \"uint64\","]
2198    #[doc = "              \"minimum\": 0.0"]
2199    #[doc = "            }"]
2200    #[doc = "          }"]
2201    #[doc = "        }"]
2202    #[doc = "      },"]
2203    #[doc = "      \"additionalProperties\": false"]
2204    #[doc = "    },"]
2205    #[doc = "    {"]
2206    #[doc = "      \"description\": \"The length of the method name exceeded the limit in a Function Call action.\","]
2207    #[doc = "      \"type\": \"object\","]
2208    #[doc = "      \"required\": ["]
2209    #[doc = "        \"FunctionCallMethodNameLengthExceeded\""]
2210    #[doc = "      ],"]
2211    #[doc = "      \"properties\": {"]
2212    #[doc = "        \"FunctionCallMethodNameLengthExceeded\": {"]
2213    #[doc = "          \"type\": \"object\","]
2214    #[doc = "          \"required\": ["]
2215    #[doc = "            \"length\","]
2216    #[doc = "            \"limit\""]
2217    #[doc = "          ],"]
2218    #[doc = "          \"properties\": {"]
2219    #[doc = "            \"length\": {"]
2220    #[doc = "              \"type\": \"integer\","]
2221    #[doc = "              \"format\": \"uint64\","]
2222    #[doc = "              \"minimum\": 0.0"]
2223    #[doc = "            },"]
2224    #[doc = "            \"limit\": {"]
2225    #[doc = "              \"type\": \"integer\","]
2226    #[doc = "              \"format\": \"uint64\","]
2227    #[doc = "              \"minimum\": 0.0"]
2228    #[doc = "            }"]
2229    #[doc = "          }"]
2230    #[doc = "        }"]
2231    #[doc = "      },"]
2232    #[doc = "      \"additionalProperties\": false"]
2233    #[doc = "    },"]
2234    #[doc = "    {"]
2235    #[doc = "      \"description\": \"The length of the arguments exceeded the limit in a Function Call action.\","]
2236    #[doc = "      \"type\": \"object\","]
2237    #[doc = "      \"required\": ["]
2238    #[doc = "        \"FunctionCallArgumentsLengthExceeded\""]
2239    #[doc = "      ],"]
2240    #[doc = "      \"properties\": {"]
2241    #[doc = "        \"FunctionCallArgumentsLengthExceeded\": {"]
2242    #[doc = "          \"type\": \"object\","]
2243    #[doc = "          \"required\": ["]
2244    #[doc = "            \"length\","]
2245    #[doc = "            \"limit\""]
2246    #[doc = "          ],"]
2247    #[doc = "          \"properties\": {"]
2248    #[doc = "            \"length\": {"]
2249    #[doc = "              \"type\": \"integer\","]
2250    #[doc = "              \"format\": \"uint64\","]
2251    #[doc = "              \"minimum\": 0.0"]
2252    #[doc = "            },"]
2253    #[doc = "            \"limit\": {"]
2254    #[doc = "              \"type\": \"integer\","]
2255    #[doc = "              \"format\": \"uint64\","]
2256    #[doc = "              \"minimum\": 0.0"]
2257    #[doc = "            }"]
2258    #[doc = "          }"]
2259    #[doc = "        }"]
2260    #[doc = "      },"]
2261    #[doc = "      \"additionalProperties\": false"]
2262    #[doc = "    },"]
2263    #[doc = "    {"]
2264    #[doc = "      \"description\": \"An attempt to stake with a public key that is not convertible to ristretto.\","]
2265    #[doc = "      \"type\": \"object\","]
2266    #[doc = "      \"required\": ["]
2267    #[doc = "        \"UnsuitableStakingKey\""]
2268    #[doc = "      ],"]
2269    #[doc = "      \"properties\": {"]
2270    #[doc = "        \"UnsuitableStakingKey\": {"]
2271    #[doc = "          \"type\": \"object\","]
2272    #[doc = "          \"required\": ["]
2273    #[doc = "            \"public_key\""]
2274    #[doc = "          ],"]
2275    #[doc = "          \"properties\": {"]
2276    #[doc = "            \"public_key\": {"]
2277    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
2278    #[doc = "            }"]
2279    #[doc = "          }"]
2280    #[doc = "        }"]
2281    #[doc = "      },"]
2282    #[doc = "      \"additionalProperties\": false"]
2283    #[doc = "    },"]
2284    #[doc = "    {"]
2285    #[doc = "      \"description\": \"The attached amount of gas in a FunctionCall action has to be a positive number.\","]
2286    #[doc = "      \"type\": \"string\","]
2287    #[doc = "      \"enum\": ["]
2288    #[doc = "        \"FunctionCallZeroAttachedGas\""]
2289    #[doc = "      ]"]
2290    #[doc = "    },"]
2291    #[doc = "    {"]
2292    #[doc = "      \"description\": \"There should be the only one DelegateAction\","]
2293    #[doc = "      \"type\": \"string\","]
2294    #[doc = "      \"enum\": ["]
2295    #[doc = "        \"DelegateActionMustBeOnlyOne\""]
2296    #[doc = "      ]"]
2297    #[doc = "    },"]
2298    #[doc = "    {"]
2299    #[doc = "      \"description\": \"The transaction includes a feature that the current protocol version\\n does not support.\\n\\n Note: we stringify the protocol feature name instead of using\\n `ProtocolFeature` here because we don't want to leak the internals of\\n that type into observable borsh serialization.\","]
2300    #[doc = "      \"type\": \"object\","]
2301    #[doc = "      \"required\": ["]
2302    #[doc = "        \"UnsupportedProtocolFeature\""]
2303    #[doc = "      ],"]
2304    #[doc = "      \"properties\": {"]
2305    #[doc = "        \"UnsupportedProtocolFeature\": {"]
2306    #[doc = "          \"type\": \"object\","]
2307    #[doc = "          \"required\": ["]
2308    #[doc = "            \"protocol_feature\","]
2309    #[doc = "            \"version\""]
2310    #[doc = "          ],"]
2311    #[doc = "          \"properties\": {"]
2312    #[doc = "            \"protocol_feature\": {"]
2313    #[doc = "              \"type\": \"string\""]
2314    #[doc = "            },"]
2315    #[doc = "            \"version\": {"]
2316    #[doc = "              \"type\": \"integer\","]
2317    #[doc = "              \"format\": \"uint32\","]
2318    #[doc = "              \"minimum\": 0.0"]
2319    #[doc = "            }"]
2320    #[doc = "          }"]
2321    #[doc = "        }"]
2322    #[doc = "      },"]
2323    #[doc = "      \"additionalProperties\": false"]
2324    #[doc = "    }"]
2325    #[doc = "  ]"]
2326    #[doc = "}"]
2327    #[doc = r" ```"]
2328    #[doc = r" </details>"]
2329    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2330    pub enum ActionsValidationError {
2331        #[doc = "The delete action must be a final action in transaction"]
2332        DeleteActionMustBeFinal,
2333        #[doc = "The total prepaid gas (for all given actions) exceeded the limit."]
2334        TotalPrepaidGasExceeded { limit: u64, total_prepaid_gas: u64 },
2335        #[doc = "The number of actions exceeded the given limit."]
2336        TotalNumberOfActionsExceeded {
2337            limit: u64,
2338            total_number_of_actions: u64,
2339        },
2340        #[doc = "The total number of bytes of the method names exceeded the limit in a Add Key action."]
2341        AddKeyMethodNamesNumberOfBytesExceeded {
2342            limit: u64,
2343            total_number_of_bytes: u64,
2344        },
2345        #[doc = "The length of some method name exceeded the limit in a Add Key action."]
2346        AddKeyMethodNameLengthExceeded { length: u64, limit: u64 },
2347        #[doc = "Integer overflow during a compute."]
2348        IntegerOverflow,
2349        #[doc = "Invalid account ID."]
2350        InvalidAccountId { account_id: ::std::string::String },
2351        #[doc = "The size of the contract code exceeded the limit in a DeployContract action."]
2352        ContractSizeExceeded { limit: u64, size: u64 },
2353        #[doc = "The length of the method name exceeded the limit in a Function Call action."]
2354        FunctionCallMethodNameLengthExceeded { length: u64, limit: u64 },
2355        #[doc = "The length of the arguments exceeded the limit in a Function Call action."]
2356        FunctionCallArgumentsLengthExceeded { length: u64, limit: u64 },
2357        #[doc = "An attempt to stake with a public key that is not convertible to ristretto."]
2358        UnsuitableStakingKey { public_key: PublicKey },
2359        #[doc = "The attached amount of gas in a FunctionCall action has to be a positive number."]
2360        FunctionCallZeroAttachedGas,
2361        #[doc = "There should be the only one DelegateAction"]
2362        DelegateActionMustBeOnlyOne,
2363        #[doc = "The transaction includes a feature that the current protocol version\n does not support.\n\n Note: we stringify the protocol feature name instead of using\n `ProtocolFeature` here because we don't want to leak the internals of\n that type into observable borsh serialization."]
2364        UnsupportedProtocolFeature {
2365            protocol_feature: ::std::string::String,
2366            version: u32,
2367        },
2368    }
2369    impl ::std::convert::From<&Self> for ActionsValidationError {
2370        fn from(value: &ActionsValidationError) -> Self {
2371            value.clone()
2372        }
2373    }
2374    #[doc = "`AddKeyAction`"]
2375    #[doc = r""]
2376    #[doc = r" <details><summary>JSON schema</summary>"]
2377    #[doc = r""]
2378    #[doc = r" ```json"]
2379    #[doc = "{"]
2380    #[doc = "  \"type\": \"object\","]
2381    #[doc = "  \"required\": ["]
2382    #[doc = "    \"access_key\","]
2383    #[doc = "    \"public_key\""]
2384    #[doc = "  ],"]
2385    #[doc = "  \"properties\": {"]
2386    #[doc = "    \"access_key\": {"]
2387    #[doc = "      \"description\": \"An access key with the permission\","]
2388    #[doc = "      \"allOf\": ["]
2389    #[doc = "        {"]
2390    #[doc = "          \"$ref\": \"#/components/schemas/AccessKey\""]
2391    #[doc = "        }"]
2392    #[doc = "      ]"]
2393    #[doc = "    },"]
2394    #[doc = "    \"public_key\": {"]
2395    #[doc = "      \"description\": \"A public key which will be associated with an access_key\","]
2396    #[doc = "      \"allOf\": ["]
2397    #[doc = "        {"]
2398    #[doc = "          \"$ref\": \"#/components/schemas/PublicKey\""]
2399    #[doc = "        }"]
2400    #[doc = "      ]"]
2401    #[doc = "    }"]
2402    #[doc = "  }"]
2403    #[doc = "}"]
2404    #[doc = r" ```"]
2405    #[doc = r" </details>"]
2406    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2407    pub struct AddKeyAction {
2408        #[doc = "An access key with the permission"]
2409        pub access_key: AccessKey,
2410        #[doc = "A public key which will be associated with an access_key"]
2411        pub public_key: PublicKey,
2412    }
2413    impl ::std::convert::From<&AddKeyAction> for AddKeyAction {
2414        fn from(value: &AddKeyAction) -> Self {
2415            value.clone()
2416        }
2417    }
2418    #[doc = "`BandwidthRequest` describes the size of receipts that a shard would like to send to another shard.\n When a shard wants to send a lot of receipts to another shard, it needs to create a request and wait\n for a bandwidth grant from the bandwidth scheduler."]
2419    #[doc = r""]
2420    #[doc = r" <details><summary>JSON schema</summary>"]
2421    #[doc = r""]
2422    #[doc = r" ```json"]
2423    #[doc = "{"]
2424    #[doc = "  \"description\": \"`BandwidthRequest` describes the size of receipts that a shard would like to send to another shard.\\n When a shard wants to send a lot of receipts to another shard, it needs to create a request and wait\\n for a bandwidth grant from the bandwidth scheduler.\","]
2425    #[doc = "  \"type\": \"object\","]
2426    #[doc = "  \"required\": ["]
2427    #[doc = "    \"requested_values_bitmap\","]
2428    #[doc = "    \"to_shard\""]
2429    #[doc = "  ],"]
2430    #[doc = "  \"properties\": {"]
2431    #[doc = "    \"requested_values_bitmap\": {"]
2432    #[doc = "      \"description\": \"Bitmap which describes what values of bandwidth are requested.\","]
2433    #[doc = "      \"allOf\": ["]
2434    #[doc = "        {"]
2435    #[doc = "          \"$ref\": \"#/components/schemas/BandwidthRequestBitmap\""]
2436    #[doc = "        }"]
2437    #[doc = "      ]"]
2438    #[doc = "    },"]
2439    #[doc = "    \"to_shard\": {"]
2440    #[doc = "      \"description\": \"Requesting bandwidth to this shard.\","]
2441    #[doc = "      \"type\": \"integer\","]
2442    #[doc = "      \"format\": \"uint16\","]
2443    #[doc = "      \"minimum\": 0.0"]
2444    #[doc = "    }"]
2445    #[doc = "  }"]
2446    #[doc = "}"]
2447    #[doc = r" ```"]
2448    #[doc = r" </details>"]
2449    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2450    pub struct BandwidthRequest {
2451        #[doc = "Bitmap which describes what values of bandwidth are requested."]
2452        pub requested_values_bitmap: BandwidthRequestBitmap,
2453        #[doc = "Requesting bandwidth to this shard."]
2454        pub to_shard: u16,
2455    }
2456    impl ::std::convert::From<&BandwidthRequest> for BandwidthRequest {
2457        fn from(value: &BandwidthRequest) -> Self {
2458            value.clone()
2459        }
2460    }
2461    #[doc = "Bitmap which describes which values from the predefined list are being requested.\n The nth bit is set to 1 when the nth value from the list is being requested."]
2462    #[doc = r""]
2463    #[doc = r" <details><summary>JSON schema</summary>"]
2464    #[doc = r""]
2465    #[doc = r" ```json"]
2466    #[doc = "{"]
2467    #[doc = "  \"description\": \"Bitmap which describes which values from the predefined list are being requested.\\n The nth bit is set to 1 when the nth value from the list is being requested.\","]
2468    #[doc = "  \"type\": \"object\","]
2469    #[doc = "  \"required\": ["]
2470    #[doc = "    \"data\""]
2471    #[doc = "  ],"]
2472    #[doc = "  \"properties\": {"]
2473    #[doc = "    \"data\": {"]
2474    #[doc = "      \"type\": \"array\","]
2475    #[doc = "      \"items\": {"]
2476    #[doc = "        \"type\": \"integer\","]
2477    #[doc = "        \"format\": \"uint8\","]
2478    #[doc = "        \"minimum\": 0.0"]
2479    #[doc = "      },"]
2480    #[doc = "      \"maxItems\": 5,"]
2481    #[doc = "      \"minItems\": 5"]
2482    #[doc = "    }"]
2483    #[doc = "  }"]
2484    #[doc = "}"]
2485    #[doc = r" ```"]
2486    #[doc = r" </details>"]
2487    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2488    pub struct BandwidthRequestBitmap {
2489        pub data: [u8; 5usize],
2490    }
2491    impl ::std::convert::From<&BandwidthRequestBitmap> for BandwidthRequestBitmap {
2492        fn from(value: &BandwidthRequestBitmap) -> Self {
2493            value.clone()
2494        }
2495    }
2496    #[doc = "A list of shard's bandwidth requests.\n Describes how much the shard would like to send to other shards."]
2497    #[doc = r""]
2498    #[doc = r" <details><summary>JSON schema</summary>"]
2499    #[doc = r""]
2500    #[doc = r" ```json"]
2501    #[doc = "{"]
2502    #[doc = "  \"description\": \"A list of shard's bandwidth requests.\\n Describes how much the shard would like to send to other shards.\","]
2503    #[doc = "  \"oneOf\": ["]
2504    #[doc = "    {"]
2505    #[doc = "      \"type\": \"object\","]
2506    #[doc = "      \"required\": ["]
2507    #[doc = "        \"V1\""]
2508    #[doc = "      ],"]
2509    #[doc = "      \"properties\": {"]
2510    #[doc = "        \"V1\": {"]
2511    #[doc = "          \"$ref\": \"#/components/schemas/BandwidthRequestsV1\""]
2512    #[doc = "        }"]
2513    #[doc = "      },"]
2514    #[doc = "      \"additionalProperties\": false"]
2515    #[doc = "    }"]
2516    #[doc = "  ]"]
2517    #[doc = "}"]
2518    #[doc = r" ```"]
2519    #[doc = r" </details>"]
2520    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2521    pub enum BandwidthRequests {
2522        V1(BandwidthRequestsV1),
2523    }
2524    impl ::std::convert::From<&Self> for BandwidthRequests {
2525        fn from(value: &BandwidthRequests) -> Self {
2526            value.clone()
2527        }
2528    }
2529    impl ::std::convert::From<BandwidthRequestsV1> for BandwidthRequests {
2530        fn from(value: BandwidthRequestsV1) -> Self {
2531            Self::V1(value)
2532        }
2533    }
2534    #[doc = "`BandwidthRequestsV1`"]
2535    #[doc = r""]
2536    #[doc = r" <details><summary>JSON schema</summary>"]
2537    #[doc = r""]
2538    #[doc = r" ```json"]
2539    #[doc = "{"]
2540    #[doc = "  \"type\": \"object\","]
2541    #[doc = "  \"required\": ["]
2542    #[doc = "    \"requests\""]
2543    #[doc = "  ],"]
2544    #[doc = "  \"properties\": {"]
2545    #[doc = "    \"requests\": {"]
2546    #[doc = "      \"type\": \"array\","]
2547    #[doc = "      \"items\": {"]
2548    #[doc = "        \"$ref\": \"#/components/schemas/BandwidthRequest\""]
2549    #[doc = "      }"]
2550    #[doc = "    }"]
2551    #[doc = "  }"]
2552    #[doc = "}"]
2553    #[doc = r" ```"]
2554    #[doc = r" </details>"]
2555    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2556    pub struct BandwidthRequestsV1 {
2557        pub requests: ::std::vec::Vec<BandwidthRequest>,
2558    }
2559    impl ::std::convert::From<&BandwidthRequestsV1> for BandwidthRequestsV1 {
2560        fn from(value: &BandwidthRequestsV1) -> Self {
2561            value.clone()
2562        }
2563    }
2564    #[doc = "`BlockHeaderInnerLiteView`"]
2565    #[doc = r""]
2566    #[doc = r" <details><summary>JSON schema</summary>"]
2567    #[doc = r""]
2568    #[doc = r" ```json"]
2569    #[doc = "{"]
2570    #[doc = "  \"type\": \"object\","]
2571    #[doc = "  \"required\": ["]
2572    #[doc = "    \"block_merkle_root\","]
2573    #[doc = "    \"epoch_id\","]
2574    #[doc = "    \"height\","]
2575    #[doc = "    \"next_bp_hash\","]
2576    #[doc = "    \"next_epoch_id\","]
2577    #[doc = "    \"outcome_root\","]
2578    #[doc = "    \"prev_state_root\","]
2579    #[doc = "    \"timestamp\","]
2580    #[doc = "    \"timestamp_nanosec\""]
2581    #[doc = "  ],"]
2582    #[doc = "  \"properties\": {"]
2583    #[doc = "    \"block_merkle_root\": {"]
2584    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2585    #[doc = "    },"]
2586    #[doc = "    \"epoch_id\": {"]
2587    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2588    #[doc = "    },"]
2589    #[doc = "    \"height\": {"]
2590    #[doc = "      \"type\": \"integer\","]
2591    #[doc = "      \"format\": \"uint64\","]
2592    #[doc = "      \"minimum\": 0.0"]
2593    #[doc = "    },"]
2594    #[doc = "    \"next_bp_hash\": {"]
2595    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2596    #[doc = "    },"]
2597    #[doc = "    \"next_epoch_id\": {"]
2598    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2599    #[doc = "    },"]
2600    #[doc = "    \"outcome_root\": {"]
2601    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2602    #[doc = "    },"]
2603    #[doc = "    \"prev_state_root\": {"]
2604    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2605    #[doc = "    },"]
2606    #[doc = "    \"timestamp\": {"]
2607    #[doc = "      \"description\": \"Legacy json number. Should not be used.\","]
2608    #[doc = "      \"type\": \"integer\","]
2609    #[doc = "      \"format\": \"uint64\","]
2610    #[doc = "      \"minimum\": 0.0"]
2611    #[doc = "    },"]
2612    #[doc = "    \"timestamp_nanosec\": {"]
2613    #[doc = "      \"type\": \"string\""]
2614    #[doc = "    }"]
2615    #[doc = "  }"]
2616    #[doc = "}"]
2617    #[doc = r" ```"]
2618    #[doc = r" </details>"]
2619    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2620    pub struct BlockHeaderInnerLiteView {
2621        pub block_merkle_root: CryptoHash,
2622        pub epoch_id: CryptoHash,
2623        pub height: u64,
2624        pub next_bp_hash: CryptoHash,
2625        pub next_epoch_id: CryptoHash,
2626        pub outcome_root: CryptoHash,
2627        pub prev_state_root: CryptoHash,
2628        #[doc = "Legacy json number. Should not be used."]
2629        pub timestamp: u64,
2630        pub timestamp_nanosec: ::std::string::String,
2631    }
2632    impl ::std::convert::From<&BlockHeaderInnerLiteView> for BlockHeaderInnerLiteView {
2633        fn from(value: &BlockHeaderInnerLiteView) -> Self {
2634            value.clone()
2635        }
2636    }
2637    #[doc = "`BlockHeaderView`"]
2638    #[doc = r""]
2639    #[doc = r" <details><summary>JSON schema</summary>"]
2640    #[doc = r""]
2641    #[doc = r" ```json"]
2642    #[doc = "{"]
2643    #[doc = "  \"type\": \"object\","]
2644    #[doc = "  \"required\": ["]
2645    #[doc = "    \"approvals\","]
2646    #[doc = "    \"block_merkle_root\","]
2647    #[doc = "    \"challenges_result\","]
2648    #[doc = "    \"challenges_root\","]
2649    #[doc = "    \"chunk_headers_root\","]
2650    #[doc = "    \"chunk_mask\","]
2651    #[doc = "    \"chunk_receipts_root\","]
2652    #[doc = "    \"chunk_tx_root\","]
2653    #[doc = "    \"chunks_included\","]
2654    #[doc = "    \"epoch_id\","]
2655    #[doc = "    \"gas_price\","]
2656    #[doc = "    \"hash\","]
2657    #[doc = "    \"height\","]
2658    #[doc = "    \"last_ds_final_block\","]
2659    #[doc = "    \"last_final_block\","]
2660    #[doc = "    \"latest_protocol_version\","]
2661    #[doc = "    \"next_bp_hash\","]
2662    #[doc = "    \"next_epoch_id\","]
2663    #[doc = "    \"outcome_root\","]
2664    #[doc = "    \"prev_hash\","]
2665    #[doc = "    \"prev_state_root\","]
2666    #[doc = "    \"random_value\","]
2667    #[doc = "    \"rent_paid\","]
2668    #[doc = "    \"signature\","]
2669    #[doc = "    \"timestamp\","]
2670    #[doc = "    \"timestamp_nanosec\","]
2671    #[doc = "    \"total_supply\","]
2672    #[doc = "    \"validator_proposals\","]
2673    #[doc = "    \"validator_reward\""]
2674    #[doc = "  ],"]
2675    #[doc = "  \"properties\": {"]
2676    #[doc = "    \"approvals\": {"]
2677    #[doc = "      \"type\": \"array\","]
2678    #[doc = "      \"items\": {"]
2679    #[doc = "        \"oneOf\": ["]
2680    #[doc = "          {"]
2681    #[doc = "            \"type\": \"null\""]
2682    #[doc = "          },"]
2683    #[doc = "          {"]
2684    #[doc = "            \"allOf\": ["]
2685    #[doc = "              {"]
2686    #[doc = "                \"$ref\": \"#/components/schemas/Signature\""]
2687    #[doc = "              }"]
2688    #[doc = "            ]"]
2689    #[doc = "          }"]
2690    #[doc = "        ]"]
2691    #[doc = "      }"]
2692    #[doc = "    },"]
2693    #[doc = "    \"block_body_hash\": {"]
2694    #[doc = "      \"oneOf\": ["]
2695    #[doc = "        {"]
2696    #[doc = "          \"type\": \"null\""]
2697    #[doc = "        },"]
2698    #[doc = "        {"]
2699    #[doc = "          \"allOf\": ["]
2700    #[doc = "            {"]
2701    #[doc = "              \"$ref\": \"#/components/schemas/CryptoHash\""]
2702    #[doc = "            }"]
2703    #[doc = "          ]"]
2704    #[doc = "        }"]
2705    #[doc = "      ]"]
2706    #[doc = "    },"]
2707    #[doc = "    \"block_merkle_root\": {"]
2708    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2709    #[doc = "    },"]
2710    #[doc = "    \"block_ordinal\": {"]
2711    #[doc = "      \"type\": ["]
2712    #[doc = "        \"integer\","]
2713    #[doc = "        \"null\""]
2714    #[doc = "      ],"]
2715    #[doc = "      \"format\": \"uint64\","]
2716    #[doc = "      \"minimum\": 0.0"]
2717    #[doc = "    },"]
2718    #[doc = "    \"challenges_result\": {"]
2719    #[doc = "      \"type\": \"array\","]
2720    #[doc = "      \"items\": {"]
2721    #[doc = "        \"$ref\": \"#/components/schemas/SlashedValidator\""]
2722    #[doc = "      }"]
2723    #[doc = "    },"]
2724    #[doc = "    \"challenges_root\": {"]
2725    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2726    #[doc = "    },"]
2727    #[doc = "    \"chunk_endorsements\": {"]
2728    #[doc = "      \"type\": ["]
2729    #[doc = "        \"array\","]
2730    #[doc = "        \"null\""]
2731    #[doc = "      ],"]
2732    #[doc = "      \"items\": {"]
2733    #[doc = "        \"type\": \"array\","]
2734    #[doc = "        \"items\": {"]
2735    #[doc = "          \"type\": \"integer\","]
2736    #[doc = "          \"format\": \"uint8\","]
2737    #[doc = "          \"minimum\": 0.0"]
2738    #[doc = "        }"]
2739    #[doc = "      }"]
2740    #[doc = "    },"]
2741    #[doc = "    \"chunk_headers_root\": {"]
2742    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2743    #[doc = "    },"]
2744    #[doc = "    \"chunk_mask\": {"]
2745    #[doc = "      \"type\": \"array\","]
2746    #[doc = "      \"items\": {"]
2747    #[doc = "        \"type\": \"boolean\""]
2748    #[doc = "      }"]
2749    #[doc = "    },"]
2750    #[doc = "    \"chunk_receipts_root\": {"]
2751    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2752    #[doc = "    },"]
2753    #[doc = "    \"chunk_tx_root\": {"]
2754    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2755    #[doc = "    },"]
2756    #[doc = "    \"chunks_included\": {"]
2757    #[doc = "      \"type\": \"integer\","]
2758    #[doc = "      \"format\": \"uint64\","]
2759    #[doc = "      \"minimum\": 0.0"]
2760    #[doc = "    },"]
2761    #[doc = "    \"epoch_id\": {"]
2762    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2763    #[doc = "    },"]
2764    #[doc = "    \"epoch_sync_data_hash\": {"]
2765    #[doc = "      \"oneOf\": ["]
2766    #[doc = "        {"]
2767    #[doc = "          \"type\": \"null\""]
2768    #[doc = "        },"]
2769    #[doc = "        {"]
2770    #[doc = "          \"allOf\": ["]
2771    #[doc = "            {"]
2772    #[doc = "              \"$ref\": \"#/components/schemas/CryptoHash\""]
2773    #[doc = "            }"]
2774    #[doc = "          ]"]
2775    #[doc = "        }"]
2776    #[doc = "      ]"]
2777    #[doc = "    },"]
2778    #[doc = "    \"gas_price\": {"]
2779    #[doc = "      \"type\": \"string\""]
2780    #[doc = "    },"]
2781    #[doc = "    \"hash\": {"]
2782    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2783    #[doc = "    },"]
2784    #[doc = "    \"height\": {"]
2785    #[doc = "      \"type\": \"integer\","]
2786    #[doc = "      \"format\": \"uint64\","]
2787    #[doc = "      \"minimum\": 0.0"]
2788    #[doc = "    },"]
2789    #[doc = "    \"last_ds_final_block\": {"]
2790    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2791    #[doc = "    },"]
2792    #[doc = "    \"last_final_block\": {"]
2793    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2794    #[doc = "    },"]
2795    #[doc = "    \"latest_protocol_version\": {"]
2796    #[doc = "      \"type\": \"integer\","]
2797    #[doc = "      \"format\": \"uint32\","]
2798    #[doc = "      \"minimum\": 0.0"]
2799    #[doc = "    },"]
2800    #[doc = "    \"next_bp_hash\": {"]
2801    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2802    #[doc = "    },"]
2803    #[doc = "    \"next_epoch_id\": {"]
2804    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2805    #[doc = "    },"]
2806    #[doc = "    \"outcome_root\": {"]
2807    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2808    #[doc = "    },"]
2809    #[doc = "    \"prev_hash\": {"]
2810    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2811    #[doc = "    },"]
2812    #[doc = "    \"prev_height\": {"]
2813    #[doc = "      \"type\": ["]
2814    #[doc = "        \"integer\","]
2815    #[doc = "        \"null\""]
2816    #[doc = "      ],"]
2817    #[doc = "      \"format\": \"uint64\","]
2818    #[doc = "      \"minimum\": 0.0"]
2819    #[doc = "    },"]
2820    #[doc = "    \"prev_state_root\": {"]
2821    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2822    #[doc = "    },"]
2823    #[doc = "    \"random_value\": {"]
2824    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2825    #[doc = "    },"]
2826    #[doc = "    \"rent_paid\": {"]
2827    #[doc = "      \"description\": \"TODO(2271): deprecated.\","]
2828    #[doc = "      \"type\": \"string\""]
2829    #[doc = "    },"]
2830    #[doc = "    \"signature\": {"]
2831    #[doc = "      \"$ref\": \"#/components/schemas/Signature\""]
2832    #[doc = "    },"]
2833    #[doc = "    \"timestamp\": {"]
2834    #[doc = "      \"description\": \"Legacy json number. Should not be used.\","]
2835    #[doc = "      \"type\": \"integer\","]
2836    #[doc = "      \"format\": \"uint64\","]
2837    #[doc = "      \"minimum\": 0.0"]
2838    #[doc = "    },"]
2839    #[doc = "    \"timestamp_nanosec\": {"]
2840    #[doc = "      \"type\": \"string\""]
2841    #[doc = "    },"]
2842    #[doc = "    \"total_supply\": {"]
2843    #[doc = "      \"type\": \"string\""]
2844    #[doc = "    },"]
2845    #[doc = "    \"validator_proposals\": {"]
2846    #[doc = "      \"type\": \"array\","]
2847    #[doc = "      \"items\": {"]
2848    #[doc = "        \"$ref\": \"#/components/schemas/ValidatorStakeView\""]
2849    #[doc = "      }"]
2850    #[doc = "    },"]
2851    #[doc = "    \"validator_reward\": {"]
2852    #[doc = "      \"description\": \"TODO(2271): deprecated.\","]
2853    #[doc = "      \"type\": \"string\""]
2854    #[doc = "    }"]
2855    #[doc = "  }"]
2856    #[doc = "}"]
2857    #[doc = r" ```"]
2858    #[doc = r" </details>"]
2859    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2860    pub struct BlockHeaderView {
2861        pub approvals: ::std::vec::Vec<::std::option::Option<Signature>>,
2862        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2863        pub block_body_hash: ::std::option::Option<CryptoHash>,
2864        pub block_merkle_root: CryptoHash,
2865        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2866        pub block_ordinal: ::std::option::Option<u64>,
2867        pub challenges_result: ::std::vec::Vec<SlashedValidator>,
2868        pub challenges_root: CryptoHash,
2869        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2870        pub chunk_endorsements: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<u8>>>,
2871        pub chunk_headers_root: CryptoHash,
2872        pub chunk_mask: ::std::vec::Vec<bool>,
2873        pub chunk_receipts_root: CryptoHash,
2874        pub chunk_tx_root: CryptoHash,
2875        pub chunks_included: u64,
2876        pub epoch_id: CryptoHash,
2877        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2878        pub epoch_sync_data_hash: ::std::option::Option<CryptoHash>,
2879        pub gas_price: ::std::string::String,
2880        pub hash: CryptoHash,
2881        pub height: u64,
2882        pub last_ds_final_block: CryptoHash,
2883        pub last_final_block: CryptoHash,
2884        pub latest_protocol_version: u32,
2885        pub next_bp_hash: CryptoHash,
2886        pub next_epoch_id: CryptoHash,
2887        pub outcome_root: CryptoHash,
2888        pub prev_hash: CryptoHash,
2889        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2890        pub prev_height: ::std::option::Option<u64>,
2891        pub prev_state_root: CryptoHash,
2892        pub random_value: CryptoHash,
2893        #[doc = "TODO(2271): deprecated."]
2894        pub rent_paid: ::std::string::String,
2895        pub signature: Signature,
2896        #[doc = "Legacy json number. Should not be used."]
2897        pub timestamp: u64,
2898        pub timestamp_nanosec: ::std::string::String,
2899        pub total_supply: ::std::string::String,
2900        pub validator_proposals: ::std::vec::Vec<ValidatorStakeView>,
2901        #[doc = "TODO(2271): deprecated."]
2902        pub validator_reward: ::std::string::String,
2903    }
2904    impl ::std::convert::From<&BlockHeaderView> for BlockHeaderView {
2905        fn from(value: &BlockHeaderView) -> Self {
2906            value.clone()
2907        }
2908    }
2909    #[doc = "`BlockId`"]
2910    #[doc = r""]
2911    #[doc = r" <details><summary>JSON schema</summary>"]
2912    #[doc = r""]
2913    #[doc = r" ```json"]
2914    #[doc = "{"]
2915    #[doc = "  \"anyOf\": ["]
2916    #[doc = "    {"]
2917    #[doc = "      \"type\": \"integer\","]
2918    #[doc = "      \"format\": \"uint64\","]
2919    #[doc = "      \"minimum\": 0.0"]
2920    #[doc = "    },"]
2921    #[doc = "    {"]
2922    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
2923    #[doc = "    }"]
2924    #[doc = "  ]"]
2925    #[doc = "}"]
2926    #[doc = r" ```"]
2927    #[doc = r" </details>"]
2928    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2929    #[serde(untagged)]
2930    pub enum BlockId {
2931        Variant0(u64),
2932        Variant1(CryptoHash),
2933    }
2934    impl ::std::convert::From<&Self> for BlockId {
2935        fn from(value: &BlockId) -> Self {
2936            value.clone()
2937        }
2938    }
2939    impl ::std::str::FromStr for BlockId {
2940        type Err = self::error::ConversionError;
2941        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
2942            if let Ok(v) = value.parse() {
2943                Ok(Self::Variant0(v))
2944            } else if let Ok(v) = value.parse() {
2945                Ok(Self::Variant1(v))
2946            } else {
2947                Err("string conversion failed for all variants".into())
2948            }
2949        }
2950    }
2951    impl ::std::convert::TryFrom<&str> for BlockId {
2952        type Error = self::error::ConversionError;
2953        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
2954            value.parse()
2955        }
2956    }
2957    impl ::std::convert::TryFrom<&::std::string::String> for BlockId {
2958        type Error = self::error::ConversionError;
2959        fn try_from(
2960            value: &::std::string::String,
2961        ) -> ::std::result::Result<Self, self::error::ConversionError> {
2962            value.parse()
2963        }
2964    }
2965    impl ::std::convert::TryFrom<::std::string::String> for BlockId {
2966        type Error = self::error::ConversionError;
2967        fn try_from(
2968            value: ::std::string::String,
2969        ) -> ::std::result::Result<Self, self::error::ConversionError> {
2970            value.parse()
2971        }
2972    }
2973    impl ::std::fmt::Display for BlockId {
2974        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2975            match self {
2976                Self::Variant0(x) => x.fmt(f),
2977                Self::Variant1(x) => x.fmt(f),
2978            }
2979        }
2980    }
2981    impl ::std::convert::From<u64> for BlockId {
2982        fn from(value: u64) -> Self {
2983            Self::Variant0(value)
2984        }
2985    }
2986    impl ::std::convert::From<CryptoHash> for BlockId {
2987        fn from(value: CryptoHash) -> Self {
2988            Self::Variant1(value)
2989        }
2990    }
2991    #[doc = "`BlockStatusView`"]
2992    #[doc = r""]
2993    #[doc = r" <details><summary>JSON schema</summary>"]
2994    #[doc = r""]
2995    #[doc = r" ```json"]
2996    #[doc = "{"]
2997    #[doc = "  \"type\": \"object\","]
2998    #[doc = "  \"required\": ["]
2999    #[doc = "    \"hash\","]
3000    #[doc = "    \"height\""]
3001    #[doc = "  ],"]
3002    #[doc = "  \"properties\": {"]
3003    #[doc = "    \"hash\": {"]
3004    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
3005    #[doc = "    },"]
3006    #[doc = "    \"height\": {"]
3007    #[doc = "      \"type\": \"integer\","]
3008    #[doc = "      \"format\": \"uint64\","]
3009    #[doc = "      \"minimum\": 0.0"]
3010    #[doc = "    }"]
3011    #[doc = "  }"]
3012    #[doc = "}"]
3013    #[doc = r" ```"]
3014    #[doc = r" </details>"]
3015    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3016    pub struct BlockStatusView {
3017        pub hash: CryptoHash,
3018        pub height: u64,
3019    }
3020    impl ::std::convert::From<&BlockStatusView> for BlockStatusView {
3021        fn from(value: &BlockStatusView) -> Self {
3022            value.clone()
3023        }
3024    }
3025    #[doc = "`CallResult`"]
3026    #[doc = r""]
3027    #[doc = r" <details><summary>JSON schema</summary>"]
3028    #[doc = r""]
3029    #[doc = r" ```json"]
3030    #[doc = "{"]
3031    #[doc = "  \"type\": \"object\","]
3032    #[doc = "  \"required\": ["]
3033    #[doc = "    \"logs\","]
3034    #[doc = "    \"result\""]
3035    #[doc = "  ],"]
3036    #[doc = "  \"properties\": {"]
3037    #[doc = "    \"logs\": {"]
3038    #[doc = "      \"type\": \"array\","]
3039    #[doc = "      \"items\": {"]
3040    #[doc = "        \"type\": \"string\""]
3041    #[doc = "      }"]
3042    #[doc = "    },"]
3043    #[doc = "    \"result\": {"]
3044    #[doc = "      \"type\": \"array\","]
3045    #[doc = "      \"items\": {"]
3046    #[doc = "        \"type\": \"integer\","]
3047    #[doc = "        \"format\": \"uint8\","]
3048    #[doc = "        \"minimum\": 0.0"]
3049    #[doc = "      }"]
3050    #[doc = "    }"]
3051    #[doc = "  }"]
3052    #[doc = "}"]
3053    #[doc = r" ```"]
3054    #[doc = r" </details>"]
3055    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3056    pub struct CallResult {
3057        pub logs: ::std::vec::Vec<::std::string::String>,
3058        pub result: ::std::vec::Vec<u8>,
3059    }
3060    impl ::std::convert::From<&CallResult> for CallResult {
3061        fn from(value: &CallResult) -> Self {
3062            value.clone()
3063        }
3064    }
3065    #[doc = "`CatchupStatusView`"]
3066    #[doc = r""]
3067    #[doc = r" <details><summary>JSON schema</summary>"]
3068    #[doc = r""]
3069    #[doc = r" ```json"]
3070    #[doc = "{"]
3071    #[doc = "  \"type\": \"object\","]
3072    #[doc = "  \"required\": ["]
3073    #[doc = "    \"blocks_to_catchup\","]
3074    #[doc = "    \"shard_sync_status\","]
3075    #[doc = "    \"sync_block_hash\","]
3076    #[doc = "    \"sync_block_height\""]
3077    #[doc = "  ],"]
3078    #[doc = "  \"properties\": {"]
3079    #[doc = "    \"blocks_to_catchup\": {"]
3080    #[doc = "      \"type\": \"array\","]
3081    #[doc = "      \"items\": {"]
3082    #[doc = "        \"$ref\": \"#/components/schemas/BlockStatusView\""]
3083    #[doc = "      }"]
3084    #[doc = "    },"]
3085    #[doc = "    \"shard_sync_status\": {"]
3086    #[doc = "      \"type\": \"object\","]
3087    #[doc = "      \"additionalProperties\": {"]
3088    #[doc = "        \"type\": \"string\""]
3089    #[doc = "      }"]
3090    #[doc = "    },"]
3091    #[doc = "    \"sync_block_hash\": {"]
3092    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
3093    #[doc = "    },"]
3094    #[doc = "    \"sync_block_height\": {"]
3095    #[doc = "      \"type\": \"integer\","]
3096    #[doc = "      \"format\": \"uint64\","]
3097    #[doc = "      \"minimum\": 0.0"]
3098    #[doc = "    }"]
3099    #[doc = "  }"]
3100    #[doc = "}"]
3101    #[doc = r" ```"]
3102    #[doc = r" </details>"]
3103    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3104    pub struct CatchupStatusView {
3105        pub blocks_to_catchup: ::std::vec::Vec<BlockStatusView>,
3106        pub shard_sync_status:
3107            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
3108        pub sync_block_hash: CryptoHash,
3109        pub sync_block_height: u64,
3110    }
3111    impl ::std::convert::From<&CatchupStatusView> for CatchupStatusView {
3112        fn from(value: &CatchupStatusView) -> Self {
3113            value.clone()
3114        }
3115    }
3116    #[doc = "`CauseRpcErrorKind`"]
3117    #[doc = r""]
3118    #[doc = r" <details><summary>JSON schema</summary>"]
3119    #[doc = r""]
3120    #[doc = r" ```json"]
3121    #[doc = "{"]
3122    #[doc = "  \"anyOf\": ["]
3123    #[doc = "    {"]
3124    #[doc = "      \"$ref\": \"#/components/schemas/RpcRequestValidationErrorKind\""]
3125    #[doc = "    },"]
3126    #[doc = "    {},"]
3127    #[doc = "    {}"]
3128    #[doc = "  ]"]
3129    #[doc = "}"]
3130    #[doc = r" ```"]
3131    #[doc = r" </details>"]
3132    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3133    pub struct CauseRpcErrorKind {
3134        #[serde(
3135            flatten,
3136            default,
3137            skip_serializing_if = "::std::option::Option::is_none"
3138        )]
3139        pub subtype_0: ::std::option::Option<RpcRequestValidationErrorKind>,
3140        #[serde(
3141            flatten,
3142            default,
3143            skip_serializing_if = "::std::option::Option::is_none"
3144        )]
3145        pub subtype_1: ::std::option::Option<::serde_json::Value>,
3146        #[serde(
3147            flatten,
3148            default,
3149            skip_serializing_if = "::std::option::Option::is_none"
3150        )]
3151        pub subtype_2: ::std::option::Option<::serde_json::Value>,
3152    }
3153    impl ::std::convert::From<&CauseRpcErrorKind> for CauseRpcErrorKind {
3154        fn from(value: &CauseRpcErrorKind) -> Self {
3155            value.clone()
3156        }
3157    }
3158    impl ::std::default::Default for CauseRpcErrorKind {
3159        fn default() -> Self {
3160            Self {
3161                subtype_0: Default::default(),
3162                subtype_1: Default::default(),
3163                subtype_2: Default::default(),
3164            }
3165        }
3166    }
3167    #[doc = "Config for the Chunk Distribution Network feature.\n This allows nodes to push and pull chunks from a central stream.\n The two benefits of this approach are: (1) less request/response traffic\n on the peer-to-peer network and (2) lower latency for RPC nodes indexing the chain."]
3168    #[doc = r""]
3169    #[doc = r" <details><summary>JSON schema</summary>"]
3170    #[doc = r""]
3171    #[doc = r" ```json"]
3172    #[doc = "{"]
3173    #[doc = "  \"description\": \"Config for the Chunk Distribution Network feature.\\n This allows nodes to push and pull chunks from a central stream.\\n The two benefits of this approach are: (1) less request/response traffic\\n on the peer-to-peer network and (2) lower latency for RPC nodes indexing the chain.\","]
3174    #[doc = "  \"type\": \"object\","]
3175    #[doc = "  \"required\": ["]
3176    #[doc = "    \"enabled\","]
3177    #[doc = "    \"uris\""]
3178    #[doc = "  ],"]
3179    #[doc = "  \"properties\": {"]
3180    #[doc = "    \"enabled\": {"]
3181    #[doc = "      \"type\": \"boolean\""]
3182    #[doc = "    },"]
3183    #[doc = "    \"uris\": {"]
3184    #[doc = "      \"$ref\": \"#/components/schemas/ChunkDistributionUris\""]
3185    #[doc = "    }"]
3186    #[doc = "  }"]
3187    #[doc = "}"]
3188    #[doc = r" ```"]
3189    #[doc = r" </details>"]
3190    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3191    pub struct ChunkDistributionNetworkConfig {
3192        pub enabled: bool,
3193        pub uris: ChunkDistributionUris,
3194    }
3195    impl ::std::convert::From<&ChunkDistributionNetworkConfig> for ChunkDistributionNetworkConfig {
3196        fn from(value: &ChunkDistributionNetworkConfig) -> Self {
3197            value.clone()
3198        }
3199    }
3200    #[doc = "URIs for the Chunk Distribution Network feature."]
3201    #[doc = r""]
3202    #[doc = r" <details><summary>JSON schema</summary>"]
3203    #[doc = r""]
3204    #[doc = r" ```json"]
3205    #[doc = "{"]
3206    #[doc = "  \"description\": \"URIs for the Chunk Distribution Network feature.\","]
3207    #[doc = "  \"type\": \"object\","]
3208    #[doc = "  \"required\": ["]
3209    #[doc = "    \"get\","]
3210    #[doc = "    \"set\""]
3211    #[doc = "  ],"]
3212    #[doc = "  \"properties\": {"]
3213    #[doc = "    \"get\": {"]
3214    #[doc = "      \"description\": \"URI for pulling chunks from the stream.\","]
3215    #[doc = "      \"type\": \"string\""]
3216    #[doc = "    },"]
3217    #[doc = "    \"set\": {"]
3218    #[doc = "      \"description\": \"URI for publishing chunks to the stream.\","]
3219    #[doc = "      \"type\": \"string\""]
3220    #[doc = "    }"]
3221    #[doc = "  }"]
3222    #[doc = "}"]
3223    #[doc = r" ```"]
3224    #[doc = r" </details>"]
3225    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3226    pub struct ChunkDistributionUris {
3227        #[doc = "URI for pulling chunks from the stream."]
3228        pub get: ::std::string::String,
3229        #[doc = "URI for publishing chunks to the stream."]
3230        pub set: ::std::string::String,
3231    }
3232    impl ::std::convert::From<&ChunkDistributionUris> for ChunkDistributionUris {
3233        fn from(value: &ChunkDistributionUris) -> Self {
3234            value.clone()
3235        }
3236    }
3237    #[doc = "`ChunkHeaderView`"]
3238    #[doc = r""]
3239    #[doc = r" <details><summary>JSON schema</summary>"]
3240    #[doc = r""]
3241    #[doc = r" ```json"]
3242    #[doc = "{"]
3243    #[doc = "  \"type\": \"object\","]
3244    #[doc = "  \"required\": ["]
3245    #[doc = "    \"balance_burnt\","]
3246    #[doc = "    \"chunk_hash\","]
3247    #[doc = "    \"encoded_length\","]
3248    #[doc = "    \"encoded_merkle_root\","]
3249    #[doc = "    \"gas_limit\","]
3250    #[doc = "    \"gas_used\","]
3251    #[doc = "    \"height_created\","]
3252    #[doc = "    \"height_included\","]
3253    #[doc = "    \"outcome_root\","]
3254    #[doc = "    \"outgoing_receipts_root\","]
3255    #[doc = "    \"prev_block_hash\","]
3256    #[doc = "    \"prev_state_root\","]
3257    #[doc = "    \"rent_paid\","]
3258    #[doc = "    \"shard_id\","]
3259    #[doc = "    \"signature\","]
3260    #[doc = "    \"tx_root\","]
3261    #[doc = "    \"validator_proposals\","]
3262    #[doc = "    \"validator_reward\""]
3263    #[doc = "  ],"]
3264    #[doc = "  \"properties\": {"]
3265    #[doc = "    \"balance_burnt\": {"]
3266    #[doc = "      \"type\": \"string\""]
3267    #[doc = "    },"]
3268    #[doc = "    \"bandwidth_requests\": {"]
3269    #[doc = "      \"oneOf\": ["]
3270    #[doc = "        {"]
3271    #[doc = "          \"type\": \"null\""]
3272    #[doc = "        },"]
3273    #[doc = "        {"]
3274    #[doc = "          \"allOf\": ["]
3275    #[doc = "            {"]
3276    #[doc = "              \"$ref\": \"#/components/schemas/BandwidthRequests\""]
3277    #[doc = "            }"]
3278    #[doc = "          ]"]
3279    #[doc = "        }"]
3280    #[doc = "      ]"]
3281    #[doc = "    },"]
3282    #[doc = "    \"chunk_hash\": {"]
3283    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
3284    #[doc = "    },"]
3285    #[doc = "    \"congestion_info\": {"]
3286    #[doc = "      \"oneOf\": ["]
3287    #[doc = "        {"]
3288    #[doc = "          \"type\": \"null\""]
3289    #[doc = "        },"]
3290    #[doc = "        {"]
3291    #[doc = "          \"allOf\": ["]
3292    #[doc = "            {"]
3293    #[doc = "              \"$ref\": \"#/components/schemas/CongestionInfoView\""]
3294    #[doc = "            }"]
3295    #[doc = "          ]"]
3296    #[doc = "        }"]
3297    #[doc = "      ]"]
3298    #[doc = "    },"]
3299    #[doc = "    \"encoded_length\": {"]
3300    #[doc = "      \"type\": \"integer\","]
3301    #[doc = "      \"format\": \"uint64\","]
3302    #[doc = "      \"minimum\": 0.0"]
3303    #[doc = "    },"]
3304    #[doc = "    \"encoded_merkle_root\": {"]
3305    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
3306    #[doc = "    },"]
3307    #[doc = "    \"gas_limit\": {"]
3308    #[doc = "      \"type\": \"integer\","]
3309    #[doc = "      \"format\": \"uint64\","]
3310    #[doc = "      \"minimum\": 0.0"]
3311    #[doc = "    },"]
3312    #[doc = "    \"gas_used\": {"]
3313    #[doc = "      \"type\": \"integer\","]
3314    #[doc = "      \"format\": \"uint64\","]
3315    #[doc = "      \"minimum\": 0.0"]
3316    #[doc = "    },"]
3317    #[doc = "    \"height_created\": {"]
3318    #[doc = "      \"type\": \"integer\","]
3319    #[doc = "      \"format\": \"uint64\","]
3320    #[doc = "      \"minimum\": 0.0"]
3321    #[doc = "    },"]
3322    #[doc = "    \"height_included\": {"]
3323    #[doc = "      \"type\": \"integer\","]
3324    #[doc = "      \"format\": \"uint64\","]
3325    #[doc = "      \"minimum\": 0.0"]
3326    #[doc = "    },"]
3327    #[doc = "    \"outcome_root\": {"]
3328    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
3329    #[doc = "    },"]
3330    #[doc = "    \"outgoing_receipts_root\": {"]
3331    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
3332    #[doc = "    },"]
3333    #[doc = "    \"prev_block_hash\": {"]
3334    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
3335    #[doc = "    },"]
3336    #[doc = "    \"prev_state_root\": {"]
3337    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
3338    #[doc = "    },"]
3339    #[doc = "    \"rent_paid\": {"]
3340    #[doc = "      \"description\": \"TODO(2271): deprecated.\","]
3341    #[doc = "      \"type\": \"string\""]
3342    #[doc = "    },"]
3343    #[doc = "    \"shard_id\": {"]
3344    #[doc = "      \"$ref\": \"#/components/schemas/ShardId\""]
3345    #[doc = "    },"]
3346    #[doc = "    \"signature\": {"]
3347    #[doc = "      \"$ref\": \"#/components/schemas/Signature\""]
3348    #[doc = "    },"]
3349    #[doc = "    \"tx_root\": {"]
3350    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
3351    #[doc = "    },"]
3352    #[doc = "    \"validator_proposals\": {"]
3353    #[doc = "      \"type\": \"array\","]
3354    #[doc = "      \"items\": {"]
3355    #[doc = "        \"$ref\": \"#/components/schemas/ValidatorStakeView\""]
3356    #[doc = "      }"]
3357    #[doc = "    },"]
3358    #[doc = "    \"validator_reward\": {"]
3359    #[doc = "      \"description\": \"TODO(2271): deprecated.\","]
3360    #[doc = "      \"type\": \"string\""]
3361    #[doc = "    }"]
3362    #[doc = "  }"]
3363    #[doc = "}"]
3364    #[doc = r" ```"]
3365    #[doc = r" </details>"]
3366    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3367    pub struct ChunkHeaderView {
3368        pub balance_burnt: ::std::string::String,
3369        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
3370        pub bandwidth_requests: ::std::option::Option<BandwidthRequests>,
3371        pub chunk_hash: CryptoHash,
3372        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
3373        pub congestion_info: ::std::option::Option<CongestionInfoView>,
3374        pub encoded_length: u64,
3375        pub encoded_merkle_root: CryptoHash,
3376        pub gas_limit: u64,
3377        pub gas_used: u64,
3378        pub height_created: u64,
3379        pub height_included: u64,
3380        pub outcome_root: CryptoHash,
3381        pub outgoing_receipts_root: CryptoHash,
3382        pub prev_block_hash: CryptoHash,
3383        pub prev_state_root: CryptoHash,
3384        #[doc = "TODO(2271): deprecated."]
3385        pub rent_paid: ::std::string::String,
3386        pub shard_id: ShardId,
3387        pub signature: Signature,
3388        pub tx_root: CryptoHash,
3389        pub validator_proposals: ::std::vec::Vec<ValidatorStakeView>,
3390        #[doc = "TODO(2271): deprecated."]
3391        pub validator_reward: ::std::string::String,
3392    }
3393    impl ::std::convert::From<&ChunkHeaderView> for ChunkHeaderView {
3394        fn from(value: &ChunkHeaderView) -> Self {
3395            value.clone()
3396        }
3397    }
3398    #[doc = "`CompilationError`"]
3399    #[doc = r""]
3400    #[doc = r" <details><summary>JSON schema</summary>"]
3401    #[doc = r""]
3402    #[doc = r" ```json"]
3403    #[doc = "{"]
3404    #[doc = "  \"oneOf\": ["]
3405    #[doc = "    {"]
3406    #[doc = "      \"type\": \"object\","]
3407    #[doc = "      \"required\": ["]
3408    #[doc = "        \"CodeDoesNotExist\""]
3409    #[doc = "      ],"]
3410    #[doc = "      \"properties\": {"]
3411    #[doc = "        \"CodeDoesNotExist\": {"]
3412    #[doc = "          \"type\": \"object\","]
3413    #[doc = "          \"required\": ["]
3414    #[doc = "            \"account_id\""]
3415    #[doc = "          ],"]
3416    #[doc = "          \"properties\": {"]
3417    #[doc = "            \"account_id\": {"]
3418    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
3419    #[doc = "            }"]
3420    #[doc = "          }"]
3421    #[doc = "        }"]
3422    #[doc = "      },"]
3423    #[doc = "      \"additionalProperties\": false"]
3424    #[doc = "    },"]
3425    #[doc = "    {"]
3426    #[doc = "      \"type\": \"object\","]
3427    #[doc = "      \"required\": ["]
3428    #[doc = "        \"PrepareError\""]
3429    #[doc = "      ],"]
3430    #[doc = "      \"properties\": {"]
3431    #[doc = "        \"PrepareError\": {"]
3432    #[doc = "          \"$ref\": \"#/components/schemas/PrepareError\""]
3433    #[doc = "        }"]
3434    #[doc = "      },"]
3435    #[doc = "      \"additionalProperties\": false"]
3436    #[doc = "    },"]
3437    #[doc = "    {"]
3438    #[doc = "      \"description\": \"This is for defense in depth.\\n We expect our runtime-independent preparation code to fully catch all invalid wasms,\\n but, if it ever misses something we’ll emit this error\","]
3439    #[doc = "      \"type\": \"object\","]
3440    #[doc = "      \"required\": ["]
3441    #[doc = "        \"WasmerCompileError\""]
3442    #[doc = "      ],"]
3443    #[doc = "      \"properties\": {"]
3444    #[doc = "        \"WasmerCompileError\": {"]
3445    #[doc = "          \"type\": \"object\","]
3446    #[doc = "          \"required\": ["]
3447    #[doc = "            \"msg\""]
3448    #[doc = "          ],"]
3449    #[doc = "          \"properties\": {"]
3450    #[doc = "            \"msg\": {"]
3451    #[doc = "              \"type\": \"string\""]
3452    #[doc = "            }"]
3453    #[doc = "          }"]
3454    #[doc = "        }"]
3455    #[doc = "      },"]
3456    #[doc = "      \"additionalProperties\": false"]
3457    #[doc = "    }"]
3458    #[doc = "  ]"]
3459    #[doc = "}"]
3460    #[doc = r" ```"]
3461    #[doc = r" </details>"]
3462    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3463    pub enum CompilationError {
3464        CodeDoesNotExist {
3465            account_id: AccountId,
3466        },
3467        PrepareError(PrepareError),
3468        #[doc = "This is for defense in depth.\n We expect our runtime-independent preparation code to fully catch all invalid wasms,\n but, if it ever misses something we’ll emit this error"]
3469        WasmerCompileError {
3470            msg: ::std::string::String,
3471        },
3472    }
3473    impl ::std::convert::From<&Self> for CompilationError {
3474        fn from(value: &CompilationError) -> Self {
3475            value.clone()
3476        }
3477    }
3478    impl ::std::convert::From<PrepareError> for CompilationError {
3479        fn from(value: PrepareError) -> Self {
3480            Self::PrepareError(value)
3481        }
3482    }
3483    #[doc = "`CongestionControlConfigView`"]
3484    #[doc = r""]
3485    #[doc = r" <details><summary>JSON schema</summary>"]
3486    #[doc = r""]
3487    #[doc = r" ```json"]
3488    #[doc = "{"]
3489    #[doc = "  \"type\": \"object\","]
3490    #[doc = "  \"required\": ["]
3491    #[doc = "    \"allowed_shard_outgoing_gas\","]
3492    #[doc = "    \"max_congestion_incoming_gas\","]
3493    #[doc = "    \"max_congestion_memory_consumption\","]
3494    #[doc = "    \"max_congestion_missed_chunks\","]
3495    #[doc = "    \"max_congestion_outgoing_gas\","]
3496    #[doc = "    \"max_outgoing_gas\","]
3497    #[doc = "    \"max_tx_gas\","]
3498    #[doc = "    \"min_outgoing_gas\","]
3499    #[doc = "    \"min_tx_gas\","]
3500    #[doc = "    \"outgoing_receipts_big_size_limit\","]
3501    #[doc = "    \"outgoing_receipts_usual_size_limit\","]
3502    #[doc = "    \"reject_tx_congestion_threshold\""]
3503    #[doc = "  ],"]
3504    #[doc = "  \"properties\": {"]
3505    #[doc = "    \"allowed_shard_outgoing_gas\": {"]
3506    #[doc = "      \"description\": \"How much gas the chosen allowed shard can send to a 100% congested shard.\\n\\n See [`CongestionControlConfig`] for more details.\","]
3507    #[doc = "      \"type\": \"integer\","]
3508    #[doc = "      \"format\": \"uint64\","]
3509    #[doc = "      \"minimum\": 0.0"]
3510    #[doc = "    },"]
3511    #[doc = "    \"max_congestion_incoming_gas\": {"]
3512    #[doc = "      \"description\": \"How much gas in delayed receipts of a shard is 100% incoming congestion.\\n\\n See [`CongestionControlConfig`] for more details.\","]
3513    #[doc = "      \"type\": \"integer\","]
3514    #[doc = "      \"format\": \"uint64\","]
3515    #[doc = "      \"minimum\": 0.0"]
3516    #[doc = "    },"]
3517    #[doc = "    \"max_congestion_memory_consumption\": {"]
3518    #[doc = "      \"description\": \"How much memory space of all delayed and buffered receipts in a shard is\\n considered 100% congested.\\n\\n See [`CongestionControlConfig`] for more details.\","]
3519    #[doc = "      \"type\": \"integer\","]
3520    #[doc = "      \"format\": \"uint64\","]
3521    #[doc = "      \"minimum\": 0.0"]
3522    #[doc = "    },"]
3523    #[doc = "    \"max_congestion_missed_chunks\": {"]
3524    #[doc = "      \"description\": \"How many missed chunks in a row in a shard is considered 100% congested.\","]
3525    #[doc = "      \"type\": \"integer\","]
3526    #[doc = "      \"format\": \"uint64\","]
3527    #[doc = "      \"minimum\": 0.0"]
3528    #[doc = "    },"]
3529    #[doc = "    \"max_congestion_outgoing_gas\": {"]
3530    #[doc = "      \"description\": \"How much gas in outgoing buffered receipts of a shard is 100% congested.\\n\\n Outgoing congestion contributes to overall congestion, which reduces how\\n much other shards are allowed to forward to this shard.\","]
3531    #[doc = "      \"type\": \"integer\","]
3532    #[doc = "      \"format\": \"uint64\","]
3533    #[doc = "      \"minimum\": 0.0"]
3534    #[doc = "    },"]
3535    #[doc = "    \"max_outgoing_gas\": {"]
3536    #[doc = "      \"description\": \"The maximum amount of gas attached to receipts a shard can forward to\\n another shard per chunk.\\n\\n See [`CongestionControlConfig`] for more details.\","]
3537    #[doc = "      \"type\": \"integer\","]
3538    #[doc = "      \"format\": \"uint64\","]
3539    #[doc = "      \"minimum\": 0.0"]
3540    #[doc = "    },"]
3541    #[doc = "    \"max_tx_gas\": {"]
3542    #[doc = "      \"description\": \"The maximum amount of gas in a chunk spent on converting new transactions to\\n receipts.\\n\\n See [`CongestionControlConfig`] for more details.\","]
3543    #[doc = "      \"type\": \"integer\","]
3544    #[doc = "      \"format\": \"uint64\","]
3545    #[doc = "      \"minimum\": 0.0"]
3546    #[doc = "    },"]
3547    #[doc = "    \"min_outgoing_gas\": {"]
3548    #[doc = "      \"description\": \"The minimum gas each shard can send to a shard that is not fully congested.\\n\\n See [`CongestionControlConfig`] for more details.\","]
3549    #[doc = "      \"type\": \"integer\","]
3550    #[doc = "      \"format\": \"uint64\","]
3551    #[doc = "      \"minimum\": 0.0"]
3552    #[doc = "    },"]
3553    #[doc = "    \"min_tx_gas\": {"]
3554    #[doc = "      \"description\": \"The minimum amount of gas in a chunk spent on converting new transactions\\n to receipts, as long as the receiving shard is not congested.\\n\\n See [`CongestionControlConfig`] for more details.\","]
3555    #[doc = "      \"type\": \"integer\","]
3556    #[doc = "      \"format\": \"uint64\","]
3557    #[doc = "      \"minimum\": 0.0"]
3558    #[doc = "    },"]
3559    #[doc = "    \"outgoing_receipts_big_size_limit\": {"]
3560    #[doc = "      \"description\": \"Large size limit for outgoing receipts to a shard, used when it's safe\\n to send a lot of receipts without making the state witness too large.\\n It limits the total sum of outgoing receipts, not individual receipts.\","]
3561    #[doc = "      \"type\": \"integer\","]
3562    #[doc = "      \"format\": \"uint64\","]
3563    #[doc = "      \"minimum\": 0.0"]
3564    #[doc = "    },"]
3565    #[doc = "    \"outgoing_receipts_usual_size_limit\": {"]
3566    #[doc = "      \"description\": \"The standard size limit for outgoing receipts aimed at a single shard.\\n This limit is pretty small to keep the size of source_receipt_proofs under control.\\n It limits the total sum of outgoing receipts, not individual receipts.\","]
3567    #[doc = "      \"type\": \"integer\","]
3568    #[doc = "      \"format\": \"uint64\","]
3569    #[doc = "      \"minimum\": 0.0"]
3570    #[doc = "    },"]
3571    #[doc = "    \"reject_tx_congestion_threshold\": {"]
3572    #[doc = "      \"description\": \"How much congestion a shard can tolerate before it stops all shards from\\n accepting new transactions with the receiver set to the congested shard.\","]
3573    #[doc = "      \"type\": \"number\","]
3574    #[doc = "      \"format\": \"double\""]
3575    #[doc = "    }"]
3576    #[doc = "  }"]
3577    #[doc = "}"]
3578    #[doc = r" ```"]
3579    #[doc = r" </details>"]
3580    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3581    pub struct CongestionControlConfigView {
3582        #[doc = "How much gas the chosen allowed shard can send to a 100% congested shard.\n\n See [`CongestionControlConfig`] for more details."]
3583        pub allowed_shard_outgoing_gas: u64,
3584        #[doc = "How much gas in delayed receipts of a shard is 100% incoming congestion.\n\n See [`CongestionControlConfig`] for more details."]
3585        pub max_congestion_incoming_gas: u64,
3586        #[doc = "How much memory space of all delayed and buffered receipts in a shard is\n considered 100% congested.\n\n See [`CongestionControlConfig`] for more details."]
3587        pub max_congestion_memory_consumption: u64,
3588        #[doc = "How many missed chunks in a row in a shard is considered 100% congested."]
3589        pub max_congestion_missed_chunks: u64,
3590        #[doc = "How much gas in outgoing buffered receipts of a shard is 100% congested.\n\n Outgoing congestion contributes to overall congestion, which reduces how\n much other shards are allowed to forward to this shard."]
3591        pub max_congestion_outgoing_gas: u64,
3592        #[doc = "The maximum amount of gas attached to receipts a shard can forward to\n another shard per chunk.\n\n See [`CongestionControlConfig`] for more details."]
3593        pub max_outgoing_gas: u64,
3594        #[doc = "The maximum amount of gas in a chunk spent on converting new transactions to\n receipts.\n\n See [`CongestionControlConfig`] for more details."]
3595        pub max_tx_gas: u64,
3596        #[doc = "The minimum gas each shard can send to a shard that is not fully congested.\n\n See [`CongestionControlConfig`] for more details."]
3597        pub min_outgoing_gas: u64,
3598        #[doc = "The minimum amount of gas in a chunk spent on converting new transactions\n to receipts, as long as the receiving shard is not congested.\n\n See [`CongestionControlConfig`] for more details."]
3599        pub min_tx_gas: u64,
3600        #[doc = "Large size limit for outgoing receipts to a shard, used when it's safe\n to send a lot of receipts without making the state witness too large.\n It limits the total sum of outgoing receipts, not individual receipts."]
3601        pub outgoing_receipts_big_size_limit: u64,
3602        #[doc = "The standard size limit for outgoing receipts aimed at a single shard.\n This limit is pretty small to keep the size of source_receipt_proofs under control.\n It limits the total sum of outgoing receipts, not individual receipts."]
3603        pub outgoing_receipts_usual_size_limit: u64,
3604        pub reject_tx_congestion_threshold: f64,
3605    }
3606    impl ::std::convert::From<&CongestionControlConfigView> for CongestionControlConfigView {
3607        fn from(value: &CongestionControlConfigView) -> Self {
3608            value.clone()
3609        }
3610    }
3611    #[doc = "`CongestionInfoView`"]
3612    #[doc = r""]
3613    #[doc = r" <details><summary>JSON schema</summary>"]
3614    #[doc = r""]
3615    #[doc = r" ```json"]
3616    #[doc = "{"]
3617    #[doc = "  \"type\": \"object\","]
3618    #[doc = "  \"required\": ["]
3619    #[doc = "    \"allowed_shard\","]
3620    #[doc = "    \"buffered_receipts_gas\","]
3621    #[doc = "    \"delayed_receipts_gas\","]
3622    #[doc = "    \"receipt_bytes\""]
3623    #[doc = "  ],"]
3624    #[doc = "  \"properties\": {"]
3625    #[doc = "    \"allowed_shard\": {"]
3626    #[doc = "      \"type\": \"integer\","]
3627    #[doc = "      \"format\": \"uint16\","]
3628    #[doc = "      \"minimum\": 0.0"]
3629    #[doc = "    },"]
3630    #[doc = "    \"buffered_receipts_gas\": {"]
3631    #[doc = "      \"type\": \"string\""]
3632    #[doc = "    },"]
3633    #[doc = "    \"delayed_receipts_gas\": {"]
3634    #[doc = "      \"type\": \"string\""]
3635    #[doc = "    },"]
3636    #[doc = "    \"receipt_bytes\": {"]
3637    #[doc = "      \"type\": \"integer\","]
3638    #[doc = "      \"format\": \"uint64\","]
3639    #[doc = "      \"minimum\": 0.0"]
3640    #[doc = "    }"]
3641    #[doc = "  }"]
3642    #[doc = "}"]
3643    #[doc = r" ```"]
3644    #[doc = r" </details>"]
3645    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3646    pub struct CongestionInfoView {
3647        pub allowed_shard: u16,
3648        pub buffered_receipts_gas: ::std::string::String,
3649        pub delayed_receipts_gas: ::std::string::String,
3650        pub receipt_bytes: u64,
3651    }
3652    impl ::std::convert::From<&CongestionInfoView> for CongestionInfoView {
3653        fn from(value: &CongestionInfoView) -> Self {
3654            value.clone()
3655        }
3656    }
3657    #[doc = "A view of the contract code."]
3658    #[doc = r""]
3659    #[doc = r" <details><summary>JSON schema</summary>"]
3660    #[doc = r""]
3661    #[doc = r" ```json"]
3662    #[doc = "{"]
3663    #[doc = "  \"description\": \"A view of the contract code.\","]
3664    #[doc = "  \"type\": \"object\","]
3665    #[doc = "  \"required\": ["]
3666    #[doc = "    \"code_base64\","]
3667    #[doc = "    \"hash\""]
3668    #[doc = "  ],"]
3669    #[doc = "  \"properties\": {"]
3670    #[doc = "    \"code_base64\": {"]
3671    #[doc = "      \"type\": \"string\""]
3672    #[doc = "    },"]
3673    #[doc = "    \"hash\": {"]
3674    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
3675    #[doc = "    }"]
3676    #[doc = "  }"]
3677    #[doc = "}"]
3678    #[doc = r" ```"]
3679    #[doc = r" </details>"]
3680    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3681    pub struct ContractCodeView {
3682        pub code_base64: ::std::string::String,
3683        pub hash: CryptoHash,
3684    }
3685    impl ::std::convert::From<&ContractCodeView> for ContractCodeView {
3686        fn from(value: &ContractCodeView) -> Self {
3687            value.clone()
3688        }
3689    }
3690    #[doc = "`CostGasUsed`"]
3691    #[doc = r""]
3692    #[doc = r" <details><summary>JSON schema</summary>"]
3693    #[doc = r""]
3694    #[doc = r" ```json"]
3695    #[doc = "{"]
3696    #[doc = "  \"type\": \"object\","]
3697    #[doc = "  \"required\": ["]
3698    #[doc = "    \"cost\","]
3699    #[doc = "    \"cost_category\","]
3700    #[doc = "    \"gas_used\""]
3701    #[doc = "  ],"]
3702    #[doc = "  \"properties\": {"]
3703    #[doc = "    \"cost\": {"]
3704    #[doc = "      \"type\": \"string\""]
3705    #[doc = "    },"]
3706    #[doc = "    \"cost_category\": {"]
3707    #[doc = "      \"type\": \"string\""]
3708    #[doc = "    },"]
3709    #[doc = "    \"gas_used\": {"]
3710    #[doc = "      \"type\": \"string\""]
3711    #[doc = "    }"]
3712    #[doc = "  }"]
3713    #[doc = "}"]
3714    #[doc = r" ```"]
3715    #[doc = r" </details>"]
3716    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3717    pub struct CostGasUsed {
3718        pub cost: ::std::string::String,
3719        pub cost_category: ::std::string::String,
3720        pub gas_used: ::std::string::String,
3721    }
3722    impl ::std::convert::From<&CostGasUsed> for CostGasUsed {
3723        fn from(value: &CostGasUsed) -> Self {
3724            value.clone()
3725        }
3726    }
3727    #[doc = "Create account action"]
3728    #[doc = r""]
3729    #[doc = r" <details><summary>JSON schema</summary>"]
3730    #[doc = r""]
3731    #[doc = r" ```json"]
3732    #[doc = "{"]
3733    #[doc = "  \"description\": \"Create account action\","]
3734    #[doc = "  \"type\": \"object\""]
3735    #[doc = "}"]
3736    #[doc = r" ```"]
3737    #[doc = r" </details>"]
3738    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3739    #[serde(transparent)]
3740    pub struct CreateAccountAction(
3741        pub ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3742    );
3743    impl ::std::ops::Deref for CreateAccountAction {
3744        type Target = ::serde_json::Map<::std::string::String, ::serde_json::Value>;
3745        fn deref(&self) -> &::serde_json::Map<::std::string::String, ::serde_json::Value> {
3746            &self.0
3747        }
3748    }
3749    impl ::std::convert::From<CreateAccountAction>
3750        for ::serde_json::Map<::std::string::String, ::serde_json::Value>
3751    {
3752        fn from(value: CreateAccountAction) -> Self {
3753            value.0
3754        }
3755    }
3756    impl ::std::convert::From<&CreateAccountAction> for CreateAccountAction {
3757        fn from(value: &CreateAccountAction) -> Self {
3758            value.clone()
3759        }
3760    }
3761    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
3762        for CreateAccountAction
3763    {
3764        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
3765            Self(value)
3766        }
3767    }
3768    #[doc = "`CryptoHash`"]
3769    #[doc = r""]
3770    #[doc = r" <details><summary>JSON schema</summary>"]
3771    #[doc = r""]
3772    #[doc = r" ```json"]
3773    #[doc = "{"]
3774    #[doc = "  \"type\": \"string\""]
3775    #[doc = "}"]
3776    #[doc = r" ```"]
3777    #[doc = r" </details>"]
3778    #[derive(
3779        :: serde :: Deserialize,
3780        :: serde :: Serialize,
3781        Clone,
3782        Debug,
3783        Eq,
3784        Hash,
3785        Ord,
3786        PartialEq,
3787        PartialOrd,
3788    )]
3789    #[serde(transparent)]
3790    pub struct CryptoHash(pub ::std::string::String);
3791    impl ::std::ops::Deref for CryptoHash {
3792        type Target = ::std::string::String;
3793        fn deref(&self) -> &::std::string::String {
3794            &self.0
3795        }
3796    }
3797    impl ::std::convert::From<CryptoHash> for ::std::string::String {
3798        fn from(value: CryptoHash) -> Self {
3799            value.0
3800        }
3801    }
3802    impl ::std::convert::From<&CryptoHash> for CryptoHash {
3803        fn from(value: &CryptoHash) -> Self {
3804            value.clone()
3805        }
3806    }
3807    impl ::std::convert::From<::std::string::String> for CryptoHash {
3808        fn from(value: ::std::string::String) -> Self {
3809            Self(value)
3810        }
3811    }
3812    impl ::std::str::FromStr for CryptoHash {
3813        type Err = ::std::convert::Infallible;
3814        fn from_str(value: &str) -> ::std::result::Result<Self, Self::Err> {
3815            Ok(Self(value.to_string()))
3816        }
3817    }
3818    impl ::std::fmt::Display for CryptoHash {
3819        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3820            self.0.fmt(f)
3821        }
3822    }
3823    #[doc = "`CurrentEpochValidatorInfo`"]
3824    #[doc = r""]
3825    #[doc = r" <details><summary>JSON schema</summary>"]
3826    #[doc = r""]
3827    #[doc = r" ```json"]
3828    #[doc = "{"]
3829    #[doc = "  \"type\": \"object\","]
3830    #[doc = "  \"required\": ["]
3831    #[doc = "    \"account_id\","]
3832    #[doc = "    \"is_slashed\","]
3833    #[doc = "    \"num_expected_blocks\","]
3834    #[doc = "    \"num_produced_blocks\","]
3835    #[doc = "    \"public_key\","]
3836    #[doc = "    \"shards\","]
3837    #[doc = "    \"shards_endorsed\","]
3838    #[doc = "    \"stake\""]
3839    #[doc = "  ],"]
3840    #[doc = "  \"properties\": {"]
3841    #[doc = "    \"account_id\": {"]
3842    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
3843    #[doc = "    },"]
3844    #[doc = "    \"is_slashed\": {"]
3845    #[doc = "      \"type\": \"boolean\""]
3846    #[doc = "    },"]
3847    #[doc = "    \"num_expected_blocks\": {"]
3848    #[doc = "      \"type\": \"integer\","]
3849    #[doc = "      \"format\": \"uint64\","]
3850    #[doc = "      \"minimum\": 0.0"]
3851    #[doc = "    },"]
3852    #[doc = "    \"num_expected_chunks\": {"]
3853    #[doc = "      \"default\": 0,"]
3854    #[doc = "      \"type\": \"integer\","]
3855    #[doc = "      \"format\": \"uint64\","]
3856    #[doc = "      \"minimum\": 0.0"]
3857    #[doc = "    },"]
3858    #[doc = "    \"num_expected_chunks_per_shard\": {"]
3859    #[doc = "      \"description\": \"Number of chunks this validator was expected to produce in each shard.\\n Each entry in the array corresponds to the shard in the `shards_produced` array.\","]
3860    #[doc = "      \"default\": [],"]
3861    #[doc = "      \"type\": \"array\","]
3862    #[doc = "      \"items\": {"]
3863    #[doc = "        \"type\": \"integer\","]
3864    #[doc = "        \"format\": \"uint64\","]
3865    #[doc = "        \"minimum\": 0.0"]
3866    #[doc = "      }"]
3867    #[doc = "    },"]
3868    #[doc = "    \"num_expected_endorsements\": {"]
3869    #[doc = "      \"default\": 0,"]
3870    #[doc = "      \"type\": \"integer\","]
3871    #[doc = "      \"format\": \"uint64\","]
3872    #[doc = "      \"minimum\": 0.0"]
3873    #[doc = "    },"]
3874    #[doc = "    \"num_expected_endorsements_per_shard\": {"]
3875    #[doc = "      \"description\": \"Number of chunks this validator was expected to validate and endorse in each shard.\\n Each entry in the array corresponds to the shard in the `shards_endorsed` array.\","]
3876    #[doc = "      \"default\": [],"]
3877    #[doc = "      \"type\": \"array\","]
3878    #[doc = "      \"items\": {"]
3879    #[doc = "        \"type\": \"integer\","]
3880    #[doc = "        \"format\": \"uint64\","]
3881    #[doc = "        \"minimum\": 0.0"]
3882    #[doc = "      }"]
3883    #[doc = "    },"]
3884    #[doc = "    \"num_produced_blocks\": {"]
3885    #[doc = "      \"type\": \"integer\","]
3886    #[doc = "      \"format\": \"uint64\","]
3887    #[doc = "      \"minimum\": 0.0"]
3888    #[doc = "    },"]
3889    #[doc = "    \"num_produced_chunks\": {"]
3890    #[doc = "      \"default\": 0,"]
3891    #[doc = "      \"type\": \"integer\","]
3892    #[doc = "      \"format\": \"uint64\","]
3893    #[doc = "      \"minimum\": 0.0"]
3894    #[doc = "    },"]
3895    #[doc = "    \"num_produced_chunks_per_shard\": {"]
3896    #[doc = "      \"default\": [],"]
3897    #[doc = "      \"type\": \"array\","]
3898    #[doc = "      \"items\": {"]
3899    #[doc = "        \"type\": \"integer\","]
3900    #[doc = "        \"format\": \"uint64\","]
3901    #[doc = "        \"minimum\": 0.0"]
3902    #[doc = "      }"]
3903    #[doc = "    },"]
3904    #[doc = "    \"num_produced_endorsements\": {"]
3905    #[doc = "      \"default\": 0,"]
3906    #[doc = "      \"type\": \"integer\","]
3907    #[doc = "      \"format\": \"uint64\","]
3908    #[doc = "      \"minimum\": 0.0"]
3909    #[doc = "    },"]
3910    #[doc = "    \"num_produced_endorsements_per_shard\": {"]
3911    #[doc = "      \"default\": [],"]
3912    #[doc = "      \"type\": \"array\","]
3913    #[doc = "      \"items\": {"]
3914    #[doc = "        \"type\": \"integer\","]
3915    #[doc = "        \"format\": \"uint64\","]
3916    #[doc = "        \"minimum\": 0.0"]
3917    #[doc = "      }"]
3918    #[doc = "    },"]
3919    #[doc = "    \"public_key\": {"]
3920    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
3921    #[doc = "    },"]
3922    #[doc = "    \"shards\": {"]
3923    #[doc = "      \"description\": \"Shards this validator is assigned to as chunk producer in the current epoch.\","]
3924    #[doc = "      \"type\": \"array\","]
3925    #[doc = "      \"items\": {"]
3926    #[doc = "        \"$ref\": \"#/components/schemas/ShardId\""]
3927    #[doc = "      }"]
3928    #[doc = "    },"]
3929    #[doc = "    \"shards_endorsed\": {"]
3930    #[doc = "      \"description\": \"Shards this validator is assigned to as chunk validator in the current epoch.\","]
3931    #[doc = "      \"type\": \"array\","]
3932    #[doc = "      \"items\": {"]
3933    #[doc = "        \"$ref\": \"#/components/schemas/ShardId\""]
3934    #[doc = "      }"]
3935    #[doc = "    },"]
3936    #[doc = "    \"stake\": {"]
3937    #[doc = "      \"type\": \"string\""]
3938    #[doc = "    }"]
3939    #[doc = "  }"]
3940    #[doc = "}"]
3941    #[doc = r" ```"]
3942    #[doc = r" </details>"]
3943    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3944    pub struct CurrentEpochValidatorInfo {
3945        pub account_id: AccountId,
3946        pub is_slashed: bool,
3947        pub num_expected_blocks: u64,
3948        #[serde(default)]
3949        pub num_expected_chunks: u64,
3950        #[doc = "Number of chunks this validator was expected to produce in each shard.\n Each entry in the array corresponds to the shard in the `shards_produced` array."]
3951        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
3952        pub num_expected_chunks_per_shard: ::std::vec::Vec<u64>,
3953        #[serde(default)]
3954        pub num_expected_endorsements: u64,
3955        #[doc = "Number of chunks this validator was expected to validate and endorse in each shard.\n Each entry in the array corresponds to the shard in the `shards_endorsed` array."]
3956        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
3957        pub num_expected_endorsements_per_shard: ::std::vec::Vec<u64>,
3958        pub num_produced_blocks: u64,
3959        #[serde(default)]
3960        pub num_produced_chunks: u64,
3961        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
3962        pub num_produced_chunks_per_shard: ::std::vec::Vec<u64>,
3963        #[serde(default)]
3964        pub num_produced_endorsements: u64,
3965        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
3966        pub num_produced_endorsements_per_shard: ::std::vec::Vec<u64>,
3967        pub public_key: PublicKey,
3968        #[doc = "Shards this validator is assigned to as chunk producer in the current epoch."]
3969        pub shards: ::std::vec::Vec<ShardId>,
3970        #[doc = "Shards this validator is assigned to as chunk validator in the current epoch."]
3971        pub shards_endorsed: ::std::vec::Vec<ShardId>,
3972        pub stake: ::std::string::String,
3973    }
3974    impl ::std::convert::From<&CurrentEpochValidatorInfo> for CurrentEpochValidatorInfo {
3975        fn from(value: &CurrentEpochValidatorInfo) -> Self {
3976            value.clone()
3977        }
3978    }
3979    #[doc = "`DataReceiptCreationConfigView`"]
3980    #[doc = r""]
3981    #[doc = r" <details><summary>JSON schema</summary>"]
3982    #[doc = r""]
3983    #[doc = r" ```json"]
3984    #[doc = "{"]
3985    #[doc = "  \"type\": \"object\","]
3986    #[doc = "  \"required\": ["]
3987    #[doc = "    \"base_cost\","]
3988    #[doc = "    \"cost_per_byte\""]
3989    #[doc = "  ],"]
3990    #[doc = "  \"properties\": {"]
3991    #[doc = "    \"base_cost\": {"]
3992    #[doc = "      \"description\": \"Base cost of creating a data receipt.\\n Both `send` and `exec` costs are burned when a new receipt has input dependencies. The gas\\n is charged for each input dependency. The dependencies are specified when a receipt is\\n created using `promise_then` and `promise_batch_then`.\\n NOTE: Any receipt with output dependencies will produce data receipts. Even if it fails.\\n Even if the last action is not a function call (in case of success it will return empty\\n value).\","]
3993    #[doc = "      \"allOf\": ["]
3994    #[doc = "        {"]
3995    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
3996    #[doc = "        }"]
3997    #[doc = "      ]"]
3998    #[doc = "    },"]
3999    #[doc = "    \"cost_per_byte\": {"]
4000    #[doc = "      \"description\": \"Additional cost per byte sent.\\n Both `send` and `exec` costs are burned when a function call finishes execution and returns\\n `N` bytes of data to every output dependency. For each output dependency the cost is\\n `(send(sir) + exec()) * N`.\","]
4001    #[doc = "      \"allOf\": ["]
4002    #[doc = "        {"]
4003    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
4004    #[doc = "        }"]
4005    #[doc = "      ]"]
4006    #[doc = "    }"]
4007    #[doc = "  }"]
4008    #[doc = "}"]
4009    #[doc = r" ```"]
4010    #[doc = r" </details>"]
4011    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4012    pub struct DataReceiptCreationConfigView {
4013        #[doc = "Base cost of creating a data receipt.\n Both `send` and `exec` costs are burned when a new receipt has input dependencies. The gas\n is charged for each input dependency. The dependencies are specified when a receipt is\n created using `promise_then` and `promise_batch_then`.\n NOTE: Any receipt with output dependencies will produce data receipts. Even if it fails.\n Even if the last action is not a function call (in case of success it will return empty\n value)."]
4014        pub base_cost: Fee,
4015        #[doc = "Additional cost per byte sent.\n Both `send` and `exec` costs are burned when a function call finishes execution and returns\n `N` bytes of data to every output dependency. For each output dependency the cost is\n `(send(sir) + exec()) * N`."]
4016        pub cost_per_byte: Fee,
4017    }
4018    impl ::std::convert::From<&DataReceiptCreationConfigView> for DataReceiptCreationConfigView {
4019        fn from(value: &DataReceiptCreationConfigView) -> Self {
4020            value.clone()
4021        }
4022    }
4023    #[doc = "`DataReceiverView`"]
4024    #[doc = r""]
4025    #[doc = r" <details><summary>JSON schema</summary>"]
4026    #[doc = r""]
4027    #[doc = r" ```json"]
4028    #[doc = "{"]
4029    #[doc = "  \"type\": \"object\","]
4030    #[doc = "  \"required\": ["]
4031    #[doc = "    \"data_id\","]
4032    #[doc = "    \"receiver_id\""]
4033    #[doc = "  ],"]
4034    #[doc = "  \"properties\": {"]
4035    #[doc = "    \"data_id\": {"]
4036    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
4037    #[doc = "    },"]
4038    #[doc = "    \"receiver_id\": {"]
4039    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
4040    #[doc = "    }"]
4041    #[doc = "  }"]
4042    #[doc = "}"]
4043    #[doc = r" ```"]
4044    #[doc = r" </details>"]
4045    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4046    pub struct DataReceiverView {
4047        pub data_id: CryptoHash,
4048        pub receiver_id: AccountId,
4049    }
4050    impl ::std::convert::From<&DataReceiverView> for DataReceiverView {
4051        fn from(value: &DataReceiverView) -> Self {
4052            value.clone()
4053        }
4054    }
4055    #[doc = "This action allows to execute the inner actions behalf of the defined sender."]
4056    #[doc = r""]
4057    #[doc = r" <details><summary>JSON schema</summary>"]
4058    #[doc = r""]
4059    #[doc = r" ```json"]
4060    #[doc = "{"]
4061    #[doc = "  \"description\": \"This action allows to execute the inner actions behalf of the defined sender.\","]
4062    #[doc = "  \"type\": \"object\","]
4063    #[doc = "  \"required\": ["]
4064    #[doc = "    \"actions\","]
4065    #[doc = "    \"max_block_height\","]
4066    #[doc = "    \"nonce\","]
4067    #[doc = "    \"public_key\","]
4068    #[doc = "    \"receiver_id\","]
4069    #[doc = "    \"sender_id\""]
4070    #[doc = "  ],"]
4071    #[doc = "  \"properties\": {"]
4072    #[doc = "    \"actions\": {"]
4073    #[doc = "      \"description\": \"List of actions to be executed.\\n\\n With the meta transactions MVP defined in NEP-366, nested\\n DelegateActions are not allowed. A separate type is used to enforce it.\","]
4074    #[doc = "      \"type\": \"array\","]
4075    #[doc = "      \"items\": {"]
4076    #[doc = "        \"$ref\": \"#/components/schemas/NonDelegateAction\""]
4077    #[doc = "      }"]
4078    #[doc = "    },"]
4079    #[doc = "    \"max_block_height\": {"]
4080    #[doc = "      \"description\": \"The maximal height of the block in the blockchain below which the given DelegateAction is valid.\","]
4081    #[doc = "      \"type\": \"integer\","]
4082    #[doc = "      \"format\": \"uint64\","]
4083    #[doc = "      \"minimum\": 0.0"]
4084    #[doc = "    },"]
4085    #[doc = "    \"nonce\": {"]
4086    #[doc = "      \"description\": \"Nonce to ensure that the same delegate action is not sent twice by a\\n relayer and should match for given account's `public_key`.\\n After this action is processed it will increment.\","]
4087    #[doc = "      \"type\": \"integer\","]
4088    #[doc = "      \"format\": \"uint64\","]
4089    #[doc = "      \"minimum\": 0.0"]
4090    #[doc = "    },"]
4091    #[doc = "    \"public_key\": {"]
4092    #[doc = "      \"description\": \"Public key used to sign this delegated action.\","]
4093    #[doc = "      \"allOf\": ["]
4094    #[doc = "        {"]
4095    #[doc = "          \"$ref\": \"#/components/schemas/PublicKey\""]
4096    #[doc = "        }"]
4097    #[doc = "      ]"]
4098    #[doc = "    },"]
4099    #[doc = "    \"receiver_id\": {"]
4100    #[doc = "      \"description\": \"Receiver of the delegated actions.\","]
4101    #[doc = "      \"allOf\": ["]
4102    #[doc = "        {"]
4103    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
4104    #[doc = "        }"]
4105    #[doc = "      ]"]
4106    #[doc = "    },"]
4107    #[doc = "    \"sender_id\": {"]
4108    #[doc = "      \"description\": \"Signer of the delegated actions\","]
4109    #[doc = "      \"allOf\": ["]
4110    #[doc = "        {"]
4111    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
4112    #[doc = "        }"]
4113    #[doc = "      ]"]
4114    #[doc = "    }"]
4115    #[doc = "  }"]
4116    #[doc = "}"]
4117    #[doc = r" ```"]
4118    #[doc = r" </details>"]
4119    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4120    pub struct DelegateAction {
4121        #[doc = "List of actions to be executed.\n\n With the meta transactions MVP defined in NEP-366, nested\n DelegateActions are not allowed. A separate type is used to enforce it."]
4122        pub actions: ::std::vec::Vec<NonDelegateAction>,
4123        #[doc = "The maximal height of the block in the blockchain below which the given DelegateAction is valid."]
4124        pub max_block_height: u64,
4125        #[doc = "Nonce to ensure that the same delegate action is not sent twice by a\n relayer and should match for given account's `public_key`.\n After this action is processed it will increment."]
4126        pub nonce: u64,
4127        #[doc = "Public key used to sign this delegated action."]
4128        pub public_key: PublicKey,
4129        #[doc = "Receiver of the delegated actions."]
4130        pub receiver_id: AccountId,
4131        #[doc = "Signer of the delegated actions"]
4132        pub sender_id: AccountId,
4133    }
4134    impl ::std::convert::From<&DelegateAction> for DelegateAction {
4135        fn from(value: &DelegateAction) -> Self {
4136            value.clone()
4137        }
4138    }
4139    #[doc = "`DeleteAccountAction`"]
4140    #[doc = r""]
4141    #[doc = r" <details><summary>JSON schema</summary>"]
4142    #[doc = r""]
4143    #[doc = r" ```json"]
4144    #[doc = "{"]
4145    #[doc = "  \"type\": \"object\","]
4146    #[doc = "  \"required\": ["]
4147    #[doc = "    \"beneficiary_id\""]
4148    #[doc = "  ],"]
4149    #[doc = "  \"properties\": {"]
4150    #[doc = "    \"beneficiary_id\": {"]
4151    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
4152    #[doc = "    }"]
4153    #[doc = "  }"]
4154    #[doc = "}"]
4155    #[doc = r" ```"]
4156    #[doc = r" </details>"]
4157    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4158    pub struct DeleteAccountAction {
4159        pub beneficiary_id: AccountId,
4160    }
4161    impl ::std::convert::From<&DeleteAccountAction> for DeleteAccountAction {
4162        fn from(value: &DeleteAccountAction) -> Self {
4163            value.clone()
4164        }
4165    }
4166    #[doc = "`DeleteKeyAction`"]
4167    #[doc = r""]
4168    #[doc = r" <details><summary>JSON schema</summary>"]
4169    #[doc = r""]
4170    #[doc = r" ```json"]
4171    #[doc = "{"]
4172    #[doc = "  \"type\": \"object\","]
4173    #[doc = "  \"required\": ["]
4174    #[doc = "    \"public_key\""]
4175    #[doc = "  ],"]
4176    #[doc = "  \"properties\": {"]
4177    #[doc = "    \"public_key\": {"]
4178    #[doc = "      \"description\": \"A public key associated with the access_key to be deleted.\","]
4179    #[doc = "      \"allOf\": ["]
4180    #[doc = "        {"]
4181    #[doc = "          \"$ref\": \"#/components/schemas/PublicKey\""]
4182    #[doc = "        }"]
4183    #[doc = "      ]"]
4184    #[doc = "    }"]
4185    #[doc = "  }"]
4186    #[doc = "}"]
4187    #[doc = r" ```"]
4188    #[doc = r" </details>"]
4189    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4190    pub struct DeleteKeyAction {
4191        #[doc = "A public key associated with the access_key to be deleted."]
4192        pub public_key: PublicKey,
4193    }
4194    impl ::std::convert::From<&DeleteKeyAction> for DeleteKeyAction {
4195        fn from(value: &DeleteKeyAction) -> Self {
4196            value.clone()
4197        }
4198    }
4199    #[doc = "Deploy contract action"]
4200    #[doc = r""]
4201    #[doc = r" <details><summary>JSON schema</summary>"]
4202    #[doc = r""]
4203    #[doc = r" ```json"]
4204    #[doc = "{"]
4205    #[doc = "  \"description\": \"Deploy contract action\","]
4206    #[doc = "  \"type\": \"object\","]
4207    #[doc = "  \"required\": ["]
4208    #[doc = "    \"code\""]
4209    #[doc = "  ],"]
4210    #[doc = "  \"properties\": {"]
4211    #[doc = "    \"code\": {"]
4212    #[doc = "      \"description\": \"WebAssembly binary\","]
4213    #[doc = "      \"type\": \"string\""]
4214    #[doc = "    }"]
4215    #[doc = "  }"]
4216    #[doc = "}"]
4217    #[doc = r" ```"]
4218    #[doc = r" </details>"]
4219    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4220    pub struct DeployContractAction {
4221        #[doc = "WebAssembly binary"]
4222        pub code: ::std::string::String,
4223    }
4224    impl ::std::convert::From<&DeployContractAction> for DeployContractAction {
4225        fn from(value: &DeployContractAction) -> Self {
4226            value.clone()
4227        }
4228    }
4229    #[doc = "Deploy global contract action"]
4230    #[doc = r""]
4231    #[doc = r" <details><summary>JSON schema</summary>"]
4232    #[doc = r""]
4233    #[doc = r" ```json"]
4234    #[doc = "{"]
4235    #[doc = "  \"description\": \"Deploy global contract action\","]
4236    #[doc = "  \"type\": \"object\","]
4237    #[doc = "  \"required\": ["]
4238    #[doc = "    \"code\","]
4239    #[doc = "    \"deploy_mode\""]
4240    #[doc = "  ],"]
4241    #[doc = "  \"properties\": {"]
4242    #[doc = "    \"code\": {"]
4243    #[doc = "      \"description\": \"WebAssembly binary\","]
4244    #[doc = "      \"type\": \"string\""]
4245    #[doc = "    },"]
4246    #[doc = "    \"deploy_mode\": {"]
4247    #[doc = "      \"$ref\": \"#/components/schemas/GlobalContractDeployMode\""]
4248    #[doc = "    }"]
4249    #[doc = "  }"]
4250    #[doc = "}"]
4251    #[doc = r" ```"]
4252    #[doc = r" </details>"]
4253    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4254    pub struct DeployGlobalContractAction {
4255        #[doc = "WebAssembly binary"]
4256        pub code: ::std::string::String,
4257        pub deploy_mode: GlobalContractDeployMode,
4258    }
4259    impl ::std::convert::From<&DeployGlobalContractAction> for DeployGlobalContractAction {
4260        fn from(value: &DeployGlobalContractAction) -> Self {
4261            value.clone()
4262        }
4263    }
4264    #[doc = "`DetailedDebugStatus`"]
4265    #[doc = r""]
4266    #[doc = r" <details><summary>JSON schema</summary>"]
4267    #[doc = r""]
4268    #[doc = r" ```json"]
4269    #[doc = "{"]
4270    #[doc = "  \"type\": \"object\","]
4271    #[doc = "  \"required\": ["]
4272    #[doc = "    \"block_production_delay_millis\","]
4273    #[doc = "    \"catchup_status\","]
4274    #[doc = "    \"current_head_status\","]
4275    #[doc = "    \"current_header_head_status\","]
4276    #[doc = "    \"network_info\","]
4277    #[doc = "    \"sync_status\""]
4278    #[doc = "  ],"]
4279    #[doc = "  \"properties\": {"]
4280    #[doc = "    \"block_production_delay_millis\": {"]
4281    #[doc = "      \"type\": \"integer\","]
4282    #[doc = "      \"format\": \"uint64\","]
4283    #[doc = "      \"minimum\": 0.0"]
4284    #[doc = "    },"]
4285    #[doc = "    \"catchup_status\": {"]
4286    #[doc = "      \"type\": \"array\","]
4287    #[doc = "      \"items\": {"]
4288    #[doc = "        \"$ref\": \"#/components/schemas/CatchupStatusView\""]
4289    #[doc = "      }"]
4290    #[doc = "    },"]
4291    #[doc = "    \"current_head_status\": {"]
4292    #[doc = "      \"$ref\": \"#/components/schemas/BlockStatusView\""]
4293    #[doc = "    },"]
4294    #[doc = "    \"current_header_head_status\": {"]
4295    #[doc = "      \"$ref\": \"#/components/schemas/BlockStatusView\""]
4296    #[doc = "    },"]
4297    #[doc = "    \"network_info\": {"]
4298    #[doc = "      \"$ref\": \"#/components/schemas/NetworkInfoView\""]
4299    #[doc = "    },"]
4300    #[doc = "    \"sync_status\": {"]
4301    #[doc = "      \"type\": \"string\""]
4302    #[doc = "    }"]
4303    #[doc = "  }"]
4304    #[doc = "}"]
4305    #[doc = r" ```"]
4306    #[doc = r" </details>"]
4307    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4308    pub struct DetailedDebugStatus {
4309        pub block_production_delay_millis: u64,
4310        pub catchup_status: ::std::vec::Vec<CatchupStatusView>,
4311        pub current_head_status: BlockStatusView,
4312        pub current_header_head_status: BlockStatusView,
4313        pub network_info: NetworkInfoView,
4314        pub sync_status: ::std::string::String,
4315    }
4316    impl ::std::convert::From<&DetailedDebugStatus> for DetailedDebugStatus {
4317        fn from(value: &DetailedDebugStatus) -> Self {
4318            value.clone()
4319        }
4320    }
4321    #[doc = "`Direction`"]
4322    #[doc = r""]
4323    #[doc = r" <details><summary>JSON schema</summary>"]
4324    #[doc = r""]
4325    #[doc = r" ```json"]
4326    #[doc = "{"]
4327    #[doc = "  \"type\": \"string\","]
4328    #[doc = "  \"enum\": ["]
4329    #[doc = "    \"Left\","]
4330    #[doc = "    \"Right\""]
4331    #[doc = "  ]"]
4332    #[doc = "}"]
4333    #[doc = r" ```"]
4334    #[doc = r" </details>"]
4335    #[derive(
4336        :: serde :: Deserialize,
4337        :: serde :: Serialize,
4338        Clone,
4339        Copy,
4340        Debug,
4341        Eq,
4342        Hash,
4343        Ord,
4344        PartialEq,
4345        PartialOrd,
4346    )]
4347    pub enum Direction {
4348        Left,
4349        Right,
4350    }
4351    impl ::std::convert::From<&Self> for Direction {
4352        fn from(value: &Direction) -> Self {
4353            value.clone()
4354        }
4355    }
4356    impl ::std::fmt::Display for Direction {
4357        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4358            match *self {
4359                Self::Left => write!(f, "Left"),
4360                Self::Right => write!(f, "Right"),
4361            }
4362        }
4363    }
4364    impl ::std::str::FromStr for Direction {
4365        type Err = self::error::ConversionError;
4366        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
4367            match value {
4368                "Left" => Ok(Self::Left),
4369                "Right" => Ok(Self::Right),
4370                _ => Err("invalid value".into()),
4371            }
4372        }
4373    }
4374    impl ::std::convert::TryFrom<&str> for Direction {
4375        type Error = self::error::ConversionError;
4376        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
4377            value.parse()
4378        }
4379    }
4380    impl ::std::convert::TryFrom<&::std::string::String> for Direction {
4381        type Error = self::error::ConversionError;
4382        fn try_from(
4383            value: &::std::string::String,
4384        ) -> ::std::result::Result<Self, self::error::ConversionError> {
4385            value.parse()
4386        }
4387    }
4388    impl ::std::convert::TryFrom<::std::string::String> for Direction {
4389        type Error = self::error::ConversionError;
4390        fn try_from(
4391            value: ::std::string::String,
4392        ) -> ::std::result::Result<Self, self::error::ConversionError> {
4393            value.parse()
4394        }
4395    }
4396    #[doc = "Configures how to dump state to external storage."]
4397    #[doc = r""]
4398    #[doc = r" <details><summary>JSON schema</summary>"]
4399    #[doc = r""]
4400    #[doc = r" ```json"]
4401    #[doc = "{"]
4402    #[doc = "  \"description\": \"Configures how to dump state to external storage.\","]
4403    #[doc = "  \"type\": \"object\","]
4404    #[doc = "  \"required\": ["]
4405    #[doc = "    \"location\""]
4406    #[doc = "  ],"]
4407    #[doc = "  \"properties\": {"]
4408    #[doc = "    \"credentials_file\": {"]
4409    #[doc = "      \"description\": \"Location of a json file with credentials allowing write access to the bucket.\","]
4410    #[doc = "      \"type\": ["]
4411    #[doc = "        \"string\","]
4412    #[doc = "        \"null\""]
4413    #[doc = "      ]"]
4414    #[doc = "    },"]
4415    #[doc = "    \"iteration_delay\": {"]
4416    #[doc = "      \"description\": \"How often to check if a new epoch has started.\\n Feel free to set to `None`, defaults are sensible.\","]
4417    #[doc = "      \"oneOf\": ["]
4418    #[doc = "        {"]
4419    #[doc = "          \"type\": \"null\""]
4420    #[doc = "        },"]
4421    #[doc = "        {"]
4422    #[doc = "          \"allOf\": ["]
4423    #[doc = "            {"]
4424    #[doc = "              \"$ref\": \"#/components/schemas/DurationAsStdSchemaProvider\""]
4425    #[doc = "            }"]
4426    #[doc = "          ]"]
4427    #[doc = "        }"]
4428    #[doc = "      ]"]
4429    #[doc = "    },"]
4430    #[doc = "    \"location\": {"]
4431    #[doc = "      \"description\": \"Specifies where to write the obtained state parts.\","]
4432    #[doc = "      \"allOf\": ["]
4433    #[doc = "        {"]
4434    #[doc = "          \"$ref\": \"#/components/schemas/ExternalStorageLocation\""]
4435    #[doc = "        }"]
4436    #[doc = "      ]"]
4437    #[doc = "    },"]
4438    #[doc = "    \"restart_dump_for_shards\": {"]
4439    #[doc = "      \"description\": \"Use in case a node that dumps state to the external storage\\n gets in trouble.\","]
4440    #[doc = "      \"type\": ["]
4441    #[doc = "        \"array\","]
4442    #[doc = "        \"null\""]
4443    #[doc = "      ],"]
4444    #[doc = "      \"items\": {"]
4445    #[doc = "        \"$ref\": \"#/components/schemas/ShardId\""]
4446    #[doc = "      }"]
4447    #[doc = "    }"]
4448    #[doc = "  }"]
4449    #[doc = "}"]
4450    #[doc = r" ```"]
4451    #[doc = r" </details>"]
4452    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4453    pub struct DumpConfig {
4454        #[doc = "Location of a json file with credentials allowing write access to the bucket."]
4455        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
4456        pub credentials_file: ::std::option::Option<::std::string::String>,
4457        #[doc = "How often to check if a new epoch has started.\n Feel free to set to `None`, defaults are sensible."]
4458        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
4459        pub iteration_delay: ::std::option::Option<DurationAsStdSchemaProvider>,
4460        #[doc = "Specifies where to write the obtained state parts."]
4461        pub location: ExternalStorageLocation,
4462        #[doc = "Use in case a node that dumps state to the external storage\n gets in trouble."]
4463        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
4464        pub restart_dump_for_shards: ::std::option::Option<::std::vec::Vec<ShardId>>,
4465    }
4466    impl ::std::convert::From<&DumpConfig> for DumpConfig {
4467        fn from(value: &DumpConfig) -> Self {
4468            value.clone()
4469        }
4470    }
4471    #[doc = "`DurationAsStdSchemaProvider`"]
4472    #[doc = r""]
4473    #[doc = r" <details><summary>JSON schema</summary>"]
4474    #[doc = r""]
4475    #[doc = r" ```json"]
4476    #[doc = "{"]
4477    #[doc = "  \"type\": \"object\","]
4478    #[doc = "  \"required\": ["]
4479    #[doc = "    \"nanos\","]
4480    #[doc = "    \"secs\""]
4481    #[doc = "  ],"]
4482    #[doc = "  \"properties\": {"]
4483    #[doc = "    \"nanos\": {"]
4484    #[doc = "      \"type\": \"integer\","]
4485    #[doc = "      \"format\": \"int32\""]
4486    #[doc = "    },"]
4487    #[doc = "    \"secs\": {"]
4488    #[doc = "      \"type\": \"integer\","]
4489    #[doc = "      \"format\": \"int64\""]
4490    #[doc = "    }"]
4491    #[doc = "  }"]
4492    #[doc = "}"]
4493    #[doc = r" ```"]
4494    #[doc = r" </details>"]
4495    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4496    pub struct DurationAsStdSchemaProvider {
4497        pub nanos: i32,
4498        pub secs: i64,
4499    }
4500    impl ::std::convert::From<&DurationAsStdSchemaProvider> for DurationAsStdSchemaProvider {
4501        fn from(value: &DurationAsStdSchemaProvider) -> Self {
4502            value.clone()
4503        }
4504    }
4505    #[doc = "Epoch identifier -- wrapped hash, to make it easier to distinguish.\n EpochId of epoch T is the hash of last block in T-2\n EpochId of first two epochs is 0"]
4506    #[doc = r""]
4507    #[doc = r" <details><summary>JSON schema</summary>"]
4508    #[doc = r""]
4509    #[doc = r" ```json"]
4510    #[doc = "{"]
4511    #[doc = "  \"description\": \"Epoch identifier -- wrapped hash, to make it easier to distinguish.\\n EpochId of epoch T is the hash of last block in T-2\\n EpochId of first two epochs is 0\","]
4512    #[doc = "  \"allOf\": ["]
4513    #[doc = "    {"]
4514    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
4515    #[doc = "    }"]
4516    #[doc = "  ]"]
4517    #[doc = "}"]
4518    #[doc = r" ```"]
4519    #[doc = r" </details>"]
4520    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4521    #[serde(transparent)]
4522    pub struct EpochId(pub CryptoHash);
4523    impl ::std::ops::Deref for EpochId {
4524        type Target = CryptoHash;
4525        fn deref(&self) -> &CryptoHash {
4526            &self.0
4527        }
4528    }
4529    impl ::std::convert::From<EpochId> for CryptoHash {
4530        fn from(value: EpochId) -> Self {
4531            value.0
4532        }
4533    }
4534    impl ::std::convert::From<&EpochId> for EpochId {
4535        fn from(value: &EpochId) -> Self {
4536            value.clone()
4537        }
4538    }
4539    impl ::std::convert::From<CryptoHash> for EpochId {
4540        fn from(value: CryptoHash) -> Self {
4541            Self(value)
4542        }
4543    }
4544    impl ::std::str::FromStr for EpochId {
4545        type Err = <CryptoHash as ::std::str::FromStr>::Err;
4546        fn from_str(value: &str) -> ::std::result::Result<Self, Self::Err> {
4547            Ok(Self(value.parse()?))
4548        }
4549    }
4550    impl ::std::convert::TryFrom<&str> for EpochId {
4551        type Error = <CryptoHash as ::std::str::FromStr>::Err;
4552        fn try_from(value: &str) -> ::std::result::Result<Self, Self::Error> {
4553            value.parse()
4554        }
4555    }
4556    impl ::std::convert::TryFrom<&String> for EpochId {
4557        type Error = <CryptoHash as ::std::str::FromStr>::Err;
4558        fn try_from(value: &String) -> ::std::result::Result<Self, Self::Error> {
4559            value.parse()
4560        }
4561    }
4562    impl ::std::convert::TryFrom<String> for EpochId {
4563        type Error = <CryptoHash as ::std::str::FromStr>::Err;
4564        fn try_from(value: String) -> ::std::result::Result<Self, Self::Error> {
4565            value.parse()
4566        }
4567    }
4568    impl ::std::fmt::Display for EpochId {
4569        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4570            self.0.fmt(f)
4571        }
4572    }
4573    #[doc = "`EpochSyncConfig`"]
4574    #[doc = r""]
4575    #[doc = r" <details><summary>JSON schema</summary>"]
4576    #[doc = r""]
4577    #[doc = r" ```json"]
4578    #[doc = "{"]
4579    #[doc = "  \"type\": \"object\","]
4580    #[doc = "  \"required\": ["]
4581    #[doc = "    \"epoch_sync_horizon\","]
4582    #[doc = "    \"timeout_for_epoch_sync\""]
4583    #[doc = "  ],"]
4584    #[doc = "  \"properties\": {"]
4585    #[doc = "    \"disable_epoch_sync_for_bootstrapping\": {"]
4586    #[doc = "      \"description\": \"If true, even if the node started from genesis, it will not perform epoch sync.\\n There should be no reason to set this flag in production, because on both mainnet\\n and testnet it would be infeasible to catch up from genesis without epoch sync.\","]
4587    #[doc = "      \"default\": false,"]
4588    #[doc = "      \"type\": \"boolean\""]
4589    #[doc = "    },"]
4590    #[doc = "    \"epoch_sync_horizon\": {"]
4591    #[doc = "      \"description\": \"This serves as two purposes: (1) the node will not epoch sync and instead resort to\\n header sync, if the genesis block is within this many blocks from the current block;\\n (2) the node will reject an epoch sync proof if the provided proof is for an epoch\\n that is more than this many blocks behind the current block.\","]
4592    #[doc = "      \"type\": \"integer\","]
4593    #[doc = "      \"format\": \"uint64\","]
4594    #[doc = "      \"minimum\": 0.0"]
4595    #[doc = "    },"]
4596    #[doc = "    \"ignore_epoch_sync_network_requests\": {"]
4597    #[doc = "      \"description\": \"If true, the node will ignore epoch sync requests from the network. It is strongly\\n recommended not to set this flag, because it will prevent other nodes from\\n bootstrapping. This flag is only included as a kill-switch and may be removed in a\\n future release. Please note that epoch sync requests are heavily rate limited and\\n cached, and therefore should not affect the performance of the node or introduce\\n any non-negligible increase in network traffic.\","]
4598    #[doc = "      \"default\": false,"]
4599    #[doc = "      \"type\": \"boolean\""]
4600    #[doc = "    },"]
4601    #[doc = "    \"timeout_for_epoch_sync\": {"]
4602    #[doc = "      \"description\": \"Timeout for epoch sync requests. The node will continue retrying indefinitely even\\n if this timeout is exceeded.\","]
4603    #[doc = "      \"allOf\": ["]
4604    #[doc = "        {"]
4605    #[doc = "          \"$ref\": \"#/components/schemas/DurationAsStdSchemaProvider\""]
4606    #[doc = "        }"]
4607    #[doc = "      ]"]
4608    #[doc = "    }"]
4609    #[doc = "  }"]
4610    #[doc = "}"]
4611    #[doc = r" ```"]
4612    #[doc = r" </details>"]
4613    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4614    pub struct EpochSyncConfig {
4615        #[doc = "If true, even if the node started from genesis, it will not perform epoch sync.\n There should be no reason to set this flag in production, because on both mainnet\n and testnet it would be infeasible to catch up from genesis without epoch sync."]
4616        #[serde(default)]
4617        pub disable_epoch_sync_for_bootstrapping: bool,
4618        #[doc = "This serves as two purposes: (1) the node will not epoch sync and instead resort to\n header sync, if the genesis block is within this many blocks from the current block;\n (2) the node will reject an epoch sync proof if the provided proof is for an epoch\n that is more than this many blocks behind the current block."]
4619        pub epoch_sync_horizon: u64,
4620        #[doc = "If true, the node will ignore epoch sync requests from the network. It is strongly\n recommended not to set this flag, because it will prevent other nodes from\n bootstrapping. This flag is only included as a kill-switch and may be removed in a\n future release. Please note that epoch sync requests are heavily rate limited and\n cached, and therefore should not affect the performance of the node or introduce\n any non-negligible increase in network traffic."]
4621        #[serde(default)]
4622        pub ignore_epoch_sync_network_requests: bool,
4623        #[doc = "Timeout for epoch sync requests. The node will continue retrying indefinitely even\n if this timeout is exceeded."]
4624        pub timeout_for_epoch_sync: DurationAsStdSchemaProvider,
4625    }
4626    impl ::std::convert::From<&EpochSyncConfig> for EpochSyncConfig {
4627        fn from(value: &EpochSyncConfig) -> Self {
4628            value.clone()
4629        }
4630    }
4631    #[doc = "`ExecutionMetadataView`"]
4632    #[doc = r""]
4633    #[doc = r" <details><summary>JSON schema</summary>"]
4634    #[doc = r""]
4635    #[doc = r" ```json"]
4636    #[doc = "{"]
4637    #[doc = "  \"type\": \"object\","]
4638    #[doc = "  \"required\": ["]
4639    #[doc = "    \"version\""]
4640    #[doc = "  ],"]
4641    #[doc = "  \"properties\": {"]
4642    #[doc = "    \"gas_profile\": {"]
4643    #[doc = "      \"type\": ["]
4644    #[doc = "        \"array\","]
4645    #[doc = "        \"null\""]
4646    #[doc = "      ],"]
4647    #[doc = "      \"items\": {"]
4648    #[doc = "        \"$ref\": \"#/components/schemas/CostGasUsed\""]
4649    #[doc = "      }"]
4650    #[doc = "    },"]
4651    #[doc = "    \"version\": {"]
4652    #[doc = "      \"type\": \"integer\","]
4653    #[doc = "      \"format\": \"uint32\","]
4654    #[doc = "      \"minimum\": 0.0"]
4655    #[doc = "    }"]
4656    #[doc = "  }"]
4657    #[doc = "}"]
4658    #[doc = r" ```"]
4659    #[doc = r" </details>"]
4660    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4661    pub struct ExecutionMetadataView {
4662        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
4663        pub gas_profile: ::std::option::Option<::std::vec::Vec<CostGasUsed>>,
4664        pub version: u32,
4665    }
4666    impl ::std::convert::From<&ExecutionMetadataView> for ExecutionMetadataView {
4667        fn from(value: &ExecutionMetadataView) -> Self {
4668            value.clone()
4669        }
4670    }
4671    #[doc = "`ExecutionOutcomeView`"]
4672    #[doc = r""]
4673    #[doc = r" <details><summary>JSON schema</summary>"]
4674    #[doc = r""]
4675    #[doc = r" ```json"]
4676    #[doc = "{"]
4677    #[doc = "  \"type\": \"object\","]
4678    #[doc = "  \"required\": ["]
4679    #[doc = "    \"executor_id\","]
4680    #[doc = "    \"gas_burnt\","]
4681    #[doc = "    \"logs\","]
4682    #[doc = "    \"receipt_ids\","]
4683    #[doc = "    \"status\","]
4684    #[doc = "    \"tokens_burnt\""]
4685    #[doc = "  ],"]
4686    #[doc = "  \"properties\": {"]
4687    #[doc = "    \"executor_id\": {"]
4688    #[doc = "      \"description\": \"The id of the account on which the execution happens. For transaction this is signer_id,\\n for receipt this is receiver_id.\","]
4689    #[doc = "      \"allOf\": ["]
4690    #[doc = "        {"]
4691    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
4692    #[doc = "        }"]
4693    #[doc = "      ]"]
4694    #[doc = "    },"]
4695    #[doc = "    \"gas_burnt\": {"]
4696    #[doc = "      \"description\": \"The amount of the gas burnt by the given transaction or receipt.\","]
4697    #[doc = "      \"type\": \"integer\","]
4698    #[doc = "      \"format\": \"uint64\","]
4699    #[doc = "      \"minimum\": 0.0"]
4700    #[doc = "    },"]
4701    #[doc = "    \"logs\": {"]
4702    #[doc = "      \"description\": \"Logs from this transaction or receipt.\","]
4703    #[doc = "      \"type\": \"array\","]
4704    #[doc = "      \"items\": {"]
4705    #[doc = "        \"type\": \"string\""]
4706    #[doc = "      }"]
4707    #[doc = "    },"]
4708    #[doc = "    \"metadata\": {"]
4709    #[doc = "      \"description\": \"Execution metadata, versioned\","]
4710    #[doc = "      \"default\": {"]
4711    #[doc = "        \"version\": 1"]
4712    #[doc = "      },"]
4713    #[doc = "      \"allOf\": ["]
4714    #[doc = "        {"]
4715    #[doc = "          \"$ref\": \"#/components/schemas/ExecutionMetadataView\""]
4716    #[doc = "        }"]
4717    #[doc = "      ]"]
4718    #[doc = "    },"]
4719    #[doc = "    \"receipt_ids\": {"]
4720    #[doc = "      \"description\": \"Receipt IDs generated by this transaction or receipt.\","]
4721    #[doc = "      \"type\": \"array\","]
4722    #[doc = "      \"items\": {"]
4723    #[doc = "        \"$ref\": \"#/components/schemas/CryptoHash\""]
4724    #[doc = "      }"]
4725    #[doc = "    },"]
4726    #[doc = "    \"status\": {"]
4727    #[doc = "      \"description\": \"Execution status. Contains the result in case of successful execution.\","]
4728    #[doc = "      \"allOf\": ["]
4729    #[doc = "        {"]
4730    #[doc = "          \"$ref\": \"#/components/schemas/ExecutionStatusView\""]
4731    #[doc = "        }"]
4732    #[doc = "      ]"]
4733    #[doc = "    },"]
4734    #[doc = "    \"tokens_burnt\": {"]
4735    #[doc = "      \"description\": \"The amount of tokens burnt corresponding to the burnt gas amount.\\n This value doesn't always equal to the `gas_burnt` multiplied by the gas price, because\\n the prepaid gas price might be lower than the actual gas price and it creates a deficit.\\n `tokens_burnt` also contains the penalty subtracted from refunds, while\\n `gas_burnt` only contains the gas that we actually burn for the execution.\","]
4736    #[doc = "      \"type\": \"string\""]
4737    #[doc = "    }"]
4738    #[doc = "  }"]
4739    #[doc = "}"]
4740    #[doc = r" ```"]
4741    #[doc = r" </details>"]
4742    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4743    pub struct ExecutionOutcomeView {
4744        #[doc = "The id of the account on which the execution happens. For transaction this is signer_id,\n for receipt this is receiver_id."]
4745        pub executor_id: AccountId,
4746        #[doc = "The amount of the gas burnt by the given transaction or receipt."]
4747        pub gas_burnt: u64,
4748        #[doc = "Logs from this transaction or receipt."]
4749        pub logs: ::std::vec::Vec<::std::string::String>,
4750        #[doc = "Execution metadata, versioned"]
4751        #[serde(default = "defaults::execution_outcome_view_metadata")]
4752        pub metadata: ExecutionMetadataView,
4753        #[doc = "Receipt IDs generated by this transaction or receipt."]
4754        pub receipt_ids: ::std::vec::Vec<CryptoHash>,
4755        #[doc = "Execution status. Contains the result in case of successful execution."]
4756        pub status: ExecutionStatusView,
4757        #[doc = "The amount of tokens burnt corresponding to the burnt gas amount.\n This value doesn't always equal to the `gas_burnt` multiplied by the gas price, because\n the prepaid gas price might be lower than the actual gas price and it creates a deficit.\n `tokens_burnt` also contains the penalty subtracted from refunds, while\n `gas_burnt` only contains the gas that we actually burn for the execution."]
4758        pub tokens_burnt: ::std::string::String,
4759    }
4760    impl ::std::convert::From<&ExecutionOutcomeView> for ExecutionOutcomeView {
4761        fn from(value: &ExecutionOutcomeView) -> Self {
4762            value.clone()
4763        }
4764    }
4765    #[doc = "`ExecutionOutcomeWithIdView`"]
4766    #[doc = r""]
4767    #[doc = r" <details><summary>JSON schema</summary>"]
4768    #[doc = r""]
4769    #[doc = r" ```json"]
4770    #[doc = "{"]
4771    #[doc = "  \"type\": \"object\","]
4772    #[doc = "  \"required\": ["]
4773    #[doc = "    \"block_hash\","]
4774    #[doc = "    \"id\","]
4775    #[doc = "    \"outcome\","]
4776    #[doc = "    \"proof\""]
4777    #[doc = "  ],"]
4778    #[doc = "  \"properties\": {"]
4779    #[doc = "    \"block_hash\": {"]
4780    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
4781    #[doc = "    },"]
4782    #[doc = "    \"id\": {"]
4783    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
4784    #[doc = "    },"]
4785    #[doc = "    \"outcome\": {"]
4786    #[doc = "      \"$ref\": \"#/components/schemas/ExecutionOutcomeView\""]
4787    #[doc = "    },"]
4788    #[doc = "    \"proof\": {"]
4789    #[doc = "      \"type\": \"array\","]
4790    #[doc = "      \"items\": {"]
4791    #[doc = "        \"$ref\": \"#/components/schemas/MerklePathItem\""]
4792    #[doc = "      }"]
4793    #[doc = "    }"]
4794    #[doc = "  }"]
4795    #[doc = "}"]
4796    #[doc = r" ```"]
4797    #[doc = r" </details>"]
4798    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4799    pub struct ExecutionOutcomeWithIdView {
4800        pub block_hash: CryptoHash,
4801        pub id: CryptoHash,
4802        pub outcome: ExecutionOutcomeView,
4803        pub proof: ::std::vec::Vec<MerklePathItem>,
4804    }
4805    impl ::std::convert::From<&ExecutionOutcomeWithIdView> for ExecutionOutcomeWithIdView {
4806        fn from(value: &ExecutionOutcomeWithIdView) -> Self {
4807            value.clone()
4808        }
4809    }
4810    #[doc = "`ExecutionStatusView`"]
4811    #[doc = r""]
4812    #[doc = r" <details><summary>JSON schema</summary>"]
4813    #[doc = r""]
4814    #[doc = r" ```json"]
4815    #[doc = "{"]
4816    #[doc = "  \"oneOf\": ["]
4817    #[doc = "    {"]
4818    #[doc = "      \"description\": \"The execution is pending or unknown.\","]
4819    #[doc = "      \"type\": \"string\","]
4820    #[doc = "      \"enum\": ["]
4821    #[doc = "        \"Unknown\""]
4822    #[doc = "      ]"]
4823    #[doc = "    },"]
4824    #[doc = "    {"]
4825    #[doc = "      \"description\": \"The execution has failed.\","]
4826    #[doc = "      \"type\": \"object\","]
4827    #[doc = "      \"required\": ["]
4828    #[doc = "        \"Failure\""]
4829    #[doc = "      ],"]
4830    #[doc = "      \"properties\": {"]
4831    #[doc = "        \"Failure\": {"]
4832    #[doc = "          \"$ref\": \"#/components/schemas/TxExecutionError\""]
4833    #[doc = "        }"]
4834    #[doc = "      },"]
4835    #[doc = "      \"additionalProperties\": false"]
4836    #[doc = "    },"]
4837    #[doc = "    {"]
4838    #[doc = "      \"description\": \"The final action succeeded and returned some value or an empty vec encoded in base64.\","]
4839    #[doc = "      \"type\": \"object\","]
4840    #[doc = "      \"required\": ["]
4841    #[doc = "        \"SuccessValue\""]
4842    #[doc = "      ],"]
4843    #[doc = "      \"properties\": {"]
4844    #[doc = "        \"SuccessValue\": {"]
4845    #[doc = "          \"type\": \"string\""]
4846    #[doc = "        }"]
4847    #[doc = "      },"]
4848    #[doc = "      \"additionalProperties\": false"]
4849    #[doc = "    },"]
4850    #[doc = "    {"]
4851    #[doc = "      \"description\": \"The final action of the receipt returned a promise or the signed transaction was converted\\n to a receipt. Contains the receipt_id of the generated receipt.\","]
4852    #[doc = "      \"type\": \"object\","]
4853    #[doc = "      \"required\": ["]
4854    #[doc = "        \"SuccessReceiptId\""]
4855    #[doc = "      ],"]
4856    #[doc = "      \"properties\": {"]
4857    #[doc = "        \"SuccessReceiptId\": {"]
4858    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
4859    #[doc = "        }"]
4860    #[doc = "      },"]
4861    #[doc = "      \"additionalProperties\": false"]
4862    #[doc = "    }"]
4863    #[doc = "  ]"]
4864    #[doc = "}"]
4865    #[doc = r" ```"]
4866    #[doc = r" </details>"]
4867    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4868    pub enum ExecutionStatusView {
4869        #[doc = "The execution is pending or unknown."]
4870        Unknown,
4871        #[doc = "The execution has failed."]
4872        Failure(TxExecutionError),
4873        #[doc = "The final action succeeded and returned some value or an empty vec encoded in base64."]
4874        SuccessValue(::std::string::String),
4875        #[doc = "The final action of the receipt returned a promise or the signed transaction was converted\n to a receipt. Contains the receipt_id of the generated receipt."]
4876        SuccessReceiptId(CryptoHash),
4877    }
4878    impl ::std::convert::From<&Self> for ExecutionStatusView {
4879        fn from(value: &ExecutionStatusView) -> Self {
4880            value.clone()
4881        }
4882    }
4883    impl ::std::convert::From<TxExecutionError> for ExecutionStatusView {
4884        fn from(value: TxExecutionError) -> Self {
4885            Self::Failure(value)
4886        }
4887    }
4888    impl ::std::convert::From<CryptoHash> for ExecutionStatusView {
4889        fn from(value: CryptoHash) -> Self {
4890            Self::SuccessReceiptId(value)
4891        }
4892    }
4893    #[doc = "Typed view of ExtCostsConfig to preserve JSON output field names in protocol\n config RPC output."]
4894    #[doc = r""]
4895    #[doc = r" <details><summary>JSON schema</summary>"]
4896    #[doc = r""]
4897    #[doc = r" ```json"]
4898    #[doc = "{"]
4899    #[doc = "  \"description\": \"Typed view of ExtCostsConfig to preserve JSON output field names in protocol\\n config RPC output.\","]
4900    #[doc = "  \"type\": \"object\","]
4901    #[doc = "  \"required\": ["]
4902    #[doc = "    \"alt_bn128_g1_multiexp_base\","]
4903    #[doc = "    \"alt_bn128_g1_multiexp_element\","]
4904    #[doc = "    \"alt_bn128_g1_sum_base\","]
4905    #[doc = "    \"alt_bn128_g1_sum_element\","]
4906    #[doc = "    \"alt_bn128_pairing_check_base\","]
4907    #[doc = "    \"alt_bn128_pairing_check_element\","]
4908    #[doc = "    \"base\","]
4909    #[doc = "    \"bls12381_g1_multiexp_base\","]
4910    #[doc = "    \"bls12381_g1_multiexp_element\","]
4911    #[doc = "    \"bls12381_g2_multiexp_base\","]
4912    #[doc = "    \"bls12381_g2_multiexp_element\","]
4913    #[doc = "    \"bls12381_map_fp2_to_g2_base\","]
4914    #[doc = "    \"bls12381_map_fp2_to_g2_element\","]
4915    #[doc = "    \"bls12381_map_fp_to_g1_base\","]
4916    #[doc = "    \"bls12381_map_fp_to_g1_element\","]
4917    #[doc = "    \"bls12381_p1_decompress_base\","]
4918    #[doc = "    \"bls12381_p1_decompress_element\","]
4919    #[doc = "    \"bls12381_p1_sum_base\","]
4920    #[doc = "    \"bls12381_p1_sum_element\","]
4921    #[doc = "    \"bls12381_p2_decompress_base\","]
4922    #[doc = "    \"bls12381_p2_decompress_element\","]
4923    #[doc = "    \"bls12381_p2_sum_base\","]
4924    #[doc = "    \"bls12381_p2_sum_element\","]
4925    #[doc = "    \"bls12381_pairing_base\","]
4926    #[doc = "    \"bls12381_pairing_element\","]
4927    #[doc = "    \"contract_compile_base\","]
4928    #[doc = "    \"contract_compile_bytes\","]
4929    #[doc = "    \"contract_loading_base\","]
4930    #[doc = "    \"contract_loading_bytes\","]
4931    #[doc = "    \"ecrecover_base\","]
4932    #[doc = "    \"ed25519_verify_base\","]
4933    #[doc = "    \"ed25519_verify_byte\","]
4934    #[doc = "    \"keccak256_base\","]
4935    #[doc = "    \"keccak256_byte\","]
4936    #[doc = "    \"keccak512_base\","]
4937    #[doc = "    \"keccak512_byte\","]
4938    #[doc = "    \"log_base\","]
4939    #[doc = "    \"log_byte\","]
4940    #[doc = "    \"promise_and_base\","]
4941    #[doc = "    \"promise_and_per_promise\","]
4942    #[doc = "    \"promise_return\","]
4943    #[doc = "    \"read_cached_trie_node\","]
4944    #[doc = "    \"read_memory_base\","]
4945    #[doc = "    \"read_memory_byte\","]
4946    #[doc = "    \"read_register_base\","]
4947    #[doc = "    \"read_register_byte\","]
4948    #[doc = "    \"ripemd160_base\","]
4949    #[doc = "    \"ripemd160_block\","]
4950    #[doc = "    \"sha256_base\","]
4951    #[doc = "    \"sha256_byte\","]
4952    #[doc = "    \"storage_has_key_base\","]
4953    #[doc = "    \"storage_has_key_byte\","]
4954    #[doc = "    \"storage_iter_create_from_byte\","]
4955    #[doc = "    \"storage_iter_create_prefix_base\","]
4956    #[doc = "    \"storage_iter_create_prefix_byte\","]
4957    #[doc = "    \"storage_iter_create_range_base\","]
4958    #[doc = "    \"storage_iter_create_to_byte\","]
4959    #[doc = "    \"storage_iter_next_base\","]
4960    #[doc = "    \"storage_iter_next_key_byte\","]
4961    #[doc = "    \"storage_iter_next_value_byte\","]
4962    #[doc = "    \"storage_large_read_overhead_base\","]
4963    #[doc = "    \"storage_large_read_overhead_byte\","]
4964    #[doc = "    \"storage_read_base\","]
4965    #[doc = "    \"storage_read_key_byte\","]
4966    #[doc = "    \"storage_read_value_byte\","]
4967    #[doc = "    \"storage_remove_base\","]
4968    #[doc = "    \"storage_remove_key_byte\","]
4969    #[doc = "    \"storage_remove_ret_value_byte\","]
4970    #[doc = "    \"storage_write_base\","]
4971    #[doc = "    \"storage_write_evicted_byte\","]
4972    #[doc = "    \"storage_write_key_byte\","]
4973    #[doc = "    \"storage_write_value_byte\","]
4974    #[doc = "    \"touching_trie_node\","]
4975    #[doc = "    \"utf16_decoding_base\","]
4976    #[doc = "    \"utf16_decoding_byte\","]
4977    #[doc = "    \"utf8_decoding_base\","]
4978    #[doc = "    \"utf8_decoding_byte\","]
4979    #[doc = "    \"validator_stake_base\","]
4980    #[doc = "    \"validator_total_stake_base\","]
4981    #[doc = "    \"write_memory_base\","]
4982    #[doc = "    \"write_memory_byte\","]
4983    #[doc = "    \"write_register_base\","]
4984    #[doc = "    \"write_register_byte\","]
4985    #[doc = "    \"yield_create_base\","]
4986    #[doc = "    \"yield_create_byte\","]
4987    #[doc = "    \"yield_resume_base\","]
4988    #[doc = "    \"yield_resume_byte\""]
4989    #[doc = "  ],"]
4990    #[doc = "  \"properties\": {"]
4991    #[doc = "    \"alt_bn128_g1_multiexp_base\": {"]
4992    #[doc = "      \"description\": \"Base cost for multiexp\","]
4993    #[doc = "      \"type\": \"integer\","]
4994    #[doc = "      \"format\": \"uint64\","]
4995    #[doc = "      \"minimum\": 0.0"]
4996    #[doc = "    },"]
4997    #[doc = "    \"alt_bn128_g1_multiexp_element\": {"]
4998    #[doc = "      \"description\": \"Per element cost for multiexp\","]
4999    #[doc = "      \"type\": \"integer\","]
5000    #[doc = "      \"format\": \"uint64\","]
5001    #[doc = "      \"minimum\": 0.0"]
5002    #[doc = "    },"]
5003    #[doc = "    \"alt_bn128_g1_sum_base\": {"]
5004    #[doc = "      \"description\": \"Base cost for sum\","]
5005    #[doc = "      \"type\": \"integer\","]
5006    #[doc = "      \"format\": \"uint64\","]
5007    #[doc = "      \"minimum\": 0.0"]
5008    #[doc = "    },"]
5009    #[doc = "    \"alt_bn128_g1_sum_element\": {"]
5010    #[doc = "      \"description\": \"Per element cost for sum\","]
5011    #[doc = "      \"type\": \"integer\","]
5012    #[doc = "      \"format\": \"uint64\","]
5013    #[doc = "      \"minimum\": 0.0"]
5014    #[doc = "    },"]
5015    #[doc = "    \"alt_bn128_pairing_check_base\": {"]
5016    #[doc = "      \"description\": \"Base cost for pairing check\","]
5017    #[doc = "      \"type\": \"integer\","]
5018    #[doc = "      \"format\": \"uint64\","]
5019    #[doc = "      \"minimum\": 0.0"]
5020    #[doc = "    },"]
5021    #[doc = "    \"alt_bn128_pairing_check_element\": {"]
5022    #[doc = "      \"description\": \"Per element cost for pairing check\","]
5023    #[doc = "      \"type\": \"integer\","]
5024    #[doc = "      \"format\": \"uint64\","]
5025    #[doc = "      \"minimum\": 0.0"]
5026    #[doc = "    },"]
5027    #[doc = "    \"base\": {"]
5028    #[doc = "      \"description\": \"Base cost for calling a host function.\","]
5029    #[doc = "      \"type\": \"integer\","]
5030    #[doc = "      \"format\": \"uint64\","]
5031    #[doc = "      \"minimum\": 0.0"]
5032    #[doc = "    },"]
5033    #[doc = "    \"bls12381_g1_multiexp_base\": {"]
5034    #[doc = "      \"type\": \"integer\","]
5035    #[doc = "      \"format\": \"uint64\","]
5036    #[doc = "      \"minimum\": 0.0"]
5037    #[doc = "    },"]
5038    #[doc = "    \"bls12381_g1_multiexp_element\": {"]
5039    #[doc = "      \"type\": \"integer\","]
5040    #[doc = "      \"format\": \"uint64\","]
5041    #[doc = "      \"minimum\": 0.0"]
5042    #[doc = "    },"]
5043    #[doc = "    \"bls12381_g2_multiexp_base\": {"]
5044    #[doc = "      \"type\": \"integer\","]
5045    #[doc = "      \"format\": \"uint64\","]
5046    #[doc = "      \"minimum\": 0.0"]
5047    #[doc = "    },"]
5048    #[doc = "    \"bls12381_g2_multiexp_element\": {"]
5049    #[doc = "      \"type\": \"integer\","]
5050    #[doc = "      \"format\": \"uint64\","]
5051    #[doc = "      \"minimum\": 0.0"]
5052    #[doc = "    },"]
5053    #[doc = "    \"bls12381_map_fp2_to_g2_base\": {"]
5054    #[doc = "      \"type\": \"integer\","]
5055    #[doc = "      \"format\": \"uint64\","]
5056    #[doc = "      \"minimum\": 0.0"]
5057    #[doc = "    },"]
5058    #[doc = "    \"bls12381_map_fp2_to_g2_element\": {"]
5059    #[doc = "      \"type\": \"integer\","]
5060    #[doc = "      \"format\": \"uint64\","]
5061    #[doc = "      \"minimum\": 0.0"]
5062    #[doc = "    },"]
5063    #[doc = "    \"bls12381_map_fp_to_g1_base\": {"]
5064    #[doc = "      \"type\": \"integer\","]
5065    #[doc = "      \"format\": \"uint64\","]
5066    #[doc = "      \"minimum\": 0.0"]
5067    #[doc = "    },"]
5068    #[doc = "    \"bls12381_map_fp_to_g1_element\": {"]
5069    #[doc = "      \"type\": \"integer\","]
5070    #[doc = "      \"format\": \"uint64\","]
5071    #[doc = "      \"minimum\": 0.0"]
5072    #[doc = "    },"]
5073    #[doc = "    \"bls12381_p1_decompress_base\": {"]
5074    #[doc = "      \"type\": \"integer\","]
5075    #[doc = "      \"format\": \"uint64\","]
5076    #[doc = "      \"minimum\": 0.0"]
5077    #[doc = "    },"]
5078    #[doc = "    \"bls12381_p1_decompress_element\": {"]
5079    #[doc = "      \"type\": \"integer\","]
5080    #[doc = "      \"format\": \"uint64\","]
5081    #[doc = "      \"minimum\": 0.0"]
5082    #[doc = "    },"]
5083    #[doc = "    \"bls12381_p1_sum_base\": {"]
5084    #[doc = "      \"type\": \"integer\","]
5085    #[doc = "      \"format\": \"uint64\","]
5086    #[doc = "      \"minimum\": 0.0"]
5087    #[doc = "    },"]
5088    #[doc = "    \"bls12381_p1_sum_element\": {"]
5089    #[doc = "      \"type\": \"integer\","]
5090    #[doc = "      \"format\": \"uint64\","]
5091    #[doc = "      \"minimum\": 0.0"]
5092    #[doc = "    },"]
5093    #[doc = "    \"bls12381_p2_decompress_base\": {"]
5094    #[doc = "      \"type\": \"integer\","]
5095    #[doc = "      \"format\": \"uint64\","]
5096    #[doc = "      \"minimum\": 0.0"]
5097    #[doc = "    },"]
5098    #[doc = "    \"bls12381_p2_decompress_element\": {"]
5099    #[doc = "      \"type\": \"integer\","]
5100    #[doc = "      \"format\": \"uint64\","]
5101    #[doc = "      \"minimum\": 0.0"]
5102    #[doc = "    },"]
5103    #[doc = "    \"bls12381_p2_sum_base\": {"]
5104    #[doc = "      \"type\": \"integer\","]
5105    #[doc = "      \"format\": \"uint64\","]
5106    #[doc = "      \"minimum\": 0.0"]
5107    #[doc = "    },"]
5108    #[doc = "    \"bls12381_p2_sum_element\": {"]
5109    #[doc = "      \"type\": \"integer\","]
5110    #[doc = "      \"format\": \"uint64\","]
5111    #[doc = "      \"minimum\": 0.0"]
5112    #[doc = "    },"]
5113    #[doc = "    \"bls12381_pairing_base\": {"]
5114    #[doc = "      \"type\": \"integer\","]
5115    #[doc = "      \"format\": \"uint64\","]
5116    #[doc = "      \"minimum\": 0.0"]
5117    #[doc = "    },"]
5118    #[doc = "    \"bls12381_pairing_element\": {"]
5119    #[doc = "      \"type\": \"integer\","]
5120    #[doc = "      \"format\": \"uint64\","]
5121    #[doc = "      \"minimum\": 0.0"]
5122    #[doc = "    },"]
5123    #[doc = "    \"contract_compile_base\": {"]
5124    #[doc = "      \"type\": \"integer\","]
5125    #[doc = "      \"format\": \"uint64\","]
5126    #[doc = "      \"minimum\": 0.0"]
5127    #[doc = "    },"]
5128    #[doc = "    \"contract_compile_bytes\": {"]
5129    #[doc = "      \"type\": \"integer\","]
5130    #[doc = "      \"format\": \"uint64\","]
5131    #[doc = "      \"minimum\": 0.0"]
5132    #[doc = "    },"]
5133    #[doc = "    \"contract_loading_base\": {"]
5134    #[doc = "      \"description\": \"Base cost of loading a pre-compiled contract\","]
5135    #[doc = "      \"type\": \"integer\","]
5136    #[doc = "      \"format\": \"uint64\","]
5137    #[doc = "      \"minimum\": 0.0"]
5138    #[doc = "    },"]
5139    #[doc = "    \"contract_loading_bytes\": {"]
5140    #[doc = "      \"description\": \"Cost per byte of loading a pre-compiled contract\","]
5141    #[doc = "      \"type\": \"integer\","]
5142    #[doc = "      \"format\": \"uint64\","]
5143    #[doc = "      \"minimum\": 0.0"]
5144    #[doc = "    },"]
5145    #[doc = "    \"ecrecover_base\": {"]
5146    #[doc = "      \"description\": \"Cost of calling ecrecover\","]
5147    #[doc = "      \"type\": \"integer\","]
5148    #[doc = "      \"format\": \"uint64\","]
5149    #[doc = "      \"minimum\": 0.0"]
5150    #[doc = "    },"]
5151    #[doc = "    \"ed25519_verify_base\": {"]
5152    #[doc = "      \"description\": \"Cost of getting ed25519 base\","]
5153    #[doc = "      \"type\": \"integer\","]
5154    #[doc = "      \"format\": \"uint64\","]
5155    #[doc = "      \"minimum\": 0.0"]
5156    #[doc = "    },"]
5157    #[doc = "    \"ed25519_verify_byte\": {"]
5158    #[doc = "      \"description\": \"Cost of getting ed25519 per byte\","]
5159    #[doc = "      \"type\": \"integer\","]
5160    #[doc = "      \"format\": \"uint64\","]
5161    #[doc = "      \"minimum\": 0.0"]
5162    #[doc = "    },"]
5163    #[doc = "    \"keccak256_base\": {"]
5164    #[doc = "      \"description\": \"Cost of getting sha256 base\","]
5165    #[doc = "      \"type\": \"integer\","]
5166    #[doc = "      \"format\": \"uint64\","]
5167    #[doc = "      \"minimum\": 0.0"]
5168    #[doc = "    },"]
5169    #[doc = "    \"keccak256_byte\": {"]
5170    #[doc = "      \"description\": \"Cost of getting sha256 per byte\","]
5171    #[doc = "      \"type\": \"integer\","]
5172    #[doc = "      \"format\": \"uint64\","]
5173    #[doc = "      \"minimum\": 0.0"]
5174    #[doc = "    },"]
5175    #[doc = "    \"keccak512_base\": {"]
5176    #[doc = "      \"description\": \"Cost of getting sha256 base\","]
5177    #[doc = "      \"type\": \"integer\","]
5178    #[doc = "      \"format\": \"uint64\","]
5179    #[doc = "      \"minimum\": 0.0"]
5180    #[doc = "    },"]
5181    #[doc = "    \"keccak512_byte\": {"]
5182    #[doc = "      \"description\": \"Cost of getting sha256 per byte\","]
5183    #[doc = "      \"type\": \"integer\","]
5184    #[doc = "      \"format\": \"uint64\","]
5185    #[doc = "      \"minimum\": 0.0"]
5186    #[doc = "    },"]
5187    #[doc = "    \"log_base\": {"]
5188    #[doc = "      \"description\": \"Cost for calling logging.\","]
5189    #[doc = "      \"type\": \"integer\","]
5190    #[doc = "      \"format\": \"uint64\","]
5191    #[doc = "      \"minimum\": 0.0"]
5192    #[doc = "    },"]
5193    #[doc = "    \"log_byte\": {"]
5194    #[doc = "      \"description\": \"Cost for logging per byte\","]
5195    #[doc = "      \"type\": \"integer\","]
5196    #[doc = "      \"format\": \"uint64\","]
5197    #[doc = "      \"minimum\": 0.0"]
5198    #[doc = "    },"]
5199    #[doc = "    \"promise_and_base\": {"]
5200    #[doc = "      \"description\": \"Cost for calling `promise_and`\","]
5201    #[doc = "      \"type\": \"integer\","]
5202    #[doc = "      \"format\": \"uint64\","]
5203    #[doc = "      \"minimum\": 0.0"]
5204    #[doc = "    },"]
5205    #[doc = "    \"promise_and_per_promise\": {"]
5206    #[doc = "      \"description\": \"Cost for calling `promise_and` for each promise\","]
5207    #[doc = "      \"type\": \"integer\","]
5208    #[doc = "      \"format\": \"uint64\","]
5209    #[doc = "      \"minimum\": 0.0"]
5210    #[doc = "    },"]
5211    #[doc = "    \"promise_return\": {"]
5212    #[doc = "      \"description\": \"Cost for calling `promise_return`\","]
5213    #[doc = "      \"type\": \"integer\","]
5214    #[doc = "      \"format\": \"uint64\","]
5215    #[doc = "      \"minimum\": 0.0"]
5216    #[doc = "    },"]
5217    #[doc = "    \"read_cached_trie_node\": {"]
5218    #[doc = "      \"description\": \"Cost for reading trie node from memory\","]
5219    #[doc = "      \"type\": \"integer\","]
5220    #[doc = "      \"format\": \"uint64\","]
5221    #[doc = "      \"minimum\": 0.0"]
5222    #[doc = "    },"]
5223    #[doc = "    \"read_memory_base\": {"]
5224    #[doc = "      \"description\": \"Base cost for guest memory read\","]
5225    #[doc = "      \"type\": \"integer\","]
5226    #[doc = "      \"format\": \"uint64\","]
5227    #[doc = "      \"minimum\": 0.0"]
5228    #[doc = "    },"]
5229    #[doc = "    \"read_memory_byte\": {"]
5230    #[doc = "      \"description\": \"Cost for guest memory read\","]
5231    #[doc = "      \"type\": \"integer\","]
5232    #[doc = "      \"format\": \"uint64\","]
5233    #[doc = "      \"minimum\": 0.0"]
5234    #[doc = "    },"]
5235    #[doc = "    \"read_register_base\": {"]
5236    #[doc = "      \"description\": \"Base cost for reading from register\","]
5237    #[doc = "      \"type\": \"integer\","]
5238    #[doc = "      \"format\": \"uint64\","]
5239    #[doc = "      \"minimum\": 0.0"]
5240    #[doc = "    },"]
5241    #[doc = "    \"read_register_byte\": {"]
5242    #[doc = "      \"description\": \"Cost for reading byte from register\","]
5243    #[doc = "      \"type\": \"integer\","]
5244    #[doc = "      \"format\": \"uint64\","]
5245    #[doc = "      \"minimum\": 0.0"]
5246    #[doc = "    },"]
5247    #[doc = "    \"ripemd160_base\": {"]
5248    #[doc = "      \"description\": \"Cost of getting ripemd160 base\","]
5249    #[doc = "      \"type\": \"integer\","]
5250    #[doc = "      \"format\": \"uint64\","]
5251    #[doc = "      \"minimum\": 0.0"]
5252    #[doc = "    },"]
5253    #[doc = "    \"ripemd160_block\": {"]
5254    #[doc = "      \"description\": \"Cost of getting ripemd160 per message block\","]
5255    #[doc = "      \"type\": \"integer\","]
5256    #[doc = "      \"format\": \"uint64\","]
5257    #[doc = "      \"minimum\": 0.0"]
5258    #[doc = "    },"]
5259    #[doc = "    \"sha256_base\": {"]
5260    #[doc = "      \"description\": \"Cost of getting sha256 base\","]
5261    #[doc = "      \"type\": \"integer\","]
5262    #[doc = "      \"format\": \"uint64\","]
5263    #[doc = "      \"minimum\": 0.0"]
5264    #[doc = "    },"]
5265    #[doc = "    \"sha256_byte\": {"]
5266    #[doc = "      \"description\": \"Cost of getting sha256 per byte\","]
5267    #[doc = "      \"type\": \"integer\","]
5268    #[doc = "      \"format\": \"uint64\","]
5269    #[doc = "      \"minimum\": 0.0"]
5270    #[doc = "    },"]
5271    #[doc = "    \"storage_has_key_base\": {"]
5272    #[doc = "      \"description\": \"Storage trie check for key existence cost base\","]
5273    #[doc = "      \"type\": \"integer\","]
5274    #[doc = "      \"format\": \"uint64\","]
5275    #[doc = "      \"minimum\": 0.0"]
5276    #[doc = "    },"]
5277    #[doc = "    \"storage_has_key_byte\": {"]
5278    #[doc = "      \"description\": \"Storage trie check for key existence per key byte\","]
5279    #[doc = "      \"type\": \"integer\","]
5280    #[doc = "      \"format\": \"uint64\","]
5281    #[doc = "      \"minimum\": 0.0"]
5282    #[doc = "    },"]
5283    #[doc = "    \"storage_iter_create_from_byte\": {"]
5284    #[doc = "      \"description\": \"Create trie range iterator cost per byte of from key.\","]
5285    #[doc = "      \"type\": \"integer\","]
5286    #[doc = "      \"format\": \"uint64\","]
5287    #[doc = "      \"minimum\": 0.0"]
5288    #[doc = "    },"]
5289    #[doc = "    \"storage_iter_create_prefix_base\": {"]
5290    #[doc = "      \"description\": \"Create trie prefix iterator cost base\","]
5291    #[doc = "      \"type\": \"integer\","]
5292    #[doc = "      \"format\": \"uint64\","]
5293    #[doc = "      \"minimum\": 0.0"]
5294    #[doc = "    },"]
5295    #[doc = "    \"storage_iter_create_prefix_byte\": {"]
5296    #[doc = "      \"description\": \"Create trie prefix iterator cost per byte.\","]
5297    #[doc = "      \"type\": \"integer\","]
5298    #[doc = "      \"format\": \"uint64\","]
5299    #[doc = "      \"minimum\": 0.0"]
5300    #[doc = "    },"]
5301    #[doc = "    \"storage_iter_create_range_base\": {"]
5302    #[doc = "      \"description\": \"Create trie range iterator cost base\","]
5303    #[doc = "      \"type\": \"integer\","]
5304    #[doc = "      \"format\": \"uint64\","]
5305    #[doc = "      \"minimum\": 0.0"]
5306    #[doc = "    },"]
5307    #[doc = "    \"storage_iter_create_to_byte\": {"]
5308    #[doc = "      \"description\": \"Create trie range iterator cost per byte of to key.\","]
5309    #[doc = "      \"type\": \"integer\","]
5310    #[doc = "      \"format\": \"uint64\","]
5311    #[doc = "      \"minimum\": 0.0"]
5312    #[doc = "    },"]
5313    #[doc = "    \"storage_iter_next_base\": {"]
5314    #[doc = "      \"description\": \"Trie iterator per key base cost\","]
5315    #[doc = "      \"type\": \"integer\","]
5316    #[doc = "      \"format\": \"uint64\","]
5317    #[doc = "      \"minimum\": 0.0"]
5318    #[doc = "    },"]
5319    #[doc = "    \"storage_iter_next_key_byte\": {"]
5320    #[doc = "      \"description\": \"Trie iterator next key byte cost\","]
5321    #[doc = "      \"type\": \"integer\","]
5322    #[doc = "      \"format\": \"uint64\","]
5323    #[doc = "      \"minimum\": 0.0"]
5324    #[doc = "    },"]
5325    #[doc = "    \"storage_iter_next_value_byte\": {"]
5326    #[doc = "      \"description\": \"Trie iterator next key byte cost\","]
5327    #[doc = "      \"type\": \"integer\","]
5328    #[doc = "      \"format\": \"uint64\","]
5329    #[doc = "      \"minimum\": 0.0"]
5330    #[doc = "    },"]
5331    #[doc = "    \"storage_large_read_overhead_base\": {"]
5332    #[doc = "      \"description\": \"Storage trie read key overhead base cost, when doing large reads\","]
5333    #[doc = "      \"type\": \"integer\","]
5334    #[doc = "      \"format\": \"uint64\","]
5335    #[doc = "      \"minimum\": 0.0"]
5336    #[doc = "    },"]
5337    #[doc = "    \"storage_large_read_overhead_byte\": {"]
5338    #[doc = "      \"description\": \"Storage trie read key overhead  per-byte cost, when doing large reads\","]
5339    #[doc = "      \"type\": \"integer\","]
5340    #[doc = "      \"format\": \"uint64\","]
5341    #[doc = "      \"minimum\": 0.0"]
5342    #[doc = "    },"]
5343    #[doc = "    \"storage_read_base\": {"]
5344    #[doc = "      \"description\": \"Storage trie read key base cost\","]
5345    #[doc = "      \"type\": \"integer\","]
5346    #[doc = "      \"format\": \"uint64\","]
5347    #[doc = "      \"minimum\": 0.0"]
5348    #[doc = "    },"]
5349    #[doc = "    \"storage_read_key_byte\": {"]
5350    #[doc = "      \"description\": \"Storage trie read key per byte cost\","]
5351    #[doc = "      \"type\": \"integer\","]
5352    #[doc = "      \"format\": \"uint64\","]
5353    #[doc = "      \"minimum\": 0.0"]
5354    #[doc = "    },"]
5355    #[doc = "    \"storage_read_value_byte\": {"]
5356    #[doc = "      \"description\": \"Storage trie read value cost per byte cost\","]
5357    #[doc = "      \"type\": \"integer\","]
5358    #[doc = "      \"format\": \"uint64\","]
5359    #[doc = "      \"minimum\": 0.0"]
5360    #[doc = "    },"]
5361    #[doc = "    \"storage_remove_base\": {"]
5362    #[doc = "      \"description\": \"Remove key from trie base cost\","]
5363    #[doc = "      \"type\": \"integer\","]
5364    #[doc = "      \"format\": \"uint64\","]
5365    #[doc = "      \"minimum\": 0.0"]
5366    #[doc = "    },"]
5367    #[doc = "    \"storage_remove_key_byte\": {"]
5368    #[doc = "      \"description\": \"Remove key from trie per byte cost\","]
5369    #[doc = "      \"type\": \"integer\","]
5370    #[doc = "      \"format\": \"uint64\","]
5371    #[doc = "      \"minimum\": 0.0"]
5372    #[doc = "    },"]
5373    #[doc = "    \"storage_remove_ret_value_byte\": {"]
5374    #[doc = "      \"description\": \"Remove key from trie ret value byte cost\","]
5375    #[doc = "      \"type\": \"integer\","]
5376    #[doc = "      \"format\": \"uint64\","]
5377    #[doc = "      \"minimum\": 0.0"]
5378    #[doc = "    },"]
5379    #[doc = "    \"storage_write_base\": {"]
5380    #[doc = "      \"description\": \"Storage trie write key base cost\","]
5381    #[doc = "      \"type\": \"integer\","]
5382    #[doc = "      \"format\": \"uint64\","]
5383    #[doc = "      \"minimum\": 0.0"]
5384    #[doc = "    },"]
5385    #[doc = "    \"storage_write_evicted_byte\": {"]
5386    #[doc = "      \"description\": \"Storage trie write cost per byte of evicted value.\","]
5387    #[doc = "      \"type\": \"integer\","]
5388    #[doc = "      \"format\": \"uint64\","]
5389    #[doc = "      \"minimum\": 0.0"]
5390    #[doc = "    },"]
5391    #[doc = "    \"storage_write_key_byte\": {"]
5392    #[doc = "      \"description\": \"Storage trie write key per byte cost\","]
5393    #[doc = "      \"type\": \"integer\","]
5394    #[doc = "      \"format\": \"uint64\","]
5395    #[doc = "      \"minimum\": 0.0"]
5396    #[doc = "    },"]
5397    #[doc = "    \"storage_write_value_byte\": {"]
5398    #[doc = "      \"description\": \"Storage trie write value per byte cost\","]
5399    #[doc = "      \"type\": \"integer\","]
5400    #[doc = "      \"format\": \"uint64\","]
5401    #[doc = "      \"minimum\": 0.0"]
5402    #[doc = "    },"]
5403    #[doc = "    \"touching_trie_node\": {"]
5404    #[doc = "      \"description\": \"Cost per reading trie node from DB\","]
5405    #[doc = "      \"type\": \"integer\","]
5406    #[doc = "      \"format\": \"uint64\","]
5407    #[doc = "      \"minimum\": 0.0"]
5408    #[doc = "    },"]
5409    #[doc = "    \"utf16_decoding_base\": {"]
5410    #[doc = "      \"description\": \"Base cost of decoding utf16. It's used for `log_utf16`.\","]
5411    #[doc = "      \"type\": \"integer\","]
5412    #[doc = "      \"format\": \"uint64\","]
5413    #[doc = "      \"minimum\": 0.0"]
5414    #[doc = "    },"]
5415    #[doc = "    \"utf16_decoding_byte\": {"]
5416    #[doc = "      \"description\": \"Cost per byte of decoding utf16. It's used for `log_utf16`.\","]
5417    #[doc = "      \"type\": \"integer\","]
5418    #[doc = "      \"format\": \"uint64\","]
5419    #[doc = "      \"minimum\": 0.0"]
5420    #[doc = "    },"]
5421    #[doc = "    \"utf8_decoding_base\": {"]
5422    #[doc = "      \"description\": \"Base cost of decoding utf8. It's used for `log_utf8` and `panic_utf8`.\","]
5423    #[doc = "      \"type\": \"integer\","]
5424    #[doc = "      \"format\": \"uint64\","]
5425    #[doc = "      \"minimum\": 0.0"]
5426    #[doc = "    },"]
5427    #[doc = "    \"utf8_decoding_byte\": {"]
5428    #[doc = "      \"description\": \"Cost per byte of decoding utf8. It's used for `log_utf8` and `panic_utf8`.\","]
5429    #[doc = "      \"type\": \"integer\","]
5430    #[doc = "      \"format\": \"uint64\","]
5431    #[doc = "      \"minimum\": 0.0"]
5432    #[doc = "    },"]
5433    #[doc = "    \"validator_stake_base\": {"]
5434    #[doc = "      \"description\": \"Cost of calling `validator_stake`.\","]
5435    #[doc = "      \"type\": \"integer\","]
5436    #[doc = "      \"format\": \"uint64\","]
5437    #[doc = "      \"minimum\": 0.0"]
5438    #[doc = "    },"]
5439    #[doc = "    \"validator_total_stake_base\": {"]
5440    #[doc = "      \"description\": \"Cost of calling `validator_total_stake`.\","]
5441    #[doc = "      \"type\": \"integer\","]
5442    #[doc = "      \"format\": \"uint64\","]
5443    #[doc = "      \"minimum\": 0.0"]
5444    #[doc = "    },"]
5445    #[doc = "    \"write_memory_base\": {"]
5446    #[doc = "      \"description\": \"Base cost for guest memory write\","]
5447    #[doc = "      \"type\": \"integer\","]
5448    #[doc = "      \"format\": \"uint64\","]
5449    #[doc = "      \"minimum\": 0.0"]
5450    #[doc = "    },"]
5451    #[doc = "    \"write_memory_byte\": {"]
5452    #[doc = "      \"description\": \"Cost for guest memory write per byte\","]
5453    #[doc = "      \"type\": \"integer\","]
5454    #[doc = "      \"format\": \"uint64\","]
5455    #[doc = "      \"minimum\": 0.0"]
5456    #[doc = "    },"]
5457    #[doc = "    \"write_register_base\": {"]
5458    #[doc = "      \"description\": \"Base cost for writing into register\","]
5459    #[doc = "      \"type\": \"integer\","]
5460    #[doc = "      \"format\": \"uint64\","]
5461    #[doc = "      \"minimum\": 0.0"]
5462    #[doc = "    },"]
5463    #[doc = "    \"write_register_byte\": {"]
5464    #[doc = "      \"description\": \"Cost for writing byte into register\","]
5465    #[doc = "      \"type\": \"integer\","]
5466    #[doc = "      \"format\": \"uint64\","]
5467    #[doc = "      \"minimum\": 0.0"]
5468    #[doc = "    },"]
5469    #[doc = "    \"yield_create_base\": {"]
5470    #[doc = "      \"description\": \"Base cost for creating a yield promise.\","]
5471    #[doc = "      \"type\": \"integer\","]
5472    #[doc = "      \"format\": \"uint64\","]
5473    #[doc = "      \"minimum\": 0.0"]
5474    #[doc = "    },"]
5475    #[doc = "    \"yield_create_byte\": {"]
5476    #[doc = "      \"description\": \"Per byte cost of arguments and method name.\","]
5477    #[doc = "      \"type\": \"integer\","]
5478    #[doc = "      \"format\": \"uint64\","]
5479    #[doc = "      \"minimum\": 0.0"]
5480    #[doc = "    },"]
5481    #[doc = "    \"yield_resume_base\": {"]
5482    #[doc = "      \"description\": \"Base cost for resuming a yield receipt.\","]
5483    #[doc = "      \"type\": \"integer\","]
5484    #[doc = "      \"format\": \"uint64\","]
5485    #[doc = "      \"minimum\": 0.0"]
5486    #[doc = "    },"]
5487    #[doc = "    \"yield_resume_byte\": {"]
5488    #[doc = "      \"description\": \"Per byte cost of resume payload.\","]
5489    #[doc = "      \"type\": \"integer\","]
5490    #[doc = "      \"format\": \"uint64\","]
5491    #[doc = "      \"minimum\": 0.0"]
5492    #[doc = "    }"]
5493    #[doc = "  }"]
5494    #[doc = "}"]
5495    #[doc = r" ```"]
5496    #[doc = r" </details>"]
5497    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5498    pub struct ExtCostsConfigView {
5499        #[doc = "Base cost for multiexp"]
5500        pub alt_bn128_g1_multiexp_base: u64,
5501        #[doc = "Per element cost for multiexp"]
5502        pub alt_bn128_g1_multiexp_element: u64,
5503        #[doc = "Base cost for sum"]
5504        pub alt_bn128_g1_sum_base: u64,
5505        #[doc = "Per element cost for sum"]
5506        pub alt_bn128_g1_sum_element: u64,
5507        #[doc = "Base cost for pairing check"]
5508        pub alt_bn128_pairing_check_base: u64,
5509        #[doc = "Per element cost for pairing check"]
5510        pub alt_bn128_pairing_check_element: u64,
5511        #[doc = "Base cost for calling a host function."]
5512        pub base: u64,
5513        pub bls12381_g1_multiexp_base: u64,
5514        pub bls12381_g1_multiexp_element: u64,
5515        pub bls12381_g2_multiexp_base: u64,
5516        pub bls12381_g2_multiexp_element: u64,
5517        pub bls12381_map_fp2_to_g2_base: u64,
5518        pub bls12381_map_fp2_to_g2_element: u64,
5519        pub bls12381_map_fp_to_g1_base: u64,
5520        pub bls12381_map_fp_to_g1_element: u64,
5521        pub bls12381_p1_decompress_base: u64,
5522        pub bls12381_p1_decompress_element: u64,
5523        pub bls12381_p1_sum_base: u64,
5524        pub bls12381_p1_sum_element: u64,
5525        pub bls12381_p2_decompress_base: u64,
5526        pub bls12381_p2_decompress_element: u64,
5527        pub bls12381_p2_sum_base: u64,
5528        pub bls12381_p2_sum_element: u64,
5529        pub bls12381_pairing_base: u64,
5530        pub bls12381_pairing_element: u64,
5531        pub contract_compile_base: u64,
5532        pub contract_compile_bytes: u64,
5533        #[doc = "Base cost of loading a pre-compiled contract"]
5534        pub contract_loading_base: u64,
5535        #[doc = "Cost per byte of loading a pre-compiled contract"]
5536        pub contract_loading_bytes: u64,
5537        #[doc = "Cost of calling ecrecover"]
5538        pub ecrecover_base: u64,
5539        #[doc = "Cost of getting ed25519 base"]
5540        pub ed25519_verify_base: u64,
5541        #[doc = "Cost of getting ed25519 per byte"]
5542        pub ed25519_verify_byte: u64,
5543        #[doc = "Cost of getting sha256 base"]
5544        pub keccak256_base: u64,
5545        #[doc = "Cost of getting sha256 per byte"]
5546        pub keccak256_byte: u64,
5547        #[doc = "Cost of getting sha256 base"]
5548        pub keccak512_base: u64,
5549        #[doc = "Cost of getting sha256 per byte"]
5550        pub keccak512_byte: u64,
5551        #[doc = "Cost for calling logging."]
5552        pub log_base: u64,
5553        #[doc = "Cost for logging per byte"]
5554        pub log_byte: u64,
5555        #[doc = "Cost for calling `promise_and`"]
5556        pub promise_and_base: u64,
5557        #[doc = "Cost for calling `promise_and` for each promise"]
5558        pub promise_and_per_promise: u64,
5559        #[doc = "Cost for calling `promise_return`"]
5560        pub promise_return: u64,
5561        #[doc = "Cost for reading trie node from memory"]
5562        pub read_cached_trie_node: u64,
5563        #[doc = "Base cost for guest memory read"]
5564        pub read_memory_base: u64,
5565        #[doc = "Cost for guest memory read"]
5566        pub read_memory_byte: u64,
5567        #[doc = "Base cost for reading from register"]
5568        pub read_register_base: u64,
5569        #[doc = "Cost for reading byte from register"]
5570        pub read_register_byte: u64,
5571        #[doc = "Cost of getting ripemd160 base"]
5572        pub ripemd160_base: u64,
5573        #[doc = "Cost of getting ripemd160 per message block"]
5574        pub ripemd160_block: u64,
5575        #[doc = "Cost of getting sha256 base"]
5576        pub sha256_base: u64,
5577        #[doc = "Cost of getting sha256 per byte"]
5578        pub sha256_byte: u64,
5579        #[doc = "Storage trie check for key existence cost base"]
5580        pub storage_has_key_base: u64,
5581        #[doc = "Storage trie check for key existence per key byte"]
5582        pub storage_has_key_byte: u64,
5583        #[doc = "Create trie range iterator cost per byte of from key."]
5584        pub storage_iter_create_from_byte: u64,
5585        #[doc = "Create trie prefix iterator cost base"]
5586        pub storage_iter_create_prefix_base: u64,
5587        #[doc = "Create trie prefix iterator cost per byte."]
5588        pub storage_iter_create_prefix_byte: u64,
5589        #[doc = "Create trie range iterator cost base"]
5590        pub storage_iter_create_range_base: u64,
5591        #[doc = "Create trie range iterator cost per byte of to key."]
5592        pub storage_iter_create_to_byte: u64,
5593        #[doc = "Trie iterator per key base cost"]
5594        pub storage_iter_next_base: u64,
5595        #[doc = "Trie iterator next key byte cost"]
5596        pub storage_iter_next_key_byte: u64,
5597        #[doc = "Trie iterator next key byte cost"]
5598        pub storage_iter_next_value_byte: u64,
5599        #[doc = "Storage trie read key overhead base cost, when doing large reads"]
5600        pub storage_large_read_overhead_base: u64,
5601        #[doc = "Storage trie read key overhead  per-byte cost, when doing large reads"]
5602        pub storage_large_read_overhead_byte: u64,
5603        #[doc = "Storage trie read key base cost"]
5604        pub storage_read_base: u64,
5605        #[doc = "Storage trie read key per byte cost"]
5606        pub storage_read_key_byte: u64,
5607        #[doc = "Storage trie read value cost per byte cost"]
5608        pub storage_read_value_byte: u64,
5609        #[doc = "Remove key from trie base cost"]
5610        pub storage_remove_base: u64,
5611        #[doc = "Remove key from trie per byte cost"]
5612        pub storage_remove_key_byte: u64,
5613        #[doc = "Remove key from trie ret value byte cost"]
5614        pub storage_remove_ret_value_byte: u64,
5615        #[doc = "Storage trie write key base cost"]
5616        pub storage_write_base: u64,
5617        #[doc = "Storage trie write cost per byte of evicted value."]
5618        pub storage_write_evicted_byte: u64,
5619        #[doc = "Storage trie write key per byte cost"]
5620        pub storage_write_key_byte: u64,
5621        #[doc = "Storage trie write value per byte cost"]
5622        pub storage_write_value_byte: u64,
5623        #[doc = "Cost per reading trie node from DB"]
5624        pub touching_trie_node: u64,
5625        #[doc = "Base cost of decoding utf16. It's used for `log_utf16`."]
5626        pub utf16_decoding_base: u64,
5627        #[doc = "Cost per byte of decoding utf16. It's used for `log_utf16`."]
5628        pub utf16_decoding_byte: u64,
5629        #[doc = "Base cost of decoding utf8. It's used for `log_utf8` and `panic_utf8`."]
5630        pub utf8_decoding_base: u64,
5631        #[doc = "Cost per byte of decoding utf8. It's used for `log_utf8` and `panic_utf8`."]
5632        pub utf8_decoding_byte: u64,
5633        #[doc = "Cost of calling `validator_stake`."]
5634        pub validator_stake_base: u64,
5635        #[doc = "Cost of calling `validator_total_stake`."]
5636        pub validator_total_stake_base: u64,
5637        #[doc = "Base cost for guest memory write"]
5638        pub write_memory_base: u64,
5639        #[doc = "Cost for guest memory write per byte"]
5640        pub write_memory_byte: u64,
5641        #[doc = "Base cost for writing into register"]
5642        pub write_register_base: u64,
5643        #[doc = "Cost for writing byte into register"]
5644        pub write_register_byte: u64,
5645        #[doc = "Base cost for creating a yield promise."]
5646        pub yield_create_base: u64,
5647        #[doc = "Per byte cost of arguments and method name."]
5648        pub yield_create_byte: u64,
5649        #[doc = "Base cost for resuming a yield receipt."]
5650        pub yield_resume_base: u64,
5651        #[doc = "Per byte cost of resume payload."]
5652        pub yield_resume_byte: u64,
5653    }
5654    impl ::std::convert::From<&ExtCostsConfigView> for ExtCostsConfigView {
5655        fn from(value: &ExtCostsConfigView) -> Self {
5656            value.clone()
5657        }
5658    }
5659    #[doc = "`ExternalStorageConfig`"]
5660    #[doc = r""]
5661    #[doc = r" <details><summary>JSON schema</summary>"]
5662    #[doc = r""]
5663    #[doc = r" ```json"]
5664    #[doc = "{"]
5665    #[doc = "  \"type\": \"object\","]
5666    #[doc = "  \"required\": ["]
5667    #[doc = "    \"location\""]
5668    #[doc = "  ],"]
5669    #[doc = "  \"properties\": {"]
5670    #[doc = "    \"external_storage_fallback_threshold\": {"]
5671    #[doc = "      \"description\": \"The number of attempts the node will make to obtain a part from peers in\\n the network before it fetches from external storage.\","]
5672    #[doc = "      \"default\": 3,"]
5673    #[doc = "      \"type\": \"integer\","]
5674    #[doc = "      \"format\": \"uint64\","]
5675    #[doc = "      \"minimum\": 0.0"]
5676    #[doc = "    },"]
5677    #[doc = "    \"location\": {"]
5678    #[doc = "      \"description\": \"Location of state parts.\","]
5679    #[doc = "      \"allOf\": ["]
5680    #[doc = "        {"]
5681    #[doc = "          \"$ref\": \"#/components/schemas/ExternalStorageLocation\""]
5682    #[doc = "        }"]
5683    #[doc = "      ]"]
5684    #[doc = "    },"]
5685    #[doc = "    \"num_concurrent_requests\": {"]
5686    #[doc = "      \"description\": \"When fetching state parts from external storage, throttle fetch requests\\n to this many concurrent requests.\","]
5687    #[doc = "      \"default\": 25,"]
5688    #[doc = "      \"type\": \"integer\","]
5689    #[doc = "      \"format\": \"uint32\","]
5690    #[doc = "      \"minimum\": 0.0"]
5691    #[doc = "    },"]
5692    #[doc = "    \"num_concurrent_requests_during_catchup\": {"]
5693    #[doc = "      \"description\": \"During catchup, the node will use a different number of concurrent requests\\n to reduce the performance impact of state sync.\","]
5694    #[doc = "      \"default\": 5,"]
5695    #[doc = "      \"type\": \"integer\","]
5696    #[doc = "      \"format\": \"uint32\","]
5697    #[doc = "      \"minimum\": 0.0"]
5698    #[doc = "    }"]
5699    #[doc = "  }"]
5700    #[doc = "}"]
5701    #[doc = r" ```"]
5702    #[doc = r" </details>"]
5703    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5704    pub struct ExternalStorageConfig {
5705        #[doc = "The number of attempts the node will make to obtain a part from peers in\n the network before it fetches from external storage."]
5706        #[serde(default = "defaults::default_u64::<u64, 3>")]
5707        pub external_storage_fallback_threshold: u64,
5708        #[doc = "Location of state parts."]
5709        pub location: ExternalStorageLocation,
5710        #[doc = "When fetching state parts from external storage, throttle fetch requests\n to this many concurrent requests."]
5711        #[serde(default = "defaults::default_u64::<u32, 25>")]
5712        pub num_concurrent_requests: u32,
5713        #[doc = "During catchup, the node will use a different number of concurrent requests\n to reduce the performance impact of state sync."]
5714        #[serde(default = "defaults::default_u64::<u32, 5>")]
5715        pub num_concurrent_requests_during_catchup: u32,
5716    }
5717    impl ::std::convert::From<&ExternalStorageConfig> for ExternalStorageConfig {
5718        fn from(value: &ExternalStorageConfig) -> Self {
5719            value.clone()
5720        }
5721    }
5722    #[doc = "`ExternalStorageLocation`"]
5723    #[doc = r""]
5724    #[doc = r" <details><summary>JSON schema</summary>"]
5725    #[doc = r""]
5726    #[doc = r" ```json"]
5727    #[doc = "{"]
5728    #[doc = "  \"oneOf\": ["]
5729    #[doc = "    {"]
5730    #[doc = "      \"type\": \"object\","]
5731    #[doc = "      \"required\": ["]
5732    #[doc = "        \"S3\""]
5733    #[doc = "      ],"]
5734    #[doc = "      \"properties\": {"]
5735    #[doc = "        \"S3\": {"]
5736    #[doc = "          \"type\": \"object\","]
5737    #[doc = "          \"required\": ["]
5738    #[doc = "            \"bucket\","]
5739    #[doc = "            \"region\""]
5740    #[doc = "          ],"]
5741    #[doc = "          \"properties\": {"]
5742    #[doc = "            \"bucket\": {"]
5743    #[doc = "              \"description\": \"Location of state dumps on S3.\","]
5744    #[doc = "              \"type\": \"string\""]
5745    #[doc = "            },"]
5746    #[doc = "            \"region\": {"]
5747    #[doc = "              \"description\": \"Data may only be available in certain locations.\","]
5748    #[doc = "              \"type\": \"string\""]
5749    #[doc = "            }"]
5750    #[doc = "          }"]
5751    #[doc = "        }"]
5752    #[doc = "      },"]
5753    #[doc = "      \"additionalProperties\": false"]
5754    #[doc = "    },"]
5755    #[doc = "    {"]
5756    #[doc = "      \"type\": \"object\","]
5757    #[doc = "      \"required\": ["]
5758    #[doc = "        \"Filesystem\""]
5759    #[doc = "      ],"]
5760    #[doc = "      \"properties\": {"]
5761    #[doc = "        \"Filesystem\": {"]
5762    #[doc = "          \"type\": \"object\","]
5763    #[doc = "          \"required\": ["]
5764    #[doc = "            \"root_dir\""]
5765    #[doc = "          ],"]
5766    #[doc = "          \"properties\": {"]
5767    #[doc = "            \"root_dir\": {"]
5768    #[doc = "              \"type\": \"string\""]
5769    #[doc = "            }"]
5770    #[doc = "          }"]
5771    #[doc = "        }"]
5772    #[doc = "      },"]
5773    #[doc = "      \"additionalProperties\": false"]
5774    #[doc = "    },"]
5775    #[doc = "    {"]
5776    #[doc = "      \"type\": \"object\","]
5777    #[doc = "      \"required\": ["]
5778    #[doc = "        \"GCS\""]
5779    #[doc = "      ],"]
5780    #[doc = "      \"properties\": {"]
5781    #[doc = "        \"GCS\": {"]
5782    #[doc = "          \"type\": \"object\","]
5783    #[doc = "          \"required\": ["]
5784    #[doc = "            \"bucket\""]
5785    #[doc = "          ],"]
5786    #[doc = "          \"properties\": {"]
5787    #[doc = "            \"bucket\": {"]
5788    #[doc = "              \"type\": \"string\""]
5789    #[doc = "            }"]
5790    #[doc = "          }"]
5791    #[doc = "        }"]
5792    #[doc = "      },"]
5793    #[doc = "      \"additionalProperties\": false"]
5794    #[doc = "    }"]
5795    #[doc = "  ]"]
5796    #[doc = "}"]
5797    #[doc = r" ```"]
5798    #[doc = r" </details>"]
5799    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5800    pub enum ExternalStorageLocation {
5801        S3 {
5802            #[doc = "Location of state dumps on S3."]
5803            bucket: ::std::string::String,
5804            #[doc = "Data may only be available in certain locations."]
5805            region: ::std::string::String,
5806        },
5807        Filesystem {
5808            root_dir: ::std::string::String,
5809        },
5810        #[serde(rename = "GCS")]
5811        Gcs {
5812            bucket: ::std::string::String,
5813        },
5814    }
5815    impl ::std::convert::From<&Self> for ExternalStorageLocation {
5816        fn from(value: &ExternalStorageLocation) -> Self {
5817            value.clone()
5818        }
5819    }
5820    #[doc = "Costs associated with an object that can only be sent over the network (and executed\n by the receiver).\n NOTE: `send_sir` or `send_not_sir` fees are usually burned when the item is being created.\n And `execution` fee is burned when the item is being executed."]
5821    #[doc = r""]
5822    #[doc = r" <details><summary>JSON schema</summary>"]
5823    #[doc = r""]
5824    #[doc = r" ```json"]
5825    #[doc = "{"]
5826    #[doc = "  \"description\": \"Costs associated with an object that can only be sent over the network (and executed\\n by the receiver).\\n NOTE: `send_sir` or `send_not_sir` fees are usually burned when the item is being created.\\n And `execution` fee is burned when the item is being executed.\","]
5827    #[doc = "  \"type\": \"object\","]
5828    #[doc = "  \"required\": ["]
5829    #[doc = "    \"execution\","]
5830    #[doc = "    \"send_not_sir\","]
5831    #[doc = "    \"send_sir\""]
5832    #[doc = "  ],"]
5833    #[doc = "  \"properties\": {"]
5834    #[doc = "    \"execution\": {"]
5835    #[doc = "      \"description\": \"Fee for executing the object.\","]
5836    #[doc = "      \"type\": \"integer\","]
5837    #[doc = "      \"format\": \"uint64\","]
5838    #[doc = "      \"minimum\": 0.0"]
5839    #[doc = "    },"]
5840    #[doc = "    \"send_not_sir\": {"]
5841    #[doc = "      \"description\": \"Fee for sending an object potentially across the shards.\","]
5842    #[doc = "      \"type\": \"integer\","]
5843    #[doc = "      \"format\": \"uint64\","]
5844    #[doc = "      \"minimum\": 0.0"]
5845    #[doc = "    },"]
5846    #[doc = "    \"send_sir\": {"]
5847    #[doc = "      \"description\": \"Fee for sending an object from the sender to itself, guaranteeing that it does not leave\\n the shard.\","]
5848    #[doc = "      \"type\": \"integer\","]
5849    #[doc = "      \"format\": \"uint64\","]
5850    #[doc = "      \"minimum\": 0.0"]
5851    #[doc = "    }"]
5852    #[doc = "  }"]
5853    #[doc = "}"]
5854    #[doc = r" ```"]
5855    #[doc = r" </details>"]
5856    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5857    pub struct Fee {
5858        #[doc = "Fee for executing the object."]
5859        pub execution: u64,
5860        #[doc = "Fee for sending an object potentially across the shards."]
5861        pub send_not_sir: u64,
5862        #[doc = "Fee for sending an object from the sender to itself, guaranteeing that it does not leave\n the shard."]
5863        pub send_sir: u64,
5864    }
5865    impl ::std::convert::From<&Fee> for Fee {
5866        fn from(value: &Fee) -> Self {
5867            value.clone()
5868        }
5869    }
5870    #[doc = "Execution outcome of the transaction and all the subsequent receipts.\n Could be not finalized yet"]
5871    #[doc = r""]
5872    #[doc = r" <details><summary>JSON schema</summary>"]
5873    #[doc = r""]
5874    #[doc = r" ```json"]
5875    #[doc = "{"]
5876    #[doc = "  \"description\": \"Execution outcome of the transaction and all the subsequent receipts.\\n Could be not finalized yet\","]
5877    #[doc = "  \"type\": \"object\","]
5878    #[doc = "  \"required\": ["]
5879    #[doc = "    \"receipts_outcome\","]
5880    #[doc = "    \"status\","]
5881    #[doc = "    \"transaction\","]
5882    #[doc = "    \"transaction_outcome\""]
5883    #[doc = "  ],"]
5884    #[doc = "  \"properties\": {"]
5885    #[doc = "    \"receipts_outcome\": {"]
5886    #[doc = "      \"description\": \"The execution outcome of receipts.\","]
5887    #[doc = "      \"type\": \"array\","]
5888    #[doc = "      \"items\": {"]
5889    #[doc = "        \"$ref\": \"#/components/schemas/ExecutionOutcomeWithIdView\""]
5890    #[doc = "      }"]
5891    #[doc = "    },"]
5892    #[doc = "    \"status\": {"]
5893    #[doc = "      \"description\": \"Execution status defined by chain.rs:get_final_transaction_result\\n FinalExecutionStatus::NotStarted - the tx is not converted to the receipt yet\\n FinalExecutionStatus::Started - we have at least 1 receipt, but the first leaf receipt_id (using dfs) hasn't finished the execution\\n FinalExecutionStatus::Failure - the result of the first leaf receipt_id\\n FinalExecutionStatus::SuccessValue - the result of the first leaf receipt_id\","]
5894    #[doc = "      \"allOf\": ["]
5895    #[doc = "        {"]
5896    #[doc = "          \"$ref\": \"#/components/schemas/FinalExecutionStatus\""]
5897    #[doc = "        }"]
5898    #[doc = "      ]"]
5899    #[doc = "    },"]
5900    #[doc = "    \"transaction\": {"]
5901    #[doc = "      \"description\": \"Signed Transaction\","]
5902    #[doc = "      \"allOf\": ["]
5903    #[doc = "        {"]
5904    #[doc = "          \"$ref\": \"#/components/schemas/SignedTransactionView\""]
5905    #[doc = "        }"]
5906    #[doc = "      ]"]
5907    #[doc = "    },"]
5908    #[doc = "    \"transaction_outcome\": {"]
5909    #[doc = "      \"description\": \"The execution outcome of the signed transaction.\","]
5910    #[doc = "      \"allOf\": ["]
5911    #[doc = "        {"]
5912    #[doc = "          \"$ref\": \"#/components/schemas/ExecutionOutcomeWithIdView\""]
5913    #[doc = "        }"]
5914    #[doc = "      ]"]
5915    #[doc = "    }"]
5916    #[doc = "  }"]
5917    #[doc = "}"]
5918    #[doc = r" ```"]
5919    #[doc = r" </details>"]
5920    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5921    pub struct FinalExecutionOutcomeView {
5922        #[doc = "The execution outcome of receipts."]
5923        pub receipts_outcome: ::std::vec::Vec<ExecutionOutcomeWithIdView>,
5924        #[doc = "Execution status defined by chain.rs:get_final_transaction_result\n FinalExecutionStatus::NotStarted - the tx is not converted to the receipt yet\n FinalExecutionStatus::Started - we have at least 1 receipt, but the first leaf receipt_id (using dfs) hasn't finished the execution\n FinalExecutionStatus::Failure - the result of the first leaf receipt_id\n FinalExecutionStatus::SuccessValue - the result of the first leaf receipt_id"]
5925        pub status: FinalExecutionStatus,
5926        #[doc = "Signed Transaction"]
5927        pub transaction: SignedTransactionView,
5928        #[doc = "The execution outcome of the signed transaction."]
5929        pub transaction_outcome: ExecutionOutcomeWithIdView,
5930    }
5931    impl ::std::convert::From<&FinalExecutionOutcomeView> for FinalExecutionOutcomeView {
5932        fn from(value: &FinalExecutionOutcomeView) -> Self {
5933            value.clone()
5934        }
5935    }
5936    #[doc = "Final execution outcome of the transaction and all of subsequent the receipts. Also includes\n the generated receipt."]
5937    #[doc = r""]
5938    #[doc = r" <details><summary>JSON schema</summary>"]
5939    #[doc = r""]
5940    #[doc = r" ```json"]
5941    #[doc = "{"]
5942    #[doc = "  \"description\": \"Final execution outcome of the transaction and all of subsequent the receipts. Also includes\\n the generated receipt.\","]
5943    #[doc = "  \"type\": \"object\","]
5944    #[doc = "  \"required\": ["]
5945    #[doc = "    \"receipts\","]
5946    #[doc = "    \"receipts_outcome\","]
5947    #[doc = "    \"status\","]
5948    #[doc = "    \"transaction\","]
5949    #[doc = "    \"transaction_outcome\""]
5950    #[doc = "  ],"]
5951    #[doc = "  \"properties\": {"]
5952    #[doc = "    \"receipts\": {"]
5953    #[doc = "      \"description\": \"Receipts generated from the transaction\","]
5954    #[doc = "      \"type\": \"array\","]
5955    #[doc = "      \"items\": {"]
5956    #[doc = "        \"$ref\": \"#/components/schemas/ReceiptView\""]
5957    #[doc = "      }"]
5958    #[doc = "    },"]
5959    #[doc = "    \"receipts_outcome\": {"]
5960    #[doc = "      \"description\": \"The execution outcome of receipts.\","]
5961    #[doc = "      \"type\": \"array\","]
5962    #[doc = "      \"items\": {"]
5963    #[doc = "        \"$ref\": \"#/components/schemas/ExecutionOutcomeWithIdView\""]
5964    #[doc = "      }"]
5965    #[doc = "    },"]
5966    #[doc = "    \"status\": {"]
5967    #[doc = "      \"description\": \"Execution status defined by chain.rs:get_final_transaction_result\\n FinalExecutionStatus::NotStarted - the tx is not converted to the receipt yet\\n FinalExecutionStatus::Started - we have at least 1 receipt, but the first leaf receipt_id (using dfs) hasn't finished the execution\\n FinalExecutionStatus::Failure - the result of the first leaf receipt_id\\n FinalExecutionStatus::SuccessValue - the result of the first leaf receipt_id\","]
5968    #[doc = "      \"allOf\": ["]
5969    #[doc = "        {"]
5970    #[doc = "          \"$ref\": \"#/components/schemas/FinalExecutionStatus\""]
5971    #[doc = "        }"]
5972    #[doc = "      ]"]
5973    #[doc = "    },"]
5974    #[doc = "    \"transaction\": {"]
5975    #[doc = "      \"description\": \"Signed Transaction\","]
5976    #[doc = "      \"allOf\": ["]
5977    #[doc = "        {"]
5978    #[doc = "          \"$ref\": \"#/components/schemas/SignedTransactionView\""]
5979    #[doc = "        }"]
5980    #[doc = "      ]"]
5981    #[doc = "    },"]
5982    #[doc = "    \"transaction_outcome\": {"]
5983    #[doc = "      \"description\": \"The execution outcome of the signed transaction.\","]
5984    #[doc = "      \"allOf\": ["]
5985    #[doc = "        {"]
5986    #[doc = "          \"$ref\": \"#/components/schemas/ExecutionOutcomeWithIdView\""]
5987    #[doc = "        }"]
5988    #[doc = "      ]"]
5989    #[doc = "    }"]
5990    #[doc = "  }"]
5991    #[doc = "}"]
5992    #[doc = r" ```"]
5993    #[doc = r" </details>"]
5994    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5995    pub struct FinalExecutionOutcomeWithReceiptView {
5996        #[doc = "Receipts generated from the transaction"]
5997        pub receipts: ::std::vec::Vec<ReceiptView>,
5998        #[doc = "The execution outcome of receipts."]
5999        pub receipts_outcome: ::std::vec::Vec<ExecutionOutcomeWithIdView>,
6000        #[doc = "Execution status defined by chain.rs:get_final_transaction_result\n FinalExecutionStatus::NotStarted - the tx is not converted to the receipt yet\n FinalExecutionStatus::Started - we have at least 1 receipt, but the first leaf receipt_id (using dfs) hasn't finished the execution\n FinalExecutionStatus::Failure - the result of the first leaf receipt_id\n FinalExecutionStatus::SuccessValue - the result of the first leaf receipt_id"]
6001        pub status: FinalExecutionStatus,
6002        #[doc = "Signed Transaction"]
6003        pub transaction: SignedTransactionView,
6004        #[doc = "The execution outcome of the signed transaction."]
6005        pub transaction_outcome: ExecutionOutcomeWithIdView,
6006    }
6007    impl ::std::convert::From<&FinalExecutionOutcomeWithReceiptView>
6008        for FinalExecutionOutcomeWithReceiptView
6009    {
6010        fn from(value: &FinalExecutionOutcomeWithReceiptView) -> Self {
6011            value.clone()
6012        }
6013    }
6014    #[doc = "`FinalExecutionStatus`"]
6015    #[doc = r""]
6016    #[doc = r" <details><summary>JSON schema</summary>"]
6017    #[doc = r""]
6018    #[doc = r" ```json"]
6019    #[doc = "{"]
6020    #[doc = "  \"oneOf\": ["]
6021    #[doc = "    {"]
6022    #[doc = "      \"description\": \"The execution has not yet started.\","]
6023    #[doc = "      \"type\": \"string\","]
6024    #[doc = "      \"enum\": ["]
6025    #[doc = "        \"NotStarted\""]
6026    #[doc = "      ]"]
6027    #[doc = "    },"]
6028    #[doc = "    {"]
6029    #[doc = "      \"description\": \"The execution has started and still going.\","]
6030    #[doc = "      \"type\": \"string\","]
6031    #[doc = "      \"enum\": ["]
6032    #[doc = "        \"Started\""]
6033    #[doc = "      ]"]
6034    #[doc = "    },"]
6035    #[doc = "    {"]
6036    #[doc = "      \"description\": \"The execution has failed with the given error.\","]
6037    #[doc = "      \"type\": \"object\","]
6038    #[doc = "      \"required\": ["]
6039    #[doc = "        \"Failure\""]
6040    #[doc = "      ],"]
6041    #[doc = "      \"properties\": {"]
6042    #[doc = "        \"Failure\": {"]
6043    #[doc = "          \"$ref\": \"#/components/schemas/TxExecutionError\""]
6044    #[doc = "        }"]
6045    #[doc = "      },"]
6046    #[doc = "      \"additionalProperties\": false"]
6047    #[doc = "    },"]
6048    #[doc = "    {"]
6049    #[doc = "      \"description\": \"The execution has succeeded and returned some value or an empty vec encoded in base64.\","]
6050    #[doc = "      \"type\": \"object\","]
6051    #[doc = "      \"required\": ["]
6052    #[doc = "        \"SuccessValue\""]
6053    #[doc = "      ],"]
6054    #[doc = "      \"properties\": {"]
6055    #[doc = "        \"SuccessValue\": {"]
6056    #[doc = "          \"type\": \"string\""]
6057    #[doc = "        }"]
6058    #[doc = "      },"]
6059    #[doc = "      \"additionalProperties\": false"]
6060    #[doc = "    }"]
6061    #[doc = "  ]"]
6062    #[doc = "}"]
6063    #[doc = r" ```"]
6064    #[doc = r" </details>"]
6065    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6066    pub enum FinalExecutionStatus {
6067        #[doc = "The execution has not yet started."]
6068        NotStarted,
6069        #[doc = "The execution has started and still going."]
6070        Started,
6071        #[doc = "The execution has failed with the given error."]
6072        Failure(TxExecutionError),
6073        #[doc = "The execution has succeeded and returned some value or an empty vec encoded in base64."]
6074        SuccessValue(::std::string::String),
6075    }
6076    impl ::std::convert::From<&Self> for FinalExecutionStatus {
6077        fn from(value: &FinalExecutionStatus) -> Self {
6078            value.clone()
6079        }
6080    }
6081    impl ::std::convert::From<TxExecutionError> for FinalExecutionStatus {
6082        fn from(value: TxExecutionError) -> Self {
6083            Self::Failure(value)
6084        }
6085    }
6086    #[doc = "Different types of finality."]
6087    #[doc = r""]
6088    #[doc = r" <details><summary>JSON schema</summary>"]
6089    #[doc = r""]
6090    #[doc = r" ```json"]
6091    #[doc = "{"]
6092    #[doc = "  \"description\": \"Different types of finality.\","]
6093    #[doc = "  \"type\": \"string\","]
6094    #[doc = "  \"enum\": ["]
6095    #[doc = "    \"optimistic\","]
6096    #[doc = "    \"near-final\","]
6097    #[doc = "    \"final\""]
6098    #[doc = "  ]"]
6099    #[doc = "}"]
6100    #[doc = r" ```"]
6101    #[doc = r" </details>"]
6102    #[derive(
6103        :: serde :: Deserialize,
6104        :: serde :: Serialize,
6105        Clone,
6106        Copy,
6107        Debug,
6108        Eq,
6109        Hash,
6110        Ord,
6111        PartialEq,
6112        PartialOrd,
6113    )]
6114    pub enum Finality {
6115        #[serde(rename = "optimistic")]
6116        Optimistic,
6117        #[serde(rename = "near-final")]
6118        NearFinal,
6119        #[serde(rename = "final")]
6120        Final,
6121    }
6122    impl ::std::convert::From<&Self> for Finality {
6123        fn from(value: &Finality) -> Self {
6124            value.clone()
6125        }
6126    }
6127    impl ::std::fmt::Display for Finality {
6128        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6129            match *self {
6130                Self::Optimistic => write!(f, "optimistic"),
6131                Self::NearFinal => write!(f, "near-final"),
6132                Self::Final => write!(f, "final"),
6133            }
6134        }
6135    }
6136    impl ::std::str::FromStr for Finality {
6137        type Err = self::error::ConversionError;
6138        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
6139            match value {
6140                "optimistic" => Ok(Self::Optimistic),
6141                "near-final" => Ok(Self::NearFinal),
6142                "final" => Ok(Self::Final),
6143                _ => Err("invalid value".into()),
6144            }
6145        }
6146    }
6147    impl ::std::convert::TryFrom<&str> for Finality {
6148        type Error = self::error::ConversionError;
6149        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
6150            value.parse()
6151        }
6152    }
6153    impl ::std::convert::TryFrom<&::std::string::String> for Finality {
6154        type Error = self::error::ConversionError;
6155        fn try_from(
6156            value: &::std::string::String,
6157        ) -> ::std::result::Result<Self, self::error::ConversionError> {
6158            value.parse()
6159        }
6160    }
6161    impl ::std::convert::TryFrom<::std::string::String> for Finality {
6162        type Error = self::error::ConversionError;
6163        fn try_from(
6164            value: ::std::string::String,
6165        ) -> ::std::result::Result<Self, self::error::ConversionError> {
6166            value.parse()
6167        }
6168    }
6169    #[doc = "`FunctionCallAction`"]
6170    #[doc = r""]
6171    #[doc = r" <details><summary>JSON schema</summary>"]
6172    #[doc = r""]
6173    #[doc = r" ```json"]
6174    #[doc = "{"]
6175    #[doc = "  \"type\": \"object\","]
6176    #[doc = "  \"required\": ["]
6177    #[doc = "    \"args\","]
6178    #[doc = "    \"deposit\","]
6179    #[doc = "    \"gas\","]
6180    #[doc = "    \"method_name\""]
6181    #[doc = "  ],"]
6182    #[doc = "  \"properties\": {"]
6183    #[doc = "    \"args\": {"]
6184    #[doc = "      \"type\": \"string\""]
6185    #[doc = "    },"]
6186    #[doc = "    \"deposit\": {"]
6187    #[doc = "      \"type\": \"string\""]
6188    #[doc = "    },"]
6189    #[doc = "    \"gas\": {"]
6190    #[doc = "      \"type\": \"integer\","]
6191    #[doc = "      \"format\": \"uint64\","]
6192    #[doc = "      \"minimum\": 0.0"]
6193    #[doc = "    },"]
6194    #[doc = "    \"method_name\": {"]
6195    #[doc = "      \"type\": \"string\""]
6196    #[doc = "    }"]
6197    #[doc = "  }"]
6198    #[doc = "}"]
6199    #[doc = r" ```"]
6200    #[doc = r" </details>"]
6201    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6202    pub struct FunctionCallAction {
6203        pub args: ::std::string::String,
6204        pub deposit: ::std::string::String,
6205        pub gas: u64,
6206        pub method_name: ::std::string::String,
6207    }
6208    impl ::std::convert::From<&FunctionCallAction> for FunctionCallAction {
6209        fn from(value: &FunctionCallAction) -> Self {
6210            value.clone()
6211        }
6212    }
6213    #[doc = "Serializable version of `near-vm-runner::FunctionCallError`.\n\n Must never reorder/remove elements, can only add new variants at the end (but do that very\n carefully). It describes stable serialization format, and only used by serialization logic."]
6214    #[doc = r""]
6215    #[doc = r" <details><summary>JSON schema</summary>"]
6216    #[doc = r""]
6217    #[doc = r" ```json"]
6218    #[doc = "{"]
6219    #[doc = "  \"description\": \"Serializable version of `near-vm-runner::FunctionCallError`.\\n\\n Must never reorder/remove elements, can only add new variants at the end (but do that very\\n carefully). It describes stable serialization format, and only used by serialization logic.\","]
6220    #[doc = "  \"oneOf\": ["]
6221    #[doc = "    {"]
6222    #[doc = "      \"type\": \"string\","]
6223    #[doc = "      \"enum\": ["]
6224    #[doc = "        \"WasmUnknownError\","]
6225    #[doc = "        \"_EVMError\""]
6226    #[doc = "      ]"]
6227    #[doc = "    },"]
6228    #[doc = "    {"]
6229    #[doc = "      \"description\": \"Wasm compilation error\","]
6230    #[doc = "      \"type\": \"object\","]
6231    #[doc = "      \"required\": ["]
6232    #[doc = "        \"CompilationError\""]
6233    #[doc = "      ],"]
6234    #[doc = "      \"properties\": {"]
6235    #[doc = "        \"CompilationError\": {"]
6236    #[doc = "          \"$ref\": \"#/components/schemas/CompilationError\""]
6237    #[doc = "        }"]
6238    #[doc = "      },"]
6239    #[doc = "      \"additionalProperties\": false"]
6240    #[doc = "    },"]
6241    #[doc = "    {"]
6242    #[doc = "      \"description\": \"Wasm binary env link error\\n\\n Note: this is only to deserialize old data, use execution error for new data\","]
6243    #[doc = "      \"type\": \"object\","]
6244    #[doc = "      \"required\": ["]
6245    #[doc = "        \"LinkError\""]
6246    #[doc = "      ],"]
6247    #[doc = "      \"properties\": {"]
6248    #[doc = "        \"LinkError\": {"]
6249    #[doc = "          \"type\": \"object\","]
6250    #[doc = "          \"required\": ["]
6251    #[doc = "            \"msg\""]
6252    #[doc = "          ],"]
6253    #[doc = "          \"properties\": {"]
6254    #[doc = "            \"msg\": {"]
6255    #[doc = "              \"type\": \"string\""]
6256    #[doc = "            }"]
6257    #[doc = "          }"]
6258    #[doc = "        }"]
6259    #[doc = "      },"]
6260    #[doc = "      \"additionalProperties\": false"]
6261    #[doc = "    },"]
6262    #[doc = "    {"]
6263    #[doc = "      \"description\": \"Import/export resolve error\","]
6264    #[doc = "      \"type\": \"object\","]
6265    #[doc = "      \"required\": ["]
6266    #[doc = "        \"MethodResolveError\""]
6267    #[doc = "      ],"]
6268    #[doc = "      \"properties\": {"]
6269    #[doc = "        \"MethodResolveError\": {"]
6270    #[doc = "          \"$ref\": \"#/components/schemas/MethodResolveError\""]
6271    #[doc = "        }"]
6272    #[doc = "      },"]
6273    #[doc = "      \"additionalProperties\": false"]
6274    #[doc = "    },"]
6275    #[doc = "    {"]
6276    #[doc = "      \"description\": \"A trap happened during execution of a binary\\n\\n Note: this is only to deserialize old data, use execution error for new data\","]
6277    #[doc = "      \"type\": \"object\","]
6278    #[doc = "      \"required\": ["]
6279    #[doc = "        \"WasmTrap\""]
6280    #[doc = "      ],"]
6281    #[doc = "      \"properties\": {"]
6282    #[doc = "        \"WasmTrap\": {"]
6283    #[doc = "          \"$ref\": \"#/components/schemas/WasmTrap\""]
6284    #[doc = "        }"]
6285    #[doc = "      },"]
6286    #[doc = "      \"additionalProperties\": false"]
6287    #[doc = "    },"]
6288    #[doc = "    {"]
6289    #[doc = "      \"description\": \"Note: this is only to deserialize old data, use execution error for new data\","]
6290    #[doc = "      \"type\": \"object\","]
6291    #[doc = "      \"required\": ["]
6292    #[doc = "        \"HostError\""]
6293    #[doc = "      ],"]
6294    #[doc = "      \"properties\": {"]
6295    #[doc = "        \"HostError\": {"]
6296    #[doc = "          \"$ref\": \"#/components/schemas/HostError\""]
6297    #[doc = "        }"]
6298    #[doc = "      },"]
6299    #[doc = "      \"additionalProperties\": false"]
6300    #[doc = "    },"]
6301    #[doc = "    {"]
6302    #[doc = "      \"type\": \"object\","]
6303    #[doc = "      \"required\": ["]
6304    #[doc = "        \"ExecutionError\""]
6305    #[doc = "      ],"]
6306    #[doc = "      \"properties\": {"]
6307    #[doc = "        \"ExecutionError\": {"]
6308    #[doc = "          \"type\": \"string\""]
6309    #[doc = "        }"]
6310    #[doc = "      },"]
6311    #[doc = "      \"additionalProperties\": false"]
6312    #[doc = "    }"]
6313    #[doc = "  ]"]
6314    #[doc = "}"]
6315    #[doc = r" ```"]
6316    #[doc = r" </details>"]
6317    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6318    pub enum FunctionCallError {
6319        WasmUnknownError,
6320        #[serde(rename = "_EVMError")]
6321        EvmError,
6322        #[doc = "Wasm compilation error"]
6323        CompilationError(CompilationError),
6324        #[doc = "Wasm binary env link error\n\n Note: this is only to deserialize old data, use execution error for new data"]
6325        LinkError {
6326            msg: ::std::string::String,
6327        },
6328        #[doc = "Import/export resolve error"]
6329        MethodResolveError(MethodResolveError),
6330        #[doc = "A trap happened during execution of a binary\n\n Note: this is only to deserialize old data, use execution error for new data"]
6331        WasmTrap(WasmTrap),
6332        #[doc = "Note: this is only to deserialize old data, use execution error for new data"]
6333        HostError(HostError),
6334        ExecutionError(::std::string::String),
6335    }
6336    impl ::std::convert::From<&Self> for FunctionCallError {
6337        fn from(value: &FunctionCallError) -> Self {
6338            value.clone()
6339        }
6340    }
6341    impl ::std::convert::From<CompilationError> for FunctionCallError {
6342        fn from(value: CompilationError) -> Self {
6343            Self::CompilationError(value)
6344        }
6345    }
6346    impl ::std::convert::From<MethodResolveError> for FunctionCallError {
6347        fn from(value: MethodResolveError) -> Self {
6348            Self::MethodResolveError(value)
6349        }
6350    }
6351    impl ::std::convert::From<WasmTrap> for FunctionCallError {
6352        fn from(value: WasmTrap) -> Self {
6353            Self::WasmTrap(value)
6354        }
6355    }
6356    impl ::std::convert::From<HostError> for FunctionCallError {
6357        fn from(value: HostError) -> Self {
6358            Self::HostError(value)
6359        }
6360    }
6361    #[doc = "Grants limited permission to make transactions with FunctionCallActions\n The permission can limit the allowed balance to be spent on the prepaid gas.\n It also restrict the account ID of the receiver for this function call.\n It also can restrict the method name for the allowed function calls."]
6362    #[doc = r""]
6363    #[doc = r" <details><summary>JSON schema</summary>"]
6364    #[doc = r""]
6365    #[doc = r" ```json"]
6366    #[doc = "{"]
6367    #[doc = "  \"description\": \"Grants limited permission to make transactions with FunctionCallActions\\n The permission can limit the allowed balance to be spent on the prepaid gas.\\n It also restrict the account ID of the receiver for this function call.\\n It also can restrict the method name for the allowed function calls.\","]
6368    #[doc = "  \"type\": \"object\","]
6369    #[doc = "  \"required\": ["]
6370    #[doc = "    \"method_names\","]
6371    #[doc = "    \"receiver_id\""]
6372    #[doc = "  ],"]
6373    #[doc = "  \"properties\": {"]
6374    #[doc = "    \"allowance\": {"]
6375    #[doc = "      \"description\": \"Allowance is a balance limit to use by this access key to pay for function call gas and\\n transaction fees. When this access key is used, both account balance and the allowance is\\n decreased by the same value.\\n `None` means unlimited allowance.\\n NOTE: To change or increase the allowance, the old access key needs to be deleted and a new\\n access key should be created.\","]
6376    #[doc = "      \"type\": ["]
6377    #[doc = "        \"string\","]
6378    #[doc = "        \"null\""]
6379    #[doc = "      ]"]
6380    #[doc = "    },"]
6381    #[doc = "    \"method_names\": {"]
6382    #[doc = "      \"description\": \"A list of method names that can be used. The access key only allows transactions with the\\n function call of one of the given method names.\\n Empty list means any method name can be used.\","]
6383    #[doc = "      \"type\": \"array\","]
6384    #[doc = "      \"items\": {"]
6385    #[doc = "        \"type\": \"string\""]
6386    #[doc = "      }"]
6387    #[doc = "    },"]
6388    #[doc = "    \"receiver_id\": {"]
6389    #[doc = "      \"description\": \"The access key only allows transactions with the given receiver's account id.\","]
6390    #[doc = "      \"type\": \"string\""]
6391    #[doc = "    }"]
6392    #[doc = "  }"]
6393    #[doc = "}"]
6394    #[doc = r" ```"]
6395    #[doc = r" </details>"]
6396    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6397    pub struct FunctionCallPermission {
6398        #[doc = "Allowance is a balance limit to use by this access key to pay for function call gas and\n transaction fees. When this access key is used, both account balance and the allowance is\n decreased by the same value.\n `None` means unlimited allowance.\n NOTE: To change or increase the allowance, the old access key needs to be deleted and a new\n access key should be created."]
6399        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
6400        pub allowance: ::std::option::Option<::std::string::String>,
6401        #[doc = "A list of method names that can be used. The access key only allows transactions with the\n function call of one of the given method names.\n Empty list means any method name can be used."]
6402        pub method_names: ::std::vec::Vec<::std::string::String>,
6403        #[doc = "The access key only allows transactions with the given receiver's account id."]
6404        pub receiver_id: ::std::string::String,
6405    }
6406    impl ::std::convert::From<&FunctionCallPermission> for FunctionCallPermission {
6407        fn from(value: &FunctionCallPermission) -> Self {
6408            value.clone()
6409        }
6410    }
6411    #[doc = "Configuration for garbage collection."]
6412    #[doc = r""]
6413    #[doc = r" <details><summary>JSON schema</summary>"]
6414    #[doc = r""]
6415    #[doc = r" ```json"]
6416    #[doc = "{"]
6417    #[doc = "  \"description\": \"Configuration for garbage collection.\","]
6418    #[doc = "  \"type\": \"object\","]
6419    #[doc = "  \"properties\": {"]
6420    #[doc = "    \"gc_blocks_limit\": {"]
6421    #[doc = "      \"description\": \"Maximum number of blocks to garbage collect at every garbage collection\\n call.\","]
6422    #[doc = "      \"default\": 2,"]
6423    #[doc = "      \"type\": \"integer\","]
6424    #[doc = "      \"format\": \"uint64\","]
6425    #[doc = "      \"minimum\": 0.0"]
6426    #[doc = "    },"]
6427    #[doc = "    \"gc_fork_clean_step\": {"]
6428    #[doc = "      \"description\": \"Maximum number of height to go through at each garbage collection step\\n when cleaning forks during garbage collection.\","]
6429    #[doc = "      \"default\": 100,"]
6430    #[doc = "      \"type\": \"integer\","]
6431    #[doc = "      \"format\": \"uint64\","]
6432    #[doc = "      \"minimum\": 0.0"]
6433    #[doc = "    },"]
6434    #[doc = "    \"gc_num_epochs_to_keep\": {"]
6435    #[doc = "      \"description\": \"Number of epochs for which we keep store data.\","]
6436    #[doc = "      \"default\": 5,"]
6437    #[doc = "      \"type\": \"integer\","]
6438    #[doc = "      \"format\": \"uint64\","]
6439    #[doc = "      \"minimum\": 0.0"]
6440    #[doc = "    },"]
6441    #[doc = "    \"gc_step_period\": {"]
6442    #[doc = "      \"description\": \"How often gc should be run\","]
6443    #[doc = "      \"default\": {"]
6444    #[doc = "        \"nanos\": 0,"]
6445    #[doc = "        \"secs\": 1"]
6446    #[doc = "      },"]
6447    #[doc = "      \"allOf\": ["]
6448    #[doc = "        {"]
6449    #[doc = "          \"$ref\": \"#/components/schemas/DurationAsStdSchemaProvider\""]
6450    #[doc = "        }"]
6451    #[doc = "      ]"]
6452    #[doc = "    }"]
6453    #[doc = "  }"]
6454    #[doc = "}"]
6455    #[doc = r" ```"]
6456    #[doc = r" </details>"]
6457    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6458    pub struct GcConfig {
6459        #[doc = "Maximum number of blocks to garbage collect at every garbage collection\n call."]
6460        #[serde(default = "defaults::default_u64::<u64, 2>")]
6461        pub gc_blocks_limit: u64,
6462        #[doc = "Maximum number of height to go through at each garbage collection step\n when cleaning forks during garbage collection."]
6463        #[serde(default = "defaults::default_u64::<u64, 100>")]
6464        pub gc_fork_clean_step: u64,
6465        #[doc = "Number of epochs for which we keep store data."]
6466        #[serde(default = "defaults::default_u64::<u64, 5>")]
6467        pub gc_num_epochs_to_keep: u64,
6468        #[doc = "How often gc should be run"]
6469        #[serde(default = "defaults::gc_config_gc_step_period")]
6470        pub gc_step_period: DurationAsStdSchemaProvider,
6471    }
6472    impl ::std::convert::From<&GcConfig> for GcConfig {
6473        fn from(value: &GcConfig) -> Self {
6474            value.clone()
6475        }
6476    }
6477    impl ::std::default::Default for GcConfig {
6478        fn default() -> Self {
6479            Self {
6480                gc_blocks_limit: defaults::default_u64::<u64, 2>(),
6481                gc_fork_clean_step: defaults::default_u64::<u64, 100>(),
6482                gc_num_epochs_to_keep: defaults::default_u64::<u64, 5>(),
6483                gc_step_period: defaults::gc_config_gc_step_period(),
6484            }
6485        }
6486    }
6487    #[doc = "`GenesisConfig`"]
6488    #[doc = r""]
6489    #[doc = r" <details><summary>JSON schema</summary>"]
6490    #[doc = r""]
6491    #[doc = r" ```json"]
6492    #[doc = "{"]
6493    #[doc = "  \"type\": \"object\","]
6494    #[doc = "  \"required\": ["]
6495    #[doc = "    \"avg_hidden_validator_seats_per_shard\","]
6496    #[doc = "    \"block_producer_kickout_threshold\","]
6497    #[doc = "    \"chain_id\","]
6498    #[doc = "    \"chunk_producer_kickout_threshold\","]
6499    #[doc = "    \"dynamic_resharding\","]
6500    #[doc = "    \"epoch_length\","]
6501    #[doc = "    \"fishermen_threshold\","]
6502    #[doc = "    \"gas_limit\","]
6503    #[doc = "    \"gas_price_adjustment_rate\","]
6504    #[doc = "    \"genesis_height\","]
6505    #[doc = "    \"genesis_time\","]
6506    #[doc = "    \"max_gas_price\","]
6507    #[doc = "    \"max_inflation_rate\","]
6508    #[doc = "    \"min_gas_price\","]
6509    #[doc = "    \"num_block_producer_seats\","]
6510    #[doc = "    \"num_block_producer_seats_per_shard\","]
6511    #[doc = "    \"num_blocks_per_year\","]
6512    #[doc = "    \"protocol_reward_rate\","]
6513    #[doc = "    \"protocol_treasury_account\","]
6514    #[doc = "    \"protocol_version\","]
6515    #[doc = "    \"total_supply\","]
6516    #[doc = "    \"transaction_validity_period\","]
6517    #[doc = "    \"validators\""]
6518    #[doc = "  ],"]
6519    #[doc = "  \"properties\": {"]
6520    #[doc = "    \"avg_hidden_validator_seats_per_shard\": {"]
6521    #[doc = "      \"description\": \"Expected number of hidden validators per shard.\","]
6522    #[doc = "      \"type\": \"array\","]
6523    #[doc = "      \"items\": {"]
6524    #[doc = "        \"type\": \"integer\","]
6525    #[doc = "        \"format\": \"uint64\","]
6526    #[doc = "        \"minimum\": 0.0"]
6527    #[doc = "      }"]
6528    #[doc = "    },"]
6529    #[doc = "    \"block_producer_kickout_threshold\": {"]
6530    #[doc = "      \"description\": \"Threshold for kicking out block producers, between 0 and 100.\","]
6531    #[doc = "      \"type\": \"integer\","]
6532    #[doc = "      \"format\": \"uint8\","]
6533    #[doc = "      \"minimum\": 0.0"]
6534    #[doc = "    },"]
6535    #[doc = "    \"chain_id\": {"]
6536    #[doc = "      \"description\": \"ID of the blockchain. This must be unique for every blockchain.\\n If your testnet blockchains do not have unique chain IDs, you will have a bad time.\","]
6537    #[doc = "      \"type\": \"string\""]
6538    #[doc = "    },"]
6539    #[doc = "    \"chunk_producer_assignment_changes_limit\": {"]
6540    #[doc = "      \"description\": \"Limits the number of shard changes in chunk producer assignments,\\n if algorithm is able to choose assignment with better balance of\\n number of chunk producers for shards.\","]
6541    #[doc = "      \"default\": 5,"]
6542    #[doc = "      \"type\": \"integer\","]
6543    #[doc = "      \"format\": \"uint64\","]
6544    #[doc = "      \"minimum\": 0.0"]
6545    #[doc = "    },"]
6546    #[doc = "    \"chunk_producer_kickout_threshold\": {"]
6547    #[doc = "      \"description\": \"Threshold for kicking out chunk producers, between 0 and 100.\","]
6548    #[doc = "      \"type\": \"integer\","]
6549    #[doc = "      \"format\": \"uint8\","]
6550    #[doc = "      \"minimum\": 0.0"]
6551    #[doc = "    },"]
6552    #[doc = "    \"chunk_validator_only_kickout_threshold\": {"]
6553    #[doc = "      \"description\": \"Threshold for kicking out nodes which are only chunk validators, between 0 and 100.\","]
6554    #[doc = "      \"default\": 80,"]
6555    #[doc = "      \"type\": \"integer\","]
6556    #[doc = "      \"format\": \"uint8\","]
6557    #[doc = "      \"minimum\": 0.0"]
6558    #[doc = "    },"]
6559    #[doc = "    \"dynamic_resharding\": {"]
6560    #[doc = "      \"description\": \"Enable dynamic re-sharding.\","]
6561    #[doc = "      \"type\": \"boolean\""]
6562    #[doc = "    },"]
6563    #[doc = "    \"epoch_length\": {"]
6564    #[doc = "      \"description\": \"Epoch length counted in block heights.\","]
6565    #[doc = "      \"type\": \"integer\","]
6566    #[doc = "      \"format\": \"uint64\","]
6567    #[doc = "      \"minimum\": 0.0"]
6568    #[doc = "    },"]
6569    #[doc = "    \"fishermen_threshold\": {"]
6570    #[doc = "      \"description\": \"Fishermen stake threshold.\","]
6571    #[doc = "      \"type\": \"string\""]
6572    #[doc = "    },"]
6573    #[doc = "    \"gas_limit\": {"]
6574    #[doc = "      \"description\": \"Initial gas limit.\","]
6575    #[doc = "      \"type\": \"integer\","]
6576    #[doc = "      \"format\": \"uint64\","]
6577    #[doc = "      \"minimum\": 0.0"]
6578    #[doc = "    },"]
6579    #[doc = "    \"gas_price_adjustment_rate\": {"]
6580    #[doc = "      \"description\": \"Gas price adjustment rate\","]
6581    #[doc = "      \"type\": \"array\","]
6582    #[doc = "      \"items\": {"]
6583    #[doc = "        \"type\": \"integer\","]
6584    #[doc = "        \"format\": \"int32\""]
6585    #[doc = "      },"]
6586    #[doc = "      \"maxItems\": 2,"]
6587    #[doc = "      \"minItems\": 2"]
6588    #[doc = "    },"]
6589    #[doc = "    \"genesis_height\": {"]
6590    #[doc = "      \"description\": \"Height of genesis block.\","]
6591    #[doc = "      \"type\": \"integer\","]
6592    #[doc = "      \"format\": \"uint64\","]
6593    #[doc = "      \"minimum\": 0.0"]
6594    #[doc = "    },"]
6595    #[doc = "    \"genesis_time\": {"]
6596    #[doc = "      \"description\": \"Official time of blockchain start.\","]
6597    #[doc = "      \"type\": \"string\","]
6598    #[doc = "      \"format\": \"date-time\""]
6599    #[doc = "    },"]
6600    #[doc = "    \"max_gas_price\": {"]
6601    #[doc = "      \"type\": \"string\""]
6602    #[doc = "    },"]
6603    #[doc = "    \"max_inflation_rate\": {"]
6604    #[doc = "      \"description\": \"Maximum inflation on the total supply every epoch.\","]
6605    #[doc = "      \"type\": \"array\","]
6606    #[doc = "      \"items\": {"]
6607    #[doc = "        \"type\": \"integer\","]
6608    #[doc = "        \"format\": \"int32\""]
6609    #[doc = "      },"]
6610    #[doc = "      \"maxItems\": 2,"]
6611    #[doc = "      \"minItems\": 2"]
6612    #[doc = "    },"]
6613    #[doc = "    \"max_kickout_stake_perc\": {"]
6614    #[doc = "      \"description\": \"Max stake percentage of the validators we will kick out.\","]
6615    #[doc = "      \"default\": 100,"]
6616    #[doc = "      \"type\": \"integer\","]
6617    #[doc = "      \"format\": \"uint8\","]
6618    #[doc = "      \"minimum\": 0.0"]
6619    #[doc = "    },"]
6620    #[doc = "    \"min_gas_price\": {"]
6621    #[doc = "      \"description\": \"Minimum gas price. It is also the initial gas price.\","]
6622    #[doc = "      \"type\": \"string\""]
6623    #[doc = "    },"]
6624    #[doc = "    \"minimum_stake_divisor\": {"]
6625    #[doc = "      \"description\": \"The minimum stake required for staking is last seat price divided by this number.\","]
6626    #[doc = "      \"default\": 10,"]
6627    #[doc = "      \"type\": \"integer\","]
6628    #[doc = "      \"format\": \"uint64\","]
6629    #[doc = "      \"minimum\": 0.0"]
6630    #[doc = "    },"]
6631    #[doc = "    \"minimum_stake_ratio\": {"]
6632    #[doc = "      \"description\": \"The lowest ratio s/s_total any block producer can have.\\n See <https://github.com/near/NEPs/pull/167> for details\","]
6633    #[doc = "      \"default\": ["]
6634    #[doc = "        1,"]
6635    #[doc = "        6250"]
6636    #[doc = "      ],"]
6637    #[doc = "      \"type\": \"array\","]
6638    #[doc = "      \"items\": {"]
6639    #[doc = "        \"type\": \"integer\","]
6640    #[doc = "        \"format\": \"int32\""]
6641    #[doc = "      },"]
6642    #[doc = "      \"maxItems\": 2,"]
6643    #[doc = "      \"minItems\": 2"]
6644    #[doc = "    },"]
6645    #[doc = "    \"minimum_validators_per_shard\": {"]
6646    #[doc = "      \"description\": \"The minimum number of validators each shard must have\","]
6647    #[doc = "      \"default\": 1,"]
6648    #[doc = "      \"type\": \"integer\","]
6649    #[doc = "      \"format\": \"uint64\","]
6650    #[doc = "      \"minimum\": 0.0"]
6651    #[doc = "    },"]
6652    #[doc = "    \"num_block_producer_seats\": {"]
6653    #[doc = "      \"description\": \"Number of block producer seats at genesis.\","]
6654    #[doc = "      \"type\": \"integer\","]
6655    #[doc = "      \"format\": \"uint64\","]
6656    #[doc = "      \"minimum\": 0.0"]
6657    #[doc = "    },"]
6658    #[doc = "    \"num_block_producer_seats_per_shard\": {"]
6659    #[doc = "      \"description\": \"Defines number of shards and number of block producer seats per each shard at genesis.\\n Note: not used with protocol_feature_chunk_only_producers -- replaced by minimum_validators_per_shard\\n Note: not used before as all block producers produce chunks for all shards\","]
6660    #[doc = "      \"type\": \"array\","]
6661    #[doc = "      \"items\": {"]
6662    #[doc = "        \"type\": \"integer\","]
6663    #[doc = "        \"format\": \"uint64\","]
6664    #[doc = "        \"minimum\": 0.0"]
6665    #[doc = "      }"]
6666    #[doc = "    },"]
6667    #[doc = "    \"num_blocks_per_year\": {"]
6668    #[doc = "      \"description\": \"Expected number of blocks per year\","]
6669    #[doc = "      \"type\": \"integer\","]
6670    #[doc = "      \"format\": \"uint64\","]
6671    #[doc = "      \"minimum\": 0.0"]
6672    #[doc = "    },"]
6673    #[doc = "    \"num_chunk_only_producer_seats\": {"]
6674    #[doc = "      \"description\": \"Deprecated.\","]
6675    #[doc = "      \"default\": 300,"]
6676    #[doc = "      \"type\": \"integer\","]
6677    #[doc = "      \"format\": \"uint64\","]
6678    #[doc = "      \"minimum\": 0.0"]
6679    #[doc = "    },"]
6680    #[doc = "    \"num_chunk_producer_seats\": {"]
6681    #[doc = "      \"description\": \"Number of chunk producers.\\n Don't mess it up with chunk-only producers feature which is deprecated.\","]
6682    #[doc = "      \"default\": 100,"]
6683    #[doc = "      \"type\": \"integer\","]
6684    #[doc = "      \"format\": \"uint64\","]
6685    #[doc = "      \"minimum\": 0.0"]
6686    #[doc = "    },"]
6687    #[doc = "    \"num_chunk_validator_seats\": {"]
6688    #[doc = "      \"default\": 300,"]
6689    #[doc = "      \"type\": \"integer\","]
6690    #[doc = "      \"format\": \"uint64\","]
6691    #[doc = "      \"minimum\": 0.0"]
6692    #[doc = "    },"]
6693    #[doc = "    \"online_max_threshold\": {"]
6694    #[doc = "      \"description\": \"Online maximum threshold above which validator gets full reward.\","]
6695    #[doc = "      \"default\": ["]
6696    #[doc = "        99,"]
6697    #[doc = "        100"]
6698    #[doc = "      ],"]
6699    #[doc = "      \"type\": \"array\","]
6700    #[doc = "      \"items\": {"]
6701    #[doc = "        \"type\": \"integer\","]
6702    #[doc = "        \"format\": \"int32\""]
6703    #[doc = "      },"]
6704    #[doc = "      \"maxItems\": 2,"]
6705    #[doc = "      \"minItems\": 2"]
6706    #[doc = "    },"]
6707    #[doc = "    \"online_min_threshold\": {"]
6708    #[doc = "      \"description\": \"Online minimum threshold below which validator doesn't receive reward.\","]
6709    #[doc = "      \"default\": ["]
6710    #[doc = "        9,"]
6711    #[doc = "        10"]
6712    #[doc = "      ],"]
6713    #[doc = "      \"type\": \"array\","]
6714    #[doc = "      \"items\": {"]
6715    #[doc = "        \"type\": \"integer\","]
6716    #[doc = "        \"format\": \"int32\""]
6717    #[doc = "      },"]
6718    #[doc = "      \"maxItems\": 2,"]
6719    #[doc = "      \"minItems\": 2"]
6720    #[doc = "    },"]
6721    #[doc = "    \"protocol_reward_rate\": {"]
6722    #[doc = "      \"description\": \"Protocol treasury rate\","]
6723    #[doc = "      \"type\": \"array\","]
6724    #[doc = "      \"items\": {"]
6725    #[doc = "        \"type\": \"integer\","]
6726    #[doc = "        \"format\": \"int32\""]
6727    #[doc = "      },"]
6728    #[doc = "      \"maxItems\": 2,"]
6729    #[doc = "      \"minItems\": 2"]
6730    #[doc = "    },"]
6731    #[doc = "    \"protocol_treasury_account\": {"]
6732    #[doc = "      \"description\": \"Protocol treasury account\","]
6733    #[doc = "      \"allOf\": ["]
6734    #[doc = "        {"]
6735    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
6736    #[doc = "        }"]
6737    #[doc = "      ]"]
6738    #[doc = "    },"]
6739    #[doc = "    \"protocol_upgrade_stake_threshold\": {"]
6740    #[doc = "      \"description\": \"Threshold of stake that needs to indicate that they ready for upgrade.\","]
6741    #[doc = "      \"default\": ["]
6742    #[doc = "        4,"]
6743    #[doc = "        5"]
6744    #[doc = "      ],"]
6745    #[doc = "      \"type\": \"array\","]
6746    #[doc = "      \"items\": {"]
6747    #[doc = "        \"type\": \"integer\","]
6748    #[doc = "        \"format\": \"int32\""]
6749    #[doc = "      },"]
6750    #[doc = "      \"maxItems\": 2,"]
6751    #[doc = "      \"minItems\": 2"]
6752    #[doc = "    },"]
6753    #[doc = "    \"protocol_version\": {"]
6754    #[doc = "      \"description\": \"Protocol version that this genesis works with.\","]
6755    #[doc = "      \"type\": \"integer\","]
6756    #[doc = "      \"format\": \"uint32\","]
6757    #[doc = "      \"minimum\": 0.0"]
6758    #[doc = "    },"]
6759    #[doc = "    \"shard_layout\": {"]
6760    #[doc = "      \"description\": \"Layout information regarding how to split accounts to shards\","]
6761    #[doc = "      \"default\": {"]
6762    #[doc = "        \"V2\": {"]
6763    #[doc = "          \"boundary_accounts\": [],"]
6764    #[doc = "          \"id_to_index_map\": {"]
6765    #[doc = "            \"0\": 0"]
6766    #[doc = "          },"]
6767    #[doc = "          \"index_to_id_map\": {"]
6768    #[doc = "            \"0\": 0"]
6769    #[doc = "          },"]
6770    #[doc = "          \"shard_ids\": ["]
6771    #[doc = "            0"]
6772    #[doc = "          ],"]
6773    #[doc = "          \"shards_parent_map\": null,"]
6774    #[doc = "          \"shards_split_map\": null,"]
6775    #[doc = "          \"version\": 0"]
6776    #[doc = "        }"]
6777    #[doc = "      },"]
6778    #[doc = "      \"allOf\": ["]
6779    #[doc = "        {"]
6780    #[doc = "          \"$ref\": \"#/components/schemas/ShardLayout\""]
6781    #[doc = "        }"]
6782    #[doc = "      ]"]
6783    #[doc = "    },"]
6784    #[doc = "    \"shuffle_shard_assignment_for_chunk_producers\": {"]
6785    #[doc = "      \"description\": \"If true, shuffle the chunk producers across shards. In other words, if\\n the shard assignments were `[S_0, S_1, S_2, S_3]` where `S_i` represents\\n the set of chunk producers for shard `i`, if this flag were true, the\\n shard assignments might become, for example, `[S_2, S_0, S_3, S_1]`.\","]
6786    #[doc = "      \"default\": false,"]
6787    #[doc = "      \"type\": \"boolean\""]
6788    #[doc = "    },"]
6789    #[doc = "    \"target_validator_mandates_per_shard\": {"]
6790    #[doc = "      \"description\": \"Number of target chunk validator mandates for each shard.\","]
6791    #[doc = "      \"default\": 68,"]
6792    #[doc = "      \"type\": \"integer\","]
6793    #[doc = "      \"format\": \"uint64\","]
6794    #[doc = "      \"minimum\": 0.0"]
6795    #[doc = "    },"]
6796    #[doc = "    \"total_supply\": {"]
6797    #[doc = "      \"description\": \"Total supply of tokens at genesis.\","]
6798    #[doc = "      \"type\": \"string\""]
6799    #[doc = "    },"]
6800    #[doc = "    \"transaction_validity_period\": {"]
6801    #[doc = "      \"description\": \"Number of blocks for which a given transaction is valid\","]
6802    #[doc = "      \"type\": \"integer\","]
6803    #[doc = "      \"format\": \"uint64\","]
6804    #[doc = "      \"minimum\": 0.0"]
6805    #[doc = "    },"]
6806    #[doc = "    \"use_production_config\": {"]
6807    #[doc = "      \"description\": \"This is only for test purposes. We hard code some configs for mainnet and testnet\\n in AllEpochConfig, and we want to have a way to test that code path. This flag is for that.\\n If set to true, the node will use the same config override path as mainnet and testnet.\","]
6808    #[doc = "      \"default\": false,"]
6809    #[doc = "      \"type\": \"boolean\""]
6810    #[doc = "    },"]
6811    #[doc = "    \"validators\": {"]
6812    #[doc = "      \"description\": \"List of initial validators.\","]
6813    #[doc = "      \"type\": \"array\","]
6814    #[doc = "      \"items\": {"]
6815    #[doc = "        \"$ref\": \"#/components/schemas/AccountInfo\""]
6816    #[doc = "      }"]
6817    #[doc = "    }"]
6818    #[doc = "  }"]
6819    #[doc = "}"]
6820    #[doc = r" ```"]
6821    #[doc = r" </details>"]
6822    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6823    pub struct GenesisConfig {
6824        #[doc = "Expected number of hidden validators per shard."]
6825        pub avg_hidden_validator_seats_per_shard: ::std::vec::Vec<u64>,
6826        #[doc = "Threshold for kicking out block producers, between 0 and 100."]
6827        pub block_producer_kickout_threshold: u8,
6828        #[doc = "ID of the blockchain. This must be unique for every blockchain.\n If your testnet blockchains do not have unique chain IDs, you will have a bad time."]
6829        pub chain_id: ::std::string::String,
6830        #[doc = "Limits the number of shard changes in chunk producer assignments,\n if algorithm is able to choose assignment with better balance of\n number of chunk producers for shards."]
6831        #[serde(default = "defaults::default_u64::<u64, 5>")]
6832        pub chunk_producer_assignment_changes_limit: u64,
6833        #[doc = "Threshold for kicking out chunk producers, between 0 and 100."]
6834        pub chunk_producer_kickout_threshold: u8,
6835        #[doc = "Threshold for kicking out nodes which are only chunk validators, between 0 and 100."]
6836        #[serde(default = "defaults::default_u64::<u8, 80>")]
6837        pub chunk_validator_only_kickout_threshold: u8,
6838        #[doc = "Enable dynamic re-sharding."]
6839        pub dynamic_resharding: bool,
6840        #[doc = "Epoch length counted in block heights."]
6841        pub epoch_length: u64,
6842        #[doc = "Fishermen stake threshold."]
6843        pub fishermen_threshold: ::std::string::String,
6844        #[doc = "Initial gas limit."]
6845        pub gas_limit: u64,
6846        #[doc = "Gas price adjustment rate"]
6847        pub gas_price_adjustment_rate: [i32; 2usize],
6848        #[doc = "Height of genesis block."]
6849        pub genesis_height: u64,
6850        #[doc = "Official time of blockchain start."]
6851        pub genesis_time: ::chrono::DateTime<::chrono::offset::Utc>,
6852        pub max_gas_price: ::std::string::String,
6853        #[doc = "Maximum inflation on the total supply every epoch."]
6854        pub max_inflation_rate: [i32; 2usize],
6855        #[doc = "Max stake percentage of the validators we will kick out."]
6856        #[serde(default = "defaults::default_u64::<u8, 100>")]
6857        pub max_kickout_stake_perc: u8,
6858        #[doc = "Minimum gas price. It is also the initial gas price."]
6859        pub min_gas_price: ::std::string::String,
6860        #[doc = "The minimum stake required for staking is last seat price divided by this number."]
6861        #[serde(default = "defaults::default_u64::<u64, 10>")]
6862        pub minimum_stake_divisor: u64,
6863        #[doc = "The lowest ratio s/s_total any block producer can have.\n See <https://github.com/near/NEPs/pull/167> for details"]
6864        #[serde(default = "defaults::genesis_config_minimum_stake_ratio")]
6865        pub minimum_stake_ratio: [i32; 2usize],
6866        #[doc = "The minimum number of validators each shard must have"]
6867        #[serde(default = "defaults::default_u64::<u64, 1>")]
6868        pub minimum_validators_per_shard: u64,
6869        #[doc = "Number of block producer seats at genesis."]
6870        pub num_block_producer_seats: u64,
6871        #[doc = "Defines number of shards and number of block producer seats per each shard at genesis.\n Note: not used with protocol_feature_chunk_only_producers -- replaced by minimum_validators_per_shard\n Note: not used before as all block producers produce chunks for all shards"]
6872        pub num_block_producer_seats_per_shard: ::std::vec::Vec<u64>,
6873        #[doc = "Expected number of blocks per year"]
6874        pub num_blocks_per_year: u64,
6875        #[doc = "Deprecated."]
6876        #[serde(default = "defaults::default_u64::<u64, 300>")]
6877        pub num_chunk_only_producer_seats: u64,
6878        #[doc = "Number of chunk producers.\n Don't mess it up with chunk-only producers feature which is deprecated."]
6879        #[serde(default = "defaults::default_u64::<u64, 100>")]
6880        pub num_chunk_producer_seats: u64,
6881        #[serde(default = "defaults::default_u64::<u64, 300>")]
6882        pub num_chunk_validator_seats: u64,
6883        #[doc = "Online maximum threshold above which validator gets full reward."]
6884        #[serde(default = "defaults::genesis_config_online_max_threshold")]
6885        pub online_max_threshold: [i32; 2usize],
6886        #[doc = "Online minimum threshold below which validator doesn't receive reward."]
6887        #[serde(default = "defaults::genesis_config_online_min_threshold")]
6888        pub online_min_threshold: [i32; 2usize],
6889        #[doc = "Protocol treasury rate"]
6890        pub protocol_reward_rate: [i32; 2usize],
6891        #[doc = "Protocol treasury account"]
6892        pub protocol_treasury_account: AccountId,
6893        #[doc = "Threshold of stake that needs to indicate that they ready for upgrade."]
6894        #[serde(default = "defaults::genesis_config_protocol_upgrade_stake_threshold")]
6895        pub protocol_upgrade_stake_threshold: [i32; 2usize],
6896        #[doc = "Protocol version that this genesis works with."]
6897        pub protocol_version: u32,
6898        #[doc = "Layout information regarding how to split accounts to shards"]
6899        #[serde(default = "defaults::genesis_config_shard_layout")]
6900        pub shard_layout: ShardLayout,
6901        #[doc = "If true, shuffle the chunk producers across shards. In other words, if\n the shard assignments were `[S_0, S_1, S_2, S_3]` where `S_i` represents\n the set of chunk producers for shard `i`, if this flag were true, the\n shard assignments might become, for example, `[S_2, S_0, S_3, S_1]`."]
6902        #[serde(default)]
6903        pub shuffle_shard_assignment_for_chunk_producers: bool,
6904        #[doc = "Number of target chunk validator mandates for each shard."]
6905        #[serde(default = "defaults::default_u64::<u64, 68>")]
6906        pub target_validator_mandates_per_shard: u64,
6907        #[doc = "Total supply of tokens at genesis."]
6908        pub total_supply: ::std::string::String,
6909        #[doc = "Number of blocks for which a given transaction is valid"]
6910        pub transaction_validity_period: u64,
6911        #[doc = "This is only for test purposes. We hard code some configs for mainnet and testnet\n in AllEpochConfig, and we want to have a way to test that code path. This flag is for that.\n If set to true, the node will use the same config override path as mainnet and testnet."]
6912        #[serde(default)]
6913        pub use_production_config: bool,
6914        #[doc = "List of initial validators."]
6915        pub validators: ::std::vec::Vec<AccountInfo>,
6916    }
6917    impl ::std::convert::From<&GenesisConfig> for GenesisConfig {
6918        fn from(value: &GenesisConfig) -> Self {
6919            value.clone()
6920        }
6921    }
6922    #[doc = "`GenesisConfigRequest`"]
6923    #[doc = r""]
6924    #[doc = r" <details><summary>JSON schema</summary>"]
6925    #[doc = r""]
6926    #[doc = r" ```json"]
6927    #[doc = "{"]
6928    #[doc = "  \"title\": \"GenesisConfigRequest\","]
6929    #[doc = "  \"type\": \"object\""]
6930    #[doc = "}"]
6931    #[doc = r" ```"]
6932    #[doc = r" </details>"]
6933    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6934    #[serde(transparent)]
6935    pub struct GenesisConfigRequest(
6936        pub ::serde_json::Map<::std::string::String, ::serde_json::Value>,
6937    );
6938    impl ::std::ops::Deref for GenesisConfigRequest {
6939        type Target = ::serde_json::Map<::std::string::String, ::serde_json::Value>;
6940        fn deref(&self) -> &::serde_json::Map<::std::string::String, ::serde_json::Value> {
6941            &self.0
6942        }
6943    }
6944    impl ::std::convert::From<GenesisConfigRequest>
6945        for ::serde_json::Map<::std::string::String, ::serde_json::Value>
6946    {
6947        fn from(value: GenesisConfigRequest) -> Self {
6948            value.0
6949        }
6950    }
6951    impl ::std::convert::From<&GenesisConfigRequest> for GenesisConfigRequest {
6952        fn from(value: &GenesisConfigRequest) -> Self {
6953            value.clone()
6954        }
6955    }
6956    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6957        for GenesisConfigRequest
6958    {
6959        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6960            Self(value)
6961        }
6962    }
6963    #[doc = "`GlobalContractDeployMode`"]
6964    #[doc = r""]
6965    #[doc = r" <details><summary>JSON schema</summary>"]
6966    #[doc = r""]
6967    #[doc = r" ```json"]
6968    #[doc = "{"]
6969    #[doc = "  \"oneOf\": ["]
6970    #[doc = "    {"]
6971    #[doc = "      \"description\": \"Contract is deployed under its code hash.\\n Users will be able reference it by that hash.\\n This effectively makes the contract immutable.\","]
6972    #[doc = "      \"type\": \"string\","]
6973    #[doc = "      \"enum\": ["]
6974    #[doc = "        \"CodeHash\""]
6975    #[doc = "      ]"]
6976    #[doc = "    },"]
6977    #[doc = "    {"]
6978    #[doc = "      \"description\": \"Contract is deployed under the owner account id.\\n Users will be able reference it by that account id.\\n This allows the owner to update the contract for all its users.\","]
6979    #[doc = "      \"type\": \"string\","]
6980    #[doc = "      \"enum\": ["]
6981    #[doc = "        \"AccountId\""]
6982    #[doc = "      ]"]
6983    #[doc = "    }"]
6984    #[doc = "  ]"]
6985    #[doc = "}"]
6986    #[doc = r" ```"]
6987    #[doc = r" </details>"]
6988    #[derive(
6989        :: serde :: Deserialize,
6990        :: serde :: Serialize,
6991        Clone,
6992        Copy,
6993        Debug,
6994        Eq,
6995        Hash,
6996        Ord,
6997        PartialEq,
6998        PartialOrd,
6999    )]
7000    pub enum GlobalContractDeployMode {
7001        #[doc = "Contract is deployed under its code hash.\n Users will be able reference it by that hash.\n This effectively makes the contract immutable."]
7002        CodeHash,
7003        #[doc = "Contract is deployed under the owner account id.\n Users will be able reference it by that account id.\n This allows the owner to update the contract for all its users."]
7004        AccountId,
7005    }
7006    impl ::std::convert::From<&Self> for GlobalContractDeployMode {
7007        fn from(value: &GlobalContractDeployMode) -> Self {
7008            value.clone()
7009        }
7010    }
7011    impl ::std::fmt::Display for GlobalContractDeployMode {
7012        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7013            match *self {
7014                Self::CodeHash => write!(f, "CodeHash"),
7015                Self::AccountId => write!(f, "AccountId"),
7016            }
7017        }
7018    }
7019    impl ::std::str::FromStr for GlobalContractDeployMode {
7020        type Err = self::error::ConversionError;
7021        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
7022            match value {
7023                "CodeHash" => Ok(Self::CodeHash),
7024                "AccountId" => Ok(Self::AccountId),
7025                _ => Err("invalid value".into()),
7026            }
7027        }
7028    }
7029    impl ::std::convert::TryFrom<&str> for GlobalContractDeployMode {
7030        type Error = self::error::ConversionError;
7031        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
7032            value.parse()
7033        }
7034    }
7035    impl ::std::convert::TryFrom<&::std::string::String> for GlobalContractDeployMode {
7036        type Error = self::error::ConversionError;
7037        fn try_from(
7038            value: &::std::string::String,
7039        ) -> ::std::result::Result<Self, self::error::ConversionError> {
7040            value.parse()
7041        }
7042    }
7043    impl ::std::convert::TryFrom<::std::string::String> for GlobalContractDeployMode {
7044        type Error = self::error::ConversionError;
7045        fn try_from(
7046            value: ::std::string::String,
7047        ) -> ::std::result::Result<Self, self::error::ConversionError> {
7048            value.parse()
7049        }
7050    }
7051    #[doc = "`GlobalContractIdentifier`"]
7052    #[doc = r""]
7053    #[doc = r" <details><summary>JSON schema</summary>"]
7054    #[doc = r""]
7055    #[doc = r" ```json"]
7056    #[doc = "{"]
7057    #[doc = "  \"oneOf\": ["]
7058    #[doc = "    {"]
7059    #[doc = "      \"type\": \"object\","]
7060    #[doc = "      \"required\": ["]
7061    #[doc = "        \"CodeHash\""]
7062    #[doc = "      ],"]
7063    #[doc = "      \"properties\": {"]
7064    #[doc = "        \"CodeHash\": {"]
7065    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
7066    #[doc = "        }"]
7067    #[doc = "      },"]
7068    #[doc = "      \"additionalProperties\": false"]
7069    #[doc = "    },"]
7070    #[doc = "    {"]
7071    #[doc = "      \"type\": \"object\","]
7072    #[doc = "      \"required\": ["]
7073    #[doc = "        \"AccountId\""]
7074    #[doc = "      ],"]
7075    #[doc = "      \"properties\": {"]
7076    #[doc = "        \"AccountId\": {"]
7077    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
7078    #[doc = "        }"]
7079    #[doc = "      },"]
7080    #[doc = "      \"additionalProperties\": false"]
7081    #[doc = "    }"]
7082    #[doc = "  ]"]
7083    #[doc = "}"]
7084    #[doc = r" ```"]
7085    #[doc = r" </details>"]
7086    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7087    pub enum GlobalContractIdentifier {
7088        CodeHash(CryptoHash),
7089        AccountId(AccountId),
7090    }
7091    impl ::std::convert::From<&Self> for GlobalContractIdentifier {
7092        fn from(value: &GlobalContractIdentifier) -> Self {
7093            value.clone()
7094        }
7095    }
7096    impl ::std::convert::From<CryptoHash> for GlobalContractIdentifier {
7097        fn from(value: CryptoHash) -> Self {
7098            Self::CodeHash(value)
7099        }
7100    }
7101    impl ::std::convert::From<AccountId> for GlobalContractIdentifier {
7102        fn from(value: AccountId) -> Self {
7103            Self::AccountId(value)
7104        }
7105    }
7106    #[doc = "`HostError`"]
7107    #[doc = r""]
7108    #[doc = r" <details><summary>JSON schema</summary>"]
7109    #[doc = r""]
7110    #[doc = r" ```json"]
7111    #[doc = "{"]
7112    #[doc = "  \"oneOf\": ["]
7113    #[doc = "    {"]
7114    #[doc = "      \"description\": \"String encoding is bad UTF-16 sequence\","]
7115    #[doc = "      \"type\": \"string\","]
7116    #[doc = "      \"enum\": ["]
7117    #[doc = "        \"BadUTF16\""]
7118    #[doc = "      ]"]
7119    #[doc = "    },"]
7120    #[doc = "    {"]
7121    #[doc = "      \"description\": \"String encoding is bad UTF-8 sequence\","]
7122    #[doc = "      \"type\": \"string\","]
7123    #[doc = "      \"enum\": ["]
7124    #[doc = "        \"BadUTF8\""]
7125    #[doc = "      ]"]
7126    #[doc = "    },"]
7127    #[doc = "    {"]
7128    #[doc = "      \"description\": \"Exceeded the prepaid gas\","]
7129    #[doc = "      \"type\": \"string\","]
7130    #[doc = "      \"enum\": ["]
7131    #[doc = "        \"GasExceeded\""]
7132    #[doc = "      ]"]
7133    #[doc = "    },"]
7134    #[doc = "    {"]
7135    #[doc = "      \"description\": \"Exceeded the maximum amount of gas allowed to burn per contract\","]
7136    #[doc = "      \"type\": \"string\","]
7137    #[doc = "      \"enum\": ["]
7138    #[doc = "        \"GasLimitExceeded\""]
7139    #[doc = "      ]"]
7140    #[doc = "    },"]
7141    #[doc = "    {"]
7142    #[doc = "      \"description\": \"Exceeded the account balance\","]
7143    #[doc = "      \"type\": \"string\","]
7144    #[doc = "      \"enum\": ["]
7145    #[doc = "        \"BalanceExceeded\""]
7146    #[doc = "      ]"]
7147    #[doc = "    },"]
7148    #[doc = "    {"]
7149    #[doc = "      \"description\": \"Tried to call an empty method name\","]
7150    #[doc = "      \"type\": \"string\","]
7151    #[doc = "      \"enum\": ["]
7152    #[doc = "        \"EmptyMethodName\""]
7153    #[doc = "      ]"]
7154    #[doc = "    },"]
7155    #[doc = "    {"]
7156    #[doc = "      \"description\": \"Smart contract panicked\","]
7157    #[doc = "      \"type\": \"object\","]
7158    #[doc = "      \"required\": ["]
7159    #[doc = "        \"GuestPanic\""]
7160    #[doc = "      ],"]
7161    #[doc = "      \"properties\": {"]
7162    #[doc = "        \"GuestPanic\": {"]
7163    #[doc = "          \"type\": \"object\","]
7164    #[doc = "          \"required\": ["]
7165    #[doc = "            \"panic_msg\""]
7166    #[doc = "          ],"]
7167    #[doc = "          \"properties\": {"]
7168    #[doc = "            \"panic_msg\": {"]
7169    #[doc = "              \"type\": \"string\""]
7170    #[doc = "            }"]
7171    #[doc = "          }"]
7172    #[doc = "        }"]
7173    #[doc = "      },"]
7174    #[doc = "      \"additionalProperties\": false"]
7175    #[doc = "    },"]
7176    #[doc = "    {"]
7177    #[doc = "      \"description\": \"IntegerOverflow happened during a contract execution\","]
7178    #[doc = "      \"type\": \"string\","]
7179    #[doc = "      \"enum\": ["]
7180    #[doc = "        \"IntegerOverflow\""]
7181    #[doc = "      ]"]
7182    #[doc = "    },"]
7183    #[doc = "    {"]
7184    #[doc = "      \"description\": \"`promise_idx` does not correspond to existing promises\","]
7185    #[doc = "      \"type\": \"object\","]
7186    #[doc = "      \"required\": ["]
7187    #[doc = "        \"InvalidPromiseIndex\""]
7188    #[doc = "      ],"]
7189    #[doc = "      \"properties\": {"]
7190    #[doc = "        \"InvalidPromiseIndex\": {"]
7191    #[doc = "          \"type\": \"object\","]
7192    #[doc = "          \"required\": ["]
7193    #[doc = "            \"promise_idx\""]
7194    #[doc = "          ],"]
7195    #[doc = "          \"properties\": {"]
7196    #[doc = "            \"promise_idx\": {"]
7197    #[doc = "              \"type\": \"integer\","]
7198    #[doc = "              \"format\": \"uint64\","]
7199    #[doc = "              \"minimum\": 0.0"]
7200    #[doc = "            }"]
7201    #[doc = "          }"]
7202    #[doc = "        }"]
7203    #[doc = "      },"]
7204    #[doc = "      \"additionalProperties\": false"]
7205    #[doc = "    },"]
7206    #[doc = "    {"]
7207    #[doc = "      \"description\": \"Actions can only be appended to non-joint promise.\","]
7208    #[doc = "      \"type\": \"string\","]
7209    #[doc = "      \"enum\": ["]
7210    #[doc = "        \"CannotAppendActionToJointPromise\""]
7211    #[doc = "      ]"]
7212    #[doc = "    },"]
7213    #[doc = "    {"]
7214    #[doc = "      \"description\": \"Returning joint promise is currently prohibited\","]
7215    #[doc = "      \"type\": \"string\","]
7216    #[doc = "      \"enum\": ["]
7217    #[doc = "        \"CannotReturnJointPromise\""]
7218    #[doc = "      ]"]
7219    #[doc = "    },"]
7220    #[doc = "    {"]
7221    #[doc = "      \"description\": \"Accessed invalid promise result index\","]
7222    #[doc = "      \"type\": \"object\","]
7223    #[doc = "      \"required\": ["]
7224    #[doc = "        \"InvalidPromiseResultIndex\""]
7225    #[doc = "      ],"]
7226    #[doc = "      \"properties\": {"]
7227    #[doc = "        \"InvalidPromiseResultIndex\": {"]
7228    #[doc = "          \"type\": \"object\","]
7229    #[doc = "          \"required\": ["]
7230    #[doc = "            \"result_idx\""]
7231    #[doc = "          ],"]
7232    #[doc = "          \"properties\": {"]
7233    #[doc = "            \"result_idx\": {"]
7234    #[doc = "              \"type\": \"integer\","]
7235    #[doc = "              \"format\": \"uint64\","]
7236    #[doc = "              \"minimum\": 0.0"]
7237    #[doc = "            }"]
7238    #[doc = "          }"]
7239    #[doc = "        }"]
7240    #[doc = "      },"]
7241    #[doc = "      \"additionalProperties\": false"]
7242    #[doc = "    },"]
7243    #[doc = "    {"]
7244    #[doc = "      \"description\": \"Accessed invalid register id\","]
7245    #[doc = "      \"type\": \"object\","]
7246    #[doc = "      \"required\": ["]
7247    #[doc = "        \"InvalidRegisterId\""]
7248    #[doc = "      ],"]
7249    #[doc = "      \"properties\": {"]
7250    #[doc = "        \"InvalidRegisterId\": {"]
7251    #[doc = "          \"type\": \"object\","]
7252    #[doc = "          \"required\": ["]
7253    #[doc = "            \"register_id\""]
7254    #[doc = "          ],"]
7255    #[doc = "          \"properties\": {"]
7256    #[doc = "            \"register_id\": {"]
7257    #[doc = "              \"type\": \"integer\","]
7258    #[doc = "              \"format\": \"uint64\","]
7259    #[doc = "              \"minimum\": 0.0"]
7260    #[doc = "            }"]
7261    #[doc = "          }"]
7262    #[doc = "        }"]
7263    #[doc = "      },"]
7264    #[doc = "      \"additionalProperties\": false"]
7265    #[doc = "    },"]
7266    #[doc = "    {"]
7267    #[doc = "      \"description\": \"Iterator `iterator_index` was invalidated after its creation by performing a mutable operation on trie\","]
7268    #[doc = "      \"type\": \"object\","]
7269    #[doc = "      \"required\": ["]
7270    #[doc = "        \"IteratorWasInvalidated\""]
7271    #[doc = "      ],"]
7272    #[doc = "      \"properties\": {"]
7273    #[doc = "        \"IteratorWasInvalidated\": {"]
7274    #[doc = "          \"type\": \"object\","]
7275    #[doc = "          \"required\": ["]
7276    #[doc = "            \"iterator_index\""]
7277    #[doc = "          ],"]
7278    #[doc = "          \"properties\": {"]
7279    #[doc = "            \"iterator_index\": {"]
7280    #[doc = "              \"type\": \"integer\","]
7281    #[doc = "              \"format\": \"uint64\","]
7282    #[doc = "              \"minimum\": 0.0"]
7283    #[doc = "            }"]
7284    #[doc = "          }"]
7285    #[doc = "        }"]
7286    #[doc = "      },"]
7287    #[doc = "      \"additionalProperties\": false"]
7288    #[doc = "    },"]
7289    #[doc = "    {"]
7290    #[doc = "      \"description\": \"Accessed memory outside the bounds\","]
7291    #[doc = "      \"type\": \"string\","]
7292    #[doc = "      \"enum\": ["]
7293    #[doc = "        \"MemoryAccessViolation\""]
7294    #[doc = "      ]"]
7295    #[doc = "    },"]
7296    #[doc = "    {"]
7297    #[doc = "      \"description\": \"VM Logic returned an invalid receipt index\","]
7298    #[doc = "      \"type\": \"object\","]
7299    #[doc = "      \"required\": ["]
7300    #[doc = "        \"InvalidReceiptIndex\""]
7301    #[doc = "      ],"]
7302    #[doc = "      \"properties\": {"]
7303    #[doc = "        \"InvalidReceiptIndex\": {"]
7304    #[doc = "          \"type\": \"object\","]
7305    #[doc = "          \"required\": ["]
7306    #[doc = "            \"receipt_index\""]
7307    #[doc = "          ],"]
7308    #[doc = "          \"properties\": {"]
7309    #[doc = "            \"receipt_index\": {"]
7310    #[doc = "              \"type\": \"integer\","]
7311    #[doc = "              \"format\": \"uint64\","]
7312    #[doc = "              \"minimum\": 0.0"]
7313    #[doc = "            }"]
7314    #[doc = "          }"]
7315    #[doc = "        }"]
7316    #[doc = "      },"]
7317    #[doc = "      \"additionalProperties\": false"]
7318    #[doc = "    },"]
7319    #[doc = "    {"]
7320    #[doc = "      \"description\": \"Iterator index `iterator_index` does not exist\","]
7321    #[doc = "      \"type\": \"object\","]
7322    #[doc = "      \"required\": ["]
7323    #[doc = "        \"InvalidIteratorIndex\""]
7324    #[doc = "      ],"]
7325    #[doc = "      \"properties\": {"]
7326    #[doc = "        \"InvalidIteratorIndex\": {"]
7327    #[doc = "          \"type\": \"object\","]
7328    #[doc = "          \"required\": ["]
7329    #[doc = "            \"iterator_index\""]
7330    #[doc = "          ],"]
7331    #[doc = "          \"properties\": {"]
7332    #[doc = "            \"iterator_index\": {"]
7333    #[doc = "              \"type\": \"integer\","]
7334    #[doc = "              \"format\": \"uint64\","]
7335    #[doc = "              \"minimum\": 0.0"]
7336    #[doc = "            }"]
7337    #[doc = "          }"]
7338    #[doc = "        }"]
7339    #[doc = "      },"]
7340    #[doc = "      \"additionalProperties\": false"]
7341    #[doc = "    },"]
7342    #[doc = "    {"]
7343    #[doc = "      \"description\": \"VM Logic returned an invalid account id\","]
7344    #[doc = "      \"type\": \"string\","]
7345    #[doc = "      \"enum\": ["]
7346    #[doc = "        \"InvalidAccountId\""]
7347    #[doc = "      ]"]
7348    #[doc = "    },"]
7349    #[doc = "    {"]
7350    #[doc = "      \"description\": \"VM Logic returned an invalid method name\","]
7351    #[doc = "      \"type\": \"string\","]
7352    #[doc = "      \"enum\": ["]
7353    #[doc = "        \"InvalidMethodName\""]
7354    #[doc = "      ]"]
7355    #[doc = "    },"]
7356    #[doc = "    {"]
7357    #[doc = "      \"description\": \"VM Logic provided an invalid public key\","]
7358    #[doc = "      \"type\": \"string\","]
7359    #[doc = "      \"enum\": ["]
7360    #[doc = "        \"InvalidPublicKey\""]
7361    #[doc = "      ]"]
7362    #[doc = "    },"]
7363    #[doc = "    {"]
7364    #[doc = "      \"description\": \"`method_name` is not allowed in view calls\","]
7365    #[doc = "      \"type\": \"object\","]
7366    #[doc = "      \"required\": ["]
7367    #[doc = "        \"ProhibitedInView\""]
7368    #[doc = "      ],"]
7369    #[doc = "      \"properties\": {"]
7370    #[doc = "        \"ProhibitedInView\": {"]
7371    #[doc = "          \"type\": \"object\","]
7372    #[doc = "          \"required\": ["]
7373    #[doc = "            \"method_name\""]
7374    #[doc = "          ],"]
7375    #[doc = "          \"properties\": {"]
7376    #[doc = "            \"method_name\": {"]
7377    #[doc = "              \"type\": \"string\""]
7378    #[doc = "            }"]
7379    #[doc = "          }"]
7380    #[doc = "        }"]
7381    #[doc = "      },"]
7382    #[doc = "      \"additionalProperties\": false"]
7383    #[doc = "    },"]
7384    #[doc = "    {"]
7385    #[doc = "      \"description\": \"The total number of logs will exceed the limit.\","]
7386    #[doc = "      \"type\": \"object\","]
7387    #[doc = "      \"required\": ["]
7388    #[doc = "        \"NumberOfLogsExceeded\""]
7389    #[doc = "      ],"]
7390    #[doc = "      \"properties\": {"]
7391    #[doc = "        \"NumberOfLogsExceeded\": {"]
7392    #[doc = "          \"type\": \"object\","]
7393    #[doc = "          \"required\": ["]
7394    #[doc = "            \"limit\""]
7395    #[doc = "          ],"]
7396    #[doc = "          \"properties\": {"]
7397    #[doc = "            \"limit\": {"]
7398    #[doc = "              \"type\": \"integer\","]
7399    #[doc = "              \"format\": \"uint64\","]
7400    #[doc = "              \"minimum\": 0.0"]
7401    #[doc = "            }"]
7402    #[doc = "          }"]
7403    #[doc = "        }"]
7404    #[doc = "      },"]
7405    #[doc = "      \"additionalProperties\": false"]
7406    #[doc = "    },"]
7407    #[doc = "    {"]
7408    #[doc = "      \"description\": \"The storage key length exceeded the limit.\","]
7409    #[doc = "      \"type\": \"object\","]
7410    #[doc = "      \"required\": ["]
7411    #[doc = "        \"KeyLengthExceeded\""]
7412    #[doc = "      ],"]
7413    #[doc = "      \"properties\": {"]
7414    #[doc = "        \"KeyLengthExceeded\": {"]
7415    #[doc = "          \"type\": \"object\","]
7416    #[doc = "          \"required\": ["]
7417    #[doc = "            \"length\","]
7418    #[doc = "            \"limit\""]
7419    #[doc = "          ],"]
7420    #[doc = "          \"properties\": {"]
7421    #[doc = "            \"length\": {"]
7422    #[doc = "              \"type\": \"integer\","]
7423    #[doc = "              \"format\": \"uint64\","]
7424    #[doc = "              \"minimum\": 0.0"]
7425    #[doc = "            },"]
7426    #[doc = "            \"limit\": {"]
7427    #[doc = "              \"type\": \"integer\","]
7428    #[doc = "              \"format\": \"uint64\","]
7429    #[doc = "              \"minimum\": 0.0"]
7430    #[doc = "            }"]
7431    #[doc = "          }"]
7432    #[doc = "        }"]
7433    #[doc = "      },"]
7434    #[doc = "      \"additionalProperties\": false"]
7435    #[doc = "    },"]
7436    #[doc = "    {"]
7437    #[doc = "      \"description\": \"The storage value length exceeded the limit.\","]
7438    #[doc = "      \"type\": \"object\","]
7439    #[doc = "      \"required\": ["]
7440    #[doc = "        \"ValueLengthExceeded\""]
7441    #[doc = "      ],"]
7442    #[doc = "      \"properties\": {"]
7443    #[doc = "        \"ValueLengthExceeded\": {"]
7444    #[doc = "          \"type\": \"object\","]
7445    #[doc = "          \"required\": ["]
7446    #[doc = "            \"length\","]
7447    #[doc = "            \"limit\""]
7448    #[doc = "          ],"]
7449    #[doc = "          \"properties\": {"]
7450    #[doc = "            \"length\": {"]
7451    #[doc = "              \"type\": \"integer\","]
7452    #[doc = "              \"format\": \"uint64\","]
7453    #[doc = "              \"minimum\": 0.0"]
7454    #[doc = "            },"]
7455    #[doc = "            \"limit\": {"]
7456    #[doc = "              \"type\": \"integer\","]
7457    #[doc = "              \"format\": \"uint64\","]
7458    #[doc = "              \"minimum\": 0.0"]
7459    #[doc = "            }"]
7460    #[doc = "          }"]
7461    #[doc = "        }"]
7462    #[doc = "      },"]
7463    #[doc = "      \"additionalProperties\": false"]
7464    #[doc = "    },"]
7465    #[doc = "    {"]
7466    #[doc = "      \"description\": \"The total log length exceeded the limit.\","]
7467    #[doc = "      \"type\": \"object\","]
7468    #[doc = "      \"required\": ["]
7469    #[doc = "        \"TotalLogLengthExceeded\""]
7470    #[doc = "      ],"]
7471    #[doc = "      \"properties\": {"]
7472    #[doc = "        \"TotalLogLengthExceeded\": {"]
7473    #[doc = "          \"type\": \"object\","]
7474    #[doc = "          \"required\": ["]
7475    #[doc = "            \"length\","]
7476    #[doc = "            \"limit\""]
7477    #[doc = "          ],"]
7478    #[doc = "          \"properties\": {"]
7479    #[doc = "            \"length\": {"]
7480    #[doc = "              \"type\": \"integer\","]
7481    #[doc = "              \"format\": \"uint64\","]
7482    #[doc = "              \"minimum\": 0.0"]
7483    #[doc = "            },"]
7484    #[doc = "            \"limit\": {"]
7485    #[doc = "              \"type\": \"integer\","]
7486    #[doc = "              \"format\": \"uint64\","]
7487    #[doc = "              \"minimum\": 0.0"]
7488    #[doc = "            }"]
7489    #[doc = "          }"]
7490    #[doc = "        }"]
7491    #[doc = "      },"]
7492    #[doc = "      \"additionalProperties\": false"]
7493    #[doc = "    },"]
7494    #[doc = "    {"]
7495    #[doc = "      \"description\": \"The maximum number of promises within a FunctionCall exceeded the limit.\","]
7496    #[doc = "      \"type\": \"object\","]
7497    #[doc = "      \"required\": ["]
7498    #[doc = "        \"NumberPromisesExceeded\""]
7499    #[doc = "      ],"]
7500    #[doc = "      \"properties\": {"]
7501    #[doc = "        \"NumberPromisesExceeded\": {"]
7502    #[doc = "          \"type\": \"object\","]
7503    #[doc = "          \"required\": ["]
7504    #[doc = "            \"limit\","]
7505    #[doc = "            \"number_of_promises\""]
7506    #[doc = "          ],"]
7507    #[doc = "          \"properties\": {"]
7508    #[doc = "            \"limit\": {"]
7509    #[doc = "              \"type\": \"integer\","]
7510    #[doc = "              \"format\": \"uint64\","]
7511    #[doc = "              \"minimum\": 0.0"]
7512    #[doc = "            },"]
7513    #[doc = "            \"number_of_promises\": {"]
7514    #[doc = "              \"type\": \"integer\","]
7515    #[doc = "              \"format\": \"uint64\","]
7516    #[doc = "              \"minimum\": 0.0"]
7517    #[doc = "            }"]
7518    #[doc = "          }"]
7519    #[doc = "        }"]
7520    #[doc = "      },"]
7521    #[doc = "      \"additionalProperties\": false"]
7522    #[doc = "    },"]
7523    #[doc = "    {"]
7524    #[doc = "      \"description\": \"The maximum number of input data dependencies exceeded the limit.\","]
7525    #[doc = "      \"type\": \"object\","]
7526    #[doc = "      \"required\": ["]
7527    #[doc = "        \"NumberInputDataDependenciesExceeded\""]
7528    #[doc = "      ],"]
7529    #[doc = "      \"properties\": {"]
7530    #[doc = "        \"NumberInputDataDependenciesExceeded\": {"]
7531    #[doc = "          \"type\": \"object\","]
7532    #[doc = "          \"required\": ["]
7533    #[doc = "            \"limit\","]
7534    #[doc = "            \"number_of_input_data_dependencies\""]
7535    #[doc = "          ],"]
7536    #[doc = "          \"properties\": {"]
7537    #[doc = "            \"limit\": {"]
7538    #[doc = "              \"type\": \"integer\","]
7539    #[doc = "              \"format\": \"uint64\","]
7540    #[doc = "              \"minimum\": 0.0"]
7541    #[doc = "            },"]
7542    #[doc = "            \"number_of_input_data_dependencies\": {"]
7543    #[doc = "              \"type\": \"integer\","]
7544    #[doc = "              \"format\": \"uint64\","]
7545    #[doc = "              \"minimum\": 0.0"]
7546    #[doc = "            }"]
7547    #[doc = "          }"]
7548    #[doc = "        }"]
7549    #[doc = "      },"]
7550    #[doc = "      \"additionalProperties\": false"]
7551    #[doc = "    },"]
7552    #[doc = "    {"]
7553    #[doc = "      \"description\": \"The returned value length exceeded the limit.\","]
7554    #[doc = "      \"type\": \"object\","]
7555    #[doc = "      \"required\": ["]
7556    #[doc = "        \"ReturnedValueLengthExceeded\""]
7557    #[doc = "      ],"]
7558    #[doc = "      \"properties\": {"]
7559    #[doc = "        \"ReturnedValueLengthExceeded\": {"]
7560    #[doc = "          \"type\": \"object\","]
7561    #[doc = "          \"required\": ["]
7562    #[doc = "            \"length\","]
7563    #[doc = "            \"limit\""]
7564    #[doc = "          ],"]
7565    #[doc = "          \"properties\": {"]
7566    #[doc = "            \"length\": {"]
7567    #[doc = "              \"type\": \"integer\","]
7568    #[doc = "              \"format\": \"uint64\","]
7569    #[doc = "              \"minimum\": 0.0"]
7570    #[doc = "            },"]
7571    #[doc = "            \"limit\": {"]
7572    #[doc = "              \"type\": \"integer\","]
7573    #[doc = "              \"format\": \"uint64\","]
7574    #[doc = "              \"minimum\": 0.0"]
7575    #[doc = "            }"]
7576    #[doc = "          }"]
7577    #[doc = "        }"]
7578    #[doc = "      },"]
7579    #[doc = "      \"additionalProperties\": false"]
7580    #[doc = "    },"]
7581    #[doc = "    {"]
7582    #[doc = "      \"description\": \"The contract size for DeployContract action exceeded the limit.\","]
7583    #[doc = "      \"type\": \"object\","]
7584    #[doc = "      \"required\": ["]
7585    #[doc = "        \"ContractSizeExceeded\""]
7586    #[doc = "      ],"]
7587    #[doc = "      \"properties\": {"]
7588    #[doc = "        \"ContractSizeExceeded\": {"]
7589    #[doc = "          \"type\": \"object\","]
7590    #[doc = "          \"required\": ["]
7591    #[doc = "            \"limit\","]
7592    #[doc = "            \"size\""]
7593    #[doc = "          ],"]
7594    #[doc = "          \"properties\": {"]
7595    #[doc = "            \"limit\": {"]
7596    #[doc = "              \"type\": \"integer\","]
7597    #[doc = "              \"format\": \"uint64\","]
7598    #[doc = "              \"minimum\": 0.0"]
7599    #[doc = "            },"]
7600    #[doc = "            \"size\": {"]
7601    #[doc = "              \"type\": \"integer\","]
7602    #[doc = "              \"format\": \"uint64\","]
7603    #[doc = "              \"minimum\": 0.0"]
7604    #[doc = "            }"]
7605    #[doc = "          }"]
7606    #[doc = "        }"]
7607    #[doc = "      },"]
7608    #[doc = "      \"additionalProperties\": false"]
7609    #[doc = "    },"]
7610    #[doc = "    {"]
7611    #[doc = "      \"description\": \"The host function was deprecated.\","]
7612    #[doc = "      \"type\": \"object\","]
7613    #[doc = "      \"required\": ["]
7614    #[doc = "        \"Deprecated\""]
7615    #[doc = "      ],"]
7616    #[doc = "      \"properties\": {"]
7617    #[doc = "        \"Deprecated\": {"]
7618    #[doc = "          \"type\": \"object\","]
7619    #[doc = "          \"required\": ["]
7620    #[doc = "            \"method_name\""]
7621    #[doc = "          ],"]
7622    #[doc = "          \"properties\": {"]
7623    #[doc = "            \"method_name\": {"]
7624    #[doc = "              \"type\": \"string\""]
7625    #[doc = "            }"]
7626    #[doc = "          }"]
7627    #[doc = "        }"]
7628    #[doc = "      },"]
7629    #[doc = "      \"additionalProperties\": false"]
7630    #[doc = "    },"]
7631    #[doc = "    {"]
7632    #[doc = "      \"description\": \"General errors for ECDSA recover.\","]
7633    #[doc = "      \"type\": \"object\","]
7634    #[doc = "      \"required\": ["]
7635    #[doc = "        \"ECRecoverError\""]
7636    #[doc = "      ],"]
7637    #[doc = "      \"properties\": {"]
7638    #[doc = "        \"ECRecoverError\": {"]
7639    #[doc = "          \"type\": \"object\","]
7640    #[doc = "          \"required\": ["]
7641    #[doc = "            \"msg\""]
7642    #[doc = "          ],"]
7643    #[doc = "          \"properties\": {"]
7644    #[doc = "            \"msg\": {"]
7645    #[doc = "              \"type\": \"string\""]
7646    #[doc = "            }"]
7647    #[doc = "          }"]
7648    #[doc = "        }"]
7649    #[doc = "      },"]
7650    #[doc = "      \"additionalProperties\": false"]
7651    #[doc = "    },"]
7652    #[doc = "    {"]
7653    #[doc = "      \"description\": \"Invalid input to alt_bn128 family of functions (e.g., point which isn't\\n on the curve).\","]
7654    #[doc = "      \"type\": \"object\","]
7655    #[doc = "      \"required\": ["]
7656    #[doc = "        \"AltBn128InvalidInput\""]
7657    #[doc = "      ],"]
7658    #[doc = "      \"properties\": {"]
7659    #[doc = "        \"AltBn128InvalidInput\": {"]
7660    #[doc = "          \"type\": \"object\","]
7661    #[doc = "          \"required\": ["]
7662    #[doc = "            \"msg\""]
7663    #[doc = "          ],"]
7664    #[doc = "          \"properties\": {"]
7665    #[doc = "            \"msg\": {"]
7666    #[doc = "              \"type\": \"string\""]
7667    #[doc = "            }"]
7668    #[doc = "          }"]
7669    #[doc = "        }"]
7670    #[doc = "      },"]
7671    #[doc = "      \"additionalProperties\": false"]
7672    #[doc = "    },"]
7673    #[doc = "    {"]
7674    #[doc = "      \"description\": \"Invalid input to ed25519 signature verification function (e.g. signature cannot be\\n derived from bytes).\","]
7675    #[doc = "      \"type\": \"object\","]
7676    #[doc = "      \"required\": ["]
7677    #[doc = "        \"Ed25519VerifyInvalidInput\""]
7678    #[doc = "      ],"]
7679    #[doc = "      \"properties\": {"]
7680    #[doc = "        \"Ed25519VerifyInvalidInput\": {"]
7681    #[doc = "          \"type\": \"object\","]
7682    #[doc = "          \"required\": ["]
7683    #[doc = "            \"msg\""]
7684    #[doc = "          ],"]
7685    #[doc = "          \"properties\": {"]
7686    #[doc = "            \"msg\": {"]
7687    #[doc = "              \"type\": \"string\""]
7688    #[doc = "            }"]
7689    #[doc = "          }"]
7690    #[doc = "        }"]
7691    #[doc = "      },"]
7692    #[doc = "      \"additionalProperties\": false"]
7693    #[doc = "    }"]
7694    #[doc = "  ]"]
7695    #[doc = "}"]
7696    #[doc = r" ```"]
7697    #[doc = r" </details>"]
7698    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7699    pub enum HostError {
7700        #[doc = "String encoding is bad UTF-16 sequence"]
7701        #[serde(rename = "BadUTF16")]
7702        BadUtf16,
7703        #[doc = "String encoding is bad UTF-8 sequence"]
7704        #[serde(rename = "BadUTF8")]
7705        BadUtf8,
7706        #[doc = "Exceeded the prepaid gas"]
7707        GasExceeded,
7708        #[doc = "Exceeded the maximum amount of gas allowed to burn per contract"]
7709        GasLimitExceeded,
7710        #[doc = "Exceeded the account balance"]
7711        BalanceExceeded,
7712        #[doc = "Tried to call an empty method name"]
7713        EmptyMethodName,
7714        #[doc = "Smart contract panicked"]
7715        GuestPanic { panic_msg: ::std::string::String },
7716        #[doc = "IntegerOverflow happened during a contract execution"]
7717        IntegerOverflow,
7718        #[doc = "`promise_idx` does not correspond to existing promises"]
7719        InvalidPromiseIndex { promise_idx: u64 },
7720        #[doc = "Actions can only be appended to non-joint promise."]
7721        CannotAppendActionToJointPromise,
7722        #[doc = "Returning joint promise is currently prohibited"]
7723        CannotReturnJointPromise,
7724        #[doc = "Accessed invalid promise result index"]
7725        InvalidPromiseResultIndex { result_idx: u64 },
7726        #[doc = "Accessed invalid register id"]
7727        InvalidRegisterId { register_id: u64 },
7728        #[doc = "Iterator `iterator_index` was invalidated after its creation by performing a mutable operation on trie"]
7729        IteratorWasInvalidated { iterator_index: u64 },
7730        #[doc = "Accessed memory outside the bounds"]
7731        MemoryAccessViolation,
7732        #[doc = "VM Logic returned an invalid receipt index"]
7733        InvalidReceiptIndex { receipt_index: u64 },
7734        #[doc = "Iterator index `iterator_index` does not exist"]
7735        InvalidIteratorIndex { iterator_index: u64 },
7736        #[doc = "VM Logic returned an invalid account id"]
7737        InvalidAccountId,
7738        #[doc = "VM Logic returned an invalid method name"]
7739        InvalidMethodName,
7740        #[doc = "VM Logic provided an invalid public key"]
7741        InvalidPublicKey,
7742        #[doc = "`method_name` is not allowed in view calls"]
7743        ProhibitedInView { method_name: ::std::string::String },
7744        #[doc = "The total number of logs will exceed the limit."]
7745        NumberOfLogsExceeded { limit: u64 },
7746        #[doc = "The storage key length exceeded the limit."]
7747        KeyLengthExceeded { length: u64, limit: u64 },
7748        #[doc = "The storage value length exceeded the limit."]
7749        ValueLengthExceeded { length: u64, limit: u64 },
7750        #[doc = "The total log length exceeded the limit."]
7751        TotalLogLengthExceeded { length: u64, limit: u64 },
7752        #[doc = "The maximum number of promises within a FunctionCall exceeded the limit."]
7753        NumberPromisesExceeded { limit: u64, number_of_promises: u64 },
7754        #[doc = "The maximum number of input data dependencies exceeded the limit."]
7755        NumberInputDataDependenciesExceeded {
7756            limit: u64,
7757            number_of_input_data_dependencies: u64,
7758        },
7759        #[doc = "The returned value length exceeded the limit."]
7760        ReturnedValueLengthExceeded { length: u64, limit: u64 },
7761        #[doc = "The contract size for DeployContract action exceeded the limit."]
7762        ContractSizeExceeded { limit: u64, size: u64 },
7763        #[doc = "The host function was deprecated."]
7764        Deprecated { method_name: ::std::string::String },
7765        #[doc = "General errors for ECDSA recover."]
7766        #[serde(rename = "ECRecoverError")]
7767        EcRecoverError { msg: ::std::string::String },
7768        #[doc = "Invalid input to alt_bn128 family of functions (e.g., point which isn't\n on the curve)."]
7769        AltBn128InvalidInput { msg: ::std::string::String },
7770        #[doc = "Invalid input to ed25519 signature verification function (e.g. signature cannot be\n derived from bytes)."]
7771        Ed25519VerifyInvalidInput { msg: ::std::string::String },
7772    }
7773    impl ::std::convert::From<&Self> for HostError {
7774        fn from(value: &HostError) -> Self {
7775            value.clone()
7776        }
7777    }
7778    #[doc = "`InvalidAccessKeyError`"]
7779    #[doc = r""]
7780    #[doc = r" <details><summary>JSON schema</summary>"]
7781    #[doc = r""]
7782    #[doc = r" ```json"]
7783    #[doc = "{"]
7784    #[doc = "  \"oneOf\": ["]
7785    #[doc = "    {"]
7786    #[doc = "      \"description\": \"The access key identified by the `public_key` doesn't exist for the account\","]
7787    #[doc = "      \"type\": \"object\","]
7788    #[doc = "      \"required\": ["]
7789    #[doc = "        \"AccessKeyNotFound\""]
7790    #[doc = "      ],"]
7791    #[doc = "      \"properties\": {"]
7792    #[doc = "        \"AccessKeyNotFound\": {"]
7793    #[doc = "          \"type\": \"object\","]
7794    #[doc = "          \"required\": ["]
7795    #[doc = "            \"account_id\","]
7796    #[doc = "            \"public_key\""]
7797    #[doc = "          ],"]
7798    #[doc = "          \"properties\": {"]
7799    #[doc = "            \"account_id\": {"]
7800    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
7801    #[doc = "            },"]
7802    #[doc = "            \"public_key\": {"]
7803    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
7804    #[doc = "            }"]
7805    #[doc = "          }"]
7806    #[doc = "        }"]
7807    #[doc = "      },"]
7808    #[doc = "      \"additionalProperties\": false"]
7809    #[doc = "    },"]
7810    #[doc = "    {"]
7811    #[doc = "      \"description\": \"Transaction `receiver_id` doesn't match the access key receiver_id\","]
7812    #[doc = "      \"type\": \"object\","]
7813    #[doc = "      \"required\": ["]
7814    #[doc = "        \"ReceiverMismatch\""]
7815    #[doc = "      ],"]
7816    #[doc = "      \"properties\": {"]
7817    #[doc = "        \"ReceiverMismatch\": {"]
7818    #[doc = "          \"type\": \"object\","]
7819    #[doc = "          \"required\": ["]
7820    #[doc = "            \"ak_receiver\","]
7821    #[doc = "            \"tx_receiver\""]
7822    #[doc = "          ],"]
7823    #[doc = "          \"properties\": {"]
7824    #[doc = "            \"ak_receiver\": {"]
7825    #[doc = "              \"type\": \"string\""]
7826    #[doc = "            },"]
7827    #[doc = "            \"tx_receiver\": {"]
7828    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
7829    #[doc = "            }"]
7830    #[doc = "          }"]
7831    #[doc = "        }"]
7832    #[doc = "      },"]
7833    #[doc = "      \"additionalProperties\": false"]
7834    #[doc = "    },"]
7835    #[doc = "    {"]
7836    #[doc = "      \"description\": \"Transaction method name isn't allowed by the access key\","]
7837    #[doc = "      \"type\": \"object\","]
7838    #[doc = "      \"required\": ["]
7839    #[doc = "        \"MethodNameMismatch\""]
7840    #[doc = "      ],"]
7841    #[doc = "      \"properties\": {"]
7842    #[doc = "        \"MethodNameMismatch\": {"]
7843    #[doc = "          \"type\": \"object\","]
7844    #[doc = "          \"required\": ["]
7845    #[doc = "            \"method_name\""]
7846    #[doc = "          ],"]
7847    #[doc = "          \"properties\": {"]
7848    #[doc = "            \"method_name\": {"]
7849    #[doc = "              \"type\": \"string\""]
7850    #[doc = "            }"]
7851    #[doc = "          }"]
7852    #[doc = "        }"]
7853    #[doc = "      },"]
7854    #[doc = "      \"additionalProperties\": false"]
7855    #[doc = "    },"]
7856    #[doc = "    {"]
7857    #[doc = "      \"description\": \"Transaction requires a full permission access key.\","]
7858    #[doc = "      \"type\": \"string\","]
7859    #[doc = "      \"enum\": ["]
7860    #[doc = "        \"RequiresFullAccess\""]
7861    #[doc = "      ]"]
7862    #[doc = "    },"]
7863    #[doc = "    {"]
7864    #[doc = "      \"description\": \"Access Key does not have enough allowance to cover transaction cost\","]
7865    #[doc = "      \"type\": \"object\","]
7866    #[doc = "      \"required\": ["]
7867    #[doc = "        \"NotEnoughAllowance\""]
7868    #[doc = "      ],"]
7869    #[doc = "      \"properties\": {"]
7870    #[doc = "        \"NotEnoughAllowance\": {"]
7871    #[doc = "          \"type\": \"object\","]
7872    #[doc = "          \"required\": ["]
7873    #[doc = "            \"account_id\","]
7874    #[doc = "            \"allowance\","]
7875    #[doc = "            \"cost\","]
7876    #[doc = "            \"public_key\""]
7877    #[doc = "          ],"]
7878    #[doc = "          \"properties\": {"]
7879    #[doc = "            \"account_id\": {"]
7880    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
7881    #[doc = "            },"]
7882    #[doc = "            \"allowance\": {"]
7883    #[doc = "              \"type\": \"string\""]
7884    #[doc = "            },"]
7885    #[doc = "            \"cost\": {"]
7886    #[doc = "              \"type\": \"string\""]
7887    #[doc = "            },"]
7888    #[doc = "            \"public_key\": {"]
7889    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
7890    #[doc = "            }"]
7891    #[doc = "          }"]
7892    #[doc = "        }"]
7893    #[doc = "      },"]
7894    #[doc = "      \"additionalProperties\": false"]
7895    #[doc = "    },"]
7896    #[doc = "    {"]
7897    #[doc = "      \"description\": \"Having a deposit with a function call action is not allowed with a function call access key.\","]
7898    #[doc = "      \"type\": \"string\","]
7899    #[doc = "      \"enum\": ["]
7900    #[doc = "        \"DepositWithFunctionCall\""]
7901    #[doc = "      ]"]
7902    #[doc = "    }"]
7903    #[doc = "  ]"]
7904    #[doc = "}"]
7905    #[doc = r" ```"]
7906    #[doc = r" </details>"]
7907    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7908    pub enum InvalidAccessKeyError {
7909        #[doc = "The access key identified by the `public_key` doesn't exist for the account"]
7910        AccessKeyNotFound {
7911            account_id: AccountId,
7912            public_key: PublicKey,
7913        },
7914        #[doc = "Transaction `receiver_id` doesn't match the access key receiver_id"]
7915        ReceiverMismatch {
7916            ak_receiver: ::std::string::String,
7917            tx_receiver: AccountId,
7918        },
7919        #[doc = "Transaction method name isn't allowed by the access key"]
7920        MethodNameMismatch { method_name: ::std::string::String },
7921        #[doc = "Transaction requires a full permission access key."]
7922        RequiresFullAccess,
7923        #[doc = "Access Key does not have enough allowance to cover transaction cost"]
7924        NotEnoughAllowance {
7925            account_id: AccountId,
7926            allowance: ::std::string::String,
7927            cost: ::std::string::String,
7928            public_key: PublicKey,
7929        },
7930        #[doc = "Having a deposit with a function call action is not allowed with a function call access key."]
7931        DepositWithFunctionCall,
7932    }
7933    impl ::std::convert::From<&Self> for InvalidAccessKeyError {
7934        fn from(value: &InvalidAccessKeyError) -> Self {
7935            value.clone()
7936        }
7937    }
7938    #[doc = "An error happened during TX execution"]
7939    #[doc = r""]
7940    #[doc = r" <details><summary>JSON schema</summary>"]
7941    #[doc = r""]
7942    #[doc = r" ```json"]
7943    #[doc = "{"]
7944    #[doc = "  \"description\": \"An error happened during TX execution\","]
7945    #[doc = "  \"oneOf\": ["]
7946    #[doc = "    {"]
7947    #[doc = "      \"description\": \"Happens if a wrong AccessKey used or AccessKey has not enough permissions\","]
7948    #[doc = "      \"type\": \"object\","]
7949    #[doc = "      \"required\": ["]
7950    #[doc = "        \"InvalidAccessKeyError\""]
7951    #[doc = "      ],"]
7952    #[doc = "      \"properties\": {"]
7953    #[doc = "        \"InvalidAccessKeyError\": {"]
7954    #[doc = "          \"$ref\": \"#/components/schemas/InvalidAccessKeyError\""]
7955    #[doc = "        }"]
7956    #[doc = "      },"]
7957    #[doc = "      \"additionalProperties\": false"]
7958    #[doc = "    },"]
7959    #[doc = "    {"]
7960    #[doc = "      \"description\": \"TX signer_id is not a valid [`AccountId`]\","]
7961    #[doc = "      \"type\": \"object\","]
7962    #[doc = "      \"required\": ["]
7963    #[doc = "        \"InvalidSignerId\""]
7964    #[doc = "      ],"]
7965    #[doc = "      \"properties\": {"]
7966    #[doc = "        \"InvalidSignerId\": {"]
7967    #[doc = "          \"type\": \"object\","]
7968    #[doc = "          \"required\": ["]
7969    #[doc = "            \"signer_id\""]
7970    #[doc = "          ],"]
7971    #[doc = "          \"properties\": {"]
7972    #[doc = "            \"signer_id\": {"]
7973    #[doc = "              \"type\": \"string\""]
7974    #[doc = "            }"]
7975    #[doc = "          }"]
7976    #[doc = "        }"]
7977    #[doc = "      },"]
7978    #[doc = "      \"additionalProperties\": false"]
7979    #[doc = "    },"]
7980    #[doc = "    {"]
7981    #[doc = "      \"description\": \"TX signer_id is not found in a storage\","]
7982    #[doc = "      \"type\": \"object\","]
7983    #[doc = "      \"required\": ["]
7984    #[doc = "        \"SignerDoesNotExist\""]
7985    #[doc = "      ],"]
7986    #[doc = "      \"properties\": {"]
7987    #[doc = "        \"SignerDoesNotExist\": {"]
7988    #[doc = "          \"type\": \"object\","]
7989    #[doc = "          \"required\": ["]
7990    #[doc = "            \"signer_id\""]
7991    #[doc = "          ],"]
7992    #[doc = "          \"properties\": {"]
7993    #[doc = "            \"signer_id\": {"]
7994    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
7995    #[doc = "            }"]
7996    #[doc = "          }"]
7997    #[doc = "        }"]
7998    #[doc = "      },"]
7999    #[doc = "      \"additionalProperties\": false"]
8000    #[doc = "    },"]
8001    #[doc = "    {"]
8002    #[doc = "      \"description\": \"Transaction nonce must be strictly greater than `account[access_key].nonce`.\","]
8003    #[doc = "      \"type\": \"object\","]
8004    #[doc = "      \"required\": ["]
8005    #[doc = "        \"InvalidNonce\""]
8006    #[doc = "      ],"]
8007    #[doc = "      \"properties\": {"]
8008    #[doc = "        \"InvalidNonce\": {"]
8009    #[doc = "          \"type\": \"object\","]
8010    #[doc = "          \"required\": ["]
8011    #[doc = "            \"ak_nonce\","]
8012    #[doc = "            \"tx_nonce\""]
8013    #[doc = "          ],"]
8014    #[doc = "          \"properties\": {"]
8015    #[doc = "            \"ak_nonce\": {"]
8016    #[doc = "              \"type\": \"integer\","]
8017    #[doc = "              \"format\": \"uint64\","]
8018    #[doc = "              \"minimum\": 0.0"]
8019    #[doc = "            },"]
8020    #[doc = "            \"tx_nonce\": {"]
8021    #[doc = "              \"type\": \"integer\","]
8022    #[doc = "              \"format\": \"uint64\","]
8023    #[doc = "              \"minimum\": 0.0"]
8024    #[doc = "            }"]
8025    #[doc = "          }"]
8026    #[doc = "        }"]
8027    #[doc = "      },"]
8028    #[doc = "      \"additionalProperties\": false"]
8029    #[doc = "    },"]
8030    #[doc = "    {"]
8031    #[doc = "      \"description\": \"Transaction nonce is larger than the upper bound given by the block height\","]
8032    #[doc = "      \"type\": \"object\","]
8033    #[doc = "      \"required\": ["]
8034    #[doc = "        \"NonceTooLarge\""]
8035    #[doc = "      ],"]
8036    #[doc = "      \"properties\": {"]
8037    #[doc = "        \"NonceTooLarge\": {"]
8038    #[doc = "          \"type\": \"object\","]
8039    #[doc = "          \"required\": ["]
8040    #[doc = "            \"tx_nonce\","]
8041    #[doc = "            \"upper_bound\""]
8042    #[doc = "          ],"]
8043    #[doc = "          \"properties\": {"]
8044    #[doc = "            \"tx_nonce\": {"]
8045    #[doc = "              \"type\": \"integer\","]
8046    #[doc = "              \"format\": \"uint64\","]
8047    #[doc = "              \"minimum\": 0.0"]
8048    #[doc = "            },"]
8049    #[doc = "            \"upper_bound\": {"]
8050    #[doc = "              \"type\": \"integer\","]
8051    #[doc = "              \"format\": \"uint64\","]
8052    #[doc = "              \"minimum\": 0.0"]
8053    #[doc = "            }"]
8054    #[doc = "          }"]
8055    #[doc = "        }"]
8056    #[doc = "      },"]
8057    #[doc = "      \"additionalProperties\": false"]
8058    #[doc = "    },"]
8059    #[doc = "    {"]
8060    #[doc = "      \"description\": \"TX receiver_id is not a valid AccountId\","]
8061    #[doc = "      \"type\": \"object\","]
8062    #[doc = "      \"required\": ["]
8063    #[doc = "        \"InvalidReceiverId\""]
8064    #[doc = "      ],"]
8065    #[doc = "      \"properties\": {"]
8066    #[doc = "        \"InvalidReceiverId\": {"]
8067    #[doc = "          \"type\": \"object\","]
8068    #[doc = "          \"required\": ["]
8069    #[doc = "            \"receiver_id\""]
8070    #[doc = "          ],"]
8071    #[doc = "          \"properties\": {"]
8072    #[doc = "            \"receiver_id\": {"]
8073    #[doc = "              \"type\": \"string\""]
8074    #[doc = "            }"]
8075    #[doc = "          }"]
8076    #[doc = "        }"]
8077    #[doc = "      },"]
8078    #[doc = "      \"additionalProperties\": false"]
8079    #[doc = "    },"]
8080    #[doc = "    {"]
8081    #[doc = "      \"description\": \"TX signature is not valid\","]
8082    #[doc = "      \"type\": \"string\","]
8083    #[doc = "      \"enum\": ["]
8084    #[doc = "        \"InvalidSignature\""]
8085    #[doc = "      ]"]
8086    #[doc = "    },"]
8087    #[doc = "    {"]
8088    #[doc = "      \"description\": \"Account does not have enough balance to cover TX cost\","]
8089    #[doc = "      \"type\": \"object\","]
8090    #[doc = "      \"required\": ["]
8091    #[doc = "        \"NotEnoughBalance\""]
8092    #[doc = "      ],"]
8093    #[doc = "      \"properties\": {"]
8094    #[doc = "        \"NotEnoughBalance\": {"]
8095    #[doc = "          \"type\": \"object\","]
8096    #[doc = "          \"required\": ["]
8097    #[doc = "            \"balance\","]
8098    #[doc = "            \"cost\","]
8099    #[doc = "            \"signer_id\""]
8100    #[doc = "          ],"]
8101    #[doc = "          \"properties\": {"]
8102    #[doc = "            \"balance\": {"]
8103    #[doc = "              \"type\": \"string\""]
8104    #[doc = "            },"]
8105    #[doc = "            \"cost\": {"]
8106    #[doc = "              \"type\": \"string\""]
8107    #[doc = "            },"]
8108    #[doc = "            \"signer_id\": {"]
8109    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
8110    #[doc = "            }"]
8111    #[doc = "          }"]
8112    #[doc = "        }"]
8113    #[doc = "      },"]
8114    #[doc = "      \"additionalProperties\": false"]
8115    #[doc = "    },"]
8116    #[doc = "    {"]
8117    #[doc = "      \"description\": \"Signer account doesn't have enough balance after transaction.\","]
8118    #[doc = "      \"type\": \"object\","]
8119    #[doc = "      \"required\": ["]
8120    #[doc = "        \"LackBalanceForState\""]
8121    #[doc = "      ],"]
8122    #[doc = "      \"properties\": {"]
8123    #[doc = "        \"LackBalanceForState\": {"]
8124    #[doc = "          \"type\": \"object\","]
8125    #[doc = "          \"required\": ["]
8126    #[doc = "            \"amount\","]
8127    #[doc = "            \"signer_id\""]
8128    #[doc = "          ],"]
8129    #[doc = "          \"properties\": {"]
8130    #[doc = "            \"amount\": {"]
8131    #[doc = "              \"description\": \"Required balance to cover the state.\","]
8132    #[doc = "              \"type\": \"string\""]
8133    #[doc = "            },"]
8134    #[doc = "            \"signer_id\": {"]
8135    #[doc = "              \"description\": \"An account which doesn't have enough balance to cover storage.\","]
8136    #[doc = "              \"allOf\": ["]
8137    #[doc = "                {"]
8138    #[doc = "                  \"$ref\": \"#/components/schemas/AccountId\""]
8139    #[doc = "                }"]
8140    #[doc = "              ]"]
8141    #[doc = "            }"]
8142    #[doc = "          }"]
8143    #[doc = "        }"]
8144    #[doc = "      },"]
8145    #[doc = "      \"additionalProperties\": false"]
8146    #[doc = "    },"]
8147    #[doc = "    {"]
8148    #[doc = "      \"description\": \"An integer overflow occurred during transaction cost estimation.\","]
8149    #[doc = "      \"type\": \"string\","]
8150    #[doc = "      \"enum\": ["]
8151    #[doc = "        \"CostOverflow\""]
8152    #[doc = "      ]"]
8153    #[doc = "    },"]
8154    #[doc = "    {"]
8155    #[doc = "      \"description\": \"Transaction parent block hash doesn't belong to the current chain\","]
8156    #[doc = "      \"type\": \"string\","]
8157    #[doc = "      \"enum\": ["]
8158    #[doc = "        \"InvalidChain\""]
8159    #[doc = "      ]"]
8160    #[doc = "    },"]
8161    #[doc = "    {"]
8162    #[doc = "      \"description\": \"Transaction has expired\","]
8163    #[doc = "      \"type\": \"string\","]
8164    #[doc = "      \"enum\": ["]
8165    #[doc = "        \"Expired\""]
8166    #[doc = "      ]"]
8167    #[doc = "    },"]
8168    #[doc = "    {"]
8169    #[doc = "      \"description\": \"An error occurred while validating actions of a Transaction.\","]
8170    #[doc = "      \"type\": \"object\","]
8171    #[doc = "      \"required\": ["]
8172    #[doc = "        \"ActionsValidation\""]
8173    #[doc = "      ],"]
8174    #[doc = "      \"properties\": {"]
8175    #[doc = "        \"ActionsValidation\": {"]
8176    #[doc = "          \"$ref\": \"#/components/schemas/ActionsValidationError\""]
8177    #[doc = "        }"]
8178    #[doc = "      },"]
8179    #[doc = "      \"additionalProperties\": false"]
8180    #[doc = "    },"]
8181    #[doc = "    {"]
8182    #[doc = "      \"description\": \"The size of serialized transaction exceeded the limit.\","]
8183    #[doc = "      \"type\": \"object\","]
8184    #[doc = "      \"required\": ["]
8185    #[doc = "        \"TransactionSizeExceeded\""]
8186    #[doc = "      ],"]
8187    #[doc = "      \"properties\": {"]
8188    #[doc = "        \"TransactionSizeExceeded\": {"]
8189    #[doc = "          \"type\": \"object\","]
8190    #[doc = "          \"required\": ["]
8191    #[doc = "            \"limit\","]
8192    #[doc = "            \"size\""]
8193    #[doc = "          ],"]
8194    #[doc = "          \"properties\": {"]
8195    #[doc = "            \"limit\": {"]
8196    #[doc = "              \"type\": \"integer\","]
8197    #[doc = "              \"format\": \"uint64\","]
8198    #[doc = "              \"minimum\": 0.0"]
8199    #[doc = "            },"]
8200    #[doc = "            \"size\": {"]
8201    #[doc = "              \"type\": \"integer\","]
8202    #[doc = "              \"format\": \"uint64\","]
8203    #[doc = "              \"minimum\": 0.0"]
8204    #[doc = "            }"]
8205    #[doc = "          }"]
8206    #[doc = "        }"]
8207    #[doc = "      },"]
8208    #[doc = "      \"additionalProperties\": false"]
8209    #[doc = "    },"]
8210    #[doc = "    {"]
8211    #[doc = "      \"description\": \"Transaction version is invalid.\","]
8212    #[doc = "      \"type\": \"string\","]
8213    #[doc = "      \"enum\": ["]
8214    #[doc = "        \"InvalidTransactionVersion\""]
8215    #[doc = "      ]"]
8216    #[doc = "    },"]
8217    #[doc = "    {"]
8218    #[doc = "      \"type\": \"object\","]
8219    #[doc = "      \"required\": ["]
8220    #[doc = "        \"StorageError\""]
8221    #[doc = "      ],"]
8222    #[doc = "      \"properties\": {"]
8223    #[doc = "        \"StorageError\": {"]
8224    #[doc = "          \"$ref\": \"#/components/schemas/StorageError\""]
8225    #[doc = "        }"]
8226    #[doc = "      },"]
8227    #[doc = "      \"additionalProperties\": false"]
8228    #[doc = "    },"]
8229    #[doc = "    {"]
8230    #[doc = "      \"description\": \"The receiver shard of the transaction is too congested to accept new\\n transactions at the moment.\","]
8231    #[doc = "      \"type\": \"object\","]
8232    #[doc = "      \"required\": ["]
8233    #[doc = "        \"ShardCongested\""]
8234    #[doc = "      ],"]
8235    #[doc = "      \"properties\": {"]
8236    #[doc = "        \"ShardCongested\": {"]
8237    #[doc = "          \"type\": \"object\","]
8238    #[doc = "          \"required\": ["]
8239    #[doc = "            \"congestion_level\","]
8240    #[doc = "            \"shard_id\""]
8241    #[doc = "          ],"]
8242    #[doc = "          \"properties\": {"]
8243    #[doc = "            \"congestion_level\": {"]
8244    #[doc = "              \"description\": \"A value between 0 (no congestion) and 1 (max congestion).\","]
8245    #[doc = "              \"type\": \"number\","]
8246    #[doc = "              \"format\": \"double\""]
8247    #[doc = "            },"]
8248    #[doc = "            \"shard_id\": {"]
8249    #[doc = "              \"description\": \"The congested shard.\","]
8250    #[doc = "              \"type\": \"integer\","]
8251    #[doc = "              \"format\": \"uint32\","]
8252    #[doc = "              \"minimum\": 0.0"]
8253    #[doc = "            }"]
8254    #[doc = "          }"]
8255    #[doc = "        }"]
8256    #[doc = "      },"]
8257    #[doc = "      \"additionalProperties\": false"]
8258    #[doc = "    },"]
8259    #[doc = "    {"]
8260    #[doc = "      \"description\": \"The receiver shard of the transaction missed several chunks and rejects\\n new transaction until it can make progress again.\","]
8261    #[doc = "      \"type\": \"object\","]
8262    #[doc = "      \"required\": ["]
8263    #[doc = "        \"ShardStuck\""]
8264    #[doc = "      ],"]
8265    #[doc = "      \"properties\": {"]
8266    #[doc = "        \"ShardStuck\": {"]
8267    #[doc = "          \"type\": \"object\","]
8268    #[doc = "          \"required\": ["]
8269    #[doc = "            \"missed_chunks\","]
8270    #[doc = "            \"shard_id\""]
8271    #[doc = "          ],"]
8272    #[doc = "          \"properties\": {"]
8273    #[doc = "            \"missed_chunks\": {"]
8274    #[doc = "              \"description\": \"The number of blocks since the last included chunk of the shard.\","]
8275    #[doc = "              \"type\": \"integer\","]
8276    #[doc = "              \"format\": \"uint64\","]
8277    #[doc = "              \"minimum\": 0.0"]
8278    #[doc = "            },"]
8279    #[doc = "            \"shard_id\": {"]
8280    #[doc = "              \"description\": \"The shard that fails making progress.\","]
8281    #[doc = "              \"type\": \"integer\","]
8282    #[doc = "              \"format\": \"uint32\","]
8283    #[doc = "              \"minimum\": 0.0"]
8284    #[doc = "            }"]
8285    #[doc = "          }"]
8286    #[doc = "        }"]
8287    #[doc = "      },"]
8288    #[doc = "      \"additionalProperties\": false"]
8289    #[doc = "    }"]
8290    #[doc = "  ]"]
8291    #[doc = "}"]
8292    #[doc = r" ```"]
8293    #[doc = r" </details>"]
8294    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
8295    pub enum InvalidTxError {
8296        #[doc = "Happens if a wrong AccessKey used or AccessKey has not enough permissions"]
8297        InvalidAccessKeyError(InvalidAccessKeyError),
8298        #[doc = "TX signer_id is not a valid [`AccountId`]"]
8299        InvalidSignerId {
8300            signer_id: ::std::string::String,
8301        },
8302        #[doc = "TX signer_id is not found in a storage"]
8303        SignerDoesNotExist {
8304            signer_id: AccountId,
8305        },
8306        #[doc = "Transaction nonce must be strictly greater than `account[access_key].nonce`."]
8307        InvalidNonce {
8308            ak_nonce: u64,
8309            tx_nonce: u64,
8310        },
8311        #[doc = "Transaction nonce is larger than the upper bound given by the block height"]
8312        NonceTooLarge {
8313            tx_nonce: u64,
8314            upper_bound: u64,
8315        },
8316        #[doc = "TX receiver_id is not a valid AccountId"]
8317        InvalidReceiverId {
8318            receiver_id: ::std::string::String,
8319        },
8320        #[doc = "TX signature is not valid"]
8321        InvalidSignature,
8322        #[doc = "Account does not have enough balance to cover TX cost"]
8323        NotEnoughBalance {
8324            balance: ::std::string::String,
8325            cost: ::std::string::String,
8326            signer_id: AccountId,
8327        },
8328        #[doc = "Signer account doesn't have enough balance after transaction."]
8329        LackBalanceForState {
8330            #[doc = "Required balance to cover the state."]
8331            amount: ::std::string::String,
8332            #[doc = "An account which doesn't have enough balance to cover storage."]
8333            signer_id: AccountId,
8334        },
8335        #[doc = "An integer overflow occurred during transaction cost estimation."]
8336        CostOverflow,
8337        #[doc = "Transaction parent block hash doesn't belong to the current chain"]
8338        InvalidChain,
8339        #[doc = "Transaction has expired"]
8340        Expired,
8341        #[doc = "An error occurred while validating actions of a Transaction."]
8342        ActionsValidation(ActionsValidationError),
8343        #[doc = "The size of serialized transaction exceeded the limit."]
8344        TransactionSizeExceeded {
8345            limit: u64,
8346            size: u64,
8347        },
8348        #[doc = "Transaction version is invalid."]
8349        InvalidTransactionVersion,
8350        StorageError(StorageError),
8351        #[doc = "The receiver shard of the transaction is too congested to accept new\n transactions at the moment."]
8352        ShardCongested {
8353            congestion_level: f64,
8354            #[doc = "The congested shard."]
8355            shard_id: u32,
8356        },
8357        #[doc = "The receiver shard of the transaction missed several chunks and rejects\n new transaction until it can make progress again."]
8358        ShardStuck {
8359            #[doc = "The number of blocks since the last included chunk of the shard."]
8360            missed_chunks: u64,
8361            #[doc = "The shard that fails making progress."]
8362            shard_id: u32,
8363        },
8364    }
8365    impl ::std::convert::From<&Self> for InvalidTxError {
8366        fn from(value: &InvalidTxError) -> Self {
8367            value.clone()
8368        }
8369    }
8370    impl ::std::convert::From<InvalidAccessKeyError> for InvalidTxError {
8371        fn from(value: InvalidAccessKeyError) -> Self {
8372            Self::InvalidAccessKeyError(value)
8373        }
8374    }
8375    impl ::std::convert::From<ActionsValidationError> for InvalidTxError {
8376        fn from(value: ActionsValidationError) -> Self {
8377            Self::ActionsValidation(value)
8378        }
8379    }
8380    impl ::std::convert::From<StorageError> for InvalidTxError {
8381        fn from(value: StorageError) -> Self {
8382            Self::StorageError(value)
8383        }
8384    }
8385    #[doc = "`JsonRpcRequestForBlock`"]
8386    #[doc = r""]
8387    #[doc = r" <details><summary>JSON schema</summary>"]
8388    #[doc = r""]
8389    #[doc = r" ```json"]
8390    #[doc = "{"]
8391    #[doc = "  \"title\": \"JsonRpcRequest_for_block\","]
8392    #[doc = "  \"type\": \"object\","]
8393    #[doc = "  \"required\": ["]
8394    #[doc = "    \"id\","]
8395    #[doc = "    \"jsonrpc\","]
8396    #[doc = "    \"method\","]
8397    #[doc = "    \"params\""]
8398    #[doc = "  ],"]
8399    #[doc = "  \"properties\": {"]
8400    #[doc = "    \"id\": {"]
8401    #[doc = "      \"type\": \"string\""]
8402    #[doc = "    },"]
8403    #[doc = "    \"jsonrpc\": {"]
8404    #[doc = "      \"type\": \"string\""]
8405    #[doc = "    },"]
8406    #[doc = "    \"method\": {"]
8407    #[doc = "      \"type\": \"string\","]
8408    #[doc = "      \"enum\": ["]
8409    #[doc = "        \"block\""]
8410    #[doc = "      ]"]
8411    #[doc = "    },"]
8412    #[doc = "    \"params\": {"]
8413    #[doc = "      \"$ref\": \"#/components/schemas/RpcBlockRequest\""]
8414    #[doc = "    }"]
8415    #[doc = "  }"]
8416    #[doc = "}"]
8417    #[doc = r" ```"]
8418    #[doc = r" </details>"]
8419    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
8420    pub struct JsonRpcRequestForBlock {
8421        pub id: ::std::string::String,
8422        pub jsonrpc: ::std::string::String,
8423        pub method: JsonRpcRequestForBlockMethod,
8424        pub params: RpcBlockRequest,
8425    }
8426    impl ::std::convert::From<&JsonRpcRequestForBlock> for JsonRpcRequestForBlock {
8427        fn from(value: &JsonRpcRequestForBlock) -> Self {
8428            value.clone()
8429        }
8430    }
8431    #[doc = "`JsonRpcRequestForBlockMethod`"]
8432    #[doc = r""]
8433    #[doc = r" <details><summary>JSON schema</summary>"]
8434    #[doc = r""]
8435    #[doc = r" ```json"]
8436    #[doc = "{"]
8437    #[doc = "  \"type\": \"string\","]
8438    #[doc = "  \"enum\": ["]
8439    #[doc = "    \"block\""]
8440    #[doc = "  ]"]
8441    #[doc = "}"]
8442    #[doc = r" ```"]
8443    #[doc = r" </details>"]
8444    #[derive(
8445        :: serde :: Deserialize,
8446        :: serde :: Serialize,
8447        Clone,
8448        Copy,
8449        Debug,
8450        Eq,
8451        Hash,
8452        Ord,
8453        PartialEq,
8454        PartialOrd,
8455    )]
8456    pub enum JsonRpcRequestForBlockMethod {
8457        #[serde(rename = "block")]
8458        Block,
8459    }
8460    impl ::std::convert::From<&Self> for JsonRpcRequestForBlockMethod {
8461        fn from(value: &JsonRpcRequestForBlockMethod) -> Self {
8462            value.clone()
8463        }
8464    }
8465    impl ::std::fmt::Display for JsonRpcRequestForBlockMethod {
8466        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8467            match *self {
8468                Self::Block => write!(f, "block"),
8469            }
8470        }
8471    }
8472    impl ::std::str::FromStr for JsonRpcRequestForBlockMethod {
8473        type Err = self::error::ConversionError;
8474        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
8475            match value {
8476                "block" => Ok(Self::Block),
8477                _ => Err("invalid value".into()),
8478            }
8479        }
8480    }
8481    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForBlockMethod {
8482        type Error = self::error::ConversionError;
8483        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
8484            value.parse()
8485        }
8486    }
8487    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForBlockMethod {
8488        type Error = self::error::ConversionError;
8489        fn try_from(
8490            value: &::std::string::String,
8491        ) -> ::std::result::Result<Self, self::error::ConversionError> {
8492            value.parse()
8493        }
8494    }
8495    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForBlockMethod {
8496        type Error = self::error::ConversionError;
8497        fn try_from(
8498            value: ::std::string::String,
8499        ) -> ::std::result::Result<Self, self::error::ConversionError> {
8500            value.parse()
8501        }
8502    }
8503    #[doc = "`JsonRpcRequestForBroadcastTxAsync`"]
8504    #[doc = r""]
8505    #[doc = r" <details><summary>JSON schema</summary>"]
8506    #[doc = r""]
8507    #[doc = r" ```json"]
8508    #[doc = "{"]
8509    #[doc = "  \"title\": \"JsonRpcRequest_for_broadcast_tx_async\","]
8510    #[doc = "  \"type\": \"object\","]
8511    #[doc = "  \"required\": ["]
8512    #[doc = "    \"id\","]
8513    #[doc = "    \"jsonrpc\","]
8514    #[doc = "    \"method\","]
8515    #[doc = "    \"params\""]
8516    #[doc = "  ],"]
8517    #[doc = "  \"properties\": {"]
8518    #[doc = "    \"id\": {"]
8519    #[doc = "      \"type\": \"string\""]
8520    #[doc = "    },"]
8521    #[doc = "    \"jsonrpc\": {"]
8522    #[doc = "      \"type\": \"string\""]
8523    #[doc = "    },"]
8524    #[doc = "    \"method\": {"]
8525    #[doc = "      \"type\": \"string\","]
8526    #[doc = "      \"enum\": ["]
8527    #[doc = "        \"broadcast_tx_async\""]
8528    #[doc = "      ]"]
8529    #[doc = "    },"]
8530    #[doc = "    \"params\": {"]
8531    #[doc = "      \"$ref\": \"#/components/schemas/RpcSendTransactionRequest\""]
8532    #[doc = "    }"]
8533    #[doc = "  }"]
8534    #[doc = "}"]
8535    #[doc = r" ```"]
8536    #[doc = r" </details>"]
8537    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
8538    pub struct JsonRpcRequestForBroadcastTxAsync {
8539        pub id: ::std::string::String,
8540        pub jsonrpc: ::std::string::String,
8541        pub method: JsonRpcRequestForBroadcastTxAsyncMethod,
8542        pub params: RpcSendTransactionRequest,
8543    }
8544    impl ::std::convert::From<&JsonRpcRequestForBroadcastTxAsync>
8545        for JsonRpcRequestForBroadcastTxAsync
8546    {
8547        fn from(value: &JsonRpcRequestForBroadcastTxAsync) -> Self {
8548            value.clone()
8549        }
8550    }
8551    #[doc = "`JsonRpcRequestForBroadcastTxAsyncMethod`"]
8552    #[doc = r""]
8553    #[doc = r" <details><summary>JSON schema</summary>"]
8554    #[doc = r""]
8555    #[doc = r" ```json"]
8556    #[doc = "{"]
8557    #[doc = "  \"type\": \"string\","]
8558    #[doc = "  \"enum\": ["]
8559    #[doc = "    \"broadcast_tx_async\""]
8560    #[doc = "  ]"]
8561    #[doc = "}"]
8562    #[doc = r" ```"]
8563    #[doc = r" </details>"]
8564    #[derive(
8565        :: serde :: Deserialize,
8566        :: serde :: Serialize,
8567        Clone,
8568        Copy,
8569        Debug,
8570        Eq,
8571        Hash,
8572        Ord,
8573        PartialEq,
8574        PartialOrd,
8575    )]
8576    pub enum JsonRpcRequestForBroadcastTxAsyncMethod {
8577        #[serde(rename = "broadcast_tx_async")]
8578        BroadcastTxAsync,
8579    }
8580    impl ::std::convert::From<&Self> for JsonRpcRequestForBroadcastTxAsyncMethod {
8581        fn from(value: &JsonRpcRequestForBroadcastTxAsyncMethod) -> Self {
8582            value.clone()
8583        }
8584    }
8585    impl ::std::fmt::Display for JsonRpcRequestForBroadcastTxAsyncMethod {
8586        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8587            match *self {
8588                Self::BroadcastTxAsync => write!(f, "broadcast_tx_async"),
8589            }
8590        }
8591    }
8592    impl ::std::str::FromStr for JsonRpcRequestForBroadcastTxAsyncMethod {
8593        type Err = self::error::ConversionError;
8594        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
8595            match value {
8596                "broadcast_tx_async" => Ok(Self::BroadcastTxAsync),
8597                _ => Err("invalid value".into()),
8598            }
8599        }
8600    }
8601    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForBroadcastTxAsyncMethod {
8602        type Error = self::error::ConversionError;
8603        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
8604            value.parse()
8605        }
8606    }
8607    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForBroadcastTxAsyncMethod {
8608        type Error = self::error::ConversionError;
8609        fn try_from(
8610            value: &::std::string::String,
8611        ) -> ::std::result::Result<Self, self::error::ConversionError> {
8612            value.parse()
8613        }
8614    }
8615    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForBroadcastTxAsyncMethod {
8616        type Error = self::error::ConversionError;
8617        fn try_from(
8618            value: ::std::string::String,
8619        ) -> ::std::result::Result<Self, self::error::ConversionError> {
8620            value.parse()
8621        }
8622    }
8623    #[doc = "`JsonRpcRequestForBroadcastTxCommit`"]
8624    #[doc = r""]
8625    #[doc = r" <details><summary>JSON schema</summary>"]
8626    #[doc = r""]
8627    #[doc = r" ```json"]
8628    #[doc = "{"]
8629    #[doc = "  \"title\": \"JsonRpcRequest_for_broadcast_tx_commit\","]
8630    #[doc = "  \"type\": \"object\","]
8631    #[doc = "  \"required\": ["]
8632    #[doc = "    \"id\","]
8633    #[doc = "    \"jsonrpc\","]
8634    #[doc = "    \"method\","]
8635    #[doc = "    \"params\""]
8636    #[doc = "  ],"]
8637    #[doc = "  \"properties\": {"]
8638    #[doc = "    \"id\": {"]
8639    #[doc = "      \"type\": \"string\""]
8640    #[doc = "    },"]
8641    #[doc = "    \"jsonrpc\": {"]
8642    #[doc = "      \"type\": \"string\""]
8643    #[doc = "    },"]
8644    #[doc = "    \"method\": {"]
8645    #[doc = "      \"type\": \"string\","]
8646    #[doc = "      \"enum\": ["]
8647    #[doc = "        \"broadcast_tx_commit\""]
8648    #[doc = "      ]"]
8649    #[doc = "    },"]
8650    #[doc = "    \"params\": {"]
8651    #[doc = "      \"$ref\": \"#/components/schemas/RpcSendTransactionRequest\""]
8652    #[doc = "    }"]
8653    #[doc = "  }"]
8654    #[doc = "}"]
8655    #[doc = r" ```"]
8656    #[doc = r" </details>"]
8657    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
8658    pub struct JsonRpcRequestForBroadcastTxCommit {
8659        pub id: ::std::string::String,
8660        pub jsonrpc: ::std::string::String,
8661        pub method: JsonRpcRequestForBroadcastTxCommitMethod,
8662        pub params: RpcSendTransactionRequest,
8663    }
8664    impl ::std::convert::From<&JsonRpcRequestForBroadcastTxCommit>
8665        for JsonRpcRequestForBroadcastTxCommit
8666    {
8667        fn from(value: &JsonRpcRequestForBroadcastTxCommit) -> Self {
8668            value.clone()
8669        }
8670    }
8671    #[doc = "`JsonRpcRequestForBroadcastTxCommitMethod`"]
8672    #[doc = r""]
8673    #[doc = r" <details><summary>JSON schema</summary>"]
8674    #[doc = r""]
8675    #[doc = r" ```json"]
8676    #[doc = "{"]
8677    #[doc = "  \"type\": \"string\","]
8678    #[doc = "  \"enum\": ["]
8679    #[doc = "    \"broadcast_tx_commit\""]
8680    #[doc = "  ]"]
8681    #[doc = "}"]
8682    #[doc = r" ```"]
8683    #[doc = r" </details>"]
8684    #[derive(
8685        :: serde :: Deserialize,
8686        :: serde :: Serialize,
8687        Clone,
8688        Copy,
8689        Debug,
8690        Eq,
8691        Hash,
8692        Ord,
8693        PartialEq,
8694        PartialOrd,
8695    )]
8696    pub enum JsonRpcRequestForBroadcastTxCommitMethod {
8697        #[serde(rename = "broadcast_tx_commit")]
8698        BroadcastTxCommit,
8699    }
8700    impl ::std::convert::From<&Self> for JsonRpcRequestForBroadcastTxCommitMethod {
8701        fn from(value: &JsonRpcRequestForBroadcastTxCommitMethod) -> Self {
8702            value.clone()
8703        }
8704    }
8705    impl ::std::fmt::Display for JsonRpcRequestForBroadcastTxCommitMethod {
8706        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8707            match *self {
8708                Self::BroadcastTxCommit => write!(f, "broadcast_tx_commit"),
8709            }
8710        }
8711    }
8712    impl ::std::str::FromStr for JsonRpcRequestForBroadcastTxCommitMethod {
8713        type Err = self::error::ConversionError;
8714        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
8715            match value {
8716                "broadcast_tx_commit" => Ok(Self::BroadcastTxCommit),
8717                _ => Err("invalid value".into()),
8718            }
8719        }
8720    }
8721    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForBroadcastTxCommitMethod {
8722        type Error = self::error::ConversionError;
8723        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
8724            value.parse()
8725        }
8726    }
8727    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForBroadcastTxCommitMethod {
8728        type Error = self::error::ConversionError;
8729        fn try_from(
8730            value: &::std::string::String,
8731        ) -> ::std::result::Result<Self, self::error::ConversionError> {
8732            value.parse()
8733        }
8734    }
8735    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForBroadcastTxCommitMethod {
8736        type Error = self::error::ConversionError;
8737        fn try_from(
8738            value: ::std::string::String,
8739        ) -> ::std::result::Result<Self, self::error::ConversionError> {
8740            value.parse()
8741        }
8742    }
8743    #[doc = "`JsonRpcRequestForChunk`"]
8744    #[doc = r""]
8745    #[doc = r" <details><summary>JSON schema</summary>"]
8746    #[doc = r""]
8747    #[doc = r" ```json"]
8748    #[doc = "{"]
8749    #[doc = "  \"title\": \"JsonRpcRequest_for_chunk\","]
8750    #[doc = "  \"type\": \"object\","]
8751    #[doc = "  \"required\": ["]
8752    #[doc = "    \"id\","]
8753    #[doc = "    \"jsonrpc\","]
8754    #[doc = "    \"method\","]
8755    #[doc = "    \"params\""]
8756    #[doc = "  ],"]
8757    #[doc = "  \"properties\": {"]
8758    #[doc = "    \"id\": {"]
8759    #[doc = "      \"type\": \"string\""]
8760    #[doc = "    },"]
8761    #[doc = "    \"jsonrpc\": {"]
8762    #[doc = "      \"type\": \"string\""]
8763    #[doc = "    },"]
8764    #[doc = "    \"method\": {"]
8765    #[doc = "      \"type\": \"string\","]
8766    #[doc = "      \"enum\": ["]
8767    #[doc = "        \"chunk\""]
8768    #[doc = "      ]"]
8769    #[doc = "    },"]
8770    #[doc = "    \"params\": {"]
8771    #[doc = "      \"$ref\": \"#/components/schemas/RpcChunkRequest\""]
8772    #[doc = "    }"]
8773    #[doc = "  }"]
8774    #[doc = "}"]
8775    #[doc = r" ```"]
8776    #[doc = r" </details>"]
8777    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
8778    pub struct JsonRpcRequestForChunk {
8779        pub id: ::std::string::String,
8780        pub jsonrpc: ::std::string::String,
8781        pub method: JsonRpcRequestForChunkMethod,
8782        pub params: RpcChunkRequest,
8783    }
8784    impl ::std::convert::From<&JsonRpcRequestForChunk> for JsonRpcRequestForChunk {
8785        fn from(value: &JsonRpcRequestForChunk) -> Self {
8786            value.clone()
8787        }
8788    }
8789    #[doc = "`JsonRpcRequestForChunkMethod`"]
8790    #[doc = r""]
8791    #[doc = r" <details><summary>JSON schema</summary>"]
8792    #[doc = r""]
8793    #[doc = r" ```json"]
8794    #[doc = "{"]
8795    #[doc = "  \"type\": \"string\","]
8796    #[doc = "  \"enum\": ["]
8797    #[doc = "    \"chunk\""]
8798    #[doc = "  ]"]
8799    #[doc = "}"]
8800    #[doc = r" ```"]
8801    #[doc = r" </details>"]
8802    #[derive(
8803        :: serde :: Deserialize,
8804        :: serde :: Serialize,
8805        Clone,
8806        Copy,
8807        Debug,
8808        Eq,
8809        Hash,
8810        Ord,
8811        PartialEq,
8812        PartialOrd,
8813    )]
8814    pub enum JsonRpcRequestForChunkMethod {
8815        #[serde(rename = "chunk")]
8816        Chunk,
8817    }
8818    impl ::std::convert::From<&Self> for JsonRpcRequestForChunkMethod {
8819        fn from(value: &JsonRpcRequestForChunkMethod) -> Self {
8820            value.clone()
8821        }
8822    }
8823    impl ::std::fmt::Display for JsonRpcRequestForChunkMethod {
8824        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8825            match *self {
8826                Self::Chunk => write!(f, "chunk"),
8827            }
8828        }
8829    }
8830    impl ::std::str::FromStr for JsonRpcRequestForChunkMethod {
8831        type Err = self::error::ConversionError;
8832        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
8833            match value {
8834                "chunk" => Ok(Self::Chunk),
8835                _ => Err("invalid value".into()),
8836            }
8837        }
8838    }
8839    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForChunkMethod {
8840        type Error = self::error::ConversionError;
8841        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
8842            value.parse()
8843        }
8844    }
8845    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForChunkMethod {
8846        type Error = self::error::ConversionError;
8847        fn try_from(
8848            value: &::std::string::String,
8849        ) -> ::std::result::Result<Self, self::error::ConversionError> {
8850            value.parse()
8851        }
8852    }
8853    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForChunkMethod {
8854        type Error = self::error::ConversionError;
8855        fn try_from(
8856            value: ::std::string::String,
8857        ) -> ::std::result::Result<Self, self::error::ConversionError> {
8858            value.parse()
8859        }
8860    }
8861    #[doc = "`JsonRpcRequestForClientConfig`"]
8862    #[doc = r""]
8863    #[doc = r" <details><summary>JSON schema</summary>"]
8864    #[doc = r""]
8865    #[doc = r" ```json"]
8866    #[doc = "{"]
8867    #[doc = "  \"title\": \"JsonRpcRequest_for_client_config\","]
8868    #[doc = "  \"type\": \"object\","]
8869    #[doc = "  \"required\": ["]
8870    #[doc = "    \"id\","]
8871    #[doc = "    \"jsonrpc\","]
8872    #[doc = "    \"method\","]
8873    #[doc = "    \"params\""]
8874    #[doc = "  ],"]
8875    #[doc = "  \"properties\": {"]
8876    #[doc = "    \"id\": {"]
8877    #[doc = "      \"type\": \"string\""]
8878    #[doc = "    },"]
8879    #[doc = "    \"jsonrpc\": {"]
8880    #[doc = "      \"type\": \"string\""]
8881    #[doc = "    },"]
8882    #[doc = "    \"method\": {"]
8883    #[doc = "      \"type\": \"string\","]
8884    #[doc = "      \"enum\": ["]
8885    #[doc = "        \"client_config\""]
8886    #[doc = "      ]"]
8887    #[doc = "    },"]
8888    #[doc = "    \"params\": {"]
8889    #[doc = "      \"$ref\": \"#/components/schemas/RpcClientConfigRequest\""]
8890    #[doc = "    }"]
8891    #[doc = "  }"]
8892    #[doc = "}"]
8893    #[doc = r" ```"]
8894    #[doc = r" </details>"]
8895    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
8896    pub struct JsonRpcRequestForClientConfig {
8897        pub id: ::std::string::String,
8898        pub jsonrpc: ::std::string::String,
8899        pub method: JsonRpcRequestForClientConfigMethod,
8900        pub params: RpcClientConfigRequest,
8901    }
8902    impl ::std::convert::From<&JsonRpcRequestForClientConfig> for JsonRpcRequestForClientConfig {
8903        fn from(value: &JsonRpcRequestForClientConfig) -> Self {
8904            value.clone()
8905        }
8906    }
8907    #[doc = "`JsonRpcRequestForClientConfigMethod`"]
8908    #[doc = r""]
8909    #[doc = r" <details><summary>JSON schema</summary>"]
8910    #[doc = r""]
8911    #[doc = r" ```json"]
8912    #[doc = "{"]
8913    #[doc = "  \"type\": \"string\","]
8914    #[doc = "  \"enum\": ["]
8915    #[doc = "    \"client_config\""]
8916    #[doc = "  ]"]
8917    #[doc = "}"]
8918    #[doc = r" ```"]
8919    #[doc = r" </details>"]
8920    #[derive(
8921        :: serde :: Deserialize,
8922        :: serde :: Serialize,
8923        Clone,
8924        Copy,
8925        Debug,
8926        Eq,
8927        Hash,
8928        Ord,
8929        PartialEq,
8930        PartialOrd,
8931    )]
8932    pub enum JsonRpcRequestForClientConfigMethod {
8933        #[serde(rename = "client_config")]
8934        ClientConfig,
8935    }
8936    impl ::std::convert::From<&Self> for JsonRpcRequestForClientConfigMethod {
8937        fn from(value: &JsonRpcRequestForClientConfigMethod) -> Self {
8938            value.clone()
8939        }
8940    }
8941    impl ::std::fmt::Display for JsonRpcRequestForClientConfigMethod {
8942        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8943            match *self {
8944                Self::ClientConfig => write!(f, "client_config"),
8945            }
8946        }
8947    }
8948    impl ::std::str::FromStr for JsonRpcRequestForClientConfigMethod {
8949        type Err = self::error::ConversionError;
8950        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
8951            match value {
8952                "client_config" => Ok(Self::ClientConfig),
8953                _ => Err("invalid value".into()),
8954            }
8955        }
8956    }
8957    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForClientConfigMethod {
8958        type Error = self::error::ConversionError;
8959        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
8960            value.parse()
8961        }
8962    }
8963    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForClientConfigMethod {
8964        type Error = self::error::ConversionError;
8965        fn try_from(
8966            value: &::std::string::String,
8967        ) -> ::std::result::Result<Self, self::error::ConversionError> {
8968            value.parse()
8969        }
8970    }
8971    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForClientConfigMethod {
8972        type Error = self::error::ConversionError;
8973        fn try_from(
8974            value: ::std::string::String,
8975        ) -> ::std::result::Result<Self, self::error::ConversionError> {
8976            value.parse()
8977        }
8978    }
8979    #[doc = "`JsonRpcRequestForExperimentalChanges`"]
8980    #[doc = r""]
8981    #[doc = r" <details><summary>JSON schema</summary>"]
8982    #[doc = r""]
8983    #[doc = r" ```json"]
8984    #[doc = "{"]
8985    #[doc = "  \"title\": \"JsonRpcRequest_for_EXPERIMENTAL_changes\","]
8986    #[doc = "  \"type\": \"object\","]
8987    #[doc = "  \"required\": ["]
8988    #[doc = "    \"id\","]
8989    #[doc = "    \"jsonrpc\","]
8990    #[doc = "    \"method\","]
8991    #[doc = "    \"params\""]
8992    #[doc = "  ],"]
8993    #[doc = "  \"properties\": {"]
8994    #[doc = "    \"id\": {"]
8995    #[doc = "      \"type\": \"string\""]
8996    #[doc = "    },"]
8997    #[doc = "    \"jsonrpc\": {"]
8998    #[doc = "      \"type\": \"string\""]
8999    #[doc = "    },"]
9000    #[doc = "    \"method\": {"]
9001    #[doc = "      \"type\": \"string\","]
9002    #[doc = "      \"enum\": ["]
9003    #[doc = "        \"EXPERIMENTAL_changes\""]
9004    #[doc = "      ]"]
9005    #[doc = "    },"]
9006    #[doc = "    \"params\": {"]
9007    #[doc = "      \"$ref\": \"#/components/schemas/RpcStateChangesInBlockByTypeRequest\""]
9008    #[doc = "    }"]
9009    #[doc = "  }"]
9010    #[doc = "}"]
9011    #[doc = r" ```"]
9012    #[doc = r" </details>"]
9013    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
9014    pub struct JsonRpcRequestForExperimentalChanges {
9015        pub id: ::std::string::String,
9016        pub jsonrpc: ::std::string::String,
9017        pub method: JsonRpcRequestForExperimentalChangesMethod,
9018        pub params: RpcStateChangesInBlockByTypeRequest,
9019    }
9020    impl ::std::convert::From<&JsonRpcRequestForExperimentalChanges>
9021        for JsonRpcRequestForExperimentalChanges
9022    {
9023        fn from(value: &JsonRpcRequestForExperimentalChanges) -> Self {
9024            value.clone()
9025        }
9026    }
9027    #[doc = "`JsonRpcRequestForExperimentalChangesInBlock`"]
9028    #[doc = r""]
9029    #[doc = r" <details><summary>JSON schema</summary>"]
9030    #[doc = r""]
9031    #[doc = r" ```json"]
9032    #[doc = "{"]
9033    #[doc = "  \"title\": \"JsonRpcRequest_for_EXPERIMENTAL_changes_in_block\","]
9034    #[doc = "  \"type\": \"object\","]
9035    #[doc = "  \"required\": ["]
9036    #[doc = "    \"id\","]
9037    #[doc = "    \"jsonrpc\","]
9038    #[doc = "    \"method\","]
9039    #[doc = "    \"params\""]
9040    #[doc = "  ],"]
9041    #[doc = "  \"properties\": {"]
9042    #[doc = "    \"id\": {"]
9043    #[doc = "      \"type\": \"string\""]
9044    #[doc = "    },"]
9045    #[doc = "    \"jsonrpc\": {"]
9046    #[doc = "      \"type\": \"string\""]
9047    #[doc = "    },"]
9048    #[doc = "    \"method\": {"]
9049    #[doc = "      \"type\": \"string\","]
9050    #[doc = "      \"enum\": ["]
9051    #[doc = "        \"EXPERIMENTAL_changes_in_block\""]
9052    #[doc = "      ]"]
9053    #[doc = "    },"]
9054    #[doc = "    \"params\": {"]
9055    #[doc = "      \"$ref\": \"#/components/schemas/RpcStateChangesInBlockRequest\""]
9056    #[doc = "    }"]
9057    #[doc = "  }"]
9058    #[doc = "}"]
9059    #[doc = r" ```"]
9060    #[doc = r" </details>"]
9061    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
9062    pub struct JsonRpcRequestForExperimentalChangesInBlock {
9063        pub id: ::std::string::String,
9064        pub jsonrpc: ::std::string::String,
9065        pub method: JsonRpcRequestForExperimentalChangesInBlockMethod,
9066        pub params: RpcStateChangesInBlockRequest,
9067    }
9068    impl ::std::convert::From<&JsonRpcRequestForExperimentalChangesInBlock>
9069        for JsonRpcRequestForExperimentalChangesInBlock
9070    {
9071        fn from(value: &JsonRpcRequestForExperimentalChangesInBlock) -> Self {
9072            value.clone()
9073        }
9074    }
9075    #[doc = "`JsonRpcRequestForExperimentalChangesInBlockMethod`"]
9076    #[doc = r""]
9077    #[doc = r" <details><summary>JSON schema</summary>"]
9078    #[doc = r""]
9079    #[doc = r" ```json"]
9080    #[doc = "{"]
9081    #[doc = "  \"type\": \"string\","]
9082    #[doc = "  \"enum\": ["]
9083    #[doc = "    \"EXPERIMENTAL_changes_in_block\""]
9084    #[doc = "  ]"]
9085    #[doc = "}"]
9086    #[doc = r" ```"]
9087    #[doc = r" </details>"]
9088    #[derive(
9089        :: serde :: Deserialize,
9090        :: serde :: Serialize,
9091        Clone,
9092        Copy,
9093        Debug,
9094        Eq,
9095        Hash,
9096        Ord,
9097        PartialEq,
9098        PartialOrd,
9099    )]
9100    pub enum JsonRpcRequestForExperimentalChangesInBlockMethod {
9101        #[serde(rename = "EXPERIMENTAL_changes_in_block")]
9102        ExperimentalChangesInBlock,
9103    }
9104    impl ::std::convert::From<&Self> for JsonRpcRequestForExperimentalChangesInBlockMethod {
9105        fn from(value: &JsonRpcRequestForExperimentalChangesInBlockMethod) -> Self {
9106            value.clone()
9107        }
9108    }
9109    impl ::std::fmt::Display for JsonRpcRequestForExperimentalChangesInBlockMethod {
9110        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9111            match *self {
9112                Self::ExperimentalChangesInBlock => write!(f, "EXPERIMENTAL_changes_in_block"),
9113            }
9114        }
9115    }
9116    impl ::std::str::FromStr for JsonRpcRequestForExperimentalChangesInBlockMethod {
9117        type Err = self::error::ConversionError;
9118        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9119            match value {
9120                "EXPERIMENTAL_changes_in_block" => Ok(Self::ExperimentalChangesInBlock),
9121                _ => Err("invalid value".into()),
9122            }
9123        }
9124    }
9125    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForExperimentalChangesInBlockMethod {
9126        type Error = self::error::ConversionError;
9127        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9128            value.parse()
9129        }
9130    }
9131    impl ::std::convert::TryFrom<&::std::string::String>
9132        for JsonRpcRequestForExperimentalChangesInBlockMethod
9133    {
9134        type Error = self::error::ConversionError;
9135        fn try_from(
9136            value: &::std::string::String,
9137        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9138            value.parse()
9139        }
9140    }
9141    impl ::std::convert::TryFrom<::std::string::String>
9142        for JsonRpcRequestForExperimentalChangesInBlockMethod
9143    {
9144        type Error = self::error::ConversionError;
9145        fn try_from(
9146            value: ::std::string::String,
9147        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9148            value.parse()
9149        }
9150    }
9151    #[doc = "`JsonRpcRequestForExperimentalChangesMethod`"]
9152    #[doc = r""]
9153    #[doc = r" <details><summary>JSON schema</summary>"]
9154    #[doc = r""]
9155    #[doc = r" ```json"]
9156    #[doc = "{"]
9157    #[doc = "  \"type\": \"string\","]
9158    #[doc = "  \"enum\": ["]
9159    #[doc = "    \"EXPERIMENTAL_changes\""]
9160    #[doc = "  ]"]
9161    #[doc = "}"]
9162    #[doc = r" ```"]
9163    #[doc = r" </details>"]
9164    #[derive(
9165        :: serde :: Deserialize,
9166        :: serde :: Serialize,
9167        Clone,
9168        Copy,
9169        Debug,
9170        Eq,
9171        Hash,
9172        Ord,
9173        PartialEq,
9174        PartialOrd,
9175    )]
9176    pub enum JsonRpcRequestForExperimentalChangesMethod {
9177        #[serde(rename = "EXPERIMENTAL_changes")]
9178        ExperimentalChanges,
9179    }
9180    impl ::std::convert::From<&Self> for JsonRpcRequestForExperimentalChangesMethod {
9181        fn from(value: &JsonRpcRequestForExperimentalChangesMethod) -> Self {
9182            value.clone()
9183        }
9184    }
9185    impl ::std::fmt::Display for JsonRpcRequestForExperimentalChangesMethod {
9186        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9187            match *self {
9188                Self::ExperimentalChanges => write!(f, "EXPERIMENTAL_changes"),
9189            }
9190        }
9191    }
9192    impl ::std::str::FromStr for JsonRpcRequestForExperimentalChangesMethod {
9193        type Err = self::error::ConversionError;
9194        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9195            match value {
9196                "EXPERIMENTAL_changes" => Ok(Self::ExperimentalChanges),
9197                _ => Err("invalid value".into()),
9198            }
9199        }
9200    }
9201    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForExperimentalChangesMethod {
9202        type Error = self::error::ConversionError;
9203        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9204            value.parse()
9205        }
9206    }
9207    impl ::std::convert::TryFrom<&::std::string::String>
9208        for JsonRpcRequestForExperimentalChangesMethod
9209    {
9210        type Error = self::error::ConversionError;
9211        fn try_from(
9212            value: &::std::string::String,
9213        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9214            value.parse()
9215        }
9216    }
9217    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForExperimentalChangesMethod {
9218        type Error = self::error::ConversionError;
9219        fn try_from(
9220            value: ::std::string::String,
9221        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9222            value.parse()
9223        }
9224    }
9225    #[doc = "`JsonRpcRequestForExperimentalCongestionLevel`"]
9226    #[doc = r""]
9227    #[doc = r" <details><summary>JSON schema</summary>"]
9228    #[doc = r""]
9229    #[doc = r" ```json"]
9230    #[doc = "{"]
9231    #[doc = "  \"title\": \"JsonRpcRequest_for_EXPERIMENTAL_congestion_level\","]
9232    #[doc = "  \"type\": \"object\","]
9233    #[doc = "  \"required\": ["]
9234    #[doc = "    \"id\","]
9235    #[doc = "    \"jsonrpc\","]
9236    #[doc = "    \"method\","]
9237    #[doc = "    \"params\""]
9238    #[doc = "  ],"]
9239    #[doc = "  \"properties\": {"]
9240    #[doc = "    \"id\": {"]
9241    #[doc = "      \"type\": \"string\""]
9242    #[doc = "    },"]
9243    #[doc = "    \"jsonrpc\": {"]
9244    #[doc = "      \"type\": \"string\""]
9245    #[doc = "    },"]
9246    #[doc = "    \"method\": {"]
9247    #[doc = "      \"type\": \"string\","]
9248    #[doc = "      \"enum\": ["]
9249    #[doc = "        \"EXPERIMENTAL_congestion_level\""]
9250    #[doc = "      ]"]
9251    #[doc = "    },"]
9252    #[doc = "    \"params\": {"]
9253    #[doc = "      \"$ref\": \"#/components/schemas/RpcCongestionLevelRequest\""]
9254    #[doc = "    }"]
9255    #[doc = "  }"]
9256    #[doc = "}"]
9257    #[doc = r" ```"]
9258    #[doc = r" </details>"]
9259    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
9260    pub struct JsonRpcRequestForExperimentalCongestionLevel {
9261        pub id: ::std::string::String,
9262        pub jsonrpc: ::std::string::String,
9263        pub method: JsonRpcRequestForExperimentalCongestionLevelMethod,
9264        pub params: RpcCongestionLevelRequest,
9265    }
9266    impl ::std::convert::From<&JsonRpcRequestForExperimentalCongestionLevel>
9267        for JsonRpcRequestForExperimentalCongestionLevel
9268    {
9269        fn from(value: &JsonRpcRequestForExperimentalCongestionLevel) -> Self {
9270            value.clone()
9271        }
9272    }
9273    #[doc = "`JsonRpcRequestForExperimentalCongestionLevelMethod`"]
9274    #[doc = r""]
9275    #[doc = r" <details><summary>JSON schema</summary>"]
9276    #[doc = r""]
9277    #[doc = r" ```json"]
9278    #[doc = "{"]
9279    #[doc = "  \"type\": \"string\","]
9280    #[doc = "  \"enum\": ["]
9281    #[doc = "    \"EXPERIMENTAL_congestion_level\""]
9282    #[doc = "  ]"]
9283    #[doc = "}"]
9284    #[doc = r" ```"]
9285    #[doc = r" </details>"]
9286    #[derive(
9287        :: serde :: Deserialize,
9288        :: serde :: Serialize,
9289        Clone,
9290        Copy,
9291        Debug,
9292        Eq,
9293        Hash,
9294        Ord,
9295        PartialEq,
9296        PartialOrd,
9297    )]
9298    pub enum JsonRpcRequestForExperimentalCongestionLevelMethod {
9299        #[serde(rename = "EXPERIMENTAL_congestion_level")]
9300        ExperimentalCongestionLevel,
9301    }
9302    impl ::std::convert::From<&Self> for JsonRpcRequestForExperimentalCongestionLevelMethod {
9303        fn from(value: &JsonRpcRequestForExperimentalCongestionLevelMethod) -> Self {
9304            value.clone()
9305        }
9306    }
9307    impl ::std::fmt::Display for JsonRpcRequestForExperimentalCongestionLevelMethod {
9308        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9309            match *self {
9310                Self::ExperimentalCongestionLevel => write!(f, "EXPERIMENTAL_congestion_level"),
9311            }
9312        }
9313    }
9314    impl ::std::str::FromStr for JsonRpcRequestForExperimentalCongestionLevelMethod {
9315        type Err = self::error::ConversionError;
9316        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9317            match value {
9318                "EXPERIMENTAL_congestion_level" => Ok(Self::ExperimentalCongestionLevel),
9319                _ => Err("invalid value".into()),
9320            }
9321        }
9322    }
9323    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForExperimentalCongestionLevelMethod {
9324        type Error = self::error::ConversionError;
9325        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9326            value.parse()
9327        }
9328    }
9329    impl ::std::convert::TryFrom<&::std::string::String>
9330        for JsonRpcRequestForExperimentalCongestionLevelMethod
9331    {
9332        type Error = self::error::ConversionError;
9333        fn try_from(
9334            value: &::std::string::String,
9335        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9336            value.parse()
9337        }
9338    }
9339    impl ::std::convert::TryFrom<::std::string::String>
9340        for JsonRpcRequestForExperimentalCongestionLevelMethod
9341    {
9342        type Error = self::error::ConversionError;
9343        fn try_from(
9344            value: ::std::string::String,
9345        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9346            value.parse()
9347        }
9348    }
9349    #[doc = "`JsonRpcRequestForExperimentalGenesisConfig`"]
9350    #[doc = r""]
9351    #[doc = r" <details><summary>JSON schema</summary>"]
9352    #[doc = r""]
9353    #[doc = r" ```json"]
9354    #[doc = "{"]
9355    #[doc = "  \"title\": \"JsonRpcRequest_for_EXPERIMENTAL_genesis_config\","]
9356    #[doc = "  \"type\": \"object\","]
9357    #[doc = "  \"required\": ["]
9358    #[doc = "    \"id\","]
9359    #[doc = "    \"jsonrpc\","]
9360    #[doc = "    \"method\","]
9361    #[doc = "    \"params\""]
9362    #[doc = "  ],"]
9363    #[doc = "  \"properties\": {"]
9364    #[doc = "    \"id\": {"]
9365    #[doc = "      \"type\": \"string\""]
9366    #[doc = "    },"]
9367    #[doc = "    \"jsonrpc\": {"]
9368    #[doc = "      \"type\": \"string\""]
9369    #[doc = "    },"]
9370    #[doc = "    \"method\": {"]
9371    #[doc = "      \"type\": \"string\","]
9372    #[doc = "      \"enum\": ["]
9373    #[doc = "        \"EXPERIMENTAL_genesis_config\""]
9374    #[doc = "      ]"]
9375    #[doc = "    },"]
9376    #[doc = "    \"params\": {"]
9377    #[doc = "      \"$ref\": \"#/components/schemas/GenesisConfigRequest\""]
9378    #[doc = "    }"]
9379    #[doc = "  }"]
9380    #[doc = "}"]
9381    #[doc = r" ```"]
9382    #[doc = r" </details>"]
9383    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
9384    pub struct JsonRpcRequestForExperimentalGenesisConfig {
9385        pub id: ::std::string::String,
9386        pub jsonrpc: ::std::string::String,
9387        pub method: JsonRpcRequestForExperimentalGenesisConfigMethod,
9388        pub params: GenesisConfigRequest,
9389    }
9390    impl ::std::convert::From<&JsonRpcRequestForExperimentalGenesisConfig>
9391        for JsonRpcRequestForExperimentalGenesisConfig
9392    {
9393        fn from(value: &JsonRpcRequestForExperimentalGenesisConfig) -> Self {
9394            value.clone()
9395        }
9396    }
9397    #[doc = "`JsonRpcRequestForExperimentalGenesisConfigMethod`"]
9398    #[doc = r""]
9399    #[doc = r" <details><summary>JSON schema</summary>"]
9400    #[doc = r""]
9401    #[doc = r" ```json"]
9402    #[doc = "{"]
9403    #[doc = "  \"type\": \"string\","]
9404    #[doc = "  \"enum\": ["]
9405    #[doc = "    \"EXPERIMENTAL_genesis_config\""]
9406    #[doc = "  ]"]
9407    #[doc = "}"]
9408    #[doc = r" ```"]
9409    #[doc = r" </details>"]
9410    #[derive(
9411        :: serde :: Deserialize,
9412        :: serde :: Serialize,
9413        Clone,
9414        Copy,
9415        Debug,
9416        Eq,
9417        Hash,
9418        Ord,
9419        PartialEq,
9420        PartialOrd,
9421    )]
9422    pub enum JsonRpcRequestForExperimentalGenesisConfigMethod {
9423        #[serde(rename = "EXPERIMENTAL_genesis_config")]
9424        ExperimentalGenesisConfig,
9425    }
9426    impl ::std::convert::From<&Self> for JsonRpcRequestForExperimentalGenesisConfigMethod {
9427        fn from(value: &JsonRpcRequestForExperimentalGenesisConfigMethod) -> Self {
9428            value.clone()
9429        }
9430    }
9431    impl ::std::fmt::Display for JsonRpcRequestForExperimentalGenesisConfigMethod {
9432        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9433            match *self {
9434                Self::ExperimentalGenesisConfig => write!(f, "EXPERIMENTAL_genesis_config"),
9435            }
9436        }
9437    }
9438    impl ::std::str::FromStr for JsonRpcRequestForExperimentalGenesisConfigMethod {
9439        type Err = self::error::ConversionError;
9440        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9441            match value {
9442                "EXPERIMENTAL_genesis_config" => Ok(Self::ExperimentalGenesisConfig),
9443                _ => Err("invalid value".into()),
9444            }
9445        }
9446    }
9447    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForExperimentalGenesisConfigMethod {
9448        type Error = self::error::ConversionError;
9449        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9450            value.parse()
9451        }
9452    }
9453    impl ::std::convert::TryFrom<&::std::string::String>
9454        for JsonRpcRequestForExperimentalGenesisConfigMethod
9455    {
9456        type Error = self::error::ConversionError;
9457        fn try_from(
9458            value: &::std::string::String,
9459        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9460            value.parse()
9461        }
9462    }
9463    impl ::std::convert::TryFrom<::std::string::String>
9464        for JsonRpcRequestForExperimentalGenesisConfigMethod
9465    {
9466        type Error = self::error::ConversionError;
9467        fn try_from(
9468            value: ::std::string::String,
9469        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9470            value.parse()
9471        }
9472    }
9473    #[doc = "`JsonRpcRequestForExperimentalLightClientBlockProof`"]
9474    #[doc = r""]
9475    #[doc = r" <details><summary>JSON schema</summary>"]
9476    #[doc = r""]
9477    #[doc = r" ```json"]
9478    #[doc = "{"]
9479    #[doc = "  \"title\": \"JsonRpcRequest_for_EXPERIMENTAL_light_client_block_proof\","]
9480    #[doc = "  \"type\": \"object\","]
9481    #[doc = "  \"required\": ["]
9482    #[doc = "    \"id\","]
9483    #[doc = "    \"jsonrpc\","]
9484    #[doc = "    \"method\","]
9485    #[doc = "    \"params\""]
9486    #[doc = "  ],"]
9487    #[doc = "  \"properties\": {"]
9488    #[doc = "    \"id\": {"]
9489    #[doc = "      \"type\": \"string\""]
9490    #[doc = "    },"]
9491    #[doc = "    \"jsonrpc\": {"]
9492    #[doc = "      \"type\": \"string\""]
9493    #[doc = "    },"]
9494    #[doc = "    \"method\": {"]
9495    #[doc = "      \"type\": \"string\","]
9496    #[doc = "      \"enum\": ["]
9497    #[doc = "        \"EXPERIMENTAL_light_client_block_proof\""]
9498    #[doc = "      ]"]
9499    #[doc = "    },"]
9500    #[doc = "    \"params\": {"]
9501    #[doc = "      \"$ref\": \"#/components/schemas/RpcLightClientBlockProofRequest\""]
9502    #[doc = "    }"]
9503    #[doc = "  }"]
9504    #[doc = "}"]
9505    #[doc = r" ```"]
9506    #[doc = r" </details>"]
9507    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
9508    pub struct JsonRpcRequestForExperimentalLightClientBlockProof {
9509        pub id: ::std::string::String,
9510        pub jsonrpc: ::std::string::String,
9511        pub method: JsonRpcRequestForExperimentalLightClientBlockProofMethod,
9512        pub params: RpcLightClientBlockProofRequest,
9513    }
9514    impl ::std::convert::From<&JsonRpcRequestForExperimentalLightClientBlockProof>
9515        for JsonRpcRequestForExperimentalLightClientBlockProof
9516    {
9517        fn from(value: &JsonRpcRequestForExperimentalLightClientBlockProof) -> Self {
9518            value.clone()
9519        }
9520    }
9521    #[doc = "`JsonRpcRequestForExperimentalLightClientBlockProofMethod`"]
9522    #[doc = r""]
9523    #[doc = r" <details><summary>JSON schema</summary>"]
9524    #[doc = r""]
9525    #[doc = r" ```json"]
9526    #[doc = "{"]
9527    #[doc = "  \"type\": \"string\","]
9528    #[doc = "  \"enum\": ["]
9529    #[doc = "    \"EXPERIMENTAL_light_client_block_proof\""]
9530    #[doc = "  ]"]
9531    #[doc = "}"]
9532    #[doc = r" ```"]
9533    #[doc = r" </details>"]
9534    #[derive(
9535        :: serde :: Deserialize,
9536        :: serde :: Serialize,
9537        Clone,
9538        Copy,
9539        Debug,
9540        Eq,
9541        Hash,
9542        Ord,
9543        PartialEq,
9544        PartialOrd,
9545    )]
9546    pub enum JsonRpcRequestForExperimentalLightClientBlockProofMethod {
9547        #[serde(rename = "EXPERIMENTAL_light_client_block_proof")]
9548        ExperimentalLightClientBlockProof,
9549    }
9550    impl ::std::convert::From<&Self> for JsonRpcRequestForExperimentalLightClientBlockProofMethod {
9551        fn from(value: &JsonRpcRequestForExperimentalLightClientBlockProofMethod) -> Self {
9552            value.clone()
9553        }
9554    }
9555    impl ::std::fmt::Display for JsonRpcRequestForExperimentalLightClientBlockProofMethod {
9556        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9557            match *self {
9558                Self::ExperimentalLightClientBlockProof => {
9559                    write!(f, "EXPERIMENTAL_light_client_block_proof")
9560                }
9561            }
9562        }
9563    }
9564    impl ::std::str::FromStr for JsonRpcRequestForExperimentalLightClientBlockProofMethod {
9565        type Err = self::error::ConversionError;
9566        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9567            match value {
9568                "EXPERIMENTAL_light_client_block_proof" => {
9569                    Ok(Self::ExperimentalLightClientBlockProof)
9570                }
9571                _ => Err("invalid value".into()),
9572            }
9573        }
9574    }
9575    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForExperimentalLightClientBlockProofMethod {
9576        type Error = self::error::ConversionError;
9577        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9578            value.parse()
9579        }
9580    }
9581    impl ::std::convert::TryFrom<&::std::string::String>
9582        for JsonRpcRequestForExperimentalLightClientBlockProofMethod
9583    {
9584        type Error = self::error::ConversionError;
9585        fn try_from(
9586            value: &::std::string::String,
9587        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9588            value.parse()
9589        }
9590    }
9591    impl ::std::convert::TryFrom<::std::string::String>
9592        for JsonRpcRequestForExperimentalLightClientBlockProofMethod
9593    {
9594        type Error = self::error::ConversionError;
9595        fn try_from(
9596            value: ::std::string::String,
9597        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9598            value.parse()
9599        }
9600    }
9601    #[doc = "`JsonRpcRequestForExperimentalLightClientProof`"]
9602    #[doc = r""]
9603    #[doc = r" <details><summary>JSON schema</summary>"]
9604    #[doc = r""]
9605    #[doc = r" ```json"]
9606    #[doc = "{"]
9607    #[doc = "  \"title\": \"JsonRpcRequest_for_EXPERIMENTAL_light_client_proof\","]
9608    #[doc = "  \"type\": \"object\","]
9609    #[doc = "  \"required\": ["]
9610    #[doc = "    \"id\","]
9611    #[doc = "    \"jsonrpc\","]
9612    #[doc = "    \"method\","]
9613    #[doc = "    \"params\""]
9614    #[doc = "  ],"]
9615    #[doc = "  \"properties\": {"]
9616    #[doc = "    \"id\": {"]
9617    #[doc = "      \"type\": \"string\""]
9618    #[doc = "    },"]
9619    #[doc = "    \"jsonrpc\": {"]
9620    #[doc = "      \"type\": \"string\""]
9621    #[doc = "    },"]
9622    #[doc = "    \"method\": {"]
9623    #[doc = "      \"type\": \"string\","]
9624    #[doc = "      \"enum\": ["]
9625    #[doc = "        \"EXPERIMENTAL_light_client_proof\""]
9626    #[doc = "      ]"]
9627    #[doc = "    },"]
9628    #[doc = "    \"params\": {"]
9629    #[doc = "      \"$ref\": \"#/components/schemas/RpcLightClientExecutionProofRequest\""]
9630    #[doc = "    }"]
9631    #[doc = "  }"]
9632    #[doc = "}"]
9633    #[doc = r" ```"]
9634    #[doc = r" </details>"]
9635    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
9636    pub struct JsonRpcRequestForExperimentalLightClientProof {
9637        pub id: ::std::string::String,
9638        pub jsonrpc: ::std::string::String,
9639        pub method: JsonRpcRequestForExperimentalLightClientProofMethod,
9640        pub params: RpcLightClientExecutionProofRequest,
9641    }
9642    impl ::std::convert::From<&JsonRpcRequestForExperimentalLightClientProof>
9643        for JsonRpcRequestForExperimentalLightClientProof
9644    {
9645        fn from(value: &JsonRpcRequestForExperimentalLightClientProof) -> Self {
9646            value.clone()
9647        }
9648    }
9649    #[doc = "`JsonRpcRequestForExperimentalLightClientProofMethod`"]
9650    #[doc = r""]
9651    #[doc = r" <details><summary>JSON schema</summary>"]
9652    #[doc = r""]
9653    #[doc = r" ```json"]
9654    #[doc = "{"]
9655    #[doc = "  \"type\": \"string\","]
9656    #[doc = "  \"enum\": ["]
9657    #[doc = "    \"EXPERIMENTAL_light_client_proof\""]
9658    #[doc = "  ]"]
9659    #[doc = "}"]
9660    #[doc = r" ```"]
9661    #[doc = r" </details>"]
9662    #[derive(
9663        :: serde :: Deserialize,
9664        :: serde :: Serialize,
9665        Clone,
9666        Copy,
9667        Debug,
9668        Eq,
9669        Hash,
9670        Ord,
9671        PartialEq,
9672        PartialOrd,
9673    )]
9674    pub enum JsonRpcRequestForExperimentalLightClientProofMethod {
9675        #[serde(rename = "EXPERIMENTAL_light_client_proof")]
9676        ExperimentalLightClientProof,
9677    }
9678    impl ::std::convert::From<&Self> for JsonRpcRequestForExperimentalLightClientProofMethod {
9679        fn from(value: &JsonRpcRequestForExperimentalLightClientProofMethod) -> Self {
9680            value.clone()
9681        }
9682    }
9683    impl ::std::fmt::Display for JsonRpcRequestForExperimentalLightClientProofMethod {
9684        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9685            match *self {
9686                Self::ExperimentalLightClientProof => write!(f, "EXPERIMENTAL_light_client_proof"),
9687            }
9688        }
9689    }
9690    impl ::std::str::FromStr for JsonRpcRequestForExperimentalLightClientProofMethod {
9691        type Err = self::error::ConversionError;
9692        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9693            match value {
9694                "EXPERIMENTAL_light_client_proof" => Ok(Self::ExperimentalLightClientProof),
9695                _ => Err("invalid value".into()),
9696            }
9697        }
9698    }
9699    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForExperimentalLightClientProofMethod {
9700        type Error = self::error::ConversionError;
9701        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9702            value.parse()
9703        }
9704    }
9705    impl ::std::convert::TryFrom<&::std::string::String>
9706        for JsonRpcRequestForExperimentalLightClientProofMethod
9707    {
9708        type Error = self::error::ConversionError;
9709        fn try_from(
9710            value: &::std::string::String,
9711        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9712            value.parse()
9713        }
9714    }
9715    impl ::std::convert::TryFrom<::std::string::String>
9716        for JsonRpcRequestForExperimentalLightClientProofMethod
9717    {
9718        type Error = self::error::ConversionError;
9719        fn try_from(
9720            value: ::std::string::String,
9721        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9722            value.parse()
9723        }
9724    }
9725    #[doc = "`JsonRpcRequestForExperimentalMaintenanceWindows`"]
9726    #[doc = r""]
9727    #[doc = r" <details><summary>JSON schema</summary>"]
9728    #[doc = r""]
9729    #[doc = r" ```json"]
9730    #[doc = "{"]
9731    #[doc = "  \"title\": \"JsonRpcRequest_for_EXPERIMENTAL_maintenance_windows\","]
9732    #[doc = "  \"type\": \"object\","]
9733    #[doc = "  \"required\": ["]
9734    #[doc = "    \"id\","]
9735    #[doc = "    \"jsonrpc\","]
9736    #[doc = "    \"method\","]
9737    #[doc = "    \"params\""]
9738    #[doc = "  ],"]
9739    #[doc = "  \"properties\": {"]
9740    #[doc = "    \"id\": {"]
9741    #[doc = "      \"type\": \"string\""]
9742    #[doc = "    },"]
9743    #[doc = "    \"jsonrpc\": {"]
9744    #[doc = "      \"type\": \"string\""]
9745    #[doc = "    },"]
9746    #[doc = "    \"method\": {"]
9747    #[doc = "      \"type\": \"string\","]
9748    #[doc = "      \"enum\": ["]
9749    #[doc = "        \"EXPERIMENTAL_maintenance_windows\""]
9750    #[doc = "      ]"]
9751    #[doc = "    },"]
9752    #[doc = "    \"params\": {"]
9753    #[doc = "      \"$ref\": \"#/components/schemas/RpcMaintenanceWindowsRequest\""]
9754    #[doc = "    }"]
9755    #[doc = "  }"]
9756    #[doc = "}"]
9757    #[doc = r" ```"]
9758    #[doc = r" </details>"]
9759    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
9760    pub struct JsonRpcRequestForExperimentalMaintenanceWindows {
9761        pub id: ::std::string::String,
9762        pub jsonrpc: ::std::string::String,
9763        pub method: JsonRpcRequestForExperimentalMaintenanceWindowsMethod,
9764        pub params: RpcMaintenanceWindowsRequest,
9765    }
9766    impl ::std::convert::From<&JsonRpcRequestForExperimentalMaintenanceWindows>
9767        for JsonRpcRequestForExperimentalMaintenanceWindows
9768    {
9769        fn from(value: &JsonRpcRequestForExperimentalMaintenanceWindows) -> Self {
9770            value.clone()
9771        }
9772    }
9773    #[doc = "`JsonRpcRequestForExperimentalMaintenanceWindowsMethod`"]
9774    #[doc = r""]
9775    #[doc = r" <details><summary>JSON schema</summary>"]
9776    #[doc = r""]
9777    #[doc = r" ```json"]
9778    #[doc = "{"]
9779    #[doc = "  \"type\": \"string\","]
9780    #[doc = "  \"enum\": ["]
9781    #[doc = "    \"EXPERIMENTAL_maintenance_windows\""]
9782    #[doc = "  ]"]
9783    #[doc = "}"]
9784    #[doc = r" ```"]
9785    #[doc = r" </details>"]
9786    #[derive(
9787        :: serde :: Deserialize,
9788        :: serde :: Serialize,
9789        Clone,
9790        Copy,
9791        Debug,
9792        Eq,
9793        Hash,
9794        Ord,
9795        PartialEq,
9796        PartialOrd,
9797    )]
9798    pub enum JsonRpcRequestForExperimentalMaintenanceWindowsMethod {
9799        #[serde(rename = "EXPERIMENTAL_maintenance_windows")]
9800        ExperimentalMaintenanceWindows,
9801    }
9802    impl ::std::convert::From<&Self> for JsonRpcRequestForExperimentalMaintenanceWindowsMethod {
9803        fn from(value: &JsonRpcRequestForExperimentalMaintenanceWindowsMethod) -> Self {
9804            value.clone()
9805        }
9806    }
9807    impl ::std::fmt::Display for JsonRpcRequestForExperimentalMaintenanceWindowsMethod {
9808        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9809            match *self {
9810                Self::ExperimentalMaintenanceWindows => {
9811                    write!(f, "EXPERIMENTAL_maintenance_windows")
9812                }
9813            }
9814        }
9815    }
9816    impl ::std::str::FromStr for JsonRpcRequestForExperimentalMaintenanceWindowsMethod {
9817        type Err = self::error::ConversionError;
9818        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9819            match value {
9820                "EXPERIMENTAL_maintenance_windows" => Ok(Self::ExperimentalMaintenanceWindows),
9821                _ => Err("invalid value".into()),
9822            }
9823        }
9824    }
9825    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForExperimentalMaintenanceWindowsMethod {
9826        type Error = self::error::ConversionError;
9827        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9828            value.parse()
9829        }
9830    }
9831    impl ::std::convert::TryFrom<&::std::string::String>
9832        for JsonRpcRequestForExperimentalMaintenanceWindowsMethod
9833    {
9834        type Error = self::error::ConversionError;
9835        fn try_from(
9836            value: &::std::string::String,
9837        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9838            value.parse()
9839        }
9840    }
9841    impl ::std::convert::TryFrom<::std::string::String>
9842        for JsonRpcRequestForExperimentalMaintenanceWindowsMethod
9843    {
9844        type Error = self::error::ConversionError;
9845        fn try_from(
9846            value: ::std::string::String,
9847        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9848            value.parse()
9849        }
9850    }
9851    #[doc = "`JsonRpcRequestForExperimentalProtocolConfig`"]
9852    #[doc = r""]
9853    #[doc = r" <details><summary>JSON schema</summary>"]
9854    #[doc = r""]
9855    #[doc = r" ```json"]
9856    #[doc = "{"]
9857    #[doc = "  \"title\": \"JsonRpcRequest_for_EXPERIMENTAL_protocol_config\","]
9858    #[doc = "  \"type\": \"object\","]
9859    #[doc = "  \"required\": ["]
9860    #[doc = "    \"id\","]
9861    #[doc = "    \"jsonrpc\","]
9862    #[doc = "    \"method\","]
9863    #[doc = "    \"params\""]
9864    #[doc = "  ],"]
9865    #[doc = "  \"properties\": {"]
9866    #[doc = "    \"id\": {"]
9867    #[doc = "      \"type\": \"string\""]
9868    #[doc = "    },"]
9869    #[doc = "    \"jsonrpc\": {"]
9870    #[doc = "      \"type\": \"string\""]
9871    #[doc = "    },"]
9872    #[doc = "    \"method\": {"]
9873    #[doc = "      \"type\": \"string\","]
9874    #[doc = "      \"enum\": ["]
9875    #[doc = "        \"EXPERIMENTAL_protocol_config\""]
9876    #[doc = "      ]"]
9877    #[doc = "    },"]
9878    #[doc = "    \"params\": {"]
9879    #[doc = "      \"$ref\": \"#/components/schemas/RpcProtocolConfigRequest\""]
9880    #[doc = "    }"]
9881    #[doc = "  }"]
9882    #[doc = "}"]
9883    #[doc = r" ```"]
9884    #[doc = r" </details>"]
9885    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
9886    pub struct JsonRpcRequestForExperimentalProtocolConfig {
9887        pub id: ::std::string::String,
9888        pub jsonrpc: ::std::string::String,
9889        pub method: JsonRpcRequestForExperimentalProtocolConfigMethod,
9890        pub params: RpcProtocolConfigRequest,
9891    }
9892    impl ::std::convert::From<&JsonRpcRequestForExperimentalProtocolConfig>
9893        for JsonRpcRequestForExperimentalProtocolConfig
9894    {
9895        fn from(value: &JsonRpcRequestForExperimentalProtocolConfig) -> Self {
9896            value.clone()
9897        }
9898    }
9899    #[doc = "`JsonRpcRequestForExperimentalProtocolConfigMethod`"]
9900    #[doc = r""]
9901    #[doc = r" <details><summary>JSON schema</summary>"]
9902    #[doc = r""]
9903    #[doc = r" ```json"]
9904    #[doc = "{"]
9905    #[doc = "  \"type\": \"string\","]
9906    #[doc = "  \"enum\": ["]
9907    #[doc = "    \"EXPERIMENTAL_protocol_config\""]
9908    #[doc = "  ]"]
9909    #[doc = "}"]
9910    #[doc = r" ```"]
9911    #[doc = r" </details>"]
9912    #[derive(
9913        :: serde :: Deserialize,
9914        :: serde :: Serialize,
9915        Clone,
9916        Copy,
9917        Debug,
9918        Eq,
9919        Hash,
9920        Ord,
9921        PartialEq,
9922        PartialOrd,
9923    )]
9924    pub enum JsonRpcRequestForExperimentalProtocolConfigMethod {
9925        #[serde(rename = "EXPERIMENTAL_protocol_config")]
9926        ExperimentalProtocolConfig,
9927    }
9928    impl ::std::convert::From<&Self> for JsonRpcRequestForExperimentalProtocolConfigMethod {
9929        fn from(value: &JsonRpcRequestForExperimentalProtocolConfigMethod) -> Self {
9930            value.clone()
9931        }
9932    }
9933    impl ::std::fmt::Display for JsonRpcRequestForExperimentalProtocolConfigMethod {
9934        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9935            match *self {
9936                Self::ExperimentalProtocolConfig => write!(f, "EXPERIMENTAL_protocol_config"),
9937            }
9938        }
9939    }
9940    impl ::std::str::FromStr for JsonRpcRequestForExperimentalProtocolConfigMethod {
9941        type Err = self::error::ConversionError;
9942        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9943            match value {
9944                "EXPERIMENTAL_protocol_config" => Ok(Self::ExperimentalProtocolConfig),
9945                _ => Err("invalid value".into()),
9946            }
9947        }
9948    }
9949    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForExperimentalProtocolConfigMethod {
9950        type Error = self::error::ConversionError;
9951        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
9952            value.parse()
9953        }
9954    }
9955    impl ::std::convert::TryFrom<&::std::string::String>
9956        for JsonRpcRequestForExperimentalProtocolConfigMethod
9957    {
9958        type Error = self::error::ConversionError;
9959        fn try_from(
9960            value: &::std::string::String,
9961        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9962            value.parse()
9963        }
9964    }
9965    impl ::std::convert::TryFrom<::std::string::String>
9966        for JsonRpcRequestForExperimentalProtocolConfigMethod
9967    {
9968        type Error = self::error::ConversionError;
9969        fn try_from(
9970            value: ::std::string::String,
9971        ) -> ::std::result::Result<Self, self::error::ConversionError> {
9972            value.parse()
9973        }
9974    }
9975    #[doc = "`JsonRpcRequestForExperimentalReceipt`"]
9976    #[doc = r""]
9977    #[doc = r" <details><summary>JSON schema</summary>"]
9978    #[doc = r""]
9979    #[doc = r" ```json"]
9980    #[doc = "{"]
9981    #[doc = "  \"title\": \"JsonRpcRequest_for_EXPERIMENTAL_receipt\","]
9982    #[doc = "  \"type\": \"object\","]
9983    #[doc = "  \"required\": ["]
9984    #[doc = "    \"id\","]
9985    #[doc = "    \"jsonrpc\","]
9986    #[doc = "    \"method\","]
9987    #[doc = "    \"params\""]
9988    #[doc = "  ],"]
9989    #[doc = "  \"properties\": {"]
9990    #[doc = "    \"id\": {"]
9991    #[doc = "      \"type\": \"string\""]
9992    #[doc = "    },"]
9993    #[doc = "    \"jsonrpc\": {"]
9994    #[doc = "      \"type\": \"string\""]
9995    #[doc = "    },"]
9996    #[doc = "    \"method\": {"]
9997    #[doc = "      \"type\": \"string\","]
9998    #[doc = "      \"enum\": ["]
9999    #[doc = "        \"EXPERIMENTAL_receipt\""]
10000    #[doc = "      ]"]
10001    #[doc = "    },"]
10002    #[doc = "    \"params\": {"]
10003    #[doc = "      \"$ref\": \"#/components/schemas/RpcReceiptRequest\""]
10004    #[doc = "    }"]
10005    #[doc = "  }"]
10006    #[doc = "}"]
10007    #[doc = r" ```"]
10008    #[doc = r" </details>"]
10009    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
10010    pub struct JsonRpcRequestForExperimentalReceipt {
10011        pub id: ::std::string::String,
10012        pub jsonrpc: ::std::string::String,
10013        pub method: JsonRpcRequestForExperimentalReceiptMethod,
10014        pub params: RpcReceiptRequest,
10015    }
10016    impl ::std::convert::From<&JsonRpcRequestForExperimentalReceipt>
10017        for JsonRpcRequestForExperimentalReceipt
10018    {
10019        fn from(value: &JsonRpcRequestForExperimentalReceipt) -> Self {
10020            value.clone()
10021        }
10022    }
10023    #[doc = "`JsonRpcRequestForExperimentalReceiptMethod`"]
10024    #[doc = r""]
10025    #[doc = r" <details><summary>JSON schema</summary>"]
10026    #[doc = r""]
10027    #[doc = r" ```json"]
10028    #[doc = "{"]
10029    #[doc = "  \"type\": \"string\","]
10030    #[doc = "  \"enum\": ["]
10031    #[doc = "    \"EXPERIMENTAL_receipt\""]
10032    #[doc = "  ]"]
10033    #[doc = "}"]
10034    #[doc = r" ```"]
10035    #[doc = r" </details>"]
10036    #[derive(
10037        :: serde :: Deserialize,
10038        :: serde :: Serialize,
10039        Clone,
10040        Copy,
10041        Debug,
10042        Eq,
10043        Hash,
10044        Ord,
10045        PartialEq,
10046        PartialOrd,
10047    )]
10048    pub enum JsonRpcRequestForExperimentalReceiptMethod {
10049        #[serde(rename = "EXPERIMENTAL_receipt")]
10050        ExperimentalReceipt,
10051    }
10052    impl ::std::convert::From<&Self> for JsonRpcRequestForExperimentalReceiptMethod {
10053        fn from(value: &JsonRpcRequestForExperimentalReceiptMethod) -> Self {
10054            value.clone()
10055        }
10056    }
10057    impl ::std::fmt::Display for JsonRpcRequestForExperimentalReceiptMethod {
10058        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10059            match *self {
10060                Self::ExperimentalReceipt => write!(f, "EXPERIMENTAL_receipt"),
10061            }
10062        }
10063    }
10064    impl ::std::str::FromStr for JsonRpcRequestForExperimentalReceiptMethod {
10065        type Err = self::error::ConversionError;
10066        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10067            match value {
10068                "EXPERIMENTAL_receipt" => Ok(Self::ExperimentalReceipt),
10069                _ => Err("invalid value".into()),
10070            }
10071        }
10072    }
10073    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForExperimentalReceiptMethod {
10074        type Error = self::error::ConversionError;
10075        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10076            value.parse()
10077        }
10078    }
10079    impl ::std::convert::TryFrom<&::std::string::String>
10080        for JsonRpcRequestForExperimentalReceiptMethod
10081    {
10082        type Error = self::error::ConversionError;
10083        fn try_from(
10084            value: &::std::string::String,
10085        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10086            value.parse()
10087        }
10088    }
10089    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForExperimentalReceiptMethod {
10090        type Error = self::error::ConversionError;
10091        fn try_from(
10092            value: ::std::string::String,
10093        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10094            value.parse()
10095        }
10096    }
10097    #[doc = "`JsonRpcRequestForExperimentalSplitStorageInfo`"]
10098    #[doc = r""]
10099    #[doc = r" <details><summary>JSON schema</summary>"]
10100    #[doc = r""]
10101    #[doc = r" ```json"]
10102    #[doc = "{"]
10103    #[doc = "  \"title\": \"JsonRpcRequest_for_EXPERIMENTAL_split_storage_info\","]
10104    #[doc = "  \"type\": \"object\","]
10105    #[doc = "  \"required\": ["]
10106    #[doc = "    \"id\","]
10107    #[doc = "    \"jsonrpc\","]
10108    #[doc = "    \"method\","]
10109    #[doc = "    \"params\""]
10110    #[doc = "  ],"]
10111    #[doc = "  \"properties\": {"]
10112    #[doc = "    \"id\": {"]
10113    #[doc = "      \"type\": \"string\""]
10114    #[doc = "    },"]
10115    #[doc = "    \"jsonrpc\": {"]
10116    #[doc = "      \"type\": \"string\""]
10117    #[doc = "    },"]
10118    #[doc = "    \"method\": {"]
10119    #[doc = "      \"type\": \"string\","]
10120    #[doc = "      \"enum\": ["]
10121    #[doc = "        \"EXPERIMENTAL_split_storage_info\""]
10122    #[doc = "      ]"]
10123    #[doc = "    },"]
10124    #[doc = "    \"params\": {"]
10125    #[doc = "      \"$ref\": \"#/components/schemas/RpcSplitStorageInfoRequest\""]
10126    #[doc = "    }"]
10127    #[doc = "  }"]
10128    #[doc = "}"]
10129    #[doc = r" ```"]
10130    #[doc = r" </details>"]
10131    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
10132    pub struct JsonRpcRequestForExperimentalSplitStorageInfo {
10133        pub id: ::std::string::String,
10134        pub jsonrpc: ::std::string::String,
10135        pub method: JsonRpcRequestForExperimentalSplitStorageInfoMethod,
10136        pub params: RpcSplitStorageInfoRequest,
10137    }
10138    impl ::std::convert::From<&JsonRpcRequestForExperimentalSplitStorageInfo>
10139        for JsonRpcRequestForExperimentalSplitStorageInfo
10140    {
10141        fn from(value: &JsonRpcRequestForExperimentalSplitStorageInfo) -> Self {
10142            value.clone()
10143        }
10144    }
10145    #[doc = "`JsonRpcRequestForExperimentalSplitStorageInfoMethod`"]
10146    #[doc = r""]
10147    #[doc = r" <details><summary>JSON schema</summary>"]
10148    #[doc = r""]
10149    #[doc = r" ```json"]
10150    #[doc = "{"]
10151    #[doc = "  \"type\": \"string\","]
10152    #[doc = "  \"enum\": ["]
10153    #[doc = "    \"EXPERIMENTAL_split_storage_info\""]
10154    #[doc = "  ]"]
10155    #[doc = "}"]
10156    #[doc = r" ```"]
10157    #[doc = r" </details>"]
10158    #[derive(
10159        :: serde :: Deserialize,
10160        :: serde :: Serialize,
10161        Clone,
10162        Copy,
10163        Debug,
10164        Eq,
10165        Hash,
10166        Ord,
10167        PartialEq,
10168        PartialOrd,
10169    )]
10170    pub enum JsonRpcRequestForExperimentalSplitStorageInfoMethod {
10171        #[serde(rename = "EXPERIMENTAL_split_storage_info")]
10172        ExperimentalSplitStorageInfo,
10173    }
10174    impl ::std::convert::From<&Self> for JsonRpcRequestForExperimentalSplitStorageInfoMethod {
10175        fn from(value: &JsonRpcRequestForExperimentalSplitStorageInfoMethod) -> Self {
10176            value.clone()
10177        }
10178    }
10179    impl ::std::fmt::Display for JsonRpcRequestForExperimentalSplitStorageInfoMethod {
10180        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10181            match *self {
10182                Self::ExperimentalSplitStorageInfo => write!(f, "EXPERIMENTAL_split_storage_info"),
10183            }
10184        }
10185    }
10186    impl ::std::str::FromStr for JsonRpcRequestForExperimentalSplitStorageInfoMethod {
10187        type Err = self::error::ConversionError;
10188        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10189            match value {
10190                "EXPERIMENTAL_split_storage_info" => Ok(Self::ExperimentalSplitStorageInfo),
10191                _ => Err("invalid value".into()),
10192            }
10193        }
10194    }
10195    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForExperimentalSplitStorageInfoMethod {
10196        type Error = self::error::ConversionError;
10197        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10198            value.parse()
10199        }
10200    }
10201    impl ::std::convert::TryFrom<&::std::string::String>
10202        for JsonRpcRequestForExperimentalSplitStorageInfoMethod
10203    {
10204        type Error = self::error::ConversionError;
10205        fn try_from(
10206            value: &::std::string::String,
10207        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10208            value.parse()
10209        }
10210    }
10211    impl ::std::convert::TryFrom<::std::string::String>
10212        for JsonRpcRequestForExperimentalSplitStorageInfoMethod
10213    {
10214        type Error = self::error::ConversionError;
10215        fn try_from(
10216            value: ::std::string::String,
10217        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10218            value.parse()
10219        }
10220    }
10221    #[doc = "`JsonRpcRequestForExperimentalTxStatus`"]
10222    #[doc = r""]
10223    #[doc = r" <details><summary>JSON schema</summary>"]
10224    #[doc = r""]
10225    #[doc = r" ```json"]
10226    #[doc = "{"]
10227    #[doc = "  \"title\": \"JsonRpcRequest_for_EXPERIMENTAL_tx_status\","]
10228    #[doc = "  \"type\": \"object\","]
10229    #[doc = "  \"required\": ["]
10230    #[doc = "    \"id\","]
10231    #[doc = "    \"jsonrpc\","]
10232    #[doc = "    \"method\","]
10233    #[doc = "    \"params\""]
10234    #[doc = "  ],"]
10235    #[doc = "  \"properties\": {"]
10236    #[doc = "    \"id\": {"]
10237    #[doc = "      \"type\": \"string\""]
10238    #[doc = "    },"]
10239    #[doc = "    \"jsonrpc\": {"]
10240    #[doc = "      \"type\": \"string\""]
10241    #[doc = "    },"]
10242    #[doc = "    \"method\": {"]
10243    #[doc = "      \"type\": \"string\","]
10244    #[doc = "      \"enum\": ["]
10245    #[doc = "        \"EXPERIMENTAL_tx_status\""]
10246    #[doc = "      ]"]
10247    #[doc = "    },"]
10248    #[doc = "    \"params\": {"]
10249    #[doc = "      \"$ref\": \"#/components/schemas/RpcTransactionStatusRequest\""]
10250    #[doc = "    }"]
10251    #[doc = "  }"]
10252    #[doc = "}"]
10253    #[doc = r" ```"]
10254    #[doc = r" </details>"]
10255    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
10256    pub struct JsonRpcRequestForExperimentalTxStatus {
10257        pub id: ::std::string::String,
10258        pub jsonrpc: ::std::string::String,
10259        pub method: JsonRpcRequestForExperimentalTxStatusMethod,
10260        pub params: RpcTransactionStatusRequest,
10261    }
10262    impl ::std::convert::From<&JsonRpcRequestForExperimentalTxStatus>
10263        for JsonRpcRequestForExperimentalTxStatus
10264    {
10265        fn from(value: &JsonRpcRequestForExperimentalTxStatus) -> Self {
10266            value.clone()
10267        }
10268    }
10269    #[doc = "`JsonRpcRequestForExperimentalTxStatusMethod`"]
10270    #[doc = r""]
10271    #[doc = r" <details><summary>JSON schema</summary>"]
10272    #[doc = r""]
10273    #[doc = r" ```json"]
10274    #[doc = "{"]
10275    #[doc = "  \"type\": \"string\","]
10276    #[doc = "  \"enum\": ["]
10277    #[doc = "    \"EXPERIMENTAL_tx_status\""]
10278    #[doc = "  ]"]
10279    #[doc = "}"]
10280    #[doc = r" ```"]
10281    #[doc = r" </details>"]
10282    #[derive(
10283        :: serde :: Deserialize,
10284        :: serde :: Serialize,
10285        Clone,
10286        Copy,
10287        Debug,
10288        Eq,
10289        Hash,
10290        Ord,
10291        PartialEq,
10292        PartialOrd,
10293    )]
10294    pub enum JsonRpcRequestForExperimentalTxStatusMethod {
10295        #[serde(rename = "EXPERIMENTAL_tx_status")]
10296        ExperimentalTxStatus,
10297    }
10298    impl ::std::convert::From<&Self> for JsonRpcRequestForExperimentalTxStatusMethod {
10299        fn from(value: &JsonRpcRequestForExperimentalTxStatusMethod) -> Self {
10300            value.clone()
10301        }
10302    }
10303    impl ::std::fmt::Display for JsonRpcRequestForExperimentalTxStatusMethod {
10304        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10305            match *self {
10306                Self::ExperimentalTxStatus => write!(f, "EXPERIMENTAL_tx_status"),
10307            }
10308        }
10309    }
10310    impl ::std::str::FromStr for JsonRpcRequestForExperimentalTxStatusMethod {
10311        type Err = self::error::ConversionError;
10312        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10313            match value {
10314                "EXPERIMENTAL_tx_status" => Ok(Self::ExperimentalTxStatus),
10315                _ => Err("invalid value".into()),
10316            }
10317        }
10318    }
10319    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForExperimentalTxStatusMethod {
10320        type Error = self::error::ConversionError;
10321        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10322            value.parse()
10323        }
10324    }
10325    impl ::std::convert::TryFrom<&::std::string::String>
10326        for JsonRpcRequestForExperimentalTxStatusMethod
10327    {
10328        type Error = self::error::ConversionError;
10329        fn try_from(
10330            value: &::std::string::String,
10331        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10332            value.parse()
10333        }
10334    }
10335    impl ::std::convert::TryFrom<::std::string::String>
10336        for JsonRpcRequestForExperimentalTxStatusMethod
10337    {
10338        type Error = self::error::ConversionError;
10339        fn try_from(
10340            value: ::std::string::String,
10341        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10342            value.parse()
10343        }
10344    }
10345    #[doc = "`JsonRpcRequestForExperimentalValidatorsOrdered`"]
10346    #[doc = r""]
10347    #[doc = r" <details><summary>JSON schema</summary>"]
10348    #[doc = r""]
10349    #[doc = r" ```json"]
10350    #[doc = "{"]
10351    #[doc = "  \"title\": \"JsonRpcRequest_for_EXPERIMENTAL_validators_ordered\","]
10352    #[doc = "  \"type\": \"object\","]
10353    #[doc = "  \"required\": ["]
10354    #[doc = "    \"id\","]
10355    #[doc = "    \"jsonrpc\","]
10356    #[doc = "    \"method\","]
10357    #[doc = "    \"params\""]
10358    #[doc = "  ],"]
10359    #[doc = "  \"properties\": {"]
10360    #[doc = "    \"id\": {"]
10361    #[doc = "      \"type\": \"string\""]
10362    #[doc = "    },"]
10363    #[doc = "    \"jsonrpc\": {"]
10364    #[doc = "      \"type\": \"string\""]
10365    #[doc = "    },"]
10366    #[doc = "    \"method\": {"]
10367    #[doc = "      \"type\": \"string\","]
10368    #[doc = "      \"enum\": ["]
10369    #[doc = "        \"EXPERIMENTAL_validators_ordered\""]
10370    #[doc = "      ]"]
10371    #[doc = "    },"]
10372    #[doc = "    \"params\": {"]
10373    #[doc = "      \"$ref\": \"#/components/schemas/RpcValidatorsOrderedRequest\""]
10374    #[doc = "    }"]
10375    #[doc = "  }"]
10376    #[doc = "}"]
10377    #[doc = r" ```"]
10378    #[doc = r" </details>"]
10379    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
10380    pub struct JsonRpcRequestForExperimentalValidatorsOrdered {
10381        pub id: ::std::string::String,
10382        pub jsonrpc: ::std::string::String,
10383        pub method: JsonRpcRequestForExperimentalValidatorsOrderedMethod,
10384        pub params: RpcValidatorsOrderedRequest,
10385    }
10386    impl ::std::convert::From<&JsonRpcRequestForExperimentalValidatorsOrdered>
10387        for JsonRpcRequestForExperimentalValidatorsOrdered
10388    {
10389        fn from(value: &JsonRpcRequestForExperimentalValidatorsOrdered) -> Self {
10390            value.clone()
10391        }
10392    }
10393    #[doc = "`JsonRpcRequestForExperimentalValidatorsOrderedMethod`"]
10394    #[doc = r""]
10395    #[doc = r" <details><summary>JSON schema</summary>"]
10396    #[doc = r""]
10397    #[doc = r" ```json"]
10398    #[doc = "{"]
10399    #[doc = "  \"type\": \"string\","]
10400    #[doc = "  \"enum\": ["]
10401    #[doc = "    \"EXPERIMENTAL_validators_ordered\""]
10402    #[doc = "  ]"]
10403    #[doc = "}"]
10404    #[doc = r" ```"]
10405    #[doc = r" </details>"]
10406    #[derive(
10407        :: serde :: Deserialize,
10408        :: serde :: Serialize,
10409        Clone,
10410        Copy,
10411        Debug,
10412        Eq,
10413        Hash,
10414        Ord,
10415        PartialEq,
10416        PartialOrd,
10417    )]
10418    pub enum JsonRpcRequestForExperimentalValidatorsOrderedMethod {
10419        #[serde(rename = "EXPERIMENTAL_validators_ordered")]
10420        ExperimentalValidatorsOrdered,
10421    }
10422    impl ::std::convert::From<&Self> for JsonRpcRequestForExperimentalValidatorsOrderedMethod {
10423        fn from(value: &JsonRpcRequestForExperimentalValidatorsOrderedMethod) -> Self {
10424            value.clone()
10425        }
10426    }
10427    impl ::std::fmt::Display for JsonRpcRequestForExperimentalValidatorsOrderedMethod {
10428        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10429            match *self {
10430                Self::ExperimentalValidatorsOrdered => write!(f, "EXPERIMENTAL_validators_ordered"),
10431            }
10432        }
10433    }
10434    impl ::std::str::FromStr for JsonRpcRequestForExperimentalValidatorsOrderedMethod {
10435        type Err = self::error::ConversionError;
10436        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10437            match value {
10438                "EXPERIMENTAL_validators_ordered" => Ok(Self::ExperimentalValidatorsOrdered),
10439                _ => Err("invalid value".into()),
10440            }
10441        }
10442    }
10443    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForExperimentalValidatorsOrderedMethod {
10444        type Error = self::error::ConversionError;
10445        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10446            value.parse()
10447        }
10448    }
10449    impl ::std::convert::TryFrom<&::std::string::String>
10450        for JsonRpcRequestForExperimentalValidatorsOrderedMethod
10451    {
10452        type Error = self::error::ConversionError;
10453        fn try_from(
10454            value: &::std::string::String,
10455        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10456            value.parse()
10457        }
10458    }
10459    impl ::std::convert::TryFrom<::std::string::String>
10460        for JsonRpcRequestForExperimentalValidatorsOrderedMethod
10461    {
10462        type Error = self::error::ConversionError;
10463        fn try_from(
10464            value: ::std::string::String,
10465        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10466            value.parse()
10467        }
10468    }
10469    #[doc = "`JsonRpcRequestForGasPrice`"]
10470    #[doc = r""]
10471    #[doc = r" <details><summary>JSON schema</summary>"]
10472    #[doc = r""]
10473    #[doc = r" ```json"]
10474    #[doc = "{"]
10475    #[doc = "  \"title\": \"JsonRpcRequest_for_gas_price\","]
10476    #[doc = "  \"type\": \"object\","]
10477    #[doc = "  \"required\": ["]
10478    #[doc = "    \"id\","]
10479    #[doc = "    \"jsonrpc\","]
10480    #[doc = "    \"method\","]
10481    #[doc = "    \"params\""]
10482    #[doc = "  ],"]
10483    #[doc = "  \"properties\": {"]
10484    #[doc = "    \"id\": {"]
10485    #[doc = "      \"type\": \"string\""]
10486    #[doc = "    },"]
10487    #[doc = "    \"jsonrpc\": {"]
10488    #[doc = "      \"type\": \"string\""]
10489    #[doc = "    },"]
10490    #[doc = "    \"method\": {"]
10491    #[doc = "      \"type\": \"string\","]
10492    #[doc = "      \"enum\": ["]
10493    #[doc = "        \"gas_price\""]
10494    #[doc = "      ]"]
10495    #[doc = "    },"]
10496    #[doc = "    \"params\": {"]
10497    #[doc = "      \"$ref\": \"#/components/schemas/RpcGasPriceRequest\""]
10498    #[doc = "    }"]
10499    #[doc = "  }"]
10500    #[doc = "}"]
10501    #[doc = r" ```"]
10502    #[doc = r" </details>"]
10503    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
10504    pub struct JsonRpcRequestForGasPrice {
10505        pub id: ::std::string::String,
10506        pub jsonrpc: ::std::string::String,
10507        pub method: JsonRpcRequestForGasPriceMethod,
10508        pub params: RpcGasPriceRequest,
10509    }
10510    impl ::std::convert::From<&JsonRpcRequestForGasPrice> for JsonRpcRequestForGasPrice {
10511        fn from(value: &JsonRpcRequestForGasPrice) -> Self {
10512            value.clone()
10513        }
10514    }
10515    #[doc = "`JsonRpcRequestForGasPriceMethod`"]
10516    #[doc = r""]
10517    #[doc = r" <details><summary>JSON schema</summary>"]
10518    #[doc = r""]
10519    #[doc = r" ```json"]
10520    #[doc = "{"]
10521    #[doc = "  \"type\": \"string\","]
10522    #[doc = "  \"enum\": ["]
10523    #[doc = "    \"gas_price\""]
10524    #[doc = "  ]"]
10525    #[doc = "}"]
10526    #[doc = r" ```"]
10527    #[doc = r" </details>"]
10528    #[derive(
10529        :: serde :: Deserialize,
10530        :: serde :: Serialize,
10531        Clone,
10532        Copy,
10533        Debug,
10534        Eq,
10535        Hash,
10536        Ord,
10537        PartialEq,
10538        PartialOrd,
10539    )]
10540    pub enum JsonRpcRequestForGasPriceMethod {
10541        #[serde(rename = "gas_price")]
10542        GasPrice,
10543    }
10544    impl ::std::convert::From<&Self> for JsonRpcRequestForGasPriceMethod {
10545        fn from(value: &JsonRpcRequestForGasPriceMethod) -> Self {
10546            value.clone()
10547        }
10548    }
10549    impl ::std::fmt::Display for JsonRpcRequestForGasPriceMethod {
10550        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10551            match *self {
10552                Self::GasPrice => write!(f, "gas_price"),
10553            }
10554        }
10555    }
10556    impl ::std::str::FromStr for JsonRpcRequestForGasPriceMethod {
10557        type Err = self::error::ConversionError;
10558        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10559            match value {
10560                "gas_price" => Ok(Self::GasPrice),
10561                _ => Err("invalid value".into()),
10562            }
10563        }
10564    }
10565    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForGasPriceMethod {
10566        type Error = self::error::ConversionError;
10567        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10568            value.parse()
10569        }
10570    }
10571    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForGasPriceMethod {
10572        type Error = self::error::ConversionError;
10573        fn try_from(
10574            value: &::std::string::String,
10575        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10576            value.parse()
10577        }
10578    }
10579    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForGasPriceMethod {
10580        type Error = self::error::ConversionError;
10581        fn try_from(
10582            value: ::std::string::String,
10583        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10584            value.parse()
10585        }
10586    }
10587    #[doc = "`JsonRpcRequestForHealth`"]
10588    #[doc = r""]
10589    #[doc = r" <details><summary>JSON schema</summary>"]
10590    #[doc = r""]
10591    #[doc = r" ```json"]
10592    #[doc = "{"]
10593    #[doc = "  \"title\": \"JsonRpcRequest_for_health\","]
10594    #[doc = "  \"type\": \"object\","]
10595    #[doc = "  \"required\": ["]
10596    #[doc = "    \"id\","]
10597    #[doc = "    \"jsonrpc\","]
10598    #[doc = "    \"method\","]
10599    #[doc = "    \"params\""]
10600    #[doc = "  ],"]
10601    #[doc = "  \"properties\": {"]
10602    #[doc = "    \"id\": {"]
10603    #[doc = "      \"type\": \"string\""]
10604    #[doc = "    },"]
10605    #[doc = "    \"jsonrpc\": {"]
10606    #[doc = "      \"type\": \"string\""]
10607    #[doc = "    },"]
10608    #[doc = "    \"method\": {"]
10609    #[doc = "      \"type\": \"string\","]
10610    #[doc = "      \"enum\": ["]
10611    #[doc = "        \"health\""]
10612    #[doc = "      ]"]
10613    #[doc = "    },"]
10614    #[doc = "    \"params\": {"]
10615    #[doc = "      \"$ref\": \"#/components/schemas/RpcHealthRequest\""]
10616    #[doc = "    }"]
10617    #[doc = "  }"]
10618    #[doc = "}"]
10619    #[doc = r" ```"]
10620    #[doc = r" </details>"]
10621    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
10622    pub struct JsonRpcRequestForHealth {
10623        pub id: ::std::string::String,
10624        pub jsonrpc: ::std::string::String,
10625        pub method: JsonRpcRequestForHealthMethod,
10626        pub params: RpcHealthRequest,
10627    }
10628    impl ::std::convert::From<&JsonRpcRequestForHealth> for JsonRpcRequestForHealth {
10629        fn from(value: &JsonRpcRequestForHealth) -> Self {
10630            value.clone()
10631        }
10632    }
10633    #[doc = "`JsonRpcRequestForHealthMethod`"]
10634    #[doc = r""]
10635    #[doc = r" <details><summary>JSON schema</summary>"]
10636    #[doc = r""]
10637    #[doc = r" ```json"]
10638    #[doc = "{"]
10639    #[doc = "  \"type\": \"string\","]
10640    #[doc = "  \"enum\": ["]
10641    #[doc = "    \"health\""]
10642    #[doc = "  ]"]
10643    #[doc = "}"]
10644    #[doc = r" ```"]
10645    #[doc = r" </details>"]
10646    #[derive(
10647        :: serde :: Deserialize,
10648        :: serde :: Serialize,
10649        Clone,
10650        Copy,
10651        Debug,
10652        Eq,
10653        Hash,
10654        Ord,
10655        PartialEq,
10656        PartialOrd,
10657    )]
10658    pub enum JsonRpcRequestForHealthMethod {
10659        #[serde(rename = "health")]
10660        Health,
10661    }
10662    impl ::std::convert::From<&Self> for JsonRpcRequestForHealthMethod {
10663        fn from(value: &JsonRpcRequestForHealthMethod) -> Self {
10664            value.clone()
10665        }
10666    }
10667    impl ::std::fmt::Display for JsonRpcRequestForHealthMethod {
10668        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10669            match *self {
10670                Self::Health => write!(f, "health"),
10671            }
10672        }
10673    }
10674    impl ::std::str::FromStr for JsonRpcRequestForHealthMethod {
10675        type Err = self::error::ConversionError;
10676        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10677            match value {
10678                "health" => Ok(Self::Health),
10679                _ => Err("invalid value".into()),
10680            }
10681        }
10682    }
10683    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForHealthMethod {
10684        type Error = self::error::ConversionError;
10685        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10686            value.parse()
10687        }
10688    }
10689    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForHealthMethod {
10690        type Error = self::error::ConversionError;
10691        fn try_from(
10692            value: &::std::string::String,
10693        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10694            value.parse()
10695        }
10696    }
10697    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForHealthMethod {
10698        type Error = self::error::ConversionError;
10699        fn try_from(
10700            value: ::std::string::String,
10701        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10702            value.parse()
10703        }
10704    }
10705    #[doc = "`JsonRpcRequestForLightClientProof`"]
10706    #[doc = r""]
10707    #[doc = r" <details><summary>JSON schema</summary>"]
10708    #[doc = r""]
10709    #[doc = r" ```json"]
10710    #[doc = "{"]
10711    #[doc = "  \"title\": \"JsonRpcRequest_for_light_client_proof\","]
10712    #[doc = "  \"type\": \"object\","]
10713    #[doc = "  \"required\": ["]
10714    #[doc = "    \"id\","]
10715    #[doc = "    \"jsonrpc\","]
10716    #[doc = "    \"method\","]
10717    #[doc = "    \"params\""]
10718    #[doc = "  ],"]
10719    #[doc = "  \"properties\": {"]
10720    #[doc = "    \"id\": {"]
10721    #[doc = "      \"type\": \"string\""]
10722    #[doc = "    },"]
10723    #[doc = "    \"jsonrpc\": {"]
10724    #[doc = "      \"type\": \"string\""]
10725    #[doc = "    },"]
10726    #[doc = "    \"method\": {"]
10727    #[doc = "      \"type\": \"string\","]
10728    #[doc = "      \"enum\": ["]
10729    #[doc = "        \"light_client_proof\""]
10730    #[doc = "      ]"]
10731    #[doc = "    },"]
10732    #[doc = "    \"params\": {"]
10733    #[doc = "      \"$ref\": \"#/components/schemas/RpcLightClientExecutionProofRequest\""]
10734    #[doc = "    }"]
10735    #[doc = "  }"]
10736    #[doc = "}"]
10737    #[doc = r" ```"]
10738    #[doc = r" </details>"]
10739    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
10740    pub struct JsonRpcRequestForLightClientProof {
10741        pub id: ::std::string::String,
10742        pub jsonrpc: ::std::string::String,
10743        pub method: JsonRpcRequestForLightClientProofMethod,
10744        pub params: RpcLightClientExecutionProofRequest,
10745    }
10746    impl ::std::convert::From<&JsonRpcRequestForLightClientProof>
10747        for JsonRpcRequestForLightClientProof
10748    {
10749        fn from(value: &JsonRpcRequestForLightClientProof) -> Self {
10750            value.clone()
10751        }
10752    }
10753    #[doc = "`JsonRpcRequestForLightClientProofMethod`"]
10754    #[doc = r""]
10755    #[doc = r" <details><summary>JSON schema</summary>"]
10756    #[doc = r""]
10757    #[doc = r" ```json"]
10758    #[doc = "{"]
10759    #[doc = "  \"type\": \"string\","]
10760    #[doc = "  \"enum\": ["]
10761    #[doc = "    \"light_client_proof\""]
10762    #[doc = "  ]"]
10763    #[doc = "}"]
10764    #[doc = r" ```"]
10765    #[doc = r" </details>"]
10766    #[derive(
10767        :: serde :: Deserialize,
10768        :: serde :: Serialize,
10769        Clone,
10770        Copy,
10771        Debug,
10772        Eq,
10773        Hash,
10774        Ord,
10775        PartialEq,
10776        PartialOrd,
10777    )]
10778    pub enum JsonRpcRequestForLightClientProofMethod {
10779        #[serde(rename = "light_client_proof")]
10780        LightClientProof,
10781    }
10782    impl ::std::convert::From<&Self> for JsonRpcRequestForLightClientProofMethod {
10783        fn from(value: &JsonRpcRequestForLightClientProofMethod) -> Self {
10784            value.clone()
10785        }
10786    }
10787    impl ::std::fmt::Display for JsonRpcRequestForLightClientProofMethod {
10788        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10789            match *self {
10790                Self::LightClientProof => write!(f, "light_client_proof"),
10791            }
10792        }
10793    }
10794    impl ::std::str::FromStr for JsonRpcRequestForLightClientProofMethod {
10795        type Err = self::error::ConversionError;
10796        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10797            match value {
10798                "light_client_proof" => Ok(Self::LightClientProof),
10799                _ => Err("invalid value".into()),
10800            }
10801        }
10802    }
10803    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForLightClientProofMethod {
10804        type Error = self::error::ConversionError;
10805        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10806            value.parse()
10807        }
10808    }
10809    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForLightClientProofMethod {
10810        type Error = self::error::ConversionError;
10811        fn try_from(
10812            value: &::std::string::String,
10813        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10814            value.parse()
10815        }
10816    }
10817    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForLightClientProofMethod {
10818        type Error = self::error::ConversionError;
10819        fn try_from(
10820            value: ::std::string::String,
10821        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10822            value.parse()
10823        }
10824    }
10825    #[doc = "`JsonRpcRequestForNetworkInfo`"]
10826    #[doc = r""]
10827    #[doc = r" <details><summary>JSON schema</summary>"]
10828    #[doc = r""]
10829    #[doc = r" ```json"]
10830    #[doc = "{"]
10831    #[doc = "  \"title\": \"JsonRpcRequest_for_network_info\","]
10832    #[doc = "  \"type\": \"object\","]
10833    #[doc = "  \"required\": ["]
10834    #[doc = "    \"id\","]
10835    #[doc = "    \"jsonrpc\","]
10836    #[doc = "    \"method\","]
10837    #[doc = "    \"params\""]
10838    #[doc = "  ],"]
10839    #[doc = "  \"properties\": {"]
10840    #[doc = "    \"id\": {"]
10841    #[doc = "      \"type\": \"string\""]
10842    #[doc = "    },"]
10843    #[doc = "    \"jsonrpc\": {"]
10844    #[doc = "      \"type\": \"string\""]
10845    #[doc = "    },"]
10846    #[doc = "    \"method\": {"]
10847    #[doc = "      \"type\": \"string\","]
10848    #[doc = "      \"enum\": ["]
10849    #[doc = "        \"network_info\""]
10850    #[doc = "      ]"]
10851    #[doc = "    },"]
10852    #[doc = "    \"params\": {"]
10853    #[doc = "      \"$ref\": \"#/components/schemas/RpcNetworkInfoRequest\""]
10854    #[doc = "    }"]
10855    #[doc = "  }"]
10856    #[doc = "}"]
10857    #[doc = r" ```"]
10858    #[doc = r" </details>"]
10859    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
10860    pub struct JsonRpcRequestForNetworkInfo {
10861        pub id: ::std::string::String,
10862        pub jsonrpc: ::std::string::String,
10863        pub method: JsonRpcRequestForNetworkInfoMethod,
10864        pub params: RpcNetworkInfoRequest,
10865    }
10866    impl ::std::convert::From<&JsonRpcRequestForNetworkInfo> for JsonRpcRequestForNetworkInfo {
10867        fn from(value: &JsonRpcRequestForNetworkInfo) -> Self {
10868            value.clone()
10869        }
10870    }
10871    #[doc = "`JsonRpcRequestForNetworkInfoMethod`"]
10872    #[doc = r""]
10873    #[doc = r" <details><summary>JSON schema</summary>"]
10874    #[doc = r""]
10875    #[doc = r" ```json"]
10876    #[doc = "{"]
10877    #[doc = "  \"type\": \"string\","]
10878    #[doc = "  \"enum\": ["]
10879    #[doc = "    \"network_info\""]
10880    #[doc = "  ]"]
10881    #[doc = "}"]
10882    #[doc = r" ```"]
10883    #[doc = r" </details>"]
10884    #[derive(
10885        :: serde :: Deserialize,
10886        :: serde :: Serialize,
10887        Clone,
10888        Copy,
10889        Debug,
10890        Eq,
10891        Hash,
10892        Ord,
10893        PartialEq,
10894        PartialOrd,
10895    )]
10896    pub enum JsonRpcRequestForNetworkInfoMethod {
10897        #[serde(rename = "network_info")]
10898        NetworkInfo,
10899    }
10900    impl ::std::convert::From<&Self> for JsonRpcRequestForNetworkInfoMethod {
10901        fn from(value: &JsonRpcRequestForNetworkInfoMethod) -> Self {
10902            value.clone()
10903        }
10904    }
10905    impl ::std::fmt::Display for JsonRpcRequestForNetworkInfoMethod {
10906        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10907            match *self {
10908                Self::NetworkInfo => write!(f, "network_info"),
10909            }
10910        }
10911    }
10912    impl ::std::str::FromStr for JsonRpcRequestForNetworkInfoMethod {
10913        type Err = self::error::ConversionError;
10914        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10915            match value {
10916                "network_info" => Ok(Self::NetworkInfo),
10917                _ => Err("invalid value".into()),
10918            }
10919        }
10920    }
10921    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForNetworkInfoMethod {
10922        type Error = self::error::ConversionError;
10923        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
10924            value.parse()
10925        }
10926    }
10927    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForNetworkInfoMethod {
10928        type Error = self::error::ConversionError;
10929        fn try_from(
10930            value: &::std::string::String,
10931        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10932            value.parse()
10933        }
10934    }
10935    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForNetworkInfoMethod {
10936        type Error = self::error::ConversionError;
10937        fn try_from(
10938            value: ::std::string::String,
10939        ) -> ::std::result::Result<Self, self::error::ConversionError> {
10940            value.parse()
10941        }
10942    }
10943    #[doc = "`JsonRpcRequestForNextLightClientBlock`"]
10944    #[doc = r""]
10945    #[doc = r" <details><summary>JSON schema</summary>"]
10946    #[doc = r""]
10947    #[doc = r" ```json"]
10948    #[doc = "{"]
10949    #[doc = "  \"title\": \"JsonRpcRequest_for_next_light_client_block\","]
10950    #[doc = "  \"type\": \"object\","]
10951    #[doc = "  \"required\": ["]
10952    #[doc = "    \"id\","]
10953    #[doc = "    \"jsonrpc\","]
10954    #[doc = "    \"method\","]
10955    #[doc = "    \"params\""]
10956    #[doc = "  ],"]
10957    #[doc = "  \"properties\": {"]
10958    #[doc = "    \"id\": {"]
10959    #[doc = "      \"type\": \"string\""]
10960    #[doc = "    },"]
10961    #[doc = "    \"jsonrpc\": {"]
10962    #[doc = "      \"type\": \"string\""]
10963    #[doc = "    },"]
10964    #[doc = "    \"method\": {"]
10965    #[doc = "      \"type\": \"string\","]
10966    #[doc = "      \"enum\": ["]
10967    #[doc = "        \"next_light_client_block\""]
10968    #[doc = "      ]"]
10969    #[doc = "    },"]
10970    #[doc = "    \"params\": {"]
10971    #[doc = "      \"$ref\": \"#/components/schemas/RpcLightClientNextBlockRequest\""]
10972    #[doc = "    }"]
10973    #[doc = "  }"]
10974    #[doc = "}"]
10975    #[doc = r" ```"]
10976    #[doc = r" </details>"]
10977    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
10978    pub struct JsonRpcRequestForNextLightClientBlock {
10979        pub id: ::std::string::String,
10980        pub jsonrpc: ::std::string::String,
10981        pub method: JsonRpcRequestForNextLightClientBlockMethod,
10982        pub params: RpcLightClientNextBlockRequest,
10983    }
10984    impl ::std::convert::From<&JsonRpcRequestForNextLightClientBlock>
10985        for JsonRpcRequestForNextLightClientBlock
10986    {
10987        fn from(value: &JsonRpcRequestForNextLightClientBlock) -> Self {
10988            value.clone()
10989        }
10990    }
10991    #[doc = "`JsonRpcRequestForNextLightClientBlockMethod`"]
10992    #[doc = r""]
10993    #[doc = r" <details><summary>JSON schema</summary>"]
10994    #[doc = r""]
10995    #[doc = r" ```json"]
10996    #[doc = "{"]
10997    #[doc = "  \"type\": \"string\","]
10998    #[doc = "  \"enum\": ["]
10999    #[doc = "    \"next_light_client_block\""]
11000    #[doc = "  ]"]
11001    #[doc = "}"]
11002    #[doc = r" ```"]
11003    #[doc = r" </details>"]
11004    #[derive(
11005        :: serde :: Deserialize,
11006        :: serde :: Serialize,
11007        Clone,
11008        Copy,
11009        Debug,
11010        Eq,
11011        Hash,
11012        Ord,
11013        PartialEq,
11014        PartialOrd,
11015    )]
11016    pub enum JsonRpcRequestForNextLightClientBlockMethod {
11017        #[serde(rename = "next_light_client_block")]
11018        NextLightClientBlock,
11019    }
11020    impl ::std::convert::From<&Self> for JsonRpcRequestForNextLightClientBlockMethod {
11021        fn from(value: &JsonRpcRequestForNextLightClientBlockMethod) -> Self {
11022            value.clone()
11023        }
11024    }
11025    impl ::std::fmt::Display for JsonRpcRequestForNextLightClientBlockMethod {
11026        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11027            match *self {
11028                Self::NextLightClientBlock => write!(f, "next_light_client_block"),
11029            }
11030        }
11031    }
11032    impl ::std::str::FromStr for JsonRpcRequestForNextLightClientBlockMethod {
11033        type Err = self::error::ConversionError;
11034        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
11035            match value {
11036                "next_light_client_block" => Ok(Self::NextLightClientBlock),
11037                _ => Err("invalid value".into()),
11038            }
11039        }
11040    }
11041    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForNextLightClientBlockMethod {
11042        type Error = self::error::ConversionError;
11043        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
11044            value.parse()
11045        }
11046    }
11047    impl ::std::convert::TryFrom<&::std::string::String>
11048        for JsonRpcRequestForNextLightClientBlockMethod
11049    {
11050        type Error = self::error::ConversionError;
11051        fn try_from(
11052            value: &::std::string::String,
11053        ) -> ::std::result::Result<Self, self::error::ConversionError> {
11054            value.parse()
11055        }
11056    }
11057    impl ::std::convert::TryFrom<::std::string::String>
11058        for JsonRpcRequestForNextLightClientBlockMethod
11059    {
11060        type Error = self::error::ConversionError;
11061        fn try_from(
11062            value: ::std::string::String,
11063        ) -> ::std::result::Result<Self, self::error::ConversionError> {
11064            value.parse()
11065        }
11066    }
11067    #[doc = "`JsonRpcRequestForQuery`"]
11068    #[doc = r""]
11069    #[doc = r" <details><summary>JSON schema</summary>"]
11070    #[doc = r""]
11071    #[doc = r" ```json"]
11072    #[doc = "{"]
11073    #[doc = "  \"title\": \"JsonRpcRequest_for_query\","]
11074    #[doc = "  \"type\": \"object\","]
11075    #[doc = "  \"required\": ["]
11076    #[doc = "    \"id\","]
11077    #[doc = "    \"jsonrpc\","]
11078    #[doc = "    \"method\","]
11079    #[doc = "    \"params\""]
11080    #[doc = "  ],"]
11081    #[doc = "  \"properties\": {"]
11082    #[doc = "    \"id\": {"]
11083    #[doc = "      \"type\": \"string\""]
11084    #[doc = "    },"]
11085    #[doc = "    \"jsonrpc\": {"]
11086    #[doc = "      \"type\": \"string\""]
11087    #[doc = "    },"]
11088    #[doc = "    \"method\": {"]
11089    #[doc = "      \"type\": \"string\","]
11090    #[doc = "      \"enum\": ["]
11091    #[doc = "        \"query\""]
11092    #[doc = "      ]"]
11093    #[doc = "    },"]
11094    #[doc = "    \"params\": {"]
11095    #[doc = "      \"$ref\": \"#/components/schemas/RpcQueryRequest\""]
11096    #[doc = "    }"]
11097    #[doc = "  }"]
11098    #[doc = "}"]
11099    #[doc = r" ```"]
11100    #[doc = r" </details>"]
11101    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
11102    pub struct JsonRpcRequestForQuery {
11103        pub id: ::std::string::String,
11104        pub jsonrpc: ::std::string::String,
11105        pub method: JsonRpcRequestForQueryMethod,
11106        pub params: RpcQueryRequest,
11107    }
11108    impl ::std::convert::From<&JsonRpcRequestForQuery> for JsonRpcRequestForQuery {
11109        fn from(value: &JsonRpcRequestForQuery) -> Self {
11110            value.clone()
11111        }
11112    }
11113    #[doc = "`JsonRpcRequestForQueryMethod`"]
11114    #[doc = r""]
11115    #[doc = r" <details><summary>JSON schema</summary>"]
11116    #[doc = r""]
11117    #[doc = r" ```json"]
11118    #[doc = "{"]
11119    #[doc = "  \"type\": \"string\","]
11120    #[doc = "  \"enum\": ["]
11121    #[doc = "    \"query\""]
11122    #[doc = "  ]"]
11123    #[doc = "}"]
11124    #[doc = r" ```"]
11125    #[doc = r" </details>"]
11126    #[derive(
11127        :: serde :: Deserialize,
11128        :: serde :: Serialize,
11129        Clone,
11130        Copy,
11131        Debug,
11132        Eq,
11133        Hash,
11134        Ord,
11135        PartialEq,
11136        PartialOrd,
11137    )]
11138    pub enum JsonRpcRequestForQueryMethod {
11139        #[serde(rename = "query")]
11140        Query,
11141    }
11142    impl ::std::convert::From<&Self> for JsonRpcRequestForQueryMethod {
11143        fn from(value: &JsonRpcRequestForQueryMethod) -> Self {
11144            value.clone()
11145        }
11146    }
11147    impl ::std::fmt::Display for JsonRpcRequestForQueryMethod {
11148        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11149            match *self {
11150                Self::Query => write!(f, "query"),
11151            }
11152        }
11153    }
11154    impl ::std::str::FromStr for JsonRpcRequestForQueryMethod {
11155        type Err = self::error::ConversionError;
11156        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
11157            match value {
11158                "query" => Ok(Self::Query),
11159                _ => Err("invalid value".into()),
11160            }
11161        }
11162    }
11163    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForQueryMethod {
11164        type Error = self::error::ConversionError;
11165        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
11166            value.parse()
11167        }
11168    }
11169    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForQueryMethod {
11170        type Error = self::error::ConversionError;
11171        fn try_from(
11172            value: &::std::string::String,
11173        ) -> ::std::result::Result<Self, self::error::ConversionError> {
11174            value.parse()
11175        }
11176    }
11177    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForQueryMethod {
11178        type Error = self::error::ConversionError;
11179        fn try_from(
11180            value: ::std::string::String,
11181        ) -> ::std::result::Result<Self, self::error::ConversionError> {
11182            value.parse()
11183        }
11184    }
11185    #[doc = "`JsonRpcRequestForSendTx`"]
11186    #[doc = r""]
11187    #[doc = r" <details><summary>JSON schema</summary>"]
11188    #[doc = r""]
11189    #[doc = r" ```json"]
11190    #[doc = "{"]
11191    #[doc = "  \"title\": \"JsonRpcRequest_for_send_tx\","]
11192    #[doc = "  \"type\": \"object\","]
11193    #[doc = "  \"required\": ["]
11194    #[doc = "    \"id\","]
11195    #[doc = "    \"jsonrpc\","]
11196    #[doc = "    \"method\","]
11197    #[doc = "    \"params\""]
11198    #[doc = "  ],"]
11199    #[doc = "  \"properties\": {"]
11200    #[doc = "    \"id\": {"]
11201    #[doc = "      \"type\": \"string\""]
11202    #[doc = "    },"]
11203    #[doc = "    \"jsonrpc\": {"]
11204    #[doc = "      \"type\": \"string\""]
11205    #[doc = "    },"]
11206    #[doc = "    \"method\": {"]
11207    #[doc = "      \"type\": \"string\","]
11208    #[doc = "      \"enum\": ["]
11209    #[doc = "        \"send_tx\""]
11210    #[doc = "      ]"]
11211    #[doc = "    },"]
11212    #[doc = "    \"params\": {"]
11213    #[doc = "      \"$ref\": \"#/components/schemas/RpcSendTransactionRequest\""]
11214    #[doc = "    }"]
11215    #[doc = "  }"]
11216    #[doc = "}"]
11217    #[doc = r" ```"]
11218    #[doc = r" </details>"]
11219    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
11220    pub struct JsonRpcRequestForSendTx {
11221        pub id: ::std::string::String,
11222        pub jsonrpc: ::std::string::String,
11223        pub method: JsonRpcRequestForSendTxMethod,
11224        pub params: RpcSendTransactionRequest,
11225    }
11226    impl ::std::convert::From<&JsonRpcRequestForSendTx> for JsonRpcRequestForSendTx {
11227        fn from(value: &JsonRpcRequestForSendTx) -> Self {
11228            value.clone()
11229        }
11230    }
11231    #[doc = "`JsonRpcRequestForSendTxMethod`"]
11232    #[doc = r""]
11233    #[doc = r" <details><summary>JSON schema</summary>"]
11234    #[doc = r""]
11235    #[doc = r" ```json"]
11236    #[doc = "{"]
11237    #[doc = "  \"type\": \"string\","]
11238    #[doc = "  \"enum\": ["]
11239    #[doc = "    \"send_tx\""]
11240    #[doc = "  ]"]
11241    #[doc = "}"]
11242    #[doc = r" ```"]
11243    #[doc = r" </details>"]
11244    #[derive(
11245        :: serde :: Deserialize,
11246        :: serde :: Serialize,
11247        Clone,
11248        Copy,
11249        Debug,
11250        Eq,
11251        Hash,
11252        Ord,
11253        PartialEq,
11254        PartialOrd,
11255    )]
11256    pub enum JsonRpcRequestForSendTxMethod {
11257        #[serde(rename = "send_tx")]
11258        SendTx,
11259    }
11260    impl ::std::convert::From<&Self> for JsonRpcRequestForSendTxMethod {
11261        fn from(value: &JsonRpcRequestForSendTxMethod) -> Self {
11262            value.clone()
11263        }
11264    }
11265    impl ::std::fmt::Display for JsonRpcRequestForSendTxMethod {
11266        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11267            match *self {
11268                Self::SendTx => write!(f, "send_tx"),
11269            }
11270        }
11271    }
11272    impl ::std::str::FromStr for JsonRpcRequestForSendTxMethod {
11273        type Err = self::error::ConversionError;
11274        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
11275            match value {
11276                "send_tx" => Ok(Self::SendTx),
11277                _ => Err("invalid value".into()),
11278            }
11279        }
11280    }
11281    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForSendTxMethod {
11282        type Error = self::error::ConversionError;
11283        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
11284            value.parse()
11285        }
11286    }
11287    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForSendTxMethod {
11288        type Error = self::error::ConversionError;
11289        fn try_from(
11290            value: &::std::string::String,
11291        ) -> ::std::result::Result<Self, self::error::ConversionError> {
11292            value.parse()
11293        }
11294    }
11295    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForSendTxMethod {
11296        type Error = self::error::ConversionError;
11297        fn try_from(
11298            value: ::std::string::String,
11299        ) -> ::std::result::Result<Self, self::error::ConversionError> {
11300            value.parse()
11301        }
11302    }
11303    #[doc = "`JsonRpcRequestForStatus`"]
11304    #[doc = r""]
11305    #[doc = r" <details><summary>JSON schema</summary>"]
11306    #[doc = r""]
11307    #[doc = r" ```json"]
11308    #[doc = "{"]
11309    #[doc = "  \"title\": \"JsonRpcRequest_for_status\","]
11310    #[doc = "  \"type\": \"object\","]
11311    #[doc = "  \"required\": ["]
11312    #[doc = "    \"id\","]
11313    #[doc = "    \"jsonrpc\","]
11314    #[doc = "    \"method\","]
11315    #[doc = "    \"params\""]
11316    #[doc = "  ],"]
11317    #[doc = "  \"properties\": {"]
11318    #[doc = "    \"id\": {"]
11319    #[doc = "      \"type\": \"string\""]
11320    #[doc = "    },"]
11321    #[doc = "    \"jsonrpc\": {"]
11322    #[doc = "      \"type\": \"string\""]
11323    #[doc = "    },"]
11324    #[doc = "    \"method\": {"]
11325    #[doc = "      \"type\": \"string\","]
11326    #[doc = "      \"enum\": ["]
11327    #[doc = "        \"status\""]
11328    #[doc = "      ]"]
11329    #[doc = "    },"]
11330    #[doc = "    \"params\": {"]
11331    #[doc = "      \"$ref\": \"#/components/schemas/RpcStatusRequest\""]
11332    #[doc = "    }"]
11333    #[doc = "  }"]
11334    #[doc = "}"]
11335    #[doc = r" ```"]
11336    #[doc = r" </details>"]
11337    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
11338    pub struct JsonRpcRequestForStatus {
11339        pub id: ::std::string::String,
11340        pub jsonrpc: ::std::string::String,
11341        pub method: JsonRpcRequestForStatusMethod,
11342        pub params: RpcStatusRequest,
11343    }
11344    impl ::std::convert::From<&JsonRpcRequestForStatus> for JsonRpcRequestForStatus {
11345        fn from(value: &JsonRpcRequestForStatus) -> Self {
11346            value.clone()
11347        }
11348    }
11349    #[doc = "`JsonRpcRequestForStatusMethod`"]
11350    #[doc = r""]
11351    #[doc = r" <details><summary>JSON schema</summary>"]
11352    #[doc = r""]
11353    #[doc = r" ```json"]
11354    #[doc = "{"]
11355    #[doc = "  \"type\": \"string\","]
11356    #[doc = "  \"enum\": ["]
11357    #[doc = "    \"status\""]
11358    #[doc = "  ]"]
11359    #[doc = "}"]
11360    #[doc = r" ```"]
11361    #[doc = r" </details>"]
11362    #[derive(
11363        :: serde :: Deserialize,
11364        :: serde :: Serialize,
11365        Clone,
11366        Copy,
11367        Debug,
11368        Eq,
11369        Hash,
11370        Ord,
11371        PartialEq,
11372        PartialOrd,
11373    )]
11374    pub enum JsonRpcRequestForStatusMethod {
11375        #[serde(rename = "status")]
11376        Status,
11377    }
11378    impl ::std::convert::From<&Self> for JsonRpcRequestForStatusMethod {
11379        fn from(value: &JsonRpcRequestForStatusMethod) -> Self {
11380            value.clone()
11381        }
11382    }
11383    impl ::std::fmt::Display for JsonRpcRequestForStatusMethod {
11384        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11385            match *self {
11386                Self::Status => write!(f, "status"),
11387            }
11388        }
11389    }
11390    impl ::std::str::FromStr for JsonRpcRequestForStatusMethod {
11391        type Err = self::error::ConversionError;
11392        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
11393            match value {
11394                "status" => Ok(Self::Status),
11395                _ => Err("invalid value".into()),
11396            }
11397        }
11398    }
11399    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForStatusMethod {
11400        type Error = self::error::ConversionError;
11401        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
11402            value.parse()
11403        }
11404    }
11405    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForStatusMethod {
11406        type Error = self::error::ConversionError;
11407        fn try_from(
11408            value: &::std::string::String,
11409        ) -> ::std::result::Result<Self, self::error::ConversionError> {
11410            value.parse()
11411        }
11412    }
11413    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForStatusMethod {
11414        type Error = self::error::ConversionError;
11415        fn try_from(
11416            value: ::std::string::String,
11417        ) -> ::std::result::Result<Self, self::error::ConversionError> {
11418            value.parse()
11419        }
11420    }
11421    #[doc = "`JsonRpcRequestForTx`"]
11422    #[doc = r""]
11423    #[doc = r" <details><summary>JSON schema</summary>"]
11424    #[doc = r""]
11425    #[doc = r" ```json"]
11426    #[doc = "{"]
11427    #[doc = "  \"title\": \"JsonRpcRequest_for_tx\","]
11428    #[doc = "  \"type\": \"object\","]
11429    #[doc = "  \"required\": ["]
11430    #[doc = "    \"id\","]
11431    #[doc = "    \"jsonrpc\","]
11432    #[doc = "    \"method\","]
11433    #[doc = "    \"params\""]
11434    #[doc = "  ],"]
11435    #[doc = "  \"properties\": {"]
11436    #[doc = "    \"id\": {"]
11437    #[doc = "      \"type\": \"string\""]
11438    #[doc = "    },"]
11439    #[doc = "    \"jsonrpc\": {"]
11440    #[doc = "      \"type\": \"string\""]
11441    #[doc = "    },"]
11442    #[doc = "    \"method\": {"]
11443    #[doc = "      \"type\": \"string\","]
11444    #[doc = "      \"enum\": ["]
11445    #[doc = "        \"tx\""]
11446    #[doc = "      ]"]
11447    #[doc = "    },"]
11448    #[doc = "    \"params\": {"]
11449    #[doc = "      \"$ref\": \"#/components/schemas/RpcTransactionStatusRequest\""]
11450    #[doc = "    }"]
11451    #[doc = "  }"]
11452    #[doc = "}"]
11453    #[doc = r" ```"]
11454    #[doc = r" </details>"]
11455    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
11456    pub struct JsonRpcRequestForTx {
11457        pub id: ::std::string::String,
11458        pub jsonrpc: ::std::string::String,
11459        pub method: JsonRpcRequestForTxMethod,
11460        pub params: RpcTransactionStatusRequest,
11461    }
11462    impl ::std::convert::From<&JsonRpcRequestForTx> for JsonRpcRequestForTx {
11463        fn from(value: &JsonRpcRequestForTx) -> Self {
11464            value.clone()
11465        }
11466    }
11467    #[doc = "`JsonRpcRequestForTxMethod`"]
11468    #[doc = r""]
11469    #[doc = r" <details><summary>JSON schema</summary>"]
11470    #[doc = r""]
11471    #[doc = r" ```json"]
11472    #[doc = "{"]
11473    #[doc = "  \"type\": \"string\","]
11474    #[doc = "  \"enum\": ["]
11475    #[doc = "    \"tx\""]
11476    #[doc = "  ]"]
11477    #[doc = "}"]
11478    #[doc = r" ```"]
11479    #[doc = r" </details>"]
11480    #[derive(
11481        :: serde :: Deserialize,
11482        :: serde :: Serialize,
11483        Clone,
11484        Copy,
11485        Debug,
11486        Eq,
11487        Hash,
11488        Ord,
11489        PartialEq,
11490        PartialOrd,
11491    )]
11492    pub enum JsonRpcRequestForTxMethod {
11493        #[serde(rename = "tx")]
11494        Tx,
11495    }
11496    impl ::std::convert::From<&Self> for JsonRpcRequestForTxMethod {
11497        fn from(value: &JsonRpcRequestForTxMethod) -> Self {
11498            value.clone()
11499        }
11500    }
11501    impl ::std::fmt::Display for JsonRpcRequestForTxMethod {
11502        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11503            match *self {
11504                Self::Tx => write!(f, "tx"),
11505            }
11506        }
11507    }
11508    impl ::std::str::FromStr for JsonRpcRequestForTxMethod {
11509        type Err = self::error::ConversionError;
11510        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
11511            match value {
11512                "tx" => Ok(Self::Tx),
11513                _ => Err("invalid value".into()),
11514            }
11515        }
11516    }
11517    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForTxMethod {
11518        type Error = self::error::ConversionError;
11519        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
11520            value.parse()
11521        }
11522    }
11523    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForTxMethod {
11524        type Error = self::error::ConversionError;
11525        fn try_from(
11526            value: &::std::string::String,
11527        ) -> ::std::result::Result<Self, self::error::ConversionError> {
11528            value.parse()
11529        }
11530    }
11531    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForTxMethod {
11532        type Error = self::error::ConversionError;
11533        fn try_from(
11534            value: ::std::string::String,
11535        ) -> ::std::result::Result<Self, self::error::ConversionError> {
11536            value.parse()
11537        }
11538    }
11539    #[doc = "`JsonRpcRequestForValidators`"]
11540    #[doc = r""]
11541    #[doc = r" <details><summary>JSON schema</summary>"]
11542    #[doc = r""]
11543    #[doc = r" ```json"]
11544    #[doc = "{"]
11545    #[doc = "  \"title\": \"JsonRpcRequest_for_validators\","]
11546    #[doc = "  \"type\": \"object\","]
11547    #[doc = "  \"required\": ["]
11548    #[doc = "    \"id\","]
11549    #[doc = "    \"jsonrpc\","]
11550    #[doc = "    \"method\","]
11551    #[doc = "    \"params\""]
11552    #[doc = "  ],"]
11553    #[doc = "  \"properties\": {"]
11554    #[doc = "    \"id\": {"]
11555    #[doc = "      \"type\": \"string\""]
11556    #[doc = "    },"]
11557    #[doc = "    \"jsonrpc\": {"]
11558    #[doc = "      \"type\": \"string\""]
11559    #[doc = "    },"]
11560    #[doc = "    \"method\": {"]
11561    #[doc = "      \"type\": \"string\","]
11562    #[doc = "      \"enum\": ["]
11563    #[doc = "        \"validators\""]
11564    #[doc = "      ]"]
11565    #[doc = "    },"]
11566    #[doc = "    \"params\": {"]
11567    #[doc = "      \"$ref\": \"#/components/schemas/RpcValidatorRequest\""]
11568    #[doc = "    }"]
11569    #[doc = "  }"]
11570    #[doc = "}"]
11571    #[doc = r" ```"]
11572    #[doc = r" </details>"]
11573    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
11574    pub struct JsonRpcRequestForValidators {
11575        pub id: ::std::string::String,
11576        pub jsonrpc: ::std::string::String,
11577        pub method: JsonRpcRequestForValidatorsMethod,
11578        pub params: RpcValidatorRequest,
11579    }
11580    impl ::std::convert::From<&JsonRpcRequestForValidators> for JsonRpcRequestForValidators {
11581        fn from(value: &JsonRpcRequestForValidators) -> Self {
11582            value.clone()
11583        }
11584    }
11585    #[doc = "`JsonRpcRequestForValidatorsMethod`"]
11586    #[doc = r""]
11587    #[doc = r" <details><summary>JSON schema</summary>"]
11588    #[doc = r""]
11589    #[doc = r" ```json"]
11590    #[doc = "{"]
11591    #[doc = "  \"type\": \"string\","]
11592    #[doc = "  \"enum\": ["]
11593    #[doc = "    \"validators\""]
11594    #[doc = "  ]"]
11595    #[doc = "}"]
11596    #[doc = r" ```"]
11597    #[doc = r" </details>"]
11598    #[derive(
11599        :: serde :: Deserialize,
11600        :: serde :: Serialize,
11601        Clone,
11602        Copy,
11603        Debug,
11604        Eq,
11605        Hash,
11606        Ord,
11607        PartialEq,
11608        PartialOrd,
11609    )]
11610    pub enum JsonRpcRequestForValidatorsMethod {
11611        #[serde(rename = "validators")]
11612        Validators,
11613    }
11614    impl ::std::convert::From<&Self> for JsonRpcRequestForValidatorsMethod {
11615        fn from(value: &JsonRpcRequestForValidatorsMethod) -> Self {
11616            value.clone()
11617        }
11618    }
11619    impl ::std::fmt::Display for JsonRpcRequestForValidatorsMethod {
11620        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11621            match *self {
11622                Self::Validators => write!(f, "validators"),
11623            }
11624        }
11625    }
11626    impl ::std::str::FromStr for JsonRpcRequestForValidatorsMethod {
11627        type Err = self::error::ConversionError;
11628        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
11629            match value {
11630                "validators" => Ok(Self::Validators),
11631                _ => Err("invalid value".into()),
11632            }
11633        }
11634    }
11635    impl ::std::convert::TryFrom<&str> for JsonRpcRequestForValidatorsMethod {
11636        type Error = self::error::ConversionError;
11637        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
11638            value.parse()
11639        }
11640    }
11641    impl ::std::convert::TryFrom<&::std::string::String> for JsonRpcRequestForValidatorsMethod {
11642        type Error = self::error::ConversionError;
11643        fn try_from(
11644            value: &::std::string::String,
11645        ) -> ::std::result::Result<Self, self::error::ConversionError> {
11646            value.parse()
11647        }
11648    }
11649    impl ::std::convert::TryFrom<::std::string::String> for JsonRpcRequestForValidatorsMethod {
11650        type Error = self::error::ConversionError;
11651        fn try_from(
11652            value: ::std::string::String,
11653        ) -> ::std::result::Result<Self, self::error::ConversionError> {
11654            value.parse()
11655        }
11656    }
11657    #[doc = "`JsonRpcResponseForArrayOfRangeOfUint64AndRpcError`"]
11658    #[doc = r""]
11659    #[doc = r" <details><summary>JSON schema</summary>"]
11660    #[doc = r""]
11661    #[doc = r" ```json"]
11662    #[doc = "{"]
11663    #[doc = "  \"title\": \"JsonRpcResponse_for_Array_of_Range_of_uint64_and_RpcError\","]
11664    #[doc = "  \"type\": \"object\","]
11665    #[doc = "  \"oneOf\": ["]
11666    #[doc = "    {"]
11667    #[doc = "      \"type\": \"object\","]
11668    #[doc = "      \"required\": ["]
11669    #[doc = "        \"result\""]
11670    #[doc = "      ],"]
11671    #[doc = "      \"properties\": {"]
11672    #[doc = "        \"result\": {"]
11673    #[doc = "          \"type\": \"array\","]
11674    #[doc = "          \"items\": {"]
11675    #[doc = "            \"$ref\": \"#/components/schemas/Range_of_uint64\""]
11676    #[doc = "          }"]
11677    #[doc = "        }"]
11678    #[doc = "      }"]
11679    #[doc = "    },"]
11680    #[doc = "    {"]
11681    #[doc = "      \"type\": \"object\","]
11682    #[doc = "      \"required\": ["]
11683    #[doc = "        \"error\""]
11684    #[doc = "      ],"]
11685    #[doc = "      \"properties\": {"]
11686    #[doc = "        \"error\": {"]
11687    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
11688    #[doc = "        }"]
11689    #[doc = "      }"]
11690    #[doc = "    }"]
11691    #[doc = "  ],"]
11692    #[doc = "  \"required\": ["]
11693    #[doc = "    \"id\","]
11694    #[doc = "    \"jsonrpc\""]
11695    #[doc = "  ],"]
11696    #[doc = "  \"properties\": {"]
11697    #[doc = "    \"id\": {"]
11698    #[doc = "      \"type\": \"string\""]
11699    #[doc = "    },"]
11700    #[doc = "    \"jsonrpc\": {"]
11701    #[doc = "      \"type\": \"string\""]
11702    #[doc = "    }"]
11703    #[doc = "  }"]
11704    #[doc = "}"]
11705    #[doc = r" ```"]
11706    #[doc = r" </details>"]
11707    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
11708    #[serde(untagged)]
11709    pub enum JsonRpcResponseForArrayOfRangeOfUint64AndRpcError {
11710        Variant0 {
11711            id: ::std::string::String,
11712            jsonrpc: ::std::string::String,
11713            result: ::std::vec::Vec<RangeOfUint64>,
11714        },
11715        Variant1 {
11716            error: RpcError,
11717            id: ::std::string::String,
11718            jsonrpc: ::std::string::String,
11719        },
11720    }
11721    impl ::std::convert::From<&Self> for JsonRpcResponseForArrayOfRangeOfUint64AndRpcError {
11722        fn from(value: &JsonRpcResponseForArrayOfRangeOfUint64AndRpcError) -> Self {
11723            value.clone()
11724        }
11725    }
11726    #[doc = "`JsonRpcResponseForArrayOfValidatorStakeViewAndRpcError`"]
11727    #[doc = r""]
11728    #[doc = r" <details><summary>JSON schema</summary>"]
11729    #[doc = r""]
11730    #[doc = r" ```json"]
11731    #[doc = "{"]
11732    #[doc = "  \"title\": \"JsonRpcResponse_for_Array_of_ValidatorStakeView_and_RpcError\","]
11733    #[doc = "  \"type\": \"object\","]
11734    #[doc = "  \"oneOf\": ["]
11735    #[doc = "    {"]
11736    #[doc = "      \"type\": \"object\","]
11737    #[doc = "      \"required\": ["]
11738    #[doc = "        \"result\""]
11739    #[doc = "      ],"]
11740    #[doc = "      \"properties\": {"]
11741    #[doc = "        \"result\": {"]
11742    #[doc = "          \"type\": \"array\","]
11743    #[doc = "          \"items\": {"]
11744    #[doc = "            \"$ref\": \"#/components/schemas/ValidatorStakeView\""]
11745    #[doc = "          }"]
11746    #[doc = "        }"]
11747    #[doc = "      }"]
11748    #[doc = "    },"]
11749    #[doc = "    {"]
11750    #[doc = "      \"type\": \"object\","]
11751    #[doc = "      \"required\": ["]
11752    #[doc = "        \"error\""]
11753    #[doc = "      ],"]
11754    #[doc = "      \"properties\": {"]
11755    #[doc = "        \"error\": {"]
11756    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
11757    #[doc = "        }"]
11758    #[doc = "      }"]
11759    #[doc = "    }"]
11760    #[doc = "  ],"]
11761    #[doc = "  \"required\": ["]
11762    #[doc = "    \"id\","]
11763    #[doc = "    \"jsonrpc\""]
11764    #[doc = "  ],"]
11765    #[doc = "  \"properties\": {"]
11766    #[doc = "    \"id\": {"]
11767    #[doc = "      \"type\": \"string\""]
11768    #[doc = "    },"]
11769    #[doc = "    \"jsonrpc\": {"]
11770    #[doc = "      \"type\": \"string\""]
11771    #[doc = "    }"]
11772    #[doc = "  }"]
11773    #[doc = "}"]
11774    #[doc = r" ```"]
11775    #[doc = r" </details>"]
11776    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
11777    #[serde(untagged)]
11778    pub enum JsonRpcResponseForArrayOfValidatorStakeViewAndRpcError {
11779        Variant0 {
11780            id: ::std::string::String,
11781            jsonrpc: ::std::string::String,
11782            result: ::std::vec::Vec<ValidatorStakeView>,
11783        },
11784        Variant1 {
11785            error: RpcError,
11786            id: ::std::string::String,
11787            jsonrpc: ::std::string::String,
11788        },
11789    }
11790    impl ::std::convert::From<&Self> for JsonRpcResponseForArrayOfValidatorStakeViewAndRpcError {
11791        fn from(value: &JsonRpcResponseForArrayOfValidatorStakeViewAndRpcError) -> Self {
11792            value.clone()
11793        }
11794    }
11795    #[doc = "`JsonRpcResponseForCryptoHashAndRpcError`"]
11796    #[doc = r""]
11797    #[doc = r" <details><summary>JSON schema</summary>"]
11798    #[doc = r""]
11799    #[doc = r" ```json"]
11800    #[doc = "{"]
11801    #[doc = "  \"title\": \"JsonRpcResponse_for_CryptoHash_and_RpcError\","]
11802    #[doc = "  \"type\": \"object\","]
11803    #[doc = "  \"oneOf\": ["]
11804    #[doc = "    {"]
11805    #[doc = "      \"type\": \"object\","]
11806    #[doc = "      \"required\": ["]
11807    #[doc = "        \"result\""]
11808    #[doc = "      ],"]
11809    #[doc = "      \"properties\": {"]
11810    #[doc = "        \"result\": {"]
11811    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
11812    #[doc = "        }"]
11813    #[doc = "      }"]
11814    #[doc = "    },"]
11815    #[doc = "    {"]
11816    #[doc = "      \"type\": \"object\","]
11817    #[doc = "      \"required\": ["]
11818    #[doc = "        \"error\""]
11819    #[doc = "      ],"]
11820    #[doc = "      \"properties\": {"]
11821    #[doc = "        \"error\": {"]
11822    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
11823    #[doc = "        }"]
11824    #[doc = "      }"]
11825    #[doc = "    }"]
11826    #[doc = "  ],"]
11827    #[doc = "  \"required\": ["]
11828    #[doc = "    \"id\","]
11829    #[doc = "    \"jsonrpc\""]
11830    #[doc = "  ],"]
11831    #[doc = "  \"properties\": {"]
11832    #[doc = "    \"id\": {"]
11833    #[doc = "      \"type\": \"string\""]
11834    #[doc = "    },"]
11835    #[doc = "    \"jsonrpc\": {"]
11836    #[doc = "      \"type\": \"string\""]
11837    #[doc = "    }"]
11838    #[doc = "  }"]
11839    #[doc = "}"]
11840    #[doc = r" ```"]
11841    #[doc = r" </details>"]
11842    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
11843    #[serde(untagged)]
11844    pub enum JsonRpcResponseForCryptoHashAndRpcError {
11845        Variant0 {
11846            id: ::std::string::String,
11847            jsonrpc: ::std::string::String,
11848            result: CryptoHash,
11849        },
11850        Variant1 {
11851            error: RpcError,
11852            id: ::std::string::String,
11853            jsonrpc: ::std::string::String,
11854        },
11855    }
11856    impl ::std::convert::From<&Self> for JsonRpcResponseForCryptoHashAndRpcError {
11857        fn from(value: &JsonRpcResponseForCryptoHashAndRpcError) -> Self {
11858            value.clone()
11859        }
11860    }
11861    #[doc = "`JsonRpcResponseForGenesisConfigAndRpcError`"]
11862    #[doc = r""]
11863    #[doc = r" <details><summary>JSON schema</summary>"]
11864    #[doc = r""]
11865    #[doc = r" ```json"]
11866    #[doc = "{"]
11867    #[doc = "  \"title\": \"JsonRpcResponse_for_GenesisConfig_and_RpcError\","]
11868    #[doc = "  \"type\": \"object\","]
11869    #[doc = "  \"oneOf\": ["]
11870    #[doc = "    {"]
11871    #[doc = "      \"type\": \"object\","]
11872    #[doc = "      \"required\": ["]
11873    #[doc = "        \"result\""]
11874    #[doc = "      ],"]
11875    #[doc = "      \"properties\": {"]
11876    #[doc = "        \"result\": {"]
11877    #[doc = "          \"$ref\": \"#/components/schemas/GenesisConfig\""]
11878    #[doc = "        }"]
11879    #[doc = "      }"]
11880    #[doc = "    },"]
11881    #[doc = "    {"]
11882    #[doc = "      \"type\": \"object\","]
11883    #[doc = "      \"required\": ["]
11884    #[doc = "        \"error\""]
11885    #[doc = "      ],"]
11886    #[doc = "      \"properties\": {"]
11887    #[doc = "        \"error\": {"]
11888    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
11889    #[doc = "        }"]
11890    #[doc = "      }"]
11891    #[doc = "    }"]
11892    #[doc = "  ],"]
11893    #[doc = "  \"required\": ["]
11894    #[doc = "    \"id\","]
11895    #[doc = "    \"jsonrpc\""]
11896    #[doc = "  ],"]
11897    #[doc = "  \"properties\": {"]
11898    #[doc = "    \"id\": {"]
11899    #[doc = "      \"type\": \"string\""]
11900    #[doc = "    },"]
11901    #[doc = "    \"jsonrpc\": {"]
11902    #[doc = "      \"type\": \"string\""]
11903    #[doc = "    }"]
11904    #[doc = "  }"]
11905    #[doc = "}"]
11906    #[doc = r" ```"]
11907    #[doc = r" </details>"]
11908    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
11909    #[serde(untagged)]
11910    pub enum JsonRpcResponseForGenesisConfigAndRpcError {
11911        Variant0 {
11912            id: ::std::string::String,
11913            jsonrpc: ::std::string::String,
11914            result: GenesisConfig,
11915        },
11916        Variant1 {
11917            error: RpcError,
11918            id: ::std::string::String,
11919            jsonrpc: ::std::string::String,
11920        },
11921    }
11922    impl ::std::convert::From<&Self> for JsonRpcResponseForGenesisConfigAndRpcError {
11923        fn from(value: &JsonRpcResponseForGenesisConfigAndRpcError) -> Self {
11924            value.clone()
11925        }
11926    }
11927    #[doc = "`JsonRpcResponseForNullableRpcHealthResponseAndRpcError`"]
11928    #[doc = r""]
11929    #[doc = r" <details><summary>JSON schema</summary>"]
11930    #[doc = r""]
11931    #[doc = r" ```json"]
11932    #[doc = "{"]
11933    #[doc = "  \"title\": \"JsonRpcResponse_for_Nullable_RpcHealthResponse_and_RpcError\","]
11934    #[doc = "  \"type\": \"object\","]
11935    #[doc = "  \"oneOf\": ["]
11936    #[doc = "    {"]
11937    #[doc = "      \"type\": \"object\","]
11938    #[doc = "      \"required\": ["]
11939    #[doc = "        \"result\""]
11940    #[doc = "      ],"]
11941    #[doc = "      \"properties\": {"]
11942    #[doc = "        \"result\": {"]
11943    #[doc = "          \"oneOf\": ["]
11944    #[doc = "            {"]
11945    #[doc = "              \"type\": \"null\""]
11946    #[doc = "            },"]
11947    #[doc = "            {"]
11948    #[doc = "              \"allOf\": ["]
11949    #[doc = "                {"]
11950    #[doc = "                  \"$ref\": \"#/components/schemas/RpcHealthResponse\""]
11951    #[doc = "                }"]
11952    #[doc = "              ]"]
11953    #[doc = "            }"]
11954    #[doc = "          ]"]
11955    #[doc = "        }"]
11956    #[doc = "      }"]
11957    #[doc = "    },"]
11958    #[doc = "    {"]
11959    #[doc = "      \"type\": \"object\","]
11960    #[doc = "      \"required\": ["]
11961    #[doc = "        \"error\""]
11962    #[doc = "      ],"]
11963    #[doc = "      \"properties\": {"]
11964    #[doc = "        \"error\": {"]
11965    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
11966    #[doc = "        }"]
11967    #[doc = "      }"]
11968    #[doc = "    }"]
11969    #[doc = "  ],"]
11970    #[doc = "  \"required\": ["]
11971    #[doc = "    \"id\","]
11972    #[doc = "    \"jsonrpc\""]
11973    #[doc = "  ],"]
11974    #[doc = "  \"properties\": {"]
11975    #[doc = "    \"id\": {"]
11976    #[doc = "      \"type\": \"string\""]
11977    #[doc = "    },"]
11978    #[doc = "    \"jsonrpc\": {"]
11979    #[doc = "      \"type\": \"string\""]
11980    #[doc = "    }"]
11981    #[doc = "  }"]
11982    #[doc = "}"]
11983    #[doc = r" ```"]
11984    #[doc = r" </details>"]
11985    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
11986    #[serde(untagged)]
11987    pub enum JsonRpcResponseForNullableRpcHealthResponseAndRpcError {
11988        Variant0 {
11989            id: ::std::string::String,
11990            jsonrpc: ::std::string::String,
11991            result: ::std::option::Option<RpcHealthResponse>,
11992        },
11993        Variant1 {
11994            error: RpcError,
11995            id: ::std::string::String,
11996            jsonrpc: ::std::string::String,
11997        },
11998    }
11999    impl ::std::convert::From<&Self> for JsonRpcResponseForNullableRpcHealthResponseAndRpcError {
12000        fn from(value: &JsonRpcResponseForNullableRpcHealthResponseAndRpcError) -> Self {
12001            value.clone()
12002        }
12003    }
12004    #[doc = "`JsonRpcResponseForRpcBlockResponseAndRpcError`"]
12005    #[doc = r""]
12006    #[doc = r" <details><summary>JSON schema</summary>"]
12007    #[doc = r""]
12008    #[doc = r" ```json"]
12009    #[doc = "{"]
12010    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcBlockResponse_and_RpcError\","]
12011    #[doc = "  \"type\": \"object\","]
12012    #[doc = "  \"oneOf\": ["]
12013    #[doc = "    {"]
12014    #[doc = "      \"type\": \"object\","]
12015    #[doc = "      \"required\": ["]
12016    #[doc = "        \"result\""]
12017    #[doc = "      ],"]
12018    #[doc = "      \"properties\": {"]
12019    #[doc = "        \"result\": {"]
12020    #[doc = "          \"$ref\": \"#/components/schemas/RpcBlockResponse\""]
12021    #[doc = "        }"]
12022    #[doc = "      }"]
12023    #[doc = "    },"]
12024    #[doc = "    {"]
12025    #[doc = "      \"type\": \"object\","]
12026    #[doc = "      \"required\": ["]
12027    #[doc = "        \"error\""]
12028    #[doc = "      ],"]
12029    #[doc = "      \"properties\": {"]
12030    #[doc = "        \"error\": {"]
12031    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12032    #[doc = "        }"]
12033    #[doc = "      }"]
12034    #[doc = "    }"]
12035    #[doc = "  ],"]
12036    #[doc = "  \"required\": ["]
12037    #[doc = "    \"id\","]
12038    #[doc = "    \"jsonrpc\""]
12039    #[doc = "  ],"]
12040    #[doc = "  \"properties\": {"]
12041    #[doc = "    \"id\": {"]
12042    #[doc = "      \"type\": \"string\""]
12043    #[doc = "    },"]
12044    #[doc = "    \"jsonrpc\": {"]
12045    #[doc = "      \"type\": \"string\""]
12046    #[doc = "    }"]
12047    #[doc = "  }"]
12048    #[doc = "}"]
12049    #[doc = r" ```"]
12050    #[doc = r" </details>"]
12051    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12052    #[serde(untagged)]
12053    pub enum JsonRpcResponseForRpcBlockResponseAndRpcError {
12054        Variant0 {
12055            id: ::std::string::String,
12056            jsonrpc: ::std::string::String,
12057            result: RpcBlockResponse,
12058        },
12059        Variant1 {
12060            error: RpcError,
12061            id: ::std::string::String,
12062            jsonrpc: ::std::string::String,
12063        },
12064    }
12065    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcBlockResponseAndRpcError {
12066        fn from(value: &JsonRpcResponseForRpcBlockResponseAndRpcError) -> Self {
12067            value.clone()
12068        }
12069    }
12070    #[doc = "`JsonRpcResponseForRpcChunkResponseAndRpcError`"]
12071    #[doc = r""]
12072    #[doc = r" <details><summary>JSON schema</summary>"]
12073    #[doc = r""]
12074    #[doc = r" ```json"]
12075    #[doc = "{"]
12076    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcChunkResponse_and_RpcError\","]
12077    #[doc = "  \"type\": \"object\","]
12078    #[doc = "  \"oneOf\": ["]
12079    #[doc = "    {"]
12080    #[doc = "      \"type\": \"object\","]
12081    #[doc = "      \"required\": ["]
12082    #[doc = "        \"result\""]
12083    #[doc = "      ],"]
12084    #[doc = "      \"properties\": {"]
12085    #[doc = "        \"result\": {"]
12086    #[doc = "          \"$ref\": \"#/components/schemas/RpcChunkResponse\""]
12087    #[doc = "        }"]
12088    #[doc = "      }"]
12089    #[doc = "    },"]
12090    #[doc = "    {"]
12091    #[doc = "      \"type\": \"object\","]
12092    #[doc = "      \"required\": ["]
12093    #[doc = "        \"error\""]
12094    #[doc = "      ],"]
12095    #[doc = "      \"properties\": {"]
12096    #[doc = "        \"error\": {"]
12097    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12098    #[doc = "        }"]
12099    #[doc = "      }"]
12100    #[doc = "    }"]
12101    #[doc = "  ],"]
12102    #[doc = "  \"required\": ["]
12103    #[doc = "    \"id\","]
12104    #[doc = "    \"jsonrpc\""]
12105    #[doc = "  ],"]
12106    #[doc = "  \"properties\": {"]
12107    #[doc = "    \"id\": {"]
12108    #[doc = "      \"type\": \"string\""]
12109    #[doc = "    },"]
12110    #[doc = "    \"jsonrpc\": {"]
12111    #[doc = "      \"type\": \"string\""]
12112    #[doc = "    }"]
12113    #[doc = "  }"]
12114    #[doc = "}"]
12115    #[doc = r" ```"]
12116    #[doc = r" </details>"]
12117    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12118    #[serde(untagged)]
12119    pub enum JsonRpcResponseForRpcChunkResponseAndRpcError {
12120        Variant0 {
12121            id: ::std::string::String,
12122            jsonrpc: ::std::string::String,
12123            result: RpcChunkResponse,
12124        },
12125        Variant1 {
12126            error: RpcError,
12127            id: ::std::string::String,
12128            jsonrpc: ::std::string::String,
12129        },
12130    }
12131    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcChunkResponseAndRpcError {
12132        fn from(value: &JsonRpcResponseForRpcChunkResponseAndRpcError) -> Self {
12133            value.clone()
12134        }
12135    }
12136    #[doc = "`JsonRpcResponseForRpcClientConfigResponseAndRpcError`"]
12137    #[doc = r""]
12138    #[doc = r" <details><summary>JSON schema</summary>"]
12139    #[doc = r""]
12140    #[doc = r" ```json"]
12141    #[doc = "{"]
12142    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcClientConfigResponse_and_RpcError\","]
12143    #[doc = "  \"type\": \"object\","]
12144    #[doc = "  \"oneOf\": ["]
12145    #[doc = "    {"]
12146    #[doc = "      \"type\": \"object\","]
12147    #[doc = "      \"required\": ["]
12148    #[doc = "        \"result\""]
12149    #[doc = "      ],"]
12150    #[doc = "      \"properties\": {"]
12151    #[doc = "        \"result\": {"]
12152    #[doc = "          \"$ref\": \"#/components/schemas/RpcClientConfigResponse\""]
12153    #[doc = "        }"]
12154    #[doc = "      }"]
12155    #[doc = "    },"]
12156    #[doc = "    {"]
12157    #[doc = "      \"type\": \"object\","]
12158    #[doc = "      \"required\": ["]
12159    #[doc = "        \"error\""]
12160    #[doc = "      ],"]
12161    #[doc = "      \"properties\": {"]
12162    #[doc = "        \"error\": {"]
12163    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12164    #[doc = "        }"]
12165    #[doc = "      }"]
12166    #[doc = "    }"]
12167    #[doc = "  ],"]
12168    #[doc = "  \"required\": ["]
12169    #[doc = "    \"id\","]
12170    #[doc = "    \"jsonrpc\""]
12171    #[doc = "  ],"]
12172    #[doc = "  \"properties\": {"]
12173    #[doc = "    \"id\": {"]
12174    #[doc = "      \"type\": \"string\""]
12175    #[doc = "    },"]
12176    #[doc = "    \"jsonrpc\": {"]
12177    #[doc = "      \"type\": \"string\""]
12178    #[doc = "    }"]
12179    #[doc = "  }"]
12180    #[doc = "}"]
12181    #[doc = r" ```"]
12182    #[doc = r" </details>"]
12183    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12184    #[serde(untagged)]
12185    pub enum JsonRpcResponseForRpcClientConfigResponseAndRpcError {
12186        Variant0 {
12187            id: ::std::string::String,
12188            jsonrpc: ::std::string::String,
12189            result: RpcClientConfigResponse,
12190        },
12191        Variant1 {
12192            error: RpcError,
12193            id: ::std::string::String,
12194            jsonrpc: ::std::string::String,
12195        },
12196    }
12197    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcClientConfigResponseAndRpcError {
12198        fn from(value: &JsonRpcResponseForRpcClientConfigResponseAndRpcError) -> Self {
12199            value.clone()
12200        }
12201    }
12202    #[doc = "`JsonRpcResponseForRpcCongestionLevelResponseAndRpcError`"]
12203    #[doc = r""]
12204    #[doc = r" <details><summary>JSON schema</summary>"]
12205    #[doc = r""]
12206    #[doc = r" ```json"]
12207    #[doc = "{"]
12208    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcCongestionLevelResponse_and_RpcError\","]
12209    #[doc = "  \"type\": \"object\","]
12210    #[doc = "  \"oneOf\": ["]
12211    #[doc = "    {"]
12212    #[doc = "      \"type\": \"object\","]
12213    #[doc = "      \"required\": ["]
12214    #[doc = "        \"result\""]
12215    #[doc = "      ],"]
12216    #[doc = "      \"properties\": {"]
12217    #[doc = "        \"result\": {"]
12218    #[doc = "          \"$ref\": \"#/components/schemas/RpcCongestionLevelResponse\""]
12219    #[doc = "        }"]
12220    #[doc = "      }"]
12221    #[doc = "    },"]
12222    #[doc = "    {"]
12223    #[doc = "      \"type\": \"object\","]
12224    #[doc = "      \"required\": ["]
12225    #[doc = "        \"error\""]
12226    #[doc = "      ],"]
12227    #[doc = "      \"properties\": {"]
12228    #[doc = "        \"error\": {"]
12229    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12230    #[doc = "        }"]
12231    #[doc = "      }"]
12232    #[doc = "    }"]
12233    #[doc = "  ],"]
12234    #[doc = "  \"required\": ["]
12235    #[doc = "    \"id\","]
12236    #[doc = "    \"jsonrpc\""]
12237    #[doc = "  ],"]
12238    #[doc = "  \"properties\": {"]
12239    #[doc = "    \"id\": {"]
12240    #[doc = "      \"type\": \"string\""]
12241    #[doc = "    },"]
12242    #[doc = "    \"jsonrpc\": {"]
12243    #[doc = "      \"type\": \"string\""]
12244    #[doc = "    }"]
12245    #[doc = "  }"]
12246    #[doc = "}"]
12247    #[doc = r" ```"]
12248    #[doc = r" </details>"]
12249    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12250    #[serde(untagged)]
12251    pub enum JsonRpcResponseForRpcCongestionLevelResponseAndRpcError {
12252        Variant0 {
12253            id: ::std::string::String,
12254            jsonrpc: ::std::string::String,
12255            result: RpcCongestionLevelResponse,
12256        },
12257        Variant1 {
12258            error: RpcError,
12259            id: ::std::string::String,
12260            jsonrpc: ::std::string::String,
12261        },
12262    }
12263    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcCongestionLevelResponseAndRpcError {
12264        fn from(value: &JsonRpcResponseForRpcCongestionLevelResponseAndRpcError) -> Self {
12265            value.clone()
12266        }
12267    }
12268    #[doc = "`JsonRpcResponseForRpcGasPriceResponseAndRpcError`"]
12269    #[doc = r""]
12270    #[doc = r" <details><summary>JSON schema</summary>"]
12271    #[doc = r""]
12272    #[doc = r" ```json"]
12273    #[doc = "{"]
12274    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcGasPriceResponse_and_RpcError\","]
12275    #[doc = "  \"type\": \"object\","]
12276    #[doc = "  \"oneOf\": ["]
12277    #[doc = "    {"]
12278    #[doc = "      \"type\": \"object\","]
12279    #[doc = "      \"required\": ["]
12280    #[doc = "        \"result\""]
12281    #[doc = "      ],"]
12282    #[doc = "      \"properties\": {"]
12283    #[doc = "        \"result\": {"]
12284    #[doc = "          \"$ref\": \"#/components/schemas/RpcGasPriceResponse\""]
12285    #[doc = "        }"]
12286    #[doc = "      }"]
12287    #[doc = "    },"]
12288    #[doc = "    {"]
12289    #[doc = "      \"type\": \"object\","]
12290    #[doc = "      \"required\": ["]
12291    #[doc = "        \"error\""]
12292    #[doc = "      ],"]
12293    #[doc = "      \"properties\": {"]
12294    #[doc = "        \"error\": {"]
12295    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12296    #[doc = "        }"]
12297    #[doc = "      }"]
12298    #[doc = "    }"]
12299    #[doc = "  ],"]
12300    #[doc = "  \"required\": ["]
12301    #[doc = "    \"id\","]
12302    #[doc = "    \"jsonrpc\""]
12303    #[doc = "  ],"]
12304    #[doc = "  \"properties\": {"]
12305    #[doc = "    \"id\": {"]
12306    #[doc = "      \"type\": \"string\""]
12307    #[doc = "    },"]
12308    #[doc = "    \"jsonrpc\": {"]
12309    #[doc = "      \"type\": \"string\""]
12310    #[doc = "    }"]
12311    #[doc = "  }"]
12312    #[doc = "}"]
12313    #[doc = r" ```"]
12314    #[doc = r" </details>"]
12315    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12316    #[serde(untagged)]
12317    pub enum JsonRpcResponseForRpcGasPriceResponseAndRpcError {
12318        Variant0 {
12319            id: ::std::string::String,
12320            jsonrpc: ::std::string::String,
12321            result: RpcGasPriceResponse,
12322        },
12323        Variant1 {
12324            error: RpcError,
12325            id: ::std::string::String,
12326            jsonrpc: ::std::string::String,
12327        },
12328    }
12329    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcGasPriceResponseAndRpcError {
12330        fn from(value: &JsonRpcResponseForRpcGasPriceResponseAndRpcError) -> Self {
12331            value.clone()
12332        }
12333    }
12334    #[doc = "`JsonRpcResponseForRpcLightClientBlockProofResponseAndRpcError`"]
12335    #[doc = r""]
12336    #[doc = r" <details><summary>JSON schema</summary>"]
12337    #[doc = r""]
12338    #[doc = r" ```json"]
12339    #[doc = "{"]
12340    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcLightClientBlockProofResponse_and_RpcError\","]
12341    #[doc = "  \"type\": \"object\","]
12342    #[doc = "  \"oneOf\": ["]
12343    #[doc = "    {"]
12344    #[doc = "      \"type\": \"object\","]
12345    #[doc = "      \"required\": ["]
12346    #[doc = "        \"result\""]
12347    #[doc = "      ],"]
12348    #[doc = "      \"properties\": {"]
12349    #[doc = "        \"result\": {"]
12350    #[doc = "          \"$ref\": \"#/components/schemas/RpcLightClientBlockProofResponse\""]
12351    #[doc = "        }"]
12352    #[doc = "      }"]
12353    #[doc = "    },"]
12354    #[doc = "    {"]
12355    #[doc = "      \"type\": \"object\","]
12356    #[doc = "      \"required\": ["]
12357    #[doc = "        \"error\""]
12358    #[doc = "      ],"]
12359    #[doc = "      \"properties\": {"]
12360    #[doc = "        \"error\": {"]
12361    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12362    #[doc = "        }"]
12363    #[doc = "      }"]
12364    #[doc = "    }"]
12365    #[doc = "  ],"]
12366    #[doc = "  \"required\": ["]
12367    #[doc = "    \"id\","]
12368    #[doc = "    \"jsonrpc\""]
12369    #[doc = "  ],"]
12370    #[doc = "  \"properties\": {"]
12371    #[doc = "    \"id\": {"]
12372    #[doc = "      \"type\": \"string\""]
12373    #[doc = "    },"]
12374    #[doc = "    \"jsonrpc\": {"]
12375    #[doc = "      \"type\": \"string\""]
12376    #[doc = "    }"]
12377    #[doc = "  }"]
12378    #[doc = "}"]
12379    #[doc = r" ```"]
12380    #[doc = r" </details>"]
12381    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12382    #[serde(untagged)]
12383    pub enum JsonRpcResponseForRpcLightClientBlockProofResponseAndRpcError {
12384        Variant0 {
12385            id: ::std::string::String,
12386            jsonrpc: ::std::string::String,
12387            result: RpcLightClientBlockProofResponse,
12388        },
12389        Variant1 {
12390            error: RpcError,
12391            id: ::std::string::String,
12392            jsonrpc: ::std::string::String,
12393        },
12394    }
12395    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcLightClientBlockProofResponseAndRpcError {
12396        fn from(value: &JsonRpcResponseForRpcLightClientBlockProofResponseAndRpcError) -> Self {
12397            value.clone()
12398        }
12399    }
12400    #[doc = "`JsonRpcResponseForRpcLightClientExecutionProofResponseAndRpcError`"]
12401    #[doc = r""]
12402    #[doc = r" <details><summary>JSON schema</summary>"]
12403    #[doc = r""]
12404    #[doc = r" ```json"]
12405    #[doc = "{"]
12406    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcLightClientExecutionProofResponse_and_RpcError\","]
12407    #[doc = "  \"type\": \"object\","]
12408    #[doc = "  \"oneOf\": ["]
12409    #[doc = "    {"]
12410    #[doc = "      \"type\": \"object\","]
12411    #[doc = "      \"required\": ["]
12412    #[doc = "        \"result\""]
12413    #[doc = "      ],"]
12414    #[doc = "      \"properties\": {"]
12415    #[doc = "        \"result\": {"]
12416    #[doc = "          \"$ref\": \"#/components/schemas/RpcLightClientExecutionProofResponse\""]
12417    #[doc = "        }"]
12418    #[doc = "      }"]
12419    #[doc = "    },"]
12420    #[doc = "    {"]
12421    #[doc = "      \"type\": \"object\","]
12422    #[doc = "      \"required\": ["]
12423    #[doc = "        \"error\""]
12424    #[doc = "      ],"]
12425    #[doc = "      \"properties\": {"]
12426    #[doc = "        \"error\": {"]
12427    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12428    #[doc = "        }"]
12429    #[doc = "      }"]
12430    #[doc = "    }"]
12431    #[doc = "  ],"]
12432    #[doc = "  \"required\": ["]
12433    #[doc = "    \"id\","]
12434    #[doc = "    \"jsonrpc\""]
12435    #[doc = "  ],"]
12436    #[doc = "  \"properties\": {"]
12437    #[doc = "    \"id\": {"]
12438    #[doc = "      \"type\": \"string\""]
12439    #[doc = "    },"]
12440    #[doc = "    \"jsonrpc\": {"]
12441    #[doc = "      \"type\": \"string\""]
12442    #[doc = "    }"]
12443    #[doc = "  }"]
12444    #[doc = "}"]
12445    #[doc = r" ```"]
12446    #[doc = r" </details>"]
12447    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12448    #[serde(untagged)]
12449    pub enum JsonRpcResponseForRpcLightClientExecutionProofResponseAndRpcError {
12450        Variant0 {
12451            id: ::std::string::String,
12452            jsonrpc: ::std::string::String,
12453            result: RpcLightClientExecutionProofResponse,
12454        },
12455        Variant1 {
12456            error: RpcError,
12457            id: ::std::string::String,
12458            jsonrpc: ::std::string::String,
12459        },
12460    }
12461    impl ::std::convert::From<&Self>
12462        for JsonRpcResponseForRpcLightClientExecutionProofResponseAndRpcError
12463    {
12464        fn from(value: &JsonRpcResponseForRpcLightClientExecutionProofResponseAndRpcError) -> Self {
12465            value.clone()
12466        }
12467    }
12468    #[doc = "`JsonRpcResponseForRpcLightClientNextBlockResponseAndRpcError`"]
12469    #[doc = r""]
12470    #[doc = r" <details><summary>JSON schema</summary>"]
12471    #[doc = r""]
12472    #[doc = r" ```json"]
12473    #[doc = "{"]
12474    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcLightClientNextBlockResponse_and_RpcError\","]
12475    #[doc = "  \"type\": \"object\","]
12476    #[doc = "  \"oneOf\": ["]
12477    #[doc = "    {"]
12478    #[doc = "      \"type\": \"object\","]
12479    #[doc = "      \"required\": ["]
12480    #[doc = "        \"result\""]
12481    #[doc = "      ],"]
12482    #[doc = "      \"properties\": {"]
12483    #[doc = "        \"result\": {"]
12484    #[doc = "          \"$ref\": \"#/components/schemas/RpcLightClientNextBlockResponse\""]
12485    #[doc = "        }"]
12486    #[doc = "      }"]
12487    #[doc = "    },"]
12488    #[doc = "    {"]
12489    #[doc = "      \"type\": \"object\","]
12490    #[doc = "      \"required\": ["]
12491    #[doc = "        \"error\""]
12492    #[doc = "      ],"]
12493    #[doc = "      \"properties\": {"]
12494    #[doc = "        \"error\": {"]
12495    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12496    #[doc = "        }"]
12497    #[doc = "      }"]
12498    #[doc = "    }"]
12499    #[doc = "  ],"]
12500    #[doc = "  \"required\": ["]
12501    #[doc = "    \"id\","]
12502    #[doc = "    \"jsonrpc\""]
12503    #[doc = "  ],"]
12504    #[doc = "  \"properties\": {"]
12505    #[doc = "    \"id\": {"]
12506    #[doc = "      \"type\": \"string\""]
12507    #[doc = "    },"]
12508    #[doc = "    \"jsonrpc\": {"]
12509    #[doc = "      \"type\": \"string\""]
12510    #[doc = "    }"]
12511    #[doc = "  }"]
12512    #[doc = "}"]
12513    #[doc = r" ```"]
12514    #[doc = r" </details>"]
12515    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12516    #[serde(untagged)]
12517    pub enum JsonRpcResponseForRpcLightClientNextBlockResponseAndRpcError {
12518        Variant0 {
12519            id: ::std::string::String,
12520            jsonrpc: ::std::string::String,
12521            result: RpcLightClientNextBlockResponse,
12522        },
12523        Variant1 {
12524            error: RpcError,
12525            id: ::std::string::String,
12526            jsonrpc: ::std::string::String,
12527        },
12528    }
12529    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcLightClientNextBlockResponseAndRpcError {
12530        fn from(value: &JsonRpcResponseForRpcLightClientNextBlockResponseAndRpcError) -> Self {
12531            value.clone()
12532        }
12533    }
12534    #[doc = "`JsonRpcResponseForRpcNetworkInfoResponseAndRpcError`"]
12535    #[doc = r""]
12536    #[doc = r" <details><summary>JSON schema</summary>"]
12537    #[doc = r""]
12538    #[doc = r" ```json"]
12539    #[doc = "{"]
12540    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcNetworkInfoResponse_and_RpcError\","]
12541    #[doc = "  \"type\": \"object\","]
12542    #[doc = "  \"oneOf\": ["]
12543    #[doc = "    {"]
12544    #[doc = "      \"type\": \"object\","]
12545    #[doc = "      \"required\": ["]
12546    #[doc = "        \"result\""]
12547    #[doc = "      ],"]
12548    #[doc = "      \"properties\": {"]
12549    #[doc = "        \"result\": {"]
12550    #[doc = "          \"$ref\": \"#/components/schemas/RpcNetworkInfoResponse\""]
12551    #[doc = "        }"]
12552    #[doc = "      }"]
12553    #[doc = "    },"]
12554    #[doc = "    {"]
12555    #[doc = "      \"type\": \"object\","]
12556    #[doc = "      \"required\": ["]
12557    #[doc = "        \"error\""]
12558    #[doc = "      ],"]
12559    #[doc = "      \"properties\": {"]
12560    #[doc = "        \"error\": {"]
12561    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12562    #[doc = "        }"]
12563    #[doc = "      }"]
12564    #[doc = "    }"]
12565    #[doc = "  ],"]
12566    #[doc = "  \"required\": ["]
12567    #[doc = "    \"id\","]
12568    #[doc = "    \"jsonrpc\""]
12569    #[doc = "  ],"]
12570    #[doc = "  \"properties\": {"]
12571    #[doc = "    \"id\": {"]
12572    #[doc = "      \"type\": \"string\""]
12573    #[doc = "    },"]
12574    #[doc = "    \"jsonrpc\": {"]
12575    #[doc = "      \"type\": \"string\""]
12576    #[doc = "    }"]
12577    #[doc = "  }"]
12578    #[doc = "}"]
12579    #[doc = r" ```"]
12580    #[doc = r" </details>"]
12581    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12582    #[serde(untagged)]
12583    pub enum JsonRpcResponseForRpcNetworkInfoResponseAndRpcError {
12584        Variant0 {
12585            id: ::std::string::String,
12586            jsonrpc: ::std::string::String,
12587            result: RpcNetworkInfoResponse,
12588        },
12589        Variant1 {
12590            error: RpcError,
12591            id: ::std::string::String,
12592            jsonrpc: ::std::string::String,
12593        },
12594    }
12595    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcNetworkInfoResponseAndRpcError {
12596        fn from(value: &JsonRpcResponseForRpcNetworkInfoResponseAndRpcError) -> Self {
12597            value.clone()
12598        }
12599    }
12600    #[doc = "`JsonRpcResponseForRpcProtocolConfigResponseAndRpcError`"]
12601    #[doc = r""]
12602    #[doc = r" <details><summary>JSON schema</summary>"]
12603    #[doc = r""]
12604    #[doc = r" ```json"]
12605    #[doc = "{"]
12606    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcProtocolConfigResponse_and_RpcError\","]
12607    #[doc = "  \"type\": \"object\","]
12608    #[doc = "  \"oneOf\": ["]
12609    #[doc = "    {"]
12610    #[doc = "      \"type\": \"object\","]
12611    #[doc = "      \"required\": ["]
12612    #[doc = "        \"result\""]
12613    #[doc = "      ],"]
12614    #[doc = "      \"properties\": {"]
12615    #[doc = "        \"result\": {"]
12616    #[doc = "          \"$ref\": \"#/components/schemas/RpcProtocolConfigResponse\""]
12617    #[doc = "        }"]
12618    #[doc = "      }"]
12619    #[doc = "    },"]
12620    #[doc = "    {"]
12621    #[doc = "      \"type\": \"object\","]
12622    #[doc = "      \"required\": ["]
12623    #[doc = "        \"error\""]
12624    #[doc = "      ],"]
12625    #[doc = "      \"properties\": {"]
12626    #[doc = "        \"error\": {"]
12627    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12628    #[doc = "        }"]
12629    #[doc = "      }"]
12630    #[doc = "    }"]
12631    #[doc = "  ],"]
12632    #[doc = "  \"required\": ["]
12633    #[doc = "    \"id\","]
12634    #[doc = "    \"jsonrpc\""]
12635    #[doc = "  ],"]
12636    #[doc = "  \"properties\": {"]
12637    #[doc = "    \"id\": {"]
12638    #[doc = "      \"type\": \"string\""]
12639    #[doc = "    },"]
12640    #[doc = "    \"jsonrpc\": {"]
12641    #[doc = "      \"type\": \"string\""]
12642    #[doc = "    }"]
12643    #[doc = "  }"]
12644    #[doc = "}"]
12645    #[doc = r" ```"]
12646    #[doc = r" </details>"]
12647    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12648    #[serde(untagged)]
12649    pub enum JsonRpcResponseForRpcProtocolConfigResponseAndRpcError {
12650        Variant0 {
12651            id: ::std::string::String,
12652            jsonrpc: ::std::string::String,
12653            result: RpcProtocolConfigResponse,
12654        },
12655        Variant1 {
12656            error: RpcError,
12657            id: ::std::string::String,
12658            jsonrpc: ::std::string::String,
12659        },
12660    }
12661    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcProtocolConfigResponseAndRpcError {
12662        fn from(value: &JsonRpcResponseForRpcProtocolConfigResponseAndRpcError) -> Self {
12663            value.clone()
12664        }
12665    }
12666    #[doc = "`JsonRpcResponseForRpcQueryResponseAndRpcError`"]
12667    #[doc = r""]
12668    #[doc = r" <details><summary>JSON schema</summary>"]
12669    #[doc = r""]
12670    #[doc = r" ```json"]
12671    #[doc = "{"]
12672    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcQueryResponse_and_RpcError\","]
12673    #[doc = "  \"type\": \"object\","]
12674    #[doc = "  \"oneOf\": ["]
12675    #[doc = "    {"]
12676    #[doc = "      \"type\": \"object\","]
12677    #[doc = "      \"required\": ["]
12678    #[doc = "        \"result\""]
12679    #[doc = "      ],"]
12680    #[doc = "      \"properties\": {"]
12681    #[doc = "        \"result\": {"]
12682    #[doc = "          \"$ref\": \"#/components/schemas/RpcQueryResponse\""]
12683    #[doc = "        }"]
12684    #[doc = "      }"]
12685    #[doc = "    },"]
12686    #[doc = "    {"]
12687    #[doc = "      \"type\": \"object\","]
12688    #[doc = "      \"required\": ["]
12689    #[doc = "        \"error\""]
12690    #[doc = "      ],"]
12691    #[doc = "      \"properties\": {"]
12692    #[doc = "        \"error\": {"]
12693    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12694    #[doc = "        }"]
12695    #[doc = "      }"]
12696    #[doc = "    }"]
12697    #[doc = "  ],"]
12698    #[doc = "  \"required\": ["]
12699    #[doc = "    \"id\","]
12700    #[doc = "    \"jsonrpc\""]
12701    #[doc = "  ],"]
12702    #[doc = "  \"properties\": {"]
12703    #[doc = "    \"id\": {"]
12704    #[doc = "      \"type\": \"string\""]
12705    #[doc = "    },"]
12706    #[doc = "    \"jsonrpc\": {"]
12707    #[doc = "      \"type\": \"string\""]
12708    #[doc = "    }"]
12709    #[doc = "  }"]
12710    #[doc = "}"]
12711    #[doc = r" ```"]
12712    #[doc = r" </details>"]
12713    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12714    #[serde(untagged)]
12715    pub enum JsonRpcResponseForRpcQueryResponseAndRpcError {
12716        Variant0 {
12717            id: ::std::string::String,
12718            jsonrpc: ::std::string::String,
12719            result: RpcQueryResponse,
12720        },
12721        Variant1 {
12722            error: RpcError,
12723            id: ::std::string::String,
12724            jsonrpc: ::std::string::String,
12725        },
12726    }
12727    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcQueryResponseAndRpcError {
12728        fn from(value: &JsonRpcResponseForRpcQueryResponseAndRpcError) -> Self {
12729            value.clone()
12730        }
12731    }
12732    #[doc = "`JsonRpcResponseForRpcReceiptResponseAndRpcError`"]
12733    #[doc = r""]
12734    #[doc = r" <details><summary>JSON schema</summary>"]
12735    #[doc = r""]
12736    #[doc = r" ```json"]
12737    #[doc = "{"]
12738    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcReceiptResponse_and_RpcError\","]
12739    #[doc = "  \"type\": \"object\","]
12740    #[doc = "  \"oneOf\": ["]
12741    #[doc = "    {"]
12742    #[doc = "      \"type\": \"object\","]
12743    #[doc = "      \"required\": ["]
12744    #[doc = "        \"result\""]
12745    #[doc = "      ],"]
12746    #[doc = "      \"properties\": {"]
12747    #[doc = "        \"result\": {"]
12748    #[doc = "          \"$ref\": \"#/components/schemas/RpcReceiptResponse\""]
12749    #[doc = "        }"]
12750    #[doc = "      }"]
12751    #[doc = "    },"]
12752    #[doc = "    {"]
12753    #[doc = "      \"type\": \"object\","]
12754    #[doc = "      \"required\": ["]
12755    #[doc = "        \"error\""]
12756    #[doc = "      ],"]
12757    #[doc = "      \"properties\": {"]
12758    #[doc = "        \"error\": {"]
12759    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12760    #[doc = "        }"]
12761    #[doc = "      }"]
12762    #[doc = "    }"]
12763    #[doc = "  ],"]
12764    #[doc = "  \"required\": ["]
12765    #[doc = "    \"id\","]
12766    #[doc = "    \"jsonrpc\""]
12767    #[doc = "  ],"]
12768    #[doc = "  \"properties\": {"]
12769    #[doc = "    \"id\": {"]
12770    #[doc = "      \"type\": \"string\""]
12771    #[doc = "    },"]
12772    #[doc = "    \"jsonrpc\": {"]
12773    #[doc = "      \"type\": \"string\""]
12774    #[doc = "    }"]
12775    #[doc = "  }"]
12776    #[doc = "}"]
12777    #[doc = r" ```"]
12778    #[doc = r" </details>"]
12779    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12780    #[serde(untagged)]
12781    pub enum JsonRpcResponseForRpcReceiptResponseAndRpcError {
12782        Variant0 {
12783            id: ::std::string::String,
12784            jsonrpc: ::std::string::String,
12785            result: RpcReceiptResponse,
12786        },
12787        Variant1 {
12788            error: RpcError,
12789            id: ::std::string::String,
12790            jsonrpc: ::std::string::String,
12791        },
12792    }
12793    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcReceiptResponseAndRpcError {
12794        fn from(value: &JsonRpcResponseForRpcReceiptResponseAndRpcError) -> Self {
12795            value.clone()
12796        }
12797    }
12798    #[doc = "`JsonRpcResponseForRpcSplitStorageInfoResponseAndRpcError`"]
12799    #[doc = r""]
12800    #[doc = r" <details><summary>JSON schema</summary>"]
12801    #[doc = r""]
12802    #[doc = r" ```json"]
12803    #[doc = "{"]
12804    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcSplitStorageInfoResponse_and_RpcError\","]
12805    #[doc = "  \"type\": \"object\","]
12806    #[doc = "  \"oneOf\": ["]
12807    #[doc = "    {"]
12808    #[doc = "      \"type\": \"object\","]
12809    #[doc = "      \"required\": ["]
12810    #[doc = "        \"result\""]
12811    #[doc = "      ],"]
12812    #[doc = "      \"properties\": {"]
12813    #[doc = "        \"result\": {"]
12814    #[doc = "          \"$ref\": \"#/components/schemas/RpcSplitStorageInfoResponse\""]
12815    #[doc = "        }"]
12816    #[doc = "      }"]
12817    #[doc = "    },"]
12818    #[doc = "    {"]
12819    #[doc = "      \"type\": \"object\","]
12820    #[doc = "      \"required\": ["]
12821    #[doc = "        \"error\""]
12822    #[doc = "      ],"]
12823    #[doc = "      \"properties\": {"]
12824    #[doc = "        \"error\": {"]
12825    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12826    #[doc = "        }"]
12827    #[doc = "      }"]
12828    #[doc = "    }"]
12829    #[doc = "  ],"]
12830    #[doc = "  \"required\": ["]
12831    #[doc = "    \"id\","]
12832    #[doc = "    \"jsonrpc\""]
12833    #[doc = "  ],"]
12834    #[doc = "  \"properties\": {"]
12835    #[doc = "    \"id\": {"]
12836    #[doc = "      \"type\": \"string\""]
12837    #[doc = "    },"]
12838    #[doc = "    \"jsonrpc\": {"]
12839    #[doc = "      \"type\": \"string\""]
12840    #[doc = "    }"]
12841    #[doc = "  }"]
12842    #[doc = "}"]
12843    #[doc = r" ```"]
12844    #[doc = r" </details>"]
12845    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12846    #[serde(untagged)]
12847    pub enum JsonRpcResponseForRpcSplitStorageInfoResponseAndRpcError {
12848        Variant0 {
12849            id: ::std::string::String,
12850            jsonrpc: ::std::string::String,
12851            result: RpcSplitStorageInfoResponse,
12852        },
12853        Variant1 {
12854            error: RpcError,
12855            id: ::std::string::String,
12856            jsonrpc: ::std::string::String,
12857        },
12858    }
12859    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcSplitStorageInfoResponseAndRpcError {
12860        fn from(value: &JsonRpcResponseForRpcSplitStorageInfoResponseAndRpcError) -> Self {
12861            value.clone()
12862        }
12863    }
12864    #[doc = "`JsonRpcResponseForRpcStateChangesInBlockByTypeResponseAndRpcError`"]
12865    #[doc = r""]
12866    #[doc = r" <details><summary>JSON schema</summary>"]
12867    #[doc = r""]
12868    #[doc = r" ```json"]
12869    #[doc = "{"]
12870    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcStateChangesInBlockByTypeResponse_and_RpcError\","]
12871    #[doc = "  \"type\": \"object\","]
12872    #[doc = "  \"oneOf\": ["]
12873    #[doc = "    {"]
12874    #[doc = "      \"type\": \"object\","]
12875    #[doc = "      \"required\": ["]
12876    #[doc = "        \"result\""]
12877    #[doc = "      ],"]
12878    #[doc = "      \"properties\": {"]
12879    #[doc = "        \"result\": {"]
12880    #[doc = "          \"$ref\": \"#/components/schemas/RpcStateChangesInBlockByTypeResponse\""]
12881    #[doc = "        }"]
12882    #[doc = "      }"]
12883    #[doc = "    },"]
12884    #[doc = "    {"]
12885    #[doc = "      \"type\": \"object\","]
12886    #[doc = "      \"required\": ["]
12887    #[doc = "        \"error\""]
12888    #[doc = "      ],"]
12889    #[doc = "      \"properties\": {"]
12890    #[doc = "        \"error\": {"]
12891    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12892    #[doc = "        }"]
12893    #[doc = "      }"]
12894    #[doc = "    }"]
12895    #[doc = "  ],"]
12896    #[doc = "  \"required\": ["]
12897    #[doc = "    \"id\","]
12898    #[doc = "    \"jsonrpc\""]
12899    #[doc = "  ],"]
12900    #[doc = "  \"properties\": {"]
12901    #[doc = "    \"id\": {"]
12902    #[doc = "      \"type\": \"string\""]
12903    #[doc = "    },"]
12904    #[doc = "    \"jsonrpc\": {"]
12905    #[doc = "      \"type\": \"string\""]
12906    #[doc = "    }"]
12907    #[doc = "  }"]
12908    #[doc = "}"]
12909    #[doc = r" ```"]
12910    #[doc = r" </details>"]
12911    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12912    #[serde(untagged)]
12913    pub enum JsonRpcResponseForRpcStateChangesInBlockByTypeResponseAndRpcError {
12914        Variant0 {
12915            id: ::std::string::String,
12916            jsonrpc: ::std::string::String,
12917            result: RpcStateChangesInBlockByTypeResponse,
12918        },
12919        Variant1 {
12920            error: RpcError,
12921            id: ::std::string::String,
12922            jsonrpc: ::std::string::String,
12923        },
12924    }
12925    impl ::std::convert::From<&Self>
12926        for JsonRpcResponseForRpcStateChangesInBlockByTypeResponseAndRpcError
12927    {
12928        fn from(value: &JsonRpcResponseForRpcStateChangesInBlockByTypeResponseAndRpcError) -> Self {
12929            value.clone()
12930        }
12931    }
12932    #[doc = "`JsonRpcResponseForRpcStateChangesInBlockResponseAndRpcError`"]
12933    #[doc = r""]
12934    #[doc = r" <details><summary>JSON schema</summary>"]
12935    #[doc = r""]
12936    #[doc = r" ```json"]
12937    #[doc = "{"]
12938    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcStateChangesInBlockResponse_and_RpcError\","]
12939    #[doc = "  \"type\": \"object\","]
12940    #[doc = "  \"oneOf\": ["]
12941    #[doc = "    {"]
12942    #[doc = "      \"type\": \"object\","]
12943    #[doc = "      \"required\": ["]
12944    #[doc = "        \"result\""]
12945    #[doc = "      ],"]
12946    #[doc = "      \"properties\": {"]
12947    #[doc = "        \"result\": {"]
12948    #[doc = "          \"$ref\": \"#/components/schemas/RpcStateChangesInBlockResponse\""]
12949    #[doc = "        }"]
12950    #[doc = "      }"]
12951    #[doc = "    },"]
12952    #[doc = "    {"]
12953    #[doc = "      \"type\": \"object\","]
12954    #[doc = "      \"required\": ["]
12955    #[doc = "        \"error\""]
12956    #[doc = "      ],"]
12957    #[doc = "      \"properties\": {"]
12958    #[doc = "        \"error\": {"]
12959    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
12960    #[doc = "        }"]
12961    #[doc = "      }"]
12962    #[doc = "    }"]
12963    #[doc = "  ],"]
12964    #[doc = "  \"required\": ["]
12965    #[doc = "    \"id\","]
12966    #[doc = "    \"jsonrpc\""]
12967    #[doc = "  ],"]
12968    #[doc = "  \"properties\": {"]
12969    #[doc = "    \"id\": {"]
12970    #[doc = "      \"type\": \"string\""]
12971    #[doc = "    },"]
12972    #[doc = "    \"jsonrpc\": {"]
12973    #[doc = "      \"type\": \"string\""]
12974    #[doc = "    }"]
12975    #[doc = "  }"]
12976    #[doc = "}"]
12977    #[doc = r" ```"]
12978    #[doc = r" </details>"]
12979    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
12980    #[serde(untagged)]
12981    pub enum JsonRpcResponseForRpcStateChangesInBlockResponseAndRpcError {
12982        Variant0 {
12983            id: ::std::string::String,
12984            jsonrpc: ::std::string::String,
12985            result: RpcStateChangesInBlockResponse,
12986        },
12987        Variant1 {
12988            error: RpcError,
12989            id: ::std::string::String,
12990            jsonrpc: ::std::string::String,
12991        },
12992    }
12993    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcStateChangesInBlockResponseAndRpcError {
12994        fn from(value: &JsonRpcResponseForRpcStateChangesInBlockResponseAndRpcError) -> Self {
12995            value.clone()
12996        }
12997    }
12998    #[doc = "`JsonRpcResponseForRpcStatusResponseAndRpcError`"]
12999    #[doc = r""]
13000    #[doc = r" <details><summary>JSON schema</summary>"]
13001    #[doc = r""]
13002    #[doc = r" ```json"]
13003    #[doc = "{"]
13004    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcStatusResponse_and_RpcError\","]
13005    #[doc = "  \"type\": \"object\","]
13006    #[doc = "  \"oneOf\": ["]
13007    #[doc = "    {"]
13008    #[doc = "      \"type\": \"object\","]
13009    #[doc = "      \"required\": ["]
13010    #[doc = "        \"result\""]
13011    #[doc = "      ],"]
13012    #[doc = "      \"properties\": {"]
13013    #[doc = "        \"result\": {"]
13014    #[doc = "          \"$ref\": \"#/components/schemas/RpcStatusResponse\""]
13015    #[doc = "        }"]
13016    #[doc = "      }"]
13017    #[doc = "    },"]
13018    #[doc = "    {"]
13019    #[doc = "      \"type\": \"object\","]
13020    #[doc = "      \"required\": ["]
13021    #[doc = "        \"error\""]
13022    #[doc = "      ],"]
13023    #[doc = "      \"properties\": {"]
13024    #[doc = "        \"error\": {"]
13025    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
13026    #[doc = "        }"]
13027    #[doc = "      }"]
13028    #[doc = "    }"]
13029    #[doc = "  ],"]
13030    #[doc = "  \"required\": ["]
13031    #[doc = "    \"id\","]
13032    #[doc = "    \"jsonrpc\""]
13033    #[doc = "  ],"]
13034    #[doc = "  \"properties\": {"]
13035    #[doc = "    \"id\": {"]
13036    #[doc = "      \"type\": \"string\""]
13037    #[doc = "    },"]
13038    #[doc = "    \"jsonrpc\": {"]
13039    #[doc = "      \"type\": \"string\""]
13040    #[doc = "    }"]
13041    #[doc = "  }"]
13042    #[doc = "}"]
13043    #[doc = r" ```"]
13044    #[doc = r" </details>"]
13045    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
13046    #[serde(untagged)]
13047    pub enum JsonRpcResponseForRpcStatusResponseAndRpcError {
13048        Variant0 {
13049            id: ::std::string::String,
13050            jsonrpc: ::std::string::String,
13051            result: RpcStatusResponse,
13052        },
13053        Variant1 {
13054            error: RpcError,
13055            id: ::std::string::String,
13056            jsonrpc: ::std::string::String,
13057        },
13058    }
13059    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcStatusResponseAndRpcError {
13060        fn from(value: &JsonRpcResponseForRpcStatusResponseAndRpcError) -> Self {
13061            value.clone()
13062        }
13063    }
13064    #[doc = "`JsonRpcResponseForRpcTransactionResponseAndRpcError`"]
13065    #[doc = r""]
13066    #[doc = r" <details><summary>JSON schema</summary>"]
13067    #[doc = r""]
13068    #[doc = r" ```json"]
13069    #[doc = "{"]
13070    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcTransactionResponse_and_RpcError\","]
13071    #[doc = "  \"type\": \"object\","]
13072    #[doc = "  \"oneOf\": ["]
13073    #[doc = "    {"]
13074    #[doc = "      \"type\": \"object\","]
13075    #[doc = "      \"required\": ["]
13076    #[doc = "        \"result\""]
13077    #[doc = "      ],"]
13078    #[doc = "      \"properties\": {"]
13079    #[doc = "        \"result\": {"]
13080    #[doc = "          \"$ref\": \"#/components/schemas/RpcTransactionResponse\""]
13081    #[doc = "        }"]
13082    #[doc = "      }"]
13083    #[doc = "    },"]
13084    #[doc = "    {"]
13085    #[doc = "      \"type\": \"object\","]
13086    #[doc = "      \"required\": ["]
13087    #[doc = "        \"error\""]
13088    #[doc = "      ],"]
13089    #[doc = "      \"properties\": {"]
13090    #[doc = "        \"error\": {"]
13091    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
13092    #[doc = "        }"]
13093    #[doc = "      }"]
13094    #[doc = "    }"]
13095    #[doc = "  ],"]
13096    #[doc = "  \"required\": ["]
13097    #[doc = "    \"id\","]
13098    #[doc = "    \"jsonrpc\""]
13099    #[doc = "  ],"]
13100    #[doc = "  \"properties\": {"]
13101    #[doc = "    \"id\": {"]
13102    #[doc = "      \"type\": \"string\""]
13103    #[doc = "    },"]
13104    #[doc = "    \"jsonrpc\": {"]
13105    #[doc = "      \"type\": \"string\""]
13106    #[doc = "    }"]
13107    #[doc = "  }"]
13108    #[doc = "}"]
13109    #[doc = r" ```"]
13110    #[doc = r" </details>"]
13111    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
13112    #[serde(untagged)]
13113    pub enum JsonRpcResponseForRpcTransactionResponseAndRpcError {
13114        Variant0 {
13115            id: ::std::string::String,
13116            jsonrpc: ::std::string::String,
13117            result: RpcTransactionResponse,
13118        },
13119        Variant1 {
13120            error: RpcError,
13121            id: ::std::string::String,
13122            jsonrpc: ::std::string::String,
13123        },
13124    }
13125    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcTransactionResponseAndRpcError {
13126        fn from(value: &JsonRpcResponseForRpcTransactionResponseAndRpcError) -> Self {
13127            value.clone()
13128        }
13129    }
13130    #[doc = "`JsonRpcResponseForRpcValidatorResponseAndRpcError`"]
13131    #[doc = r""]
13132    #[doc = r" <details><summary>JSON schema</summary>"]
13133    #[doc = r""]
13134    #[doc = r" ```json"]
13135    #[doc = "{"]
13136    #[doc = "  \"title\": \"JsonRpcResponse_for_RpcValidatorResponse_and_RpcError\","]
13137    #[doc = "  \"type\": \"object\","]
13138    #[doc = "  \"oneOf\": ["]
13139    #[doc = "    {"]
13140    #[doc = "      \"type\": \"object\","]
13141    #[doc = "      \"required\": ["]
13142    #[doc = "        \"result\""]
13143    #[doc = "      ],"]
13144    #[doc = "      \"properties\": {"]
13145    #[doc = "        \"result\": {"]
13146    #[doc = "          \"$ref\": \"#/components/schemas/RpcValidatorResponse\""]
13147    #[doc = "        }"]
13148    #[doc = "      }"]
13149    #[doc = "    },"]
13150    #[doc = "    {"]
13151    #[doc = "      \"type\": \"object\","]
13152    #[doc = "      \"required\": ["]
13153    #[doc = "        \"error\""]
13154    #[doc = "      ],"]
13155    #[doc = "      \"properties\": {"]
13156    #[doc = "        \"error\": {"]
13157    #[doc = "          \"$ref\": \"#/components/schemas/RpcError\""]
13158    #[doc = "        }"]
13159    #[doc = "      }"]
13160    #[doc = "    }"]
13161    #[doc = "  ],"]
13162    #[doc = "  \"required\": ["]
13163    #[doc = "    \"id\","]
13164    #[doc = "    \"jsonrpc\""]
13165    #[doc = "  ],"]
13166    #[doc = "  \"properties\": {"]
13167    #[doc = "    \"id\": {"]
13168    #[doc = "      \"type\": \"string\""]
13169    #[doc = "    },"]
13170    #[doc = "    \"jsonrpc\": {"]
13171    #[doc = "      \"type\": \"string\""]
13172    #[doc = "    }"]
13173    #[doc = "  }"]
13174    #[doc = "}"]
13175    #[doc = r" ```"]
13176    #[doc = r" </details>"]
13177    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
13178    #[serde(untagged)]
13179    pub enum JsonRpcResponseForRpcValidatorResponseAndRpcError {
13180        Variant0 {
13181            id: ::std::string::String,
13182            jsonrpc: ::std::string::String,
13183            result: RpcValidatorResponse,
13184        },
13185        Variant1 {
13186            error: RpcError,
13187            id: ::std::string::String,
13188            jsonrpc: ::std::string::String,
13189        },
13190    }
13191    impl ::std::convert::From<&Self> for JsonRpcResponseForRpcValidatorResponseAndRpcError {
13192        fn from(value: &JsonRpcResponseForRpcValidatorResponseAndRpcError) -> Self {
13193            value.clone()
13194        }
13195    }
13196    #[doc = "Information about a Producer: its account name, peer_id and a list of connected peers that\n the node can use to send message for this producer."]
13197    #[doc = r""]
13198    #[doc = r" <details><summary>JSON schema</summary>"]
13199    #[doc = r""]
13200    #[doc = r" ```json"]
13201    #[doc = "{"]
13202    #[doc = "  \"description\": \"Information about a Producer: its account name, peer_id and a list of connected peers that\\n the node can use to send message for this producer.\","]
13203    #[doc = "  \"type\": \"object\","]
13204    #[doc = "  \"required\": ["]
13205    #[doc = "    \"account_id\","]
13206    #[doc = "    \"peer_id\""]
13207    #[doc = "  ],"]
13208    #[doc = "  \"properties\": {"]
13209    #[doc = "    \"account_id\": {"]
13210    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
13211    #[doc = "    },"]
13212    #[doc = "    \"next_hops\": {"]
13213    #[doc = "      \"type\": ["]
13214    #[doc = "        \"array\","]
13215    #[doc = "        \"null\""]
13216    #[doc = "      ],"]
13217    #[doc = "      \"items\": {"]
13218    #[doc = "        \"$ref\": \"#/components/schemas/PublicKey\""]
13219    #[doc = "      }"]
13220    #[doc = "    },"]
13221    #[doc = "    \"peer_id\": {"]
13222    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
13223    #[doc = "    }"]
13224    #[doc = "  }"]
13225    #[doc = "}"]
13226    #[doc = r" ```"]
13227    #[doc = r" </details>"]
13228    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
13229    pub struct KnownProducerView {
13230        pub account_id: AccountId,
13231        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
13232        pub next_hops: ::std::option::Option<::std::vec::Vec<PublicKey>>,
13233        pub peer_id: PublicKey,
13234    }
13235    impl ::std::convert::From<&KnownProducerView> for KnownProducerView {
13236        fn from(value: &KnownProducerView) -> Self {
13237            value.clone()
13238        }
13239    }
13240    #[doc = "`LightClientBlockLiteView`"]
13241    #[doc = r""]
13242    #[doc = r" <details><summary>JSON schema</summary>"]
13243    #[doc = r""]
13244    #[doc = r" ```json"]
13245    #[doc = "{"]
13246    #[doc = "  \"type\": \"object\","]
13247    #[doc = "  \"required\": ["]
13248    #[doc = "    \"inner_lite\","]
13249    #[doc = "    \"inner_rest_hash\","]
13250    #[doc = "    \"prev_block_hash\""]
13251    #[doc = "  ],"]
13252    #[doc = "  \"properties\": {"]
13253    #[doc = "    \"inner_lite\": {"]
13254    #[doc = "      \"$ref\": \"#/components/schemas/BlockHeaderInnerLiteView\""]
13255    #[doc = "    },"]
13256    #[doc = "    \"inner_rest_hash\": {"]
13257    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
13258    #[doc = "    },"]
13259    #[doc = "    \"prev_block_hash\": {"]
13260    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
13261    #[doc = "    }"]
13262    #[doc = "  }"]
13263    #[doc = "}"]
13264    #[doc = r" ```"]
13265    #[doc = r" </details>"]
13266    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
13267    pub struct LightClientBlockLiteView {
13268        pub inner_lite: BlockHeaderInnerLiteView,
13269        pub inner_rest_hash: CryptoHash,
13270        pub prev_block_hash: CryptoHash,
13271    }
13272    impl ::std::convert::From<&LightClientBlockLiteView> for LightClientBlockLiteView {
13273        fn from(value: &LightClientBlockLiteView) -> Self {
13274            value.clone()
13275        }
13276    }
13277    #[doc = "Describes limits for VM and Runtime.\n TODO #4139: consider switching to strongly-typed wrappers instead of raw quantities"]
13278    #[doc = r""]
13279    #[doc = r" <details><summary>JSON schema</summary>"]
13280    #[doc = r""]
13281    #[doc = r" ```json"]
13282    #[doc = "{"]
13283    #[doc = "  \"description\": \"Describes limits for VM and Runtime.\\n TODO #4139: consider switching to strongly-typed wrappers instead of raw quantities\","]
13284    #[doc = "  \"type\": \"object\","]
13285    #[doc = "  \"required\": ["]
13286    #[doc = "    \"initial_memory_pages\","]
13287    #[doc = "    \"max_actions_per_receipt\","]
13288    #[doc = "    \"max_arguments_length\","]
13289    #[doc = "    \"max_contract_size\","]
13290    #[doc = "    \"max_gas_burnt\","]
13291    #[doc = "    \"max_length_method_name\","]
13292    #[doc = "    \"max_length_returned_data\","]
13293    #[doc = "    \"max_length_storage_key\","]
13294    #[doc = "    \"max_length_storage_value\","]
13295    #[doc = "    \"max_memory_pages\","]
13296    #[doc = "    \"max_number_bytes_method_names\","]
13297    #[doc = "    \"max_number_input_data_dependencies\","]
13298    #[doc = "    \"max_number_logs\","]
13299    #[doc = "    \"max_number_registers\","]
13300    #[doc = "    \"max_promises_per_function_call_action\","]
13301    #[doc = "    \"max_receipt_size\","]
13302    #[doc = "    \"max_register_size\","]
13303    #[doc = "    \"max_stack_height\","]
13304    #[doc = "    \"max_total_log_length\","]
13305    #[doc = "    \"max_total_prepaid_gas\","]
13306    #[doc = "    \"max_transaction_size\","]
13307    #[doc = "    \"max_yield_payload_size\","]
13308    #[doc = "    \"per_receipt_storage_proof_size_limit\","]
13309    #[doc = "    \"registers_memory_limit\","]
13310    #[doc = "    \"yield_timeout_length_in_blocks\""]
13311    #[doc = "  ],"]
13312    #[doc = "  \"properties\": {"]
13313    #[doc = "    \"account_id_validity_rules_version\": {"]
13314    #[doc = "      \"description\": \"Whether to enforce account_id well-formed-ness where it wasn't enforced\\n historically.\","]
13315    #[doc = "      \"default\": 0,"]
13316    #[doc = "      \"allOf\": ["]
13317    #[doc = "        {"]
13318    #[doc = "          \"$ref\": \"#/components/schemas/AccountIdValidityRulesVersion\""]
13319    #[doc = "        }"]
13320    #[doc = "      ]"]
13321    #[doc = "    },"]
13322    #[doc = "    \"initial_memory_pages\": {"]
13323    #[doc = "      \"description\": \"The initial number of memory pages.\\n NOTE: It's not a limiter itself, but it's a value we use for initial_memory_pages.\","]
13324    #[doc = "      \"type\": \"integer\","]
13325    #[doc = "      \"format\": \"uint32\","]
13326    #[doc = "      \"minimum\": 0.0"]
13327    #[doc = "    },"]
13328    #[doc = "    \"max_actions_per_receipt\": {"]
13329    #[doc = "      \"description\": \"Max number of actions per receipt.\","]
13330    #[doc = "      \"type\": \"integer\","]
13331    #[doc = "      \"format\": \"uint64\","]
13332    #[doc = "      \"minimum\": 0.0"]
13333    #[doc = "    },"]
13334    #[doc = "    \"max_arguments_length\": {"]
13335    #[doc = "      \"description\": \"Max length of arguments in a function call action.\","]
13336    #[doc = "      \"type\": \"integer\","]
13337    #[doc = "      \"format\": \"uint64\","]
13338    #[doc = "      \"minimum\": 0.0"]
13339    #[doc = "    },"]
13340    #[doc = "    \"max_contract_size\": {"]
13341    #[doc = "      \"description\": \"Max contract size\","]
13342    #[doc = "      \"type\": \"integer\","]
13343    #[doc = "      \"format\": \"uint64\","]
13344    #[doc = "      \"minimum\": 0.0"]
13345    #[doc = "    },"]
13346    #[doc = "    \"max_functions_number_per_contract\": {"]
13347    #[doc = "      \"description\": \"If present, stores max number of functions in one contract\","]
13348    #[doc = "      \"type\": ["]
13349    #[doc = "        \"integer\","]
13350    #[doc = "        \"null\""]
13351    #[doc = "      ],"]
13352    #[doc = "      \"format\": \"uint64\","]
13353    #[doc = "      \"minimum\": 0.0"]
13354    #[doc = "    },"]
13355    #[doc = "    \"max_gas_burnt\": {"]
13356    #[doc = "      \"description\": \"Max amount of gas that can be used, excluding gas attached to promises.\","]
13357    #[doc = "      \"type\": \"integer\","]
13358    #[doc = "      \"format\": \"uint64\","]
13359    #[doc = "      \"minimum\": 0.0"]
13360    #[doc = "    },"]
13361    #[doc = "    \"max_length_method_name\": {"]
13362    #[doc = "      \"description\": \"Max length of any method name (without terminating character).\","]
13363    #[doc = "      \"type\": \"integer\","]
13364    #[doc = "      \"format\": \"uint64\","]
13365    #[doc = "      \"minimum\": 0.0"]
13366    #[doc = "    },"]
13367    #[doc = "    \"max_length_returned_data\": {"]
13368    #[doc = "      \"description\": \"Max length of returned data\","]
13369    #[doc = "      \"type\": \"integer\","]
13370    #[doc = "      \"format\": \"uint64\","]
13371    #[doc = "      \"minimum\": 0.0"]
13372    #[doc = "    },"]
13373    #[doc = "    \"max_length_storage_key\": {"]
13374    #[doc = "      \"description\": \"Max storage key size\","]
13375    #[doc = "      \"type\": \"integer\","]
13376    #[doc = "      \"format\": \"uint64\","]
13377    #[doc = "      \"minimum\": 0.0"]
13378    #[doc = "    },"]
13379    #[doc = "    \"max_length_storage_value\": {"]
13380    #[doc = "      \"description\": \"Max storage value size\","]
13381    #[doc = "      \"type\": \"integer\","]
13382    #[doc = "      \"format\": \"uint64\","]
13383    #[doc = "      \"minimum\": 0.0"]
13384    #[doc = "    },"]
13385    #[doc = "    \"max_locals_per_contract\": {"]
13386    #[doc = "      \"description\": \"If present, stores max number of locals declared globally in one contract\","]
13387    #[doc = "      \"type\": ["]
13388    #[doc = "        \"integer\","]
13389    #[doc = "        \"null\""]
13390    #[doc = "      ],"]
13391    #[doc = "      \"format\": \"uint64\","]
13392    #[doc = "      \"minimum\": 0.0"]
13393    #[doc = "    },"]
13394    #[doc = "    \"max_memory_pages\": {"]
13395    #[doc = "      \"description\": \"What is the maximal memory pages amount is allowed to have for a contract.\","]
13396    #[doc = "      \"type\": \"integer\","]
13397    #[doc = "      \"format\": \"uint32\","]
13398    #[doc = "      \"minimum\": 0.0"]
13399    #[doc = "    },"]
13400    #[doc = "    \"max_number_bytes_method_names\": {"]
13401    #[doc = "      \"description\": \"Max total length of all method names (including terminating character) for a function call\\n permission access key.\","]
13402    #[doc = "      \"type\": \"integer\","]
13403    #[doc = "      \"format\": \"uint64\","]
13404    #[doc = "      \"minimum\": 0.0"]
13405    #[doc = "    },"]
13406    #[doc = "    \"max_number_input_data_dependencies\": {"]
13407    #[doc = "      \"description\": \"Max number of input data dependencies\","]
13408    #[doc = "      \"type\": \"integer\","]
13409    #[doc = "      \"format\": \"uint64\","]
13410    #[doc = "      \"minimum\": 0.0"]
13411    #[doc = "    },"]
13412    #[doc = "    \"max_number_logs\": {"]
13413    #[doc = "      \"description\": \"Maximum number of log entries.\","]
13414    #[doc = "      \"type\": \"integer\","]
13415    #[doc = "      \"format\": \"uint64\","]
13416    #[doc = "      \"minimum\": 0.0"]
13417    #[doc = "    },"]
13418    #[doc = "    \"max_number_registers\": {"]
13419    #[doc = "      \"description\": \"Maximum number of registers that can be used simultaneously.\\n\\n Note that due to an implementation quirk [read: a bug] in VMLogic, if we\\n have this number of registers, no subsequent writes to the registers\\n will succeed even if they replace an existing register.\","]
13420    #[doc = "      \"type\": \"integer\","]
13421    #[doc = "      \"format\": \"uint64\","]
13422    #[doc = "      \"minimum\": 0.0"]
13423    #[doc = "    },"]
13424    #[doc = "    \"max_promises_per_function_call_action\": {"]
13425    #[doc = "      \"description\": \"Max number of promises that a function call can create\","]
13426    #[doc = "      \"type\": \"integer\","]
13427    #[doc = "      \"format\": \"uint64\","]
13428    #[doc = "      \"minimum\": 0.0"]
13429    #[doc = "    },"]
13430    #[doc = "    \"max_receipt_size\": {"]
13431    #[doc = "      \"description\": \"Max receipt size\","]
13432    #[doc = "      \"type\": \"integer\","]
13433    #[doc = "      \"format\": \"uint64\","]
13434    #[doc = "      \"minimum\": 0.0"]
13435    #[doc = "    },"]
13436    #[doc = "    \"max_register_size\": {"]
13437    #[doc = "      \"description\": \"Maximum number of bytes that can be stored in a single register.\","]
13438    #[doc = "      \"type\": \"integer\","]
13439    #[doc = "      \"format\": \"uint64\","]
13440    #[doc = "      \"minimum\": 0.0"]
13441    #[doc = "    },"]
13442    #[doc = "    \"max_stack_height\": {"]
13443    #[doc = "      \"description\": \"How tall the stack is allowed to grow?\\n\\n See <https://wiki.parity.io/WebAssembly-StackHeight> to find out how the stack frame cost\\n is calculated.\","]
13444    #[doc = "      \"type\": \"integer\","]
13445    #[doc = "      \"format\": \"uint32\","]
13446    #[doc = "      \"minimum\": 0.0"]
13447    #[doc = "    },"]
13448    #[doc = "    \"max_total_log_length\": {"]
13449    #[doc = "      \"description\": \"Maximum total length in bytes of all log messages.\","]
13450    #[doc = "      \"type\": \"integer\","]
13451    #[doc = "      \"format\": \"uint64\","]
13452    #[doc = "      \"minimum\": 0.0"]
13453    #[doc = "    },"]
13454    #[doc = "    \"max_total_prepaid_gas\": {"]
13455    #[doc = "      \"description\": \"Max total prepaid gas for all function call actions per receipt.\","]
13456    #[doc = "      \"type\": \"integer\","]
13457    #[doc = "      \"format\": \"uint64\","]
13458    #[doc = "      \"minimum\": 0.0"]
13459    #[doc = "    },"]
13460    #[doc = "    \"max_transaction_size\": {"]
13461    #[doc = "      \"description\": \"Max transaction size\","]
13462    #[doc = "      \"type\": \"integer\","]
13463    #[doc = "      \"format\": \"uint64\","]
13464    #[doc = "      \"minimum\": 0.0"]
13465    #[doc = "    },"]
13466    #[doc = "    \"max_yield_payload_size\": {"]
13467    #[doc = "      \"description\": \"Maximum number of bytes for payload passed over a yield resume.\","]
13468    #[doc = "      \"type\": \"integer\","]
13469    #[doc = "      \"format\": \"uint64\","]
13470    #[doc = "      \"minimum\": 0.0"]
13471    #[doc = "    },"]
13472    #[doc = "    \"per_receipt_storage_proof_size_limit\": {"]
13473    #[doc = "      \"description\": \"Hard limit on the size of storage proof generated while executing a single receipt.\","]
13474    #[doc = "      \"type\": \"integer\","]
13475    #[doc = "      \"format\": \"uint\","]
13476    #[doc = "      \"minimum\": 0.0"]
13477    #[doc = "    },"]
13478    #[doc = "    \"registers_memory_limit\": {"]
13479    #[doc = "      \"description\": \"Limit of memory used by registers.\","]
13480    #[doc = "      \"type\": \"integer\","]
13481    #[doc = "      \"format\": \"uint64\","]
13482    #[doc = "      \"minimum\": 0.0"]
13483    #[doc = "    },"]
13484    #[doc = "    \"yield_timeout_length_in_blocks\": {"]
13485    #[doc = "      \"description\": \"Number of blocks after which a yielded promise times out.\","]
13486    #[doc = "      \"type\": \"integer\","]
13487    #[doc = "      \"format\": \"uint64\","]
13488    #[doc = "      \"minimum\": 0.0"]
13489    #[doc = "    }"]
13490    #[doc = "  }"]
13491    #[doc = "}"]
13492    #[doc = r" ```"]
13493    #[doc = r" </details>"]
13494    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
13495    pub struct LimitConfig {
13496        #[doc = "Whether to enforce account_id well-formed-ness where it wasn't enforced\n historically."]
13497        #[serde(default = "defaults::limit_config_account_id_validity_rules_version")]
13498        pub account_id_validity_rules_version: AccountIdValidityRulesVersion,
13499        #[doc = "The initial number of memory pages.\n NOTE: It's not a limiter itself, but it's a value we use for initial_memory_pages."]
13500        pub initial_memory_pages: u32,
13501        #[doc = "Max number of actions per receipt."]
13502        pub max_actions_per_receipt: u64,
13503        #[doc = "Max length of arguments in a function call action."]
13504        pub max_arguments_length: u64,
13505        #[doc = "Max contract size"]
13506        pub max_contract_size: u64,
13507        #[doc = "If present, stores max number of functions in one contract"]
13508        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
13509        pub max_functions_number_per_contract: ::std::option::Option<u64>,
13510        #[doc = "Max amount of gas that can be used, excluding gas attached to promises."]
13511        pub max_gas_burnt: u64,
13512        #[doc = "Max length of any method name (without terminating character)."]
13513        pub max_length_method_name: u64,
13514        #[doc = "Max length of returned data"]
13515        pub max_length_returned_data: u64,
13516        #[doc = "Max storage key size"]
13517        pub max_length_storage_key: u64,
13518        #[doc = "Max storage value size"]
13519        pub max_length_storage_value: u64,
13520        #[doc = "If present, stores max number of locals declared globally in one contract"]
13521        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
13522        pub max_locals_per_contract: ::std::option::Option<u64>,
13523        #[doc = "What is the maximal memory pages amount is allowed to have for a contract."]
13524        pub max_memory_pages: u32,
13525        #[doc = "Max total length of all method names (including terminating character) for a function call\n permission access key."]
13526        pub max_number_bytes_method_names: u64,
13527        #[doc = "Max number of input data dependencies"]
13528        pub max_number_input_data_dependencies: u64,
13529        #[doc = "Maximum number of log entries."]
13530        pub max_number_logs: u64,
13531        #[doc = "Maximum number of registers that can be used simultaneously.\n\n Note that due to an implementation quirk [read: a bug] in VMLogic, if we\n have this number of registers, no subsequent writes to the registers\n will succeed even if they replace an existing register."]
13532        pub max_number_registers: u64,
13533        #[doc = "Max number of promises that a function call can create"]
13534        pub max_promises_per_function_call_action: u64,
13535        #[doc = "Max receipt size"]
13536        pub max_receipt_size: u64,
13537        #[doc = "Maximum number of bytes that can be stored in a single register."]
13538        pub max_register_size: u64,
13539        #[doc = "How tall the stack is allowed to grow?\n\n See <https://wiki.parity.io/WebAssembly-StackHeight> to find out how the stack frame cost\n is calculated."]
13540        pub max_stack_height: u32,
13541        #[doc = "Maximum total length in bytes of all log messages."]
13542        pub max_total_log_length: u64,
13543        #[doc = "Max total prepaid gas for all function call actions per receipt."]
13544        pub max_total_prepaid_gas: u64,
13545        #[doc = "Max transaction size"]
13546        pub max_transaction_size: u64,
13547        #[doc = "Maximum number of bytes for payload passed over a yield resume."]
13548        pub max_yield_payload_size: u64,
13549        #[doc = "Hard limit on the size of storage proof generated while executing a single receipt."]
13550        pub per_receipt_storage_proof_size_limit: u32,
13551        #[doc = "Limit of memory used by registers."]
13552        pub registers_memory_limit: u64,
13553        #[doc = "Number of blocks after which a yielded promise times out."]
13554        pub yield_timeout_length_in_blocks: u64,
13555    }
13556    impl ::std::convert::From<&LimitConfig> for LimitConfig {
13557        fn from(value: &LimitConfig) -> Self {
13558            value.clone()
13559        }
13560    }
13561    #[doc = "`LogSummaryStyle`"]
13562    #[doc = r""]
13563    #[doc = r" <details><summary>JSON schema</summary>"]
13564    #[doc = r""]
13565    #[doc = r" ```json"]
13566    #[doc = "{"]
13567    #[doc = "  \"type\": \"string\","]
13568    #[doc = "  \"enum\": ["]
13569    #[doc = "    \"plain\","]
13570    #[doc = "    \"colored\""]
13571    #[doc = "  ]"]
13572    #[doc = "}"]
13573    #[doc = r" ```"]
13574    #[doc = r" </details>"]
13575    #[derive(
13576        :: serde :: Deserialize,
13577        :: serde :: Serialize,
13578        Clone,
13579        Copy,
13580        Debug,
13581        Eq,
13582        Hash,
13583        Ord,
13584        PartialEq,
13585        PartialOrd,
13586    )]
13587    pub enum LogSummaryStyle {
13588        #[serde(rename = "plain")]
13589        Plain,
13590        #[serde(rename = "colored")]
13591        Colored,
13592    }
13593    impl ::std::convert::From<&Self> for LogSummaryStyle {
13594        fn from(value: &LogSummaryStyle) -> Self {
13595            value.clone()
13596        }
13597    }
13598    impl ::std::fmt::Display for LogSummaryStyle {
13599        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13600            match *self {
13601                Self::Plain => write!(f, "plain"),
13602                Self::Colored => write!(f, "colored"),
13603            }
13604        }
13605    }
13606    impl ::std::str::FromStr for LogSummaryStyle {
13607        type Err = self::error::ConversionError;
13608        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
13609            match value {
13610                "plain" => Ok(Self::Plain),
13611                "colored" => Ok(Self::Colored),
13612                _ => Err("invalid value".into()),
13613            }
13614        }
13615    }
13616    impl ::std::convert::TryFrom<&str> for LogSummaryStyle {
13617        type Error = self::error::ConversionError;
13618        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
13619            value.parse()
13620        }
13621    }
13622    impl ::std::convert::TryFrom<&::std::string::String> for LogSummaryStyle {
13623        type Error = self::error::ConversionError;
13624        fn try_from(
13625            value: &::std::string::String,
13626        ) -> ::std::result::Result<Self, self::error::ConversionError> {
13627            value.parse()
13628        }
13629    }
13630    impl ::std::convert::TryFrom<::std::string::String> for LogSummaryStyle {
13631        type Error = self::error::ConversionError;
13632        fn try_from(
13633            value: ::std::string::String,
13634        ) -> ::std::result::Result<Self, self::error::ConversionError> {
13635            value.parse()
13636        }
13637    }
13638    #[doc = "`MerklePathItem`"]
13639    #[doc = r""]
13640    #[doc = r" <details><summary>JSON schema</summary>"]
13641    #[doc = r""]
13642    #[doc = r" ```json"]
13643    #[doc = "{"]
13644    #[doc = "  \"type\": \"object\","]
13645    #[doc = "  \"required\": ["]
13646    #[doc = "    \"direction\","]
13647    #[doc = "    \"hash\""]
13648    #[doc = "  ],"]
13649    #[doc = "  \"properties\": {"]
13650    #[doc = "    \"direction\": {"]
13651    #[doc = "      \"$ref\": \"#/components/schemas/Direction\""]
13652    #[doc = "    },"]
13653    #[doc = "    \"hash\": {"]
13654    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
13655    #[doc = "    }"]
13656    #[doc = "  }"]
13657    #[doc = "}"]
13658    #[doc = r" ```"]
13659    #[doc = r" </details>"]
13660    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
13661    pub struct MerklePathItem {
13662        pub direction: Direction,
13663        pub hash: CryptoHash,
13664    }
13665    impl ::std::convert::From<&MerklePathItem> for MerklePathItem {
13666        fn from(value: &MerklePathItem) -> Self {
13667            value.clone()
13668        }
13669    }
13670    #[doc = "`MethodResolveError`"]
13671    #[doc = r""]
13672    #[doc = r" <details><summary>JSON schema</summary>"]
13673    #[doc = r""]
13674    #[doc = r" ```json"]
13675    #[doc = "{"]
13676    #[doc = "  \"type\": \"string\","]
13677    #[doc = "  \"enum\": ["]
13678    #[doc = "    \"MethodEmptyName\","]
13679    #[doc = "    \"MethodNotFound\","]
13680    #[doc = "    \"MethodInvalidSignature\""]
13681    #[doc = "  ]"]
13682    #[doc = "}"]
13683    #[doc = r" ```"]
13684    #[doc = r" </details>"]
13685    #[derive(
13686        :: serde :: Deserialize,
13687        :: serde :: Serialize,
13688        Clone,
13689        Copy,
13690        Debug,
13691        Eq,
13692        Hash,
13693        Ord,
13694        PartialEq,
13695        PartialOrd,
13696    )]
13697    pub enum MethodResolveError {
13698        MethodEmptyName,
13699        MethodNotFound,
13700        MethodInvalidSignature,
13701    }
13702    impl ::std::convert::From<&Self> for MethodResolveError {
13703        fn from(value: &MethodResolveError) -> Self {
13704            value.clone()
13705        }
13706    }
13707    impl ::std::fmt::Display for MethodResolveError {
13708        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13709            match *self {
13710                Self::MethodEmptyName => write!(f, "MethodEmptyName"),
13711                Self::MethodNotFound => write!(f, "MethodNotFound"),
13712                Self::MethodInvalidSignature => write!(f, "MethodInvalidSignature"),
13713            }
13714        }
13715    }
13716    impl ::std::str::FromStr for MethodResolveError {
13717        type Err = self::error::ConversionError;
13718        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
13719            match value {
13720                "MethodEmptyName" => Ok(Self::MethodEmptyName),
13721                "MethodNotFound" => Ok(Self::MethodNotFound),
13722                "MethodInvalidSignature" => Ok(Self::MethodInvalidSignature),
13723                _ => Err("invalid value".into()),
13724            }
13725        }
13726    }
13727    impl ::std::convert::TryFrom<&str> for MethodResolveError {
13728        type Error = self::error::ConversionError;
13729        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
13730            value.parse()
13731        }
13732    }
13733    impl ::std::convert::TryFrom<&::std::string::String> for MethodResolveError {
13734        type Error = self::error::ConversionError;
13735        fn try_from(
13736            value: &::std::string::String,
13737        ) -> ::std::result::Result<Self, self::error::ConversionError> {
13738            value.parse()
13739        }
13740    }
13741    impl ::std::convert::TryFrom<::std::string::String> for MethodResolveError {
13742        type Error = self::error::ConversionError;
13743        fn try_from(
13744            value: ::std::string::String,
13745        ) -> ::std::result::Result<Self, self::error::ConversionError> {
13746            value.parse()
13747        }
13748    }
13749    #[doc = "`MissingTrieValue`"]
13750    #[doc = r""]
13751    #[doc = r" <details><summary>JSON schema</summary>"]
13752    #[doc = r""]
13753    #[doc = r" ```json"]
13754    #[doc = "{"]
13755    #[doc = "  \"type\": \"object\","]
13756    #[doc = "  \"required\": ["]
13757    #[doc = "    \"context\","]
13758    #[doc = "    \"hash\""]
13759    #[doc = "  ],"]
13760    #[doc = "  \"properties\": {"]
13761    #[doc = "    \"context\": {"]
13762    #[doc = "      \"$ref\": \"#/components/schemas/MissingTrieValueContext\""]
13763    #[doc = "    },"]
13764    #[doc = "    \"hash\": {"]
13765    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
13766    #[doc = "    }"]
13767    #[doc = "  }"]
13768    #[doc = "}"]
13769    #[doc = r" ```"]
13770    #[doc = r" </details>"]
13771    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
13772    pub struct MissingTrieValue {
13773        pub context: MissingTrieValueContext,
13774        pub hash: CryptoHash,
13775    }
13776    impl ::std::convert::From<&MissingTrieValue> for MissingTrieValue {
13777        fn from(value: &MissingTrieValue) -> Self {
13778            value.clone()
13779        }
13780    }
13781    #[doc = "Contexts in which `StorageError::MissingTrieValue` error might occur."]
13782    #[doc = r""]
13783    #[doc = r" <details><summary>JSON schema</summary>"]
13784    #[doc = r""]
13785    #[doc = r" ```json"]
13786    #[doc = "{"]
13787    #[doc = "  \"description\": \"Contexts in which `StorageError::MissingTrieValue` error might occur.\","]
13788    #[doc = "  \"oneOf\": ["]
13789    #[doc = "    {"]
13790    #[doc = "      \"description\": \"Missing trie value when reading from TrieIterator.\","]
13791    #[doc = "      \"type\": \"string\","]
13792    #[doc = "      \"enum\": ["]
13793    #[doc = "        \"TrieIterator\""]
13794    #[doc = "      ]"]
13795    #[doc = "    },"]
13796    #[doc = "    {"]
13797    #[doc = "      \"description\": \"Missing trie value when reading from TriePrefetchingStorage.\","]
13798    #[doc = "      \"type\": \"string\","]
13799    #[doc = "      \"enum\": ["]
13800    #[doc = "        \"TriePrefetchingStorage\""]
13801    #[doc = "      ]"]
13802    #[doc = "    },"]
13803    #[doc = "    {"]
13804    #[doc = "      \"description\": \"Missing trie value when reading from TrieMemoryPartialStorage.\","]
13805    #[doc = "      \"type\": \"string\","]
13806    #[doc = "      \"enum\": ["]
13807    #[doc = "        \"TrieMemoryPartialStorage\""]
13808    #[doc = "      ]"]
13809    #[doc = "    },"]
13810    #[doc = "    {"]
13811    #[doc = "      \"description\": \"Missing trie value when reading from TrieStorage.\","]
13812    #[doc = "      \"type\": \"string\","]
13813    #[doc = "      \"enum\": ["]
13814    #[doc = "        \"TrieStorage\""]
13815    #[doc = "      ]"]
13816    #[doc = "    }"]
13817    #[doc = "  ]"]
13818    #[doc = "}"]
13819    #[doc = r" ```"]
13820    #[doc = r" </details>"]
13821    #[derive(
13822        :: serde :: Deserialize,
13823        :: serde :: Serialize,
13824        Clone,
13825        Copy,
13826        Debug,
13827        Eq,
13828        Hash,
13829        Ord,
13830        PartialEq,
13831        PartialOrd,
13832    )]
13833    pub enum MissingTrieValueContext {
13834        #[doc = "Missing trie value when reading from TrieIterator."]
13835        TrieIterator,
13836        #[doc = "Missing trie value when reading from TriePrefetchingStorage."]
13837        TriePrefetchingStorage,
13838        #[doc = "Missing trie value when reading from TrieMemoryPartialStorage."]
13839        TrieMemoryPartialStorage,
13840        #[doc = "Missing trie value when reading from TrieStorage."]
13841        TrieStorage,
13842    }
13843    impl ::std::convert::From<&Self> for MissingTrieValueContext {
13844        fn from(value: &MissingTrieValueContext) -> Self {
13845            value.clone()
13846        }
13847    }
13848    impl ::std::fmt::Display for MissingTrieValueContext {
13849        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13850            match *self {
13851                Self::TrieIterator => write!(f, "TrieIterator"),
13852                Self::TriePrefetchingStorage => write!(f, "TriePrefetchingStorage"),
13853                Self::TrieMemoryPartialStorage => write!(f, "TrieMemoryPartialStorage"),
13854                Self::TrieStorage => write!(f, "TrieStorage"),
13855            }
13856        }
13857    }
13858    impl ::std::str::FromStr for MissingTrieValueContext {
13859        type Err = self::error::ConversionError;
13860        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
13861            match value {
13862                "TrieIterator" => Ok(Self::TrieIterator),
13863                "TriePrefetchingStorage" => Ok(Self::TriePrefetchingStorage),
13864                "TrieMemoryPartialStorage" => Ok(Self::TrieMemoryPartialStorage),
13865                "TrieStorage" => Ok(Self::TrieStorage),
13866                _ => Err("invalid value".into()),
13867            }
13868        }
13869    }
13870    impl ::std::convert::TryFrom<&str> for MissingTrieValueContext {
13871        type Error = self::error::ConversionError;
13872        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
13873            value.parse()
13874        }
13875    }
13876    impl ::std::convert::TryFrom<&::std::string::String> for MissingTrieValueContext {
13877        type Error = self::error::ConversionError;
13878        fn try_from(
13879            value: &::std::string::String,
13880        ) -> ::std::result::Result<Self, self::error::ConversionError> {
13881            value.parse()
13882        }
13883    }
13884    impl ::std::convert::TryFrom<::std::string::String> for MissingTrieValueContext {
13885        type Error = self::error::ConversionError;
13886        fn try_from(
13887            value: ::std::string::String,
13888        ) -> ::std::result::Result<Self, self::error::ConversionError> {
13889            value.parse()
13890        }
13891    }
13892    #[doc = "`MutableConfigValue`"]
13893    #[doc = r""]
13894    #[doc = r" <details><summary>JSON schema</summary>"]
13895    #[doc = r""]
13896    #[doc = r" ```json"]
13897    #[doc = "{"]
13898    #[doc = "  \"type\": \"string\""]
13899    #[doc = "}"]
13900    #[doc = r" ```"]
13901    #[doc = r" </details>"]
13902    #[derive(
13903        :: serde :: Deserialize,
13904        :: serde :: Serialize,
13905        Clone,
13906        Debug,
13907        Eq,
13908        Hash,
13909        Ord,
13910        PartialEq,
13911        PartialOrd,
13912    )]
13913    #[serde(transparent)]
13914    pub struct MutableConfigValue(pub ::std::string::String);
13915    impl ::std::ops::Deref for MutableConfigValue {
13916        type Target = ::std::string::String;
13917        fn deref(&self) -> &::std::string::String {
13918            &self.0
13919        }
13920    }
13921    impl ::std::convert::From<MutableConfigValue> for ::std::string::String {
13922        fn from(value: MutableConfigValue) -> Self {
13923            value.0
13924        }
13925    }
13926    impl ::std::convert::From<&MutableConfigValue> for MutableConfigValue {
13927        fn from(value: &MutableConfigValue) -> Self {
13928            value.clone()
13929        }
13930    }
13931    impl ::std::convert::From<::std::string::String> for MutableConfigValue {
13932        fn from(value: ::std::string::String) -> Self {
13933            Self(value)
13934        }
13935    }
13936    impl ::std::str::FromStr for MutableConfigValue {
13937        type Err = ::std::convert::Infallible;
13938        fn from_str(value: &str) -> ::std::result::Result<Self, Self::Err> {
13939            Ok(Self(value.to_string()))
13940        }
13941    }
13942    impl ::std::fmt::Display for MutableConfigValue {
13943        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13944            self.0.fmt(f)
13945        }
13946    }
13947    #[doc = "`NameRpcErrorKind`"]
13948    #[doc = r""]
13949    #[doc = r" <details><summary>JSON schema</summary>"]
13950    #[doc = r""]
13951    #[doc = r" ```json"]
13952    #[doc = "{"]
13953    #[doc = "  \"type\": \"string\","]
13954    #[doc = "  \"enum\": ["]
13955    #[doc = "    \"REQUEST_VALIDATION_ERROR\","]
13956    #[doc = "    \"HANDLER_ERROR\","]
13957    #[doc = "    \"INTERNAL_ERROR\""]
13958    #[doc = "  ]"]
13959    #[doc = "}"]
13960    #[doc = r" ```"]
13961    #[doc = r" </details>"]
13962    #[derive(
13963        :: serde :: Deserialize,
13964        :: serde :: Serialize,
13965        Clone,
13966        Copy,
13967        Debug,
13968        Eq,
13969        Hash,
13970        Ord,
13971        PartialEq,
13972        PartialOrd,
13973    )]
13974    pub enum NameRpcErrorKind {
13975        #[serde(rename = "REQUEST_VALIDATION_ERROR")]
13976        RequestValidationError,
13977        #[serde(rename = "HANDLER_ERROR")]
13978        HandlerError,
13979        #[serde(rename = "INTERNAL_ERROR")]
13980        InternalError,
13981    }
13982    impl ::std::convert::From<&Self> for NameRpcErrorKind {
13983        fn from(value: &NameRpcErrorKind) -> Self {
13984            value.clone()
13985        }
13986    }
13987    impl ::std::fmt::Display for NameRpcErrorKind {
13988        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13989            match *self {
13990                Self::RequestValidationError => write!(f, "REQUEST_VALIDATION_ERROR"),
13991                Self::HandlerError => write!(f, "HANDLER_ERROR"),
13992                Self::InternalError => write!(f, "INTERNAL_ERROR"),
13993            }
13994        }
13995    }
13996    impl ::std::str::FromStr for NameRpcErrorKind {
13997        type Err = self::error::ConversionError;
13998        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
13999            match value {
14000                "REQUEST_VALIDATION_ERROR" => Ok(Self::RequestValidationError),
14001                "HANDLER_ERROR" => Ok(Self::HandlerError),
14002                "INTERNAL_ERROR" => Ok(Self::InternalError),
14003                _ => Err("invalid value".into()),
14004            }
14005        }
14006    }
14007    impl ::std::convert::TryFrom<&str> for NameRpcErrorKind {
14008        type Error = self::error::ConversionError;
14009        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
14010            value.parse()
14011        }
14012    }
14013    impl ::std::convert::TryFrom<&::std::string::String> for NameRpcErrorKind {
14014        type Error = self::error::ConversionError;
14015        fn try_from(
14016            value: &::std::string::String,
14017        ) -> ::std::result::Result<Self, self::error::ConversionError> {
14018            value.parse()
14019        }
14020    }
14021    impl ::std::convert::TryFrom<::std::string::String> for NameRpcErrorKind {
14022        type Error = self::error::ConversionError;
14023        fn try_from(
14024            value: ::std::string::String,
14025        ) -> ::std::result::Result<Self, self::error::ConversionError> {
14026            value.parse()
14027        }
14028    }
14029    #[doc = "`NetworkInfoView`"]
14030    #[doc = r""]
14031    #[doc = r" <details><summary>JSON schema</summary>"]
14032    #[doc = r""]
14033    #[doc = r" ```json"]
14034    #[doc = "{"]
14035    #[doc = "  \"type\": \"object\","]
14036    #[doc = "  \"required\": ["]
14037    #[doc = "    \"connected_peers\","]
14038    #[doc = "    \"known_producers\","]
14039    #[doc = "    \"num_connected_peers\","]
14040    #[doc = "    \"peer_max_count\","]
14041    #[doc = "    \"tier1_accounts_data\","]
14042    #[doc = "    \"tier1_accounts_keys\","]
14043    #[doc = "    \"tier1_connections\""]
14044    #[doc = "  ],"]
14045    #[doc = "  \"properties\": {"]
14046    #[doc = "    \"connected_peers\": {"]
14047    #[doc = "      \"type\": \"array\","]
14048    #[doc = "      \"items\": {"]
14049    #[doc = "        \"$ref\": \"#/components/schemas/PeerInfoView\""]
14050    #[doc = "      }"]
14051    #[doc = "    },"]
14052    #[doc = "    \"known_producers\": {"]
14053    #[doc = "      \"type\": \"array\","]
14054    #[doc = "      \"items\": {"]
14055    #[doc = "        \"$ref\": \"#/components/schemas/KnownProducerView\""]
14056    #[doc = "      }"]
14057    #[doc = "    },"]
14058    #[doc = "    \"num_connected_peers\": {"]
14059    #[doc = "      \"type\": \"integer\","]
14060    #[doc = "      \"format\": \"uint\","]
14061    #[doc = "      \"minimum\": 0.0"]
14062    #[doc = "    },"]
14063    #[doc = "    \"peer_max_count\": {"]
14064    #[doc = "      \"type\": \"integer\","]
14065    #[doc = "      \"format\": \"uint32\","]
14066    #[doc = "      \"minimum\": 0.0"]
14067    #[doc = "    },"]
14068    #[doc = "    \"tier1_accounts_data\": {"]
14069    #[doc = "      \"type\": \"array\","]
14070    #[doc = "      \"items\": {"]
14071    #[doc = "        \"$ref\": \"#/components/schemas/AccountDataView\""]
14072    #[doc = "      }"]
14073    #[doc = "    },"]
14074    #[doc = "    \"tier1_accounts_keys\": {"]
14075    #[doc = "      \"type\": \"array\","]
14076    #[doc = "      \"items\": {"]
14077    #[doc = "        \"$ref\": \"#/components/schemas/PublicKey\""]
14078    #[doc = "      }"]
14079    #[doc = "    },"]
14080    #[doc = "    \"tier1_connections\": {"]
14081    #[doc = "      \"type\": \"array\","]
14082    #[doc = "      \"items\": {"]
14083    #[doc = "        \"$ref\": \"#/components/schemas/PeerInfoView\""]
14084    #[doc = "      }"]
14085    #[doc = "    }"]
14086    #[doc = "  }"]
14087    #[doc = "}"]
14088    #[doc = r" ```"]
14089    #[doc = r" </details>"]
14090    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
14091    pub struct NetworkInfoView {
14092        pub connected_peers: ::std::vec::Vec<PeerInfoView>,
14093        pub known_producers: ::std::vec::Vec<KnownProducerView>,
14094        pub num_connected_peers: u32,
14095        pub peer_max_count: u32,
14096        pub tier1_accounts_data: ::std::vec::Vec<AccountDataView>,
14097        pub tier1_accounts_keys: ::std::vec::Vec<PublicKey>,
14098        pub tier1_connections: ::std::vec::Vec<PeerInfoView>,
14099    }
14100    impl ::std::convert::From<&NetworkInfoView> for NetworkInfoView {
14101        fn from(value: &NetworkInfoView) -> Self {
14102            value.clone()
14103        }
14104    }
14105    #[doc = "`NextEpochValidatorInfo`"]
14106    #[doc = r""]
14107    #[doc = r" <details><summary>JSON schema</summary>"]
14108    #[doc = r""]
14109    #[doc = r" ```json"]
14110    #[doc = "{"]
14111    #[doc = "  \"type\": \"object\","]
14112    #[doc = "  \"required\": ["]
14113    #[doc = "    \"account_id\","]
14114    #[doc = "    \"public_key\","]
14115    #[doc = "    \"shards\","]
14116    #[doc = "    \"stake\""]
14117    #[doc = "  ],"]
14118    #[doc = "  \"properties\": {"]
14119    #[doc = "    \"account_id\": {"]
14120    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
14121    #[doc = "    },"]
14122    #[doc = "    \"public_key\": {"]
14123    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
14124    #[doc = "    },"]
14125    #[doc = "    \"shards\": {"]
14126    #[doc = "      \"type\": \"array\","]
14127    #[doc = "      \"items\": {"]
14128    #[doc = "        \"$ref\": \"#/components/schemas/ShardId\""]
14129    #[doc = "      }"]
14130    #[doc = "    },"]
14131    #[doc = "    \"stake\": {"]
14132    #[doc = "      \"type\": \"string\""]
14133    #[doc = "    }"]
14134    #[doc = "  }"]
14135    #[doc = "}"]
14136    #[doc = r" ```"]
14137    #[doc = r" </details>"]
14138    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
14139    pub struct NextEpochValidatorInfo {
14140        pub account_id: AccountId,
14141        pub public_key: PublicKey,
14142        pub shards: ::std::vec::Vec<ShardId>,
14143        pub stake: ::std::string::String,
14144    }
14145    impl ::std::convert::From<&NextEpochValidatorInfo> for NextEpochValidatorInfo {
14146        fn from(value: &NextEpochValidatorInfo) -> Self {
14147            value.clone()
14148        }
14149    }
14150    #[doc = "This is Action which mustn't contain DelegateAction.\n\n This struct is needed to avoid the recursion when Action/DelegateAction is deserialized.\n\n Important: Don't make the inner Action public, this must only be constructed\n through the correct interface that ensures the inner Action is actually not\n a delegate action. That would break an assumption of this type, which we use\n in several places. For example, borsh de-/serialization relies on it. If the\n invariant is broken, we may end up with a `Transaction` or `Receipt` that we\n can serialize but deserializing it back causes a parsing error."]
14151    #[doc = r""]
14152    #[doc = r" <details><summary>JSON schema</summary>"]
14153    #[doc = r""]
14154    #[doc = r" ```json"]
14155    #[doc = "{"]
14156    #[doc = "  \"description\": \"This is Action which mustn't contain DelegateAction.\\n\\n This struct is needed to avoid the recursion when Action/DelegateAction is deserialized.\\n\\n Important: Don't make the inner Action public, this must only be constructed\\n through the correct interface that ensures the inner Action is actually not\\n a delegate action. That would break an assumption of this type, which we use\\n in several places. For example, borsh de-/serialization relies on it. If the\\n invariant is broken, we may end up with a `Transaction` or `Receipt` that we\\n can serialize but deserializing it back causes a parsing error.\","]
14157    #[doc = "  \"allOf\": ["]
14158    #[doc = "    {"]
14159    #[doc = "      \"$ref\": \"#/components/schemas/Action\""]
14160    #[doc = "    }"]
14161    #[doc = "  ]"]
14162    #[doc = "}"]
14163    #[doc = r" ```"]
14164    #[doc = r" </details>"]
14165    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
14166    #[serde(transparent)]
14167    pub struct NonDelegateAction(pub Action);
14168    impl ::std::ops::Deref for NonDelegateAction {
14169        type Target = Action;
14170        fn deref(&self) -> &Action {
14171            &self.0
14172        }
14173    }
14174    impl ::std::convert::From<NonDelegateAction> for Action {
14175        fn from(value: NonDelegateAction) -> Self {
14176            value.0
14177        }
14178    }
14179    impl ::std::convert::From<&NonDelegateAction> for NonDelegateAction {
14180        fn from(value: &NonDelegateAction) -> Self {
14181            value.clone()
14182        }
14183    }
14184    impl ::std::convert::From<Action> for NonDelegateAction {
14185        fn from(value: Action) -> Self {
14186            Self(value)
14187        }
14188    }
14189    #[doc = "Peer id is the public key."]
14190    #[doc = r""]
14191    #[doc = r" <details><summary>JSON schema</summary>"]
14192    #[doc = r""]
14193    #[doc = r" ```json"]
14194    #[doc = "{"]
14195    #[doc = "  \"description\": \"Peer id is the public key.\","]
14196    #[doc = "  \"allOf\": ["]
14197    #[doc = "    {"]
14198    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
14199    #[doc = "    }"]
14200    #[doc = "  ]"]
14201    #[doc = "}"]
14202    #[doc = r" ```"]
14203    #[doc = r" </details>"]
14204    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
14205    #[serde(transparent)]
14206    pub struct PeerId(pub PublicKey);
14207    impl ::std::ops::Deref for PeerId {
14208        type Target = PublicKey;
14209        fn deref(&self) -> &PublicKey {
14210            &self.0
14211        }
14212    }
14213    impl ::std::convert::From<PeerId> for PublicKey {
14214        fn from(value: PeerId) -> Self {
14215            value.0
14216        }
14217    }
14218    impl ::std::convert::From<&PeerId> for PeerId {
14219        fn from(value: &PeerId) -> Self {
14220            value.clone()
14221        }
14222    }
14223    impl ::std::convert::From<PublicKey> for PeerId {
14224        fn from(value: PublicKey) -> Self {
14225            Self(value)
14226        }
14227    }
14228    impl ::std::str::FromStr for PeerId {
14229        type Err = <PublicKey as ::std::str::FromStr>::Err;
14230        fn from_str(value: &str) -> ::std::result::Result<Self, Self::Err> {
14231            Ok(Self(value.parse()?))
14232        }
14233    }
14234    impl ::std::convert::TryFrom<&str> for PeerId {
14235        type Error = <PublicKey as ::std::str::FromStr>::Err;
14236        fn try_from(value: &str) -> ::std::result::Result<Self, Self::Error> {
14237            value.parse()
14238        }
14239    }
14240    impl ::std::convert::TryFrom<&String> for PeerId {
14241        type Error = <PublicKey as ::std::str::FromStr>::Err;
14242        fn try_from(value: &String) -> ::std::result::Result<Self, Self::Error> {
14243            value.parse()
14244        }
14245    }
14246    impl ::std::convert::TryFrom<String> for PeerId {
14247        type Error = <PublicKey as ::std::str::FromStr>::Err;
14248        fn try_from(value: String) -> ::std::result::Result<Self, Self::Error> {
14249            value.parse()
14250        }
14251    }
14252    impl ::std::fmt::Display for PeerId {
14253        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14254            self.0.fmt(f)
14255        }
14256    }
14257    #[doc = "`PeerInfoView`"]
14258    #[doc = r""]
14259    #[doc = r" <details><summary>JSON schema</summary>"]
14260    #[doc = r""]
14261    #[doc = r" ```json"]
14262    #[doc = "{"]
14263    #[doc = "  \"type\": \"object\","]
14264    #[doc = "  \"required\": ["]
14265    #[doc = "    \"addr\","]
14266    #[doc = "    \"archival\","]
14267    #[doc = "    \"connection_established_time_millis\","]
14268    #[doc = "    \"is_highest_block_invalid\","]
14269    #[doc = "    \"is_outbound_peer\","]
14270    #[doc = "    \"last_time_peer_requested_millis\","]
14271    #[doc = "    \"last_time_received_message_millis\","]
14272    #[doc = "    \"nonce\","]
14273    #[doc = "    \"peer_id\","]
14274    #[doc = "    \"received_bytes_per_sec\","]
14275    #[doc = "    \"sent_bytes_per_sec\","]
14276    #[doc = "    \"tracked_shards\""]
14277    #[doc = "  ],"]
14278    #[doc = "  \"properties\": {"]
14279    #[doc = "    \"account_id\": {"]
14280    #[doc = "      \"oneOf\": ["]
14281    #[doc = "        {"]
14282    #[doc = "          \"type\": \"null\""]
14283    #[doc = "        },"]
14284    #[doc = "        {"]
14285    #[doc = "          \"allOf\": ["]
14286    #[doc = "            {"]
14287    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
14288    #[doc = "            }"]
14289    #[doc = "          ]"]
14290    #[doc = "        }"]
14291    #[doc = "      ]"]
14292    #[doc = "    },"]
14293    #[doc = "    \"addr\": {"]
14294    #[doc = "      \"type\": \"string\""]
14295    #[doc = "    },"]
14296    #[doc = "    \"archival\": {"]
14297    #[doc = "      \"type\": \"boolean\""]
14298    #[doc = "    },"]
14299    #[doc = "    \"block_hash\": {"]
14300    #[doc = "      \"oneOf\": ["]
14301    #[doc = "        {"]
14302    #[doc = "          \"type\": \"null\""]
14303    #[doc = "        },"]
14304    #[doc = "        {"]
14305    #[doc = "          \"allOf\": ["]
14306    #[doc = "            {"]
14307    #[doc = "              \"$ref\": \"#/components/schemas/CryptoHash\""]
14308    #[doc = "            }"]
14309    #[doc = "          ]"]
14310    #[doc = "        }"]
14311    #[doc = "      ]"]
14312    #[doc = "    },"]
14313    #[doc = "    \"connection_established_time_millis\": {"]
14314    #[doc = "      \"type\": \"integer\","]
14315    #[doc = "      \"format\": \"uint64\","]
14316    #[doc = "      \"minimum\": 0.0"]
14317    #[doc = "    },"]
14318    #[doc = "    \"height\": {"]
14319    #[doc = "      \"type\": ["]
14320    #[doc = "        \"integer\","]
14321    #[doc = "        \"null\""]
14322    #[doc = "      ],"]
14323    #[doc = "      \"format\": \"uint64\","]
14324    #[doc = "      \"minimum\": 0.0"]
14325    #[doc = "    },"]
14326    #[doc = "    \"is_highest_block_invalid\": {"]
14327    #[doc = "      \"type\": \"boolean\""]
14328    #[doc = "    },"]
14329    #[doc = "    \"is_outbound_peer\": {"]
14330    #[doc = "      \"type\": \"boolean\""]
14331    #[doc = "    },"]
14332    #[doc = "    \"last_time_peer_requested_millis\": {"]
14333    #[doc = "      \"type\": \"integer\","]
14334    #[doc = "      \"format\": \"uint64\","]
14335    #[doc = "      \"minimum\": 0.0"]
14336    #[doc = "    },"]
14337    #[doc = "    \"last_time_received_message_millis\": {"]
14338    #[doc = "      \"type\": \"integer\","]
14339    #[doc = "      \"format\": \"uint64\","]
14340    #[doc = "      \"minimum\": 0.0"]
14341    #[doc = "    },"]
14342    #[doc = "    \"nonce\": {"]
14343    #[doc = "      \"description\": \"Connection nonce.\","]
14344    #[doc = "      \"type\": \"integer\","]
14345    #[doc = "      \"format\": \"uint64\","]
14346    #[doc = "      \"minimum\": 0.0"]
14347    #[doc = "    },"]
14348    #[doc = "    \"peer_id\": {"]
14349    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
14350    #[doc = "    },"]
14351    #[doc = "    \"received_bytes_per_sec\": {"]
14352    #[doc = "      \"type\": \"integer\","]
14353    #[doc = "      \"format\": \"uint64\","]
14354    #[doc = "      \"minimum\": 0.0"]
14355    #[doc = "    },"]
14356    #[doc = "    \"sent_bytes_per_sec\": {"]
14357    #[doc = "      \"type\": \"integer\","]
14358    #[doc = "      \"format\": \"uint64\","]
14359    #[doc = "      \"minimum\": 0.0"]
14360    #[doc = "    },"]
14361    #[doc = "    \"tracked_shards\": {"]
14362    #[doc = "      \"type\": \"array\","]
14363    #[doc = "      \"items\": {"]
14364    #[doc = "        \"$ref\": \"#/components/schemas/ShardId\""]
14365    #[doc = "      }"]
14366    #[doc = "    }"]
14367    #[doc = "  }"]
14368    #[doc = "}"]
14369    #[doc = r" ```"]
14370    #[doc = r" </details>"]
14371    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
14372    pub struct PeerInfoView {
14373        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
14374        pub account_id: ::std::option::Option<AccountId>,
14375        pub addr: ::std::string::String,
14376        pub archival: bool,
14377        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
14378        pub block_hash: ::std::option::Option<CryptoHash>,
14379        pub connection_established_time_millis: u64,
14380        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
14381        pub height: ::std::option::Option<u64>,
14382        pub is_highest_block_invalid: bool,
14383        pub is_outbound_peer: bool,
14384        pub last_time_peer_requested_millis: u64,
14385        pub last_time_received_message_millis: u64,
14386        #[doc = "Connection nonce."]
14387        pub nonce: u64,
14388        pub peer_id: PublicKey,
14389        pub received_bytes_per_sec: u64,
14390        pub sent_bytes_per_sec: u64,
14391        pub tracked_shards: ::std::vec::Vec<ShardId>,
14392    }
14393    impl ::std::convert::From<&PeerInfoView> for PeerInfoView {
14394        fn from(value: &PeerInfoView) -> Self {
14395            value.clone()
14396        }
14397    }
14398    #[doc = "Error that can occur while preparing or executing Wasm smart-contract."]
14399    #[doc = r""]
14400    #[doc = r" <details><summary>JSON schema</summary>"]
14401    #[doc = r""]
14402    #[doc = r" ```json"]
14403    #[doc = "{"]
14404    #[doc = "  \"description\": \"Error that can occur while preparing or executing Wasm smart-contract.\","]
14405    #[doc = "  \"oneOf\": ["]
14406    #[doc = "    {"]
14407    #[doc = "      \"description\": \"Error happened while serializing the module.\","]
14408    #[doc = "      \"type\": \"string\","]
14409    #[doc = "      \"enum\": ["]
14410    #[doc = "        \"Serialization\""]
14411    #[doc = "      ]"]
14412    #[doc = "    },"]
14413    #[doc = "    {"]
14414    #[doc = "      \"description\": \"Error happened while deserializing the module.\","]
14415    #[doc = "      \"type\": \"string\","]
14416    #[doc = "      \"enum\": ["]
14417    #[doc = "        \"Deserialization\""]
14418    #[doc = "      ]"]
14419    #[doc = "    },"]
14420    #[doc = "    {"]
14421    #[doc = "      \"description\": \"Internal memory declaration has been found in the module.\","]
14422    #[doc = "      \"type\": \"string\","]
14423    #[doc = "      \"enum\": ["]
14424    #[doc = "        \"InternalMemoryDeclared\""]
14425    #[doc = "      ]"]
14426    #[doc = "    },"]
14427    #[doc = "    {"]
14428    #[doc = "      \"description\": \"Gas instrumentation failed.\\n\\n This most likely indicates the module isn't valid.\","]
14429    #[doc = "      \"type\": \"string\","]
14430    #[doc = "      \"enum\": ["]
14431    #[doc = "        \"GasInstrumentation\""]
14432    #[doc = "      ]"]
14433    #[doc = "    },"]
14434    #[doc = "    {"]
14435    #[doc = "      \"description\": \"Stack instrumentation failed.\\n\\n This  most likely indicates the module isn't valid.\","]
14436    #[doc = "      \"type\": \"string\","]
14437    #[doc = "      \"enum\": ["]
14438    #[doc = "        \"StackHeightInstrumentation\""]
14439    #[doc = "      ]"]
14440    #[doc = "    },"]
14441    #[doc = "    {"]
14442    #[doc = "      \"description\": \"Error happened during instantiation.\\n\\n This might indicate that `start` function trapped, or module isn't\\n instantiable and/or un-linkable.\","]
14443    #[doc = "      \"type\": \"string\","]
14444    #[doc = "      \"enum\": ["]
14445    #[doc = "        \"Instantiate\""]
14446    #[doc = "      ]"]
14447    #[doc = "    },"]
14448    #[doc = "    {"]
14449    #[doc = "      \"description\": \"Error creating memory.\","]
14450    #[doc = "      \"type\": \"string\","]
14451    #[doc = "      \"enum\": ["]
14452    #[doc = "        \"Memory\""]
14453    #[doc = "      ]"]
14454    #[doc = "    },"]
14455    #[doc = "    {"]
14456    #[doc = "      \"description\": \"Contract contains too many functions.\","]
14457    #[doc = "      \"type\": \"string\","]
14458    #[doc = "      \"enum\": ["]
14459    #[doc = "        \"TooManyFunctions\""]
14460    #[doc = "      ]"]
14461    #[doc = "    },"]
14462    #[doc = "    {"]
14463    #[doc = "      \"description\": \"Contract contains too many locals.\","]
14464    #[doc = "      \"type\": \"string\","]
14465    #[doc = "      \"enum\": ["]
14466    #[doc = "        \"TooManyLocals\""]
14467    #[doc = "      ]"]
14468    #[doc = "    }"]
14469    #[doc = "  ]"]
14470    #[doc = "}"]
14471    #[doc = r" ```"]
14472    #[doc = r" </details>"]
14473    #[derive(
14474        :: serde :: Deserialize,
14475        :: serde :: Serialize,
14476        Clone,
14477        Copy,
14478        Debug,
14479        Eq,
14480        Hash,
14481        Ord,
14482        PartialEq,
14483        PartialOrd,
14484    )]
14485    pub enum PrepareError {
14486        #[doc = "Error happened while serializing the module."]
14487        Serialization,
14488        #[doc = "Error happened while deserializing the module."]
14489        Deserialization,
14490        #[doc = "Internal memory declaration has been found in the module."]
14491        InternalMemoryDeclared,
14492        #[doc = "Gas instrumentation failed.\n\n This most likely indicates the module isn't valid."]
14493        GasInstrumentation,
14494        #[doc = "Stack instrumentation failed.\n\n This  most likely indicates the module isn't valid."]
14495        StackHeightInstrumentation,
14496        #[doc = "Error happened during instantiation.\n\n This might indicate that `start` function trapped, or module isn't\n instantiable and/or un-linkable."]
14497        Instantiate,
14498        #[doc = "Error creating memory."]
14499        Memory,
14500        #[doc = "Contract contains too many functions."]
14501        TooManyFunctions,
14502        #[doc = "Contract contains too many locals."]
14503        TooManyLocals,
14504    }
14505    impl ::std::convert::From<&Self> for PrepareError {
14506        fn from(value: &PrepareError) -> Self {
14507            value.clone()
14508        }
14509    }
14510    impl ::std::fmt::Display for PrepareError {
14511        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14512            match *self {
14513                Self::Serialization => write!(f, "Serialization"),
14514                Self::Deserialization => write!(f, "Deserialization"),
14515                Self::InternalMemoryDeclared => write!(f, "InternalMemoryDeclared"),
14516                Self::GasInstrumentation => write!(f, "GasInstrumentation"),
14517                Self::StackHeightInstrumentation => write!(f, "StackHeightInstrumentation"),
14518                Self::Instantiate => write!(f, "Instantiate"),
14519                Self::Memory => write!(f, "Memory"),
14520                Self::TooManyFunctions => write!(f, "TooManyFunctions"),
14521                Self::TooManyLocals => write!(f, "TooManyLocals"),
14522            }
14523        }
14524    }
14525    impl ::std::str::FromStr for PrepareError {
14526        type Err = self::error::ConversionError;
14527        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
14528            match value {
14529                "Serialization" => Ok(Self::Serialization),
14530                "Deserialization" => Ok(Self::Deserialization),
14531                "InternalMemoryDeclared" => Ok(Self::InternalMemoryDeclared),
14532                "GasInstrumentation" => Ok(Self::GasInstrumentation),
14533                "StackHeightInstrumentation" => Ok(Self::StackHeightInstrumentation),
14534                "Instantiate" => Ok(Self::Instantiate),
14535                "Memory" => Ok(Self::Memory),
14536                "TooManyFunctions" => Ok(Self::TooManyFunctions),
14537                "TooManyLocals" => Ok(Self::TooManyLocals),
14538                _ => Err("invalid value".into()),
14539            }
14540        }
14541    }
14542    impl ::std::convert::TryFrom<&str> for PrepareError {
14543        type Error = self::error::ConversionError;
14544        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
14545            value.parse()
14546        }
14547    }
14548    impl ::std::convert::TryFrom<&::std::string::String> for PrepareError {
14549        type Error = self::error::ConversionError;
14550        fn try_from(
14551            value: &::std::string::String,
14552        ) -> ::std::result::Result<Self, self::error::ConversionError> {
14553            value.parse()
14554        }
14555    }
14556    impl ::std::convert::TryFrom<::std::string::String> for PrepareError {
14557        type Error = self::error::ConversionError;
14558        fn try_from(
14559            value: ::std::string::String,
14560        ) -> ::std::result::Result<Self, self::error::ConversionError> {
14561            value.parse()
14562        }
14563    }
14564    #[doc = "`PublicKey`"]
14565    #[doc = r""]
14566    #[doc = r" <details><summary>JSON schema</summary>"]
14567    #[doc = r""]
14568    #[doc = r" ```json"]
14569    #[doc = "{"]
14570    #[doc = "  \"type\": \"string\""]
14571    #[doc = "}"]
14572    #[doc = r" ```"]
14573    #[doc = r" </details>"]
14574    #[derive(
14575        :: serde :: Deserialize,
14576        :: serde :: Serialize,
14577        Clone,
14578        Debug,
14579        Eq,
14580        Hash,
14581        Ord,
14582        PartialEq,
14583        PartialOrd,
14584    )]
14585    #[serde(transparent)]
14586    pub struct PublicKey(pub ::std::string::String);
14587    impl ::std::ops::Deref for PublicKey {
14588        type Target = ::std::string::String;
14589        fn deref(&self) -> &::std::string::String {
14590            &self.0
14591        }
14592    }
14593    impl ::std::convert::From<PublicKey> for ::std::string::String {
14594        fn from(value: PublicKey) -> Self {
14595            value.0
14596        }
14597    }
14598    impl ::std::convert::From<&PublicKey> for PublicKey {
14599        fn from(value: &PublicKey) -> Self {
14600            value.clone()
14601        }
14602    }
14603    impl ::std::convert::From<::std::string::String> for PublicKey {
14604        fn from(value: ::std::string::String) -> Self {
14605            Self(value)
14606        }
14607    }
14608    impl ::std::str::FromStr for PublicKey {
14609        type Err = ::std::convert::Infallible;
14610        fn from_str(value: &str) -> ::std::result::Result<Self, Self::Err> {
14611            Ok(Self(value.to_string()))
14612        }
14613    }
14614    impl ::std::fmt::Display for PublicKey {
14615        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14616            self.0.fmt(f)
14617        }
14618    }
14619    #[doc = "`RangeOfUint64`"]
14620    #[doc = r""]
14621    #[doc = r" <details><summary>JSON schema</summary>"]
14622    #[doc = r""]
14623    #[doc = r" ```json"]
14624    #[doc = "{"]
14625    #[doc = "  \"type\": \"object\","]
14626    #[doc = "  \"required\": ["]
14627    #[doc = "    \"end\","]
14628    #[doc = "    \"start\""]
14629    #[doc = "  ],"]
14630    #[doc = "  \"properties\": {"]
14631    #[doc = "    \"end\": {"]
14632    #[doc = "      \"type\": \"integer\","]
14633    #[doc = "      \"format\": \"uint64\","]
14634    #[doc = "      \"minimum\": 0.0"]
14635    #[doc = "    },"]
14636    #[doc = "    \"start\": {"]
14637    #[doc = "      \"type\": \"integer\","]
14638    #[doc = "      \"format\": \"uint64\","]
14639    #[doc = "      \"minimum\": 0.0"]
14640    #[doc = "    }"]
14641    #[doc = "  }"]
14642    #[doc = "}"]
14643    #[doc = r" ```"]
14644    #[doc = r" </details>"]
14645    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
14646    pub struct RangeOfUint64 {
14647        pub end: u64,
14648        pub start: u64,
14649    }
14650    impl ::std::convert::From<&RangeOfUint64> for RangeOfUint64 {
14651        fn from(value: &RangeOfUint64) -> Self {
14652            value.clone()
14653        }
14654    }
14655    #[doc = "`ReceiptEnumView`"]
14656    #[doc = r""]
14657    #[doc = r" <details><summary>JSON schema</summary>"]
14658    #[doc = r""]
14659    #[doc = r" ```json"]
14660    #[doc = "{"]
14661    #[doc = "  \"oneOf\": ["]
14662    #[doc = "    {"]
14663    #[doc = "      \"type\": \"object\","]
14664    #[doc = "      \"required\": ["]
14665    #[doc = "        \"Action\""]
14666    #[doc = "      ],"]
14667    #[doc = "      \"properties\": {"]
14668    #[doc = "        \"Action\": {"]
14669    #[doc = "          \"type\": \"object\","]
14670    #[doc = "          \"required\": ["]
14671    #[doc = "            \"actions\","]
14672    #[doc = "            \"gas_price\","]
14673    #[doc = "            \"input_data_ids\","]
14674    #[doc = "            \"output_data_receivers\","]
14675    #[doc = "            \"signer_id\","]
14676    #[doc = "            \"signer_public_key\""]
14677    #[doc = "          ],"]
14678    #[doc = "          \"properties\": {"]
14679    #[doc = "            \"actions\": {"]
14680    #[doc = "              \"type\": \"array\","]
14681    #[doc = "              \"items\": {"]
14682    #[doc = "                \"$ref\": \"#/components/schemas/ActionView\""]
14683    #[doc = "              }"]
14684    #[doc = "            },"]
14685    #[doc = "            \"gas_price\": {"]
14686    #[doc = "              \"type\": \"string\""]
14687    #[doc = "            },"]
14688    #[doc = "            \"input_data_ids\": {"]
14689    #[doc = "              \"type\": \"array\","]
14690    #[doc = "              \"items\": {"]
14691    #[doc = "                \"$ref\": \"#/components/schemas/CryptoHash\""]
14692    #[doc = "              }"]
14693    #[doc = "            },"]
14694    #[doc = "            \"is_promise_yield\": {"]
14695    #[doc = "              \"default\": false,"]
14696    #[doc = "              \"type\": \"boolean\""]
14697    #[doc = "            },"]
14698    #[doc = "            \"output_data_receivers\": {"]
14699    #[doc = "              \"type\": \"array\","]
14700    #[doc = "              \"items\": {"]
14701    #[doc = "                \"$ref\": \"#/components/schemas/DataReceiverView\""]
14702    #[doc = "              }"]
14703    #[doc = "            },"]
14704    #[doc = "            \"signer_id\": {"]
14705    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
14706    #[doc = "            },"]
14707    #[doc = "            \"signer_public_key\": {"]
14708    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
14709    #[doc = "            }"]
14710    #[doc = "          }"]
14711    #[doc = "        }"]
14712    #[doc = "      },"]
14713    #[doc = "      \"additionalProperties\": false"]
14714    #[doc = "    },"]
14715    #[doc = "    {"]
14716    #[doc = "      \"type\": \"object\","]
14717    #[doc = "      \"required\": ["]
14718    #[doc = "        \"Data\""]
14719    #[doc = "      ],"]
14720    #[doc = "      \"properties\": {"]
14721    #[doc = "        \"Data\": {"]
14722    #[doc = "          \"type\": \"object\","]
14723    #[doc = "          \"required\": ["]
14724    #[doc = "            \"data_id\""]
14725    #[doc = "          ],"]
14726    #[doc = "          \"properties\": {"]
14727    #[doc = "            \"data\": {"]
14728    #[doc = "              \"type\": ["]
14729    #[doc = "                \"string\","]
14730    #[doc = "                \"null\""]
14731    #[doc = "              ]"]
14732    #[doc = "            },"]
14733    #[doc = "            \"data_id\": {"]
14734    #[doc = "              \"$ref\": \"#/components/schemas/CryptoHash\""]
14735    #[doc = "            },"]
14736    #[doc = "            \"is_promise_resume\": {"]
14737    #[doc = "              \"default\": false,"]
14738    #[doc = "              \"type\": \"boolean\""]
14739    #[doc = "            }"]
14740    #[doc = "          }"]
14741    #[doc = "        }"]
14742    #[doc = "      },"]
14743    #[doc = "      \"additionalProperties\": false"]
14744    #[doc = "    },"]
14745    #[doc = "    {"]
14746    #[doc = "      \"type\": \"object\","]
14747    #[doc = "      \"required\": ["]
14748    #[doc = "        \"GlobalContractDistribution\""]
14749    #[doc = "      ],"]
14750    #[doc = "      \"properties\": {"]
14751    #[doc = "        \"GlobalContractDistribution\": {"]
14752    #[doc = "          \"type\": \"object\","]
14753    #[doc = "          \"required\": ["]
14754    #[doc = "            \"already_delivered_shards\","]
14755    #[doc = "            \"code\","]
14756    #[doc = "            \"id\","]
14757    #[doc = "            \"target_shard\""]
14758    #[doc = "          ],"]
14759    #[doc = "          \"properties\": {"]
14760    #[doc = "            \"already_delivered_shards\": {"]
14761    #[doc = "              \"type\": \"array\","]
14762    #[doc = "              \"items\": {"]
14763    #[doc = "                \"$ref\": \"#/components/schemas/ShardId\""]
14764    #[doc = "              }"]
14765    #[doc = "            },"]
14766    #[doc = "            \"code\": {"]
14767    #[doc = "              \"type\": \"string\""]
14768    #[doc = "            },"]
14769    #[doc = "            \"id\": {"]
14770    #[doc = "              \"$ref\": \"#/components/schemas/GlobalContractIdentifier\""]
14771    #[doc = "            },"]
14772    #[doc = "            \"target_shard\": {"]
14773    #[doc = "              \"$ref\": \"#/components/schemas/ShardId\""]
14774    #[doc = "            }"]
14775    #[doc = "          }"]
14776    #[doc = "        }"]
14777    #[doc = "      },"]
14778    #[doc = "      \"additionalProperties\": false"]
14779    #[doc = "    }"]
14780    #[doc = "  ]"]
14781    #[doc = "}"]
14782    #[doc = r" ```"]
14783    #[doc = r" </details>"]
14784    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
14785    pub enum ReceiptEnumView {
14786        Action {
14787            actions: ::std::vec::Vec<ActionView>,
14788            gas_price: ::std::string::String,
14789            input_data_ids: ::std::vec::Vec<CryptoHash>,
14790            #[serde(default)]
14791            is_promise_yield: bool,
14792            output_data_receivers: ::std::vec::Vec<DataReceiverView>,
14793            signer_id: AccountId,
14794            signer_public_key: PublicKey,
14795        },
14796        Data {
14797            #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
14798            data: ::std::option::Option<::std::string::String>,
14799            data_id: CryptoHash,
14800            #[serde(default)]
14801            is_promise_resume: bool,
14802        },
14803        GlobalContractDistribution {
14804            already_delivered_shards: ::std::vec::Vec<ShardId>,
14805            code: ::std::string::String,
14806            id: GlobalContractIdentifier,
14807            target_shard: ShardId,
14808        },
14809    }
14810    impl ::std::convert::From<&Self> for ReceiptEnumView {
14811        fn from(value: &ReceiptEnumView) -> Self {
14812            value.clone()
14813        }
14814    }
14815    #[doc = "Describes the error for validating a receipt."]
14816    #[doc = r""]
14817    #[doc = r" <details><summary>JSON schema</summary>"]
14818    #[doc = r""]
14819    #[doc = r" ```json"]
14820    #[doc = "{"]
14821    #[doc = "  \"description\": \"Describes the error for validating a receipt.\","]
14822    #[doc = "  \"oneOf\": ["]
14823    #[doc = "    {"]
14824    #[doc = "      \"description\": \"The `predecessor_id` of a Receipt is not valid.\","]
14825    #[doc = "      \"type\": \"object\","]
14826    #[doc = "      \"required\": ["]
14827    #[doc = "        \"InvalidPredecessorId\""]
14828    #[doc = "      ],"]
14829    #[doc = "      \"properties\": {"]
14830    #[doc = "        \"InvalidPredecessorId\": {"]
14831    #[doc = "          \"type\": \"object\","]
14832    #[doc = "          \"required\": ["]
14833    #[doc = "            \"account_id\""]
14834    #[doc = "          ],"]
14835    #[doc = "          \"properties\": {"]
14836    #[doc = "            \"account_id\": {"]
14837    #[doc = "              \"type\": \"string\""]
14838    #[doc = "            }"]
14839    #[doc = "          }"]
14840    #[doc = "        }"]
14841    #[doc = "      },"]
14842    #[doc = "      \"additionalProperties\": false"]
14843    #[doc = "    },"]
14844    #[doc = "    {"]
14845    #[doc = "      \"description\": \"The `receiver_id` of a Receipt is not valid.\","]
14846    #[doc = "      \"type\": \"object\","]
14847    #[doc = "      \"required\": ["]
14848    #[doc = "        \"InvalidReceiverId\""]
14849    #[doc = "      ],"]
14850    #[doc = "      \"properties\": {"]
14851    #[doc = "        \"InvalidReceiverId\": {"]
14852    #[doc = "          \"type\": \"object\","]
14853    #[doc = "          \"required\": ["]
14854    #[doc = "            \"account_id\""]
14855    #[doc = "          ],"]
14856    #[doc = "          \"properties\": {"]
14857    #[doc = "            \"account_id\": {"]
14858    #[doc = "              \"type\": \"string\""]
14859    #[doc = "            }"]
14860    #[doc = "          }"]
14861    #[doc = "        }"]
14862    #[doc = "      },"]
14863    #[doc = "      \"additionalProperties\": false"]
14864    #[doc = "    },"]
14865    #[doc = "    {"]
14866    #[doc = "      \"description\": \"The `signer_id` of an ActionReceipt is not valid.\","]
14867    #[doc = "      \"type\": \"object\","]
14868    #[doc = "      \"required\": ["]
14869    #[doc = "        \"InvalidSignerId\""]
14870    #[doc = "      ],"]
14871    #[doc = "      \"properties\": {"]
14872    #[doc = "        \"InvalidSignerId\": {"]
14873    #[doc = "          \"type\": \"object\","]
14874    #[doc = "          \"required\": ["]
14875    #[doc = "            \"account_id\""]
14876    #[doc = "          ],"]
14877    #[doc = "          \"properties\": {"]
14878    #[doc = "            \"account_id\": {"]
14879    #[doc = "              \"type\": \"string\""]
14880    #[doc = "            }"]
14881    #[doc = "          }"]
14882    #[doc = "        }"]
14883    #[doc = "      },"]
14884    #[doc = "      \"additionalProperties\": false"]
14885    #[doc = "    },"]
14886    #[doc = "    {"]
14887    #[doc = "      \"description\": \"The `receiver_id` of a DataReceiver within an ActionReceipt is not valid.\","]
14888    #[doc = "      \"type\": \"object\","]
14889    #[doc = "      \"required\": ["]
14890    #[doc = "        \"InvalidDataReceiverId\""]
14891    #[doc = "      ],"]
14892    #[doc = "      \"properties\": {"]
14893    #[doc = "        \"InvalidDataReceiverId\": {"]
14894    #[doc = "          \"type\": \"object\","]
14895    #[doc = "          \"required\": ["]
14896    #[doc = "            \"account_id\""]
14897    #[doc = "          ],"]
14898    #[doc = "          \"properties\": {"]
14899    #[doc = "            \"account_id\": {"]
14900    #[doc = "              \"type\": \"string\""]
14901    #[doc = "            }"]
14902    #[doc = "          }"]
14903    #[doc = "        }"]
14904    #[doc = "      },"]
14905    #[doc = "      \"additionalProperties\": false"]
14906    #[doc = "    },"]
14907    #[doc = "    {"]
14908    #[doc = "      \"description\": \"The length of the returned data exceeded the limit in a DataReceipt.\","]
14909    #[doc = "      \"type\": \"object\","]
14910    #[doc = "      \"required\": ["]
14911    #[doc = "        \"ReturnedValueLengthExceeded\""]
14912    #[doc = "      ],"]
14913    #[doc = "      \"properties\": {"]
14914    #[doc = "        \"ReturnedValueLengthExceeded\": {"]
14915    #[doc = "          \"type\": \"object\","]
14916    #[doc = "          \"required\": ["]
14917    #[doc = "            \"length\","]
14918    #[doc = "            \"limit\""]
14919    #[doc = "          ],"]
14920    #[doc = "          \"properties\": {"]
14921    #[doc = "            \"length\": {"]
14922    #[doc = "              \"type\": \"integer\","]
14923    #[doc = "              \"format\": \"uint64\","]
14924    #[doc = "              \"minimum\": 0.0"]
14925    #[doc = "            },"]
14926    #[doc = "            \"limit\": {"]
14927    #[doc = "              \"type\": \"integer\","]
14928    #[doc = "              \"format\": \"uint64\","]
14929    #[doc = "              \"minimum\": 0.0"]
14930    #[doc = "            }"]
14931    #[doc = "          }"]
14932    #[doc = "        }"]
14933    #[doc = "      },"]
14934    #[doc = "      \"additionalProperties\": false"]
14935    #[doc = "    },"]
14936    #[doc = "    {"]
14937    #[doc = "      \"description\": \"The number of input data dependencies exceeds the limit in an ActionReceipt.\","]
14938    #[doc = "      \"type\": \"object\","]
14939    #[doc = "      \"required\": ["]
14940    #[doc = "        \"NumberInputDataDependenciesExceeded\""]
14941    #[doc = "      ],"]
14942    #[doc = "      \"properties\": {"]
14943    #[doc = "        \"NumberInputDataDependenciesExceeded\": {"]
14944    #[doc = "          \"type\": \"object\","]
14945    #[doc = "          \"required\": ["]
14946    #[doc = "            \"limit\","]
14947    #[doc = "            \"number_of_input_data_dependencies\""]
14948    #[doc = "          ],"]
14949    #[doc = "          \"properties\": {"]
14950    #[doc = "            \"limit\": {"]
14951    #[doc = "              \"type\": \"integer\","]
14952    #[doc = "              \"format\": \"uint64\","]
14953    #[doc = "              \"minimum\": 0.0"]
14954    #[doc = "            },"]
14955    #[doc = "            \"number_of_input_data_dependencies\": {"]
14956    #[doc = "              \"type\": \"integer\","]
14957    #[doc = "              \"format\": \"uint64\","]
14958    #[doc = "              \"minimum\": 0.0"]
14959    #[doc = "            }"]
14960    #[doc = "          }"]
14961    #[doc = "        }"]
14962    #[doc = "      },"]
14963    #[doc = "      \"additionalProperties\": false"]
14964    #[doc = "    },"]
14965    #[doc = "    {"]
14966    #[doc = "      \"description\": \"An error occurred while validating actions of an ActionReceipt.\","]
14967    #[doc = "      \"type\": \"object\","]
14968    #[doc = "      \"required\": ["]
14969    #[doc = "        \"ActionsValidation\""]
14970    #[doc = "      ],"]
14971    #[doc = "      \"properties\": {"]
14972    #[doc = "        \"ActionsValidation\": {"]
14973    #[doc = "          \"$ref\": \"#/components/schemas/ActionsValidationError\""]
14974    #[doc = "        }"]
14975    #[doc = "      },"]
14976    #[doc = "      \"additionalProperties\": false"]
14977    #[doc = "    },"]
14978    #[doc = "    {"]
14979    #[doc = "      \"description\": \"Receipt is bigger than the limit.\","]
14980    #[doc = "      \"type\": \"object\","]
14981    #[doc = "      \"required\": ["]
14982    #[doc = "        \"ReceiptSizeExceeded\""]
14983    #[doc = "      ],"]
14984    #[doc = "      \"properties\": {"]
14985    #[doc = "        \"ReceiptSizeExceeded\": {"]
14986    #[doc = "          \"type\": \"object\","]
14987    #[doc = "          \"required\": ["]
14988    #[doc = "            \"limit\","]
14989    #[doc = "            \"size\""]
14990    #[doc = "          ],"]
14991    #[doc = "          \"properties\": {"]
14992    #[doc = "            \"limit\": {"]
14993    #[doc = "              \"type\": \"integer\","]
14994    #[doc = "              \"format\": \"uint64\","]
14995    #[doc = "              \"minimum\": 0.0"]
14996    #[doc = "            },"]
14997    #[doc = "            \"size\": {"]
14998    #[doc = "              \"type\": \"integer\","]
14999    #[doc = "              \"format\": \"uint64\","]
15000    #[doc = "              \"minimum\": 0.0"]
15001    #[doc = "            }"]
15002    #[doc = "          }"]
15003    #[doc = "        }"]
15004    #[doc = "      },"]
15005    #[doc = "      \"additionalProperties\": false"]
15006    #[doc = "    }"]
15007    #[doc = "  ]"]
15008    #[doc = "}"]
15009    #[doc = r" ```"]
15010    #[doc = r" </details>"]
15011    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
15012    pub enum ReceiptValidationError {
15013        #[doc = "The `predecessor_id` of a Receipt is not valid."]
15014        InvalidPredecessorId { account_id: ::std::string::String },
15015        #[doc = "The `receiver_id` of a Receipt is not valid."]
15016        InvalidReceiverId { account_id: ::std::string::String },
15017        #[doc = "The `signer_id` of an ActionReceipt is not valid."]
15018        InvalidSignerId { account_id: ::std::string::String },
15019        #[doc = "The `receiver_id` of a DataReceiver within an ActionReceipt is not valid."]
15020        InvalidDataReceiverId { account_id: ::std::string::String },
15021        #[doc = "The length of the returned data exceeded the limit in a DataReceipt."]
15022        ReturnedValueLengthExceeded { length: u64, limit: u64 },
15023        #[doc = "The number of input data dependencies exceeds the limit in an ActionReceipt."]
15024        NumberInputDataDependenciesExceeded {
15025            limit: u64,
15026            number_of_input_data_dependencies: u64,
15027        },
15028        #[doc = "An error occurred while validating actions of an ActionReceipt."]
15029        ActionsValidation(ActionsValidationError),
15030        #[doc = "Receipt is bigger than the limit."]
15031        ReceiptSizeExceeded { limit: u64, size: u64 },
15032    }
15033    impl ::std::convert::From<&Self> for ReceiptValidationError {
15034        fn from(value: &ReceiptValidationError) -> Self {
15035            value.clone()
15036        }
15037    }
15038    impl ::std::convert::From<ActionsValidationError> for ReceiptValidationError {
15039        fn from(value: ActionsValidationError) -> Self {
15040            Self::ActionsValidation(value)
15041        }
15042    }
15043    #[doc = "`ReceiptView`"]
15044    #[doc = r""]
15045    #[doc = r" <details><summary>JSON schema</summary>"]
15046    #[doc = r""]
15047    #[doc = r" ```json"]
15048    #[doc = "{"]
15049    #[doc = "  \"type\": \"object\","]
15050    #[doc = "  \"required\": ["]
15051    #[doc = "    \"predecessor_id\","]
15052    #[doc = "    \"receipt\","]
15053    #[doc = "    \"receipt_id\","]
15054    #[doc = "    \"receiver_id\""]
15055    #[doc = "  ],"]
15056    #[doc = "  \"properties\": {"]
15057    #[doc = "    \"predecessor_id\": {"]
15058    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
15059    #[doc = "    },"]
15060    #[doc = "    \"priority\": {"]
15061    #[doc = "      \"default\": 0,"]
15062    #[doc = "      \"type\": \"integer\","]
15063    #[doc = "      \"format\": \"uint64\","]
15064    #[doc = "      \"minimum\": 0.0"]
15065    #[doc = "    },"]
15066    #[doc = "    \"receipt\": {"]
15067    #[doc = "      \"$ref\": \"#/components/schemas/ReceiptEnumView\""]
15068    #[doc = "    },"]
15069    #[doc = "    \"receipt_id\": {"]
15070    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
15071    #[doc = "    },"]
15072    #[doc = "    \"receiver_id\": {"]
15073    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
15074    #[doc = "    }"]
15075    #[doc = "  }"]
15076    #[doc = "}"]
15077    #[doc = r" ```"]
15078    #[doc = r" </details>"]
15079    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
15080    pub struct ReceiptView {
15081        pub predecessor_id: AccountId,
15082        #[serde(default)]
15083        pub priority: u64,
15084        pub receipt: ReceiptEnumView,
15085        pub receipt_id: CryptoHash,
15086        pub receiver_id: AccountId,
15087    }
15088    impl ::std::convert::From<&ReceiptView> for ReceiptView {
15089        fn from(value: &ReceiptView) -> Self {
15090            value.clone()
15091        }
15092    }
15093    #[doc = "`RpcBlockRequest`"]
15094    #[doc = r""]
15095    #[doc = r" <details><summary>JSON schema</summary>"]
15096    #[doc = r""]
15097    #[doc = r" ```json"]
15098    #[doc = "{"]
15099    #[doc = "  \"title\": \"RpcBlockRequest\","]
15100    #[doc = "  \"type\": \"object\","]
15101    #[doc = "  \"oneOf\": ["]
15102    #[doc = "    {"]
15103    #[doc = "      \"type\": \"object\","]
15104    #[doc = "      \"required\": ["]
15105    #[doc = "        \"block_id\""]
15106    #[doc = "      ],"]
15107    #[doc = "      \"properties\": {"]
15108    #[doc = "        \"block_id\": {"]
15109    #[doc = "          \"$ref\": \"#/components/schemas/BlockId\""]
15110    #[doc = "        }"]
15111    #[doc = "      }"]
15112    #[doc = "    },"]
15113    #[doc = "    {"]
15114    #[doc = "      \"type\": \"object\","]
15115    #[doc = "      \"required\": ["]
15116    #[doc = "        \"finality\""]
15117    #[doc = "      ],"]
15118    #[doc = "      \"properties\": {"]
15119    #[doc = "        \"finality\": {"]
15120    #[doc = "          \"$ref\": \"#/components/schemas/Finality\""]
15121    #[doc = "        }"]
15122    #[doc = "      }"]
15123    #[doc = "    },"]
15124    #[doc = "    {"]
15125    #[doc = "      \"type\": \"object\","]
15126    #[doc = "      \"required\": ["]
15127    #[doc = "        \"sync_checkpoint\""]
15128    #[doc = "      ],"]
15129    #[doc = "      \"properties\": {"]
15130    #[doc = "        \"sync_checkpoint\": {"]
15131    #[doc = "          \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
15132    #[doc = "        }"]
15133    #[doc = "      }"]
15134    #[doc = "    }"]
15135    #[doc = "  ]"]
15136    #[doc = "}"]
15137    #[doc = r" ```"]
15138    #[doc = r" </details>"]
15139    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
15140    pub enum RpcBlockRequest {
15141        #[serde(rename = "block_id")]
15142        BlockId(BlockId),
15143        #[serde(rename = "finality")]
15144        Finality(Finality),
15145        #[serde(rename = "sync_checkpoint")]
15146        SyncCheckpoint(SyncCheckpoint),
15147    }
15148    impl ::std::convert::From<&Self> for RpcBlockRequest {
15149        fn from(value: &RpcBlockRequest) -> Self {
15150            value.clone()
15151        }
15152    }
15153    impl ::std::convert::From<BlockId> for RpcBlockRequest {
15154        fn from(value: BlockId) -> Self {
15155            Self::BlockId(value)
15156        }
15157    }
15158    impl ::std::convert::From<Finality> for RpcBlockRequest {
15159        fn from(value: Finality) -> Self {
15160            Self::Finality(value)
15161        }
15162    }
15163    impl ::std::convert::From<SyncCheckpoint> for RpcBlockRequest {
15164        fn from(value: SyncCheckpoint) -> Self {
15165            Self::SyncCheckpoint(value)
15166        }
15167    }
15168    #[doc = "`RpcBlockResponse`"]
15169    #[doc = r""]
15170    #[doc = r" <details><summary>JSON schema</summary>"]
15171    #[doc = r""]
15172    #[doc = r" ```json"]
15173    #[doc = "{"]
15174    #[doc = "  \"type\": \"object\","]
15175    #[doc = "  \"required\": ["]
15176    #[doc = "    \"author\","]
15177    #[doc = "    \"chunks\","]
15178    #[doc = "    \"header\""]
15179    #[doc = "  ],"]
15180    #[doc = "  \"properties\": {"]
15181    #[doc = "    \"author\": {"]
15182    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
15183    #[doc = "    },"]
15184    #[doc = "    \"chunks\": {"]
15185    #[doc = "      \"type\": \"array\","]
15186    #[doc = "      \"items\": {"]
15187    #[doc = "        \"$ref\": \"#/components/schemas/ChunkHeaderView\""]
15188    #[doc = "      }"]
15189    #[doc = "    },"]
15190    #[doc = "    \"header\": {"]
15191    #[doc = "      \"$ref\": \"#/components/schemas/BlockHeaderView\""]
15192    #[doc = "    }"]
15193    #[doc = "  }"]
15194    #[doc = "}"]
15195    #[doc = r" ```"]
15196    #[doc = r" </details>"]
15197    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
15198    pub struct RpcBlockResponse {
15199        pub author: AccountId,
15200        pub chunks: ::std::vec::Vec<ChunkHeaderView>,
15201        pub header: BlockHeaderView,
15202    }
15203    impl ::std::convert::From<&RpcBlockResponse> for RpcBlockResponse {
15204        fn from(value: &RpcBlockResponse) -> Self {
15205            value.clone()
15206        }
15207    }
15208    #[doc = "`RpcChunkRequest`"]
15209    #[doc = r""]
15210    #[doc = r" <details><summary>JSON schema</summary>"]
15211    #[doc = r""]
15212    #[doc = r" ```json"]
15213    #[doc = "{"]
15214    #[doc = "  \"title\": \"RpcChunkRequest\","]
15215    #[doc = "  \"type\": \"object\","]
15216    #[doc = "  \"anyOf\": ["]
15217    #[doc = "    {"]
15218    #[doc = "      \"type\": \"object\","]
15219    #[doc = "      \"required\": ["]
15220    #[doc = "        \"block_id\","]
15221    #[doc = "        \"shard_id\""]
15222    #[doc = "      ],"]
15223    #[doc = "      \"properties\": {"]
15224    #[doc = "        \"block_id\": {"]
15225    #[doc = "          \"$ref\": \"#/components/schemas/BlockId\""]
15226    #[doc = "        },"]
15227    #[doc = "        \"shard_id\": {"]
15228    #[doc = "          \"$ref\": \"#/components/schemas/ShardId\""]
15229    #[doc = "        }"]
15230    #[doc = "      }"]
15231    #[doc = "    },"]
15232    #[doc = "    {"]
15233    #[doc = "      \"type\": \"object\","]
15234    #[doc = "      \"required\": ["]
15235    #[doc = "        \"chunk_id\""]
15236    #[doc = "      ],"]
15237    #[doc = "      \"properties\": {"]
15238    #[doc = "        \"chunk_id\": {"]
15239    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
15240    #[doc = "        }"]
15241    #[doc = "      }"]
15242    #[doc = "    }"]
15243    #[doc = "  ]"]
15244    #[doc = "}"]
15245    #[doc = r" ```"]
15246    #[doc = r" </details>"]
15247    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
15248    #[serde(untagged)]
15249    pub enum RpcChunkRequest {
15250        Variant0 {
15251            block_id: BlockId,
15252            shard_id: ShardId,
15253        },
15254        Variant1 {
15255            chunk_id: CryptoHash,
15256        },
15257    }
15258    impl ::std::convert::From<&Self> for RpcChunkRequest {
15259        fn from(value: &RpcChunkRequest) -> Self {
15260            value.clone()
15261        }
15262    }
15263    #[doc = "`RpcChunkResponse`"]
15264    #[doc = r""]
15265    #[doc = r" <details><summary>JSON schema</summary>"]
15266    #[doc = r""]
15267    #[doc = r" ```json"]
15268    #[doc = "{"]
15269    #[doc = "  \"type\": \"object\","]
15270    #[doc = "  \"required\": ["]
15271    #[doc = "    \"author\","]
15272    #[doc = "    \"header\","]
15273    #[doc = "    \"receipts\","]
15274    #[doc = "    \"transactions\""]
15275    #[doc = "  ],"]
15276    #[doc = "  \"properties\": {"]
15277    #[doc = "    \"author\": {"]
15278    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
15279    #[doc = "    },"]
15280    #[doc = "    \"header\": {"]
15281    #[doc = "      \"$ref\": \"#/components/schemas/ChunkHeaderView\""]
15282    #[doc = "    },"]
15283    #[doc = "    \"receipts\": {"]
15284    #[doc = "      \"type\": \"array\","]
15285    #[doc = "      \"items\": {"]
15286    #[doc = "        \"$ref\": \"#/components/schemas/ReceiptView\""]
15287    #[doc = "      }"]
15288    #[doc = "    },"]
15289    #[doc = "    \"transactions\": {"]
15290    #[doc = "      \"type\": \"array\","]
15291    #[doc = "      \"items\": {"]
15292    #[doc = "        \"$ref\": \"#/components/schemas/SignedTransactionView\""]
15293    #[doc = "      }"]
15294    #[doc = "    }"]
15295    #[doc = "  }"]
15296    #[doc = "}"]
15297    #[doc = r" ```"]
15298    #[doc = r" </details>"]
15299    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
15300    pub struct RpcChunkResponse {
15301        pub author: AccountId,
15302        pub header: ChunkHeaderView,
15303        pub receipts: ::std::vec::Vec<ReceiptView>,
15304        pub transactions: ::std::vec::Vec<SignedTransactionView>,
15305    }
15306    impl ::std::convert::From<&RpcChunkResponse> for RpcChunkResponse {
15307        fn from(value: &RpcChunkResponse) -> Self {
15308            value.clone()
15309        }
15310    }
15311    #[doc = "`RpcClientConfigRequest`"]
15312    #[doc = r""]
15313    #[doc = r" <details><summary>JSON schema</summary>"]
15314    #[doc = r""]
15315    #[doc = r" ```json"]
15316    #[doc = "{"]
15317    #[doc = "  \"title\": \"RpcClientConfigRequest\","]
15318    #[doc = "  \"type\": \"object\""]
15319    #[doc = "}"]
15320    #[doc = r" ```"]
15321    #[doc = r" </details>"]
15322    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
15323    #[serde(transparent)]
15324    pub struct RpcClientConfigRequest(
15325        pub ::serde_json::Map<::std::string::String, ::serde_json::Value>,
15326    );
15327    impl ::std::ops::Deref for RpcClientConfigRequest {
15328        type Target = ::serde_json::Map<::std::string::String, ::serde_json::Value>;
15329        fn deref(&self) -> &::serde_json::Map<::std::string::String, ::serde_json::Value> {
15330            &self.0
15331        }
15332    }
15333    impl ::std::convert::From<RpcClientConfigRequest>
15334        for ::serde_json::Map<::std::string::String, ::serde_json::Value>
15335    {
15336        fn from(value: RpcClientConfigRequest) -> Self {
15337            value.0
15338        }
15339    }
15340    impl ::std::convert::From<&RpcClientConfigRequest> for RpcClientConfigRequest {
15341        fn from(value: &RpcClientConfigRequest) -> Self {
15342            value.clone()
15343        }
15344    }
15345    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
15346        for RpcClientConfigRequest
15347    {
15348        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
15349            Self(value)
15350        }
15351    }
15352    #[doc = "ClientConfig where some fields can be updated at runtime."]
15353    #[doc = r""]
15354    #[doc = r" <details><summary>JSON schema</summary>"]
15355    #[doc = r""]
15356    #[doc = r" ```json"]
15357    #[doc = "{"]
15358    #[doc = "  \"description\": \"ClientConfig where some fields can be updated at runtime.\","]
15359    #[doc = "  \"type\": \"object\","]
15360    #[doc = "  \"required\": ["]
15361    #[doc = "    \"archive\","]
15362    #[doc = "    \"block_fetch_horizon\","]
15363    #[doc = "    \"block_header_fetch_horizon\","]
15364    #[doc = "    \"block_production_tracking_delay\","]
15365    #[doc = "    \"catchup_step_period\","]
15366    #[doc = "    \"chain_id\","]
15367    #[doc = "    \"chunk_request_retry_period\","]
15368    #[doc = "    \"chunk_wait_mult\","]
15369    #[doc = "    \"client_background_migration_threads\","]
15370    #[doc = "    \"doomslug_step_period\","]
15371    #[doc = "    \"enable_multiline_logging\","]
15372    #[doc = "    \"enable_statistics_export\","]
15373    #[doc = "    \"epoch_length\","]
15374    #[doc = "    \"epoch_sync\","]
15375    #[doc = "    \"expected_shutdown\","]
15376    #[doc = "    \"gc\","]
15377    #[doc = "    \"header_sync_expected_height_per_second\","]
15378    #[doc = "    \"header_sync_initial_timeout\","]
15379    #[doc = "    \"header_sync_progress_timeout\","]
15380    #[doc = "    \"header_sync_stall_ban_timeout\","]
15381    #[doc = "    \"log_summary_period\","]
15382    #[doc = "    \"log_summary_style\","]
15383    #[doc = "    \"max_block_production_delay\","]
15384    #[doc = "    \"max_block_wait_delay\","]
15385    #[doc = "    \"min_block_production_delay\","]
15386    #[doc = "    \"min_num_peers\","]
15387    #[doc = "    \"num_block_producer_seats\","]
15388    #[doc = "    \"orphan_state_witness_max_size\","]
15389    #[doc = "    \"orphan_state_witness_pool_size\","]
15390    #[doc = "    \"produce_chunk_add_transactions_time_limit\","]
15391    #[doc = "    \"produce_empty_blocks\","]
15392    #[doc = "    \"resharding_config\","]
15393    #[doc = "    \"save_latest_witnesses\","]
15394    #[doc = "    \"save_trie_changes\","]
15395    #[doc = "    \"skip_sync_wait\","]
15396    #[doc = "    \"state_sync\","]
15397    #[doc = "    \"state_sync_enabled\","]
15398    #[doc = "    \"state_sync_external_backoff\","]
15399    #[doc = "    \"state_sync_external_timeout\","]
15400    #[doc = "    \"state_sync_p2p_timeout\","]
15401    #[doc = "    \"state_sync_retry_backoff\","]
15402    #[doc = "    \"sync_check_period\","]
15403    #[doc = "    \"sync_height_threshold\","]
15404    #[doc = "    \"sync_max_block_requests\","]
15405    #[doc = "    \"sync_step_period\","]
15406    #[doc = "    \"tracked_shards_config\","]
15407    #[doc = "    \"transaction_request_handler_threads\","]
15408    #[doc = "    \"ttl_account_id_router\","]
15409    #[doc = "    \"tx_routing_height_horizon\","]
15410    #[doc = "    \"version\","]
15411    #[doc = "    \"view_client_threads\","]
15412    #[doc = "    \"view_client_throttle_period\""]
15413    #[doc = "  ],"]
15414    #[doc = "  \"properties\": {"]
15415    #[doc = "    \"archive\": {"]
15416    #[doc = "      \"description\": \"Not clear old data, set `true` for archive nodes.\","]
15417    #[doc = "      \"type\": \"boolean\""]
15418    #[doc = "    },"]
15419    #[doc = "    \"block_fetch_horizon\": {"]
15420    #[doc = "      \"description\": \"Horizon at which instead of fetching block, fetch full state.\","]
15421    #[doc = "      \"type\": \"integer\","]
15422    #[doc = "      \"format\": \"uint64\","]
15423    #[doc = "      \"minimum\": 0.0"]
15424    #[doc = "    },"]
15425    #[doc = "    \"block_header_fetch_horizon\": {"]
15426    #[doc = "      \"description\": \"Behind this horizon header fetch kicks in.\","]
15427    #[doc = "      \"type\": \"integer\","]
15428    #[doc = "      \"format\": \"uint64\","]
15429    #[doc = "      \"minimum\": 0.0"]
15430    #[doc = "    },"]
15431    #[doc = "    \"block_production_tracking_delay\": {"]
15432    #[doc = "      \"description\": \"Duration to check for producing / skipping block.\","]
15433    #[doc = "      \"type\": \"array\","]
15434    #[doc = "      \"items\": {"]
15435    #[doc = "        \"type\": \"integer\","]
15436    #[doc = "        \"format\": \"uint64\","]
15437    #[doc = "        \"minimum\": 0.0"]
15438    #[doc = "      },"]
15439    #[doc = "      \"maxItems\": 2,"]
15440    #[doc = "      \"minItems\": 2"]
15441    #[doc = "    },"]
15442    #[doc = "    \"catchup_step_period\": {"]
15443    #[doc = "      \"description\": \"Time between check to perform catchup.\","]
15444    #[doc = "      \"type\": \"array\","]
15445    #[doc = "      \"items\": {"]
15446    #[doc = "        \"type\": \"integer\","]
15447    #[doc = "        \"format\": \"uint64\","]
15448    #[doc = "        \"minimum\": 0.0"]
15449    #[doc = "      },"]
15450    #[doc = "      \"maxItems\": 2,"]
15451    #[doc = "      \"minItems\": 2"]
15452    #[doc = "    },"]
15453    #[doc = "    \"chain_id\": {"]
15454    #[doc = "      \"description\": \"Chain id for status.\","]
15455    #[doc = "      \"type\": \"string\""]
15456    #[doc = "    },"]
15457    #[doc = "    \"chunk_distribution_network\": {"]
15458    #[doc = "      \"description\": \"Optional config for the Chunk Distribution Network feature.\\n If set to `None` then this node does not participate in the Chunk Distribution Network.\\n Nodes not participating will still function fine, but possibly with higher\\n latency due to the need of requesting chunks over the peer-to-peer network.\","]
15459    #[doc = "      \"oneOf\": ["]
15460    #[doc = "        {"]
15461    #[doc = "          \"type\": \"null\""]
15462    #[doc = "        },"]
15463    #[doc = "        {"]
15464    #[doc = "          \"allOf\": ["]
15465    #[doc = "            {"]
15466    #[doc = "              \"$ref\": \"#/components/schemas/ChunkDistributionNetworkConfig\""]
15467    #[doc = "            }"]
15468    #[doc = "          ]"]
15469    #[doc = "        }"]
15470    #[doc = "      ]"]
15471    #[doc = "    },"]
15472    #[doc = "    \"chunk_request_retry_period\": {"]
15473    #[doc = "      \"description\": \"Time between checking to re-request chunks.\","]
15474    #[doc = "      \"type\": \"array\","]
15475    #[doc = "      \"items\": {"]
15476    #[doc = "        \"type\": \"integer\","]
15477    #[doc = "        \"format\": \"uint64\","]
15478    #[doc = "        \"minimum\": 0.0"]
15479    #[doc = "      },"]
15480    #[doc = "      \"maxItems\": 2,"]
15481    #[doc = "      \"minItems\": 2"]
15482    #[doc = "    },"]
15483    #[doc = "    \"chunk_wait_mult\": {"]
15484    #[doc = "      \"description\": \"Multiplier for the wait time for all chunks to be received.\","]
15485    #[doc = "      \"type\": \"array\","]
15486    #[doc = "      \"items\": {"]
15487    #[doc = "        \"type\": \"integer\","]
15488    #[doc = "        \"format\": \"int32\""]
15489    #[doc = "      },"]
15490    #[doc = "      \"maxItems\": 2,"]
15491    #[doc = "      \"minItems\": 2"]
15492    #[doc = "    },"]
15493    #[doc = "    \"client_background_migration_threads\": {"]
15494    #[doc = "      \"description\": \"Number of threads to execute background migration work in client.\","]
15495    #[doc = "      \"type\": \"integer\","]
15496    #[doc = "      \"format\": \"uint\","]
15497    #[doc = "      \"minimum\": 0.0"]
15498    #[doc = "    },"]
15499    #[doc = "    \"doomslug_step_period\": {"]
15500    #[doc = "      \"description\": \"Time between running doomslug timer.\","]
15501    #[doc = "      \"type\": \"array\","]
15502    #[doc = "      \"items\": {"]
15503    #[doc = "        \"type\": \"integer\","]
15504    #[doc = "        \"format\": \"uint64\","]
15505    #[doc = "        \"minimum\": 0.0"]
15506    #[doc = "      },"]
15507    #[doc = "      \"maxItems\": 2,"]
15508    #[doc = "      \"minItems\": 2"]
15509    #[doc = "    },"]
15510    #[doc = "    \"enable_multiline_logging\": {"]
15511    #[doc = "      \"type\": \"boolean\""]
15512    #[doc = "    },"]
15513    #[doc = "    \"enable_statistics_export\": {"]
15514    #[doc = "      \"description\": \"Re-export storage layer statistics as prometheus metrics.\","]
15515    #[doc = "      \"type\": \"boolean\""]
15516    #[doc = "    },"]
15517    #[doc = "    \"epoch_length\": {"]
15518    #[doc = "      \"description\": \"Epoch length.\","]
15519    #[doc = "      \"type\": \"integer\","]
15520    #[doc = "      \"format\": \"uint64\","]
15521    #[doc = "      \"minimum\": 0.0"]
15522    #[doc = "    },"]
15523    #[doc = "    \"epoch_sync\": {"]
15524    #[doc = "      \"description\": \"Options for epoch sync.\","]
15525    #[doc = "      \"allOf\": ["]
15526    #[doc = "        {"]
15527    #[doc = "          \"$ref\": \"#/components/schemas/EpochSyncConfig\""]
15528    #[doc = "        }"]
15529    #[doc = "      ]"]
15530    #[doc = "    },"]
15531    #[doc = "    \"expected_shutdown\": {"]
15532    #[doc = "      \"description\": \"Graceful shutdown at expected block height.\","]
15533    #[doc = "      \"allOf\": ["]
15534    #[doc = "        {"]
15535    #[doc = "          \"$ref\": \"#/components/schemas/MutableConfigValue\""]
15536    #[doc = "        }"]
15537    #[doc = "      ]"]
15538    #[doc = "    },"]
15539    #[doc = "    \"gc\": {"]
15540    #[doc = "      \"description\": \"Garbage collection configuration.\","]
15541    #[doc = "      \"allOf\": ["]
15542    #[doc = "        {"]
15543    #[doc = "          \"$ref\": \"#/components/schemas/GCConfig\""]
15544    #[doc = "        }"]
15545    #[doc = "      ]"]
15546    #[doc = "    },"]
15547    #[doc = "    \"header_sync_expected_height_per_second\": {"]
15548    #[doc = "      \"description\": \"Expected increase of header head height per second during header sync\","]
15549    #[doc = "      \"type\": \"integer\","]
15550    #[doc = "      \"format\": \"uint64\","]
15551    #[doc = "      \"minimum\": 0.0"]
15552    #[doc = "    },"]
15553    #[doc = "    \"header_sync_initial_timeout\": {"]
15554    #[doc = "      \"description\": \"How much time to wait after initial header sync\","]
15555    #[doc = "      \"type\": \"array\","]
15556    #[doc = "      \"items\": {"]
15557    #[doc = "        \"type\": \"integer\","]
15558    #[doc = "        \"format\": \"uint64\","]
15559    #[doc = "        \"minimum\": 0.0"]
15560    #[doc = "      },"]
15561    #[doc = "      \"maxItems\": 2,"]
15562    #[doc = "      \"minItems\": 2"]
15563    #[doc = "    },"]
15564    #[doc = "    \"header_sync_progress_timeout\": {"]
15565    #[doc = "      \"description\": \"How much time to wait after some progress is made in header sync\","]
15566    #[doc = "      \"type\": \"array\","]
15567    #[doc = "      \"items\": {"]
15568    #[doc = "        \"type\": \"integer\","]
15569    #[doc = "        \"format\": \"uint64\","]
15570    #[doc = "        \"minimum\": 0.0"]
15571    #[doc = "      },"]
15572    #[doc = "      \"maxItems\": 2,"]
15573    #[doc = "      \"minItems\": 2"]
15574    #[doc = "    },"]
15575    #[doc = "    \"header_sync_stall_ban_timeout\": {"]
15576    #[doc = "      \"description\": \"How much time to wait before banning a peer in header sync if sync is too slow\","]
15577    #[doc = "      \"type\": \"array\","]
15578    #[doc = "      \"items\": {"]
15579    #[doc = "        \"type\": \"integer\","]
15580    #[doc = "        \"format\": \"uint64\","]
15581    #[doc = "        \"minimum\": 0.0"]
15582    #[doc = "      },"]
15583    #[doc = "      \"maxItems\": 2,"]
15584    #[doc = "      \"minItems\": 2"]
15585    #[doc = "    },"]
15586    #[doc = "    \"log_summary_period\": {"]
15587    #[doc = "      \"description\": \"Period between logging summary information.\","]
15588    #[doc = "      \"type\": \"array\","]
15589    #[doc = "      \"items\": {"]
15590    #[doc = "        \"type\": \"integer\","]
15591    #[doc = "        \"format\": \"uint64\","]
15592    #[doc = "        \"minimum\": 0.0"]
15593    #[doc = "      },"]
15594    #[doc = "      \"maxItems\": 2,"]
15595    #[doc = "      \"minItems\": 2"]
15596    #[doc = "    },"]
15597    #[doc = "    \"log_summary_style\": {"]
15598    #[doc = "      \"description\": \"Enable coloring of the logs\","]
15599    #[doc = "      \"allOf\": ["]
15600    #[doc = "        {"]
15601    #[doc = "          \"$ref\": \"#/components/schemas/LogSummaryStyle\""]
15602    #[doc = "        }"]
15603    #[doc = "      ]"]
15604    #[doc = "    },"]
15605    #[doc = "    \"max_block_production_delay\": {"]
15606    #[doc = "      \"description\": \"Maximum wait for approvals before producing block.\","]
15607    #[doc = "      \"type\": \"array\","]
15608    #[doc = "      \"items\": {"]
15609    #[doc = "        \"type\": \"integer\","]
15610    #[doc = "        \"format\": \"uint64\","]
15611    #[doc = "        \"minimum\": 0.0"]
15612    #[doc = "      },"]
15613    #[doc = "      \"maxItems\": 2,"]
15614    #[doc = "      \"minItems\": 2"]
15615    #[doc = "    },"]
15616    #[doc = "    \"max_block_wait_delay\": {"]
15617    #[doc = "      \"description\": \"Maximum duration before skipping given height.\","]
15618    #[doc = "      \"type\": \"array\","]
15619    #[doc = "      \"items\": {"]
15620    #[doc = "        \"type\": \"integer\","]
15621    #[doc = "        \"format\": \"uint64\","]
15622    #[doc = "        \"minimum\": 0.0"]
15623    #[doc = "      },"]
15624    #[doc = "      \"maxItems\": 2,"]
15625    #[doc = "      \"minItems\": 2"]
15626    #[doc = "    },"]
15627    #[doc = "    \"max_gas_burnt_view\": {"]
15628    #[doc = "      \"description\": \"Max burnt gas per view method.  If present, overrides value stored in\\n genesis file.  The value only affects the RPCs without influencing the\\n protocol thus changing it per-node doesn’t affect the blockchain.\","]
15629    #[doc = "      \"type\": ["]
15630    #[doc = "        \"integer\","]
15631    #[doc = "        \"null\""]
15632    #[doc = "      ],"]
15633    #[doc = "      \"format\": \"uint64\","]
15634    #[doc = "      \"minimum\": 0.0"]
15635    #[doc = "    },"]
15636    #[doc = "    \"min_block_production_delay\": {"]
15637    #[doc = "      \"description\": \"Minimum duration before producing block.\","]
15638    #[doc = "      \"type\": \"array\","]
15639    #[doc = "      \"items\": {"]
15640    #[doc = "        \"type\": \"integer\","]
15641    #[doc = "        \"format\": \"uint64\","]
15642    #[doc = "        \"minimum\": 0.0"]
15643    #[doc = "      },"]
15644    #[doc = "      \"maxItems\": 2,"]
15645    #[doc = "      \"minItems\": 2"]
15646    #[doc = "    },"]
15647    #[doc = "    \"min_num_peers\": {"]
15648    #[doc = "      \"description\": \"Minimum number of peers to start syncing.\","]
15649    #[doc = "      \"type\": \"integer\","]
15650    #[doc = "      \"format\": \"uint\","]
15651    #[doc = "      \"minimum\": 0.0"]
15652    #[doc = "    },"]
15653    #[doc = "    \"num_block_producer_seats\": {"]
15654    #[doc = "      \"description\": \"Number of block producer seats\","]
15655    #[doc = "      \"type\": \"integer\","]
15656    #[doc = "      \"format\": \"uint64\","]
15657    #[doc = "      \"minimum\": 0.0"]
15658    #[doc = "    },"]
15659    #[doc = "    \"orphan_state_witness_max_size\": {"]
15660    #[doc = "      \"description\": \"Maximum size of state witnesses in the OrphanStateWitnessPool.\\n\\n We keep only orphan witnesses which are smaller than this size.\\n This limits the maximum memory usage of OrphanStateWitnessPool.\","]
15661    #[doc = "      \"type\": \"integer\","]
15662    #[doc = "      \"format\": \"uint64\","]
15663    #[doc = "      \"minimum\": 0.0"]
15664    #[doc = "    },"]
15665    #[doc = "    \"orphan_state_witness_pool_size\": {"]
15666    #[doc = "      \"description\": \"OrphanStateWitnessPool keeps instances of ChunkStateWitness which can't be processed\\n because the previous block isn't available. The witnesses wait in the pool until the\\n required block appears. This variable controls how many witnesses can be stored in the pool.\","]
15667    #[doc = "      \"type\": \"integer\","]
15668    #[doc = "      \"format\": \"uint\","]
15669    #[doc = "      \"minimum\": 0.0"]
15670    #[doc = "    },"]
15671    #[doc = "    \"produce_chunk_add_transactions_time_limit\": {"]
15672    #[doc = "      \"description\": \"Limit the time of adding transactions to a chunk.\\n A node produces a chunk by adding transactions from the transaction pool until\\n some limit is reached. This time limit ensures that adding transactions won't take\\n longer than the specified duration, which helps to produce the chunk quickly.\","]
15673    #[doc = "      \"type\": \"string\""]
15674    #[doc = "    },"]
15675    #[doc = "    \"produce_empty_blocks\": {"]
15676    #[doc = "      \"description\": \"Produce empty blocks, use `false` for testing.\","]
15677    #[doc = "      \"type\": \"boolean\""]
15678    #[doc = "    },"]
15679    #[doc = "    \"resharding_config\": {"]
15680    #[doc = "      \"$ref\": \"#/components/schemas/MutableConfigValue\""]
15681    #[doc = "    },"]
15682    #[doc = "    \"rpc_addr\": {"]
15683    #[doc = "      \"description\": \"Listening rpc port for status.\","]
15684    #[doc = "      \"type\": ["]
15685    #[doc = "        \"string\","]
15686    #[doc = "        \"null\""]
15687    #[doc = "      ]"]
15688    #[doc = "    },"]
15689    #[doc = "    \"save_latest_witnesses\": {"]
15690    #[doc = "      \"description\": \"Save observed instances of ChunkStateWitness to the database in DBCol::LatestChunkStateWitnesses.\\n Saving the latest witnesses is useful for analysis and debugging.\\n When this option is enabled, the node will save ALL witnesses it observes, even invalid ones,\\n which can cause extra load on the database. This option is not recommended for production use,\\n as a large number of incoming witnesses could cause denial of service.\","]
15691    #[doc = "      \"type\": \"boolean\""]
15692    #[doc = "    },"]
15693    #[doc = "    \"save_trie_changes\": {"]
15694    #[doc = "      \"description\": \"save_trie_changes should be set to true iff\\n - archive if false - non-archival nodes need trie changes to perform garbage collection\\n - archive is true, cold_store is configured and migration to split_storage is finished - node\\n working in split storage mode needs trie changes in order to do garbage collection on hot.\","]
15695    #[doc = "      \"type\": \"boolean\""]
15696    #[doc = "    },"]
15697    #[doc = "    \"skip_sync_wait\": {"]
15698    #[doc = "      \"description\": \"Skip waiting for sync (for testing or single node testnet).\","]
15699    #[doc = "      \"type\": \"boolean\""]
15700    #[doc = "    },"]
15701    #[doc = "    \"state_sync\": {"]
15702    #[doc = "      \"description\": \"Options for syncing state.\","]
15703    #[doc = "      \"allOf\": ["]
15704    #[doc = "        {"]
15705    #[doc = "          \"$ref\": \"#/components/schemas/StateSyncConfig\""]
15706    #[doc = "        }"]
15707    #[doc = "      ]"]
15708    #[doc = "    },"]
15709    #[doc = "    \"state_sync_enabled\": {"]
15710    #[doc = "      \"description\": \"Whether to use the State Sync mechanism.\\n If disabled, the node will do Block Sync instead of State Sync.\","]
15711    #[doc = "      \"type\": \"boolean\""]
15712    #[doc = "    },"]
15713    #[doc = "    \"state_sync_external_backoff\": {"]
15714    #[doc = "      \"description\": \"Additional waiting period after a failed request to external storage\","]
15715    #[doc = "      \"type\": \"array\","]
15716    #[doc = "      \"items\": {"]
15717    #[doc = "        \"type\": \"integer\","]
15718    #[doc = "        \"format\": \"uint64\","]
15719    #[doc = "        \"minimum\": 0.0"]
15720    #[doc = "      },"]
15721    #[doc = "      \"maxItems\": 2,"]
15722    #[doc = "      \"minItems\": 2"]
15723    #[doc = "    },"]
15724    #[doc = "    \"state_sync_external_timeout\": {"]
15725    #[doc = "      \"description\": \"How long to wait for a response from centralized state sync\","]
15726    #[doc = "      \"type\": \"array\","]
15727    #[doc = "      \"items\": {"]
15728    #[doc = "        \"type\": \"integer\","]
15729    #[doc = "        \"format\": \"uint64\","]
15730    #[doc = "        \"minimum\": 0.0"]
15731    #[doc = "      },"]
15732    #[doc = "      \"maxItems\": 2,"]
15733    #[doc = "      \"minItems\": 2"]
15734    #[doc = "    },"]
15735    #[doc = "    \"state_sync_p2p_timeout\": {"]
15736    #[doc = "      \"description\": \"How long to wait for a response from p2p state sync\","]
15737    #[doc = "      \"type\": \"array\","]
15738    #[doc = "      \"items\": {"]
15739    #[doc = "        \"type\": \"integer\","]
15740    #[doc = "        \"format\": \"uint64\","]
15741    #[doc = "        \"minimum\": 0.0"]
15742    #[doc = "      },"]
15743    #[doc = "      \"maxItems\": 2,"]
15744    #[doc = "      \"minItems\": 2"]
15745    #[doc = "    },"]
15746    #[doc = "    \"state_sync_retry_backoff\": {"]
15747    #[doc = "      \"description\": \"How long to wait after a failed state sync request\","]
15748    #[doc = "      \"type\": \"array\","]
15749    #[doc = "      \"items\": {"]
15750    #[doc = "        \"type\": \"integer\","]
15751    #[doc = "        \"format\": \"uint64\","]
15752    #[doc = "        \"minimum\": 0.0"]
15753    #[doc = "      },"]
15754    #[doc = "      \"maxItems\": 2,"]
15755    #[doc = "      \"minItems\": 2"]
15756    #[doc = "    },"]
15757    #[doc = "    \"sync_check_period\": {"]
15758    #[doc = "      \"description\": \"How often to check that we are not out of sync.\","]
15759    #[doc = "      \"type\": \"array\","]
15760    #[doc = "      \"items\": {"]
15761    #[doc = "        \"type\": \"integer\","]
15762    #[doc = "        \"format\": \"uint64\","]
15763    #[doc = "        \"minimum\": 0.0"]
15764    #[doc = "      },"]
15765    #[doc = "      \"maxItems\": 2,"]
15766    #[doc = "      \"minItems\": 2"]
15767    #[doc = "    },"]
15768    #[doc = "    \"sync_height_threshold\": {"]
15769    #[doc = "      \"description\": \"Sync height threshold: below this difference in height don't start syncing.\","]
15770    #[doc = "      \"type\": \"integer\","]
15771    #[doc = "      \"format\": \"uint64\","]
15772    #[doc = "      \"minimum\": 0.0"]
15773    #[doc = "    },"]
15774    #[doc = "    \"sync_max_block_requests\": {"]
15775    #[doc = "      \"description\": \"Maximum number of block requests to send to peers to sync\","]
15776    #[doc = "      \"type\": \"integer\","]
15777    #[doc = "      \"format\": \"uint\","]
15778    #[doc = "      \"minimum\": 0.0"]
15779    #[doc = "    },"]
15780    #[doc = "    \"sync_step_period\": {"]
15781    #[doc = "      \"description\": \"While syncing, how long to check for each step.\","]
15782    #[doc = "      \"type\": \"array\","]
15783    #[doc = "      \"items\": {"]
15784    #[doc = "        \"type\": \"integer\","]
15785    #[doc = "        \"format\": \"uint64\","]
15786    #[doc = "        \"minimum\": 0.0"]
15787    #[doc = "      },"]
15788    #[doc = "      \"maxItems\": 2,"]
15789    #[doc = "      \"minItems\": 2"]
15790    #[doc = "    },"]
15791    #[doc = "    \"tracked_shards_config\": {"]
15792    #[doc = "      \"$ref\": \"#/components/schemas/TrackedShardsConfig\""]
15793    #[doc = "    },"]
15794    #[doc = "    \"transaction_pool_size_limit\": {"]
15795    #[doc = "      \"description\": \"Limit of the size of per-shard transaction pool measured in bytes. If not set, the size\\n will be unbounded.\","]
15796    #[doc = "      \"type\": ["]
15797    #[doc = "        \"integer\","]
15798    #[doc = "        \"null\""]
15799    #[doc = "      ],"]
15800    #[doc = "      \"format\": \"uint64\","]
15801    #[doc = "      \"minimum\": 0.0"]
15802    #[doc = "    },"]
15803    #[doc = "    \"transaction_request_handler_threads\": {"]
15804    #[doc = "      \"type\": \"integer\","]
15805    #[doc = "      \"format\": \"uint\","]
15806    #[doc = "      \"minimum\": 0.0"]
15807    #[doc = "    },"]
15808    #[doc = "    \"trie_viewer_state_size_limit\": {"]
15809    #[doc = "      \"description\": \"Upper bound of the byte size of contract state that is still viewable. None is no limit\","]
15810    #[doc = "      \"type\": ["]
15811    #[doc = "        \"integer\","]
15812    #[doc = "        \"null\""]
15813    #[doc = "      ],"]
15814    #[doc = "      \"format\": \"uint64\","]
15815    #[doc = "      \"minimum\": 0.0"]
15816    #[doc = "    },"]
15817    #[doc = "    \"ttl_account_id_router\": {"]
15818    #[doc = "      \"description\": \"Time to persist Accounts Id in the router without removing them.\","]
15819    #[doc = "      \"type\": \"array\","]
15820    #[doc = "      \"items\": {"]
15821    #[doc = "        \"type\": \"integer\","]
15822    #[doc = "        \"format\": \"uint64\","]
15823    #[doc = "        \"minimum\": 0.0"]
15824    #[doc = "      },"]
15825    #[doc = "      \"maxItems\": 2,"]
15826    #[doc = "      \"minItems\": 2"]
15827    #[doc = "    },"]
15828    #[doc = "    \"tx_routing_height_horizon\": {"]
15829    #[doc = "      \"description\": \"If the node is not a chunk producer within that many blocks, then route\\n to upcoming chunk producers.\","]
15830    #[doc = "      \"type\": \"integer\","]
15831    #[doc = "      \"format\": \"uint64\","]
15832    #[doc = "      \"minimum\": 0.0"]
15833    #[doc = "    },"]
15834    #[doc = "    \"version\": {"]
15835    #[doc = "      \"description\": \"Version of the binary.\","]
15836    #[doc = "      \"allOf\": ["]
15837    #[doc = "        {"]
15838    #[doc = "          \"$ref\": \"#/components/schemas/Version\""]
15839    #[doc = "        }"]
15840    #[doc = "      ]"]
15841    #[doc = "    },"]
15842    #[doc = "    \"view_client_threads\": {"]
15843    #[doc = "      \"description\": \"Number of threads for ViewClientActor pool.\","]
15844    #[doc = "      \"type\": \"integer\","]
15845    #[doc = "      \"format\": \"uint\","]
15846    #[doc = "      \"minimum\": 0.0"]
15847    #[doc = "    },"]
15848    #[doc = "    \"view_client_throttle_period\": {"]
15849    #[doc = "      \"description\": \"Number of seconds between state requests for view client.\","]
15850    #[doc = "      \"type\": \"array\","]
15851    #[doc = "      \"items\": {"]
15852    #[doc = "        \"type\": \"integer\","]
15853    #[doc = "        \"format\": \"uint64\","]
15854    #[doc = "        \"minimum\": 0.0"]
15855    #[doc = "      },"]
15856    #[doc = "      \"maxItems\": 2,"]
15857    #[doc = "      \"minItems\": 2"]
15858    #[doc = "    }"]
15859    #[doc = "  }"]
15860    #[doc = "}"]
15861    #[doc = r" ```"]
15862    #[doc = r" </details>"]
15863    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
15864    pub struct RpcClientConfigResponse {
15865        #[doc = "Not clear old data, set `true` for archive nodes."]
15866        pub archive: bool,
15867        #[doc = "Horizon at which instead of fetching block, fetch full state."]
15868        pub block_fetch_horizon: u64,
15869        #[doc = "Behind this horizon header fetch kicks in."]
15870        pub block_header_fetch_horizon: u64,
15871        #[doc = "Duration to check for producing / skipping block."]
15872        pub block_production_tracking_delay: [u64; 2usize],
15873        #[doc = "Time between check to perform catchup."]
15874        pub catchup_step_period: [u64; 2usize],
15875        #[doc = "Chain id for status."]
15876        pub chain_id: ::std::string::String,
15877        #[doc = "Optional config for the Chunk Distribution Network feature.\n If set to `None` then this node does not participate in the Chunk Distribution Network.\n Nodes not participating will still function fine, but possibly with higher\n latency due to the need of requesting chunks over the peer-to-peer network."]
15878        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
15879        pub chunk_distribution_network: ::std::option::Option<ChunkDistributionNetworkConfig>,
15880        #[doc = "Time between checking to re-request chunks."]
15881        pub chunk_request_retry_period: [u64; 2usize],
15882        #[doc = "Multiplier for the wait time for all chunks to be received."]
15883        pub chunk_wait_mult: [i32; 2usize],
15884        #[doc = "Number of threads to execute background migration work in client."]
15885        pub client_background_migration_threads: u32,
15886        #[doc = "Time between running doomslug timer."]
15887        pub doomslug_step_period: [u64; 2usize],
15888        pub enable_multiline_logging: bool,
15889        #[doc = "Re-export storage layer statistics as prometheus metrics."]
15890        pub enable_statistics_export: bool,
15891        #[doc = "Epoch length."]
15892        pub epoch_length: u64,
15893        #[doc = "Options for epoch sync."]
15894        pub epoch_sync: EpochSyncConfig,
15895        #[doc = "Graceful shutdown at expected block height."]
15896        pub expected_shutdown: MutableConfigValue,
15897        #[doc = "Garbage collection configuration."]
15898        pub gc: GcConfig,
15899        #[doc = "Expected increase of header head height per second during header sync"]
15900        pub header_sync_expected_height_per_second: u64,
15901        #[doc = "How much time to wait after initial header sync"]
15902        pub header_sync_initial_timeout: [u64; 2usize],
15903        #[doc = "How much time to wait after some progress is made in header sync"]
15904        pub header_sync_progress_timeout: [u64; 2usize],
15905        #[doc = "How much time to wait before banning a peer in header sync if sync is too slow"]
15906        pub header_sync_stall_ban_timeout: [u64; 2usize],
15907        #[doc = "Period between logging summary information."]
15908        pub log_summary_period: [u64; 2usize],
15909        #[doc = "Enable coloring of the logs"]
15910        pub log_summary_style: LogSummaryStyle,
15911        #[doc = "Maximum wait for approvals before producing block."]
15912        pub max_block_production_delay: [u64; 2usize],
15913        #[doc = "Maximum duration before skipping given height."]
15914        pub max_block_wait_delay: [u64; 2usize],
15915        #[doc = "Max burnt gas per view method.  If present, overrides value stored in\n genesis file.  The value only affects the RPCs without influencing the\n protocol thus changing it per-node doesn’t affect the blockchain."]
15916        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
15917        pub max_gas_burnt_view: ::std::option::Option<u64>,
15918        #[doc = "Minimum duration before producing block."]
15919        pub min_block_production_delay: [u64; 2usize],
15920        #[doc = "Minimum number of peers to start syncing."]
15921        pub min_num_peers: u32,
15922        #[doc = "Number of block producer seats"]
15923        pub num_block_producer_seats: u64,
15924        #[doc = "Maximum size of state witnesses in the OrphanStateWitnessPool.\n\n We keep only orphan witnesses which are smaller than this size.\n This limits the maximum memory usage of OrphanStateWitnessPool."]
15925        pub orphan_state_witness_max_size: u64,
15926        #[doc = "OrphanStateWitnessPool keeps instances of ChunkStateWitness which can't be processed\n because the previous block isn't available. The witnesses wait in the pool until the\n required block appears. This variable controls how many witnesses can be stored in the pool."]
15927        pub orphan_state_witness_pool_size: u32,
15928        #[doc = "Limit the time of adding transactions to a chunk.\n A node produces a chunk by adding transactions from the transaction pool until\n some limit is reached. This time limit ensures that adding transactions won't take\n longer than the specified duration, which helps to produce the chunk quickly."]
15929        pub produce_chunk_add_transactions_time_limit: ::std::string::String,
15930        #[doc = "Produce empty blocks, use `false` for testing."]
15931        pub produce_empty_blocks: bool,
15932        pub resharding_config: MutableConfigValue,
15933        #[doc = "Listening rpc port for status."]
15934        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
15935        pub rpc_addr: ::std::option::Option<::std::string::String>,
15936        #[doc = "Save observed instances of ChunkStateWitness to the database in DBCol::LatestChunkStateWitnesses.\n Saving the latest witnesses is useful for analysis and debugging.\n When this option is enabled, the node will save ALL witnesses it observes, even invalid ones,\n which can cause extra load on the database. This option is not recommended for production use,\n as a large number of incoming witnesses could cause denial of service."]
15937        pub save_latest_witnesses: bool,
15938        #[doc = "save_trie_changes should be set to true iff\n - archive if false - non-archival nodes need trie changes to perform garbage collection\n - archive is true, cold_store is configured and migration to split_storage is finished - node\n working in split storage mode needs trie changes in order to do garbage collection on hot."]
15939        pub save_trie_changes: bool,
15940        #[doc = "Skip waiting for sync (for testing or single node testnet)."]
15941        pub skip_sync_wait: bool,
15942        #[doc = "Options for syncing state."]
15943        pub state_sync: StateSyncConfig,
15944        #[doc = "Whether to use the State Sync mechanism.\n If disabled, the node will do Block Sync instead of State Sync."]
15945        pub state_sync_enabled: bool,
15946        #[doc = "Additional waiting period after a failed request to external storage"]
15947        pub state_sync_external_backoff: [u64; 2usize],
15948        #[doc = "How long to wait for a response from centralized state sync"]
15949        pub state_sync_external_timeout: [u64; 2usize],
15950        #[doc = "How long to wait for a response from p2p state sync"]
15951        pub state_sync_p2p_timeout: [u64; 2usize],
15952        #[doc = "How long to wait after a failed state sync request"]
15953        pub state_sync_retry_backoff: [u64; 2usize],
15954        #[doc = "How often to check that we are not out of sync."]
15955        pub sync_check_period: [u64; 2usize],
15956        #[doc = "Sync height threshold: below this difference in height don't start syncing."]
15957        pub sync_height_threshold: u64,
15958        #[doc = "Maximum number of block requests to send to peers to sync"]
15959        pub sync_max_block_requests: u32,
15960        #[doc = "While syncing, how long to check for each step."]
15961        pub sync_step_period: [u64; 2usize],
15962        pub tracked_shards_config: TrackedShardsConfig,
15963        #[doc = "Limit of the size of per-shard transaction pool measured in bytes. If not set, the size\n will be unbounded."]
15964        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
15965        pub transaction_pool_size_limit: ::std::option::Option<u64>,
15966        pub transaction_request_handler_threads: u32,
15967        #[doc = "Upper bound of the byte size of contract state that is still viewable. None is no limit"]
15968        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
15969        pub trie_viewer_state_size_limit: ::std::option::Option<u64>,
15970        #[doc = "Time to persist Accounts Id in the router without removing them."]
15971        pub ttl_account_id_router: [u64; 2usize],
15972        #[doc = "If the node is not a chunk producer within that many blocks, then route\n to upcoming chunk producers."]
15973        pub tx_routing_height_horizon: u64,
15974        #[doc = "Version of the binary."]
15975        pub version: Version,
15976        #[doc = "Number of threads for ViewClientActor pool."]
15977        pub view_client_threads: u32,
15978        #[doc = "Number of seconds between state requests for view client."]
15979        pub view_client_throttle_period: [u64; 2usize],
15980    }
15981    impl ::std::convert::From<&RpcClientConfigResponse> for RpcClientConfigResponse {
15982        fn from(value: &RpcClientConfigResponse) -> Self {
15983            value.clone()
15984        }
15985    }
15986    #[doc = "`RpcCongestionLevelRequest`"]
15987    #[doc = r""]
15988    #[doc = r" <details><summary>JSON schema</summary>"]
15989    #[doc = r""]
15990    #[doc = r" ```json"]
15991    #[doc = "{"]
15992    #[doc = "  \"title\": \"RpcCongestionLevelRequest\","]
15993    #[doc = "  \"type\": \"object\","]
15994    #[doc = "  \"anyOf\": ["]
15995    #[doc = "    {"]
15996    #[doc = "      \"type\": \"object\","]
15997    #[doc = "      \"required\": ["]
15998    #[doc = "        \"block_id\","]
15999    #[doc = "        \"shard_id\""]
16000    #[doc = "      ],"]
16001    #[doc = "      \"properties\": {"]
16002    #[doc = "        \"block_id\": {"]
16003    #[doc = "          \"$ref\": \"#/components/schemas/BlockId\""]
16004    #[doc = "        },"]
16005    #[doc = "        \"shard_id\": {"]
16006    #[doc = "          \"$ref\": \"#/components/schemas/ShardId\""]
16007    #[doc = "        }"]
16008    #[doc = "      }"]
16009    #[doc = "    },"]
16010    #[doc = "    {"]
16011    #[doc = "      \"type\": \"object\","]
16012    #[doc = "      \"required\": ["]
16013    #[doc = "        \"chunk_id\""]
16014    #[doc = "      ],"]
16015    #[doc = "      \"properties\": {"]
16016    #[doc = "        \"chunk_id\": {"]
16017    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
16018    #[doc = "        }"]
16019    #[doc = "      }"]
16020    #[doc = "    }"]
16021    #[doc = "  ]"]
16022    #[doc = "}"]
16023    #[doc = r" ```"]
16024    #[doc = r" </details>"]
16025    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16026    #[serde(untagged)]
16027    pub enum RpcCongestionLevelRequest {
16028        Variant0 {
16029            block_id: BlockId,
16030            shard_id: ShardId,
16031        },
16032        Variant1 {
16033            chunk_id: CryptoHash,
16034        },
16035    }
16036    impl ::std::convert::From<&Self> for RpcCongestionLevelRequest {
16037        fn from(value: &RpcCongestionLevelRequest) -> Self {
16038            value.clone()
16039        }
16040    }
16041    #[doc = "`RpcCongestionLevelResponse`"]
16042    #[doc = r""]
16043    #[doc = r" <details><summary>JSON schema</summary>"]
16044    #[doc = r""]
16045    #[doc = r" ```json"]
16046    #[doc = "{"]
16047    #[doc = "  \"type\": \"object\","]
16048    #[doc = "  \"required\": ["]
16049    #[doc = "    \"congestion_level\""]
16050    #[doc = "  ],"]
16051    #[doc = "  \"properties\": {"]
16052    #[doc = "    \"congestion_level\": {"]
16053    #[doc = "      \"type\": \"number\","]
16054    #[doc = "      \"format\": \"double\""]
16055    #[doc = "    }"]
16056    #[doc = "  }"]
16057    #[doc = "}"]
16058    #[doc = r" ```"]
16059    #[doc = r" </details>"]
16060    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16061    pub struct RpcCongestionLevelResponse {
16062        pub congestion_level: f64,
16063    }
16064    impl ::std::convert::From<&RpcCongestionLevelResponse> for RpcCongestionLevelResponse {
16065        fn from(value: &RpcCongestionLevelResponse) -> Self {
16066            value.clone()
16067        }
16068    }
16069    #[doc = "`RpcError`"]
16070    #[doc = r""]
16071    #[doc = r" <details><summary>JSON schema</summary>"]
16072    #[doc = r""]
16073    #[doc = r" ```json"]
16074    #[doc = "{"]
16075    #[doc = "  \"type\": \"object\","]
16076    #[doc = "  \"required\": ["]
16077    #[doc = "    \"code\","]
16078    #[doc = "    \"message\""]
16079    #[doc = "  ],"]
16080    #[doc = "  \"properties\": {"]
16081    #[doc = "    \"cause\": {"]
16082    #[doc = "      \"oneOf\": ["]
16083    #[doc = "        {"]
16084    #[doc = "          \"type\": \"null\""]
16085    #[doc = "        },"]
16086    #[doc = "        {"]
16087    #[doc = "          \"allOf\": ["]
16088    #[doc = "            {"]
16089    #[doc = "              \"$ref\": \"#/components/schemas/CauseRpcErrorKind\""]
16090    #[doc = "            }"]
16091    #[doc = "          ]"]
16092    #[doc = "        }"]
16093    #[doc = "      ]"]
16094    #[doc = "    },"]
16095    #[doc = "    \"code\": {"]
16096    #[doc = "      \"type\": \"integer\","]
16097    #[doc = "      \"format\": \"int64\""]
16098    #[doc = "    },"]
16099    #[doc = "    \"data\": {},"]
16100    #[doc = "    \"message\": {"]
16101    #[doc = "      \"type\": \"string\""]
16102    #[doc = "    },"]
16103    #[doc = "    \"name\": {"]
16104    #[doc = "      \"oneOf\": ["]
16105    #[doc = "        {"]
16106    #[doc = "          \"type\": \"null\""]
16107    #[doc = "        },"]
16108    #[doc = "        {"]
16109    #[doc = "          \"allOf\": ["]
16110    #[doc = "            {"]
16111    #[doc = "              \"$ref\": \"#/components/schemas/NameRpcErrorKind\""]
16112    #[doc = "            }"]
16113    #[doc = "          ]"]
16114    #[doc = "        }"]
16115    #[doc = "      ]"]
16116    #[doc = "    }"]
16117    #[doc = "  }"]
16118    #[doc = "}"]
16119    #[doc = r" ```"]
16120    #[doc = r" </details>"]
16121    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16122    pub struct RpcError {
16123        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
16124        pub cause: ::std::option::Option<CauseRpcErrorKind>,
16125        pub code: i64,
16126        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
16127        pub data: ::std::option::Option<::serde_json::Value>,
16128        pub message: ::std::string::String,
16129        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
16130        pub name: ::std::option::Option<NameRpcErrorKind>,
16131    }
16132    impl ::std::convert::From<&RpcError> for RpcError {
16133        fn from(value: &RpcError) -> Self {
16134            value.clone()
16135        }
16136    }
16137    #[doc = "`RpcGasPriceRequest`"]
16138    #[doc = r""]
16139    #[doc = r" <details><summary>JSON schema</summary>"]
16140    #[doc = r""]
16141    #[doc = r" ```json"]
16142    #[doc = "{"]
16143    #[doc = "  \"title\": \"RpcGasPriceRequest\","]
16144    #[doc = "  \"type\": \"object\","]
16145    #[doc = "  \"properties\": {"]
16146    #[doc = "    \"block_id\": {"]
16147    #[doc = "      \"oneOf\": ["]
16148    #[doc = "        {"]
16149    #[doc = "          \"type\": \"null\""]
16150    #[doc = "        },"]
16151    #[doc = "        {"]
16152    #[doc = "          \"allOf\": ["]
16153    #[doc = "            {"]
16154    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
16155    #[doc = "            }"]
16156    #[doc = "          ]"]
16157    #[doc = "        }"]
16158    #[doc = "      ]"]
16159    #[doc = "    }"]
16160    #[doc = "  }"]
16161    #[doc = "}"]
16162    #[doc = r" ```"]
16163    #[doc = r" </details>"]
16164    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16165    pub struct RpcGasPriceRequest {
16166        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
16167        pub block_id: ::std::option::Option<BlockId>,
16168    }
16169    impl ::std::convert::From<&RpcGasPriceRequest> for RpcGasPriceRequest {
16170        fn from(value: &RpcGasPriceRequest) -> Self {
16171            value.clone()
16172        }
16173    }
16174    impl ::std::default::Default for RpcGasPriceRequest {
16175        fn default() -> Self {
16176            Self {
16177                block_id: Default::default(),
16178            }
16179        }
16180    }
16181    #[doc = "`RpcGasPriceResponse`"]
16182    #[doc = r""]
16183    #[doc = r" <details><summary>JSON schema</summary>"]
16184    #[doc = r""]
16185    #[doc = r" ```json"]
16186    #[doc = "{"]
16187    #[doc = "  \"type\": \"object\","]
16188    #[doc = "  \"required\": ["]
16189    #[doc = "    \"gas_price\""]
16190    #[doc = "  ],"]
16191    #[doc = "  \"properties\": {"]
16192    #[doc = "    \"gas_price\": {"]
16193    #[doc = "      \"type\": \"string\""]
16194    #[doc = "    }"]
16195    #[doc = "  }"]
16196    #[doc = "}"]
16197    #[doc = r" ```"]
16198    #[doc = r" </details>"]
16199    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16200    pub struct RpcGasPriceResponse {
16201        pub gas_price: ::std::string::String,
16202    }
16203    impl ::std::convert::From<&RpcGasPriceResponse> for RpcGasPriceResponse {
16204        fn from(value: &RpcGasPriceResponse) -> Self {
16205            value.clone()
16206        }
16207    }
16208    #[doc = "`RpcHealthRequest`"]
16209    #[doc = r""]
16210    #[doc = r" <details><summary>JSON schema</summary>"]
16211    #[doc = r""]
16212    #[doc = r" ```json"]
16213    #[doc = "{"]
16214    #[doc = "  \"title\": \"RpcHealthRequest\","]
16215    #[doc = "  \"type\": \"object\""]
16216    #[doc = "}"]
16217    #[doc = r" ```"]
16218    #[doc = r" </details>"]
16219    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16220    #[serde(transparent)]
16221    pub struct RpcHealthRequest(pub ::serde_json::Map<::std::string::String, ::serde_json::Value>);
16222    impl ::std::ops::Deref for RpcHealthRequest {
16223        type Target = ::serde_json::Map<::std::string::String, ::serde_json::Value>;
16224        fn deref(&self) -> &::serde_json::Map<::std::string::String, ::serde_json::Value> {
16225            &self.0
16226        }
16227    }
16228    impl ::std::convert::From<RpcHealthRequest>
16229        for ::serde_json::Map<::std::string::String, ::serde_json::Value>
16230    {
16231        fn from(value: RpcHealthRequest) -> Self {
16232            value.0
16233        }
16234    }
16235    impl ::std::convert::From<&RpcHealthRequest> for RpcHealthRequest {
16236        fn from(value: &RpcHealthRequest) -> Self {
16237            value.clone()
16238        }
16239    }
16240    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
16241        for RpcHealthRequest
16242    {
16243        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
16244            Self(value)
16245        }
16246    }
16247    #[doc = "`RpcHealthResponse`"]
16248    #[doc = r""]
16249    #[doc = r" <details><summary>JSON schema</summary>"]
16250    #[doc = r""]
16251    #[doc = r" ```json"]
16252    #[doc = "{"]
16253    #[doc = "  \"type\": \"object\""]
16254    #[doc = "}"]
16255    #[doc = r" ```"]
16256    #[doc = r" </details>"]
16257    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16258    #[serde(transparent)]
16259    pub struct RpcHealthResponse(pub ::serde_json::Map<::std::string::String, ::serde_json::Value>);
16260    impl ::std::ops::Deref for RpcHealthResponse {
16261        type Target = ::serde_json::Map<::std::string::String, ::serde_json::Value>;
16262        fn deref(&self) -> &::serde_json::Map<::std::string::String, ::serde_json::Value> {
16263            &self.0
16264        }
16265    }
16266    impl ::std::convert::From<RpcHealthResponse>
16267        for ::serde_json::Map<::std::string::String, ::serde_json::Value>
16268    {
16269        fn from(value: RpcHealthResponse) -> Self {
16270            value.0
16271        }
16272    }
16273    impl ::std::convert::From<&RpcHealthResponse> for RpcHealthResponse {
16274        fn from(value: &RpcHealthResponse) -> Self {
16275            value.clone()
16276        }
16277    }
16278    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
16279        for RpcHealthResponse
16280    {
16281        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
16282            Self(value)
16283        }
16284    }
16285    #[doc = "`RpcKnownProducer`"]
16286    #[doc = r""]
16287    #[doc = r" <details><summary>JSON schema</summary>"]
16288    #[doc = r""]
16289    #[doc = r" ```json"]
16290    #[doc = "{"]
16291    #[doc = "  \"type\": \"object\","]
16292    #[doc = "  \"required\": ["]
16293    #[doc = "    \"account_id\","]
16294    #[doc = "    \"peer_id\""]
16295    #[doc = "  ],"]
16296    #[doc = "  \"properties\": {"]
16297    #[doc = "    \"account_id\": {"]
16298    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
16299    #[doc = "    },"]
16300    #[doc = "    \"addr\": {"]
16301    #[doc = "      \"type\": ["]
16302    #[doc = "        \"string\","]
16303    #[doc = "        \"null\""]
16304    #[doc = "      ]"]
16305    #[doc = "    },"]
16306    #[doc = "    \"peer_id\": {"]
16307    #[doc = "      \"$ref\": \"#/components/schemas/PeerId\""]
16308    #[doc = "    }"]
16309    #[doc = "  }"]
16310    #[doc = "}"]
16311    #[doc = r" ```"]
16312    #[doc = r" </details>"]
16313    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16314    pub struct RpcKnownProducer {
16315        pub account_id: AccountId,
16316        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
16317        pub addr: ::std::option::Option<::std::string::String>,
16318        pub peer_id: PeerId,
16319    }
16320    impl ::std::convert::From<&RpcKnownProducer> for RpcKnownProducer {
16321        fn from(value: &RpcKnownProducer) -> Self {
16322            value.clone()
16323        }
16324    }
16325    #[doc = "`RpcLightClientBlockProofRequest`"]
16326    #[doc = r""]
16327    #[doc = r" <details><summary>JSON schema</summary>"]
16328    #[doc = r""]
16329    #[doc = r" ```json"]
16330    #[doc = "{"]
16331    #[doc = "  \"title\": \"RpcLightClientBlockProofRequest\","]
16332    #[doc = "  \"type\": \"object\","]
16333    #[doc = "  \"required\": ["]
16334    #[doc = "    \"block_hash\","]
16335    #[doc = "    \"light_client_head\""]
16336    #[doc = "  ],"]
16337    #[doc = "  \"properties\": {"]
16338    #[doc = "    \"block_hash\": {"]
16339    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
16340    #[doc = "    },"]
16341    #[doc = "    \"light_client_head\": {"]
16342    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
16343    #[doc = "    }"]
16344    #[doc = "  }"]
16345    #[doc = "}"]
16346    #[doc = r" ```"]
16347    #[doc = r" </details>"]
16348    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16349    pub struct RpcLightClientBlockProofRequest {
16350        pub block_hash: CryptoHash,
16351        pub light_client_head: CryptoHash,
16352    }
16353    impl ::std::convert::From<&RpcLightClientBlockProofRequest> for RpcLightClientBlockProofRequest {
16354        fn from(value: &RpcLightClientBlockProofRequest) -> Self {
16355            value.clone()
16356        }
16357    }
16358    #[doc = "`RpcLightClientBlockProofResponse`"]
16359    #[doc = r""]
16360    #[doc = r" <details><summary>JSON schema</summary>"]
16361    #[doc = r""]
16362    #[doc = r" ```json"]
16363    #[doc = "{"]
16364    #[doc = "  \"type\": \"object\","]
16365    #[doc = "  \"required\": ["]
16366    #[doc = "    \"block_header_lite\","]
16367    #[doc = "    \"block_proof\""]
16368    #[doc = "  ],"]
16369    #[doc = "  \"properties\": {"]
16370    #[doc = "    \"block_header_lite\": {"]
16371    #[doc = "      \"$ref\": \"#/components/schemas/LightClientBlockLiteView\""]
16372    #[doc = "    },"]
16373    #[doc = "    \"block_proof\": {"]
16374    #[doc = "      \"type\": \"array\","]
16375    #[doc = "      \"items\": {"]
16376    #[doc = "        \"$ref\": \"#/components/schemas/MerklePathItem\""]
16377    #[doc = "      }"]
16378    #[doc = "    }"]
16379    #[doc = "  }"]
16380    #[doc = "}"]
16381    #[doc = r" ```"]
16382    #[doc = r" </details>"]
16383    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16384    pub struct RpcLightClientBlockProofResponse {
16385        pub block_header_lite: LightClientBlockLiteView,
16386        pub block_proof: ::std::vec::Vec<MerklePathItem>,
16387    }
16388    impl ::std::convert::From<&RpcLightClientBlockProofResponse> for RpcLightClientBlockProofResponse {
16389        fn from(value: &RpcLightClientBlockProofResponse) -> Self {
16390            value.clone()
16391        }
16392    }
16393    #[doc = "`RpcLightClientExecutionProofRequest`"]
16394    #[doc = r""]
16395    #[doc = r" <details><summary>JSON schema</summary>"]
16396    #[doc = r""]
16397    #[doc = r" ```json"]
16398    #[doc = "{"]
16399    #[doc = "  \"title\": \"RpcLightClientExecutionProofRequest\","]
16400    #[doc = "  \"type\": \"object\","]
16401    #[doc = "  \"anyOf\": ["]
16402    #[doc = "    {"]
16403    #[doc = "      \"type\": \"object\","]
16404    #[doc = "      \"required\": ["]
16405    #[doc = "        \"sender_id\","]
16406    #[doc = "        \"transaction_hash\""]
16407    #[doc = "      ],"]
16408    #[doc = "      \"properties\": {"]
16409    #[doc = "        \"sender_id\": {"]
16410    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
16411    #[doc = "        },"]
16412    #[doc = "        \"transaction_hash\": {"]
16413    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
16414    #[doc = "        }"]
16415    #[doc = "      }"]
16416    #[doc = "    },"]
16417    #[doc = "    {"]
16418    #[doc = "      \"type\": \"object\","]
16419    #[doc = "      \"required\": ["]
16420    #[doc = "        \"receipt_id\","]
16421    #[doc = "        \"receiver_id\""]
16422    #[doc = "      ],"]
16423    #[doc = "      \"properties\": {"]
16424    #[doc = "        \"receipt_id\": {"]
16425    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
16426    #[doc = "        },"]
16427    #[doc = "        \"receiver_id\": {"]
16428    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
16429    #[doc = "        }"]
16430    #[doc = "      }"]
16431    #[doc = "    }"]
16432    #[doc = "  ],"]
16433    #[doc = "  \"required\": ["]
16434    #[doc = "    \"light_client_head\","]
16435    #[doc = "    \"type\""]
16436    #[doc = "  ],"]
16437    #[doc = "  \"properties\": {"]
16438    #[doc = "    \"light_client_head\": {"]
16439    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
16440    #[doc = "    },"]
16441    #[doc = "    \"type\": {"]
16442    #[doc = "      \"$ref\": \"#/components/schemas/TypeTransactionOrReceiptId\""]
16443    #[doc = "    }"]
16444    #[doc = "  }"]
16445    #[doc = "}"]
16446    #[doc = r" ```"]
16447    #[doc = r" </details>"]
16448    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16449    #[serde(untagged)]
16450    pub enum RpcLightClientExecutionProofRequest {
16451        Variant0 {
16452            light_client_head: CryptoHash,
16453            sender_id: AccountId,
16454            transaction_hash: CryptoHash,
16455            #[serde(rename = "type")]
16456            type_: TypeTransactionOrReceiptId,
16457        },
16458        Variant1 {
16459            light_client_head: CryptoHash,
16460            receipt_id: CryptoHash,
16461            receiver_id: AccountId,
16462            #[serde(rename = "type")]
16463            type_: TypeTransactionOrReceiptId,
16464        },
16465    }
16466    impl ::std::convert::From<&Self> for RpcLightClientExecutionProofRequest {
16467        fn from(value: &RpcLightClientExecutionProofRequest) -> Self {
16468            value.clone()
16469        }
16470    }
16471    #[doc = "`RpcLightClientExecutionProofResponse`"]
16472    #[doc = r""]
16473    #[doc = r" <details><summary>JSON schema</summary>"]
16474    #[doc = r""]
16475    #[doc = r" ```json"]
16476    #[doc = "{"]
16477    #[doc = "  \"type\": \"object\","]
16478    #[doc = "  \"required\": ["]
16479    #[doc = "    \"block_header_lite\","]
16480    #[doc = "    \"block_proof\","]
16481    #[doc = "    \"outcome_proof\","]
16482    #[doc = "    \"outcome_root_proof\""]
16483    #[doc = "  ],"]
16484    #[doc = "  \"properties\": {"]
16485    #[doc = "    \"block_header_lite\": {"]
16486    #[doc = "      \"$ref\": \"#/components/schemas/LightClientBlockLiteView\""]
16487    #[doc = "    },"]
16488    #[doc = "    \"block_proof\": {"]
16489    #[doc = "      \"type\": \"array\","]
16490    #[doc = "      \"items\": {"]
16491    #[doc = "        \"$ref\": \"#/components/schemas/MerklePathItem\""]
16492    #[doc = "      }"]
16493    #[doc = "    },"]
16494    #[doc = "    \"outcome_proof\": {"]
16495    #[doc = "      \"$ref\": \"#/components/schemas/ExecutionOutcomeWithIdView\""]
16496    #[doc = "    },"]
16497    #[doc = "    \"outcome_root_proof\": {"]
16498    #[doc = "      \"type\": \"array\","]
16499    #[doc = "      \"items\": {"]
16500    #[doc = "        \"$ref\": \"#/components/schemas/MerklePathItem\""]
16501    #[doc = "      }"]
16502    #[doc = "    }"]
16503    #[doc = "  }"]
16504    #[doc = "}"]
16505    #[doc = r" ```"]
16506    #[doc = r" </details>"]
16507    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16508    pub struct RpcLightClientExecutionProofResponse {
16509        pub block_header_lite: LightClientBlockLiteView,
16510        pub block_proof: ::std::vec::Vec<MerklePathItem>,
16511        pub outcome_proof: ExecutionOutcomeWithIdView,
16512        pub outcome_root_proof: ::std::vec::Vec<MerklePathItem>,
16513    }
16514    impl ::std::convert::From<&RpcLightClientExecutionProofResponse>
16515        for RpcLightClientExecutionProofResponse
16516    {
16517        fn from(value: &RpcLightClientExecutionProofResponse) -> Self {
16518            value.clone()
16519        }
16520    }
16521    #[doc = "`RpcLightClientNextBlockRequest`"]
16522    #[doc = r""]
16523    #[doc = r" <details><summary>JSON schema</summary>"]
16524    #[doc = r""]
16525    #[doc = r" ```json"]
16526    #[doc = "{"]
16527    #[doc = "  \"title\": \"RpcLightClientNextBlockRequest\","]
16528    #[doc = "  \"type\": \"object\","]
16529    #[doc = "  \"required\": ["]
16530    #[doc = "    \"last_block_hash\""]
16531    #[doc = "  ],"]
16532    #[doc = "  \"properties\": {"]
16533    #[doc = "    \"last_block_hash\": {"]
16534    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
16535    #[doc = "    }"]
16536    #[doc = "  }"]
16537    #[doc = "}"]
16538    #[doc = r" ```"]
16539    #[doc = r" </details>"]
16540    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16541    pub struct RpcLightClientNextBlockRequest {
16542        pub last_block_hash: CryptoHash,
16543    }
16544    impl ::std::convert::From<&RpcLightClientNextBlockRequest> for RpcLightClientNextBlockRequest {
16545        fn from(value: &RpcLightClientNextBlockRequest) -> Self {
16546            value.clone()
16547        }
16548    }
16549    #[doc = "`RpcLightClientNextBlockResponse`"]
16550    #[doc = r""]
16551    #[doc = r" <details><summary>JSON schema</summary>"]
16552    #[doc = r""]
16553    #[doc = r" ```json"]
16554    #[doc = "{"]
16555    #[doc = "  \"type\": \"object\","]
16556    #[doc = "  \"properties\": {"]
16557    #[doc = "    \"approvals_after_next\": {"]
16558    #[doc = "      \"type\": \"array\","]
16559    #[doc = "      \"items\": {"]
16560    #[doc = "        \"oneOf\": ["]
16561    #[doc = "          {"]
16562    #[doc = "            \"type\": \"null\""]
16563    #[doc = "          },"]
16564    #[doc = "          {"]
16565    #[doc = "            \"allOf\": ["]
16566    #[doc = "              {"]
16567    #[doc = "                \"$ref\": \"#/components/schemas/Signature\""]
16568    #[doc = "              }"]
16569    #[doc = "            ]"]
16570    #[doc = "          }"]
16571    #[doc = "        ]"]
16572    #[doc = "      }"]
16573    #[doc = "    },"]
16574    #[doc = "    \"inner_lite\": {"]
16575    #[doc = "      \"$ref\": \"#/components/schemas/BlockHeaderInnerLiteView\""]
16576    #[doc = "    },"]
16577    #[doc = "    \"inner_rest_hash\": {"]
16578    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
16579    #[doc = "    },"]
16580    #[doc = "    \"next_block_inner_hash\": {"]
16581    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
16582    #[doc = "    },"]
16583    #[doc = "    \"next_bps\": {"]
16584    #[doc = "      \"type\": ["]
16585    #[doc = "        \"array\","]
16586    #[doc = "        \"null\""]
16587    #[doc = "      ],"]
16588    #[doc = "      \"items\": {"]
16589    #[doc = "        \"$ref\": \"#/components/schemas/ValidatorStakeView\""]
16590    #[doc = "      }"]
16591    #[doc = "    },"]
16592    #[doc = "    \"prev_block_hash\": {"]
16593    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
16594    #[doc = "    }"]
16595    #[doc = "  }"]
16596    #[doc = "}"]
16597    #[doc = r" ```"]
16598    #[doc = r" </details>"]
16599    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16600    pub struct RpcLightClientNextBlockResponse {
16601        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
16602        pub approvals_after_next: ::std::vec::Vec<::std::option::Option<Signature>>,
16603        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
16604        pub inner_lite: ::std::option::Option<BlockHeaderInnerLiteView>,
16605        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
16606        pub inner_rest_hash: ::std::option::Option<CryptoHash>,
16607        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
16608        pub next_block_inner_hash: ::std::option::Option<CryptoHash>,
16609        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
16610        pub next_bps: ::std::option::Option<::std::vec::Vec<ValidatorStakeView>>,
16611        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
16612        pub prev_block_hash: ::std::option::Option<CryptoHash>,
16613    }
16614    impl ::std::convert::From<&RpcLightClientNextBlockResponse> for RpcLightClientNextBlockResponse {
16615        fn from(value: &RpcLightClientNextBlockResponse) -> Self {
16616            value.clone()
16617        }
16618    }
16619    impl ::std::default::Default for RpcLightClientNextBlockResponse {
16620        fn default() -> Self {
16621            Self {
16622                approvals_after_next: Default::default(),
16623                inner_lite: Default::default(),
16624                inner_rest_hash: Default::default(),
16625                next_block_inner_hash: Default::default(),
16626                next_bps: Default::default(),
16627                prev_block_hash: Default::default(),
16628            }
16629        }
16630    }
16631    #[doc = "`RpcMaintenanceWindowsRequest`"]
16632    #[doc = r""]
16633    #[doc = r" <details><summary>JSON schema</summary>"]
16634    #[doc = r""]
16635    #[doc = r" ```json"]
16636    #[doc = "{"]
16637    #[doc = "  \"title\": \"RpcMaintenanceWindowsRequest\","]
16638    #[doc = "  \"type\": \"object\","]
16639    #[doc = "  \"required\": ["]
16640    #[doc = "    \"account_id\""]
16641    #[doc = "  ],"]
16642    #[doc = "  \"properties\": {"]
16643    #[doc = "    \"account_id\": {"]
16644    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
16645    #[doc = "    }"]
16646    #[doc = "  }"]
16647    #[doc = "}"]
16648    #[doc = r" ```"]
16649    #[doc = r" </details>"]
16650    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16651    pub struct RpcMaintenanceWindowsRequest {
16652        pub account_id: AccountId,
16653    }
16654    impl ::std::convert::From<&RpcMaintenanceWindowsRequest> for RpcMaintenanceWindowsRequest {
16655        fn from(value: &RpcMaintenanceWindowsRequest) -> Self {
16656            value.clone()
16657        }
16658    }
16659    #[doc = "`RpcNetworkInfoRequest`"]
16660    #[doc = r""]
16661    #[doc = r" <details><summary>JSON schema</summary>"]
16662    #[doc = r""]
16663    #[doc = r" ```json"]
16664    #[doc = "{"]
16665    #[doc = "  \"title\": \"RpcNetworkInfoRequest\","]
16666    #[doc = "  \"type\": \"object\""]
16667    #[doc = "}"]
16668    #[doc = r" ```"]
16669    #[doc = r" </details>"]
16670    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16671    #[serde(transparent)]
16672    pub struct RpcNetworkInfoRequest(
16673        pub ::serde_json::Map<::std::string::String, ::serde_json::Value>,
16674    );
16675    impl ::std::ops::Deref for RpcNetworkInfoRequest {
16676        type Target = ::serde_json::Map<::std::string::String, ::serde_json::Value>;
16677        fn deref(&self) -> &::serde_json::Map<::std::string::String, ::serde_json::Value> {
16678            &self.0
16679        }
16680    }
16681    impl ::std::convert::From<RpcNetworkInfoRequest>
16682        for ::serde_json::Map<::std::string::String, ::serde_json::Value>
16683    {
16684        fn from(value: RpcNetworkInfoRequest) -> Self {
16685            value.0
16686        }
16687    }
16688    impl ::std::convert::From<&RpcNetworkInfoRequest> for RpcNetworkInfoRequest {
16689        fn from(value: &RpcNetworkInfoRequest) -> Self {
16690            value.clone()
16691        }
16692    }
16693    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
16694        for RpcNetworkInfoRequest
16695    {
16696        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
16697            Self(value)
16698        }
16699    }
16700    #[doc = "`RpcNetworkInfoResponse`"]
16701    #[doc = r""]
16702    #[doc = r" <details><summary>JSON schema</summary>"]
16703    #[doc = r""]
16704    #[doc = r" ```json"]
16705    #[doc = "{"]
16706    #[doc = "  \"type\": \"object\","]
16707    #[doc = "  \"required\": ["]
16708    #[doc = "    \"active_peers\","]
16709    #[doc = "    \"known_producers\","]
16710    #[doc = "    \"num_active_peers\","]
16711    #[doc = "    \"peer_max_count\","]
16712    #[doc = "    \"received_bytes_per_sec\","]
16713    #[doc = "    \"sent_bytes_per_sec\""]
16714    #[doc = "  ],"]
16715    #[doc = "  \"properties\": {"]
16716    #[doc = "    \"active_peers\": {"]
16717    #[doc = "      \"type\": \"array\","]
16718    #[doc = "      \"items\": {"]
16719    #[doc = "        \"$ref\": \"#/components/schemas/RpcPeerInfo\""]
16720    #[doc = "      }"]
16721    #[doc = "    },"]
16722    #[doc = "    \"known_producers\": {"]
16723    #[doc = "      \"description\": \"Accounts of known block and chunk producers from routing table.\","]
16724    #[doc = "      \"type\": \"array\","]
16725    #[doc = "      \"items\": {"]
16726    #[doc = "        \"$ref\": \"#/components/schemas/RpcKnownProducer\""]
16727    #[doc = "      }"]
16728    #[doc = "    },"]
16729    #[doc = "    \"num_active_peers\": {"]
16730    #[doc = "      \"type\": \"integer\","]
16731    #[doc = "      \"format\": \"uint\","]
16732    #[doc = "      \"minimum\": 0.0"]
16733    #[doc = "    },"]
16734    #[doc = "    \"peer_max_count\": {"]
16735    #[doc = "      \"type\": \"integer\","]
16736    #[doc = "      \"format\": \"uint32\","]
16737    #[doc = "      \"minimum\": 0.0"]
16738    #[doc = "    },"]
16739    #[doc = "    \"received_bytes_per_sec\": {"]
16740    #[doc = "      \"type\": \"integer\","]
16741    #[doc = "      \"format\": \"uint64\","]
16742    #[doc = "      \"minimum\": 0.0"]
16743    #[doc = "    },"]
16744    #[doc = "    \"sent_bytes_per_sec\": {"]
16745    #[doc = "      \"type\": \"integer\","]
16746    #[doc = "      \"format\": \"uint64\","]
16747    #[doc = "      \"minimum\": 0.0"]
16748    #[doc = "    }"]
16749    #[doc = "  }"]
16750    #[doc = "}"]
16751    #[doc = r" ```"]
16752    #[doc = r" </details>"]
16753    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16754    pub struct RpcNetworkInfoResponse {
16755        pub active_peers: ::std::vec::Vec<RpcPeerInfo>,
16756        #[doc = "Accounts of known block and chunk producers from routing table."]
16757        pub known_producers: ::std::vec::Vec<RpcKnownProducer>,
16758        pub num_active_peers: u32,
16759        pub peer_max_count: u32,
16760        pub received_bytes_per_sec: u64,
16761        pub sent_bytes_per_sec: u64,
16762    }
16763    impl ::std::convert::From<&RpcNetworkInfoResponse> for RpcNetworkInfoResponse {
16764        fn from(value: &RpcNetworkInfoResponse) -> Self {
16765            value.clone()
16766        }
16767    }
16768    #[doc = "`RpcPeerInfo`"]
16769    #[doc = r""]
16770    #[doc = r" <details><summary>JSON schema</summary>"]
16771    #[doc = r""]
16772    #[doc = r" ```json"]
16773    #[doc = "{"]
16774    #[doc = "  \"type\": \"object\","]
16775    #[doc = "  \"required\": ["]
16776    #[doc = "    \"id\""]
16777    #[doc = "  ],"]
16778    #[doc = "  \"properties\": {"]
16779    #[doc = "    \"account_id\": {"]
16780    #[doc = "      \"oneOf\": ["]
16781    #[doc = "        {"]
16782    #[doc = "          \"type\": \"null\""]
16783    #[doc = "        },"]
16784    #[doc = "        {"]
16785    #[doc = "          \"allOf\": ["]
16786    #[doc = "            {"]
16787    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
16788    #[doc = "            }"]
16789    #[doc = "          ]"]
16790    #[doc = "        }"]
16791    #[doc = "      ]"]
16792    #[doc = "    },"]
16793    #[doc = "    \"addr\": {"]
16794    #[doc = "      \"type\": ["]
16795    #[doc = "        \"string\","]
16796    #[doc = "        \"null\""]
16797    #[doc = "      ]"]
16798    #[doc = "    },"]
16799    #[doc = "    \"id\": {"]
16800    #[doc = "      \"$ref\": \"#/components/schemas/PeerId\""]
16801    #[doc = "    }"]
16802    #[doc = "  }"]
16803    #[doc = "}"]
16804    #[doc = r" ```"]
16805    #[doc = r" </details>"]
16806    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16807    pub struct RpcPeerInfo {
16808        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
16809        pub account_id: ::std::option::Option<AccountId>,
16810        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
16811        pub addr: ::std::option::Option<::std::string::String>,
16812        pub id: PeerId,
16813    }
16814    impl ::std::convert::From<&RpcPeerInfo> for RpcPeerInfo {
16815        fn from(value: &RpcPeerInfo) -> Self {
16816            value.clone()
16817        }
16818    }
16819    #[doc = "`RpcProtocolConfigRequest`"]
16820    #[doc = r""]
16821    #[doc = r" <details><summary>JSON schema</summary>"]
16822    #[doc = r""]
16823    #[doc = r" ```json"]
16824    #[doc = "{"]
16825    #[doc = "  \"title\": \"RpcProtocolConfigRequest\","]
16826    #[doc = "  \"type\": \"object\","]
16827    #[doc = "  \"oneOf\": ["]
16828    #[doc = "    {"]
16829    #[doc = "      \"type\": \"object\","]
16830    #[doc = "      \"required\": ["]
16831    #[doc = "        \"block_id\""]
16832    #[doc = "      ],"]
16833    #[doc = "      \"properties\": {"]
16834    #[doc = "        \"block_id\": {"]
16835    #[doc = "          \"$ref\": \"#/components/schemas/BlockId\""]
16836    #[doc = "        }"]
16837    #[doc = "      }"]
16838    #[doc = "    },"]
16839    #[doc = "    {"]
16840    #[doc = "      \"type\": \"object\","]
16841    #[doc = "      \"required\": ["]
16842    #[doc = "        \"finality\""]
16843    #[doc = "      ],"]
16844    #[doc = "      \"properties\": {"]
16845    #[doc = "        \"finality\": {"]
16846    #[doc = "          \"$ref\": \"#/components/schemas/Finality\""]
16847    #[doc = "        }"]
16848    #[doc = "      }"]
16849    #[doc = "    },"]
16850    #[doc = "    {"]
16851    #[doc = "      \"type\": \"object\","]
16852    #[doc = "      \"required\": ["]
16853    #[doc = "        \"sync_checkpoint\""]
16854    #[doc = "      ],"]
16855    #[doc = "      \"properties\": {"]
16856    #[doc = "        \"sync_checkpoint\": {"]
16857    #[doc = "          \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
16858    #[doc = "        }"]
16859    #[doc = "      }"]
16860    #[doc = "    }"]
16861    #[doc = "  ]"]
16862    #[doc = "}"]
16863    #[doc = r" ```"]
16864    #[doc = r" </details>"]
16865    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
16866    pub enum RpcProtocolConfigRequest {
16867        #[serde(rename = "block_id")]
16868        BlockId(BlockId),
16869        #[serde(rename = "finality")]
16870        Finality(Finality),
16871        #[serde(rename = "sync_checkpoint")]
16872        SyncCheckpoint(SyncCheckpoint),
16873    }
16874    impl ::std::convert::From<&Self> for RpcProtocolConfigRequest {
16875        fn from(value: &RpcProtocolConfigRequest) -> Self {
16876            value.clone()
16877        }
16878    }
16879    impl ::std::convert::From<BlockId> for RpcProtocolConfigRequest {
16880        fn from(value: BlockId) -> Self {
16881            Self::BlockId(value)
16882        }
16883    }
16884    impl ::std::convert::From<Finality> for RpcProtocolConfigRequest {
16885        fn from(value: Finality) -> Self {
16886            Self::Finality(value)
16887        }
16888    }
16889    impl ::std::convert::From<SyncCheckpoint> for RpcProtocolConfigRequest {
16890        fn from(value: SyncCheckpoint) -> Self {
16891            Self::SyncCheckpoint(value)
16892        }
16893    }
16894    #[doc = "`RpcProtocolConfigResponse`"]
16895    #[doc = r""]
16896    #[doc = r" <details><summary>JSON schema</summary>"]
16897    #[doc = r""]
16898    #[doc = r" ```json"]
16899    #[doc = "{"]
16900    #[doc = "  \"type\": \"object\","]
16901    #[doc = "  \"required\": ["]
16902    #[doc = "    \"avg_hidden_validator_seats_per_shard\","]
16903    #[doc = "    \"block_producer_kickout_threshold\","]
16904    #[doc = "    \"chain_id\","]
16905    #[doc = "    \"chunk_producer_kickout_threshold\","]
16906    #[doc = "    \"chunk_validator_only_kickout_threshold\","]
16907    #[doc = "    \"dynamic_resharding\","]
16908    #[doc = "    \"epoch_length\","]
16909    #[doc = "    \"fishermen_threshold\","]
16910    #[doc = "    \"gas_limit\","]
16911    #[doc = "    \"gas_price_adjustment_rate\","]
16912    #[doc = "    \"genesis_height\","]
16913    #[doc = "    \"genesis_time\","]
16914    #[doc = "    \"max_gas_price\","]
16915    #[doc = "    \"max_inflation_rate\","]
16916    #[doc = "    \"max_kickout_stake_perc\","]
16917    #[doc = "    \"min_gas_price\","]
16918    #[doc = "    \"minimum_stake_divisor\","]
16919    #[doc = "    \"minimum_stake_ratio\","]
16920    #[doc = "    \"minimum_validators_per_shard\","]
16921    #[doc = "    \"num_block_producer_seats\","]
16922    #[doc = "    \"num_block_producer_seats_per_shard\","]
16923    #[doc = "    \"num_blocks_per_year\","]
16924    #[doc = "    \"online_max_threshold\","]
16925    #[doc = "    \"online_min_threshold\","]
16926    #[doc = "    \"protocol_reward_rate\","]
16927    #[doc = "    \"protocol_treasury_account\","]
16928    #[doc = "    \"protocol_upgrade_stake_threshold\","]
16929    #[doc = "    \"protocol_version\","]
16930    #[doc = "    \"runtime_config\","]
16931    #[doc = "    \"shard_layout\","]
16932    #[doc = "    \"shuffle_shard_assignment_for_chunk_producers\","]
16933    #[doc = "    \"target_validator_mandates_per_shard\","]
16934    #[doc = "    \"transaction_validity_period\""]
16935    #[doc = "  ],"]
16936    #[doc = "  \"properties\": {"]
16937    #[doc = "    \"avg_hidden_validator_seats_per_shard\": {"]
16938    #[doc = "      \"description\": \"Expected number of hidden validators per shard.\","]
16939    #[doc = "      \"type\": \"array\","]
16940    #[doc = "      \"items\": {"]
16941    #[doc = "        \"type\": \"integer\","]
16942    #[doc = "        \"format\": \"uint64\","]
16943    #[doc = "        \"minimum\": 0.0"]
16944    #[doc = "      }"]
16945    #[doc = "    },"]
16946    #[doc = "    \"block_producer_kickout_threshold\": {"]
16947    #[doc = "      \"description\": \"Threshold for kicking out block producers, between 0 and 100.\","]
16948    #[doc = "      \"type\": \"integer\","]
16949    #[doc = "      \"format\": \"uint8\","]
16950    #[doc = "      \"minimum\": 0.0"]
16951    #[doc = "    },"]
16952    #[doc = "    \"chain_id\": {"]
16953    #[doc = "      \"description\": \"ID of the blockchain. This must be unique for every blockchain.\\n If your testnet blockchains do not have unique chain IDs, you will have a bad time.\","]
16954    #[doc = "      \"type\": \"string\""]
16955    #[doc = "    },"]
16956    #[doc = "    \"chunk_producer_kickout_threshold\": {"]
16957    #[doc = "      \"description\": \"Threshold for kicking out chunk producers, between 0 and 100.\","]
16958    #[doc = "      \"type\": \"integer\","]
16959    #[doc = "      \"format\": \"uint8\","]
16960    #[doc = "      \"minimum\": 0.0"]
16961    #[doc = "    },"]
16962    #[doc = "    \"chunk_validator_only_kickout_threshold\": {"]
16963    #[doc = "      \"description\": \"Threshold for kicking out nodes which are only chunk validators, between 0 and 100.\","]
16964    #[doc = "      \"type\": \"integer\","]
16965    #[doc = "      \"format\": \"uint8\","]
16966    #[doc = "      \"minimum\": 0.0"]
16967    #[doc = "    },"]
16968    #[doc = "    \"dynamic_resharding\": {"]
16969    #[doc = "      \"description\": \"Enable dynamic re-sharding.\","]
16970    #[doc = "      \"type\": \"boolean\""]
16971    #[doc = "    },"]
16972    #[doc = "    \"epoch_length\": {"]
16973    #[doc = "      \"description\": \"Epoch length counted in block heights.\","]
16974    #[doc = "      \"type\": \"integer\","]
16975    #[doc = "      \"format\": \"uint64\","]
16976    #[doc = "      \"minimum\": 0.0"]
16977    #[doc = "    },"]
16978    #[doc = "    \"fishermen_threshold\": {"]
16979    #[doc = "      \"description\": \"Fishermen stake threshold.\","]
16980    #[doc = "      \"type\": \"string\""]
16981    #[doc = "    },"]
16982    #[doc = "    \"gas_limit\": {"]
16983    #[doc = "      \"description\": \"Initial gas limit.\","]
16984    #[doc = "      \"type\": \"integer\","]
16985    #[doc = "      \"format\": \"uint64\","]
16986    #[doc = "      \"minimum\": 0.0"]
16987    #[doc = "    },"]
16988    #[doc = "    \"gas_price_adjustment_rate\": {"]
16989    #[doc = "      \"description\": \"Gas price adjustment rate\","]
16990    #[doc = "      \"type\": \"array\","]
16991    #[doc = "      \"items\": {"]
16992    #[doc = "        \"type\": \"integer\","]
16993    #[doc = "        \"format\": \"int32\""]
16994    #[doc = "      },"]
16995    #[doc = "      \"maxItems\": 2,"]
16996    #[doc = "      \"minItems\": 2"]
16997    #[doc = "    },"]
16998    #[doc = "    \"genesis_height\": {"]
16999    #[doc = "      \"description\": \"Height of genesis block.\","]
17000    #[doc = "      \"type\": \"integer\","]
17001    #[doc = "      \"format\": \"uint64\","]
17002    #[doc = "      \"minimum\": 0.0"]
17003    #[doc = "    },"]
17004    #[doc = "    \"genesis_time\": {"]
17005    #[doc = "      \"description\": \"Official time of blockchain start.\","]
17006    #[doc = "      \"type\": \"string\","]
17007    #[doc = "      \"format\": \"date-time\""]
17008    #[doc = "    },"]
17009    #[doc = "    \"max_gas_price\": {"]
17010    #[doc = "      \"description\": \"Maximum gas price.\","]
17011    #[doc = "      \"type\": \"string\""]
17012    #[doc = "    },"]
17013    #[doc = "    \"max_inflation_rate\": {"]
17014    #[doc = "      \"description\": \"Maximum inflation on the total supply every epoch.\","]
17015    #[doc = "      \"type\": \"array\","]
17016    #[doc = "      \"items\": {"]
17017    #[doc = "        \"type\": \"integer\","]
17018    #[doc = "        \"format\": \"int32\""]
17019    #[doc = "      },"]
17020    #[doc = "      \"maxItems\": 2,"]
17021    #[doc = "      \"minItems\": 2"]
17022    #[doc = "    },"]
17023    #[doc = "    \"max_kickout_stake_perc\": {"]
17024    #[doc = "      \"description\": \"Max stake percentage of the validators we will kick out.\","]
17025    #[doc = "      \"type\": \"integer\","]
17026    #[doc = "      \"format\": \"uint8\","]
17027    #[doc = "      \"minimum\": 0.0"]
17028    #[doc = "    },"]
17029    #[doc = "    \"min_gas_price\": {"]
17030    #[doc = "      \"description\": \"Minimum gas price. It is also the initial gas price.\","]
17031    #[doc = "      \"type\": \"string\""]
17032    #[doc = "    },"]
17033    #[doc = "    \"minimum_stake_divisor\": {"]
17034    #[doc = "      \"description\": \"The minimum stake required for staking is last seat price divided by this number.\","]
17035    #[doc = "      \"type\": \"integer\","]
17036    #[doc = "      \"format\": \"uint64\","]
17037    #[doc = "      \"minimum\": 0.0"]
17038    #[doc = "    },"]
17039    #[doc = "    \"minimum_stake_ratio\": {"]
17040    #[doc = "      \"description\": \"The lowest ratio s/s_total any block producer can have.\\n See <https://github.com/near/NEPs/pull/167> for details\","]
17041    #[doc = "      \"type\": \"array\","]
17042    #[doc = "      \"items\": {"]
17043    #[doc = "        \"type\": \"integer\","]
17044    #[doc = "        \"format\": \"int32\""]
17045    #[doc = "      },"]
17046    #[doc = "      \"maxItems\": 2,"]
17047    #[doc = "      \"minItems\": 2"]
17048    #[doc = "    },"]
17049    #[doc = "    \"minimum_validators_per_shard\": {"]
17050    #[doc = "      \"description\": \"The minimum number of validators each shard must have\","]
17051    #[doc = "      \"type\": \"integer\","]
17052    #[doc = "      \"format\": \"uint64\","]
17053    #[doc = "      \"minimum\": 0.0"]
17054    #[doc = "    },"]
17055    #[doc = "    \"num_block_producer_seats\": {"]
17056    #[doc = "      \"description\": \"Number of block producer seats at genesis.\","]
17057    #[doc = "      \"type\": \"integer\","]
17058    #[doc = "      \"format\": \"uint64\","]
17059    #[doc = "      \"minimum\": 0.0"]
17060    #[doc = "    },"]
17061    #[doc = "    \"num_block_producer_seats_per_shard\": {"]
17062    #[doc = "      \"description\": \"Defines number of shards and number of block producer seats per each shard at genesis.\","]
17063    #[doc = "      \"type\": \"array\","]
17064    #[doc = "      \"items\": {"]
17065    #[doc = "        \"type\": \"integer\","]
17066    #[doc = "        \"format\": \"uint64\","]
17067    #[doc = "        \"minimum\": 0.0"]
17068    #[doc = "      }"]
17069    #[doc = "    },"]
17070    #[doc = "    \"num_blocks_per_year\": {"]
17071    #[doc = "      \"description\": \"Expected number of blocks per year\","]
17072    #[doc = "      \"type\": \"integer\","]
17073    #[doc = "      \"format\": \"uint64\","]
17074    #[doc = "      \"minimum\": 0.0"]
17075    #[doc = "    },"]
17076    #[doc = "    \"online_max_threshold\": {"]
17077    #[doc = "      \"description\": \"Online maximum threshold above which validator gets full reward.\","]
17078    #[doc = "      \"type\": \"array\","]
17079    #[doc = "      \"items\": {"]
17080    #[doc = "        \"type\": \"integer\","]
17081    #[doc = "        \"format\": \"int32\""]
17082    #[doc = "      },"]
17083    #[doc = "      \"maxItems\": 2,"]
17084    #[doc = "      \"minItems\": 2"]
17085    #[doc = "    },"]
17086    #[doc = "    \"online_min_threshold\": {"]
17087    #[doc = "      \"description\": \"Online minimum threshold below which validator doesn't receive reward.\","]
17088    #[doc = "      \"type\": \"array\","]
17089    #[doc = "      \"items\": {"]
17090    #[doc = "        \"type\": \"integer\","]
17091    #[doc = "        \"format\": \"int32\""]
17092    #[doc = "      },"]
17093    #[doc = "      \"maxItems\": 2,"]
17094    #[doc = "      \"minItems\": 2"]
17095    #[doc = "    },"]
17096    #[doc = "    \"protocol_reward_rate\": {"]
17097    #[doc = "      \"description\": \"Protocol treasury rate\","]
17098    #[doc = "      \"type\": \"array\","]
17099    #[doc = "      \"items\": {"]
17100    #[doc = "        \"type\": \"integer\","]
17101    #[doc = "        \"format\": \"int32\""]
17102    #[doc = "      },"]
17103    #[doc = "      \"maxItems\": 2,"]
17104    #[doc = "      \"minItems\": 2"]
17105    #[doc = "    },"]
17106    #[doc = "    \"protocol_treasury_account\": {"]
17107    #[doc = "      \"description\": \"Protocol treasury account\","]
17108    #[doc = "      \"allOf\": ["]
17109    #[doc = "        {"]
17110    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
17111    #[doc = "        }"]
17112    #[doc = "      ]"]
17113    #[doc = "    },"]
17114    #[doc = "    \"protocol_upgrade_stake_threshold\": {"]
17115    #[doc = "      \"description\": \"Threshold of stake that needs to indicate that they ready for upgrade.\","]
17116    #[doc = "      \"type\": \"array\","]
17117    #[doc = "      \"items\": {"]
17118    #[doc = "        \"type\": \"integer\","]
17119    #[doc = "        \"format\": \"int32\""]
17120    #[doc = "      },"]
17121    #[doc = "      \"maxItems\": 2,"]
17122    #[doc = "      \"minItems\": 2"]
17123    #[doc = "    },"]
17124    #[doc = "    \"protocol_version\": {"]
17125    #[doc = "      \"description\": \"Current Protocol Version\","]
17126    #[doc = "      \"type\": \"integer\","]
17127    #[doc = "      \"format\": \"uint32\","]
17128    #[doc = "      \"minimum\": 0.0"]
17129    #[doc = "    },"]
17130    #[doc = "    \"runtime_config\": {"]
17131    #[doc = "      \"description\": \"Runtime configuration (mostly economics constants).\","]
17132    #[doc = "      \"allOf\": ["]
17133    #[doc = "        {"]
17134    #[doc = "          \"$ref\": \"#/components/schemas/RuntimeConfigView\""]
17135    #[doc = "        }"]
17136    #[doc = "      ]"]
17137    #[doc = "    },"]
17138    #[doc = "    \"shard_layout\": {"]
17139    #[doc = "      \"description\": \"Layout information regarding how to split accounts to shards\","]
17140    #[doc = "      \"allOf\": ["]
17141    #[doc = "        {"]
17142    #[doc = "          \"$ref\": \"#/components/schemas/ShardLayout\""]
17143    #[doc = "        }"]
17144    #[doc = "      ]"]
17145    #[doc = "    },"]
17146    #[doc = "    \"shuffle_shard_assignment_for_chunk_producers\": {"]
17147    #[doc = "      \"description\": \"If true, shuffle the chunk producers across shards. In other words, if\\n the shard assignments were `[S_0, S_1, S_2, S_3]` where `S_i` represents\\n the set of chunk producers for shard `i`, if this flag were true, the\\n shard assignments might become, for example, `[S_2, S_0, S_3, S_1]`.\","]
17148    #[doc = "      \"type\": \"boolean\""]
17149    #[doc = "    },"]
17150    #[doc = "    \"target_validator_mandates_per_shard\": {"]
17151    #[doc = "      \"description\": \"Number of target chunk validator mandates for each shard.\","]
17152    #[doc = "      \"type\": \"integer\","]
17153    #[doc = "      \"format\": \"uint64\","]
17154    #[doc = "      \"minimum\": 0.0"]
17155    #[doc = "    },"]
17156    #[doc = "    \"transaction_validity_period\": {"]
17157    #[doc = "      \"description\": \"Number of blocks for which a given transaction is valid\","]
17158    #[doc = "      \"type\": \"integer\","]
17159    #[doc = "      \"format\": \"uint64\","]
17160    #[doc = "      \"minimum\": 0.0"]
17161    #[doc = "    }"]
17162    #[doc = "  }"]
17163    #[doc = "}"]
17164    #[doc = r" ```"]
17165    #[doc = r" </details>"]
17166    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
17167    pub struct RpcProtocolConfigResponse {
17168        #[doc = "Expected number of hidden validators per shard."]
17169        pub avg_hidden_validator_seats_per_shard: ::std::vec::Vec<u64>,
17170        #[doc = "Threshold for kicking out block producers, between 0 and 100."]
17171        pub block_producer_kickout_threshold: u8,
17172        #[doc = "ID of the blockchain. This must be unique for every blockchain.\n If your testnet blockchains do not have unique chain IDs, you will have a bad time."]
17173        pub chain_id: ::std::string::String,
17174        #[doc = "Threshold for kicking out chunk producers, between 0 and 100."]
17175        pub chunk_producer_kickout_threshold: u8,
17176        #[doc = "Threshold for kicking out nodes which are only chunk validators, between 0 and 100."]
17177        pub chunk_validator_only_kickout_threshold: u8,
17178        #[doc = "Enable dynamic re-sharding."]
17179        pub dynamic_resharding: bool,
17180        #[doc = "Epoch length counted in block heights."]
17181        pub epoch_length: u64,
17182        #[doc = "Fishermen stake threshold."]
17183        pub fishermen_threshold: ::std::string::String,
17184        #[doc = "Initial gas limit."]
17185        pub gas_limit: u64,
17186        #[doc = "Gas price adjustment rate"]
17187        pub gas_price_adjustment_rate: [i32; 2usize],
17188        #[doc = "Height of genesis block."]
17189        pub genesis_height: u64,
17190        #[doc = "Official time of blockchain start."]
17191        pub genesis_time: ::chrono::DateTime<::chrono::offset::Utc>,
17192        #[doc = "Maximum gas price."]
17193        pub max_gas_price: ::std::string::String,
17194        #[doc = "Maximum inflation on the total supply every epoch."]
17195        pub max_inflation_rate: [i32; 2usize],
17196        #[doc = "Max stake percentage of the validators we will kick out."]
17197        pub max_kickout_stake_perc: u8,
17198        #[doc = "Minimum gas price. It is also the initial gas price."]
17199        pub min_gas_price: ::std::string::String,
17200        #[doc = "The minimum stake required for staking is last seat price divided by this number."]
17201        pub minimum_stake_divisor: u64,
17202        #[doc = "The lowest ratio s/s_total any block producer can have.\n See <https://github.com/near/NEPs/pull/167> for details"]
17203        pub minimum_stake_ratio: [i32; 2usize],
17204        #[doc = "The minimum number of validators each shard must have"]
17205        pub minimum_validators_per_shard: u64,
17206        #[doc = "Number of block producer seats at genesis."]
17207        pub num_block_producer_seats: u64,
17208        #[doc = "Defines number of shards and number of block producer seats per each shard at genesis."]
17209        pub num_block_producer_seats_per_shard: ::std::vec::Vec<u64>,
17210        #[doc = "Expected number of blocks per year"]
17211        pub num_blocks_per_year: u64,
17212        #[doc = "Online maximum threshold above which validator gets full reward."]
17213        pub online_max_threshold: [i32; 2usize],
17214        #[doc = "Online minimum threshold below which validator doesn't receive reward."]
17215        pub online_min_threshold: [i32; 2usize],
17216        #[doc = "Protocol treasury rate"]
17217        pub protocol_reward_rate: [i32; 2usize],
17218        #[doc = "Protocol treasury account"]
17219        pub protocol_treasury_account: AccountId,
17220        #[doc = "Threshold of stake that needs to indicate that they ready for upgrade."]
17221        pub protocol_upgrade_stake_threshold: [i32; 2usize],
17222        #[doc = "Current Protocol Version"]
17223        pub protocol_version: u32,
17224        #[doc = "Runtime configuration (mostly economics constants)."]
17225        pub runtime_config: RuntimeConfigView,
17226        #[doc = "Layout information regarding how to split accounts to shards"]
17227        pub shard_layout: ShardLayout,
17228        #[doc = "If true, shuffle the chunk producers across shards. In other words, if\n the shard assignments were `[S_0, S_1, S_2, S_3]` where `S_i` represents\n the set of chunk producers for shard `i`, if this flag were true, the\n shard assignments might become, for example, `[S_2, S_0, S_3, S_1]`."]
17229        pub shuffle_shard_assignment_for_chunk_producers: bool,
17230        #[doc = "Number of target chunk validator mandates for each shard."]
17231        pub target_validator_mandates_per_shard: u64,
17232        #[doc = "Number of blocks for which a given transaction is valid"]
17233        pub transaction_validity_period: u64,
17234    }
17235    impl ::std::convert::From<&RpcProtocolConfigResponse> for RpcProtocolConfigResponse {
17236        fn from(value: &RpcProtocolConfigResponse) -> Self {
17237            value.clone()
17238        }
17239    }
17240    #[doc = "`RpcQueryRequest`"]
17241    #[doc = r""]
17242    #[doc = r" <details><summary>JSON schema</summary>"]
17243    #[doc = r""]
17244    #[doc = r" ```json"]
17245    #[doc = "{"]
17246    #[doc = "  \"title\": \"RpcQueryRequest\","]
17247    #[doc = "  \"type\": \"object\","]
17248    #[doc = "  \"oneOf\": ["]
17249    #[doc = "    {"]
17250    #[doc = "      \"allOf\": ["]
17251    #[doc = "        {"]
17252    #[doc = "          \"type\": \"object\","]
17253    #[doc = "          \"required\": ["]
17254    #[doc = "            \"block_id\""]
17255    #[doc = "          ],"]
17256    #[doc = "          \"properties\": {"]
17257    #[doc = "            \"block_id\": {"]
17258    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
17259    #[doc = "            }"]
17260    #[doc = "          }"]
17261    #[doc = "        },"]
17262    #[doc = "        {"]
17263    #[doc = "          \"type\": \"object\","]
17264    #[doc = "          \"required\": ["]
17265    #[doc = "            \"account_id\","]
17266    #[doc = "            \"request_type\""]
17267    #[doc = "          ],"]
17268    #[doc = "          \"properties\": {"]
17269    #[doc = "            \"account_id\": {"]
17270    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17271    #[doc = "            },"]
17272    #[doc = "            \"request_type\": {"]
17273    #[doc = "              \"type\": \"string\","]
17274    #[doc = "              \"enum\": ["]
17275    #[doc = "                \"view_account\""]
17276    #[doc = "              ]"]
17277    #[doc = "            }"]
17278    #[doc = "          }"]
17279    #[doc = "        }"]
17280    #[doc = "      ]"]
17281    #[doc = "    },"]
17282    #[doc = "    {"]
17283    #[doc = "      \"allOf\": ["]
17284    #[doc = "        {"]
17285    #[doc = "          \"type\": \"object\","]
17286    #[doc = "          \"required\": ["]
17287    #[doc = "            \"block_id\""]
17288    #[doc = "          ],"]
17289    #[doc = "          \"properties\": {"]
17290    #[doc = "            \"block_id\": {"]
17291    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
17292    #[doc = "            }"]
17293    #[doc = "          }"]
17294    #[doc = "        },"]
17295    #[doc = "        {"]
17296    #[doc = "          \"type\": \"object\","]
17297    #[doc = "          \"required\": ["]
17298    #[doc = "            \"account_id\","]
17299    #[doc = "            \"request_type\""]
17300    #[doc = "          ],"]
17301    #[doc = "          \"properties\": {"]
17302    #[doc = "            \"account_id\": {"]
17303    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17304    #[doc = "            },"]
17305    #[doc = "            \"request_type\": {"]
17306    #[doc = "              \"type\": \"string\","]
17307    #[doc = "              \"enum\": ["]
17308    #[doc = "                \"view_code\""]
17309    #[doc = "              ]"]
17310    #[doc = "            }"]
17311    #[doc = "          }"]
17312    #[doc = "        }"]
17313    #[doc = "      ]"]
17314    #[doc = "    },"]
17315    #[doc = "    {"]
17316    #[doc = "      \"allOf\": ["]
17317    #[doc = "        {"]
17318    #[doc = "          \"type\": \"object\","]
17319    #[doc = "          \"required\": ["]
17320    #[doc = "            \"block_id\""]
17321    #[doc = "          ],"]
17322    #[doc = "          \"properties\": {"]
17323    #[doc = "            \"block_id\": {"]
17324    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
17325    #[doc = "            }"]
17326    #[doc = "          }"]
17327    #[doc = "        },"]
17328    #[doc = "        {"]
17329    #[doc = "          \"type\": \"object\","]
17330    #[doc = "          \"required\": ["]
17331    #[doc = "            \"account_id\","]
17332    #[doc = "            \"prefix_base64\","]
17333    #[doc = "            \"request_type\""]
17334    #[doc = "          ],"]
17335    #[doc = "          \"properties\": {"]
17336    #[doc = "            \"account_id\": {"]
17337    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17338    #[doc = "            },"]
17339    #[doc = "            \"include_proof\": {"]
17340    #[doc = "              \"type\": \"boolean\""]
17341    #[doc = "            },"]
17342    #[doc = "            \"prefix_base64\": {"]
17343    #[doc = "              \"type\": \"string\","]
17344    #[doc = "              \"format\": \"bytes\""]
17345    #[doc = "            },"]
17346    #[doc = "            \"request_type\": {"]
17347    #[doc = "              \"type\": \"string\","]
17348    #[doc = "              \"enum\": ["]
17349    #[doc = "                \"view_state\""]
17350    #[doc = "              ]"]
17351    #[doc = "            }"]
17352    #[doc = "          }"]
17353    #[doc = "        }"]
17354    #[doc = "      ]"]
17355    #[doc = "    },"]
17356    #[doc = "    {"]
17357    #[doc = "      \"allOf\": ["]
17358    #[doc = "        {"]
17359    #[doc = "          \"type\": \"object\","]
17360    #[doc = "          \"required\": ["]
17361    #[doc = "            \"block_id\""]
17362    #[doc = "          ],"]
17363    #[doc = "          \"properties\": {"]
17364    #[doc = "            \"block_id\": {"]
17365    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
17366    #[doc = "            }"]
17367    #[doc = "          }"]
17368    #[doc = "        },"]
17369    #[doc = "        {"]
17370    #[doc = "          \"type\": \"object\","]
17371    #[doc = "          \"required\": ["]
17372    #[doc = "            \"account_id\","]
17373    #[doc = "            \"public_key\","]
17374    #[doc = "            \"request_type\""]
17375    #[doc = "          ],"]
17376    #[doc = "          \"properties\": {"]
17377    #[doc = "            \"account_id\": {"]
17378    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17379    #[doc = "            },"]
17380    #[doc = "            \"public_key\": {"]
17381    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
17382    #[doc = "            },"]
17383    #[doc = "            \"request_type\": {"]
17384    #[doc = "              \"type\": \"string\","]
17385    #[doc = "              \"enum\": ["]
17386    #[doc = "                \"view_access_key\""]
17387    #[doc = "              ]"]
17388    #[doc = "            }"]
17389    #[doc = "          }"]
17390    #[doc = "        }"]
17391    #[doc = "      ]"]
17392    #[doc = "    },"]
17393    #[doc = "    {"]
17394    #[doc = "      \"allOf\": ["]
17395    #[doc = "        {"]
17396    #[doc = "          \"type\": \"object\","]
17397    #[doc = "          \"required\": ["]
17398    #[doc = "            \"block_id\""]
17399    #[doc = "          ],"]
17400    #[doc = "          \"properties\": {"]
17401    #[doc = "            \"block_id\": {"]
17402    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
17403    #[doc = "            }"]
17404    #[doc = "          }"]
17405    #[doc = "        },"]
17406    #[doc = "        {"]
17407    #[doc = "          \"type\": \"object\","]
17408    #[doc = "          \"required\": ["]
17409    #[doc = "            \"account_id\","]
17410    #[doc = "            \"request_type\""]
17411    #[doc = "          ],"]
17412    #[doc = "          \"properties\": {"]
17413    #[doc = "            \"account_id\": {"]
17414    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17415    #[doc = "            },"]
17416    #[doc = "            \"request_type\": {"]
17417    #[doc = "              \"type\": \"string\","]
17418    #[doc = "              \"enum\": ["]
17419    #[doc = "                \"view_access_key_list\""]
17420    #[doc = "              ]"]
17421    #[doc = "            }"]
17422    #[doc = "          }"]
17423    #[doc = "        }"]
17424    #[doc = "      ]"]
17425    #[doc = "    },"]
17426    #[doc = "    {"]
17427    #[doc = "      \"allOf\": ["]
17428    #[doc = "        {"]
17429    #[doc = "          \"type\": \"object\","]
17430    #[doc = "          \"required\": ["]
17431    #[doc = "            \"block_id\""]
17432    #[doc = "          ],"]
17433    #[doc = "          \"properties\": {"]
17434    #[doc = "            \"block_id\": {"]
17435    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
17436    #[doc = "            }"]
17437    #[doc = "          }"]
17438    #[doc = "        },"]
17439    #[doc = "        {"]
17440    #[doc = "          \"type\": \"object\","]
17441    #[doc = "          \"required\": ["]
17442    #[doc = "            \"account_id\","]
17443    #[doc = "            \"args_base64\","]
17444    #[doc = "            \"method_name\","]
17445    #[doc = "            \"request_type\""]
17446    #[doc = "          ],"]
17447    #[doc = "          \"properties\": {"]
17448    #[doc = "            \"account_id\": {"]
17449    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17450    #[doc = "            },"]
17451    #[doc = "            \"args_base64\": {"]
17452    #[doc = "              \"type\": \"string\","]
17453    #[doc = "              \"format\": \"bytes\""]
17454    #[doc = "            },"]
17455    #[doc = "            \"method_name\": {"]
17456    #[doc = "              \"type\": \"string\""]
17457    #[doc = "            },"]
17458    #[doc = "            \"request_type\": {"]
17459    #[doc = "              \"type\": \"string\","]
17460    #[doc = "              \"enum\": ["]
17461    #[doc = "                \"call_function\""]
17462    #[doc = "              ]"]
17463    #[doc = "            }"]
17464    #[doc = "          }"]
17465    #[doc = "        }"]
17466    #[doc = "      ]"]
17467    #[doc = "    },"]
17468    #[doc = "    {"]
17469    #[doc = "      \"allOf\": ["]
17470    #[doc = "        {"]
17471    #[doc = "          \"type\": \"object\","]
17472    #[doc = "          \"required\": ["]
17473    #[doc = "            \"block_id\""]
17474    #[doc = "          ],"]
17475    #[doc = "          \"properties\": {"]
17476    #[doc = "            \"block_id\": {"]
17477    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
17478    #[doc = "            }"]
17479    #[doc = "          }"]
17480    #[doc = "        },"]
17481    #[doc = "        {"]
17482    #[doc = "          \"type\": \"object\","]
17483    #[doc = "          \"required\": ["]
17484    #[doc = "            \"code_hash\","]
17485    #[doc = "            \"request_type\""]
17486    #[doc = "          ],"]
17487    #[doc = "          \"properties\": {"]
17488    #[doc = "            \"code_hash\": {"]
17489    #[doc = "              \"$ref\": \"#/components/schemas/CryptoHash\""]
17490    #[doc = "            },"]
17491    #[doc = "            \"request_type\": {"]
17492    #[doc = "              \"type\": \"string\","]
17493    #[doc = "              \"enum\": ["]
17494    #[doc = "                \"view_global_contract_code\""]
17495    #[doc = "              ]"]
17496    #[doc = "            }"]
17497    #[doc = "          }"]
17498    #[doc = "        }"]
17499    #[doc = "      ]"]
17500    #[doc = "    },"]
17501    #[doc = "    {"]
17502    #[doc = "      \"allOf\": ["]
17503    #[doc = "        {"]
17504    #[doc = "          \"type\": \"object\","]
17505    #[doc = "          \"required\": ["]
17506    #[doc = "            \"block_id\""]
17507    #[doc = "          ],"]
17508    #[doc = "          \"properties\": {"]
17509    #[doc = "            \"block_id\": {"]
17510    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
17511    #[doc = "            }"]
17512    #[doc = "          }"]
17513    #[doc = "        },"]
17514    #[doc = "        {"]
17515    #[doc = "          \"type\": \"object\","]
17516    #[doc = "          \"required\": ["]
17517    #[doc = "            \"account_id\","]
17518    #[doc = "            \"request_type\""]
17519    #[doc = "          ],"]
17520    #[doc = "          \"properties\": {"]
17521    #[doc = "            \"account_id\": {"]
17522    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17523    #[doc = "            },"]
17524    #[doc = "            \"request_type\": {"]
17525    #[doc = "              \"type\": \"string\","]
17526    #[doc = "              \"enum\": ["]
17527    #[doc = "                \"view_global_contract_code_by_account_id\""]
17528    #[doc = "              ]"]
17529    #[doc = "            }"]
17530    #[doc = "          }"]
17531    #[doc = "        }"]
17532    #[doc = "      ]"]
17533    #[doc = "    },"]
17534    #[doc = "    {"]
17535    #[doc = "      \"allOf\": ["]
17536    #[doc = "        {"]
17537    #[doc = "          \"type\": \"object\","]
17538    #[doc = "          \"required\": ["]
17539    #[doc = "            \"finality\""]
17540    #[doc = "          ],"]
17541    #[doc = "          \"properties\": {"]
17542    #[doc = "            \"finality\": {"]
17543    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
17544    #[doc = "            }"]
17545    #[doc = "          }"]
17546    #[doc = "        },"]
17547    #[doc = "        {"]
17548    #[doc = "          \"type\": \"object\","]
17549    #[doc = "          \"required\": ["]
17550    #[doc = "            \"account_id\","]
17551    #[doc = "            \"request_type\""]
17552    #[doc = "          ],"]
17553    #[doc = "          \"properties\": {"]
17554    #[doc = "            \"account_id\": {"]
17555    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17556    #[doc = "            },"]
17557    #[doc = "            \"request_type\": {"]
17558    #[doc = "              \"type\": \"string\","]
17559    #[doc = "              \"enum\": ["]
17560    #[doc = "                \"view_account\""]
17561    #[doc = "              ]"]
17562    #[doc = "            }"]
17563    #[doc = "          }"]
17564    #[doc = "        }"]
17565    #[doc = "      ]"]
17566    #[doc = "    },"]
17567    #[doc = "    {"]
17568    #[doc = "      \"allOf\": ["]
17569    #[doc = "        {"]
17570    #[doc = "          \"type\": \"object\","]
17571    #[doc = "          \"required\": ["]
17572    #[doc = "            \"finality\""]
17573    #[doc = "          ],"]
17574    #[doc = "          \"properties\": {"]
17575    #[doc = "            \"finality\": {"]
17576    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
17577    #[doc = "            }"]
17578    #[doc = "          }"]
17579    #[doc = "        },"]
17580    #[doc = "        {"]
17581    #[doc = "          \"type\": \"object\","]
17582    #[doc = "          \"required\": ["]
17583    #[doc = "            \"account_id\","]
17584    #[doc = "            \"request_type\""]
17585    #[doc = "          ],"]
17586    #[doc = "          \"properties\": {"]
17587    #[doc = "            \"account_id\": {"]
17588    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17589    #[doc = "            },"]
17590    #[doc = "            \"request_type\": {"]
17591    #[doc = "              \"type\": \"string\","]
17592    #[doc = "              \"enum\": ["]
17593    #[doc = "                \"view_code\""]
17594    #[doc = "              ]"]
17595    #[doc = "            }"]
17596    #[doc = "          }"]
17597    #[doc = "        }"]
17598    #[doc = "      ]"]
17599    #[doc = "    },"]
17600    #[doc = "    {"]
17601    #[doc = "      \"allOf\": ["]
17602    #[doc = "        {"]
17603    #[doc = "          \"type\": \"object\","]
17604    #[doc = "          \"required\": ["]
17605    #[doc = "            \"finality\""]
17606    #[doc = "          ],"]
17607    #[doc = "          \"properties\": {"]
17608    #[doc = "            \"finality\": {"]
17609    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
17610    #[doc = "            }"]
17611    #[doc = "          }"]
17612    #[doc = "        },"]
17613    #[doc = "        {"]
17614    #[doc = "          \"type\": \"object\","]
17615    #[doc = "          \"required\": ["]
17616    #[doc = "            \"account_id\","]
17617    #[doc = "            \"prefix_base64\","]
17618    #[doc = "            \"request_type\""]
17619    #[doc = "          ],"]
17620    #[doc = "          \"properties\": {"]
17621    #[doc = "            \"account_id\": {"]
17622    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17623    #[doc = "            },"]
17624    #[doc = "            \"include_proof\": {"]
17625    #[doc = "              \"type\": \"boolean\""]
17626    #[doc = "            },"]
17627    #[doc = "            \"prefix_base64\": {"]
17628    #[doc = "              \"type\": \"string\","]
17629    #[doc = "              \"format\": \"bytes\""]
17630    #[doc = "            },"]
17631    #[doc = "            \"request_type\": {"]
17632    #[doc = "              \"type\": \"string\","]
17633    #[doc = "              \"enum\": ["]
17634    #[doc = "                \"view_state\""]
17635    #[doc = "              ]"]
17636    #[doc = "            }"]
17637    #[doc = "          }"]
17638    #[doc = "        }"]
17639    #[doc = "      ]"]
17640    #[doc = "    },"]
17641    #[doc = "    {"]
17642    #[doc = "      \"allOf\": ["]
17643    #[doc = "        {"]
17644    #[doc = "          \"type\": \"object\","]
17645    #[doc = "          \"required\": ["]
17646    #[doc = "            \"finality\""]
17647    #[doc = "          ],"]
17648    #[doc = "          \"properties\": {"]
17649    #[doc = "            \"finality\": {"]
17650    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
17651    #[doc = "            }"]
17652    #[doc = "          }"]
17653    #[doc = "        },"]
17654    #[doc = "        {"]
17655    #[doc = "          \"type\": \"object\","]
17656    #[doc = "          \"required\": ["]
17657    #[doc = "            \"account_id\","]
17658    #[doc = "            \"public_key\","]
17659    #[doc = "            \"request_type\""]
17660    #[doc = "          ],"]
17661    #[doc = "          \"properties\": {"]
17662    #[doc = "            \"account_id\": {"]
17663    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17664    #[doc = "            },"]
17665    #[doc = "            \"public_key\": {"]
17666    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
17667    #[doc = "            },"]
17668    #[doc = "            \"request_type\": {"]
17669    #[doc = "              \"type\": \"string\","]
17670    #[doc = "              \"enum\": ["]
17671    #[doc = "                \"view_access_key\""]
17672    #[doc = "              ]"]
17673    #[doc = "            }"]
17674    #[doc = "          }"]
17675    #[doc = "        }"]
17676    #[doc = "      ]"]
17677    #[doc = "    },"]
17678    #[doc = "    {"]
17679    #[doc = "      \"allOf\": ["]
17680    #[doc = "        {"]
17681    #[doc = "          \"type\": \"object\","]
17682    #[doc = "          \"required\": ["]
17683    #[doc = "            \"finality\""]
17684    #[doc = "          ],"]
17685    #[doc = "          \"properties\": {"]
17686    #[doc = "            \"finality\": {"]
17687    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
17688    #[doc = "            }"]
17689    #[doc = "          }"]
17690    #[doc = "        },"]
17691    #[doc = "        {"]
17692    #[doc = "          \"type\": \"object\","]
17693    #[doc = "          \"required\": ["]
17694    #[doc = "            \"account_id\","]
17695    #[doc = "            \"request_type\""]
17696    #[doc = "          ],"]
17697    #[doc = "          \"properties\": {"]
17698    #[doc = "            \"account_id\": {"]
17699    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17700    #[doc = "            },"]
17701    #[doc = "            \"request_type\": {"]
17702    #[doc = "              \"type\": \"string\","]
17703    #[doc = "              \"enum\": ["]
17704    #[doc = "                \"view_access_key_list\""]
17705    #[doc = "              ]"]
17706    #[doc = "            }"]
17707    #[doc = "          }"]
17708    #[doc = "        }"]
17709    #[doc = "      ]"]
17710    #[doc = "    },"]
17711    #[doc = "    {"]
17712    #[doc = "      \"allOf\": ["]
17713    #[doc = "        {"]
17714    #[doc = "          \"type\": \"object\","]
17715    #[doc = "          \"required\": ["]
17716    #[doc = "            \"finality\""]
17717    #[doc = "          ],"]
17718    #[doc = "          \"properties\": {"]
17719    #[doc = "            \"finality\": {"]
17720    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
17721    #[doc = "            }"]
17722    #[doc = "          }"]
17723    #[doc = "        },"]
17724    #[doc = "        {"]
17725    #[doc = "          \"type\": \"object\","]
17726    #[doc = "          \"required\": ["]
17727    #[doc = "            \"account_id\","]
17728    #[doc = "            \"args_base64\","]
17729    #[doc = "            \"method_name\","]
17730    #[doc = "            \"request_type\""]
17731    #[doc = "          ],"]
17732    #[doc = "          \"properties\": {"]
17733    #[doc = "            \"account_id\": {"]
17734    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17735    #[doc = "            },"]
17736    #[doc = "            \"args_base64\": {"]
17737    #[doc = "              \"type\": \"string\","]
17738    #[doc = "              \"format\": \"bytes\""]
17739    #[doc = "            },"]
17740    #[doc = "            \"method_name\": {"]
17741    #[doc = "              \"type\": \"string\""]
17742    #[doc = "            },"]
17743    #[doc = "            \"request_type\": {"]
17744    #[doc = "              \"type\": \"string\","]
17745    #[doc = "              \"enum\": ["]
17746    #[doc = "                \"call_function\""]
17747    #[doc = "              ]"]
17748    #[doc = "            }"]
17749    #[doc = "          }"]
17750    #[doc = "        }"]
17751    #[doc = "      ]"]
17752    #[doc = "    },"]
17753    #[doc = "    {"]
17754    #[doc = "      \"allOf\": ["]
17755    #[doc = "        {"]
17756    #[doc = "          \"type\": \"object\","]
17757    #[doc = "          \"required\": ["]
17758    #[doc = "            \"finality\""]
17759    #[doc = "          ],"]
17760    #[doc = "          \"properties\": {"]
17761    #[doc = "            \"finality\": {"]
17762    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
17763    #[doc = "            }"]
17764    #[doc = "          }"]
17765    #[doc = "        },"]
17766    #[doc = "        {"]
17767    #[doc = "          \"type\": \"object\","]
17768    #[doc = "          \"required\": ["]
17769    #[doc = "            \"code_hash\","]
17770    #[doc = "            \"request_type\""]
17771    #[doc = "          ],"]
17772    #[doc = "          \"properties\": {"]
17773    #[doc = "            \"code_hash\": {"]
17774    #[doc = "              \"$ref\": \"#/components/schemas/CryptoHash\""]
17775    #[doc = "            },"]
17776    #[doc = "            \"request_type\": {"]
17777    #[doc = "              \"type\": \"string\","]
17778    #[doc = "              \"enum\": ["]
17779    #[doc = "                \"view_global_contract_code\""]
17780    #[doc = "              ]"]
17781    #[doc = "            }"]
17782    #[doc = "          }"]
17783    #[doc = "        }"]
17784    #[doc = "      ]"]
17785    #[doc = "    },"]
17786    #[doc = "    {"]
17787    #[doc = "      \"allOf\": ["]
17788    #[doc = "        {"]
17789    #[doc = "          \"type\": \"object\","]
17790    #[doc = "          \"required\": ["]
17791    #[doc = "            \"finality\""]
17792    #[doc = "          ],"]
17793    #[doc = "          \"properties\": {"]
17794    #[doc = "            \"finality\": {"]
17795    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
17796    #[doc = "            }"]
17797    #[doc = "          }"]
17798    #[doc = "        },"]
17799    #[doc = "        {"]
17800    #[doc = "          \"type\": \"object\","]
17801    #[doc = "          \"required\": ["]
17802    #[doc = "            \"account_id\","]
17803    #[doc = "            \"request_type\""]
17804    #[doc = "          ],"]
17805    #[doc = "          \"properties\": {"]
17806    #[doc = "            \"account_id\": {"]
17807    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17808    #[doc = "            },"]
17809    #[doc = "            \"request_type\": {"]
17810    #[doc = "              \"type\": \"string\","]
17811    #[doc = "              \"enum\": ["]
17812    #[doc = "                \"view_global_contract_code_by_account_id\""]
17813    #[doc = "              ]"]
17814    #[doc = "            }"]
17815    #[doc = "          }"]
17816    #[doc = "        }"]
17817    #[doc = "      ]"]
17818    #[doc = "    },"]
17819    #[doc = "    {"]
17820    #[doc = "      \"allOf\": ["]
17821    #[doc = "        {"]
17822    #[doc = "          \"type\": \"object\","]
17823    #[doc = "          \"required\": ["]
17824    #[doc = "            \"sync_checkpoint\""]
17825    #[doc = "          ],"]
17826    #[doc = "          \"properties\": {"]
17827    #[doc = "            \"sync_checkpoint\": {"]
17828    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
17829    #[doc = "            }"]
17830    #[doc = "          }"]
17831    #[doc = "        },"]
17832    #[doc = "        {"]
17833    #[doc = "          \"type\": \"object\","]
17834    #[doc = "          \"required\": ["]
17835    #[doc = "            \"account_id\","]
17836    #[doc = "            \"request_type\""]
17837    #[doc = "          ],"]
17838    #[doc = "          \"properties\": {"]
17839    #[doc = "            \"account_id\": {"]
17840    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17841    #[doc = "            },"]
17842    #[doc = "            \"request_type\": {"]
17843    #[doc = "              \"type\": \"string\","]
17844    #[doc = "              \"enum\": ["]
17845    #[doc = "                \"view_account\""]
17846    #[doc = "              ]"]
17847    #[doc = "            }"]
17848    #[doc = "          }"]
17849    #[doc = "        }"]
17850    #[doc = "      ]"]
17851    #[doc = "    },"]
17852    #[doc = "    {"]
17853    #[doc = "      \"allOf\": ["]
17854    #[doc = "        {"]
17855    #[doc = "          \"type\": \"object\","]
17856    #[doc = "          \"required\": ["]
17857    #[doc = "            \"sync_checkpoint\""]
17858    #[doc = "          ],"]
17859    #[doc = "          \"properties\": {"]
17860    #[doc = "            \"sync_checkpoint\": {"]
17861    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
17862    #[doc = "            }"]
17863    #[doc = "          }"]
17864    #[doc = "        },"]
17865    #[doc = "        {"]
17866    #[doc = "          \"type\": \"object\","]
17867    #[doc = "          \"required\": ["]
17868    #[doc = "            \"account_id\","]
17869    #[doc = "            \"request_type\""]
17870    #[doc = "          ],"]
17871    #[doc = "          \"properties\": {"]
17872    #[doc = "            \"account_id\": {"]
17873    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17874    #[doc = "            },"]
17875    #[doc = "            \"request_type\": {"]
17876    #[doc = "              \"type\": \"string\","]
17877    #[doc = "              \"enum\": ["]
17878    #[doc = "                \"view_code\""]
17879    #[doc = "              ]"]
17880    #[doc = "            }"]
17881    #[doc = "          }"]
17882    #[doc = "        }"]
17883    #[doc = "      ]"]
17884    #[doc = "    },"]
17885    #[doc = "    {"]
17886    #[doc = "      \"allOf\": ["]
17887    #[doc = "        {"]
17888    #[doc = "          \"type\": \"object\","]
17889    #[doc = "          \"required\": ["]
17890    #[doc = "            \"sync_checkpoint\""]
17891    #[doc = "          ],"]
17892    #[doc = "          \"properties\": {"]
17893    #[doc = "            \"sync_checkpoint\": {"]
17894    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
17895    #[doc = "            }"]
17896    #[doc = "          }"]
17897    #[doc = "        },"]
17898    #[doc = "        {"]
17899    #[doc = "          \"type\": \"object\","]
17900    #[doc = "          \"required\": ["]
17901    #[doc = "            \"account_id\","]
17902    #[doc = "            \"prefix_base64\","]
17903    #[doc = "            \"request_type\""]
17904    #[doc = "          ],"]
17905    #[doc = "          \"properties\": {"]
17906    #[doc = "            \"account_id\": {"]
17907    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17908    #[doc = "            },"]
17909    #[doc = "            \"include_proof\": {"]
17910    #[doc = "              \"type\": \"boolean\""]
17911    #[doc = "            },"]
17912    #[doc = "            \"prefix_base64\": {"]
17913    #[doc = "              \"type\": \"string\","]
17914    #[doc = "              \"format\": \"bytes\""]
17915    #[doc = "            },"]
17916    #[doc = "            \"request_type\": {"]
17917    #[doc = "              \"type\": \"string\","]
17918    #[doc = "              \"enum\": ["]
17919    #[doc = "                \"view_state\""]
17920    #[doc = "              ]"]
17921    #[doc = "            }"]
17922    #[doc = "          }"]
17923    #[doc = "        }"]
17924    #[doc = "      ]"]
17925    #[doc = "    },"]
17926    #[doc = "    {"]
17927    #[doc = "      \"allOf\": ["]
17928    #[doc = "        {"]
17929    #[doc = "          \"type\": \"object\","]
17930    #[doc = "          \"required\": ["]
17931    #[doc = "            \"sync_checkpoint\""]
17932    #[doc = "          ],"]
17933    #[doc = "          \"properties\": {"]
17934    #[doc = "            \"sync_checkpoint\": {"]
17935    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
17936    #[doc = "            }"]
17937    #[doc = "          }"]
17938    #[doc = "        },"]
17939    #[doc = "        {"]
17940    #[doc = "          \"type\": \"object\","]
17941    #[doc = "          \"required\": ["]
17942    #[doc = "            \"account_id\","]
17943    #[doc = "            \"public_key\","]
17944    #[doc = "            \"request_type\""]
17945    #[doc = "          ],"]
17946    #[doc = "          \"properties\": {"]
17947    #[doc = "            \"account_id\": {"]
17948    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17949    #[doc = "            },"]
17950    #[doc = "            \"public_key\": {"]
17951    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
17952    #[doc = "            },"]
17953    #[doc = "            \"request_type\": {"]
17954    #[doc = "              \"type\": \"string\","]
17955    #[doc = "              \"enum\": ["]
17956    #[doc = "                \"view_access_key\""]
17957    #[doc = "              ]"]
17958    #[doc = "            }"]
17959    #[doc = "          }"]
17960    #[doc = "        }"]
17961    #[doc = "      ]"]
17962    #[doc = "    },"]
17963    #[doc = "    {"]
17964    #[doc = "      \"allOf\": ["]
17965    #[doc = "        {"]
17966    #[doc = "          \"type\": \"object\","]
17967    #[doc = "          \"required\": ["]
17968    #[doc = "            \"sync_checkpoint\""]
17969    #[doc = "          ],"]
17970    #[doc = "          \"properties\": {"]
17971    #[doc = "            \"sync_checkpoint\": {"]
17972    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
17973    #[doc = "            }"]
17974    #[doc = "          }"]
17975    #[doc = "        },"]
17976    #[doc = "        {"]
17977    #[doc = "          \"type\": \"object\","]
17978    #[doc = "          \"required\": ["]
17979    #[doc = "            \"account_id\","]
17980    #[doc = "            \"request_type\""]
17981    #[doc = "          ],"]
17982    #[doc = "          \"properties\": {"]
17983    #[doc = "            \"account_id\": {"]
17984    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
17985    #[doc = "            },"]
17986    #[doc = "            \"request_type\": {"]
17987    #[doc = "              \"type\": \"string\","]
17988    #[doc = "              \"enum\": ["]
17989    #[doc = "                \"view_access_key_list\""]
17990    #[doc = "              ]"]
17991    #[doc = "            }"]
17992    #[doc = "          }"]
17993    #[doc = "        }"]
17994    #[doc = "      ]"]
17995    #[doc = "    },"]
17996    #[doc = "    {"]
17997    #[doc = "      \"allOf\": ["]
17998    #[doc = "        {"]
17999    #[doc = "          \"type\": \"object\","]
18000    #[doc = "          \"required\": ["]
18001    #[doc = "            \"sync_checkpoint\""]
18002    #[doc = "          ],"]
18003    #[doc = "          \"properties\": {"]
18004    #[doc = "            \"sync_checkpoint\": {"]
18005    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
18006    #[doc = "            }"]
18007    #[doc = "          }"]
18008    #[doc = "        },"]
18009    #[doc = "        {"]
18010    #[doc = "          \"type\": \"object\","]
18011    #[doc = "          \"required\": ["]
18012    #[doc = "            \"account_id\","]
18013    #[doc = "            \"args_base64\","]
18014    #[doc = "            \"method_name\","]
18015    #[doc = "            \"request_type\""]
18016    #[doc = "          ],"]
18017    #[doc = "          \"properties\": {"]
18018    #[doc = "            \"account_id\": {"]
18019    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
18020    #[doc = "            },"]
18021    #[doc = "            \"args_base64\": {"]
18022    #[doc = "              \"type\": \"string\","]
18023    #[doc = "              \"format\": \"bytes\""]
18024    #[doc = "            },"]
18025    #[doc = "            \"method_name\": {"]
18026    #[doc = "              \"type\": \"string\""]
18027    #[doc = "            },"]
18028    #[doc = "            \"request_type\": {"]
18029    #[doc = "              \"type\": \"string\","]
18030    #[doc = "              \"enum\": ["]
18031    #[doc = "                \"call_function\""]
18032    #[doc = "              ]"]
18033    #[doc = "            }"]
18034    #[doc = "          }"]
18035    #[doc = "        }"]
18036    #[doc = "      ]"]
18037    #[doc = "    },"]
18038    #[doc = "    {"]
18039    #[doc = "      \"allOf\": ["]
18040    #[doc = "        {"]
18041    #[doc = "          \"type\": \"object\","]
18042    #[doc = "          \"required\": ["]
18043    #[doc = "            \"sync_checkpoint\""]
18044    #[doc = "          ],"]
18045    #[doc = "          \"properties\": {"]
18046    #[doc = "            \"sync_checkpoint\": {"]
18047    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
18048    #[doc = "            }"]
18049    #[doc = "          }"]
18050    #[doc = "        },"]
18051    #[doc = "        {"]
18052    #[doc = "          \"type\": \"object\","]
18053    #[doc = "          \"required\": ["]
18054    #[doc = "            \"code_hash\","]
18055    #[doc = "            \"request_type\""]
18056    #[doc = "          ],"]
18057    #[doc = "          \"properties\": {"]
18058    #[doc = "            \"code_hash\": {"]
18059    #[doc = "              \"$ref\": \"#/components/schemas/CryptoHash\""]
18060    #[doc = "            },"]
18061    #[doc = "            \"request_type\": {"]
18062    #[doc = "              \"type\": \"string\","]
18063    #[doc = "              \"enum\": ["]
18064    #[doc = "                \"view_global_contract_code\""]
18065    #[doc = "              ]"]
18066    #[doc = "            }"]
18067    #[doc = "          }"]
18068    #[doc = "        }"]
18069    #[doc = "      ]"]
18070    #[doc = "    },"]
18071    #[doc = "    {"]
18072    #[doc = "      \"allOf\": ["]
18073    #[doc = "        {"]
18074    #[doc = "          \"type\": \"object\","]
18075    #[doc = "          \"required\": ["]
18076    #[doc = "            \"sync_checkpoint\""]
18077    #[doc = "          ],"]
18078    #[doc = "          \"properties\": {"]
18079    #[doc = "            \"sync_checkpoint\": {"]
18080    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
18081    #[doc = "            }"]
18082    #[doc = "          }"]
18083    #[doc = "        },"]
18084    #[doc = "        {"]
18085    #[doc = "          \"type\": \"object\","]
18086    #[doc = "          \"required\": ["]
18087    #[doc = "            \"account_id\","]
18088    #[doc = "            \"request_type\""]
18089    #[doc = "          ],"]
18090    #[doc = "          \"properties\": {"]
18091    #[doc = "            \"account_id\": {"]
18092    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
18093    #[doc = "            },"]
18094    #[doc = "            \"request_type\": {"]
18095    #[doc = "              \"type\": \"string\","]
18096    #[doc = "              \"enum\": ["]
18097    #[doc = "                \"view_global_contract_code_by_account_id\""]
18098    #[doc = "              ]"]
18099    #[doc = "            }"]
18100    #[doc = "          }"]
18101    #[doc = "        }"]
18102    #[doc = "      ]"]
18103    #[doc = "    }"]
18104    #[doc = "  ]"]
18105    #[doc = "}"]
18106    #[doc = r" ```"]
18107    #[doc = r" </details>"]
18108    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
18109    #[serde(untagged)]
18110    pub enum RpcQueryRequest {
18111        Variant0 {
18112            account_id: AccountId,
18113            block_id: BlockId,
18114            request_type: RpcQueryRequestVariant0RequestType,
18115        },
18116        Variant1 {
18117            account_id: AccountId,
18118            block_id: BlockId,
18119            request_type: RpcQueryRequestVariant1RequestType,
18120        },
18121        Variant2 {
18122            account_id: AccountId,
18123            block_id: BlockId,
18124            #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
18125            include_proof: ::std::option::Option<bool>,
18126            prefix_base64: ::std::string::String,
18127            request_type: RpcQueryRequestVariant2RequestType,
18128        },
18129        Variant3 {
18130            account_id: AccountId,
18131            block_id: BlockId,
18132            public_key: PublicKey,
18133            request_type: RpcQueryRequestVariant3RequestType,
18134        },
18135        Variant4 {
18136            account_id: AccountId,
18137            block_id: BlockId,
18138            request_type: RpcQueryRequestVariant4RequestType,
18139        },
18140        Variant5 {
18141            account_id: AccountId,
18142            args_base64: ::std::string::String,
18143            block_id: BlockId,
18144            method_name: ::std::string::String,
18145            request_type: RpcQueryRequestVariant5RequestType,
18146        },
18147        Variant6 {
18148            block_id: BlockId,
18149            code_hash: CryptoHash,
18150            request_type: RpcQueryRequestVariant6RequestType,
18151        },
18152        Variant7 {
18153            account_id: AccountId,
18154            block_id: BlockId,
18155            request_type: RpcQueryRequestVariant7RequestType,
18156        },
18157        Variant8 {
18158            account_id: AccountId,
18159            finality: Finality,
18160            request_type: RpcQueryRequestVariant8RequestType,
18161        },
18162        Variant9 {
18163            account_id: AccountId,
18164            finality: Finality,
18165            request_type: RpcQueryRequestVariant9RequestType,
18166        },
18167        Variant10 {
18168            account_id: AccountId,
18169            finality: Finality,
18170            #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
18171            include_proof: ::std::option::Option<bool>,
18172            prefix_base64: ::std::string::String,
18173            request_type: RpcQueryRequestVariant10RequestType,
18174        },
18175        Variant11 {
18176            account_id: AccountId,
18177            finality: Finality,
18178            public_key: PublicKey,
18179            request_type: RpcQueryRequestVariant11RequestType,
18180        },
18181        Variant12 {
18182            account_id: AccountId,
18183            finality: Finality,
18184            request_type: RpcQueryRequestVariant12RequestType,
18185        },
18186        Variant13 {
18187            account_id: AccountId,
18188            args_base64: ::std::string::String,
18189            finality: Finality,
18190            method_name: ::std::string::String,
18191            request_type: RpcQueryRequestVariant13RequestType,
18192        },
18193        Variant14 {
18194            code_hash: CryptoHash,
18195            finality: Finality,
18196            request_type: RpcQueryRequestVariant14RequestType,
18197        },
18198        Variant15 {
18199            account_id: AccountId,
18200            finality: Finality,
18201            request_type: RpcQueryRequestVariant15RequestType,
18202        },
18203        Variant16 {
18204            account_id: AccountId,
18205            request_type: RpcQueryRequestVariant16RequestType,
18206            sync_checkpoint: SyncCheckpoint,
18207        },
18208        Variant17 {
18209            account_id: AccountId,
18210            request_type: RpcQueryRequestVariant17RequestType,
18211            sync_checkpoint: SyncCheckpoint,
18212        },
18213        Variant18 {
18214            account_id: AccountId,
18215            #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
18216            include_proof: ::std::option::Option<bool>,
18217            prefix_base64: ::std::string::String,
18218            request_type: RpcQueryRequestVariant18RequestType,
18219            sync_checkpoint: SyncCheckpoint,
18220        },
18221        Variant19 {
18222            account_id: AccountId,
18223            public_key: PublicKey,
18224            request_type: RpcQueryRequestVariant19RequestType,
18225            sync_checkpoint: SyncCheckpoint,
18226        },
18227        Variant20 {
18228            account_id: AccountId,
18229            request_type: RpcQueryRequestVariant20RequestType,
18230            sync_checkpoint: SyncCheckpoint,
18231        },
18232        Variant21 {
18233            account_id: AccountId,
18234            args_base64: ::std::string::String,
18235            method_name: ::std::string::String,
18236            request_type: RpcQueryRequestVariant21RequestType,
18237            sync_checkpoint: SyncCheckpoint,
18238        },
18239        Variant22 {
18240            code_hash: CryptoHash,
18241            request_type: RpcQueryRequestVariant22RequestType,
18242            sync_checkpoint: SyncCheckpoint,
18243        },
18244        Variant23 {
18245            account_id: AccountId,
18246            request_type: RpcQueryRequestVariant23RequestType,
18247            sync_checkpoint: SyncCheckpoint,
18248        },
18249    }
18250    impl ::std::convert::From<&Self> for RpcQueryRequest {
18251        fn from(value: &RpcQueryRequest) -> Self {
18252            value.clone()
18253        }
18254    }
18255    #[doc = "`RpcQueryRequestVariant0RequestType`"]
18256    #[doc = r""]
18257    #[doc = r" <details><summary>JSON schema</summary>"]
18258    #[doc = r""]
18259    #[doc = r" ```json"]
18260    #[doc = "{"]
18261    #[doc = "  \"type\": \"string\","]
18262    #[doc = "  \"enum\": ["]
18263    #[doc = "    \"view_account\""]
18264    #[doc = "  ]"]
18265    #[doc = "}"]
18266    #[doc = r" ```"]
18267    #[doc = r" </details>"]
18268    #[derive(
18269        :: serde :: Deserialize,
18270        :: serde :: Serialize,
18271        Clone,
18272        Copy,
18273        Debug,
18274        Eq,
18275        Hash,
18276        Ord,
18277        PartialEq,
18278        PartialOrd,
18279    )]
18280    pub enum RpcQueryRequestVariant0RequestType {
18281        #[serde(rename = "view_account")]
18282        ViewAccount,
18283    }
18284    impl ::std::convert::From<&Self> for RpcQueryRequestVariant0RequestType {
18285        fn from(value: &RpcQueryRequestVariant0RequestType) -> Self {
18286            value.clone()
18287        }
18288    }
18289    impl ::std::fmt::Display for RpcQueryRequestVariant0RequestType {
18290        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18291            match *self {
18292                Self::ViewAccount => write!(f, "view_account"),
18293            }
18294        }
18295    }
18296    impl ::std::str::FromStr for RpcQueryRequestVariant0RequestType {
18297        type Err = self::error::ConversionError;
18298        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18299            match value {
18300                "view_account" => Ok(Self::ViewAccount),
18301                _ => Err("invalid value".into()),
18302            }
18303        }
18304    }
18305    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant0RequestType {
18306        type Error = self::error::ConversionError;
18307        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18308            value.parse()
18309        }
18310    }
18311    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant0RequestType {
18312        type Error = self::error::ConversionError;
18313        fn try_from(
18314            value: &::std::string::String,
18315        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18316            value.parse()
18317        }
18318    }
18319    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant0RequestType {
18320        type Error = self::error::ConversionError;
18321        fn try_from(
18322            value: ::std::string::String,
18323        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18324            value.parse()
18325        }
18326    }
18327    #[doc = "`RpcQueryRequestVariant10RequestType`"]
18328    #[doc = r""]
18329    #[doc = r" <details><summary>JSON schema</summary>"]
18330    #[doc = r""]
18331    #[doc = r" ```json"]
18332    #[doc = "{"]
18333    #[doc = "  \"type\": \"string\","]
18334    #[doc = "  \"enum\": ["]
18335    #[doc = "    \"view_state\""]
18336    #[doc = "  ]"]
18337    #[doc = "}"]
18338    #[doc = r" ```"]
18339    #[doc = r" </details>"]
18340    #[derive(
18341        :: serde :: Deserialize,
18342        :: serde :: Serialize,
18343        Clone,
18344        Copy,
18345        Debug,
18346        Eq,
18347        Hash,
18348        Ord,
18349        PartialEq,
18350        PartialOrd,
18351    )]
18352    pub enum RpcQueryRequestVariant10RequestType {
18353        #[serde(rename = "view_state")]
18354        ViewState,
18355    }
18356    impl ::std::convert::From<&Self> for RpcQueryRequestVariant10RequestType {
18357        fn from(value: &RpcQueryRequestVariant10RequestType) -> Self {
18358            value.clone()
18359        }
18360    }
18361    impl ::std::fmt::Display for RpcQueryRequestVariant10RequestType {
18362        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18363            match *self {
18364                Self::ViewState => write!(f, "view_state"),
18365            }
18366        }
18367    }
18368    impl ::std::str::FromStr for RpcQueryRequestVariant10RequestType {
18369        type Err = self::error::ConversionError;
18370        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18371            match value {
18372                "view_state" => Ok(Self::ViewState),
18373                _ => Err("invalid value".into()),
18374            }
18375        }
18376    }
18377    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant10RequestType {
18378        type Error = self::error::ConversionError;
18379        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18380            value.parse()
18381        }
18382    }
18383    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant10RequestType {
18384        type Error = self::error::ConversionError;
18385        fn try_from(
18386            value: &::std::string::String,
18387        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18388            value.parse()
18389        }
18390    }
18391    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant10RequestType {
18392        type Error = self::error::ConversionError;
18393        fn try_from(
18394            value: ::std::string::String,
18395        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18396            value.parse()
18397        }
18398    }
18399    #[doc = "`RpcQueryRequestVariant11RequestType`"]
18400    #[doc = r""]
18401    #[doc = r" <details><summary>JSON schema</summary>"]
18402    #[doc = r""]
18403    #[doc = r" ```json"]
18404    #[doc = "{"]
18405    #[doc = "  \"type\": \"string\","]
18406    #[doc = "  \"enum\": ["]
18407    #[doc = "    \"view_access_key\""]
18408    #[doc = "  ]"]
18409    #[doc = "}"]
18410    #[doc = r" ```"]
18411    #[doc = r" </details>"]
18412    #[derive(
18413        :: serde :: Deserialize,
18414        :: serde :: Serialize,
18415        Clone,
18416        Copy,
18417        Debug,
18418        Eq,
18419        Hash,
18420        Ord,
18421        PartialEq,
18422        PartialOrd,
18423    )]
18424    pub enum RpcQueryRequestVariant11RequestType {
18425        #[serde(rename = "view_access_key")]
18426        ViewAccessKey,
18427    }
18428    impl ::std::convert::From<&Self> for RpcQueryRequestVariant11RequestType {
18429        fn from(value: &RpcQueryRequestVariant11RequestType) -> Self {
18430            value.clone()
18431        }
18432    }
18433    impl ::std::fmt::Display for RpcQueryRequestVariant11RequestType {
18434        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18435            match *self {
18436                Self::ViewAccessKey => write!(f, "view_access_key"),
18437            }
18438        }
18439    }
18440    impl ::std::str::FromStr for RpcQueryRequestVariant11RequestType {
18441        type Err = self::error::ConversionError;
18442        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18443            match value {
18444                "view_access_key" => Ok(Self::ViewAccessKey),
18445                _ => Err("invalid value".into()),
18446            }
18447        }
18448    }
18449    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant11RequestType {
18450        type Error = self::error::ConversionError;
18451        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18452            value.parse()
18453        }
18454    }
18455    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant11RequestType {
18456        type Error = self::error::ConversionError;
18457        fn try_from(
18458            value: &::std::string::String,
18459        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18460            value.parse()
18461        }
18462    }
18463    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant11RequestType {
18464        type Error = self::error::ConversionError;
18465        fn try_from(
18466            value: ::std::string::String,
18467        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18468            value.parse()
18469        }
18470    }
18471    #[doc = "`RpcQueryRequestVariant12RequestType`"]
18472    #[doc = r""]
18473    #[doc = r" <details><summary>JSON schema</summary>"]
18474    #[doc = r""]
18475    #[doc = r" ```json"]
18476    #[doc = "{"]
18477    #[doc = "  \"type\": \"string\","]
18478    #[doc = "  \"enum\": ["]
18479    #[doc = "    \"view_access_key_list\""]
18480    #[doc = "  ]"]
18481    #[doc = "}"]
18482    #[doc = r" ```"]
18483    #[doc = r" </details>"]
18484    #[derive(
18485        :: serde :: Deserialize,
18486        :: serde :: Serialize,
18487        Clone,
18488        Copy,
18489        Debug,
18490        Eq,
18491        Hash,
18492        Ord,
18493        PartialEq,
18494        PartialOrd,
18495    )]
18496    pub enum RpcQueryRequestVariant12RequestType {
18497        #[serde(rename = "view_access_key_list")]
18498        ViewAccessKeyList,
18499    }
18500    impl ::std::convert::From<&Self> for RpcQueryRequestVariant12RequestType {
18501        fn from(value: &RpcQueryRequestVariant12RequestType) -> Self {
18502            value.clone()
18503        }
18504    }
18505    impl ::std::fmt::Display for RpcQueryRequestVariant12RequestType {
18506        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18507            match *self {
18508                Self::ViewAccessKeyList => write!(f, "view_access_key_list"),
18509            }
18510        }
18511    }
18512    impl ::std::str::FromStr for RpcQueryRequestVariant12RequestType {
18513        type Err = self::error::ConversionError;
18514        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18515            match value {
18516                "view_access_key_list" => Ok(Self::ViewAccessKeyList),
18517                _ => Err("invalid value".into()),
18518            }
18519        }
18520    }
18521    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant12RequestType {
18522        type Error = self::error::ConversionError;
18523        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18524            value.parse()
18525        }
18526    }
18527    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant12RequestType {
18528        type Error = self::error::ConversionError;
18529        fn try_from(
18530            value: &::std::string::String,
18531        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18532            value.parse()
18533        }
18534    }
18535    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant12RequestType {
18536        type Error = self::error::ConversionError;
18537        fn try_from(
18538            value: ::std::string::String,
18539        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18540            value.parse()
18541        }
18542    }
18543    #[doc = "`RpcQueryRequestVariant13RequestType`"]
18544    #[doc = r""]
18545    #[doc = r" <details><summary>JSON schema</summary>"]
18546    #[doc = r""]
18547    #[doc = r" ```json"]
18548    #[doc = "{"]
18549    #[doc = "  \"type\": \"string\","]
18550    #[doc = "  \"enum\": ["]
18551    #[doc = "    \"call_function\""]
18552    #[doc = "  ]"]
18553    #[doc = "}"]
18554    #[doc = r" ```"]
18555    #[doc = r" </details>"]
18556    #[derive(
18557        :: serde :: Deserialize,
18558        :: serde :: Serialize,
18559        Clone,
18560        Copy,
18561        Debug,
18562        Eq,
18563        Hash,
18564        Ord,
18565        PartialEq,
18566        PartialOrd,
18567    )]
18568    pub enum RpcQueryRequestVariant13RequestType {
18569        #[serde(rename = "call_function")]
18570        CallFunction,
18571    }
18572    impl ::std::convert::From<&Self> for RpcQueryRequestVariant13RequestType {
18573        fn from(value: &RpcQueryRequestVariant13RequestType) -> Self {
18574            value.clone()
18575        }
18576    }
18577    impl ::std::fmt::Display for RpcQueryRequestVariant13RequestType {
18578        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18579            match *self {
18580                Self::CallFunction => write!(f, "call_function"),
18581            }
18582        }
18583    }
18584    impl ::std::str::FromStr for RpcQueryRequestVariant13RequestType {
18585        type Err = self::error::ConversionError;
18586        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18587            match value {
18588                "call_function" => Ok(Self::CallFunction),
18589                _ => Err("invalid value".into()),
18590            }
18591        }
18592    }
18593    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant13RequestType {
18594        type Error = self::error::ConversionError;
18595        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18596            value.parse()
18597        }
18598    }
18599    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant13RequestType {
18600        type Error = self::error::ConversionError;
18601        fn try_from(
18602            value: &::std::string::String,
18603        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18604            value.parse()
18605        }
18606    }
18607    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant13RequestType {
18608        type Error = self::error::ConversionError;
18609        fn try_from(
18610            value: ::std::string::String,
18611        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18612            value.parse()
18613        }
18614    }
18615    #[doc = "`RpcQueryRequestVariant14RequestType`"]
18616    #[doc = r""]
18617    #[doc = r" <details><summary>JSON schema</summary>"]
18618    #[doc = r""]
18619    #[doc = r" ```json"]
18620    #[doc = "{"]
18621    #[doc = "  \"type\": \"string\","]
18622    #[doc = "  \"enum\": ["]
18623    #[doc = "    \"view_global_contract_code\""]
18624    #[doc = "  ]"]
18625    #[doc = "}"]
18626    #[doc = r" ```"]
18627    #[doc = r" </details>"]
18628    #[derive(
18629        :: serde :: Deserialize,
18630        :: serde :: Serialize,
18631        Clone,
18632        Copy,
18633        Debug,
18634        Eq,
18635        Hash,
18636        Ord,
18637        PartialEq,
18638        PartialOrd,
18639    )]
18640    pub enum RpcQueryRequestVariant14RequestType {
18641        #[serde(rename = "view_global_contract_code")]
18642        ViewGlobalContractCode,
18643    }
18644    impl ::std::convert::From<&Self> for RpcQueryRequestVariant14RequestType {
18645        fn from(value: &RpcQueryRequestVariant14RequestType) -> Self {
18646            value.clone()
18647        }
18648    }
18649    impl ::std::fmt::Display for RpcQueryRequestVariant14RequestType {
18650        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18651            match *self {
18652                Self::ViewGlobalContractCode => write!(f, "view_global_contract_code"),
18653            }
18654        }
18655    }
18656    impl ::std::str::FromStr for RpcQueryRequestVariant14RequestType {
18657        type Err = self::error::ConversionError;
18658        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18659            match value {
18660                "view_global_contract_code" => Ok(Self::ViewGlobalContractCode),
18661                _ => Err("invalid value".into()),
18662            }
18663        }
18664    }
18665    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant14RequestType {
18666        type Error = self::error::ConversionError;
18667        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18668            value.parse()
18669        }
18670    }
18671    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant14RequestType {
18672        type Error = self::error::ConversionError;
18673        fn try_from(
18674            value: &::std::string::String,
18675        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18676            value.parse()
18677        }
18678    }
18679    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant14RequestType {
18680        type Error = self::error::ConversionError;
18681        fn try_from(
18682            value: ::std::string::String,
18683        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18684            value.parse()
18685        }
18686    }
18687    #[doc = "`RpcQueryRequestVariant15RequestType`"]
18688    #[doc = r""]
18689    #[doc = r" <details><summary>JSON schema</summary>"]
18690    #[doc = r""]
18691    #[doc = r" ```json"]
18692    #[doc = "{"]
18693    #[doc = "  \"type\": \"string\","]
18694    #[doc = "  \"enum\": ["]
18695    #[doc = "    \"view_global_contract_code_by_account_id\""]
18696    #[doc = "  ]"]
18697    #[doc = "}"]
18698    #[doc = r" ```"]
18699    #[doc = r" </details>"]
18700    #[derive(
18701        :: serde :: Deserialize,
18702        :: serde :: Serialize,
18703        Clone,
18704        Copy,
18705        Debug,
18706        Eq,
18707        Hash,
18708        Ord,
18709        PartialEq,
18710        PartialOrd,
18711    )]
18712    pub enum RpcQueryRequestVariant15RequestType {
18713        #[serde(rename = "view_global_contract_code_by_account_id")]
18714        ViewGlobalContractCodeByAccountId,
18715    }
18716    impl ::std::convert::From<&Self> for RpcQueryRequestVariant15RequestType {
18717        fn from(value: &RpcQueryRequestVariant15RequestType) -> Self {
18718            value.clone()
18719        }
18720    }
18721    impl ::std::fmt::Display for RpcQueryRequestVariant15RequestType {
18722        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18723            match *self {
18724                Self::ViewGlobalContractCodeByAccountId => {
18725                    write!(f, "view_global_contract_code_by_account_id")
18726                }
18727            }
18728        }
18729    }
18730    impl ::std::str::FromStr for RpcQueryRequestVariant15RequestType {
18731        type Err = self::error::ConversionError;
18732        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18733            match value {
18734                "view_global_contract_code_by_account_id" => {
18735                    Ok(Self::ViewGlobalContractCodeByAccountId)
18736                }
18737                _ => Err("invalid value".into()),
18738            }
18739        }
18740    }
18741    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant15RequestType {
18742        type Error = self::error::ConversionError;
18743        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18744            value.parse()
18745        }
18746    }
18747    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant15RequestType {
18748        type Error = self::error::ConversionError;
18749        fn try_from(
18750            value: &::std::string::String,
18751        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18752            value.parse()
18753        }
18754    }
18755    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant15RequestType {
18756        type Error = self::error::ConversionError;
18757        fn try_from(
18758            value: ::std::string::String,
18759        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18760            value.parse()
18761        }
18762    }
18763    #[doc = "`RpcQueryRequestVariant16RequestType`"]
18764    #[doc = r""]
18765    #[doc = r" <details><summary>JSON schema</summary>"]
18766    #[doc = r""]
18767    #[doc = r" ```json"]
18768    #[doc = "{"]
18769    #[doc = "  \"type\": \"string\","]
18770    #[doc = "  \"enum\": ["]
18771    #[doc = "    \"view_account\""]
18772    #[doc = "  ]"]
18773    #[doc = "}"]
18774    #[doc = r" ```"]
18775    #[doc = r" </details>"]
18776    #[derive(
18777        :: serde :: Deserialize,
18778        :: serde :: Serialize,
18779        Clone,
18780        Copy,
18781        Debug,
18782        Eq,
18783        Hash,
18784        Ord,
18785        PartialEq,
18786        PartialOrd,
18787    )]
18788    pub enum RpcQueryRequestVariant16RequestType {
18789        #[serde(rename = "view_account")]
18790        ViewAccount,
18791    }
18792    impl ::std::convert::From<&Self> for RpcQueryRequestVariant16RequestType {
18793        fn from(value: &RpcQueryRequestVariant16RequestType) -> Self {
18794            value.clone()
18795        }
18796    }
18797    impl ::std::fmt::Display for RpcQueryRequestVariant16RequestType {
18798        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18799            match *self {
18800                Self::ViewAccount => write!(f, "view_account"),
18801            }
18802        }
18803    }
18804    impl ::std::str::FromStr for RpcQueryRequestVariant16RequestType {
18805        type Err = self::error::ConversionError;
18806        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18807            match value {
18808                "view_account" => Ok(Self::ViewAccount),
18809                _ => Err("invalid value".into()),
18810            }
18811        }
18812    }
18813    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant16RequestType {
18814        type Error = self::error::ConversionError;
18815        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18816            value.parse()
18817        }
18818    }
18819    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant16RequestType {
18820        type Error = self::error::ConversionError;
18821        fn try_from(
18822            value: &::std::string::String,
18823        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18824            value.parse()
18825        }
18826    }
18827    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant16RequestType {
18828        type Error = self::error::ConversionError;
18829        fn try_from(
18830            value: ::std::string::String,
18831        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18832            value.parse()
18833        }
18834    }
18835    #[doc = "`RpcQueryRequestVariant17RequestType`"]
18836    #[doc = r""]
18837    #[doc = r" <details><summary>JSON schema</summary>"]
18838    #[doc = r""]
18839    #[doc = r" ```json"]
18840    #[doc = "{"]
18841    #[doc = "  \"type\": \"string\","]
18842    #[doc = "  \"enum\": ["]
18843    #[doc = "    \"view_code\""]
18844    #[doc = "  ]"]
18845    #[doc = "}"]
18846    #[doc = r" ```"]
18847    #[doc = r" </details>"]
18848    #[derive(
18849        :: serde :: Deserialize,
18850        :: serde :: Serialize,
18851        Clone,
18852        Copy,
18853        Debug,
18854        Eq,
18855        Hash,
18856        Ord,
18857        PartialEq,
18858        PartialOrd,
18859    )]
18860    pub enum RpcQueryRequestVariant17RequestType {
18861        #[serde(rename = "view_code")]
18862        ViewCode,
18863    }
18864    impl ::std::convert::From<&Self> for RpcQueryRequestVariant17RequestType {
18865        fn from(value: &RpcQueryRequestVariant17RequestType) -> Self {
18866            value.clone()
18867        }
18868    }
18869    impl ::std::fmt::Display for RpcQueryRequestVariant17RequestType {
18870        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18871            match *self {
18872                Self::ViewCode => write!(f, "view_code"),
18873            }
18874        }
18875    }
18876    impl ::std::str::FromStr for RpcQueryRequestVariant17RequestType {
18877        type Err = self::error::ConversionError;
18878        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18879            match value {
18880                "view_code" => Ok(Self::ViewCode),
18881                _ => Err("invalid value".into()),
18882            }
18883        }
18884    }
18885    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant17RequestType {
18886        type Error = self::error::ConversionError;
18887        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18888            value.parse()
18889        }
18890    }
18891    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant17RequestType {
18892        type Error = self::error::ConversionError;
18893        fn try_from(
18894            value: &::std::string::String,
18895        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18896            value.parse()
18897        }
18898    }
18899    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant17RequestType {
18900        type Error = self::error::ConversionError;
18901        fn try_from(
18902            value: ::std::string::String,
18903        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18904            value.parse()
18905        }
18906    }
18907    #[doc = "`RpcQueryRequestVariant18RequestType`"]
18908    #[doc = r""]
18909    #[doc = r" <details><summary>JSON schema</summary>"]
18910    #[doc = r""]
18911    #[doc = r" ```json"]
18912    #[doc = "{"]
18913    #[doc = "  \"type\": \"string\","]
18914    #[doc = "  \"enum\": ["]
18915    #[doc = "    \"view_state\""]
18916    #[doc = "  ]"]
18917    #[doc = "}"]
18918    #[doc = r" ```"]
18919    #[doc = r" </details>"]
18920    #[derive(
18921        :: serde :: Deserialize,
18922        :: serde :: Serialize,
18923        Clone,
18924        Copy,
18925        Debug,
18926        Eq,
18927        Hash,
18928        Ord,
18929        PartialEq,
18930        PartialOrd,
18931    )]
18932    pub enum RpcQueryRequestVariant18RequestType {
18933        #[serde(rename = "view_state")]
18934        ViewState,
18935    }
18936    impl ::std::convert::From<&Self> for RpcQueryRequestVariant18RequestType {
18937        fn from(value: &RpcQueryRequestVariant18RequestType) -> Self {
18938            value.clone()
18939        }
18940    }
18941    impl ::std::fmt::Display for RpcQueryRequestVariant18RequestType {
18942        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18943            match *self {
18944                Self::ViewState => write!(f, "view_state"),
18945            }
18946        }
18947    }
18948    impl ::std::str::FromStr for RpcQueryRequestVariant18RequestType {
18949        type Err = self::error::ConversionError;
18950        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18951            match value {
18952                "view_state" => Ok(Self::ViewState),
18953                _ => Err("invalid value".into()),
18954            }
18955        }
18956    }
18957    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant18RequestType {
18958        type Error = self::error::ConversionError;
18959        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
18960            value.parse()
18961        }
18962    }
18963    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant18RequestType {
18964        type Error = self::error::ConversionError;
18965        fn try_from(
18966            value: &::std::string::String,
18967        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18968            value.parse()
18969        }
18970    }
18971    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant18RequestType {
18972        type Error = self::error::ConversionError;
18973        fn try_from(
18974            value: ::std::string::String,
18975        ) -> ::std::result::Result<Self, self::error::ConversionError> {
18976            value.parse()
18977        }
18978    }
18979    #[doc = "`RpcQueryRequestVariant19RequestType`"]
18980    #[doc = r""]
18981    #[doc = r" <details><summary>JSON schema</summary>"]
18982    #[doc = r""]
18983    #[doc = r" ```json"]
18984    #[doc = "{"]
18985    #[doc = "  \"type\": \"string\","]
18986    #[doc = "  \"enum\": ["]
18987    #[doc = "    \"view_access_key\""]
18988    #[doc = "  ]"]
18989    #[doc = "}"]
18990    #[doc = r" ```"]
18991    #[doc = r" </details>"]
18992    #[derive(
18993        :: serde :: Deserialize,
18994        :: serde :: Serialize,
18995        Clone,
18996        Copy,
18997        Debug,
18998        Eq,
18999        Hash,
19000        Ord,
19001        PartialEq,
19002        PartialOrd,
19003    )]
19004    pub enum RpcQueryRequestVariant19RequestType {
19005        #[serde(rename = "view_access_key")]
19006        ViewAccessKey,
19007    }
19008    impl ::std::convert::From<&Self> for RpcQueryRequestVariant19RequestType {
19009        fn from(value: &RpcQueryRequestVariant19RequestType) -> Self {
19010            value.clone()
19011        }
19012    }
19013    impl ::std::fmt::Display for RpcQueryRequestVariant19RequestType {
19014        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19015            match *self {
19016                Self::ViewAccessKey => write!(f, "view_access_key"),
19017            }
19018        }
19019    }
19020    impl ::std::str::FromStr for RpcQueryRequestVariant19RequestType {
19021        type Err = self::error::ConversionError;
19022        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19023            match value {
19024                "view_access_key" => Ok(Self::ViewAccessKey),
19025                _ => Err("invalid value".into()),
19026            }
19027        }
19028    }
19029    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant19RequestType {
19030        type Error = self::error::ConversionError;
19031        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19032            value.parse()
19033        }
19034    }
19035    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant19RequestType {
19036        type Error = self::error::ConversionError;
19037        fn try_from(
19038            value: &::std::string::String,
19039        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19040            value.parse()
19041        }
19042    }
19043    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant19RequestType {
19044        type Error = self::error::ConversionError;
19045        fn try_from(
19046            value: ::std::string::String,
19047        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19048            value.parse()
19049        }
19050    }
19051    #[doc = "`RpcQueryRequestVariant1RequestType`"]
19052    #[doc = r""]
19053    #[doc = r" <details><summary>JSON schema</summary>"]
19054    #[doc = r""]
19055    #[doc = r" ```json"]
19056    #[doc = "{"]
19057    #[doc = "  \"type\": \"string\","]
19058    #[doc = "  \"enum\": ["]
19059    #[doc = "    \"view_code\""]
19060    #[doc = "  ]"]
19061    #[doc = "}"]
19062    #[doc = r" ```"]
19063    #[doc = r" </details>"]
19064    #[derive(
19065        :: serde :: Deserialize,
19066        :: serde :: Serialize,
19067        Clone,
19068        Copy,
19069        Debug,
19070        Eq,
19071        Hash,
19072        Ord,
19073        PartialEq,
19074        PartialOrd,
19075    )]
19076    pub enum RpcQueryRequestVariant1RequestType {
19077        #[serde(rename = "view_code")]
19078        ViewCode,
19079    }
19080    impl ::std::convert::From<&Self> for RpcQueryRequestVariant1RequestType {
19081        fn from(value: &RpcQueryRequestVariant1RequestType) -> Self {
19082            value.clone()
19083        }
19084    }
19085    impl ::std::fmt::Display for RpcQueryRequestVariant1RequestType {
19086        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19087            match *self {
19088                Self::ViewCode => write!(f, "view_code"),
19089            }
19090        }
19091    }
19092    impl ::std::str::FromStr for RpcQueryRequestVariant1RequestType {
19093        type Err = self::error::ConversionError;
19094        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19095            match value {
19096                "view_code" => Ok(Self::ViewCode),
19097                _ => Err("invalid value".into()),
19098            }
19099        }
19100    }
19101    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant1RequestType {
19102        type Error = self::error::ConversionError;
19103        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19104            value.parse()
19105        }
19106    }
19107    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant1RequestType {
19108        type Error = self::error::ConversionError;
19109        fn try_from(
19110            value: &::std::string::String,
19111        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19112            value.parse()
19113        }
19114    }
19115    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant1RequestType {
19116        type Error = self::error::ConversionError;
19117        fn try_from(
19118            value: ::std::string::String,
19119        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19120            value.parse()
19121        }
19122    }
19123    #[doc = "`RpcQueryRequestVariant20RequestType`"]
19124    #[doc = r""]
19125    #[doc = r" <details><summary>JSON schema</summary>"]
19126    #[doc = r""]
19127    #[doc = r" ```json"]
19128    #[doc = "{"]
19129    #[doc = "  \"type\": \"string\","]
19130    #[doc = "  \"enum\": ["]
19131    #[doc = "    \"view_access_key_list\""]
19132    #[doc = "  ]"]
19133    #[doc = "}"]
19134    #[doc = r" ```"]
19135    #[doc = r" </details>"]
19136    #[derive(
19137        :: serde :: Deserialize,
19138        :: serde :: Serialize,
19139        Clone,
19140        Copy,
19141        Debug,
19142        Eq,
19143        Hash,
19144        Ord,
19145        PartialEq,
19146        PartialOrd,
19147    )]
19148    pub enum RpcQueryRequestVariant20RequestType {
19149        #[serde(rename = "view_access_key_list")]
19150        ViewAccessKeyList,
19151    }
19152    impl ::std::convert::From<&Self> for RpcQueryRequestVariant20RequestType {
19153        fn from(value: &RpcQueryRequestVariant20RequestType) -> Self {
19154            value.clone()
19155        }
19156    }
19157    impl ::std::fmt::Display for RpcQueryRequestVariant20RequestType {
19158        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19159            match *self {
19160                Self::ViewAccessKeyList => write!(f, "view_access_key_list"),
19161            }
19162        }
19163    }
19164    impl ::std::str::FromStr for RpcQueryRequestVariant20RequestType {
19165        type Err = self::error::ConversionError;
19166        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19167            match value {
19168                "view_access_key_list" => Ok(Self::ViewAccessKeyList),
19169                _ => Err("invalid value".into()),
19170            }
19171        }
19172    }
19173    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant20RequestType {
19174        type Error = self::error::ConversionError;
19175        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19176            value.parse()
19177        }
19178    }
19179    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant20RequestType {
19180        type Error = self::error::ConversionError;
19181        fn try_from(
19182            value: &::std::string::String,
19183        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19184            value.parse()
19185        }
19186    }
19187    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant20RequestType {
19188        type Error = self::error::ConversionError;
19189        fn try_from(
19190            value: ::std::string::String,
19191        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19192            value.parse()
19193        }
19194    }
19195    #[doc = "`RpcQueryRequestVariant21RequestType`"]
19196    #[doc = r""]
19197    #[doc = r" <details><summary>JSON schema</summary>"]
19198    #[doc = r""]
19199    #[doc = r" ```json"]
19200    #[doc = "{"]
19201    #[doc = "  \"type\": \"string\","]
19202    #[doc = "  \"enum\": ["]
19203    #[doc = "    \"call_function\""]
19204    #[doc = "  ]"]
19205    #[doc = "}"]
19206    #[doc = r" ```"]
19207    #[doc = r" </details>"]
19208    #[derive(
19209        :: serde :: Deserialize,
19210        :: serde :: Serialize,
19211        Clone,
19212        Copy,
19213        Debug,
19214        Eq,
19215        Hash,
19216        Ord,
19217        PartialEq,
19218        PartialOrd,
19219    )]
19220    pub enum RpcQueryRequestVariant21RequestType {
19221        #[serde(rename = "call_function")]
19222        CallFunction,
19223    }
19224    impl ::std::convert::From<&Self> for RpcQueryRequestVariant21RequestType {
19225        fn from(value: &RpcQueryRequestVariant21RequestType) -> Self {
19226            value.clone()
19227        }
19228    }
19229    impl ::std::fmt::Display for RpcQueryRequestVariant21RequestType {
19230        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19231            match *self {
19232                Self::CallFunction => write!(f, "call_function"),
19233            }
19234        }
19235    }
19236    impl ::std::str::FromStr for RpcQueryRequestVariant21RequestType {
19237        type Err = self::error::ConversionError;
19238        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19239            match value {
19240                "call_function" => Ok(Self::CallFunction),
19241                _ => Err("invalid value".into()),
19242            }
19243        }
19244    }
19245    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant21RequestType {
19246        type Error = self::error::ConversionError;
19247        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19248            value.parse()
19249        }
19250    }
19251    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant21RequestType {
19252        type Error = self::error::ConversionError;
19253        fn try_from(
19254            value: &::std::string::String,
19255        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19256            value.parse()
19257        }
19258    }
19259    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant21RequestType {
19260        type Error = self::error::ConversionError;
19261        fn try_from(
19262            value: ::std::string::String,
19263        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19264            value.parse()
19265        }
19266    }
19267    #[doc = "`RpcQueryRequestVariant22RequestType`"]
19268    #[doc = r""]
19269    #[doc = r" <details><summary>JSON schema</summary>"]
19270    #[doc = r""]
19271    #[doc = r" ```json"]
19272    #[doc = "{"]
19273    #[doc = "  \"type\": \"string\","]
19274    #[doc = "  \"enum\": ["]
19275    #[doc = "    \"view_global_contract_code\""]
19276    #[doc = "  ]"]
19277    #[doc = "}"]
19278    #[doc = r" ```"]
19279    #[doc = r" </details>"]
19280    #[derive(
19281        :: serde :: Deserialize,
19282        :: serde :: Serialize,
19283        Clone,
19284        Copy,
19285        Debug,
19286        Eq,
19287        Hash,
19288        Ord,
19289        PartialEq,
19290        PartialOrd,
19291    )]
19292    pub enum RpcQueryRequestVariant22RequestType {
19293        #[serde(rename = "view_global_contract_code")]
19294        ViewGlobalContractCode,
19295    }
19296    impl ::std::convert::From<&Self> for RpcQueryRequestVariant22RequestType {
19297        fn from(value: &RpcQueryRequestVariant22RequestType) -> Self {
19298            value.clone()
19299        }
19300    }
19301    impl ::std::fmt::Display for RpcQueryRequestVariant22RequestType {
19302        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19303            match *self {
19304                Self::ViewGlobalContractCode => write!(f, "view_global_contract_code"),
19305            }
19306        }
19307    }
19308    impl ::std::str::FromStr for RpcQueryRequestVariant22RequestType {
19309        type Err = self::error::ConversionError;
19310        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19311            match value {
19312                "view_global_contract_code" => Ok(Self::ViewGlobalContractCode),
19313                _ => Err("invalid value".into()),
19314            }
19315        }
19316    }
19317    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant22RequestType {
19318        type Error = self::error::ConversionError;
19319        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19320            value.parse()
19321        }
19322    }
19323    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant22RequestType {
19324        type Error = self::error::ConversionError;
19325        fn try_from(
19326            value: &::std::string::String,
19327        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19328            value.parse()
19329        }
19330    }
19331    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant22RequestType {
19332        type Error = self::error::ConversionError;
19333        fn try_from(
19334            value: ::std::string::String,
19335        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19336            value.parse()
19337        }
19338    }
19339    #[doc = "`RpcQueryRequestVariant23RequestType`"]
19340    #[doc = r""]
19341    #[doc = r" <details><summary>JSON schema</summary>"]
19342    #[doc = r""]
19343    #[doc = r" ```json"]
19344    #[doc = "{"]
19345    #[doc = "  \"type\": \"string\","]
19346    #[doc = "  \"enum\": ["]
19347    #[doc = "    \"view_global_contract_code_by_account_id\""]
19348    #[doc = "  ]"]
19349    #[doc = "}"]
19350    #[doc = r" ```"]
19351    #[doc = r" </details>"]
19352    #[derive(
19353        :: serde :: Deserialize,
19354        :: serde :: Serialize,
19355        Clone,
19356        Copy,
19357        Debug,
19358        Eq,
19359        Hash,
19360        Ord,
19361        PartialEq,
19362        PartialOrd,
19363    )]
19364    pub enum RpcQueryRequestVariant23RequestType {
19365        #[serde(rename = "view_global_contract_code_by_account_id")]
19366        ViewGlobalContractCodeByAccountId,
19367    }
19368    impl ::std::convert::From<&Self> for RpcQueryRequestVariant23RequestType {
19369        fn from(value: &RpcQueryRequestVariant23RequestType) -> Self {
19370            value.clone()
19371        }
19372    }
19373    impl ::std::fmt::Display for RpcQueryRequestVariant23RequestType {
19374        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19375            match *self {
19376                Self::ViewGlobalContractCodeByAccountId => {
19377                    write!(f, "view_global_contract_code_by_account_id")
19378                }
19379            }
19380        }
19381    }
19382    impl ::std::str::FromStr for RpcQueryRequestVariant23RequestType {
19383        type Err = self::error::ConversionError;
19384        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19385            match value {
19386                "view_global_contract_code_by_account_id" => {
19387                    Ok(Self::ViewGlobalContractCodeByAccountId)
19388                }
19389                _ => Err("invalid value".into()),
19390            }
19391        }
19392    }
19393    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant23RequestType {
19394        type Error = self::error::ConversionError;
19395        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19396            value.parse()
19397        }
19398    }
19399    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant23RequestType {
19400        type Error = self::error::ConversionError;
19401        fn try_from(
19402            value: &::std::string::String,
19403        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19404            value.parse()
19405        }
19406    }
19407    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant23RequestType {
19408        type Error = self::error::ConversionError;
19409        fn try_from(
19410            value: ::std::string::String,
19411        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19412            value.parse()
19413        }
19414    }
19415    #[doc = "`RpcQueryRequestVariant2RequestType`"]
19416    #[doc = r""]
19417    #[doc = r" <details><summary>JSON schema</summary>"]
19418    #[doc = r""]
19419    #[doc = r" ```json"]
19420    #[doc = "{"]
19421    #[doc = "  \"type\": \"string\","]
19422    #[doc = "  \"enum\": ["]
19423    #[doc = "    \"view_state\""]
19424    #[doc = "  ]"]
19425    #[doc = "}"]
19426    #[doc = r" ```"]
19427    #[doc = r" </details>"]
19428    #[derive(
19429        :: serde :: Deserialize,
19430        :: serde :: Serialize,
19431        Clone,
19432        Copy,
19433        Debug,
19434        Eq,
19435        Hash,
19436        Ord,
19437        PartialEq,
19438        PartialOrd,
19439    )]
19440    pub enum RpcQueryRequestVariant2RequestType {
19441        #[serde(rename = "view_state")]
19442        ViewState,
19443    }
19444    impl ::std::convert::From<&Self> for RpcQueryRequestVariant2RequestType {
19445        fn from(value: &RpcQueryRequestVariant2RequestType) -> Self {
19446            value.clone()
19447        }
19448    }
19449    impl ::std::fmt::Display for RpcQueryRequestVariant2RequestType {
19450        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19451            match *self {
19452                Self::ViewState => write!(f, "view_state"),
19453            }
19454        }
19455    }
19456    impl ::std::str::FromStr for RpcQueryRequestVariant2RequestType {
19457        type Err = self::error::ConversionError;
19458        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19459            match value {
19460                "view_state" => Ok(Self::ViewState),
19461                _ => Err("invalid value".into()),
19462            }
19463        }
19464    }
19465    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant2RequestType {
19466        type Error = self::error::ConversionError;
19467        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19468            value.parse()
19469        }
19470    }
19471    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant2RequestType {
19472        type Error = self::error::ConversionError;
19473        fn try_from(
19474            value: &::std::string::String,
19475        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19476            value.parse()
19477        }
19478    }
19479    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant2RequestType {
19480        type Error = self::error::ConversionError;
19481        fn try_from(
19482            value: ::std::string::String,
19483        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19484            value.parse()
19485        }
19486    }
19487    #[doc = "`RpcQueryRequestVariant3RequestType`"]
19488    #[doc = r""]
19489    #[doc = r" <details><summary>JSON schema</summary>"]
19490    #[doc = r""]
19491    #[doc = r" ```json"]
19492    #[doc = "{"]
19493    #[doc = "  \"type\": \"string\","]
19494    #[doc = "  \"enum\": ["]
19495    #[doc = "    \"view_access_key\""]
19496    #[doc = "  ]"]
19497    #[doc = "}"]
19498    #[doc = r" ```"]
19499    #[doc = r" </details>"]
19500    #[derive(
19501        :: serde :: Deserialize,
19502        :: serde :: Serialize,
19503        Clone,
19504        Copy,
19505        Debug,
19506        Eq,
19507        Hash,
19508        Ord,
19509        PartialEq,
19510        PartialOrd,
19511    )]
19512    pub enum RpcQueryRequestVariant3RequestType {
19513        #[serde(rename = "view_access_key")]
19514        ViewAccessKey,
19515    }
19516    impl ::std::convert::From<&Self> for RpcQueryRequestVariant3RequestType {
19517        fn from(value: &RpcQueryRequestVariant3RequestType) -> Self {
19518            value.clone()
19519        }
19520    }
19521    impl ::std::fmt::Display for RpcQueryRequestVariant3RequestType {
19522        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19523            match *self {
19524                Self::ViewAccessKey => write!(f, "view_access_key"),
19525            }
19526        }
19527    }
19528    impl ::std::str::FromStr for RpcQueryRequestVariant3RequestType {
19529        type Err = self::error::ConversionError;
19530        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19531            match value {
19532                "view_access_key" => Ok(Self::ViewAccessKey),
19533                _ => Err("invalid value".into()),
19534            }
19535        }
19536    }
19537    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant3RequestType {
19538        type Error = self::error::ConversionError;
19539        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19540            value.parse()
19541        }
19542    }
19543    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant3RequestType {
19544        type Error = self::error::ConversionError;
19545        fn try_from(
19546            value: &::std::string::String,
19547        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19548            value.parse()
19549        }
19550    }
19551    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant3RequestType {
19552        type Error = self::error::ConversionError;
19553        fn try_from(
19554            value: ::std::string::String,
19555        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19556            value.parse()
19557        }
19558    }
19559    #[doc = "`RpcQueryRequestVariant4RequestType`"]
19560    #[doc = r""]
19561    #[doc = r" <details><summary>JSON schema</summary>"]
19562    #[doc = r""]
19563    #[doc = r" ```json"]
19564    #[doc = "{"]
19565    #[doc = "  \"type\": \"string\","]
19566    #[doc = "  \"enum\": ["]
19567    #[doc = "    \"view_access_key_list\""]
19568    #[doc = "  ]"]
19569    #[doc = "}"]
19570    #[doc = r" ```"]
19571    #[doc = r" </details>"]
19572    #[derive(
19573        :: serde :: Deserialize,
19574        :: serde :: Serialize,
19575        Clone,
19576        Copy,
19577        Debug,
19578        Eq,
19579        Hash,
19580        Ord,
19581        PartialEq,
19582        PartialOrd,
19583    )]
19584    pub enum RpcQueryRequestVariant4RequestType {
19585        #[serde(rename = "view_access_key_list")]
19586        ViewAccessKeyList,
19587    }
19588    impl ::std::convert::From<&Self> for RpcQueryRequestVariant4RequestType {
19589        fn from(value: &RpcQueryRequestVariant4RequestType) -> Self {
19590            value.clone()
19591        }
19592    }
19593    impl ::std::fmt::Display for RpcQueryRequestVariant4RequestType {
19594        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19595            match *self {
19596                Self::ViewAccessKeyList => write!(f, "view_access_key_list"),
19597            }
19598        }
19599    }
19600    impl ::std::str::FromStr for RpcQueryRequestVariant4RequestType {
19601        type Err = self::error::ConversionError;
19602        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19603            match value {
19604                "view_access_key_list" => Ok(Self::ViewAccessKeyList),
19605                _ => Err("invalid value".into()),
19606            }
19607        }
19608    }
19609    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant4RequestType {
19610        type Error = self::error::ConversionError;
19611        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19612            value.parse()
19613        }
19614    }
19615    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant4RequestType {
19616        type Error = self::error::ConversionError;
19617        fn try_from(
19618            value: &::std::string::String,
19619        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19620            value.parse()
19621        }
19622    }
19623    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant4RequestType {
19624        type Error = self::error::ConversionError;
19625        fn try_from(
19626            value: ::std::string::String,
19627        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19628            value.parse()
19629        }
19630    }
19631    #[doc = "`RpcQueryRequestVariant5RequestType`"]
19632    #[doc = r""]
19633    #[doc = r" <details><summary>JSON schema</summary>"]
19634    #[doc = r""]
19635    #[doc = r" ```json"]
19636    #[doc = "{"]
19637    #[doc = "  \"type\": \"string\","]
19638    #[doc = "  \"enum\": ["]
19639    #[doc = "    \"call_function\""]
19640    #[doc = "  ]"]
19641    #[doc = "}"]
19642    #[doc = r" ```"]
19643    #[doc = r" </details>"]
19644    #[derive(
19645        :: serde :: Deserialize,
19646        :: serde :: Serialize,
19647        Clone,
19648        Copy,
19649        Debug,
19650        Eq,
19651        Hash,
19652        Ord,
19653        PartialEq,
19654        PartialOrd,
19655    )]
19656    pub enum RpcQueryRequestVariant5RequestType {
19657        #[serde(rename = "call_function")]
19658        CallFunction,
19659    }
19660    impl ::std::convert::From<&Self> for RpcQueryRequestVariant5RequestType {
19661        fn from(value: &RpcQueryRequestVariant5RequestType) -> Self {
19662            value.clone()
19663        }
19664    }
19665    impl ::std::fmt::Display for RpcQueryRequestVariant5RequestType {
19666        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19667            match *self {
19668                Self::CallFunction => write!(f, "call_function"),
19669            }
19670        }
19671    }
19672    impl ::std::str::FromStr for RpcQueryRequestVariant5RequestType {
19673        type Err = self::error::ConversionError;
19674        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19675            match value {
19676                "call_function" => Ok(Self::CallFunction),
19677                _ => Err("invalid value".into()),
19678            }
19679        }
19680    }
19681    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant5RequestType {
19682        type Error = self::error::ConversionError;
19683        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19684            value.parse()
19685        }
19686    }
19687    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant5RequestType {
19688        type Error = self::error::ConversionError;
19689        fn try_from(
19690            value: &::std::string::String,
19691        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19692            value.parse()
19693        }
19694    }
19695    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant5RequestType {
19696        type Error = self::error::ConversionError;
19697        fn try_from(
19698            value: ::std::string::String,
19699        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19700            value.parse()
19701        }
19702    }
19703    #[doc = "`RpcQueryRequestVariant6RequestType`"]
19704    #[doc = r""]
19705    #[doc = r" <details><summary>JSON schema</summary>"]
19706    #[doc = r""]
19707    #[doc = r" ```json"]
19708    #[doc = "{"]
19709    #[doc = "  \"type\": \"string\","]
19710    #[doc = "  \"enum\": ["]
19711    #[doc = "    \"view_global_contract_code\""]
19712    #[doc = "  ]"]
19713    #[doc = "}"]
19714    #[doc = r" ```"]
19715    #[doc = r" </details>"]
19716    #[derive(
19717        :: serde :: Deserialize,
19718        :: serde :: Serialize,
19719        Clone,
19720        Copy,
19721        Debug,
19722        Eq,
19723        Hash,
19724        Ord,
19725        PartialEq,
19726        PartialOrd,
19727    )]
19728    pub enum RpcQueryRequestVariant6RequestType {
19729        #[serde(rename = "view_global_contract_code")]
19730        ViewGlobalContractCode,
19731    }
19732    impl ::std::convert::From<&Self> for RpcQueryRequestVariant6RequestType {
19733        fn from(value: &RpcQueryRequestVariant6RequestType) -> Self {
19734            value.clone()
19735        }
19736    }
19737    impl ::std::fmt::Display for RpcQueryRequestVariant6RequestType {
19738        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19739            match *self {
19740                Self::ViewGlobalContractCode => write!(f, "view_global_contract_code"),
19741            }
19742        }
19743    }
19744    impl ::std::str::FromStr for RpcQueryRequestVariant6RequestType {
19745        type Err = self::error::ConversionError;
19746        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19747            match value {
19748                "view_global_contract_code" => Ok(Self::ViewGlobalContractCode),
19749                _ => Err("invalid value".into()),
19750            }
19751        }
19752    }
19753    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant6RequestType {
19754        type Error = self::error::ConversionError;
19755        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19756            value.parse()
19757        }
19758    }
19759    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant6RequestType {
19760        type Error = self::error::ConversionError;
19761        fn try_from(
19762            value: &::std::string::String,
19763        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19764            value.parse()
19765        }
19766    }
19767    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant6RequestType {
19768        type Error = self::error::ConversionError;
19769        fn try_from(
19770            value: ::std::string::String,
19771        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19772            value.parse()
19773        }
19774    }
19775    #[doc = "`RpcQueryRequestVariant7RequestType`"]
19776    #[doc = r""]
19777    #[doc = r" <details><summary>JSON schema</summary>"]
19778    #[doc = r""]
19779    #[doc = r" ```json"]
19780    #[doc = "{"]
19781    #[doc = "  \"type\": \"string\","]
19782    #[doc = "  \"enum\": ["]
19783    #[doc = "    \"view_global_contract_code_by_account_id\""]
19784    #[doc = "  ]"]
19785    #[doc = "}"]
19786    #[doc = r" ```"]
19787    #[doc = r" </details>"]
19788    #[derive(
19789        :: serde :: Deserialize,
19790        :: serde :: Serialize,
19791        Clone,
19792        Copy,
19793        Debug,
19794        Eq,
19795        Hash,
19796        Ord,
19797        PartialEq,
19798        PartialOrd,
19799    )]
19800    pub enum RpcQueryRequestVariant7RequestType {
19801        #[serde(rename = "view_global_contract_code_by_account_id")]
19802        ViewGlobalContractCodeByAccountId,
19803    }
19804    impl ::std::convert::From<&Self> for RpcQueryRequestVariant7RequestType {
19805        fn from(value: &RpcQueryRequestVariant7RequestType) -> Self {
19806            value.clone()
19807        }
19808    }
19809    impl ::std::fmt::Display for RpcQueryRequestVariant7RequestType {
19810        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19811            match *self {
19812                Self::ViewGlobalContractCodeByAccountId => {
19813                    write!(f, "view_global_contract_code_by_account_id")
19814                }
19815            }
19816        }
19817    }
19818    impl ::std::str::FromStr for RpcQueryRequestVariant7RequestType {
19819        type Err = self::error::ConversionError;
19820        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19821            match value {
19822                "view_global_contract_code_by_account_id" => {
19823                    Ok(Self::ViewGlobalContractCodeByAccountId)
19824                }
19825                _ => Err("invalid value".into()),
19826            }
19827        }
19828    }
19829    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant7RequestType {
19830        type Error = self::error::ConversionError;
19831        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19832            value.parse()
19833        }
19834    }
19835    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant7RequestType {
19836        type Error = self::error::ConversionError;
19837        fn try_from(
19838            value: &::std::string::String,
19839        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19840            value.parse()
19841        }
19842    }
19843    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant7RequestType {
19844        type Error = self::error::ConversionError;
19845        fn try_from(
19846            value: ::std::string::String,
19847        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19848            value.parse()
19849        }
19850    }
19851    #[doc = "`RpcQueryRequestVariant8RequestType`"]
19852    #[doc = r""]
19853    #[doc = r" <details><summary>JSON schema</summary>"]
19854    #[doc = r""]
19855    #[doc = r" ```json"]
19856    #[doc = "{"]
19857    #[doc = "  \"type\": \"string\","]
19858    #[doc = "  \"enum\": ["]
19859    #[doc = "    \"view_account\""]
19860    #[doc = "  ]"]
19861    #[doc = "}"]
19862    #[doc = r" ```"]
19863    #[doc = r" </details>"]
19864    #[derive(
19865        :: serde :: Deserialize,
19866        :: serde :: Serialize,
19867        Clone,
19868        Copy,
19869        Debug,
19870        Eq,
19871        Hash,
19872        Ord,
19873        PartialEq,
19874        PartialOrd,
19875    )]
19876    pub enum RpcQueryRequestVariant8RequestType {
19877        #[serde(rename = "view_account")]
19878        ViewAccount,
19879    }
19880    impl ::std::convert::From<&Self> for RpcQueryRequestVariant8RequestType {
19881        fn from(value: &RpcQueryRequestVariant8RequestType) -> Self {
19882            value.clone()
19883        }
19884    }
19885    impl ::std::fmt::Display for RpcQueryRequestVariant8RequestType {
19886        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19887            match *self {
19888                Self::ViewAccount => write!(f, "view_account"),
19889            }
19890        }
19891    }
19892    impl ::std::str::FromStr for RpcQueryRequestVariant8RequestType {
19893        type Err = self::error::ConversionError;
19894        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19895            match value {
19896                "view_account" => Ok(Self::ViewAccount),
19897                _ => Err("invalid value".into()),
19898            }
19899        }
19900    }
19901    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant8RequestType {
19902        type Error = self::error::ConversionError;
19903        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19904            value.parse()
19905        }
19906    }
19907    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant8RequestType {
19908        type Error = self::error::ConversionError;
19909        fn try_from(
19910            value: &::std::string::String,
19911        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19912            value.parse()
19913        }
19914    }
19915    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant8RequestType {
19916        type Error = self::error::ConversionError;
19917        fn try_from(
19918            value: ::std::string::String,
19919        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19920            value.parse()
19921        }
19922    }
19923    #[doc = "`RpcQueryRequestVariant9RequestType`"]
19924    #[doc = r""]
19925    #[doc = r" <details><summary>JSON schema</summary>"]
19926    #[doc = r""]
19927    #[doc = r" ```json"]
19928    #[doc = "{"]
19929    #[doc = "  \"type\": \"string\","]
19930    #[doc = "  \"enum\": ["]
19931    #[doc = "    \"view_code\""]
19932    #[doc = "  ]"]
19933    #[doc = "}"]
19934    #[doc = r" ```"]
19935    #[doc = r" </details>"]
19936    #[derive(
19937        :: serde :: Deserialize,
19938        :: serde :: Serialize,
19939        Clone,
19940        Copy,
19941        Debug,
19942        Eq,
19943        Hash,
19944        Ord,
19945        PartialEq,
19946        PartialOrd,
19947    )]
19948    pub enum RpcQueryRequestVariant9RequestType {
19949        #[serde(rename = "view_code")]
19950        ViewCode,
19951    }
19952    impl ::std::convert::From<&Self> for RpcQueryRequestVariant9RequestType {
19953        fn from(value: &RpcQueryRequestVariant9RequestType) -> Self {
19954            value.clone()
19955        }
19956    }
19957    impl ::std::fmt::Display for RpcQueryRequestVariant9RequestType {
19958        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19959            match *self {
19960                Self::ViewCode => write!(f, "view_code"),
19961            }
19962        }
19963    }
19964    impl ::std::str::FromStr for RpcQueryRequestVariant9RequestType {
19965        type Err = self::error::ConversionError;
19966        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19967            match value {
19968                "view_code" => Ok(Self::ViewCode),
19969                _ => Err("invalid value".into()),
19970            }
19971        }
19972    }
19973    impl ::std::convert::TryFrom<&str> for RpcQueryRequestVariant9RequestType {
19974        type Error = self::error::ConversionError;
19975        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
19976            value.parse()
19977        }
19978    }
19979    impl ::std::convert::TryFrom<&::std::string::String> for RpcQueryRequestVariant9RequestType {
19980        type Error = self::error::ConversionError;
19981        fn try_from(
19982            value: &::std::string::String,
19983        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19984            value.parse()
19985        }
19986    }
19987    impl ::std::convert::TryFrom<::std::string::String> for RpcQueryRequestVariant9RequestType {
19988        type Error = self::error::ConversionError;
19989        fn try_from(
19990            value: ::std::string::String,
19991        ) -> ::std::result::Result<Self, self::error::ConversionError> {
19992            value.parse()
19993        }
19994    }
19995    #[doc = "`RpcQueryResponse`"]
19996    #[doc = r""]
19997    #[doc = r" <details><summary>JSON schema</summary>"]
19998    #[doc = r""]
19999    #[doc = r" ```json"]
20000    #[doc = "{"]
20001    #[doc = "  \"type\": \"object\","]
20002    #[doc = "  \"anyOf\": ["]
20003    #[doc = "    {"]
20004    #[doc = "      \"$ref\": \"#/components/schemas/AccountView\""]
20005    #[doc = "    },"]
20006    #[doc = "    {"]
20007    #[doc = "      \"$ref\": \"#/components/schemas/ContractCodeView\""]
20008    #[doc = "    },"]
20009    #[doc = "    {"]
20010    #[doc = "      \"$ref\": \"#/components/schemas/ViewStateResult\""]
20011    #[doc = "    },"]
20012    #[doc = "    {"]
20013    #[doc = "      \"$ref\": \"#/components/schemas/CallResult\""]
20014    #[doc = "    },"]
20015    #[doc = "    {"]
20016    #[doc = "      \"$ref\": \"#/components/schemas/AccessKeyView\""]
20017    #[doc = "    },"]
20018    #[doc = "    {"]
20019    #[doc = "      \"$ref\": \"#/components/schemas/AccessKeyList\""]
20020    #[doc = "    }"]
20021    #[doc = "  ],"]
20022    #[doc = "  \"required\": ["]
20023    #[doc = "    \"block_hash\","]
20024    #[doc = "    \"block_height\""]
20025    #[doc = "  ],"]
20026    #[doc = "  \"properties\": {"]
20027    #[doc = "    \"block_hash\": {"]
20028    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
20029    #[doc = "    },"]
20030    #[doc = "    \"block_height\": {"]
20031    #[doc = "      \"type\": \"integer\","]
20032    #[doc = "      \"format\": \"uint64\","]
20033    #[doc = "      \"minimum\": 0.0"]
20034    #[doc = "    }"]
20035    #[doc = "  }"]
20036    #[doc = "}"]
20037    #[doc = r" ```"]
20038    #[doc = r" </details>"]
20039    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
20040    #[serde(untagged)]
20041    pub enum RpcQueryResponse {
20042        Variant0 {
20043            amount: ::std::string::String,
20044            block_hash: CryptoHash,
20045            block_height: u64,
20046            code_hash: CryptoHash,
20047            #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
20048            global_contract_account_id: ::std::option::Option<AccountId>,
20049            #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
20050            global_contract_hash: ::std::option::Option<CryptoHash>,
20051            locked: ::std::string::String,
20052            #[doc = "TODO(2271): deprecated."]
20053            #[serde(default)]
20054            storage_paid_at: u64,
20055            storage_usage: u64,
20056        },
20057        Variant1 {
20058            block_hash: CryptoHash,
20059            block_height: u64,
20060            code_base64: ::std::string::String,
20061            hash: CryptoHash,
20062        },
20063        Variant2 {
20064            block_hash: CryptoHash,
20065            block_height: u64,
20066            #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
20067            proof: ::std::vec::Vec<::std::string::String>,
20068            values: ::std::vec::Vec<StateItem>,
20069        },
20070        Variant3 {
20071            block_hash: CryptoHash,
20072            block_height: u64,
20073            logs: ::std::vec::Vec<::std::string::String>,
20074            result: ::std::vec::Vec<u8>,
20075        },
20076        Variant4 {
20077            block_hash: CryptoHash,
20078            block_height: u64,
20079            nonce: u64,
20080            permission: AccessKeyPermissionView,
20081        },
20082        Variant5 {
20083            block_hash: CryptoHash,
20084            block_height: u64,
20085            keys: ::std::vec::Vec<AccessKeyInfoView>,
20086        },
20087    }
20088    impl ::std::convert::From<&Self> for RpcQueryResponse {
20089        fn from(value: &RpcQueryResponse) -> Self {
20090            value.clone()
20091        }
20092    }
20093    #[doc = "`RpcReceiptRequest`"]
20094    #[doc = r""]
20095    #[doc = r" <details><summary>JSON schema</summary>"]
20096    #[doc = r""]
20097    #[doc = r" ```json"]
20098    #[doc = "{"]
20099    #[doc = "  \"title\": \"RpcReceiptRequest\","]
20100    #[doc = "  \"type\": \"object\","]
20101    #[doc = "  \"required\": ["]
20102    #[doc = "    \"receipt_id\""]
20103    #[doc = "  ],"]
20104    #[doc = "  \"properties\": {"]
20105    #[doc = "    \"receipt_id\": {"]
20106    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
20107    #[doc = "    }"]
20108    #[doc = "  }"]
20109    #[doc = "}"]
20110    #[doc = r" ```"]
20111    #[doc = r" </details>"]
20112    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
20113    pub struct RpcReceiptRequest {
20114        pub receipt_id: CryptoHash,
20115    }
20116    impl ::std::convert::From<&RpcReceiptRequest> for RpcReceiptRequest {
20117        fn from(value: &RpcReceiptRequest) -> Self {
20118            value.clone()
20119        }
20120    }
20121    #[doc = "`RpcReceiptResponse`"]
20122    #[doc = r""]
20123    #[doc = r" <details><summary>JSON schema</summary>"]
20124    #[doc = r""]
20125    #[doc = r" ```json"]
20126    #[doc = "{"]
20127    #[doc = "  \"type\": \"object\","]
20128    #[doc = "  \"required\": ["]
20129    #[doc = "    \"predecessor_id\","]
20130    #[doc = "    \"receipt\","]
20131    #[doc = "    \"receipt_id\","]
20132    #[doc = "    \"receiver_id\""]
20133    #[doc = "  ],"]
20134    #[doc = "  \"properties\": {"]
20135    #[doc = "    \"predecessor_id\": {"]
20136    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
20137    #[doc = "    },"]
20138    #[doc = "    \"priority\": {"]
20139    #[doc = "      \"default\": 0,"]
20140    #[doc = "      \"type\": \"integer\","]
20141    #[doc = "      \"format\": \"uint64\","]
20142    #[doc = "      \"minimum\": 0.0"]
20143    #[doc = "    },"]
20144    #[doc = "    \"receipt\": {"]
20145    #[doc = "      \"$ref\": \"#/components/schemas/ReceiptEnumView\""]
20146    #[doc = "    },"]
20147    #[doc = "    \"receipt_id\": {"]
20148    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
20149    #[doc = "    },"]
20150    #[doc = "    \"receiver_id\": {"]
20151    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
20152    #[doc = "    }"]
20153    #[doc = "  }"]
20154    #[doc = "}"]
20155    #[doc = r" ```"]
20156    #[doc = r" </details>"]
20157    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
20158    pub struct RpcReceiptResponse {
20159        pub predecessor_id: AccountId,
20160        #[serde(default)]
20161        pub priority: u64,
20162        pub receipt: ReceiptEnumView,
20163        pub receipt_id: CryptoHash,
20164        pub receiver_id: AccountId,
20165    }
20166    impl ::std::convert::From<&RpcReceiptResponse> for RpcReceiptResponse {
20167        fn from(value: &RpcReceiptResponse) -> Self {
20168            value.clone()
20169        }
20170    }
20171    #[doc = "`RpcRequestValidationErrorKind`"]
20172    #[doc = r""]
20173    #[doc = r" <details><summary>JSON schema</summary>"]
20174    #[doc = r""]
20175    #[doc = r" ```json"]
20176    #[doc = "{"]
20177    #[doc = "  \"oneOf\": ["]
20178    #[doc = "    {"]
20179    #[doc = "      \"type\": \"object\","]
20180    #[doc = "      \"required\": ["]
20181    #[doc = "        \"info\","]
20182    #[doc = "        \"name\""]
20183    #[doc = "      ],"]
20184    #[doc = "      \"properties\": {"]
20185    #[doc = "        \"info\": {"]
20186    #[doc = "          \"type\": \"object\","]
20187    #[doc = "          \"required\": ["]
20188    #[doc = "            \"method_name\""]
20189    #[doc = "          ],"]
20190    #[doc = "          \"properties\": {"]
20191    #[doc = "            \"method_name\": {"]
20192    #[doc = "              \"type\": \"string\""]
20193    #[doc = "            }"]
20194    #[doc = "          }"]
20195    #[doc = "        },"]
20196    #[doc = "        \"name\": {"]
20197    #[doc = "          \"type\": \"string\","]
20198    #[doc = "          \"enum\": ["]
20199    #[doc = "            \"METHOD_NOT_FOUND\""]
20200    #[doc = "          ]"]
20201    #[doc = "        }"]
20202    #[doc = "      }"]
20203    #[doc = "    },"]
20204    #[doc = "    {"]
20205    #[doc = "      \"type\": \"object\","]
20206    #[doc = "      \"required\": ["]
20207    #[doc = "        \"info\","]
20208    #[doc = "        \"name\""]
20209    #[doc = "      ],"]
20210    #[doc = "      \"properties\": {"]
20211    #[doc = "        \"info\": {"]
20212    #[doc = "          \"type\": \"object\","]
20213    #[doc = "          \"required\": ["]
20214    #[doc = "            \"error_message\""]
20215    #[doc = "          ],"]
20216    #[doc = "          \"properties\": {"]
20217    #[doc = "            \"error_message\": {"]
20218    #[doc = "              \"type\": \"string\""]
20219    #[doc = "            }"]
20220    #[doc = "          }"]
20221    #[doc = "        },"]
20222    #[doc = "        \"name\": {"]
20223    #[doc = "          \"type\": \"string\","]
20224    #[doc = "          \"enum\": ["]
20225    #[doc = "            \"PARSE_ERROR\""]
20226    #[doc = "          ]"]
20227    #[doc = "        }"]
20228    #[doc = "      }"]
20229    #[doc = "    }"]
20230    #[doc = "  ]"]
20231    #[doc = "}"]
20232    #[doc = r" ```"]
20233    #[doc = r" </details>"]
20234    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
20235    #[serde(tag = "name", content = "info")]
20236    pub enum RpcRequestValidationErrorKind {
20237        #[serde(rename = "METHOD_NOT_FOUND")]
20238        MethodNotFound { method_name: ::std::string::String },
20239        #[serde(rename = "PARSE_ERROR")]
20240        ParseError {
20241            error_message: ::std::string::String,
20242        },
20243    }
20244    impl ::std::convert::From<&Self> for RpcRequestValidationErrorKind {
20245        fn from(value: &RpcRequestValidationErrorKind) -> Self {
20246            value.clone()
20247        }
20248    }
20249    #[doc = "`RpcSendTransactionRequest`"]
20250    #[doc = r""]
20251    #[doc = r" <details><summary>JSON schema</summary>"]
20252    #[doc = r""]
20253    #[doc = r" ```json"]
20254    #[doc = "{"]
20255    #[doc = "  \"title\": \"RpcSendTransactionRequest\","]
20256    #[doc = "  \"type\": \"object\","]
20257    #[doc = "  \"required\": ["]
20258    #[doc = "    \"signed_tx_base64\""]
20259    #[doc = "  ],"]
20260    #[doc = "  \"properties\": {"]
20261    #[doc = "    \"signed_tx_base64\": {"]
20262    #[doc = "      \"$ref\": \"#/components/schemas/SignedTransaction\""]
20263    #[doc = "    },"]
20264    #[doc = "    \"wait_until\": {"]
20265    #[doc = "      \"default\": \"EXECUTED_OPTIMISTIC\","]
20266    #[doc = "      \"allOf\": ["]
20267    #[doc = "        {"]
20268    #[doc = "          \"$ref\": \"#/components/schemas/TxExecutionStatus\""]
20269    #[doc = "        }"]
20270    #[doc = "      ]"]
20271    #[doc = "    }"]
20272    #[doc = "  }"]
20273    #[doc = "}"]
20274    #[doc = r" ```"]
20275    #[doc = r" </details>"]
20276    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
20277    pub struct RpcSendTransactionRequest {
20278        pub signed_tx_base64: SignedTransaction,
20279        #[serde(default = "defaults::rpc_send_transaction_request_wait_until")]
20280        pub wait_until: TxExecutionStatus,
20281    }
20282    impl ::std::convert::From<&RpcSendTransactionRequest> for RpcSendTransactionRequest {
20283        fn from(value: &RpcSendTransactionRequest) -> Self {
20284            value.clone()
20285        }
20286    }
20287    #[doc = "`RpcSplitStorageInfoRequest`"]
20288    #[doc = r""]
20289    #[doc = r" <details><summary>JSON schema</summary>"]
20290    #[doc = r""]
20291    #[doc = r" ```json"]
20292    #[doc = "{"]
20293    #[doc = "  \"title\": \"RpcSplitStorageInfoRequest\","]
20294    #[doc = "  \"type\": \"object\""]
20295    #[doc = "}"]
20296    #[doc = r" ```"]
20297    #[doc = r" </details>"]
20298    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
20299    #[serde(transparent)]
20300    pub struct RpcSplitStorageInfoRequest(
20301        pub ::serde_json::Map<::std::string::String, ::serde_json::Value>,
20302    );
20303    impl ::std::ops::Deref for RpcSplitStorageInfoRequest {
20304        type Target = ::serde_json::Map<::std::string::String, ::serde_json::Value>;
20305        fn deref(&self) -> &::serde_json::Map<::std::string::String, ::serde_json::Value> {
20306            &self.0
20307        }
20308    }
20309    impl ::std::convert::From<RpcSplitStorageInfoRequest>
20310        for ::serde_json::Map<::std::string::String, ::serde_json::Value>
20311    {
20312        fn from(value: RpcSplitStorageInfoRequest) -> Self {
20313            value.0
20314        }
20315    }
20316    impl ::std::convert::From<&RpcSplitStorageInfoRequest> for RpcSplitStorageInfoRequest {
20317        fn from(value: &RpcSplitStorageInfoRequest) -> Self {
20318            value.clone()
20319        }
20320    }
20321    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
20322        for RpcSplitStorageInfoRequest
20323    {
20324        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
20325            Self(value)
20326        }
20327    }
20328    #[doc = "Contains the split storage information."]
20329    #[doc = r""]
20330    #[doc = r" <details><summary>JSON schema</summary>"]
20331    #[doc = r""]
20332    #[doc = r" ```json"]
20333    #[doc = "{"]
20334    #[doc = "  \"description\": \"Contains the split storage information.\","]
20335    #[doc = "  \"type\": \"object\","]
20336    #[doc = "  \"properties\": {"]
20337    #[doc = "    \"cold_head_height\": {"]
20338    #[doc = "      \"type\": ["]
20339    #[doc = "        \"integer\","]
20340    #[doc = "        \"null\""]
20341    #[doc = "      ],"]
20342    #[doc = "      \"format\": \"uint64\","]
20343    #[doc = "      \"minimum\": 0.0"]
20344    #[doc = "    },"]
20345    #[doc = "    \"final_head_height\": {"]
20346    #[doc = "      \"type\": ["]
20347    #[doc = "        \"integer\","]
20348    #[doc = "        \"null\""]
20349    #[doc = "      ],"]
20350    #[doc = "      \"format\": \"uint64\","]
20351    #[doc = "      \"minimum\": 0.0"]
20352    #[doc = "    },"]
20353    #[doc = "    \"head_height\": {"]
20354    #[doc = "      \"type\": ["]
20355    #[doc = "        \"integer\","]
20356    #[doc = "        \"null\""]
20357    #[doc = "      ],"]
20358    #[doc = "      \"format\": \"uint64\","]
20359    #[doc = "      \"minimum\": 0.0"]
20360    #[doc = "    },"]
20361    #[doc = "    \"hot_db_kind\": {"]
20362    #[doc = "      \"type\": ["]
20363    #[doc = "        \"string\","]
20364    #[doc = "        \"null\""]
20365    #[doc = "      ]"]
20366    #[doc = "    }"]
20367    #[doc = "  }"]
20368    #[doc = "}"]
20369    #[doc = r" ```"]
20370    #[doc = r" </details>"]
20371    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
20372    pub struct RpcSplitStorageInfoResponse {
20373        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
20374        pub cold_head_height: ::std::option::Option<u64>,
20375        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
20376        pub final_head_height: ::std::option::Option<u64>,
20377        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
20378        pub head_height: ::std::option::Option<u64>,
20379        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
20380        pub hot_db_kind: ::std::option::Option<::std::string::String>,
20381    }
20382    impl ::std::convert::From<&RpcSplitStorageInfoResponse> for RpcSplitStorageInfoResponse {
20383        fn from(value: &RpcSplitStorageInfoResponse) -> Self {
20384            value.clone()
20385        }
20386    }
20387    impl ::std::default::Default for RpcSplitStorageInfoResponse {
20388        fn default() -> Self {
20389            Self {
20390                cold_head_height: Default::default(),
20391                final_head_height: Default::default(),
20392                head_height: Default::default(),
20393                hot_db_kind: Default::default(),
20394            }
20395        }
20396    }
20397    #[doc = "It is a [serializable view] of [`StateChangesRequest`].\n\n [serializable view]: ./index.html\n [`StateChangesRequest`]: ../types/struct.StateChangesRequest.html"]
20398    #[doc = r""]
20399    #[doc = r" <details><summary>JSON schema</summary>"]
20400    #[doc = r""]
20401    #[doc = r" ```json"]
20402    #[doc = "{"]
20403    #[doc = "  \"title\": \"RpcStateChangesInBlockByTypeRequest\","]
20404    #[doc = "  \"description\": \"It is a [serializable view] of [`StateChangesRequest`].\\n\\n [serializable view]: ./index.html\\n [`StateChangesRequest`]: ../types/struct.StateChangesRequest.html\","]
20405    #[doc = "  \"type\": \"object\","]
20406    #[doc = "  \"oneOf\": ["]
20407    #[doc = "    {"]
20408    #[doc = "      \"allOf\": ["]
20409    #[doc = "        {"]
20410    #[doc = "          \"type\": \"object\","]
20411    #[doc = "          \"required\": ["]
20412    #[doc = "            \"block_id\""]
20413    #[doc = "          ],"]
20414    #[doc = "          \"properties\": {"]
20415    #[doc = "            \"block_id\": {"]
20416    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
20417    #[doc = "            }"]
20418    #[doc = "          }"]
20419    #[doc = "        },"]
20420    #[doc = "        {"]
20421    #[doc = "          \"type\": \"object\","]
20422    #[doc = "          \"required\": ["]
20423    #[doc = "            \"account_ids\","]
20424    #[doc = "            \"changes_type\""]
20425    #[doc = "          ],"]
20426    #[doc = "          \"properties\": {"]
20427    #[doc = "            \"account_ids\": {"]
20428    #[doc = "              \"type\": \"array\","]
20429    #[doc = "              \"items\": {"]
20430    #[doc = "                \"$ref\": \"#/components/schemas/AccountId\""]
20431    #[doc = "              }"]
20432    #[doc = "            },"]
20433    #[doc = "            \"changes_type\": {"]
20434    #[doc = "              \"type\": \"string\","]
20435    #[doc = "              \"enum\": ["]
20436    #[doc = "                \"account_changes\""]
20437    #[doc = "              ]"]
20438    #[doc = "            }"]
20439    #[doc = "          }"]
20440    #[doc = "        }"]
20441    #[doc = "      ]"]
20442    #[doc = "    },"]
20443    #[doc = "    {"]
20444    #[doc = "      \"allOf\": ["]
20445    #[doc = "        {"]
20446    #[doc = "          \"type\": \"object\","]
20447    #[doc = "          \"required\": ["]
20448    #[doc = "            \"block_id\""]
20449    #[doc = "          ],"]
20450    #[doc = "          \"properties\": {"]
20451    #[doc = "            \"block_id\": {"]
20452    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
20453    #[doc = "            }"]
20454    #[doc = "          }"]
20455    #[doc = "        },"]
20456    #[doc = "        {"]
20457    #[doc = "          \"type\": \"object\","]
20458    #[doc = "          \"required\": ["]
20459    #[doc = "            \"changes_type\","]
20460    #[doc = "            \"keys\""]
20461    #[doc = "          ],"]
20462    #[doc = "          \"properties\": {"]
20463    #[doc = "            \"changes_type\": {"]
20464    #[doc = "              \"type\": \"string\","]
20465    #[doc = "              \"enum\": ["]
20466    #[doc = "                \"single_access_key_changes\""]
20467    #[doc = "              ]"]
20468    #[doc = "            },"]
20469    #[doc = "            \"keys\": {"]
20470    #[doc = "              \"type\": \"array\","]
20471    #[doc = "              \"items\": {"]
20472    #[doc = "                \"$ref\": \"#/components/schemas/AccountWithPublicKey\""]
20473    #[doc = "              }"]
20474    #[doc = "            }"]
20475    #[doc = "          }"]
20476    #[doc = "        }"]
20477    #[doc = "      ]"]
20478    #[doc = "    },"]
20479    #[doc = "    {"]
20480    #[doc = "      \"allOf\": ["]
20481    #[doc = "        {"]
20482    #[doc = "          \"type\": \"object\","]
20483    #[doc = "          \"required\": ["]
20484    #[doc = "            \"block_id\""]
20485    #[doc = "          ],"]
20486    #[doc = "          \"properties\": {"]
20487    #[doc = "            \"block_id\": {"]
20488    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
20489    #[doc = "            }"]
20490    #[doc = "          }"]
20491    #[doc = "        },"]
20492    #[doc = "        {"]
20493    #[doc = "          \"type\": \"object\","]
20494    #[doc = "          \"required\": ["]
20495    #[doc = "            \"account_ids\","]
20496    #[doc = "            \"changes_type\""]
20497    #[doc = "          ],"]
20498    #[doc = "          \"properties\": {"]
20499    #[doc = "            \"account_ids\": {"]
20500    #[doc = "              \"type\": \"array\","]
20501    #[doc = "              \"items\": {"]
20502    #[doc = "                \"$ref\": \"#/components/schemas/AccountId\""]
20503    #[doc = "              }"]
20504    #[doc = "            },"]
20505    #[doc = "            \"changes_type\": {"]
20506    #[doc = "              \"type\": \"string\","]
20507    #[doc = "              \"enum\": ["]
20508    #[doc = "                \"all_access_key_changes\""]
20509    #[doc = "              ]"]
20510    #[doc = "            }"]
20511    #[doc = "          }"]
20512    #[doc = "        }"]
20513    #[doc = "      ]"]
20514    #[doc = "    },"]
20515    #[doc = "    {"]
20516    #[doc = "      \"allOf\": ["]
20517    #[doc = "        {"]
20518    #[doc = "          \"type\": \"object\","]
20519    #[doc = "          \"required\": ["]
20520    #[doc = "            \"block_id\""]
20521    #[doc = "          ],"]
20522    #[doc = "          \"properties\": {"]
20523    #[doc = "            \"block_id\": {"]
20524    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
20525    #[doc = "            }"]
20526    #[doc = "          }"]
20527    #[doc = "        },"]
20528    #[doc = "        {"]
20529    #[doc = "          \"type\": \"object\","]
20530    #[doc = "          \"required\": ["]
20531    #[doc = "            \"account_ids\","]
20532    #[doc = "            \"changes_type\""]
20533    #[doc = "          ],"]
20534    #[doc = "          \"properties\": {"]
20535    #[doc = "            \"account_ids\": {"]
20536    #[doc = "              \"type\": \"array\","]
20537    #[doc = "              \"items\": {"]
20538    #[doc = "                \"$ref\": \"#/components/schemas/AccountId\""]
20539    #[doc = "              }"]
20540    #[doc = "            },"]
20541    #[doc = "            \"changes_type\": {"]
20542    #[doc = "              \"type\": \"string\","]
20543    #[doc = "              \"enum\": ["]
20544    #[doc = "                \"contract_code_changes\""]
20545    #[doc = "              ]"]
20546    #[doc = "            }"]
20547    #[doc = "          }"]
20548    #[doc = "        }"]
20549    #[doc = "      ]"]
20550    #[doc = "    },"]
20551    #[doc = "    {"]
20552    #[doc = "      \"allOf\": ["]
20553    #[doc = "        {"]
20554    #[doc = "          \"type\": \"object\","]
20555    #[doc = "          \"required\": ["]
20556    #[doc = "            \"block_id\""]
20557    #[doc = "          ],"]
20558    #[doc = "          \"properties\": {"]
20559    #[doc = "            \"block_id\": {"]
20560    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
20561    #[doc = "            }"]
20562    #[doc = "          }"]
20563    #[doc = "        },"]
20564    #[doc = "        {"]
20565    #[doc = "          \"type\": \"object\","]
20566    #[doc = "          \"required\": ["]
20567    #[doc = "            \"account_ids\","]
20568    #[doc = "            \"changes_type\","]
20569    #[doc = "            \"key_prefix_base64\""]
20570    #[doc = "          ],"]
20571    #[doc = "          \"properties\": {"]
20572    #[doc = "            \"account_ids\": {"]
20573    #[doc = "              \"type\": \"array\","]
20574    #[doc = "              \"items\": {"]
20575    #[doc = "                \"$ref\": \"#/components/schemas/AccountId\""]
20576    #[doc = "              }"]
20577    #[doc = "            },"]
20578    #[doc = "            \"changes_type\": {"]
20579    #[doc = "              \"type\": \"string\","]
20580    #[doc = "              \"enum\": ["]
20581    #[doc = "                \"data_changes\""]
20582    #[doc = "              ]"]
20583    #[doc = "            },"]
20584    #[doc = "            \"key_prefix_base64\": {"]
20585    #[doc = "              \"type\": \"string\","]
20586    #[doc = "              \"format\": \"bytes\""]
20587    #[doc = "            }"]
20588    #[doc = "          }"]
20589    #[doc = "        }"]
20590    #[doc = "      ]"]
20591    #[doc = "    },"]
20592    #[doc = "    {"]
20593    #[doc = "      \"allOf\": ["]
20594    #[doc = "        {"]
20595    #[doc = "          \"type\": \"object\","]
20596    #[doc = "          \"required\": ["]
20597    #[doc = "            \"finality\""]
20598    #[doc = "          ],"]
20599    #[doc = "          \"properties\": {"]
20600    #[doc = "            \"finality\": {"]
20601    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
20602    #[doc = "            }"]
20603    #[doc = "          }"]
20604    #[doc = "        },"]
20605    #[doc = "        {"]
20606    #[doc = "          \"type\": \"object\","]
20607    #[doc = "          \"required\": ["]
20608    #[doc = "            \"account_ids\","]
20609    #[doc = "            \"changes_type\""]
20610    #[doc = "          ],"]
20611    #[doc = "          \"properties\": {"]
20612    #[doc = "            \"account_ids\": {"]
20613    #[doc = "              \"type\": \"array\","]
20614    #[doc = "              \"items\": {"]
20615    #[doc = "                \"$ref\": \"#/components/schemas/AccountId\""]
20616    #[doc = "              }"]
20617    #[doc = "            },"]
20618    #[doc = "            \"changes_type\": {"]
20619    #[doc = "              \"type\": \"string\","]
20620    #[doc = "              \"enum\": ["]
20621    #[doc = "                \"account_changes\""]
20622    #[doc = "              ]"]
20623    #[doc = "            }"]
20624    #[doc = "          }"]
20625    #[doc = "        }"]
20626    #[doc = "      ]"]
20627    #[doc = "    },"]
20628    #[doc = "    {"]
20629    #[doc = "      \"allOf\": ["]
20630    #[doc = "        {"]
20631    #[doc = "          \"type\": \"object\","]
20632    #[doc = "          \"required\": ["]
20633    #[doc = "            \"finality\""]
20634    #[doc = "          ],"]
20635    #[doc = "          \"properties\": {"]
20636    #[doc = "            \"finality\": {"]
20637    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
20638    #[doc = "            }"]
20639    #[doc = "          }"]
20640    #[doc = "        },"]
20641    #[doc = "        {"]
20642    #[doc = "          \"type\": \"object\","]
20643    #[doc = "          \"required\": ["]
20644    #[doc = "            \"changes_type\","]
20645    #[doc = "            \"keys\""]
20646    #[doc = "          ],"]
20647    #[doc = "          \"properties\": {"]
20648    #[doc = "            \"changes_type\": {"]
20649    #[doc = "              \"type\": \"string\","]
20650    #[doc = "              \"enum\": ["]
20651    #[doc = "                \"single_access_key_changes\""]
20652    #[doc = "              ]"]
20653    #[doc = "            },"]
20654    #[doc = "            \"keys\": {"]
20655    #[doc = "              \"type\": \"array\","]
20656    #[doc = "              \"items\": {"]
20657    #[doc = "                \"$ref\": \"#/components/schemas/AccountWithPublicKey\""]
20658    #[doc = "              }"]
20659    #[doc = "            }"]
20660    #[doc = "          }"]
20661    #[doc = "        }"]
20662    #[doc = "      ]"]
20663    #[doc = "    },"]
20664    #[doc = "    {"]
20665    #[doc = "      \"allOf\": ["]
20666    #[doc = "        {"]
20667    #[doc = "          \"type\": \"object\","]
20668    #[doc = "          \"required\": ["]
20669    #[doc = "            \"finality\""]
20670    #[doc = "          ],"]
20671    #[doc = "          \"properties\": {"]
20672    #[doc = "            \"finality\": {"]
20673    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
20674    #[doc = "            }"]
20675    #[doc = "          }"]
20676    #[doc = "        },"]
20677    #[doc = "        {"]
20678    #[doc = "          \"type\": \"object\","]
20679    #[doc = "          \"required\": ["]
20680    #[doc = "            \"account_ids\","]
20681    #[doc = "            \"changes_type\""]
20682    #[doc = "          ],"]
20683    #[doc = "          \"properties\": {"]
20684    #[doc = "            \"account_ids\": {"]
20685    #[doc = "              \"type\": \"array\","]
20686    #[doc = "              \"items\": {"]
20687    #[doc = "                \"$ref\": \"#/components/schemas/AccountId\""]
20688    #[doc = "              }"]
20689    #[doc = "            },"]
20690    #[doc = "            \"changes_type\": {"]
20691    #[doc = "              \"type\": \"string\","]
20692    #[doc = "              \"enum\": ["]
20693    #[doc = "                \"all_access_key_changes\""]
20694    #[doc = "              ]"]
20695    #[doc = "            }"]
20696    #[doc = "          }"]
20697    #[doc = "        }"]
20698    #[doc = "      ]"]
20699    #[doc = "    },"]
20700    #[doc = "    {"]
20701    #[doc = "      \"allOf\": ["]
20702    #[doc = "        {"]
20703    #[doc = "          \"type\": \"object\","]
20704    #[doc = "          \"required\": ["]
20705    #[doc = "            \"finality\""]
20706    #[doc = "          ],"]
20707    #[doc = "          \"properties\": {"]
20708    #[doc = "            \"finality\": {"]
20709    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
20710    #[doc = "            }"]
20711    #[doc = "          }"]
20712    #[doc = "        },"]
20713    #[doc = "        {"]
20714    #[doc = "          \"type\": \"object\","]
20715    #[doc = "          \"required\": ["]
20716    #[doc = "            \"account_ids\","]
20717    #[doc = "            \"changes_type\""]
20718    #[doc = "          ],"]
20719    #[doc = "          \"properties\": {"]
20720    #[doc = "            \"account_ids\": {"]
20721    #[doc = "              \"type\": \"array\","]
20722    #[doc = "              \"items\": {"]
20723    #[doc = "                \"$ref\": \"#/components/schemas/AccountId\""]
20724    #[doc = "              }"]
20725    #[doc = "            },"]
20726    #[doc = "            \"changes_type\": {"]
20727    #[doc = "              \"type\": \"string\","]
20728    #[doc = "              \"enum\": ["]
20729    #[doc = "                \"contract_code_changes\""]
20730    #[doc = "              ]"]
20731    #[doc = "            }"]
20732    #[doc = "          }"]
20733    #[doc = "        }"]
20734    #[doc = "      ]"]
20735    #[doc = "    },"]
20736    #[doc = "    {"]
20737    #[doc = "      \"allOf\": ["]
20738    #[doc = "        {"]
20739    #[doc = "          \"type\": \"object\","]
20740    #[doc = "          \"required\": ["]
20741    #[doc = "            \"finality\""]
20742    #[doc = "          ],"]
20743    #[doc = "          \"properties\": {"]
20744    #[doc = "            \"finality\": {"]
20745    #[doc = "              \"$ref\": \"#/components/schemas/Finality\""]
20746    #[doc = "            }"]
20747    #[doc = "          }"]
20748    #[doc = "        },"]
20749    #[doc = "        {"]
20750    #[doc = "          \"type\": \"object\","]
20751    #[doc = "          \"required\": ["]
20752    #[doc = "            \"account_ids\","]
20753    #[doc = "            \"changes_type\","]
20754    #[doc = "            \"key_prefix_base64\""]
20755    #[doc = "          ],"]
20756    #[doc = "          \"properties\": {"]
20757    #[doc = "            \"account_ids\": {"]
20758    #[doc = "              \"type\": \"array\","]
20759    #[doc = "              \"items\": {"]
20760    #[doc = "                \"$ref\": \"#/components/schemas/AccountId\""]
20761    #[doc = "              }"]
20762    #[doc = "            },"]
20763    #[doc = "            \"changes_type\": {"]
20764    #[doc = "              \"type\": \"string\","]
20765    #[doc = "              \"enum\": ["]
20766    #[doc = "                \"data_changes\""]
20767    #[doc = "              ]"]
20768    #[doc = "            },"]
20769    #[doc = "            \"key_prefix_base64\": {"]
20770    #[doc = "              \"type\": \"string\","]
20771    #[doc = "              \"format\": \"bytes\""]
20772    #[doc = "            }"]
20773    #[doc = "          }"]
20774    #[doc = "        }"]
20775    #[doc = "      ]"]
20776    #[doc = "    },"]
20777    #[doc = "    {"]
20778    #[doc = "      \"allOf\": ["]
20779    #[doc = "        {"]
20780    #[doc = "          \"type\": \"object\","]
20781    #[doc = "          \"required\": ["]
20782    #[doc = "            \"sync_checkpoint\""]
20783    #[doc = "          ],"]
20784    #[doc = "          \"properties\": {"]
20785    #[doc = "            \"sync_checkpoint\": {"]
20786    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
20787    #[doc = "            }"]
20788    #[doc = "          }"]
20789    #[doc = "        },"]
20790    #[doc = "        {"]
20791    #[doc = "          \"type\": \"object\","]
20792    #[doc = "          \"required\": ["]
20793    #[doc = "            \"account_ids\","]
20794    #[doc = "            \"changes_type\""]
20795    #[doc = "          ],"]
20796    #[doc = "          \"properties\": {"]
20797    #[doc = "            \"account_ids\": {"]
20798    #[doc = "              \"type\": \"array\","]
20799    #[doc = "              \"items\": {"]
20800    #[doc = "                \"$ref\": \"#/components/schemas/AccountId\""]
20801    #[doc = "              }"]
20802    #[doc = "            },"]
20803    #[doc = "            \"changes_type\": {"]
20804    #[doc = "              \"type\": \"string\","]
20805    #[doc = "              \"enum\": ["]
20806    #[doc = "                \"account_changes\""]
20807    #[doc = "              ]"]
20808    #[doc = "            }"]
20809    #[doc = "          }"]
20810    #[doc = "        }"]
20811    #[doc = "      ]"]
20812    #[doc = "    },"]
20813    #[doc = "    {"]
20814    #[doc = "      \"allOf\": ["]
20815    #[doc = "        {"]
20816    #[doc = "          \"type\": \"object\","]
20817    #[doc = "          \"required\": ["]
20818    #[doc = "            \"sync_checkpoint\""]
20819    #[doc = "          ],"]
20820    #[doc = "          \"properties\": {"]
20821    #[doc = "            \"sync_checkpoint\": {"]
20822    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
20823    #[doc = "            }"]
20824    #[doc = "          }"]
20825    #[doc = "        },"]
20826    #[doc = "        {"]
20827    #[doc = "          \"type\": \"object\","]
20828    #[doc = "          \"required\": ["]
20829    #[doc = "            \"changes_type\","]
20830    #[doc = "            \"keys\""]
20831    #[doc = "          ],"]
20832    #[doc = "          \"properties\": {"]
20833    #[doc = "            \"changes_type\": {"]
20834    #[doc = "              \"type\": \"string\","]
20835    #[doc = "              \"enum\": ["]
20836    #[doc = "                \"single_access_key_changes\""]
20837    #[doc = "              ]"]
20838    #[doc = "            },"]
20839    #[doc = "            \"keys\": {"]
20840    #[doc = "              \"type\": \"array\","]
20841    #[doc = "              \"items\": {"]
20842    #[doc = "                \"$ref\": \"#/components/schemas/AccountWithPublicKey\""]
20843    #[doc = "              }"]
20844    #[doc = "            }"]
20845    #[doc = "          }"]
20846    #[doc = "        }"]
20847    #[doc = "      ]"]
20848    #[doc = "    },"]
20849    #[doc = "    {"]
20850    #[doc = "      \"allOf\": ["]
20851    #[doc = "        {"]
20852    #[doc = "          \"type\": \"object\","]
20853    #[doc = "          \"required\": ["]
20854    #[doc = "            \"sync_checkpoint\""]
20855    #[doc = "          ],"]
20856    #[doc = "          \"properties\": {"]
20857    #[doc = "            \"sync_checkpoint\": {"]
20858    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
20859    #[doc = "            }"]
20860    #[doc = "          }"]
20861    #[doc = "        },"]
20862    #[doc = "        {"]
20863    #[doc = "          \"type\": \"object\","]
20864    #[doc = "          \"required\": ["]
20865    #[doc = "            \"account_ids\","]
20866    #[doc = "            \"changes_type\""]
20867    #[doc = "          ],"]
20868    #[doc = "          \"properties\": {"]
20869    #[doc = "            \"account_ids\": {"]
20870    #[doc = "              \"type\": \"array\","]
20871    #[doc = "              \"items\": {"]
20872    #[doc = "                \"$ref\": \"#/components/schemas/AccountId\""]
20873    #[doc = "              }"]
20874    #[doc = "            },"]
20875    #[doc = "            \"changes_type\": {"]
20876    #[doc = "              \"type\": \"string\","]
20877    #[doc = "              \"enum\": ["]
20878    #[doc = "                \"all_access_key_changes\""]
20879    #[doc = "              ]"]
20880    #[doc = "            }"]
20881    #[doc = "          }"]
20882    #[doc = "        }"]
20883    #[doc = "      ]"]
20884    #[doc = "    },"]
20885    #[doc = "    {"]
20886    #[doc = "      \"allOf\": ["]
20887    #[doc = "        {"]
20888    #[doc = "          \"type\": \"object\","]
20889    #[doc = "          \"required\": ["]
20890    #[doc = "            \"sync_checkpoint\""]
20891    #[doc = "          ],"]
20892    #[doc = "          \"properties\": {"]
20893    #[doc = "            \"sync_checkpoint\": {"]
20894    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
20895    #[doc = "            }"]
20896    #[doc = "          }"]
20897    #[doc = "        },"]
20898    #[doc = "        {"]
20899    #[doc = "          \"type\": \"object\","]
20900    #[doc = "          \"required\": ["]
20901    #[doc = "            \"account_ids\","]
20902    #[doc = "            \"changes_type\""]
20903    #[doc = "          ],"]
20904    #[doc = "          \"properties\": {"]
20905    #[doc = "            \"account_ids\": {"]
20906    #[doc = "              \"type\": \"array\","]
20907    #[doc = "              \"items\": {"]
20908    #[doc = "                \"$ref\": \"#/components/schemas/AccountId\""]
20909    #[doc = "              }"]
20910    #[doc = "            },"]
20911    #[doc = "            \"changes_type\": {"]
20912    #[doc = "              \"type\": \"string\","]
20913    #[doc = "              \"enum\": ["]
20914    #[doc = "                \"contract_code_changes\""]
20915    #[doc = "              ]"]
20916    #[doc = "            }"]
20917    #[doc = "          }"]
20918    #[doc = "        }"]
20919    #[doc = "      ]"]
20920    #[doc = "    },"]
20921    #[doc = "    {"]
20922    #[doc = "      \"allOf\": ["]
20923    #[doc = "        {"]
20924    #[doc = "          \"type\": \"object\","]
20925    #[doc = "          \"required\": ["]
20926    #[doc = "            \"sync_checkpoint\""]
20927    #[doc = "          ],"]
20928    #[doc = "          \"properties\": {"]
20929    #[doc = "            \"sync_checkpoint\": {"]
20930    #[doc = "              \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
20931    #[doc = "            }"]
20932    #[doc = "          }"]
20933    #[doc = "        },"]
20934    #[doc = "        {"]
20935    #[doc = "          \"type\": \"object\","]
20936    #[doc = "          \"required\": ["]
20937    #[doc = "            \"account_ids\","]
20938    #[doc = "            \"changes_type\","]
20939    #[doc = "            \"key_prefix_base64\""]
20940    #[doc = "          ],"]
20941    #[doc = "          \"properties\": {"]
20942    #[doc = "            \"account_ids\": {"]
20943    #[doc = "              \"type\": \"array\","]
20944    #[doc = "              \"items\": {"]
20945    #[doc = "                \"$ref\": \"#/components/schemas/AccountId\""]
20946    #[doc = "              }"]
20947    #[doc = "            },"]
20948    #[doc = "            \"changes_type\": {"]
20949    #[doc = "              \"type\": \"string\","]
20950    #[doc = "              \"enum\": ["]
20951    #[doc = "                \"data_changes\""]
20952    #[doc = "              ]"]
20953    #[doc = "            },"]
20954    #[doc = "            \"key_prefix_base64\": {"]
20955    #[doc = "              \"type\": \"string\","]
20956    #[doc = "              \"format\": \"bytes\""]
20957    #[doc = "            }"]
20958    #[doc = "          }"]
20959    #[doc = "        }"]
20960    #[doc = "      ]"]
20961    #[doc = "    }"]
20962    #[doc = "  ]"]
20963    #[doc = "}"]
20964    #[doc = r" ```"]
20965    #[doc = r" </details>"]
20966    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
20967    #[serde(untagged)]
20968    pub enum RpcStateChangesInBlockByTypeRequest {
20969        Variant0 {
20970            account_ids: ::std::vec::Vec<AccountId>,
20971            block_id: BlockId,
20972            changes_type: RpcStateChangesInBlockByTypeRequestVariant0ChangesType,
20973        },
20974        Variant1 {
20975            block_id: BlockId,
20976            changes_type: RpcStateChangesInBlockByTypeRequestVariant1ChangesType,
20977            keys: ::std::vec::Vec<AccountWithPublicKey>,
20978        },
20979        Variant2 {
20980            account_ids: ::std::vec::Vec<AccountId>,
20981            block_id: BlockId,
20982            changes_type: RpcStateChangesInBlockByTypeRequestVariant2ChangesType,
20983        },
20984        Variant3 {
20985            account_ids: ::std::vec::Vec<AccountId>,
20986            block_id: BlockId,
20987            changes_type: RpcStateChangesInBlockByTypeRequestVariant3ChangesType,
20988        },
20989        Variant4 {
20990            account_ids: ::std::vec::Vec<AccountId>,
20991            block_id: BlockId,
20992            changes_type: RpcStateChangesInBlockByTypeRequestVariant4ChangesType,
20993            key_prefix_base64: ::std::string::String,
20994        },
20995        Variant5 {
20996            account_ids: ::std::vec::Vec<AccountId>,
20997            changes_type: RpcStateChangesInBlockByTypeRequestVariant5ChangesType,
20998            finality: Finality,
20999        },
21000        Variant6 {
21001            changes_type: RpcStateChangesInBlockByTypeRequestVariant6ChangesType,
21002            finality: Finality,
21003            keys: ::std::vec::Vec<AccountWithPublicKey>,
21004        },
21005        Variant7 {
21006            account_ids: ::std::vec::Vec<AccountId>,
21007            changes_type: RpcStateChangesInBlockByTypeRequestVariant7ChangesType,
21008            finality: Finality,
21009        },
21010        Variant8 {
21011            account_ids: ::std::vec::Vec<AccountId>,
21012            changes_type: RpcStateChangesInBlockByTypeRequestVariant8ChangesType,
21013            finality: Finality,
21014        },
21015        Variant9 {
21016            account_ids: ::std::vec::Vec<AccountId>,
21017            changes_type: RpcStateChangesInBlockByTypeRequestVariant9ChangesType,
21018            finality: Finality,
21019            key_prefix_base64: ::std::string::String,
21020        },
21021        Variant10 {
21022            account_ids: ::std::vec::Vec<AccountId>,
21023            changes_type: RpcStateChangesInBlockByTypeRequestVariant10ChangesType,
21024            sync_checkpoint: SyncCheckpoint,
21025        },
21026        Variant11 {
21027            changes_type: RpcStateChangesInBlockByTypeRequestVariant11ChangesType,
21028            keys: ::std::vec::Vec<AccountWithPublicKey>,
21029            sync_checkpoint: SyncCheckpoint,
21030        },
21031        Variant12 {
21032            account_ids: ::std::vec::Vec<AccountId>,
21033            changes_type: RpcStateChangesInBlockByTypeRequestVariant12ChangesType,
21034            sync_checkpoint: SyncCheckpoint,
21035        },
21036        Variant13 {
21037            account_ids: ::std::vec::Vec<AccountId>,
21038            changes_type: RpcStateChangesInBlockByTypeRequestVariant13ChangesType,
21039            sync_checkpoint: SyncCheckpoint,
21040        },
21041        Variant14 {
21042            account_ids: ::std::vec::Vec<AccountId>,
21043            changes_type: RpcStateChangesInBlockByTypeRequestVariant14ChangesType,
21044            key_prefix_base64: ::std::string::String,
21045            sync_checkpoint: SyncCheckpoint,
21046        },
21047    }
21048    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequest {
21049        fn from(value: &RpcStateChangesInBlockByTypeRequest) -> Self {
21050            value.clone()
21051        }
21052    }
21053    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant0ChangesType`"]
21054    #[doc = r""]
21055    #[doc = r" <details><summary>JSON schema</summary>"]
21056    #[doc = r""]
21057    #[doc = r" ```json"]
21058    #[doc = "{"]
21059    #[doc = "  \"type\": \"string\","]
21060    #[doc = "  \"enum\": ["]
21061    #[doc = "    \"account_changes\""]
21062    #[doc = "  ]"]
21063    #[doc = "}"]
21064    #[doc = r" ```"]
21065    #[doc = r" </details>"]
21066    #[derive(
21067        :: serde :: Deserialize,
21068        :: serde :: Serialize,
21069        Clone,
21070        Copy,
21071        Debug,
21072        Eq,
21073        Hash,
21074        Ord,
21075        PartialEq,
21076        PartialOrd,
21077    )]
21078    pub enum RpcStateChangesInBlockByTypeRequestVariant0ChangesType {
21079        #[serde(rename = "account_changes")]
21080        AccountChanges,
21081    }
21082    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant0ChangesType {
21083        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant0ChangesType) -> Self {
21084            value.clone()
21085        }
21086    }
21087    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant0ChangesType {
21088        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21089            match *self {
21090                Self::AccountChanges => write!(f, "account_changes"),
21091            }
21092        }
21093    }
21094    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant0ChangesType {
21095        type Err = self::error::ConversionError;
21096        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21097            match value {
21098                "account_changes" => Ok(Self::AccountChanges),
21099                _ => Err("invalid value".into()),
21100            }
21101        }
21102    }
21103    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant0ChangesType {
21104        type Error = self::error::ConversionError;
21105        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21106            value.parse()
21107        }
21108    }
21109    impl ::std::convert::TryFrom<&::std::string::String>
21110        for RpcStateChangesInBlockByTypeRequestVariant0ChangesType
21111    {
21112        type Error = self::error::ConversionError;
21113        fn try_from(
21114            value: &::std::string::String,
21115        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21116            value.parse()
21117        }
21118    }
21119    impl ::std::convert::TryFrom<::std::string::String>
21120        for RpcStateChangesInBlockByTypeRequestVariant0ChangesType
21121    {
21122        type Error = self::error::ConversionError;
21123        fn try_from(
21124            value: ::std::string::String,
21125        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21126            value.parse()
21127        }
21128    }
21129    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant10ChangesType`"]
21130    #[doc = r""]
21131    #[doc = r" <details><summary>JSON schema</summary>"]
21132    #[doc = r""]
21133    #[doc = r" ```json"]
21134    #[doc = "{"]
21135    #[doc = "  \"type\": \"string\","]
21136    #[doc = "  \"enum\": ["]
21137    #[doc = "    \"account_changes\""]
21138    #[doc = "  ]"]
21139    #[doc = "}"]
21140    #[doc = r" ```"]
21141    #[doc = r" </details>"]
21142    #[derive(
21143        :: serde :: Deserialize,
21144        :: serde :: Serialize,
21145        Clone,
21146        Copy,
21147        Debug,
21148        Eq,
21149        Hash,
21150        Ord,
21151        PartialEq,
21152        PartialOrd,
21153    )]
21154    pub enum RpcStateChangesInBlockByTypeRequestVariant10ChangesType {
21155        #[serde(rename = "account_changes")]
21156        AccountChanges,
21157    }
21158    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant10ChangesType {
21159        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant10ChangesType) -> Self {
21160            value.clone()
21161        }
21162    }
21163    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant10ChangesType {
21164        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21165            match *self {
21166                Self::AccountChanges => write!(f, "account_changes"),
21167            }
21168        }
21169    }
21170    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant10ChangesType {
21171        type Err = self::error::ConversionError;
21172        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21173            match value {
21174                "account_changes" => Ok(Self::AccountChanges),
21175                _ => Err("invalid value".into()),
21176            }
21177        }
21178    }
21179    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant10ChangesType {
21180        type Error = self::error::ConversionError;
21181        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21182            value.parse()
21183        }
21184    }
21185    impl ::std::convert::TryFrom<&::std::string::String>
21186        for RpcStateChangesInBlockByTypeRequestVariant10ChangesType
21187    {
21188        type Error = self::error::ConversionError;
21189        fn try_from(
21190            value: &::std::string::String,
21191        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21192            value.parse()
21193        }
21194    }
21195    impl ::std::convert::TryFrom<::std::string::String>
21196        for RpcStateChangesInBlockByTypeRequestVariant10ChangesType
21197    {
21198        type Error = self::error::ConversionError;
21199        fn try_from(
21200            value: ::std::string::String,
21201        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21202            value.parse()
21203        }
21204    }
21205    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant11ChangesType`"]
21206    #[doc = r""]
21207    #[doc = r" <details><summary>JSON schema</summary>"]
21208    #[doc = r""]
21209    #[doc = r" ```json"]
21210    #[doc = "{"]
21211    #[doc = "  \"type\": \"string\","]
21212    #[doc = "  \"enum\": ["]
21213    #[doc = "    \"single_access_key_changes\""]
21214    #[doc = "  ]"]
21215    #[doc = "}"]
21216    #[doc = r" ```"]
21217    #[doc = r" </details>"]
21218    #[derive(
21219        :: serde :: Deserialize,
21220        :: serde :: Serialize,
21221        Clone,
21222        Copy,
21223        Debug,
21224        Eq,
21225        Hash,
21226        Ord,
21227        PartialEq,
21228        PartialOrd,
21229    )]
21230    pub enum RpcStateChangesInBlockByTypeRequestVariant11ChangesType {
21231        #[serde(rename = "single_access_key_changes")]
21232        SingleAccessKeyChanges,
21233    }
21234    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant11ChangesType {
21235        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant11ChangesType) -> Self {
21236            value.clone()
21237        }
21238    }
21239    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant11ChangesType {
21240        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21241            match *self {
21242                Self::SingleAccessKeyChanges => write!(f, "single_access_key_changes"),
21243            }
21244        }
21245    }
21246    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant11ChangesType {
21247        type Err = self::error::ConversionError;
21248        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21249            match value {
21250                "single_access_key_changes" => Ok(Self::SingleAccessKeyChanges),
21251                _ => Err("invalid value".into()),
21252            }
21253        }
21254    }
21255    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant11ChangesType {
21256        type Error = self::error::ConversionError;
21257        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21258            value.parse()
21259        }
21260    }
21261    impl ::std::convert::TryFrom<&::std::string::String>
21262        for RpcStateChangesInBlockByTypeRequestVariant11ChangesType
21263    {
21264        type Error = self::error::ConversionError;
21265        fn try_from(
21266            value: &::std::string::String,
21267        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21268            value.parse()
21269        }
21270    }
21271    impl ::std::convert::TryFrom<::std::string::String>
21272        for RpcStateChangesInBlockByTypeRequestVariant11ChangesType
21273    {
21274        type Error = self::error::ConversionError;
21275        fn try_from(
21276            value: ::std::string::String,
21277        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21278            value.parse()
21279        }
21280    }
21281    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant12ChangesType`"]
21282    #[doc = r""]
21283    #[doc = r" <details><summary>JSON schema</summary>"]
21284    #[doc = r""]
21285    #[doc = r" ```json"]
21286    #[doc = "{"]
21287    #[doc = "  \"type\": \"string\","]
21288    #[doc = "  \"enum\": ["]
21289    #[doc = "    \"all_access_key_changes\""]
21290    #[doc = "  ]"]
21291    #[doc = "}"]
21292    #[doc = r" ```"]
21293    #[doc = r" </details>"]
21294    #[derive(
21295        :: serde :: Deserialize,
21296        :: serde :: Serialize,
21297        Clone,
21298        Copy,
21299        Debug,
21300        Eq,
21301        Hash,
21302        Ord,
21303        PartialEq,
21304        PartialOrd,
21305    )]
21306    pub enum RpcStateChangesInBlockByTypeRequestVariant12ChangesType {
21307        #[serde(rename = "all_access_key_changes")]
21308        AllAccessKeyChanges,
21309    }
21310    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant12ChangesType {
21311        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant12ChangesType) -> Self {
21312            value.clone()
21313        }
21314    }
21315    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant12ChangesType {
21316        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21317            match *self {
21318                Self::AllAccessKeyChanges => write!(f, "all_access_key_changes"),
21319            }
21320        }
21321    }
21322    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant12ChangesType {
21323        type Err = self::error::ConversionError;
21324        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21325            match value {
21326                "all_access_key_changes" => Ok(Self::AllAccessKeyChanges),
21327                _ => Err("invalid value".into()),
21328            }
21329        }
21330    }
21331    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant12ChangesType {
21332        type Error = self::error::ConversionError;
21333        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21334            value.parse()
21335        }
21336    }
21337    impl ::std::convert::TryFrom<&::std::string::String>
21338        for RpcStateChangesInBlockByTypeRequestVariant12ChangesType
21339    {
21340        type Error = self::error::ConversionError;
21341        fn try_from(
21342            value: &::std::string::String,
21343        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21344            value.parse()
21345        }
21346    }
21347    impl ::std::convert::TryFrom<::std::string::String>
21348        for RpcStateChangesInBlockByTypeRequestVariant12ChangesType
21349    {
21350        type Error = self::error::ConversionError;
21351        fn try_from(
21352            value: ::std::string::String,
21353        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21354            value.parse()
21355        }
21356    }
21357    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant13ChangesType`"]
21358    #[doc = r""]
21359    #[doc = r" <details><summary>JSON schema</summary>"]
21360    #[doc = r""]
21361    #[doc = r" ```json"]
21362    #[doc = "{"]
21363    #[doc = "  \"type\": \"string\","]
21364    #[doc = "  \"enum\": ["]
21365    #[doc = "    \"contract_code_changes\""]
21366    #[doc = "  ]"]
21367    #[doc = "}"]
21368    #[doc = r" ```"]
21369    #[doc = r" </details>"]
21370    #[derive(
21371        :: serde :: Deserialize,
21372        :: serde :: Serialize,
21373        Clone,
21374        Copy,
21375        Debug,
21376        Eq,
21377        Hash,
21378        Ord,
21379        PartialEq,
21380        PartialOrd,
21381    )]
21382    pub enum RpcStateChangesInBlockByTypeRequestVariant13ChangesType {
21383        #[serde(rename = "contract_code_changes")]
21384        ContractCodeChanges,
21385    }
21386    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant13ChangesType {
21387        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant13ChangesType) -> Self {
21388            value.clone()
21389        }
21390    }
21391    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant13ChangesType {
21392        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21393            match *self {
21394                Self::ContractCodeChanges => write!(f, "contract_code_changes"),
21395            }
21396        }
21397    }
21398    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant13ChangesType {
21399        type Err = self::error::ConversionError;
21400        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21401            match value {
21402                "contract_code_changes" => Ok(Self::ContractCodeChanges),
21403                _ => Err("invalid value".into()),
21404            }
21405        }
21406    }
21407    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant13ChangesType {
21408        type Error = self::error::ConversionError;
21409        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21410            value.parse()
21411        }
21412    }
21413    impl ::std::convert::TryFrom<&::std::string::String>
21414        for RpcStateChangesInBlockByTypeRequestVariant13ChangesType
21415    {
21416        type Error = self::error::ConversionError;
21417        fn try_from(
21418            value: &::std::string::String,
21419        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21420            value.parse()
21421        }
21422    }
21423    impl ::std::convert::TryFrom<::std::string::String>
21424        for RpcStateChangesInBlockByTypeRequestVariant13ChangesType
21425    {
21426        type Error = self::error::ConversionError;
21427        fn try_from(
21428            value: ::std::string::String,
21429        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21430            value.parse()
21431        }
21432    }
21433    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant14ChangesType`"]
21434    #[doc = r""]
21435    #[doc = r" <details><summary>JSON schema</summary>"]
21436    #[doc = r""]
21437    #[doc = r" ```json"]
21438    #[doc = "{"]
21439    #[doc = "  \"type\": \"string\","]
21440    #[doc = "  \"enum\": ["]
21441    #[doc = "    \"data_changes\""]
21442    #[doc = "  ]"]
21443    #[doc = "}"]
21444    #[doc = r" ```"]
21445    #[doc = r" </details>"]
21446    #[derive(
21447        :: serde :: Deserialize,
21448        :: serde :: Serialize,
21449        Clone,
21450        Copy,
21451        Debug,
21452        Eq,
21453        Hash,
21454        Ord,
21455        PartialEq,
21456        PartialOrd,
21457    )]
21458    pub enum RpcStateChangesInBlockByTypeRequestVariant14ChangesType {
21459        #[serde(rename = "data_changes")]
21460        DataChanges,
21461    }
21462    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant14ChangesType {
21463        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant14ChangesType) -> Self {
21464            value.clone()
21465        }
21466    }
21467    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant14ChangesType {
21468        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21469            match *self {
21470                Self::DataChanges => write!(f, "data_changes"),
21471            }
21472        }
21473    }
21474    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant14ChangesType {
21475        type Err = self::error::ConversionError;
21476        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21477            match value {
21478                "data_changes" => Ok(Self::DataChanges),
21479                _ => Err("invalid value".into()),
21480            }
21481        }
21482    }
21483    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant14ChangesType {
21484        type Error = self::error::ConversionError;
21485        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21486            value.parse()
21487        }
21488    }
21489    impl ::std::convert::TryFrom<&::std::string::String>
21490        for RpcStateChangesInBlockByTypeRequestVariant14ChangesType
21491    {
21492        type Error = self::error::ConversionError;
21493        fn try_from(
21494            value: &::std::string::String,
21495        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21496            value.parse()
21497        }
21498    }
21499    impl ::std::convert::TryFrom<::std::string::String>
21500        for RpcStateChangesInBlockByTypeRequestVariant14ChangesType
21501    {
21502        type Error = self::error::ConversionError;
21503        fn try_from(
21504            value: ::std::string::String,
21505        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21506            value.parse()
21507        }
21508    }
21509    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant1ChangesType`"]
21510    #[doc = r""]
21511    #[doc = r" <details><summary>JSON schema</summary>"]
21512    #[doc = r""]
21513    #[doc = r" ```json"]
21514    #[doc = "{"]
21515    #[doc = "  \"type\": \"string\","]
21516    #[doc = "  \"enum\": ["]
21517    #[doc = "    \"single_access_key_changes\""]
21518    #[doc = "  ]"]
21519    #[doc = "}"]
21520    #[doc = r" ```"]
21521    #[doc = r" </details>"]
21522    #[derive(
21523        :: serde :: Deserialize,
21524        :: serde :: Serialize,
21525        Clone,
21526        Copy,
21527        Debug,
21528        Eq,
21529        Hash,
21530        Ord,
21531        PartialEq,
21532        PartialOrd,
21533    )]
21534    pub enum RpcStateChangesInBlockByTypeRequestVariant1ChangesType {
21535        #[serde(rename = "single_access_key_changes")]
21536        SingleAccessKeyChanges,
21537    }
21538    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant1ChangesType {
21539        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant1ChangesType) -> Self {
21540            value.clone()
21541        }
21542    }
21543    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant1ChangesType {
21544        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21545            match *self {
21546                Self::SingleAccessKeyChanges => write!(f, "single_access_key_changes"),
21547            }
21548        }
21549    }
21550    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant1ChangesType {
21551        type Err = self::error::ConversionError;
21552        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21553            match value {
21554                "single_access_key_changes" => Ok(Self::SingleAccessKeyChanges),
21555                _ => Err("invalid value".into()),
21556            }
21557        }
21558    }
21559    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant1ChangesType {
21560        type Error = self::error::ConversionError;
21561        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21562            value.parse()
21563        }
21564    }
21565    impl ::std::convert::TryFrom<&::std::string::String>
21566        for RpcStateChangesInBlockByTypeRequestVariant1ChangesType
21567    {
21568        type Error = self::error::ConversionError;
21569        fn try_from(
21570            value: &::std::string::String,
21571        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21572            value.parse()
21573        }
21574    }
21575    impl ::std::convert::TryFrom<::std::string::String>
21576        for RpcStateChangesInBlockByTypeRequestVariant1ChangesType
21577    {
21578        type Error = self::error::ConversionError;
21579        fn try_from(
21580            value: ::std::string::String,
21581        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21582            value.parse()
21583        }
21584    }
21585    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant2ChangesType`"]
21586    #[doc = r""]
21587    #[doc = r" <details><summary>JSON schema</summary>"]
21588    #[doc = r""]
21589    #[doc = r" ```json"]
21590    #[doc = "{"]
21591    #[doc = "  \"type\": \"string\","]
21592    #[doc = "  \"enum\": ["]
21593    #[doc = "    \"all_access_key_changes\""]
21594    #[doc = "  ]"]
21595    #[doc = "}"]
21596    #[doc = r" ```"]
21597    #[doc = r" </details>"]
21598    #[derive(
21599        :: serde :: Deserialize,
21600        :: serde :: Serialize,
21601        Clone,
21602        Copy,
21603        Debug,
21604        Eq,
21605        Hash,
21606        Ord,
21607        PartialEq,
21608        PartialOrd,
21609    )]
21610    pub enum RpcStateChangesInBlockByTypeRequestVariant2ChangesType {
21611        #[serde(rename = "all_access_key_changes")]
21612        AllAccessKeyChanges,
21613    }
21614    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant2ChangesType {
21615        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant2ChangesType) -> Self {
21616            value.clone()
21617        }
21618    }
21619    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant2ChangesType {
21620        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21621            match *self {
21622                Self::AllAccessKeyChanges => write!(f, "all_access_key_changes"),
21623            }
21624        }
21625    }
21626    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant2ChangesType {
21627        type Err = self::error::ConversionError;
21628        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21629            match value {
21630                "all_access_key_changes" => Ok(Self::AllAccessKeyChanges),
21631                _ => Err("invalid value".into()),
21632            }
21633        }
21634    }
21635    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant2ChangesType {
21636        type Error = self::error::ConversionError;
21637        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21638            value.parse()
21639        }
21640    }
21641    impl ::std::convert::TryFrom<&::std::string::String>
21642        for RpcStateChangesInBlockByTypeRequestVariant2ChangesType
21643    {
21644        type Error = self::error::ConversionError;
21645        fn try_from(
21646            value: &::std::string::String,
21647        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21648            value.parse()
21649        }
21650    }
21651    impl ::std::convert::TryFrom<::std::string::String>
21652        for RpcStateChangesInBlockByTypeRequestVariant2ChangesType
21653    {
21654        type Error = self::error::ConversionError;
21655        fn try_from(
21656            value: ::std::string::String,
21657        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21658            value.parse()
21659        }
21660    }
21661    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant3ChangesType`"]
21662    #[doc = r""]
21663    #[doc = r" <details><summary>JSON schema</summary>"]
21664    #[doc = r""]
21665    #[doc = r" ```json"]
21666    #[doc = "{"]
21667    #[doc = "  \"type\": \"string\","]
21668    #[doc = "  \"enum\": ["]
21669    #[doc = "    \"contract_code_changes\""]
21670    #[doc = "  ]"]
21671    #[doc = "}"]
21672    #[doc = r" ```"]
21673    #[doc = r" </details>"]
21674    #[derive(
21675        :: serde :: Deserialize,
21676        :: serde :: Serialize,
21677        Clone,
21678        Copy,
21679        Debug,
21680        Eq,
21681        Hash,
21682        Ord,
21683        PartialEq,
21684        PartialOrd,
21685    )]
21686    pub enum RpcStateChangesInBlockByTypeRequestVariant3ChangesType {
21687        #[serde(rename = "contract_code_changes")]
21688        ContractCodeChanges,
21689    }
21690    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant3ChangesType {
21691        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant3ChangesType) -> Self {
21692            value.clone()
21693        }
21694    }
21695    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant3ChangesType {
21696        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21697            match *self {
21698                Self::ContractCodeChanges => write!(f, "contract_code_changes"),
21699            }
21700        }
21701    }
21702    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant3ChangesType {
21703        type Err = self::error::ConversionError;
21704        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21705            match value {
21706                "contract_code_changes" => Ok(Self::ContractCodeChanges),
21707                _ => Err("invalid value".into()),
21708            }
21709        }
21710    }
21711    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant3ChangesType {
21712        type Error = self::error::ConversionError;
21713        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21714            value.parse()
21715        }
21716    }
21717    impl ::std::convert::TryFrom<&::std::string::String>
21718        for RpcStateChangesInBlockByTypeRequestVariant3ChangesType
21719    {
21720        type Error = self::error::ConversionError;
21721        fn try_from(
21722            value: &::std::string::String,
21723        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21724            value.parse()
21725        }
21726    }
21727    impl ::std::convert::TryFrom<::std::string::String>
21728        for RpcStateChangesInBlockByTypeRequestVariant3ChangesType
21729    {
21730        type Error = self::error::ConversionError;
21731        fn try_from(
21732            value: ::std::string::String,
21733        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21734            value.parse()
21735        }
21736    }
21737    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant4ChangesType`"]
21738    #[doc = r""]
21739    #[doc = r" <details><summary>JSON schema</summary>"]
21740    #[doc = r""]
21741    #[doc = r" ```json"]
21742    #[doc = "{"]
21743    #[doc = "  \"type\": \"string\","]
21744    #[doc = "  \"enum\": ["]
21745    #[doc = "    \"data_changes\""]
21746    #[doc = "  ]"]
21747    #[doc = "}"]
21748    #[doc = r" ```"]
21749    #[doc = r" </details>"]
21750    #[derive(
21751        :: serde :: Deserialize,
21752        :: serde :: Serialize,
21753        Clone,
21754        Copy,
21755        Debug,
21756        Eq,
21757        Hash,
21758        Ord,
21759        PartialEq,
21760        PartialOrd,
21761    )]
21762    pub enum RpcStateChangesInBlockByTypeRequestVariant4ChangesType {
21763        #[serde(rename = "data_changes")]
21764        DataChanges,
21765    }
21766    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant4ChangesType {
21767        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant4ChangesType) -> Self {
21768            value.clone()
21769        }
21770    }
21771    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant4ChangesType {
21772        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21773            match *self {
21774                Self::DataChanges => write!(f, "data_changes"),
21775            }
21776        }
21777    }
21778    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant4ChangesType {
21779        type Err = self::error::ConversionError;
21780        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21781            match value {
21782                "data_changes" => Ok(Self::DataChanges),
21783                _ => Err("invalid value".into()),
21784            }
21785        }
21786    }
21787    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant4ChangesType {
21788        type Error = self::error::ConversionError;
21789        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21790            value.parse()
21791        }
21792    }
21793    impl ::std::convert::TryFrom<&::std::string::String>
21794        for RpcStateChangesInBlockByTypeRequestVariant4ChangesType
21795    {
21796        type Error = self::error::ConversionError;
21797        fn try_from(
21798            value: &::std::string::String,
21799        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21800            value.parse()
21801        }
21802    }
21803    impl ::std::convert::TryFrom<::std::string::String>
21804        for RpcStateChangesInBlockByTypeRequestVariant4ChangesType
21805    {
21806        type Error = self::error::ConversionError;
21807        fn try_from(
21808            value: ::std::string::String,
21809        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21810            value.parse()
21811        }
21812    }
21813    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant5ChangesType`"]
21814    #[doc = r""]
21815    #[doc = r" <details><summary>JSON schema</summary>"]
21816    #[doc = r""]
21817    #[doc = r" ```json"]
21818    #[doc = "{"]
21819    #[doc = "  \"type\": \"string\","]
21820    #[doc = "  \"enum\": ["]
21821    #[doc = "    \"account_changes\""]
21822    #[doc = "  ]"]
21823    #[doc = "}"]
21824    #[doc = r" ```"]
21825    #[doc = r" </details>"]
21826    #[derive(
21827        :: serde :: Deserialize,
21828        :: serde :: Serialize,
21829        Clone,
21830        Copy,
21831        Debug,
21832        Eq,
21833        Hash,
21834        Ord,
21835        PartialEq,
21836        PartialOrd,
21837    )]
21838    pub enum RpcStateChangesInBlockByTypeRequestVariant5ChangesType {
21839        #[serde(rename = "account_changes")]
21840        AccountChanges,
21841    }
21842    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant5ChangesType {
21843        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant5ChangesType) -> Self {
21844            value.clone()
21845        }
21846    }
21847    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant5ChangesType {
21848        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21849            match *self {
21850                Self::AccountChanges => write!(f, "account_changes"),
21851            }
21852        }
21853    }
21854    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant5ChangesType {
21855        type Err = self::error::ConversionError;
21856        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21857            match value {
21858                "account_changes" => Ok(Self::AccountChanges),
21859                _ => Err("invalid value".into()),
21860            }
21861        }
21862    }
21863    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant5ChangesType {
21864        type Error = self::error::ConversionError;
21865        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21866            value.parse()
21867        }
21868    }
21869    impl ::std::convert::TryFrom<&::std::string::String>
21870        for RpcStateChangesInBlockByTypeRequestVariant5ChangesType
21871    {
21872        type Error = self::error::ConversionError;
21873        fn try_from(
21874            value: &::std::string::String,
21875        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21876            value.parse()
21877        }
21878    }
21879    impl ::std::convert::TryFrom<::std::string::String>
21880        for RpcStateChangesInBlockByTypeRequestVariant5ChangesType
21881    {
21882        type Error = self::error::ConversionError;
21883        fn try_from(
21884            value: ::std::string::String,
21885        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21886            value.parse()
21887        }
21888    }
21889    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant6ChangesType`"]
21890    #[doc = r""]
21891    #[doc = r" <details><summary>JSON schema</summary>"]
21892    #[doc = r""]
21893    #[doc = r" ```json"]
21894    #[doc = "{"]
21895    #[doc = "  \"type\": \"string\","]
21896    #[doc = "  \"enum\": ["]
21897    #[doc = "    \"single_access_key_changes\""]
21898    #[doc = "  ]"]
21899    #[doc = "}"]
21900    #[doc = r" ```"]
21901    #[doc = r" </details>"]
21902    #[derive(
21903        :: serde :: Deserialize,
21904        :: serde :: Serialize,
21905        Clone,
21906        Copy,
21907        Debug,
21908        Eq,
21909        Hash,
21910        Ord,
21911        PartialEq,
21912        PartialOrd,
21913    )]
21914    pub enum RpcStateChangesInBlockByTypeRequestVariant6ChangesType {
21915        #[serde(rename = "single_access_key_changes")]
21916        SingleAccessKeyChanges,
21917    }
21918    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant6ChangesType {
21919        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant6ChangesType) -> Self {
21920            value.clone()
21921        }
21922    }
21923    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant6ChangesType {
21924        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21925            match *self {
21926                Self::SingleAccessKeyChanges => write!(f, "single_access_key_changes"),
21927            }
21928        }
21929    }
21930    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant6ChangesType {
21931        type Err = self::error::ConversionError;
21932        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21933            match value {
21934                "single_access_key_changes" => Ok(Self::SingleAccessKeyChanges),
21935                _ => Err("invalid value".into()),
21936            }
21937        }
21938    }
21939    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant6ChangesType {
21940        type Error = self::error::ConversionError;
21941        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
21942            value.parse()
21943        }
21944    }
21945    impl ::std::convert::TryFrom<&::std::string::String>
21946        for RpcStateChangesInBlockByTypeRequestVariant6ChangesType
21947    {
21948        type Error = self::error::ConversionError;
21949        fn try_from(
21950            value: &::std::string::String,
21951        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21952            value.parse()
21953        }
21954    }
21955    impl ::std::convert::TryFrom<::std::string::String>
21956        for RpcStateChangesInBlockByTypeRequestVariant6ChangesType
21957    {
21958        type Error = self::error::ConversionError;
21959        fn try_from(
21960            value: ::std::string::String,
21961        ) -> ::std::result::Result<Self, self::error::ConversionError> {
21962            value.parse()
21963        }
21964    }
21965    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant7ChangesType`"]
21966    #[doc = r""]
21967    #[doc = r" <details><summary>JSON schema</summary>"]
21968    #[doc = r""]
21969    #[doc = r" ```json"]
21970    #[doc = "{"]
21971    #[doc = "  \"type\": \"string\","]
21972    #[doc = "  \"enum\": ["]
21973    #[doc = "    \"all_access_key_changes\""]
21974    #[doc = "  ]"]
21975    #[doc = "}"]
21976    #[doc = r" ```"]
21977    #[doc = r" </details>"]
21978    #[derive(
21979        :: serde :: Deserialize,
21980        :: serde :: Serialize,
21981        Clone,
21982        Copy,
21983        Debug,
21984        Eq,
21985        Hash,
21986        Ord,
21987        PartialEq,
21988        PartialOrd,
21989    )]
21990    pub enum RpcStateChangesInBlockByTypeRequestVariant7ChangesType {
21991        #[serde(rename = "all_access_key_changes")]
21992        AllAccessKeyChanges,
21993    }
21994    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant7ChangesType {
21995        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant7ChangesType) -> Self {
21996            value.clone()
21997        }
21998    }
21999    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant7ChangesType {
22000        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22001            match *self {
22002                Self::AllAccessKeyChanges => write!(f, "all_access_key_changes"),
22003            }
22004        }
22005    }
22006    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant7ChangesType {
22007        type Err = self::error::ConversionError;
22008        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
22009            match value {
22010                "all_access_key_changes" => Ok(Self::AllAccessKeyChanges),
22011                _ => Err("invalid value".into()),
22012            }
22013        }
22014    }
22015    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant7ChangesType {
22016        type Error = self::error::ConversionError;
22017        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
22018            value.parse()
22019        }
22020    }
22021    impl ::std::convert::TryFrom<&::std::string::String>
22022        for RpcStateChangesInBlockByTypeRequestVariant7ChangesType
22023    {
22024        type Error = self::error::ConversionError;
22025        fn try_from(
22026            value: &::std::string::String,
22027        ) -> ::std::result::Result<Self, self::error::ConversionError> {
22028            value.parse()
22029        }
22030    }
22031    impl ::std::convert::TryFrom<::std::string::String>
22032        for RpcStateChangesInBlockByTypeRequestVariant7ChangesType
22033    {
22034        type Error = self::error::ConversionError;
22035        fn try_from(
22036            value: ::std::string::String,
22037        ) -> ::std::result::Result<Self, self::error::ConversionError> {
22038            value.parse()
22039        }
22040    }
22041    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant8ChangesType`"]
22042    #[doc = r""]
22043    #[doc = r" <details><summary>JSON schema</summary>"]
22044    #[doc = r""]
22045    #[doc = r" ```json"]
22046    #[doc = "{"]
22047    #[doc = "  \"type\": \"string\","]
22048    #[doc = "  \"enum\": ["]
22049    #[doc = "    \"contract_code_changes\""]
22050    #[doc = "  ]"]
22051    #[doc = "}"]
22052    #[doc = r" ```"]
22053    #[doc = r" </details>"]
22054    #[derive(
22055        :: serde :: Deserialize,
22056        :: serde :: Serialize,
22057        Clone,
22058        Copy,
22059        Debug,
22060        Eq,
22061        Hash,
22062        Ord,
22063        PartialEq,
22064        PartialOrd,
22065    )]
22066    pub enum RpcStateChangesInBlockByTypeRequestVariant8ChangesType {
22067        #[serde(rename = "contract_code_changes")]
22068        ContractCodeChanges,
22069    }
22070    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant8ChangesType {
22071        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant8ChangesType) -> Self {
22072            value.clone()
22073        }
22074    }
22075    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant8ChangesType {
22076        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22077            match *self {
22078                Self::ContractCodeChanges => write!(f, "contract_code_changes"),
22079            }
22080        }
22081    }
22082    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant8ChangesType {
22083        type Err = self::error::ConversionError;
22084        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
22085            match value {
22086                "contract_code_changes" => Ok(Self::ContractCodeChanges),
22087                _ => Err("invalid value".into()),
22088            }
22089        }
22090    }
22091    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant8ChangesType {
22092        type Error = self::error::ConversionError;
22093        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
22094            value.parse()
22095        }
22096    }
22097    impl ::std::convert::TryFrom<&::std::string::String>
22098        for RpcStateChangesInBlockByTypeRequestVariant8ChangesType
22099    {
22100        type Error = self::error::ConversionError;
22101        fn try_from(
22102            value: &::std::string::String,
22103        ) -> ::std::result::Result<Self, self::error::ConversionError> {
22104            value.parse()
22105        }
22106    }
22107    impl ::std::convert::TryFrom<::std::string::String>
22108        for RpcStateChangesInBlockByTypeRequestVariant8ChangesType
22109    {
22110        type Error = self::error::ConversionError;
22111        fn try_from(
22112            value: ::std::string::String,
22113        ) -> ::std::result::Result<Self, self::error::ConversionError> {
22114            value.parse()
22115        }
22116    }
22117    #[doc = "`RpcStateChangesInBlockByTypeRequestVariant9ChangesType`"]
22118    #[doc = r""]
22119    #[doc = r" <details><summary>JSON schema</summary>"]
22120    #[doc = r""]
22121    #[doc = r" ```json"]
22122    #[doc = "{"]
22123    #[doc = "  \"type\": \"string\","]
22124    #[doc = "  \"enum\": ["]
22125    #[doc = "    \"data_changes\""]
22126    #[doc = "  ]"]
22127    #[doc = "}"]
22128    #[doc = r" ```"]
22129    #[doc = r" </details>"]
22130    #[derive(
22131        :: serde :: Deserialize,
22132        :: serde :: Serialize,
22133        Clone,
22134        Copy,
22135        Debug,
22136        Eq,
22137        Hash,
22138        Ord,
22139        PartialEq,
22140        PartialOrd,
22141    )]
22142    pub enum RpcStateChangesInBlockByTypeRequestVariant9ChangesType {
22143        #[serde(rename = "data_changes")]
22144        DataChanges,
22145    }
22146    impl ::std::convert::From<&Self> for RpcStateChangesInBlockByTypeRequestVariant9ChangesType {
22147        fn from(value: &RpcStateChangesInBlockByTypeRequestVariant9ChangesType) -> Self {
22148            value.clone()
22149        }
22150    }
22151    impl ::std::fmt::Display for RpcStateChangesInBlockByTypeRequestVariant9ChangesType {
22152        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22153            match *self {
22154                Self::DataChanges => write!(f, "data_changes"),
22155            }
22156        }
22157    }
22158    impl ::std::str::FromStr for RpcStateChangesInBlockByTypeRequestVariant9ChangesType {
22159        type Err = self::error::ConversionError;
22160        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
22161            match value {
22162                "data_changes" => Ok(Self::DataChanges),
22163                _ => Err("invalid value".into()),
22164            }
22165        }
22166    }
22167    impl ::std::convert::TryFrom<&str> for RpcStateChangesInBlockByTypeRequestVariant9ChangesType {
22168        type Error = self::error::ConversionError;
22169        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
22170            value.parse()
22171        }
22172    }
22173    impl ::std::convert::TryFrom<&::std::string::String>
22174        for RpcStateChangesInBlockByTypeRequestVariant9ChangesType
22175    {
22176        type Error = self::error::ConversionError;
22177        fn try_from(
22178            value: &::std::string::String,
22179        ) -> ::std::result::Result<Self, self::error::ConversionError> {
22180            value.parse()
22181        }
22182    }
22183    impl ::std::convert::TryFrom<::std::string::String>
22184        for RpcStateChangesInBlockByTypeRequestVariant9ChangesType
22185    {
22186        type Error = self::error::ConversionError;
22187        fn try_from(
22188            value: ::std::string::String,
22189        ) -> ::std::result::Result<Self, self::error::ConversionError> {
22190            value.parse()
22191        }
22192    }
22193    #[doc = "`RpcStateChangesInBlockByTypeResponse`"]
22194    #[doc = r""]
22195    #[doc = r" <details><summary>JSON schema</summary>"]
22196    #[doc = r""]
22197    #[doc = r" ```json"]
22198    #[doc = "{"]
22199    #[doc = "  \"type\": \"object\","]
22200    #[doc = "  \"required\": ["]
22201    #[doc = "    \"block_hash\","]
22202    #[doc = "    \"changes\""]
22203    #[doc = "  ],"]
22204    #[doc = "  \"properties\": {"]
22205    #[doc = "    \"block_hash\": {"]
22206    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
22207    #[doc = "    },"]
22208    #[doc = "    \"changes\": {"]
22209    #[doc = "      \"type\": \"array\","]
22210    #[doc = "      \"items\": {"]
22211    #[doc = "        \"$ref\": \"#/components/schemas/StateChangeKindView\""]
22212    #[doc = "      }"]
22213    #[doc = "    }"]
22214    #[doc = "  }"]
22215    #[doc = "}"]
22216    #[doc = r" ```"]
22217    #[doc = r" </details>"]
22218    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
22219    pub struct RpcStateChangesInBlockByTypeResponse {
22220        pub block_hash: CryptoHash,
22221        pub changes: ::std::vec::Vec<StateChangeKindView>,
22222    }
22223    impl ::std::convert::From<&RpcStateChangesInBlockByTypeResponse>
22224        for RpcStateChangesInBlockByTypeResponse
22225    {
22226        fn from(value: &RpcStateChangesInBlockByTypeResponse) -> Self {
22227            value.clone()
22228        }
22229    }
22230    #[doc = "`RpcStateChangesInBlockRequest`"]
22231    #[doc = r""]
22232    #[doc = r" <details><summary>JSON schema</summary>"]
22233    #[doc = r""]
22234    #[doc = r" ```json"]
22235    #[doc = "{"]
22236    #[doc = "  \"title\": \"RpcStateChangesInBlockRequest\","]
22237    #[doc = "  \"type\": \"object\","]
22238    #[doc = "  \"oneOf\": ["]
22239    #[doc = "    {"]
22240    #[doc = "      \"type\": \"object\","]
22241    #[doc = "      \"required\": ["]
22242    #[doc = "        \"block_id\""]
22243    #[doc = "      ],"]
22244    #[doc = "      \"properties\": {"]
22245    #[doc = "        \"block_id\": {"]
22246    #[doc = "          \"$ref\": \"#/components/schemas/BlockId\""]
22247    #[doc = "        }"]
22248    #[doc = "      }"]
22249    #[doc = "    },"]
22250    #[doc = "    {"]
22251    #[doc = "      \"type\": \"object\","]
22252    #[doc = "      \"required\": ["]
22253    #[doc = "        \"finality\""]
22254    #[doc = "      ],"]
22255    #[doc = "      \"properties\": {"]
22256    #[doc = "        \"finality\": {"]
22257    #[doc = "          \"$ref\": \"#/components/schemas/Finality\""]
22258    #[doc = "        }"]
22259    #[doc = "      }"]
22260    #[doc = "    },"]
22261    #[doc = "    {"]
22262    #[doc = "      \"type\": \"object\","]
22263    #[doc = "      \"required\": ["]
22264    #[doc = "        \"sync_checkpoint\""]
22265    #[doc = "      ],"]
22266    #[doc = "      \"properties\": {"]
22267    #[doc = "        \"sync_checkpoint\": {"]
22268    #[doc = "          \"$ref\": \"#/components/schemas/SyncCheckpoint\""]
22269    #[doc = "        }"]
22270    #[doc = "      }"]
22271    #[doc = "    }"]
22272    #[doc = "  ]"]
22273    #[doc = "}"]
22274    #[doc = r" ```"]
22275    #[doc = r" </details>"]
22276    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
22277    pub enum RpcStateChangesInBlockRequest {
22278        #[serde(rename = "block_id")]
22279        BlockId(BlockId),
22280        #[serde(rename = "finality")]
22281        Finality(Finality),
22282        #[serde(rename = "sync_checkpoint")]
22283        SyncCheckpoint(SyncCheckpoint),
22284    }
22285    impl ::std::convert::From<&Self> for RpcStateChangesInBlockRequest {
22286        fn from(value: &RpcStateChangesInBlockRequest) -> Self {
22287            value.clone()
22288        }
22289    }
22290    impl ::std::convert::From<BlockId> for RpcStateChangesInBlockRequest {
22291        fn from(value: BlockId) -> Self {
22292            Self::BlockId(value)
22293        }
22294    }
22295    impl ::std::convert::From<Finality> for RpcStateChangesInBlockRequest {
22296        fn from(value: Finality) -> Self {
22297            Self::Finality(value)
22298        }
22299    }
22300    impl ::std::convert::From<SyncCheckpoint> for RpcStateChangesInBlockRequest {
22301        fn from(value: SyncCheckpoint) -> Self {
22302            Self::SyncCheckpoint(value)
22303        }
22304    }
22305    #[doc = "`RpcStateChangesInBlockResponse`"]
22306    #[doc = r""]
22307    #[doc = r" <details><summary>JSON schema</summary>"]
22308    #[doc = r""]
22309    #[doc = r" ```json"]
22310    #[doc = "{"]
22311    #[doc = "  \"type\": \"object\","]
22312    #[doc = "  \"required\": ["]
22313    #[doc = "    \"block_hash\","]
22314    #[doc = "    \"changes\""]
22315    #[doc = "  ],"]
22316    #[doc = "  \"properties\": {"]
22317    #[doc = "    \"block_hash\": {"]
22318    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
22319    #[doc = "    },"]
22320    #[doc = "    \"changes\": {"]
22321    #[doc = "      \"type\": \"array\","]
22322    #[doc = "      \"items\": {"]
22323    #[doc = "        \"$ref\": \"#/components/schemas/StateChangeWithCauseView\""]
22324    #[doc = "      }"]
22325    #[doc = "    }"]
22326    #[doc = "  }"]
22327    #[doc = "}"]
22328    #[doc = r" ```"]
22329    #[doc = r" </details>"]
22330    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
22331    pub struct RpcStateChangesInBlockResponse {
22332        pub block_hash: CryptoHash,
22333        pub changes: ::std::vec::Vec<StateChangeWithCauseView>,
22334    }
22335    impl ::std::convert::From<&RpcStateChangesInBlockResponse> for RpcStateChangesInBlockResponse {
22336        fn from(value: &RpcStateChangesInBlockResponse) -> Self {
22337            value.clone()
22338        }
22339    }
22340    #[doc = "`RpcStatusRequest`"]
22341    #[doc = r""]
22342    #[doc = r" <details><summary>JSON schema</summary>"]
22343    #[doc = r""]
22344    #[doc = r" ```json"]
22345    #[doc = "{"]
22346    #[doc = "  \"title\": \"RpcStatusRequest\","]
22347    #[doc = "  \"type\": \"object\""]
22348    #[doc = "}"]
22349    #[doc = r" ```"]
22350    #[doc = r" </details>"]
22351    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
22352    #[serde(transparent)]
22353    pub struct RpcStatusRequest(pub ::serde_json::Map<::std::string::String, ::serde_json::Value>);
22354    impl ::std::ops::Deref for RpcStatusRequest {
22355        type Target = ::serde_json::Map<::std::string::String, ::serde_json::Value>;
22356        fn deref(&self) -> &::serde_json::Map<::std::string::String, ::serde_json::Value> {
22357            &self.0
22358        }
22359    }
22360    impl ::std::convert::From<RpcStatusRequest>
22361        for ::serde_json::Map<::std::string::String, ::serde_json::Value>
22362    {
22363        fn from(value: RpcStatusRequest) -> Self {
22364            value.0
22365        }
22366    }
22367    impl ::std::convert::From<&RpcStatusRequest> for RpcStatusRequest {
22368        fn from(value: &RpcStatusRequest) -> Self {
22369            value.clone()
22370        }
22371    }
22372    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
22373        for RpcStatusRequest
22374    {
22375        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
22376            Self(value)
22377        }
22378    }
22379    #[doc = "`RpcStatusResponse`"]
22380    #[doc = r""]
22381    #[doc = r" <details><summary>JSON schema</summary>"]
22382    #[doc = r""]
22383    #[doc = r" ```json"]
22384    #[doc = "{"]
22385    #[doc = "  \"type\": \"object\","]
22386    #[doc = "  \"required\": ["]
22387    #[doc = "    \"chain_id\","]
22388    #[doc = "    \"genesis_hash\","]
22389    #[doc = "    \"latest_protocol_version\","]
22390    #[doc = "    \"node_public_key\","]
22391    #[doc = "    \"protocol_version\","]
22392    #[doc = "    \"sync_info\","]
22393    #[doc = "    \"uptime_sec\","]
22394    #[doc = "    \"validators\","]
22395    #[doc = "    \"version\""]
22396    #[doc = "  ],"]
22397    #[doc = "  \"properties\": {"]
22398    #[doc = "    \"chain_id\": {"]
22399    #[doc = "      \"description\": \"Unique chain id.\","]
22400    #[doc = "      \"type\": \"string\""]
22401    #[doc = "    },"]
22402    #[doc = "    \"detailed_debug_status\": {"]
22403    #[doc = "      \"description\": \"Information about last blocks, network, epoch and chain & chunk info.\","]
22404    #[doc = "      \"oneOf\": ["]
22405    #[doc = "        {"]
22406    #[doc = "          \"type\": \"null\""]
22407    #[doc = "        },"]
22408    #[doc = "        {"]
22409    #[doc = "          \"allOf\": ["]
22410    #[doc = "            {"]
22411    #[doc = "              \"$ref\": \"#/components/schemas/DetailedDebugStatus\""]
22412    #[doc = "            }"]
22413    #[doc = "          ]"]
22414    #[doc = "        }"]
22415    #[doc = "      ]"]
22416    #[doc = "    },"]
22417    #[doc = "    \"genesis_hash\": {"]
22418    #[doc = "      \"description\": \"Genesis hash of the chain.\","]
22419    #[doc = "      \"allOf\": ["]
22420    #[doc = "        {"]
22421    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
22422    #[doc = "        }"]
22423    #[doc = "      ]"]
22424    #[doc = "    },"]
22425    #[doc = "    \"latest_protocol_version\": {"]
22426    #[doc = "      \"description\": \"Latest protocol version that this client supports.\","]
22427    #[doc = "      \"type\": \"integer\","]
22428    #[doc = "      \"format\": \"uint32\","]
22429    #[doc = "      \"minimum\": 0.0"]
22430    #[doc = "    },"]
22431    #[doc = "    \"node_key\": {"]
22432    #[doc = "      \"description\": \"Deprecated; same as `validator_public_key` which you should use instead.\","]
22433    #[doc = "      \"oneOf\": ["]
22434    #[doc = "        {"]
22435    #[doc = "          \"type\": \"null\""]
22436    #[doc = "        },"]
22437    #[doc = "        {"]
22438    #[doc = "          \"allOf\": ["]
22439    #[doc = "            {"]
22440    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
22441    #[doc = "            }"]
22442    #[doc = "          ]"]
22443    #[doc = "        }"]
22444    #[doc = "      ]"]
22445    #[doc = "    },"]
22446    #[doc = "    \"node_public_key\": {"]
22447    #[doc = "      \"description\": \"Public key of the node.\","]
22448    #[doc = "      \"allOf\": ["]
22449    #[doc = "        {"]
22450    #[doc = "          \"$ref\": \"#/components/schemas/PublicKey\""]
22451    #[doc = "        }"]
22452    #[doc = "      ]"]
22453    #[doc = "    },"]
22454    #[doc = "    \"protocol_version\": {"]
22455    #[doc = "      \"description\": \"Currently active protocol version.\","]
22456    #[doc = "      \"type\": \"integer\","]
22457    #[doc = "      \"format\": \"uint32\","]
22458    #[doc = "      \"minimum\": 0.0"]
22459    #[doc = "    },"]
22460    #[doc = "    \"rpc_addr\": {"]
22461    #[doc = "      \"description\": \"Address for RPC server.  None if node doesn’t have RPC endpoint enabled.\","]
22462    #[doc = "      \"type\": ["]
22463    #[doc = "        \"string\","]
22464    #[doc = "        \"null\""]
22465    #[doc = "      ]"]
22466    #[doc = "    },"]
22467    #[doc = "    \"sync_info\": {"]
22468    #[doc = "      \"description\": \"Sync status of the node.\","]
22469    #[doc = "      \"allOf\": ["]
22470    #[doc = "        {"]
22471    #[doc = "          \"$ref\": \"#/components/schemas/StatusSyncInfo\""]
22472    #[doc = "        }"]
22473    #[doc = "      ]"]
22474    #[doc = "    },"]
22475    #[doc = "    \"uptime_sec\": {"]
22476    #[doc = "      \"description\": \"Uptime of the node.\","]
22477    #[doc = "      \"type\": \"integer\","]
22478    #[doc = "      \"format\": \"int64\""]
22479    #[doc = "    },"]
22480    #[doc = "    \"validator_account_id\": {"]
22481    #[doc = "      \"description\": \"Validator id of the node\","]
22482    #[doc = "      \"oneOf\": ["]
22483    #[doc = "        {"]
22484    #[doc = "          \"type\": \"null\""]
22485    #[doc = "        },"]
22486    #[doc = "        {"]
22487    #[doc = "          \"allOf\": ["]
22488    #[doc = "            {"]
22489    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
22490    #[doc = "            }"]
22491    #[doc = "          ]"]
22492    #[doc = "        }"]
22493    #[doc = "      ]"]
22494    #[doc = "    },"]
22495    #[doc = "    \"validator_public_key\": {"]
22496    #[doc = "      \"description\": \"Public key of the validator.\","]
22497    #[doc = "      \"oneOf\": ["]
22498    #[doc = "        {"]
22499    #[doc = "          \"type\": \"null\""]
22500    #[doc = "        },"]
22501    #[doc = "        {"]
22502    #[doc = "          \"allOf\": ["]
22503    #[doc = "            {"]
22504    #[doc = "              \"$ref\": \"#/components/schemas/PublicKey\""]
22505    #[doc = "            }"]
22506    #[doc = "          ]"]
22507    #[doc = "        }"]
22508    #[doc = "      ]"]
22509    #[doc = "    },"]
22510    #[doc = "    \"validators\": {"]
22511    #[doc = "      \"description\": \"Current epoch validators.\","]
22512    #[doc = "      \"type\": \"array\","]
22513    #[doc = "      \"items\": {"]
22514    #[doc = "        \"$ref\": \"#/components/schemas/ValidatorInfo\""]
22515    #[doc = "      }"]
22516    #[doc = "    },"]
22517    #[doc = "    \"version\": {"]
22518    #[doc = "      \"description\": \"Binary version.\","]
22519    #[doc = "      \"allOf\": ["]
22520    #[doc = "        {"]
22521    #[doc = "          \"$ref\": \"#/components/schemas/Version\""]
22522    #[doc = "        }"]
22523    #[doc = "      ]"]
22524    #[doc = "    }"]
22525    #[doc = "  }"]
22526    #[doc = "}"]
22527    #[doc = r" ```"]
22528    #[doc = r" </details>"]
22529    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
22530    pub struct RpcStatusResponse {
22531        #[doc = "Unique chain id."]
22532        pub chain_id: ::std::string::String,
22533        #[doc = "Information about last blocks, network, epoch and chain & chunk info."]
22534        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
22535        pub detailed_debug_status: ::std::option::Option<DetailedDebugStatus>,
22536        #[doc = "Genesis hash of the chain."]
22537        pub genesis_hash: CryptoHash,
22538        #[doc = "Latest protocol version that this client supports."]
22539        pub latest_protocol_version: u32,
22540        #[doc = "Deprecated; same as `validator_public_key` which you should use instead."]
22541        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
22542        pub node_key: ::std::option::Option<PublicKey>,
22543        #[doc = "Public key of the node."]
22544        pub node_public_key: PublicKey,
22545        #[doc = "Currently active protocol version."]
22546        pub protocol_version: u32,
22547        #[doc = "Address for RPC server.  None if node doesn’t have RPC endpoint enabled."]
22548        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
22549        pub rpc_addr: ::std::option::Option<::std::string::String>,
22550        #[doc = "Sync status of the node."]
22551        pub sync_info: StatusSyncInfo,
22552        #[doc = "Uptime of the node."]
22553        pub uptime_sec: i64,
22554        #[doc = "Validator id of the node"]
22555        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
22556        pub validator_account_id: ::std::option::Option<AccountId>,
22557        #[doc = "Public key of the validator."]
22558        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
22559        pub validator_public_key: ::std::option::Option<PublicKey>,
22560        #[doc = "Current epoch validators."]
22561        pub validators: ::std::vec::Vec<ValidatorInfo>,
22562        #[doc = "Binary version."]
22563        pub version: Version,
22564    }
22565    impl ::std::convert::From<&RpcStatusResponse> for RpcStatusResponse {
22566        fn from(value: &RpcStatusResponse) -> Self {
22567            value.clone()
22568        }
22569    }
22570    #[doc = "`RpcTransactionResponse`"]
22571    #[doc = r""]
22572    #[doc = r" <details><summary>JSON schema</summary>"]
22573    #[doc = r""]
22574    #[doc = r" ```json"]
22575    #[doc = "{"]
22576    #[doc = "  \"type\": \"object\","]
22577    #[doc = "  \"anyOf\": ["]
22578    #[doc = "    {"]
22579    #[doc = "      \"$ref\": \"#/components/schemas/FinalExecutionOutcomeWithReceiptView\""]
22580    #[doc = "    },"]
22581    #[doc = "    {"]
22582    #[doc = "      \"$ref\": \"#/components/schemas/FinalExecutionOutcomeView\""]
22583    #[doc = "    }"]
22584    #[doc = "  ],"]
22585    #[doc = "  \"required\": ["]
22586    #[doc = "    \"final_execution_status\""]
22587    #[doc = "  ],"]
22588    #[doc = "  \"properties\": {"]
22589    #[doc = "    \"final_execution_status\": {"]
22590    #[doc = "      \"$ref\": \"#/components/schemas/TxExecutionStatus\""]
22591    #[doc = "    }"]
22592    #[doc = "  }"]
22593    #[doc = "}"]
22594    #[doc = r" ```"]
22595    #[doc = r" </details>"]
22596    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
22597    #[serde(untagged)]
22598    pub enum RpcTransactionResponse {
22599        Variant0 {
22600            final_execution_status: TxExecutionStatus,
22601            #[doc = "Receipts generated from the transaction"]
22602            receipts: ::std::vec::Vec<ReceiptView>,
22603            #[doc = "The execution outcome of receipts."]
22604            receipts_outcome: ::std::vec::Vec<ExecutionOutcomeWithIdView>,
22605            #[doc = "Execution status defined by chain.rs:get_final_transaction_result\n FinalExecutionStatus::NotStarted - the tx is not converted to the receipt yet\n FinalExecutionStatus::Started - we have at least 1 receipt, but the first leaf receipt_id (using dfs) hasn't finished the execution\n FinalExecutionStatus::Failure - the result of the first leaf receipt_id\n FinalExecutionStatus::SuccessValue - the result of the first leaf receipt_id"]
22606            status: FinalExecutionStatus,
22607            #[doc = "Signed Transaction"]
22608            transaction: SignedTransactionView,
22609            #[doc = "The execution outcome of the signed transaction."]
22610            transaction_outcome: ExecutionOutcomeWithIdView,
22611        },
22612        Variant1 {
22613            final_execution_status: TxExecutionStatus,
22614            #[doc = "The execution outcome of receipts."]
22615            receipts_outcome: ::std::vec::Vec<ExecutionOutcomeWithIdView>,
22616            #[doc = "Execution status defined by chain.rs:get_final_transaction_result\n FinalExecutionStatus::NotStarted - the tx is not converted to the receipt yet\n FinalExecutionStatus::Started - we have at least 1 receipt, but the first leaf receipt_id (using dfs) hasn't finished the execution\n FinalExecutionStatus::Failure - the result of the first leaf receipt_id\n FinalExecutionStatus::SuccessValue - the result of the first leaf receipt_id"]
22617            status: FinalExecutionStatus,
22618            #[doc = "Signed Transaction"]
22619            transaction: SignedTransactionView,
22620            #[doc = "The execution outcome of the signed transaction."]
22621            transaction_outcome: ExecutionOutcomeWithIdView,
22622        },
22623    }
22624    impl ::std::convert::From<&Self> for RpcTransactionResponse {
22625        fn from(value: &RpcTransactionResponse) -> Self {
22626            value.clone()
22627        }
22628    }
22629    #[doc = "`RpcTransactionStatusRequest`"]
22630    #[doc = r""]
22631    #[doc = r" <details><summary>JSON schema</summary>"]
22632    #[doc = r""]
22633    #[doc = r" ```json"]
22634    #[doc = "{"]
22635    #[doc = "  \"title\": \"RpcTransactionStatusRequest\","]
22636    #[doc = "  \"type\": \"object\","]
22637    #[doc = "  \"anyOf\": ["]
22638    #[doc = "    {"]
22639    #[doc = "      \"type\": \"object\","]
22640    #[doc = "      \"required\": ["]
22641    #[doc = "        \"signed_tx_base64\""]
22642    #[doc = "      ],"]
22643    #[doc = "      \"properties\": {"]
22644    #[doc = "        \"signed_tx_base64\": {"]
22645    #[doc = "          \"$ref\": \"#/components/schemas/SignedTransaction\""]
22646    #[doc = "        }"]
22647    #[doc = "      }"]
22648    #[doc = "    },"]
22649    #[doc = "    {"]
22650    #[doc = "      \"type\": \"object\","]
22651    #[doc = "      \"required\": ["]
22652    #[doc = "        \"sender_account_id\","]
22653    #[doc = "        \"tx_hash\""]
22654    #[doc = "      ],"]
22655    #[doc = "      \"properties\": {"]
22656    #[doc = "        \"sender_account_id\": {"]
22657    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
22658    #[doc = "        },"]
22659    #[doc = "        \"tx_hash\": {"]
22660    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
22661    #[doc = "        }"]
22662    #[doc = "      }"]
22663    #[doc = "    }"]
22664    #[doc = "  ],"]
22665    #[doc = "  \"properties\": {"]
22666    #[doc = "    \"wait_until\": {"]
22667    #[doc = "      \"default\": \"EXECUTED_OPTIMISTIC\","]
22668    #[doc = "      \"allOf\": ["]
22669    #[doc = "        {"]
22670    #[doc = "          \"$ref\": \"#/components/schemas/TxExecutionStatus\""]
22671    #[doc = "        }"]
22672    #[doc = "      ]"]
22673    #[doc = "    }"]
22674    #[doc = "  }"]
22675    #[doc = "}"]
22676    #[doc = r" ```"]
22677    #[doc = r" </details>"]
22678    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
22679    #[serde(untagged)]
22680    pub enum RpcTransactionStatusRequest {
22681        Variant0 {
22682            signed_tx_base64: SignedTransaction,
22683            #[serde(default = "defaults::rpc_transaction_status_request_variant0_wait_until")]
22684            wait_until: TxExecutionStatus,
22685        },
22686        Variant1 {
22687            sender_account_id: AccountId,
22688            tx_hash: CryptoHash,
22689            #[serde(default = "defaults::rpc_transaction_status_request_variant1_wait_until")]
22690            wait_until: TxExecutionStatus,
22691        },
22692    }
22693    impl ::std::convert::From<&Self> for RpcTransactionStatusRequest {
22694        fn from(value: &RpcTransactionStatusRequest) -> Self {
22695            value.clone()
22696        }
22697    }
22698    #[doc = "`RpcValidatorRequest`"]
22699    #[doc = r""]
22700    #[doc = r" <details><summary>JSON schema</summary>"]
22701    #[doc = r""]
22702    #[doc = r" ```json"]
22703    #[doc = "{"]
22704    #[doc = "  \"title\": \"RpcValidatorRequest\","]
22705    #[doc = "  \"type\": \"object\","]
22706    #[doc = "  \"oneOf\": ["]
22707    #[doc = "    {"]
22708    #[doc = "      \"type\": \"string\","]
22709    #[doc = "      \"enum\": ["]
22710    #[doc = "        \"latest\""]
22711    #[doc = "      ]"]
22712    #[doc = "    },"]
22713    #[doc = "    {"]
22714    #[doc = "      \"type\": \"object\","]
22715    #[doc = "      \"required\": ["]
22716    #[doc = "        \"epoch_id\""]
22717    #[doc = "      ],"]
22718    #[doc = "      \"properties\": {"]
22719    #[doc = "        \"epoch_id\": {"]
22720    #[doc = "          \"$ref\": \"#/components/schemas/EpochId\""]
22721    #[doc = "        }"]
22722    #[doc = "      }"]
22723    #[doc = "    },"]
22724    #[doc = "    {"]
22725    #[doc = "      \"type\": \"object\","]
22726    #[doc = "      \"required\": ["]
22727    #[doc = "        \"block_id\""]
22728    #[doc = "      ],"]
22729    #[doc = "      \"properties\": {"]
22730    #[doc = "        \"block_id\": {"]
22731    #[doc = "          \"$ref\": \"#/components/schemas/BlockId\""]
22732    #[doc = "        }"]
22733    #[doc = "      }"]
22734    #[doc = "    }"]
22735    #[doc = "  ]"]
22736    #[doc = "}"]
22737    #[doc = r" ```"]
22738    #[doc = r" </details>"]
22739    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
22740    pub enum RpcValidatorRequest {
22741        #[serde(rename = "latest")]
22742        Latest,
22743        #[serde(rename = "epoch_id")]
22744        EpochId(EpochId),
22745        #[serde(rename = "block_id")]
22746        BlockId(BlockId),
22747    }
22748    impl ::std::convert::From<&Self> for RpcValidatorRequest {
22749        fn from(value: &RpcValidatorRequest) -> Self {
22750            value.clone()
22751        }
22752    }
22753    impl ::std::convert::From<EpochId> for RpcValidatorRequest {
22754        fn from(value: EpochId) -> Self {
22755            Self::EpochId(value)
22756        }
22757    }
22758    impl ::std::convert::From<BlockId> for RpcValidatorRequest {
22759        fn from(value: BlockId) -> Self {
22760            Self::BlockId(value)
22761        }
22762    }
22763    #[doc = "Information about this epoch validators and next epoch validators"]
22764    #[doc = r""]
22765    #[doc = r" <details><summary>JSON schema</summary>"]
22766    #[doc = r""]
22767    #[doc = r" ```json"]
22768    #[doc = "{"]
22769    #[doc = "  \"description\": \"Information about this epoch validators and next epoch validators\","]
22770    #[doc = "  \"type\": \"object\","]
22771    #[doc = "  \"required\": ["]
22772    #[doc = "    \"current_fishermen\","]
22773    #[doc = "    \"current_proposals\","]
22774    #[doc = "    \"current_validators\","]
22775    #[doc = "    \"epoch_height\","]
22776    #[doc = "    \"epoch_start_height\","]
22777    #[doc = "    \"next_fishermen\","]
22778    #[doc = "    \"next_validators\","]
22779    #[doc = "    \"prev_epoch_kickout\""]
22780    #[doc = "  ],"]
22781    #[doc = "  \"properties\": {"]
22782    #[doc = "    \"current_fishermen\": {"]
22783    #[doc = "      \"description\": \"Fishermen for the current epoch\","]
22784    #[doc = "      \"type\": \"array\","]
22785    #[doc = "      \"items\": {"]
22786    #[doc = "        \"$ref\": \"#/components/schemas/ValidatorStakeView\""]
22787    #[doc = "      }"]
22788    #[doc = "    },"]
22789    #[doc = "    \"current_proposals\": {"]
22790    #[doc = "      \"description\": \"Proposals in the current epoch\","]
22791    #[doc = "      \"type\": \"array\","]
22792    #[doc = "      \"items\": {"]
22793    #[doc = "        \"$ref\": \"#/components/schemas/ValidatorStakeView\""]
22794    #[doc = "      }"]
22795    #[doc = "    },"]
22796    #[doc = "    \"current_validators\": {"]
22797    #[doc = "      \"description\": \"Validators for the current epoch\","]
22798    #[doc = "      \"type\": \"array\","]
22799    #[doc = "      \"items\": {"]
22800    #[doc = "        \"$ref\": \"#/components/schemas/CurrentEpochValidatorInfo\""]
22801    #[doc = "      }"]
22802    #[doc = "    },"]
22803    #[doc = "    \"epoch_height\": {"]
22804    #[doc = "      \"description\": \"Epoch height\","]
22805    #[doc = "      \"type\": \"integer\","]
22806    #[doc = "      \"format\": \"uint64\","]
22807    #[doc = "      \"minimum\": 0.0"]
22808    #[doc = "    },"]
22809    #[doc = "    \"epoch_start_height\": {"]
22810    #[doc = "      \"description\": \"Epoch start block height\","]
22811    #[doc = "      \"type\": \"integer\","]
22812    #[doc = "      \"format\": \"uint64\","]
22813    #[doc = "      \"minimum\": 0.0"]
22814    #[doc = "    },"]
22815    #[doc = "    \"next_fishermen\": {"]
22816    #[doc = "      \"description\": \"Fishermen for the next epoch\","]
22817    #[doc = "      \"type\": \"array\","]
22818    #[doc = "      \"items\": {"]
22819    #[doc = "        \"$ref\": \"#/components/schemas/ValidatorStakeView\""]
22820    #[doc = "      }"]
22821    #[doc = "    },"]
22822    #[doc = "    \"next_validators\": {"]
22823    #[doc = "      \"description\": \"Validators for the next epoch\","]
22824    #[doc = "      \"type\": \"array\","]
22825    #[doc = "      \"items\": {"]
22826    #[doc = "        \"$ref\": \"#/components/schemas/NextEpochValidatorInfo\""]
22827    #[doc = "      }"]
22828    #[doc = "    },"]
22829    #[doc = "    \"prev_epoch_kickout\": {"]
22830    #[doc = "      \"description\": \"Kickout in the previous epoch\","]
22831    #[doc = "      \"type\": \"array\","]
22832    #[doc = "      \"items\": {"]
22833    #[doc = "        \"$ref\": \"#/components/schemas/ValidatorKickoutView\""]
22834    #[doc = "      }"]
22835    #[doc = "    }"]
22836    #[doc = "  }"]
22837    #[doc = "}"]
22838    #[doc = r" ```"]
22839    #[doc = r" </details>"]
22840    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
22841    pub struct RpcValidatorResponse {
22842        #[doc = "Fishermen for the current epoch"]
22843        pub current_fishermen: ::std::vec::Vec<ValidatorStakeView>,
22844        #[doc = "Proposals in the current epoch"]
22845        pub current_proposals: ::std::vec::Vec<ValidatorStakeView>,
22846        #[doc = "Validators for the current epoch"]
22847        pub current_validators: ::std::vec::Vec<CurrentEpochValidatorInfo>,
22848        #[doc = "Epoch height"]
22849        pub epoch_height: u64,
22850        #[doc = "Epoch start block height"]
22851        pub epoch_start_height: u64,
22852        #[doc = "Fishermen for the next epoch"]
22853        pub next_fishermen: ::std::vec::Vec<ValidatorStakeView>,
22854        #[doc = "Validators for the next epoch"]
22855        pub next_validators: ::std::vec::Vec<NextEpochValidatorInfo>,
22856        #[doc = "Kickout in the previous epoch"]
22857        pub prev_epoch_kickout: ::std::vec::Vec<ValidatorKickoutView>,
22858    }
22859    impl ::std::convert::From<&RpcValidatorResponse> for RpcValidatorResponse {
22860        fn from(value: &RpcValidatorResponse) -> Self {
22861            value.clone()
22862        }
22863    }
22864    #[doc = "`RpcValidatorsOrderedRequest`"]
22865    #[doc = r""]
22866    #[doc = r" <details><summary>JSON schema</summary>"]
22867    #[doc = r""]
22868    #[doc = r" ```json"]
22869    #[doc = "{"]
22870    #[doc = "  \"title\": \"RpcValidatorsOrderedRequest\","]
22871    #[doc = "  \"type\": \"object\","]
22872    #[doc = "  \"properties\": {"]
22873    #[doc = "    \"block_id\": {"]
22874    #[doc = "      \"oneOf\": ["]
22875    #[doc = "        {"]
22876    #[doc = "          \"type\": \"null\""]
22877    #[doc = "        },"]
22878    #[doc = "        {"]
22879    #[doc = "          \"allOf\": ["]
22880    #[doc = "            {"]
22881    #[doc = "              \"$ref\": \"#/components/schemas/BlockId\""]
22882    #[doc = "            }"]
22883    #[doc = "          ]"]
22884    #[doc = "        }"]
22885    #[doc = "      ]"]
22886    #[doc = "    }"]
22887    #[doc = "  }"]
22888    #[doc = "}"]
22889    #[doc = r" ```"]
22890    #[doc = r" </details>"]
22891    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
22892    pub struct RpcValidatorsOrderedRequest {
22893        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
22894        pub block_id: ::std::option::Option<BlockId>,
22895    }
22896    impl ::std::convert::From<&RpcValidatorsOrderedRequest> for RpcValidatorsOrderedRequest {
22897        fn from(value: &RpcValidatorsOrderedRequest) -> Self {
22898            value.clone()
22899        }
22900    }
22901    impl ::std::default::Default for RpcValidatorsOrderedRequest {
22902        fn default() -> Self {
22903            Self {
22904                block_id: Default::default(),
22905            }
22906        }
22907    }
22908    #[doc = "View that preserves JSON format of the runtime config."]
22909    #[doc = r""]
22910    #[doc = r" <details><summary>JSON schema</summary>"]
22911    #[doc = r""]
22912    #[doc = r" ```json"]
22913    #[doc = "{"]
22914    #[doc = "  \"description\": \"View that preserves JSON format of the runtime config.\","]
22915    #[doc = "  \"type\": \"object\","]
22916    #[doc = "  \"required\": ["]
22917    #[doc = "    \"account_creation_config\","]
22918    #[doc = "    \"congestion_control_config\","]
22919    #[doc = "    \"storage_amount_per_byte\","]
22920    #[doc = "    \"transaction_costs\","]
22921    #[doc = "    \"wasm_config\","]
22922    #[doc = "    \"witness_config\""]
22923    #[doc = "  ],"]
22924    #[doc = "  \"properties\": {"]
22925    #[doc = "    \"account_creation_config\": {"]
22926    #[doc = "      \"description\": \"Config that defines rules for account creation.\","]
22927    #[doc = "      \"allOf\": ["]
22928    #[doc = "        {"]
22929    #[doc = "          \"$ref\": \"#/components/schemas/AccountCreationConfigView\""]
22930    #[doc = "        }"]
22931    #[doc = "      ]"]
22932    #[doc = "    },"]
22933    #[doc = "    \"congestion_control_config\": {"]
22934    #[doc = "      \"description\": \"The configuration for congestion control.\","]
22935    #[doc = "      \"allOf\": ["]
22936    #[doc = "        {"]
22937    #[doc = "          \"$ref\": \"#/components/schemas/CongestionControlConfigView\""]
22938    #[doc = "        }"]
22939    #[doc = "      ]"]
22940    #[doc = "    },"]
22941    #[doc = "    \"storage_amount_per_byte\": {"]
22942    #[doc = "      \"description\": \"Amount of yN per byte required to have on the account.  See\\n <https://nomicon.io/Economics/Economic#state-stake> for details.\","]
22943    #[doc = "      \"type\": \"string\""]
22944    #[doc = "    },"]
22945    #[doc = "    \"transaction_costs\": {"]
22946    #[doc = "      \"description\": \"Costs of different actions that need to be performed when sending and\\n processing transaction and receipts.\","]
22947    #[doc = "      \"allOf\": ["]
22948    #[doc = "        {"]
22949    #[doc = "          \"$ref\": \"#/components/schemas/RuntimeFeesConfigView\""]
22950    #[doc = "        }"]
22951    #[doc = "      ]"]
22952    #[doc = "    },"]
22953    #[doc = "    \"wasm_config\": {"]
22954    #[doc = "      \"description\": \"Config of wasm operations.\","]
22955    #[doc = "      \"allOf\": ["]
22956    #[doc = "        {"]
22957    #[doc = "          \"$ref\": \"#/components/schemas/VMConfigView\""]
22958    #[doc = "        }"]
22959    #[doc = "      ]"]
22960    #[doc = "    },"]
22961    #[doc = "    \"witness_config\": {"]
22962    #[doc = "      \"description\": \"Configuration specific to ChunkStateWitness.\","]
22963    #[doc = "      \"allOf\": ["]
22964    #[doc = "        {"]
22965    #[doc = "          \"$ref\": \"#/components/schemas/WitnessConfigView\""]
22966    #[doc = "        }"]
22967    #[doc = "      ]"]
22968    #[doc = "    }"]
22969    #[doc = "  }"]
22970    #[doc = "}"]
22971    #[doc = r" ```"]
22972    #[doc = r" </details>"]
22973    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
22974    pub struct RuntimeConfigView {
22975        #[doc = "Config that defines rules for account creation."]
22976        pub account_creation_config: AccountCreationConfigView,
22977        #[doc = "The configuration for congestion control."]
22978        pub congestion_control_config: CongestionControlConfigView,
22979        #[doc = "Amount of yN per byte required to have on the account.  See\n <https://nomicon.io/Economics/Economic#state-stake> for details."]
22980        pub storage_amount_per_byte: ::std::string::String,
22981        #[doc = "Costs of different actions that need to be performed when sending and\n processing transaction and receipts."]
22982        pub transaction_costs: RuntimeFeesConfigView,
22983        #[doc = "Config of wasm operations."]
22984        pub wasm_config: VmConfigView,
22985        #[doc = "Configuration specific to ChunkStateWitness."]
22986        pub witness_config: WitnessConfigView,
22987    }
22988    impl ::std::convert::From<&RuntimeConfigView> for RuntimeConfigView {
22989        fn from(value: &RuntimeConfigView) -> Self {
22990            value.clone()
22991        }
22992    }
22993    #[doc = "`RuntimeFeesConfigView`"]
22994    #[doc = r""]
22995    #[doc = r" <details><summary>JSON schema</summary>"]
22996    #[doc = r""]
22997    #[doc = r" ```json"]
22998    #[doc = "{"]
22999    #[doc = "  \"type\": \"object\","]
23000    #[doc = "  \"required\": ["]
23001    #[doc = "    \"action_creation_config\","]
23002    #[doc = "    \"action_receipt_creation_config\","]
23003    #[doc = "    \"burnt_gas_reward\","]
23004    #[doc = "    \"data_receipt_creation_config\","]
23005    #[doc = "    \"pessimistic_gas_price_inflation_ratio\","]
23006    #[doc = "    \"storage_usage_config\""]
23007    #[doc = "  ],"]
23008    #[doc = "  \"properties\": {"]
23009    #[doc = "    \"action_creation_config\": {"]
23010    #[doc = "      \"description\": \"Describes the cost of creating a certain action, `Action`. Includes all variants.\","]
23011    #[doc = "      \"allOf\": ["]
23012    #[doc = "        {"]
23013    #[doc = "          \"$ref\": \"#/components/schemas/ActionCreationConfigView\""]
23014    #[doc = "        }"]
23015    #[doc = "      ]"]
23016    #[doc = "    },"]
23017    #[doc = "    \"action_receipt_creation_config\": {"]
23018    #[doc = "      \"description\": \"Describes the cost of creating an action receipt, `ActionReceipt`, excluding the actual cost\\n of actions.\\n - `send` cost is burned when a receipt is created using `promise_create` or\\n     `promise_batch_create`\\n - `exec` cost is burned when the receipt is being executed.\","]
23019    #[doc = "      \"allOf\": ["]
23020    #[doc = "        {"]
23021    #[doc = "          \"$ref\": \"#/components/schemas/Fee\""]
23022    #[doc = "        }"]
23023    #[doc = "      ]"]
23024    #[doc = "    },"]
23025    #[doc = "    \"burnt_gas_reward\": {"]
23026    #[doc = "      \"description\": \"Fraction of the burnt gas to reward to the contract account for execution.\","]
23027    #[doc = "      \"type\": \"array\","]
23028    #[doc = "      \"items\": {"]
23029    #[doc = "        \"type\": \"integer\","]
23030    #[doc = "        \"format\": \"int32\""]
23031    #[doc = "      },"]
23032    #[doc = "      \"maxItems\": 2,"]
23033    #[doc = "      \"minItems\": 2"]
23034    #[doc = "    },"]
23035    #[doc = "    \"data_receipt_creation_config\": {"]
23036    #[doc = "      \"description\": \"Describes the cost of creating a data receipt, `DataReceipt`.\","]
23037    #[doc = "      \"allOf\": ["]
23038    #[doc = "        {"]
23039    #[doc = "          \"$ref\": \"#/components/schemas/DataReceiptCreationConfigView\""]
23040    #[doc = "        }"]
23041    #[doc = "      ]"]
23042    #[doc = "    },"]
23043    #[doc = "    \"pessimistic_gas_price_inflation_ratio\": {"]
23044    #[doc = "      \"description\": \"Pessimistic gas price inflation ratio.\","]
23045    #[doc = "      \"type\": \"array\","]
23046    #[doc = "      \"items\": {"]
23047    #[doc = "        \"type\": \"integer\","]
23048    #[doc = "        \"format\": \"int32\""]
23049    #[doc = "      },"]
23050    #[doc = "      \"maxItems\": 2,"]
23051    #[doc = "      \"minItems\": 2"]
23052    #[doc = "    },"]
23053    #[doc = "    \"storage_usage_config\": {"]
23054    #[doc = "      \"description\": \"Describes fees for storage.\","]
23055    #[doc = "      \"allOf\": ["]
23056    #[doc = "        {"]
23057    #[doc = "          \"$ref\": \"#/components/schemas/StorageUsageConfigView\""]
23058    #[doc = "        }"]
23059    #[doc = "      ]"]
23060    #[doc = "    }"]
23061    #[doc = "  }"]
23062    #[doc = "}"]
23063    #[doc = r" ```"]
23064    #[doc = r" </details>"]
23065    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
23066    pub struct RuntimeFeesConfigView {
23067        #[doc = "Describes the cost of creating a certain action, `Action`. Includes all variants."]
23068        pub action_creation_config: ActionCreationConfigView,
23069        #[doc = "Describes the cost of creating an action receipt, `ActionReceipt`, excluding the actual cost\n of actions.\n - `send` cost is burned when a receipt is created using `promise_create` or\n     `promise_batch_create`\n - `exec` cost is burned when the receipt is being executed."]
23070        pub action_receipt_creation_config: Fee,
23071        #[doc = "Fraction of the burnt gas to reward to the contract account for execution."]
23072        pub burnt_gas_reward: [i32; 2usize],
23073        #[doc = "Describes the cost of creating a data receipt, `DataReceipt`."]
23074        pub data_receipt_creation_config: DataReceiptCreationConfigView,
23075        #[doc = "Pessimistic gas price inflation ratio."]
23076        pub pessimistic_gas_price_inflation_ratio: [i32; 2usize],
23077        #[doc = "Describes fees for storage."]
23078        pub storage_usage_config: StorageUsageConfigView,
23079    }
23080    impl ::std::convert::From<&RuntimeFeesConfigView> for RuntimeFeesConfigView {
23081        fn from(value: &RuntimeFeesConfigView) -> Self {
23082            value.clone()
23083        }
23084    }
23085    #[doc = "The shard identifier. It may be an arbitrary number - it does not need to be\n a number in the range 0..NUM_SHARDS. The shard ids do not need to be\n sequential or contiguous.\n\n The shard id is wrapped in a new type to prevent the old pattern of using\n indices in range 0..NUM_SHARDS and casting to ShardId. Once the transition\n if fully complete it potentially may be simplified to a regular type alias."]
23086    #[doc = r""]
23087    #[doc = r" <details><summary>JSON schema</summary>"]
23088    #[doc = r""]
23089    #[doc = r" ```json"]
23090    #[doc = "{"]
23091    #[doc = "  \"description\": \"The shard identifier. It may be an arbitrary number - it does not need to be\\n a number in the range 0..NUM_SHARDS. The shard ids do not need to be\\n sequential or contiguous.\\n\\n The shard id is wrapped in a new type to prevent the old pattern of using\\n indices in range 0..NUM_SHARDS and casting to ShardId. Once the transition\\n if fully complete it potentially may be simplified to a regular type alias.\","]
23092    #[doc = "  \"type\": \"integer\","]
23093    #[doc = "  \"format\": \"uint64\","]
23094    #[doc = "  \"minimum\": 0.0"]
23095    #[doc = "}"]
23096    #[doc = r" ```"]
23097    #[doc = r" </details>"]
23098    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
23099    #[serde(transparent)]
23100    pub struct ShardId(pub u64);
23101    impl ::std::ops::Deref for ShardId {
23102        type Target = u64;
23103        fn deref(&self) -> &u64 {
23104            &self.0
23105        }
23106    }
23107    impl ::std::convert::From<ShardId> for u64 {
23108        fn from(value: ShardId) -> Self {
23109            value.0
23110        }
23111    }
23112    impl ::std::convert::From<&ShardId> for ShardId {
23113        fn from(value: &ShardId) -> Self {
23114            value.clone()
23115        }
23116    }
23117    impl ::std::convert::From<u64> for ShardId {
23118        fn from(value: u64) -> Self {
23119            Self(value)
23120        }
23121    }
23122    impl ::std::str::FromStr for ShardId {
23123        type Err = <u64 as ::std::str::FromStr>::Err;
23124        fn from_str(value: &str) -> ::std::result::Result<Self, Self::Err> {
23125            Ok(Self(value.parse()?))
23126        }
23127    }
23128    impl ::std::convert::TryFrom<&str> for ShardId {
23129        type Error = <u64 as ::std::str::FromStr>::Err;
23130        fn try_from(value: &str) -> ::std::result::Result<Self, Self::Error> {
23131            value.parse()
23132        }
23133    }
23134    impl ::std::convert::TryFrom<&String> for ShardId {
23135        type Error = <u64 as ::std::str::FromStr>::Err;
23136        fn try_from(value: &String) -> ::std::result::Result<Self, Self::Error> {
23137            value.parse()
23138        }
23139    }
23140    impl ::std::convert::TryFrom<String> for ShardId {
23141        type Error = <u64 as ::std::str::FromStr>::Err;
23142        fn try_from(value: String) -> ::std::result::Result<Self, Self::Error> {
23143            value.parse()
23144        }
23145    }
23146    impl ::std::fmt::Display for ShardId {
23147        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23148            self.0.fmt(f)
23149        }
23150    }
23151    #[doc = "A versioned struct that contains all information needed to assign accounts to shards.\n\n Because of re-sharding, the chain may use different shard layout to split shards at different\n times. Currently, `ShardLayout` is stored as part of `EpochConfig`, which is generated each\n epoch given the epoch protocol version. In mainnet/testnet, we use two shard layouts since\n re-sharding has only happened once. It is stored as part of genesis config, see\n default_simple_nightshade_shard_layout() Below is an overview for some important\n functionalities of ShardLayout interface."]
23152    #[doc = r""]
23153    #[doc = r" <details><summary>JSON schema</summary>"]
23154    #[doc = r""]
23155    #[doc = r" ```json"]
23156    #[doc = "{"]
23157    #[doc = "  \"description\": \"A versioned struct that contains all information needed to assign accounts to shards.\\n\\n Because of re-sharding, the chain may use different shard layout to split shards at different\\n times. Currently, `ShardLayout` is stored as part of `EpochConfig`, which is generated each\\n epoch given the epoch protocol version. In mainnet/testnet, we use two shard layouts since\\n re-sharding has only happened once. It is stored as part of genesis config, see\\n default_simple_nightshade_shard_layout() Below is an overview for some important\\n functionalities of ShardLayout interface.\","]
23158    #[doc = "  \"oneOf\": ["]
23159    #[doc = "    {"]
23160    #[doc = "      \"type\": \"object\","]
23161    #[doc = "      \"required\": ["]
23162    #[doc = "        \"V0\""]
23163    #[doc = "      ],"]
23164    #[doc = "      \"properties\": {"]
23165    #[doc = "        \"V0\": {"]
23166    #[doc = "          \"$ref\": \"#/components/schemas/ShardLayoutV0\""]
23167    #[doc = "        }"]
23168    #[doc = "      },"]
23169    #[doc = "      \"additionalProperties\": false"]
23170    #[doc = "    },"]
23171    #[doc = "    {"]
23172    #[doc = "      \"type\": \"object\","]
23173    #[doc = "      \"required\": ["]
23174    #[doc = "        \"V1\""]
23175    #[doc = "      ],"]
23176    #[doc = "      \"properties\": {"]
23177    #[doc = "        \"V1\": {"]
23178    #[doc = "          \"$ref\": \"#/components/schemas/ShardLayoutV1\""]
23179    #[doc = "        }"]
23180    #[doc = "      },"]
23181    #[doc = "      \"additionalProperties\": false"]
23182    #[doc = "    },"]
23183    #[doc = "    {"]
23184    #[doc = "      \"type\": \"object\","]
23185    #[doc = "      \"required\": ["]
23186    #[doc = "        \"V2\""]
23187    #[doc = "      ],"]
23188    #[doc = "      \"properties\": {"]
23189    #[doc = "        \"V2\": {"]
23190    #[doc = "          \"$ref\": \"#/components/schemas/ShardLayoutV2\""]
23191    #[doc = "        }"]
23192    #[doc = "      },"]
23193    #[doc = "      \"additionalProperties\": false"]
23194    #[doc = "    }"]
23195    #[doc = "  ]"]
23196    #[doc = "}"]
23197    #[doc = r" ```"]
23198    #[doc = r" </details>"]
23199    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
23200    pub enum ShardLayout {
23201        V0(ShardLayoutV0),
23202        V1(ShardLayoutV1),
23203        V2(ShardLayoutV2),
23204    }
23205    impl ::std::convert::From<&Self> for ShardLayout {
23206        fn from(value: &ShardLayout) -> Self {
23207            value.clone()
23208        }
23209    }
23210    impl ::std::convert::From<ShardLayoutV0> for ShardLayout {
23211        fn from(value: ShardLayoutV0) -> Self {
23212            Self::V0(value)
23213        }
23214    }
23215    impl ::std::convert::From<ShardLayoutV1> for ShardLayout {
23216        fn from(value: ShardLayoutV1) -> Self {
23217            Self::V1(value)
23218        }
23219    }
23220    impl ::std::convert::From<ShardLayoutV2> for ShardLayout {
23221        fn from(value: ShardLayoutV2) -> Self {
23222            Self::V2(value)
23223        }
23224    }
23225    #[doc = "A shard layout that maps accounts evenly across all shards -- by calculate the hash of account\n id and mod number of shards. This is added to capture the old `account_id_to_shard_id` algorithm,\n to keep backward compatibility for some existing tests.\n `parent_shards` for `ShardLayoutV1` is always `None`, meaning it can only be the first shard layout\n a chain uses."]
23226    #[doc = r""]
23227    #[doc = r" <details><summary>JSON schema</summary>"]
23228    #[doc = r""]
23229    #[doc = r" ```json"]
23230    #[doc = "{"]
23231    #[doc = "  \"description\": \"A shard layout that maps accounts evenly across all shards -- by calculate the hash of account\\n id and mod number of shards. This is added to capture the old `account_id_to_shard_id` algorithm,\\n to keep backward compatibility for some existing tests.\\n `parent_shards` for `ShardLayoutV1` is always `None`, meaning it can only be the first shard layout\\n a chain uses.\","]
23232    #[doc = "  \"type\": \"object\","]
23233    #[doc = "  \"required\": ["]
23234    #[doc = "    \"num_shards\","]
23235    #[doc = "    \"version\""]
23236    #[doc = "  ],"]
23237    #[doc = "  \"properties\": {"]
23238    #[doc = "    \"num_shards\": {"]
23239    #[doc = "      \"description\": \"Map accounts evenly across all shards\","]
23240    #[doc = "      \"type\": \"integer\","]
23241    #[doc = "      \"format\": \"uint64\","]
23242    #[doc = "      \"minimum\": 0.0"]
23243    #[doc = "    },"]
23244    #[doc = "    \"version\": {"]
23245    #[doc = "      \"description\": \"Version of the shard layout, this is useful for uniquely identify the shard layout\","]
23246    #[doc = "      \"type\": \"integer\","]
23247    #[doc = "      \"format\": \"uint32\","]
23248    #[doc = "      \"minimum\": 0.0"]
23249    #[doc = "    }"]
23250    #[doc = "  }"]
23251    #[doc = "}"]
23252    #[doc = r" ```"]
23253    #[doc = r" </details>"]
23254    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
23255    pub struct ShardLayoutV0 {
23256        #[doc = "Map accounts evenly across all shards"]
23257        pub num_shards: u64,
23258        #[doc = "Version of the shard layout, this is useful for uniquely identify the shard layout"]
23259        pub version: u32,
23260    }
23261    impl ::std::convert::From<&ShardLayoutV0> for ShardLayoutV0 {
23262        fn from(value: &ShardLayoutV0) -> Self {
23263            value.clone()
23264        }
23265    }
23266    #[doc = "`ShardLayoutV1`"]
23267    #[doc = r""]
23268    #[doc = r" <details><summary>JSON schema</summary>"]
23269    #[doc = r""]
23270    #[doc = r" ```json"]
23271    #[doc = "{"]
23272    #[doc = "  \"type\": \"object\","]
23273    #[doc = "  \"required\": ["]
23274    #[doc = "    \"boundary_accounts\","]
23275    #[doc = "    \"version\""]
23276    #[doc = "  ],"]
23277    #[doc = "  \"properties\": {"]
23278    #[doc = "    \"boundary_accounts\": {"]
23279    #[doc = "      \"description\": \"The boundary accounts are the accounts on boundaries between shards.\\n Each shard contains a range of accounts from one boundary account to\\n another - or the smallest or largest account possible. The total\\n number of shards is equal to the number of boundary accounts plus 1.\","]
23280    #[doc = "      \"type\": \"array\","]
23281    #[doc = "      \"items\": {"]
23282    #[doc = "        \"$ref\": \"#/components/schemas/AccountId\""]
23283    #[doc = "      }"]
23284    #[doc = "    },"]
23285    #[doc = "    \"shards_split_map\": {"]
23286    #[doc = "      \"description\": \"Maps shards from the last shard layout to shards that it splits to in this shard layout,\\n Useful for constructing states for the shards.\\n None for the genesis shard layout\","]
23287    #[doc = "      \"type\": ["]
23288    #[doc = "        \"array\","]
23289    #[doc = "        \"null\""]
23290    #[doc = "      ],"]
23291    #[doc = "      \"items\": {"]
23292    #[doc = "        \"type\": \"array\","]
23293    #[doc = "        \"items\": {"]
23294    #[doc = "          \"$ref\": \"#/components/schemas/ShardId\""]
23295    #[doc = "        }"]
23296    #[doc = "      }"]
23297    #[doc = "    },"]
23298    #[doc = "    \"to_parent_shard_map\": {"]
23299    #[doc = "      \"description\": \"Maps shard in this shard layout to their parent shard\\n Since shard_ids always range from 0 to num_shards - 1, we use vec instead of a hashmap\","]
23300    #[doc = "      \"type\": ["]
23301    #[doc = "        \"array\","]
23302    #[doc = "        \"null\""]
23303    #[doc = "      ],"]
23304    #[doc = "      \"items\": {"]
23305    #[doc = "        \"$ref\": \"#/components/schemas/ShardId\""]
23306    #[doc = "      }"]
23307    #[doc = "    },"]
23308    #[doc = "    \"version\": {"]
23309    #[doc = "      \"description\": \"Version of the shard layout, this is useful for uniquely identify the shard layout\","]
23310    #[doc = "      \"type\": \"integer\","]
23311    #[doc = "      \"format\": \"uint32\","]
23312    #[doc = "      \"minimum\": 0.0"]
23313    #[doc = "    }"]
23314    #[doc = "  }"]
23315    #[doc = "}"]
23316    #[doc = r" ```"]
23317    #[doc = r" </details>"]
23318    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
23319    pub struct ShardLayoutV1 {
23320        #[doc = "The boundary accounts are the accounts on boundaries between shards.\n Each shard contains a range of accounts from one boundary account to\n another - or the smallest or largest account possible. The total\n number of shards is equal to the number of boundary accounts plus 1."]
23321        pub boundary_accounts: ::std::vec::Vec<AccountId>,
23322        #[doc = "Maps shards from the last shard layout to shards that it splits to in this shard layout,\n Useful for constructing states for the shards.\n None for the genesis shard layout"]
23323        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
23324        pub shards_split_map: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<ShardId>>>,
23325        #[doc = "Maps shard in this shard layout to their parent shard\n Since shard_ids always range from 0 to num_shards - 1, we use vec instead of a hashmap"]
23326        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
23327        pub to_parent_shard_map: ::std::option::Option<::std::vec::Vec<ShardId>>,
23328        #[doc = "Version of the shard layout, this is useful for uniquely identify the shard layout"]
23329        pub version: u32,
23330    }
23331    impl ::std::convert::From<&ShardLayoutV1> for ShardLayoutV1 {
23332        fn from(value: &ShardLayoutV1) -> Self {
23333            value.clone()
23334        }
23335    }
23336    #[doc = "Counterpart to `ShardLayoutV2` composed of maps with string keys to aid\n serde serialization."]
23337    #[doc = r""]
23338    #[doc = r" <details><summary>JSON schema</summary>"]
23339    #[doc = r""]
23340    #[doc = r" ```json"]
23341    #[doc = "{"]
23342    #[doc = "  \"description\": \"Counterpart to `ShardLayoutV2` composed of maps with string keys to aid\\n serde serialization.\","]
23343    #[doc = "  \"type\": \"object\","]
23344    #[doc = "  \"required\": ["]
23345    #[doc = "    \"boundary_accounts\","]
23346    #[doc = "    \"id_to_index_map\","]
23347    #[doc = "    \"index_to_id_map\","]
23348    #[doc = "    \"shard_ids\","]
23349    #[doc = "    \"version\""]
23350    #[doc = "  ],"]
23351    #[doc = "  \"properties\": {"]
23352    #[doc = "    \"boundary_accounts\": {"]
23353    #[doc = "      \"type\": \"array\","]
23354    #[doc = "      \"items\": {"]
23355    #[doc = "        \"$ref\": \"#/components/schemas/AccountId\""]
23356    #[doc = "      }"]
23357    #[doc = "    },"]
23358    #[doc = "    \"id_to_index_map\": {"]
23359    #[doc = "      \"type\": \"object\","]
23360    #[doc = "      \"additionalProperties\": {"]
23361    #[doc = "        \"type\": \"integer\","]
23362    #[doc = "        \"format\": \"uint\","]
23363    #[doc = "        \"minimum\": 0.0"]
23364    #[doc = "      }"]
23365    #[doc = "    },"]
23366    #[doc = "    \"index_to_id_map\": {"]
23367    #[doc = "      \"type\": \"object\","]
23368    #[doc = "      \"additionalProperties\": {"]
23369    #[doc = "        \"$ref\": \"#/components/schemas/ShardId\""]
23370    #[doc = "      }"]
23371    #[doc = "    },"]
23372    #[doc = "    \"shard_ids\": {"]
23373    #[doc = "      \"type\": \"array\","]
23374    #[doc = "      \"items\": {"]
23375    #[doc = "        \"$ref\": \"#/components/schemas/ShardId\""]
23376    #[doc = "      }"]
23377    #[doc = "    },"]
23378    #[doc = "    \"shards_parent_map\": {"]
23379    #[doc = "      \"type\": ["]
23380    #[doc = "        \"object\","]
23381    #[doc = "        \"null\""]
23382    #[doc = "      ],"]
23383    #[doc = "      \"additionalProperties\": {"]
23384    #[doc = "        \"$ref\": \"#/components/schemas/ShardId\""]
23385    #[doc = "      }"]
23386    #[doc = "    },"]
23387    #[doc = "    \"shards_split_map\": {"]
23388    #[doc = "      \"type\": ["]
23389    #[doc = "        \"object\","]
23390    #[doc = "        \"null\""]
23391    #[doc = "      ],"]
23392    #[doc = "      \"additionalProperties\": {"]
23393    #[doc = "        \"type\": \"array\","]
23394    #[doc = "        \"items\": {"]
23395    #[doc = "          \"$ref\": \"#/components/schemas/ShardId\""]
23396    #[doc = "        }"]
23397    #[doc = "      }"]
23398    #[doc = "    },"]
23399    #[doc = "    \"version\": {"]
23400    #[doc = "      \"type\": \"integer\","]
23401    #[doc = "      \"format\": \"uint32\","]
23402    #[doc = "      \"minimum\": 0.0"]
23403    #[doc = "    }"]
23404    #[doc = "  }"]
23405    #[doc = "}"]
23406    #[doc = r" ```"]
23407    #[doc = r" </details>"]
23408    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
23409    pub struct ShardLayoutV2 {
23410        pub boundary_accounts: ::std::vec::Vec<AccountId>,
23411        pub id_to_index_map: ::std::collections::HashMap<::std::string::String, u32>,
23412        pub index_to_id_map: ::std::collections::HashMap<::std::string::String, ShardId>,
23413        pub shard_ids: ::std::vec::Vec<ShardId>,
23414        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
23415        pub shards_parent_map:
23416            ::std::option::Option<::std::collections::HashMap<::std::string::String, ShardId>>,
23417        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
23418        pub shards_split_map: ::std::option::Option<
23419            ::std::collections::HashMap<::std::string::String, ::std::vec::Vec<ShardId>>,
23420        >,
23421        pub version: u32,
23422    }
23423    impl ::std::convert::From<&ShardLayoutV2> for ShardLayoutV2 {
23424        fn from(value: &ShardLayoutV2) -> Self {
23425            value.clone()
23426        }
23427    }
23428    #[doc = "`ShardUId` is a unique representation for shards from different shard layouts.\n\n Comparing to `ShardId`, which is just an ordinal number ranging from 0 to NUM_SHARDS-1,\n `ShardUId` provides a way to unique identify shards when shard layouts may change across epochs.\n This is important because we store states indexed by shards in our database, so we need a\n way to unique identify shard even when shards change across epochs.\n Another difference between `ShardUId` and `ShardId` is that `ShardUId` should only exist in\n a node's internal state while `ShardId` can be exposed to outside APIs and used in protocol\n level information (for example, `ShardChunkHeader` contains `ShardId` instead of `ShardUId`)"]
23429    #[doc = r""]
23430    #[doc = r" <details><summary>JSON schema</summary>"]
23431    #[doc = r""]
23432    #[doc = r" ```json"]
23433    #[doc = "{"]
23434    #[doc = "  \"description\": \"`ShardUId` is a unique representation for shards from different shard layouts.\\n\\n Comparing to `ShardId`, which is just an ordinal number ranging from 0 to NUM_SHARDS-1,\\n `ShardUId` provides a way to unique identify shards when shard layouts may change across epochs.\\n This is important because we store states indexed by shards in our database, so we need a\\n way to unique identify shard even when shards change across epochs.\\n Another difference between `ShardUId` and `ShardId` is that `ShardUId` should only exist in\\n a node's internal state while `ShardId` can be exposed to outside APIs and used in protocol\\n level information (for example, `ShardChunkHeader` contains `ShardId` instead of `ShardUId`)\","]
23435    #[doc = "  \"type\": \"object\","]
23436    #[doc = "  \"required\": ["]
23437    #[doc = "    \"shard_id\","]
23438    #[doc = "    \"version\""]
23439    #[doc = "  ],"]
23440    #[doc = "  \"properties\": {"]
23441    #[doc = "    \"shard_id\": {"]
23442    #[doc = "      \"type\": \"integer\","]
23443    #[doc = "      \"format\": \"uint32\","]
23444    #[doc = "      \"minimum\": 0.0"]
23445    #[doc = "    },"]
23446    #[doc = "    \"version\": {"]
23447    #[doc = "      \"type\": \"integer\","]
23448    #[doc = "      \"format\": \"uint32\","]
23449    #[doc = "      \"minimum\": 0.0"]
23450    #[doc = "    }"]
23451    #[doc = "  }"]
23452    #[doc = "}"]
23453    #[doc = r" ```"]
23454    #[doc = r" </details>"]
23455    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
23456    pub struct ShardUId {
23457        pub shard_id: u32,
23458        pub version: u32,
23459    }
23460    impl ::std::convert::From<&ShardUId> for ShardUId {
23461        fn from(value: &ShardUId) -> Self {
23462            value.clone()
23463        }
23464    }
23465    #[doc = "`Signature`"]
23466    #[doc = r""]
23467    #[doc = r" <details><summary>JSON schema</summary>"]
23468    #[doc = r""]
23469    #[doc = r" ```json"]
23470    #[doc = "{"]
23471    #[doc = "  \"type\": \"string\""]
23472    #[doc = "}"]
23473    #[doc = r" ```"]
23474    #[doc = r" </details>"]
23475    #[derive(
23476        :: serde :: Deserialize,
23477        :: serde :: Serialize,
23478        Clone,
23479        Debug,
23480        Eq,
23481        Hash,
23482        Ord,
23483        PartialEq,
23484        PartialOrd,
23485    )]
23486    #[serde(transparent)]
23487    pub struct Signature(pub ::std::string::String);
23488    impl ::std::ops::Deref for Signature {
23489        type Target = ::std::string::String;
23490        fn deref(&self) -> &::std::string::String {
23491            &self.0
23492        }
23493    }
23494    impl ::std::convert::From<Signature> for ::std::string::String {
23495        fn from(value: Signature) -> Self {
23496            value.0
23497        }
23498    }
23499    impl ::std::convert::From<&Signature> for Signature {
23500        fn from(value: &Signature) -> Self {
23501            value.clone()
23502        }
23503    }
23504    impl ::std::convert::From<::std::string::String> for Signature {
23505        fn from(value: ::std::string::String) -> Self {
23506            Self(value)
23507        }
23508    }
23509    impl ::std::str::FromStr for Signature {
23510        type Err = ::std::convert::Infallible;
23511        fn from_str(value: &str) -> ::std::result::Result<Self, Self::Err> {
23512            Ok(Self(value.to_string()))
23513        }
23514    }
23515    impl ::std::fmt::Display for Signature {
23516        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23517            self.0.fmt(f)
23518        }
23519    }
23520    #[doc = "`SignedDelegateAction`"]
23521    #[doc = r""]
23522    #[doc = r" <details><summary>JSON schema</summary>"]
23523    #[doc = r""]
23524    #[doc = r" ```json"]
23525    #[doc = "{"]
23526    #[doc = "  \"type\": \"object\","]
23527    #[doc = "  \"required\": ["]
23528    #[doc = "    \"delegate_action\","]
23529    #[doc = "    \"signature\""]
23530    #[doc = "  ],"]
23531    #[doc = "  \"properties\": {"]
23532    #[doc = "    \"delegate_action\": {"]
23533    #[doc = "      \"$ref\": \"#/components/schemas/DelegateAction\""]
23534    #[doc = "    },"]
23535    #[doc = "    \"signature\": {"]
23536    #[doc = "      \"$ref\": \"#/components/schemas/Signature\""]
23537    #[doc = "    }"]
23538    #[doc = "  }"]
23539    #[doc = "}"]
23540    #[doc = r" ```"]
23541    #[doc = r" </details>"]
23542    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
23543    pub struct SignedDelegateAction {
23544        pub delegate_action: DelegateAction,
23545        pub signature: Signature,
23546    }
23547    impl ::std::convert::From<&SignedDelegateAction> for SignedDelegateAction {
23548        fn from(value: &SignedDelegateAction) -> Self {
23549            value.clone()
23550        }
23551    }
23552    #[doc = "`SignedTransaction`"]
23553    #[doc = r""]
23554    #[doc = r" <details><summary>JSON schema</summary>"]
23555    #[doc = r""]
23556    #[doc = r" ```json"]
23557    #[doc = "{"]
23558    #[doc = "  \"type\": \"string\","]
23559    #[doc = "  \"format\": \"byte\""]
23560    #[doc = "}"]
23561    #[doc = r" ```"]
23562    #[doc = r" </details>"]
23563    #[derive(
23564        :: serde :: Deserialize,
23565        :: serde :: Serialize,
23566        Clone,
23567        Debug,
23568        Eq,
23569        Hash,
23570        Ord,
23571        PartialEq,
23572        PartialOrd,
23573    )]
23574    #[serde(transparent)]
23575    pub struct SignedTransaction(pub ::std::string::String);
23576    impl ::std::ops::Deref for SignedTransaction {
23577        type Target = ::std::string::String;
23578        fn deref(&self) -> &::std::string::String {
23579            &self.0
23580        }
23581    }
23582    impl ::std::convert::From<SignedTransaction> for ::std::string::String {
23583        fn from(value: SignedTransaction) -> Self {
23584            value.0
23585        }
23586    }
23587    impl ::std::convert::From<&SignedTransaction> for SignedTransaction {
23588        fn from(value: &SignedTransaction) -> Self {
23589            value.clone()
23590        }
23591    }
23592    impl ::std::convert::From<::std::string::String> for SignedTransaction {
23593        fn from(value: ::std::string::String) -> Self {
23594            Self(value)
23595        }
23596    }
23597    impl ::std::str::FromStr for SignedTransaction {
23598        type Err = ::std::convert::Infallible;
23599        fn from_str(value: &str) -> ::std::result::Result<Self, Self::Err> {
23600            Ok(Self(value.to_string()))
23601        }
23602    }
23603    impl ::std::fmt::Display for SignedTransaction {
23604        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23605            self.0.fmt(f)
23606        }
23607    }
23608    #[doc = "`SignedTransactionView`"]
23609    #[doc = r""]
23610    #[doc = r" <details><summary>JSON schema</summary>"]
23611    #[doc = r""]
23612    #[doc = r" ```json"]
23613    #[doc = "{"]
23614    #[doc = "  \"type\": \"object\","]
23615    #[doc = "  \"required\": ["]
23616    #[doc = "    \"actions\","]
23617    #[doc = "    \"hash\","]
23618    #[doc = "    \"nonce\","]
23619    #[doc = "    \"public_key\","]
23620    #[doc = "    \"receiver_id\","]
23621    #[doc = "    \"signature\","]
23622    #[doc = "    \"signer_id\""]
23623    #[doc = "  ],"]
23624    #[doc = "  \"properties\": {"]
23625    #[doc = "    \"actions\": {"]
23626    #[doc = "      \"type\": \"array\","]
23627    #[doc = "      \"items\": {"]
23628    #[doc = "        \"$ref\": \"#/components/schemas/ActionView\""]
23629    #[doc = "      }"]
23630    #[doc = "    },"]
23631    #[doc = "    \"hash\": {"]
23632    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
23633    #[doc = "    },"]
23634    #[doc = "    \"nonce\": {"]
23635    #[doc = "      \"type\": \"integer\","]
23636    #[doc = "      \"format\": \"uint64\","]
23637    #[doc = "      \"minimum\": 0.0"]
23638    #[doc = "    },"]
23639    #[doc = "    \"priority_fee\": {"]
23640    #[doc = "      \"default\": 0,"]
23641    #[doc = "      \"type\": \"integer\","]
23642    #[doc = "      \"format\": \"uint64\","]
23643    #[doc = "      \"minimum\": 0.0"]
23644    #[doc = "    },"]
23645    #[doc = "    \"public_key\": {"]
23646    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
23647    #[doc = "    },"]
23648    #[doc = "    \"receiver_id\": {"]
23649    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
23650    #[doc = "    },"]
23651    #[doc = "    \"signature\": {"]
23652    #[doc = "      \"$ref\": \"#/components/schemas/Signature\""]
23653    #[doc = "    },"]
23654    #[doc = "    \"signer_id\": {"]
23655    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
23656    #[doc = "    }"]
23657    #[doc = "  }"]
23658    #[doc = "}"]
23659    #[doc = r" ```"]
23660    #[doc = r" </details>"]
23661    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
23662    pub struct SignedTransactionView {
23663        pub actions: ::std::vec::Vec<ActionView>,
23664        pub hash: CryptoHash,
23665        pub nonce: u64,
23666        #[serde(default)]
23667        pub priority_fee: u64,
23668        pub public_key: PublicKey,
23669        pub receiver_id: AccountId,
23670        pub signature: Signature,
23671        pub signer_id: AccountId,
23672    }
23673    impl ::std::convert::From<&SignedTransactionView> for SignedTransactionView {
23674        fn from(value: &SignedTransactionView) -> Self {
23675            value.clone()
23676        }
23677    }
23678    #[doc = "`SlashedValidator`"]
23679    #[doc = r""]
23680    #[doc = r" <details><summary>JSON schema</summary>"]
23681    #[doc = r""]
23682    #[doc = r" ```json"]
23683    #[doc = "{"]
23684    #[doc = "  \"type\": \"object\","]
23685    #[doc = "  \"required\": ["]
23686    #[doc = "    \"account_id\","]
23687    #[doc = "    \"is_double_sign\""]
23688    #[doc = "  ],"]
23689    #[doc = "  \"properties\": {"]
23690    #[doc = "    \"account_id\": {"]
23691    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
23692    #[doc = "    },"]
23693    #[doc = "    \"is_double_sign\": {"]
23694    #[doc = "      \"type\": \"boolean\""]
23695    #[doc = "    }"]
23696    #[doc = "  }"]
23697    #[doc = "}"]
23698    #[doc = r" ```"]
23699    #[doc = r" </details>"]
23700    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
23701    pub struct SlashedValidator {
23702        pub account_id: AccountId,
23703        pub is_double_sign: bool,
23704    }
23705    impl ::std::convert::From<&SlashedValidator> for SlashedValidator {
23706        fn from(value: &SlashedValidator) -> Self {
23707            value.clone()
23708        }
23709    }
23710    #[doc = "An action which stakes signer_id tokens and setup's validator public key"]
23711    #[doc = r""]
23712    #[doc = r" <details><summary>JSON schema</summary>"]
23713    #[doc = r""]
23714    #[doc = r" ```json"]
23715    #[doc = "{"]
23716    #[doc = "  \"description\": \"An action which stakes signer_id tokens and setup's validator public key\","]
23717    #[doc = "  \"type\": \"object\","]
23718    #[doc = "  \"required\": ["]
23719    #[doc = "    \"public_key\","]
23720    #[doc = "    \"stake\""]
23721    #[doc = "  ],"]
23722    #[doc = "  \"properties\": {"]
23723    #[doc = "    \"public_key\": {"]
23724    #[doc = "      \"description\": \"Validator key which will be used to sign transactions on behalf of signer_id\","]
23725    #[doc = "      \"allOf\": ["]
23726    #[doc = "        {"]
23727    #[doc = "          \"$ref\": \"#/components/schemas/PublicKey\""]
23728    #[doc = "        }"]
23729    #[doc = "      ]"]
23730    #[doc = "    },"]
23731    #[doc = "    \"stake\": {"]
23732    #[doc = "      \"description\": \"Amount of tokens to stake.\","]
23733    #[doc = "      \"type\": \"string\""]
23734    #[doc = "    }"]
23735    #[doc = "  }"]
23736    #[doc = "}"]
23737    #[doc = r" ```"]
23738    #[doc = r" </details>"]
23739    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
23740    pub struct StakeAction {
23741        #[doc = "Validator key which will be used to sign transactions on behalf of signer_id"]
23742        pub public_key: PublicKey,
23743        #[doc = "Amount of tokens to stake."]
23744        pub stake: ::std::string::String,
23745    }
23746    impl ::std::convert::From<&StakeAction> for StakeAction {
23747        fn from(value: &StakeAction) -> Self {
23748            value.clone()
23749        }
23750    }
23751    #[doc = "See crate::types::StateChangeCause for details."]
23752    #[doc = r""]
23753    #[doc = r" <details><summary>JSON schema</summary>"]
23754    #[doc = r""]
23755    #[doc = r" ```json"]
23756    #[doc = "{"]
23757    #[doc = "  \"description\": \"See crate::types::StateChangeCause for details.\","]
23758    #[doc = "  \"oneOf\": ["]
23759    #[doc = "    {"]
23760    #[doc = "      \"type\": \"object\","]
23761    #[doc = "      \"required\": ["]
23762    #[doc = "        \"type\""]
23763    #[doc = "      ],"]
23764    #[doc = "      \"properties\": {"]
23765    #[doc = "        \"type\": {"]
23766    #[doc = "          \"type\": \"string\","]
23767    #[doc = "          \"enum\": ["]
23768    #[doc = "            \"not_writable_to_disk\""]
23769    #[doc = "          ]"]
23770    #[doc = "        }"]
23771    #[doc = "      }"]
23772    #[doc = "    },"]
23773    #[doc = "    {"]
23774    #[doc = "      \"type\": \"object\","]
23775    #[doc = "      \"required\": ["]
23776    #[doc = "        \"type\""]
23777    #[doc = "      ],"]
23778    #[doc = "      \"properties\": {"]
23779    #[doc = "        \"type\": {"]
23780    #[doc = "          \"type\": \"string\","]
23781    #[doc = "          \"enum\": ["]
23782    #[doc = "            \"initial_state\""]
23783    #[doc = "          ]"]
23784    #[doc = "        }"]
23785    #[doc = "      }"]
23786    #[doc = "    },"]
23787    #[doc = "    {"]
23788    #[doc = "      \"type\": \"object\","]
23789    #[doc = "      \"required\": ["]
23790    #[doc = "        \"tx_hash\","]
23791    #[doc = "        \"type\""]
23792    #[doc = "      ],"]
23793    #[doc = "      \"properties\": {"]
23794    #[doc = "        \"tx_hash\": {"]
23795    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
23796    #[doc = "        },"]
23797    #[doc = "        \"type\": {"]
23798    #[doc = "          \"type\": \"string\","]
23799    #[doc = "          \"enum\": ["]
23800    #[doc = "            \"transaction_processing\""]
23801    #[doc = "          ]"]
23802    #[doc = "        }"]
23803    #[doc = "      }"]
23804    #[doc = "    },"]
23805    #[doc = "    {"]
23806    #[doc = "      \"type\": \"object\","]
23807    #[doc = "      \"required\": ["]
23808    #[doc = "        \"receipt_hash\","]
23809    #[doc = "        \"type\""]
23810    #[doc = "      ],"]
23811    #[doc = "      \"properties\": {"]
23812    #[doc = "        \"receipt_hash\": {"]
23813    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
23814    #[doc = "        },"]
23815    #[doc = "        \"type\": {"]
23816    #[doc = "          \"type\": \"string\","]
23817    #[doc = "          \"enum\": ["]
23818    #[doc = "            \"action_receipt_processing_started\""]
23819    #[doc = "          ]"]
23820    #[doc = "        }"]
23821    #[doc = "      }"]
23822    #[doc = "    },"]
23823    #[doc = "    {"]
23824    #[doc = "      \"type\": \"object\","]
23825    #[doc = "      \"required\": ["]
23826    #[doc = "        \"receipt_hash\","]
23827    #[doc = "        \"type\""]
23828    #[doc = "      ],"]
23829    #[doc = "      \"properties\": {"]
23830    #[doc = "        \"receipt_hash\": {"]
23831    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
23832    #[doc = "        },"]
23833    #[doc = "        \"type\": {"]
23834    #[doc = "          \"type\": \"string\","]
23835    #[doc = "          \"enum\": ["]
23836    #[doc = "            \"action_receipt_gas_reward\""]
23837    #[doc = "          ]"]
23838    #[doc = "        }"]
23839    #[doc = "      }"]
23840    #[doc = "    },"]
23841    #[doc = "    {"]
23842    #[doc = "      \"type\": \"object\","]
23843    #[doc = "      \"required\": ["]
23844    #[doc = "        \"receipt_hash\","]
23845    #[doc = "        \"type\""]
23846    #[doc = "      ],"]
23847    #[doc = "      \"properties\": {"]
23848    #[doc = "        \"receipt_hash\": {"]
23849    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
23850    #[doc = "        },"]
23851    #[doc = "        \"type\": {"]
23852    #[doc = "          \"type\": \"string\","]
23853    #[doc = "          \"enum\": ["]
23854    #[doc = "            \"receipt_processing\""]
23855    #[doc = "          ]"]
23856    #[doc = "        }"]
23857    #[doc = "      }"]
23858    #[doc = "    },"]
23859    #[doc = "    {"]
23860    #[doc = "      \"type\": \"object\","]
23861    #[doc = "      \"required\": ["]
23862    #[doc = "        \"receipt_hash\","]
23863    #[doc = "        \"type\""]
23864    #[doc = "      ],"]
23865    #[doc = "      \"properties\": {"]
23866    #[doc = "        \"receipt_hash\": {"]
23867    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
23868    #[doc = "        },"]
23869    #[doc = "        \"type\": {"]
23870    #[doc = "          \"type\": \"string\","]
23871    #[doc = "          \"enum\": ["]
23872    #[doc = "            \"postponed_receipt\""]
23873    #[doc = "          ]"]
23874    #[doc = "        }"]
23875    #[doc = "      }"]
23876    #[doc = "    },"]
23877    #[doc = "    {"]
23878    #[doc = "      \"type\": \"object\","]
23879    #[doc = "      \"required\": ["]
23880    #[doc = "        \"type\""]
23881    #[doc = "      ],"]
23882    #[doc = "      \"properties\": {"]
23883    #[doc = "        \"type\": {"]
23884    #[doc = "          \"type\": \"string\","]
23885    #[doc = "          \"enum\": ["]
23886    #[doc = "            \"updated_delayed_receipts\""]
23887    #[doc = "          ]"]
23888    #[doc = "        }"]
23889    #[doc = "      }"]
23890    #[doc = "    },"]
23891    #[doc = "    {"]
23892    #[doc = "      \"type\": \"object\","]
23893    #[doc = "      \"required\": ["]
23894    #[doc = "        \"type\""]
23895    #[doc = "      ],"]
23896    #[doc = "      \"properties\": {"]
23897    #[doc = "        \"type\": {"]
23898    #[doc = "          \"type\": \"string\","]
23899    #[doc = "          \"enum\": ["]
23900    #[doc = "            \"validator_accounts_update\""]
23901    #[doc = "          ]"]
23902    #[doc = "        }"]
23903    #[doc = "      }"]
23904    #[doc = "    },"]
23905    #[doc = "    {"]
23906    #[doc = "      \"type\": \"object\","]
23907    #[doc = "      \"required\": ["]
23908    #[doc = "        \"type\""]
23909    #[doc = "      ],"]
23910    #[doc = "      \"properties\": {"]
23911    #[doc = "        \"type\": {"]
23912    #[doc = "          \"type\": \"string\","]
23913    #[doc = "          \"enum\": ["]
23914    #[doc = "            \"migration\""]
23915    #[doc = "          ]"]
23916    #[doc = "        }"]
23917    #[doc = "      }"]
23918    #[doc = "    },"]
23919    #[doc = "    {"]
23920    #[doc = "      \"type\": \"object\","]
23921    #[doc = "      \"required\": ["]
23922    #[doc = "        \"type\""]
23923    #[doc = "      ],"]
23924    #[doc = "      \"properties\": {"]
23925    #[doc = "        \"type\": {"]
23926    #[doc = "          \"type\": \"string\","]
23927    #[doc = "          \"enum\": ["]
23928    #[doc = "            \"bandwidth_scheduler_state_update\""]
23929    #[doc = "          ]"]
23930    #[doc = "        }"]
23931    #[doc = "      }"]
23932    #[doc = "    }"]
23933    #[doc = "  ]"]
23934    #[doc = "}"]
23935    #[doc = r" ```"]
23936    #[doc = r" </details>"]
23937    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
23938    #[serde(tag = "type")]
23939    pub enum StateChangeCauseView {
23940        #[serde(rename = "not_writable_to_disk")]
23941        NotWritableToDisk,
23942        #[serde(rename = "initial_state")]
23943        InitialState,
23944        #[serde(rename = "transaction_processing")]
23945        TransactionProcessing { tx_hash: CryptoHash },
23946        #[serde(rename = "action_receipt_processing_started")]
23947        ActionReceiptProcessingStarted { receipt_hash: CryptoHash },
23948        #[serde(rename = "action_receipt_gas_reward")]
23949        ActionReceiptGasReward { receipt_hash: CryptoHash },
23950        #[serde(rename = "receipt_processing")]
23951        ReceiptProcessing { receipt_hash: CryptoHash },
23952        #[serde(rename = "postponed_receipt")]
23953        PostponedReceipt { receipt_hash: CryptoHash },
23954        #[serde(rename = "updated_delayed_receipts")]
23955        UpdatedDelayedReceipts,
23956        #[serde(rename = "validator_accounts_update")]
23957        ValidatorAccountsUpdate,
23958        #[serde(rename = "migration")]
23959        Migration,
23960        #[serde(rename = "bandwidth_scheduler_state_update")]
23961        BandwidthSchedulerStateUpdate,
23962    }
23963    impl ::std::convert::From<&Self> for StateChangeCauseView {
23964        fn from(value: &StateChangeCauseView) -> Self {
23965            value.clone()
23966        }
23967    }
23968    #[doc = "It is a [serializable view] of [`StateChangeKind`].\n\n [serializable view]: ./index.html\n [`StateChangeKind`]: ../types/struct.StateChangeKind.html"]
23969    #[doc = r""]
23970    #[doc = r" <details><summary>JSON schema</summary>"]
23971    #[doc = r""]
23972    #[doc = r" ```json"]
23973    #[doc = "{"]
23974    #[doc = "  \"description\": \"It is a [serializable view] of [`StateChangeKind`].\\n\\n [serializable view]: ./index.html\\n [`StateChangeKind`]: ../types/struct.StateChangeKind.html\","]
23975    #[doc = "  \"oneOf\": ["]
23976    #[doc = "    {"]
23977    #[doc = "      \"type\": \"object\","]
23978    #[doc = "      \"required\": ["]
23979    #[doc = "        \"account_id\","]
23980    #[doc = "        \"type\""]
23981    #[doc = "      ],"]
23982    #[doc = "      \"properties\": {"]
23983    #[doc = "        \"account_id\": {"]
23984    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
23985    #[doc = "        },"]
23986    #[doc = "        \"type\": {"]
23987    #[doc = "          \"type\": \"string\","]
23988    #[doc = "          \"enum\": ["]
23989    #[doc = "            \"account_touched\""]
23990    #[doc = "          ]"]
23991    #[doc = "        }"]
23992    #[doc = "      }"]
23993    #[doc = "    },"]
23994    #[doc = "    {"]
23995    #[doc = "      \"type\": \"object\","]
23996    #[doc = "      \"required\": ["]
23997    #[doc = "        \"account_id\","]
23998    #[doc = "        \"type\""]
23999    #[doc = "      ],"]
24000    #[doc = "      \"properties\": {"]
24001    #[doc = "        \"account_id\": {"]
24002    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
24003    #[doc = "        },"]
24004    #[doc = "        \"type\": {"]
24005    #[doc = "          \"type\": \"string\","]
24006    #[doc = "          \"enum\": ["]
24007    #[doc = "            \"access_key_touched\""]
24008    #[doc = "          ]"]
24009    #[doc = "        }"]
24010    #[doc = "      }"]
24011    #[doc = "    },"]
24012    #[doc = "    {"]
24013    #[doc = "      \"type\": \"object\","]
24014    #[doc = "      \"required\": ["]
24015    #[doc = "        \"account_id\","]
24016    #[doc = "        \"type\""]
24017    #[doc = "      ],"]
24018    #[doc = "      \"properties\": {"]
24019    #[doc = "        \"account_id\": {"]
24020    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
24021    #[doc = "        },"]
24022    #[doc = "        \"type\": {"]
24023    #[doc = "          \"type\": \"string\","]
24024    #[doc = "          \"enum\": ["]
24025    #[doc = "            \"data_touched\""]
24026    #[doc = "          ]"]
24027    #[doc = "        }"]
24028    #[doc = "      }"]
24029    #[doc = "    },"]
24030    #[doc = "    {"]
24031    #[doc = "      \"type\": \"object\","]
24032    #[doc = "      \"required\": ["]
24033    #[doc = "        \"account_id\","]
24034    #[doc = "        \"type\""]
24035    #[doc = "      ],"]
24036    #[doc = "      \"properties\": {"]
24037    #[doc = "        \"account_id\": {"]
24038    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
24039    #[doc = "        },"]
24040    #[doc = "        \"type\": {"]
24041    #[doc = "          \"type\": \"string\","]
24042    #[doc = "          \"enum\": ["]
24043    #[doc = "            \"contract_code_touched\""]
24044    #[doc = "          ]"]
24045    #[doc = "        }"]
24046    #[doc = "      }"]
24047    #[doc = "    }"]
24048    #[doc = "  ]"]
24049    #[doc = "}"]
24050    #[doc = r" ```"]
24051    #[doc = r" </details>"]
24052    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24053    #[serde(tag = "type", content = "account_id")]
24054    pub enum StateChangeKindView {
24055        #[serde(rename = "account_touched")]
24056        AccountTouched(AccountId),
24057        #[serde(rename = "access_key_touched")]
24058        AccessKeyTouched(AccountId),
24059        #[serde(rename = "data_touched")]
24060        DataTouched(AccountId),
24061        #[serde(rename = "contract_code_touched")]
24062        ContractCodeTouched(AccountId),
24063    }
24064    impl ::std::convert::From<&Self> for StateChangeKindView {
24065        fn from(value: &StateChangeKindView) -> Self {
24066            value.clone()
24067        }
24068    }
24069    #[doc = "`StateChangeValueViewContent`"]
24070    #[doc = r""]
24071    #[doc = r" <details><summary>JSON schema</summary>"]
24072    #[doc = r""]
24073    #[doc = r" ```json"]
24074    #[doc = "{"]
24075    #[doc = "  \"anyOf\": ["]
24076    #[doc = "    {"]
24077    #[doc = "      \"description\": \"A view of the account\","]
24078    #[doc = "      \"type\": \"object\","]
24079    #[doc = "      \"required\": ["]
24080    #[doc = "        \"account_id\","]
24081    #[doc = "        \"amount\","]
24082    #[doc = "        \"code_hash\","]
24083    #[doc = "        \"locked\","]
24084    #[doc = "        \"storage_usage\""]
24085    #[doc = "      ],"]
24086    #[doc = "      \"properties\": {"]
24087    #[doc = "        \"account_id\": {"]
24088    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
24089    #[doc = "        },"]
24090    #[doc = "        \"amount\": {"]
24091    #[doc = "          \"type\": \"string\""]
24092    #[doc = "        },"]
24093    #[doc = "        \"code_hash\": {"]
24094    #[doc = "          \"$ref\": \"#/components/schemas/CryptoHash\""]
24095    #[doc = "        },"]
24096    #[doc = "        \"global_contract_account_id\": {"]
24097    #[doc = "          \"oneOf\": ["]
24098    #[doc = "            {"]
24099    #[doc = "              \"type\": \"null\""]
24100    #[doc = "            },"]
24101    #[doc = "            {"]
24102    #[doc = "              \"allOf\": ["]
24103    #[doc = "                {"]
24104    #[doc = "                  \"$ref\": \"#/components/schemas/AccountId\""]
24105    #[doc = "                }"]
24106    #[doc = "              ]"]
24107    #[doc = "            }"]
24108    #[doc = "          ]"]
24109    #[doc = "        },"]
24110    #[doc = "        \"global_contract_hash\": {"]
24111    #[doc = "          \"oneOf\": ["]
24112    #[doc = "            {"]
24113    #[doc = "              \"type\": \"null\""]
24114    #[doc = "            },"]
24115    #[doc = "            {"]
24116    #[doc = "              \"allOf\": ["]
24117    #[doc = "                {"]
24118    #[doc = "                  \"$ref\": \"#/components/schemas/CryptoHash\""]
24119    #[doc = "                }"]
24120    #[doc = "              ]"]
24121    #[doc = "            }"]
24122    #[doc = "          ]"]
24123    #[doc = "        },"]
24124    #[doc = "        \"locked\": {"]
24125    #[doc = "          \"type\": \"string\""]
24126    #[doc = "        },"]
24127    #[doc = "        \"storage_paid_at\": {"]
24128    #[doc = "          \"description\": \"TODO(2271): deprecated.\","]
24129    #[doc = "          \"default\": 0,"]
24130    #[doc = "          \"type\": \"integer\","]
24131    #[doc = "          \"format\": \"uint64\","]
24132    #[doc = "          \"minimum\": 0.0"]
24133    #[doc = "        },"]
24134    #[doc = "        \"storage_usage\": {"]
24135    #[doc = "          \"type\": \"integer\","]
24136    #[doc = "          \"format\": \"uint64\","]
24137    #[doc = "          \"minimum\": 0.0"]
24138    #[doc = "        }"]
24139    #[doc = "      }"]
24140    #[doc = "    },"]
24141    #[doc = "    {"]
24142    #[doc = "      \"type\": \"object\","]
24143    #[doc = "      \"required\": ["]
24144    #[doc = "        \"account_id\""]
24145    #[doc = "      ],"]
24146    #[doc = "      \"properties\": {"]
24147    #[doc = "        \"account_id\": {"]
24148    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
24149    #[doc = "        }"]
24150    #[doc = "      }"]
24151    #[doc = "    },"]
24152    #[doc = "    {"]
24153    #[doc = "      \"type\": \"object\","]
24154    #[doc = "      \"required\": ["]
24155    #[doc = "        \"access_key\","]
24156    #[doc = "        \"account_id\","]
24157    #[doc = "        \"public_key\""]
24158    #[doc = "      ],"]
24159    #[doc = "      \"properties\": {"]
24160    #[doc = "        \"access_key\": {"]
24161    #[doc = "          \"$ref\": \"#/components/schemas/AccessKeyView\""]
24162    #[doc = "        },"]
24163    #[doc = "        \"account_id\": {"]
24164    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
24165    #[doc = "        },"]
24166    #[doc = "        \"public_key\": {"]
24167    #[doc = "          \"$ref\": \"#/components/schemas/PublicKey\""]
24168    #[doc = "        }"]
24169    #[doc = "      }"]
24170    #[doc = "    },"]
24171    #[doc = "    {"]
24172    #[doc = "      \"type\": \"object\","]
24173    #[doc = "      \"required\": ["]
24174    #[doc = "        \"account_id\","]
24175    #[doc = "        \"public_key\""]
24176    #[doc = "      ],"]
24177    #[doc = "      \"properties\": {"]
24178    #[doc = "        \"account_id\": {"]
24179    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
24180    #[doc = "        },"]
24181    #[doc = "        \"public_key\": {"]
24182    #[doc = "          \"$ref\": \"#/components/schemas/PublicKey\""]
24183    #[doc = "        }"]
24184    #[doc = "      }"]
24185    #[doc = "    },"]
24186    #[doc = "    {"]
24187    #[doc = "      \"type\": \"object\","]
24188    #[doc = "      \"required\": ["]
24189    #[doc = "        \"account_id\","]
24190    #[doc = "        \"key_base64\","]
24191    #[doc = "        \"value_base64\""]
24192    #[doc = "      ],"]
24193    #[doc = "      \"properties\": {"]
24194    #[doc = "        \"account_id\": {"]
24195    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
24196    #[doc = "        },"]
24197    #[doc = "        \"key_base64\": {"]
24198    #[doc = "          \"type\": \"string\","]
24199    #[doc = "          \"format\": \"bytes\""]
24200    #[doc = "        },"]
24201    #[doc = "        \"value_base64\": {"]
24202    #[doc = "          \"type\": \"string\","]
24203    #[doc = "          \"format\": \"bytes\""]
24204    #[doc = "        }"]
24205    #[doc = "      }"]
24206    #[doc = "    },"]
24207    #[doc = "    {"]
24208    #[doc = "      \"type\": \"object\","]
24209    #[doc = "      \"required\": ["]
24210    #[doc = "        \"account_id\","]
24211    #[doc = "        \"key_base64\""]
24212    #[doc = "      ],"]
24213    #[doc = "      \"properties\": {"]
24214    #[doc = "        \"account_id\": {"]
24215    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
24216    #[doc = "        },"]
24217    #[doc = "        \"key_base64\": {"]
24218    #[doc = "          \"type\": \"string\","]
24219    #[doc = "          \"format\": \"bytes\""]
24220    #[doc = "        }"]
24221    #[doc = "      }"]
24222    #[doc = "    },"]
24223    #[doc = "    {"]
24224    #[doc = "      \"type\": \"object\","]
24225    #[doc = "      \"required\": ["]
24226    #[doc = "        \"account_id\","]
24227    #[doc = "        \"code_base64\""]
24228    #[doc = "      ],"]
24229    #[doc = "      \"properties\": {"]
24230    #[doc = "        \"account_id\": {"]
24231    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
24232    #[doc = "        },"]
24233    #[doc = "        \"code_base64\": {"]
24234    #[doc = "          \"type\": \"string\""]
24235    #[doc = "        }"]
24236    #[doc = "      }"]
24237    #[doc = "    },"]
24238    #[doc = "    {"]
24239    #[doc = "      \"type\": \"object\","]
24240    #[doc = "      \"required\": ["]
24241    #[doc = "        \"account_id\""]
24242    #[doc = "      ],"]
24243    #[doc = "      \"properties\": {"]
24244    #[doc = "        \"account_id\": {"]
24245    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
24246    #[doc = "        }"]
24247    #[doc = "      }"]
24248    #[doc = "    }"]
24249    #[doc = "  ]"]
24250    #[doc = "}"]
24251    #[doc = r" ```"]
24252    #[doc = r" </details>"]
24253    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24254    pub struct StateChangeValueViewContent {
24255        #[serde(
24256            flatten,
24257            default,
24258            skip_serializing_if = "::std::option::Option::is_none"
24259        )]
24260        pub subtype_0: ::std::option::Option<StateChangeValueViewContentSubtype0>,
24261        #[serde(
24262            flatten,
24263            default,
24264            skip_serializing_if = "::std::option::Option::is_none"
24265        )]
24266        pub subtype_1: ::std::option::Option<StateChangeValueViewContentSubtype1>,
24267        #[serde(
24268            flatten,
24269            default,
24270            skip_serializing_if = "::std::option::Option::is_none"
24271        )]
24272        pub subtype_2: ::std::option::Option<StateChangeValueViewContentSubtype2>,
24273        #[serde(
24274            flatten,
24275            default,
24276            skip_serializing_if = "::std::option::Option::is_none"
24277        )]
24278        pub subtype_3: ::std::option::Option<StateChangeValueViewContentSubtype3>,
24279        #[serde(
24280            flatten,
24281            default,
24282            skip_serializing_if = "::std::option::Option::is_none"
24283        )]
24284        pub subtype_4: ::std::option::Option<StateChangeValueViewContentSubtype4>,
24285        #[serde(
24286            flatten,
24287            default,
24288            skip_serializing_if = "::std::option::Option::is_none"
24289        )]
24290        pub subtype_5: ::std::option::Option<StateChangeValueViewContentSubtype5>,
24291        #[serde(
24292            flatten,
24293            default,
24294            skip_serializing_if = "::std::option::Option::is_none"
24295        )]
24296        pub subtype_6: ::std::option::Option<StateChangeValueViewContentSubtype6>,
24297        #[serde(
24298            flatten,
24299            default,
24300            skip_serializing_if = "::std::option::Option::is_none"
24301        )]
24302        pub subtype_7: ::std::option::Option<StateChangeValueViewContentSubtype7>,
24303    }
24304    impl ::std::convert::From<&StateChangeValueViewContent> for StateChangeValueViewContent {
24305        fn from(value: &StateChangeValueViewContent) -> Self {
24306            value.clone()
24307        }
24308    }
24309    impl ::std::default::Default for StateChangeValueViewContent {
24310        fn default() -> Self {
24311            Self {
24312                subtype_0: Default::default(),
24313                subtype_1: Default::default(),
24314                subtype_2: Default::default(),
24315                subtype_3: Default::default(),
24316                subtype_4: Default::default(),
24317                subtype_5: Default::default(),
24318                subtype_6: Default::default(),
24319                subtype_7: Default::default(),
24320            }
24321        }
24322    }
24323    #[doc = "A view of the account"]
24324    #[doc = r""]
24325    #[doc = r" <details><summary>JSON schema</summary>"]
24326    #[doc = r""]
24327    #[doc = r" ```json"]
24328    #[doc = "{"]
24329    #[doc = "  \"description\": \"A view of the account\","]
24330    #[doc = "  \"type\": \"object\","]
24331    #[doc = "  \"required\": ["]
24332    #[doc = "    \"account_id\","]
24333    #[doc = "    \"amount\","]
24334    #[doc = "    \"code_hash\","]
24335    #[doc = "    \"locked\","]
24336    #[doc = "    \"storage_usage\""]
24337    #[doc = "  ],"]
24338    #[doc = "  \"properties\": {"]
24339    #[doc = "    \"account_id\": {"]
24340    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
24341    #[doc = "    },"]
24342    #[doc = "    \"amount\": {"]
24343    #[doc = "      \"type\": \"string\""]
24344    #[doc = "    },"]
24345    #[doc = "    \"code_hash\": {"]
24346    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
24347    #[doc = "    },"]
24348    #[doc = "    \"global_contract_account_id\": {"]
24349    #[doc = "      \"oneOf\": ["]
24350    #[doc = "        {"]
24351    #[doc = "          \"type\": \"null\""]
24352    #[doc = "        },"]
24353    #[doc = "        {"]
24354    #[doc = "          \"allOf\": ["]
24355    #[doc = "            {"]
24356    #[doc = "              \"$ref\": \"#/components/schemas/AccountId\""]
24357    #[doc = "            }"]
24358    #[doc = "          ]"]
24359    #[doc = "        }"]
24360    #[doc = "      ]"]
24361    #[doc = "    },"]
24362    #[doc = "    \"global_contract_hash\": {"]
24363    #[doc = "      \"oneOf\": ["]
24364    #[doc = "        {"]
24365    #[doc = "          \"type\": \"null\""]
24366    #[doc = "        },"]
24367    #[doc = "        {"]
24368    #[doc = "          \"allOf\": ["]
24369    #[doc = "            {"]
24370    #[doc = "              \"$ref\": \"#/components/schemas/CryptoHash\""]
24371    #[doc = "            }"]
24372    #[doc = "          ]"]
24373    #[doc = "        }"]
24374    #[doc = "      ]"]
24375    #[doc = "    },"]
24376    #[doc = "    \"locked\": {"]
24377    #[doc = "      \"type\": \"string\""]
24378    #[doc = "    },"]
24379    #[doc = "    \"storage_paid_at\": {"]
24380    #[doc = "      \"description\": \"TODO(2271): deprecated.\","]
24381    #[doc = "      \"default\": 0,"]
24382    #[doc = "      \"type\": \"integer\","]
24383    #[doc = "      \"format\": \"uint64\","]
24384    #[doc = "      \"minimum\": 0.0"]
24385    #[doc = "    },"]
24386    #[doc = "    \"storage_usage\": {"]
24387    #[doc = "      \"type\": \"integer\","]
24388    #[doc = "      \"format\": \"uint64\","]
24389    #[doc = "      \"minimum\": 0.0"]
24390    #[doc = "    }"]
24391    #[doc = "  }"]
24392    #[doc = "}"]
24393    #[doc = r" ```"]
24394    #[doc = r" </details>"]
24395    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24396    pub struct StateChangeValueViewContentSubtype0 {
24397        pub account_id: AccountId,
24398        pub amount: ::std::string::String,
24399        pub code_hash: CryptoHash,
24400        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
24401        pub global_contract_account_id: ::std::option::Option<AccountId>,
24402        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
24403        pub global_contract_hash: ::std::option::Option<CryptoHash>,
24404        pub locked: ::std::string::String,
24405        #[doc = "TODO(2271): deprecated."]
24406        #[serde(default)]
24407        pub storage_paid_at: u64,
24408        pub storage_usage: u64,
24409    }
24410    impl ::std::convert::From<&StateChangeValueViewContentSubtype0>
24411        for StateChangeValueViewContentSubtype0
24412    {
24413        fn from(value: &StateChangeValueViewContentSubtype0) -> Self {
24414            value.clone()
24415        }
24416    }
24417    #[doc = "`StateChangeValueViewContentSubtype1`"]
24418    #[doc = r""]
24419    #[doc = r" <details><summary>JSON schema</summary>"]
24420    #[doc = r""]
24421    #[doc = r" ```json"]
24422    #[doc = "{"]
24423    #[doc = "  \"type\": \"object\","]
24424    #[doc = "  \"required\": ["]
24425    #[doc = "    \"account_id\""]
24426    #[doc = "  ],"]
24427    #[doc = "  \"properties\": {"]
24428    #[doc = "    \"account_id\": {"]
24429    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
24430    #[doc = "    }"]
24431    #[doc = "  }"]
24432    #[doc = "}"]
24433    #[doc = r" ```"]
24434    #[doc = r" </details>"]
24435    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24436    pub struct StateChangeValueViewContentSubtype1 {
24437        pub account_id: AccountId,
24438    }
24439    impl ::std::convert::From<&StateChangeValueViewContentSubtype1>
24440        for StateChangeValueViewContentSubtype1
24441    {
24442        fn from(value: &StateChangeValueViewContentSubtype1) -> Self {
24443            value.clone()
24444        }
24445    }
24446    #[doc = "`StateChangeValueViewContentSubtype2`"]
24447    #[doc = r""]
24448    #[doc = r" <details><summary>JSON schema</summary>"]
24449    #[doc = r""]
24450    #[doc = r" ```json"]
24451    #[doc = "{"]
24452    #[doc = "  \"type\": \"object\","]
24453    #[doc = "  \"required\": ["]
24454    #[doc = "    \"access_key\","]
24455    #[doc = "    \"account_id\","]
24456    #[doc = "    \"public_key\""]
24457    #[doc = "  ],"]
24458    #[doc = "  \"properties\": {"]
24459    #[doc = "    \"access_key\": {"]
24460    #[doc = "      \"$ref\": \"#/components/schemas/AccessKeyView\""]
24461    #[doc = "    },"]
24462    #[doc = "    \"account_id\": {"]
24463    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
24464    #[doc = "    },"]
24465    #[doc = "    \"public_key\": {"]
24466    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
24467    #[doc = "    }"]
24468    #[doc = "  }"]
24469    #[doc = "}"]
24470    #[doc = r" ```"]
24471    #[doc = r" </details>"]
24472    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24473    pub struct StateChangeValueViewContentSubtype2 {
24474        pub access_key: AccessKeyView,
24475        pub account_id: AccountId,
24476        pub public_key: PublicKey,
24477    }
24478    impl ::std::convert::From<&StateChangeValueViewContentSubtype2>
24479        for StateChangeValueViewContentSubtype2
24480    {
24481        fn from(value: &StateChangeValueViewContentSubtype2) -> Self {
24482            value.clone()
24483        }
24484    }
24485    #[doc = "`StateChangeValueViewContentSubtype3`"]
24486    #[doc = r""]
24487    #[doc = r" <details><summary>JSON schema</summary>"]
24488    #[doc = r""]
24489    #[doc = r" ```json"]
24490    #[doc = "{"]
24491    #[doc = "  \"type\": \"object\","]
24492    #[doc = "  \"required\": ["]
24493    #[doc = "    \"account_id\","]
24494    #[doc = "    \"public_key\""]
24495    #[doc = "  ],"]
24496    #[doc = "  \"properties\": {"]
24497    #[doc = "    \"account_id\": {"]
24498    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
24499    #[doc = "    },"]
24500    #[doc = "    \"public_key\": {"]
24501    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
24502    #[doc = "    }"]
24503    #[doc = "  }"]
24504    #[doc = "}"]
24505    #[doc = r" ```"]
24506    #[doc = r" </details>"]
24507    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24508    pub struct StateChangeValueViewContentSubtype3 {
24509        pub account_id: AccountId,
24510        pub public_key: PublicKey,
24511    }
24512    impl ::std::convert::From<&StateChangeValueViewContentSubtype3>
24513        for StateChangeValueViewContentSubtype3
24514    {
24515        fn from(value: &StateChangeValueViewContentSubtype3) -> Self {
24516            value.clone()
24517        }
24518    }
24519    #[doc = "`StateChangeValueViewContentSubtype4`"]
24520    #[doc = r""]
24521    #[doc = r" <details><summary>JSON schema</summary>"]
24522    #[doc = r""]
24523    #[doc = r" ```json"]
24524    #[doc = "{"]
24525    #[doc = "  \"type\": \"object\","]
24526    #[doc = "  \"required\": ["]
24527    #[doc = "    \"account_id\","]
24528    #[doc = "    \"key_base64\","]
24529    #[doc = "    \"value_base64\""]
24530    #[doc = "  ],"]
24531    #[doc = "  \"properties\": {"]
24532    #[doc = "    \"account_id\": {"]
24533    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
24534    #[doc = "    },"]
24535    #[doc = "    \"key_base64\": {"]
24536    #[doc = "      \"type\": \"string\","]
24537    #[doc = "      \"format\": \"bytes\""]
24538    #[doc = "    },"]
24539    #[doc = "    \"value_base64\": {"]
24540    #[doc = "      \"type\": \"string\","]
24541    #[doc = "      \"format\": \"bytes\""]
24542    #[doc = "    }"]
24543    #[doc = "  }"]
24544    #[doc = "}"]
24545    #[doc = r" ```"]
24546    #[doc = r" </details>"]
24547    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24548    pub struct StateChangeValueViewContentSubtype4 {
24549        pub account_id: AccountId,
24550        pub key_base64: ::std::string::String,
24551        pub value_base64: ::std::string::String,
24552    }
24553    impl ::std::convert::From<&StateChangeValueViewContentSubtype4>
24554        for StateChangeValueViewContentSubtype4
24555    {
24556        fn from(value: &StateChangeValueViewContentSubtype4) -> Self {
24557            value.clone()
24558        }
24559    }
24560    #[doc = "`StateChangeValueViewContentSubtype5`"]
24561    #[doc = r""]
24562    #[doc = r" <details><summary>JSON schema</summary>"]
24563    #[doc = r""]
24564    #[doc = r" ```json"]
24565    #[doc = "{"]
24566    #[doc = "  \"type\": \"object\","]
24567    #[doc = "  \"required\": ["]
24568    #[doc = "    \"account_id\","]
24569    #[doc = "    \"key_base64\""]
24570    #[doc = "  ],"]
24571    #[doc = "  \"properties\": {"]
24572    #[doc = "    \"account_id\": {"]
24573    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
24574    #[doc = "    },"]
24575    #[doc = "    \"key_base64\": {"]
24576    #[doc = "      \"type\": \"string\","]
24577    #[doc = "      \"format\": \"bytes\""]
24578    #[doc = "    }"]
24579    #[doc = "  }"]
24580    #[doc = "}"]
24581    #[doc = r" ```"]
24582    #[doc = r" </details>"]
24583    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24584    pub struct StateChangeValueViewContentSubtype5 {
24585        pub account_id: AccountId,
24586        pub key_base64: ::std::string::String,
24587    }
24588    impl ::std::convert::From<&StateChangeValueViewContentSubtype5>
24589        for StateChangeValueViewContentSubtype5
24590    {
24591        fn from(value: &StateChangeValueViewContentSubtype5) -> Self {
24592            value.clone()
24593        }
24594    }
24595    #[doc = "`StateChangeValueViewContentSubtype6`"]
24596    #[doc = r""]
24597    #[doc = r" <details><summary>JSON schema</summary>"]
24598    #[doc = r""]
24599    #[doc = r" ```json"]
24600    #[doc = "{"]
24601    #[doc = "  \"type\": \"object\","]
24602    #[doc = "  \"required\": ["]
24603    #[doc = "    \"account_id\","]
24604    #[doc = "    \"code_base64\""]
24605    #[doc = "  ],"]
24606    #[doc = "  \"properties\": {"]
24607    #[doc = "    \"account_id\": {"]
24608    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
24609    #[doc = "    },"]
24610    #[doc = "    \"code_base64\": {"]
24611    #[doc = "      \"type\": \"string\""]
24612    #[doc = "    }"]
24613    #[doc = "  }"]
24614    #[doc = "}"]
24615    #[doc = r" ```"]
24616    #[doc = r" </details>"]
24617    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24618    pub struct StateChangeValueViewContentSubtype6 {
24619        pub account_id: AccountId,
24620        pub code_base64: ::std::string::String,
24621    }
24622    impl ::std::convert::From<&StateChangeValueViewContentSubtype6>
24623        for StateChangeValueViewContentSubtype6
24624    {
24625        fn from(value: &StateChangeValueViewContentSubtype6) -> Self {
24626            value.clone()
24627        }
24628    }
24629    #[doc = "`StateChangeValueViewContentSubtype7`"]
24630    #[doc = r""]
24631    #[doc = r" <details><summary>JSON schema</summary>"]
24632    #[doc = r""]
24633    #[doc = r" ```json"]
24634    #[doc = "{"]
24635    #[doc = "  \"type\": \"object\","]
24636    #[doc = "  \"required\": ["]
24637    #[doc = "    \"account_id\""]
24638    #[doc = "  ],"]
24639    #[doc = "  \"properties\": {"]
24640    #[doc = "    \"account_id\": {"]
24641    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
24642    #[doc = "    }"]
24643    #[doc = "  }"]
24644    #[doc = "}"]
24645    #[doc = r" ```"]
24646    #[doc = r" </details>"]
24647    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24648    pub struct StateChangeValueViewContentSubtype7 {
24649        pub account_id: AccountId,
24650    }
24651    impl ::std::convert::From<&StateChangeValueViewContentSubtype7>
24652        for StateChangeValueViewContentSubtype7
24653    {
24654        fn from(value: &StateChangeValueViewContentSubtype7) -> Self {
24655            value.clone()
24656        }
24657    }
24658    #[doc = "`StateChangeValueViewType`"]
24659    #[doc = r""]
24660    #[doc = r" <details><summary>JSON schema</summary>"]
24661    #[doc = r""]
24662    #[doc = r" ```json"]
24663    #[doc = "{"]
24664    #[doc = "  \"type\": \"string\","]
24665    #[doc = "  \"enum\": ["]
24666    #[doc = "    \"account_update\","]
24667    #[doc = "    \"account_deletion\","]
24668    #[doc = "    \"access_key_update\","]
24669    #[doc = "    \"data_update\","]
24670    #[doc = "    \"data_deletion\","]
24671    #[doc = "    \"contract_code_update\","]
24672    #[doc = "    \"contract_code_deletion\""]
24673    #[doc = "  ]"]
24674    #[doc = "}"]
24675    #[doc = r" ```"]
24676    #[doc = r" </details>"]
24677    #[derive(
24678        :: serde :: Deserialize,
24679        :: serde :: Serialize,
24680        Clone,
24681        Copy,
24682        Debug,
24683        Eq,
24684        Hash,
24685        Ord,
24686        PartialEq,
24687        PartialOrd,
24688    )]
24689    pub enum StateChangeValueViewType {
24690        #[serde(rename = "account_update")]
24691        AccountUpdate,
24692        #[serde(rename = "account_deletion")]
24693        AccountDeletion,
24694        #[serde(rename = "access_key_update")]
24695        AccessKeyUpdate,
24696        #[serde(rename = "data_update")]
24697        DataUpdate,
24698        #[serde(rename = "data_deletion")]
24699        DataDeletion,
24700        #[serde(rename = "contract_code_update")]
24701        ContractCodeUpdate,
24702        #[serde(rename = "contract_code_deletion")]
24703        ContractCodeDeletion,
24704    }
24705    impl ::std::convert::From<&Self> for StateChangeValueViewType {
24706        fn from(value: &StateChangeValueViewType) -> Self {
24707            value.clone()
24708        }
24709    }
24710    impl ::std::fmt::Display for StateChangeValueViewType {
24711        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24712            match *self {
24713                Self::AccountUpdate => write!(f, "account_update"),
24714                Self::AccountDeletion => write!(f, "account_deletion"),
24715                Self::AccessKeyUpdate => write!(f, "access_key_update"),
24716                Self::DataUpdate => write!(f, "data_update"),
24717                Self::DataDeletion => write!(f, "data_deletion"),
24718                Self::ContractCodeUpdate => write!(f, "contract_code_update"),
24719                Self::ContractCodeDeletion => write!(f, "contract_code_deletion"),
24720            }
24721        }
24722    }
24723    impl ::std::str::FromStr for StateChangeValueViewType {
24724        type Err = self::error::ConversionError;
24725        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
24726            match value {
24727                "account_update" => Ok(Self::AccountUpdate),
24728                "account_deletion" => Ok(Self::AccountDeletion),
24729                "access_key_update" => Ok(Self::AccessKeyUpdate),
24730                "data_update" => Ok(Self::DataUpdate),
24731                "data_deletion" => Ok(Self::DataDeletion),
24732                "contract_code_update" => Ok(Self::ContractCodeUpdate),
24733                "contract_code_deletion" => Ok(Self::ContractCodeDeletion),
24734                _ => Err("invalid value".into()),
24735            }
24736        }
24737    }
24738    impl ::std::convert::TryFrom<&str> for StateChangeValueViewType {
24739        type Error = self::error::ConversionError;
24740        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
24741            value.parse()
24742        }
24743    }
24744    impl ::std::convert::TryFrom<&::std::string::String> for StateChangeValueViewType {
24745        type Error = self::error::ConversionError;
24746        fn try_from(
24747            value: &::std::string::String,
24748        ) -> ::std::result::Result<Self, self::error::ConversionError> {
24749            value.parse()
24750        }
24751    }
24752    impl ::std::convert::TryFrom<::std::string::String> for StateChangeValueViewType {
24753        type Error = self::error::ConversionError;
24754        fn try_from(
24755            value: ::std::string::String,
24756        ) -> ::std::result::Result<Self, self::error::ConversionError> {
24757            value.parse()
24758        }
24759    }
24760    #[doc = "`StateChangeWithCauseView`"]
24761    #[doc = r""]
24762    #[doc = r" <details><summary>JSON schema</summary>"]
24763    #[doc = r""]
24764    #[doc = r" ```json"]
24765    #[doc = "{"]
24766    #[doc = "  \"type\": \"object\","]
24767    #[doc = "  \"required\": ["]
24768    #[doc = "    \"cause\","]
24769    #[doc = "    \"change\","]
24770    #[doc = "    \"type\""]
24771    #[doc = "  ],"]
24772    #[doc = "  \"properties\": {"]
24773    #[doc = "    \"cause\": {"]
24774    #[doc = "      \"$ref\": \"#/components/schemas/StateChangeCauseView\""]
24775    #[doc = "    },"]
24776    #[doc = "    \"change\": {"]
24777    #[doc = "      \"$ref\": \"#/components/schemas/StateChangeValueViewContent\""]
24778    #[doc = "    },"]
24779    #[doc = "    \"type\": {"]
24780    #[doc = "      \"$ref\": \"#/components/schemas/StateChangeValueViewType\""]
24781    #[doc = "    }"]
24782    #[doc = "  }"]
24783    #[doc = "}"]
24784    #[doc = r" ```"]
24785    #[doc = r" </details>"]
24786    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24787    pub struct StateChangeWithCauseView {
24788        pub cause: StateChangeCauseView,
24789        pub change: StateChangeValueViewContent,
24790        #[serde(rename = "type")]
24791        pub type_: StateChangeValueViewType,
24792    }
24793    impl ::std::convert::From<&StateChangeWithCauseView> for StateChangeWithCauseView {
24794        fn from(value: &StateChangeWithCauseView) -> Self {
24795            value.clone()
24796        }
24797    }
24798    #[doc = "Item of the state, key and value are serialized in base64 and proof for inclusion of given state item."]
24799    #[doc = r""]
24800    #[doc = r" <details><summary>JSON schema</summary>"]
24801    #[doc = r""]
24802    #[doc = r" ```json"]
24803    #[doc = "{"]
24804    #[doc = "  \"description\": \"Item of the state, key and value are serialized in base64 and proof for inclusion of given state item.\","]
24805    #[doc = "  \"type\": \"object\","]
24806    #[doc = "  \"required\": ["]
24807    #[doc = "    \"key\","]
24808    #[doc = "    \"value\""]
24809    #[doc = "  ],"]
24810    #[doc = "  \"properties\": {"]
24811    #[doc = "    \"key\": {"]
24812    #[doc = "      \"type\": \"string\","]
24813    #[doc = "      \"format\": \"bytes\""]
24814    #[doc = "    },"]
24815    #[doc = "    \"value\": {"]
24816    #[doc = "      \"type\": \"string\","]
24817    #[doc = "      \"format\": \"bytes\""]
24818    #[doc = "    }"]
24819    #[doc = "  }"]
24820    #[doc = "}"]
24821    #[doc = r" ```"]
24822    #[doc = r" </details>"]
24823    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24824    pub struct StateItem {
24825        pub key: ::std::string::String,
24826        pub value: ::std::string::String,
24827    }
24828    impl ::std::convert::From<&StateItem> for StateItem {
24829        fn from(value: &StateItem) -> Self {
24830            value.clone()
24831        }
24832    }
24833    #[doc = "Options for dumping state to S3."]
24834    #[doc = r""]
24835    #[doc = r" <details><summary>JSON schema</summary>"]
24836    #[doc = r""]
24837    #[doc = r" ```json"]
24838    #[doc = "{"]
24839    #[doc = "  \"description\": \"Options for dumping state to S3.\","]
24840    #[doc = "  \"type\": \"object\","]
24841    #[doc = "  \"properties\": {"]
24842    #[doc = "    \"dump\": {"]
24843    #[doc = "      \"description\": \"`none` value disables state dump to external storage.\","]
24844    #[doc = "      \"oneOf\": ["]
24845    #[doc = "        {"]
24846    #[doc = "          \"type\": \"null\""]
24847    #[doc = "        },"]
24848    #[doc = "        {"]
24849    #[doc = "          \"allOf\": ["]
24850    #[doc = "            {"]
24851    #[doc = "              \"$ref\": \"#/components/schemas/DumpConfig\""]
24852    #[doc = "            }"]
24853    #[doc = "          ]"]
24854    #[doc = "        }"]
24855    #[doc = "      ]"]
24856    #[doc = "    },"]
24857    #[doc = "    \"sync\": {"]
24858    #[doc = "      \"$ref\": \"#/components/schemas/SyncConfig\""]
24859    #[doc = "    }"]
24860    #[doc = "  }"]
24861    #[doc = "}"]
24862    #[doc = r" ```"]
24863    #[doc = r" </details>"]
24864    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24865    pub struct StateSyncConfig {
24866        #[doc = "`none` value disables state dump to external storage."]
24867        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
24868        pub dump: ::std::option::Option<DumpConfig>,
24869        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
24870        pub sync: ::std::option::Option<SyncConfig>,
24871    }
24872    impl ::std::convert::From<&StateSyncConfig> for StateSyncConfig {
24873        fn from(value: &StateSyncConfig) -> Self {
24874            value.clone()
24875        }
24876    }
24877    impl ::std::default::Default for StateSyncConfig {
24878        fn default() -> Self {
24879            Self {
24880                dump: Default::default(),
24881                sync: Default::default(),
24882            }
24883        }
24884    }
24885    #[doc = "`StatusSyncInfo`"]
24886    #[doc = r""]
24887    #[doc = r" <details><summary>JSON schema</summary>"]
24888    #[doc = r""]
24889    #[doc = r" ```json"]
24890    #[doc = "{"]
24891    #[doc = "  \"type\": \"object\","]
24892    #[doc = "  \"required\": ["]
24893    #[doc = "    \"latest_block_hash\","]
24894    #[doc = "    \"latest_block_height\","]
24895    #[doc = "    \"latest_block_time\","]
24896    #[doc = "    \"latest_state_root\","]
24897    #[doc = "    \"syncing\""]
24898    #[doc = "  ],"]
24899    #[doc = "  \"properties\": {"]
24900    #[doc = "    \"earliest_block_hash\": {"]
24901    #[doc = "      \"oneOf\": ["]
24902    #[doc = "        {"]
24903    #[doc = "          \"type\": \"null\""]
24904    #[doc = "        },"]
24905    #[doc = "        {"]
24906    #[doc = "          \"allOf\": ["]
24907    #[doc = "            {"]
24908    #[doc = "              \"$ref\": \"#/components/schemas/CryptoHash\""]
24909    #[doc = "            }"]
24910    #[doc = "          ]"]
24911    #[doc = "        }"]
24912    #[doc = "      ]"]
24913    #[doc = "    },"]
24914    #[doc = "    \"earliest_block_height\": {"]
24915    #[doc = "      \"type\": ["]
24916    #[doc = "        \"integer\","]
24917    #[doc = "        \"null\""]
24918    #[doc = "      ],"]
24919    #[doc = "      \"format\": \"uint64\","]
24920    #[doc = "      \"minimum\": 0.0"]
24921    #[doc = "    },"]
24922    #[doc = "    \"earliest_block_time\": {"]
24923    #[doc = "      \"type\": ["]
24924    #[doc = "        \"string\","]
24925    #[doc = "        \"null\""]
24926    #[doc = "      ]"]
24927    #[doc = "    },"]
24928    #[doc = "    \"epoch_id\": {"]
24929    #[doc = "      \"oneOf\": ["]
24930    #[doc = "        {"]
24931    #[doc = "          \"type\": \"null\""]
24932    #[doc = "        },"]
24933    #[doc = "        {"]
24934    #[doc = "          \"allOf\": ["]
24935    #[doc = "            {"]
24936    #[doc = "              \"$ref\": \"#/components/schemas/EpochId\""]
24937    #[doc = "            }"]
24938    #[doc = "          ]"]
24939    #[doc = "        }"]
24940    #[doc = "      ]"]
24941    #[doc = "    },"]
24942    #[doc = "    \"epoch_start_height\": {"]
24943    #[doc = "      \"type\": ["]
24944    #[doc = "        \"integer\","]
24945    #[doc = "        \"null\""]
24946    #[doc = "      ],"]
24947    #[doc = "      \"format\": \"uint64\","]
24948    #[doc = "      \"minimum\": 0.0"]
24949    #[doc = "    },"]
24950    #[doc = "    \"latest_block_hash\": {"]
24951    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
24952    #[doc = "    },"]
24953    #[doc = "    \"latest_block_height\": {"]
24954    #[doc = "      \"type\": \"integer\","]
24955    #[doc = "      \"format\": \"uint64\","]
24956    #[doc = "      \"minimum\": 0.0"]
24957    #[doc = "    },"]
24958    #[doc = "    \"latest_block_time\": {"]
24959    #[doc = "      \"type\": \"string\""]
24960    #[doc = "    },"]
24961    #[doc = "    \"latest_state_root\": {"]
24962    #[doc = "      \"$ref\": \"#/components/schemas/CryptoHash\""]
24963    #[doc = "    },"]
24964    #[doc = "    \"syncing\": {"]
24965    #[doc = "      \"type\": \"boolean\""]
24966    #[doc = "    }"]
24967    #[doc = "  }"]
24968    #[doc = "}"]
24969    #[doc = r" ```"]
24970    #[doc = r" </details>"]
24971    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
24972    pub struct StatusSyncInfo {
24973        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
24974        pub earliest_block_hash: ::std::option::Option<CryptoHash>,
24975        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
24976        pub earliest_block_height: ::std::option::Option<u64>,
24977        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
24978        pub earliest_block_time: ::std::option::Option<::std::string::String>,
24979        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
24980        pub epoch_id: ::std::option::Option<EpochId>,
24981        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
24982        pub epoch_start_height: ::std::option::Option<u64>,
24983        pub latest_block_hash: CryptoHash,
24984        pub latest_block_height: u64,
24985        pub latest_block_time: ::std::string::String,
24986        pub latest_state_root: CryptoHash,
24987        pub syncing: bool,
24988    }
24989    impl ::std::convert::From<&StatusSyncInfo> for StatusSyncInfo {
24990        fn from(value: &StatusSyncInfo) -> Self {
24991            value.clone()
24992        }
24993    }
24994    #[doc = "Errors which may occur during working with trie storages, storing\n trie values (trie nodes and state values) by their hashes."]
24995    #[doc = r""]
24996    #[doc = r" <details><summary>JSON schema</summary>"]
24997    #[doc = r""]
24998    #[doc = r" ```json"]
24999    #[doc = "{"]
25000    #[doc = "  \"description\": \"Errors which may occur during working with trie storages, storing\\n trie values (trie nodes and state values) by their hashes.\","]
25001    #[doc = "  \"oneOf\": ["]
25002    #[doc = "    {"]
25003    #[doc = "      \"description\": \"Key-value db internal failure\","]
25004    #[doc = "      \"type\": \"string\","]
25005    #[doc = "      \"enum\": ["]
25006    #[doc = "        \"StorageInternalError\""]
25007    #[doc = "      ]"]
25008    #[doc = "    },"]
25009    #[doc = "    {"]
25010    #[doc = "      \"description\": \"Requested trie value by its hash which is missing in storage.\","]
25011    #[doc = "      \"type\": \"object\","]
25012    #[doc = "      \"required\": ["]
25013    #[doc = "        \"MissingTrieValue\""]
25014    #[doc = "      ],"]
25015    #[doc = "      \"properties\": {"]
25016    #[doc = "        \"MissingTrieValue\": {"]
25017    #[doc = "          \"$ref\": \"#/components/schemas/MissingTrieValue\""]
25018    #[doc = "        }"]
25019    #[doc = "      },"]
25020    #[doc = "      \"additionalProperties\": false"]
25021    #[doc = "    },"]
25022    #[doc = "    {"]
25023    #[doc = "      \"description\": \"Found trie node which shouldn't be part of state. Raised during\\n validation of state sync parts where incorrect node was passed.\\n TODO (#8997): consider including hash of trie node.\","]
25024    #[doc = "      \"type\": \"string\","]
25025    #[doc = "      \"enum\": ["]
25026    #[doc = "        \"UnexpectedTrieValue\""]
25027    #[doc = "      ]"]
25028    #[doc = "    },"]
25029    #[doc = "    {"]
25030    #[doc = "      \"description\": \"Either invalid state or key-value db is corrupted.\\n For PartialStorage it cannot be corrupted.\\n Error message is unreliable and for debugging purposes only. It's also probably ok to\\n panic in every place that produces this error.\\n We can check if db is corrupted by verifying everything in the state trie.\","]
25031    #[doc = "      \"type\": \"object\","]
25032    #[doc = "      \"required\": ["]
25033    #[doc = "        \"StorageInconsistentState\""]
25034    #[doc = "      ],"]
25035    #[doc = "      \"properties\": {"]
25036    #[doc = "        \"StorageInconsistentState\": {"]
25037    #[doc = "          \"type\": \"string\""]
25038    #[doc = "        }"]
25039    #[doc = "      },"]
25040    #[doc = "      \"additionalProperties\": false"]
25041    #[doc = "    },"]
25042    #[doc = "    {"]
25043    #[doc = "      \"description\": \"Flat storage error, meaning that it doesn't support some block anymore.\\n We guarantee that such block cannot become final, thus block processing\\n must resume normally.\","]
25044    #[doc = "      \"type\": \"object\","]
25045    #[doc = "      \"required\": ["]
25046    #[doc = "        \"FlatStorageBlockNotSupported\""]
25047    #[doc = "      ],"]
25048    #[doc = "      \"properties\": {"]
25049    #[doc = "        \"FlatStorageBlockNotSupported\": {"]
25050    #[doc = "          \"type\": \"string\""]
25051    #[doc = "        }"]
25052    #[doc = "      },"]
25053    #[doc = "      \"additionalProperties\": false"]
25054    #[doc = "    },"]
25055    #[doc = "    {"]
25056    #[doc = "      \"description\": \"In-memory trie could not be loaded for some reason.\","]
25057    #[doc = "      \"type\": \"object\","]
25058    #[doc = "      \"required\": ["]
25059    #[doc = "        \"MemTrieLoadingError\""]
25060    #[doc = "      ],"]
25061    #[doc = "      \"properties\": {"]
25062    #[doc = "        \"MemTrieLoadingError\": {"]
25063    #[doc = "          \"type\": \"string\""]
25064    #[doc = "        }"]
25065    #[doc = "      },"]
25066    #[doc = "      \"additionalProperties\": false"]
25067    #[doc = "    }"]
25068    #[doc = "  ]"]
25069    #[doc = "}"]
25070    #[doc = r" ```"]
25071    #[doc = r" </details>"]
25072    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
25073    pub enum StorageError {
25074        #[doc = "Key-value db internal failure"]
25075        StorageInternalError,
25076        #[doc = "Requested trie value by its hash which is missing in storage."]
25077        MissingTrieValue(MissingTrieValue),
25078        #[doc = "Found trie node which shouldn't be part of state. Raised during\n validation of state sync parts where incorrect node was passed.\n TODO (#8997): consider including hash of trie node."]
25079        UnexpectedTrieValue,
25080        #[doc = "Either invalid state or key-value db is corrupted.\n For PartialStorage it cannot be corrupted.\n Error message is unreliable and for debugging purposes only. It's also probably ok to\n panic in every place that produces this error.\n We can check if db is corrupted by verifying everything in the state trie."]
25081        StorageInconsistentState(::std::string::String),
25082        #[doc = "Flat storage error, meaning that it doesn't support some block anymore.\n We guarantee that such block cannot become final, thus block processing\n must resume normally."]
25083        FlatStorageBlockNotSupported(::std::string::String),
25084        #[doc = "In-memory trie could not be loaded for some reason."]
25085        MemTrieLoadingError(::std::string::String),
25086    }
25087    impl ::std::convert::From<&Self> for StorageError {
25088        fn from(value: &StorageError) -> Self {
25089            value.clone()
25090        }
25091    }
25092    impl ::std::convert::From<MissingTrieValue> for StorageError {
25093        fn from(value: MissingTrieValue) -> Self {
25094            Self::MissingTrieValue(value)
25095        }
25096    }
25097    #[doc = "This enum represents if a storage_get call will be performed through flat storage or trie"]
25098    #[doc = r""]
25099    #[doc = r" <details><summary>JSON schema</summary>"]
25100    #[doc = r""]
25101    #[doc = r" ```json"]
25102    #[doc = "{"]
25103    #[doc = "  \"description\": \"This enum represents if a storage_get call will be performed through flat storage or trie\","]
25104    #[doc = "  \"type\": \"string\","]
25105    #[doc = "  \"enum\": ["]
25106    #[doc = "    \"FlatStorage\","]
25107    #[doc = "    \"Trie\""]
25108    #[doc = "  ]"]
25109    #[doc = "}"]
25110    #[doc = r" ```"]
25111    #[doc = r" </details>"]
25112    #[derive(
25113        :: serde :: Deserialize,
25114        :: serde :: Serialize,
25115        Clone,
25116        Copy,
25117        Debug,
25118        Eq,
25119        Hash,
25120        Ord,
25121        PartialEq,
25122        PartialOrd,
25123    )]
25124    pub enum StorageGetMode {
25125        FlatStorage,
25126        Trie,
25127    }
25128    impl ::std::convert::From<&Self> for StorageGetMode {
25129        fn from(value: &StorageGetMode) -> Self {
25130            value.clone()
25131        }
25132    }
25133    impl ::std::fmt::Display for StorageGetMode {
25134        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25135            match *self {
25136                Self::FlatStorage => write!(f, "FlatStorage"),
25137                Self::Trie => write!(f, "Trie"),
25138            }
25139        }
25140    }
25141    impl ::std::str::FromStr for StorageGetMode {
25142        type Err = self::error::ConversionError;
25143        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
25144            match value {
25145                "FlatStorage" => Ok(Self::FlatStorage),
25146                "Trie" => Ok(Self::Trie),
25147                _ => Err("invalid value".into()),
25148            }
25149        }
25150    }
25151    impl ::std::convert::TryFrom<&str> for StorageGetMode {
25152        type Error = self::error::ConversionError;
25153        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
25154            value.parse()
25155        }
25156    }
25157    impl ::std::convert::TryFrom<&::std::string::String> for StorageGetMode {
25158        type Error = self::error::ConversionError;
25159        fn try_from(
25160            value: &::std::string::String,
25161        ) -> ::std::result::Result<Self, self::error::ConversionError> {
25162            value.parse()
25163        }
25164    }
25165    impl ::std::convert::TryFrom<::std::string::String> for StorageGetMode {
25166        type Error = self::error::ConversionError;
25167        fn try_from(
25168            value: ::std::string::String,
25169        ) -> ::std::result::Result<Self, self::error::ConversionError> {
25170            value.parse()
25171        }
25172    }
25173    #[doc = "Describes cost of storage per block"]
25174    #[doc = r""]
25175    #[doc = r" <details><summary>JSON schema</summary>"]
25176    #[doc = r""]
25177    #[doc = r" ```json"]
25178    #[doc = "{"]
25179    #[doc = "  \"description\": \"Describes cost of storage per block\","]
25180    #[doc = "  \"type\": \"object\","]
25181    #[doc = "  \"required\": ["]
25182    #[doc = "    \"num_bytes_account\","]
25183    #[doc = "    \"num_extra_bytes_record\""]
25184    #[doc = "  ],"]
25185    #[doc = "  \"properties\": {"]
25186    #[doc = "    \"num_bytes_account\": {"]
25187    #[doc = "      \"description\": \"Number of bytes for an account record, including rounding up for account id.\","]
25188    #[doc = "      \"type\": \"integer\","]
25189    #[doc = "      \"format\": \"uint64\","]
25190    #[doc = "      \"minimum\": 0.0"]
25191    #[doc = "    },"]
25192    #[doc = "    \"num_extra_bytes_record\": {"]
25193    #[doc = "      \"description\": \"Additional number of bytes for a k/v record\","]
25194    #[doc = "      \"type\": \"integer\","]
25195    #[doc = "      \"format\": \"uint64\","]
25196    #[doc = "      \"minimum\": 0.0"]
25197    #[doc = "    }"]
25198    #[doc = "  }"]
25199    #[doc = "}"]
25200    #[doc = r" ```"]
25201    #[doc = r" </details>"]
25202    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
25203    pub struct StorageUsageConfigView {
25204        #[doc = "Number of bytes for an account record, including rounding up for account id."]
25205        pub num_bytes_account: u64,
25206        #[doc = "Additional number of bytes for a k/v record"]
25207        pub num_extra_bytes_record: u64,
25208    }
25209    impl ::std::convert::From<&StorageUsageConfigView> for StorageUsageConfigView {
25210        fn from(value: &StorageUsageConfigView) -> Self {
25211            value.clone()
25212        }
25213    }
25214    #[doc = "`SyncCheckpoint`"]
25215    #[doc = r""]
25216    #[doc = r" <details><summary>JSON schema</summary>"]
25217    #[doc = r""]
25218    #[doc = r" ```json"]
25219    #[doc = "{"]
25220    #[doc = "  \"type\": \"string\","]
25221    #[doc = "  \"enum\": ["]
25222    #[doc = "    \"genesis\","]
25223    #[doc = "    \"earliest_available\""]
25224    #[doc = "  ]"]
25225    #[doc = "}"]
25226    #[doc = r" ```"]
25227    #[doc = r" </details>"]
25228    #[derive(
25229        :: serde :: Deserialize,
25230        :: serde :: Serialize,
25231        Clone,
25232        Copy,
25233        Debug,
25234        Eq,
25235        Hash,
25236        Ord,
25237        PartialEq,
25238        PartialOrd,
25239    )]
25240    pub enum SyncCheckpoint {
25241        #[serde(rename = "genesis")]
25242        Genesis,
25243        #[serde(rename = "earliest_available")]
25244        EarliestAvailable,
25245    }
25246    impl ::std::convert::From<&Self> for SyncCheckpoint {
25247        fn from(value: &SyncCheckpoint) -> Self {
25248            value.clone()
25249        }
25250    }
25251    impl ::std::fmt::Display for SyncCheckpoint {
25252        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25253            match *self {
25254                Self::Genesis => write!(f, "genesis"),
25255                Self::EarliestAvailable => write!(f, "earliest_available"),
25256            }
25257        }
25258    }
25259    impl ::std::str::FromStr for SyncCheckpoint {
25260        type Err = self::error::ConversionError;
25261        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
25262            match value {
25263                "genesis" => Ok(Self::Genesis),
25264                "earliest_available" => Ok(Self::EarliestAvailable),
25265                _ => Err("invalid value".into()),
25266            }
25267        }
25268    }
25269    impl ::std::convert::TryFrom<&str> for SyncCheckpoint {
25270        type Error = self::error::ConversionError;
25271        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
25272            value.parse()
25273        }
25274    }
25275    impl ::std::convert::TryFrom<&::std::string::String> for SyncCheckpoint {
25276        type Error = self::error::ConversionError;
25277        fn try_from(
25278            value: &::std::string::String,
25279        ) -> ::std::result::Result<Self, self::error::ConversionError> {
25280            value.parse()
25281        }
25282    }
25283    impl ::std::convert::TryFrom<::std::string::String> for SyncCheckpoint {
25284        type Error = self::error::ConversionError;
25285        fn try_from(
25286            value: ::std::string::String,
25287        ) -> ::std::result::Result<Self, self::error::ConversionError> {
25288            value.parse()
25289        }
25290    }
25291    #[doc = "Configures how to fetch state parts during state sync."]
25292    #[doc = r""]
25293    #[doc = r" <details><summary>JSON schema</summary>"]
25294    #[doc = r""]
25295    #[doc = r" ```json"]
25296    #[doc = "{"]
25297    #[doc = "  \"description\": \"Configures how to fetch state parts during state sync.\","]
25298    #[doc = "  \"oneOf\": ["]
25299    #[doc = "    {"]
25300    #[doc = "      \"description\": \"Syncs state from the peers without reading anything from external storage.\","]
25301    #[doc = "      \"type\": \"string\","]
25302    #[doc = "      \"enum\": ["]
25303    #[doc = "        \"Peers\""]
25304    #[doc = "      ]"]
25305    #[doc = "    },"]
25306    #[doc = "    {"]
25307    #[doc = "      \"description\": \"Expects parts to be available in external storage.\","]
25308    #[doc = "      \"type\": \"object\","]
25309    #[doc = "      \"required\": ["]
25310    #[doc = "        \"ExternalStorage\""]
25311    #[doc = "      ],"]
25312    #[doc = "      \"properties\": {"]
25313    #[doc = "        \"ExternalStorage\": {"]
25314    #[doc = "          \"$ref\": \"#/components/schemas/ExternalStorageConfig\""]
25315    #[doc = "        }"]
25316    #[doc = "      },"]
25317    #[doc = "      \"additionalProperties\": false"]
25318    #[doc = "    }"]
25319    #[doc = "  ]"]
25320    #[doc = "}"]
25321    #[doc = r" ```"]
25322    #[doc = r" </details>"]
25323    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
25324    pub enum SyncConfig {
25325        #[doc = "Syncs state from the peers without reading anything from external storage."]
25326        Peers,
25327        #[doc = "Expects parts to be available in external storage."]
25328        ExternalStorage(ExternalStorageConfig),
25329    }
25330    impl ::std::convert::From<&Self> for SyncConfig {
25331        fn from(value: &SyncConfig) -> Self {
25332            value.clone()
25333        }
25334    }
25335    impl ::std::convert::From<ExternalStorageConfig> for SyncConfig {
25336        fn from(value: ExternalStorageConfig) -> Self {
25337            Self::ExternalStorage(value)
25338        }
25339    }
25340    #[doc = "`Tier1ProxyView`"]
25341    #[doc = r""]
25342    #[doc = r" <details><summary>JSON schema</summary>"]
25343    #[doc = r""]
25344    #[doc = r" ```json"]
25345    #[doc = "{"]
25346    #[doc = "  \"type\": \"object\","]
25347    #[doc = "  \"required\": ["]
25348    #[doc = "    \"addr\","]
25349    #[doc = "    \"peer_id\""]
25350    #[doc = "  ],"]
25351    #[doc = "  \"properties\": {"]
25352    #[doc = "    \"addr\": {"]
25353    #[doc = "      \"type\": \"string\""]
25354    #[doc = "    },"]
25355    #[doc = "    \"peer_id\": {"]
25356    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
25357    #[doc = "    }"]
25358    #[doc = "  }"]
25359    #[doc = "}"]
25360    #[doc = r" ```"]
25361    #[doc = r" </details>"]
25362    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
25363    pub struct Tier1ProxyView {
25364        pub addr: ::std::string::String,
25365        pub peer_id: PublicKey,
25366    }
25367    impl ::std::convert::From<&Tier1ProxyView> for Tier1ProxyView {
25368        fn from(value: &Tier1ProxyView) -> Self {
25369            value.clone()
25370        }
25371    }
25372    #[doc = "Describes the expected behavior of the node regarding shard tracking.\n If the node is an active validator, it will also track the shards it is responsible for as a validator."]
25373    #[doc = r""]
25374    #[doc = r" <details><summary>JSON schema</summary>"]
25375    #[doc = r""]
25376    #[doc = r" ```json"]
25377    #[doc = "{"]
25378    #[doc = "  \"description\": \"Describes the expected behavior of the node regarding shard tracking.\\n If the node is an active validator, it will also track the shards it is responsible for as a validator.\","]
25379    #[doc = "  \"oneOf\": ["]
25380    #[doc = "    {"]
25381    #[doc = "      \"description\": \"Tracks no shards (light client).\","]
25382    #[doc = "      \"type\": \"string\","]
25383    #[doc = "      \"enum\": ["]
25384    #[doc = "        \"NoShards\""]
25385    #[doc = "      ]"]
25386    #[doc = "    },"]
25387    #[doc = "    {"]
25388    #[doc = "      \"description\": \"Tracks arbitrary shards.\","]
25389    #[doc = "      \"type\": \"object\","]
25390    #[doc = "      \"required\": ["]
25391    #[doc = "        \"Shards\""]
25392    #[doc = "      ],"]
25393    #[doc = "      \"properties\": {"]
25394    #[doc = "        \"Shards\": {"]
25395    #[doc = "          \"type\": \"array\","]
25396    #[doc = "          \"items\": {"]
25397    #[doc = "            \"$ref\": \"#/components/schemas/ShardUId\""]
25398    #[doc = "          }"]
25399    #[doc = "        }"]
25400    #[doc = "      },"]
25401    #[doc = "      \"additionalProperties\": false"]
25402    #[doc = "    },"]
25403    #[doc = "    {"]
25404    #[doc = "      \"description\": \"Tracks all shards.\","]
25405    #[doc = "      \"type\": \"string\","]
25406    #[doc = "      \"enum\": ["]
25407    #[doc = "        \"AllShards\""]
25408    #[doc = "      ]"]
25409    #[doc = "    },"]
25410    #[doc = "    {"]
25411    #[doc = "      \"description\": \"Tracks shards that are assigned to given validator account.\","]
25412    #[doc = "      \"type\": \"object\","]
25413    #[doc = "      \"required\": ["]
25414    #[doc = "        \"ShadowValidator\""]
25415    #[doc = "      ],"]
25416    #[doc = "      \"properties\": {"]
25417    #[doc = "        \"ShadowValidator\": {"]
25418    #[doc = "          \"$ref\": \"#/components/schemas/AccountId\""]
25419    #[doc = "        }"]
25420    #[doc = "      },"]
25421    #[doc = "      \"additionalProperties\": false"]
25422    #[doc = "    },"]
25423    #[doc = "    {"]
25424    #[doc = "      \"description\": \"Rotate between these sets of tracked shards.\\n Used to simulate the behavior of chunk only producers without staking tokens.\","]
25425    #[doc = "      \"type\": \"object\","]
25426    #[doc = "      \"required\": ["]
25427    #[doc = "        \"Schedule\""]
25428    #[doc = "      ],"]
25429    #[doc = "      \"properties\": {"]
25430    #[doc = "        \"Schedule\": {"]
25431    #[doc = "          \"type\": \"array\","]
25432    #[doc = "          \"items\": {"]
25433    #[doc = "            \"type\": \"array\","]
25434    #[doc = "            \"items\": {"]
25435    #[doc = "              \"$ref\": \"#/components/schemas/ShardId\""]
25436    #[doc = "            }"]
25437    #[doc = "          }"]
25438    #[doc = "        }"]
25439    #[doc = "      },"]
25440    #[doc = "      \"additionalProperties\": false"]
25441    #[doc = "    },"]
25442    #[doc = "    {"]
25443    #[doc = "      \"description\": \"Tracks shards that contain one of the given account.\","]
25444    #[doc = "      \"type\": \"object\","]
25445    #[doc = "      \"required\": ["]
25446    #[doc = "        \"Accounts\""]
25447    #[doc = "      ],"]
25448    #[doc = "      \"properties\": {"]
25449    #[doc = "        \"Accounts\": {"]
25450    #[doc = "          \"type\": \"array\","]
25451    #[doc = "          \"items\": {"]
25452    #[doc = "            \"$ref\": \"#/components/schemas/AccountId\""]
25453    #[doc = "          }"]
25454    #[doc = "        }"]
25455    #[doc = "      },"]
25456    #[doc = "      \"additionalProperties\": false"]
25457    #[doc = "    }"]
25458    #[doc = "  ]"]
25459    #[doc = "}"]
25460    #[doc = r" ```"]
25461    #[doc = r" </details>"]
25462    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
25463    pub enum TrackedShardsConfig {
25464        #[doc = "Tracks no shards (light client)."]
25465        NoShards,
25466        #[doc = "Tracks arbitrary shards."]
25467        Shards(::std::vec::Vec<ShardUId>),
25468        #[doc = "Tracks all shards."]
25469        AllShards,
25470        #[doc = "Tracks shards that are assigned to given validator account."]
25471        ShadowValidator(AccountId),
25472        #[doc = "Rotate between these sets of tracked shards.\n Used to simulate the behavior of chunk only producers without staking tokens."]
25473        Schedule(::std::vec::Vec<::std::vec::Vec<ShardId>>),
25474        #[doc = "Tracks shards that contain one of the given account."]
25475        Accounts(::std::vec::Vec<AccountId>),
25476    }
25477    impl ::std::convert::From<&Self> for TrackedShardsConfig {
25478        fn from(value: &TrackedShardsConfig) -> Self {
25479            value.clone()
25480        }
25481    }
25482    impl ::std::convert::From<::std::vec::Vec<ShardUId>> for TrackedShardsConfig {
25483        fn from(value: ::std::vec::Vec<ShardUId>) -> Self {
25484            Self::Shards(value)
25485        }
25486    }
25487    impl ::std::convert::From<AccountId> for TrackedShardsConfig {
25488        fn from(value: AccountId) -> Self {
25489            Self::ShadowValidator(value)
25490        }
25491    }
25492    impl ::std::convert::From<::std::vec::Vec<::std::vec::Vec<ShardId>>> for TrackedShardsConfig {
25493        fn from(value: ::std::vec::Vec<::std::vec::Vec<ShardId>>) -> Self {
25494            Self::Schedule(value)
25495        }
25496    }
25497    impl ::std::convert::From<::std::vec::Vec<AccountId>> for TrackedShardsConfig {
25498        fn from(value: ::std::vec::Vec<AccountId>) -> Self {
25499            Self::Accounts(value)
25500        }
25501    }
25502    #[doc = "`TransferAction`"]
25503    #[doc = r""]
25504    #[doc = r" <details><summary>JSON schema</summary>"]
25505    #[doc = r""]
25506    #[doc = r" ```json"]
25507    #[doc = "{"]
25508    #[doc = "  \"type\": \"object\","]
25509    #[doc = "  \"required\": ["]
25510    #[doc = "    \"deposit\""]
25511    #[doc = "  ],"]
25512    #[doc = "  \"properties\": {"]
25513    #[doc = "    \"deposit\": {"]
25514    #[doc = "      \"type\": \"string\""]
25515    #[doc = "    }"]
25516    #[doc = "  }"]
25517    #[doc = "}"]
25518    #[doc = r" ```"]
25519    #[doc = r" </details>"]
25520    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
25521    pub struct TransferAction {
25522        pub deposit: ::std::string::String,
25523    }
25524    impl ::std::convert::From<&TransferAction> for TransferAction {
25525        fn from(value: &TransferAction) -> Self {
25526            value.clone()
25527        }
25528    }
25529    #[doc = "Error returned in the ExecutionOutcome in case of failure"]
25530    #[doc = r""]
25531    #[doc = r" <details><summary>JSON schema</summary>"]
25532    #[doc = r""]
25533    #[doc = r" ```json"]
25534    #[doc = "{"]
25535    #[doc = "  \"description\": \"Error returned in the ExecutionOutcome in case of failure\","]
25536    #[doc = "  \"oneOf\": ["]
25537    #[doc = "    {"]
25538    #[doc = "      \"description\": \"An error happened during Action execution\","]
25539    #[doc = "      \"type\": \"object\","]
25540    #[doc = "      \"required\": ["]
25541    #[doc = "        \"ActionError\""]
25542    #[doc = "      ],"]
25543    #[doc = "      \"properties\": {"]
25544    #[doc = "        \"ActionError\": {"]
25545    #[doc = "          \"$ref\": \"#/components/schemas/ActionError\""]
25546    #[doc = "        }"]
25547    #[doc = "      },"]
25548    #[doc = "      \"additionalProperties\": false"]
25549    #[doc = "    },"]
25550    #[doc = "    {"]
25551    #[doc = "      \"description\": \"An error happened during Transaction execution\","]
25552    #[doc = "      \"type\": \"object\","]
25553    #[doc = "      \"required\": ["]
25554    #[doc = "        \"InvalidTxError\""]
25555    #[doc = "      ],"]
25556    #[doc = "      \"properties\": {"]
25557    #[doc = "        \"InvalidTxError\": {"]
25558    #[doc = "          \"$ref\": \"#/components/schemas/InvalidTxError\""]
25559    #[doc = "        }"]
25560    #[doc = "      },"]
25561    #[doc = "      \"additionalProperties\": false"]
25562    #[doc = "    }"]
25563    #[doc = "  ]"]
25564    #[doc = "}"]
25565    #[doc = r" ```"]
25566    #[doc = r" </details>"]
25567    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
25568    pub enum TxExecutionError {
25569        #[doc = "An error happened during Action execution"]
25570        ActionError(ActionError),
25571        #[doc = "An error happened during Transaction execution"]
25572        InvalidTxError(InvalidTxError),
25573    }
25574    impl ::std::convert::From<&Self> for TxExecutionError {
25575        fn from(value: &TxExecutionError) -> Self {
25576            value.clone()
25577        }
25578    }
25579    impl ::std::convert::From<ActionError> for TxExecutionError {
25580        fn from(value: ActionError) -> Self {
25581            Self::ActionError(value)
25582        }
25583    }
25584    impl ::std::convert::From<InvalidTxError> for TxExecutionError {
25585        fn from(value: InvalidTxError) -> Self {
25586            Self::InvalidTxError(value)
25587        }
25588    }
25589    #[doc = "`TxExecutionStatus`"]
25590    #[doc = r""]
25591    #[doc = r" <details><summary>JSON schema</summary>"]
25592    #[doc = r""]
25593    #[doc = r" ```json"]
25594    #[doc = "{"]
25595    #[doc = "  \"oneOf\": ["]
25596    #[doc = "    {"]
25597    #[doc = "      \"description\": \"Transaction is waiting to be included into the block\","]
25598    #[doc = "      \"type\": \"string\","]
25599    #[doc = "      \"enum\": ["]
25600    #[doc = "        \"NONE\""]
25601    #[doc = "      ]"]
25602    #[doc = "    },"]
25603    #[doc = "    {"]
25604    #[doc = "      \"description\": \"Transaction is included into the block. The block may be not finalized yet\","]
25605    #[doc = "      \"type\": \"string\","]
25606    #[doc = "      \"enum\": ["]
25607    #[doc = "        \"INCLUDED\""]
25608    #[doc = "      ]"]
25609    #[doc = "    },"]
25610    #[doc = "    {"]
25611    #[doc = "      \"description\": \"Transaction is included into the block +\\n All non-refund transaction receipts finished their execution.\\n The corresponding blocks for tx and each receipt may be not finalized yet\","]
25612    #[doc = "      \"type\": \"string\","]
25613    #[doc = "      \"enum\": ["]
25614    #[doc = "        \"EXECUTED_OPTIMISTIC\""]
25615    #[doc = "      ]"]
25616    #[doc = "    },"]
25617    #[doc = "    {"]
25618    #[doc = "      \"description\": \"Transaction is included into finalized block\","]
25619    #[doc = "      \"type\": \"string\","]
25620    #[doc = "      \"enum\": ["]
25621    #[doc = "        \"INCLUDED_FINAL\""]
25622    #[doc = "      ]"]
25623    #[doc = "    },"]
25624    #[doc = "    {"]
25625    #[doc = "      \"description\": \"Transaction is included into finalized block +\\n All non-refund transaction receipts finished their execution.\\n The corresponding blocks for each receipt may be not finalized yet\","]
25626    #[doc = "      \"type\": \"string\","]
25627    #[doc = "      \"enum\": ["]
25628    #[doc = "        \"EXECUTED\""]
25629    #[doc = "      ]"]
25630    #[doc = "    },"]
25631    #[doc = "    {"]
25632    #[doc = "      \"description\": \"Transaction is included into finalized block +\\n Execution of all transaction receipts is finalized, including refund receipts\","]
25633    #[doc = "      \"type\": \"string\","]
25634    #[doc = "      \"enum\": ["]
25635    #[doc = "        \"FINAL\""]
25636    #[doc = "      ]"]
25637    #[doc = "    }"]
25638    #[doc = "  ]"]
25639    #[doc = "}"]
25640    #[doc = r" ```"]
25641    #[doc = r" </details>"]
25642    #[derive(
25643        :: serde :: Deserialize,
25644        :: serde :: Serialize,
25645        Clone,
25646        Copy,
25647        Debug,
25648        Eq,
25649        Hash,
25650        Ord,
25651        PartialEq,
25652        PartialOrd,
25653    )]
25654    pub enum TxExecutionStatus {
25655        #[doc = "Transaction is waiting to be included into the block"]
25656        #[serde(rename = "NONE")]
25657        None,
25658        #[doc = "Transaction is included into the block. The block may be not finalized yet"]
25659        #[serde(rename = "INCLUDED")]
25660        Included,
25661        #[doc = "Transaction is included into the block +\n All non-refund transaction receipts finished their execution.\n The corresponding blocks for tx and each receipt may be not finalized yet"]
25662        #[serde(rename = "EXECUTED_OPTIMISTIC")]
25663        ExecutedOptimistic,
25664        #[doc = "Transaction is included into finalized block"]
25665        #[serde(rename = "INCLUDED_FINAL")]
25666        IncludedFinal,
25667        #[doc = "Transaction is included into finalized block +\n All non-refund transaction receipts finished their execution.\n The corresponding blocks for each receipt may be not finalized yet"]
25668        #[serde(rename = "EXECUTED")]
25669        Executed,
25670        #[doc = "Transaction is included into finalized block +\n Execution of all transaction receipts is finalized, including refund receipts"]
25671        #[serde(rename = "FINAL")]
25672        Final,
25673    }
25674    impl ::std::convert::From<&Self> for TxExecutionStatus {
25675        fn from(value: &TxExecutionStatus) -> Self {
25676            value.clone()
25677        }
25678    }
25679    impl ::std::fmt::Display for TxExecutionStatus {
25680        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25681            match *self {
25682                Self::None => write!(f, "NONE"),
25683                Self::Included => write!(f, "INCLUDED"),
25684                Self::ExecutedOptimistic => write!(f, "EXECUTED_OPTIMISTIC"),
25685                Self::IncludedFinal => write!(f, "INCLUDED_FINAL"),
25686                Self::Executed => write!(f, "EXECUTED"),
25687                Self::Final => write!(f, "FINAL"),
25688            }
25689        }
25690    }
25691    impl ::std::str::FromStr for TxExecutionStatus {
25692        type Err = self::error::ConversionError;
25693        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
25694            match value {
25695                "NONE" => Ok(Self::None),
25696                "INCLUDED" => Ok(Self::Included),
25697                "EXECUTED_OPTIMISTIC" => Ok(Self::ExecutedOptimistic),
25698                "INCLUDED_FINAL" => Ok(Self::IncludedFinal),
25699                "EXECUTED" => Ok(Self::Executed),
25700                "FINAL" => Ok(Self::Final),
25701                _ => Err("invalid value".into()),
25702            }
25703        }
25704    }
25705    impl ::std::convert::TryFrom<&str> for TxExecutionStatus {
25706        type Error = self::error::ConversionError;
25707        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
25708            value.parse()
25709        }
25710    }
25711    impl ::std::convert::TryFrom<&::std::string::String> for TxExecutionStatus {
25712        type Error = self::error::ConversionError;
25713        fn try_from(
25714            value: &::std::string::String,
25715        ) -> ::std::result::Result<Self, self::error::ConversionError> {
25716            value.parse()
25717        }
25718    }
25719    impl ::std::convert::TryFrom<::std::string::String> for TxExecutionStatus {
25720        type Error = self::error::ConversionError;
25721        fn try_from(
25722            value: ::std::string::String,
25723        ) -> ::std::result::Result<Self, self::error::ConversionError> {
25724            value.parse()
25725        }
25726    }
25727    #[doc = "`TypeTransactionOrReceiptId`"]
25728    #[doc = r""]
25729    #[doc = r" <details><summary>JSON schema</summary>"]
25730    #[doc = r""]
25731    #[doc = r" ```json"]
25732    #[doc = "{"]
25733    #[doc = "  \"type\": \"string\","]
25734    #[doc = "  \"enum\": ["]
25735    #[doc = "    \"transaction\","]
25736    #[doc = "    \"receipt\""]
25737    #[doc = "  ]"]
25738    #[doc = "}"]
25739    #[doc = r" ```"]
25740    #[doc = r" </details>"]
25741    #[derive(
25742        :: serde :: Deserialize,
25743        :: serde :: Serialize,
25744        Clone,
25745        Copy,
25746        Debug,
25747        Eq,
25748        Hash,
25749        Ord,
25750        PartialEq,
25751        PartialOrd,
25752    )]
25753    pub enum TypeTransactionOrReceiptId {
25754        #[serde(rename = "transaction")]
25755        Transaction,
25756        #[serde(rename = "receipt")]
25757        Receipt,
25758    }
25759    impl ::std::convert::From<&Self> for TypeTransactionOrReceiptId {
25760        fn from(value: &TypeTransactionOrReceiptId) -> Self {
25761            value.clone()
25762        }
25763    }
25764    impl ::std::fmt::Display for TypeTransactionOrReceiptId {
25765        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25766            match *self {
25767                Self::Transaction => write!(f, "transaction"),
25768                Self::Receipt => write!(f, "receipt"),
25769            }
25770        }
25771    }
25772    impl ::std::str::FromStr for TypeTransactionOrReceiptId {
25773        type Err = self::error::ConversionError;
25774        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
25775            match value {
25776                "transaction" => Ok(Self::Transaction),
25777                "receipt" => Ok(Self::Receipt),
25778                _ => Err("invalid value".into()),
25779            }
25780        }
25781    }
25782    impl ::std::convert::TryFrom<&str> for TypeTransactionOrReceiptId {
25783        type Error = self::error::ConversionError;
25784        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
25785            value.parse()
25786        }
25787    }
25788    impl ::std::convert::TryFrom<&::std::string::String> for TypeTransactionOrReceiptId {
25789        type Error = self::error::ConversionError;
25790        fn try_from(
25791            value: &::std::string::String,
25792        ) -> ::std::result::Result<Self, self::error::ConversionError> {
25793            value.parse()
25794        }
25795    }
25796    impl ::std::convert::TryFrom<::std::string::String> for TypeTransactionOrReceiptId {
25797        type Error = self::error::ConversionError;
25798        fn try_from(
25799            value: ::std::string::String,
25800        ) -> ::std::result::Result<Self, self::error::ConversionError> {
25801            value.parse()
25802        }
25803    }
25804    #[doc = "Use global contract action"]
25805    #[doc = r""]
25806    #[doc = r" <details><summary>JSON schema</summary>"]
25807    #[doc = r""]
25808    #[doc = r" ```json"]
25809    #[doc = "{"]
25810    #[doc = "  \"description\": \"Use global contract action\","]
25811    #[doc = "  \"type\": \"object\","]
25812    #[doc = "  \"required\": ["]
25813    #[doc = "    \"contract_identifier\""]
25814    #[doc = "  ],"]
25815    #[doc = "  \"properties\": {"]
25816    #[doc = "    \"contract_identifier\": {"]
25817    #[doc = "      \"$ref\": \"#/components/schemas/GlobalContractIdentifier\""]
25818    #[doc = "    }"]
25819    #[doc = "  }"]
25820    #[doc = "}"]
25821    #[doc = r" ```"]
25822    #[doc = r" </details>"]
25823    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
25824    pub struct UseGlobalContractAction {
25825        pub contract_identifier: GlobalContractIdentifier,
25826    }
25827    impl ::std::convert::From<&UseGlobalContractAction> for UseGlobalContractAction {
25828        fn from(value: &UseGlobalContractAction) -> Self {
25829            value.clone()
25830        }
25831    }
25832    #[doc = "`ValidatorInfo`"]
25833    #[doc = r""]
25834    #[doc = r" <details><summary>JSON schema</summary>"]
25835    #[doc = r""]
25836    #[doc = r" ```json"]
25837    #[doc = "{"]
25838    #[doc = "  \"type\": \"object\","]
25839    #[doc = "  \"required\": ["]
25840    #[doc = "    \"account_id\""]
25841    #[doc = "  ],"]
25842    #[doc = "  \"properties\": {"]
25843    #[doc = "    \"account_id\": {"]
25844    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
25845    #[doc = "    }"]
25846    #[doc = "  }"]
25847    #[doc = "}"]
25848    #[doc = r" ```"]
25849    #[doc = r" </details>"]
25850    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
25851    pub struct ValidatorInfo {
25852        pub account_id: AccountId,
25853    }
25854    impl ::std::convert::From<&ValidatorInfo> for ValidatorInfo {
25855        fn from(value: &ValidatorInfo) -> Self {
25856            value.clone()
25857        }
25858    }
25859    #[doc = "Reasons for removing a validator from the validator set."]
25860    #[doc = r""]
25861    #[doc = r" <details><summary>JSON schema</summary>"]
25862    #[doc = r""]
25863    #[doc = r" ```json"]
25864    #[doc = "{"]
25865    #[doc = "  \"description\": \"Reasons for removing a validator from the validator set.\","]
25866    #[doc = "  \"oneOf\": ["]
25867    #[doc = "    {"]
25868    #[doc = "      \"description\": \"Deprecated\","]
25869    #[doc = "      \"type\": \"string\","]
25870    #[doc = "      \"enum\": ["]
25871    #[doc = "        \"_UnusedSlashed\""]
25872    #[doc = "      ]"]
25873    #[doc = "    },"]
25874    #[doc = "    {"]
25875    #[doc = "      \"description\": \"Validator didn't produce enough blocks.\","]
25876    #[doc = "      \"type\": \"object\","]
25877    #[doc = "      \"required\": ["]
25878    #[doc = "        \"NotEnoughBlocks\""]
25879    #[doc = "      ],"]
25880    #[doc = "      \"properties\": {"]
25881    #[doc = "        \"NotEnoughBlocks\": {"]
25882    #[doc = "          \"type\": \"object\","]
25883    #[doc = "          \"required\": ["]
25884    #[doc = "            \"expected\","]
25885    #[doc = "            \"produced\""]
25886    #[doc = "          ],"]
25887    #[doc = "          \"properties\": {"]
25888    #[doc = "            \"expected\": {"]
25889    #[doc = "              \"type\": \"integer\","]
25890    #[doc = "              \"format\": \"uint64\","]
25891    #[doc = "              \"minimum\": 0.0"]
25892    #[doc = "            },"]
25893    #[doc = "            \"produced\": {"]
25894    #[doc = "              \"type\": \"integer\","]
25895    #[doc = "              \"format\": \"uint64\","]
25896    #[doc = "              \"minimum\": 0.0"]
25897    #[doc = "            }"]
25898    #[doc = "          }"]
25899    #[doc = "        }"]
25900    #[doc = "      },"]
25901    #[doc = "      \"additionalProperties\": false"]
25902    #[doc = "    },"]
25903    #[doc = "    {"]
25904    #[doc = "      \"description\": \"Validator didn't produce enough chunks.\","]
25905    #[doc = "      \"type\": \"object\","]
25906    #[doc = "      \"required\": ["]
25907    #[doc = "        \"NotEnoughChunks\""]
25908    #[doc = "      ],"]
25909    #[doc = "      \"properties\": {"]
25910    #[doc = "        \"NotEnoughChunks\": {"]
25911    #[doc = "          \"type\": \"object\","]
25912    #[doc = "          \"required\": ["]
25913    #[doc = "            \"expected\","]
25914    #[doc = "            \"produced\""]
25915    #[doc = "          ],"]
25916    #[doc = "          \"properties\": {"]
25917    #[doc = "            \"expected\": {"]
25918    #[doc = "              \"type\": \"integer\","]
25919    #[doc = "              \"format\": \"uint64\","]
25920    #[doc = "              \"minimum\": 0.0"]
25921    #[doc = "            },"]
25922    #[doc = "            \"produced\": {"]
25923    #[doc = "              \"type\": \"integer\","]
25924    #[doc = "              \"format\": \"uint64\","]
25925    #[doc = "              \"minimum\": 0.0"]
25926    #[doc = "            }"]
25927    #[doc = "          }"]
25928    #[doc = "        }"]
25929    #[doc = "      },"]
25930    #[doc = "      \"additionalProperties\": false"]
25931    #[doc = "    },"]
25932    #[doc = "    {"]
25933    #[doc = "      \"description\": \"Validator unstaked themselves.\","]
25934    #[doc = "      \"type\": \"string\","]
25935    #[doc = "      \"enum\": ["]
25936    #[doc = "        \"Unstaked\""]
25937    #[doc = "      ]"]
25938    #[doc = "    },"]
25939    #[doc = "    {"]
25940    #[doc = "      \"description\": \"Validator stake is now below threshold\","]
25941    #[doc = "      \"type\": \"object\","]
25942    #[doc = "      \"required\": ["]
25943    #[doc = "        \"NotEnoughStake\""]
25944    #[doc = "      ],"]
25945    #[doc = "      \"properties\": {"]
25946    #[doc = "        \"NotEnoughStake\": {"]
25947    #[doc = "          \"type\": \"object\","]
25948    #[doc = "          \"required\": ["]
25949    #[doc = "            \"stake_u128\","]
25950    #[doc = "            \"threshold_u128\""]
25951    #[doc = "          ],"]
25952    #[doc = "          \"properties\": {"]
25953    #[doc = "            \"stake_u128\": {"]
25954    #[doc = "              \"type\": \"string\""]
25955    #[doc = "            },"]
25956    #[doc = "            \"threshold_u128\": {"]
25957    #[doc = "              \"type\": \"string\""]
25958    #[doc = "            }"]
25959    #[doc = "          }"]
25960    #[doc = "        }"]
25961    #[doc = "      },"]
25962    #[doc = "      \"additionalProperties\": false"]
25963    #[doc = "    },"]
25964    #[doc = "    {"]
25965    #[doc = "      \"description\": \"Enough stake but is not chosen because of seat limits.\","]
25966    #[doc = "      \"type\": \"string\","]
25967    #[doc = "      \"enum\": ["]
25968    #[doc = "        \"DidNotGetASeat\""]
25969    #[doc = "      ]"]
25970    #[doc = "    },"]
25971    #[doc = "    {"]
25972    #[doc = "      \"description\": \"Validator didn't produce enough chunk endorsements.\","]
25973    #[doc = "      \"type\": \"object\","]
25974    #[doc = "      \"required\": ["]
25975    #[doc = "        \"NotEnoughChunkEndorsements\""]
25976    #[doc = "      ],"]
25977    #[doc = "      \"properties\": {"]
25978    #[doc = "        \"NotEnoughChunkEndorsements\": {"]
25979    #[doc = "          \"type\": \"object\","]
25980    #[doc = "          \"required\": ["]
25981    #[doc = "            \"expected\","]
25982    #[doc = "            \"produced\""]
25983    #[doc = "          ],"]
25984    #[doc = "          \"properties\": {"]
25985    #[doc = "            \"expected\": {"]
25986    #[doc = "              \"type\": \"integer\","]
25987    #[doc = "              \"format\": \"uint64\","]
25988    #[doc = "              \"minimum\": 0.0"]
25989    #[doc = "            },"]
25990    #[doc = "            \"produced\": {"]
25991    #[doc = "              \"type\": \"integer\","]
25992    #[doc = "              \"format\": \"uint64\","]
25993    #[doc = "              \"minimum\": 0.0"]
25994    #[doc = "            }"]
25995    #[doc = "          }"]
25996    #[doc = "        }"]
25997    #[doc = "      },"]
25998    #[doc = "      \"additionalProperties\": false"]
25999    #[doc = "    },"]
26000    #[doc = "    {"]
26001    #[doc = "      \"description\": \"Validator's last block proposal was for a protocol version older than\\n the network's voted protocol version.\","]
26002    #[doc = "      \"type\": \"object\","]
26003    #[doc = "      \"required\": ["]
26004    #[doc = "        \"ProtocolVersionTooOld\""]
26005    #[doc = "      ],"]
26006    #[doc = "      \"properties\": {"]
26007    #[doc = "        \"ProtocolVersionTooOld\": {"]
26008    #[doc = "          \"type\": \"object\","]
26009    #[doc = "          \"required\": ["]
26010    #[doc = "            \"network_version\","]
26011    #[doc = "            \"version\""]
26012    #[doc = "          ],"]
26013    #[doc = "          \"properties\": {"]
26014    #[doc = "            \"network_version\": {"]
26015    #[doc = "              \"type\": \"integer\","]
26016    #[doc = "              \"format\": \"uint32\","]
26017    #[doc = "              \"minimum\": 0.0"]
26018    #[doc = "            },"]
26019    #[doc = "            \"version\": {"]
26020    #[doc = "              \"type\": \"integer\","]
26021    #[doc = "              \"format\": \"uint32\","]
26022    #[doc = "              \"minimum\": 0.0"]
26023    #[doc = "            }"]
26024    #[doc = "          }"]
26025    #[doc = "        }"]
26026    #[doc = "      },"]
26027    #[doc = "      \"additionalProperties\": false"]
26028    #[doc = "    }"]
26029    #[doc = "  ]"]
26030    #[doc = "}"]
26031    #[doc = r" ```"]
26032    #[doc = r" </details>"]
26033    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
26034    pub enum ValidatorKickoutReason {
26035        #[doc = "Deprecated"]
26036        #[serde(rename = "_UnusedSlashed")]
26037        UnusedSlashed,
26038        #[doc = "Validator didn't produce enough blocks."]
26039        NotEnoughBlocks { expected: u64, produced: u64 },
26040        #[doc = "Validator didn't produce enough chunks."]
26041        NotEnoughChunks { expected: u64, produced: u64 },
26042        #[doc = "Validator unstaked themselves."]
26043        Unstaked,
26044        #[doc = "Validator stake is now below threshold"]
26045        NotEnoughStake {
26046            stake_u128: ::std::string::String,
26047            threshold_u128: ::std::string::String,
26048        },
26049        #[doc = "Enough stake but is not chosen because of seat limits."]
26050        DidNotGetASeat,
26051        #[doc = "Validator didn't produce enough chunk endorsements."]
26052        NotEnoughChunkEndorsements { expected: u64, produced: u64 },
26053        #[doc = "Validator's last block proposal was for a protocol version older than\n the network's voted protocol version."]
26054        ProtocolVersionTooOld { network_version: u32, version: u32 },
26055    }
26056    impl ::std::convert::From<&Self> for ValidatorKickoutReason {
26057        fn from(value: &ValidatorKickoutReason) -> Self {
26058            value.clone()
26059        }
26060    }
26061    #[doc = "`ValidatorKickoutView`"]
26062    #[doc = r""]
26063    #[doc = r" <details><summary>JSON schema</summary>"]
26064    #[doc = r""]
26065    #[doc = r" ```json"]
26066    #[doc = "{"]
26067    #[doc = "  \"type\": \"object\","]
26068    #[doc = "  \"required\": ["]
26069    #[doc = "    \"account_id\","]
26070    #[doc = "    \"reason\""]
26071    #[doc = "  ],"]
26072    #[doc = "  \"properties\": {"]
26073    #[doc = "    \"account_id\": {"]
26074    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
26075    #[doc = "    },"]
26076    #[doc = "    \"reason\": {"]
26077    #[doc = "      \"$ref\": \"#/components/schemas/ValidatorKickoutReason\""]
26078    #[doc = "    }"]
26079    #[doc = "  }"]
26080    #[doc = "}"]
26081    #[doc = r" ```"]
26082    #[doc = r" </details>"]
26083    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
26084    pub struct ValidatorKickoutView {
26085        pub account_id: AccountId,
26086        pub reason: ValidatorKickoutReason,
26087    }
26088    impl ::std::convert::From<&ValidatorKickoutView> for ValidatorKickoutView {
26089        fn from(value: &ValidatorKickoutView) -> Self {
26090            value.clone()
26091        }
26092    }
26093    #[doc = "`ValidatorStakeView`"]
26094    #[doc = r""]
26095    #[doc = r" <details><summary>JSON schema</summary>"]
26096    #[doc = r""]
26097    #[doc = r" ```json"]
26098    #[doc = "{"]
26099    #[doc = "  \"type\": \"object\","]
26100    #[doc = "  \"allOf\": ["]
26101    #[doc = "    {"]
26102    #[doc = "      \"$ref\": \"#/components/schemas/ValidatorStakeViewV1\""]
26103    #[doc = "    }"]
26104    #[doc = "  ],"]
26105    #[doc = "  \"required\": ["]
26106    #[doc = "    \"validator_stake_struct_version\""]
26107    #[doc = "  ],"]
26108    #[doc = "  \"properties\": {"]
26109    #[doc = "    \"validator_stake_struct_version\": {"]
26110    #[doc = "      \"type\": \"string\","]
26111    #[doc = "      \"enum\": ["]
26112    #[doc = "        \"V1\""]
26113    #[doc = "      ]"]
26114    #[doc = "    }"]
26115    #[doc = "  }"]
26116    #[doc = "}"]
26117    #[doc = r" ```"]
26118    #[doc = r" </details>"]
26119    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
26120    pub struct ValidatorStakeView {
26121        pub account_id: AccountId,
26122        pub public_key: PublicKey,
26123        pub stake: ::std::string::String,
26124        pub validator_stake_struct_version: ValidatorStakeViewValidatorStakeStructVersion,
26125    }
26126    impl ::std::convert::From<&ValidatorStakeView> for ValidatorStakeView {
26127        fn from(value: &ValidatorStakeView) -> Self {
26128            value.clone()
26129        }
26130    }
26131    #[doc = "`ValidatorStakeViewV1`"]
26132    #[doc = r""]
26133    #[doc = r" <details><summary>JSON schema</summary>"]
26134    #[doc = r""]
26135    #[doc = r" ```json"]
26136    #[doc = "{"]
26137    #[doc = "  \"type\": \"object\","]
26138    #[doc = "  \"required\": ["]
26139    #[doc = "    \"account_id\","]
26140    #[doc = "    \"public_key\","]
26141    #[doc = "    \"stake\""]
26142    #[doc = "  ],"]
26143    #[doc = "  \"properties\": {"]
26144    #[doc = "    \"account_id\": {"]
26145    #[doc = "      \"$ref\": \"#/components/schemas/AccountId\""]
26146    #[doc = "    },"]
26147    #[doc = "    \"public_key\": {"]
26148    #[doc = "      \"$ref\": \"#/components/schemas/PublicKey\""]
26149    #[doc = "    },"]
26150    #[doc = "    \"stake\": {"]
26151    #[doc = "      \"type\": \"string\""]
26152    #[doc = "    }"]
26153    #[doc = "  }"]
26154    #[doc = "}"]
26155    #[doc = r" ```"]
26156    #[doc = r" </details>"]
26157    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
26158    pub struct ValidatorStakeViewV1 {
26159        pub account_id: AccountId,
26160        pub public_key: PublicKey,
26161        pub stake: ::std::string::String,
26162    }
26163    impl ::std::convert::From<&ValidatorStakeViewV1> for ValidatorStakeViewV1 {
26164        fn from(value: &ValidatorStakeViewV1) -> Self {
26165            value.clone()
26166        }
26167    }
26168    #[doc = "`ValidatorStakeViewValidatorStakeStructVersion`"]
26169    #[doc = r""]
26170    #[doc = r" <details><summary>JSON schema</summary>"]
26171    #[doc = r""]
26172    #[doc = r" ```json"]
26173    #[doc = "{"]
26174    #[doc = "  \"type\": \"string\","]
26175    #[doc = "  \"enum\": ["]
26176    #[doc = "    \"V1\""]
26177    #[doc = "  ]"]
26178    #[doc = "}"]
26179    #[doc = r" ```"]
26180    #[doc = r" </details>"]
26181    #[derive(
26182        :: serde :: Deserialize,
26183        :: serde :: Serialize,
26184        Clone,
26185        Copy,
26186        Debug,
26187        Eq,
26188        Hash,
26189        Ord,
26190        PartialEq,
26191        PartialOrd,
26192    )]
26193    pub enum ValidatorStakeViewValidatorStakeStructVersion {
26194        V1,
26195    }
26196    impl ::std::convert::From<&Self> for ValidatorStakeViewValidatorStakeStructVersion {
26197        fn from(value: &ValidatorStakeViewValidatorStakeStructVersion) -> Self {
26198            value.clone()
26199        }
26200    }
26201    impl ::std::fmt::Display for ValidatorStakeViewValidatorStakeStructVersion {
26202        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26203            match *self {
26204                Self::V1 => write!(f, "V1"),
26205            }
26206        }
26207    }
26208    impl ::std::str::FromStr for ValidatorStakeViewValidatorStakeStructVersion {
26209        type Err = self::error::ConversionError;
26210        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
26211            match value {
26212                "V1" => Ok(Self::V1),
26213                _ => Err("invalid value".into()),
26214            }
26215        }
26216    }
26217    impl ::std::convert::TryFrom<&str> for ValidatorStakeViewValidatorStakeStructVersion {
26218        type Error = self::error::ConversionError;
26219        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
26220            value.parse()
26221        }
26222    }
26223    impl ::std::convert::TryFrom<&::std::string::String>
26224        for ValidatorStakeViewValidatorStakeStructVersion
26225    {
26226        type Error = self::error::ConversionError;
26227        fn try_from(
26228            value: &::std::string::String,
26229        ) -> ::std::result::Result<Self, self::error::ConversionError> {
26230            value.parse()
26231        }
26232    }
26233    impl ::std::convert::TryFrom<::std::string::String>
26234        for ValidatorStakeViewValidatorStakeStructVersion
26235    {
26236        type Error = self::error::ConversionError;
26237        fn try_from(
26238            value: ::std::string::String,
26239        ) -> ::std::result::Result<Self, self::error::ConversionError> {
26240            value.parse()
26241        }
26242    }
26243    #[doc = "Data structure for semver version and github tag or commit."]
26244    #[doc = r""]
26245    #[doc = r" <details><summary>JSON schema</summary>"]
26246    #[doc = r""]
26247    #[doc = r" ```json"]
26248    #[doc = "{"]
26249    #[doc = "  \"description\": \"Data structure for semver version and github tag or commit.\","]
26250    #[doc = "  \"type\": \"object\","]
26251    #[doc = "  \"required\": ["]
26252    #[doc = "    \"build\","]
26253    #[doc = "    \"commit\","]
26254    #[doc = "    \"version\""]
26255    #[doc = "  ],"]
26256    #[doc = "  \"properties\": {"]
26257    #[doc = "    \"build\": {"]
26258    #[doc = "      \"type\": \"string\""]
26259    #[doc = "    },"]
26260    #[doc = "    \"commit\": {"]
26261    #[doc = "      \"type\": \"string\""]
26262    #[doc = "    },"]
26263    #[doc = "    \"rustc_version\": {"]
26264    #[doc = "      \"default\": \"\","]
26265    #[doc = "      \"type\": \"string\""]
26266    #[doc = "    },"]
26267    #[doc = "    \"version\": {"]
26268    #[doc = "      \"type\": \"string\""]
26269    #[doc = "    }"]
26270    #[doc = "  }"]
26271    #[doc = "}"]
26272    #[doc = r" ```"]
26273    #[doc = r" </details>"]
26274    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
26275    pub struct Version {
26276        pub build: ::std::string::String,
26277        pub commit: ::std::string::String,
26278        #[serde(default)]
26279        pub rustc_version: ::std::string::String,
26280        pub version: ::std::string::String,
26281    }
26282    impl ::std::convert::From<&Version> for Version {
26283        fn from(value: &Version) -> Self {
26284            value.clone()
26285        }
26286    }
26287    #[doc = "`ViewStateResult`"]
26288    #[doc = r""]
26289    #[doc = r" <details><summary>JSON schema</summary>"]
26290    #[doc = r""]
26291    #[doc = r" ```json"]
26292    #[doc = "{"]
26293    #[doc = "  \"type\": \"object\","]
26294    #[doc = "  \"required\": ["]
26295    #[doc = "    \"values\""]
26296    #[doc = "  ],"]
26297    #[doc = "  \"properties\": {"]
26298    #[doc = "    \"proof\": {"]
26299    #[doc = "      \"type\": \"array\","]
26300    #[doc = "      \"items\": {"]
26301    #[doc = "        \"type\": \"string\""]
26302    #[doc = "      }"]
26303    #[doc = "    },"]
26304    #[doc = "    \"values\": {"]
26305    #[doc = "      \"type\": \"array\","]
26306    #[doc = "      \"items\": {"]
26307    #[doc = "        \"$ref\": \"#/components/schemas/StateItem\""]
26308    #[doc = "      }"]
26309    #[doc = "    }"]
26310    #[doc = "  }"]
26311    #[doc = "}"]
26312    #[doc = r" ```"]
26313    #[doc = r" </details>"]
26314    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
26315    pub struct ViewStateResult {
26316        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
26317        pub proof: ::std::vec::Vec<::std::string::String>,
26318        pub values: ::std::vec::Vec<StateItem>,
26319    }
26320    impl ::std::convert::From<&ViewStateResult> for ViewStateResult {
26321        fn from(value: &ViewStateResult) -> Self {
26322            value.clone()
26323        }
26324    }
26325    #[doc = "`VmConfigView`"]
26326    #[doc = r""]
26327    #[doc = r" <details><summary>JSON schema</summary>"]
26328    #[doc = r""]
26329    #[doc = r" ```json"]
26330    #[doc = "{"]
26331    #[doc = "  \"type\": \"object\","]
26332    #[doc = "  \"required\": ["]
26333    #[doc = "    \"discard_custom_sections\","]
26334    #[doc = "    \"eth_implicit_accounts\","]
26335    #[doc = "    \"ext_costs\","]
26336    #[doc = "    \"fix_contract_loading_cost\","]
26337    #[doc = "    \"global_contract_host_fns\","]
26338    #[doc = "    \"grow_mem_cost\","]
26339    #[doc = "    \"implicit_account_creation\","]
26340    #[doc = "    \"limit_config\","]
26341    #[doc = "    \"regular_op_cost\","]
26342    #[doc = "    \"saturating_float_to_int\","]
26343    #[doc = "    \"storage_get_mode\","]
26344    #[doc = "    \"vm_kind\""]
26345    #[doc = "  ],"]
26346    #[doc = "  \"properties\": {"]
26347    #[doc = "    \"discard_custom_sections\": {"]
26348    #[doc = "      \"description\": \"See [VMConfig::discard_custom_sections](crate::vm::Config::discard_custom_sections).\","]
26349    #[doc = "      \"type\": \"boolean\""]
26350    #[doc = "    },"]
26351    #[doc = "    \"eth_implicit_accounts\": {"]
26352    #[doc = "      \"description\": \"See [VMConfig::eth_implicit_accounts](crate::vm::Config::eth_implicit_accounts).\","]
26353    #[doc = "      \"type\": \"boolean\""]
26354    #[doc = "    },"]
26355    #[doc = "    \"ext_costs\": {"]
26356    #[doc = "      \"description\": \"Costs for runtime externals\","]
26357    #[doc = "      \"allOf\": ["]
26358    #[doc = "        {"]
26359    #[doc = "          \"$ref\": \"#/components/schemas/ExtCostsConfigView\""]
26360    #[doc = "        }"]
26361    #[doc = "      ]"]
26362    #[doc = "    },"]
26363    #[doc = "    \"fix_contract_loading_cost\": {"]
26364    #[doc = "      \"description\": \"See [VMConfig::fix_contract_loading_cost](crate::vm::Config::fix_contract_loading_cost).\","]
26365    #[doc = "      \"type\": \"boolean\""]
26366    #[doc = "    },"]
26367    #[doc = "    \"global_contract_host_fns\": {"]
26368    #[doc = "      \"description\": \"See [VMConfig::global_contract_host_fns](crate::vm::Config::global_contract_host_fns).\","]
26369    #[doc = "      \"type\": \"boolean\""]
26370    #[doc = "    },"]
26371    #[doc = "    \"grow_mem_cost\": {"]
26372    #[doc = "      \"description\": \"Gas cost of a growing memory by single page.\","]
26373    #[doc = "      \"type\": \"integer\","]
26374    #[doc = "      \"format\": \"uint32\","]
26375    #[doc = "      \"minimum\": 0.0"]
26376    #[doc = "    },"]
26377    #[doc = "    \"implicit_account_creation\": {"]
26378    #[doc = "      \"description\": \"See [VMConfig::implicit_account_creation](crate::vm::Config::implicit_account_creation).\","]
26379    #[doc = "      \"type\": \"boolean\""]
26380    #[doc = "    },"]
26381    #[doc = "    \"limit_config\": {"]
26382    #[doc = "      \"description\": \"Describes limits for VM and Runtime.\\n\\n TODO: Consider changing this to `VMLimitConfigView` to avoid dependency\\n on runtime.\","]
26383    #[doc = "      \"allOf\": ["]
26384    #[doc = "        {"]
26385    #[doc = "          \"$ref\": \"#/components/schemas/LimitConfig\""]
26386    #[doc = "        }"]
26387    #[doc = "      ]"]
26388    #[doc = "    },"]
26389    #[doc = "    \"regular_op_cost\": {"]
26390    #[doc = "      \"description\": \"Gas cost of a regular operation.\","]
26391    #[doc = "      \"type\": \"integer\","]
26392    #[doc = "      \"format\": \"uint32\","]
26393    #[doc = "      \"minimum\": 0.0"]
26394    #[doc = "    },"]
26395    #[doc = "    \"saturating_float_to_int\": {"]
26396    #[doc = "      \"description\": \"See [VMConfig::saturating_float_to_int](crate::vm::Config::saturating_float_to_int).\","]
26397    #[doc = "      \"type\": \"boolean\""]
26398    #[doc = "    },"]
26399    #[doc = "    \"storage_get_mode\": {"]
26400    #[doc = "      \"description\": \"See [VMConfig::storage_get_mode](crate::vm::Config::storage_get_mode).\","]
26401    #[doc = "      \"allOf\": ["]
26402    #[doc = "        {"]
26403    #[doc = "          \"$ref\": \"#/components/schemas/StorageGetMode\""]
26404    #[doc = "        }"]
26405    #[doc = "      ]"]
26406    #[doc = "    },"]
26407    #[doc = "    \"vm_kind\": {"]
26408    #[doc = "      \"description\": \"See [VMConfig::vm_kind](crate::vm::Config::vm_kind).\","]
26409    #[doc = "      \"allOf\": ["]
26410    #[doc = "        {"]
26411    #[doc = "          \"$ref\": \"#/components/schemas/VMKind\""]
26412    #[doc = "        }"]
26413    #[doc = "      ]"]
26414    #[doc = "    }"]
26415    #[doc = "  }"]
26416    #[doc = "}"]
26417    #[doc = r" ```"]
26418    #[doc = r" </details>"]
26419    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
26420    pub struct VmConfigView {
26421        #[doc = "See [VMConfig::discard_custom_sections](crate::vm::Config::discard_custom_sections)."]
26422        pub discard_custom_sections: bool,
26423        #[doc = "See [VMConfig::eth_implicit_accounts](crate::vm::Config::eth_implicit_accounts)."]
26424        pub eth_implicit_accounts: bool,
26425        #[doc = "Costs for runtime externals"]
26426        pub ext_costs: ExtCostsConfigView,
26427        #[doc = "See [VMConfig::fix_contract_loading_cost](crate::vm::Config::fix_contract_loading_cost)."]
26428        pub fix_contract_loading_cost: bool,
26429        #[doc = "See [VMConfig::global_contract_host_fns](crate::vm::Config::global_contract_host_fns)."]
26430        pub global_contract_host_fns: bool,
26431        #[doc = "Gas cost of a growing memory by single page."]
26432        pub grow_mem_cost: u32,
26433        #[doc = "See [VMConfig::implicit_account_creation](crate::vm::Config::implicit_account_creation)."]
26434        pub implicit_account_creation: bool,
26435        #[doc = "Describes limits for VM and Runtime.\n\n TODO: Consider changing this to `VMLimitConfigView` to avoid dependency\n on runtime."]
26436        pub limit_config: LimitConfig,
26437        #[doc = "Gas cost of a regular operation."]
26438        pub regular_op_cost: u32,
26439        #[doc = "See [VMConfig::saturating_float_to_int](crate::vm::Config::saturating_float_to_int)."]
26440        pub saturating_float_to_int: bool,
26441        #[doc = "See [VMConfig::storage_get_mode](crate::vm::Config::storage_get_mode)."]
26442        pub storage_get_mode: StorageGetMode,
26443        #[doc = "See [VMConfig::vm_kind](crate::vm::Config::vm_kind)."]
26444        pub vm_kind: VmKind,
26445    }
26446    impl ::std::convert::From<&VmConfigView> for VmConfigView {
26447        fn from(value: &VmConfigView) -> Self {
26448            value.clone()
26449        }
26450    }
26451    #[doc = "`VmKind`"]
26452    #[doc = r""]
26453    #[doc = r" <details><summary>JSON schema</summary>"]
26454    #[doc = r""]
26455    #[doc = r" ```json"]
26456    #[doc = "{"]
26457    #[doc = "  \"oneOf\": ["]
26458    #[doc = "    {"]
26459    #[doc = "      \"description\": \"Wasmer 0.17.x VM. Gone now.\","]
26460    #[doc = "      \"type\": \"string\","]
26461    #[doc = "      \"enum\": ["]
26462    #[doc = "        \"Wasmer0\""]
26463    #[doc = "      ]"]
26464    #[doc = "    },"]
26465    #[doc = "    {"]
26466    #[doc = "      \"description\": \"Wasmtime VM.\","]
26467    #[doc = "      \"type\": \"string\","]
26468    #[doc = "      \"enum\": ["]
26469    #[doc = "        \"Wasmtime\""]
26470    #[doc = "      ]"]
26471    #[doc = "    },"]
26472    #[doc = "    {"]
26473    #[doc = "      \"description\": \"Wasmer 2.x VM.\","]
26474    #[doc = "      \"type\": \"string\","]
26475    #[doc = "      \"enum\": ["]
26476    #[doc = "        \"Wasmer2\""]
26477    #[doc = "      ]"]
26478    #[doc = "    },"]
26479    #[doc = "    {"]
26480    #[doc = "      \"description\": \"NearVM.\","]
26481    #[doc = "      \"type\": \"string\","]
26482    #[doc = "      \"enum\": ["]
26483    #[doc = "        \"NearVm\""]
26484    #[doc = "      ]"]
26485    #[doc = "    }"]
26486    #[doc = "  ]"]
26487    #[doc = "}"]
26488    #[doc = r" ```"]
26489    #[doc = r" </details>"]
26490    #[derive(
26491        :: serde :: Deserialize,
26492        :: serde :: Serialize,
26493        Clone,
26494        Copy,
26495        Debug,
26496        Eq,
26497        Hash,
26498        Ord,
26499        PartialEq,
26500        PartialOrd,
26501    )]
26502    pub enum VmKind {
26503        #[doc = "Wasmer 0.17.x VM. Gone now."]
26504        Wasmer0,
26505        #[doc = "Wasmtime VM."]
26506        Wasmtime,
26507        #[doc = "Wasmer 2.x VM."]
26508        Wasmer2,
26509        #[doc = "NearVM."]
26510        NearVm,
26511    }
26512    impl ::std::convert::From<&Self> for VmKind {
26513        fn from(value: &VmKind) -> Self {
26514            value.clone()
26515        }
26516    }
26517    impl ::std::fmt::Display for VmKind {
26518        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26519            match *self {
26520                Self::Wasmer0 => write!(f, "Wasmer0"),
26521                Self::Wasmtime => write!(f, "Wasmtime"),
26522                Self::Wasmer2 => write!(f, "Wasmer2"),
26523                Self::NearVm => write!(f, "NearVm"),
26524            }
26525        }
26526    }
26527    impl ::std::str::FromStr for VmKind {
26528        type Err = self::error::ConversionError;
26529        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
26530            match value {
26531                "Wasmer0" => Ok(Self::Wasmer0),
26532                "Wasmtime" => Ok(Self::Wasmtime),
26533                "Wasmer2" => Ok(Self::Wasmer2),
26534                "NearVm" => Ok(Self::NearVm),
26535                _ => Err("invalid value".into()),
26536            }
26537        }
26538    }
26539    impl ::std::convert::TryFrom<&str> for VmKind {
26540        type Error = self::error::ConversionError;
26541        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
26542            value.parse()
26543        }
26544    }
26545    impl ::std::convert::TryFrom<&::std::string::String> for VmKind {
26546        type Error = self::error::ConversionError;
26547        fn try_from(
26548            value: &::std::string::String,
26549        ) -> ::std::result::Result<Self, self::error::ConversionError> {
26550            value.parse()
26551        }
26552    }
26553    impl ::std::convert::TryFrom<::std::string::String> for VmKind {
26554        type Error = self::error::ConversionError;
26555        fn try_from(
26556            value: ::std::string::String,
26557        ) -> ::std::result::Result<Self, self::error::ConversionError> {
26558            value.parse()
26559        }
26560    }
26561    #[doc = "A kind of a trap happened during execution of a binary"]
26562    #[doc = r""]
26563    #[doc = r" <details><summary>JSON schema</summary>"]
26564    #[doc = r""]
26565    #[doc = r" ```json"]
26566    #[doc = "{"]
26567    #[doc = "  \"description\": \"A kind of a trap happened during execution of a binary\","]
26568    #[doc = "  \"oneOf\": ["]
26569    #[doc = "    {"]
26570    #[doc = "      \"description\": \"An `unreachable` opcode was executed.\","]
26571    #[doc = "      \"type\": \"string\","]
26572    #[doc = "      \"enum\": ["]
26573    #[doc = "        \"Unreachable\""]
26574    #[doc = "      ]"]
26575    #[doc = "    },"]
26576    #[doc = "    {"]
26577    #[doc = "      \"description\": \"Call indirect incorrect signature trap.\","]
26578    #[doc = "      \"type\": \"string\","]
26579    #[doc = "      \"enum\": ["]
26580    #[doc = "        \"IncorrectCallIndirectSignature\""]
26581    #[doc = "      ]"]
26582    #[doc = "    },"]
26583    #[doc = "    {"]
26584    #[doc = "      \"description\": \"Memory out of bounds trap.\","]
26585    #[doc = "      \"type\": \"string\","]
26586    #[doc = "      \"enum\": ["]
26587    #[doc = "        \"MemoryOutOfBounds\""]
26588    #[doc = "      ]"]
26589    #[doc = "    },"]
26590    #[doc = "    {"]
26591    #[doc = "      \"description\": \"Call indirect out of bounds trap.\","]
26592    #[doc = "      \"type\": \"string\","]
26593    #[doc = "      \"enum\": ["]
26594    #[doc = "        \"CallIndirectOOB\""]
26595    #[doc = "      ]"]
26596    #[doc = "    },"]
26597    #[doc = "    {"]
26598    #[doc = "      \"description\": \"An arithmetic exception, e.g. divided by zero.\","]
26599    #[doc = "      \"type\": \"string\","]
26600    #[doc = "      \"enum\": ["]
26601    #[doc = "        \"IllegalArithmetic\""]
26602    #[doc = "      ]"]
26603    #[doc = "    },"]
26604    #[doc = "    {"]
26605    #[doc = "      \"description\": \"Misaligned atomic access trap.\","]
26606    #[doc = "      \"type\": \"string\","]
26607    #[doc = "      \"enum\": ["]
26608    #[doc = "        \"MisalignedAtomicAccess\""]
26609    #[doc = "      ]"]
26610    #[doc = "    },"]
26611    #[doc = "    {"]
26612    #[doc = "      \"description\": \"Indirect call to null.\","]
26613    #[doc = "      \"type\": \"string\","]
26614    #[doc = "      \"enum\": ["]
26615    #[doc = "        \"IndirectCallToNull\""]
26616    #[doc = "      ]"]
26617    #[doc = "    },"]
26618    #[doc = "    {"]
26619    #[doc = "      \"description\": \"Stack overflow.\","]
26620    #[doc = "      \"type\": \"string\","]
26621    #[doc = "      \"enum\": ["]
26622    #[doc = "        \"StackOverflow\""]
26623    #[doc = "      ]"]
26624    #[doc = "    },"]
26625    #[doc = "    {"]
26626    #[doc = "      \"description\": \"Generic trap.\","]
26627    #[doc = "      \"type\": \"string\","]
26628    #[doc = "      \"enum\": ["]
26629    #[doc = "        \"GenericTrap\""]
26630    #[doc = "      ]"]
26631    #[doc = "    }"]
26632    #[doc = "  ]"]
26633    #[doc = "}"]
26634    #[doc = r" ```"]
26635    #[doc = r" </details>"]
26636    #[derive(
26637        :: serde :: Deserialize,
26638        :: serde :: Serialize,
26639        Clone,
26640        Copy,
26641        Debug,
26642        Eq,
26643        Hash,
26644        Ord,
26645        PartialEq,
26646        PartialOrd,
26647    )]
26648    pub enum WasmTrap {
26649        #[doc = "An `unreachable` opcode was executed."]
26650        Unreachable,
26651        #[doc = "Call indirect incorrect signature trap."]
26652        IncorrectCallIndirectSignature,
26653        #[doc = "Memory out of bounds trap."]
26654        MemoryOutOfBounds,
26655        #[doc = "Call indirect out of bounds trap."]
26656        #[serde(rename = "CallIndirectOOB")]
26657        CallIndirectOob,
26658        #[doc = "An arithmetic exception, e.g. divided by zero."]
26659        IllegalArithmetic,
26660        #[doc = "Misaligned atomic access trap."]
26661        MisalignedAtomicAccess,
26662        #[doc = "Indirect call to null."]
26663        IndirectCallToNull,
26664        #[doc = "Stack overflow."]
26665        StackOverflow,
26666        #[doc = "Generic trap."]
26667        GenericTrap,
26668    }
26669    impl ::std::convert::From<&Self> for WasmTrap {
26670        fn from(value: &WasmTrap) -> Self {
26671            value.clone()
26672        }
26673    }
26674    impl ::std::fmt::Display for WasmTrap {
26675        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26676            match *self {
26677                Self::Unreachable => write!(f, "Unreachable"),
26678                Self::IncorrectCallIndirectSignature => write!(f, "IncorrectCallIndirectSignature"),
26679                Self::MemoryOutOfBounds => write!(f, "MemoryOutOfBounds"),
26680                Self::CallIndirectOob => write!(f, "CallIndirectOOB"),
26681                Self::IllegalArithmetic => write!(f, "IllegalArithmetic"),
26682                Self::MisalignedAtomicAccess => write!(f, "MisalignedAtomicAccess"),
26683                Self::IndirectCallToNull => write!(f, "IndirectCallToNull"),
26684                Self::StackOverflow => write!(f, "StackOverflow"),
26685                Self::GenericTrap => write!(f, "GenericTrap"),
26686            }
26687        }
26688    }
26689    impl ::std::str::FromStr for WasmTrap {
26690        type Err = self::error::ConversionError;
26691        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
26692            match value {
26693                "Unreachable" => Ok(Self::Unreachable),
26694                "IncorrectCallIndirectSignature" => Ok(Self::IncorrectCallIndirectSignature),
26695                "MemoryOutOfBounds" => Ok(Self::MemoryOutOfBounds),
26696                "CallIndirectOOB" => Ok(Self::CallIndirectOob),
26697                "IllegalArithmetic" => Ok(Self::IllegalArithmetic),
26698                "MisalignedAtomicAccess" => Ok(Self::MisalignedAtomicAccess),
26699                "IndirectCallToNull" => Ok(Self::IndirectCallToNull),
26700                "StackOverflow" => Ok(Self::StackOverflow),
26701                "GenericTrap" => Ok(Self::GenericTrap),
26702                _ => Err("invalid value".into()),
26703            }
26704        }
26705    }
26706    impl ::std::convert::TryFrom<&str> for WasmTrap {
26707        type Error = self::error::ConversionError;
26708        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
26709            value.parse()
26710        }
26711    }
26712    impl ::std::convert::TryFrom<&::std::string::String> for WasmTrap {
26713        type Error = self::error::ConversionError;
26714        fn try_from(
26715            value: &::std::string::String,
26716        ) -> ::std::result::Result<Self, self::error::ConversionError> {
26717            value.parse()
26718        }
26719    }
26720    impl ::std::convert::TryFrom<::std::string::String> for WasmTrap {
26721        type Error = self::error::ConversionError;
26722        fn try_from(
26723            value: ::std::string::String,
26724        ) -> ::std::result::Result<Self, self::error::ConversionError> {
26725            value.parse()
26726        }
26727    }
26728    #[doc = "Configuration specific to ChunkStateWitness."]
26729    #[doc = r""]
26730    #[doc = r" <details><summary>JSON schema</summary>"]
26731    #[doc = r""]
26732    #[doc = r" ```json"]
26733    #[doc = "{"]
26734    #[doc = "  \"description\": \"Configuration specific to ChunkStateWitness.\","]
26735    #[doc = "  \"type\": \"object\","]
26736    #[doc = "  \"required\": ["]
26737    #[doc = "    \"combined_transactions_size_limit\","]
26738    #[doc = "    \"main_storage_proof_size_soft_limit\","]
26739    #[doc = "    \"new_transactions_validation_state_size_soft_limit\""]
26740    #[doc = "  ],"]
26741    #[doc = "  \"properties\": {"]
26742    #[doc = "    \"combined_transactions_size_limit\": {"]
26743    #[doc = "      \"description\": \"A witness contains transactions from both the previous chunk and the current one.\\n This parameter limits the sum of sizes of transactions from both of those chunks.\","]
26744    #[doc = "      \"type\": \"integer\","]
26745    #[doc = "      \"format\": \"uint\","]
26746    #[doc = "      \"minimum\": 0.0"]
26747    #[doc = "    },"]
26748    #[doc = "    \"main_storage_proof_size_soft_limit\": {"]
26749    #[doc = "      \"description\": \"Size limit for storage proof generated while executing receipts in a chunk.\\n After this limit is reached we defer execution of any new receipts.\","]
26750    #[doc = "      \"type\": \"integer\","]
26751    #[doc = "      \"format\": \"uint\","]
26752    #[doc = "      \"minimum\": 0.0"]
26753    #[doc = "    },"]
26754    #[doc = "    \"new_transactions_validation_state_size_soft_limit\": {"]
26755    #[doc = "      \"description\": \"Soft size limit of storage proof used to validate new transactions in ChunkStateWitness.\","]
26756    #[doc = "      \"type\": \"integer\","]
26757    #[doc = "      \"format\": \"uint\","]
26758    #[doc = "      \"minimum\": 0.0"]
26759    #[doc = "    }"]
26760    #[doc = "  }"]
26761    #[doc = "}"]
26762    #[doc = r" ```"]
26763    #[doc = r" </details>"]
26764    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
26765    pub struct WitnessConfigView {
26766        #[doc = "A witness contains transactions from both the previous chunk and the current one.\n This parameter limits the sum of sizes of transactions from both of those chunks."]
26767        pub combined_transactions_size_limit: u32,
26768        #[doc = "Size limit for storage proof generated while executing receipts in a chunk.\n After this limit is reached we defer execution of any new receipts."]
26769        pub main_storage_proof_size_soft_limit: u32,
26770        #[doc = "Soft size limit of storage proof used to validate new transactions in ChunkStateWitness."]
26771        pub new_transactions_validation_state_size_soft_limit: u32,
26772    }
26773    impl ::std::convert::From<&WitnessConfigView> for WitnessConfigView {
26774        fn from(value: &WitnessConfigView) -> Self {
26775            value.clone()
26776        }
26777    }
26778    #[doc = r" Generation of default values for serde."]
26779    pub mod defaults {
26780        pub(super) fn default_u64<T, const V: u64>() -> T
26781        where
26782            T: ::std::convert::TryFrom<u64>,
26783            <T as ::std::convert::TryFrom<u64>>::Error: ::std::fmt::Debug,
26784        {
26785            T::try_from(V).unwrap()
26786        }
26787        pub(super) fn execution_outcome_view_metadata() -> super::ExecutionMetadataView {
26788            super::ExecutionMetadataView {
26789                gas_profile: Default::default(),
26790                version: 1_u32,
26791            }
26792        }
26793        pub(super) fn gc_config_gc_step_period() -> super::DurationAsStdSchemaProvider {
26794            super::DurationAsStdSchemaProvider {
26795                nanos: 0_i32,
26796                secs: 1_i64,
26797            }
26798        }
26799        pub(super) fn genesis_config_minimum_stake_ratio() -> [i32; 2usize] {
26800            [1_i32, 6250_i32]
26801        }
26802        pub(super) fn genesis_config_online_max_threshold() -> [i32; 2usize] {
26803            [99_i32, 100_i32]
26804        }
26805        pub(super) fn genesis_config_online_min_threshold() -> [i32; 2usize] {
26806            [9_i32, 10_i32]
26807        }
26808        pub(super) fn genesis_config_protocol_upgrade_stake_threshold() -> [i32; 2usize] {
26809            [4_i32, 5_i32]
26810        }
26811        pub(super) fn genesis_config_shard_layout() -> super::ShardLayout {
26812            super::ShardLayout::V2(super::ShardLayoutV2 {
26813                boundary_accounts: vec![],
26814                id_to_index_map: [("0".to_string(), 0_u32)].into_iter().collect(),
26815                index_to_id_map: [("0".to_string(), super::ShardId(0_u64))]
26816                    .into_iter()
26817                    .collect(),
26818                shard_ids: vec![super::ShardId(0_u64)],
26819                shards_parent_map: ::std::option::Option::None,
26820                shards_split_map: ::std::option::Option::None,
26821                version: 0_u32,
26822            })
26823        }
26824        pub(super) fn limit_config_account_id_validity_rules_version(
26825        ) -> super::AccountIdValidityRulesVersion {
26826            super::AccountIdValidityRulesVersion(0_u8)
26827        }
26828        pub(super) fn rpc_send_transaction_request_wait_until() -> super::TxExecutionStatus {
26829            super::TxExecutionStatus::ExecutedOptimistic
26830        }
26831        pub(super) fn rpc_transaction_status_request_variant0_wait_until(
26832        ) -> super::TxExecutionStatus {
26833            super::TxExecutionStatus::ExecutedOptimistic
26834        }
26835        pub(super) fn rpc_transaction_status_request_variant1_wait_until(
26836        ) -> super::TxExecutionStatus {
26837            super::TxExecutionStatus::ExecutedOptimistic
26838        }
26839    }