Skip to content

Commit c8fa569

Browse files
committed
[RSC-154] Add check on ms address existence
1 parent 5058fb5 commit c8fa569

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

src/RSCoin/Notary/Storage.hs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import Control.Lens (Lens', at, makeLenses, to, use, uses,
2525
view, (%=), (%~), (&), (.=), (?=), (^.))
2626
import Control.Monad (forM_, unless, when, (<=<))
2727
import Control.Monad.Catch (MonadThrow (throwM))
28+
import Control.Monad.Extra (whenM, (||^))
2829

2930
import Data.Acid (Query, Update, liftQuery)
3031
import qualified Data.Foldable as F
@@ -203,6 +204,9 @@ allocateMSAddress
203204
throwM $ NEInvalidArguments "required number of signatures is greater then party size"
204205
unless (partyToAllocation argPartyAddress `HS.member` _allParties) $
205206
throwM $ NEInvalidArguments "party address not in set of addresses"
207+
whenM (uses addresses (M.member msAddr) ||^ uses allocationStrategyPool (M.member msAddr)) $
208+
throwM $ NEInvalidArguments $ sformat
209+
("ms address " % build % " already registered; please, regenerate new") msAddr
206210

207211
guardMaxAttemps partyAddr
208212

0 commit comments

Comments
 (0)