You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
CREATE TABLE IF NOT EXISTS accounts (
|
|
|
|
userhash text PRIMARY KEY,
|
|
|
|
email text,
|
|
|
|
pass text
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS wallets (
|
|
|
|
hash text PRIMARY KEY,
|
|
|
|
name text NOT NULL,
|
|
|
|
user text NOT NULL,
|
|
|
|
adminkey text NOT NULL,
|
|
|
|
inkey text
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS apipayments (
|
|
|
|
payhash text PRIMARY KEY,
|
|
|
|
amount integer NOT NULL,
|
|
|
|
fee integer NOT NULL DEFAULT 0,
|
|
|
|
wallet text NOT NULL,
|
|
|
|
pending boolean NOT NULL,
|
|
|
|
memo text
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE VIEW IF NOT EXISTS balances AS
|
|
|
|
SELECT wallet, coalesce(sum(s), 0) AS balance FROM (
|
|
|
|
SELECT wallet, sum(amount) AS s -- incoming
|
|
|
|
FROM apipayments
|
|
|
|
WHERE amount > 0 AND pending = false -- don't sum pending
|
|
|
|
UNION ALL
|
|
|
|
SELECT wallet, sum(amount + fee) AS s -- outgoing, sum fees
|
|
|
|
FROM apipayments
|
|
|
|
WHERE amount < 0 -- do sum pending
|
|
|
|
)
|
|
|
|
GROUP BY wallet;
|