@@ -61,7 +61,7 @@ pub use transaction_union_payload::{
6161} ;
6262
6363/// OCaml reference: src/lib/mina_base/transaction_status.ml L:9-51
64- /// Commit: 2ee6e004ba8c6a0541056076aab22ea162f7eb3a
64+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
6565/// Last verified: 2025-10-08
6666#[ derive( serde:: Serialize , serde:: Deserialize , Debug , Clone , PartialEq , Eq ) ]
6767pub enum TransactionFailure {
@@ -179,7 +179,7 @@ impl Display for TransactionFailure {
179179}
180180
181181/// OCaml reference: src/lib/mina_base/transaction_status.ml L:452-454
182- /// Commit: 2ee6e004ba8c6a0541056076aab22ea162f7eb3a
182+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
183183/// Last verified: 2025-10-08
184184#[ derive( SerdeYojsonEnum , Debug , Clone , PartialEq , Eq ) ]
185185pub enum TransactionStatus {
@@ -197,7 +197,7 @@ impl TransactionStatus {
197197}
198198
199199/// OCaml reference: src/lib/mina_base/with_status.ml L:6-10
200- /// Commit: 2ee6e004ba8c6a0541056076aab22ea162f7eb3a
200+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
201201/// Last verified: 2025-10-08
202202#[ derive( serde:: Serialize , serde:: Deserialize , Debug , Clone , PartialEq ) ]
203203pub struct WithStatus < T > {
@@ -265,7 +265,9 @@ where
265265 }
266266}
267267
268- /// <https://github.com/MinaProtocol/mina/blob/2ee6e004ba8c6a0541056076aab22ea162f7eb3a/src/lib/mina_base/fee_transfer.ml#L19>
268+ /// OCaml reference: src/lib/mina_base/fee_transfer.ml L:76-80
269+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
270+ /// Last verified: 2025-10-10
269271#[ derive( Debug , Clone , PartialEq ) ]
270272pub struct SingleFeeTransfer {
271273 pub receiver_pk : CompressedPubKey ,
@@ -290,7 +292,9 @@ impl SingleFeeTransfer {
290292 }
291293}
292294
293- /// <https://github.com/MinaProtocol/mina/blob/2ee6e004ba8c6a0541056076aab22ea162f7eb3a/src/lib/mina_base/fee_transfer.ml#L68>
295+ /// OCaml reference: src/lib/mina_base/fee_transfer.ml L:68-69
296+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
297+ /// Last verified: 2025-10-10
294298#[ derive( Debug , Clone , PartialEq ) ]
295299pub struct FeeTransfer ( pub ( super ) OneOrTwo < SingleFeeTransfer > ) ;
296300
@@ -318,15 +322,19 @@ impl FeeTransfer {
318322 } )
319323 }
320324
321- /// <https://github.com/MinaProtocol/mina/blob/e5183ca1dde1c085b4c5d37d1d9987e24c294c32/src/lib/mina_base/fee_transfer.ml#L109>
325+ /// OCaml reference: src/lib/mina_base/fee_transfer.ml L:110-114
326+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
327+ /// Last verified: 2025-10-10
322328 pub fn fee_excess ( & self ) -> Result < FeeExcess , String > {
323329 let one_or_two = self . 0 . map ( |SingleFeeTransfer { fee, fee_token, .. } | {
324330 ( fee_token. clone ( ) , Signed :: < Fee > :: of_unsigned ( * fee) . negate ( ) )
325331 } ) ;
326332 FeeExcess :: of_one_or_two ( one_or_two)
327333 }
328334
329- /// <https://github.com/MinaProtocol/mina/blob/05c2f73d0f6e4f1341286843814ce02dcb3919e0/src/lib/mina_base/fee_transfer.ml#L84>
335+ /// OCaml reference: src/lib/mina_base/fee_transfer.ml L:85-97
336+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
337+ /// Last verified: 2025-10-10
330338 pub fn of_singles ( singles : OneOrTwo < SingleFeeTransfer > ) -> Result < Self , String > {
331339 match singles {
332340 OneOrTwo :: One ( a) => Ok ( Self ( OneOrTwo :: One ( a) ) ) ,
@@ -365,7 +373,9 @@ impl CoinbaseFeeTransfer {
365373 }
366374}
367375
368- /// <https://github.com/MinaProtocol/mina/blob/2ee6e004ba8c6a0541056076aab22ea162f7eb3a/src/lib/mina_base/coinbase.ml#L17>
376+ /// OCaml reference: src/lib/mina_base/coinbase.ml L:17-21
377+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
378+ /// Last verified: 2025-10-10
369379#[ derive( Debug , Clone , PartialEq ) ]
370380pub struct Coinbase {
371381 pub receiver : CompressedPubKey ,
@@ -407,7 +417,9 @@ impl Coinbase {
407417 }
408418 }
409419
410- /// <https://github.com/MinaProtocol/mina/blob/f6756507ff7380a691516ce02a3cf7d9d32915ae/src/lib/mina_base/coinbase.ml#L76>
420+ /// OCaml reference: src/lib/mina_base/coinbase.ml L:92-100
421+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
422+ /// Last verified: 2025-10-10
411423 fn expected_supply_increase ( & self ) -> Result < Amount , String > {
412424 let Self {
413425 amount,
@@ -429,12 +441,16 @@ impl Coinbase {
429441 self . expected_supply_increase ( ) . map ( |_| FeeExcess :: empty ( ) )
430442 }
431443
432- /// <https://github.com/MinaProtocol/mina/blob/05c2f73d0f6e4f1341286843814ce02dcb3919e0/src/lib/mina_base/coinbase.ml#L39>
444+ /// OCaml reference: src/lib/mina_base/coinbase.ml L:39-39
445+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
446+ /// Last verified: 2025-10-10
433447 pub fn receiver ( & self ) -> AccountId {
434448 AccountId :: new ( self . receiver . clone ( ) , TokenId :: default ( ) )
435449 }
436450
437- /// <https://github.com/MinaProtocol/mina/blob/2ff0292b637684ce0372e7b8e23ec85404dc5091/src/lib/mina_base/coinbase.ml#L51>
451+ /// OCaml reference: src/lib/mina_base/coinbase.ml L:51-65
452+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
453+ /// Last verified: 2025-10-10
438454 pub fn account_access_statuses (
439455 & self ,
440456 status : & TransactionStatus ,
@@ -455,7 +471,9 @@ impl Coinbase {
455471 ids
456472 }
457473
458- /// <https://github.com/MinaProtocol/mina/blob/2ff0292b637684ce0372e7b8e23ec85404dc5091/src/lib/mina_base/coinbase.ml#L61>
474+ /// OCaml reference: src/lib/mina_base/coinbase.ml L:67-69
475+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
476+ /// Last verified: 2025-10-10
459477 pub fn accounts_referenced ( & self ) -> Vec < AccountId > {
460478 self . account_access_statuses ( & TransactionStatus :: Applied )
461479 . into_iter ( )
@@ -558,7 +576,9 @@ impl Memo {
558576 self . 0 . as_slice ( )
559577 }
560578
561- /// <https://github.com/MinaProtocol/mina/blob/3a78f0e0c1343d14e2729c8b00205baa2ec70c93/src/lib/mina_base/signed_command_memo.ml#L151>
579+ /// OCaml reference: src/lib/mina_base/signed_command_memo.ml L:156-156
580+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
581+ /// Last verified: 2025-10-10
562582 pub fn dummy ( ) -> Self {
563583 // TODO
564584 Self ( [ 0 ; 34 ] )
@@ -585,7 +605,9 @@ impl Memo {
585605 Self ( s. into_bytes ( ) . try_into ( ) . unwrap ( ) )
586606 }
587607
588- /// <https://github.com/MinaProtocol/mina/blob/d7dad23d8ea2052f515f5d55d187788fe0701c7f/src/lib/mina_base/signed_command_memo.ml#L103>
608+ /// OCaml reference: src/lib/mina_base/signed_command_memo.ml L:117-120
609+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
610+ /// Last verified: 2025-10-10
589611 fn create_by_digesting_string_exn ( s : & str ) -> Self {
590612 if s. len ( ) > Self :: MAX_DIGESTIBLE_STRING_LENGTH {
591613 panic ! ( "Too_long_digestible_string" ) ;
@@ -606,7 +628,9 @@ impl Memo {
606628 Self ( memo)
607629 }
608630
609- /// <https://github.com/MinaProtocol/mina/blob/d7dad23d8ea2052f515f5d55d187788fe0701c7f/src/lib/mina_base/signed_command_memo.ml#L193>
631+ /// OCaml reference: src/lib/mina_base/signed_command_memo.ml L:205-207
632+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
633+ /// Last verified: 2025-10-10
610634 pub fn gen ( ) -> Self {
611635 use rand:: distributions:: { Alphanumeric , DistString } ;
612636 let random_string = Alphanumeric . sample_string ( & mut rand:: thread_rng ( ) , 50 ) ;
@@ -667,7 +691,9 @@ impl binprot::BinProtRead for UserCommand {
667691}
668692
669693impl UserCommand {
670- /// <https://github.com/MinaProtocol/mina/blob/2ff0292b637684ce0372e7b8e23ec85404dc5091/src/lib/mina_base/user_command.ml#L239>
694+ /// OCaml reference: src/lib/mina_base/user_command.ml L:239
695+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
696+ /// Last verified: 2025-10-10
671697 pub fn account_access_statuses (
672698 & self ,
673699 status : & TransactionStatus ,
@@ -678,7 +704,9 @@ impl UserCommand {
678704 }
679705 }
680706
681- /// <https://github.com/MinaProtocol/mina/blob/2ff0292b637684ce0372e7b8e23ec85404dc5091/src/lib/mina_base/user_command.ml#L247>
707+ /// OCaml reference: src/lib/mina_base/user_command.ml L:306-307
708+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
709+ /// Last verified: 2025-10-10
682710 pub fn accounts_referenced ( & self ) -> Vec < AccountId > {
683711 self . account_access_statuses ( & TransactionStatus :: Applied )
684712 . into_iter ( )
@@ -714,7 +742,9 @@ impl UserCommand {
714742 self . applicable_at_nonce ( ) . succ ( )
715743 }
716744
717- /// <https://github.com/MinaProtocol/mina/blob/05c2f73d0f6e4f1341286843814ce02dcb3919e0/src/lib/mina_base/user_command.ml#L192>
745+ /// OCaml reference: src/lib/mina_base/user_command.ml L:283-287
746+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
747+ /// Last verified: 2025-10-10
718748 pub fn fee ( & self ) -> Fee {
719749 match self {
720750 UserCommand :: SignedCommand ( cmd) => cmd. fee ( ) ,
@@ -748,7 +778,9 @@ impl UserCommand {
748778 }
749779 }
750780
751- /// <https://github.com/MinaProtocol/mina/blob/436023ba41c43a50458a551b7ef7a9ae61670b25/src/lib/mina_base/user_command.ml#L339>
781+ /// OCaml reference: src/lib/mina_base/user_command.ml L:388-401
782+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
783+ /// Last verified: 2025-10-10
752784 pub fn to_valid_unsafe ( self ) -> valid:: UserCommand {
753785 match self {
754786 UserCommand :: SignedCommand ( cmd) => valid:: UserCommand :: SignedCommand ( cmd) ,
@@ -760,7 +792,9 @@ impl UserCommand {
760792 }
761793 }
762794
763- /// <https://github.com/MinaProtocol/mina/blob/3fe924c80a4d01f418b69f27398f5f93eb652514/src/lib/mina_base/user_command.ml#L162>
795+ /// OCaml reference: src/lib/mina_base/user_command.ml L:220-226
796+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
797+ /// Last verified: 2025-10-10
764798 pub fn to_verifiable < F > (
765799 & self ,
766800 status : & TransactionStatus ,
@@ -983,7 +1017,9 @@ impl Transaction {
9831017 }
9841018 }
9851019
986- /// <https://github.com/MinaProtocol/mina/blob/436023ba41c43a50458a551b7ef7a9ae61670b25/src/lib/transaction/transaction.ml#L98>
1020+ /// OCaml reference: src/lib/transaction/transaction.ml L:98-110
1021+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
1022+ /// Last verified: 2025-10-10
9871023 pub fn public_keys ( & self ) -> Vec < CompressedPubKey > {
9881024 use Transaction :: * ;
9891025 use UserCommand :: * ;
@@ -998,7 +1034,9 @@ impl Transaction {
9981034 }
9991035 }
10001036
1001- /// <https://github.com/MinaProtocol/mina/blob/436023ba41c43a50458a551b7ef7a9ae61670b25/src/lib/transaction/transaction.ml#L112>
1037+ /// OCaml reference: src/lib/transaction/transaction.ml L:112-124
1038+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
1039+ /// Last verified: 2025-10-10
10021040 pub fn account_access_statuses (
10031041 & self ,
10041042 status : & TransactionStatus ,
@@ -1017,7 +1055,9 @@ impl Transaction {
10171055 }
10181056 }
10191057
1020- /// <https://github.com/MinaProtocol/mina/blob/436023ba41c43a50458a551b7ef7a9ae61670b25/src/lib/transaction/transaction.ml#L125>
1058+ /// OCaml reference: src/lib/transaction/transaction.ml L:126-128
1059+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
1060+ /// Last verified: 2025-10-10
10211061 pub fn accounts_referenced ( & self ) -> Vec < AccountId > {
10221062 self . account_access_statuses ( & TransactionStatus :: Applied )
10231063 . into_iter ( )
@@ -1094,11 +1134,15 @@ pub mod for_tests {
10941134 }
10951135 }
10961136
1097- /// <https://github.com/MinaProtocol/mina/blob/3753a8593cc1577bcf4da16620daf9946d88e8e5/src/lib/transaction_logic/mina_transaction_logic.ml#L2194>
1137+ /// OCaml reference: src/lib/transaction_logic/mina_transaction_logic.ml L:2285-2285
1138+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
1139+ /// Last verified: 2025-10-10
10981140 #[ derive( Debug ) ]
10991141 pub struct InitLedger ( pub Vec < ( Keypair , u64 ) > ) ;
11001142
1101- /// <https://github.com/MinaProtocol/mina/blob/3753a8593cc1577bcf4da16620daf9946d88e8e5/src/lib/transaction_logic/mina_transaction_logic.ml#L2230>
1143+ /// OCaml reference: src/lib/transaction_logic/mina_transaction_logic.ml L:2351-2356
1144+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
1145+ /// Last verified: 2025-10-10
11021146 #[ derive( Debug ) ]
11031147 pub struct TransactionSpec {
11041148 pub fee : Fee ,
@@ -1107,7 +1151,9 @@ pub mod for_tests {
11071151 pub amount : Amount ,
11081152 }
11091153
1110- /// <https://github.com/MinaProtocol/mina/blob/3753a8593cc1577bcf4da16620daf9946d88e8e5/src/lib/transaction_logic/mina_transaction_logic.ml#L2283>
1154+ /// OCaml reference: src/lib/transaction_logic/mina_transaction_logic.ml L:2407
1155+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
1156+ /// Last verified: 2025-10-10
11111157 #[ derive( Debug ) ]
11121158 pub struct TestSpec {
11131159 pub init_ledger : InitLedger ,
0 commit comments