Skip to content

Commit fc97d7e

Browse files
committed
Removed hash size proofs
1 parent 221eaa8 commit fc97d7e

File tree

2 files changed

+30
-29
lines changed
  • eras
    • alonzo/impl/src/Cardano/Ledger/Alonzo
    • babbage/impl/src/Cardano/Ledger/Babbage

2 files changed

+30
-29
lines changed

eras/alonzo/impl/src/Cardano/Ledger/Alonzo/TxOut.hs

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
{-# LANGUAGE StandaloneDeriving #-}
1313
{-# LANGUAGE TypeApplications #-}
1414
{-# LANGUAGE TypeFamilies #-}
15-
{-# LANGUAGE TypeOperators #-}
1615
{-# LANGUAGE UndecidableInstances #-}
1716
{-# LANGUAGE UndecidableSuperClasses #-}
1817
{-# LANGUAGE ViewPatterns #-}
@@ -82,11 +81,10 @@ import Data.Aeson (ToJSON (..), object, (.=))
8281
import qualified Data.Aeson as Aeson (Value (Null, String))
8382
import Data.Bits
8483
import Data.Maybe (fromMaybe)
85-
import Data.Typeable (Proxy (..), (:~:) (Refl))
84+
import Data.Typeable (Proxy (..))
8685
import Data.Word
8786
import GHC.Generics (Generic)
8887
import GHC.Stack (HasCallStack)
89-
import GHC.TypeLits
9088
import Lens.Micro
9189
import NoThunks.Class (InspectHeapNamed (..), NoThunks)
9290

@@ -116,7 +114,6 @@ decodeAddress28 ::
116114
Addr28Extra ->
117115
Maybe Addr
118116
decodeAddress28 stakeRef (Addr28Extra a b c d) = do
119-
Refl <- sameNat (Proxy @(SizeHash ADDRHASH)) (Proxy @28)
120117
let network = if d `testBit` 1 then Mainnet else Testnet
121118
paymentCred =
122119
if d `testBit` 0
@@ -163,7 +160,6 @@ decodeDataHash32 ::
163160
DataHash32 ->
164161
Maybe DataHash
165162
decodeDataHash32 (DataHash32 a b c d) = do
166-
Refl <- sameNat (Proxy @(SizeHash HASH)) (Proxy @32)
167163
Just $! unsafeMakeSafeHash $ hashFromPackedBytes $ PackedBytes32 a b c d
168164

169165
viewCompactTxOut ::
@@ -213,7 +209,7 @@ deriving via InspectHeapNamed "AlonzoTxOut" (AlonzoTxOut era) instance NoThunks
213209
encodeAddress28 ::
214210
Network ->
215211
PaymentCredential ->
216-
Maybe (SizeHash ADDRHASH :~: 28, Addr28Extra)
212+
Addr28Extra
217213
encodeAddress28 network paymentCred = do
218214
let networkBit, payCredTypeBit :: Word64
219215
networkBit =
@@ -226,26 +222,28 @@ encodeAddress28 network paymentCred = do
226222
ScriptHashObj {} -> 0
227223
encodeAddr ::
228224
Hash ADDRHASH a ->
229-
Maybe (SizeHash ADDRHASH :~: 28, Addr28Extra)
225+
Addr28Extra
230226
encodeAddr h = do
231-
refl@Refl <- sameNat (Proxy @(SizeHash ADDRHASH)) (Proxy @28)
232227
case hashToPackedBytes h of
233228
PackedBytes28 a b c d ->
234229
let d' = (fromIntegral d `shiftL` 32) .|. networkBit .|. payCredTypeBit
235-
in Just (refl, Addr28Extra a b c d')
236-
_ -> Nothing
230+
in Addr28Extra a b c d'
231+
_ ->
232+
-- This case should never match, but if it does, we output garbage
233+
Addr28Extra 0 0 0 0
237234
case paymentCred of
238235
KeyHashObj (KeyHash addrHash) -> encodeAddr addrHash
239236
ScriptHashObj (ScriptHash addrHash) -> encodeAddr addrHash
240237

241238
encodeDataHash32 ::
242239
DataHash ->
243-
Maybe (SizeHash HASH :~: 32, DataHash32)
240+
DataHash32
244241
encodeDataHash32 dataHash = do
245-
refl@Refl <- sameNat (Proxy @(SizeHash HASH)) (Proxy @32)
246242
case hashToPackedBytes (extractHash dataHash) of
247-
PackedBytes32 a b c d -> Just (refl, DataHash32 a b c d)
248-
_ -> Nothing
243+
PackedBytes32 a b c d -> DataHash32 a b c d
244+
_ ->
245+
-- This case should never match, but if it does, we output garbage
246+
DataHash32 0 0 0 0
249247

250248
getAdaOnly ::
251249
forall era.
@@ -269,15 +267,16 @@ pattern AlonzoTxOut addr vl dh <-
269267
where
270268
AlonzoTxOut (Addr network paymentCred stakeRef) vl SNothing
271269
| StakeRefBase stakeCred <- stakeRef
272-
, Just adaCompact <- getAdaOnly (Proxy @era) vl
273-
, Just (Refl, addr28Extra) <- encodeAddress28 network paymentCred =
274-
TxOut_AddrHash28_AdaOnly stakeCred addr28Extra adaCompact
270+
, Just adaCompact <- getAdaOnly (Proxy @era) vl =
271+
let addr28Extra = encodeAddress28 network paymentCred
272+
in TxOut_AddrHash28_AdaOnly stakeCred addr28Extra adaCompact
275273
AlonzoTxOut (Addr network paymentCred stakeRef) vl (SJust dh)
276274
| StakeRefBase stakeCred <- stakeRef
277-
, Just adaCompact <- getAdaOnly (Proxy @era) vl
278-
, Just (Refl, addr28Extra) <- encodeAddress28 network paymentCred
279-
, Just (Refl, dataHash32) <- encodeDataHash32 dh =
280-
TxOut_AddrHash28_AdaOnly_DataHash32 stakeCred addr28Extra adaCompact dataHash32
275+
, Just adaCompact <- getAdaOnly (Proxy @era) vl =
276+
let
277+
addr28Extra = encodeAddress28 network paymentCred
278+
dataHash32 = encodeDataHash32 dh
279+
in TxOut_AddrHash28_AdaOnly_DataHash32 stakeCred addr28Extra adaCompact dataHash32
281280
AlonzoTxOut addr vl mdh =
282281
let v = fromMaybe (error $ "Illegal value in TxOut: " ++ show vl) $ toCompact vl
283282
a = compactAddr addr

eras/babbage/impl/src/Cardano/Ledger/Babbage/TxOut.hs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ import Data.Aeson (KeyValue, ToJSON (..), object, pairs, (.=))
114114
import qualified Data.ByteString.Lazy as LBS
115115
import Data.Maybe (fromMaybe)
116116
import qualified Data.Text as T
117-
import Data.Typeable (Proxy (..), (:~:) (Refl))
117+
import Data.Typeable (Proxy (..))
118118
import GHC.Generics (Generic)
119119
import GHC.Stack (HasCallStack)
120120
import Lens.Micro (Lens', lens, to, (^.))
@@ -379,16 +379,18 @@ mkTxOut ::
379379
mkTxOut addr _cAddr vl NoDatum SNothing
380380
| Just adaCompact <- getAdaOnly (Proxy @era) vl
381381
, Addr network paymentCred stakeRef <- addr
382-
, StakeRefBase stakeCred <- stakeRef
383-
, Just (Refl, addr28Extra) <- encodeAddress28 network paymentCred =
384-
TxOut_AddrHash28_AdaOnly stakeCred addr28Extra adaCompact
382+
, StakeRefBase stakeCred <- stakeRef =
383+
let
384+
addr28Extra = encodeAddress28 network paymentCred
385+
in TxOut_AddrHash28_AdaOnly stakeCred addr28Extra adaCompact
385386
mkTxOut addr _cAddr vl (DatumHash dh) SNothing
386387
| Just adaCompact <- getAdaOnly (Proxy @era) vl
387388
, Addr network paymentCred stakeRef <- addr
388-
, StakeRefBase stakeCred <- stakeRef
389-
, Just (Refl, addr28Extra) <- encodeAddress28 network paymentCred
390-
, Just (Refl, dataHash32) <- encodeDataHash32 dh =
391-
TxOut_AddrHash28_AdaOnly_DataHash32 stakeCred addr28Extra adaCompact dataHash32
389+
, StakeRefBase stakeCred <- stakeRef =
390+
let
391+
addr28Extra = encodeAddress28 network paymentCred
392+
dataHash32 = encodeDataHash32 dh
393+
in TxOut_AddrHash28_AdaOnly_DataHash32 stakeCred addr28Extra adaCompact dataHash32
392394
mkTxOut _addr cAddr vl d rs =
393395
let cVal = fromMaybe (error ("Illegal Value in TxOut: " ++ show vl)) $ toCompact vl
394396
in case rs of

0 commit comments

Comments
 (0)