From 1c1aea9b9d14832b7ded30c6f51f9770f456a4b0 Mon Sep 17 00:00:00 2001 From: Arijit Das Date: Tue, 6 Jul 2021 19:35:32 +0530 Subject: [PATCH] Fix block_fee to support NULL values. --- .../db/migrations/00004_create_eth_header_cids_table.sql | 2 +- statediff/indexer/indexer.go | 5 +++-- statediff/indexer/indexer_legacy_test.go | 4 ++-- statediff/indexer/indexer_test.go | 4 ++-- statediff/indexer/models/models.go | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/statediff/db/migrations/00004_create_eth_header_cids_table.sql b/statediff/db/migrations/00004_create_eth_header_cids_table.sql index f7231a30b..f01b116a0 100644 --- a/statediff/db/migrations/00004_create_eth_header_cids_table.sql +++ b/statediff/db/migrations/00004_create_eth_header_cids_table.sql @@ -16,7 +16,7 @@ CREATE TABLE eth.header_cids ( bloom BYTEA NOT NULL, timestamp NUMERIC NOT NULL, times_validated INTEGER NOT NULL DEFAULT 1, - base_fee BIGINT DEFAULT 0, + base_fee BIGINT, UNIQUE (block_number, block_hash) ); diff --git a/statediff/indexer/indexer.go b/statediff/indexer/indexer.go index 255d90b73..17571c2e7 100644 --- a/statediff/indexer/indexer.go +++ b/statediff/indexer/indexer.go @@ -219,9 +219,10 @@ func (sdi *StateDiffIndexer) processHeader(tx *sqlx.Tx, header *types.Header, he return 0, fmt.Errorf("error publishing header IPLD: %v", err) } - var baseFee int64 + var baseFee *int64 if header.BaseFee != nil { - baseFee = header.BaseFee.Int64() + baseFee = new(int64) + *baseFee = header.BaseFee.Int64() } // index header diff --git a/statediff/indexer/indexer_legacy_test.go b/statediff/indexer/indexer_legacy_test.go index 59b02b6e4..588107cc0 100644 --- a/statediff/indexer/indexer_legacy_test.go +++ b/statediff/indexer/indexer_legacy_test.go @@ -72,7 +72,7 @@ func TestPublishAndIndexerLegacy(t *testing.T) { TD string Reward string ID int - BaseFee int64 `db:"base_fee"` + BaseFee *int64 `db:"base_fee"` } header := new(res) err = db.QueryRowx(pgStr, legacyData.BlockNumber.Uint64()).StructScan(header) @@ -82,6 +82,6 @@ func TestPublishAndIndexerLegacy(t *testing.T) { shared.ExpectEqual(t, header.TD, legacyData.MockBlock.Difficulty().String()) shared.ExpectEqual(t, header.Reward, "5000000000000011250") require.Nil(t, legacyData.MockHeader.BaseFee) - shared.ExpectEqual(t, header.BaseFee, int64(0)) + require.Nil(t, header.BaseFee) }) } diff --git a/statediff/indexer/indexer_test.go b/statediff/indexer/indexer_test.go index 8ae522e87..1365a3197 100644 --- a/statediff/indexer/indexer_test.go +++ b/statediff/indexer/indexer_test.go @@ -174,7 +174,7 @@ func TestPublishAndIndexer(t *testing.T) { TD string Reward string ID int - BaseFee int64 `db:"base_fee"` + BaseFee *int64 `db:"base_fee"` } header := new(res) err = db.QueryRowx(pgStr, mocks.BlockNumber.Uint64()).StructScan(header) @@ -184,7 +184,7 @@ func TestPublishAndIndexer(t *testing.T) { shared.ExpectEqual(t, header.CID, headerCID.String()) shared.ExpectEqual(t, header.TD, mocks.MockBlock.Difficulty().String()) shared.ExpectEqual(t, header.Reward, "2000000000000021250") - shared.ExpectEqual(t, header.BaseFee, mocks.MockHeader.BaseFee.Int64()) + shared.ExpectEqual(t, *header.BaseFee, mocks.MockHeader.BaseFee.Int64()) dc, err := cid.Decode(header.CID) if err != nil { t.Fatal(err) diff --git a/statediff/indexer/models/models.go b/statediff/indexer/models/models.go index 4dcb7492d..f972495c4 100644 --- a/statediff/indexer/models/models.go +++ b/statediff/indexer/models/models.go @@ -36,7 +36,7 @@ type HeaderModel struct { Bloom []byte `db:"bloom"` Timestamp uint64 `db:"timestamp"` TimesValidated int64 `db:"times_validated"` - BaseFee int64 `db:"base_fee"` + BaseFee *int64 `db:"base_fee"` } // UncleModel is the db model for eth.uncle_cids -- 2.45.2