Fix block_fee to support NULL values. #95
@ -16,7 +16,7 @@ CREATE TABLE eth.header_cids (
|
|||||||
bloom BYTEA NOT NULL,
|
bloom BYTEA NOT NULL,
|
||||||
timestamp NUMERIC NOT NULL,
|
timestamp NUMERIC NOT NULL,
|
||||||
times_validated INTEGER NOT NULL DEFAULT 1,
|
times_validated INTEGER NOT NULL DEFAULT 1,
|
||||||
base_fee BIGINT DEFAULT 0,
|
base_fee BIGINT,
|
||||||
UNIQUE (block_number, block_hash)
|
UNIQUE (block_number, block_hash)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -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)
|
return 0, fmt.Errorf("error publishing header IPLD: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var baseFee int64
|
var baseFee *int64
|
||||||
if header.BaseFee != nil {
|
if header.BaseFee != nil {
|
||||||
baseFee = header.BaseFee.Int64()
|
baseFee = new(int64)
|
||||||
|
*baseFee = header.BaseFee.Int64()
|
||||||
}
|
}
|
||||||
|
|
||||||
// index header
|
// index header
|
||||||
|
@ -72,7 +72,7 @@ func TestPublishAndIndexerLegacy(t *testing.T) {
|
|||||||
TD string
|
TD string
|
||||||
Reward string
|
Reward string
|
||||||
ID int
|
ID int
|
||||||
BaseFee int64 `db:"base_fee"`
|
BaseFee *int64 `db:"base_fee"`
|
||||||
}
|
}
|
||||||
header := new(res)
|
header := new(res)
|
||||||
err = db.QueryRowx(pgStr, legacyData.BlockNumber.Uint64()).StructScan(header)
|
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.TD, legacyData.MockBlock.Difficulty().String())
|
||||||
shared.ExpectEqual(t, header.Reward, "5000000000000011250")
|
shared.ExpectEqual(t, header.Reward, "5000000000000011250")
|
||||||
require.Nil(t, legacyData.MockHeader.BaseFee)
|
require.Nil(t, legacyData.MockHeader.BaseFee)
|
||||||
shared.ExpectEqual(t, header.BaseFee, int64(0))
|
require.Nil(t, header.BaseFee)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -174,7 +174,7 @@ func TestPublishAndIndexer(t *testing.T) {
|
|||||||
TD string
|
TD string
|
||||||
Reward string
|
Reward string
|
||||||
ID int
|
ID int
|
||||||
BaseFee int64 `db:"base_fee"`
|
BaseFee *int64 `db:"base_fee"`
|
||||||
}
|
}
|
||||||
header := new(res)
|
header := new(res)
|
||||||
err = db.QueryRowx(pgStr, mocks.BlockNumber.Uint64()).StructScan(header)
|
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.CID, headerCID.String())
|
||||||
shared.ExpectEqual(t, header.TD, mocks.MockBlock.Difficulty().String())
|
shared.ExpectEqual(t, header.TD, mocks.MockBlock.Difficulty().String())
|
||||||
shared.ExpectEqual(t, header.Reward, "2000000000000021250")
|
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)
|
dc, err := cid.Decode(header.CID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -36,7 +36,7 @@ type HeaderModel struct {
|
|||||||
Bloom []byte `db:"bloom"`
|
Bloom []byte `db:"bloom"`
|
||||||
Timestamp uint64 `db:"timestamp"`
|
Timestamp uint64 `db:"timestamp"`
|
||||||
TimesValidated int64 `db:"times_validated"`
|
TimesValidated int64 `db:"times_validated"`
|
||||||
BaseFee int64 `db:"base_fee"`
|
BaseFee *int64 `db:"base_fee"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// UncleModel is the db model for eth.uncle_cids
|
// UncleModel is the db model for eth.uncle_cids
|
||||||
|
Loading…
Reference in New Issue
Block a user