@@ -122,7 +122,12 @@ func (h *AlonzoBlockHeader) Era() Era {
122122
123123type AlonzoTransactionBody struct {
124124 MaryTransactionBody
125- TxOutputs []AlonzoTransactionOutput `cbor:"1,keyasint,omitempty"`
125+ TxOutputs []AlonzoTransactionOutput `cbor:"1,keyasint,omitempty"`
126+ Update struct {
127+ cbor.StructAsArray
128+ ProtocolParamUpdates map [Blake2b224 ]AlonzoProtocolParameterUpdate
129+ Epoch uint64
130+ } `cbor:"6,keyasint,omitempty"`
126131 ScriptDataHash Blake2b256 `cbor:"11,keyasint,omitempty"`
127132 Collateral []ShelleyTransactionInput `cbor:"13,keyasint,omitempty"`
128133 RequiredSigners []Blake2b224 `cbor:"14,keyasint,omitempty"`
@@ -294,6 +299,44 @@ func (t *AlonzoTransaction) Utxorpc() *utxorpc.Tx {
294299 return t .Body .Utxorpc ()
295300}
296301
302+ type ExUnit struct {
303+ cbor.StructAsArray
304+ Mem uint
305+ Steps uint
306+ }
307+
308+ type ExUnitPrice struct {
309+ cbor.StructAsArray
310+ MemPrice uint
311+ StepPrice uint
312+ }
313+
314+ type AlonzoProtocolParameters struct {
315+ MaryProtocolParameters
316+ MinPoolCost uint
317+ AdaPerUtxoByte uint
318+ CostModels uint
319+ ExecutionCosts uint
320+ MaxTxExUnits uint
321+ MaxBlockExUnits uint
322+ MaxValueSize uint
323+ CollateralPercentage uint
324+ MaxCollateralInputs uint
325+ }
326+
327+ type AlonzoProtocolParameterUpdate struct {
328+ MaryProtocolParameterUpdate
329+ MinPoolCost uint `cbor:"16,keyasint"`
330+ AdaPerUtxoByte uint `cbor:"17,keyasint"`
331+ CostModels map [string ][]uint `cbor:"18,keyasint"`
332+ ExecutionCosts * ExUnitPrice `cbor:"19,keyasint"`
333+ MaxTxExUnits * ExUnit `cbor:"20,keyasint"`
334+ MaxBlockExUnits * ExUnit `cbor:"21,keyasint"`
335+ MaxValueSize uint `cbor:"22,keyasint"`
336+ CollateralPercentage uint `cbor:"23,keyasint"`
337+ MaxCollateralInputs uint `cbor:"24,keyasint"`
338+ }
339+
297340func NewAlonzoBlockFromCbor (data []byte ) (* AlonzoBlock , error ) {
298341 var alonzoBlock AlonzoBlock
299342 if _ , err := cbor .Decode (data , & alonzoBlock ); err != nil {
0 commit comments