trie: polishes to trie committer (#21351)

* trie: update tests to check commit integrity

* trie: polish committer

* trie: fix typo

* trie: remove hasvalue notion

According to the benchmarks, type assertion between the pointer and
interface is extremely fast.

BenchmarkIntmethod-12           1000000000               1.91 ns/op
BenchmarkInterface-12           1000000000               2.13 ns/op
BenchmarkTypeSwitch-12          1000000000               1.81 ns/op
BenchmarkTypeAssertion-12       2000000000               1.78 ns/op

So the overhead for asserting whether the shortnode has "valuenode"
child is super tiny. No necessary to have another field.

* trie: linter nitpicks

Co-authored-by: Martin Holst Swende <martin@swende.se>
# Conflicts:
#	trie/committer.go
#	trie/hasher.go
#	trie/trie.go
#	trie/trie_test.go
This commit is contained in:
gary rong 2020-09-30 19:45:56 +08:00 committed by Igor Mandrigin
parent 328becb968
commit d6a69fd294

View File

@ -384,53 +384,3 @@ Date: Wed Sep 30 19:49:20 2020 +0200
trie: add Commit-sequence tests for stacktrie commit (#21643)
commit 053ed9cc847647a9b3ef707d0efe7104c4ab2a4c
Author: Gary Rong <garyrong0905@gmail.com>
Date: Wed Sep 30 19:45:56 2020 +0800
trie: polishes to trie committer (#21351)
* trie: update tests to check commit integrity
* trie: polish committer
* trie: fix typo
* trie: remove hasvalue notion
According to the benchmarks, type assertion between the pointer and
interface is extremely fast.
BenchmarkIntmethod-12 1000000000 1.91 ns/op
BenchmarkInterface-12 1000000000 2.13 ns/op
BenchmarkTypeSwitch-12 1000000000 1.81 ns/op
BenchmarkTypeAssertion-12 2000000000 1.78 ns/op
So the overhead for asserting whether the shortnode has "valuenode"
child is super tiny. No necessary to have another field.
* trie: linter nitpicks
Co-authored-by: Martin Holst Swende <martin@swende.se>
commit dad26582b6ec5e3870a27db9f25ad1743ae00cbf
Author: Martin Holst Swende <martin@swende.se>
Date: Tue Sep 29 17:40:08 2020 +0200
accounts, signer: implement gnosis safe support (#21593)
* accounts, signer: implement gnosis safe support
* common/math: add type for marshalling big to dec
* accounts, signer: properly sign gnosis requests
* signer, clef: implement account_signGnosisTx
* signer: fix auditlog print, change rpc-name (signGnosisTx to signGnosisSafeTx)
* signer: pass validation-messages/warnings to the UI for gnonsis-safe txs
* signer/core: minor change to validationmessages of typed data