From 9bc1c780d77f8a9b6fa18a32e6fa1f70102222ff Mon Sep 17 00:00:00 2001 From: Ales Verbic Date: Sun, 14 Sep 2025 21:58:01 -0400 Subject: [PATCH] fix: address nilaway issues Signed-off-by: Ales Verbic --- ledger/allegra/allegra.go | 2 +- ledger/allegra/pparams_test.go | 4 ++-- ledger/alonzo/alonzo.go | 2 +- ledger/alonzo/pparams_test.go | 7 +++++-- ledger/babbage/babbage.go | 2 +- ledger/babbage/pparams_test.go | 4 ++-- ledger/common/script_test.go | 6 +++++- ledger/common/tx.go | 16 ++++++++-------- ledger/conway/conway.go | 2 +- ledger/conway/pparams_test.go | 4 ++-- ledger/mary/mary.go | 2 +- ledger/mary/pparams_test.go | 4 ++-- ledger/shelley/pparams_test.go | 4 ++-- ledger/shelley/shelley.go | 2 +- 14 files changed, 34 insertions(+), 27 deletions(-) diff --git a/ledger/allegra/allegra.go b/ledger/allegra/allegra.go index d13ea67c..a53aa91e 100644 --- a/ledger/allegra/allegra.go +++ b/ledger/allegra/allegra.go @@ -230,7 +230,7 @@ func (b *AllegraTransactionBody) AuxDataHash() *common.Blake2b256 { } func (b *AllegraTransactionBody) Utxorpc() (*utxorpc.Tx, error) { - return common.TransactionBodyToUtxorpc(b), nil + return common.TransactionBodyToUtxorpc(b) } type AllegraTransaction struct { diff --git a/ledger/allegra/pparams_test.go b/ledger/allegra/pparams_test.go index a03d1130..e1f4346f 100644 --- a/ledger/allegra/pparams_test.go +++ b/ledger/allegra/pparams_test.go @@ -164,7 +164,7 @@ func TestAllegraTransactionBody_Utxorpc(t *testing.T) { // Run Utxorpc conversion actual, err := txBody.Utxorpc() if err != nil { - t.Errorf("Failed to convert the transaction") + t.Fatalf("Could not convert transaction body to utxorpc format: %v", err) } // Check that the fee matches @@ -227,7 +227,7 @@ func TestAllegraTransaction_Utxorpc(t *testing.T) { // Run Utxorpc conversion actual, err := tx.Utxorpc() if err != nil { - t.Errorf("Failed to convert the transaction") + t.Fatalf("Could not convert transaction to utxorpc format: %v", err) } // Assertion checks if actual.Fee != tx.Fee() { diff --git a/ledger/alonzo/alonzo.go b/ledger/alonzo/alonzo.go index f4be8126..116f1da0 100644 --- a/ledger/alonzo/alonzo.go +++ b/ledger/alonzo/alonzo.go @@ -268,7 +268,7 @@ func (b *AlonzoTransactionBody) ScriptDataHash() *common.Blake2b256 { } func (b *AlonzoTransactionBody) Utxorpc() (*utxorpc.Tx, error) { - return common.TransactionBodyToUtxorpc(b), nil + return common.TransactionBodyToUtxorpc(b) } type AlonzoTransactionOutput struct { diff --git a/ledger/alonzo/pparams_test.go b/ledger/alonzo/pparams_test.go index 16802880..77d24b5c 100644 --- a/ledger/alonzo/pparams_test.go +++ b/ledger/alonzo/pparams_test.go @@ -261,6 +261,9 @@ func TestScientificNotationInCostModels(t *testing.T) { } expected := []int64{2477736, 1500000, 1000000} + if params.CostModels == nil || params.CostModels[alonzo.PlutusV1Key] == nil { + t.Fatal("CostModels not properly initialized") + } for i := range 3 { if params.CostModels[alonzo.PlutusV1Key][i] != expected[i] { t.Errorf("parameter %d conversion failed: got %d, want %d", @@ -517,7 +520,7 @@ func TestAlonzoTransactionBody_Utxorpc(t *testing.T) { // Run Utxorpc conversion got, err := body.Utxorpc() if err != nil { - t.Errorf("Failed to convert the transaction") + t.Fatalf("Could not convert transaction body to utxorpc format: %v", err) } // Assertion checks @@ -580,7 +583,7 @@ func TestAlonzoTransaction_Utxorpc(t *testing.T) { // Run Utxorpc conversion got, err := tx.Utxorpc() if err != nil { - t.Errorf("Failed to convert the transaction") + t.Fatalf("Could not convert transaction to utxorpc format: %v", err) } // Assertion checks diff --git a/ledger/babbage/babbage.go b/ledger/babbage/babbage.go index 1abe2288..7298e6b1 100644 --- a/ledger/babbage/babbage.go +++ b/ledger/babbage/babbage.go @@ -364,7 +364,7 @@ func (b *BabbageTransactionBody) TotalCollateral() uint64 { } func (b *BabbageTransactionBody) Utxorpc() (*utxorpc.Tx, error) { - return common.TransactionBodyToUtxorpc(b), nil + return common.TransactionBodyToUtxorpc(b) } const ( diff --git a/ledger/babbage/pparams_test.go b/ledger/babbage/pparams_test.go index 74a0c026..a8addc91 100644 --- a/ledger/babbage/pparams_test.go +++ b/ledger/babbage/pparams_test.go @@ -637,7 +637,7 @@ func TestBabbageTransactionBody_Utxorpc(t *testing.T) { got, err := body.Utxorpc() if err != nil { - t.Fatalf("Utxorpc() conversion failed: %v", err) + t.Fatalf("Could not convert transaction body to utxorpc format: %v", err) } if got.Fee != 100 { t.Errorf("Fee mismatch: got %d, want 100", got.Fee) @@ -682,7 +682,7 @@ func TestBabbageTransaction_Utxorpc(t *testing.T) { got, err := tx.Utxorpc() if err != nil { - t.Fatalf("Utxorpc() failed: %v", err) + t.Fatalf("Could not convert transaction to utxorpc format: %v", err) } if got.Fee != 150 { t.Errorf("Fee mismatch: got %d, want 150", got.Fee) diff --git a/ledger/common/script_test.go b/ledger/common/script_test.go index 849b0ed1..cab6a938 100644 --- a/ledger/common/script_test.go +++ b/ledger/common/script_test.go @@ -54,9 +54,13 @@ func TestScriptRefDecodeEncode(t *testing.T) { } func TestNativeScriptHash(t *testing.T) { - testScriptBytes, _ := hex.DecodeString( + testScriptBytes, err := hex.DecodeString( "820181830301838200581c058a5ab0c66647dcce82d7244f80bfea41ba76c7c9ccaf86a41b00fe8200581c45cbc234959cb619ef54e36c16e7719318592e627cdf1a39bd3d64398200581c85fd53e110449649b709ef0fa93e86d99535bdce5db306ce0e7418fc", ) + // Make nilaway happy + if err != nil { + t.Fatalf("failed to decode hex string: %v", err) + } expectedScriptHash := "1c0053ec18e2c0f7bd4d007fe14243ca220563f9c124381f75c43704" var testScript common.NativeScript if err := testScript.UnmarshalCBOR(testScriptBytes); err != nil { diff --git a/ledger/common/tx.go b/ledger/common/tx.go index 93d509d7..e5d4c211 100644 --- a/ledger/common/tx.go +++ b/ledger/common/tx.go @@ -195,25 +195,25 @@ func (b *TransactionBodyBase) Donation() uint64 { return 0 } -func (b *TransactionBodyBase) Utxorpc() *utxorpc.Tx { - return nil +func (b *TransactionBodyBase) Utxorpc() (*utxorpc.Tx, error) { + return nil, nil } // TransactionBodyToUtxorpc is a common helper for converting TransactionBody to utxorpc.Tx -func TransactionBodyToUtxorpc(tx TransactionBody) *utxorpc.Tx { +func TransactionBodyToUtxorpc(tx TransactionBody) (*utxorpc.Tx, error) { txi := []*utxorpc.TxInput{} txo := []*utxorpc.TxOutput{} for _, i := range tx.Inputs() { input, err := i.Utxorpc() if err != nil { - return nil + return nil, err } txi = append(txi, input) } for _, o := range tx.Outputs() { output, err := o.Utxorpc() if err != nil { - return nil + return nil, err } txo = append(txo, output) } @@ -236,17 +236,17 @@ func TransactionBodyToUtxorpc(tx TransactionBody) *utxorpc.Tx { for _, ri := range tx.ReferenceInputs() { input, err := ri.Utxorpc() if err != nil { - return nil + return nil, err } ret.ReferenceInputs = append(ret.ReferenceInputs, input) } for _, c := range tx.Certificates() { cert, err := c.Utxorpc() if err != nil { - return nil + return nil, err } ret.Certificates = append(ret.Certificates, cert) } - return ret + return ret, nil } diff --git a/ledger/conway/conway.go b/ledger/conway/conway.go index 785b8552..1b635c55 100644 --- a/ledger/conway/conway.go +++ b/ledger/conway/conway.go @@ -508,7 +508,7 @@ func (b *ConwayTransactionBody) Donation() uint64 { } func (b *ConwayTransactionBody) Utxorpc() (*utxorpc.Tx, error) { - return common.TransactionBodyToUtxorpc(b), nil + return common.TransactionBodyToUtxorpc(b) } type ConwayTransaction struct { diff --git a/ledger/conway/pparams_test.go b/ledger/conway/pparams_test.go index 7591b7ac..86b18cd6 100644 --- a/ledger/conway/pparams_test.go +++ b/ledger/conway/pparams_test.go @@ -656,7 +656,7 @@ func TestConwayTransactionBody_Utxorpc(t *testing.T) { got, err := body.Utxorpc() if err != nil { - t.Errorf("Could not get the transaction input") + t.Fatalf("Could not convert the transaction body to utxorpc format %v", err) } if got.Fee != 1000 { @@ -733,7 +733,7 @@ func TestConwayTransaction_Utxorpc(t *testing.T) { got, err := tx.Utxorpc() if err != nil { - t.Errorf("Could not get the transaction input") + t.Fatalf("Could not convert transaction to utxorpc format: %v", err) } if got.Fee != 1000 { diff --git a/ledger/mary/mary.go b/ledger/mary/mary.go index e57b5387..8b164e63 100644 --- a/ledger/mary/mary.go +++ b/ledger/mary/mary.go @@ -238,7 +238,7 @@ func (b *MaryTransactionBody) AssetMint() *common.MultiAsset[common.MultiAssetTy } func (b *MaryTransactionBody) Utxorpc() (*utxorpc.Tx, error) { - return common.TransactionBodyToUtxorpc(b), nil + return common.TransactionBodyToUtxorpc(b) } type MaryTransaction struct { diff --git a/ledger/mary/pparams_test.go b/ledger/mary/pparams_test.go index 7090e112..50c596eb 100644 --- a/ledger/mary/pparams_test.go +++ b/ledger/mary/pparams_test.go @@ -214,7 +214,7 @@ func TestMaryTransactionBody_Utxorpc(t *testing.T) { got, err := body.Utxorpc() if err != nil { - t.Errorf("Could not get correct UTxorpc input") + t.Fatalf("Could not convert the transaction body to utxorpc format %v", err) } if got.Fee != 100 { @@ -262,7 +262,7 @@ func TestMaryTransaction_Utxorpc(t *testing.T) { got, err := tx.Utxorpc() if err != nil { - t.Errorf("Could not get correct UTxorpc input") + t.Fatalf("Could not convert transaction to utxorpc format: %v", err) } if got.Fee != 25 { diff --git a/ledger/shelley/pparams_test.go b/ledger/shelley/pparams_test.go index 40f23036..3e259475 100644 --- a/ledger/shelley/pparams_test.go +++ b/ledger/shelley/pparams_test.go @@ -271,7 +271,7 @@ func TestShelleyTransactionBody_Utxorpc(t *testing.T) { // Convert the transaction body to utxorpc format actual, err := txBody.Utxorpc() if err != nil { - t.Errorf("Could not convert the transaction body to utxorpc format") + t.Fatalf("Could not convert the transaction body to utxorpc format %v", err) } // Check that the fee matches @@ -339,7 +339,7 @@ func TestShelleyTransaction_Utxorpc(t *testing.T) { // Invoke Utxorpc conversion got, err := tx.Utxorpc() if err != nil { - t.Errorf("Could not Invoke Utxorpc conversion") + t.Fatalf("Could not convert transaction to utxorpc format: %v", err) } // Verify the fee diff --git a/ledger/shelley/shelley.go b/ledger/shelley/shelley.go index 71521291..83f09799 100644 --- a/ledger/shelley/shelley.go +++ b/ledger/shelley/shelley.go @@ -290,7 +290,7 @@ func (b *ShelleyTransactionBody) AuxDataHash() *common.Blake2b256 { } func (b *ShelleyTransactionBody) Utxorpc() (*utxorpc.Tx, error) { - return common.TransactionBodyToUtxorpc(b), nil + return common.TransactionBodyToUtxorpc(b) } type ShelleyTransactionInputSet struct {