-- -- This file is part of TALER -- Copyright (C) 2014--2022 Taler Systems SA -- -- 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. -- -- 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 -- TALER; see the file COPYING. If not, see -- -- FIXME: this table should be sharded! CREATE TABLE policy_fulfillments (fulfillment_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE PRIMARY KEY ,fulfillment_timestamp INT8 NOT NULL ,fulfillment_proof VARCHAR ,h_fulfillment_proof BYTEA NOT NULL CHECK(LENGTH(h_fulfillment_proof) = 64) UNIQUE ,policy_hash_codes BYTEA NOT NULL CHECK(0 = MOD(LENGTH(policy_hash_codes), 16)) ); COMMENT ON TABLE policy_fulfillments IS 'Proofs of fulfillment of policies that were set in deposits'; COMMENT ON COLUMN policy_fulfillments.fulfillment_timestamp IS 'Timestamp of the arrival of a proof of fulfillment'; COMMENT ON COLUMN policy_fulfillments.fulfillment_proof IS 'JSON object with a proof of the fulfillment of a policy. Supported details depend on the policy extensions supported by the exchange.'; COMMENT ON COLUMN policy_fulfillments.h_fulfillment_proof IS 'Hash of the fulfillment_proof'; COMMENT ON COLUMN policy_fulfillments.policy_hash_codes IS 'Concatenation of the policy_hash_code of all policy_details that are fulfilled by this proof';