@@ -996,12 +996,13 @@ runQueryStakeAddressInfoCmd
996
996
=> Cmd. QueryStakeAddressInfoCmdArgs
997
997
-> ExceptT QueryCmdError IO ()
998
998
runQueryStakeAddressInfoCmd
999
- cmd @ Cmd. QueryStakeAddressInfoCmdArgs
999
+ Cmd. QueryStakeAddressInfoCmdArgs
1000
1000
{ Cmd. commons =
1001
- Cmd. QueryCommons
1001
+ commons @ Cmd. QueryCommons
1002
1002
{ Cmd. nodeConnInfo
1003
1003
, Cmd. target
1004
1004
}
1005
+ , Cmd. addr
1005
1006
, Cmd. outputFormat
1006
1007
, Cmd. mOutFile
1007
1008
} = do
@@ -1012,11 +1013,11 @@ runQueryStakeAddressInfoCmd
1012
1013
& onLeft (left . QueryCmdUnsupportedNtcVersion )
1013
1014
sbe <- requireShelleyBasedEra era & onNothing (left QueryCmdByronEra )
1014
1015
1015
- said <- callQueryStakeAddressInfoCmd cmd
1016
+ said <- getQueryStakeAddressInfo commons addr
1016
1017
1017
1018
writeStakeAddressInfo sbe said outputFormat mOutFile
1018
1019
1019
- -- | Container for data returned by 'callQueryStakeAddressInfoCmd ' where:
1020
+ -- | Container for data returned by 'getQueryStakeAddressInfo ' where:
1020
1021
data StakeAddressInfoData = StakeAddressInfoData
1021
1022
{ rewards :: DelegationsAndRewards
1022
1023
-- ^ Rewards: map of stake addresses to pool ID and rewards balance.
@@ -1029,19 +1030,16 @@ data StakeAddressInfoData = StakeAddressInfoData
1029
1030
-- ^ Delegatees: map of stake addresses and their vote delegation preference.
1030
1031
}
1031
1032
1032
- callQueryStakeAddressInfoCmd
1033
- :: ()
1034
- => Cmd. QueryStakeAddressInfoCmdArgs
1033
+ getQueryStakeAddressInfo
1034
+ :: Cmd. QueryCommons
1035
+ -> StakeAddress
1035
1036
-> ExceptT QueryCmdError IO StakeAddressInfoData
1036
- callQueryStakeAddressInfoCmd
1037
- Cmd. QueryStakeAddressInfoCmdArgs
1038
- { Cmd. commons =
1039
- Cmd. QueryCommons
1040
- { Cmd. nodeConnInfo = nodeConnInfo@ LocalNodeConnectInfo {localNodeNetworkId = networkId}
1041
- , Cmd. target
1042
- }
1043
- , Cmd. addr = StakeAddress _ addr
1044
- } =
1037
+ getQueryStakeAddressInfo
1038
+ Cmd. QueryCommons
1039
+ { Cmd. nodeConnInfo = nodeConnInfo@ LocalNodeConnectInfo {localNodeNetworkId = networkId}
1040
+ , Cmd. target
1041
+ }
1042
+ (StakeAddress _ addr) =
1045
1043
do
1046
1044
lift $ executeLocalStateQueryExpr nodeConnInfo target $ runExceptT $ do
1047
1045
AnyCardanoEra era <- easyRunQueryCurrentEra
@@ -1850,19 +1848,11 @@ runQuerySPOStakeDistribution
1850
1848
| (keyHash, addr) <- Map. toList $ L. psStakePoolParams poolState
1851
1849
]
1852
1850
1853
- mkQueryStakeAddressInfoCmdArgs addr =
1854
- Cmd. QueryStakeAddressInfoCmdArgs
1855
- { Cmd. commons = commons
1856
- , addr
1857
- , outputFormat
1858
- , mOutFile -- unused anyway. TODO tighten this by removing the field.
1859
- }
1860
-
1861
1851
spoToDelegatee <-
1862
1852
Map. fromList . concat
1863
1853
<$> traverse
1864
1854
( \ stakeAddr -> do
1865
- info <- callQueryStakeAddressInfoCmd $ mkQueryStakeAddressInfoCmdArgs stakeAddr
1855
+ info <- getQueryStakeAddressInfo commons stakeAddr
1866
1856
return $
1867
1857
[ (spo, delegatee)
1868
1858
| (Just spo, delegatee) <-
@@ -1871,15 +1861,26 @@ runQuerySPOStakeDistribution
1871
1861
)
1872
1862
(Map. keys addressesAndRewards)
1873
1863
1874
- let toWrite =
1864
+ let json =
1875
1865
[ ( spo
1876
1866
, coin
1877
1867
, Map. lookup spo spoToDelegatee
1878
1868
)
1879
1869
| (spo, coin) <- Map. assocs spoStakeDistribution
1880
1870
]
1881
1871
1882
- writeOutput mOutFile toWrite
1872
+ output =
1873
+ outputFormat
1874
+ & ( id
1875
+ . Vary. on (\ FormatJson -> Json. encodeJson)
1876
+ . Vary. on (\ FormatYaml -> Json. encodeYaml)
1877
+ $ Vary. exhaustiveCase
1878
+ )
1879
+ $ json
1880
+
1881
+ firstExceptT QueryCmdWriteFileError
1882
+ . newExceptT
1883
+ $ writeLazyByteStringOutput mOutFile output
1883
1884
1884
1885
runQueryCommitteeMembersState
1885
1886
:: Cmd. QueryCommitteeMembersStateCmdArgs era
0 commit comments