Skip to content

Commit 1617d72

Browse files
committed
Move genTxIn and fix imports in Hydra.Ledger.Cardano
1 parent 02a5c8b commit 1617d72

File tree

1 file changed

+12
-24
lines changed

1 file changed

+12
-24
lines changed

hydra-node/src/Hydra/Ledger/Cardano.hs

+12-24
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@ import Hydra.Cardano.Api hiding (initialLedgerState)
1414
import Hydra.Ledger.Cardano.Builder
1515

1616
import qualified Cardano.Api.UTxO as UTxO
17-
import Cardano.Binary (decodeAnnotator, serialize', unsafeDeserialize')
17+
import Cardano.Binary (decodeAnnotator, serialize')
1818
import qualified Cardano.Crypto.DSIGN as CC
1919
import qualified Cardano.Ledger.Babbage.Tx as Ledger
20+
import Cardano.Ledger.BaseTypes (StrictMaybe (..))
2021
import qualified Cardano.Ledger.BaseTypes as Ledger
2122
import qualified Cardano.Ledger.Credential as Ledger
2223
import qualified Cardano.Ledger.Shelley.API.Mempool as Ledger
2324
import qualified Cardano.Ledger.Shelley.Genesis as Ledger
2425
import qualified Cardano.Ledger.Shelley.LedgerState as Ledger
2526
import qualified Cardano.Ledger.Shelley.Rules.Ledger as Ledger
2627
import qualified Cardano.Ledger.Shelley.UTxO as Ledger
27-
import qualified Cardano.Ledger.TxIn as Ledger
2828
import qualified Codec.CBOR.Decoding as CBOR
2929
import qualified Codec.CBOR.Encoding as CBOR
3030
import Control.Arrow (left)
@@ -33,13 +33,12 @@ import qualified Data.ByteString as BS
3333
import Data.Default (def)
3434
import qualified Data.Map.Strict as Map
3535
import Data.Maybe (fromJust)
36-
import Data.Maybe.Strict (StrictMaybe (..))
3736
import Data.Text.Lazy.Builder (toLazyText)
3837
import Formatting.Buildable (build)
3938
import qualified Hydra.Contract.Head as Head
4039
import Hydra.Ledger (IsTx (..), Ledger (..), ValidationError (..))
4140
import Hydra.Ledger.Cardano.Json ()
42-
import Plutus.V2.Ledger.Api (fromBuiltin)
41+
import PlutusLedgerApi.V2 (fromBuiltin)
4342
import Test.Cardano.Ledger.Babbage.Serialisation.Generators ()
4443
import Test.QuickCheck (
4544
choose,
@@ -127,7 +126,7 @@ instance Arbitrary Tx where
127126
-- TODO: shrinker!
128127
arbitrary = fromLedgerTx . withoutProtocolUpdates <$> arbitrary
129128
where
130-
withoutProtocolUpdates tx@(Ledger.ValidatedTx body _ _ _) =
129+
withoutProtocolUpdates tx@(Ledger.AlonzoTx body _ _ _) =
131130
let body' = body{Ledger.txUpdates = SNothing}
132131
in tx{Ledger.body = body'}
133132

@@ -152,14 +151,14 @@ mkSimpleTx (txin, TxOut owner valueIn datum refScript) (recipient, valueOut) sk
152151
}
153152

154153
outs =
155-
TxOut @CtxTx recipient valueOut TxOutDatumNone ReferenceScriptNone :
156-
[ TxOut @CtxTx
157-
owner
158-
(valueIn <> negateValue valueOut)
159-
(toTxContext datum)
160-
refScript
161-
| valueOut /= valueIn
162-
]
154+
TxOut @CtxTx recipient valueOut TxOutDatumNone ReferenceScriptNone
155+
: [ TxOut @CtxTx
156+
owner
157+
(valueIn <> negateValue valueOut)
158+
(toTxContext datum)
159+
refScript
160+
| valueOut /= valueIn
161+
]
163162

164163
fee = Lovelace 0
165164

@@ -218,14 +217,6 @@ generateOneTransfer networkId (utxo, (_, sender), txs) _ = do
218217
_ ->
219218
error "Couldn't generate transaction sequence: need exactly one UTXO."
220219

221-
-- | A more random generator than the 'Arbitrary TxIn' from cardano-ledger.
222-
genTxIn :: Gen TxIn
223-
genTxIn =
224-
fmap fromLedgerTxIn . Ledger.TxIn
225-
-- NOTE: [88, 32] is a CBOR prefix for a bytestring of 32 bytes.
226-
<$> fmap (unsafeDeserialize' . BS.pack . ([88, 32] <>)) (vectorOf 32 arbitrary)
227-
<*> fmap Ledger.TxIx (choose (0, 99))
228-
229220
-- TODO: Enable arbitrary datum in generators
230221
-- TODO: This should better be called 'genOutputFor'
231222
genOutput ::
@@ -387,9 +378,6 @@ shrinkValue =
387378
instance Arbitrary AssetName where
388379
arbitrary = AssetName . BS.take 32 <$> arbitrary
389380

390-
instance Arbitrary TxIn where
391-
arbitrary = genTxIn
392-
393381
instance Arbitrary TxId where
394382
arbitrary = onlyTxId <$> arbitrary
395383
where

0 commit comments

Comments
 (0)