@@ -17,7 +17,7 @@ import Core.Context
17
17
)
18
18
import Core.Types.Basic (RequestRefId , TokenId )
19
19
import Core.Types.Tx (TxHash , WithTxHash (WithTxHash ))
20
- import Core.Types.Wallet (Wallet )
20
+ import Core.Types.Wallet (Wallet ( .. ) )
21
21
import Data.Functor ((<&>) )
22
22
import Data.List (find )
23
23
import Lib.JSON.Canonical.Extra (object , (.=) )
@@ -83,6 +83,7 @@ data TokenUpdateFailure
83
83
| TokenUpdateRequestValidations
84
84
[TokenUpdateRequestValidation ]
85
85
| TokenUpdateConfigNotFound
86
+ | TokenUpdateNotRequestedFromTokenOwner
86
87
deriving (Show , Eq )
87
88
88
89
instance Exception TokenUpdateFailure
@@ -97,6 +98,8 @@ instance Monad m => ToJSON m TokenUpdateFailure where
97
98
object [" tokenUpdateRequestValidations" .= validations]
98
99
TokenUpdateConfigNotFound ->
99
100
toJSON (" Token update config not available" :: String )
101
+ TokenUpdateNotRequestedFromTokenOwner ->
102
+ toJSON (" Token update not requested from token owner" :: String )
100
103
101
104
data TokenCommand a where
102
105
GetToken :: TokenId -> TokenCommand JSValue
@@ -145,6 +148,8 @@ tokenCmdCore command = do
145
148
token <- liftMaybe (TokenNotParsable tk) mpendings
146
149
let requests = tokenRequests token
147
150
oracle = tokenOwner $ tokenState token
151
+ when (owner wallet /= oracle)
152
+ $ notValidated TokenUpdateNotRequestedFromTokenOwner
148
153
when (null requests) $ notValidated TokenUpdateOfNoRequests
149
154
void
150
155
$ mapFailure TokenUpdateRequestValidations
0 commit comments