@@ -61,7 +61,7 @@ pub use transaction_union_payload::{
61
61
} ;
62
62
63
63
/// OCaml reference: src/lib/mina_base/transaction_status.ml L:9-51
64
- /// Commit: 2ee6e004ba8c6a0541056076aab22ea162f7eb3a
64
+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
65
65
/// Last verified: 2025-10-08
66
66
#[ derive( serde:: Serialize , serde:: Deserialize , Debug , Clone , PartialEq , Eq ) ]
67
67
pub enum TransactionFailure {
@@ -179,7 +179,7 @@ impl Display for TransactionFailure {
179
179
}
180
180
181
181
/// OCaml reference: src/lib/mina_base/transaction_status.ml L:452-454
182
- /// Commit: 2ee6e004ba8c6a0541056076aab22ea162f7eb3a
182
+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
183
183
/// Last verified: 2025-10-08
184
184
#[ derive( SerdeYojsonEnum , Debug , Clone , PartialEq , Eq ) ]
185
185
pub enum TransactionStatus {
@@ -197,7 +197,7 @@ impl TransactionStatus {
197
197
}
198
198
199
199
/// OCaml reference: src/lib/mina_base/with_status.ml L:6-10
200
- /// Commit: 2ee6e004ba8c6a0541056076aab22ea162f7eb3a
200
+ /// Commit: 5da42ccd72e791f164d4d200cf1ce300262873b3
201
201
/// Last verified: 2025-10-08
202
202
#[ derive( serde:: Serialize , serde:: Deserialize , Debug , Clone , PartialEq ) ]
203
203
pub struct WithStatus < T > {
@@ -265,7 +265,9 @@ where
265
265
}
266
266
}
267
267
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
269
271
#[ derive( Debug , Clone , PartialEq ) ]
270
272
pub struct SingleFeeTransfer {
271
273
pub receiver_pk : CompressedPubKey ,
@@ -290,7 +292,9 @@ impl SingleFeeTransfer {
290
292
}
291
293
}
292
294
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
294
298
#[ derive( Debug , Clone , PartialEq ) ]
295
299
pub struct FeeTransfer ( pub ( super ) OneOrTwo < SingleFeeTransfer > ) ;
296
300
@@ -318,15 +322,19 @@ impl FeeTransfer {
318
322
} )
319
323
}
320
324
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
322
328
pub fn fee_excess ( & self ) -> Result < FeeExcess , String > {
323
329
let one_or_two = self . 0 . map ( |SingleFeeTransfer { fee, fee_token, .. } | {
324
330
( fee_token. clone ( ) , Signed :: < Fee > :: of_unsigned ( * fee) . negate ( ) )
325
331
} ) ;
326
332
FeeExcess :: of_one_or_two ( one_or_two)
327
333
}
328
334
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
330
338
pub fn of_singles ( singles : OneOrTwo < SingleFeeTransfer > ) -> Result < Self , String > {
331
339
match singles {
332
340
OneOrTwo :: One ( a) => Ok ( Self ( OneOrTwo :: One ( a) ) ) ,
@@ -365,7 +373,9 @@ impl CoinbaseFeeTransfer {
365
373
}
366
374
}
367
375
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
369
379
#[ derive( Debug , Clone , PartialEq ) ]
370
380
pub struct Coinbase {
371
381
pub receiver : CompressedPubKey ,
@@ -407,7 +417,9 @@ impl Coinbase {
407
417
}
408
418
}
409
419
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
411
423
fn expected_supply_increase ( & self ) -> Result < Amount , String > {
412
424
let Self {
413
425
amount,
@@ -429,12 +441,16 @@ impl Coinbase {
429
441
self . expected_supply_increase ( ) . map ( |_| FeeExcess :: empty ( ) )
430
442
}
431
443
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
433
447
pub fn receiver ( & self ) -> AccountId {
434
448
AccountId :: new ( self . receiver . clone ( ) , TokenId :: default ( ) )
435
449
}
436
450
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
438
454
pub fn account_access_statuses (
439
455
& self ,
440
456
status : & TransactionStatus ,
@@ -455,7 +471,9 @@ impl Coinbase {
455
471
ids
456
472
}
457
473
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
459
477
pub fn accounts_referenced ( & self ) -> Vec < AccountId > {
460
478
self . account_access_statuses ( & TransactionStatus :: Applied )
461
479
. into_iter ( )
@@ -558,7 +576,9 @@ impl Memo {
558
576
self . 0 . as_slice ( )
559
577
}
560
578
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
562
582
pub fn dummy ( ) -> Self {
563
583
// TODO
564
584
Self ( [ 0 ; 34 ] )
@@ -585,7 +605,9 @@ impl Memo {
585
605
Self ( s. into_bytes ( ) . try_into ( ) . unwrap ( ) )
586
606
}
587
607
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
589
611
fn create_by_digesting_string_exn ( s : & str ) -> Self {
590
612
if s. len ( ) > Self :: MAX_DIGESTIBLE_STRING_LENGTH {
591
613
panic ! ( "Too_long_digestible_string" ) ;
@@ -606,7 +628,9 @@ impl Memo {
606
628
Self ( memo)
607
629
}
608
630
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
610
634
pub fn gen ( ) -> Self {
611
635
use rand:: distributions:: { Alphanumeric , DistString } ;
612
636
let random_string = Alphanumeric . sample_string ( & mut rand:: thread_rng ( ) , 50 ) ;
@@ -667,7 +691,9 @@ impl binprot::BinProtRead for UserCommand {
667
691
}
668
692
669
693
impl 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
671
697
pub fn account_access_statuses (
672
698
& self ,
673
699
status : & TransactionStatus ,
@@ -678,7 +704,9 @@ impl UserCommand {
678
704
}
679
705
}
680
706
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
682
710
pub fn accounts_referenced ( & self ) -> Vec < AccountId > {
683
711
self . account_access_statuses ( & TransactionStatus :: Applied )
684
712
. into_iter ( )
@@ -714,7 +742,9 @@ impl UserCommand {
714
742
self . applicable_at_nonce ( ) . succ ( )
715
743
}
716
744
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
718
748
pub fn fee ( & self ) -> Fee {
719
749
match self {
720
750
UserCommand :: SignedCommand ( cmd) => cmd. fee ( ) ,
@@ -748,7 +778,9 @@ impl UserCommand {
748
778
}
749
779
}
750
780
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
752
784
pub fn to_valid_unsafe ( self ) -> valid:: UserCommand {
753
785
match self {
754
786
UserCommand :: SignedCommand ( cmd) => valid:: UserCommand :: SignedCommand ( cmd) ,
@@ -760,7 +792,9 @@ impl UserCommand {
760
792
}
761
793
}
762
794
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
764
798
pub fn to_verifiable < F > (
765
799
& self ,
766
800
status : & TransactionStatus ,
@@ -983,7 +1017,9 @@ impl Transaction {
983
1017
}
984
1018
}
985
1019
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
987
1023
pub fn public_keys ( & self ) -> Vec < CompressedPubKey > {
988
1024
use Transaction :: * ;
989
1025
use UserCommand :: * ;
@@ -998,7 +1034,9 @@ impl Transaction {
998
1034
}
999
1035
}
1000
1036
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
1002
1040
pub fn account_access_statuses (
1003
1041
& self ,
1004
1042
status : & TransactionStatus ,
@@ -1017,7 +1055,9 @@ impl Transaction {
1017
1055
}
1018
1056
}
1019
1057
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
1021
1061
pub fn accounts_referenced ( & self ) -> Vec < AccountId > {
1022
1062
self . account_access_statuses ( & TransactionStatus :: Applied )
1023
1063
. into_iter ( )
@@ -1094,11 +1134,15 @@ pub mod for_tests {
1094
1134
}
1095
1135
}
1096
1136
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
1098
1140
#[ derive( Debug ) ]
1099
1141
pub struct InitLedger ( pub Vec < ( Keypair , u64 ) > ) ;
1100
1142
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
1102
1146
#[ derive( Debug ) ]
1103
1147
pub struct TransactionSpec {
1104
1148
pub fee : Fee ,
@@ -1107,7 +1151,9 @@ pub mod for_tests {
1107
1151
pub amount : Amount ,
1108
1152
}
1109
1153
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
1111
1157
#[ derive( Debug ) ]
1112
1158
pub struct TestSpec {
1113
1159
pub init_ledger : InitLedger ,
0 commit comments