diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-05-09 14:34:50 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-05-09 14:34:50 +0200 |
commit | 1cb61c4f8e0a1b02d9689d375c39ab4554880347 (patch) | |
tree | a47c50d9f69b4cc132dd09e990135f261703fe4f | |
parent | 4e406e059e1fb5f9f91e22e197e9fc9b076dbd9f (diff) | |
download | docs-1cb61c4f8e0a1b02d9689d375c39ab4554880347.tar.gz docs-1cb61c4f8e0a1b02d9689d375c39ab4554880347.tar.bz2 docs-1cb61c4f8e0a1b02d9689d375c39ab4554880347.zip |
add inbound wad tables
-rw-r--r-- | core/api-exchange.rst | 5 | ||||
-rw-r--r-- | design-documents/013-peer-to-peer-payments.rst | 185 |
2 files changed, 178 insertions, 12 deletions
diff --git a/core/api-exchange.rst b/core/api-exchange.rst index a2e32579..d3000259 100644 --- a/core/api-exchange.rst +++ b/core/api-exchange.rst @@ -2432,11 +2432,6 @@ Wallet-to-wallet transfers TODO for the spec: - * update DD13 eDB SQL: tables for incoming wads! - * do we need some special entry in account/reserve - histories for incoming WAD-transfers vs. other merges, - or do we re-use the existing 'merge' entry and just - generate it from the incoming-wad table? * update wire transfer API to enable WAD IDs (and while we are at it, should probably also write extended version to allow _merchants_ to query for their inbound transfers, so spec diff --git a/design-documents/013-peer-to-peer-payments.rst b/design-documents/013-peer-to-peer-payments.rst index 5e786203..eda407e6 100644 --- a/design-documents/013-peer-to-peer-payments.rst +++ b/design-documents/013-peer-to-peer-payments.rst @@ -631,6 +631,8 @@ also be possible to keep that link only in the external KYC service's database.) +TODO/FIXME: update the following SQL: add missing comments! + .. sourcecode:: sql @@ -664,6 +666,8 @@ database.) ,kyc_id TEXT NOT NULL ,PRIMARY KEY (reserve_uuid, kyc_date) ); + COMMENT ON TABLE kyc_requests + IS ''; COMMENT ON COLUMN kyc_requests.reserve_uuid IS 'Reserve for which the KYC request was triggered.'; COMMENT ON COLUMN kyc_requests.reserve_sig @@ -692,6 +696,32 @@ database.) ,purse_frac INT4 NOT NULL ,PRIMARY KEY (purse_pub) ); + COMMENT ON TABLE mergers + IS ''; + COMMENT ON COLUMN mergers.reserve_uuid + IS ''; + COMMENT ON COLUMN mergers.purse_url + IS ''; + COMMENT ON COLUMN mergers.purse_pub + IS ''; + COMMENT ON COLUMN mergers.reserve_sig + IS ''; + COMMENT ON COLUMN mergers.purse_sig + IS ''; + COMMENT ON COLUMN mergers.merge_timestamp + IS ''; + COMMENT ON COLUMN mergers.purse_expiration + IS ''; + COMMENT ON COLUMN mergers.h_contract_terms + IS ''; + COMMENT ON COLUMN mergers.h_wire + IS ''; + COMMENT ON COLUMN mergers.purse_val + IS ''; + CREATE INDEX IF NOT EXISTS mergers_reserve_uuid + ON mergers (reserve_uuid); + COMMENT ON INDEX mergers_reserve_uuid + IS ''; -- CREATE TABLE IF NOT EXISTS contracts (contract_serial_id BIGSERIAL UNIQUE @@ -700,13 +730,31 @@ database.) ,e_contract BYTEA NOT NULL, ,PRIMARY KEY (purse_pub) ); + COMMENT ON TABLE contracts + IS ''; + COMMENT ON COLUMN contracts.purse_pub + IS ''; + COMMENT ON COLUMN contracts.pub_ckey + IS ''; + COMMENT ON COLUMN contracts.e_contract + IS ''; -- CREATE TABLE IF NOT EXISTS history_requests (reserve_uuid INT8 NOT NULL REFERENCES reserves(reserve_uuid) ON DELETE CASCADE, ,request_timestamp INT8 NOT NULL ,reserve_sig BYTEA NOT NULL CHECK (LENGTH(reserve_sig)=64)) + ,history_fee_val INT8 NOT NULL + ,history_fee_frac INT4 NOT NULL ,PRIMARY KEY (reserve_uuid,request_timestamp) ); + COMMENT ON TABLE history_requests + IS ''; + COMMENT ON COLUMN history_requests.request_timestamp + IS ''; + COMMENT ON COLUMN history_requests.reserve_sig + IS ''; + COMMENT ON COLUMN history_requests.history_fee_val + IS ''; -- CREATE TABLE IF NOT EXISTS close_requests (reserve_uuid INT8 NOT NULL REFERENCES reserves(reserve_uuid) ON DELETE CASCADE, @@ -716,6 +764,14 @@ database.) ,close_frac INT4 NOT NULL ,PRIMARY KEY (reserve_uuid,close_timestamp) ); + COMMENT ON TABLE close_requests + IS ''; + COMMENT ON COLUMN close_requests.close_timestamp + IS ''; + COMMENT ON COLUMN close_requests.reserve_sig + IS ''; + COMMENT ON COLUMN close_requests.close_val + IS ''; -- CREATE TABLE IF NOT EXISTS purse_deposits (purse_deposit_serial_id BIGSERIAL UNIQUE @@ -727,20 +783,104 @@ database.) ,coin_sig BYTEA NOT NULL CHECK(LENGTH(coin_sig)=64) ,PRIMARY KEY (purse_pub,coin_pub) ); + COMMENT ON TABLE purse_deposits + IS ''; + COMMENT ON COLUMN purse_deposits.purse_pub + IS ''; + COMMENT ON COLUMN purse_deposits.purse_expiration + IS ''; + COMMENT ON COLUMN purse_deposits.coin_pub + IS ''; + COMMENT ON COLUMN purse_deposits.amount_with_fee_val + IS ''; + COMMENT ON COLUMN purse_deposits.coin_sig + IS ''; -- - CREATE TABLE IF NOT EXISTS wads - (wad_serial_id BIGSERIAL UNIQUE + CREATE TABLE IF NOT EXISTS wads_out + (wad_out_serial_id BIGSERIAL UNIQUE ,wad_id BYTEA PRIMARY KEY CHECK (LENGTH(wad_id)=24) - ,exchange_url TEXT NOT NULL + ,target_exchange_url TEXT NOT NULL ,amount_val INT8 NOT NULL ,amount_frac INT4 NOT NULL ,execution_time INT8 NOT NULL ,UNIQUE (exchange_url, execution_time) ); + COMMENT ON TABLE wads_out + IS ''; + COMMENT ON COLUMN wads_out.wad_id + IS ''; + COMMENT ON COLUMN wads_out.target_exchange_url + IS ''; + COMMENT ON COLUMN wads_out.amount_val + IS ''; + COMMENT ON COLUMN wads_out.execution_time + IS ''; + -- + CREATE TABLE IF NOT EXISTS wad_out_entries + (wad_out_entry_serial_id BIGSERIAL UNIQUE + ,wad_out_serial_id INT8 REFERENCES wads_out (wad_out_serial_id) ON DELETE CASCADE + ,reserve_pub BYTEA NOT NULL CHECK(LENGTH(reserve_pub)=32) + ,purse_pub BYTEA PRIMARY KEY CHECK(LENGTH(purse_pub)=32) + ,h_contract BYTEA NOT NULL CHECK(LENGTH(h_contract)=64) + ,purse_expiration INT8 NOT NULL + ,merge_timestamp INT8 NOT NULL + ,amount_with_fee_val INT8 NOT NULL + ,amount_with_fee_frac INT4 NOT NULL + ,wad_fee_val INT8 NOT NULL + ,wad_fee_frac INT4 NOT NULL + ,deposit_fees_val INT8 NOT NULL + ,deposit_fees_frac INT4 NOT NULL + ,reserve_sig BYTEA NOT NULL CHECK (LENGTH(reserve_sig)=64)) + ,purse_sig BYTEA NOT NULL CHECK (LENGTH(purse_sig)=64)) + ); + COMMENT ON TABLE wad_out_entries + IS ''; + COMMENT ON COLUMN wad_out_entries.wad_out_serial_id + IS ''; + COMMENT ON COLUMN wad_out_entries.reserve_pub + IS ''; + COMMENT ON COLUMN wad_out_entries.purse_pub + IS ''; + COMMENT ON COLUMN wad_out_entries.h_contract + IS ''; + COMMENT ON COLUMN wad_out_entries.purse_expiration + IS ''; + COMMENT ON COLUMN wad_out_entries.merge_timestamp + IS ''; + COMMENT ON COLUMN wad_out_entries.amount_with_fee_val + IS ''; + COMMENT ON COLUMN wad_out_entries.wad_fee_val + IS ''; + COMMENT ON COLUMN wad_out_entries.deposit_fees_val + IS ''; + COMMENT ON COLUMN wad_out_entries.reserve_sig + IS ''; + COMMENT ON COLUMN wad_out_entries.purse_sig + IS ''; + -- + CREATE TABLE IF NOT EXISTS wads_in + (wad_in_serial_id BIGSERIAL UNIQUE + ,wad_id BYTEA PRIMARY KEY CHECK (LENGTH(wad_id)=24) + ,origin_exchange_url TEXT NOT NULL + ,amount_val INT8 NOT NULL + ,amount_frac INT4 NOT NULL + ,arrival_time INT8 NOT NULL + ,UNIQUE (wad_id, origin_exchange_url) + ); + COMMENT ON TABLE wads_in_entries + IS ''; + COMMENT ON COLUMN wads_in.wad_id + IS ''; + COMMENT ON COLUMN wads_in.origin_exchange_url + IS ''; + COMMENT ON COLUMN wads_in.amount_val + IS ''; + COMMENT ON COLUMN wads_in.arrival_time + IS ''; -- - CREATE TABLE IF NOT EXISTS wad_entries - (wad_entry_serial_id BIGSERIAL UNIQUE - ,wad_serial_id INT8 REFERENCES wads (wad_serial_id) ON DELETE CASCADE + CREATE TABLE IF NOT EXISTS wad_in_entries + (wad_in_entry_serial_id BIGSERIAL UNIQUE + ,wad_in_serial_id INT8 REFERENCES wads_in (wad_serial_id) ON DELETE CASCADE ,reserve_pub BYTEA NOT NULL CHECK(LENGTH(reserve_pub)=32) ,purse_pub BYTEA PRIMARY KEY CHECK(LENGTH(purse_pub)=32) ,h_contract BYTEA NOT NULL CHECK(LENGTH(h_contract)=64) @@ -755,7 +895,38 @@ database.) ,reserve_sig BYTEA NOT NULL CHECK (LENGTH(reserve_sig)=64)) ,purse_sig BYTEA NOT NULL CHECK (LENGTH(purse_sig)=64)) ); - -- FIXME: need more tables for exchange RECEIVING a wad! + COMMENT ON TABLE wad_in_entries + IS ''; + COMMENT ON COLUMN wad_in_entries.wad_in_serial_id + IS ''; + COMMENT ON COLUMN wad_in_entries.reserve_pub + IS ''; + COMMENT ON COLUMN wad_in_entries.purse_pub + IS ''; + COMMENT ON COLUMN wad_in_entries.h_contract + IS ''; + COMMENT ON COLUMN wad_in_entries.purse_expiration + IS ''; + COMMENT ON COLUMN wad_in_entries.merge_timestamp + IS ''; + COMMENT ON COLUMN wad_in_entries.amount_with_fee_val + IS ''; + COMMENT ON COLUMN wad_in_entries.wad_fee_val + IS ''; + COMMENT ON COLUMN wad_in_entries.deposit_fees_val + IS ''; + COMMENT ON COLUMN wad_in_entries.reserve_sig + IS ''; + COMMENT ON COLUMN wad_in_entries.purse_sig + IS ''; + CREATE INDEX IF NOT EXISTS wad_in_entries_wad_in_serial + ON wad_in_entries (wad_in_serial_id); + CREATE INDEX IF NOT EXISTS wad_in_entries_reserve_pub + ON wad_in_entries (reserve_pub); + COMMENT ON INDEX wad_in_entries_wad_in_serial + IS ''; + COMMENT ON INDEX wad_in_entries_reserve_pub + IS ''; -- Complete transaction COMMIT; |