Alexis Hernandez
6 years ago
1 changed files with 36 additions and 0 deletions
@ -0,0 +1,36 @@ |
|||
|
|||
# --- !Ups |
|||
|
|||
CREATE TYPE TPOS_CONTRACT_STATE AS ENUM ('ACTIVE', 'CLOSED'); |
|||
|
|||
-- a contract is created using a 1 XSN which is referenced by the (txid, index). |
|||
-- spending the collateral coin cancels the contract, |
|||
CREATE TABLE tpos_contracts( |
|||
txid TXID_TYPE NOT NULL, |
|||
index NON_NEGATIVE_INT_TYPE NOT NULL, |
|||
owner ADDRESS_TYPE NOT NULL, |
|||
merchant ADDRESS_TYPE NOT NULL, |
|||
merchant_commission INT NOT NULL, |
|||
time BIGINT NOT NULL, |
|||
state TPOS_CONTRACT_STATE NOT NULL, |
|||
closed_on TXID_TYPE NULL, |
|||
-- constraints |
|||
CONSTRAINT tpos_contracts_txid_index_pk PRIMARY KEY (txid, index), |
|||
CONSTRAINT tpos_contracts_txid_index_fk FOREIGN KEY (txid, index) REFERENCES transaction_outputs (txid, index), |
|||
CONSTRAINT merchant_commission_percentage CHECK (merchant_commission > 0 AND merchant_commission < 100), |
|||
CONSTRAINT tpos_contracts_closed_on_fk FOREIGN KEY (closed_on) REFERENCES transactions (txid) ON DELETE SET NULL |
|||
); |
|||
|
|||
CREATE INDEX tpos_contracts_owner_index ON tpos_contracts USING BTREE (owner); |
|||
CREATE INDEX tpos_contracts_merchant_index ON tpos_contracts USING BTREE (merchant); |
|||
CREATE INDEX tpos_contracts_closed_on_index ON tpos_contracts USING BTREE (closed_on); |
|||
|
|||
|
|||
# --- !Downs |
|||
|
|||
DROP INDEX tpos_contracts_closed_on_index; |
|||
DROP INDEX tpos_contracts_merchant_index; |
|||
DROP INDEX tpos_contracts_owner_index; |
|||
DROP TABLE tpos_contracts; |
|||
DROP TYPE TPOS_CONTRACT_STATE; |
|||
|
Loading…
Reference in new issue