ok denom group + exchange_sig
This commit is contained in:
parent
9bc30eb54b
commit
2b340e0095
2 changed files with 37 additions and 15 deletions
|
|
@ -16,7 +16,7 @@ type t = {
|
|||
master_sig: Signatures.DenominationKeyValidity.t;
|
||||
}
|
||||
|
||||
let make_denom_group denominations =
|
||||
let make_denom_group_sorted denominations =
|
||||
let open Syntax in
|
||||
let ht = Hashtbl.create 0xff in
|
||||
List.iter
|
||||
|
|
@ -72,19 +72,41 @@ let make_denom_group denominations =
|
|||
Hashtbl.replace ht k (v :: l))
|
||||
denominations
|
||||
in
|
||||
Hashtbl.to_seq ht
|
||||
|> List.of_seq
|
||||
|> List.map
|
||||
(fun
|
||||
((value, fee_withdraw, fee_deposit, fee_refresh, fee_refund), denoms)
|
||||
->
|
||||
Api.DenomGroup.Rsa
|
||||
Api.RsaDenomGroup.
|
||||
|
||||
(* ! important for /keys .exchange_sig
|
||||
each group must be ordered in _reverse_ chronological order
|
||||
order of groups to compute hash, must be the same as the order
|
||||
in /keys .denominations *)
|
||||
let open Api in
|
||||
let open DenomGroup in
|
||||
let open RsaDenomGroup in
|
||||
let open RsaDenom in
|
||||
let cmp_denom b a = Timestamp.compare a.stamp_start b.stamp_start in
|
||||
let cmp_group =
|
||||
let cmp_amount a b =
|
||||
let open Amount in
|
||||
match Int64.unsigned_compare a.value b.value with
|
||||
| 0 -> Int32.unsigned_compare a.fraction b.fraction
|
||||
| n -> n
|
||||
in
|
||||
fun (Rsa a) (Rsa b) -> cmp_amount a.value b.value
|
||||
in
|
||||
let l =
|
||||
Hashtbl.to_seq ht
|
||||
|> List.of_seq
|
||||
|> List.map
|
||||
(fun
|
||||
((value, fee_withdraw, fee_deposit, fee_refresh, fee_refund), denoms)
|
||||
->
|
||||
Rsa
|
||||
{
|
||||
denoms;
|
||||
denoms= List.sort cmp_denom denoms;
|
||||
value;
|
||||
fee_withdraw;
|
||||
fee_deposit;
|
||||
fee_refresh;
|
||||
fee_refund;
|
||||
})
|
||||
|> List.sort cmp_group
|
||||
in
|
||||
l
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue