Skip to content

Commit 50b58d3

Browse files
Soupstrawlehins
andcommitted
Changed the type of Tx size to Word32
Co-authored-by: Alexey Kuleshevich <[email protected]>
1 parent d1657a4 commit 50b58d3

File tree

15 files changed

+43
-20
lines changed

15 files changed

+43
-20
lines changed

eras/allegra/impl/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## 1.8.0.0
44

5+
* Changed `MaxTxSizeUTxO` to use `Word32`
56
* Added `COMPLETE` pragma for `TxCert AllegraEra`
67
* Added `COMPLETE` pragma for `NativeScript AllegraEra`
78
* Move to `testlib` `DecCBOR` instances for: `TxBody AllegraEra`, `AllegraTxAuxDataRaw`, `AllegraTxAuxData`, `TimelockRaw`, `Timelock`

eras/allegra/impl/src/Cardano/Ledger/Allegra/Rules/Utxo.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ import Data.Foldable (toList)
6060
import Data.Int (Int64)
6161
import qualified Data.Map.Strict as Map
6262
import Data.Set (Set)
63+
import Data.Word (Word32)
6364
import GHC.Generics (Generic)
6465
import Lens.Micro
6566
import NoThunks.Class (NoThunks)
@@ -72,7 +73,7 @@ data AllegraUtxoPredFailure era
7273
| OutsideValidityIntervalUTxO
7374
ValidityInterval -- transaction's validity interval
7475
SlotNo -- current slot
75-
| MaxTxSizeUTxO (Mismatch 'RelLTEQ Integer)
76+
| MaxTxSizeUTxO (Mismatch 'RelLTEQ Word32)
7677
| InputSetEmptyUTxO
7778
| FeeTooSmallUTxO (Mismatch 'RelGTEQ Coin)
7879
| ValueNotConservedUTxO (Mismatch 'RelEQ (Value era)) -- Consumed, then produced

eras/alonzo/impl/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## 1.14.0.0
44

5+
* Changed `MaxTxSizeUTxO` to use `Word32`
56
* Make `transValidityInterval` based on eras instead of protocol versions.
67
* Remove `hardforkConwayTranslateUpperBoundForPlutusScripts` from `Cardano.Ledger.Alonzo.Era`.
78
* Remove protocol version from arguments to `transValidityInterval`.

eras/alonzo/impl/src/Cardano/Ledger/Alonzo/Rules/Utxo.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ import Data.Foldable as F (foldl', sequenceA_, toList)
108108
import qualified Data.Map.Strict as Map
109109
import Data.Set (Set)
110110
import qualified Data.Set as Set
111+
import Data.Word (Word32)
111112
import GHC.Generics (Generic)
112113
import Lens.Micro
113114
import NoThunks.Class (NoThunks)
@@ -125,7 +126,7 @@ data AlonzoUtxoPredFailure era
125126
ValidityInterval
126127
-- | current slot
127128
SlotNo
128-
| MaxTxSizeUTxO (Mismatch 'RelLTEQ Integer)
129+
| MaxTxSizeUTxO (Mismatch 'RelLTEQ Word32)
129130
| InputSetEmptyUTxO
130131
| FeeTooSmallUTxO (Mismatch 'RelGTEQ Coin)
131132
| ValueNotConservedUTxO (Mismatch 'RelEQ (Value era))

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ import Cardano.Ledger.Alonzo.TxWits (
9494
unRedeemersL,
9595
unTxDatsL,
9696
)
97+
import Cardano.Ledger.BaseTypes (integralToBounded)
9798
import Cardano.Ledger.Binary (
9899
Annotator,
99100
DecCBOR (..),
@@ -118,8 +119,10 @@ import Cardano.Ledger.State (EraUTxO, ScriptsProvided (..))
118119
import qualified Cardano.Ledger.State as Shelley
119120
import Cardano.Ledger.Val (Val ((<+>), (<×>)))
120121
import Control.DeepSeq (NFData (..))
122+
import Control.Monad.Trans.Fail.String (errorFail)
121123
import Data.Aeson (ToJSON (..))
122124
import qualified Data.ByteString.Lazy as LBS
125+
import Data.Int (Int64)
123126
import qualified Data.Map.Strict as Map
124127
import Data.Maybe (mapMaybe)
125128
import Data.Maybe.Strict (
@@ -130,6 +133,7 @@ import Data.Maybe.Strict (
130133
import Data.Set (Set)
131134
import qualified Data.Set as Set
132135
import Data.Typeable (Typeable)
136+
import Data.Word (Word32)
133137
import GHC.Generics (Generic)
134138
import Lens.Micro hiding (set)
135139
import NoThunks.Class (NoThunks)
@@ -217,10 +221,11 @@ auxDataAlonzoTxL = lens atAuxData (\tx txTxAuxData -> tx {atAuxData = txTxAuxDat
217221
{-# INLINEABLE auxDataAlonzoTxL #-}
218222

219223
-- | txsize computes the length of the serialised bytes (for estimations)
220-
sizeAlonzoTxF :: forall era. EraTx era => SimpleGetter (AlonzoTx era) Integer
224+
sizeAlonzoTxF :: forall era. EraTx era => SimpleGetter (AlonzoTx era) Word32
221225
sizeAlonzoTxF =
222226
to $
223-
fromIntegral
227+
errorFail
228+
. integralToBounded @Int64 @Word32
224229
. LBS.length
225230
. serialize (eraProtVerLow @era)
226231
. toCBORForSizeComputation

eras/conway/impl/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## 1.20.0.0
44

5+
* Changed `MaxTxSizeUTxO` to use `Word32`
56
* Make `transValidityInterval` implicit to eras instead of protocol versions.
67
* Implement `transValidityInterval` for Conway.
78
* Add `NFData` for `ConwayGenesis`

eras/conway/impl/src/Cardano/Ledger/Conway/Rules/Utxo.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ import Control.DeepSeq (NFData)
7474
import Control.State.Transition.Extended (Embed (..), STS (..))
7575
import Data.List.NonEmpty (NonEmpty)
7676
import Data.Set (Set)
77+
import Data.Word (Word32)
7778
import GHC.Generics (Generic)
7879
import GHC.Natural (Natural)
7980
import NoThunks.Class (InspectHeapNamed (..), NoThunks (..))
@@ -92,8 +93,7 @@ data ConwayUtxoPredFailure era
9293
ValidityInterval
9394
-- | current slot
9495
SlotNo
95-
| MaxTxSizeUTxO
96-
(Mismatch 'RelLTEQ Integer)
96+
| MaxTxSizeUTxO (Mismatch 'RelLTEQ Word32)
9797
| InputSetEmptyUTxO
9898
| FeeTooSmallUTxO
9999
(Mismatch 'RelGTEQ Coin) -- The values are serialised in reverse order

eras/shelley/impl/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## 1.17.0.0
44

5+
* Changed `MaxTxSizeUTxO` and `sizeShelleyTxF` to use `Word32`
56
* Refactor pool deposits to use `StakePoolState`. #5234
67
* Update `Pool` rule to store deposits in individual `StakePoolState` records
78
* Add and export `prUTxOStateL`, `prChainAccountStateL`, and `prCertStateL` lenses for `ShelleyPoolreapState`

eras/shelley/impl/cardano-ledger-shelley.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ library
116116
containers,
117117
data-default,
118118
deepseq,
119+
FailT,
119120
groups,
120121
mempack,
121122
microlens,

eras/shelley/impl/src/Cardano/Ledger/Shelley/Rules/Utxo.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ import qualified Data.Map.Strict as Map
9898
import Data.MapExtras (extractKeys)
9999
import Data.Set (Set)
100100
import qualified Data.Set as Set
101+
import Data.Word (Word32)
101102
import GHC.Generics (Generic)
102103
import Lens.Micro
103104
import Lens.Micro.Extras (view)
@@ -169,7 +170,7 @@ data ShelleyUtxoPredFailure era
169170
| ExpiredUTxO
170171
(Mismatch 'RelLTEQ SlotNo)
171172
| MaxTxSizeUTxO
172-
(Mismatch 'RelLTEQ Integer)
173+
(Mismatch 'RelLTEQ Word32)
173174
| InputSetEmptyUTxO
174175
| FeeTooSmallUTxO
175176
(Mismatch 'RelGTEQ Coin)
@@ -578,7 +579,7 @@ validateMaxTxSizeUTxO pp tx =
578579
, mismatchExpected = maxTxSize
579580
}
580581
where
581-
maxTxSize = toInteger (pp ^. ppMaxTxSizeL)
582+
maxTxSize = pp ^. ppMaxTxSizeL
582583
txSize = tx ^. sizeTxF
583584

584585
-- | This monadic action captures the final stages of the UTXO(S) rule. In particular it

0 commit comments

Comments
 (0)