Skip to content

Commit

Permalink
Generate purs
Browse files Browse the repository at this point in the history
  • Loading branch information
sjoerdvisscher committed Mar 4, 2022
1 parent 7b5394f commit 600eefe
Show file tree
Hide file tree
Showing 7 changed files with 1,808 additions and 216 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ data ValidationError
| SignatureMissing PubKeyHash
| MintWithoutScript String
| TransactionFeeTooLow Value Value
| EmApplyTxFailure EmApplyTxFailure

derive instance Eq ValidationError

Expand All @@ -181,6 +182,7 @@ instance EncodeJson ValidationError where
SignatureMissing a -> E.encodeTagged "SignatureMissing" a E.value
MintWithoutScript a -> E.encodeTagged "MintWithoutScript" a E.value
TransactionFeeTooLow a b -> E.encodeTagged "TransactionFeeTooLow" (a /\ b) (E.tuple (E.value >/\< E.value))
EmApplyTxFailure a -> E.encodeTagged "EmApplyTxFailure" a E.value

instance DecodeJson ValidationError where
decodeJson = defer \_ -> D.decode
Expand All @@ -201,6 +203,7 @@ instance DecodeJson ValidationError where
, "SignatureMissing" /\ D.content (SignatureMissing <$> D.value)
, "MintWithoutScript" /\ D.content (MintWithoutScript <$> D.value)
, "TransactionFeeTooLow" /\ D.content (D.tuple $ TransactionFeeTooLow </$\> D.value </*\> D.value)
, "EmApplyTxFailure" /\ D.content (EmApplyTxFailure <$> D.value)
]

derive instance Generic ValidationError _
Expand Down Expand Up @@ -282,6 +285,11 @@ _TransactionFeeTooLow = prism' (\{ a, b } -> (TransactionFeeTooLow a b)) case _
(TransactionFeeTooLow a b) -> Just { a, b }
_ -> Nothing

_EmApplyTxFailure :: Prism' ValidationError EmApplyTxFailure
_EmApplyTxFailure = prism' EmApplyTxFailure case _ of
(EmApplyTxFailure a) -> Just a
_ -> Nothing

--------------------------------------------------------------------------------

data ValidationPhase
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import Data.Maybe (Maybe(..))
import Data.Newtype (class Newtype, unwrap)
import Data.RawJson (RawJson)
import Data.Show.Generic (genericShow)
import Data.These (These)
import Data.Tuple.Nested ((/\))
import Ledger.Address (PaymentPubKeyHash)
import Ledger.Constraints.OffChain (UnbalancedTx)
Expand Down Expand Up @@ -83,7 +84,7 @@ _ActiveEndpoint = _Newtype

data BalanceTxResponse
= BalanceTxFailed WalletAPIError
| BalanceTxSuccess (Either RawJson Tx)
| BalanceTxSuccess (These Tx RawJson)

derive instance Eq BalanceTxResponse

Expand All @@ -93,14 +94,14 @@ instance Show BalanceTxResponse where
instance EncodeJson BalanceTxResponse where
encodeJson = defer \_ -> case _ of
BalanceTxFailed a -> E.encodeTagged "BalanceTxFailed" a E.value
BalanceTxSuccess a -> E.encodeTagged "BalanceTxSuccess" a (E.either E.value E.value)
BalanceTxSuccess a -> E.encodeTagged "BalanceTxSuccess" a E.value

instance DecodeJson BalanceTxResponse where
decodeJson = defer \_ -> D.decode
$ D.sumType "BalanceTxResponse"
$ Map.fromFoldable
[ "BalanceTxFailed" /\ D.content (BalanceTxFailed <$> D.value)
, "BalanceTxSuccess" /\ D.content (BalanceTxSuccess <$> (D.either D.value D.value))
, "BalanceTxSuccess" /\ D.content (BalanceTxSuccess <$> D.value)
]

derive instance Generic BalanceTxResponse _
Expand All @@ -112,7 +113,7 @@ _BalanceTxFailed = prism' BalanceTxFailed case _ of
(BalanceTxFailed a) -> Just a
_ -> Nothing

_BalanceTxSuccess :: Prism' BalanceTxResponse (Either RawJson Tx)
_BalanceTxSuccess :: Prism' BalanceTxResponse (These Tx RawJson)
_BalanceTxSuccess = prism' BalanceTxSuccess case _ of
(BalanceTxSuccess a) -> Just a
_ -> Nothing
Expand Down Expand Up @@ -384,7 +385,7 @@ data PABReq
| OwnPaymentPublicKeyHashReq
| ChainIndexQueryReq ChainIndexQuery
| BalanceTxReq UnbalancedTx
| WriteBalancedTxReq (Either RawJson Tx)
| WriteBalancedTxReq (These Tx RawJson)
| ExposeEndpointReq ActiveEndpoint
| PosixTimeRangeToContainedSlotRangeReq (Interval POSIXTime)
| YieldUnbalancedTxReq UnbalancedTx
Expand All @@ -408,7 +409,7 @@ instance EncodeJson PABReq where
OwnPaymentPublicKeyHashReq -> encodeJson { tag: "OwnPaymentPublicKeyHashReq", contents: jsonNull }
ChainIndexQueryReq a -> E.encodeTagged "ChainIndexQueryReq" a E.value
BalanceTxReq a -> E.encodeTagged "BalanceTxReq" a E.value
WriteBalancedTxReq a -> E.encodeTagged "WriteBalancedTxReq" a (E.either E.value E.value)
WriteBalancedTxReq a -> E.encodeTagged "WriteBalancedTxReq" a E.value
ExposeEndpointReq a -> E.encodeTagged "ExposeEndpointReq" a E.value
PosixTimeRangeToContainedSlotRangeReq a -> E.encodeTagged "PosixTimeRangeToContainedSlotRangeReq" a E.value
YieldUnbalancedTxReq a -> E.encodeTagged "YieldUnbalancedTxReq" a E.value
Expand All @@ -429,7 +430,7 @@ instance DecodeJson PABReq where
, "OwnPaymentPublicKeyHashReq" /\ pure OwnPaymentPublicKeyHashReq
, "ChainIndexQueryReq" /\ D.content (ChainIndexQueryReq <$> D.value)
, "BalanceTxReq" /\ D.content (BalanceTxReq <$> D.value)
, "WriteBalancedTxReq" /\ D.content (WriteBalancedTxReq <$> (D.either D.value D.value))
, "WriteBalancedTxReq" /\ D.content (WriteBalancedTxReq <$> D.value)
, "ExposeEndpointReq" /\ D.content (ExposeEndpointReq <$> D.value)
, "PosixTimeRangeToContainedSlotRangeReq" /\ D.content (PosixTimeRangeToContainedSlotRangeReq <$> D.value)
, "YieldUnbalancedTxReq" /\ D.content (YieldUnbalancedTxReq <$> D.value)
Expand Down Expand Up @@ -499,7 +500,7 @@ _BalanceTxReq = prism' BalanceTxReq case _ of
(BalanceTxReq a) -> Just a
_ -> Nothing

_WriteBalancedTxReq :: Prism' PABReq (Either RawJson Tx)
_WriteBalancedTxReq :: Prism' PABReq (These Tx RawJson)
_WriteBalancedTxReq = prism' WriteBalancedTxReq case _ of
(WriteBalancedTxReq a) -> Just a
_ -> Nothing
Expand Down Expand Up @@ -673,7 +674,7 @@ _YieldUnbalancedTxResp = prism' YieldUnbalancedTxResp case _ of

data WriteBalancedTxResponse
= WriteBalancedTxFailed WalletAPIError
| WriteBalancedTxSuccess (Either RawJson Tx)
| WriteBalancedTxSuccess (These Tx RawJson)

derive instance Eq WriteBalancedTxResponse

Expand All @@ -683,14 +684,14 @@ instance Show WriteBalancedTxResponse where
instance EncodeJson WriteBalancedTxResponse where
encodeJson = defer \_ -> case _ of
WriteBalancedTxFailed a -> E.encodeTagged "WriteBalancedTxFailed" a E.value
WriteBalancedTxSuccess a -> E.encodeTagged "WriteBalancedTxSuccess" a (E.either E.value E.value)
WriteBalancedTxSuccess a -> E.encodeTagged "WriteBalancedTxSuccess" a E.value

instance DecodeJson WriteBalancedTxResponse where
decodeJson = defer \_ -> D.decode
$ D.sumType "WriteBalancedTxResponse"
$ Map.fromFoldable
[ "WriteBalancedTxFailed" /\ D.content (WriteBalancedTxFailed <$> D.value)
, "WriteBalancedTxSuccess" /\ D.content (WriteBalancedTxSuccess <$> (D.either D.value D.value))
, "WriteBalancedTxSuccess" /\ D.content (WriteBalancedTxSuccess <$> D.value)
]

derive instance Generic WriteBalancedTxResponse _
Expand All @@ -702,7 +703,7 @@ _WriteBalancedTxFailed = prism' WriteBalancedTxFailed case _ of
(WriteBalancedTxFailed a) -> Just a
_ -> Nothing

_WriteBalancedTxSuccess :: Prism' WriteBalancedTxResponse (Either RawJson Tx)
_WriteBalancedTxSuccess :: Prism' WriteBalancedTxResponse (These Tx RawJson)
_WriteBalancedTxSuccess = prism' WriteBalancedTxSuccess case _ of
(WriteBalancedTxSuccess a) -> Just a
_ -> Nothing
8 changes: 8 additions & 0 deletions plutus-playground-client/generated/Ledger/Index.purs
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ data ValidationError
| SignatureMissing PubKeyHash
| MintWithoutScript String
| TransactionFeeTooLow Value Value
| EmApplyTxFailure EmApplyTxFailure

derive instance Eq ValidationError

Expand All @@ -181,6 +182,7 @@ instance EncodeJson ValidationError where
SignatureMissing a -> E.encodeTagged "SignatureMissing" a E.value
MintWithoutScript a -> E.encodeTagged "MintWithoutScript" a E.value
TransactionFeeTooLow a b -> E.encodeTagged "TransactionFeeTooLow" (a /\ b) (E.tuple (E.value >/\< E.value))
EmApplyTxFailure a -> E.encodeTagged "EmApplyTxFailure" a E.value

instance DecodeJson ValidationError where
decodeJson = defer \_ -> D.decode
Expand All @@ -201,6 +203,7 @@ instance DecodeJson ValidationError where
, "SignatureMissing" /\ D.content (SignatureMissing <$> D.value)
, "MintWithoutScript" /\ D.content (MintWithoutScript <$> D.value)
, "TransactionFeeTooLow" /\ D.content (D.tuple $ TransactionFeeTooLow </$\> D.value </*\> D.value)
, "EmApplyTxFailure" /\ D.content (EmApplyTxFailure <$> D.value)
]

derive instance Generic ValidationError _
Expand Down Expand Up @@ -282,6 +285,11 @@ _TransactionFeeTooLow = prism' (\{ a, b } -> (TransactionFeeTooLow a b)) case _
(TransactionFeeTooLow a b) -> Just { a, b }
_ -> Nothing

_EmApplyTxFailure :: Prism' ValidationError EmApplyTxFailure
_EmApplyTxFailure = prism' EmApplyTxFailure case _ of
(EmApplyTxFailure a) -> Just a
_ -> Nothing

--------------------------------------------------------------------------------

data ValidationPhase
Expand Down
25 changes: 13 additions & 12 deletions plutus-playground-client/generated/Plutus/Contract/Effects.purs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import Data.Maybe (Maybe(..))
import Data.Newtype (class Newtype, unwrap)
import Data.RawJson (RawJson)
import Data.Show.Generic (genericShow)
import Data.These (These)
import Data.Tuple.Nested ((/\))
import Ledger.Address (PaymentPubKeyHash)
import Ledger.Constraints.OffChain (UnbalancedTx)
Expand Down Expand Up @@ -83,7 +84,7 @@ _ActiveEndpoint = _Newtype

data BalanceTxResponse
= BalanceTxFailed WalletAPIError
| BalanceTxSuccess (Either RawJson Tx)
| BalanceTxSuccess (These Tx RawJson)

derive instance Eq BalanceTxResponse

Expand All @@ -93,14 +94,14 @@ instance Show BalanceTxResponse where
instance EncodeJson BalanceTxResponse where
encodeJson = defer \_ -> case _ of
BalanceTxFailed a -> E.encodeTagged "BalanceTxFailed" a E.value
BalanceTxSuccess a -> E.encodeTagged "BalanceTxSuccess" a (E.either E.value E.value)
BalanceTxSuccess a -> E.encodeTagged "BalanceTxSuccess" a E.value

instance DecodeJson BalanceTxResponse where
decodeJson = defer \_ -> D.decode
$ D.sumType "BalanceTxResponse"
$ Map.fromFoldable
[ "BalanceTxFailed" /\ D.content (BalanceTxFailed <$> D.value)
, "BalanceTxSuccess" /\ D.content (BalanceTxSuccess <$> (D.either D.value D.value))
, "BalanceTxSuccess" /\ D.content (BalanceTxSuccess <$> D.value)
]

derive instance Generic BalanceTxResponse _
Expand All @@ -112,7 +113,7 @@ _BalanceTxFailed = prism' BalanceTxFailed case _ of
(BalanceTxFailed a) -> Just a
_ -> Nothing

_BalanceTxSuccess :: Prism' BalanceTxResponse (Either RawJson Tx)
_BalanceTxSuccess :: Prism' BalanceTxResponse (These Tx RawJson)
_BalanceTxSuccess = prism' BalanceTxSuccess case _ of
(BalanceTxSuccess a) -> Just a
_ -> Nothing
Expand Down Expand Up @@ -384,7 +385,7 @@ data PABReq
| OwnPaymentPublicKeyHashReq
| ChainIndexQueryReq ChainIndexQuery
| BalanceTxReq UnbalancedTx
| WriteBalancedTxReq (Either RawJson Tx)
| WriteBalancedTxReq (These Tx RawJson)
| ExposeEndpointReq ActiveEndpoint
| PosixTimeRangeToContainedSlotRangeReq (Interval POSIXTime)
| YieldUnbalancedTxReq UnbalancedTx
Expand All @@ -408,7 +409,7 @@ instance EncodeJson PABReq where
OwnPaymentPublicKeyHashReq -> encodeJson { tag: "OwnPaymentPublicKeyHashReq", contents: jsonNull }
ChainIndexQueryReq a -> E.encodeTagged "ChainIndexQueryReq" a E.value
BalanceTxReq a -> E.encodeTagged "BalanceTxReq" a E.value
WriteBalancedTxReq a -> E.encodeTagged "WriteBalancedTxReq" a (E.either E.value E.value)
WriteBalancedTxReq a -> E.encodeTagged "WriteBalancedTxReq" a E.value
ExposeEndpointReq a -> E.encodeTagged "ExposeEndpointReq" a E.value
PosixTimeRangeToContainedSlotRangeReq a -> E.encodeTagged "PosixTimeRangeToContainedSlotRangeReq" a E.value
YieldUnbalancedTxReq a -> E.encodeTagged "YieldUnbalancedTxReq" a E.value
Expand All @@ -429,7 +430,7 @@ instance DecodeJson PABReq where
, "OwnPaymentPublicKeyHashReq" /\ pure OwnPaymentPublicKeyHashReq
, "ChainIndexQueryReq" /\ D.content (ChainIndexQueryReq <$> D.value)
, "BalanceTxReq" /\ D.content (BalanceTxReq <$> D.value)
, "WriteBalancedTxReq" /\ D.content (WriteBalancedTxReq <$> (D.either D.value D.value))
, "WriteBalancedTxReq" /\ D.content (WriteBalancedTxReq <$> D.value)
, "ExposeEndpointReq" /\ D.content (ExposeEndpointReq <$> D.value)
, "PosixTimeRangeToContainedSlotRangeReq" /\ D.content (PosixTimeRangeToContainedSlotRangeReq <$> D.value)
, "YieldUnbalancedTxReq" /\ D.content (YieldUnbalancedTxReq <$> D.value)
Expand Down Expand Up @@ -499,7 +500,7 @@ _BalanceTxReq = prism' BalanceTxReq case _ of
(BalanceTxReq a) -> Just a
_ -> Nothing

_WriteBalancedTxReq :: Prism' PABReq (Either RawJson Tx)
_WriteBalancedTxReq :: Prism' PABReq (These Tx RawJson)
_WriteBalancedTxReq = prism' WriteBalancedTxReq case _ of
(WriteBalancedTxReq a) -> Just a
_ -> Nothing
Expand Down Expand Up @@ -673,7 +674,7 @@ _YieldUnbalancedTxResp = prism' YieldUnbalancedTxResp case _ of

data WriteBalancedTxResponse
= WriteBalancedTxFailed WalletAPIError
| WriteBalancedTxSuccess (Either RawJson Tx)
| WriteBalancedTxSuccess (These Tx RawJson)

derive instance Eq WriteBalancedTxResponse

Expand All @@ -683,14 +684,14 @@ instance Show WriteBalancedTxResponse where
instance EncodeJson WriteBalancedTxResponse where
encodeJson = defer \_ -> case _ of
WriteBalancedTxFailed a -> E.encodeTagged "WriteBalancedTxFailed" a E.value
WriteBalancedTxSuccess a -> E.encodeTagged "WriteBalancedTxSuccess" a (E.either E.value E.value)
WriteBalancedTxSuccess a -> E.encodeTagged "WriteBalancedTxSuccess" a E.value

instance DecodeJson WriteBalancedTxResponse where
decodeJson = defer \_ -> D.decode
$ D.sumType "WriteBalancedTxResponse"
$ Map.fromFoldable
[ "WriteBalancedTxFailed" /\ D.content (WriteBalancedTxFailed <$> D.value)
, "WriteBalancedTxSuccess" /\ D.content (WriteBalancedTxSuccess <$> (D.either D.value D.value))
, "WriteBalancedTxSuccess" /\ D.content (WriteBalancedTxSuccess <$> D.value)
]

derive instance Generic WriteBalancedTxResponse _
Expand All @@ -702,7 +703,7 @@ _WriteBalancedTxFailed = prism' WriteBalancedTxFailed case _ of
(WriteBalancedTxFailed a) -> Just a
_ -> Nothing

_WriteBalancedTxSuccess :: Prism' WriteBalancedTxResponse (Either RawJson Tx)
_WriteBalancedTxSuccess :: Prism' WriteBalancedTxResponse (These Tx RawJson)
_WriteBalancedTxSuccess = prism' WriteBalancedTxSuccess case _ of
(WriteBalancedTxSuccess a) -> Just a
_ -> Nothing
19 changes: 11 additions & 8 deletions plutus-playground-client/generated/Wallet/Emulator/Chain.purs
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,23 @@ import Data.Lens.Iso.Newtype (_Newtype)
import Data.Lens.Record (prop)
import Data.Maybe (Maybe(..))
import Data.Newtype (unwrap)
import Data.RawJson (RawJson)
import Data.Show.Generic (genericShow)
import Data.These (These)
import Data.Tuple.Nested ((/\))
import Ledger.Index (ScriptValidationEvent, ValidationError, ValidationPhase)
import Plutus.V1.Ledger.Slot (Slot)
import Plutus.V1.Ledger.Tx (Tx)
import Plutus.V1.Ledger.TxId (TxId)
import Plutus.V1.Ledger.Value (Value)
import Type.Proxy (Proxy(Proxy))
import Data.Argonaut.Decode.Aeson as D
import Data.Argonaut.Encode.Aeson as E
import Data.Map as Map

data ChainEvent
= TxnValidate TxId Tx (Array ScriptValidationEvent)
| TxnValidationFail ValidationPhase TxId Tx ValidationError (Array ScriptValidationEvent)
= TxnValidate TxId (These Tx RawJson) (Array ScriptValidationEvent)
| TxnValidationFail ValidationPhase TxId (These Tx RawJson) ValidationError (Array ScriptValidationEvent) Value
| SlotAdd Slot

instance Show ChainEvent where
Expand All @@ -37,30 +40,30 @@ instance Show ChainEvent where
instance EncodeJson ChainEvent where
encodeJson = defer \_ -> case _ of
TxnValidate a b c -> E.encodeTagged "TxnValidate" (a /\ b /\ c) (E.tuple (E.value >/\< E.value >/\< E.value))
TxnValidationFail a b c d e -> E.encodeTagged "TxnValidationFail" (a /\ b /\ c /\ d /\ e) (E.tuple (E.value >/\< E.value >/\< E.value >/\< E.value >/\< E.value))
TxnValidationFail a b c d e f -> E.encodeTagged "TxnValidationFail" (a /\ b /\ c /\ d /\ e /\ f) (E.tuple (E.value >/\< E.value >/\< E.value >/\< E.value >/\< E.value >/\< E.value))
SlotAdd a -> E.encodeTagged "SlotAdd" a E.value

instance DecodeJson ChainEvent where
decodeJson = defer \_ -> D.decode
$ D.sumType "ChainEvent"
$ Map.fromFoldable
[ "TxnValidate" /\ D.content (D.tuple $ TxnValidate </$\> D.value </*\> D.value </*\> D.value)
, "TxnValidationFail" /\ D.content (D.tuple $ TxnValidationFail </$\> D.value </*\> D.value </*\> D.value </*\> D.value </*\> D.value)
, "TxnValidationFail" /\ D.content (D.tuple $ TxnValidationFail </$\> D.value </*\> D.value </*\> D.value </*\> D.value </*\> D.value </*\> D.value)
, "SlotAdd" /\ D.content (SlotAdd <$> D.value)
]

derive instance Generic ChainEvent _

--------------------------------------------------------------------------------

_TxnValidate :: Prism' ChainEvent { a :: TxId, b :: Tx, c :: Array ScriptValidationEvent }
_TxnValidate :: Prism' ChainEvent { a :: TxId, b :: These Tx RawJson, c :: Array ScriptValidationEvent }
_TxnValidate = prism' (\{ a, b, c } -> (TxnValidate a b c)) case _ of
(TxnValidate a b c) -> Just { a, b, c }
_ -> Nothing

_TxnValidationFail :: Prism' ChainEvent { a :: ValidationPhase, b :: TxId, c :: Tx, d :: ValidationError, e :: Array ScriptValidationEvent }
_TxnValidationFail = prism' (\{ a, b, c, d, e } -> (TxnValidationFail a b c d e)) case _ of
(TxnValidationFail a b c d e) -> Just { a, b, c, d, e }
_TxnValidationFail :: Prism' ChainEvent { a :: ValidationPhase, b :: TxId, c :: These Tx RawJson, d :: ValidationError, e :: Array ScriptValidationEvent, f :: Value }
_TxnValidationFail = prism' (\{ a, b, c, d, e, f } -> (TxnValidationFail a b c d e f)) case _ of
(TxnValidationFail a b c d e f) -> Just { a, b, c, d, e, f }
_ -> Nothing

_SlotAdd :: Prism' ChainEvent Slot
Expand Down
Loading

0 comments on commit 600eefe

Please sign in to comment.