This commit is contained in:
parent
b68a25dc9e
commit
ec61fb70f8
3 changed files with 28 additions and 54 deletions
25
src/api.ml
25
src/api.ml
|
|
@ -612,6 +612,31 @@ module GlobalFees = struct
|
||||||
master_sig: GlobalFees.t;
|
master_sig: GlobalFees.t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let verify_global_fees ~key
|
||||||
|
{
|
||||||
|
start_date;
|
||||||
|
end_date;
|
||||||
|
history_fee;
|
||||||
|
account_fee;
|
||||||
|
purse_fee;
|
||||||
|
history_expiration;
|
||||||
|
purse_account_limit;
|
||||||
|
purse_timeout;
|
||||||
|
master_sig;
|
||||||
|
} =
|
||||||
|
let open Signatures.GlobalFees in
|
||||||
|
verify key master_sig
|
||||||
|
{
|
||||||
|
start_date;
|
||||||
|
end_date;
|
||||||
|
purse_timeout;
|
||||||
|
history_expiration;
|
||||||
|
history_fee;
|
||||||
|
account_fee;
|
||||||
|
purse_fee;
|
||||||
|
purse_account_limit;
|
||||||
|
}
|
||||||
|
|
||||||
let jsont =
|
let jsont =
|
||||||
let make start_date end_date history_fee account_fee purse_fee
|
let make start_date end_date history_fee account_fee purse_fee
|
||||||
history_expiration purse_account_limit purse_timeout master_sig =
|
history_expiration purse_account_limit purse_timeout master_sig =
|
||||||
|
|
|
||||||
|
|
@ -250,31 +250,7 @@ module Wire_fee = struct
|
||||||
end
|
end
|
||||||
|
|
||||||
module Global_fees = struct
|
module Global_fees = struct
|
||||||
let verify (module Keys : Keys.S)
|
let verify v = GlobalFees.verify_global_fees ~key:Config.master_public_key v
|
||||||
GlobalFees.
|
|
||||||
{
|
|
||||||
start_date;
|
|
||||||
end_date;
|
|
||||||
history_fee;
|
|
||||||
account_fee;
|
|
||||||
purse_fee;
|
|
||||||
history_expiration;
|
|
||||||
purse_account_limit;
|
|
||||||
purse_timeout;
|
|
||||||
master_sig;
|
|
||||||
} =
|
|
||||||
let open Signatures.GlobalFees in
|
|
||||||
verify Config.master_public_key master_sig
|
|
||||||
{
|
|
||||||
start_date;
|
|
||||||
end_date;
|
|
||||||
purse_timeout;
|
|
||||||
history_expiration;
|
|
||||||
history_fee;
|
|
||||||
account_fee;
|
|
||||||
purse_fee;
|
|
||||||
purse_account_limit;
|
|
||||||
}
|
|
||||||
|
|
||||||
let do_ ~db_conn v =
|
let do_ ~db_conn v =
|
||||||
let* global_fees =
|
let* global_fees =
|
||||||
|
|
@ -309,11 +285,10 @@ module Global_fees = struct
|
||||||
and once set for a timeframe, it should not change. *)
|
and once set for a timeframe, it should not change. *)
|
||||||
let f req server _env =
|
let f req server _env =
|
||||||
Logs.info (fun m -> m "POST /management/global-fees/");
|
Logs.info (fun m -> m "POST /management/global-fees/");
|
||||||
let keys = Vif.Server.device Devices.keys server in
|
|
||||||
let db_conn = Vif.Server.device Devices.db_connection server in
|
let db_conn = Vif.Server.device Devices.db_connection server in
|
||||||
let res =
|
let res =
|
||||||
let* v = Vif.Request.of_json req |> unwrap_err_msg in
|
let* v = Vif.Request.of_json req |> unwrap_err_msg in
|
||||||
let* () = verify keys v in
|
let* () = verify v in
|
||||||
let* () = do_ ~db_conn v in
|
let* () = do_ ~db_conn v in
|
||||||
Ok ()
|
Ok ()
|
||||||
in
|
in
|
||||||
|
|
|
||||||
|
|
@ -81,33 +81,7 @@ let keys content =
|
||||||
|
|
||||||
let* () =
|
let* () =
|
||||||
v.global_fees
|
v.global_fees
|
||||||
|> list_iter
|
|> list_iter (GlobalFees.verify_global_fees ~key:v.master_public_key)
|
||||||
(fun
|
|
||||||
GlobalFees.
|
|
||||||
{
|
|
||||||
start_date;
|
|
||||||
end_date;
|
|
||||||
history_fee;
|
|
||||||
account_fee;
|
|
||||||
purse_fee;
|
|
||||||
history_expiration;
|
|
||||||
purse_account_limit;
|
|
||||||
purse_timeout;
|
|
||||||
master_sig;
|
|
||||||
}
|
|
||||||
->
|
|
||||||
let open Signatures.GlobalFees in
|
|
||||||
verify v.master_public_key master_sig
|
|
||||||
{
|
|
||||||
start_date;
|
|
||||||
end_date;
|
|
||||||
purse_timeout;
|
|
||||||
history_expiration;
|
|
||||||
history_fee;
|
|
||||||
account_fee;
|
|
||||||
purse_fee;
|
|
||||||
purse_account_limit;
|
|
||||||
})
|
|
||||||
in
|
in
|
||||||
|
|
||||||
let* () =
|
let* () =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue