graph/db: add v2 fields to ChannelEdgePolicy model
Extend ChannelEdgePolicy to support v2 channel updates by adding: - Version field to track gossip protocol version (v1 or v2). - LastBlockHeight for v2's block-height-based timestamps. - SecondPeer flag to indicate which peer announced the policy in v2. - DisableFlags for v2-specific channel disable signaling. - ExtraSignedFields map for v2 extra signed TLV data. Add version-aware methods: - IsNode1() determines if the policy was announced by node_1, handling both v1 (via ChannelFlags direction bit) and v2 (via SecondPeer). - IsDisabled() checks disable status using ChannelFlags for v1 and DisableFlags for v2. - String() provides version-appropriate string representations. The new fields use zero values for v1 compatibility (Version defaults to GossipVersion1, LastBlockHeight to 0, SecondPeer to false). This lays the groundwork for v2 policy support; a subsequent commit will handle reading and writing these fields from/to the database.
This commit is contained in:
15 files changed
+105
-6
No files matched your search
@@ -380,9 +380,23 @@ func (c ChanUpdateDisableFlags) IsEnabled() bool {
|
||||
return c == 0
|
||||
}
|
||||
|
||||
// String returns the bitfield flags as a string.
|
||||
// String returns a human-readable representation of the disable flags.
|
||||
func (c ChanUpdateDisableFlags) String() string {
|
||||
return fmt.Sprintf("%08b", c)
|
||||
if c.IsEnabled() {
|
||||
return "Enabled"
|
||||
}
|
||||
|
||||
incoming := c.IncomingDisabled()
|
||||
outgoing := c.OutgoingDisabled()
|
||||
|
||||
switch {
|
||||
case incoming && outgoing:
|
||||
return "Disabled(incoming&outgoing)"
|
||||
case incoming:
|
||||
return "Disabled(incoming)"
|
||||
default:
|
||||
return "Disabled(outgoing)"
|
||||
}
|
||||
}
|
||||
|
||||
// Record returns the tlv record for the disable flags.
|
||||
|
||||
Reference in new issue
Block a user