Skip to content

Commit 605aacd

Browse files
committed
Add runtime config method for hard fork config
1 parent 6b5b720 commit 605aacd

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

src/lib/runtime_config/runtime_config.ml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1573,6 +1573,17 @@ let ledger_of_accounts accounts =
15731573
; add_genesis_winner = Some false
15741574
}
15751575

1576+
let ledger_of_hashes ~root_hash ~s3_data_hash () =
1577+
Ledger.
1578+
{ base = Hash
1579+
; num_accounts = None
1580+
; balances = []
1581+
; hash = Some root_hash
1582+
; s3_data_hash = Some s3_data_hash
1583+
; name = None
1584+
; add_genesis_winner = Some false
1585+
}
1586+
15761587
let make_fork_config ~staged_ledger ~global_slot_since_genesis ~state_hash
15771588
~blockchain_length ~staking_ledger ~staking_epoch_seed ~next_epoch_ledger
15781589
~next_epoch_seed =
@@ -1649,3 +1660,40 @@ let slot_tx_end, slot_chain_end =
16491660
t.daemon >>= get_runtime >>| Mina_numbers.Global_slot_since_hard_fork.of_int
16501661
in
16511662
(f (fun d -> d.slot_tx_end), f (fun d -> d.slot_chain_end))
1663+
1664+
let fork_config_of_ledgers ~genesis_state_timestamp ~genesis_ledger_config
1665+
~global_slot_since_genesis ~state_hash ~blockchain_length
1666+
~staking_ledger_config ~staking_epoch_seed ~next_epoch_ledger_config
1667+
~next_epoch_seed =
1668+
let genesis =
1669+
Genesis.
1670+
{ genesis_state_timestamp = Some genesis_state_timestamp
1671+
; k = None
1672+
; delta = None
1673+
; slots_per_epoch = None
1674+
; slots_per_sub_window = None
1675+
; grace_period_slots = None
1676+
}
1677+
in
1678+
let global_slot_since_genesis =
1679+
Mina_numbers.Global_slot_since_genesis.to_int global_slot_since_genesis
1680+
in
1681+
let blockchain_length = Unsigned.UInt32.to_int blockchain_length in
1682+
let fork =
1683+
Fork_config.
1684+
{ state_hash = Mina_base.State_hash.to_base58_check state_hash
1685+
; blockchain_length
1686+
; global_slot_since_genesis
1687+
}
1688+
in
1689+
let epoch_data =
1690+
let open Epoch_data in
1691+
let open Data in
1692+
{ staking = { ledger = staking_ledger_config; seed = staking_epoch_seed }
1693+
; next =
1694+
Option.map next_epoch_ledger_config ~f:(fun config ->
1695+
{ ledger = config; seed = next_epoch_seed } )
1696+
}
1697+
in
1698+
make ~genesis ~epoch_data ~ledger:genesis_ledger_config
1699+
~proof:(Proof_keys.make ~fork ()) ()

0 commit comments

Comments
 (0)