+ database

This commit is contained in:
swrup 2025-10-13 02:07:07 +02:00
parent 2f43f98147
commit 6222369290

View file

@ -18,6 +18,7 @@ type duration
(* TODO
make it Amount.t *)
type amount = string
type payto_uri = string
(* TODO
still need to parse them and tell that its not supported
@ -374,6 +375,65 @@ module type Secmod_rsa = Secmod
module type Secmod_cs = Secmod
module type Secmod_eddsa = Secmod
(* The following options must be in the section "[exchangedb]". *)
module type Database = sig
(* TODO not sure about what unit of time/duration is used here *)
(*
After which time period should reserves be closed if they are idle? *)
val idle_reserve_expiration_time : seconds
(*
After what time do we forget about (drained) reserves during garbage collection? *)
val legal_reserve_expiration_time : seconds
(*
Delay between a deposit being eligible for aggregation and
the aggregator actually triggering. *)
val aggregator_shift : seconds
(*
Number of concurrent purses that a reserve may have active
if it is paid to be opened for a year. *)
val default_purse_limit : int
(*
Maximum time an AML program is allowed to run.
(Optional for taler-auditor.) *)
val max_aml_program_runtime : int option
(*
The following options must be in section [exchangedb-postgres] if the
postgres plugin was selected for the database. *)
module type Postgres_backend = sig
(*
How to access the database, e.g. postgres:///taler-exchange to use the
taler-exchange database. Testcases use talercheck. *)
val config : string
end
end
(*
An exchange (or merchant) can have multiple bank accounts. The following
options are for sections named [exchange-account-SOMETHING]. The ``SOMETHING`` is
arbitrary and should be chosen to uniquely identify the bank account for
the operator. These options are used by the **taler-exchange-aggregator**, **taler-exchange-closer**, **taler-exchange-transfer** and **taler-exchange-wirewatch** tools. *)
module type Account = sig
val payto_uri : payto_uri
val enable_debit : [ `YES | `NO ]
val enable_credit : [ `YES | `NO ]
end
(*
Additionally, for each enabled account there MUST be another matching section named [exchange-accountcredentials-SOMETHING]. This section SHOULD be in a ``secret/`` configuration file that is only readable for the **taler-exchange-wirewatch** and **taler-exchange-transfer** processes. It contains the credentials to access the bank account: *)
module type Account_secret = sig
val wire_gateway_url : url
val wire_gateway_auth_method : string
val username : string
val password : string
val token : string
end
(* -- ********************************** -- *)
let currency = `Eur
let currency_to_string = function `Eur -> "EUR"