denom caqti, move section_name out of denom_data
This commit is contained in:
parent
c41ca5b4e2
commit
4f69ac56d2
5 changed files with 145 additions and 136 deletions
176
src/pg.ml
176
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
|
||||
|
||||
|
|
@ -173,66 +243,26 @@ let insert_signkey =
|
|||
in
|
||||
fun (module Conn : CONN) v -> Conn.exec insert_signkey v
|
||||
|
||||
(* TODO return type *)
|
||||
let lookup_denomination_key =
|
||||
let lookup_denomination_key =
|
||||
Caqti_type.(
|
||||
denomination_hash
|
||||
->? t10 time time time time amount amount amount amount amount age_mask)
|
||||
"SELECT valid_from, expire_withdraw, expire_deposit, expire_legal, \
|
||||
(coin).*, (fee_withdraw).*, (fee_deposit).*, (fee_refresh).*, \
|
||||
(fee_refund).*, age_mask FROM denominations WHERE denom_pub_hash=$1"
|
||||
let find_denom =
|
||||
let find_denom =
|
||||
Caqti_type.(denomination_hash ->? denom_data)
|
||||
"SELECT denom_pub, (coin).*, valid_from, expire_withdraw, \
|
||||
expire_deposit, expire_legal, (fee_withdraw).*, (fee_deposit).*, \
|
||||
(fee_refresh).*, (fee_refund).*, age_mask, denom_pub_hash, master_sig \
|
||||
FROM denominations WHERE denom_pub_hash=$1"
|
||||
in
|
||||
fun (module Conn : CONN) (h_denom_pub : DenominationHash.t) ->
|
||||
Conn.find_opt lookup_denomination_key h_denom_pub
|
||||
fun (module Conn : CONN) h_denom_pub -> Conn.find_opt find_denom h_denom_pub
|
||||
|
||||
let add_denomination_key =
|
||||
let denomination_insert =
|
||||
let master_sig = Bin_sig.DenominationKeyValidity.caqti in
|
||||
Caqti_type.(
|
||||
t12 denomination_hash rsa_pub master_sig time time time time amount amount
|
||||
amount amount (t2 amount age_mask)
|
||||
->. unit)
|
||||
"INSERT INTO denominations (denom_pub_hash, denom_pub, master_sig, \
|
||||
valid_from, expire_withdraw, expire_deposit, expire_legal, coin, \
|
||||
fee_withdraw, fee_deposit, fee_refresh, fee_refund, age_mask) VALUES \
|
||||
($1, $2, $3, $4, $5, $6, $7, ($8,$9), ($10,$11),($12,$13), ($14,$15), \
|
||||
($16,$17), $18)"
|
||||
let insert_denom =
|
||||
let insert_denom =
|
||||
Caqti_type.(denom_data ->. unit)
|
||||
"INSERT INTO denominations (denom_pub, (coin).*, valid_from, \
|
||||
expire_withdraw, expire_deposit, expire_legal, (fee_withdraw).*, \
|
||||
(fee_deposit).*, (fee_refresh).*, (fee_refund).*, age_mask, \
|
||||
denom_pub_hash, master_sig) VALUES ($1, ($2, $3), $4, $5, $6, $7, \
|
||||
($8,$9), ($10,$11), ($12,$13), ($14,$15), $18, $19, $18)"
|
||||
in
|
||||
fun (module Conn : CONN)
|
||||
~master_sig
|
||||
Denom_data.
|
||||
{
|
||||
pub;
|
||||
section_name= _;
|
||||
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= master_sig_opt;
|
||||
}
|
||||
->
|
||||
assert (master_sig_opt = Some master_sig);
|
||||
Conn.exec denomination_insert
|
||||
( h_pub,
|
||||
pub,
|
||||
master_sig,
|
||||
stamp_start,
|
||||
stamp_expire_withdraw,
|
||||
stamp_expire_deposit,
|
||||
stamp_expire_legal,
|
||||
value,
|
||||
fee_withdraw,
|
||||
fee_deposit,
|
||||
fee_refresh,
|
||||
(fee_refund, age_mask) )
|
||||
fun (module Conn : CONN) v -> Conn.exec insert_denom v
|
||||
|
||||
let insert_denomination_revocation =
|
||||
let denomination_revocation_insert =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue