Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: merge duplicate ExUnits types #905

Merged
merged 1 commit into from
Feb 22, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions ledger/alonzo/alonzo.go
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ type AlonzoRedeemer struct {
Tag common.RedeemerTag
Index uint32
Data cbor.LazyValue
ExUnits common.RedeemerExUnits
ExUnits common.ExUnits
}

type AlonzoRedeemers []AlonzoRedeemer
Expand All @@ -325,13 +325,13 @@ func (r AlonzoRedeemers) Indexes(tag common.RedeemerTag) []uint {
func (r AlonzoRedeemers) Value(
index uint,
tag common.RedeemerTag,
) (cbor.LazyValue, common.RedeemerExUnits) {
) (cbor.LazyValue, common.ExUnits) {
for _, redeemer := range r {
if redeemer.Tag == tag && uint(redeemer.Index) == index {
return redeemer.Data, redeemer.ExUnits
}
}
return cbor.LazyValue{}, common.RedeemerExUnits{}
return cbor.LazyValue{}, common.ExUnits{}
}

type AlonzoTransactionWitnessSet struct {
Expand Down
24 changes: 12 additions & 12 deletions ledger/alonzo/pparams.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ type AlonzoProtocolParameters struct {
AdaPerUtxoByte uint64
CostModels map[uint][]int64
ExecutionCosts common.ExUnitPrice
MaxTxExUnits common.ExUnit
MaxBlockExUnits common.ExUnit
MaxTxExUnits common.ExUnits
MaxBlockExUnits common.ExUnits
MaxValueSize uint
CollateralPercentage uint
MaxCollateralInputs uint
Expand Down Expand Up @@ -80,13 +80,13 @@ func (p *AlonzoProtocolParameters) UpdateFromGenesis(genesis *AlonzoGenesis) {
p.MaxValueSize = genesis.MaxValueSize
p.CollateralPercentage = genesis.CollateralPercentage
p.MaxCollateralInputs = genesis.MaxCollateralInputs
p.MaxTxExUnits = common.ExUnit{
Mem: genesis.MaxTxExUnits.Mem,
Steps: genesis.MaxTxExUnits.Steps,
p.MaxTxExUnits = common.ExUnits{
Memory: uint64(genesis.MaxTxExUnits.Mem),
Steps: uint64(genesis.MaxTxExUnits.Steps),
}
p.MaxBlockExUnits = common.ExUnit{
Mem: genesis.MaxBlockExUnits.Mem,
Steps: genesis.MaxBlockExUnits.Steps,
p.MaxBlockExUnits = common.ExUnits{
Memory: uint64(genesis.MaxBlockExUnits.Mem),
Steps: uint64(genesis.MaxBlockExUnits.Steps),
}
if genesis.ExecutionPrices.Mem != nil &&
genesis.ExecutionPrices.Steps != nil {
Expand All @@ -106,8 +106,8 @@ type AlonzoProtocolParameterUpdate struct {
AdaPerUtxoByte *uint64 `cbor:"17,keyasint"`
CostModels map[uint][]int64 `cbor:"18,keyasint"`
ExecutionCosts *common.ExUnitPrice `cbor:"19,keyasint"`
MaxTxExUnits *common.ExUnit `cbor:"20,keyasint"`
MaxBlockExUnits *common.ExUnit `cbor:"21,keyasint"`
MaxTxExUnits *common.ExUnits `cbor:"20,keyasint"`
MaxBlockExUnits *common.ExUnits `cbor:"21,keyasint"`
MaxValueSize *uint `cbor:"22,keyasint"`
CollateralPercentage *uint `cbor:"23,keyasint"`
MaxCollateralInputs *uint `cbor:"24,keyasint"`
Expand Down Expand Up @@ -190,11 +190,11 @@ func (p *AlonzoProtocolParameters) Utxorpc() *cardano.PParams {
},
},
MaxExecutionUnitsPerTransaction: &cardano.ExUnits{
Memory: uint64(p.MaxTxExUnits.Mem),
Memory: uint64(p.MaxTxExUnits.Memory),
Steps: uint64(p.MaxTxExUnits.Steps),
},
MaxExecutionUnitsPerBlock: &cardano.ExUnits{
Memory: uint64(p.MaxBlockExUnits.Mem),
Memory: uint64(p.MaxBlockExUnits.Memory),
Steps: uint64(p.MaxBlockExUnits.Steps),
},
}
Expand Down
24 changes: 12 additions & 12 deletions ledger/alonzo/pparams_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,9 @@ func TestAlonzoProtocolParamsUpdate(t *testing.T) {
},
},
},
MaxTxExUnits: common.ExUnit{
Mem: 1,
Steps: 1,
MaxTxExUnits: common.ExUnits{
Memory: 1,
Steps: 1,
},
},
updateCbor: "a2021a0001200014821a00aba9501b00000002540be400",
Expand All @@ -103,9 +103,9 @@ func TestAlonzoProtocolParamsUpdate(t *testing.T) {
},
},
},
MaxTxExUnits: common.ExUnit{
Mem: 11250000,
Steps: 10000000000,
MaxTxExUnits: common.ExUnits{
Memory: 11250000,
Steps: 10000000000,
},
},
},
Expand Down Expand Up @@ -214,13 +214,13 @@ func TestAlonzoUtxorpc(t *testing.T) {
MemPrice: &cbor.Rat{Rat: big.NewRat(1, 2)},
StepPrice: &cbor.Rat{Rat: big.NewRat(2, 3)},
},
MaxTxExUnits: common.ExUnit{
Mem: 1000000,
Steps: 200000,
MaxTxExUnits: common.ExUnits{
Memory: 1000000,
Steps: 200000,
},
MaxBlockExUnits: common.ExUnit{
Mem: 5000000,
Steps: 1000000,
MaxBlockExUnits: common.ExUnits{
Memory: 5000000,
Steps: 1000000,
},
CostModels: map[uint][]int64{
1: {100, 200, 300},
Expand Down
12 changes: 6 additions & 6 deletions ledger/babbage/pparams.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ type BabbageProtocolParameters struct {
AdaPerUtxoByte uint64
CostModels map[uint][]int64
ExecutionCosts common.ExUnitPrice
MaxTxExUnits common.ExUnit
MaxBlockExUnits common.ExUnit
MaxTxExUnits common.ExUnits
MaxBlockExUnits common.ExUnits
MaxValueSize uint
CollateralPercentage uint
MaxCollateralInputs uint
Expand Down Expand Up @@ -143,8 +143,8 @@ type BabbageProtocolParameterUpdate struct {
AdaPerUtxoByte *uint64 `cbor:"17,keyasint"`
CostModels map[uint][]int64 `cbor:"18,keyasint"`
ExecutionCosts *common.ExUnitPrice `cbor:"19,keyasint"`
MaxTxExUnits *common.ExUnit `cbor:"20,keyasint"`
MaxBlockExUnits *common.ExUnit `cbor:"21,keyasint"`
MaxTxExUnits *common.ExUnits `cbor:"20,keyasint"`
MaxBlockExUnits *common.ExUnits `cbor:"21,keyasint"`
MaxValueSize *uint `cbor:"22,keyasint"`
CollateralPercentage *uint `cbor:"23,keyasint"`
MaxCollateralInputs *uint `cbor:"24,keyasint"`
Expand Down Expand Up @@ -229,11 +229,11 @@ func (p *BabbageProtocolParameters) Utxorpc() *cardano.PParams {
},
},
MaxExecutionUnitsPerTransaction: &cardano.ExUnits{
Memory: uint64(p.MaxTxExUnits.Mem),
Memory: uint64(p.MaxTxExUnits.Memory),
Steps: uint64(p.MaxTxExUnits.Steps),
},
MaxExecutionUnitsPerBlock: &cardano.ExUnits{
Memory: uint64(p.MaxBlockExUnits.Mem),
Memory: uint64(p.MaxBlockExUnits.Memory),
Steps: uint64(p.MaxBlockExUnits.Steps),
},
}
Expand Down
24 changes: 12 additions & 12 deletions ledger/babbage/pparams_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,17 @@ func TestBabbageProtocolParamsUpdate(t *testing.T) {
{
startParams: babbage.BabbageProtocolParameters{
MaxBlockBodySize: 1,
MaxTxExUnits: common.ExUnit{
Mem: 1,
Steps: 1,
MaxTxExUnits: common.ExUnits{
Memory: 1,
Steps: 1,
},
},
updateCbor: "a2021a0001200014821a00aba9501b00000002540be400",
expectedParams: babbage.BabbageProtocolParameters{
MaxBlockBodySize: 73728,
MaxTxExUnits: common.ExUnit{
Mem: 11250000,
Steps: 10000000000,
MaxTxExUnits: common.ExUnits{
Memory: 11250000,
Steps: 10000000000,
},
},
},
Expand Down Expand Up @@ -463,13 +463,13 @@ func TestBabbageUtxorpc(t *testing.T) {
MemPrice: &cbor.Rat{Rat: big.NewRat(1, 2)},
StepPrice: &cbor.Rat{Rat: big.NewRat(2, 3)},
},
MaxTxExUnits: common.ExUnit{
Mem: 1000000,
Steps: 200000,
MaxTxExUnits: common.ExUnits{
Memory: 1000000,
Steps: 200000,
},
MaxBlockExUnits: common.ExUnit{
Mem: 5000000,
Steps: 1000000,
MaxBlockExUnits: common.ExUnits{
Memory: 5000000,
Steps: 1000000,
},
CostModels: map[uint][]int64{
1: {100, 200, 300},
Expand Down
4 changes: 2 additions & 2 deletions ledger/common/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -318,8 +318,8 @@ func (i IssuerVkey) PoolId() string {
return encoded
}

// RedeemerExUnits represents the steps and memory usage for script execution
type RedeemerExUnits struct {
// ExUnits represents the steps and memory usage for script execution
type ExUnits struct {
cbor.StructAsArray
Memory uint64
Steps uint64
Expand Down
6 changes: 0 additions & 6 deletions ledger/common/pparams.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,6 @@ type ProtocolParameters interface {
Utxorpc() *cardano.PParams
}

type ExUnit struct {
cbor.StructAsArray
Mem uint
Steps uint
}

type ExUnitPrice struct {
cbor.StructAsArray
MemPrice *cbor.Rat
Expand Down
2 changes: 1 addition & 1 deletion ledger/common/tx.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ type TransactionWitnessSet interface {

type TransactionWitnessRedeemers interface {
Indexes(RedeemerTag) []uint
Value(uint, RedeemerTag) (cbor.LazyValue, RedeemerExUnits)
Value(uint, RedeemerTag) (cbor.LazyValue, ExUnits)
}

type Utxo struct {
Expand Down
6 changes: 3 additions & 3 deletions ledger/conway/conway.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ type ConwayRedeemerKey struct {
type ConwayRedeemerValue struct {
cbor.StructAsArray
Data cbor.LazyValue
ExUnits common.RedeemerExUnits
ExUnits common.ExUnits
}

type ConwayRedeemers struct {
Expand Down Expand Up @@ -203,15 +203,15 @@ func (r ConwayRedeemers) Indexes(tag common.RedeemerTag) []uint {
func (r ConwayRedeemers) Value(
index uint,
tag common.RedeemerTag,
) (cbor.LazyValue, common.RedeemerExUnits) {
) (cbor.LazyValue, common.ExUnits) {
redeemer, ok := r.Redeemers[ConwayRedeemerKey{
Tag: tag,
Index: uint32(index), // #nosec G115
}]
if ok {
return redeemer.Data, redeemer.ExUnits
}
return cbor.LazyValue{}, common.RedeemerExUnits{}
return cbor.LazyValue{}, common.ExUnits{}
}

type ConwayTransactionWitnessSet struct {
Expand Down
8 changes: 4 additions & 4 deletions ledger/conway/pparams.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ type ConwayProtocolParameters struct {
AdaPerUtxoByte uint64
CostModels map[uint][]int64
ExecutionCosts common.ExUnitPrice
MaxTxExUnits common.ExUnit
MaxBlockExUnits common.ExUnit
MaxTxExUnits common.ExUnits
MaxBlockExUnits common.ExUnits
MaxValueSize uint
CollateralPercentage uint
MaxCollateralInputs uint
Expand Down Expand Up @@ -132,11 +132,11 @@ func (p *ConwayProtocolParameters) Utxorpc() *cardano.PParams {
},
},
MaxExecutionUnitsPerTransaction: &cardano.ExUnits{
Memory: uint64(p.MaxTxExUnits.Mem),
Memory: uint64(p.MaxTxExUnits.Memory),
Steps: uint64(p.MaxTxExUnits.Steps),
},
MaxExecutionUnitsPerBlock: &cardano.ExUnits{
Memory: uint64(p.MaxBlockExUnits.Mem),
Memory: uint64(p.MaxBlockExUnits.Memory),
Steps: uint64(p.MaxBlockExUnits.Steps),
},
}
Expand Down
24 changes: 12 additions & 12 deletions ledger/conway/pparams_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,17 @@ func TestConwayProtocolParamsUpdate(t *testing.T) {
{
startParams: conway.ConwayProtocolParameters{
MaxBlockBodySize: 1,
MaxTxExUnits: common.ExUnit{
Mem: 1,
Steps: 1,
MaxTxExUnits: common.ExUnits{
Memory: 1,
Steps: 1,
},
},
updateCbor: "a2021a0001200014821a00aba9501b00000002540be400",
expectedParams: conway.ConwayProtocolParameters{
MaxBlockBodySize: 73728,
MaxTxExUnits: common.ExUnit{
Mem: 11250000,
Steps: 10000000000,
MaxTxExUnits: common.ExUnits{
Memory: 11250000,
Steps: 10000000000,
},
},
},
Expand Down Expand Up @@ -506,13 +506,13 @@ func TestUtxorpc(t *testing.T) {
MemPrice: &cbor.Rat{Rat: big.NewRat(1, 2)},
StepPrice: &cbor.Rat{Rat: big.NewRat(2, 3)},
},
MaxTxExUnits: common.ExUnit{
Mem: 1000000,
Steps: 200000,
MaxTxExUnits: common.ExUnits{
Memory: 1000000,
Steps: 200000,
},
MaxBlockExUnits: common.ExUnit{
Mem: 5000000,
Steps: 1000000,
MaxBlockExUnits: common.ExUnits{
Memory: 5000000,
Steps: 1000000,
},
CostModels: map[uint][]int64{
1: {100, 200, 300},
Expand Down