+ signkey caqti
This commit is contained in:
parent
e57b12f9d5
commit
c41ca5b4e2
2 changed files with 35 additions and 31 deletions
48
src/pg.ml
48
src/pg.ml
|
|
@ -42,6 +42,27 @@ module Caqti_type = struct
|
|||
let wire_method = Caqti_type.string
|
||||
let payto_uri = Caqti_type.string
|
||||
|
||||
let signkey_data =
|
||||
let master_sig = Bin_sig.ExchangeSigningKeyValidity.caqti in
|
||||
custom
|
||||
~encode:(fun
|
||||
Signkey_data.{ pub; stamp_start; stamp_expire; stamp_end; master_sig }
|
||||
->
|
||||
match master_sig with
|
||||
| None -> Error "signkey_data master_sig is none"
|
||||
| Some master_sig ->
|
||||
Ok (pub, stamp_start, stamp_expire, stamp_end, master_sig))
|
||||
~decode:(fun (pub, stamp_start, stamp_expire, stamp_end, master_sig) ->
|
||||
Ok
|
||||
{
|
||||
pub;
|
||||
stamp_start;
|
||||
stamp_expire;
|
||||
stamp_end;
|
||||
master_sig= Some master_sig;
|
||||
})
|
||||
(t5 eddsa_pub time time time master_sig)
|
||||
|
||||
let account_restrictions =
|
||||
custom
|
||||
~encode:(fun l -> Api.encode (Jsont.list AccountRestriction.jsont) l)
|
||||
|
|
@ -135,31 +156,22 @@ let preflight =
|
|||
in
|
||||
fun (module Conn : CONN) -> Syntax.list_iter (fun p -> Conn.exec p ()) l
|
||||
|
||||
(* TODO return type *)
|
||||
let lookup_signing_key =
|
||||
let lookup_signing_key =
|
||||
Caqti_type.(eddsa_pub ->? t3 time time time)
|
||||
"SELECT valid_from, expire_sign, expire_legal FROM exchange_sign_keys \
|
||||
WHERE exchange_pub=$1"
|
||||
let find_signkey =
|
||||
let find_signkey =
|
||||
Caqti_type.(eddsa_pub ->? signkey_data)
|
||||
"SELECT exchange_pub, valid_from, expire_sign, expire_legal, master_sig \
|
||||
FROM exchange_sign_keys WHERE exchange_pub=$1"
|
||||
in
|
||||
fun (module Conn : CONN) (exchange_pub : EddsaPublicKey.t) ->
|
||||
Conn.find_opt lookup_signing_key exchange_pub
|
||||
Conn.find_opt find_signkey exchange_pub
|
||||
|
||||
let activate_signing_key =
|
||||
let insert_signkey =
|
||||
let insert_signkey =
|
||||
let master_sig = Bin_sig.ExchangeSigningKeyValidity.caqti in
|
||||
Caqti_type.(t5 eddsa_pub time time time master_sig ->. unit)
|
||||
Caqti_type.(signkey_data ->. unit)
|
||||
"INSERT INTO exchange_sign_keys (exchange_pub, valid_from, expire_sign, \
|
||||
expire_legal, master_sig) VALUES ($1, $2, $3, $4, $5)"
|
||||
in
|
||||
fun (module Conn : CONN)
|
||||
~master_sig
|
||||
Signkey_data.
|
||||
{ pub; stamp_start; stamp_expire; stamp_end; master_sig= master_sig_opt }
|
||||
->
|
||||
assert (master_sig_opt = Some master_sig);
|
||||
Conn.exec insert_signkey
|
||||
(pub, stamp_start, stamp_expire, stamp_end, master_sig)
|
||||
fun (module Conn : CONN) v -> Conn.exec insert_signkey v
|
||||
|
||||
(* TODO return type *)
|
||||
let lookup_denomination_key =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue