From 3eb4467799eb854b091e2d626bb4fe782be08f98 Mon Sep 17 00:00:00 2001 From: Arijit Das Date: Thu, 1 Jul 2021 21:10:12 +0530 Subject: [PATCH] Change basefee to int64/bigint. --- .../db/migrations/00004_create_eth_header_cids_table.sql | 2 +- statediff/indexer/indexer.go | 8 +++++++- statediff/indexer/indexer_legacy_test.go | 5 +++-- statediff/indexer/indexer_test.go | 4 ++-- statediff/indexer/models/models.go | 2 +- 5 files changed, 14 insertions(+), 7 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 13bb4e317..f7231a30b 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 VARCHAR(38), + base_fee BIGINT DEFAULT 0, UNIQUE (block_number, block_hash) ); diff --git a/statediff/indexer/indexer.go b/statediff/indexer/indexer.go index c67442760..ebb53aca8 100644 --- a/statediff/indexer/indexer.go +++ b/statediff/indexer/indexer.go @@ -212,6 +212,12 @@ func (sdi *StateDiffIndexer) processHeader(tx *sqlx.Tx, header *types.Header, he if err := shared.PublishIPLD(tx, headerNode); err != nil { return 0, fmt.Errorf("error publishing header IPLD: %v", err) } + + var baseFee int64 + if header.BaseFee != nil { + baseFee = header.BaseFee.Int64() + } + // index header return sdi.dbWriter.upsertHeaderCID(tx, models.HeaderModel{ CID: headerNode.Cid().String(), @@ -227,7 +233,7 @@ func (sdi *StateDiffIndexer) processHeader(tx *sqlx.Tx, header *types.Header, he TxRoot: header.TxHash.String(), UncleRoot: header.UncleHash.String(), Timestamp: header.Time, - BaseFee: header.BaseFee.String(), + BaseFee: baseFee, }) } diff --git a/statediff/indexer/indexer_legacy_test.go b/statediff/indexer/indexer_legacy_test.go index bef319354..59b02b6e4 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 string `db:"base_fee"` + BaseFee int64 `db:"base_fee"` } header := new(res) err = db.QueryRowx(pgStr, legacyData.BlockNumber.Uint64()).StructScan(header) @@ -81,6 +81,7 @@ func TestPublishAndIndexerLegacy(t *testing.T) { shared.ExpectEqual(t, header.CID, legacyHeaderCID.String()) shared.ExpectEqual(t, header.TD, legacyData.MockBlock.Difficulty().String()) shared.ExpectEqual(t, header.Reward, "5000000000000011250") - shared.ExpectEqual(t, header.BaseFee, legacyData.MockHeader.BaseFee.String()) + require.Nil(t, legacyData.MockHeader.BaseFee) + shared.ExpectEqual(t, header.BaseFee, int64(0)) }) } diff --git a/statediff/indexer/indexer_test.go b/statediff/indexer/indexer_test.go index 9af8622c9..8ae522e87 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 string `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.String()) + 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 2855c5889..4dcb7492d 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 string `db:"base_fee"` + BaseFee int64 `db:"base_fee"` } // UncleModel is the db model for eth.uncle_cids