Alpha: rename constant initial_roll_value
into tokens_per_roll
And remove alphanet hack (doubling roll value)
This commit is contained in:
parent
dc681551e6
commit
5fa0b074bf
@ -277,6 +277,7 @@ module Constants : sig
|
|||||||
val dictator_pubkey: context -> Ed25519.Public_key.t
|
val dictator_pubkey: context -> Ed25519.Public_key.t
|
||||||
val max_number_of_operations: context -> int list
|
val max_number_of_operations: context -> int list
|
||||||
val max_operation_data_length: context -> int
|
val max_operation_data_length: context -> int
|
||||||
|
val token_per_rolls: context -> Tez.t
|
||||||
val michelson_maximum_type_size: context -> int
|
val michelson_maximum_type_size: context -> int
|
||||||
|
|
||||||
end
|
end
|
||||||
@ -738,8 +739,6 @@ end
|
|||||||
|
|
||||||
module Roll : sig
|
module Roll : sig
|
||||||
|
|
||||||
val value: context -> Tez.t
|
|
||||||
|
|
||||||
val snapshot_rolls: context -> context tzresult Lwt.t
|
val snapshot_rolls: context -> context tzresult Lwt.t
|
||||||
val cycle_end: context -> Cycle.t -> context tzresult Lwt.t
|
val cycle_end: context -> Cycle.t -> context tzresult Lwt.t
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ type constants = {
|
|||||||
dictator_pubkey: Ed25519.Public_key.t ;
|
dictator_pubkey: Ed25519.Public_key.t ;
|
||||||
max_number_of_operations: int list ;
|
max_number_of_operations: int list ;
|
||||||
max_operation_data_length: int ;
|
max_operation_data_length: int ;
|
||||||
initial_roll_value: Tez_repr.t ;
|
token_per_rolls: Tez_repr.t ;
|
||||||
michelson_maximum_type_size: int;
|
michelson_maximum_type_size: int;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ let default = {
|
|||||||
[ 300 ] ;
|
[ 300 ] ;
|
||||||
max_operation_data_length =
|
max_operation_data_length =
|
||||||
16 * 1024 ; (* 16kB *)
|
16 * 1024 ; (* 16kB *)
|
||||||
initial_roll_value =
|
token_per_rolls =
|
||||||
Tez_repr.(mul_exn one 10_000) ;
|
Tez_repr.(mul_exn one 10_000) ;
|
||||||
michelson_maximum_type_size = 1000 ;
|
michelson_maximum_type_size = 1000 ;
|
||||||
}
|
}
|
||||||
@ -155,9 +155,9 @@ let constants_encoding =
|
|||||||
and max_operation_data_length =
|
and max_operation_data_length =
|
||||||
opt Compare.Int.(=)
|
opt Compare.Int.(=)
|
||||||
default.max_operation_data_length c.max_operation_data_length
|
default.max_operation_data_length c.max_operation_data_length
|
||||||
and initial_roll_value =
|
and token_per_rolls =
|
||||||
opt Tez_repr.(=)
|
opt Tez_repr.(=)
|
||||||
default.initial_roll_value c.initial_roll_value
|
default.token_per_rolls c.token_per_rolls
|
||||||
and michelson_maximum_type_size =
|
and michelson_maximum_type_size =
|
||||||
opt Compare.Int.(=)
|
opt Compare.Int.(=)
|
||||||
default.michelson_maximum_type_size c.michelson_maximum_type_size
|
default.michelson_maximum_type_size c.michelson_maximum_type_size
|
||||||
@ -176,7 +176,7 @@ let constants_encoding =
|
|||||||
dictator_pubkey,
|
dictator_pubkey,
|
||||||
max_number_of_operations,
|
max_number_of_operations,
|
||||||
max_operation_data_length,
|
max_operation_data_length,
|
||||||
initial_roll_value,
|
token_per_rolls,
|
||||||
michelson_maximum_type_size)), ()) )
|
michelson_maximum_type_size)), ()) )
|
||||||
(fun ((( preserved_cycles,
|
(fun ((( preserved_cycles,
|
||||||
cycle_length,
|
cycle_length,
|
||||||
@ -192,7 +192,7 @@ let constants_encoding =
|
|||||||
dictator_pubkey,
|
dictator_pubkey,
|
||||||
max_number_of_operations,
|
max_number_of_operations,
|
||||||
max_operation_data_length,
|
max_operation_data_length,
|
||||||
initial_roll_value,
|
token_per_rolls,
|
||||||
michelson_maximum_type_size)), ()) ->
|
michelson_maximum_type_size)), ()) ->
|
||||||
{ preserved_cycles =
|
{ preserved_cycles =
|
||||||
unopt default.preserved_cycles preserved_cycles ;
|
unopt default.preserved_cycles preserved_cycles ;
|
||||||
@ -223,8 +223,8 @@ let constants_encoding =
|
|||||||
unopt default.max_number_of_operations max_number_of_operations ;
|
unopt default.max_number_of_operations max_number_of_operations ;
|
||||||
max_operation_data_length =
|
max_operation_data_length =
|
||||||
unopt default.max_operation_data_length max_operation_data_length ;
|
unopt default.max_operation_data_length max_operation_data_length ;
|
||||||
initial_roll_value =
|
token_per_rolls =
|
||||||
unopt default.initial_roll_value initial_roll_value ;
|
unopt default.token_per_rolls token_per_rolls ;
|
||||||
michelson_maximum_type_size =
|
michelson_maximum_type_size =
|
||||||
unopt default.michelson_maximum_type_size michelson_maximum_type_size ;
|
unopt default.michelson_maximum_type_size michelson_maximum_type_size ;
|
||||||
} )
|
} )
|
||||||
@ -247,7 +247,7 @@ let constants_encoding =
|
|||||||
(opt "dictator_pubkey" Ed25519.Public_key.encoding)
|
(opt "dictator_pubkey" Ed25519.Public_key.encoding)
|
||||||
(opt "max_number_of_operations" (list uint16))
|
(opt "max_number_of_operations" (list uint16))
|
||||||
(opt "max_number_of_operations" int31)
|
(opt "max_number_of_operations" int31)
|
||||||
(opt "initial_roll_value" Tez_repr.encoding)
|
(opt "token_per_rolls" Tez_repr.encoding)
|
||||||
(opt "michelson_maximum_type_size" uint16)
|
(opt "michelson_maximum_type_size" uint16)
|
||||||
))
|
))
|
||||||
unit)
|
unit)
|
||||||
|
@ -46,6 +46,9 @@ let max_number_of_operations c =
|
|||||||
let max_operation_data_length c =
|
let max_operation_data_length c =
|
||||||
let constants = Raw_context.constants c in
|
let constants = Raw_context.constants c in
|
||||||
constants.max_operation_data_length
|
constants.max_operation_data_length
|
||||||
|
let token_per_rolls c =
|
||||||
|
let constants = Raw_context.constants c in
|
||||||
|
constants.token_per_rolls
|
||||||
let michelson_maximum_type_size c =
|
let michelson_maximum_type_size c =
|
||||||
let constants = Raw_context.constants c in
|
let constants = Raw_context.constants c in
|
||||||
constants.michelson_maximum_type_size
|
constants.michelson_maximum_type_size
|
||||||
|
@ -16,7 +16,6 @@ type t = {
|
|||||||
level: Level_repr.t ;
|
level: Level_repr.t ;
|
||||||
timestamp: Time.t ;
|
timestamp: Time.t ;
|
||||||
fitness: Int64.t ;
|
fitness: Int64.t ;
|
||||||
roll_value: Tez_repr.t ;
|
|
||||||
faucet_count: int;
|
faucet_count: int;
|
||||||
endorsements_received: Int_set.t;
|
endorsements_received: Int_set.t;
|
||||||
}
|
}
|
||||||
@ -30,7 +29,6 @@ let current_fitness ctxt = ctxt.fitness
|
|||||||
let first_level ctxt = ctxt.first_level
|
let first_level ctxt = ctxt.first_level
|
||||||
let faucet_count ctxt = ctxt.faucet_count
|
let faucet_count ctxt = ctxt.faucet_count
|
||||||
let constants ctxt = ctxt.constants
|
let constants ctxt = ctxt.constants
|
||||||
let roll_value ctxt = ctxt.roll_value
|
|
||||||
let recover ctxt = ctxt.context
|
let recover ctxt = ctxt.context
|
||||||
|
|
||||||
let record_endorsement ctxt k = { ctxt with endorsements_received = Int_set.add k ctxt.endorsements_received }
|
let record_endorsement ctxt k = { ctxt with endorsements_received = Int_set.add k ctxt.endorsements_received }
|
||||||
@ -140,7 +138,6 @@ let is_first_block ctxt =
|
|||||||
|
|
||||||
let version = "v1"
|
let version = "v1"
|
||||||
let first_level_key = [ version ; "first_level" ]
|
let first_level_key = [ version ; "first_level" ]
|
||||||
let roll_value_key = [ version ; "roll_value" ]
|
|
||||||
let sandboxed_key = [ version ; "sandboxed" ]
|
let sandboxed_key = [ version ; "sandboxed" ]
|
||||||
|
|
||||||
let get_first_level ctxt =
|
let get_first_level ctxt =
|
||||||
@ -159,22 +156,6 @@ let set_first_level ctxt level =
|
|||||||
Context.set ctxt first_level_key bytes >>= fun ctxt ->
|
Context.set ctxt first_level_key bytes >>= fun ctxt ->
|
||||||
return ctxt
|
return ctxt
|
||||||
|
|
||||||
let get_roll_value ctxt =
|
|
||||||
Context.get ctxt roll_value_key >>= function
|
|
||||||
| None -> storage_error (Missing_key (roll_value_key, `Get))
|
|
||||||
| Some bytes ->
|
|
||||||
match
|
|
||||||
Data_encoding.Binary.of_bytes Tez_repr.encoding bytes
|
|
||||||
with
|
|
||||||
| None -> storage_error (Corrupted_data roll_value_key)
|
|
||||||
| Some level -> return level
|
|
||||||
|
|
||||||
let set_roll_value ctxt level =
|
|
||||||
let bytes =
|
|
||||||
Data_encoding.Binary.to_bytes Tez_repr.encoding level in
|
|
||||||
Context.set ctxt roll_value_key bytes >>= fun ctxt ->
|
|
||||||
return ctxt
|
|
||||||
|
|
||||||
type error += Failed_to_parse_sandbox_parameter of MBytes.t
|
type error += Failed_to_parse_sandbox_parameter of MBytes.t
|
||||||
|
|
||||||
let () =
|
let () =
|
||||||
@ -222,15 +203,6 @@ let prepare ~level ~timestamp ~fitness ctxt =
|
|||||||
may_tag_first_block ctxt level >>=? fun (ctxt, first_block, first_level) ->
|
may_tag_first_block ctxt level >>=? fun (ctxt, first_block, first_level) ->
|
||||||
get_sandboxed ctxt >>=? fun sandbox ->
|
get_sandboxed ctxt >>=? fun sandbox ->
|
||||||
Constants_repr.read sandbox >>=? fun constants ->
|
Constants_repr.read sandbox >>=? fun constants ->
|
||||||
begin
|
|
||||||
if first_block then begin
|
|
||||||
set_roll_value ctxt constants.initial_roll_value >>=? fun ctxt ->
|
|
||||||
return (ctxt, constants.initial_roll_value)
|
|
||||||
end else begin
|
|
||||||
get_roll_value ctxt >>=? fun roll_value ->
|
|
||||||
return (ctxt, roll_value)
|
|
||||||
end
|
|
||||||
end >>=? fun (ctxt, roll_value) ->
|
|
||||||
let level =
|
let level =
|
||||||
Level_repr.from_raw
|
Level_repr.from_raw
|
||||||
~first_level
|
~first_level
|
||||||
@ -239,19 +211,11 @@ let prepare ~level ~timestamp ~fitness ctxt =
|
|||||||
~blocks_per_commitment:constants.Constants_repr.blocks_per_commitment
|
~blocks_per_commitment:constants.Constants_repr.blocks_per_commitment
|
||||||
level in
|
level in
|
||||||
return ({ context = ctxt ; constants ; level ;
|
return ({ context = ctxt ; constants ; level ;
|
||||||
timestamp ; fitness ; first_level ; roll_value ;
|
|
||||||
faucet_count = 0 ; endorsements_received = Int_set.empty ;
|
faucet_count = 0 ; endorsements_received = Int_set.empty ;
|
||||||
|
timestamp ; fitness ; first_level ;
|
||||||
},
|
},
|
||||||
first_block)
|
first_block)
|
||||||
|
|
||||||
let rec double_roll_value ctxt i =
|
|
||||||
if Compare.Int.(i <= 0) then
|
|
||||||
return ctxt
|
|
||||||
else
|
|
||||||
Lwt.return Tez_repr.(ctxt.roll_value +? ctxt.roll_value) >>=? fun roll_value ->
|
|
||||||
set_roll_value ctxt.context roll_value >>=? fun context ->
|
|
||||||
double_roll_value { ctxt with context ; roll_value } (i-1)
|
|
||||||
|
|
||||||
let activate ({ context = c ; _ } as s) h =
|
let activate ({ context = c ; _ } as s) h =
|
||||||
Updater.activate c h >>= fun c -> Lwt.return { s with context = c }
|
Updater.activate c h >>= fun c -> Lwt.return { s with context = c }
|
||||||
let fork_test_chain ({ context = c ; _ } as s) protocol expiration =
|
let fork_test_chain ({ context = c ; _ } as s) protocol expiration =
|
||||||
@ -267,7 +231,6 @@ let register_resolvers enc resolve =
|
|||||||
level = Level_repr.root Raw_level_repr.root ;
|
level = Level_repr.root Raw_level_repr.root ;
|
||||||
timestamp = Time.of_seconds 0L ;
|
timestamp = Time.of_seconds 0L ;
|
||||||
fitness = 0L ;
|
fitness = 0L ;
|
||||||
roll_value = Tez_repr.zero ;
|
|
||||||
faucet_count = 0 ;
|
faucet_count = 0 ;
|
||||||
endorsements_received = Int_set.empty ;
|
endorsements_received = Int_set.empty ;
|
||||||
} in
|
} in
|
||||||
|
@ -58,7 +58,6 @@ val set_current_fitness: context -> Int64.t -> t
|
|||||||
|
|
||||||
val constants: context -> Constants_repr.constants
|
val constants: context -> Constants_repr.constants
|
||||||
val first_level: context -> Raw_level_repr.t
|
val first_level: context -> Raw_level_repr.t
|
||||||
val roll_value: context -> Tez_repr.t
|
|
||||||
|
|
||||||
(** {1 Generic accessors} *************************************************)
|
(** {1 Generic accessors} *************************************************)
|
||||||
|
|
||||||
|
@ -148,16 +148,16 @@ module Delegate = struct
|
|||||||
return (roll, c)
|
return (roll, c)
|
||||||
|
|
||||||
let consume_roll_change c delegate =
|
let consume_roll_change c delegate =
|
||||||
let roll_value = Raw_context.roll_value c in
|
let token_per_rolls = Constants_storage.token_per_rolls c in
|
||||||
Storage.Roll.Delegate_change.get c delegate >>=? fun change ->
|
Storage.Roll.Delegate_change.get c delegate >>=? fun change ->
|
||||||
trace Consume_roll_change
|
trace Consume_roll_change
|
||||||
(Lwt.return Tez_repr.(change -? roll_value)) >>=? fun new_change ->
|
(Lwt.return Tez_repr.(change -? token_per_rolls)) >>=? fun new_change ->
|
||||||
Storage.Roll.Delegate_change.set c delegate new_change
|
Storage.Roll.Delegate_change.set c delegate new_change
|
||||||
|
|
||||||
let recover_roll_change c delegate =
|
let recover_roll_change c delegate =
|
||||||
let roll_value = Raw_context.roll_value c in
|
let token_per_rolls = Constants_storage.token_per_rolls c in
|
||||||
Storage.Roll.Delegate_change.get c delegate >>=? fun change ->
|
Storage.Roll.Delegate_change.get c delegate >>=? fun change ->
|
||||||
Lwt.return Tez_repr.(change +? roll_value) >>=? fun new_change ->
|
Lwt.return Tez_repr.(change +? token_per_rolls) >>=? fun new_change ->
|
||||||
Storage.Roll.Delegate_change.set c delegate new_change
|
Storage.Roll.Delegate_change.set c delegate new_change
|
||||||
|
|
||||||
let pop_roll_from_delegate c delegate =
|
let pop_roll_from_delegate c delegate =
|
||||||
@ -217,16 +217,16 @@ module Delegate = struct
|
|||||||
|
|
||||||
let add_amount c delegate amount =
|
let add_amount c delegate amount =
|
||||||
ensure_inited c delegate >>=? fun c ->
|
ensure_inited c delegate >>=? fun c ->
|
||||||
let roll_value = Raw_context.roll_value c in
|
let token_per_rolls = Constants_storage.token_per_rolls c in
|
||||||
Storage.Roll.Delegate_change.get c delegate >>=? fun change ->
|
Storage.Roll.Delegate_change.get c delegate >>=? fun change ->
|
||||||
Lwt.return Tez_repr.(amount +? change) >>=? fun change ->
|
Lwt.return Tez_repr.(amount +? change) >>=? fun change ->
|
||||||
Storage.Roll.Delegate_change.set c delegate change >>=? fun c ->
|
Storage.Roll.Delegate_change.set c delegate change >>=? fun c ->
|
||||||
delegate_pubkey c delegate >>=? fun delegate_pk ->
|
delegate_pubkey c delegate >>=? fun delegate_pk ->
|
||||||
let rec loop c change =
|
let rec loop c change =
|
||||||
if Tez_repr.(change < roll_value) then
|
if Tez_repr.(change < token_per_rolls) then
|
||||||
return c
|
return c
|
||||||
else
|
else
|
||||||
Lwt.return Tez_repr.(change -? roll_value) >>=? fun change ->
|
Lwt.return Tez_repr.(change -? token_per_rolls) >>=? fun change ->
|
||||||
create_roll_in_delegate c delegate delegate_pk >>=? fun c ->
|
create_roll_in_delegate c delegate delegate_pk >>=? fun c ->
|
||||||
loop c change in
|
loop c change in
|
||||||
Storage.Contract.Inactive_delegate.mem c
|
Storage.Contract.Inactive_delegate.mem c
|
||||||
@ -234,13 +234,13 @@ module Delegate = struct
|
|||||||
if inactive then return c else loop c change
|
if inactive then return c else loop c change
|
||||||
|
|
||||||
let remove_amount c delegate amount =
|
let remove_amount c delegate amount =
|
||||||
let roll_value = Raw_context.roll_value c in
|
let token_per_rolls = Constants_storage.token_per_rolls c in
|
||||||
let rec loop c change =
|
let rec loop c change =
|
||||||
if Tez_repr.(amount <= change)
|
if Tez_repr.(amount <= change)
|
||||||
then return (c, change)
|
then return (c, change)
|
||||||
else
|
else
|
||||||
pop_roll_from_delegate c delegate >>=? fun (_, c) ->
|
pop_roll_from_delegate c delegate >>=? fun (_, c) ->
|
||||||
Lwt.return Tez_repr.(change +? roll_value) >>=? fun change ->
|
Lwt.return Tez_repr.(change +? token_per_rolls) >>=? fun change ->
|
||||||
loop c change in
|
loop c change in
|
||||||
Storage.Roll.Delegate_change.get c delegate >>=? fun change ->
|
Storage.Roll.Delegate_change.get c delegate >>=? fun change ->
|
||||||
Storage.Contract.Inactive_delegate.mem c
|
Storage.Contract.Inactive_delegate.mem c
|
||||||
@ -257,7 +257,7 @@ module Delegate = struct
|
|||||||
|
|
||||||
let set_inactive ctxt delegate =
|
let set_inactive ctxt delegate =
|
||||||
ensure_inited ctxt delegate >>=? fun ctxt ->
|
ensure_inited ctxt delegate >>=? fun ctxt ->
|
||||||
let roll_value = Raw_context.roll_value ctxt in
|
let token_per_rolls = Constants_storage.token_per_rolls ctxt in
|
||||||
Storage.Roll.Delegate_change.get ctxt delegate >>=? fun change ->
|
Storage.Roll.Delegate_change.get ctxt delegate >>=? fun change ->
|
||||||
Storage.Contract.Inactive_delegate.add ctxt
|
Storage.Contract.Inactive_delegate.add ctxt
|
||||||
(Contract_repr.implicit_contract delegate) >>= fun ctxt ->
|
(Contract_repr.implicit_contract delegate) >>= fun ctxt ->
|
||||||
@ -266,7 +266,7 @@ module Delegate = struct
|
|||||||
| None -> return (ctxt, change)
|
| None -> return (ctxt, change)
|
||||||
| Some _roll ->
|
| Some _roll ->
|
||||||
pop_roll_from_delegate ctxt delegate >>=? fun (_, ctxt) ->
|
pop_roll_from_delegate ctxt delegate >>=? fun (_, ctxt) ->
|
||||||
Lwt.return Tez_repr.(change +? roll_value) >>=? fun change ->
|
Lwt.return Tez_repr.(change +? token_per_rolls) >>=? fun change ->
|
||||||
loop ctxt change in
|
loop ctxt change in
|
||||||
loop ctxt change >>=? fun (ctxt, change) ->
|
loop ctxt change >>=? fun (ctxt, change) ->
|
||||||
Storage.Roll.Delegate_change.set ctxt delegate change >>=? fun ctxt ->
|
Storage.Roll.Delegate_change.set ctxt delegate change >>=? fun ctxt ->
|
||||||
@ -300,16 +300,16 @@ module Delegate = struct
|
|||||||
return ctxt
|
return ctxt
|
||||||
else begin
|
else begin
|
||||||
ensure_inited ctxt delegate >>=? fun ctxt ->
|
ensure_inited ctxt delegate >>=? fun ctxt ->
|
||||||
let roll_value = Raw_context.roll_value ctxt in
|
let token_per_rolls = Constants_storage.token_per_rolls ctxt in
|
||||||
Storage.Roll.Delegate_change.get ctxt delegate >>=? fun change ->
|
Storage.Roll.Delegate_change.get ctxt delegate >>=? fun change ->
|
||||||
Storage.Contract.Inactive_delegate.del ctxt
|
Storage.Contract.Inactive_delegate.del ctxt
|
||||||
(Contract_repr.implicit_contract delegate) >>= fun ctxt ->
|
(Contract_repr.implicit_contract delegate) >>= fun ctxt ->
|
||||||
delegate_pubkey ctxt delegate >>=? fun delegate_pk ->
|
delegate_pubkey ctxt delegate >>=? fun delegate_pk ->
|
||||||
let rec loop ctxt change =
|
let rec loop ctxt change =
|
||||||
if Tez_repr.(change < roll_value) then
|
if Tez_repr.(change < token_per_rolls) then
|
||||||
return ctxt
|
return ctxt
|
||||||
else
|
else
|
||||||
Lwt.return Tez_repr.(change -? roll_value) >>=? fun change ->
|
Lwt.return Tez_repr.(change -? token_per_rolls) >>=? fun change ->
|
||||||
create_roll_in_delegate ctxt delegate delegate_pk >>=? fun ctxt ->
|
create_roll_in_delegate ctxt delegate delegate_pk >>=? fun ctxt ->
|
||||||
loop ctxt change in
|
loop ctxt change in
|
||||||
loop ctxt change >>=? fun ctxt ->
|
loop ctxt change >>=? fun ctxt ->
|
||||||
@ -334,8 +334,6 @@ module Contract = struct
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
let value = Raw_context.roll_value
|
|
||||||
|
|
||||||
let init ctxt =
|
let init ctxt =
|
||||||
Storage.Roll.Next.init ctxt Roll_repr.first
|
Storage.Roll.Next.init ctxt Roll_repr.first
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user