diff --git a/src/denom_data.ml b/src/denom_data.ml index cde45055..e83a80a3 100644 --- a/src/denom_data.ml +++ b/src/denom_data.ml @@ -2,7 +2,6 @@ open Crypto type t = { pub: rsa_pub; - section_name: string; value: Amount.t; stamp_start: Timestamp.t; stamp_expire_withdraw: Timestamp.t; diff --git a/src/http_management.ml b/src/http_management.ml index 65842da2..33f76b2f 100644 --- a/src/http_management.ml +++ b/src/http_management.ml @@ -2,10 +2,9 @@ open Syntax open Api module Keys_get = struct - let mk_future_denom ~sm + let mk_future_denom ~sm ~section_name ({ pub; - section_name; value; stamp_start; stamp_expire_withdraw; @@ -75,7 +74,8 @@ module Keys_get = struct let future_denoms = Secmod.get_denoms_data sm |> List.filter (fun k -> Option.is_none k.Denom_data.master_sig) - |> List.map (fun denom -> mk_future_denom ~sm denom) + |> List.map (fun denom -> + mk_future_denom ~sm ~section_name:"TODO section_name" denom) in let master_pub = Config.Exchange.master_public_key in let denom_secmod_public_key = Secmod.get_sm_key_pub sm in diff --git a/src/pg.ml b/src/pg.ml index 4954e0d3..6e2ac29e 100644 --- a/src/pg.ml +++ b/src/pg.ml @@ -42,6 +42,22 @@ module Caqti_type = struct let wire_method = Caqti_type.string let payto_uri = Caqti_type.string + include struct + (* alias for hash *) + + let fullpayto_hash = FullPaytoHash.caqti + let nomalizaedpayto_hash = NormalizedPaytoHash.caqti + let denomination_hash = DenominationHash.caqti + let privatecontract_hash = PrivateContractHash.caqti + let extensionspolicy_hash = ExtensionsPolicyHash.caqti + let merchantwire_hash = MerchantWireHash.caqti + let agecommitment_hash = AgeCommitmentHash.caqti + let blindedcoin_hash = BlindedCoinHash.caqti + let coinpub_hash = CoinPubHash.caqti + let outputcommitment_hash = OutputCommitmentHash.caqti + let planchets_hash = HashPlanchetsP.caqti + end + let signkey_data = let master_sig = Bin_sig.ExchangeSigningKeyValidity.caqti in custom @@ -63,6 +79,76 @@ module Caqti_type = struct }) (t5 eddsa_pub time time time master_sig) + let denom_data = + let master_sig = Bin_sig.DenominationKeyValidity.caqti in + custom + ~encode:(fun + Denom_data. + { + pub; + value; + stamp_start; + stamp_expire_withdraw; + stamp_expire_deposit; + stamp_expire_legal; + fee_withdraw; + fee_deposit; + fee_refresh; + fee_refund; + age_mask; + h_pub; + master_sig; + } + -> + match master_sig with + | None -> Error "denom_data master_sig is none" + | Some master_sig -> + Ok + ( pub, + value, + stamp_start, + stamp_expire_withdraw, + stamp_expire_deposit, + stamp_expire_legal, + fee_withdraw, + fee_deposit, + fee_refresh, + fee_refund, + age_mask, + (h_pub, master_sig) )) + ~decode:(fun + ( pub, + value, + stamp_start, + stamp_expire_withdraw, + stamp_expire_deposit, + stamp_expire_legal, + fee_withdraw, + fee_deposit, + fee_refresh, + fee_refund, + age_mask, + (h_pub, master_sig) ) + -> + Ok + { + pub; + value; + stamp_start; + stamp_expire_withdraw; + stamp_expire_deposit; + stamp_expire_legal; + fee_withdraw; + fee_deposit; + fee_refresh; + fee_refund; + age_mask; + h_pub; + master_sig= Some master_sig; + }) + (t12 rsa_pub amount time time time time amount amount amount amount int + (t2 denomination_hash master_sig)) + let account_restrictions = custom ~encode:(fun l -> Api.encode (Jsont.list AccountRestriction.jsont) l) @@ -122,22 +208,6 @@ module Caqti_type = struct Caqti_type.( t9 time time amount amount amount time_span int32 time_span master_sig) - include struct - (* alias for hash *) - - let fullpayto_hash = FullPaytoHash.caqti - let nomalizaedpayto_hash = NormalizedPaytoHash.caqti - let denomination_hash = DenominationHash.caqti - let privatecontract_hash = PrivateContractHash.caqti - let extensionspolicy_hash = ExtensionsPolicyHash.caqti - let merchantwire_hash = MerchantWireHash.caqti - let agecommitment_hash = AgeCommitmentHash.caqti - let blindedcoin_hash = BlindedCoinHash.caqti - let coinpub_hash = CoinPubHash.caqti - let outputcommitment_hash = OutputCommitmentHash.caqti - let planchets_hash = HashPlanchetsP.caqti - end - include Caqti_request.Infix end @@ -204,7 +274,6 @@ let add_denomination_key = Denom_data. { pub; - section_name= _; value; stamp_start; stamp_expire_withdraw; diff --git a/src/secmod.ml b/src/secmod.ml index e3f959ac..901d9b6d 100644 --- a/src/secmod.ml +++ b/src/secmod.ml @@ -170,7 +170,6 @@ let db_lookup_denom_data conn ~section_name priv = Denom_data. { pub; - section_name; value; stamp_start; stamp_expire_withdraw; @@ -294,7 +293,7 @@ let make_new_signkey () = let make_new_denom Config.Coin. { - section_name; + section_name= _; value; duration_withdraw; duration_spend; @@ -325,7 +324,6 @@ let make_new_denom Denom_data. { pub; - section_name; value; stamp_start; stamp_expire_withdraw;