mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 18:32:23 +00:00
keep logic of removing empty fields in a single place for tech debt
This commit is contained in:
parent
3ed1bd816b
commit
405ceae2a1
2 changed files with 46 additions and 8 deletions
|
|
@ -67,6 +67,33 @@ type supplyInfo struct {
|
||||||
|
|
||||||
func emptyBlockGenerationFunc(b *core.BlockGen) {}
|
func emptyBlockGenerationFunc(b *core.BlockGen) {}
|
||||||
|
|
||||||
|
func TestSupplyOmittedFields(t *testing.T) {
|
||||||
|
var (
|
||||||
|
config = *params.MergedTestChainConfig
|
||||||
|
gspec = &core.Genesis{
|
||||||
|
Config: &config,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
gspec.Config.TerminalTotalDifficulty = big.NewInt(0)
|
||||||
|
|
||||||
|
out, _, err := testSupplyTracer(t, gspec, func(b *core.BlockGen) {
|
||||||
|
b.SetPoS()
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to test supply tracer: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
expected := supplyInfo{
|
||||||
|
Number: 0,
|
||||||
|
Hash: common.HexToHash("0x52f276d96f0afaaf2c3cb358868bdc2779c4b0cb8de3e7e5302e247c0b66a703"),
|
||||||
|
ParentHash: common.HexToHash("0x0000000000000000000000000000000000000000000000000000000000000000"),
|
||||||
|
}
|
||||||
|
actual := out[expected.Number]
|
||||||
|
|
||||||
|
compareAsJSON(t, expected, actual)
|
||||||
|
}
|
||||||
|
|
||||||
func TestSupplyGenesisAlloc(t *testing.T) {
|
func TestSupplyGenesisAlloc(t *testing.T) {
|
||||||
var (
|
var (
|
||||||
key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291")
|
key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291")
|
||||||
|
|
|
||||||
|
|
@ -112,10 +112,13 @@ func newSupply(cfg json.RawMessage) (*tracing.Hooks, error) {
|
||||||
func newSupplyInfo() supplyInfo {
|
func newSupplyInfo() supplyInfo {
|
||||||
return supplyInfo{
|
return supplyInfo{
|
||||||
Issuance: &supplyInfoIssuance{
|
Issuance: &supplyInfoIssuance{
|
||||||
|
GenesisAlloc: big.NewInt(0),
|
||||||
Reward: big.NewInt(0),
|
Reward: big.NewInt(0),
|
||||||
Withdrawals: big.NewInt(0),
|
Withdrawals: big.NewInt(0),
|
||||||
},
|
},
|
||||||
Burn: &supplyInfoBurn{
|
Burn: &supplyInfoBurn{
|
||||||
|
EIP1559: big.NewInt(0),
|
||||||
|
Blob: big.NewInt(0),
|
||||||
Misc: big.NewInt(0),
|
Misc: big.NewInt(0),
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -139,10 +142,8 @@ func (s *supply) OnBlockStart(ev tracing.BlockEvent) {
|
||||||
// Calculate Burn for this block
|
// Calculate Burn for this block
|
||||||
if ev.Block.BaseFee() != nil {
|
if ev.Block.BaseFee() != nil {
|
||||||
burn := new(big.Int).Mul(new(big.Int).SetUint64(ev.Block.GasUsed()), ev.Block.BaseFee())
|
burn := new(big.Int).Mul(new(big.Int).SetUint64(ev.Block.GasUsed()), ev.Block.BaseFee())
|
||||||
if burn.Sign() != 0 {
|
|
||||||
s.delta.Burn.EIP1559 = burn
|
s.delta.Burn.EIP1559 = burn
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// Blob burnt gas
|
// Blob burnt gas
|
||||||
if blobGas := ev.Block.BlobGasUsed(); blobGas != nil && *blobGas > 0 && ev.Block.ExcessBlobGas() != nil {
|
if blobGas := ev.Block.BlobGasUsed(); blobGas != nil && *blobGas > 0 && ev.Block.ExcessBlobGas() != nil {
|
||||||
var (
|
var (
|
||||||
|
|
@ -165,8 +166,6 @@ func (s *supply) OnGenesisBlock(b *types.Block, alloc types.GenesisAlloc) {
|
||||||
s.delta.Hash = b.Hash()
|
s.delta.Hash = b.Hash()
|
||||||
s.delta.ParentHash = b.ParentHash()
|
s.delta.ParentHash = b.ParentHash()
|
||||||
|
|
||||||
s.delta.Issuance.GenesisAlloc = big.NewInt(0)
|
|
||||||
|
|
||||||
// Initialize supply with total allocation in genesis block
|
// Initialize supply with total allocation in genesis block
|
||||||
for _, account := range alloc {
|
for _, account := range alloc {
|
||||||
s.delta.Issuance.GenesisAlloc.Add(s.delta.Issuance.GenesisAlloc, account.Balance)
|
s.delta.Issuance.GenesisAlloc.Add(s.delta.Issuance.GenesisAlloc, account.Balance)
|
||||||
|
|
@ -269,6 +268,10 @@ func (s *supply) write(data any) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove empty fields
|
// Remove empty fields
|
||||||
|
if supply.Issuance.GenesisAlloc.Sign() == 0 {
|
||||||
|
supply.Issuance.GenesisAlloc = nil
|
||||||
|
}
|
||||||
|
|
||||||
if supply.Issuance.Reward.Sign() == 0 {
|
if supply.Issuance.Reward.Sign() == 0 {
|
||||||
supply.Issuance.Reward = nil
|
supply.Issuance.Reward = nil
|
||||||
}
|
}
|
||||||
|
|
@ -281,6 +284,14 @@ func (s *supply) write(data any) {
|
||||||
supply.Issuance = nil
|
supply.Issuance = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if supply.Burn.EIP1559.Sign() == 0 {
|
||||||
|
supply.Burn.EIP1559 = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if supply.Burn.Blob.Sign() == 0 {
|
||||||
|
supply.Burn.Blob = nil
|
||||||
|
}
|
||||||
|
|
||||||
if supply.Burn.Misc.Sign() == 0 {
|
if supply.Burn.Misc.Sign() == 0 {
|
||||||
supply.Burn.Misc = nil
|
supply.Burn.Misc = nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue