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