Compare commits

...

2 Commits

Author SHA1 Message Date
ekzyis ce0084fc20 Add postgres functions for LMSR 2024-08-26 16:16:19 -05:00
ekzyis 74aa41d5f4 Add orders.created_at column 2024-08-26 16:15:51 -05:00
1 changed files with 15 additions and 0 deletions

View File

@ -48,6 +48,7 @@ CREATE TABLE markets(
CREATE TABLE orders(
id SERIAL PRIMARY KEY,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
market_id INTEGER NOT NULL REFERENCES markets(id),
user_id INTEGER NOT NULL REFERENCES users(id),
quantity BIGINT NOT NULL,
@ -63,3 +64,17 @@ CREATE TABLE withdrawals(
bolt11 TEXT NOT NULL UNIQUE,
paid_at TIMESTAMP WITH TIME ZONE
);
CREATE FUNCTION lmsr(b FLOAT, q1 FLOAT, q2 FLOAT)
RETURNS FLOAT AS $$
BEGIN
RETURN b * LN(EXP(q1 / b) + EXP(q2 / b));
END;
$$ LANGUAGE plpgsql;
CREATE FUNCTION quote(b FLOAT, q1 FLOAT, q2 FLOAT, dq1 FLOAT)
RETURNS FLOAT AS $$
BEGIN
RETURN lmsr(b, q1+dq1, q2) - lmsr(b, q1, q2);
END;
$$ LANGUAGE plpgsql;