I looked through the Plutus GitHub and found some info, but I cannot decode it.plutus/plutus-ledger/src/Ledger/Tx.hs
Here it is:
encode (SomeTx tx eraInMode) = encodedMode eraInMode <> Encoding (TkBytes (C.serialiseToCBOR tx))
where
encodedMode :: C.EraInMode era C.CardanoMode -> Encoding
-- 0 and 1 are for ByronEraInByronMode and ShelleyEraInShelleyMode
encodedMode C.ByronEraInCardanoMode = Encoding (TkSimple 2)
encodedMode C.ShelleyEraInCardanoMode = Encoding (TkSimple 3)
encodedMode C.AllegraEraInCardanoMode = Encoding (TkSimple 4)
encodedMode C.MaryEraInCardanoMode = Encoding (TkSimple 5)
encodedMode C.AlonzoEraInCardanoMode = Encoding (TkSimple 6)
decode = do
w <- decodeSimple
case w of
2 -> decodeTx C.AsByronEra C.ByronEraInCardanoMode
3 -> decodeTx C.AsShelleyEra C.ShelleyEraInCardanoMode
4 -> decodeTx C.AsAllegraEra C.AllegraEraInCardanoMode
5 -> decodeTx C.AsMaryEra C.MaryEraInCardanoMode
6 -> decodeTx C.AsAlonzoEra C.AlonzoEraInCardanoMode
_ -> fail "Unexpected value while decoding Cardano.Api.EraInMode"
where
decodeTx :: C.IsCardanoEra era => C.AsType era -> C.EraInMode era C.CardanoMode -> Decoder s SomeCardanoApiTx
decodeTx asType eraInMode = do
bytes <- decodeBytes
tx <- either (const $ fail "Failed to decode Cardano.Api.Tx") pure $ C.deserialiseFromCBOR (C.AsTx asType) bytes
pure $ SomeTx tx eraInMode
How do you go about using something like this?
Thanks!