From 3436922702d75862462eb361119db5ebf9a3074b Mon Sep 17 00:00:00 2001 From: Aurora Gaffney Date: Wed, 18 Sep 2024 16:30:29 -0500 Subject: [PATCH] feat: function to get block/tx numeric type (#711) Fixes #205 --- ledger/allegra/allegra.go | 8 ++++++++ ledger/alonzo/alonzo.go | 8 ++++++++ ledger/babbage/babbage.go | 8 ++++++++ ledger/block.go | 1 + ledger/byron/byron.go | 12 ++++++++++++ ledger/common/tx.go | 1 + ledger/conway/conway.go | 8 ++++++++ ledger/mary/mary.go | 8 ++++++++ ledger/shelley/shelley.go | 8 ++++++++ 9 files changed, 62 insertions(+) diff --git a/ledger/allegra/allegra.go b/ledger/allegra/allegra.go index 1c91ce78..82b4ac4c 100644 --- a/ledger/allegra/allegra.go +++ b/ledger/allegra/allegra.go @@ -60,6 +60,10 @@ func (b *AllegraBlock) UnmarshalCBOR(cborData []byte) error { return b.UnmarshalCbor(cborData, b) } +func (AllegraBlock) Type() int { + return BlockTypeAllegra +} + func (b *AllegraBlock) Hash() string { return b.Header.Hash() } @@ -160,6 +164,10 @@ type AllegraTransaction struct { TxMetadata *cbor.LazyValue } +func (AllegraTransaction) Type() int { + return TxTypeAllegra +} + func (t AllegraTransaction) Hash() string { return t.Body.Hash() } diff --git a/ledger/alonzo/alonzo.go b/ledger/alonzo/alonzo.go index 028a2035..23c69294 100644 --- a/ledger/alonzo/alonzo.go +++ b/ledger/alonzo/alonzo.go @@ -63,6 +63,10 @@ func (b *AlonzoBlock) UnmarshalCBOR(cborData []byte) error { return b.UnmarshalCbor(cborData, b) } +func (AlonzoBlock) Type() int { + return BlockTypeAlonzo +} + func (b *AlonzoBlock) Hash() string { return b.Header.Hash() } @@ -317,6 +321,10 @@ type AlonzoTransaction struct { TxMetadata *cbor.LazyValue } +func (AlonzoTransaction) Type() int { + return TxTypeAlonzo +} + func (t AlonzoTransaction) Hash() string { return t.Body.Hash() } diff --git a/ledger/babbage/babbage.go b/ledger/babbage/babbage.go index 6ce818d2..04f3a8b4 100644 --- a/ledger/babbage/babbage.go +++ b/ledger/babbage/babbage.go @@ -64,6 +64,10 @@ func (b *BabbageBlock) UnmarshalCBOR(cborData []byte) error { return b.UnmarshalCbor(cborData, b) } +func (BabbageBlock) Type() int { + return BlockTypeBabbage +} + func (b *BabbageBlock) Hash() string { return b.Header.Hash() } @@ -491,6 +495,10 @@ type BabbageTransaction struct { TxMetadata *cbor.LazyValue } +func (BabbageTransaction) Type() int { + return TxTypeBabbage +} + func (t BabbageTransaction) Hash() string { return t.Body.Hash() } diff --git a/ledger/block.go b/ledger/block.go index 7d2fbdb9..967bb47a 100644 --- a/ledger/block.go +++ b/ledger/block.go @@ -22,6 +22,7 @@ import ( type Block interface { BlockHeader + Type() int Transactions() []Transaction Utxorpc() *utxorpc.Block } diff --git a/ledger/byron/byron.go b/ledger/byron/byron.go index 57fa4777..51af843f 100644 --- a/ledger/byron/byron.go +++ b/ledger/byron/byron.go @@ -151,6 +151,10 @@ func (t *ByronTransaction) UnmarshalCBOR(data []byte) error { return t.UnmarshalCbor(data, t) } +func (ByronTransaction) Type() int { + return TxTypeByron +} + func (t *ByronTransaction) Hash() string { if t.hash == "" { tmpHash := common.Blake2b256Hash(t.Cbor()) @@ -516,6 +520,10 @@ func (b *ByronMainBlock) UnmarshalCBOR(cborData []byte) error { return b.UnmarshalCbor(cborData, b) } +func (ByronMainBlock) Type() int { + return BlockTypeByronMain +} + func (b *ByronMainBlock) Hash() string { return b.Header.Hash() } @@ -566,6 +574,10 @@ func (b *ByronEpochBoundaryBlock) UnmarshalCBOR(cborData []byte) error { return b.UnmarshalCbor(cborData, b) } +func (ByronEpochBoundaryBlock) Type() int { + return BlockTypeByronEbb +} + func (b *ByronEpochBoundaryBlock) Hash() string { return b.Header.Hash() } diff --git a/ledger/common/tx.go b/ledger/common/tx.go index 7e1992d2..ae36457b 100644 --- a/ledger/common/tx.go +++ b/ledger/common/tx.go @@ -22,6 +22,7 @@ import ( type Transaction interface { TransactionBody + Type() int Metadata() *cbor.LazyValue IsValid() bool Consumed() []TransactionInput diff --git a/ledger/conway/conway.go b/ledger/conway/conway.go index a05d5b66..c59916a8 100644 --- a/ledger/conway/conway.go +++ b/ledger/conway/conway.go @@ -63,6 +63,10 @@ func (b *ConwayBlock) UnmarshalCBOR(cborData []byte) error { return b.UnmarshalCbor(cborData, b) } +func (ConwayBlock) Type() int { + return BlockTypeConway +} + func (b *ConwayBlock) Hash() string { return b.Header.Hash() } @@ -307,6 +311,10 @@ type ConwayTransaction struct { TxMetadata *cbor.LazyValue } +func (ConwayTransaction) Type() int { + return TxTypeConway +} + func (t ConwayTransaction) Hash() string { return t.Body.Hash() } diff --git a/ledger/mary/mary.go b/ledger/mary/mary.go index 0eefc3fc..62be60f8 100644 --- a/ledger/mary/mary.go +++ b/ledger/mary/mary.go @@ -62,6 +62,10 @@ func (b *MaryBlock) UnmarshalCBOR(cborData []byte) error { return b.UnmarshalCbor(cborData, b) } +func (MaryBlock) Type() int { + return BlockTypeMary +} + func (b *MaryBlock) Hash() string { return b.Header.Hash() } @@ -172,6 +176,10 @@ type MaryTransaction struct { TxMetadata *cbor.LazyValue } +func (MaryTransaction) Type() int { + return TxTypeMary +} + type MaryTransactionWitnessSet struct { shelley.ShelleyTransactionWitnessSet Script []interface{} `cbor:"4,keyasint,omitempty"` diff --git a/ledger/shelley/shelley.go b/ledger/shelley/shelley.go index 03924f23..501fe412 100644 --- a/ledger/shelley/shelley.go +++ b/ledger/shelley/shelley.go @@ -59,6 +59,10 @@ func (b *ShelleyBlock) UnmarshalCBOR(cborData []byte) error { return b.UnmarshalCbor(cborData, b) } +func (ShelleyBlock) Type() int { + return BlockTypeShelley +} + func (b *ShelleyBlock) Hash() string { return b.Header.Hash() } @@ -436,6 +440,10 @@ type ShelleyTransaction struct { TxMetadata *cbor.LazyValue } +func (ShelleyTransaction) Type() int { + return TxTypeShelley +} + func (t ShelleyTransaction) Hash() string { return t.Body.Hash() }