Skip to content

Commit f3c7082

Browse files
committed
[cli] Fail token updates if the wallet owner is not the token owner
1 parent 3ff8ae9 commit f3c7082

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

cli/src/Oracle/Token/Cli.hs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import Core.Context
1717
)
1818
import Core.Types.Basic (RequestRefId, TokenId)
1919
import Core.Types.Tx (TxHash, WithTxHash (WithTxHash))
20-
import Core.Types.Wallet (Wallet)
20+
import Core.Types.Wallet (Wallet (..))
2121
import Data.Functor ((<&>))
2222
import Data.List (find)
2323
import Lib.JSON.Canonical.Extra (object, (.=))
@@ -83,6 +83,7 @@ data TokenUpdateFailure
8383
| TokenUpdateRequestValidations
8484
[TokenUpdateRequestValidation]
8585
| TokenUpdateConfigNotFound
86+
| TokenUpdateNotRequestedFromTokenOwner
8687
deriving (Show, Eq)
8788

8889
instance Exception TokenUpdateFailure
@@ -97,6 +98,8 @@ instance Monad m => ToJSON m TokenUpdateFailure where
9798
object ["tokenUpdateRequestValidations" .= validations]
9899
TokenUpdateConfigNotFound ->
99100
toJSON ("Token update config not available" :: String)
101+
TokenUpdateNotRequestedFromTokenOwner ->
102+
toJSON ("Token update not requested from token owner" :: String)
100103

101104
data TokenCommand a where
102105
GetToken :: TokenId -> TokenCommand JSValue
@@ -145,6 +148,8 @@ tokenCmdCore command = do
145148
token <- liftMaybe (TokenNotParsable tk) mpendings
146149
let requests = tokenRequests token
147150
oracle = tokenOwner $ tokenState token
151+
when (owner wallet /= oracle)
152+
$ notValidated TokenUpdateNotRequestedFromTokenOwner
148153
when (null requests) $ notValidated TokenUpdateOfNoRequests
149154
void
150155
$ mapFailure TokenUpdateRequestValidations

0 commit comments

Comments
 (0)