Skip to content

Commit 69901dd

Browse files
committed
Ledger: update OCaml references in mod.rs
1 parent d744629 commit 69901dd

File tree

1 file changed

+72
-26
lines changed
  • ledger/src/scan_state/transaction_logic

1 file changed

+72
-26
lines changed

ledger/src/scan_state/transaction_logic/mod.rs

Lines changed: 72 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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)]
6767
pub 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)]
185185
pub 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)]
203203
pub 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)]
270272
pub 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)]
295299
pub 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)]
370380
pub 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

669693
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
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

Comments
 (0)