Skip to content

Commit

Permalink
feat: update stake address info function for blockfrost provider to g…
Browse files Browse the repository at this point in the history
…ive details even for 404

Related to #294
  • Loading branch information
sourabhxyz committed Apr 26, 2024
1 parent 5f857dc commit 28e9059
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions src/GeniusYield/Providers/Blockfrost.hs
Original file line number Diff line number Diff line change
Expand Up @@ -453,11 +453,15 @@ blockfrostLookupDatum p dh = do

blockfrostStakeAddressInfo :: Blockfrost.Project -> GYStakeAddress -> IO GYStakeAddressInfo
blockfrostStakeAddressInfo p saddr = do
accInfo <- Blockfrost.runBlockfrost p (Blockfrost.getAccount (Blockfrost.mkAddress $ stakeAddressToText saddr)) >>= handleBlockfrostError "Account"
pure $ GYStakeAddressInfo
{ gyStakeAddressInfoDelegatedPool = Blockfrost._accountInfoPoolId accInfo >>= stakePoolIdFromTextMaybe . Blockfrost.unPoolId
, gyStakeAddressInfoAvailableRewards = fromInteger $ lovelacesToInteger $ Blockfrost._accountInfoWithdrawableAmount accInfo
}
Blockfrost.runBlockfrost p (Blockfrost.getAccount (Blockfrost.mkAddress $ stakeAddressToText saddr)) >>= handler
where
-- This particular error is fine.
handler (Left Blockfrost.BlockfrostNotFound) = pure $ GYStakeAddressInfo Nothing 0
handler other = handleBlockfrostError "Account" $ other <&> \accInfo ->
GYStakeAddressInfo
{ gyStakeAddressInfoDelegatedPool = Blockfrost._accountInfoPoolId accInfo >>= stakePoolIdFromTextMaybe . Blockfrost.unPoolId
, gyStakeAddressInfoAvailableRewards = fromInteger $ lovelacesToInteger $ Blockfrost._accountInfoWithdrawableAmount accInfo
}

-------------------------------------------------------------------------------
-- Auxiliary functions
Expand Down

0 comments on commit 28e9059

Please sign in to comment.