diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-12-16 16:59:09 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-12-16 17:00:46 +0100 |
commit | c2ee8fd9ab6754275d7423152681236a46cf36a9 (patch) | |
tree | c7306f6575f89e3b66226fdaf7af342b0dc973c2 /src/types/ReserveStatus.ts | |
parent | 35a7b76a7d935dc2c749fd39ac80c6af1096b795 (diff) | |
download | wallet-core-c2ee8fd9ab6754275d7423152681236a46cf36a9.tar.gz wallet-core-c2ee8fd9ab6754275d7423152681236a46cf36a9.tar.bz2 wallet-core-c2ee8fd9ab6754275d7423152681236a46cf36a9.zip |
cleanup, avoid some circular deps
Diffstat (limited to 'src/types/ReserveStatus.ts')
-rw-r--r-- | src/types/ReserveStatus.ts | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/types/ReserveStatus.ts b/src/types/ReserveStatus.ts new file mode 100644 index 000000000..d9b5d9496 --- /dev/null +++ b/src/types/ReserveStatus.ts @@ -0,0 +1,61 @@ +/* + This file is part of GNU Taler + (C) 2019 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + */ + +/** + * @author Florian Dold <dold@taler.net> + */ + +/** + * Imports. + */ +import { + codecForString, + typecheckedCodec, + makeCodecForObject, + makeCodecForConstString, + makeCodecForUnion, + makeCodecForList, +} from "../util/codec"; +import { runBlock } from "../util/helpers"; +import { AmountString } from "./talerTypes"; +import { ReserveTransaction, codecForReserveTransaction } from "./ReserveTransaction"; + + +/** + * Status of a reserve. + * + * Schema type for the exchange's response to "/reserve/status". + */ +export interface ReserveStatus { + /** + * Balance left in the reserve. + */ + balance: AmountString; + + /** + * Transaction history for the reserve. + */ + history: ReserveTransaction[]; +} + +export const codecForReserveStatus = runBlock(() => ( + typecheckedCodec<ReserveStatus>( + makeCodecForObject<ReserveStatus>() + .property("balance", codecForString) + .property("history", makeCodecForList(codecForReserveTransaction)) + .build("ReserveStatus") + ) +));
\ No newline at end of file |