Skip to content

Commit

Permalink
[#1951] return isScriptBased flag from BE for listDReps and getDRepInfo
Browse files Browse the repository at this point in the history
  • Loading branch information
j-dyczka committed Oct 17, 2024
1 parent 8616572 commit d9270a7
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 9 deletions.
10 changes: 10 additions & 0 deletions govtool/backend/sql/get-drep-info.sql
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ LatestRegistrationEntry AS (
drep_registration.tx_id DESC
LIMIT 1
),
IsScriptHash AS (
SELECT
drep_hash.has_script AS value
FROM
drep_hash
WHERE
drep_hash.raw = DRepId.raw
),
IsRegisteredAsDRep AS (
SELECT
(LatestRegistrationEntry.deposit IS NULL
Expand Down Expand Up @@ -165,6 +173,7 @@ SoleVoterRetire AS (
LIMIT 1
)
SELECT
IsScriptHash.value,
IsRegisteredAsDRep.value,
WasRegisteredAsDRep.value,
IsRegisteredAsSoleVoter.value,
Expand Down Expand Up @@ -197,5 +206,6 @@ FROM
CROSS JOIN SoleVoterRegister
CROSS JOIN SoleVoterRetire
CROSS JOIN LatestRegistrationEntry
CROSS JOIN IsScriptHash
LEFT JOIN off_chain_vote_data ON off_chain_vote_data.voting_anchor_id = LatestRegistrationEntry.voting_anchor_id
LEFT JOIN off_chain_vote_drep_data ON off_chain_vote_drep_data.off_chain_vote_data_id = off_chain_vote_data.id
2 changes: 2 additions & 0 deletions govtool/backend/sql/list-dreps.sql
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ DRepActivity AS (
SELECT
encode(dh.raw, 'hex'),
dh.view,
dh.has_script,
va.url,
encode(va.data_hash, 'hex'),
dr_deposit.deposit,
Expand Down Expand Up @@ -130,6 +131,7 @@ GROUP BY
dh.raw,
second_to_newest_drep_registration.voting_anchor_id,
dh.view,
dh.has_script,
va.url,
va.data_hash,
dr_deposit.deposit,
Expand Down
6 changes: 4 additions & 2 deletions govtool/backend/src/VVA/API.hs
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,8 @@ mapDRepStatus Types.Inactive = Inactive
drepRegistrationToDrep :: Types.DRepRegistration -> DRep
drepRegistrationToDrep Types.DRepRegistration {..} =
DRep
{ dRepDrepId = DRepHash dRepRegistrationDRepHash,
{ dRepIsScriptBased = dRepRegistrationIsScriptBased,
dRepDrepId = DRepHash dRepRegistrationDRepHash,
dRepView = dRepRegistrationView,
dRepUrl = dRepRegistrationUrl,
dRepMetadataHash = dRepRegistrationDataHash,
Expand Down Expand Up @@ -286,7 +287,8 @@ drepInfo (unHexText -> dRepId) = do
CacheEnv {dRepInfoCache} <- asks vvaCache
Types.DRepInfo {..} <- cacheRequest dRepInfoCache dRepId $ DRep.getDRepInfo dRepId
return $ DRepInfoResponse
{ dRepInfoResponseIsRegisteredAsDRep = dRepInfoIsRegisteredAsDRep
{ dRepInfoResponseIsScriptBased = dRepInfoIsScriptBased
, dRepInfoResponseIsRegisteredAsDRep = dRepInfoIsRegisteredAsDRep
, dRepInfoResponseWasRegisteredAsDRep = dRepInfoWasRegisteredAsDRep
, dRepInfoResponseIsRegisteredAsSoleVoter = dRepInfoIsRegisteredAsSoleVoter
, dRepInfoResponseWasRegisteredAsSoleVoter = dRepInfoWasRegisteredAsSoleVoter
Expand Down
6 changes: 4 additions & 2 deletions govtool/backend/src/VVA/API/Types.hs
Original file line number Diff line number Diff line change
Expand Up @@ -561,7 +561,8 @@ instance ToSchema VoteResponse where

data DRepInfoResponse
= DRepInfoResponse
{ dRepInfoResponseIsRegisteredAsDRep :: Bool
{ dRepInfoResponseIsScriptBased :: Bool
, dRepInfoResponseIsRegisteredAsDRep :: Bool
, dRepInfoResponseWasRegisteredAsDRep :: Bool
, dRepInfoResponseIsRegisteredAsSoleVoter :: Bool
, dRepInfoResponseWasRegisteredAsSoleVoter :: Bool
Expand Down Expand Up @@ -758,7 +759,8 @@ instance ToSchema DRepType where

data DRep
= DRep
{ dRepDrepId :: DRepHash
{ dRepIsScriptBased :: Bool
, dRepDrepId :: DRepHash
, dRepView :: Text
, dRepUrl :: Maybe Text
, dRepMetadataHash :: Maybe Text
Expand Down
11 changes: 7 additions & 4 deletions govtool/backend/src/VVA/DRep.hs
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,10 @@ listDReps = withPool $ \conn -> do
results <- liftIO $ SQL.query_ conn listDRepsSql
timeZone <- liftIO getCurrentTimeZone
return
[ DRepRegistration drepHash drepView url dataHash (floor @Scientific deposit) votingPower status drepType txHash (localTimeToUTC timeZone date) metadataError paymentAddress givenName objectives motivations qualifications imageUrl imageHash
[ DRepRegistration drepHash drepView isScriptBased url dataHash (floor @Scientific deposit) votingPower status drepType txHash (localTimeToUTC timeZone date) metadataError paymentAddress givenName objectives motivations qualifications imageUrl imageHash
| ( drepHash
, drepView
, isScriptBased
, url
, dataHash
, deposit
Expand Down Expand Up @@ -132,7 +133,8 @@ getDRepInfo
getDRepInfo drepId = withPool $ \conn -> do
result <- liftIO $ SQL.query conn getDRepInfoSql (SQL.Only drepId)
case result of
[ ( isRegisteredAsDRep
[ ( isScriptBased
, isRegisteredAsDRep
, wasRegisteredAsDRep
, isRegisteredAsSoleVoter
, wasRegisteredAsSoleVoter
Expand All @@ -153,7 +155,8 @@ getDRepInfo drepId = withPool $ \conn -> do
, imageHash
)] ->
return $ DRepInfo
{ dRepInfoIsRegisteredAsDRep = fromMaybe False isRegisteredAsDRep
{ dRepInfoIsScriptBased = isScriptBased
, dRepInfoIsRegisteredAsDRep = fromMaybe False isRegisteredAsDRep
, dRepInfoWasRegisteredAsDRep = fromMaybe False wasRegisteredAsDRep
, dRepInfoIsRegisteredAsSoleVoter = fromMaybe False isRegisteredAsSoleVoter
, dRepInfoWasRegisteredAsSoleVoter = fromMaybe False wasRegisteredAsSoleVoter
Expand All @@ -173,4 +176,4 @@ getDRepInfo drepId = withPool $ \conn -> do
, dRepInfoImageUrl = imageUrl
, dRepInfoImageHash = imageHash
}
[] -> return $ DRepInfo False False False False Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing
[] -> return $ DRepInfo False False False False False Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing
4 changes: 3 additions & 1 deletion govtool/backend/src/VVA/Types.hs
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@ data Vote

data DRepInfo
= DRepInfo
{ dRepInfoIsRegisteredAsDRep :: Bool
{ dRepInfoIsScriptBased :: Bool
, dRepInfoIsRegisteredAsDRep :: Bool
, dRepInfoWasRegisteredAsDRep :: Bool
, dRepInfoIsRegisteredAsSoleVoter :: Bool
, dRepInfoWasRegisteredAsSoleVoter :: Bool
Expand Down Expand Up @@ -101,6 +102,7 @@ data DRepRegistration
= DRepRegistration
{ dRepRegistrationDRepHash :: Text
, dRepRegistrationView :: Text
, dRepRegistrationIsScriptBased :: Bool
, dRepRegistrationUrl :: Maybe Text
, dRepRegistrationDataHash :: Maybe Text
, dRepRegistrationDeposit :: Integer
Expand Down

0 comments on commit d9270a7

Please sign in to comment.