mirror of
https://github.com/lightninglabs/loop.git
synced 2026-08-13 12:33:03 +02:00
loopdb: add helper methods to update swap costs
This commit adds the necessary sqlc code and SwapStore function to update swap costs for all swaps in one transaction.
This commit is contained in:
parent
08aa4db35d
commit
4f5c806ba5
8 changed files with 245 additions and 0 deletions
|
|
@ -18,6 +18,7 @@ type Querier interface {
|
|||
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)
|
||||
GetLoopInSwap(ctx context.Context, swapHash []byte) (GetLoopInSwapRow, error)
|
||||
GetLoopInSwaps(ctx context.Context) ([]GetLoopInSwapsRow, error)
|
||||
GetLoopOutSwap(ctx context.Context, swapHash []byte) (GetLoopOutSwapRow, error)
|
||||
|
|
@ -38,6 +39,7 @@ type Querier interface {
|
|||
InsertReservationUpdate(ctx context.Context, arg InsertReservationUpdateParams) error
|
||||
InsertSwap(ctx context.Context, arg InsertSwapParams) error
|
||||
InsertSwapUpdate(ctx context.Context, arg InsertSwapUpdateParams) error
|
||||
OverrideSwapCosts(ctx context.Context, arg OverrideSwapCostsParams) error
|
||||
UpdateBatch(ctx context.Context, arg UpdateBatchParams) error
|
||||
UpdateInstantOut(ctx context.Context, arg UpdateInstantOutParams) error
|
||||
UpdateReservation(ctx context.Context, arg UpdateReservationParams) error
|
||||
|
|
|
|||
|
|
@ -133,3 +133,19 @@ INSERT INTO htlc_keys(
|
|||
) VALUES (
|
||||
$1, $2, $3, $4, $5, $6, $7
|
||||
);
|
||||
|
||||
-- name: GetLastUpdateID :one
|
||||
SELECT id
|
||||
FROM swap_updates
|
||||
WHERE swap_hash = $1
|
||||
ORDER BY update_timestamp DESC
|
||||
LIMIT 1;
|
||||
|
||||
-- name: OverrideSwapCosts :exec
|
||||
UPDATE swap_updates
|
||||
SET
|
||||
server_cost = $2,
|
||||
onchain_cost = $3,
|
||||
offchain_cost = $4
|
||||
WHERE id = $1;
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,21 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
const getLastUpdateID = `-- name: GetLastUpdateID :one
|
||||
SELECT id
|
||||
FROM swap_updates
|
||||
WHERE swap_hash = $1
|
||||
ORDER BY update_timestamp DESC
|
||||
LIMIT 1
|
||||
`
|
||||
|
||||
func (q *Queries) GetLastUpdateID(ctx context.Context, swapHash []byte) (int32, error) {
|
||||
row := q.db.QueryRowContext(ctx, getLastUpdateID, swapHash)
|
||||
var id int32
|
||||
err := row.Scan(&id)
|
||||
return id, err
|
||||
}
|
||||
|
||||
const getLoopInSwap = `-- name: GetLoopInSwap :one
|
||||
SELECT
|
||||
swaps.id, swaps.swap_hash, swaps.preimage, swaps.initiation_time, swaps.amount_requested, swaps.cltv_expiry, swaps.max_miner_fee, swaps.max_swap_fee, swaps.initiation_height, swaps.protocol_version, swaps.label,
|
||||
|
|
@ -596,3 +611,29 @@ func (q *Queries) InsertSwapUpdate(ctx context.Context, arg InsertSwapUpdatePara
|
|||
)
|
||||
return err
|
||||
}
|
||||
|
||||
const overrideSwapCosts = `-- name: OverrideSwapCosts :exec
|
||||
UPDATE swap_updates
|
||||
SET
|
||||
server_cost = $2,
|
||||
onchain_cost = $3,
|
||||
offchain_cost = $4
|
||||
WHERE id = $1
|
||||
`
|
||||
|
||||
type OverrideSwapCostsParams struct {
|
||||
ID int32
|
||||
ServerCost int64
|
||||
OnchainCost int64
|
||||
OffchainCost int64
|
||||
}
|
||||
|
||||
func (q *Queries) OverrideSwapCosts(ctx context.Context, arg OverrideSwapCostsParams) error {
|
||||
_, err := q.db.ExecContext(ctx, overrideSwapCosts,
|
||||
arg.ID,
|
||||
arg.ServerCost,
|
||||
arg.OnchainCost,
|
||||
arg.OffchainCost,
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue