diff --git a/backend/src/api/explorer/channels.api.ts b/backend/src/api/explorer/channels.api.ts index 7235d44b6..56f2e4ac3 100644 --- a/backend/src/api/explorer/channels.api.ts +++ b/backend/src/api/explorer/channels.api.ts @@ -257,7 +257,8 @@ class ChannelsApi { let query = ` SELECT COALESCE(node2.alias, SUBSTRING(node2_public_key, 0, 20)) AS alias, COALESCE(node2.public_key, node2_public_key) AS public_key, channels.status, channels.node1_fee_rate, - channels.capacity, channels.short_id, channels.id, channels.closing_reason + channels.capacity, channels.short_id, channels.id, channels.closing_reason, + UNIX_TIMESTAMP(closing_date) as closing_date, UNIX_TIMESTAMP(channels.updated_at) as updated_at FROM channels LEFT JOIN nodes AS node2 ON node2.public_key = channels.node2_public_key WHERE node1_public_key = ? AND channels.status ${channelStatusFilter} @@ -268,7 +269,8 @@ class ChannelsApi { query = ` SELECT COALESCE(node1.alias, SUBSTRING(node1_public_key, 0, 20)) AS alias, COALESCE(node1.public_key, node1_public_key) AS public_key, channels.status, channels.node2_fee_rate, - channels.capacity, channels.short_id, channels.id, channels.closing_reason + channels.capacity, channels.short_id, channels.id, channels.closing_reason, + UNIX_TIMESTAMP(closing_date) as closing_date, UNIX_TIMESTAMP(channels.updated_at) as updated_at FROM channels LEFT JOIN nodes AS node1 ON node1.public_key = channels.node1_public_key WHERE node2_public_key = ? AND channels.status ${channelStatusFilter} @@ -277,7 +279,15 @@ class ChannelsApi { let allChannels = channelsFromNode.concat(channelsToNode); allChannels.sort((a, b) => { - return b.capacity - a.capacity; + if (status === 'closed') { + if (!b.closing_date && !a.closing_date) { + return (b.updated_at ?? 0) - (a.updated_at ?? 0); + } else { + return (b.closing_date ?? 0) - (a.closing_date ?? 0); + } + } else { + return b.capacity - a.capacity; + } }); if (index >= 0) { @@ -294,6 +304,7 @@ class ChannelsApi { channel = { status: row.status, closing_reason: row.closing_reason, + closing_date: row.closing_date, capacity: row.capacity ?? 0, short_id: row.short_id, id: row.id,