graph/db: add v2 policy fields to database layer

Extend channel policy queries and structs to support v2-specific fields:

- Add BlockHeight field to track the block height for v2 policy updates.
- Add DisableFlags field for v2 channel disable messages.

Both fields are nullable (sql.NullInt64/Int16) to maintain backwards
compatibility with v1 channels. The fields are initialized as null in
updateChanEdgePolicy and threaded through all policy-related queries
(GetChannelBySCIDWithPolicies, ListChannelsByNodeID, UpsertEdgePolicy,
etc.) and the extractChannelPolicies helper.

This commit includes both the hand-written SQL query updates and the
corresponding sqlc-generated Go code.
This commit is contained in:
Elle Mouton committed 2026-02-13 07:21:23 +02:00
1 parent 6328c4d897
commit 0aa93c93e7
3 files changed
+214 -24

No files matched your search

+38
View File
@@ -3517,6 +3517,8 @@ func updateChanEdgePolicy(ctx context.Context, tx SQLQueries,
InboundBaseFeeMsat: inboundBase,
InboundFeeRateMilliMsat: inboundRate,
Signature: edge.SigBytes,
BlockHeight: sql.NullInt64{},
DisableFlags: sql.NullInt16{},
})
if err != nil {
return node1Pub, node2Pub, isNode1,
@@ -4830,6 +4832,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
Disabled: r.Policy1Disabled,
MessageFlags: r.Policy1MessageFlags,
ChannelFlags: r.Policy1ChannelFlags,
BlockHeight: r.Policy1BlockHeight,
DisableFlags: r.Policy1DisableFlags,
}
}
if r.Policy2Timelock.Valid {
@@ -4844,6 +4848,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
Disabled: r.Policy2Disabled,
MessageFlags: r.Policy2MessageFlags,
ChannelFlags: r.Policy2ChannelFlags,
BlockHeight: r.Policy2BlockHeight,
DisableFlags: r.Policy2DisableFlags,
}
}
@@ -4868,6 +4874,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy1MessageFlags,
ChannelFlags: r.Policy1ChannelFlags,
Signature: r.Policy1Signature,
BlockHeight: r.Policy1BlockHeight,
DisableFlags: r.Policy1DisableFlags,
}
}
if r.Policy2ID.Valid {
@@ -4888,6 +4896,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy2MessageFlags,
ChannelFlags: r.Policy2ChannelFlags,
Signature: r.Policy2Signature,
BlockHeight: r.Policy2BlockHeight,
DisableFlags: r.Policy2DisableFlags,
}
}
@@ -4912,6 +4922,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy1MessageFlags,
ChannelFlags: r.Policy1ChannelFlags,
Signature: r.Policy1Signature,
BlockHeight: r.Policy1BlockHeight,
DisableFlags: r.Policy1DisableFlags,
}
}
if r.Policy2ID.Valid {
@@ -4932,6 +4944,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy2MessageFlags,
ChannelFlags: r.Policy2ChannelFlags,
Signature: r.Policy2Signature,
BlockHeight: r.Policy2BlockHeight,
DisableFlags: r.Policy2DisableFlags,
}
}
@@ -4956,6 +4970,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy1MessageFlags,
ChannelFlags: r.Policy1ChannelFlags,
Signature: r.Policy1Signature,
BlockHeight: r.Policy1BlockHeight,
DisableFlags: r.Policy1DisableFlags,
}
}
if r.Policy2ID.Valid {
@@ -4976,6 +4992,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy2MessageFlags,
ChannelFlags: r.Policy2ChannelFlags,
Signature: r.Policy2Signature,
BlockHeight: r.Policy2BlockHeight,
DisableFlags: r.Policy2DisableFlags,
}
}
@@ -5000,6 +5018,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy1MessageFlags,
ChannelFlags: r.Policy1ChannelFlags,
Signature: r.Policy1Signature,
BlockHeight: r.Policy1BlockHeight,
DisableFlags: r.Policy1DisableFlags,
}
}
if r.Policy2ID.Valid {
@@ -5020,6 +5040,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy2MessageFlags,
ChannelFlags: r.Policy2ChannelFlags,
Signature: r.Policy2Signature,
BlockHeight: r.Policy2BlockHeight,
DisableFlags: r.Policy2DisableFlags,
}
}
@@ -5044,6 +5066,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy1MessageFlags,
ChannelFlags: r.Policy1ChannelFlags,
Signature: r.Policy1Signature,
BlockHeight: r.Policy1BlockHeight,
DisableFlags: r.Policy1DisableFlags,
}
}
if r.Policy2ID.Valid {
@@ -5064,6 +5088,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy2MessageFlags,
ChannelFlags: r.Policy2ChannelFlags,
Signature: r.Policy2Signature,
BlockHeight: r.Policy2BlockHeight,
DisableFlags: r.Policy2DisableFlags,
}
}
@@ -5088,6 +5114,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy1MessageFlags,
ChannelFlags: r.Policy1ChannelFlags,
Signature: r.Policy1Signature,
BlockHeight: r.Policy1BlockHeight,
DisableFlags: r.Policy1DisableFlags,
}
}
if r.Policy2ID.Valid {
@@ -5108,6 +5136,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy2MessageFlags,
ChannelFlags: r.Policy2ChannelFlags,
Signature: r.Policy2Signature,
BlockHeight: r.Policy2BlockHeight,
DisableFlags: r.Policy2DisableFlags,
}
}
@@ -5132,6 +5162,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy1MessageFlags,
ChannelFlags: r.Policy1ChannelFlags,
Signature: r.Policy1Signature,
BlockHeight: r.Policy1BlockHeight,
DisableFlags: r.Policy1DisableFlags,
}
}
if r.Policy2ID.Valid {
@@ -5152,6 +5184,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy2MessageFlags,
ChannelFlags: r.Policy2ChannelFlags,
Signature: r.Policy2Signature,
BlockHeight: r.Policy2BlockHeight,
DisableFlags: r.Policy2DisableFlags,
}
}
@@ -5176,6 +5210,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy1MessageFlags,
ChannelFlags: r.Policy1ChannelFlags,
Signature: r.Policy1Signature,
BlockHeight: r.Policy1BlockHeight,
DisableFlags: r.Policy1DisableFlags,
}
}
if r.Policy2ID.Valid {
@@ -5196,6 +5232,8 @@ func extractChannelPolicies(row any) (*sqlc.GraphChannelPolicy,
MessageFlags: r.Policy2MessageFlags,
ChannelFlags: r.Policy2ChannelFlags,
Signature: r.Policy2Signature,
BlockHeight: r.Policy2BlockHeight,
DisableFlags: r.Policy2DisableFlags,
}
}