mirror of
https://github.com/lightninglabs/loop.git
synced 2026-08-13 12:33:03 +02:00
sqlc: deposit queries, models and migrations
This commit is contained in:
parent
b454d957ab
commit
5f4fca8219
6 changed files with 331 additions and 0 deletions
|
|
@ -0,0 +1 @@
|
|||
DROP TABLE IF EXISTS deposits;
|
||||
43
loopdb/sqlc/migrations/000010_static_address_deposits.up.sql
Normal file
43
loopdb/sqlc/migrations/000010_static_address_deposits.up.sql
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
-- deposits stores historic and unspent static address outputs.
|
||||
CREATE TABLE IF NOT EXISTS deposits (
|
||||
-- id is the auto-incrementing primary key for a static address.
|
||||
id INTEGER PRIMARY KEY,
|
||||
|
||||
-- deposit_id is the unique identifier for the deposit.
|
||||
deposit_id BLOB NOT NULL UNIQUE,
|
||||
|
||||
-- tx_hash is the transaction hash of the deposit.
|
||||
tx_hash BYTEA NOT NULL,
|
||||
|
||||
-- output_index is the index of the output in the transaction.
|
||||
out_index INT NOT NULL,
|
||||
|
||||
-- amount is the amount of the deposit.
|
||||
amount BIGINT NOT NULL,
|
||||
|
||||
-- confirmation_height is the absolute height at which the deposit was
|
||||
-- confirmed.
|
||||
confirmation_height BIGINT NOT NULL,
|
||||
|
||||
-- timeout_sweep_pk_script is the public key script that will be used to
|
||||
-- sweep the deposit after has expired.
|
||||
timeout_sweep_pk_script BYTEA NOT NULL,
|
||||
|
||||
-- expiry_sweep_txid is the transaction id of the expiry sweep.
|
||||
expiry_sweep_txid BLOB
|
||||
);
|
||||
|
||||
-- deposit_updates contains all the updates to a deposit.
|
||||
CREATE TABLE IF NOT EXISTS deposit_updates (
|
||||
-- id is the auto incrementing primary key.
|
||||
id INTEGER PRIMARY KEY,
|
||||
|
||||
-- deposit_id is the unique identifier for the deposit.
|
||||
deposit_id BLOB NOT NULL REFERENCES deposits(deposit_id),
|
||||
|
||||
-- update_state is the state of the deposit at the time of the update.
|
||||
update_state TEXT NOT NULL,
|
||||
|
||||
-- update_timestamp is the timestamp of the update.
|
||||
update_timestamp TIMESTAMP NOT NULL
|
||||
);
|
||||
|
|
@ -9,6 +9,24 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
type Deposit struct {
|
||||
ID int32
|
||||
DepositID []byte
|
||||
TxHash []byte
|
||||
OutIndex int32
|
||||
Amount int64
|
||||
ConfirmationHeight int64
|
||||
TimeoutSweepPkScript []byte
|
||||
ExpirySweepTxid []byte
|
||||
}
|
||||
|
||||
type DepositUpdate struct {
|
||||
ID int32
|
||||
DepositID []byte
|
||||
UpdateState string
|
||||
UpdateTimestamp time.Time
|
||||
}
|
||||
|
||||
type HtlcKey struct {
|
||||
SwapHash []byte
|
||||
SenderScriptPubkey []byte
|
||||
|
|
|
|||
|
|
@ -9,18 +9,22 @@ import (
|
|||
)
|
||||
|
||||
type Querier interface {
|
||||
AllDeposits(ctx context.Context) ([]Deposit, error)
|
||||
AllStaticAddresses(ctx context.Context) ([]StaticAddress, error)
|
||||
ConfirmBatch(ctx context.Context, id int32) error
|
||||
CreateDeposit(ctx context.Context, arg CreateDepositParams) error
|
||||
CreateReservation(ctx context.Context, arg CreateReservationParams) error
|
||||
CreateStaticAddress(ctx context.Context, arg CreateStaticAddressParams) error
|
||||
DropBatch(ctx context.Context, id int32) error
|
||||
FetchLiquidityParams(ctx context.Context) ([]byte, error)
|
||||
GetBatchSweeps(ctx context.Context, batchID int32) ([]Sweep, error)
|
||||
GetBatchSweptAmount(ctx context.Context, batchID int32) (int64, error)
|
||||
GetDeposit(ctx context.Context, depositID []byte) (Deposit, error)
|
||||
GetInstantOutSwap(ctx context.Context, swapHash []byte) (GetInstantOutSwapRow, error)
|
||||
GetInstantOutSwapUpdates(ctx context.Context, swapHash []byte) ([]InstantoutUpdate, error)
|
||||
GetInstantOutSwaps(ctx context.Context) ([]GetInstantOutSwapsRow, error)
|
||||
GetLastUpdateID(ctx context.Context, swapHash []byte) (int32, error)
|
||||
GetLatestDepositUpdate(ctx context.Context, depositID []byte) (DepositUpdate, error)
|
||||
GetLoopInSwap(ctx context.Context, swapHash []byte) (GetLoopInSwapRow, error)
|
||||
GetLoopInSwaps(ctx context.Context) ([]GetLoopInSwapsRow, error)
|
||||
GetLoopOutSwap(ctx context.Context, swapHash []byte) (GetLoopOutSwapRow, error)
|
||||
|
|
@ -35,6 +39,7 @@ type Querier interface {
|
|||
GetSweepStatus(ctx context.Context, swapHash []byte) (bool, error)
|
||||
GetUnconfirmedBatches(ctx context.Context) ([]SweepBatch, error)
|
||||
InsertBatch(ctx context.Context, arg InsertBatchParams) (int32, error)
|
||||
InsertDepositUpdate(ctx context.Context, arg InsertDepositUpdateParams) error
|
||||
InsertHtlcKeys(ctx context.Context, arg InsertHtlcKeysParams) error
|
||||
InsertInstantOut(ctx context.Context, arg InsertInstantOutParams) error
|
||||
InsertInstantOutUpdate(ctx context.Context, arg InsertInstantOutUpdateParams) error
|
||||
|
|
@ -46,6 +51,7 @@ type Querier interface {
|
|||
InsertSwapUpdate(ctx context.Context, arg InsertSwapUpdateParams) error
|
||||
OverrideSwapCosts(ctx context.Context, arg OverrideSwapCostsParams) error
|
||||
UpdateBatch(ctx context.Context, arg UpdateBatchParams) error
|
||||
UpdateDeposit(ctx context.Context, arg UpdateDepositParams) error
|
||||
UpdateInstantOut(ctx context.Context, arg UpdateInstantOutParams) error
|
||||
UpdateReservation(ctx context.Context, arg UpdateReservationParams) error
|
||||
UpsertLiquidityParams(ctx context.Context, params []byte) error
|
||||
|
|
|
|||
66
loopdb/sqlc/queries/static_address_deposits.sql
Normal file
66
loopdb/sqlc/queries/static_address_deposits.sql
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
-- name: CreateDeposit :exec
|
||||
INSERT INTO deposits (
|
||||
deposit_id,
|
||||
tx_hash,
|
||||
out_index,
|
||||
amount,
|
||||
confirmation_height,
|
||||
timeout_sweep_pk_script,
|
||||
expiry_sweep_txid
|
||||
) VALUES (
|
||||
$1,
|
||||
$2,
|
||||
$3,
|
||||
$4,
|
||||
$5,
|
||||
$6,
|
||||
$7
|
||||
);
|
||||
|
||||
-- name: UpdateDeposit :exec
|
||||
UPDATE deposits
|
||||
SET
|
||||
tx_hash = $2,
|
||||
out_index = $3,
|
||||
confirmation_height = $4,
|
||||
expiry_sweep_txid = $5
|
||||
WHERE
|
||||
deposits.deposit_id = $1;
|
||||
|
||||
-- name: InsertDepositUpdate :exec
|
||||
INSERT INTO deposit_updates (
|
||||
deposit_id,
|
||||
update_state,
|
||||
update_timestamp
|
||||
) VALUES (
|
||||
$1,
|
||||
$2,
|
||||
$3
|
||||
);
|
||||
|
||||
-- name: GetDeposit :one
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
deposits
|
||||
WHERE
|
||||
deposit_id = $1;
|
||||
|
||||
-- name: AllDeposits :many
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
deposits
|
||||
ORDER BY
|
||||
id ASC;
|
||||
|
||||
-- name: GetLatestDepositUpdate :one
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
deposit_updates
|
||||
WHERE
|
||||
deposit_id = $1
|
||||
ORDER BY
|
||||
update_timestamp DESC
|
||||
LIMIT 1;
|
||||
197
loopdb/sqlc/static_address_deposits.sql.go
Normal file
197
loopdb/sqlc/static_address_deposits.sql.go
Normal file
|
|
@ -0,0 +1,197 @@
|
|||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.25.0
|
||||
// source: static_address_deposits.sql
|
||||
|
||||
package sqlc
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
)
|
||||
|
||||
const allDeposits = `-- name: AllDeposits :many
|
||||
SELECT
|
||||
id, deposit_id, tx_hash, out_index, amount, confirmation_height, timeout_sweep_pk_script, expiry_sweep_txid
|
||||
FROM
|
||||
deposits
|
||||
ORDER BY
|
||||
id ASC
|
||||
`
|
||||
|
||||
func (q *Queries) AllDeposits(ctx context.Context) ([]Deposit, error) {
|
||||
rows, err := q.db.QueryContext(ctx, allDeposits)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []Deposit
|
||||
for rows.Next() {
|
||||
var i Deposit
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.DepositID,
|
||||
&i.TxHash,
|
||||
&i.OutIndex,
|
||||
&i.Amount,
|
||||
&i.ConfirmationHeight,
|
||||
&i.TimeoutSweepPkScript,
|
||||
&i.ExpirySweepTxid,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Close(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const createDeposit = `-- name: CreateDeposit :exec
|
||||
INSERT INTO deposits (
|
||||
deposit_id,
|
||||
tx_hash,
|
||||
out_index,
|
||||
amount,
|
||||
confirmation_height,
|
||||
timeout_sweep_pk_script,
|
||||
expiry_sweep_txid
|
||||
) VALUES (
|
||||
$1,
|
||||
$2,
|
||||
$3,
|
||||
$4,
|
||||
$5,
|
||||
$6,
|
||||
$7
|
||||
)
|
||||
`
|
||||
|
||||
type CreateDepositParams struct {
|
||||
DepositID []byte
|
||||
TxHash []byte
|
||||
OutIndex int32
|
||||
Amount int64
|
||||
ConfirmationHeight int64
|
||||
TimeoutSweepPkScript []byte
|
||||
ExpirySweepTxid []byte
|
||||
}
|
||||
|
||||
func (q *Queries) CreateDeposit(ctx context.Context, arg CreateDepositParams) error {
|
||||
_, err := q.db.ExecContext(ctx, createDeposit,
|
||||
arg.DepositID,
|
||||
arg.TxHash,
|
||||
arg.OutIndex,
|
||||
arg.Amount,
|
||||
arg.ConfirmationHeight,
|
||||
arg.TimeoutSweepPkScript,
|
||||
arg.ExpirySweepTxid,
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
||||
const getDeposit = `-- name: GetDeposit :one
|
||||
SELECT
|
||||
id, deposit_id, tx_hash, out_index, amount, confirmation_height, timeout_sweep_pk_script, expiry_sweep_txid
|
||||
FROM
|
||||
deposits
|
||||
WHERE
|
||||
deposit_id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) GetDeposit(ctx context.Context, depositID []byte) (Deposit, error) {
|
||||
row := q.db.QueryRowContext(ctx, getDeposit, depositID)
|
||||
var i Deposit
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.DepositID,
|
||||
&i.TxHash,
|
||||
&i.OutIndex,
|
||||
&i.Amount,
|
||||
&i.ConfirmationHeight,
|
||||
&i.TimeoutSweepPkScript,
|
||||
&i.ExpirySweepTxid,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const getLatestDepositUpdate = `-- name: GetLatestDepositUpdate :one
|
||||
SELECT
|
||||
id, deposit_id, update_state, update_timestamp
|
||||
FROM
|
||||
deposit_updates
|
||||
WHERE
|
||||
deposit_id = $1
|
||||
ORDER BY
|
||||
update_timestamp DESC
|
||||
LIMIT 1
|
||||
`
|
||||
|
||||
func (q *Queries) GetLatestDepositUpdate(ctx context.Context, depositID []byte) (DepositUpdate, error) {
|
||||
row := q.db.QueryRowContext(ctx, getLatestDepositUpdate, depositID)
|
||||
var i DepositUpdate
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.DepositID,
|
||||
&i.UpdateState,
|
||||
&i.UpdateTimestamp,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const insertDepositUpdate = `-- name: InsertDepositUpdate :exec
|
||||
INSERT INTO deposit_updates (
|
||||
deposit_id,
|
||||
update_state,
|
||||
update_timestamp
|
||||
) VALUES (
|
||||
$1,
|
||||
$2,
|
||||
$3
|
||||
)
|
||||
`
|
||||
|
||||
type InsertDepositUpdateParams struct {
|
||||
DepositID []byte
|
||||
UpdateState string
|
||||
UpdateTimestamp time.Time
|
||||
}
|
||||
|
||||
func (q *Queries) InsertDepositUpdate(ctx context.Context, arg InsertDepositUpdateParams) error {
|
||||
_, err := q.db.ExecContext(ctx, insertDepositUpdate, arg.DepositID, arg.UpdateState, arg.UpdateTimestamp)
|
||||
return err
|
||||
}
|
||||
|
||||
const updateDeposit = `-- name: UpdateDeposit :exec
|
||||
UPDATE deposits
|
||||
SET
|
||||
tx_hash = $2,
|
||||
out_index = $3,
|
||||
confirmation_height = $4,
|
||||
expiry_sweep_txid = $5
|
||||
WHERE
|
||||
deposits.deposit_id = $1
|
||||
`
|
||||
|
||||
type UpdateDepositParams struct {
|
||||
DepositID []byte
|
||||
TxHash []byte
|
||||
OutIndex int32
|
||||
ConfirmationHeight int64
|
||||
ExpirySweepTxid []byte
|
||||
}
|
||||
|
||||
func (q *Queries) UpdateDeposit(ctx context.Context, arg UpdateDepositParams) error {
|
||||
_, err := q.db.ExecContext(ctx, updateDeposit,
|
||||
arg.DepositID,
|
||||
arg.TxHash,
|
||||
arg.OutIndex,
|
||||
arg.ConfirmationHeight,
|
||||
arg.ExpirySweepTxid,
|
||||
)
|
||||
return err
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue