-
Notifications
You must be signed in to change notification settings - Fork 463
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ssz encoding generator #7299
Open
flcl42
wants to merge
334
commits into
master
Choose a base branch
from
feature/ssz-generator
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+1,758
−39
Open
Ssz encoding generator #7299
Changes from all commits
Commits
Show all changes
334 commits
Select commit
Hold shift + click to select a range
7c3dedd
add Validator conflig flag
Marchhill 07d44d6
fix ShutterConfig
Marchhill 2a21f82
update bls package to fix linux arm64 issue
Marchhill f16d65e
Merge remote-tracking branch 'upstream/master' into feature/gnosis-sh…
Marchhill 8b2af7b
add log if try to build block in non-validator mode
Marchhill 9682e4c
fix validator flags
Marchhill d2fc267
allow loaded transactions to be null
Marchhill eff7b25
disconnection logs with cancellation token
Marchhill 7ce1f24
update libp2p settings and shuffle peers
Marchhill 3e3542d
add bad signature tx test
Marchhill b039874
update gnosis config to final deployment
Marchhill 58aad49
fix log
Marchhill 2e155dd
merge master
Marchhill b0fffd2
check number of decryption keys received
Marchhill 4a0a254
change encrypted gas limit to 1M
Marchhill 80b86c5
fix invalid decryption key logs
Marchhill aa8661f
move placeholder key check
Marchhill 5859ac7
increase log scan cutoff
Marchhill 18c678f
restore tests
Marchhill 5167691
Merge remote-tracking branch 'upstream/master' into feature/gnosis-sh…
Marchhill 5b1d73e
restore tests properly
Marchhill 79cd09f
roll back launch json
Marchhill e0da4e0
fix unfinalised log
Marchhill 709a15a
fix slot timing
Marchhill c5c37b3
move slot timing constants to spec providers
Marchhill 9a203e3
Merge remote-tracking branch 'upstream/master' into feature/gnosis-sh…
Marchhill a280c0d
move building block log
Marchhill 0c3eaa3
fix tx ordering
Marchhill 1774309
make GetNextTransaction lazy
Marchhill 5aeb2a4
make ispecprovider methods virtual
Marchhill 36e08ff
improve event fetching to remove sort
Marchhill a3c4f03
add back logs for event fetching
Marchhill bf5bfb3
move validator registration check
Marchhill c816170
finish move validator registry
Marchhill a6f92d6
use constants instead of specprovider txsource
Marchhill a7e7442
hardcode 10s block age cutoff
Marchhill 96e6cf9
added ssz generator project to this fork
LLHOYH ce0d925
added generator folder
LLHOYH 58ce3cc
added generator folder
LLHOYH ac9a27e
create Nethermind.Generator Project
LLHOYH 0f5309b
setup generator properly
LLHOYH 5e528c3
add reference to ssz library
LLHOYH 1c23031
p2p logging shutter
ak88 ebdccb7
log when keys arrive
ak88 90ba128
basic type ssz conversion is working
LLHOYH d48e8a0
configurable build window
ak88 e8c1a15
small changes
ak88 145ad61
Make slot seen thread safe
ak88 78f0dad
removed unneccesary
ak88 89f63dc
just use lock
ak88 7c6172b
delete for now
ak88 84a82e3
fix
ak88 4e2d707
wait inside tx source for keys
ak88 05897fc
added ssz to generator project
LLHOYH 5eda9ad
added ssz to generator project
LLHOYH 51554a9
cleanup Shutter improvements
Marchhill 40f3899
use payload timestamp
Marchhill ad93543
optimse log fetching
Marchhill ef49ee1
remove unused stuff from chiado spec provider
Marchhill b2d1e26
merge master
Marchhill 582e848
remove IsNullOrEmpty
Marchhill abeccac
able to generate fields,structs and functions
LLHOYH 0125045
bug fixed and supported all fields generation, it's now compilable an…
LLHOYH e34dc00
bug fixed and supported all fields generation, it's now compilable an…
LLHOYH e1e15af
new wait pattern
ak88 3b24349
added length calculation and fixed/dynamic type in comments
LLHOYH 031f91d
fixed minor bug for length calculation
LLHOYH 447bd67
fixed minor bug for length calculation
LLHOYH a141bef
fixed minor bug for length calculation
LLHOYH f895392
Preparation service can wait for keys in shutter
ak88 23e853d
err msg
ak88 1a3e5a2
timestamp fix
ak88 50fc2fe
added BitArray
LLHOYH b43d2c7
seperated sszAttribute into a standalone proj
LLHOYH b556065
seperated sszAttribute into a standalone proj
LLHOYH d35b21e
slot calc fix
ak88 d035275
p2p race condition fix
ak88 1281569
increase no msg in p2p
ak88 0575310
calculate current time
ak88 d23bc4a
handle slot not started
ak88 7f75605
Add the simpliest ssz gen
flcl42 a7e10a4
refactor
ak88 67b397c
shutter adjustments
ak88 4184302
minor refactors
Marchhill b463958
start key wait task
Marchhill d5677f8
don't keep improving block
Marchhill 1062492
convert payload timestamp to ms to compare to genesis
Marchhill 3d2f1ad
check cache first in wait
ak88 cbcf52a
Improve code
flcl42 74babcb
merge conflicts
LLHOYH 5e7f5ed
resolved conflicts for merge
LLHOYH eb96d15
Merge remote-tracking branch 'lloyd/feature/ssz-generator' into featu…
flcl42 f8279b4
merged with 2 implementations
LLHOYH 8ac3120
Merge remote-tracking branch 'lloyd/feature/ssz-generator' into featu…
flcl42 202a048
fix slot length, hardcode to gnosis
Marchhill 6a80bfb
Merge branch 'feature/shutter-producer-wait' of github.com:Nethermind…
Marchhill d9da66e
rename option to MaxKeyDelay
Marchhill f13de6a
slotLength use totalMilliseconds
Marchhill 8b401d3
Merge pull request #1 from NethermindEth/feature/ssz-generator
LLHOYH 22a9a9f
fix slot offset overflow
Marchhill 841f625
make slot offset short
Marchhill 660eceb
fix short
Marchhill 404557d
use cancellation token for key timeout
Marchhill 5191df4
add cancelation source to waitForTransactions
Marchhill 55956dc
temp add logs
Marchhill 07650ac
throw cancelled exception on wait cancel
Marchhill ba3a8c1
try setting taskcompletionsource exception for key wait task
Marchhill 8dc0be3
add logs to key wait task
Marchhill 7aa5c8c
don't check highest loaded slot
Marchhill bb1f137
key received offset log
Marchhill a355882
refactor waiting for transactions, allow longer offsets
Marchhill e34682c
remove syncobject
Marchhill 1d4a066
fix logs
Marchhill 4fced6f
small refactors in auramergeplugin
Marchhill 242d75e
merge shutter-producer-wait
Marchhill 9874417
merge master
Marchhill fdbc698
initial shutter plugin
Marchhill f5e70c9
correct plugin name
Marchhill 9451d08
refactor Shutter config
Marchhill eeb0218
add back txSource lock
Marchhill 35cc3b6
refactor new head block handling
Marchhill 3e24b58
initial event collector
Marchhill 4ce4b72
load log transactions to cache
Marchhill bed1803
add lock, track txIndex, improve logging
Marchhill 98a5ac9
check block number
Marchhill 67624f0
receipts cache
Marchhill f44f7f9
rename to loadfromreceipts
Marchhill 55168c5
filter outdated Shutter events collected when keys missed
Marchhill 4acd4bc
Merge remote-tracking branch 'upstream/master' into feature/gnosis-sh…
Marchhill aeee60b
set to txPointer+1 if nothing loaded from logs
Marchhill d8193a7
clearer logs and variable names
Marchhill 3228d4b
fix typo
Marchhill 4e22859
refactor as IConsensusWrapperPlugin
Marchhill b9cc828
move block improvement context factory to api
Marchhill 90fcae5
fix Shutter plugin loading
Marchhill 4d1dc90
use receipt finder
Marchhill 6f6b2fd
fix typo
Marchhill 75d11dd
merge event collector
Marchhill 83a58f1
merge shutter plugin refactor
Marchhill 3741d1b
whitespace fix
Marchhill 74128b6
remove unnecessary logging condition
Marchhill b2ac600
isinfo
Marchhill e119f58
fix shutter plugin to use block handler
Marchhill 7b636f4
remove loaded tx hash filter
Marchhill c75e225
comment reminders
Marchhill 84da5da
Merge remote-tracking branch 'upstream/master' into feature/gnosis-sh…
Marchhill ed1a03d
lukasz comments
Marchhill effed37
rename LoggersAddress to Address
Marchhill 06c34e9
finish replace LoggerAddress with Address
Marchhill 9c3ffaa
add block improvement logs
Marchhill b982540
wait for block to load transaction
Marchhill 9bf6472
decrease up to date block cutoff
Marchhill 011e73a
wait in previous slot for block
Marchhill 1c67bce
Merge remote-tracking branch 'upstream/master' into feature/gnosis-sh…
Marchhill 795c003
add validated keys type
Marchhill 8869f38
fix block timestamp by changing to ms
Marchhill d578c0a
fix multiple key validations, add locks
Marchhill ac7b98c
add logs for debugging
Marchhill 7933545
try decreasing Shutter plugin priority
Marchhill b7914f7
revert plugin priorities, set api block producer in Shutter plugin
Marchhill 0b07165
try wrapping BlockProducerEnvFactory
Marchhill 01b0560
remove api block producer check
Marchhill 9444e3d
block producer env logging
Marchhill 5d526aa
try alt approach of adding txsource to blockproducer
Marchhill 4723242
cleanup block production fix
Marchhill 9c5d3e0
Merge remote-tracking branch 'upstream/master' into feature/gnosis-sh…
Marchhill 86f9c87
cleanup and improve keepImproving
Marchhill 1c0d3c0
fix head block number of 0
Marchhill 98ec32c
log scanning / fetch to debug logs
Marchhill 3c14a6e
don't retry block production if keys arrived first time
Marchhill 5008b6e
increase block cutoff
Marchhill 8cc955f
increase up to date cutoff more
Marchhill f2d8444
fix block up to date check
Marchhill 61f6dec
move blssigner from Shutter
Marchhill de74968
add test package to nuget config
Marchhill 912f535
update bls bindings package
Marchhill b3597da
Merge remote-tracking branch 'upstream/master' into feature/bls-sig
Marchhill 0bf69eb
add bls tests from Shutter
Marchhill 40065a7
improve tests, pass args by ref
Marchhill 473188a
fix whitespace
Marchhill da55aa5
Merge remote-tracking branch 'upstream/master' into feature/bls-sig
Marchhill 27713bd
start fixing unit tests
Marchhill 434be24
fix whitespace
Marchhill d03e277
improve tests, tx loading tests
Marchhill 4d5217e
improve load_transactions test
Marchhill 9e83fd7
shutter event emitter
Marchhill 001c473
finish tx loader can_load test, refactor tx filtering, remove some in…
Marchhill 551b782
maintain slot to block hash mapping instead of blocks
Marchhill 79bd991
Merge remote-tracking branch 'upstream/master' into feature/gnosis-sh…
Marchhill b996317
Merge branch 'feature/gnosis-shutter' into feature/shutter-tests
Marchhill d4503df
refactor and add to tx loader tests
Marchhill 96d8fb2
cleanup and remove unused highest slot
Marchhill 8b8093b
add block handler test, refactor shutter time, test common
Marchhill 9ed3caf
refactor Shutter to use API
Marchhill 078f831
use api in tests
Marchhill 406f430
fix whitespace
Marchhill 24d3c4a
Merge remote-tracking branch 'upstream/master' into feature/gnosis-sh…
Marchhill 1d2e934
Merge branch 'feature/gnosis-shutter' into feature/shutter-tests
Marchhill 20eb326
Clean up, add decode, mekleize
flcl42 123b1e1
block handler tests
Marchhill 530cefe
move event simulation to api
Marchhill 7184ad5
Before unions
flcl42 1f1b97b
e2e test
Marchhill b92bdcf
integration tests working
Marchhill bdd8081
Before remake
flcl42 9573cb4
Before collections
flcl42 989e7c6
Before remake
flcl42 4fcbeaf
missed keys test
Marchhill 5036bee
add metrics
Marchhill 445f8d2
more eon metrics
Marchhill d3b3c5d
Before remake
flcl42 eaa161d
tidy up PR
Marchhill fd10172
validator registration tuple
Marchhill 898e9c1
fix outdated variable names
Marchhill 6915526
fix scanning to genesis
Marchhill 9d250cc
+
flcl42 cb9a770
refactor log scanner into own component
Marchhill f195ce7
overlapping eons test
Marchhill b085c27
multiple event queues for different eons
Marchhill 7fe0692
make keys missed test non parallelizable
Marchhill 11adc39
fix whitespace
Marchhill b6da3e6
merge master
Marchhill c96702c
merge bls sig tests
Marchhill d99733f
add shutter tests to github actions
Marchhill 6b5afed
Add more cases
flcl42 d69ebc4
tidy up PR
Marchhill 62a6b90
register New head block handler in plugin
Marchhill fe4ae70
fix offset calculation
Marchhill d1d71a8
Before union
flcl42 17215e7
Added unions
flcl42 a76858a
All working
flcl42 0220c20
Clean up
flcl42 12d6406
More space
flcl42 cc46a61
Add analyzer
flcl42 431ace1
Merge remote-tracking branch 'origin/feature/gnosis-shutter' into fea…
flcl42 a951ec0
Fix encoding/decoding
flcl42 834fef2
Fix merkle, add docs
flcl42 0b585f7
Clean up
flcl42 3b0ff94
Return submodules back
flcl42 4d2b42e
Add SlotDecryptionIdentites
flcl42 9a8c50e
WS
flcl42 b3b5019
Add one more analyzer
flcl42 385394f
Generic Feed for simple types
flcl42 0173518
Clean up, optimize
flcl42 32cfd2f
Merge branch 'feature/ssz-generator' of https://github.com/Nethermind…
flcl42 e71229c
Fox merkle
flcl42 634f960
Merge remote-tracking branch 'origin/master' into feature/ssz-generator
flcl42 8155d1e
Cancel merge changes
flcl42 ecbe647
Merge remote-tracking branch 'origin/master' into feature/ssz-generator
flcl42 b6c2742
Merge branch 'master' into feature/ssz-generator
flcl42 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,6 +4,7 @@ | |
using System; | ||
using System.Collections; | ||
using System.Collections.Generic; | ||
using System.Numerics; | ||
using System.Runtime.InteropServices; | ||
using Nethermind.Core; | ||
using Nethermind.Core.Collections; | ||
|
@@ -58,9 +59,122 @@ public void Feed(UInt256 chunk) | |
FeedAtLevel(chunk, 0); | ||
} | ||
|
||
public void Feed(Span<byte> bytes) | ||
public void Feed(long value) | ||
{ | ||
FeedAtLevel(MemoryMarshal.Cast<byte, UInt256>(bytes)[0], 0); | ||
Merkle.Ize(out _chunks[^1], value); | ||
Feed(_chunks[^1]); | ||
} | ||
|
||
public void Feed(Span<byte> data, int? limit = null) | ||
{ | ||
if (data.Length is 0) | ||
{ | ||
Merkle.Ize(out _chunks[^1], UInt256.Zero); | ||
} | ||
else | ||
{ | ||
Merkle.Ize(out _chunks[^1], data); | ||
} | ||
|
||
if (limit is not null) Merkle.MixIn(ref _chunks[^1], limit.Value); | ||
} | ||
|
||
public void Feed(Span<ushort> data, int? limit = null) | ||
{ | ||
if (data.Length is 0) | ||
{ | ||
Merkle.Ize(out _chunks[^1], UInt256.Zero); | ||
} | ||
else | ||
{ | ||
Merkle.Ize(out _chunks[^1], MemoryMarshal.Cast<ushort, byte>(data)); | ||
} | ||
|
||
if (limit is not null) Merkle.MixIn(ref _chunks[^1], limit.Value); | ||
} | ||
|
||
public void Feed(Span<short> data, int? limit = null) | ||
{ | ||
if (data.Length is 0) | ||
{ | ||
Merkle.Ize(out _chunks[^1], UInt256.Zero); | ||
} | ||
else | ||
{ | ||
Merkle.Ize(out _chunks[^1], MemoryMarshal.Cast<short, byte>(data)); | ||
} | ||
|
||
if (limit is not null) Merkle.MixIn(ref _chunks[^1], limit.Value); | ||
} | ||
|
||
public void Feed(Span<uint> data, int? limit = null) | ||
{ | ||
if (data.Length is 0) | ||
{ | ||
Merkle.Ize(out _chunks[^1], UInt256.Zero); | ||
} | ||
else | ||
{ | ||
Merkle.Ize(out _chunks[^1], MemoryMarshal.Cast<uint, byte>(data)); | ||
} | ||
|
||
if (limit is not null) Merkle.MixIn(ref _chunks[^1], limit.Value); | ||
} | ||
|
||
public void Feed(Span<int> data, int? limit = null) | ||
{ | ||
if (data.Length is 0) | ||
{ | ||
Merkle.Ize(out _chunks[^1], UInt256.Zero); | ||
} | ||
else | ||
{ | ||
Merkle.Ize(out _chunks[^1], MemoryMarshal.Cast<int, byte>(data)); | ||
} | ||
|
||
if (limit is not null) Merkle.MixIn(ref _chunks[^1], limit.Value); | ||
} | ||
|
||
public void Feed(Span<ulong> data, int? limit = null) | ||
{ | ||
if (data.Length is 0) | ||
{ | ||
Merkle.Ize(out _chunks[^1], UInt256.Zero); | ||
} | ||
else | ||
{ | ||
Merkle.Ize(out _chunks[^1], MemoryMarshal.Cast<ulong, byte>(data)); | ||
} | ||
|
||
if (limit is not null) Merkle.MixIn(ref _chunks[^1], limit.Value); | ||
} | ||
|
||
public void Feed(Span<long> data, int? limit = null) | ||
{ | ||
if (data.Length is 0) | ||
{ | ||
Merkle.Ize(out _chunks[^1], UInt256.Zero); | ||
} | ||
else | ||
{ | ||
Merkle.Ize(out _chunks[^1], MemoryMarshal.Cast<long, byte>(data)); | ||
} | ||
|
||
if (limit is not null) Merkle.MixIn(ref _chunks[^1], limit.Value); | ||
} | ||
|
||
public void Feed(Span<UInt128> data, int? limit = null) | ||
{ | ||
if (data.Length is 0) | ||
{ | ||
Merkle.Ize(out _chunks[^1], UInt256.Zero); | ||
} | ||
else | ||
{ | ||
Merkle.Ize(out _chunks[^1], MemoryMarshal.Cast<UInt128, byte>(data)); | ||
} | ||
|
||
if (limit is not null) Merkle.MixIn(ref _chunks[^1], limit.Value); | ||
} | ||
|
||
public void Feed(bool value) | ||
|
@@ -74,6 +188,20 @@ public void Feed(uint value) | |
Merkle.Ize(out _chunks[^1], value); | ||
Feed(_chunks[^1]); | ||
} | ||
public void Feed(int value) | ||
flcl42 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
{ | ||
Merkle.Ize(out _chunks[^1], value); | ||
Feed(_chunks[^1]); | ||
} | ||
public void Feed(int? value) | ||
{ | ||
if (value is null) | ||
{ | ||
return; | ||
} | ||
Merkle.Ize(out _chunks[^1], value.Value); | ||
Feed(_chunks[^1]); | ||
} | ||
|
||
public void Feed(ulong value) | ||
{ | ||
|
@@ -103,27 +231,48 @@ public void FeedBits(byte[]? value, uint limit) | |
Feed(_chunks[^1]); | ||
} | ||
|
||
public void FeedBitvector(BitArray bitArray) | ||
public void Feed(BitArray? vector) | ||
{ | ||
if (vector is null) return; | ||
// bitfield_bytes | ||
byte[] bytes = new byte[(bitArray.Length + 7) / 8]; | ||
bitArray.CopyTo(bytes, 0); | ||
byte[] bytes = new byte[(vector.Length + 7) / 8]; | ||
vector.CopyTo(bytes, 0); | ||
|
||
Merkle.Ize(out _chunks[^1], bytes); | ||
Feed(_chunks[^1]); | ||
} | ||
|
||
public void FeedBitlist(BitArray bitArray, ulong maximumBitlistLength) | ||
public void Feed(BitArray? list, ulong maximumBitlistLength) | ||
{ | ||
if (list is null) return; | ||
|
||
// chunk count | ||
ulong chunkCount = (maximumBitlistLength + 255) / 256; | ||
|
||
// bitfield_bytes | ||
byte[] bytes = new byte[(bitArray.Length + 7) / 8]; | ||
bitArray.CopyTo(bytes, 0); | ||
byte[] bytes = new byte[(list.Length + 7) / 8]; | ||
list.CopyTo(bytes, 0); | ||
|
||
Merkle.Ize(out _chunks[^1], bytes, chunkCount); | ||
Merkle.MixIn(ref _chunks[^1], bitArray.Length); | ||
Merkle.MixIn(ref _chunks[^1], list.Length); | ||
Feed(_chunks[^1]); | ||
} | ||
|
||
public void Feed(IReadOnlyList<byte[]> value, ulong maxLength) | ||
{ | ||
if (value is null) | ||
{ | ||
return; | ||
} | ||
|
||
UInt256[] subRoots = new UInt256[value.Count]; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ArrayPoolList? |
||
for (int i = 0; i < value.Count; i++) | ||
{ | ||
Merkle.Ize(out subRoots[i], value[i]); | ||
} | ||
|
||
Merkle.Ize(out _chunks[^1], subRoots, maxLength); | ||
Merkle.MixIn(ref _chunks[^1], value.Count); | ||
Feed(_chunks[^1]); | ||
} | ||
|
||
|
@@ -574,6 +723,20 @@ public void Feed(IReadOnlyList<Bytes32> value, ulong maxLength) | |
Feed(_chunks[^1]); | ||
} | ||
|
||
public void Feed(IReadOnlyList<ulong> value, ulong maxLength) | ||
{ | ||
// TODO: If UInt256 is the correct memory layout | ||
UInt256[] subRoots = new UInt256[value.Count]; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ArrayPoolList? |
||
for (int i = 0; i < value.Count; i++) | ||
{ | ||
Merkle.Ize(out subRoots[i], value[i]); | ||
} | ||
|
||
Merkle.Ize(out _chunks[^1], subRoots, maxLength); | ||
Merkle.MixIn(ref _chunks[^1], value.Count); | ||
Feed(_chunks[^1]); | ||
} | ||
|
||
public void Feed(IReadOnlyList<Root> value) | ||
{ | ||
UInt256[] input = new UInt256[value.Count]; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest renaming this cryptic
Ize()
method to a more understandable one, say,Merklize
orMerkleize
. Perhaps the former. Whatever we choose, we need to have a consistent naming.