Source file init_storage.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
let invoice ctxt pkh amount =
let amount = Tez_repr.of_mutez_exn (Int64.(mul 1_000_000L (of_int amount))) in
let recipient =
Contract_repr.implicit_contract
(Signature.Public_key_hash.of_b58check_exn pkh) in
Contract_storage.credit ctxt recipient amount >>=? fun ctxt ->
return ctxt
let prepare_first_block ctxt ~typecheck ~level ~timestamp ~fitness =
Raw_context.prepare_first_block
~level ~timestamp ~fitness ctxt >>=? fun (previous_protocol, ctxt) ->
match previous_protocol with
| Genesis param ->
Commitment_storage.init ctxt param.commitments >>=? fun ctxt ->
Roll_storage.init ctxt >>=? fun ctxt ->
Seed_storage.init ctxt >>=? fun ctxt ->
Contract_storage.init ctxt >>=? fun ctxt ->
Bootstrap_storage.init ctxt
~typecheck
?ramp_up_cycles:param.security_deposit_ramp_up_cycles
?no_reward_cycles:param.no_reward_cycles
param.bootstrap_accounts
param.bootstrap_contracts >>=? fun ctxt ->
Roll_storage.init_first_cycles ctxt >>=? fun ctxt ->
Vote_storage.init ctxt >>=? fun ctxt ->
Storage.Last_block_priority.init ctxt 0 >>=? fun ctxt ->
Vote_storage.freeze_listings ctxt >>=? fun ctxt ->
return ctxt
| Alpha_003 ->
Contract_storage.reindex_contract ctxt >>=? fun ctxt ->
Roll_storage.update_tokens_per_roll ctxt
Constants_repr.default.tokens_per_roll >>=? fun ctxt ->
Raw_context.patch_constants ctxt begin fun constants ->
{ constants with
hard_gas_limit_per_operation = Constants_repr.default.hard_gas_limit_per_operation ;
hard_gas_limit_per_block = Constants_repr.default.hard_gas_limit_per_block }
end >>= fun ctxt ->
invoice ctxt
"tz1iSQEcaGpUn6EW5uAy3XhPiNg7BHMnRSXi"
100 >>=? fun ctxt ->
return ctxt
let prepare ctxt ~level ~timestamp ~fitness =
Raw_context.prepare ~level ~timestamp ~fitness ctxt