Skip to content

Commit

Permalink
Implement governance indexing logic
Browse files Browse the repository at this point in the history
Co-authored-by: plaidfinch <[email protected]>
  • Loading branch information
cronokirby and plaidfinch committed Jul 26, 2024
1 parent 6255bb2 commit fc7417c
Show file tree
Hide file tree
Showing 6 changed files with 470 additions and 0 deletions.
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions crates/bin/pindexer/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ anyhow = {workspace = true}
clap = {workspace = true}
cometindex = {workspace = true}
num-bigint = { version = "0.4" }
penumbra-governance = {workspace = true}
penumbra-shielded-pool = {workspace = true, default-features = false}
penumbra-stake = {workspace = true, default-features = false}
penumbra-app = {workspace = true, default-features = false}
Expand Down
55 changes: 55 additions & 0 deletions crates/bin/pindexer/src/governance/governance.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
CREATE TABLE IF NOT EXISTS governance_proposals (
proposal_id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
description TEXT NOT NULL,
kind JSONB NOT NULL,
payload JSONB,
start_block_height BIGINT NOT NULL,
end_block_height BIGINT NOT NULL,
state JSONB NOT NULL,
proposal_deposit_amount BIGINT NOT NULL,
withdrawn BOOLEAN DEFAULT FALSE,
withdrawal_reason TEXT
);

CREATE INDEX ON governance_proposals (title text_pattern_ops);
CREATE INDEX ON governance_proposals (kind);
CREATE INDEX ON governance_proposals (start_block_height DESC);
CREATE INDEX ON governance_proposals (end_block_height DESC);
CREATE INDEX ON governance_proposals (state);
CREATE INDEX ON governance_proposals (withdrawn);


CREATE TABLE IF NOT EXISTS governance_validator_votes (
id SERIAL PRIMARY KEY,
proposal_id INTEGER NOT NULL,
identity_key TEXT NOT NULL,
vote JSONB NOT NULL,
voting_power BIGINT NOT NULL,
block_height BIGINT NOT NULL,
FOREIGN KEY (proposal_id) REFERENCES governance_proposals(proposal_id)
);

CREATE INDEX ON governance_validator_votes (proposal_id);
CREATE INDEX ON governance_validator_votes (identity_key);
CREATE INDEX ON governance_validator_votes (vote);
CREATE INDEX ON governance_validator_votes (voting_power);
CREATE INDEX ON governance_validator_votes (block_height);


CREATE TABLE IF NOT EXISTS governance_delegator_votes (
id SERIAL PRIMARY KEY,
proposal_id INTEGER NOT NULL,
identity_key TEXT NOT NULL,
vote JSONB NOT NULL,
voting_power BIGINT NOT NULL,
block_height BIGINT NOT NULL,
FOREIGN KEY (proposal_id) REFERENCES governance_proposals(proposal_id)
);

CREATE INDEX ON governance_delegator_votes (proposal_id);
CREATE INDEX ON governance_delegator_votes (identity_key);
CREATE INDEX ON governance_delegator_votes (vote);
CREATE INDEX ON governance_delegator_votes (voting_power);
CREATE INDEX ON governance_delegator_votes (block_height);

Loading

0 comments on commit fc7417c

Please sign in to comment.