Skip to content

Commit b8bcc84

Browse files
committed
Move delegating pattern synonyms in the lib
1 parent 8160c11 commit b8bcc84

File tree

2 files changed

+48
-31
lines changed
  • lib
    • unit/test/unit/Cardano/Wallet/DB/Store/Delegations
    • wallet/src/Cardano/Wallet/Delegation

2 files changed

+48
-31
lines changed

lib/unit/test/unit/Cardano/Wallet/DB/Store/Delegations/StoreSpec.hs

+10-31
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,16 @@ import Cardano.Wallet.DB.Store.Delegations.Store
4040
( mkStoreDelegations
4141
)
4242
import Cardano.Wallet.Delegation.Model
43-
( Operation (..)
44-
, Status (..)
45-
, Transition (..)
43+
( Status (Inactive)
44+
, pattern Delegate
45+
, pattern DelegateAndVote
46+
, pattern Delegating
47+
, pattern DelegatingAndVoting
48+
, pattern Deregister'
49+
, pattern Register
50+
, pattern Registered
51+
, pattern Vote
52+
, pattern Voting
4653
, status
4754
)
4855
import Cardano.Wallet.Delegation.ModelSpec
@@ -112,34 +119,6 @@ conf =
112119
, genNewDRep = \xs -> arbitrary `suchThat` (not . (`elem` xs))
113120
}
114121

115-
pattern Register :: slot -> Operation slot drep pool
116-
pattern Register i = ApplyTransition (VoteAndDelegate Nothing Nothing) i
117-
118-
pattern Delegate :: pool -> slot -> Operation slot drep pool
119-
pattern Delegate p i = ApplyTransition (VoteAndDelegate Nothing (Just p)) i
120-
121-
pattern Vote :: drep -> slot -> Operation slot drep pool
122-
pattern Vote v i = ApplyTransition (VoteAndDelegate (Just v) Nothing) i
123-
124-
pattern Deregister' :: slot -> Operation slot drep pool
125-
pattern Deregister' i = ApplyTransition Deregister i
126-
127-
pattern DelegateAndVote :: pool -> drep -> slot -> Operation slot drep pool
128-
pattern DelegateAndVote p v i
129-
= ApplyTransition (VoteAndDelegate (Just v) (Just p)) i
130-
131-
pattern Registered :: Status drep pool
132-
pattern Registered = Active Nothing Nothing
133-
134-
pattern Delegating :: pool -> Status drep pool
135-
pattern Delegating p = Active Nothing (Just p)
136-
137-
pattern Voting :: drep -> Status drep pool
138-
pattern Voting v = Active (Just v) Nothing
139-
140-
pattern DelegatingAndVoting :: pool -> drep -> Status drep pool
141-
pattern DelegatingAndVoting p v = Active (Just v) (Just p)
142-
143122
units :: WalletProperty
144123
units = withInitializedWalletProp $ \_ runQ -> do
145124
[p0 :: PoolId, p1, _p2] <-

lib/wallet/src/Cardano/Wallet/Delegation/Model.hs

+38
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
{-# LANGUAGE PatternSynonyms #-}
12
{-# LANGUAGE TypeFamilies #-}
23

34
-- |
@@ -12,6 +13,15 @@ module Cardano.Wallet.Delegation.Model
1213
, Status (..)
1314
, History
1415
, status
16+
, pattern Register
17+
, pattern Delegate
18+
, pattern Vote
19+
, pattern Deregister'
20+
, pattern DelegateAndVote
21+
, pattern Registered
22+
, pattern Delegating
23+
, pattern Voting
24+
, pattern DelegatingAndVoting
1525
) where
1626

1727
import Prelude
@@ -84,3 +94,31 @@ cut op = fst . Map.spanAntitone op
8494
-- | Status of the delegation at a given slot.
8595
status :: Ord slot => slot -> Map slot (Status drep pool) -> Status drep pool
8696
status x = maybe Inactive snd . Map.lookupMax . cut (<= x)
97+
98+
pattern Register :: slot -> Operation slot drep pool
99+
pattern Register i = ApplyTransition (VoteAndDelegate Nothing Nothing) i
100+
101+
pattern Delegate :: pool -> slot -> Operation slot drep pool
102+
pattern Delegate p i = ApplyTransition (VoteAndDelegate Nothing (Just p)) i
103+
104+
pattern Vote :: drep -> slot -> Operation slot drep pool
105+
pattern Vote v i = ApplyTransition (VoteAndDelegate (Just v) Nothing) i
106+
107+
pattern Deregister' :: slot -> Operation slot drep pool
108+
pattern Deregister' i = ApplyTransition Deregister i
109+
110+
pattern DelegateAndVote :: pool -> drep -> slot -> Operation slot drep pool
111+
pattern DelegateAndVote p v i
112+
= ApplyTransition (VoteAndDelegate (Just v) (Just p)) i
113+
114+
pattern Registered :: Status drep pool
115+
pattern Registered = Active Nothing Nothing
116+
117+
pattern Delegating :: pool -> Status drep pool
118+
pattern Delegating p = Active Nothing (Just p)
119+
120+
pattern Voting :: drep -> Status drep pool
121+
pattern Voting v = Active (Just v) Nothing
122+
123+
pattern DelegatingAndVoting :: pool -> drep -> Status drep pool
124+
pattern DelegatingAndVoting p v = Active (Just v) (Just p)

0 commit comments

Comments
 (0)