Skip to content

Commit 32805bb

Browse files
committed
Make total difficulty in blocks optional.
1 parent 3d31d4a commit 32805bb

11 files changed

+47
-57
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ require (
88
github.com/rs/zerolog v1.33.0
99
github.com/stretchr/testify v1.9.0
1010
github.com/ybbus/jsonrpc/v2 v2.1.7
11-
golang.org/x/crypto v0.28.0
11+
golang.org/x/crypto v0.32.0
1212
)
1313

1414
require (
1515
github.com/davecgh/go-spew v1.1.1 // indirect
1616
github.com/mattn/go-colorable v0.1.13 // indirect
1717
github.com/mattn/go-isatty v0.0.20 // indirect
1818
github.com/pmezard/go-difflib v1.0.0 // indirect
19-
golang.org/x/sys v0.26.0 // indirect
19+
golang.org/x/sys v0.30.0 // indirect
2020
gopkg.in/yaml.v3 v3.0.1 // indirect
2121
)

go.sum

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,19 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT
2727
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
2828
github.com/ybbus/jsonrpc/v2 v2.1.7 h1:QjoXuZhkXZ3oLBkrONBe2avzFkYeYLorpeA+d8175XQ=
2929
github.com/ybbus/jsonrpc/v2 v2.1.7/go.mod h1:rIuG1+ORoiqocf9xs/v+ecaAVeo3zcZHQgInyKFMeg0=
30-
golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
31-
golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U=
30+
golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
31+
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
3232
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
3333
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
3434
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
3535
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3636
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3737
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3838
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
39-
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
40-
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
39+
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
40+
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
4141
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
42-
golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
42+
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
4343
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
4444
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
4545
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=

