mirror of
https://github.com/aljazceru/ark.git
synced 2025-12-17 04:04:21 +01:00
* Rename asp > server * Rename pool > round * Consolidate naming for pubkey/prvkey vars and types * Fix * Fix * Fix wasm * Rename congestionTree > vtxoTree * Fix wasm * Rename payment > request * Rename congestionTree > vtxoTree after syncing with master * Fix Send API in SDK * Fix wasm * Fix wasm * Fixes * Fixes after review * Fix * Fix naming * Fix * Fix e2e tests
210 lines
6.8 KiB
SQL
210 lines
6.8 KiB
SQL
-- name: UpsertTransaction :exec
|
|
INSERT INTO tx (
|
|
tx, round_id, type, position, txid, tree_level, parent_txid, is_leaf
|
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
ON CONFLICT(id) DO UPDATE SET
|
|
tx = EXCLUDED.tx,
|
|
round_id = EXCLUDED.round_id,
|
|
type = EXCLUDED.type,
|
|
position = EXCLUDED.position,
|
|
txid = EXCLUDED.txid,
|
|
tree_level = EXCLUDED.tree_level,
|
|
parent_txid = EXCLUDED.parent_txid,
|
|
is_leaf = EXCLUDED.is_leaf;
|
|
|
|
-- name: UpsertRound :exec
|
|
INSERT INTO round (
|
|
id,
|
|
starting_timestamp,
|
|
ending_timestamp,
|
|
ended, failed,
|
|
stage_code,
|
|
txid,
|
|
unsigned_tx,
|
|
connector_address,
|
|
dust_amount,
|
|
version,
|
|
swept
|
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
ON CONFLICT(id) DO UPDATE SET
|
|
starting_timestamp = EXCLUDED.starting_timestamp,
|
|
ending_timestamp = EXCLUDED.ending_timestamp,
|
|
ended = EXCLUDED.ended,
|
|
failed = EXCLUDED.failed,
|
|
stage_code = EXCLUDED.stage_code,
|
|
txid = EXCLUDED.txid,
|
|
unsigned_tx = EXCLUDED.unsigned_tx,
|
|
connector_address = EXCLUDED.connector_address,
|
|
dust_amount = EXCLUDED.dust_amount,
|
|
version = EXCLUDED.version,
|
|
swept = EXCLUDED.swept;
|
|
|
|
-- name: UpsertTxRequest :exec
|
|
INSERT INTO tx_request (id, round_id) VALUES (?, ?)
|
|
ON CONFLICT(id) DO UPDATE SET round_id = EXCLUDED.round_id;
|
|
|
|
-- name: UpsertReceiver :exec
|
|
INSERT INTO receiver (request_id, pubkey, onchain_address, amount) VALUES (?, ?, ?, ?)
|
|
ON CONFLICT(request_id, pubkey, onchain_address) DO UPDATE SET
|
|
amount = EXCLUDED.amount,
|
|
pubkey = EXCLUDED.pubkey,
|
|
onchain_address = EXCLUDED.onchain_address;
|
|
|
|
-- name: UpdateVtxoRequestId :exec
|
|
UPDATE vtxo SET request_id = ? WHERE txid = ? AND vout = ?;
|
|
|
|
-- name: SelectRoundWithRoundId :many
|
|
SELECT sqlc.embed(round),
|
|
sqlc.embed(round_request_vw),
|
|
sqlc.embed(round_tx_vw),
|
|
sqlc.embed(request_receiver_vw),
|
|
sqlc.embed(request_vtxo_vw)
|
|
FROM round
|
|
LEFT OUTER JOIN round_request_vw ON round.id=round_request_vw.round_id
|
|
LEFT OUTER JOIN round_tx_vw ON round.id=round_tx_vw.round_id
|
|
LEFT OUTER JOIN request_receiver_vw ON round_request_vw.id=request_receiver_vw.request_id
|
|
LEFT OUTER JOIN request_vtxo_vw ON round_request_vw.id=request_vtxo_vw.request_id
|
|
WHERE round.id = ?;
|
|
|
|
-- name: SelectRoundWithRoundTxId :many
|
|
SELECT sqlc.embed(round),
|
|
sqlc.embed(round_request_vw),
|
|
sqlc.embed(round_tx_vw),
|
|
sqlc.embed(request_receiver_vw),
|
|
sqlc.embed(request_vtxo_vw)
|
|
FROM round
|
|
LEFT OUTER JOIN round_request_vw ON round.id=round_request_vw.round_id
|
|
LEFT OUTER JOIN round_tx_vw ON round.id=round_tx_vw.round_id
|
|
LEFT OUTER JOIN request_receiver_vw ON round_request_vw.id=request_receiver_vw.request_id
|
|
LEFT OUTER JOIN request_vtxo_vw ON round_request_vw.id=request_vtxo_vw.request_id
|
|
WHERE round.txid = ?;
|
|
|
|
-- name: SelectSweepableRounds :many
|
|
SELECT sqlc.embed(round),
|
|
sqlc.embed(round_request_vw),
|
|
sqlc.embed(round_tx_vw),
|
|
sqlc.embed(request_receiver_vw),
|
|
sqlc.embed(request_vtxo_vw)
|
|
FROM round
|
|
LEFT OUTER JOIN round_request_vw ON round.id=round_request_vw.round_id
|
|
LEFT OUTER JOIN round_tx_vw ON round.id=round_tx_vw.round_id
|
|
LEFT OUTER JOIN request_receiver_vw ON round_request_vw.id=request_receiver_vw.request_id
|
|
LEFT OUTER JOIN request_vtxo_vw ON round_request_vw.id=request_vtxo_vw.request_id
|
|
WHERE round.swept = false AND round.ended = true AND round.failed = false;
|
|
|
|
-- name: SelectSweptRounds :many
|
|
SELECT sqlc.embed(round),
|
|
sqlc.embed(round_request_vw),
|
|
sqlc.embed(round_tx_vw),
|
|
sqlc.embed(request_receiver_vw),
|
|
sqlc.embed(request_vtxo_vw)
|
|
FROM round
|
|
LEFT OUTER JOIN round_request_vw ON round.id=round_request_vw.round_id
|
|
LEFT OUTER JOIN round_tx_vw ON round.id=round_tx_vw.round_id
|
|
LEFT OUTER JOIN request_receiver_vw ON round_request_vw.id=request_receiver_vw.request_id
|
|
LEFT OUTER JOIN request_vtxo_vw ON round_request_vw.id=request_vtxo_vw.request_id
|
|
WHERE round.swept = true AND round.failed = false AND round.ended = true AND round.connector_address <> '';
|
|
|
|
-- name: SelectRoundIdsInRange :many
|
|
SELECT id FROM round WHERE starting_timestamp > ? AND starting_timestamp < ?;
|
|
|
|
-- name: SelectRoundIds :many
|
|
SELECT id FROM round;
|
|
|
|
-- name: UpsertVtxo :exec
|
|
INSERT INTO vtxo (txid, vout, pubkey, amount, round_tx, spent_by, spent, redeemed, swept, expire_at, created_at, redeem_tx)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(txid, vout) DO UPDATE SET
|
|
pubkey = EXCLUDED.pubkey,
|
|
amount = EXCLUDED.amount,
|
|
round_tx = EXCLUDED.round_tx,
|
|
spent_by = EXCLUDED.spent_by,
|
|
spent = EXCLUDED.spent,
|
|
redeemed = EXCLUDED.redeemed,
|
|
swept = EXCLUDED.swept,
|
|
expire_at = EXCLUDED.expire_at,
|
|
created_at = EXCLUDED.created_at,
|
|
redeem_tx = EXCLUDED.redeem_tx;
|
|
|
|
-- name: SelectSweepableVtxos :many
|
|
SELECT sqlc.embed(vtxo) FROM vtxo
|
|
WHERE redeemed = false AND swept = false;
|
|
|
|
-- name: SelectNotRedeemedVtxos :many
|
|
SELECT sqlc.embed(vtxo) FROM vtxo
|
|
WHERE redeemed = false;
|
|
|
|
-- name: SelectNotRedeemedVtxosWithPubkey :many
|
|
SELECT sqlc.embed(vtxo) FROM vtxo
|
|
WHERE redeemed = false AND pubkey = ?;
|
|
|
|
-- name: SelectVtxoByOutpoint :one
|
|
SELECT sqlc.embed(vtxo) FROM vtxo
|
|
WHERE txid = ? AND vout = ?;
|
|
|
|
-- name: SelectVtxosByRoundTxid :many
|
|
SELECT sqlc.embed(vtxo) FROM vtxo
|
|
WHERE round_tx = ?;
|
|
|
|
-- name: MarkVtxoAsRedeemed :exec
|
|
UPDATE vtxo SET redeemed = true WHERE txid = ? AND vout = ?;
|
|
|
|
-- name: MarkVtxoAsSwept :exec
|
|
UPDATE vtxo SET swept = true WHERE txid = ? AND vout = ?;
|
|
|
|
-- name: MarkVtxoAsSpent :exec
|
|
UPDATE vtxo SET spent = true, spent_by = ? WHERE txid = ? AND vout = ?;
|
|
|
|
-- name: UpdateVtxoExpireAt :exec
|
|
UPDATE vtxo SET expire_at = ? WHERE txid = ? AND vout = ?;
|
|
|
|
-- name: UpsertEntity :one
|
|
INSERT INTO entity (nostr_recipient)
|
|
VALUES (?)
|
|
ON CONFLICT(nostr_recipient) DO UPDATE SET
|
|
nostr_recipient = EXCLUDED.nostr_recipient
|
|
RETURNING id;
|
|
|
|
-- name: UpsertEntityVtxo :exec
|
|
INSERT INTO entity_vtxo (entity_id, vtxo_txid, vtxo_vout)
|
|
VALUES (?, ?, ?)
|
|
ON CONFLICT(entity_id, vtxo_txid, vtxo_vout) DO UPDATE SET
|
|
entity_id = EXCLUDED.entity_id;
|
|
|
|
-- name: SelectEntitiesByVtxo :many
|
|
SELECT sqlc.embed(entity_vw) FROM entity_vw
|
|
WHERE vtxo_txid = ? AND vtxo_vout = ?;
|
|
|
|
-- name: DeleteEntityVtxo :exec
|
|
DELETE FROM entity_vtxo WHERE entity_id = ?;
|
|
|
|
-- name: DeleteEntity :exec
|
|
DELETE FROM entity WHERE id = ?;
|
|
|
|
-- name: InsertNote :exec
|
|
INSERT INTO note (id) VALUES (?);
|
|
|
|
-- name: ContainsNote :one
|
|
SELECT EXISTS(SELECT 1 FROM note WHERE id = ?);
|
|
|
|
-- name: InsertMarketHour :one
|
|
INSERT INTO market_hour (
|
|
start_time,
|
|
end_time,
|
|
period,
|
|
round_interval,
|
|
updated_at
|
|
) VALUES (?, ?, ?, ?, ?)
|
|
RETURNING *;
|
|
|
|
-- name: UpdateMarketHour :one
|
|
UPDATE market_hour
|
|
SET start_time = ?,
|
|
end_time = ?,
|
|
period = ?,
|
|
round_interval = ?,
|
|
updated_at = ?
|
|
WHERE id = ?
|
|
RETURNING *;
|
|
|
|
-- name: GetLatestMarketHour :one
|
|
SELECT * FROM market_hour ORDER BY updated_at DESC LIMIT 1; |