From 6f8c2241fcd836bad836861c4b3eb7d43504a780 Mon Sep 17 00:00:00 2001
From: Christian Grothoff <christian@grothoff.org>
Date: Sat, 5 Sep 2020 13:13:19 +0200
Subject: fix idempotency issue for POST /private/orders (#6445)

---
 src/backenddb/merchant-0001.sql | 3 +++
 1 file changed, 3 insertions(+)

(limited to 'src/backenddb/merchant-0001.sql')

diff --git a/src/backenddb/merchant-0001.sql b/src/backenddb/merchant-0001.sql
index 0adc495b..f75cbb28 100644
--- a/src/backenddb/merchant-0001.sql
+++ b/src/backenddb/merchant-0001.sql
@@ -190,6 +190,7 @@ CREATE TABLE IF NOT EXISTS merchant_orders
     REFERENCES merchant_instances (merchant_serial) ON DELETE CASCADE
   ,order_id VARCHAR NOT NULL
   ,claim_token BYTEA NOT NULL CHECK (LENGTH(claim_token)=16)
+  ,h_post_data BYTEA NOT NULL CHECK (LENGTH(h_post_data)=64)
   ,pay_deadline INT8 NOT NULL
   ,creation_time INT8 NOT NULL
   ,contract_terms BYTEA NOT NULL
@@ -199,6 +200,8 @@ COMMENT ON TABLE merchant_orders
   IS 'Orders we offered to a customer, but that have not yet been claimed';
 COMMENT ON COLUMN merchant_orders.contract_terms
   IS 'Claiming changes the contract_terms, hence we have no hash of the terms in this table';
+COMMENT ON COLUMN merchant_orders.h_post_data
+  IS 'Hash of the POST request that created this order, for idempotency checks';
 COMMENT ON COLUMN merchant_orders.claim_token
   IS 'Token optionally used to authorize the wallet to claim the order. All zeros (not NULL) if not used';
 COMMENT ON COLUMN merchant_orders.merchant_serial
-- 
cgit v1.2.3

