diff --git a/src/api.ml b/src/api.ml index 4b43d92a..b3dd4f9b 100644 --- a/src/api.ml +++ b/src/api.ml @@ -523,3 +523,26 @@ module WireSetupMessage = struct |> mem "priority" (Jsont.option Jsont.int) ~enc:priority |> finish end + +module WireTeardownMessage = struct + type t = { + payto_uri: string; + master_sig_del: MasterDelWirePS.t; + (* TODO time monotonic *) + validity_end: Timestamp.t; + } + + let jsont = + let make payto_uri master_sig_del validity_end = + { payto_uri; master_sig_del; validity_end } + in + let payto_uri v = v.payto_uri in + let master_sig_del v = v.master_sig_del in + let validity_end v = v.validity_end in + let open Jsont.Object in + map ~kind:"WireTeardownMessage" make + |> mem "payto_uri" Jsont.string ~enc:payto_uri + |> mem "master_sig_del" MasterDelWirePS.jsont ~enc:master_sig_del + |> mem "validity_end" Timestamp.jsont ~enc:validity_end + |> finish +end diff --git a/src/bin_signature.ml b/src/bin_signature.ml index 6590b910..94195af0 100644 --- a/src/bin_signature.ml +++ b/src/bin_signature.ml @@ -437,6 +437,28 @@ module MasterAddWirePS = struct include MK (R) end +module MasterDelWirePS = struct + module R = struct + (* purpose.purpose = TALER_SIGNATURE_MASTER_DEL_WIRE *) + type r = { + end_date: TimeAbsoluteNBO.t; + h_wire: FullPaytoHash.t; + } + + let bin = + let open Bin in + Purpose.make_bin Taler_signatures.master_del_wire @@ fun _purpose -> + record (fun _purpose end_date h_wire -> { end_date; h_wire }) + |+ Purpose.field _purpose + |+ field TimeAbsoluteNBO.bin (fun t -> t.end_date) + |+ field FullPaytoHash.bin (fun t -> t.h_wire) + |> sealr + end + + include R + include MK (R) +end + (* ### BIN IMPL END ### *) module WithdrawRequestPS = struct @@ -915,14 +937,6 @@ module CoinPurseRefundConfirmationPS = struct } end -module MasterDelWirePS = struct - (* purpose.purpose = TALER_SIGNATURE_MASTER_DEL_WIRE *) - type t = { - end_date: TimeAbsoluteNBO.t; - h_wire: FullPaytoHash.t; - } -end - module MasterAmlOfficerStatusPS = struct (* purpose.purpose = TALER_SIGNATURE_MASTER_AML_KEY *) type t = {