Skip to main content

mina_p2p_messages/v2/
generated.rs

1use super::manual::*;
2use crate::{array::ArrayN16, list::List, pseq::PaddedSeq};
3use binprot_derive::{BinProtRead, BinProtWrite};
4use derive_more::Deref;
5use malloc_size_of::MallocSizeOf;
6use malloc_size_of_derive::MallocSizeOf;
7use mina_macros::SerdeYojsonEnum;
8use rsexp_derive::{OfSexp, SexpOf};
9use serde::{Deserialize, Serialize};
10use std::sync::Arc;
11
12/// **OCaml name**: `Mina_block__Block.Stable.V2`
13///
14/// Gid: `1102`
15/// Location: [src/lib/mina_block/block.ml:8:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_block/block.ml#L8)
16#[derive(
17    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
18)]
19pub struct MinaBlockBlockStableV2 {
20    pub header: MinaBlockHeaderStableV2,
21    pub body: StagedLedgerDiffBodyStableV1,
22}
23
24/// **OCaml name**: `Network_pool__Transaction_pool.Diff_versioned.Stable.V2`
25///
26/// Gid: `1122`
27/// Location: [src/lib/network_pool/transaction_pool.ml:47:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/network_pool/transaction_pool.ml#L47)
28///
29///
30/// Gid: `167`
31/// Location: [src/std_internal.ml:131:2](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/std_internal.ml#L131)
32/// Args: MinaBaseUserCommandStableV2
33///
34///
35/// Gid: `50`
36/// Location: [src/list0.ml:6:0](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/list0.ml#L6)
37/// Args: MinaBaseUserCommandStableV2
38#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
39pub struct NetworkPoolTransactionPoolDiffVersionedStableV2(pub List<MinaBaseUserCommandStableV2>);
40
41/// **OCaml name**: `Network_pool__Snark_pool.Diff_versioned.Stable.V2`
42///
43/// Gid: `1126`
44/// Location: [src/lib/network_pool/snark_pool.ml:542:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/network_pool/snark_pool.ml#L542)
45#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
46pub enum NetworkPoolSnarkPoolDiffVersionedStableV2 {
47    AddSolvedWork(
48        Box<(
49            TransactionSnarkWorkStatementStableV2,
50            NetworkPoolSnarkPoolDiffVersionedStableV2AddSolvedWork1,
51        )>,
52    ),
53    Empty,
54}
55
56/// **OCaml name**: `Mina_base__Sparse_ledger_base.Stable.V2`
57///
58/// Gid: `882`
59/// Location: [src/lib/mina_base/sparse_ledger_base.ml:8:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/sparse_ledger_base.ml#L8)
60///
61///
62/// Gid: `661`
63/// Location: [src/lib/sparse_ledger_lib/sparse_ledger.ml:38:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/sparse_ledger_lib/sparse_ledger.ml#L38)
64/// Args: LedgerHash , MinaBaseAccountIdStableV2 , MinaBaseAccountBinableArgStableV2
65#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
66pub struct MinaBaseSparseLedgerBaseStableV2 {
67    pub indexes: List<(MinaBaseAccountIdStableV2, crate::number::UInt64)>,
68    pub depth: crate::number::UInt64,
69    pub tree: MinaBaseSparseLedgerBaseStableV2Tree,
70}
71
72/// **OCaml name**: `Mina_base__Account.Binable_arg.Stable.V2`
73///
74/// Gid: `780`
75/// Location: [src/lib/mina_base/account.ml:265:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account.ml#L265)
76///
77///
78/// Gid: `778`
79/// Location: [src/lib/mina_base/account.ml:210:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account.ml#L210)
80/// Args: NonZeroCurvePoint , TokenIdKeyHash , crate :: string :: ByteString , CurrencyBalanceStableV1 , UnsignedExtendedUInt32StableV1 , MinaBaseReceiptChainHashStableV1 , Option < NonZeroCurvePoint > , StateHash , MinaBaseAccountTimingStableV2 , MinaBasePermissionsStableV2 , Option < MinaBaseZkappAccountStableV2 >
81#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
82pub struct MinaBaseAccountBinableArgStableV2 {
83    pub public_key: NonZeroCurvePoint,
84    pub token_id: TokenIdKeyHash,
85    pub token_symbol: crate::string::ByteString,
86    pub balance: CurrencyBalanceStableV1,
87    pub nonce: UnsignedExtendedUInt32StableV1,
88    pub receipt_chain_hash: MinaBaseReceiptChainHashStableV1,
89    pub delegate: Option<NonZeroCurvePoint>,
90    pub voting_for: StateHash,
91    pub timing: MinaBaseAccountTimingStableV2,
92    pub permissions: MinaBasePermissionsStableV2,
93    pub zkapp: Option<MinaBaseZkappAccountStableV2>,
94}
95
96/// **OCaml name**: `Network_peer__Peer.Stable.V1`
97///
98/// Gid: `890`
99/// Location: [src/lib/network_peer/peer.ml:56:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/network_peer/peer.ml#L56)
100#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
101pub struct NetworkPeerPeerStableV1 {
102    pub host: crate::string::ByteString,
103    pub libp2p_port: crate::number::UInt64,
104    pub peer_id: NetworkPeerPeerIdStableV1,
105}
106
107/// **OCaml name**: `Transaction_snark_scan_state.Stable.V2`
108///
109/// Gid: `1058`
110/// Location: [src/lib/transaction_snark_scan_state/transaction_snark_scan_state.ml:160:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_snark_scan_state/transaction_snark_scan_state.ml#L160)
111#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
112pub struct TransactionSnarkScanStateStableV2 {
113    pub scan_state: TransactionSnarkScanStateStableV2ScanState,
114    pub previous_incomplete_zkapp_updates: (
115        List<TransactionSnarkScanStateTransactionWithWitnessStableV2>,
116        TransactionSnarkScanStateStableV2PreviousIncompleteZkappUpdates1,
117    ),
118}
119
120/// **OCaml name**: `Mina_base__Pending_coinbase.Make_str.Stable.V2`
121///
122/// Gid: `874`
123/// Location: [src/lib/mina_base/pending_coinbase.ml:1281:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L1281)
124///
125///
126/// Gid: `873`
127/// Location: [src/lib/mina_base/pending_coinbase.ml:1269:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L1269)
128/// Args: MinaBasePendingCoinbaseMerkleTreeVersionedStableV2 , MinaBasePendingCoinbaseStackIdStableV1
129#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
130pub struct MinaBasePendingCoinbaseStableV2 {
131    pub tree: MinaBasePendingCoinbaseMerkleTreeVersionedStableV2,
132    pub pos_list: List<MinaBasePendingCoinbaseStackIdStableV1>,
133    pub new_pos: MinaBasePendingCoinbaseStackIdStableV1,
134}
135
136/// **OCaml name**: `Mina_state__Protocol_state.Make_str.Value.Stable.V2`
137///
138/// Gid: `1004`
139/// Location: [src/lib/mina_state/protocol_state.ml:203:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/protocol_state.ml#L203)
140///
141///
142/// Gid: `1000`
143/// Location: [src/lib/mina_state/protocol_state.ml:38:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/protocol_state.ml#L38)
144/// Args: StateHash , MinaStateProtocolStateBodyValueStableV2
145#[derive(
146    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
147)]
148pub struct MinaStateProtocolStateValueStableV2 {
149    pub previous_state_hash: StateHash,
150    pub body: MinaStateProtocolStateBodyValueStableV2,
151}
152
153/// **OCaml name**: `Mina_ledger__Sync_ledger.Query.Stable.V1`
154///
155/// Gid: `940`
156/// Location: [src/lib/mina_ledger/sync_ledger.ml:83:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_ledger/sync_ledger.ml#L83)
157///
158///
159/// Gid: `927`
160/// Location: [src/lib/syncable_ledger/syncable_ledger.ml:17:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/syncable_ledger/syncable_ledger.ml#L17)
161/// Args: MerkleAddressBinableArgStableV1
162#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
163pub enum MinaLedgerSyncLedgerQueryStableV1 {
164    WhatChildHashes(MerkleAddressBinableArgStableV1),
165    WhatContents(MerkleAddressBinableArgStableV1),
166    NumAccounts,
167}
168
169/// **OCaml name**: `Mina_ledger__Sync_ledger.Answer.Stable.V2`
170///
171/// Gid: `939`
172/// Location: [src/lib/mina_ledger/sync_ledger.ml:58:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_ledger/sync_ledger.ml#L58)
173///
174///
175/// Gid: `928`
176/// Location: [src/lib/syncable_ledger/syncable_ledger.ml:35:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/syncable_ledger/syncable_ledger.ml#L35)
177/// Args: LedgerHash , MinaBaseAccountBinableArgStableV2
178#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
179pub enum MinaLedgerSyncLedgerAnswerStableV2 {
180    ChildHashesAre(LedgerHash, LedgerHash),
181    ContentsAre(List<MinaBaseAccountBinableArgStableV2>),
182    NumAccounts(crate::number::UInt64, LedgerHash),
183}
184
185/// **OCaml name**: `Consensus__Proof_of_stake.Make_str.Data.Consensus_state.Value.Stable.V2`
186///
187/// Gid: `984`
188/// Location: [src/lib/consensus/proof_of_stake.ml:1768:12](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/consensus/proof_of_stake.ml#L1768)
189///
190///
191/// Gid: `983`
192/// Location: [src/lib/consensus/proof_of_stake.ml:1723:12](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/consensus/proof_of_stake.ml#L1723)
193/// Args: UnsignedExtendedUInt32StableV1 , ConsensusVrfOutputTruncatedStableV1 , CurrencyAmountStableV1 , ConsensusGlobalSlotStableV1 , MinaNumbersGlobalSlotSinceGenesisMStableV1 , ConsensusProofOfStakeDataEpochDataStakingValueVersionedValueStableV1 , ConsensusProofOfStakeDataEpochDataNextValueVersionedValueStableV1 , bool , NonZeroCurvePoint
194#[derive(
195    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
196)]
197pub struct ConsensusProofOfStakeDataConsensusStateValueStableV2 {
198    pub blockchain_length: UnsignedExtendedUInt32StableV1,
199    pub epoch_count: UnsignedExtendedUInt32StableV1,
200    pub min_window_density: UnsignedExtendedUInt32StableV1,
201    pub sub_window_densities: List<UnsignedExtendedUInt32StableV1>,
202    pub last_vrf_output: ConsensusVrfOutputTruncatedStableV1,
203    pub total_currency: CurrencyAmountStableV1,
204    pub curr_global_slot_since_hard_fork: ConsensusGlobalSlotStableV1,
205    pub global_slot_since_genesis: MinaNumbersGlobalSlotSinceGenesisMStableV1,
206    pub staking_epoch_data: ConsensusProofOfStakeDataEpochDataStakingValueVersionedValueStableV1,
207    pub next_epoch_data: ConsensusProofOfStakeDataEpochDataNextValueVersionedValueStableV1,
208    pub has_ancestor_in_same_checkpoint_window: bool,
209    pub block_stake_winner: NonZeroCurvePoint,
210    pub block_creator: NonZeroCurvePoint,
211    pub coinbase_receiver: NonZeroCurvePoint,
212    pub supercharge_coinbase: bool,
213}
214
215/// **OCaml name**: `Sync_status.T.Stable.V1`
216///
217/// Gid: `1158`
218/// Location: [src/lib/sync_status/sync_status.ml:55:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/sync_status/sync_status.ml#L55)
219#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
220#[polymorphic_variant]
221pub enum SyncStatusTStableV1 {
222    #[allow(non_camel_case_types)]
223    Connecting,
224    #[allow(non_camel_case_types)]
225    Listening,
226    #[allow(non_camel_case_types)]
227    Offline,
228    #[allow(non_camel_case_types)]
229    Bootstrap,
230    #[allow(non_camel_case_types)]
231    Synced,
232    #[allow(non_camel_case_types)]
233    Catchup,
234}
235
236/// **OCaml name**: `Trust_system__Peer_status.Stable.V1`
237///
238/// Gid: `925`
239/// Location: [src/lib/trust_system/peer_status.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/trust_system/peer_status.ml#L6)
240#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
241pub struct TrustSystemPeerStatusStableV1 {
242    pub trust: crate::number::Float64,
243    pub banned: TrustSystemBannedStatusStableV1,
244}
245
246/// **OCaml name**: `Blockchain_snark__Blockchain.Stable.V2`
247///
248/// Gid: `1069`
249/// Location: [src/lib/blockchain_snark/blockchain.ml:8:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/blockchain_snark/blockchain.ml#L8)
250#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
251pub struct BlockchainSnarkBlockchainStableV2 {
252    pub state: MinaStateProtocolStateValueStableV2,
253    pub proof: Arc<MinaBaseProofStableV2>,
254}
255
256/// **OCaml name**: `Transaction_witness.Stable.V2`
257///
258/// Gid: `1009`
259/// Location: [src/lib/transaction_witness/transaction_witness.ml:54:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_witness/transaction_witness.ml#L54)
260#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
261pub struct TransactionWitnessStableV2 {
262    pub transaction: MinaTransactionTransactionStableV2,
263    pub first_pass_ledger: MinaBaseSparseLedgerBaseStableV2,
264    pub second_pass_ledger: MinaBaseSparseLedgerBaseStableV2,
265    pub protocol_state_body: MinaStateProtocolStateBodyValueStableV2,
266    pub init_stack: MinaBasePendingCoinbaseStackVersionedStableV1,
267    pub status: MinaBaseTransactionStatusStableV2,
268    pub block_global_slot: MinaNumbersGlobalSlotSinceGenesisMStableV1,
269}
270
271/// **OCaml name**: `Prover.Extend_blockchain_input.Stable.V2`
272///
273/// Gid: `1280`
274/// Location: [src/lib/prover/prover.ml:16:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/prover/prover.ml#L16)
275#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
276pub struct ProverExtendBlockchainInputStableV2 {
277    pub chain: BlockchainSnarkBlockchainStableV2,
278    pub next_state: MinaStateProtocolStateValueStableV2,
279    pub block: MinaStateSnarkTransitionValueStableV2,
280    pub ledger_proof: Option<Arc<LedgerProofProdStableV2>>,
281    pub prover_state: ConsensusStakeProofStableV2,
282    pub pending_coinbase: MinaBasePendingCoinbaseWitnessStableV2,
283}
284
285/// **OCaml name**: `Snark_worker.Worker.Rpcs_versioned.Get_work.V2.T.response`
286///
287/// Gid: `1135`
288/// Location: [src/lib/snark_worker/snark_worker.ml:29:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/snark_worker/snark_worker.ml#L29)
289///
290///
291/// Gid: `169`
292/// Location: [src/std_internal.ml:137:2](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/std_internal.ml#L137)
293/// Args: (SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0 , NonZeroCurvePoint ,)
294///
295///
296/// Gid: `60`
297/// Location: [src/option.ml:4:0](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/option.ml#L4)
298/// Args: (SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0 , NonZeroCurvePoint ,)
299#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
300pub struct SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponse(
301    pub  Option<(
302        SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0,
303        NonZeroCurvePoint,
304    )>,
305);
306
307/// **OCaml name**: `Snark_worker.Worker.Rpcs_versioned.Submit_work.V2.T.query`
308///
309/// Gid: `1136`
310/// Location: [src/lib/snark_worker/snark_worker.ml:59:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/snark_worker/snark_worker.ml#L59)
311///
312///
313/// Gid: `1040`
314/// Location: [src/lib/snark_work_lib/work.ml:90:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/snark_work_lib/work.ml#L90)
315/// Args: SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0 , LedgerProofProdStableV2
316#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
317pub struct SnarkWorkerWorkerRpcsVersionedSubmitWorkV2TQuery {
318    pub proofs: TransactionSnarkWorkTStableV2Proofs,
319    pub metrics: SnarkWorkerWorkerRpcsVersionedSubmitWorkV2TQueryMetrics,
320    pub spec: SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0,
321    pub prover: NonZeroCurvePoint,
322}
323
324/// **OCaml name**: `Mina_base__User_command.Verifiable.Stable.V2`
325///
326/// Gid: `841`
327/// Location: [src/lib/mina_base/user_command.ml:144:6](https://github.com/MinaProtocol/mina/blob/src/lib/mina_base/user_command.ml#L144)
328///
329///
330/// Gid: `837`
331/// Location: [src/lib/mina_base/user_command.ml:7:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/user_command.ml#L7)
332/// Args: MinaBaseSignedCommandStableV2 , MinaBaseZkappCommandVerifiableStableV1
333#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
334pub enum MinaBaseUserCommandVerifiableStableV2 {
335    SignedCommand(MinaBaseSignedCommandStableV2),
336    ZkappCommand(MinaBaseZkappCommandVerifiableStableV1),
337}
338
339/// **OCaml name**: `Mina_base__Zkapp_statement.Stable.V2`
340///
341/// Gid: `836`
342/// Location: [src/lib/mina_base/zkapp_statement.ml:28:4](https://github.com/MinaProtocol/mina/blob/src/lib/mina_base/zkapp_statement.ml#L28)
343///
344///
345/// Gid: `835`
346/// Location: [src/lib/mina_base/zkapp_statement.ml:15:6](https://github.com/MinaProtocol/mina/blob/src/lib/mina_base/zkapp_statement.ml#L15)
347/// Args: crate :: bigint :: BigInt
348#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
349pub struct MinaBaseZkappStatementStableV2 {
350    pub account_update: crate::bigint::BigInt,
351    pub calls: crate::bigint::BigInt,
352}
353
354/// Derived name: `Pickles__Proof.Proofs_verified_2.Repr.Stable.V2.statement.fp`
355///
356/// Gid: `461`
357/// Location: [src/lib/pickles_types/shifted_value.ml:98:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles_types/shifted_value.ml#L98)
358/// Args: crate :: bigint :: BigInt
359#[derive(Clone, Debug, PartialEq, BinProtRead, BinProtWrite)]
360pub enum PicklesProofProofsVerified2ReprStableV2StatementFp {
361    ShiftedValue(crate::bigint::BigInt),
362}
363
364/// Derived name: `Pickles__Proof.Proofs_verified_2.Repr.Stable.V2.statement.proof_state.deferred_values.plonk.feature_flags`
365///
366/// Gid: `464`
367/// Location: [src/lib/pickles_types/plonk_types.ml:194:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles_types/plonk_types.ml#L194)
368/// Args: bool
369#[derive(
370    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, SexpOf, OfSexp,
371)]
372pub struct PicklesProofProofsVerified2ReprStableV2StatementProofStateDeferredValuesPlonkFeatureFlags
373{
374    pub range_check0: bool,
375    pub range_check1: bool,
376    pub foreign_field_add: bool,
377    pub foreign_field_mul: bool,
378    pub xor: bool,
379    pub rot: bool,
380    pub lookup: bool,
381    pub runtime_tables: bool,
382}
383
384/// Derived name: `Pickles__Proof.Proofs_verified_2.Repr.Stable.V2.prev_evals.evals.evals`
385///
386/// Gid: `465`
387/// Location: [src/lib/pickles_types/plonk_types.ml:363:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles_types/plonk_types.ml#L363)
388/// Args: (ArrayN16 < crate :: bigint :: BigInt > , ArrayN16 < crate :: bigint :: BigInt > ,)
389#[derive(
390    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, SexpOf, OfSexp,
391)]
392pub struct PicklesProofProofsVerified2ReprStableV2PrevEvalsEvalsEvals {
393    pub w: PaddedSeq<
394        (
395            ArrayN16<crate::bigint::BigInt>,
396            ArrayN16<crate::bigint::BigInt>,
397        ),
398        15,
399    >,
400    pub coefficients: PaddedSeq<
401        (
402            ArrayN16<crate::bigint::BigInt>,
403            ArrayN16<crate::bigint::BigInt>,
404        ),
405        15,
406    >,
407    pub z: (
408        ArrayN16<crate::bigint::BigInt>,
409        ArrayN16<crate::bigint::BigInt>,
410    ),
411    pub s: PaddedSeq<
412        (
413            ArrayN16<crate::bigint::BigInt>,
414            ArrayN16<crate::bigint::BigInt>,
415        ),
416        6,
417    >,
418    pub generic_selector: (
419        ArrayN16<crate::bigint::BigInt>,
420        ArrayN16<crate::bigint::BigInt>,
421    ),
422    pub poseidon_selector: (
423        ArrayN16<crate::bigint::BigInt>,
424        ArrayN16<crate::bigint::BigInt>,
425    ),
426    pub complete_add_selector: (
427        ArrayN16<crate::bigint::BigInt>,
428        ArrayN16<crate::bigint::BigInt>,
429    ),
430    pub mul_selector: (
431        ArrayN16<crate::bigint::BigInt>,
432        ArrayN16<crate::bigint::BigInt>,
433    ),
434    pub emul_selector: (
435        ArrayN16<crate::bigint::BigInt>,
436        ArrayN16<crate::bigint::BigInt>,
437    ),
438    pub endomul_scalar_selector: (
439        ArrayN16<crate::bigint::BigInt>,
440        ArrayN16<crate::bigint::BigInt>,
441    ),
442    pub range_check0_selector: Option<(
443        ArrayN16<crate::bigint::BigInt>,
444        ArrayN16<crate::bigint::BigInt>,
445    )>,
446    pub range_check1_selector: Option<(
447        ArrayN16<crate::bigint::BigInt>,
448        ArrayN16<crate::bigint::BigInt>,
449    )>,
450    pub foreign_field_add_selector: Option<(
451        ArrayN16<crate::bigint::BigInt>,
452        ArrayN16<crate::bigint::BigInt>,
453    )>,
454    pub foreign_field_mul_selector: Option<(
455        ArrayN16<crate::bigint::BigInt>,
456        ArrayN16<crate::bigint::BigInt>,
457    )>,
458    pub xor_selector: Option<(
459        ArrayN16<crate::bigint::BigInt>,
460        ArrayN16<crate::bigint::BigInt>,
461    )>,
462    pub rot_selector: Option<(
463        ArrayN16<crate::bigint::BigInt>,
464        ArrayN16<crate::bigint::BigInt>,
465    )>,
466    pub lookup_aggregation: Option<(
467        ArrayN16<crate::bigint::BigInt>,
468        ArrayN16<crate::bigint::BigInt>,
469    )>,
470    pub lookup_table: Option<(
471        ArrayN16<crate::bigint::BigInt>,
472        ArrayN16<crate::bigint::BigInt>,
473    )>,
474    pub lookup_sorted: PaddedSeq<
475        Option<(
476            ArrayN16<crate::bigint::BigInt>,
477            ArrayN16<crate::bigint::BigInt>,
478        )>,
479        5,
480    >,
481    pub runtime_lookup_table: Option<(
482        ArrayN16<crate::bigint::BigInt>,
483        ArrayN16<crate::bigint::BigInt>,
484    )>,
485    pub runtime_lookup_table_selector: Option<(
486        ArrayN16<crate::bigint::BigInt>,
487        ArrayN16<crate::bigint::BigInt>,
488    )>,
489    pub xor_lookup_selector: Option<(
490        ArrayN16<crate::bigint::BigInt>,
491        ArrayN16<crate::bigint::BigInt>,
492    )>,
493    pub lookup_gate_lookup_selector: Option<(
494        ArrayN16<crate::bigint::BigInt>,
495        ArrayN16<crate::bigint::BigInt>,
496    )>,
497    pub range_check_lookup_selector: Option<(
498        ArrayN16<crate::bigint::BigInt>,
499        ArrayN16<crate::bigint::BigInt>,
500    )>,
501    pub foreign_field_mul_lookup_selector: Option<(
502        ArrayN16<crate::bigint::BigInt>,
503        ArrayN16<crate::bigint::BigInt>,
504    )>,
505}
506
507/// Derived name: `Pickles__Proof.Proofs_verified_2.Repr.Stable.V2.prev_evals.evals`
508///
509/// Gid: `466`
510/// Location: [src/lib/pickles_types/plonk_types.ml:1057:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles_types/plonk_types.ml#L1057)
511/// Args: (crate :: bigint :: BigInt , crate :: bigint :: BigInt ,) , (ArrayN16 < crate :: bigint :: BigInt > , ArrayN16 < crate :: bigint :: BigInt > ,)
512#[derive(
513    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, SexpOf, OfSexp,
514)]
515pub struct PicklesProofProofsVerified2ReprStableV2PrevEvalsEvals {
516    pub public_input: (crate::bigint::BigInt, crate::bigint::BigInt),
517    pub evals: PicklesProofProofsVerified2ReprStableV2PrevEvalsEvalsEvals,
518}
519
520/// Derived name: `Pickles__Proof.Proofs_verified_2.Repr.Stable.V2.prev_evals`
521///
522/// Gid: `467`
523/// Location: [src/lib/pickles_types/plonk_types.ml:1092:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles_types/plonk_types.ml#L1092)
524/// Args: crate :: bigint :: BigInt , ArrayN16 < crate :: bigint :: BigInt >
525#[derive(
526    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, SexpOf, OfSexp,
527)]
528pub struct PicklesProofProofsVerified2ReprStableV2PrevEvals {
529    pub evals: PicklesProofProofsVerified2ReprStableV2PrevEvalsEvals,
530    pub ft_eval1: crate::bigint::BigInt,
531}
532
533impl MallocSizeOf for PicklesProofProofsVerified2ReprStableV2PrevEvals {
534    fn size_of(&self, _ops: &mut malloc_size_of::MallocSizeOfOps) -> usize {
535        0
536    }
537}
538
539/// Derived name: `Pickles__Wrap_wire_proof.Stable.V1.bulletproof`
540///
541/// Gid: `468`
542/// Location: [src/lib/pickles_types/plonk_types.ml:1141:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles_types/plonk_types.ml#L1141)
543/// Args: (crate :: bigint :: BigInt , crate :: bigint :: BigInt ,) , crate :: bigint :: BigInt
544#[derive(
545    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, SexpOf, OfSexp,
546)]
547pub struct PicklesWrapWireProofStableV1Bulletproof {
548    pub lr: ArrayN16<(
549        (crate::bigint::BigInt, crate::bigint::BigInt),
550        (crate::bigint::BigInt, crate::bigint::BigInt),
551    )>,
552    pub z_1: crate::bigint::BigInt,
553    pub z_2: crate::bigint::BigInt,
554    pub delta: (crate::bigint::BigInt, crate::bigint::BigInt),
555    pub challenge_polynomial_commitment: (crate::bigint::BigInt, crate::bigint::BigInt),
556}
557
558/// Derived name: `Mina_base__Verification_key_wire.Stable.V1.wrap_index`
559///
560/// Gid: `476`
561/// Location: [src/lib/pickles_types/plonk_verification_key_evals.ml:7:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles_types/plonk_verification_key_evals.ml#L7)
562/// Args: (crate :: bigint :: BigInt , crate :: bigint :: BigInt ,)
563#[derive(
564    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
565)]
566pub struct MinaBaseVerificationKeyWireStableV1WrapIndex {
567    pub sigma_comm: PaddedSeq<(crate::bigint::BigInt, crate::bigint::BigInt), 7>,
568    pub coefficients_comm: PaddedSeq<(crate::bigint::BigInt, crate::bigint::BigInt), 15>,
569    pub generic_comm: (crate::bigint::BigInt, crate::bigint::BigInt),
570    pub psm_comm: (crate::bigint::BigInt, crate::bigint::BigInt),
571    pub complete_add_comm: (crate::bigint::BigInt, crate::bigint::BigInt),
572    pub mul_comm: (crate::bigint::BigInt, crate::bigint::BigInt),
573    pub emul_comm: (crate::bigint::BigInt, crate::bigint::BigInt),
574    pub endomul_scalar_comm: (crate::bigint::BigInt, crate::bigint::BigInt),
575}
576
577/// Derived name: `Pickles__Reduced_messages_for_next_proof_over_same_field.Wrap.Challenges_vector.Stable.V2.a.challenge`
578///
579/// Gid: `482`
580/// Location: [src/lib/crypto/kimchi_backend/common/scalar_challenge.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/crypto/kimchi_backend/common/scalar_challenge.ml#L6)
581/// Args: PaddedSeq < LimbVectorConstantHex64StableV1 , 2 >
582#[derive(
583    Clone,
584    Debug,
585    PartialEq,
586    Serialize,
587    Deserialize,
588    BinProtRead,
589    BinProtWrite,
590    SexpOf,
591    OfSexp,
592    MallocSizeOf,
593)]
594pub struct PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2AChallenge {
595    pub inner: PaddedSeq<LimbVectorConstantHex64StableV1, 2>,
596}
597
598/// Derived name: `Snark_worker.Worker.Rpcs_versioned.Submit_work.V2.T.query.metrics`
599///
600/// Gid: `508`
601/// Location: [src/lib/one_or_two/one_or_two.ml:7:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/one_or_two/one_or_two.ml#L7)
602/// Args: (crate :: number :: Float64 , SnarkWorkerWorkerRpcsVersionedSubmitWorkV2TQueryMetricsA1 ,)
603#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
604#[polymorphic_variant]
605pub enum SnarkWorkerWorkerRpcsVersionedSubmitWorkV2TQueryMetrics {
606    #[allow(non_camel_case_types)]
607    One(
608        (
609            crate::number::Float64,
610            SnarkWorkerWorkerRpcsVersionedSubmitWorkV2TQueryMetricsA1,
611        ),
612    ),
613    #[allow(non_camel_case_types)]
614    Two(
615        (
616            (
617                crate::number::Float64,
618                SnarkWorkerWorkerRpcsVersionedSubmitWorkV2TQueryMetricsA1,
619            ),
620            (
621                crate::number::Float64,
622                SnarkWorkerWorkerRpcsVersionedSubmitWorkV2TQueryMetricsA1,
623            ),
624        ),
625    ),
626}
627
628/// Derived name: `Transaction_snark_work.T.Stable.V2.proofs`
629///
630/// Gid: `508`
631/// Location: [src/lib/one_or_two/one_or_two.ml:7:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/one_or_two/one_or_two.ml#L7)
632/// Args: LedgerProofProdStableV2
633#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
634#[polymorphic_variant]
635pub enum TransactionSnarkWorkTStableV2Proofs {
636    #[allow(non_camel_case_types)]
637    One(LedgerProofProdStableV2),
638    #[allow(non_camel_case_types)]
639    Two((LedgerProofProdStableV2, LedgerProofProdStableV2)),
640}
641
642/// Derived name: `Snark_worker.Worker.Rpcs_versioned.Get_work.V2.T.response.a.0.instances`
643///
644/// Gid: `508`
645/// Location: [src/lib/one_or_two/one_or_two.ml:7:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/one_or_two/one_or_two.ml#L7)
646/// Args: SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0Single
647#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite)]
648#[polymorphic_variant]
649pub enum SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0Instances {
650    #[allow(non_camel_case_types)]
651    One(SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0Single),
652    #[allow(non_camel_case_types)]
653    Two(
654        (
655            SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0Single,
656            SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0Single,
657        ),
658    ),
659}
660
661/// **OCaml name**: `Pickles_base__Proofs_verified.Stable.V1`
662///
663/// Gid: `514`
664/// Location: [src/lib/pickles_base/proofs_verified.ml:8:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles_base/proofs_verified.ml#L8)
665#[derive(
666    Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, SexpOf, MallocSizeOf,
667)]
668pub enum PicklesBaseProofsVerifiedStableV1 {
669    N0,
670    N1,
671    N2,
672}
673
674/// **OCaml name**: `Limb_vector__Constant.Hex64.Stable.V1`
675///
676/// Gid: `523`
677/// Location: [src/lib/pickles/limb_vector/constant.ml:60:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/limb_vector/constant.ml#L60)
678///
679///
680/// Gid: `125`
681/// Location: [src/int64.ml:6:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/int64.ml#L6)
682#[derive(
683    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
684)]
685pub struct LimbVectorConstantHex64StableV1(pub crate::number::UInt64);
686
687/// **OCaml name**: `Composition_types__Branch_data.Make_str.Domain_log2.Stable.V1`
688///
689/// Gid: `524`
690/// Location: [src/lib/pickles/composition_types/branch_data.ml:24:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/composition_types/branch_data.ml#L24)
691///
692///
693/// Gid: `161`
694/// Location: [src/std_internal.ml:113:2](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/std_internal.ml#L113)
695///
696///
697/// Gid: `89`
698/// Location: [src/char.ml:8:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/char.ml#L8)
699#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
700pub struct CompositionTypesBranchDataDomainLog2StableV1(pub crate::char::Char);
701
702/// **OCaml name**: `Composition_types__Branch_data.Make_str.Stable.V1`
703///
704/// Gid: `525`
705/// Location: [src/lib/pickles/composition_types/branch_data.ml:51:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/composition_types/branch_data.ml#L51)
706#[derive(
707    Clone,
708    Debug,
709    PartialEq,
710    Serialize,
711    Deserialize,
712    BinProtRead,
713    BinProtWrite,
714    SexpOf,
715    OfSexp,
716    MallocSizeOf,
717)]
718pub struct CompositionTypesBranchDataStableV1 {
719    pub proofs_verified: PicklesBaseProofsVerifiedStableV1,
720    #[ignore_malloc_size_of = "primitive"]
721    pub domain_log2: CompositionTypesBranchDataDomainLog2StableV1,
722}
723
724/// Derived name: `Pickles__Reduced_messages_for_next_proof_over_same_field.Wrap.Challenges_vector.Stable.V2.a`
725///
726/// Gid: `526`
727/// Location: [src/lib/pickles/composition_types/bulletproof_challenge.ml:4:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/composition_types/bulletproof_challenge.ml#L4)
728/// Args: PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2AChallenge
729#[derive(
730    Clone,
731    Debug,
732    PartialEq,
733    Serialize,
734    Deserialize,
735    BinProtRead,
736    BinProtWrite,
737    SexpOf,
738    OfSexp,
739    MallocSizeOf,
740)]
741pub struct PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2A {
742    pub prechallenge:
743        PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2AChallenge,
744}
745
746/// **OCaml name**: `Composition_types__Digest.Constant.Stable.V1`
747///
748/// Gid: `527`
749/// Location: [src/lib/pickles/composition_types/digest.ml:13:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/composition_types/digest.ml#L13)
750#[derive(
751    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
752)]
753pub struct CompositionTypesDigestConstantStableV1(
754    pub PaddedSeq<LimbVectorConstantHex64StableV1, 4>,
755);
756
757/// Derived name: `Pickles__Proof.Proofs_verified_2.Repr.Stable.V2.statement.proof_state.deferred_values.plonk`
758///
759/// Gid: `528`
760/// Location: [src/lib/pickles/composition_types/composition_types.ml:45:14](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/composition_types/composition_types.ml#L45)
761/// Args: PaddedSeq < LimbVectorConstantHex64StableV1 , 2 > , PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2AChallenge , bool
762#[derive(
763    Clone,
764    Debug,
765    PartialEq,
766    Serialize,
767    Deserialize,
768    BinProtRead,
769    BinProtWrite,
770    SexpOf,
771    OfSexp,
772    MallocSizeOf,
773)]
774pub struct PicklesProofProofsVerified2ReprStableV2StatementProofStateDeferredValuesPlonk {
775    pub alpha:
776        PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2AChallenge,
777    pub beta: PaddedSeq<LimbVectorConstantHex64StableV1, 2>,
778    pub gamma: PaddedSeq<LimbVectorConstantHex64StableV1, 2>,
779    pub zeta: PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2AChallenge,
780    pub joint_combiner: Option<
781        PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2AChallenge,
782    >,
783    #[ignore_malloc_size_of = "primitive"]
784    pub feature_flags:
785        PicklesProofProofsVerified2ReprStableV2StatementProofStateDeferredValuesPlonkFeatureFlags,
786}
787
788/// Derived name: `Pickles__Proof.Proofs_verified_2.Repr.Stable.V2.statement.proof_state.deferred_values`
789///
790/// Gid: `530`
791/// Location: [src/lib/pickles/composition_types/composition_types.ml:275:12](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/composition_types/composition_types.ml#L275)
792/// Args: PaddedSeq < LimbVectorConstantHex64StableV1 , 2 > , PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2AChallenge , PicklesProofProofsVerified2ReprStableV2StatementFp , bool , PaddedSeq < PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2A , 16 > , CompositionTypesBranchDataStableV1
793#[derive(
794    Clone,
795    Debug,
796    PartialEq,
797    Serialize,
798    Deserialize,
799    BinProtRead,
800    BinProtWrite,
801    SexpOf,
802    OfSexp,
803    MallocSizeOf,
804)]
805pub struct PicklesProofProofsVerified2ReprStableV2StatementProofStateDeferredValues {
806    pub plonk: PicklesProofProofsVerified2ReprStableV2StatementProofStateDeferredValuesPlonk,
807    pub bulletproof_challenges:
808        PaddedSeq<PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2A, 16>,
809    pub branch_data: CompositionTypesBranchDataStableV1,
810}
811
812/// Derived name: `Pickles__Proof.Proofs_verified_2.Repr.Stable.V2.messages_for_next_wrap_proof`
813///
814/// Gid: `531`
815/// Location: [src/lib/pickles/composition_types/composition_types.ml:397:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/composition_types/composition_types.ml#L397)
816/// Args: (crate :: bigint :: BigInt , crate :: bigint :: BigInt ,) , PaddedSeq < PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2 , 2 >
817#[derive(
818    Clone,
819    Debug,
820    PartialEq,
821    Serialize,
822    Deserialize,
823    BinProtRead,
824    BinProtWrite,
825    SexpOf,
826    OfSexp,
827    MallocSizeOf,
828)]
829pub struct PicklesProofProofsVerified2ReprStableV2MessagesForNextWrapProof {
830    pub challenge_polynomial_commitment: (crate::bigint::BigInt, crate::bigint::BigInt),
831    pub old_bulletproof_challenges:
832        PaddedSeq<PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2, 2>,
833}
834
835/// Derived name: `Pickles__Proof.Proofs_verified_2.Repr.Stable.V2.statement.proof_state`
836///
837/// Gid: `533`
838/// Location: [src/lib/pickles/composition_types/composition_types.ml:466:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/composition_types/composition_types.ml#L466)
839/// Args: PaddedSeq < LimbVectorConstantHex64StableV1 , 2 > , PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2AChallenge , PicklesProofProofsVerified2ReprStableV2StatementFp , bool , PicklesProofProofsVerified2ReprStableV2MessagesForNextWrapProof , CompositionTypesDigestConstantStableV1 , PaddedSeq < PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2A , 16 > , CompositionTypesBranchDataStableV1
840#[derive(
841    Clone,
842    Debug,
843    PartialEq,
844    Serialize,
845    Deserialize,
846    BinProtRead,
847    BinProtWrite,
848    SexpOf,
849    OfSexp,
850    MallocSizeOf,
851)]
852pub struct PicklesProofProofsVerified2ReprStableV2StatementProofState {
853    pub deferred_values: PicklesProofProofsVerified2ReprStableV2StatementProofStateDeferredValues,
854    pub sponge_digest_before_evaluations: CompositionTypesDigestConstantStableV1,
855    pub messages_for_next_wrap_proof:
856        PicklesProofProofsVerified2ReprStableV2MessagesForNextWrapProof,
857}
858
859/// Derived name: `Pickles__Proof.Proofs_verified_2.Repr.Stable.V2.statement`
860///
861/// Gid: `535`
862/// Location: [src/lib/pickles/composition_types/composition_types.ml:714:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/composition_types/composition_types.ml#L714)
863/// Args: PaddedSeq < LimbVectorConstantHex64StableV1 , 2 > , PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2AChallenge , PicklesProofProofsVerified2ReprStableV2StatementFp , bool , PicklesProofProofsVerified2ReprStableV2MessagesForNextWrapProof , CompositionTypesDigestConstantStableV1 , PicklesProofProofsVerified2ReprStableV2MessagesForNextStepProof , PaddedSeq < PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2A , 16 > , CompositionTypesBranchDataStableV1
864#[derive(
865    Clone,
866    Debug,
867    PartialEq,
868    Serialize,
869    Deserialize,
870    BinProtRead,
871    BinProtWrite,
872    SexpOf,
873    OfSexp,
874    MallocSizeOf,
875)]
876pub struct PicklesProofProofsVerified2ReprStableV2Statement {
877    pub proof_state: PicklesProofProofsVerified2ReprStableV2StatementProofState,
878    pub messages_for_next_step_proof:
879        PicklesProofProofsVerified2ReprStableV2MessagesForNextStepProof,
880}
881
882/// **OCaml name**: `Pickles__Wrap_wire_proof.Commitments.Stable.V1`
883///
884/// Gid: `537`
885/// Location: [src/lib/pickles/wrap_wire_proof.ml:17:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/wrap_wire_proof.ml#L17)
886#[derive(
887    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, SexpOf, OfSexp,
888)]
889pub struct PicklesWrapWireProofCommitmentsStableV1 {
890    pub w_comm: PaddedSeq<(crate::bigint::BigInt, crate::bigint::BigInt), 15>,
891    pub z_comm: (crate::bigint::BigInt, crate::bigint::BigInt),
892    pub t_comm: PaddedSeq<(crate::bigint::BigInt, crate::bigint::BigInt), 7>,
893}
894
895/// **OCaml name**: `Pickles__Wrap_wire_proof.Evaluations.Stable.V1`
896///
897/// Gid: `538`
898/// Location: [src/lib/pickles/wrap_wire_proof.ml:55:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/wrap_wire_proof.ml#L55)
899#[derive(
900    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, SexpOf, OfSexp,
901)]
902pub struct PicklesWrapWireProofEvaluationsStableV1 {
903    pub w: PaddedSeq<(crate::bigint::BigInt, crate::bigint::BigInt), 15>,
904    pub coefficients: PaddedSeq<(crate::bigint::BigInt, crate::bigint::BigInt), 15>,
905    pub z: (crate::bigint::BigInt, crate::bigint::BigInt),
906    pub s: PaddedSeq<(crate::bigint::BigInt, crate::bigint::BigInt), 6>,
907    pub generic_selector: (crate::bigint::BigInt, crate::bigint::BigInt),
908    pub poseidon_selector: (crate::bigint::BigInt, crate::bigint::BigInt),
909    pub complete_add_selector: (crate::bigint::BigInt, crate::bigint::BigInt),
910    pub mul_selector: (crate::bigint::BigInt, crate::bigint::BigInt),
911    pub emul_selector: (crate::bigint::BigInt, crate::bigint::BigInt),
912    pub endomul_scalar_selector: (crate::bigint::BigInt, crate::bigint::BigInt),
913}
914
915/// **OCaml name**: `Pickles__Wrap_wire_proof.Stable.V1`
916///
917/// Gid: `539`
918/// Location: [src/lib/pickles/wrap_wire_proof.ml:175:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/wrap_wire_proof.ml#L175)
919#[derive(
920    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, SexpOf, OfSexp,
921)]
922pub struct PicklesWrapWireProofStableV1 {
923    pub commitments: PicklesWrapWireProofCommitmentsStableV1,
924    pub evaluations: PicklesWrapWireProofEvaluationsStableV1,
925    pub ft_eval1: crate::bigint::BigInt,
926    pub bulletproof: PicklesWrapWireProofStableV1Bulletproof,
927}
928
929impl MallocSizeOf for PicklesWrapWireProofStableV1 {
930    fn size_of(&self, _ops: &mut malloc_size_of::MallocSizeOfOps) -> usize {
931        0
932    }
933}
934
935/// Derived name: `Pickles__Proof.Proofs_verified_2.Repr.Stable.V2.messages_for_next_step_proof`
936///
937/// Gid: `542`
938/// Location: [src/lib/pickles/reduced_messages_for_next_proof_over_same_field.ml:16:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/reduced_messages_for_next_proof_over_same_field.ml#L16)
939/// Args: () , List < (crate :: bigint :: BigInt , crate :: bigint :: BigInt ,) > , List < PaddedSeq < PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2A , 16 > >
940#[derive(
941    Clone,
942    Debug,
943    PartialEq,
944    Serialize,
945    Deserialize,
946    BinProtRead,
947    BinProtWrite,
948    SexpOf,
949    OfSexp,
950    MallocSizeOf,
951)]
952pub struct PicklesProofProofsVerified2ReprStableV2MessagesForNextStepProof {
953    #[serde(deserialize_with = "always_unit")]
954    pub app_state: (),
955    pub challenge_polynomial_commitments: List<(crate::bigint::BigInt, crate::bigint::BigInt)>,
956    pub old_bulletproof_challenges: List<
957        PaddedSeq<PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2A, 16>,
958    >,
959}
960
961/// **OCaml name**: `Pickles__Reduced_messages_for_next_proof_over_same_field.Wrap.Challenges_vector.Stable.V2`
962///
963/// Gid: `543`
964/// Location: [src/lib/pickles/reduced_messages_for_next_proof_over_same_field.ml:57:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/reduced_messages_for_next_proof_over_same_field.ml#L57)
965///
966///
967/// Gid: `488`
968/// Location: [src/lib/crypto/kimchi_backend/pasta/basic/kimchi_pasta_basic.ml:32:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/crypto/kimchi_backend/pasta/basic/kimchi_pasta_basic.ml#L32)
969/// Args: PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2A
970#[derive(
971    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
972)]
973pub struct PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2(
974    pub PaddedSeq<PicklesReducedMessagesForNextProofOverSameFieldWrapChallengesVectorStableV2A, 15>,
975);
976
977/// **OCaml name**: `Mina_base__Verification_key_wire.Stable.V1`
978///
979/// Gid: `544`
980/// Location: [src/lib/pickles/side_loaded_verification_key.ml:170:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/side_loaded_verification_key.ml#L170)
981///
982///
983/// Gid: `519`
984/// Location: [src/lib/pickles_base/side_loaded_verification_key.ml:130:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles_base/side_loaded_verification_key.ml#L130)
985/// Args: (crate :: bigint :: BigInt , crate :: bigint :: BigInt ,)
986#[derive(
987    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
988)]
989pub struct MinaBaseVerificationKeyWireStableV1 {
990    pub max_proofs_verified: PicklesBaseProofsVerifiedStableV1,
991    pub actual_wrap_domain_size: PicklesBaseProofsVerifiedStableV1,
992    pub wrap_index: MinaBaseVerificationKeyWireStableV1WrapIndex,
993}
994
995/// **OCaml name**: `Pickles__Proof.Proofs_verified_2.Repr.Stable.V2`
996///
997/// Gid: `547`
998/// Location: [src/lib/pickles/proof.ml:342:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/proof.ml#L342)
999///
1000///
1001/// Gid: `546`
1002/// Location: [src/lib/pickles/proof.ml:47:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/proof.ml#L47)
1003/// Args: PicklesProofProofsVerified2ReprStableV2MessagesForNextWrapProof , PicklesProofProofsVerified2ReprStableV2MessagesForNextStepProof
1004#[derive(
1005    Clone,
1006    Debug,
1007    PartialEq,
1008    Serialize,
1009    Deserialize,
1010    BinProtRead,
1011    BinProtWrite,
1012    SexpOf,
1013    OfSexp,
1014    MallocSizeOf,
1015)]
1016pub struct PicklesProofProofsVerified2ReprStableV2 {
1017    pub statement: PicklesProofProofsVerified2ReprStableV2Statement,
1018    pub prev_evals: PicklesProofProofsVerified2ReprStableV2PrevEvals,
1019    pub proof: PicklesWrapWireProofStableV1,
1020}
1021
1022/// **OCaml name**: `Pickles__Proof.Proofs_verified_max.Stable.V2`
1023///
1024/// Gid: `548`
1025/// Location: [src/lib/pickles/proof.ml:411:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/proof.ml#L411)
1026///
1027///
1028/// Gid: `546`
1029/// Location: [src/lib/pickles/proof.ml:47:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/pickles/proof.ml#L47)
1030/// Args: PicklesProofProofsVerified2ReprStableV2MessagesForNextWrapProof , PicklesProofProofsVerified2ReprStableV2MessagesForNextStepProof
1031#[derive(Clone, Debug, PartialEq, BinProtRead, BinProtWrite, SexpOf, OfSexp, MallocSizeOf)]
1032pub struct PicklesProofProofsVerifiedMaxStableV2 {
1033    pub statement: PicklesProofProofsVerified2ReprStableV2Statement,
1034    pub prev_evals: PicklesProofProofsVerified2ReprStableV2PrevEvals,
1035    pub proof: PicklesWrapWireProofStableV1,
1036}
1037
1038/// **OCaml name**: `Non_zero_curve_point.Uncompressed.Stable.V1`
1039///
1040/// Gid: `558`
1041/// Location: [src/lib/non_zero_curve_point/non_zero_curve_point.ml:46:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/non_zero_curve_point/non_zero_curve_point.ml#L46)
1042///
1043///
1044/// Gid: `552`
1045/// Location: [src/lib/non_zero_curve_point/compressed_poly.ml:13:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/non_zero_curve_point/compressed_poly.ml#L13)
1046/// Args: crate :: bigint :: BigInt , bool
1047#[derive(
1048    Clone,
1049    Debug,
1050    PartialEq,
1051    Eq,
1052    PartialOrd,
1053    Ord,
1054    Serialize,
1055    Deserialize,
1056    BinProtRead,
1057    BinProtWrite,
1058    MallocSizeOf,
1059)]
1060pub struct NonZeroCurvePointUncompressedStableV1 {
1061    pub x: crate::bigint::BigInt,
1062    pub is_odd: bool,
1063}
1064
1065/// **OCaml name**: `Signature_lib__Private_key.Stable.V1`
1066///
1067/// Gid: `570`
1068/// Location: [src/lib/signature_lib/private_key.ml:11:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/signature_lib/private_key.ml#L11)
1069#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
1070pub struct SignatureLibPrivateKeyStableV1(pub crate::bigint::BigInt);
1071
1072/// **OCaml name**: `Unsigned_extended.UInt64.Int64_for_version_tags.Stable.V1`
1073///
1074/// Gid: `576`
1075/// Location: [src/lib/unsigned_extended/unsigned_extended.ml:81:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/unsigned_extended/unsigned_extended.ml#L81)
1076///
1077///
1078/// Gid: `125`
1079/// Location: [src/int64.ml:6:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/int64.ml#L6)
1080#[derive(Clone, Copy, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
1081#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
1082pub struct UnsignedExtendedUInt64Int64ForVersionTagsStableV1(pub crate::number::UInt64);
1083
1084/// **OCaml name**: `Unsigned_extended.UInt32.Stable.V1`
1085///
1086/// Gid: `580`
1087/// Location: [src/lib/unsigned_extended/unsigned_extended.ml:156:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/unsigned_extended/unsigned_extended.ml#L156)
1088///
1089///
1090/// Gid: `119`
1091/// Location: [src/int32.ml:6:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/int32.ml#L6)
1092#[derive(
1093    Clone,
1094    Copy,
1095    PartialEq,
1096    Serialize,
1097    Deserialize,
1098    BinProtRead,
1099    BinProtWrite,
1100    Deref,
1101    Default,
1102    MallocSizeOf,
1103)]
1104#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
1105pub struct UnsignedExtendedUInt32StableV1(pub crate::number::UInt32);
1106
1107/// **OCaml name**: `Protocol_version.Make_str.Stable.V2`
1108///
1109/// Gid: `584`
1110/// Location: [src/lib/protocol_version/protocol_version.ml:18:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/protocol_version/protocol_version.ml#L18)
1111#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
1112pub struct ProtocolVersionStableV2 {
1113    pub transaction: crate::number::UInt64,
1114    pub network: crate::number::UInt64,
1115    pub patch: crate::number::UInt64,
1116}
1117
1118/// **OCaml name**: `Mina_numbers__Nat.Make32.Stable.V1`
1119///
1120/// Gid: `585`
1121/// Location: [src/lib/mina_numbers/nat.ml:260:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_numbers/nat.ml#L260)
1122#[derive(
1123    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, Default,
1124)]
1125pub struct MinaNumbersNatMake32StableV1(pub UnsignedExtendedUInt32StableV1);
1126
1127/// **OCaml name**: `Mina_numbers__Global_slot_span.Make_str.Stable.V1`
1128///
1129/// Gid: `608`
1130/// Location: [src/lib/mina_numbers/global_slot_span.ml:22:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_numbers/global_slot_span.ml#L22)
1131#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
1132pub enum MinaNumbersGlobalSlotSpanStableV1 {
1133    GlobalSlotSpan(UnsignedExtendedUInt32StableV1),
1134}
1135
1136/// **OCaml name**: `Mina_numbers__Global_slot_since_genesis.Make_str.M.Stable.V1`
1137///
1138/// Gid: `614`
1139/// Location: [src/lib/mina_numbers/global_slot_since_genesis.ml:27:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_numbers/global_slot_since_genesis.ml#L27)
1140#[derive(Clone, Debug, PartialEq, Serialize, BinProtRead, BinProtWrite, MallocSizeOf)]
1141#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
1142#[serde(untagged)]
1143pub enum MinaNumbersGlobalSlotSinceGenesisMStableV1 {
1144    SinceGenesis(UnsignedExtendedUInt32StableV1),
1145}
1146
1147/// **OCaml name**: `Mina_numbers__Global_slot_since_hard_fork.Make_str.M.Stable.V1`
1148///
1149/// Gid: `620`
1150/// Location: [src/lib/mina_numbers/global_slot_since_hard_fork.ml:27:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_numbers/global_slot_since_hard_fork.ml#L27)
1151#[derive(Clone, Debug, PartialEq, Serialize, BinProtRead, BinProtWrite, MallocSizeOf)]
1152#[serde(untagged)]
1153pub enum MinaNumbersGlobalSlotSinceHardForkMStableV1 {
1154    SinceHardFork(UnsignedExtendedUInt32StableV1),
1155}
1156
1157/// **OCaml name**: `Sgn.Stable.V1`
1158///
1159/// Gid: `636`
1160/// Location: [src/lib/sgn/sgn.ml:9:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/sgn/sgn.ml#L9)
1161#[derive(Clone, Debug, PartialEq, BinProtRead, BinProtWrite, MallocSizeOf)]
1162pub enum SgnStableV1 {
1163    Pos,
1164    Neg,
1165}
1166
1167/// Derived name: `Mina_state__Blockchain_state.Value.Stable.V2.signed_amount`
1168///
1169/// Gid: `637`
1170/// Location: [src/lib/currency/signed_poly.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/currency/signed_poly.ml#L6)
1171/// Args: CurrencyAmountStableV1 , SgnStableV1
1172#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
1173pub struct MinaStateBlockchainStateValueStableV2SignedAmount {
1174    pub magnitude: CurrencyAmountStableV1,
1175    pub sgn: SgnStableV1,
1176}
1177
1178/// **OCaml name**: `Currency.Make_str.Fee.Stable.V1`
1179///
1180/// Gid: `638`
1181/// Location: [src/lib/currency/currency.ml:947:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/currency/currency.ml#L947)
1182#[derive(Clone, Debug, PartialEq, BinProtRead, BinProtWrite, Deref)]
1183#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
1184pub struct CurrencyFeeStableV1(pub UnsignedExtendedUInt64Int64ForVersionTagsStableV1);
1185
1186impl MallocSizeOf for CurrencyFeeStableV1 {
1187    fn size_of(&self, _ops: &mut malloc_size_of::MallocSizeOfOps) -> usize {
1188        0
1189    }
1190}
1191
1192/// **OCaml name**: `Currency.Make_str.Amount.Make_str.Stable.V1`
1193///
1194/// Gid: `641`
1195/// Location: [src/lib/currency/currency.ml:1094:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/currency/currency.ml#L1094)
1196#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
1197#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
1198pub struct CurrencyAmountStableV1(pub UnsignedExtendedUInt64Int64ForVersionTagsStableV1);
1199
1200impl MallocSizeOf for CurrencyAmountStableV1 {
1201    fn size_of(&self, _ops: &mut malloc_size_of::MallocSizeOfOps) -> usize {
1202        0
1203    }
1204}
1205
1206/// **OCaml name**: `Currency.Make_str.Balance.Stable.V1`
1207///
1208/// Gid: `644`
1209/// Location: [src/lib/currency/currency.ml:1138:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/currency/currency.ml#L1138)
1210#[derive(
1211    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
1212)]
1213pub struct CurrencyBalanceStableV1(pub CurrencyAmountStableV1);
1214
1215/// Derived name: `Mina_base__Zkapp_command.Verifiable.Stable.V1.account_updates.data.a`
1216///
1217/// Gid: `645`
1218/// Location: [src/lib/with_hash/with_hash.ml:8:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/with_hash/with_hash.ml#L8)
1219/// Args: MinaBaseVerificationKeyWireStableV1 , crate :: bigint :: BigInt
1220#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
1221pub struct MinaBaseZkappCommandVerifiableStableV1AccountUpdatesDataA {
1222    pub data: MinaBaseVerificationKeyWireStableV1,
1223    pub hash: crate::bigint::BigInt,
1224}
1225
1226/// **OCaml name**: `Data_hash_lib__State_hash.Stable.V1`
1227///
1228/// Gid: `651`
1229/// Location: [src/lib/data_hash_lib/state_hash.ml:44:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/data_hash_lib/state_hash.ml#L44)
1230#[derive(
1231    Clone,
1232    Debug,
1233    PartialEq,
1234    Eq,
1235    PartialOrd,
1236    Ord,
1237    Serialize,
1238    Deserialize,
1239    BinProtRead,
1240    BinProtWrite,
1241    Deref,
1242    MallocSizeOf,
1243)]
1244pub struct DataHashLibStateHashStableV1(pub crate::bigint::BigInt);
1245
1246/// Derived name: `Mina_base__Sparse_ledger_base.Stable.V2.tree`
1247///
1248/// Gid: `660`
1249/// Location: [src/lib/sparse_ledger_lib/sparse_ledger.ml:9:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/sparse_ledger_lib/sparse_ledger.ml#L9)
1250/// Args: LedgerHash , MinaBaseAccountBinableArgStableV2
1251#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
1252pub enum MinaBaseSparseLedgerBaseStableV2Tree {
1253    Account(Box<MinaBaseAccountBinableArgStableV2>),
1254    Hash(LedgerHash),
1255    Node(
1256        LedgerHash,
1257        Box<MinaBaseSparseLedgerBaseStableV2Tree>,
1258        Box<MinaBaseSparseLedgerBaseStableV2Tree>,
1259    ),
1260}
1261
1262/// Derived name: `Mina_base__Pending_coinbase.Make_str.Merkle_tree_versioned.Stable.V2.tree`
1263///
1264/// Gid: `660`
1265/// Location: [src/lib/sparse_ledger_lib/sparse_ledger.ml:9:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/sparse_ledger_lib/sparse_ledger.ml#L9)
1266/// Args: PendingCoinbaseHash , MinaBasePendingCoinbaseStackVersionedStableV1
1267#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
1268pub enum MinaBasePendingCoinbaseMerkleTreeVersionedStableV2Tree {
1269    Account(MinaBasePendingCoinbaseStackVersionedStableV1),
1270    Hash(PendingCoinbaseHash),
1271    Node(
1272        PendingCoinbaseHash,
1273        Box<MinaBasePendingCoinbaseMerkleTreeVersionedStableV2Tree>,
1274        Box<MinaBasePendingCoinbaseMerkleTreeVersionedStableV2Tree>,
1275    ),
1276}
1277
1278/// **OCaml name**: `Block_time.Make_str.Time.Stable.V1`
1279///
1280/// Gid: `662`
1281/// Location: [src/lib/block_time/block_time.ml:22:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/block_time/block_time.ml#L22)
1282#[derive(
1283    Clone, Copy, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref,
1284)]
1285pub struct BlockTimeTimeStableV1(pub UnsignedExtendedUInt64Int64ForVersionTagsStableV1);
1286
1287/// **OCaml name**: `Mina_base__Account_id.Make_str.Digest.Stable.V1`
1288///
1289/// Gid: `664`
1290/// Location: [src/lib/mina_base/account_id.ml:64:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_id.ml#L64)
1291#[derive(
1292    Clone,
1293    Debug,
1294    PartialEq,
1295    Serialize,
1296    Deserialize,
1297    BinProtRead,
1298    BinProtWrite,
1299    Deref,
1300    PartialOrd,
1301    Ord,
1302    Eq,
1303    MallocSizeOf,
1304)]
1305#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
1306pub struct MinaBaseAccountIdDigestStableV1(pub crate::bigint::BigInt);
1307
1308/// **OCaml name**: `Mina_base__Account_id.Make_str.Stable.V2`
1309///
1310/// Gid: `669`
1311/// Location: [src/lib/mina_base/account_id.ml:151:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_id.ml#L151)
1312#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
1313#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
1314pub struct MinaBaseAccountIdStableV2(pub NonZeroCurvePoint, pub MinaBaseAccountIdDigestStableV1);
1315
1316/// **OCaml name**: `Mina_base__Account_timing.Stable.V2`
1317///
1318/// Gid: `675`
1319/// Location: [src/lib/mina_base/account_timing.ml:39:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_timing.ml#L39)
1320///
1321///
1322/// Gid: `674`
1323/// Location: [src/lib/mina_base/account_timing.ml:22:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_timing.ml#L22)
1324/// Args: MinaNumbersGlobalSlotSinceGenesisMStableV1 , MinaNumbersGlobalSlotSpanStableV1 , CurrencyBalanceStableV1 , CurrencyAmountStableV1
1325#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
1326pub enum MinaBaseAccountTimingStableV2 {
1327    Untimed,
1328    Timed {
1329        initial_minimum_balance: CurrencyBalanceStableV1,
1330        cliff_time: MinaNumbersGlobalSlotSinceGenesisMStableV1,
1331        cliff_amount: CurrencyAmountStableV1,
1332        vesting_period: MinaNumbersGlobalSlotSpanStableV1,
1333        vesting_increment: CurrencyAmountStableV1,
1334    },
1335}
1336
1337/// **OCaml name**: `Mina_base__Signature.Stable.V1`
1338///
1339/// Gid: `679`
1340/// Location: [src/lib/mina_base/signature.ml:23:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/signature.ml#L23)
1341///
1342///
1343/// Gid: `676`
1344/// Location: [src/lib/mina_base/signature.ml:12:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/signature.ml#L12)
1345/// Args: crate :: bigint :: BigInt , crate :: bigint :: BigInt
1346#[derive(
1347    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
1348)]
1349pub struct MinaBaseSignatureStableV1(pub crate::bigint::BigInt, pub crate::bigint::BigInt);
1350
1351/// **OCaml name**: `Mina_base__Control.Stable.V2`
1352///
1353/// Gid: `683`
1354/// Location: [src/lib/mina_base/control.ml:11:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/control.ml#L11)
1355#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1356pub enum MinaBaseControlStableV2 {
1357    Proof(Box<PicklesProofProofsVerifiedMaxStableV2>),
1358    Signature(Signature),
1359    NoneGiven,
1360}
1361
1362/// **OCaml name**: `Mina_base__Token_id.Stable.V2`
1363///
1364/// Gid: `687`
1365/// Location: [src/lib/mina_base/token_id.ml:8:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/token_id.ml#L8)
1366#[derive(
1367    Clone,
1368    Debug,
1369    PartialEq,
1370    Serialize,
1371    Deserialize,
1372    BinProtRead,
1373    BinProtWrite,
1374    Deref,
1375    PartialOrd,
1376    Ord,
1377    Eq,
1378)]
1379pub struct MinaBaseTokenIdStableV2(pub MinaBaseAccountIdDigestStableV1);
1380
1381/// **OCaml name**: `Mina_base__Payment_payload.Stable.V2`
1382///
1383/// Gid: `697`
1384/// Location: [src/lib/mina_base/payment_payload.ml:39:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/payment_payload.ml#L39)
1385///
1386///
1387/// Gid: `693`
1388/// Location: [src/lib/mina_base/payment_payload.ml:14:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/payment_payload.ml#L14)
1389/// Args: NonZeroCurvePoint , CurrencyAmountStableV1
1390#[derive(
1391    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
1392)]
1393pub struct MinaBasePaymentPayloadStableV2 {
1394    pub receiver_pk: NonZeroCurvePoint,
1395    pub amount: CurrencyAmountStableV1,
1396}
1397
1398/// **OCaml name**: `Mina_base__Ledger_hash0.Stable.V1`
1399///
1400/// Gid: `703`
1401/// Location: [src/lib/mina_base/ledger_hash0.ml:17:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/ledger_hash0.ml#L17)
1402#[derive(
1403    Clone,
1404    Debug,
1405    PartialEq,
1406    Eq,
1407    PartialOrd,
1408    Ord,
1409    Serialize,
1410    Deserialize,
1411    BinProtRead,
1412    BinProtWrite,
1413    Deref,
1414    MallocSizeOf,
1415)]
1416pub struct MinaBaseLedgerHash0StableV1(pub crate::bigint::BigInt);
1417
1418/// **OCaml name**: `Mina_base__Permissions.Auth_required.Stable.V2`
1419///
1420/// Gid: `706`
1421/// Location: [src/lib/mina_base/permissions.ml:53:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/permissions.ml#L53)
1422#[derive(
1423    Clone,
1424    Debug,
1425    PartialEq,
1426    SerdeYojsonEnum,
1427    BinProtRead,
1428    BinProtWrite,
1429    strum_macros::Display,
1430    strum_macros::EnumString,
1431)]
1432pub enum MinaBasePermissionsAuthRequiredStableV2 {
1433    None,
1434    Either,
1435    Proof,
1436    Signature,
1437    Impossible,
1438}
1439
1440/// **OCaml name**: `Mina_base__Permissions.Stable.V2`
1441///
1442/// Gid: `708`
1443/// Location: [src/lib/mina_base/permissions.ml:399:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/permissions.ml#L399)
1444///
1445///
1446/// Gid: `707`
1447/// Location: [src/lib/mina_base/permissions.ml:357:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/permissions.ml#L357)
1448/// Args: MinaBasePermissionsAuthRequiredStableV2 , UnsignedExtendedUInt32StableV1
1449#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
1450pub struct MinaBasePermissionsStableV2 {
1451    pub edit_state: MinaBasePermissionsAuthRequiredStableV2,
1452    pub access: MinaBasePermissionsAuthRequiredStableV2,
1453    pub send: MinaBasePermissionsAuthRequiredStableV2,
1454    pub receive: MinaBasePermissionsAuthRequiredStableV2,
1455    pub set_delegate: MinaBasePermissionsAuthRequiredStableV2,
1456    pub set_permissions: MinaBasePermissionsAuthRequiredStableV2,
1457    pub set_verification_key: (
1458        MinaBasePermissionsAuthRequiredStableV2,
1459        UnsignedExtendedUInt32StableV1,
1460    ),
1461    pub set_zkapp_uri: MinaBasePermissionsAuthRequiredStableV2,
1462    pub edit_action_state: MinaBasePermissionsAuthRequiredStableV2,
1463    pub set_token_symbol: MinaBasePermissionsAuthRequiredStableV2,
1464    pub increment_nonce: MinaBasePermissionsAuthRequiredStableV2,
1465    pub set_voting_for: MinaBasePermissionsAuthRequiredStableV2,
1466    pub set_timing: MinaBasePermissionsAuthRequiredStableV2,
1467}
1468
1469impl MallocSizeOf for MinaBasePermissionsStableV2 {
1470    fn size_of(&self, _ops: &mut malloc_size_of::MallocSizeOfOps) -> usize {
1471        0
1472    }
1473}
1474
1475/// **OCaml name**: `Mina_base__Stake_delegation.Stable.V2`
1476///
1477/// Gid: `712`
1478/// Location: [src/lib/mina_base/stake_delegation.ml:11:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/stake_delegation.ml#L11)
1479#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1480pub enum MinaBaseStakeDelegationStableV2 {
1481    SetDelegate { new_delegate: NonZeroCurvePoint },
1482}
1483
1484/// **OCaml name**: `Mina_base__Transaction_status.Failure.Stable.V2`
1485///
1486/// Gid: `718`
1487/// Location: [src/lib/mina_base/transaction_status.ml:9:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/transaction_status.ml#L9)
1488#[derive(
1489    Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, strum_macros::Display,
1490)]
1491#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
1492pub enum MinaBaseTransactionStatusFailureStableV2 {
1493    Predicate,
1494    SourceNotPresent,
1495    ReceiverNotPresent,
1496    AmountInsufficientToCreateAccount,
1497    CannotPayCreationFeeInToken,
1498    SourceInsufficientBalance,
1499    SourceMinimumBalanceViolation,
1500    ReceiverAlreadyExists,
1501    TokenOwnerNotCaller,
1502    Overflow,
1503    GlobalExcessOverflow,
1504    LocalExcessOverflow,
1505    LocalSupplyIncreaseOverflow,
1506    GlobalSupplyIncreaseOverflow,
1507    SignedCommandOnZkappAccount,
1508    ZkappAccountNotPresent,
1509    UpdateNotPermittedBalance,
1510    UpdateNotPermittedAccess,
1511    UpdateNotPermittedTiming,
1512    UpdateNotPermittedDelegate,
1513    UpdateNotPermittedAppState,
1514    UpdateNotPermittedVerificationKey,
1515    UpdateNotPermittedActionState,
1516    UpdateNotPermittedZkappUri,
1517    UpdateNotPermittedTokenSymbol,
1518    UpdateNotPermittedPermissions,
1519    UpdateNotPermittedNonce,
1520    UpdateNotPermittedVotingFor,
1521    ZkappCommandReplayCheckFailed,
1522    FeePayerNonceMustIncrease,
1523    FeePayerMustBeSigned,
1524    AccountBalancePreconditionUnsatisfied,
1525    AccountNoncePreconditionUnsatisfied,
1526    AccountReceiptChainHashPreconditionUnsatisfied,
1527    AccountDelegatePreconditionUnsatisfied,
1528    AccountActionStatePreconditionUnsatisfied,
1529    AccountAppStatePreconditionUnsatisfied(crate::number::UInt64),
1530    AccountProvedStatePreconditionUnsatisfied,
1531    AccountIsNewPreconditionUnsatisfied,
1532    ProtocolStatePreconditionUnsatisfied,
1533    UnexpectedVerificationKeyHash,
1534    ValidWhilePreconditionUnsatisfied,
1535    IncorrectNonce,
1536    InvalidFeeExcess,
1537    Cancelled,
1538}
1539
1540impl MallocSizeOf for MinaBaseTransactionStatusFailureStableV2 {
1541    fn size_of(&self, _ops: &mut malloc_size_of::MallocSizeOfOps) -> usize {
1542        0
1543    }
1544}
1545
1546/// **OCaml name**: `Mina_base__Transaction_status.Failure.Collection.Stable.V1`
1547///
1548/// Gid: `720`
1549/// Location: [src/lib/mina_base/transaction_status.ml:77:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/transaction_status.ml#L77)
1550///
1551///
1552/// Gid: `167`
1553/// Location: [src/std_internal.ml:131:2](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/std_internal.ml#L131)
1554/// Args: List < MinaBaseTransactionStatusFailureStableV2 >
1555///
1556///
1557/// Gid: `50`
1558/// Location: [src/list0.ml:6:0](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/list0.ml#L6)
1559/// Args: List < MinaBaseTransactionStatusFailureStableV2 >
1560#[derive(
1561    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
1562)]
1563pub struct MinaBaseTransactionStatusFailureCollectionStableV1(
1564    pub List<List<MinaBaseTransactionStatusFailureStableV2>>,
1565);
1566
1567/// **OCaml name**: `Mina_base__Transaction_status.Stable.V2`
1568///
1569/// Gid: `721`
1570/// Location: [src/lib/mina_base/transaction_status.ml:476:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/transaction_status.ml#L476)
1571#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1572pub enum MinaBaseTransactionStatusStableV2 {
1573    Applied,
1574    Failed(MinaBaseTransactionStatusFailureCollectionStableV1),
1575}
1576
1577/// **OCaml name**: `Mina_base__Signed_command_payload.Common.Stable.V2`
1578///
1579/// Gid: `726`
1580/// Location: [src/lib/mina_base/signed_command_payload.ml:76:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/signed_command_payload.ml#L76)
1581///
1582///
1583/// Gid: `722`
1584/// Location: [src/lib/mina_base/signed_command_payload.ml:41:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/signed_command_payload.ml#L41)
1585/// Args: CurrencyFeeStableV1 , NonZeroCurvePoint , UnsignedExtendedUInt32StableV1 , MinaNumbersGlobalSlotSinceGenesisMStableV1 , MinaBaseSignedCommandMemoStableV1
1586#[derive(
1587    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
1588)]
1589#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
1590pub struct MinaBaseSignedCommandPayloadCommonStableV2 {
1591    pub fee: CurrencyFeeStableV1,
1592    pub fee_payer_pk: NonZeroCurvePoint,
1593    pub nonce: UnsignedExtendedUInt32StableV1,
1594    #[ignore_malloc_size_of = "primitive"]
1595    pub valid_until: MinaNumbersGlobalSlotSinceGenesisMStableV1,
1596    pub memo: MinaBaseSignedCommandMemoStableV1,
1597}
1598
1599/// **OCaml name**: `Mina_base__Signed_command_payload.Body.Stable.V2`
1600///
1601/// Gid: `730`
1602/// Location: [src/lib/mina_base/signed_command_payload.ml:189:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/signed_command_payload.ml#L189)
1603#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1604pub enum MinaBaseSignedCommandPayloadBodyStableV2 {
1605    Payment(MinaBasePaymentPayloadStableV2),
1606    StakeDelegation(MinaBaseStakeDelegationStableV2),
1607}
1608
1609/// **OCaml name**: `Mina_base__Signed_command_payload.Stable.V2`
1610///
1611/// Gid: `737`
1612/// Location: [src/lib/mina_base/signed_command_payload.ml:267:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/signed_command_payload.ml#L267)
1613///
1614///
1615/// Gid: `734`
1616/// Location: [src/lib/mina_base/signed_command_payload.ml:249:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/signed_command_payload.ml#L249)
1617/// Args: MinaBaseSignedCommandPayloadCommonStableV2 , MinaBaseSignedCommandPayloadBodyStableV2
1618#[derive(
1619    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
1620)]
1621#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
1622pub struct MinaBaseSignedCommandPayloadStableV2 {
1623    pub common: MinaBaseSignedCommandPayloadCommonStableV2,
1624    pub body: MinaBaseSignedCommandPayloadBodyStableV2,
1625}
1626
1627/// **OCaml name**: `Mina_base__Signed_command.Make_str.Stable.V2`
1628///
1629/// Gid: `744`
1630/// Location: [src/lib/mina_base/signed_command.ml:52:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/signed_command.ml#L52)
1631///
1632///
1633/// Gid: `741`
1634/// Location: [src/lib/mina_base/signed_command.ml:27:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/signed_command.ml#L27)
1635/// Args: MinaBaseSignedCommandPayloadStableV2 , NonZeroCurvePoint , Signature
1636#[derive(
1637    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
1638)]
1639#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
1640pub struct MinaBaseSignedCommandStableV2 {
1641    pub payload: MinaBaseSignedCommandPayloadStableV2,
1642    pub signer: NonZeroCurvePoint,
1643    pub signature: Signature,
1644}
1645
1646/// **OCaml name**: `Mina_base__Receipt.Chain_hash.Stable.V1`
1647///
1648/// Gid: `755`
1649/// Location: [src/lib/mina_base/receipt.ml:31:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/receipt.ml#L31)
1650#[derive(
1651    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
1652)]
1653pub struct MinaBaseReceiptChainHashStableV1(pub crate::bigint::BigInt);
1654
1655/// **OCaml name**: `Mina_base__State_body_hash.Stable.V1`
1656///
1657/// Gid: `760`
1658/// Location: [src/lib/mina_base/state_body_hash.ml:19:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/state_body_hash.ml#L19)
1659#[derive(
1660    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
1661)]
1662pub struct MinaBaseStateBodyHashStableV1(pub crate::bigint::BigInt);
1663
1664/// Derived name: `Mina_base__Account_update.Update.Stable.V1.timing`
1665///
1666/// Gid: `766`
1667/// Location: [src/lib/mina_base/zkapp_basic.ml:100:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L100)
1668/// Args: MinaBaseAccountUpdateUpdateTimingInfoStableV1
1669#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1670pub enum MinaBaseAccountUpdateUpdateStableV1Timing {
1671    Set(Box<MinaBaseAccountUpdateUpdateTimingInfoStableV1>),
1672    Keep,
1673}
1674
1675/// Derived name: `Mina_base__Account_update.Update.Stable.V1.permissions`
1676///
1677/// Gid: `766`
1678/// Location: [src/lib/mina_base/zkapp_basic.ml:100:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L100)
1679/// Args: MinaBasePermissionsStableV2
1680#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1681pub enum MinaBaseAccountUpdateUpdateStableV1Permissions {
1682    Set(Box<MinaBasePermissionsStableV2>),
1683    Keep,
1684}
1685
1686/// Derived name: `Mina_base__Account_update.Update.Stable.V1.verification_key`
1687///
1688/// Gid: `766`
1689/// Location: [src/lib/mina_base/zkapp_basic.ml:100:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L100)
1690/// Args: MinaBaseVerificationKeyWireStableV1
1691#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1692pub enum MinaBaseAccountUpdateUpdateStableV1VerificationKey {
1693    Set(Box<MinaBaseVerificationKeyWireStableV1>),
1694    Keep,
1695}
1696
1697/// Derived name: `Mina_base__Account_update.Update.Stable.V1.delegate`
1698///
1699/// Gid: `766`
1700/// Location: [src/lib/mina_base/zkapp_basic.ml:100:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L100)
1701/// Args: NonZeroCurvePoint
1702#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1703pub enum MinaBaseAccountUpdateUpdateStableV1Delegate {
1704    Set(NonZeroCurvePoint),
1705    Keep,
1706}
1707
1708/// Derived name: `Mina_base__Account_update.Update.Stable.V1.voting_for`
1709///
1710/// Gid: `766`
1711/// Location: [src/lib/mina_base/zkapp_basic.ml:100:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L100)
1712/// Args: StateHash
1713#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1714pub enum MinaBaseAccountUpdateUpdateStableV1VotingFor {
1715    Set(StateHash),
1716    Keep,
1717}
1718
1719/// Derived name: `Mina_base__Account_update.Update.Stable.V1.app_state.a`
1720///
1721/// Gid: `766`
1722/// Location: [src/lib/mina_base/zkapp_basic.ml:100:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L100)
1723/// Args: crate :: bigint :: BigInt
1724#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1725pub enum MinaBaseAccountUpdateUpdateStableV1AppStateA {
1726    Set(crate::bigint::BigInt),
1727    Keep,
1728}
1729
1730/// Derived name: `Mina_base__Account_update.Update.Stable.V1.zkapp_uri`
1731///
1732/// Gid: `766`
1733/// Location: [src/lib/mina_base/zkapp_basic.ml:100:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L100)
1734/// Args: crate :: string :: ZkAppUri
1735#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1736pub enum MinaBaseAccountUpdateUpdateStableV1ZkappUri {
1737    Set(crate::string::ZkAppUri),
1738    Keep,
1739}
1740
1741/// Derived name: `Mina_base__Account_update.Update.Stable.V1.token_symbol`
1742///
1743/// Gid: `766`
1744/// Location: [src/lib/mina_base/zkapp_basic.ml:100:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L100)
1745/// Args: crate :: string :: TokenSymbol
1746#[derive(
1747    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
1748)]
1749pub enum MinaBaseAccountUpdateUpdateStableV1TokenSymbol {
1750    Set(crate::string::TokenSymbol),
1751    Keep,
1752}
1753
1754/// Derived name: `Mina_base__Zkapp_precondition.Protocol_state.Epoch_data.Stable.V1.epoch_seed`
1755///
1756/// Gid: `767`
1757/// Location: [src/lib/mina_base/zkapp_basic.ml:232:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L232)
1758/// Args: EpochSeed
1759#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1760pub enum MinaBaseZkappPreconditionProtocolStateEpochDataStableV1EpochSeed {
1761    Check(EpochSeed),
1762    Ignore,
1763}
1764
1765/// Derived name: `Mina_base__Zkapp_precondition.Protocol_state.Stable.V1.snarked_ledger_hash`
1766///
1767/// Gid: `767`
1768/// Location: [src/lib/mina_base/zkapp_basic.ml:232:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L232)
1769/// Args: LedgerHash
1770#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1771pub enum MinaBaseZkappPreconditionProtocolStateStableV1SnarkedLedgerHash {
1772    Check(LedgerHash),
1773    Ignore,
1774}
1775
1776/// Derived name: `Mina_base__Zkapp_precondition.Account.Stable.V2.receipt_chain_hash`
1777///
1778/// Gid: `767`
1779/// Location: [src/lib/mina_base/zkapp_basic.ml:232:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L232)
1780/// Args: MinaBaseReceiptChainHashStableV1
1781#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1782pub enum MinaBaseZkappPreconditionAccountStableV2ReceiptChainHash {
1783    Check(MinaBaseReceiptChainHashStableV1),
1784    Ignore,
1785}
1786
1787/// Derived name: `Mina_base__Zkapp_precondition.Account.Stable.V2.delegate`
1788///
1789/// Gid: `767`
1790/// Location: [src/lib/mina_base/zkapp_basic.ml:232:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L232)
1791/// Args: NonZeroCurvePoint
1792#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1793pub enum MinaBaseZkappPreconditionAccountStableV2Delegate {
1794    Check(NonZeroCurvePoint),
1795    Ignore,
1796}
1797
1798/// Derived name: `Mina_base__Zkapp_precondition.Protocol_state.Epoch_data.Stable.V1.start_checkpoint`
1799///
1800/// Gid: `767`
1801/// Location: [src/lib/mina_base/zkapp_basic.ml:232:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L232)
1802/// Args: StateHash
1803#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1804pub enum MinaBaseZkappPreconditionProtocolStateEpochDataStableV1StartCheckpoint {
1805    Check(StateHash),
1806    Ignore,
1807}
1808
1809/// Derived name: `Mina_base__Zkapp_precondition.Account.Stable.V2.proved_state`
1810///
1811/// Gid: `767`
1812/// Location: [src/lib/mina_base/zkapp_basic.ml:232:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L232)
1813/// Args: bool
1814#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1815pub enum MinaBaseZkappPreconditionAccountStableV2ProvedState {
1816    Check(bool),
1817    Ignore,
1818}
1819
1820/// Derived name: `Mina_base__Zkapp_precondition.Account.Stable.V2.state.a`
1821///
1822/// Gid: `767`
1823/// Location: [src/lib/mina_base/zkapp_basic.ml:232:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L232)
1824/// Args: crate :: bigint :: BigInt
1825#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1826pub enum MinaBaseZkappPreconditionAccountStableV2StateA {
1827    Check(crate::bigint::BigInt),
1828    Ignore,
1829}
1830
1831/// **OCaml name**: `Mina_base__Zkapp_state.Value.Stable.V1`
1832///
1833/// Gid: `770`
1834/// Location: [src/lib/mina_base/zkapp_state.ml:46:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_state.ml#L46)
1835///
1836///
1837/// Gid: `769`
1838/// Location: [src/lib/mina_base/zkapp_state.ml:17:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_state.ml#L17)
1839/// Args: crate :: bigint :: BigInt
1840#[derive(
1841    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, Default,
1842)]
1843pub struct MinaBaseZkappStateValueStableV1(pub PaddedSeq<crate::bigint::BigInt, 8>);
1844
1845/// **OCaml name**: `Mina_base__Zkapp_account.Stable.V2`
1846///
1847/// Gid: `772`
1848/// Location: [src/lib/mina_base/zkapp_account.ml:224:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_account.ml#L224)
1849///
1850///
1851/// Gid: `771`
1852/// Location: [src/lib/mina_base/zkapp_account.ml:194:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_account.ml#L194)
1853/// Args: MinaBaseZkappStateValueStableV1 , Option < MinaBaseVerificationKeyWireStableV1 > , MinaNumbersNatMake32StableV1 , crate :: bigint :: BigInt , MinaNumbersGlobalSlotSinceGenesisMStableV1 , bool , crate :: string :: ByteString
1854#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
1855pub struct MinaBaseZkappAccountStableV2 {
1856    pub app_state: MinaBaseZkappStateValueStableV1,
1857    pub verification_key: Option<MinaBaseVerificationKeyWireStableV1>,
1858    pub zkapp_version: MinaNumbersNatMake32StableV1,
1859    pub action_state: PaddedSeq<crate::bigint::BigInt, 5>,
1860    pub last_action_slot: MinaNumbersGlobalSlotSinceGenesisMStableV1,
1861    pub proved_state: bool,
1862    pub zkapp_uri: crate::string::ZkAppUri,
1863}
1864
1865/// **OCaml name**: `Mina_base__Account.Index.Stable.V1`
1866///
1867/// Gid: `773`
1868/// Location: [src/lib/mina_base/account.ml:18:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account.ml#L18)
1869///
1870///
1871/// Gid: `163`
1872/// Location: [src/std_internal.ml:119:2](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/std_internal.ml#L119)
1873///
1874///
1875/// Gid: `113`
1876/// Location: [src/int.ml:19:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/int.ml#L19)
1877#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
1878pub struct MinaBaseAccountIndexStableV1(pub crate::number::UInt64);
1879
1880/// Derived name: `Mina_base__Zkapp_precondition.Protocol_state.Epoch_data.Stable.V1.epoch_ledger`
1881///
1882/// Gid: `781`
1883/// Location: [src/lib/mina_base/epoch_ledger.ml:9:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/epoch_ledger.ml#L9)
1884/// Args: MinaBaseZkappPreconditionProtocolStateStableV1SnarkedLedgerHash , MinaBaseZkappPreconditionProtocolStateStableV1Amount
1885#[derive(
1886    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
1887)]
1888pub struct MinaBaseZkappPreconditionProtocolStateEpochDataStableV1EpochLedger {
1889    pub hash: MinaBaseZkappPreconditionProtocolStateStableV1SnarkedLedgerHash,
1890    pub total_currency: MinaBaseZkappPreconditionProtocolStateStableV1Amount,
1891}
1892
1893/// **OCaml name**: `Mina_base__Epoch_ledger.Value.Stable.V1`
1894///
1895/// Gid: `782`
1896/// Location: [src/lib/mina_base/epoch_ledger.ml:23:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/epoch_ledger.ml#L23)
1897///
1898///
1899/// Gid: `781`
1900/// Location: [src/lib/mina_base/epoch_ledger.ml:9:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/epoch_ledger.ml#L9)
1901/// Args: LedgerHash , CurrencyAmountStableV1
1902#[derive(
1903    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
1904)]
1905#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
1906pub struct MinaBaseEpochLedgerValueStableV1 {
1907    pub hash: LedgerHash,
1908    pub total_currency: CurrencyAmountStableV1,
1909}
1910
1911/// **OCaml name**: `Mina_base__Epoch_seed.Stable.V1`
1912///
1913/// Gid: `785`
1914/// Location: [src/lib/mina_base/epoch_seed.ml:14:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/epoch_seed.ml#L14)
1915#[derive(
1916    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
1917)]
1918pub struct MinaBaseEpochSeedStableV1(pub crate::bigint::BigInt);
1919
1920/// Derived name: `Mina_base__Zkapp_precondition.Protocol_state.Stable.V1.amount.a`
1921///
1922/// Gid: `790`
1923/// Location: [src/lib/mina_base/zkapp_precondition.ml:23:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_precondition.ml#L23)
1924/// Args: CurrencyAmountStableV1
1925#[derive(
1926    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
1927)]
1928pub struct MinaBaseZkappPreconditionProtocolStateStableV1AmountA {
1929    pub lower: CurrencyAmountStableV1,
1930    pub upper: CurrencyAmountStableV1,
1931}
1932
1933/// Derived name: `Mina_base__Zkapp_precondition.Account.Stable.V2.balance.a`
1934///
1935/// Gid: `790`
1936/// Location: [src/lib/mina_base/zkapp_precondition.ml:23:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_precondition.ml#L23)
1937/// Args: CurrencyBalanceStableV1
1938#[derive(
1939    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
1940)]
1941pub struct MinaBaseZkappPreconditionAccountStableV2BalanceA {
1942    pub lower: CurrencyBalanceStableV1,
1943    pub upper: CurrencyBalanceStableV1,
1944}
1945
1946/// Derived name: `Mina_base__Zkapp_precondition.Protocol_state.Stable.V1.global_slot.a`
1947///
1948/// Gid: `790`
1949/// Location: [src/lib/mina_base/zkapp_precondition.ml:23:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_precondition.ml#L23)
1950/// Args: MinaNumbersGlobalSlotSinceGenesisMStableV1
1951#[derive(
1952    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
1953)]
1954pub struct MinaBaseZkappPreconditionProtocolStateStableV1GlobalSlotA {
1955    pub lower: MinaNumbersGlobalSlotSinceGenesisMStableV1,
1956    pub upper: MinaNumbersGlobalSlotSinceGenesisMStableV1,
1957}
1958
1959/// Derived name: `Mina_base__Zkapp_precondition.Protocol_state.Stable.V1.length.a`
1960///
1961/// Gid: `790`
1962/// Location: [src/lib/mina_base/zkapp_precondition.ml:23:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_precondition.ml#L23)
1963/// Args: UnsignedExtendedUInt32StableV1
1964#[derive(
1965    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
1966)]
1967pub struct MinaBaseZkappPreconditionProtocolStateStableV1LengthA {
1968    pub lower: UnsignedExtendedUInt32StableV1,
1969    pub upper: UnsignedExtendedUInt32StableV1,
1970}
1971
1972/// Derived name: `Mina_base__Zkapp_precondition.Protocol_state.Stable.V1.amount`
1973///
1974/// Gid: `791`
1975/// Location: [src/lib/mina_base/zkapp_precondition.ml:165:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_precondition.ml#L165)
1976/// Args: CurrencyAmountStableV1
1977///
1978///
1979/// Gid: `767`
1980/// Location: [src/lib/mina_base/zkapp_basic.ml:232:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L232)
1981/// Args: MinaBaseZkappPreconditionProtocolStateStableV1AmountA
1982#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1983pub enum MinaBaseZkappPreconditionProtocolStateStableV1Amount {
1984    Check(MinaBaseZkappPreconditionProtocolStateStableV1AmountA),
1985    Ignore,
1986}
1987
1988/// Derived name: `Mina_base__Zkapp_precondition.Account.Stable.V2.balance`
1989///
1990/// Gid: `791`
1991/// Location: [src/lib/mina_base/zkapp_precondition.ml:165:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_precondition.ml#L165)
1992/// Args: CurrencyBalanceStableV1
1993///
1994///
1995/// Gid: `767`
1996/// Location: [src/lib/mina_base/zkapp_basic.ml:232:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L232)
1997/// Args: MinaBaseZkappPreconditionAccountStableV2BalanceA
1998#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
1999pub enum MinaBaseZkappPreconditionAccountStableV2Balance {
2000    Check(MinaBaseZkappPreconditionAccountStableV2BalanceA),
2001    Ignore,
2002}
2003
2004/// Derived name: `Mina_base__Zkapp_precondition.Protocol_state.Stable.V1.global_slot`
2005///
2006/// Gid: `791`
2007/// Location: [src/lib/mina_base/zkapp_precondition.ml:165:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_precondition.ml#L165)
2008/// Args: MinaNumbersGlobalSlotSinceGenesisMStableV1
2009///
2010///
2011/// Gid: `767`
2012/// Location: [src/lib/mina_base/zkapp_basic.ml:232:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L232)
2013/// Args: MinaBaseZkappPreconditionProtocolStateStableV1GlobalSlotA
2014#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
2015pub enum MinaBaseZkappPreconditionProtocolStateStableV1GlobalSlot {
2016    Check(MinaBaseZkappPreconditionProtocolStateStableV1GlobalSlotA),
2017    Ignore,
2018}
2019
2020/// Derived name: `Mina_base__Zkapp_precondition.Protocol_state.Stable.V1.length`
2021///
2022/// Gid: `791`
2023/// Location: [src/lib/mina_base/zkapp_precondition.ml:165:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_precondition.ml#L165)
2024/// Args: UnsignedExtendedUInt32StableV1
2025///
2026///
2027/// Gid: `767`
2028/// Location: [src/lib/mina_base/zkapp_basic.ml:232:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_basic.ml#L232)
2029/// Args: MinaBaseZkappPreconditionProtocolStateStableV1LengthA
2030#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite, MallocSizeOf)]
2031pub enum MinaBaseZkappPreconditionProtocolStateStableV1Length {
2032    Check(MinaBaseZkappPreconditionProtocolStateStableV1LengthA),
2033    Ignore,
2034}
2035
2036/// **OCaml name**: `Mina_base__Zkapp_precondition.Account.Stable.V2`
2037///
2038/// Gid: `792`
2039/// Location: [src/lib/mina_base/zkapp_precondition.ml:465:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_precondition.ml#L465)
2040#[derive(
2041    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2042)]
2043pub struct MinaBaseZkappPreconditionAccountStableV2 {
2044    pub balance: MinaBaseZkappPreconditionAccountStableV2Balance,
2045    pub nonce: MinaBaseZkappPreconditionProtocolStateStableV1Length,
2046    pub receipt_chain_hash: MinaBaseZkappPreconditionAccountStableV2ReceiptChainHash,
2047    pub delegate: MinaBaseZkappPreconditionAccountStableV2Delegate,
2048    pub state: PaddedSeq<MinaBaseZkappPreconditionAccountStableV2StateA, 8>,
2049    pub action_state: MinaBaseZkappPreconditionAccountStableV2StateA,
2050    pub proved_state: MinaBaseZkappPreconditionAccountStableV2ProvedState,
2051    pub is_new: MinaBaseZkappPreconditionAccountStableV2ProvedState,
2052}
2053
2054/// **OCaml name**: `Mina_base__Zkapp_precondition.Protocol_state.Epoch_data.Stable.V1`
2055///
2056/// Gid: `793`
2057/// Location: [src/lib/mina_base/zkapp_precondition.ml:792:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_precondition.ml#L792)
2058///
2059///
2060/// Gid: `788`
2061/// Location: [src/lib/mina_base/epoch_data.ml:8:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/epoch_data.ml#L8)
2062/// Args: MinaBaseZkappPreconditionProtocolStateEpochDataStableV1EpochLedger , MinaBaseZkappPreconditionProtocolStateEpochDataStableV1EpochSeed , MinaBaseZkappPreconditionProtocolStateEpochDataStableV1StartCheckpoint , MinaBaseZkappPreconditionProtocolStateEpochDataStableV1StartCheckpoint , MinaBaseZkappPreconditionProtocolStateStableV1Length
2063#[derive(
2064    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2065)]
2066pub struct MinaBaseZkappPreconditionProtocolStateEpochDataStableV1 {
2067    pub ledger: MinaBaseZkappPreconditionProtocolStateEpochDataStableV1EpochLedger,
2068    pub seed: MinaBaseZkappPreconditionProtocolStateEpochDataStableV1EpochSeed,
2069    pub start_checkpoint: MinaBaseZkappPreconditionProtocolStateEpochDataStableV1StartCheckpoint,
2070    pub lock_checkpoint: MinaBaseZkappPreconditionProtocolStateEpochDataStableV1StartCheckpoint,
2071    pub epoch_length: MinaBaseZkappPreconditionProtocolStateStableV1Length,
2072}
2073
2074/// **OCaml name**: `Mina_base__Zkapp_precondition.Protocol_state.Stable.V1`
2075///
2076/// Gid: `795`
2077/// Location: [src/lib/mina_base/zkapp_precondition.ml:967:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_precondition.ml#L967)
2078///
2079///
2080/// Gid: `794`
2081/// Location: [src/lib/mina_base/zkapp_precondition.ml:923:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_precondition.ml#L923)
2082/// Args: MinaBaseZkappPreconditionProtocolStateStableV1SnarkedLedgerHash , MinaBaseZkappPreconditionProtocolStateStableV1Length , MinaBaseZkappPreconditionProtocolStateStableV1GlobalSlot , MinaBaseZkappPreconditionProtocolStateStableV1Amount , MinaBaseZkappPreconditionProtocolStateEpochDataStableV1
2083#[derive(
2084    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2085)]
2086pub struct MinaBaseZkappPreconditionProtocolStateStableV1 {
2087    pub snarked_ledger_hash: MinaBaseZkappPreconditionProtocolStateStableV1SnarkedLedgerHash,
2088    pub blockchain_length: MinaBaseZkappPreconditionProtocolStateStableV1Length,
2089    pub min_window_density: MinaBaseZkappPreconditionProtocolStateStableV1Length,
2090    pub total_currency: MinaBaseZkappPreconditionProtocolStateStableV1Amount,
2091    pub global_slot_since_genesis: MinaBaseZkappPreconditionProtocolStateStableV1GlobalSlot,
2092    pub staking_epoch_data: MinaBaseZkappPreconditionProtocolStateEpochDataStableV1,
2093    pub next_epoch_data: MinaBaseZkappPreconditionProtocolStateEpochDataStableV1,
2094}
2095
2096/// **OCaml name**: `Mina_base__Account_update.Authorization_kind.Stable.V1`
2097///
2098/// Gid: `803`
2099/// Location: [src/lib/mina_base/account_update.ml:28:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_update.ml#L28)
2100#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite)]
2101pub enum MinaBaseAccountUpdateAuthorizationKindStableV1 {
2102    Signature,
2103    Proof(crate::bigint::BigInt),
2104    NoneGiven,
2105}
2106
2107/// **OCaml name**: `Mina_base__Account_update.May_use_token.Stable.V1`
2108///
2109/// Gid: `804`
2110/// Location: [src/lib/mina_base/account_update.ml:161:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_update.ml#L161)
2111#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite)]
2112pub enum MinaBaseAccountUpdateMayUseTokenStableV1 {
2113    No,
2114    ParentsOwnToken,
2115    InheritFromParent,
2116}
2117
2118/// **OCaml name**: `Mina_base__Account_update.Update.Timing_info.Stable.V1`
2119///
2120/// Gid: `805`
2121/// Location: [src/lib/mina_base/account_update.ml:532:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_update.ml#L532)
2122#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2123pub struct MinaBaseAccountUpdateUpdateTimingInfoStableV1 {
2124    pub initial_minimum_balance: CurrencyBalanceStableV1,
2125    pub cliff_time: MinaNumbersGlobalSlotSinceGenesisMStableV1,
2126    pub cliff_amount: CurrencyAmountStableV1,
2127    pub vesting_period: MinaNumbersGlobalSlotSpanStableV1,
2128    pub vesting_increment: CurrencyAmountStableV1,
2129}
2130
2131impl MallocSizeOf for MinaBaseAccountUpdateUpdateTimingInfoStableV1 {
2132    fn size_of(&self, _ops: &mut malloc_size_of::MallocSizeOfOps) -> usize {
2133        0
2134    }
2135}
2136
2137/// **OCaml name**: `Mina_base__Account_update.Update.Stable.V1`
2138///
2139/// Gid: `806`
2140/// Location: [src/lib/mina_base/account_update.ml:692:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_update.ml#L692)
2141#[derive(
2142    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2143)]
2144pub struct MinaBaseAccountUpdateUpdateStableV1 {
2145    pub app_state: PaddedSeq<MinaBaseAccountUpdateUpdateStableV1AppStateA, 8>,
2146    pub delegate: MinaBaseAccountUpdateUpdateStableV1Delegate,
2147    pub verification_key: MinaBaseAccountUpdateUpdateStableV1VerificationKey,
2148    pub permissions: MinaBaseAccountUpdateUpdateStableV1Permissions,
2149    pub zkapp_uri: MinaBaseAccountUpdateUpdateStableV1ZkappUri,
2150    pub token_symbol: MinaBaseAccountUpdateUpdateStableV1TokenSymbol,
2151    pub timing: MinaBaseAccountUpdateUpdateStableV1Timing,
2152    pub voting_for: MinaBaseAccountUpdateUpdateStableV1VotingFor,
2153}
2154
2155/// **OCaml name**: `Mina_base__Account_update.Account_precondition.Stable.V1`
2156///
2157/// Gid: `807`
2158/// Location: [src/lib/mina_base/account_update.ml:958:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_update.ml#L958)
2159#[derive(
2160    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
2161)]
2162pub struct MinaBaseAccountUpdateAccountPreconditionStableV1(
2163    pub MinaBaseZkappPreconditionAccountStableV2,
2164);
2165
2166/// **OCaml name**: `Mina_base__Account_update.Preconditions.Stable.V1`
2167///
2168/// Gid: `808`
2169/// Location: [src/lib/mina_base/account_update.ml:1029:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_update.ml#L1029)
2170#[derive(
2171    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2172)]
2173pub struct MinaBaseAccountUpdatePreconditionsStableV1 {
2174    pub network: MinaBaseZkappPreconditionProtocolStateStableV1,
2175    pub account: MinaBaseAccountUpdateAccountPreconditionStableV1,
2176    pub valid_while: MinaBaseZkappPreconditionProtocolStateStableV1GlobalSlot,
2177}
2178
2179/// **OCaml name**: `Mina_base__Account_update.Body.Events'.Stable.V1`
2180///
2181/// Gid: `809`
2182/// Location: [src/lib/mina_base/account_update.ml:1116:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_update.ml#L1116)
2183///
2184///
2185/// Gid: `167`
2186/// Location: [src/std_internal.ml:131:2](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/std_internal.ml#L131)
2187/// Args: ArrayN16 < crate :: bigint :: BigInt >
2188///
2189///
2190/// Gid: `50`
2191/// Location: [src/list0.ml:6:0](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/list0.ml#L6)
2192/// Args: ArrayN16 < crate :: bigint :: BigInt >
2193#[derive(
2194    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
2195)]
2196pub struct MinaBaseAccountUpdateBodyEventsStableV1(pub List<ArrayN16<crate::bigint::BigInt>>);
2197
2198/// **OCaml name**: `Mina_base__Account_update.Body.Stable.V1`
2199///
2200/// Gid: `812`
2201/// Location: [src/lib/mina_base/account_update.ml:1216:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_update.ml#L1216)
2202#[derive(
2203    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2204)]
2205pub struct MinaBaseAccountUpdateBodyStableV1 {
2206    pub public_key: NonZeroCurvePoint,
2207    pub token_id: TokenIdKeyHash,
2208    pub update: MinaBaseAccountUpdateUpdateStableV1,
2209    #[ignore_malloc_size_of = "primitive"]
2210    pub balance_change: MinaStateBlockchainStateValueStableV2SignedAmount,
2211    pub increment_nonce: bool,
2212    pub events: MinaBaseAccountUpdateBodyEventsStableV1,
2213    pub actions: MinaBaseAccountUpdateBodyEventsStableV1,
2214    pub call_data: crate::bigint::BigInt,
2215    pub preconditions: MinaBaseAccountUpdatePreconditionsStableV1,
2216    pub use_full_commitment: bool,
2217    pub implicit_account_creation_fee: bool,
2218    #[ignore_malloc_size_of = "primitive"]
2219    pub may_use_token: MinaBaseAccountUpdateMayUseTokenStableV1,
2220    #[ignore_malloc_size_of = "primitive"]
2221    pub authorization_kind: MinaBaseAccountUpdateAuthorizationKindStableV1,
2222}
2223
2224/// **OCaml name**: `Mina_base__Account_update.Body.Fee_payer.Stable.V1`
2225///
2226/// Gid: `813`
2227/// Location: [src/lib/mina_base/account_update.ml:1322:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_update.ml#L1322)
2228#[derive(
2229    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2230)]
2231#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
2232pub struct MinaBaseAccountUpdateBodyFeePayerStableV1 {
2233    pub public_key: NonZeroCurvePoint,
2234    pub fee: CurrencyFeeStableV1,
2235    #[ignore_malloc_size_of = "primitive"]
2236    pub valid_until: Option<MinaNumbersGlobalSlotSinceGenesisMStableV1>,
2237    #[ignore_malloc_size_of = "primitive"]
2238    pub nonce: UnsignedExtendedUInt32StableV1,
2239}
2240
2241/// **OCaml name**: `Mina_base__Account_update.T.Stable.V1`
2242///
2243/// Gid: `816`
2244/// Location: [src/lib/mina_base/account_update.ml:1694:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_update.ml#L1694)
2245#[derive(
2246    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2247)]
2248pub struct MinaBaseAccountUpdateTStableV1 {
2249    pub body: MinaBaseAccountUpdateBodyStableV1,
2250    pub authorization: MinaBaseControlStableV2,
2251}
2252
2253/// **OCaml name**: `Mina_base__Account_update.Fee_payer.Stable.V1`
2254///
2255/// Gid: `817`
2256/// Location: [src/lib/mina_base/account_update.ml:1738:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/account_update.ml#L1738)
2257#[derive(
2258    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2259)]
2260pub struct MinaBaseAccountUpdateFeePayerStableV1 {
2261    pub body: MinaBaseAccountUpdateBodyFeePayerStableV1,
2262    pub authorization: Signature,
2263}
2264
2265/// Derived name: `Mina_base__Zkapp_command.T.Stable.V1.Wire.Stable.V1.account_updates.a.a.calls.a`
2266///
2267/// Gid: `818`
2268/// Location: [src/lib/mina_base/with_stack_hash.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/with_stack_hash.ml#L6)
2269/// Args: Box < MinaBaseZkappCommandTStableV1WireStableV1AccountUpdatesAA > , ()
2270#[derive(
2271    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2272)]
2273pub struct MinaBaseZkappCommandTStableV1WireStableV1AccountUpdatesAACallsA {
2274    pub elt: Box<MinaBaseZkappCommandTStableV1WireStableV1AccountUpdatesAA>,
2275    #[serde(deserialize_with = "always_unit")]
2276    pub stack_hash: (),
2277}
2278
2279/// Derived name: `Mina_base__Zkapp_command.Verifiable.Stable.V1.account_updates.a.a.calls.a`
2280///
2281/// Gid: `818`
2282/// Location: [src/lib/mina_base/with_stack_hash.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/with_stack_hash.ml#L6)
2283/// Args: Box < MinaBaseZkappCommandVerifiableStableV1AccountUpdatesAA > , MinaBaseZkappCommandCallForestMakeDigestStrForestStableV1
2284#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2285pub struct MinaBaseZkappCommandVerifiableStableV1AccountUpdatesAACallsA {
2286    pub elt: Box<MinaBaseZkappCommandVerifiableStableV1AccountUpdatesAA>,
2287    pub stack_hash: MinaBaseZkappCommandCallForestMakeDigestStrForestStableV1,
2288}
2289
2290/// Derived name: `Mina_base__Zkapp_command.T.Stable.V1.Wire.Stable.V1.account_updates.a`
2291///
2292/// Gid: `818`
2293/// Location: [src/lib/mina_base/with_stack_hash.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/with_stack_hash.ml#L6)
2294/// Args: MinaBaseZkappCommandTStableV1WireStableV1AccountUpdatesAA , ()
2295#[derive(
2296    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2297)]
2298pub struct MinaBaseZkappCommandTStableV1WireStableV1AccountUpdatesA {
2299    pub elt: MinaBaseZkappCommandTStableV1WireStableV1AccountUpdatesAA,
2300    #[serde(deserialize_with = "always_unit")]
2301    pub stack_hash: (),
2302}
2303
2304/// Derived name: `Mina_base__Zkapp_command.Verifiable.Stable.V1.account_updates.a`
2305///
2306/// Gid: `818`
2307/// Location: [src/lib/mina_base/with_stack_hash.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/with_stack_hash.ml#L6)
2308/// Args: MinaBaseZkappCommandVerifiableStableV1AccountUpdatesAA , MinaBaseZkappCommandCallForestMakeDigestStrForestStableV1
2309#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2310pub struct MinaBaseZkappCommandVerifiableStableV1AccountUpdatesA {
2311    pub elt: MinaBaseZkappCommandVerifiableStableV1AccountUpdatesAA,
2312    pub stack_hash: MinaBaseZkappCommandCallForestMakeDigestStrForestStableV1,
2313}
2314
2315/// Derived name: `Mina_transaction_logic.Transaction_applied.Coinbase_applied.Stable.V2.coinbase`
2316///
2317/// Gid: `819`
2318/// Location: [src/lib/mina_base/with_status.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/with_status.ml#L6)
2319/// Args: MinaBaseCoinbaseStableV1
2320#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2321pub struct MinaTransactionLogicTransactionAppliedCoinbaseAppliedStableV2Coinbase {
2322    pub data: MinaBaseCoinbaseStableV1,
2323    pub status: MinaBaseTransactionStatusStableV2,
2324}
2325
2326/// Derived name: `Mina_transaction_logic.Transaction_applied.Fee_transfer_applied.Stable.V2.fee_transfer`
2327///
2328/// Gid: `819`
2329/// Location: [src/lib/mina_base/with_status.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/with_status.ml#L6)
2330/// Args: MinaBaseFeeTransferStableV2
2331#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2332pub struct MinaTransactionLogicTransactionAppliedFeeTransferAppliedStableV2FeeTransfer {
2333    pub data: MinaBaseFeeTransferStableV2,
2334    pub status: MinaBaseTransactionStatusStableV2,
2335}
2336
2337/// Derived name: `Mina_transaction_logic.Transaction_applied.Signed_command_applied.Common.Stable.V2.user_command`
2338///
2339/// Gid: `819`
2340/// Location: [src/lib/mina_base/with_status.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/with_status.ml#L6)
2341/// Args: MinaBaseSignedCommandStableV2
2342#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2343#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
2344pub struct MinaTransactionLogicTransactionAppliedSignedCommandAppliedCommonStableV2UserCommand {
2345    pub data: MinaBaseSignedCommandStableV2,
2346    pub status: MinaBaseTransactionStatusStableV2,
2347}
2348
2349/// Derived name: `Staged_ledger_diff__Diff.Make_str.Pre_diff_with_at_most_two_coinbase.Stable.V2.b`
2350///
2351/// Gid: `819`
2352/// Location: [src/lib/mina_base/with_status.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/with_status.ml#L6)
2353/// Args: MinaBaseUserCommandStableV2
2354#[derive(
2355    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2356)]
2357pub struct StagedLedgerDiffDiffPreDiffWithAtMostTwoCoinbaseStableV2B {
2358    pub data: MinaBaseUserCommandStableV2,
2359    pub status: MinaBaseTransactionStatusStableV2,
2360}
2361
2362/// Derived name: `Mina_transaction_logic.Transaction_applied.Zkapp_command_applied.Stable.V1.command`
2363///
2364/// Gid: `819`
2365/// Location: [src/lib/mina_base/with_status.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/with_status.ml#L6)
2366/// Args: MinaBaseZkappCommandTStableV1WireStableV1
2367#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2368pub struct MinaTransactionLogicTransactionAppliedZkappCommandAppliedStableV1Command {
2369    pub data: MinaBaseZkappCommandTStableV1WireStableV1,
2370    pub status: MinaBaseTransactionStatusStableV2,
2371}
2372
2373/// Derived name: `Mina_base__Zkapp_command.Verifiable.Stable.V1.account_updates.a.a`
2374///
2375/// Gid: `820`
2376/// Location: [src/lib/mina_base/zkapp_command.ml:11:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_command.ml#L11)
2377/// Args: (MinaBaseAccountUpdateTStableV1 , Option < MinaBaseZkappCommandVerifiableStableV1AccountUpdatesDataA > ,) , MinaBaseZkappCommandCallForestMakeDigestStrAccountUpdateStableV1 , MinaBaseZkappCommandCallForestMakeDigestStrForestStableV1
2378#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2379pub struct MinaBaseZkappCommandVerifiableStableV1AccountUpdatesAA {
2380    pub account_update: (
2381        MinaBaseAccountUpdateTStableV1,
2382        Option<MinaBaseZkappCommandVerifiableStableV1AccountUpdatesDataA>,
2383    ),
2384    pub account_update_digest: MinaBaseZkappCommandCallForestMakeDigestStrAccountUpdateStableV1,
2385    pub calls: List<MinaBaseZkappCommandVerifiableStableV1AccountUpdatesAACallsA>,
2386}
2387
2388/// Derived name: `Mina_base__Zkapp_command.T.Stable.V1.Wire.Stable.V1.account_updates.a.a`
2389///
2390/// Gid: `820`
2391/// Location: [src/lib/mina_base/zkapp_command.ml:11:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_command.ml#L11)
2392/// Args: MinaBaseAccountUpdateTStableV1 , () , ()
2393#[derive(
2394    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2395)]
2396pub struct MinaBaseZkappCommandTStableV1WireStableV1AccountUpdatesAA {
2397    pub account_update: MinaBaseAccountUpdateTStableV1,
2398    #[serde(deserialize_with = "always_unit")]
2399    pub account_update_digest: (),
2400    pub calls: List<MinaBaseZkappCommandTStableV1WireStableV1AccountUpdatesAACallsA>,
2401}
2402
2403/// **OCaml name**: `Mina_base__Zkapp_command.Call_forest.Make_digest_str.Account_update.Stable.V1`
2404///
2405/// Gid: `821`
2406/// Location: [src/lib/mina_base/zkapp_command.ml:224:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_command.ml#L224)
2407#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
2408pub struct MinaBaseZkappCommandCallForestMakeDigestStrAccountUpdateStableV1(
2409    pub crate::bigint::BigInt,
2410);
2411
2412/// **OCaml name**: `Mina_base__Zkapp_command.Call_forest.Make_digest_str.Forest.Stable.V1`
2413///
2414/// Gid: `822`
2415/// Location: [src/lib/mina_base/zkapp_command.ml:253:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_command.ml#L253)
2416#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
2417pub struct MinaBaseZkappCommandCallForestMakeDigestStrForestStableV1(pub crate::bigint::BigInt);
2418
2419/// **OCaml name**: `Mina_base__Zkapp_command.T.Stable.V1.Wire.Stable.V1`
2420///
2421/// Gid: `829`
2422/// Location: [src/lib/mina_base/zkapp_command.ml:684:12](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_command.ml#L684)
2423#[derive(
2424    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2425)]
2426pub struct MinaBaseZkappCommandTStableV1WireStableV1 {
2427    pub fee_payer: MinaBaseAccountUpdateFeePayerStableV1,
2428    pub account_updates: List<MinaBaseZkappCommandTStableV1WireStableV1AccountUpdatesA>,
2429    pub memo: MinaBaseSignedCommandMemoStableV1,
2430}
2431
2432/// **OCaml name**: `Mina_base__Zkapp_command.Verifiable.Stable.V1`
2433///
2434/// Gid: `832`
2435/// Location: [src/lib/mina_base/zkapp_command.ml:1096:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/zkapp_command.ml#L1096)
2436#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2437pub struct MinaBaseZkappCommandVerifiableStableV1 {
2438    pub fee_payer: MinaBaseAccountUpdateFeePayerStableV1,
2439    pub account_updates: List<MinaBaseZkappCommandVerifiableStableV1AccountUpdatesA>,
2440    pub memo: MinaBaseSignedCommandMemoStableV1,
2441}
2442
2443/// **OCaml name**: `Mina_base__User_command.Stable.V2`
2444///
2445/// Gid: `839`
2446/// Location: [src/lib/mina_base/user_command.ml:79:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/user_command.ml#L79)
2447///
2448///
2449/// Gid: `837`
2450/// Location: [src/lib/mina_base/user_command.ml:7:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/user_command.ml#L7)
2451/// Args: MinaBaseSignedCommandStableV2 , MinaBaseZkappCommandTStableV1WireStableV1
2452#[derive(
2453    Clone,
2454    Debug,
2455    PartialEq,
2456    SerdeYojsonEnum,
2457    BinProtRead,
2458    BinProtWrite,
2459    derive_more::From,
2460    MallocSizeOf,
2461)]
2462pub enum MinaBaseUserCommandStableV2 {
2463    SignedCommand(MinaBaseSignedCommandStableV2),
2464    ZkappCommand(MinaBaseZkappCommandTStableV1WireStableV1),
2465}
2466
2467/// **OCaml name**: `Mina_base__Fee_transfer.Make_str.Single.Stable.V2`
2468///
2469/// Gid: `843`
2470/// Location: [src/lib/mina_base/fee_transfer.ml:19:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/fee_transfer.ml#L19)
2471#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2472pub struct MinaBaseFeeTransferSingleStableV2 {
2473    pub receiver_pk: NonZeroCurvePoint,
2474    pub fee: CurrencyFeeStableV1,
2475    pub fee_token: TokenIdKeyHash,
2476}
2477
2478/// **OCaml name**: `Mina_base__Fee_transfer.Make_str.Stable.V2`
2479///
2480/// Gid: `844`
2481/// Location: [src/lib/mina_base/fee_transfer.ml:69:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/fee_transfer.ml#L69)
2482///
2483///
2484/// Gid: `508`
2485/// Location: [src/lib/one_or_two/one_or_two.ml:7:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/one_or_two/one_or_two.ml#L7)
2486/// Args: MinaBaseFeeTransferSingleStableV2
2487#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2488#[polymorphic_variant]
2489pub enum MinaBaseFeeTransferStableV2 {
2490    #[allow(non_camel_case_types)]
2491    One(MinaBaseFeeTransferSingleStableV2),
2492    #[allow(non_camel_case_types)]
2493    Two(
2494        (
2495            MinaBaseFeeTransferSingleStableV2,
2496            MinaBaseFeeTransferSingleStableV2,
2497        ),
2498    ),
2499}
2500
2501/// **OCaml name**: `Mina_base__Coinbase_fee_transfer.Make_str.Stable.V1`
2502///
2503/// Gid: `845`
2504/// Location: [src/lib/mina_base/coinbase_fee_transfer.ml:15:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/coinbase_fee_transfer.ml#L15)
2505#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2506pub struct MinaBaseCoinbaseFeeTransferStableV1 {
2507    pub receiver_pk: NonZeroCurvePoint,
2508    pub fee: CurrencyFeeStableV1,
2509}
2510
2511/// **OCaml name**: `Mina_base__Coinbase.Make_str.Stable.V1`
2512///
2513/// Gid: `846`
2514/// Location: [src/lib/mina_base/coinbase.ml:17:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/coinbase.ml#L17)
2515#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2516pub struct MinaBaseCoinbaseStableV1 {
2517    pub receiver: NonZeroCurvePoint,
2518    pub amount: CurrencyAmountStableV1,
2519    pub fee_transfer: Option<MinaBaseCoinbaseFeeTransferStableV1>,
2520}
2521
2522/// **OCaml name**: `Mina_base__Pending_coinbase.Make_str.Stack_id.Stable.V1`
2523///
2524/// Gid: `848`
2525/// Location: [src/lib/mina_base/pending_coinbase.ml:106:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L106)
2526///
2527///
2528/// Gid: `163`
2529/// Location: [src/std_internal.ml:119:2](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/std_internal.ml#L119)
2530///
2531///
2532/// Gid: `113`
2533/// Location: [src/int.ml:19:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/int.ml#L19)
2534#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
2535pub struct MinaBasePendingCoinbaseStackIdStableV1(pub crate::number::UInt64);
2536
2537/// **OCaml name**: `Mina_base__Pending_coinbase.Make_str.Coinbase_stack.Stable.V1`
2538///
2539/// Gid: `851`
2540/// Location: [src/lib/mina_base/pending_coinbase.ml:159:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L159)
2541#[derive(
2542    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
2543)]
2544pub struct MinaBasePendingCoinbaseCoinbaseStackStableV1(pub crate::bigint::BigInt);
2545
2546/// **OCaml name**: `Mina_base__Pending_coinbase.Make_str.Stack_hash.Stable.V1`
2547///
2548/// Gid: `856`
2549/// Location: [src/lib/mina_base/pending_coinbase.ml:219:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L219)
2550#[derive(
2551    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
2552)]
2553pub struct MinaBasePendingCoinbaseStackHashStableV1(pub crate::bigint::BigInt);
2554
2555/// **OCaml name**: `Mina_base__Pending_coinbase.Make_str.State_stack.Stable.V1`
2556///
2557/// Gid: `860`
2558/// Location: [src/lib/mina_base/pending_coinbase.ml:255:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L255)
2559///
2560///
2561/// Gid: `859`
2562/// Location: [src/lib/mina_base/pending_coinbase.ml:245:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L245)
2563/// Args: CoinbaseStackHash
2564#[derive(
2565    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2566)]
2567pub struct MinaBasePendingCoinbaseStateStackStableV1 {
2568    pub init: CoinbaseStackHash,
2569    pub curr: CoinbaseStackHash,
2570}
2571
2572/// **OCaml name**: `Mina_base__Pending_coinbase.Make_str.Hash_builder.Stable.V1`
2573///
2574/// Gid: `863`
2575/// Location: [src/lib/mina_base/pending_coinbase.ml:373:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L373)
2576#[derive(
2577    Clone,
2578    Debug,
2579    PartialEq,
2580    Serialize,
2581    Deserialize,
2582    BinProtRead,
2583    BinProtWrite,
2584    Deref,
2585    PartialOrd,
2586    Ord,
2587    Eq,
2588)]
2589pub struct MinaBasePendingCoinbaseHashBuilderStableV1(pub crate::bigint::BigInt);
2590
2591/// **OCaml name**: `Mina_base__Pending_coinbase.Make_str.Update.Action.Stable.V1`
2592///
2593/// Gid: `866`
2594/// Location: [src/lib/mina_base/pending_coinbase.ml:407:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L407)
2595#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2596pub enum MinaBasePendingCoinbaseUpdateActionStableV1 {
2597    UpdateNone,
2598    UpdateOne,
2599    UpdateTwoCoinbaseInFirst,
2600    UpdateTwoCoinbaseInSecond,
2601}
2602
2603/// **OCaml name**: `Mina_base__Pending_coinbase.Make_str.Update.Stable.V1`
2604///
2605/// Gid: `868`
2606/// Location: [src/lib/mina_base/pending_coinbase.ml:473:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L473)
2607///
2608///
2609/// Gid: `867`
2610/// Location: [src/lib/mina_base/pending_coinbase.ml:463:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L463)
2611/// Args: MinaBasePendingCoinbaseUpdateActionStableV1 , CurrencyAmountStableV1
2612#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2613pub struct MinaBasePendingCoinbaseUpdateStableV1 {
2614    pub action: MinaBasePendingCoinbaseUpdateActionStableV1,
2615    pub coinbase_amount: CurrencyAmountStableV1,
2616}
2617
2618/// **OCaml name**: `Mina_base__Pending_coinbase.Make_str.Stack_versioned.Stable.V1`
2619///
2620/// Gid: `870`
2621/// Location: [src/lib/mina_base/pending_coinbase.ml:522:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L522)
2622///
2623///
2624/// Gid: `869`
2625/// Location: [src/lib/mina_base/pending_coinbase.ml:511:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L511)
2626/// Args: CoinbaseStackData , MinaBasePendingCoinbaseStateStackStableV1
2627#[derive(
2628    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2629)]
2630pub struct MinaBasePendingCoinbaseStackVersionedStableV1 {
2631    pub data: CoinbaseStackData,
2632    pub state: MinaBasePendingCoinbaseStateStackStableV1,
2633}
2634
2635/// **OCaml name**: `Mina_base__Pending_coinbase.Make_str.Hash_versioned.Stable.V1`
2636///
2637/// Gid: `871`
2638/// Location: [src/lib/mina_base/pending_coinbase.ml:535:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L535)
2639#[derive(
2640    Clone,
2641    Debug,
2642    PartialEq,
2643    Serialize,
2644    Deserialize,
2645    BinProtRead,
2646    BinProtWrite,
2647    Deref,
2648    PartialOrd,
2649    Ord,
2650    Eq,
2651)]
2652pub struct MinaBasePendingCoinbaseHashVersionedStableV1(
2653    pub MinaBasePendingCoinbaseHashBuilderStableV1,
2654);
2655
2656/// **OCaml name**: `Mina_base__Pending_coinbase.Make_str.Merkle_tree_versioned.Stable.V2`
2657///
2658/// Gid: `872`
2659/// Location: [src/lib/mina_base/pending_coinbase.ml:547:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase.ml#L547)
2660///
2661///
2662/// Gid: `661`
2663/// Location: [src/lib/sparse_ledger_lib/sparse_ledger.ml:38:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/sparse_ledger_lib/sparse_ledger.ml#L38)
2664/// Args: PendingCoinbaseHash , MinaBasePendingCoinbaseStackIdStableV1 , MinaBasePendingCoinbaseStackVersionedStableV1
2665#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2666pub struct MinaBasePendingCoinbaseMerkleTreeVersionedStableV2 {
2667    pub indexes: List<(
2668        MinaBasePendingCoinbaseStackIdStableV1,
2669        crate::number::UInt64,
2670    )>,
2671    pub depth: crate::number::UInt64,
2672    pub tree: MinaBasePendingCoinbaseMerkleTreeVersionedStableV2Tree,
2673}
2674
2675/// **OCaml name**: `Mina_base__Staged_ledger_hash.Make_str.Aux_hash.Stable.V1`
2676///
2677/// Gid: `875`
2678/// Location: [src/lib/mina_base/staged_ledger_hash.ml:27:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/staged_ledger_hash.ml#L27)
2679#[derive(
2680    Clone,
2681    Debug,
2682    PartialEq,
2683    Serialize,
2684    Deserialize,
2685    BinProtRead,
2686    BinProtWrite,
2687    Deref,
2688    PartialOrd,
2689    Ord,
2690    Eq,
2691)]
2692pub struct MinaBaseStagedLedgerHashAuxHashStableV1(pub crate::string::ByteString);
2693
2694/// **OCaml name**: `Mina_base__Staged_ledger_hash.Make_str.Pending_coinbase_aux.Stable.V1`
2695///
2696/// Gid: `876`
2697/// Location: [src/lib/mina_base/staged_ledger_hash.ml:111:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/staged_ledger_hash.ml#L111)
2698#[derive(
2699    Clone,
2700    Debug,
2701    PartialEq,
2702    Serialize,
2703    Deserialize,
2704    BinProtRead,
2705    BinProtWrite,
2706    Deref,
2707    PartialOrd,
2708    Ord,
2709    Eq,
2710)]
2711pub struct MinaBaseStagedLedgerHashPendingCoinbaseAuxStableV1(pub crate::string::ByteString);
2712
2713/// **OCaml name**: `Mina_base__Staged_ledger_hash.Make_str.Non_snark.Stable.V1`
2714///
2715/// Gid: `877`
2716/// Location: [src/lib/mina_base/staged_ledger_hash.ml:154:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/staged_ledger_hash.ml#L154)
2717#[derive(
2718    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, PartialOrd, Ord, Eq,
2719)]
2720pub struct MinaBaseStagedLedgerHashNonSnarkStableV1 {
2721    pub ledger_hash: LedgerHash,
2722    pub aux_hash: StagedLedgerHashAuxHash,
2723    pub pending_coinbase_aux: StagedLedgerHashPendingCoinbaseAux,
2724}
2725
2726/// **OCaml name**: `Mina_base__Staged_ledger_hash.Make_str.Stable.V1`
2727///
2728/// Gid: `879`
2729/// Location: [src/lib/mina_base/staged_ledger_hash.ml:261:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/staged_ledger_hash.ml#L261)
2730///
2731///
2732/// Gid: `878`
2733/// Location: [src/lib/mina_base/staged_ledger_hash.ml:243:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/staged_ledger_hash.ml#L243)
2734/// Args: MinaBaseStagedLedgerHashNonSnarkStableV1 , PendingCoinbaseHash
2735#[derive(
2736    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, PartialOrd, Ord, Eq,
2737)]
2738pub struct MinaBaseStagedLedgerHashStableV1 {
2739    pub non_snark: MinaBaseStagedLedgerHashNonSnarkStableV1,
2740    pub pending_coinbase_hash: PendingCoinbaseHash,
2741}
2742
2743/// **OCaml name**: `Mina_base__Stack_frame.Make_str.Stable.V1`
2744///
2745/// Gid: `881`
2746/// Location: [src/lib/mina_base/stack_frame.ml:64:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/stack_frame.ml#L64)
2747#[derive(
2748    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
2749)]
2750pub struct MinaBaseStackFrameStableV1(pub crate::bigint::BigInt);
2751
2752/// **OCaml name**: `Mina_base__Sok_message.Make_str.Stable.V1`
2753///
2754/// Gid: `883`
2755/// Location: [src/lib/mina_base/sok_message.ml:14:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/sok_message.ml#L14)
2756#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2757pub struct MinaBaseSokMessageStableV1 {
2758    pub fee: CurrencyFeeStableV1,
2759    pub prover: NonZeroCurvePoint,
2760}
2761
2762/// **OCaml name**: `Mina_base__Protocol_constants_checked.Value.Stable.V1`
2763///
2764/// Gid: `884`
2765/// Location: [src/lib/mina_base/protocol_constants_checked.ml:22:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/protocol_constants_checked.ml#L22)
2766///
2767///
2768/// Gid: `657`
2769/// Location: [src/lib/genesis_constants/genesis_constants.ml:240:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/genesis_constants/genesis_constants.ml#L240)
2770/// Args: UnsignedExtendedUInt32StableV1 , UnsignedExtendedUInt32StableV1 , BlockTimeTimeStableV1
2771#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2772pub struct MinaBaseProtocolConstantsCheckedValueStableV1 {
2773    pub k: UnsignedExtendedUInt32StableV1,
2774    pub slots_per_epoch: UnsignedExtendedUInt32StableV1,
2775    pub slots_per_sub_window: UnsignedExtendedUInt32StableV1,
2776    pub grace_period_slots: UnsignedExtendedUInt32StableV1,
2777    pub delta: UnsignedExtendedUInt32StableV1,
2778    pub genesis_state_timestamp: BlockTimeTimeStableV1,
2779}
2780
2781/// **OCaml name**: `Mina_base__Proof.Stable.V2`
2782///
2783/// Gid: `885`
2784/// Location: [src/lib/mina_base/proof.ml:12:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/proof.ml#L12)
2785#[derive(
2786    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
2787)]
2788pub struct MinaBaseProofStableV2(pub PicklesProofProofsVerified2ReprStableV2);
2789
2790/// **OCaml name**: `Mina_base__Pending_coinbase_witness.Stable.V2`
2791///
2792/// Gid: `886`
2793/// Location: [src/lib/mina_base/pending_coinbase_witness.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/pending_coinbase_witness.ml#L6)
2794#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2795pub struct MinaBasePendingCoinbaseWitnessStableV2 {
2796    pub pending_coinbases: MinaBasePendingCoinbaseStableV2,
2797    pub is_new_stack: bool,
2798}
2799
2800/// **OCaml name**: `Mina_base__Call_stack_digest.Make_str.Stable.V1`
2801///
2802/// Gid: `887`
2803/// Location: [src/lib/mina_base/call_stack_digest.ml:12:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/call_stack_digest.ml#L12)
2804#[derive(
2805    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
2806)]
2807pub struct MinaBaseCallStackDigestStableV1(pub crate::bigint::BigInt);
2808
2809/// **OCaml name**: `Mina_base__Fee_with_prover.Stable.V1`
2810///
2811/// Gid: `888`
2812/// Location: [src/lib/mina_base/fee_with_prover.ml:7:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/fee_with_prover.ml#L7)
2813#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2814pub struct MinaBaseFeeWithProverStableV1 {
2815    pub fee: CurrencyFeeStableV1,
2816    pub prover: NonZeroCurvePoint,
2817}
2818
2819/// **OCaml name**: `Network_peer__Peer.Id.Stable.V1`
2820///
2821/// Gid: `889`
2822/// Location: [src/lib/network_peer/peer.ml:10:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/network_peer/peer.ml#L10)
2823#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
2824pub struct NetworkPeerPeerIdStableV1(pub crate::string::ByteString);
2825
2826/// **OCaml name**: `Mina_transaction__Transaction.Stable.V2`
2827///
2828/// Gid: `896`
2829/// Location: [src/lib/transaction/transaction.ml:46:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction/transaction.ml#L46)
2830///
2831///
2832/// Gid: `894`
2833/// Location: [src/lib/transaction/transaction.ml:8:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction/transaction.ml#L8)
2834/// Args: MinaBaseUserCommandStableV2
2835#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2836pub enum MinaTransactionTransactionStableV2 {
2837    Command(Box<MinaBaseUserCommandStableV2>),
2838    FeeTransfer(MinaBaseFeeTransferStableV2),
2839    Coinbase(MinaBaseCoinbaseStableV1),
2840}
2841
2842/// **OCaml name**: `Mina_transaction_logic__Zkapp_command_logic.Local_state.Value.Stable.V1`
2843///
2844/// Gid: `906`
2845/// Location: [src/lib/transaction_logic/zkapp_command_logic.ml:255:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_logic/zkapp_command_logic.ml#L255)
2846///
2847///
2848/// Gid: `905`
2849/// Location: [src/lib/transaction_logic/zkapp_command_logic.ml:196:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_logic/zkapp_command_logic.ml#L196)
2850/// Args: MinaBaseStackFrameStableV1 , MinaBaseCallStackDigestStableV1 , SignedAmount , LedgerHash , bool , crate :: bigint :: BigInt , UnsignedExtendedUInt32StableV1 , MinaBaseTransactionStatusFailureCollectionStableV1
2851#[derive(
2852    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
2853)]
2854pub struct MinaTransactionLogicZkappCommandLogicLocalStateValueStableV1 {
2855    pub stack_frame: MinaBaseStackFrameStableV1,
2856    pub call_stack: MinaBaseCallStackDigestStableV1,
2857    pub transaction_commitment: crate::bigint::BigInt,
2858    pub full_transaction_commitment: crate::bigint::BigInt,
2859    pub excess: SignedAmount,
2860    pub supply_increase: SignedAmount,
2861    pub ledger: LedgerHash,
2862    pub success: bool,
2863    #[ignore_malloc_size_of = "primitive"]
2864    pub account_update_index: UnsignedExtendedUInt32StableV1,
2865    pub failure_status_tbl: MinaBaseTransactionStatusFailureCollectionStableV1,
2866    pub will_succeed: bool,
2867}
2868
2869/// **OCaml name**: `Mina_transaction_logic.Transaction_applied.Signed_command_applied.Common.Stable.V2`
2870///
2871/// Gid: `908`
2872/// Location: [src/lib/transaction_logic/mina_transaction_logic.ml:17:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_logic/mina_transaction_logic.ml#L17)
2873#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2874#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
2875pub struct MinaTransactionLogicTransactionAppliedSignedCommandAppliedCommonStableV2 {
2876    pub user_command:
2877        MinaTransactionLogicTransactionAppliedSignedCommandAppliedCommonStableV2UserCommand,
2878}
2879
2880/// **OCaml name**: `Mina_transaction_logic.Transaction_applied.Signed_command_applied.Body.Stable.V2`
2881///
2882/// Gid: `909`
2883/// Location: [src/lib/transaction_logic/mina_transaction_logic.ml:31:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_logic/mina_transaction_logic.ml#L31)
2884#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2885pub enum MinaTransactionLogicTransactionAppliedSignedCommandAppliedBodyStableV2 {
2886    Payment {
2887        new_accounts: List<MinaBaseAccountIdStableV2>,
2888    },
2889    StakeDelegation {
2890        previous_delegate: Option<NonZeroCurvePoint>,
2891    },
2892    Failed,
2893}
2894
2895/// **OCaml name**: `Mina_transaction_logic.Transaction_applied.Signed_command_applied.Stable.V2`
2896///
2897/// Gid: `910`
2898/// Location: [src/lib/transaction_logic/mina_transaction_logic.ml:46:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_logic/mina_transaction_logic.ml#L46)
2899#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2900pub struct MinaTransactionLogicTransactionAppliedSignedCommandAppliedStableV2 {
2901    pub common: MinaTransactionLogicTransactionAppliedSignedCommandAppliedCommonStableV2,
2902    pub body: MinaTransactionLogicTransactionAppliedSignedCommandAppliedBodyStableV2,
2903}
2904
2905/// **OCaml name**: `Mina_transaction_logic.Transaction_applied.Zkapp_command_applied.Stable.V1`
2906///
2907/// Gid: `911`
2908/// Location: [src/lib/transaction_logic/mina_transaction_logic.ml:65:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_logic/mina_transaction_logic.ml#L65)
2909#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2910pub struct MinaTransactionLogicTransactionAppliedZkappCommandAppliedStableV1 {
2911    pub accounts: List<(
2912        MinaBaseAccountIdStableV2,
2913        Option<MinaBaseAccountBinableArgStableV2>,
2914    )>,
2915    pub command: MinaTransactionLogicTransactionAppliedZkappCommandAppliedStableV1Command,
2916    pub new_accounts: List<MinaBaseAccountIdStableV2>,
2917}
2918
2919/// **OCaml name**: `Mina_transaction_logic.Transaction_applied.Command_applied.Stable.V2`
2920///
2921/// Gid: `912`
2922/// Location: [src/lib/transaction_logic/mina_transaction_logic.ml:82:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_logic/mina_transaction_logic.ml#L82)
2923#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2924pub enum MinaTransactionLogicTransactionAppliedCommandAppliedStableV2 {
2925    SignedCommand(MinaTransactionLogicTransactionAppliedSignedCommandAppliedStableV2),
2926    ZkappCommand(MinaTransactionLogicTransactionAppliedZkappCommandAppliedStableV1),
2927}
2928
2929/// **OCaml name**: `Mina_transaction_logic.Transaction_applied.Fee_transfer_applied.Stable.V2`
2930///
2931/// Gid: `913`
2932/// Location: [src/lib/transaction_logic/mina_transaction_logic.ml:96:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_logic/mina_transaction_logic.ml#L96)
2933#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2934pub struct MinaTransactionLogicTransactionAppliedFeeTransferAppliedStableV2 {
2935    pub fee_transfer: MinaTransactionLogicTransactionAppliedFeeTransferAppliedStableV2FeeTransfer,
2936    pub new_accounts: List<MinaBaseAccountIdStableV2>,
2937    pub burned_tokens: CurrencyAmountStableV1,
2938}
2939
2940/// **OCaml name**: `Mina_transaction_logic.Transaction_applied.Coinbase_applied.Stable.V2`
2941///
2942/// Gid: `914`
2943/// Location: [src/lib/transaction_logic/mina_transaction_logic.ml:112:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_logic/mina_transaction_logic.ml#L112)
2944#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2945pub struct MinaTransactionLogicTransactionAppliedCoinbaseAppliedStableV2 {
2946    pub coinbase: MinaTransactionLogicTransactionAppliedCoinbaseAppliedStableV2Coinbase,
2947    pub new_accounts: List<MinaBaseAccountIdStableV2>,
2948    pub burned_tokens: CurrencyAmountStableV1,
2949}
2950
2951/// **OCaml name**: `Mina_transaction_logic.Transaction_applied.Varying.Stable.V2`
2952///
2953/// Gid: `915`
2954/// Location: [src/lib/transaction_logic/mina_transaction_logic.ml:128:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_logic/mina_transaction_logic.ml#L128)
2955#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2956pub enum MinaTransactionLogicTransactionAppliedVaryingStableV2 {
2957    Command(MinaTransactionLogicTransactionAppliedCommandAppliedStableV2),
2958    FeeTransfer(MinaTransactionLogicTransactionAppliedFeeTransferAppliedStableV2),
2959    Coinbase(MinaTransactionLogicTransactionAppliedCoinbaseAppliedStableV2),
2960}
2961
2962/// **OCaml name**: `Mina_transaction_logic.Transaction_applied.Stable.V2`
2963///
2964/// Gid: `916`
2965/// Location: [src/lib/transaction_logic/mina_transaction_logic.ml:142:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_logic/mina_transaction_logic.ml#L142)
2966#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2967pub struct MinaTransactionLogicTransactionAppliedStableV2 {
2968    pub previous_hash: LedgerHash,
2969    pub varying: MinaTransactionLogicTransactionAppliedVaryingStableV2,
2970}
2971
2972/// **OCaml name**: `Merkle_address.Binable_arg.Stable.V1`
2973///
2974/// Gid: `917`
2975/// Location: [src/lib/merkle_address/merkle_address.ml:48:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/merkle_address/merkle_address.ml#L48)
2976#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2977pub struct MerkleAddressBinableArgStableV1(
2978    pub crate::number::UInt64,
2979    pub crate::string::ByteString,
2980);
2981
2982/// **OCaml name**: `Trust_system__Banned_status.Stable.V1`
2983///
2984/// Gid: `924`
2985/// Location: [src/lib/trust_system/banned_status.ml:6:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/trust_system/banned_status.ml#L6)
2986#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
2987pub enum TrustSystemBannedStatusStableV1 {
2988    Unbanned,
2989    BannedUntil(crate::number::Float64),
2990}
2991
2992/// **OCaml name**: `Consensus_vrf.Output.Truncated.Stable.V1`
2993///
2994/// Gid: `941`
2995/// Location: [src/lib/consensus/vrf/consensus_vrf.ml:168:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/consensus/vrf/consensus_vrf.ml#L168)
2996#[derive(Clone, Debug, PartialEq, BinProtRead, BinProtWrite, Deref, MallocSizeOf)]
2997pub struct ConsensusVrfOutputTruncatedStableV1(pub crate::string::ByteString);
2998
2999/// **OCaml name**: `Consensus__Stake_proof.Stable.V2`
3000///
3001/// Gid: `951`
3002/// Location: [src/lib/consensus/stake_proof.ml:10:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/consensus/stake_proof.ml#L10)
3003#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3004pub struct ConsensusStakeProofStableV2 {
3005    pub delegator: MinaBaseAccountIndexStableV1,
3006    pub delegator_pk: NonZeroCurvePoint,
3007    pub coinbase_receiver_pk: NonZeroCurvePoint,
3008    pub ledger: MinaBaseSparseLedgerBaseStableV2,
3009    pub producer_private_key: SignatureLibPrivateKeyStableV1,
3010    pub producer_public_key: NonZeroCurvePoint,
3011}
3012
3013/// **OCaml name**: `Consensus__Body_reference.Stable.V1`
3014///
3015/// Gid: `959`
3016/// Location: [src/lib/consensus/body_reference.ml:17:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/consensus/body_reference.ml#L17)
3017#[derive(Clone, Debug, PartialEq, BinProtRead, BinProtWrite, Deref, MallocSizeOf)]
3018pub struct ConsensusBodyReferenceStableV1(pub crate::string::ByteString);
3019
3020/// **OCaml name**: `Consensus__Global_slot.Make_str.Stable.V1`
3021///
3022/// Gid: `966`
3023/// Location: [src/lib/consensus/global_slot.ml:33:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/consensus/global_slot.ml#L33)
3024///
3025///
3026/// Gid: `965`
3027/// Location: [src/lib/consensus/global_slot.ml:22:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/consensus/global_slot.ml#L22)
3028/// Args: MinaNumbersGlobalSlotSinceHardForkMStableV1 , UnsignedExtendedUInt32StableV1
3029#[derive(
3030    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3031)]
3032pub struct ConsensusGlobalSlotStableV1 {
3033    pub slot_number: MinaNumbersGlobalSlotSinceHardForkMStableV1,
3034    pub slots_per_epoch: UnsignedExtendedUInt32StableV1,
3035}
3036
3037/// **OCaml name**: `Consensus__Proof_of_stake.Make_str.Data.Epoch_data.Staking_value_versioned.Value.Stable.V1`
3038///
3039/// Gid: `981`
3040/// Location: [src/lib/consensus/proof_of_stake.ml:1072:14](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/consensus/proof_of_stake.ml#L1072)
3041///
3042///
3043/// Gid: `788`
3044/// Location: [src/lib/mina_base/epoch_data.ml:8:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/epoch_data.ml#L8)
3045/// Args: MinaBaseEpochLedgerValueStableV1 , EpochSeed , StateHash , StateHash , UnsignedExtendedUInt32StableV1
3046#[derive(
3047    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3048)]
3049#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
3050pub struct ConsensusProofOfStakeDataEpochDataStakingValueVersionedValueStableV1 {
3051    pub ledger: MinaBaseEpochLedgerValueStableV1,
3052    pub seed: EpochSeed,
3053    pub start_checkpoint: StateHash,
3054    pub lock_checkpoint: StateHash,
3055    pub epoch_length: UnsignedExtendedUInt32StableV1,
3056}
3057
3058/// **OCaml name**: `Consensus__Proof_of_stake.Make_str.Data.Epoch_data.Next_value_versioned.Value.Stable.V1`
3059///
3060/// Gid: `982`
3061/// Location: [src/lib/consensus/proof_of_stake.ml:1097:14](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/consensus/proof_of_stake.ml#L1097)
3062///
3063///
3064/// Gid: `788`
3065/// Location: [src/lib/mina_base/epoch_data.ml:8:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_base/epoch_data.ml#L8)
3066/// Args: MinaBaseEpochLedgerValueStableV1 , EpochSeed , StateHash , StateHash , UnsignedExtendedUInt32StableV1
3067#[derive(
3068    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3069)]
3070#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
3071pub struct ConsensusProofOfStakeDataEpochDataNextValueVersionedValueStableV1 {
3072    pub ledger: MinaBaseEpochLedgerValueStableV1,
3073    pub seed: EpochSeed,
3074    pub start_checkpoint: StateHash,
3075    pub lock_checkpoint: StateHash,
3076    pub epoch_length: UnsignedExtendedUInt32StableV1,
3077}
3078
3079/// Derived name: `Mina_state__Blockchain_state.Value.Stable.V2.ledger_proof_statement.source`
3080///
3081/// Gid: `985`
3082/// Location: [src/lib/mina_state/registers.ml:8:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/registers.ml#L8)
3083/// Args: LedgerHash , MinaBasePendingCoinbaseStackVersionedStableV1 , MinaTransactionLogicZkappCommandLogicLocalStateValueStableV1
3084#[derive(
3085    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3086)]
3087pub struct MinaStateBlockchainStateValueStableV2LedgerProofStatementSource {
3088    pub first_pass_ledger: LedgerHash,
3089    pub second_pass_ledger: LedgerHash,
3090    pub pending_coinbase_stack: MinaBasePendingCoinbaseStackVersionedStableV1,
3091    pub local_state: MinaTransactionLogicZkappCommandLogicLocalStateValueStableV1,
3092}
3093
3094/// **OCaml name**: `Mina_state__Snarked_ledger_state.Make_str.Pending_coinbase_stack_state.Init_stack.Stable.V1`
3095///
3096/// Gid: `986`
3097/// Location: [src/lib/mina_state/snarked_ledger_state.ml:38:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/snarked_ledger_state.ml#L38)
3098#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3099pub enum MinaStateSnarkedLedgerStatePendingCoinbaseStackStateInitStackStableV1 {
3100    Base(MinaBasePendingCoinbaseStackVersionedStableV1),
3101    Merge,
3102}
3103
3104/// Derived name: `Mina_state__Blockchain_state.Value.Stable.V2.ledger_proof_statement`
3105///
3106/// Gid: `991`
3107/// Location: [src/lib/mina_state/snarked_ledger_state.ml:107:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/snarked_ledger_state.ml#L107)
3108/// Args: LedgerHash , MinaStateBlockchainStateValueStableV2SignedAmount , MinaBasePendingCoinbaseStackVersionedStableV1 , MinaBaseFeeExcessStableV1 , () , MinaTransactionLogicZkappCommandLogicLocalStateValueStableV1
3109#[derive(
3110    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3111)]
3112pub struct MinaStateBlockchainStateValueStableV2LedgerProofStatement {
3113    pub source: MinaStateBlockchainStateValueStableV2LedgerProofStatementSource,
3114    pub target: MinaStateBlockchainStateValueStableV2LedgerProofStatementSource,
3115    pub connecting_ledger_left: LedgerHash,
3116    pub connecting_ledger_right: LedgerHash,
3117    #[ignore_malloc_size_of = "primitive"]
3118    pub supply_increase: MinaStateBlockchainStateValueStableV2SignedAmount,
3119    #[ignore_malloc_size_of = "primitive"]
3120    pub fee_excess: MinaBaseFeeExcessStableV1,
3121    #[serde(deserialize_with = "always_unit")]
3122    pub sok_digest: (),
3123}
3124
3125/// **OCaml name**: `Mina_state__Snarked_ledger_state.Make_str.Stable.V2`
3126///
3127/// Gid: `992`
3128/// Location: [src/lib/mina_state/snarked_ledger_state.ml:191:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/snarked_ledger_state.ml#L191)
3129#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
3130pub struct MinaStateSnarkedLedgerStateStableV2(
3131    pub MinaStateBlockchainStateValueStableV2LedgerProofStatement,
3132);
3133
3134/// **OCaml name**: `Mina_state__Snarked_ledger_state.Make_str.With_sok.Stable.V2`
3135///
3136/// Gid: `993`
3137/// Location: [src/lib/mina_state/snarked_ledger_state.ml:345:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/snarked_ledger_state.ml#L345)
3138///
3139///
3140/// Gid: `991`
3141/// Location: [src/lib/mina_state/snarked_ledger_state.ml:107:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/snarked_ledger_state.ml#L107)
3142/// Args: LedgerHash , MinaStateBlockchainStateValueStableV2SignedAmount , MinaBasePendingCoinbaseStackVersionedStableV1 , MinaBaseFeeExcessStableV1 , crate :: string :: ByteString , MinaTransactionLogicZkappCommandLogicLocalStateValueStableV1
3143#[derive(
3144    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3145)]
3146pub struct MinaStateSnarkedLedgerStateWithSokStableV2 {
3147    pub source: MinaStateBlockchainStateValueStableV2LedgerProofStatementSource,
3148    pub target: MinaStateBlockchainStateValueStableV2LedgerProofStatementSource,
3149    pub connecting_ledger_left: LedgerHash,
3150    pub connecting_ledger_right: LedgerHash,
3151    #[ignore_malloc_size_of = "primitive"]
3152    pub supply_increase: MinaStateBlockchainStateValueStableV2SignedAmount,
3153    #[ignore_malloc_size_of = "primitive"]
3154    pub fee_excess: MinaBaseFeeExcessStableV1,
3155    pub sok_digest: crate::string::ByteString,
3156}
3157
3158/// **OCaml name**: `Mina_state__Blockchain_state.Value.Stable.V2`
3159///
3160/// Gid: `997`
3161/// Location: [src/lib/mina_state/blockchain_state.ml:68:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/blockchain_state.ml#L68)
3162///
3163///
3164/// Gid: `996`
3165/// Location: [src/lib/mina_state/blockchain_state.ml:10:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/blockchain_state.ml#L10)
3166/// Args: MinaBaseStagedLedgerHashStableV1 , LedgerHash , MinaTransactionLogicZkappCommandLogicLocalStateValueStableV1 , BlockTimeTimeStableV1 , ConsensusBodyReferenceStableV1 , MinaStateBlockchainStateValueStableV2SignedAmount , MinaBasePendingCoinbaseStackVersionedStableV1 , MinaBaseFeeExcessStableV1 , ()
3167#[derive(
3168    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3169)]
3170pub struct MinaStateBlockchainStateValueStableV2 {
3171    #[ignore_malloc_size_of = "primitive"]
3172    pub staged_ledger_hash: MinaBaseStagedLedgerHashStableV1,
3173    pub genesis_ledger_hash: LedgerHash,
3174    pub ledger_proof_statement: MinaStateBlockchainStateValueStableV2LedgerProofStatement,
3175    #[ignore_malloc_size_of = "primitive"]
3176    pub timestamp: BlockTimeTimeStableV1,
3177    pub body_reference: ConsensusBodyReferenceStableV1,
3178}
3179
3180/// **OCaml name**: `Mina_state__Snark_transition.Value.Stable.V2`
3181///
3182/// Gid: `999`
3183/// Location: [src/lib/mina_state/snark_transition.ml:25:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/snark_transition.ml#L25)
3184///
3185///
3186/// Gid: `998`
3187/// Location: [src/lib/mina_state/snark_transition.ml:8:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/snark_transition.ml#L8)
3188/// Args: MinaStateBlockchainStateValueStableV2 , MinaNumbersGlobalSlotSinceHardForkMStableV1 , MinaBasePendingCoinbaseUpdateStableV1
3189#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3190pub struct MinaStateSnarkTransitionValueStableV2 {
3191    pub blockchain_state: MinaStateBlockchainStateValueStableV2,
3192    pub consensus_transition: MinaNumbersGlobalSlotSinceHardForkMStableV1,
3193    pub pending_coinbase_update: MinaBasePendingCoinbaseUpdateStableV1,
3194}
3195
3196/// **OCaml name**: `Mina_state__Protocol_state.Make_str.Body.Value.Stable.V2`
3197///
3198/// Gid: `1003`
3199/// Location: [src/lib/mina_state/protocol_state.ml:82:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/protocol_state.ml#L82)
3200///
3201///
3202/// Gid: `1001`
3203/// Location: [src/lib/mina_state/protocol_state.ml:62:10](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_state/protocol_state.ml#L62)
3204/// Args: StateHash , MinaStateBlockchainStateValueStableV2 , ConsensusProofOfStakeDataConsensusStateValueStableV2 , MinaBaseProtocolConstantsCheckedValueStableV1
3205#[derive(
3206    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3207)]
3208pub struct MinaStateProtocolStateBodyValueStableV2 {
3209    pub genesis_state_hash: StateHash,
3210    pub blockchain_state: MinaStateBlockchainStateValueStableV2,
3211    pub consensus_state: ConsensusProofOfStakeDataConsensusStateValueStableV2,
3212    #[ignore_malloc_size_of = "primitive"]
3213    pub constants: MinaBaseProtocolConstantsCheckedValueStableV1,
3214}
3215
3216/// **OCaml name**: `Transaction_snark.Make_str.Proof.Stable.V2`
3217///
3218/// Gid: `1011`
3219/// Location: [src/lib/transaction_snark/transaction_snark.ml:69:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_snark/transaction_snark.ml#L69)
3220#[derive(Clone, Debug, PartialEq, BinProtRead, BinProtWrite, Deref, MallocSizeOf)]
3221pub struct TransactionSnarkProofStableV2(pub PicklesProofProofsVerified2ReprStableV2);
3222
3223/// **OCaml name**: `Transaction_snark.Make_str.Stable.V2`
3224///
3225/// Gid: `1012`
3226/// Location: [src/lib/transaction_snark/transaction_snark.ml:80:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_snark/transaction_snark.ml#L80)
3227#[derive(
3228    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3229)]
3230pub struct TransactionSnarkStableV2 {
3231    pub statement: MinaStateSnarkedLedgerStateWithSokStableV2,
3232    pub proof: TransactionSnarkProofStableV2,
3233}
3234
3235/// **OCaml name**: `Ledger_proof.Prod.Stable.V2`
3236///
3237/// Gid: `1014`
3238/// Location: [src/lib/ledger_proof/ledger_proof.ml:10:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/ledger_proof/ledger_proof.ml#L10)
3239#[derive(
3240    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref, MallocSizeOf,
3241)]
3242pub struct LedgerProofProdStableV2(pub TransactionSnarkStableV2);
3243
3244/// **OCaml name**: `Transaction_snark_work.Statement.Stable.V2`
3245///
3246/// Gid: `1016`
3247/// Location: [src/lib/transaction_snark_work/transaction_snark_work.ml:23:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_snark_work/transaction_snark_work.ml#L23)
3248///
3249///
3250/// Gid: `508`
3251/// Location: [src/lib/one_or_two/one_or_two.ml:7:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/one_or_two/one_or_two.ml#L7)
3252/// Args: MinaStateSnarkedLedgerStateStableV2
3253#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3254#[polymorphic_variant]
3255pub enum TransactionSnarkWorkStatementStableV2 {
3256    #[allow(non_camel_case_types)]
3257    One(MinaStateSnarkedLedgerStateStableV2),
3258    #[allow(non_camel_case_types)]
3259    Two(
3260        (
3261            MinaStateSnarkedLedgerStateStableV2,
3262            MinaStateSnarkedLedgerStateStableV2,
3263        ),
3264    ),
3265}
3266
3267/// **OCaml name**: `Transaction_snark_work.T.Stable.V2`
3268///
3269/// Gid: `1024`
3270/// Location: [src/lib/transaction_snark_work/transaction_snark_work.ml:83:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_snark_work/transaction_snark_work.ml#L83)
3271#[derive(
3272    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3273)]
3274pub struct TransactionSnarkWorkTStableV2 {
3275    pub fee: CurrencyFeeStableV1,
3276    pub proofs: TransactionSnarkWorkTStableV2Proofs,
3277    pub prover: NonZeroCurvePoint,
3278}
3279
3280/// Derived name: `Staged_ledger_diff__Diff.Make_str.Pre_diff_with_at_most_two_coinbase.Stable.V2.coinbase`
3281///
3282/// Gid: `1025`
3283/// Location: [src/lib/staged_ledger_diff/diff.ml:28:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/staged_ledger_diff/diff.ml#L28)
3284/// Args: StagedLedgerDiffDiffFtStableV1
3285#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite)]
3286pub enum StagedLedgerDiffDiffPreDiffWithAtMostTwoCoinbaseStableV2Coinbase {
3287    Zero,
3288    One(Option<StagedLedgerDiffDiffFtStableV1>),
3289    Two(
3290        Option<(
3291            StagedLedgerDiffDiffFtStableV1,
3292            Option<StagedLedgerDiffDiffFtStableV1>,
3293        )>,
3294    ),
3295}
3296
3297/// Derived name: `Staged_ledger_diff__Diff.Make_str.Pre_diff_with_at_most_one_coinbase.Stable.V2.coinbase`
3298///
3299/// Gid: `1026`
3300/// Location: [src/lib/staged_ledger_diff/diff.ml:64:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/staged_ledger_diff/diff.ml#L64)
3301/// Args: StagedLedgerDiffDiffFtStableV1
3302#[derive(Clone, Debug, PartialEq, SerdeYojsonEnum, BinProtRead, BinProtWrite)]
3303pub enum StagedLedgerDiffDiffPreDiffWithAtMostOneCoinbaseStableV2Coinbase {
3304    Zero,
3305    One(Option<StagedLedgerDiffDiffFtStableV1>),
3306}
3307
3308/// **OCaml name**: `Staged_ledger_diff__Diff.Make_str.Ft.Stable.V1`
3309///
3310/// Gid: `1027`
3311/// Location: [src/lib/staged_ledger_diff/diff.ml:88:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/staged_ledger_diff/diff.ml#L88)
3312#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
3313pub struct StagedLedgerDiffDiffFtStableV1(pub MinaBaseCoinbaseFeeTransferStableV1);
3314
3315/// **OCaml name**: `Staged_ledger_diff__Diff.Make_str.Pre_diff_with_at_most_two_coinbase.Stable.V2`
3316///
3317/// Gid: `1030`
3318/// Location: [src/lib/staged_ledger_diff/diff.ml:168:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/staged_ledger_diff/diff.ml#L168)
3319///
3320///
3321/// Gid: `1028`
3322/// Location: [src/lib/staged_ledger_diff/diff.ml:104:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/staged_ledger_diff/diff.ml#L104)
3323/// Args: TransactionSnarkWorkTStableV2 , StagedLedgerDiffDiffPreDiffWithAtMostTwoCoinbaseStableV2B
3324#[derive(
3325    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3326)]
3327pub struct StagedLedgerDiffDiffPreDiffWithAtMostTwoCoinbaseStableV2 {
3328    pub completed_works: List<TransactionSnarkWorkTStableV2>,
3329    pub commands: List<StagedLedgerDiffDiffPreDiffWithAtMostTwoCoinbaseStableV2B>,
3330    #[ignore_malloc_size_of = "primitive"]
3331    pub coinbase: StagedLedgerDiffDiffPreDiffWithAtMostTwoCoinbaseStableV2Coinbase,
3332    pub internal_command_statuses: List<MinaBaseTransactionStatusStableV2>,
3333}
3334
3335/// **OCaml name**: `Staged_ledger_diff__Diff.Make_str.Pre_diff_with_at_most_one_coinbase.Stable.V2`
3336///
3337/// Gid: `1031`
3338/// Location: [src/lib/staged_ledger_diff/diff.ml:187:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/staged_ledger_diff/diff.ml#L187)
3339///
3340///
3341/// Gid: `1029`
3342/// Location: [src/lib/staged_ledger_diff/diff.ml:136:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/staged_ledger_diff/diff.ml#L136)
3343/// Args: TransactionSnarkWorkTStableV2 , StagedLedgerDiffDiffPreDiffWithAtMostTwoCoinbaseStableV2B
3344#[derive(
3345    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3346)]
3347pub struct StagedLedgerDiffDiffPreDiffWithAtMostOneCoinbaseStableV2 {
3348    pub completed_works: List<TransactionSnarkWorkTStableV2>,
3349    pub commands: List<StagedLedgerDiffDiffPreDiffWithAtMostTwoCoinbaseStableV2B>,
3350    #[ignore_malloc_size_of = "primitive"]
3351    pub coinbase: StagedLedgerDiffDiffPreDiffWithAtMostOneCoinbaseStableV2Coinbase,
3352    pub internal_command_statuses: List<MinaBaseTransactionStatusStableV2>,
3353}
3354
3355/// **OCaml name**: `Staged_ledger_diff__Diff.Make_str.Diff.Stable.V2`
3356///
3357/// Gid: `1032`
3358/// Location: [src/lib/staged_ledger_diff/diff.ml:206:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/staged_ledger_diff/diff.ml#L206)
3359#[derive(
3360    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3361)]
3362pub struct StagedLedgerDiffDiffDiffStableV2(
3363    pub StagedLedgerDiffDiffPreDiffWithAtMostTwoCoinbaseStableV2,
3364    pub Option<StagedLedgerDiffDiffPreDiffWithAtMostOneCoinbaseStableV2>,
3365);
3366
3367/// **OCaml name**: `Staged_ledger_diff__Diff.Make_str.Stable.V2`
3368///
3369/// Gid: `1033`
3370/// Location: [src/lib/staged_ledger_diff/diff.ml:223:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/staged_ledger_diff/diff.ml#L223)
3371#[derive(
3372    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3373)]
3374pub struct StagedLedgerDiffDiffStableV2 {
3375    pub diff: StagedLedgerDiffDiffDiffStableV2,
3376}
3377
3378/// **OCaml name**: `Staged_ledger_diff__Body.Make_str.Stable.V1`
3379///
3380/// Gid: `1034`
3381/// Location: [src/lib/staged_ledger_diff/body.ml:18:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/staged_ledger_diff/body.ml#L18)
3382#[derive(
3383    Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, MallocSizeOf,
3384)]
3385pub struct StagedLedgerDiffBodyStableV1 {
3386    pub staged_ledger_diff: StagedLedgerDiffDiffStableV2,
3387}
3388
3389/// Derived name: `Snark_worker.Worker.Rpcs_versioned.Get_work.V2.T.response.a.0.single`
3390///
3391/// Gid: `1038`
3392/// Location: [src/lib/snark_work_lib/work.ml:12:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/snark_work_lib/work.ml#L12)
3393/// Args: TransactionWitnessStableV2 , LedgerProofProdStableV2
3394#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3395pub enum SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0Single {
3396    Transition(
3397        MinaStateSnarkedLedgerStateStableV2,
3398        TransactionWitnessStableV2,
3399    ),
3400    Merge(
3401        Box<(
3402            MinaStateSnarkedLedgerStateStableV2,
3403            LedgerProofProdStableV2,
3404            LedgerProofProdStableV2,
3405        )>,
3406    ),
3407}
3408
3409/// Derived name: `Snark_worker.Worker.Rpcs_versioned.Get_work.V2.T.response.a.0`
3410///
3411/// Gid: `1039`
3412/// Location: [src/lib/snark_work_lib/work.ml:61:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/snark_work_lib/work.ml#L61)
3413/// Args: SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0Single
3414#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3415pub struct SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0 {
3416    pub instances: SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0Instances,
3417    pub fee: CurrencyFeeStableV1,
3418}
3419
3420/// **OCaml name**: `Parallel_scan.Sequence_number.Stable.V1`
3421///
3422/// Gid: `1041`
3423/// Location: [src/lib/parallel_scan/parallel_scan.ml:22:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/parallel_scan/parallel_scan.ml#L22)
3424///
3425///
3426/// Gid: `163`
3427/// Location: [src/std_internal.ml:119:2](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/std_internal.ml#L119)
3428///
3429///
3430/// Gid: `113`
3431/// Location: [src/int.ml:19:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/int.ml#L19)
3432#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite, Deref)]
3433pub struct ParallelScanSequenceNumberStableV1(pub crate::number::UInt64);
3434
3435/// **OCaml name**: `Parallel_scan.Job_status.Stable.V1`
3436///
3437/// Gid: `1042`
3438/// Location: [src/lib/parallel_scan/parallel_scan.ml:35:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/parallel_scan/parallel_scan.ml#L35)
3439#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3440pub enum ParallelScanJobStatusStableV1 {
3441    Todo,
3442    Done,
3443}
3444
3445/// **OCaml name**: `Parallel_scan.Weight.Stable.V1`
3446///
3447/// Gid: `1043`
3448/// Location: [src/lib/parallel_scan/parallel_scan.ml:53:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/parallel_scan/parallel_scan.ml#L53)
3449#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3450pub struct ParallelScanWeightStableV1 {
3451    pub base: crate::number::UInt64,
3452    pub merge: crate::number::UInt64,
3453}
3454
3455/// Derived name: `Transaction_snark_scan_state.Stable.V2.scan_state.trees.a.base_t.1.Full`
3456///
3457/// Gid: `1044`
3458/// Location: [src/lib/parallel_scan/parallel_scan.ml:68:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/parallel_scan/parallel_scan.ml#L68)
3459/// Args: TransactionSnarkScanStateTransactionWithWitnessStableV2
3460#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3461pub struct TransactionSnarkScanStateStableV2ScanStateTreesABaseT1Full {
3462    pub job: TransactionSnarkScanStateTransactionWithWitnessStableV2,
3463    pub seq_no: ParallelScanSequenceNumberStableV1,
3464    pub status: ParallelScanJobStatusStableV1,
3465}
3466
3467/// Derived name: `Transaction_snark_scan_state.Stable.V2.scan_state.trees.a.base_t.1`
3468///
3469/// Gid: `1045`
3470/// Location: [src/lib/parallel_scan/parallel_scan.ml:84:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/parallel_scan/parallel_scan.ml#L84)
3471/// Args: TransactionSnarkScanStateTransactionWithWitnessStableV2
3472#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3473pub enum TransactionSnarkScanStateStableV2ScanStateTreesABaseT1 {
3474    Empty,
3475    Full(Box<TransactionSnarkScanStateStableV2ScanStateTreesABaseT1Full>),
3476}
3477
3478/// Derived name: `Transaction_snark_scan_state.Stable.V2.scan_state.trees.a.merge_t.1.Full`
3479///
3480/// Gid: `1047`
3481/// Location: [src/lib/parallel_scan/parallel_scan.ml:112:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/parallel_scan/parallel_scan.ml#L112)
3482/// Args: TransactionSnarkScanStateLedgerProofWithSokMessageStableV2
3483#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3484pub struct TransactionSnarkScanStateStableV2ScanStateTreesAMergeT1Full {
3485    pub left: TransactionSnarkScanStateLedgerProofWithSokMessageStableV2,
3486    pub right: TransactionSnarkScanStateLedgerProofWithSokMessageStableV2,
3487    pub seq_no: ParallelScanSequenceNumberStableV1,
3488    pub status: ParallelScanJobStatusStableV1,
3489}
3490
3491/// Derived name: `Transaction_snark_scan_state.Stable.V2.scan_state.trees.a.merge_t.1`
3492///
3493/// Gid: `1048`
3494/// Location: [src/lib/parallel_scan/parallel_scan.ml:130:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/parallel_scan/parallel_scan.ml#L130)
3495/// Args: TransactionSnarkScanStateLedgerProofWithSokMessageStableV2
3496#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3497pub enum TransactionSnarkScanStateStableV2ScanStateTreesAMergeT1 {
3498    Empty,
3499    Part(Box<TransactionSnarkScanStateLedgerProofWithSokMessageStableV2>),
3500    Full(Box<TransactionSnarkScanStateStableV2ScanStateTreesAMergeT1Full>),
3501}
3502
3503/// Derived name: `Transaction_snark_scan_state.Stable.V2.scan_state`
3504///
3505/// Gid: `1055`
3506/// Location: [src/lib/parallel_scan/parallel_scan.ml:803:8](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/parallel_scan/parallel_scan.ml#L803)
3507/// Args: TransactionSnarkScanStateLedgerProofWithSokMessageStableV2 , TransactionSnarkScanStateTransactionWithWitnessStableV2
3508#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3509pub struct TransactionSnarkScanStateStableV2ScanState {
3510    pub trees: (
3511        TransactionSnarkScanStateStableV2ScanStateTreesA,
3512        List<TransactionSnarkScanStateStableV2ScanStateTreesA>,
3513    ),
3514    pub acc: Option<(
3515        TransactionSnarkScanStateLedgerProofWithSokMessageStableV2,
3516        List<TransactionSnarkScanStateTransactionWithWitnessStableV2>,
3517    )>,
3518    pub curr_job_seq_no: crate::number::UInt64,
3519    pub max_base_jobs: crate::number::UInt64,
3520    pub delay: crate::number::UInt64,
3521}
3522
3523/// **OCaml name**: `Transaction_snark_scan_state.Transaction_with_witness.Stable.V2`
3524///
3525/// Gid: `1056`
3526/// Location: [src/lib/transaction_snark_scan_state/transaction_snark_scan_state.ml:40:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_snark_scan_state/transaction_snark_scan_state.ml#L40)
3527#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3528pub struct TransactionSnarkScanStateTransactionWithWitnessStableV2 {
3529    pub transaction_with_info: MinaTransactionLogicTransactionAppliedStableV2,
3530    pub state_hash: (StateHash, StateBodyHash),
3531    pub statement: MinaStateSnarkedLedgerStateStableV2,
3532    pub init_stack: MinaStateSnarkedLedgerStatePendingCoinbaseStackStateInitStackStableV1,
3533    pub first_pass_ledger_witness: MinaBaseSparseLedgerBaseStableV2,
3534    pub second_pass_ledger_witness: MinaBaseSparseLedgerBaseStableV2,
3535    pub block_global_slot: MinaNumbersGlobalSlotSinceGenesisMStableV1,
3536}
3537
3538/// **OCaml name**: `Transaction_snark_scan_state.Ledger_proof_with_sok_message.Stable.V2`
3539///
3540/// Gid: `1057`
3541/// Location: [src/lib/transaction_snark_scan_state/transaction_snark_scan_state.ml:65:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/transaction_snark_scan_state/transaction_snark_scan_state.ml#L65)
3542#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3543#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
3544pub struct TransactionSnarkScanStateLedgerProofWithSokMessageStableV2(
3545    pub LedgerProofProdStableV2,
3546    pub MinaBaseSokMessageStableV1,
3547);
3548
3549/// **OCaml name**: `Mina_block__Header.Make_str.Stable.V2`
3550///
3551/// Gid: `1101`
3552/// Location: [src/lib/mina_block/header.ml:21:6](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/mina_block/header.ml#L21)
3553#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3554pub struct MinaBlockHeaderStableV2 {
3555    pub protocol_state: MinaStateProtocolStateValueStableV2,
3556    pub protocol_state_proof: Arc<MinaBaseProofStableV2>,
3557    pub delta_block_chain_proof: (StateHash, List<StateBodyHash>),
3558    pub current_protocol_version: ProtocolVersionStableV2,
3559    pub proposed_protocol_version_opt: Option<ProtocolVersionStableV2>,
3560}
3561
3562impl MallocSizeOf for MinaBlockHeaderStableV2 {
3563    fn size_of(&self, ops: &mut malloc_size_of::MallocSizeOfOps) -> usize {
3564        let factor = usize::from(!ops.have_seen_ptr(Arc::as_ptr(&self.protocol_state_proof)));
3565        self.protocol_state_proof.size_of(ops) * factor
3566            + self.protocol_state.size_of(ops)
3567            + self.delta_block_chain_proof.1.size_of(ops)
3568    }
3569}
3570
3571/// Derived name: `Network_pool__Snark_pool.Diff_versioned.Stable.V2.Add_solved_work.1`
3572///
3573/// Gid: `1121`
3574/// Location: [src/lib/network_pool/priced_proof.ml:9:4](https://github.com/MinaProtocol/mina/blob/1551e2faaa/src/lib/network_pool/priced_proof.ml#L9)
3575/// Args: TransactionSnarkWorkTStableV2Proofs
3576#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3577pub struct NetworkPoolSnarkPoolDiffVersionedStableV2AddSolvedWork1 {
3578    pub proof: TransactionSnarkWorkTStableV2Proofs,
3579    pub fee: MinaBaseFeeWithProverStableV1,
3580}
3581
3582/// Derived name: `Snark_worker.Worker.Rpcs_versioned.Submit_work.V2.T.query.metrics.a.1`
3583#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3584#[polymorphic_variant]
3585pub enum SnarkWorkerWorkerRpcsVersionedSubmitWorkV2TQueryMetricsA1 {
3586    #[allow(non_camel_case_types)]
3587    Transition,
3588    #[allow(non_camel_case_types)]
3589    Merge,
3590}
3591
3592/// Derived name: `Transaction_snark_scan_state.Stable.V2.previous_incomplete_zkapp_updates.1`
3593#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, BinProtRead, BinProtWrite)]
3594#[polymorphic_variant]
3595pub enum TransactionSnarkScanStateStableV2PreviousIncompleteZkappUpdates1 {
3596    #[allow(non_camel_case_types)]
3597    Border_block_continued_in_the_next_tree(bool),
3598}
3599
3600// Utils
3601
3602// FIXME: This workaround ignores values in the JSON that correspond to `()` in the target type.
3603// The proper solution would involve defining a composite type that accurately reflects
3604// the structure of the data, including fields with actual values instead of unit (`()`).
3605fn always_unit<'de, D>(deserializer: D) -> Result<(), D::Error>
3606where
3607    D: serde::de::Deserializer<'de>,
3608{
3609    if deserializer.is_human_readable() {
3610        let _ = serde_json::Value::deserialize(deserializer)?;
3611        Ok(())
3612    } else {
3613        <()>::deserialize(deserializer)
3614    }
3615}
3616
3617// Manual ToSchema impls for types where derive doesn't work or produces incorrect schemas.
3618// - SerdeYojsonEnum types serialize to yojson array format ["Variant", ...] which doesn't
3619//   match utoipa's derived enum schema.
3620// - Types with tuple generics like List<(A, B)> cause utoipa's ToSchema derive to panic.
3621#[cfg(feature = "openapi")]
3622const _: () = {
3623    use utoipa::{
3624        openapi::schema::{Array, Object, Schema, SchemaType, Type},
3625        PartialSchema, ToSchema,
3626    };
3627
3628    // MinaBaseTransactionStatusFailureCollectionStableV1: List<List<FailureReason>>
3629    // Serializes as array of arrays of failure reason strings
3630    impl PartialSchema for MinaBaseTransactionStatusFailureCollectionStableV1 {
3631        fn schema() -> utoipa::openapi::RefOr<Schema> {
3632            Array::builder()
3633                .items(
3634                    Array::builder().items(
3635                        Object::builder()
3636                            .schema_type(SchemaType::Type(Type::String))
3637                            .description(Some("Transaction failure reason"))
3638                            .build(),
3639                    ),
3640                )
3641                .description(Some("Collection of transaction failure reasons"))
3642                .build()
3643                .into()
3644        }
3645    }
3646    impl ToSchema for MinaBaseTransactionStatusFailureCollectionStableV1 {
3647        fn name() -> std::borrow::Cow<'static, str> {
3648            std::borrow::Cow::Borrowed("MinaBaseTransactionStatusFailureCollectionStableV1")
3649        }
3650    }
3651
3652    // MinaBaseTransactionStatusStableV2: SerdeYojsonEnum
3653    // Serializes as ["Applied"] or ["Failed", [[failure_reasons...]]]
3654    impl PartialSchema for MinaBaseTransactionStatusStableV2 {
3655        fn schema() -> utoipa::openapi::RefOr<Schema> {
3656            // Yojson enum serializes as array, simplified schema
3657            Array::builder()
3658                .description(Some(
3659                    r#"Yojson enum: ["Applied"] or ["Failed", [[failure_reasons...]]]"#,
3660                ))
3661                .build()
3662                .into()
3663        }
3664    }
3665    impl ToSchema for MinaBaseTransactionStatusStableV2 {
3666        fn name() -> std::borrow::Cow<'static, str> {
3667            std::borrow::Cow::Borrowed("MinaBaseTransactionStatusStableV2")
3668        }
3669    }
3670
3671    // MinaBaseSignedCommandPayloadBodyStableV2: SerdeYojsonEnum
3672    // Serializes as ["Payment", {...}] or ["StakeDelegation", {...}]
3673    impl PartialSchema for MinaBaseSignedCommandPayloadBodyStableV2 {
3674        fn schema() -> utoipa::openapi::RefOr<Schema> {
3675            Array::builder()
3676                .items(Object::builder().schema_type(SchemaType::Type(Type::Object)))
3677                .description(Some(
3678                    r#"Yojson enum: ["Payment", {...}] or ["StakeDelegation", {...}]"#,
3679                ))
3680                .build()
3681                .into()
3682        }
3683    }
3684    impl ToSchema for MinaBaseSignedCommandPayloadBodyStableV2 {
3685        fn name() -> std::borrow::Cow<'static, str> {
3686            std::borrow::Cow::Borrowed("MinaBaseSignedCommandPayloadBodyStableV2")
3687        }
3688    }
3689
3690    // MinaTransactionLogicTransactionAppliedZkappCommandAppliedStableV1:
3691    // Manual impl required because utoipa's ToSchema derive panics on tuple generics
3692    // like `List<(TypeA, Option<TypeB>)>` with "TypeTree must have a path"
3693    impl PartialSchema for MinaTransactionLogicTransactionAppliedZkappCommandAppliedStableV1 {
3694        fn schema() -> utoipa::openapi::RefOr<Schema> {
3695            // accounts: List<(AccountId, Option<Account>)> - tuple serializes as 2-element array
3696            let accounts_item = Array::builder()
3697                .items(Object::builder().schema_type(SchemaType::Type(Type::Object)))
3698                .min_items(Some(2))
3699                .max_items(Some(2))
3700                .description(Some("[AccountId, Account | null]"));
3701
3702            Object::builder()
3703                .schema_type(SchemaType::Type(Type::Object))
3704                .property(
3705                    "accounts",
3706                    Array::builder()
3707                        .items(accounts_item)
3708                        .description(Some("List of (account_id, account) tuples")),
3709                )
3710                .property(
3711                    "command",
3712                    utoipa::openapi::Ref::new(
3713                        "MinaTransactionLogicTransactionAppliedZkappCommandAppliedStableV1Command",
3714                    ),
3715                )
3716                .property(
3717                    "new_accounts",
3718                    Array::builder().items(utoipa::openapi::Ref::new("MinaBaseAccountIdStableV2")),
3719                )
3720                .required("accounts")
3721                .required("command")
3722                .required("new_accounts")
3723                .build()
3724                .into()
3725        }
3726    }
3727    impl ToSchema for MinaTransactionLogicTransactionAppliedZkappCommandAppliedStableV1 {
3728        fn name() -> std::borrow::Cow<'static, str> {
3729            std::borrow::Cow::Borrowed(
3730                "MinaTransactionLogicTransactionAppliedZkappCommandAppliedStableV1",
3731            )
3732        }
3733    }
3734};