left join on find_sk/dn to fill revoked_sig (todo: test)
This commit is contained in:
parent
9a68d18a1d
commit
477dd2230b
2 changed files with 39 additions and 25 deletions
31
src/pg.ml
31
src/pg.ml
|
|
@ -37,16 +37,20 @@ let preflight =
|
||||||
in
|
in
|
||||||
fun (module Conn : CONN) -> Syntax.list_iter (fun p -> Conn.exec p ()) l
|
fun (module Conn : CONN) -> Syntax.list_iter (fun p -> Conn.exec p ()) l
|
||||||
|
|
||||||
(* TODO revoked_sig *)
|
(* TODO revoked_sig
|
||||||
|
check left join *)
|
||||||
let find_signkey =
|
let find_signkey =
|
||||||
let find_signkey =
|
let find_signkey =
|
||||||
Caqti_type.(eddsa_pub ->? signkey_data)
|
Caqti_type.(eddsa_pub ->? signkey_data)
|
||||||
"SELECT exchange_pub, valid_from, expire_sign, expire_legal, master_sig \
|
"SELECT exchange_pub, valid_from, expire_sign, expire_legal, \
|
||||||
FROM exchange_sign_keys WHERE exchange_pub=$1"
|
exchange_sign_keys.master_sig, signkey_revocations.master_sig FROM \
|
||||||
|
exchange_sign_keys WHERE exchange_pub=$1\n\
|
||||||
|
\ LEFT JOIN signkey_revocations USING (esk_serial)"
|
||||||
in
|
in
|
||||||
fun (module Conn : CONN) (exchange_pub : EddsaPublicKey.t) ->
|
fun (module Conn : CONN) (exchange_pub : EddsaPublicKey.t) ->
|
||||||
Conn.find_opt find_signkey exchange_pub
|
Conn.find_opt find_signkey exchange_pub
|
||||||
|
|
||||||
|
(* note: does not update revocation *)
|
||||||
let insert_signkey =
|
let insert_signkey =
|
||||||
let insert_signkey =
|
let insert_signkey =
|
||||||
Caqti_type.(signkey_data ->. unit)
|
Caqti_type.(signkey_data ->. unit)
|
||||||
|
|
@ -60,11 +64,14 @@ let find_denom =
|
||||||
Caqti_type.(denomination_hash ->? denom_data)
|
Caqti_type.(denomination_hash ->? denom_data)
|
||||||
"SELECT denom_pub, (coin).*, valid_from, expire_withdraw, \
|
"SELECT denom_pub, (coin).*, valid_from, expire_withdraw, \
|
||||||
expire_deposit, expire_legal, (fee_withdraw).*, (fee_deposit).*, \
|
expire_deposit, expire_legal, (fee_withdraw).*, (fee_deposit).*, \
|
||||||
(fee_refresh).*, (fee_refund).*, age_mask, denom_pub_hash, master_sig \
|
(fee_refresh).*, (fee_refund).*, age_mask, denom_pub_hash, \
|
||||||
FROM denominations WHERE denom_pub_hash=$1"
|
denominations.master_sig, denomination_revocations.master_sig FROM \
|
||||||
|
denominations WHERE denom_pub_hash=$1 LEFT JOIN \
|
||||||
|
denomination_revocations USING (denominations_serial)"
|
||||||
in
|
in
|
||||||
fun (module Conn : CONN) h_denom_pub -> Conn.find_opt find_denom h_denom_pub
|
fun (module Conn : CONN) h_denom_pub -> Conn.find_opt find_denom h_denom_pub
|
||||||
|
|
||||||
|
(* note: does not update revocation *)
|
||||||
let insert_denom =
|
let insert_denom =
|
||||||
let insert_denom =
|
let insert_denom =
|
||||||
Caqti_type.(denom_data ->. unit)
|
Caqti_type.(denom_data ->. unit)
|
||||||
|
|
@ -286,6 +293,20 @@ let insert_partner =
|
||||||
in
|
in
|
||||||
fun (module Conn : CONN) v -> Conn.exec insert_partner v
|
fun (module Conn : CONN) v -> Conn.exec insert_partner v
|
||||||
|
|
||||||
|
(*
|
||||||
|
let get_denominations =
|
||||||
|
let get_denominations =
|
||||||
|
Caqti_type.(unit ->* denom_data)
|
||||||
|
"SELECT denominations_serial, denominations.master_sig, \
|
||||||
|
denom_revocations_serial_id IS NOT NULL AS revoked, valid_from, \
|
||||||
|
expire_withdraw, expire_deposit, expire_legal, coin, fee_withdraw, \
|
||||||
|
fee_deposit, fee_refresh, fee_refund, denom_type, age_mask, denom_pub \
|
||||||
|
FROM denominations LEFT JOIN denomination_revocations USING \
|
||||||
|
(denominations_serial)"
|
||||||
|
in
|
||||||
|
fun (module Conn : CONN) -> Conn.collect_list get_denominations ()
|
||||||
|
*)
|
||||||
|
|
||||||
(* TODO
|
(* TODO
|
||||||
iterate_denominations
|
iterate_denominations
|
||||||
iterate_active_signkeys
|
iterate_active_signkeys
|
||||||
|
|
|
||||||
|
|
@ -43,28 +43,20 @@ include struct
|
||||||
let planchets_hash = HashPlanchetsP.caqti
|
let planchets_hash = HashPlanchetsP.caqti
|
||||||
end
|
end
|
||||||
|
|
||||||
(* TODO revoked_sig
|
|
||||||
revoked_sig default to None, but could actually be revoked
|
|
||||||
always do a LEFT JOIN on signkey_revocations table? *)
|
|
||||||
let signkey_data =
|
let signkey_data =
|
||||||
let master_sig = Bin_sig.ExchangeSigningKeyValidity.caqti in
|
let master_sig = Bin_sig.ExchangeSigningKeyValidity.caqti in
|
||||||
|
let revoked_sig = option Bin_sig.MasterSigningKeyRevocation.caqti in
|
||||||
custom
|
custom
|
||||||
~encode:(fun
|
~encode:(fun
|
||||||
Signkey_data.
|
Signkey_data.
|
||||||
{
|
{ pub; stamp_start; stamp_expire; stamp_end; master_sig; revoked_sig }
|
||||||
pub;
|
|
||||||
stamp_start;
|
|
||||||
stamp_expire;
|
|
||||||
stamp_end;
|
|
||||||
master_sig;
|
|
||||||
revoked_sig= _;
|
|
||||||
}
|
|
||||||
->
|
->
|
||||||
match master_sig with
|
match master_sig with
|
||||||
| None -> Error "signkey_data master_sig is none"
|
| None -> Error "signkey_data master_sig is none"
|
||||||
| Some master_sig ->
|
| Some master_sig ->
|
||||||
Ok (pub, stamp_start, stamp_expire, stamp_end, master_sig))
|
Ok (pub, stamp_start, stamp_expire, stamp_end, master_sig, revoked_sig))
|
||||||
~decode:(fun (pub, stamp_start, stamp_expire, stamp_end, master_sig) ->
|
~decode:(fun
|
||||||
|
(pub, stamp_start, stamp_expire, stamp_end, master_sig, revoked_sig) ->
|
||||||
Ok
|
Ok
|
||||||
{
|
{
|
||||||
pub;
|
pub;
|
||||||
|
|
@ -72,12 +64,13 @@ let signkey_data =
|
||||||
stamp_expire;
|
stamp_expire;
|
||||||
stamp_end;
|
stamp_end;
|
||||||
master_sig= Some master_sig;
|
master_sig= Some master_sig;
|
||||||
revoked_sig= None;
|
revoked_sig;
|
||||||
})
|
})
|
||||||
(t5 eddsa_pub time time time master_sig)
|
(t6 eddsa_pub time time time master_sig revoked_sig)
|
||||||
|
|
||||||
let denom_data =
|
let denom_data =
|
||||||
let master_sig = Bin_sig.DenominationKeyValidity.caqti in
|
let master_sig = Bin_sig.DenominationKeyValidity.caqti in
|
||||||
|
let revoked_sig = option Bin_sig.MasterDenominationKeyRevocation.caqti in
|
||||||
custom
|
custom
|
||||||
~encode:(fun
|
~encode:(fun
|
||||||
Denom_data.
|
Denom_data.
|
||||||
|
|
@ -95,7 +88,7 @@ let denom_data =
|
||||||
age_mask;
|
age_mask;
|
||||||
h_pub;
|
h_pub;
|
||||||
master_sig;
|
master_sig;
|
||||||
revoked_sig= _;
|
revoked_sig;
|
||||||
}
|
}
|
||||||
->
|
->
|
||||||
match master_sig with
|
match master_sig with
|
||||||
|
|
@ -113,7 +106,7 @@ let denom_data =
|
||||||
fee_refresh,
|
fee_refresh,
|
||||||
fee_refund,
|
fee_refund,
|
||||||
age_mask,
|
age_mask,
|
||||||
(h_pub, master_sig) ))
|
(h_pub, master_sig, revoked_sig) ))
|
||||||
~decode:(fun
|
~decode:(fun
|
||||||
( pub,
|
( pub,
|
||||||
value,
|
value,
|
||||||
|
|
@ -126,7 +119,7 @@ let denom_data =
|
||||||
fee_refresh,
|
fee_refresh,
|
||||||
fee_refund,
|
fee_refund,
|
||||||
age_mask,
|
age_mask,
|
||||||
(h_pub, master_sig) )
|
(h_pub, master_sig, revoked_sig) )
|
||||||
->
|
->
|
||||||
Ok
|
Ok
|
||||||
{
|
{
|
||||||
|
|
@ -143,10 +136,10 @@ let denom_data =
|
||||||
age_mask;
|
age_mask;
|
||||||
h_pub;
|
h_pub;
|
||||||
master_sig= Some master_sig;
|
master_sig= Some master_sig;
|
||||||
revoked_sig= None;
|
revoked_sig;
|
||||||
})
|
})
|
||||||
(t12 rsa_pub amount time time time time amount amount amount amount int
|
(t12 rsa_pub amount time time time time amount amount amount amount int
|
||||||
(t2 denomination_hash master_sig))
|
(t3 denomination_hash master_sig revoked_sig))
|
||||||
|
|
||||||
let account_restrictions =
|
let account_restrictions =
|
||||||
custom
|
custom
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue