Skip to content

Commit 84270ee

Browse files
committed
refactor: use separate type for TX pparam update
We also switch to using a pointer to give us a more usable zero value for CBOR encoding Fixes #1058 Signed-off-by: Aurora Gaffney <[email protected]>
1 parent 3bbd004 commit 84270ee

File tree

6 files changed

+81
-69
lines changed

6 files changed

+81
-69
lines changed

ledger/allegra/allegra.go

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -144,21 +144,23 @@ func (h *AllegraBlockHeader) Era() common.Era {
144144
return EraAllegra
145145
}
146146

147+
type AllegraTransactionPparamUpdate struct {
148+
cbor.StructAsArray
149+
ProtocolParamUpdates map[common.Blake2b224]AllegraProtocolParameterUpdate
150+
Epoch uint64
151+
}
152+
147153
type AllegraTransactionBody struct {
148154
common.TransactionBodyBase
149-
TxInputs shelley.ShelleyTransactionInputSet `cbor:"0,keyasint,omitempty"`
150-
TxOutputs []shelley.ShelleyTransactionOutput `cbor:"1,keyasint,omitempty"`
151-
TxFee uint64 `cbor:"2,keyasint,omitempty"`
152-
Ttl uint64 `cbor:"3,keyasint,omitempty"`
153-
TxCertificates []common.CertificateWrapper `cbor:"4,keyasint,omitempty"`
154-
TxWithdrawals map[*common.Address]uint64 `cbor:"5,keyasint,omitempty"`
155-
Update struct {
156-
cbor.StructAsArray
157-
ProtocolParamUpdates map[common.Blake2b224]AllegraProtocolParameterUpdate
158-
Epoch uint64
159-
} `cbor:"6,keyasint,omitempty"`
160-
TxAuxDataHash *common.Blake2b256 `cbor:"7,keyasint,omitempty"`
161-
TxValidityIntervalStart uint64 `cbor:"8,keyasint,omitempty"`
155+
TxInputs shelley.ShelleyTransactionInputSet `cbor:"0,keyasint,omitempty"`
156+
TxOutputs []shelley.ShelleyTransactionOutput `cbor:"1,keyasint,omitempty"`
157+
TxFee uint64 `cbor:"2,keyasint,omitempty"`
158+
Ttl uint64 `cbor:"3,keyasint,omitempty"`
159+
TxCertificates []common.CertificateWrapper `cbor:"4,keyasint,omitempty"`
160+
TxWithdrawals map[*common.Address]uint64 `cbor:"5,keyasint,omitempty"`
161+
Update *AllegraTransactionPparamUpdate `cbor:"6,keyasint,omitempty"`
162+
TxAuxDataHash *common.Blake2b256 `cbor:"7,keyasint,omitempty"`
163+
TxValidityIntervalStart uint64 `cbor:"8,keyasint,omitempty"`
162164
}
163165

164166
func (b *AllegraTransactionBody) UnmarshalCBOR(cborData []byte) error {

ledger/alonzo/alonzo.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -153,19 +153,21 @@ func (h *AlonzoBlockHeader) Era() common.Era {
153153
return EraAlonzo
154154
}
155155

156+
type AlonzoTransactionPparamUpdate struct {
157+
cbor.StructAsArray
158+
ProtocolParamUpdates map[common.Blake2b224]AlonzoProtocolParameterUpdate
159+
Epoch uint64
160+
}
161+
156162
type AlonzoTransactionBody struct {
157163
common.TransactionBodyBase
158-
TxInputs shelley.ShelleyTransactionInputSet `cbor:"0,keyasint,omitempty"`
159-
TxOutputs []AlonzoTransactionOutput `cbor:"1,keyasint,omitempty"`
160-
TxFee uint64 `cbor:"2,keyasint,omitempty"`
161-
Ttl uint64 `cbor:"3,keyasint,omitempty"`
162-
TxCertificates []common.CertificateWrapper `cbor:"4,keyasint,omitempty"`
163-
TxWithdrawals map[*common.Address]uint64 `cbor:"5,keyasint,omitempty"`
164-
Update struct {
165-
cbor.StructAsArray
166-
ProtocolParamUpdates map[common.Blake2b224]AlonzoProtocolParameterUpdate
167-
Epoch uint64
168-
} `cbor:"6,keyasint,omitempty"`
164+
TxInputs shelley.ShelleyTransactionInputSet `cbor:"0,keyasint,omitempty"`
165+
TxOutputs []AlonzoTransactionOutput `cbor:"1,keyasint,omitempty"`
166+
TxFee uint64 `cbor:"2,keyasint,omitempty"`
167+
Ttl uint64 `cbor:"3,keyasint,omitempty"`
168+
TxCertificates []common.CertificateWrapper `cbor:"4,keyasint,omitempty"`
169+
TxWithdrawals map[*common.Address]uint64 `cbor:"5,keyasint,omitempty"`
170+
Update *AlonzoTransactionPparamUpdate `cbor:"6,keyasint,omitempty"`
169171
TxAuxDataHash *common.Blake2b256 `cbor:"7,keyasint,omitempty"`
170172
TxValidityIntervalStart uint64 `cbor:"8,keyasint,omitempty"`
171173
TxMint *common.MultiAsset[common.MultiAssetTypeMint] `cbor:"9,keyasint,omitempty"`

ledger/babbage/babbage.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -226,19 +226,21 @@ func (h *BabbageBlockHeader) Era() common.Era {
226226
return EraBabbage
227227
}
228228

229+
type BabbageTransactionPparamUpdate struct {
230+
cbor.StructAsArray
231+
ProtocolParamUpdates map[common.Blake2b224]BabbageProtocolParameterUpdate
232+
Epoch uint64
233+
}
234+
229235
type BabbageTransactionBody struct {
230236
common.TransactionBodyBase
231-
TxInputs shelley.ShelleyTransactionInputSet `cbor:"0,keyasint,omitempty"`
232-
TxOutputs []BabbageTransactionOutput `cbor:"1,keyasint,omitempty"`
233-
TxFee uint64 `cbor:"2,keyasint,omitempty"`
234-
Ttl uint64 `cbor:"3,keyasint,omitempty"`
235-
TxCertificates []common.CertificateWrapper `cbor:"4,keyasint,omitempty"`
236-
TxWithdrawals map[*common.Address]uint64 `cbor:"5,keyasint,omitempty"`
237-
Update struct {
238-
cbor.StructAsArray
239-
ProtocolParamUpdates map[common.Blake2b224]BabbageProtocolParameterUpdate
240-
Epoch uint64
241-
} `cbor:"6,keyasint,omitempty"`
237+
TxInputs shelley.ShelleyTransactionInputSet `cbor:"0,keyasint,omitempty"`
238+
TxOutputs []BabbageTransactionOutput `cbor:"1,keyasint,omitempty"`
239+
TxFee uint64 `cbor:"2,keyasint,omitempty"`
240+
Ttl uint64 `cbor:"3,keyasint,omitempty"`
241+
TxCertificates []common.CertificateWrapper `cbor:"4,keyasint,omitempty"`
242+
TxWithdrawals map[*common.Address]uint64 `cbor:"5,keyasint,omitempty"`
243+
Update *BabbageTransactionPparamUpdate `cbor:"6,keyasint,omitempty"`
242244
TxAuxDataHash *common.Blake2b256 `cbor:"7,keyasint,omitempty"`
243245
TxValidityIntervalStart uint64 `cbor:"8,keyasint,omitempty"`
244246
TxMint *common.MultiAsset[common.MultiAssetTypeMint] `cbor:"9,keyasint,omitempty"`

ledger/conway/conway.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -308,19 +308,21 @@ func (s *ConwayTransactionInputSet) SetItems(
308308
copy(s.items, items)
309309
}
310310

311+
type ConwayTransactionPparamUpdate struct {
312+
cbor.StructAsArray
313+
ProtocolParamUpdates map[common.Blake2b224]babbage.BabbageProtocolParameterUpdate
314+
Epoch uint64
315+
}
316+
311317
type ConwayTransactionBody struct {
312318
common.TransactionBodyBase
313-
TxInputs ConwayTransactionInputSet `cbor:"0,keyasint,omitempty"`
314-
TxOutputs []babbage.BabbageTransactionOutput `cbor:"1,keyasint,omitempty"`
315-
TxFee uint64 `cbor:"2,keyasint,omitempty"`
316-
Ttl uint64 `cbor:"3,keyasint,omitempty"`
317-
TxCertificates []common.CertificateWrapper `cbor:"4,keyasint,omitempty"`
318-
TxWithdrawals map[*common.Address]uint64 `cbor:"5,keyasint,omitempty"`
319-
Update struct {
320-
cbor.StructAsArray
321-
ProtocolParamUpdates map[common.Blake2b224]babbage.BabbageProtocolParameterUpdate
322-
Epoch uint64
323-
} `cbor:"6,keyasint,omitempty"`
319+
TxInputs ConwayTransactionInputSet `cbor:"0,keyasint,omitempty"`
320+
TxOutputs []babbage.BabbageTransactionOutput `cbor:"1,keyasint,omitempty"`
321+
TxFee uint64 `cbor:"2,keyasint,omitempty"`
322+
Ttl uint64 `cbor:"3,keyasint,omitempty"`
323+
TxCertificates []common.CertificateWrapper `cbor:"4,keyasint,omitempty"`
324+
TxWithdrawals map[*common.Address]uint64 `cbor:"5,keyasint,omitempty"`
325+
Update *ConwayTransactionPparamUpdate `cbor:"6,keyasint,omitempty"`
324326
TxAuxDataHash *common.Blake2b256 `cbor:"7,keyasint,omitempty"`
325327
TxValidityIntervalStart uint64 `cbor:"8,keyasint,omitempty"`
326328
TxMint *common.MultiAsset[common.MultiAssetTypeMint] `cbor:"9,keyasint,omitempty"`

ledger/mary/mary.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -145,19 +145,21 @@ func (h *MaryBlockHeader) Era() common.Era {
145145
return EraMary
146146
}
147147

148+
type MaryTransactionPparamUpdate struct {
149+
cbor.StructAsArray
150+
ProtocolParamUpdates map[common.Blake2b224]MaryProtocolParameterUpdate
151+
Epoch uint64
152+
}
153+
148154
type MaryTransactionBody struct {
149155
common.TransactionBodyBase
150-
TxInputs shelley.ShelleyTransactionInputSet `cbor:"0,keyasint,omitempty"`
151-
TxOutputs []MaryTransactionOutput `cbor:"1,keyasint,omitempty"`
152-
TxFee uint64 `cbor:"2,keyasint,omitempty"`
153-
Ttl uint64 `cbor:"3,keyasint,omitempty"`
154-
TxCertificates []common.CertificateWrapper `cbor:"4,keyasint,omitempty"`
155-
TxWithdrawals map[*common.Address]uint64 `cbor:"5,keyasint,omitempty"`
156-
Update struct {
157-
cbor.StructAsArray
158-
ProtocolParamUpdates map[common.Blake2b224]MaryProtocolParameterUpdate
159-
Epoch uint64
160-
} `cbor:"6,keyasint,omitempty"`
156+
TxInputs shelley.ShelleyTransactionInputSet `cbor:"0,keyasint,omitempty"`
157+
TxOutputs []MaryTransactionOutput `cbor:"1,keyasint,omitempty"`
158+
TxFee uint64 `cbor:"2,keyasint,omitempty"`
159+
Ttl uint64 `cbor:"3,keyasint,omitempty"`
160+
TxCertificates []common.CertificateWrapper `cbor:"4,keyasint,omitempty"`
161+
TxWithdrawals map[*common.Address]uint64 `cbor:"5,keyasint,omitempty"`
162+
Update *MaryTransactionPparamUpdate `cbor:"6,keyasint,omitempty"`
161163
TxAuxDataHash *common.Blake2b256 `cbor:"7,keyasint,omitempty"`
162164
TxValidityIntervalStart uint64 `cbor:"8,keyasint,omitempty"`
163165
TxMint *common.MultiAsset[common.MultiAssetTypeMint] `cbor:"9,keyasint,omitempty"`

ledger/shelley/shelley.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -207,20 +207,22 @@ func (h *ShelleyBlockHeader) Era() common.Era {
207207
return EraShelley
208208
}
209209

210+
type ShelleyTransactionPparamUpdate struct {
211+
cbor.StructAsArray
212+
ProtocolParamUpdates map[common.Blake2b224]ShelleyProtocolParameterUpdate
213+
Epoch uint64
214+
}
215+
210216
type ShelleyTransactionBody struct {
211217
common.TransactionBodyBase
212-
TxInputs ShelleyTransactionInputSet `cbor:"0,keyasint,omitempty"`
213-
TxOutputs []ShelleyTransactionOutput `cbor:"1,keyasint,omitempty"`
214-
TxFee uint64 `cbor:"2,keyasint,omitempty"`
215-
Ttl uint64 `cbor:"3,keyasint,omitempty"`
216-
TxCertificates []common.CertificateWrapper `cbor:"4,keyasint,omitempty"`
217-
TxWithdrawals map[*common.Address]uint64 `cbor:"5,keyasint,omitempty"`
218-
Update struct {
219-
cbor.StructAsArray
220-
ProtocolParamUpdates map[common.Blake2b224]ShelleyProtocolParameterUpdate
221-
Epoch uint64
222-
} `cbor:"6,keyasint,omitempty"`
223-
TxAuxDataHash *common.Blake2b256 `cbor:"7,keyasint,omitempty"`
218+
TxInputs ShelleyTransactionInputSet `cbor:"0,keyasint,omitempty"`
219+
TxOutputs []ShelleyTransactionOutput `cbor:"1,keyasint,omitempty"`
220+
TxFee uint64 `cbor:"2,keyasint,omitempty"`
221+
Ttl uint64 `cbor:"3,keyasint,omitempty"`
222+
TxCertificates []common.CertificateWrapper `cbor:"4,keyasint,omitempty"`
223+
TxWithdrawals map[*common.Address]uint64 `cbor:"5,keyasint,omitempty"`
224+
Update *ShelleyTransactionPparamUpdate `cbor:"6,keyasint,omitempty"`
225+
TxAuxDataHash *common.Blake2b256 `cbor:"7,keyasint,omitempty"`
224226
}
225227

226228
func (b *ShelleyTransactionBody) UnmarshalCBOR(cborData []byte) error {

0 commit comments

Comments
 (0)