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