Skip to content

Commit

Permalink
show markets before first state event
Browse files Browse the repository at this point in the history
  • Loading branch information
CRBl69 committed Jun 4, 2024
1 parent dee09ce commit dad6061
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 9 deletions.
1 change: 1 addition & 0 deletions cfg/cspell-dictionary.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ mdformat
mosquitto
mqtt
mqttoptions
noqa
notif
pgrep
plpgsql
Expand Down
28 changes: 19 additions & 9 deletions sql_extensions/migrations/special-queries.sql
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
-- LATEST EVENTS {{{
-- LATEST STATE {{{

-- Create a table containing the latest state for each market and auto update
-- using triggers.
Expand Down Expand Up @@ -170,24 +170,34 @@ CREATE INDEX inbox_latest_state_by_daily_volume ON inbox_volume (

-- }}}

-- noqa: disable=ST06
CREATE VIEW market_data AS
SELECT
state.market_id,
-- General data
(registration.data -> 'market_metadata' ->> 'market_id')::NUMERIC AS market_id,
(registration.data -> 'market_metadata' ->> 'emoji_bytes') AS emoji_bytes,
(registration.data -> 'market_metadata' ->> 'market_address') AS market_address,
-- Latest state data
state.transaction_version,
volume.all_time_volume,
volume.daily_volume,
(state.data -> 'instantaneous_stats' ->> 'market_cap')::NUMERIC AS market_cap,
(state.data -> 'state_metadata' ->> 'bump_time')::NUMERIC AS bump_time,
(state.data -> 'cumulative_stats' ->> 'n_swaps')::NUMERIC AS n_swaps,
(state.data -> 'cumulative_stats' ->> 'n_chat_messages')::NUMERIC AS n_chat_messages,
(state.data -> 'last_swap' ->> 'avg_execution_price_q64')::NUMERIC AS avg_execution_price_q64,
(state.data ->> 'lp_coin_supply')::NUMERIC AS lp_coin_supply,
(state.data -> 'market_metadata' ->> 'emoji_bytes') AS emoji_bytes,
(state.data -> 'market_metadata' ->> 'market_address') AS market_address,
state.data -> 'clamm_virtual_reserves' AS clamm_virtual_reserves,
state.data -> 'cpamm_real_reserves' AS cpamm_real_reserves
FROM inbox_latest_state AS state, inbox_volume AS volume
WHERE state.market_id = volume.market_id;
state.data -> 'cpamm_real_reserves' AS cpamm_real_reserves,
-- Volume data
volume.all_time_volume,
volume.daily_volume
FROM (
SELECT data FROM inbox_events WHERE event_name = 'emojicoin_dot_fun::MarketRegistration'
) AS registration
LEFT JOIN inbox_latest_state AS state
ON (registration.data -> 'market_metadata' ->> 'market_id')::NUMERIC = state.market_id
LEFT JOIN inbox_volume AS volume
ON (registration.data -> 'market_metadata' ->> 'market_id')::NUMERIC = volume.market_id;
-- noqa: disable=ST06

CREATE INDEX inbox_periodic_state ON inbox_events (
((data -> 'market_metadata' ->> 'market_id')::NUMERIC),
Expand Down

0 comments on commit dad6061

Please sign in to comment.