feat: add more migration and queries

This commit is contained in:
Gaze
2024-06-06 16:46:25 +07:00
parent ce11033919
commit f3c6180c17
2 changed files with 24 additions and 4 deletions

View File

@@ -53,6 +53,7 @@ CREATE TABLE IF NOT EXISTS "brc20_tick_entry_states" (
CREATE TABLE IF NOT EXISTS "brc20_deploy_events" (
"id" BIGSERIAL PRIMARY KEY,
"inscription_id" TEXT NOT NULL,
"inscription_number" BIGINT NOT NULL,
"tick" TEXT NOT NULL, -- lowercase of original_tick
"original_tick" TEXT NOT NULL,
"tx_hash" TEXT NOT NULL,
@@ -71,6 +72,7 @@ CREATE INDEX IF NOT EXISTS brc20_deploy_events_block_height_idx ON "brc20_deploy
CREATE TABLE IF NOT EXISTS "brc20_mint_events" (
"id" BIGSERIAL PRIMARY KEY,
"inscription_id" TEXT NOT NULL,
"inscription_number" BIGINT NOT NULL,
"tick" TEXT NOT NULL, -- lowercase of original_tick
"original_tick" TEXT NOT NULL,
"tx_hash" TEXT NOT NULL,
@@ -87,6 +89,7 @@ CREATE INDEX IF NOT EXISTS brc20_mint_events_block_height_idx ON "brc20_mint_eve
CREATE TABLE IF NOT EXISTS "brc20_transfer_events" (
"id" BIGSERIAL PRIMARY KEY,
"inscription_id" TEXT NOT NULL,
"inscription_number" BIGINT NOT NULL,
"tick" TEXT NOT NULL, -- lowercase of original_tick
"original_tick" TEXT NOT NULL,
"tx_hash" TEXT NOT NULL,
@@ -95,7 +98,9 @@ CREATE TABLE IF NOT EXISTS "brc20_transfer_events" (
"timestamp" TIMESTAMP NOT NULL,
"from_pkscript" TEXT, -- if null, it's inscribe transfer. Otherwise, it's transfer transfer
"from_satpoint" TEXT,
"to_pkscript" TEXT NOT NULL,
"to_satpoint" TEXT NOT NULL,
"amount" DECIMAL NOT NULL
);
CREATE INDEX IF NOT EXISTS brc20_transfer_events_block_height_idx ON "brc20_transfer_events" USING BTREE ("block_height");

View File

@@ -26,12 +26,27 @@ SELECT * FROM "brc20_inscription_entries"
LEFT JOIN "states" ON "brc20_inscription_entries"."id" = "states"."id"
WHERE "brc20_inscription_entries"."id" = ANY(@inscription_ids::text[]);
-- name: GetTickEntriesByTicks :many
WITH "states" AS (
-- select latest state
SELECT DISTINCT ON ("tick") * FROM "brc20_tick_entry_states" WHERE "tick" = ANY(@ticks::text[]) ORDER BY "tick", "block_height" DESC
)
SELECT * FROM "brc20_tick_entries"
LEFT JOIN "states" ON "brc20_tick_entries"."tick" = "states"."tick"
WHERE "brc20_tick_entries"."tick" = ANY(@ticks::text[]);
-- name: CreateIndexedBlock :exec
INSERT INTO "brc20_indexed_blocks" ("height", "hash", "event_hash", "cumulative_event_hash") VALUES ($1, $2, $3, $4);
-- name: CreateProcessorStats :exec
INSERT INTO "brc20_processor_stats" ("block_height", "cursed_inscription_count", "blessed_inscription_count", "lost_sats") VALUES ($1, $2, $3, $4);
-- name: CreateTickEntries :batchexec
INSERT INTO "brc20_tick_entries" ("tick", "original_tick", "total_supply", "decimals", "limit_per_mint", "is_self_mint", "deploy_inscription_id", "created_at", "created_at_height") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9);
-- name: CreateTickEntryStates :batchexec
INSERT INTO "brc20_tick_entry_states" ("tick", "block_height", "minted_amount", "burned_amount", "completed_at", "completed_at_height") VALUES ($1, $2, $3, $4, $5, $6);
-- name: CreateInscriptionEntries :batchexec
INSERT INTO "brc20_inscription_entries" ("id", "number", "sequence_number", "delegate", "metadata", "metaprotocol", "parents", "pointer", "content", "content_encoding", "content_type", "cursed", "cursed_for_brc20", "created_at", "created_at_height") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15);
@@ -47,11 +62,11 @@ DELETE FROM "brc20_indexed_blocks" WHERE "height" >= $1;
-- name: DeleteProcessorStatsSinceHeight :exec
DELETE FROM "brc20_processor_stats" WHERE "block_height" >= $1;
-- name: DeleteTicksSinceHeight :exec
DELETE FROM "brc20_ticks" WHERE "created_at_height" >= $1;
-- name: DeleteTickEntriesSinceHeight :exec
DELETE FROM "brc20_tick_entries" WHERE "created_at_height" >= $1;
-- name: DeleteTickStatesSinceHeight :exec
DELETE FROM "brc20_tick_states" WHERE "block_height" >= $1;
-- name: DeleteTickEntryStatesSinceHeight :exec
DELETE FROM "brc20_tick_entry_states" WHERE "block_height" >= $1;
-- name: DeleteDeployEventsSinceHeight :exec
DELETE FROM "brc20_deploy_events" WHERE "block_height" >= $1;