jsonrpc/basefee_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,8 @@ func TestBaseFee(t *testing.T) {
3939
err string
4040
}{
4141
{
42-
name: "Implicit",
43-
},
44-
{
45-
name: "Latest",
42+
name: "Latest",
43+
blockID: "latest",
4644
},
4745
{
4846
name: "15100",

jsonrpc/replayblocktransactions_test.go

Lines changed: 18 additions & 7 deletions
Large diffs are not rendered by default.

spec/berlinblock.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -257,12 +257,11 @@ func (b *BerlinBlock) UnmarshalJSON(input []byte) error {
257257
}
258258
b.Timestamp = time.Unix(timestamp, 0)
259259

260-
if data.TotalDifficulty == "" {
261-
return errors.New("total difficulty missing")
262-
}
263-
b.TotalDifficulty, success = new(big.Int).SetString(util.PreUnmarshalHexString(data.TotalDifficulty), 16)
264-
if !success {
265-
return errors.New("total difficulty invalid")
260+
if data.TotalDifficulty != "" {
261+
b.TotalDifficulty, success = new(big.Int).SetString(util.PreUnmarshalHexString(data.TotalDifficulty), 16)
262+
if !success {
263+
return errors.New("total difficulty invalid")
264+
}
266265
}
267266

268267
b.Transactions = data.Transactions

spec/berlinblock_test.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -276,11 +276,6 @@ func TestBerlinBlockJSON(t *testing.T) {
276276
input: []byte(`{"difficulty":"0x26ef28d3882645","extraData":"0x486976656f6e20686b","gasLimit":"0x1c9c380","gasUsed":"0x5e5cd8","hash":"0x2dd77ae9da8e661c8c6c263651971f4adcbbc5bd2eefa18d3646f603fb79501f","logsBloom":"0x382052020800021414804040a208102000806c00010460008007020c2832010308010010009026a00508118000494140030200900908641d093400405262000c050000404040a5684980516f834040606a052008080804c01000301080460441809004080242201040f010902010891063000418183a804442040090400801064000010dc020200408d019280580040404a2002721a484780d1288c088910cc0270ac44902002803146040c28010084060000011a00648a0090006428000010080510422000000408000a081224210f40c0860800020221522c008818100200040193021090810a0020200601024500604288020011424400408a09000040210","miner":"0x1ad91ee08f21be3de0ba2ba6918e714da6b45836","mixHash":"0x15be7bda2fd66ef3c634bab035a8454365ed31d090dd99c76ac1910151ba2b9c","nonce":"0x9ed675789be2ead0","number":"0xcf6d38","parentHash":"0x3560ee45703a5c4d352b1d6d8f3c642d3f1db6c56b9db3069e9121ad63a241c7","receiptsRoot":"0x55411c42653944bbadad219f8ded587754015f1a584822fd4ed2a0d7e09db364","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x7785","stateRoot":"0x825f84a5098241041e4e45bde4c1cdab05de1aaf3be13d5cff14d5495a2561fb","timestamp":"true","totalDifficulty":"0x73d8abc71b22d49d973","transactions":[],"transactionsRoot":"0x4bff2452c0f0ad55fe59b70187d74eed6416d6176e77ec40a93e55bfd8e5d549","uncles":[]}`),
277277
err: "timestamp invalid: strconv.ParseInt: parsing \"true\": invalid syntax",
278278
},
279-
{
280-
name: "TotalDifficultyMissing",
281-
input: []byte(`{"difficulty":"0x26ef28d3882645","extraData":"0x486976656f6e20686b","gasLimit":"0x1c9c380","gasUsed":"0x5e5cd8","hash":"0x2dd77ae9da8e661c8c6c263651971f4adcbbc5bd2eefa18d3646f603fb79501f","logsBloom":"0x382052020800021414804040a208102000806c00010460008007020c2832010308010010009026a00508118000494140030200900908641d093400405262000c050000404040a5684980516f834040606a052008080804c01000301080460441809004080242201040f010902010891063000418183a804442040090400801064000010dc020200408d019280580040404a2002721a484780d1288c088910cc0270ac44902002803146040c28010084060000011a00648a0090006428000010080510422000000408000a081224210f40c0860800020221522c008818100200040193021090810a0020200601024500604288020011424400408a09000040210","miner":"0x1ad91ee08f21be3de0ba2ba6918e714da6b45836","mixHash":"0x15be7bda2fd66ef3c634bab035a8454365ed31d090dd99c76ac1910151ba2b9c","nonce":"0x9ed675789be2ead0","number":"0xcf6d38","parentHash":"0x3560ee45703a5c4d352b1d6d8f3c642d3f1db6c56b9db3069e9121ad63a241c7","receiptsRoot":"0x55411c42653944bbadad219f8ded587754015f1a584822fd4ed2a0d7e09db364","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x7785","stateRoot":"0x825f84a5098241041e4e45bde4c1cdab05de1aaf3be13d5cff14d5495a2561fb","timestamp":"0x618cd7ce","transactions":[],"transactionsRoot":"0x4bff2452c0f0ad55fe59b70187d74eed6416d6176e77ec40a93e55bfd8e5d549","uncles":[]}`),
282-
err: "total difficulty missing",
283-
},
284279
{
285280
name: "TotalDifficultyWrongType",
286281
input: []byte(`{"difficulty":"0x26ef28d3882645","extraData":"0x486976656f6e20686b","gasLimit":"0x1c9c380","gasUsed":"0x5e5cd8","hash":"0x2dd77ae9da8e661c8c6c263651971f4adcbbc5bd2eefa18d3646f603fb79501f","logsBloom":"0x382052020800021414804040a208102000806c00010460008007020c2832010308010010009026a00508118000494140030200900908641d093400405262000c050000404040a5684980516f834040606a052008080804c01000301080460441809004080242201040f010902010891063000418183a804442040090400801064000010dc020200408d019280580040404a2002721a484780d1288c088910cc0270ac44902002803146040c28010084060000011a00648a0090006428000010080510422000000408000a081224210f40c0860800020221522c008818100200040193021090810a0020200601024500604288020011424400408a09000040210","miner":"0x1ad91ee08f21be3de0ba2ba6918e714da6b45836","mixHash":"0x15be7bda2fd66ef3c634bab035a8454365ed31d090dd99c76ac1910151ba2b9c","nonce":"0x9ed675789be2ead0","number":"0xcf6d38","parentHash":"0x3560ee45703a5c4d352b1d6d8f3c642d3f1db6c56b9db3069e9121ad63a241c7","receiptsRoot":"0x55411c42653944bbadad219f8ded587754015f1a584822fd4ed2a0d7e09db364","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x7785","stateRoot":"0x825f84a5098241041e4e45bde4c1cdab05de1aaf3be13d5cff14d5495a2561fb","timestamp":"0x618cd7ce","totalDifficulty":true,"transactions":[],"transactionsRoot":"0x4bff2452c0f0ad55fe59b70187d74eed6416d6176e77ec40a93e55bfd8e5d549","uncles":[]}`),

spec/cancunblock.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -310,12 +310,11 @@ func (b *CancunBlock) UnmarshalJSON(input []byte) error {
310310
}
311311
b.Timestamp = time.Unix(timestamp, 0)
312312

313-
if data.TotalDifficulty == "" {
314-
return errors.New("total difficulty missing")
315-
}
316-
b.TotalDifficulty, success = new(big.Int).SetString(util.PreUnmarshalHexString(data.TotalDifficulty), 16)
317-
if !success {
318-
return errors.New("total difficulty invalid")
313+
if data.TotalDifficulty != "" {
314+
b.TotalDifficulty, success = new(big.Int).SetString(util.PreUnmarshalHexString(data.TotalDifficulty), 16)
315+
if !success {
316+
return errors.New("total difficulty invalid")
317+
}
319318
}
320319

321320
b.Transactions = data.Transactions

spec/londonblock.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -268,12 +268,11 @@ func (b *LondonBlock) UnmarshalJSON(input []byte) error {
268268
}
269269
b.Timestamp = time.Unix(timestamp, 0)
270270

271-
if data.TotalDifficulty == "" {
272-
return errors.New("total difficulty missing")
273-
}
274-
b.TotalDifficulty, success = new(big.Int).SetString(util.PreUnmarshalHexString(data.TotalDifficulty), 16)
275-
if !success {
276-
return errors.New("total difficulty invalid")
271+
if data.TotalDifficulty != "" {
272+
b.TotalDifficulty, success = new(big.Int).SetString(util.PreUnmarshalHexString(data.TotalDifficulty), 16)
273+
if !success {
274+
return errors.New("total difficulty invalid")
275+
}
277276
}
278277

279278
b.Transactions = data.Transactions

spec/londonblock_test.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -293,11 +293,6 @@ func TestLondonBlockJSON(t *testing.T) {
293293
input: []byte(`{"baseFeePerGas":"0x2bf3d74bc7","difficulty":"0x26ef28d3882645","extraData":"0x486976656f6e20686b","gasLimit":"0x1c9c380","gasUsed":"0x5e5cd8","hash":"0x2dd77ae9da8e661c8c6c263651971f4adcbbc5bd2eefa18d3646f603fb79501f","logsBloom":"0x382052020800021414804040a208102000806c00010460008007020c2832010308010010009026a00508118000494140030200900908641d093400405262000c050000404040a5684980516f834040606a052008080804c01000301080460441809004080242201040f010902010891063000418183a804442040090400801064000010dc020200408d019280580040404a2002721a484780d1288c088910cc0270ac44902002803146040c28010084060000011a00648a0090006428000010080510422000000408000a081224210f40c0860800020221522c008818100200040193021090810a0020200601024500604288020011424400408a09000040210","miner":"0x1ad91ee08f21be3de0ba2ba6918e714da6b45836","mixHash":"0x15be7bda2fd66ef3c634bab035a8454365ed31d090dd99c76ac1910151ba2b9c","nonce":"0x9ed675789be2ead0","number":"0xcf6d38","parentHash":"0x3560ee45703a5c4d352b1d6d8f3c642d3f1db6c56b9db3069e9121ad63a241c7","receiptsRoot":"0x55411c42653944bbadad219f8ded587754015f1a584822fd4ed2a0d7e09db364","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x7785","stateRoot":"0x825f84a5098241041e4e45bde4c1cdab05de1aaf3be13d5cff14d5495a2561fb","timestamp":"true","totalDifficulty":"0x73d8abc71b22d49d973","transactions":[],"transactionsRoot":"0x4bff2452c0f0ad55fe59b70187d74eed6416d6176e77ec40a93e55bfd8e5d549","uncles":[]}`),
294294
err: "timestamp invalid: strconv.ParseInt: parsing \"true\": invalid syntax",
295295
},
296-
{
297-
name: "TotalDifficultyMissing",
298-
input: []byte(`{"baseFeePerGas":"0x2bf3d74bc7","difficulty":"0x26ef28d3882645","extraData":"0x486976656f6e20686b","gasLimit":"0x1c9c380","gasUsed":"0x5e5cd8","hash":"0x2dd77ae9da8e661c8c6c263651971f4adcbbc5bd2eefa18d3646f603fb79501f","logsBloom":"0x382052020800021414804040a208102000806c00010460008007020c2832010308010010009026a00508118000494140030200900908641d093400405262000c050000404040a5684980516f834040606a052008080804c01000301080460441809004080242201040f010902010891063000418183a804442040090400801064000010dc020200408d019280580040404a2002721a484780d1288c088910cc0270ac44902002803146040c28010084060000011a00648a0090006428000010080510422000000408000a081224210f40c0860800020221522c008818100200040193021090810a0020200601024500604288020011424400408a09000040210","miner":"0x1ad91ee08f21be3de0ba2ba6918e714da6b45836","mixHash":"0x15be7bda2fd66ef3c634bab035a8454365ed31d090dd99c76ac1910151ba2b9c","nonce":"0x9ed675789be2ead0","number":"0xcf6d38","parentHash":"0x3560ee45703a5c4d352b1d6d8f3c642d3f1db6c56b9db3069e9121ad63a241c7","receiptsRoot":"0x55411c42653944bbadad219f8ded587754015f1a584822fd4ed2a0d7e09db364","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x7785","stateRoot":"0x825f84a5098241041e4e45bde4c1cdab05de1aaf3be13d5cff14d5495a2561fb","timestamp":"0x618cd7ce","transactions":[],"transactionsRoot":"0x4bff2452c0f0ad55fe59b70187d74eed6416d6176e77ec40a93e55bfd8e5d549","uncles":[]}`),
299-
err: "total difficulty missing",
300-
},
301296
{
302297
name: "TotalDifficultyWrongType",
303298
input: []byte(`{"baseFeePerGas":"0x2bf3d74bc7","difficulty":"0x26ef28d3882645","extraData":"0x486976656f6e20686b","gasLimit":"0x1c9c380","gasUsed":"0x5e5cd8","hash":"0x2dd77ae9da8e661c8c6c263651971f4adcbbc5bd2eefa18d3646f603fb79501f","logsBloom":"0x382052020800021414804040a208102000806c00010460008007020c2832010308010010009026a00508118000494140030200900908641d093400405262000c050000404040a5684980516f834040606a052008080804c01000301080460441809004080242201040f010902010891063000418183a804442040090400801064000010dc020200408d019280580040404a2002721a484780d1288c088910cc0270ac44902002803146040c28010084060000011a00648a0090006428000010080510422000000408000a081224210f40c0860800020221522c008818100200040193021090810a0020200601024500604288020011424400408a09000040210","miner":"0x1ad91ee08f21be3de0ba2ba6918e714da6b45836","mixHash":"0x15be7bda2fd66ef3c634bab035a8454365ed31d090dd99c76ac1910151ba2b9c","nonce":"0x9ed675789be2ead0","number":"0xcf6d38","parentHash":"0x3560ee45703a5c4d352b1d6d8f3c642d3f1db6c56b9db3069e9121ad63a241c7","receiptsRoot":"0x55411c42653944bbadad219f8ded587754015f1a584822fd4ed2a0d7e09db364","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x7785","stateRoot":"0x825f84a5098241041e4e45bde4c1cdab05de1aaf3be13d5cff14d5495a2561fb","timestamp":"0x618cd7ce","totalDifficulty":true,"transactions":[],"transactionsRoot":"0x4bff2452c0f0ad55fe59b70187d74eed6416d6176e77ec40a93e55bfd8e5d549","uncles":[]}`),

spec/shanghaiblock.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -274,12 +274,11 @@ func (b *ShanghaiBlock) UnmarshalJSON(input []byte) error {
274274
}
275275
b.Timestamp = time.Unix(timestamp, 0)
276276

277-
if data.TotalDifficulty == "" {
278-
return errors.New("total difficulty missing")
279-
}
280-
b.TotalDifficulty, success = new(big.Int).SetString(util.PreUnmarshalHexString(data.TotalDifficulty), 16)
281-
if !success {
282-
return errors.New("total difficulty invalid")
277+
if data.TotalDifficulty != "" {
278+
b.TotalDifficulty, success = new(big.Int).SetString(util.PreUnmarshalHexString(data.TotalDifficulty), 16)
279+
if !success {
280+
return errors.New("total difficulty invalid")
281+
}
283282
}
284283

285284
b.Transactions = data.Transactions

0 commit comments

Comments
 (0)