-
Notifications
You must be signed in to change notification settings - Fork 21.5k
core: don't overwrite stored chain config with default based on genesis hash #32556
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
Conversation
|
I think this PR might break the auto-upgrade of the chain config for predefined networks. Something to be investigated. |
| // object is null, it returns the default chain configuration based on the given | ||
| // genesis hash, or the locally stored config if it's not a pre-defined network. | ||
| func (g *Genesis) chainConfigOrDefault(ghash common.Hash, stored *params.ChainConfig) *params.ChainConfig { | ||
| switch { |
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.
How about we check the stored config before all the default configs?
e.g.,
diff --git a/core/genesis.go b/core/genesis.go
index 2673334e9e..95c31c6279 100644
--- a/core/genesis.go
+++ b/core/genesis.go
@@ -430,6 +430,8 @@ func (g *Genesis) chainConfigOrDefault(ghash common.Hash, stored *params.ChainCo
switch {
case g != nil:
return g.Config
+ case stored != nil:
+ return stored
case ghash == params.MainnetGenesisHash:
return params.MainnetChainConfig
case ghash == params.HoleskyGenesisHash:
@@ -439,7 +441,7 @@ func (g *Genesis) chainConfigOrDefault(ghash common.Hash, stored *params.ChainCo
case ghash == params.HoodiGenesisHash:
return params.HoodiChainConfig
default:
- return stored
+ return nil
}
}
| // The new config is sourced either directly from provided Genesis or by | ||
| // applying overrides to the stored config. | ||
| newCfg := storedCfg | ||
| if genesis != nil { |
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.
It breaks the auto-upgrade for mainnet.
(a) the chain config was persisted with old geth version, e.g., osaka at time-x;
(b) a new geth is release then with osaka at time-y;
(c) the node is launched without network == mainnet, the genesis object here is nil, the chain config won't be overridden then
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.
Good point. I fixed it in cbff538.
0ad3362 to
cbff538
Compare
|
I was confused by the My resolution to this is to define the config's genesis by default via cbff538. One of Felix's concern was decoding the mainnet genesis each time, but from my benchmark it appears the decoding is around |
|
I realized that my resolution in cbff538 is actually wrong. Although it does solve the issue of fixing the auto-upgrade for mainnet, it breaks the main use of the PR -> allowing users to overwrite their chain config with After playing with a few other options, it seems like if we are to continue supporting the current interface it isn't going to be possible to change the start up logic a little bit to "know" when to use the the stored config vs. auto-upgrade. For those reasons I'm going to close this PR. I'm planning to open an alternative to this that allows a user to overwrite the active genesis by passing a |
This PR is an alternative to #32556. Instead of trying to be smart and reuse `geth init`, we can introduce a new flag `--genesis` that loads the `genesis.json` from file into the `Genesis` object in the same path that the other network flags currently work in. Question: is something like `--genesis` enough to start deprecating `geth init`? -- ```console $ geth --datadir data --hoodi .. INFO [10-06|22:37:11.202] - BPO2: @1762955544 .. $ geth --datadir data --genesis genesis.json .. INFO [10-06|22:37:27.988] - BPO2: @1862955544 .. ``` Pull the genesis [from the specs](https://raw.githubusercontent.com/eth-clients/hoodi/refs/heads/main/metadata/genesis.json) and modify one of the BPO timestamps to simulate a shadow fork. --------- Co-authored-by: rjl493456442 <[email protected]>
This PR is an alternative to ethereum#32556. Instead of trying to be smart and reuse `geth init`, we can introduce a new flag `--genesis` that loads the `genesis.json` from file into the `Genesis` object in the same path that the other network flags currently work in. Question: is something like `--genesis` enough to start deprecating `geth init`? -- ```console $ geth --datadir data --hoodi .. INFO [10-06|22:37:11.202] - BPO2: @1762955544 .. $ geth --datadir data --genesis genesis.json .. INFO [10-06|22:37:27.988] - BPO2: @1862955544 .. ``` Pull the genesis [from the specs](https://raw.githubusercontent.com/eth-clients/hoodi/refs/heads/main/metadata/genesis.json) and modify one of the BPO timestamps to simulate a shadow fork. --------- Co-authored-by: rjl493456442 <[email protected]>
We need to rethink our approach to "overwriting" the chain config a bit.
In the past, forks were quite simple. Either a block number or timestamp is chosen for the fork to activate on and all other changes follow from there. Now we are adding other configuration parameters to the fork, such as the max and target blob counts. Combining this with the BPO-style forking, we would need 3 flags for each upcoming fork to allow on-the-fly modifications to the schedule and shadowfork support. With 5 BPOs following Osaka, that means we'd need 18 flags to fully configure the fork. Obviously not a scalable solution.
We've discussed rethinking the whole concept of
geth inita bit to combine it with normal running. Since we need a way for Osaka shadow forks to progress ASAP, I won't open that up for now. The minimal thing we can do is this PR which simply avoids overwriting a stored config with a generic genesis hash based default.You can see this behavior play out by running the following and noting the Osaka activation time printed out:
sample genesis.json with Osaka
{ "config": { "chainId": 17000, "homesteadBlock": 0, "eip150Block": 0, "eip155Block": 0, "eip158Block": 0, "byzantiumBlock": 0, "constantinopleBlock": 0, "petersburgBlock": 0, "istanbulBlock": 0, "berlinBlock": 0, "londonBlock": 0, "mergeNetsplitBlock": 0, "terminalTotalDifficulty": 0, "terminalTotalDifficultyPassed": true, "shanghaiTime": 1696000704, "cancunTime": 1707305664, "pragueTime": 1740434112, "osakaTime": 1757361538, "blobSchedule": { "cancun": { "target": 3, "max": 6, "baseFeeUpdateFraction": 3338477 }, "prague": { "target": 6, "max": 9, "baseFeeUpdateFraction": 5007716 }, "osaka": { "target": 6, "max": 9, "baseFeeUpdateFraction": 5007716 } }, "depositContractAddress": "0x4242424242424242424242424242424242424242" }, "alloc": { "0x0000000000000000000000000000000000000000": { "balance": "1" }, "0x0000000000000000000000000000000000000001": { "balance": "1" }, "0x0000000000000000000000000000000000000002": { "balance": "1" }, "0x0000000000000000000000000000000000000003": { "balance": "1" }, "0x0000000000000000000000000000000000000004": { "balance": "1" }, "0x0000000000000000000000000000000000000005": { "balance": "1" }, "0x0000000000000000000000000000000000000006": { "balance": "1" }, "0x0000000000000000000000000000000000000007": { "balance": "1" }, "0x0000000000000000000000000000000000000008": { "balance": "1" }, "0x0000000000000000000000000000000000000009": { "balance": "1" }, "0x000000000000000000000000000000000000000a": { "balance": "1" }, "0x000000000000000000000000000000000000000b": { "balance": "1" }, "0x000000000000000000000000000000000000000c": { "balance": "1" }, "0x000000000000000000000000000000000000000d": { "balance": "1" }, "0x000000000000000000000000000000000000000e": { "balance": "1" }, "0x000000000000000000000000000000000000000f": { "balance": "1" }, "0x0000000000000000000000000000000000000010": { "balance": "1" }, "0x0000000000000000000000000000000000000011": { "balance": "1" }, "0x0000000000000000000000000000000000000012": { "balance": "1" }, "0x0000000000000000000000000000000000000013": { "balance": "1" }, "0x0000000000000000000000000000000000000014": { "balance": "1" }, "0x0000000000000000000000000000000000000015": { "balance": "1" }, "0x0000000000000000000000000000000000000016": { "balance": "1" }, "0x0000000000000000000000000000000000000017": { "balance": "1" }, "0x0000000000000000000000000000000000000018": { "balance": "1" }, "0x0000000000000000000000000000000000000019": { "balance": "1" }, "0x000000000000000000000000000000000000001a": { "balance": "1" }, "0x000000000000000000000000000000000000001b": { "balance": "1" }, "0x000000000000000000000000000000000000001c": { "balance": "1" }, "0x000000000000000000000000000000000000001d": { "balance": "1" }, "0x000000000000000000000000000000000000001e": { "balance": "1" }, "0x000000000000000000000000000000000000001f": { "balance": "1" }, "0x0000000000000000000000000000000000000020": { "balance": "1" }, "0x0000000000000000000000000000000000000021": { "balance": "1" }, "0x0000000000000000000000000000000000000022": { "balance": "1" }, "0x0000000000000000000000000000000000000023": { "balance": "1" }, "0x0000000000000000000000000000000000000024": { "balance": "1" }, "0x0000000000000000000000000000000000000025": { "balance": "1" }, "0x0000000000000000000000000000000000000026": { "balance": "1" }, "0x0000000000000000000000000000000000000027": { "balance": "1" }, "0x0000000000000000000000000000000000000028": { "balance": "1" }, "0x0000000000000000000000000000000000000029": { "balance": "1" }, "0x000000000000000000000000000000000000002a": { "balance": "1" }, "0x000000000000000000000000000000000000002b": { "balance": "1" }, "0x000000000000000000000000000000000000002c": { "balance": "1" }, "0x000000000000000000000000000000000000002d": { "balance": "1" }, "0x000000000000000000000000000000000000002e": { "balance": "1" }, "0x000000000000000000000000000000000000002f": { "balance": "1" }, "0x0000000000000000000000000000000000000030": { "balance": "1" }, "0x0000000000000000000000000000000000000031": { "balance": "1" }, "0x0000000000000000000000000000000000000032": { "balance": "1" }, "0x0000000000000000000000000000000000000033": { "balance": "1" }, "0x0000000000000000000000000000000000000034": { "balance": "1" }, "0x0000000000000000000000000000000000000035": { "balance": "1" }, "0x0000000000000000000000000000000000000036": { "balance": "1" }, "0x0000000000000000000000000000000000000037": { "balance": "1" }, "0x0000000000000000000000000000000000000038": { "balance": "1" }, "0x0000000000000000000000000000000000000039": { "balance": "1" }, "0x000000000000000000000000000000000000003a": { "balance": "1" }, "0x000000000000000000000000000000000000003b": { "balance": "1" }, "0x000000000000000000000000000000000000003c": { "balance": "1" }, "0x000000000000000000000000000000000000003d": { "balance": "1" }, "0x000000000000000000000000000000000000003e": { "balance": "1" }, "0x000000000000000000000000000000000000003f": { "balance": "1" }, "0x0000000000000000000000000000000000000040": { "balance": "1" }, "0x0000000000000000000000000000000000000041": { "balance": "1" }, "0x0000000000000000000000000000000000000042": { "balance": "1" }, "0x0000000000000000000000000000000000000043": { "balance": "1" }, "0x0000000000000000000000000000000000000044": { "balance": "1" }, "0x0000000000000000000000000000000000000045": { "balance": "1" }, "0x0000000000000000000000000000000000000046": { "balance": "1" }, "0x0000000000000000000000000000000000000047": { "balance": "1" }, "0x0000000000000000000000000000000000000048": { "balance": "1" }, "0x0000000000000000000000000000000000000049": { "balance": "1" }, "0x000000000000000000000000000000000000004a": { "balance": "1" }, "0x000000000000000000000000000000000000004b": { "balance": "1" }, "0x000000000000000000000000000000000000004c": { "balance": "1" }, "0x000000000000000000000000000000000000004d": { "balance": "1" }, "0x000000000000000000000000000000000000004e": { "balance": "1" }, "0x000000000000000000000000000000000000004f": { "balance": "1" }, "0x0000000000000000000000000000000000000050": { "balance": "1" }, "0x0000000000000000000000000000000000000051": { "balance": "1" }, "0x0000000000000000000000000000000000000052": { "balance": "1" }, "0x0000000000000000000000000000000000000053": { "balance": "1" }, "0x0000000000000000000000000000000000000054": { "balance": "1" }, "0x0000000000000000000000000000000000000055": { "balance": "1" }, "0x0000000000000000000000000000000000000056": { "balance": "1" }, "0x0000000000000000000000000000000000000057": { "balance": "1" }, "0x0000000000000000000000000000000000000058": { "balance": "1" }, "0x0000000000000000000000000000000000000059": { "balance": "1" }, "0x000000000000000000000000000000000000005a": { "balance": "1" }, "0x000000000000000000000000000000000000005b": { "balance": "1" }, "0x000000000000000000000000000000000000005c": { "balance": "1" }, "0x000000000000000000000000000000000000005d": { "balance": "1" }, "0x000000000000000000000000000000000000005e": { "balance": "1" }, "0x000000000000000000000000000000000000005f": { "balance": "1" }, "0x0000000000000000000000000000000000000060": { "balance": "1" }, "0x0000000000000000000000000000000000000061": { "balance": "1" }, "0x0000000000000000000000000000000000000062": { "balance": "1" }, "0x0000000000000000000000000000000000000063": { "balance": "1" }, "0x0000000000000000000000000000000000000064": { "balance": "1" }, "0x0000000000000000000000000000000000000065": { "balance": "1" }, "0x0000000000000000000000000000000000000066": { "balance": "1" }, "0x0000000000000000000000000000000000000067": { "balance": "1" }, "0x0000000000000000000000000000000000000068": { "balance": "1" }, "0x0000000000000000000000000000000000000069": { "balance": "1" }, "0x000000000000000000000000000000000000006a": { "balance": "1" }, "0x000000000000000000000000000000000000006b": { "balance": "1" }, "0x000000000000000000000000000000000000006c": { "balance": "1" }, "0x000000000000000000000000000000000000006d": { "balance": "1" }, "0x000000000000000000000000000000000000006e": { "balance": "1" }, "0x000000000000000000000000000000000000006f": { "balance": "1" }, "0x0000000000000000000000000000000000000070": { "balance": "1" }, "0x0000000000000000000000000000000000000071": { "balance": "1" }, "0x0000000000000000000000000000000000000072": { "balance": "1" }, "0x0000000000000000000000000000000000000073": { "balance": "1" }, "0x0000000000000000000000000000000000000074": { "balance": "1" }, "0x0000000000000000000000000000000000000075": { "balance": "1" }, "0x0000000000000000000000000000000000000076": { "balance": "1" }, "0x0000000000000000000000000000000000000077": { "balance": "1" }, "0x0000000000000000000000000000000000000078": { "balance": "1" }, "0x0000000000000000000000000000000000000079": { "balance": "1" }, "0x000000000000000000000000000000000000007a": { "balance": "1" }, "0x000000000000000000000000000000000000007b": { "balance": "1" }, "0x000000000000000000000000000000000000007c": { "balance": "1" }, "0x000000000000000000000000000000000000007d": { "balance": "1" }, "0x000000000000000000000000000000000000007e": { "balance": "1" }, "0x000000000000000000000000000000000000007f": { "balance": "1" }, "0x0000000000000000000000000000000000000080": { "balance": "1" }, "0x0000000000000000000000000000000000000081": { "balance": "1" }, "0x0000000000000000000000000000000000000082": { "balance": "1" }, "0x0000000000000000000000000000000000000083": { "balance": "1" }, "0x0000000000000000000000000000000000000084": { "balance": "1" }, "0x0000000000000000000000000000000000000085": { "balance": "1" }, "0x0000000000000000000000000000000000000086": { "balance": "1" }, "0x0000000000000000000000000000000000000087": { "balance": "1" }, "0x0000000000000000000000000000000000000088": { "balance": "1" }, "0x0000000000000000000000000000000000000089": { "balance": "1" }, "0x000000000000000000000000000000000000008a": { "balance": "1" }, "0x000000000000000000000000000000000000008b": { "balance": "1" }, "0x000000000000000000000000000000000000008c": { "balance": "1" }, "0x000000000000000000000000000000000000008d": { "balance": "1" }, "0x000000000000000000000000000000000000008e": { "balance": "1" }, "0x000000000000000000000000000000000000008f": { "balance": "1" }, "0x0000000000000000000000000000000000000090": { "balance": "1" }, "0x0000000000000000000000000000000000000091": { "balance": "1" }, "0x0000000000000000000000000000000000000092": { "balance": "1" }, "0x0000000000000000000000000000000000000093": { "balance": "1" }, "0x0000000000000000000000000000000000000094": { "balance": "1" }, "0x0000000000000000000000000000000000000095": { "balance": "1" }, "0x0000000000000000000000000000000000000096": { "balance": "1" }, "0x0000000000000000000000000000000000000097": { "balance": "1" }, "0x0000000000000000000000000000000000000098": { "balance": "1" }, "0x0000000000000000000000000000000000000099": { "balance": "1" }, "0x000000000000000000000000000000000000009a": { "balance": "1" }, "0x000000000000000000000000000000000000009b": { "balance": "1" }, "0x000000000000000000000000000000000000009c": { "balance": "1" }, "0x000000000000000000000000000000000000009d": { "balance": "1" }, "0x000000000000000000000000000000000000009e": { "balance": "1" }, "0x000000000000000000000000000000000000009f": { "balance": "1" }, "0x00000000000000000000000000000000000000a0": { "balance": "1" }, "0x00000000000000000000000000000000000000a1": { "balance": "1" }, "0x00000000000000000000000000000000000000a2": { "balance": "1" }, "0x00000000000000000000000000000000000000a3": { "balance": "1" }, "0x00000000000000000000000000000000000000a4": { "balance": "1" }, "0x00000000000000000000000000000000000000a5": { "balance": "1" }, "0x00000000000000000000000000000000000000a6": { "balance": "1" }, "0x00000000000000000000000000000000000000a7": { "balance": "1" }, "0x00000000000000000000000000000000000000a8": { "balance": "1" }, "0x00000000000000000000000000000000000000a9": { "balance": "1" }, "0x00000000000000000000000000000000000000aa": { "balance": "1" }, "0x00000000000000000000000000000000000000ab": { "balance": "1" }, "0x00000000000000000000000000000000000000ac": { "balance": "1" }, "0x00000000000000000000000000000000000000ad": { "balance": "1" }, "0x00000000000000000000000000000000000000ae": { "balance": "1" }, "0x00000000000000000000000000000000000000af": { "balance": "1" }, "0x00000000000000000000000000000000000000b0": { "balance": "1" }, "0x00000000000000000000000000000000000000b1": { "balance": "1" }, "0x00000000000000000000000000000000000000b2": { "balance": "1" }, "0x00000000000000000000000000000000000000b3": { "balance": "1" }, "0x00000000000000000000000000000000000000b4": { "balance": "1" }, "0x00000000000000000000000000000000000000b5": { "balance": "1" }, "0x00000000000000000000000000000000000000b6": { "balance": "1" }, "0x00000000000000000000000000000000000000b7": { "balance": "1" }, "0x00000000000000000000000000000000000000b8": { "balance": "1" }, "0x00000000000000000000000000000000000000b9": { "balance": "1" }, "0x00000000000000000000000000000000000000ba": { "balance": "1" }, "0x00000000000000000000000000000000000000bb": { "balance": "1" }, "0x00000000000000000000000000000000000000bc": { "balance": "1" }, "0x00000000000000000000000000000000000000bd": { "balance": "1" }, "0x00000000000000000000000000000000000000be": { "balance": "1" }, "0x00000000000000000000000000000000000000bf": { "balance": "1" }, "0x00000000000000000000000000000000000000c0": { "balance": "1" }, "0x00000000000000000000000000000000000000c1": { "balance": "1" }, "0x00000000000000000000000000000000000000c2": { "balance": "1" }, "0x00000000000000000000000000000000000000c3": { "balance": "1" }, "0x00000000000000000000000000000000000000c4": { "balance": "1" }, "0x00000000000000000000000000000000000000c5": { "balance": "1" }, "0x00000000000000000000000000000000000000c6": { "balance": "1" }, "0x00000000000000000000000000000000000000c7": { "balance": "1" }, "0x00000000000000000000000000000000000000c8": { "balance": "1" }, "0x00000000000000000000000000000000000000c9": { "balance": "1" }, "0x00000000000000000000000000000000000000ca": { "balance": "1" }, "0x00000000000000000000000000000000000000cb": { "balance": "1" }, "0x00000000000000000000000000000000000000cc": { "balance": "1" }, "0x00000000000000000000000000000000000000cd": { "balance": "1" }, "0x00000000000000000000000000000000000000ce": { "balance": "1" }, "0x00000000000000000000000000000000000000cf": { "balance": "1" }, "0x00000000000000000000000000000000000000d0": { "balance": "1" }, "0x00000000000000000000000000000000000000d1": { "balance": "1" }, "0x00000000000000000000000000000000000000d2": { "balance": "1" }, "0x00000000000000000000000000000000000000d3": { "balance": "1" }, "0x00000000000000000000000000000000000000d4": { "balance": "1" }, "0x00000000000000000000000000000000000000d5": { "balance": "1" }, "0x00000000000000000000000000000000000000d6": { "balance": "1" }, "0x00000000000000000000000000000000000000d7": { "balance": "1" }, "0x00000000000000000000000000000000000000d8": { "balance": "1" }, "0x00000000000000000000000000000000000000d9": { "balance": "1" }, "0x00000000000000000000000000000000000000da": { "balance": "1" }, "0x00000000000000000000000000000000000000db": { "balance": "1" }, "0x00000000000000000000000000000000000000dc": { "balance": "1" }, "0x00000000000000000000000000000000000000dd": { "balance": "1" }, "0x00000000000000000000000000000000000000de": { "balance": "1" }, "0x00000000000000000000000000000000000000df": { "balance": "1" }, "0x00000000000000000000000000000000000000e0": { "balance": "1" }, "0x00000000000000000000000000000000000000e1": { "balance": "1" }, "0x00000000000000000000000000000000000000e2": { "balance": "1" }, "0x00000000000000000000000000000000000000e3": { "balance": "1" }, "0x00000000000000000000000000000000000000e4": { "balance": "1" }, "0x00000000000000000000000000000000000000e5": { "balance": "1" }, "0x00000000000000000000000000000000000000e6": { "balance": "1" }, "0x00000000000000000000000000000000000000e7": { "balance": "1" }, "0x00000000000000000000000000000000000000e8": { "balance": "1" }, "0x00000000000000000000000000000000000000e9": { "balance": "1" }, "0x00000000000000000000000000000000000000ea": { "balance": "1" }, "0x00000000000000000000000000000000000000eb": { "balance": "1" }, "0x00000000000000000000000000000000000000ec": { "balance": "1" }, "0x00000000000000000000000000000000000000ed": { "balance": "1" }, "0x00000000000000000000000000000000000000ee": { "balance": "1" }, "0x00000000000000000000000000000000000000ef": { "balance": "1" }, "0x00000000000000000000000000000000000000f0": { "balance": "1" }, "0x00000000000000000000000000000000000000f1": { "balance": "1" }, "0x00000000000000000000000000000000000000f2": { "balance": "1" }, "0x00000000000000000000000000000000000000f3": { "balance": "1" }, "0x00000000000000000000000000000000000000f4": { "balance": "1" }, "0x00000000000000000000000000000000000000f5": { "balance": "1" }, "0x00000000000000000000000000000000000000f6": { "balance": "1" }, "0x00000000000000000000000000000000000000f7": { "balance": "1" }, "0x00000000000000000000000000000000000000f8": { "balance": "1" }, "0x00000000000000000000000000000000000000f9": { "balance": "1" }, "0x00000000000000000000000000000000000000fa": { "balance": "1" }, "0x00000000000000000000000000000000000000fb": { "balance": "1" }, "0x00000000000000000000000000000000000000fc": { "balance": "1" }, "0x00000000000000000000000000000000000000fd": { "balance": "1" }, "0x00000000000000000000000000000000000000fe": { "balance": "1" }, "0x00000000000000000000000000000000000000ff": { "balance": "1" }, "0x4242424242424242424242424242424242424242": { "balance": "0", "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a26469706673582212201dd26f37a621703009abf16e77e69c93dc50c79db7f6cc37543e3e0e3decdc9764736f6c634300060b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000022": "0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b", "0x0000000000000000000000000000000000000000000000000000000000000023": "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", "0x0000000000000000000000000000000000000000000000000000000000000024": "0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c", "0x0000000000000000000000000000000000000000000000000000000000000025": "0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c", "0x0000000000000000000000000000000000000000000000000000000000000026": "0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30", "0x0000000000000000000000000000000000000000000000000000000000000027": "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1", "0x0000000000000000000000000000000000000000000000000000000000000028": "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c", "0x0000000000000000000000000000000000000000000000000000000000000029": "0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193", "0x000000000000000000000000000000000000000000000000000000000000002a": "0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1", "0x000000000000000000000000000000000000000000000000000000000000002b": "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b", "0x000000000000000000000000000000000000000000000000000000000000002c": "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220", "0x000000000000000000000000000000000000000000000000000000000000002d": "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f", "0x000000000000000000000000000000000000000000000000000000000000002e": "0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e", "0x000000000000000000000000000000000000000000000000000000000000002f": "0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784", "0x0000000000000000000000000000000000000000000000000000000000000030": "0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb", "0x0000000000000000000000000000000000000000000000000000000000000031": "0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb", "0x0000000000000000000000000000000000000000000000000000000000000032": "0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab", "0x0000000000000000000000000000000000000000000000000000000000000033": "0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4", "0x0000000000000000000000000000000000000000000000000000000000000034": "0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f", "0x0000000000000000000000000000000000000000000000000000000000000035": "0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa", "0x0000000000000000000000000000000000000000000000000000000000000036": "0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c", "0x0000000000000000000000000000000000000000000000000000000000000037": "0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167", "0x0000000000000000000000000000000000000000000000000000000000000038": "0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7", "0x0000000000000000000000000000000000000000000000000000000000000039": "0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0", "0x000000000000000000000000000000000000000000000000000000000000003a": "0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544", "0x000000000000000000000000000000000000000000000000000000000000003b": "0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765", "0x000000000000000000000000000000000000000000000000000000000000003c": "0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4", "0x000000000000000000000000000000000000000000000000000000000000003d": "0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1", "0x000000000000000000000000000000000000000000000000000000000000003e": "0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636", "0x000000000000000000000000000000000000000000000000000000000000003f": "0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c", "0x0000000000000000000000000000000000000000000000000000000000000040": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7" } }, "0x0000006916a87b82333f4245046623b23794C65C": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x0be949928Ff199c9EBA9E110db210AA5C94EFAd0": { "balance": "0x7c13bc4b2c133c56000000" }, "0x0C100000006d7b5e23a1eAEE637f28cA32Cd5b31": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x0C35317B7a96C454E2CB3d1A255D775Ab112cCc8": { "balance": "0xd3c21bcecceda1000000" }, "0x0d731cfabC5574329823F26d488416451d2ea376": { "balance": "0xd3c21bcecceda1000000" }, "0x0e79065B5F11b5BD1e62B935A600976ffF3754B9": { "balance": "0xd3c21bcecceda1000000" }, "0x105083929bF9bb22C26cB1777Ec92661170D4285": { "balance": "0xd3c21bcecceda1000000" }, "0x10F5d45854e038071485AC9e402308cF80D2d2fE": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x1268AD189526AC0b386faF06eFfC46779c340eE6": { "balance": "0xd3c21bcecceda1000000" }, "0x12Cba59f5A74DB81a12ff63C349Bd82CBF6007C2": { "balance": "0xd3c21bcecceda1000000" }, "0x1446D7f6dF00380F246d8211dE7f0FaBC4Fd248C": { "balance": "0xd3c21bcecceda1000000" }, "0x164e38a375247A784A81d420201AA8fe4E513921": { "balance": "0xd3c21bcecceda1000000" }, "0x1B7aA44088a0eA95bdc65fef6E5071E946Bf7d8f": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x222222222222cF64a76AE3d36859958c864fDA2c": { "balance": "0xd3c21bcecceda1000000" }, "0x2f14582947E292a2eCd20C430B46f2d27CFE213c": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x2f2c75B5Dd5D246194812b00eEb3B09c2c66e2eE": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x341c40b94bf2afbfa42573cb78f16ee15a056238": { "balance": "0xd3c21bcecceda1000000" }, "0x34f845773D4364999f2fbC7AA26ABDeE902cBb46": { "balance": "0xd3c21bcecceda1000000" }, "0x3C75594181e03E8ECD8468A0037F058a9dAfad79": { "balance": "0xd3c21bcecceda1000000" }, "0x462396E69dBfa455F405f4DD82F3014Af8003B72": { "balance": "0xa56fa5b99019a5c8000000" }, "0x49Df3CCa2670eB0D591146B16359fe336e476F29": { "balance": "0xd3c21bcecceda1000000" }, "0x4D0b04b405c6b62C7cFC3aE54759747e2C0b4662": { "balance": "0xd3c21bcecceda1000000" }, "0x4D496CcC28058B1D74B7a19541663E21154f9c84": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x509a7667aC8D0320e36172c192506a6188aA84f6": { "balance": "0x7c13bc4b2c133c56000000" }, "0x5180db0237291A6449DdA9ed33aD90a38787621c": { "balance": "0xd3c21bcecceda1000000" }, "0x52730f347dEf6BA09adfF62EaC60D5fEe8205BC4": { "balance": "0xd3c21bcecceda1000000" }, "0x5EAC0fBd3dfef8aE3efa3c5dc1aa193bc6033dFd": { "balance": "0xd3c21bcecceda1000000" }, "0x6a7aA9b882d50Bb7bc5Da1a244719C99f12F06a3": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x6Cc9397c3B38739daCbfaA68EaD5F5D77Ba5F455": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x762cA62ca2549ad806763B3Aa1eA317c429bDBDa": { "balance": "0xd3c21bcecceda1000000" }, "0x778F5F13C4Be78A3a4d7141BCB26999702f407CF": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x875D25Ee4bC604C71BaF6236a8488F22399BED4b": { "balance": "0xd3c21bcecceda1000000" }, "0x8dF7878d3571BEF5e5a744F96287C8D20386d75A": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0x9E415A096fF77650dc925dEA546585B4adB322B6": { "balance": "0xd3c21bcecceda1000000" }, "0xA0766B65A4f7B1da79a1AF79aC695456eFa28644": { "balance": "0xd3c21bcecceda1000000" }, "0xA29B144A449E414A472c60C7AAf1aaFfE329021D": { "balance": "0xd3c21bcecceda1000000" }, "0xa55395566b0b54395B3246f96A0bDc4b8a483df9": { "balance": "0xd3c21bcecceda1000000" }, "0xAC9ba72fb61aA7c31A95df0A8b6ebA6f41EF875e": { "balance": "0xd3c21bcecceda1000000" }, "0xB0498C15879db2eE5471d4926c5fAA25C9a09683": { "balance": "0xd3c21bcecceda1000000" }, "0xB19Fb4c1f280327e60Ed37b1Dc6EE77533539314": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0xC21cB9C99C316d1863142F7dD86dd5496D81A8D6": { "balance": "0xd3c21bcecceda1000000" }, "0xc473d412dc52e349862209924c8981b2ee420768": { "balance": "0xd3c21bcecceda1000000" }, "0xC48E23C5F6e1eA0BaEf6530734edC3968f79Af2e": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0xc6e2459991BfE27cca6d86722F35da23A1E4Cb97": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0xD3994e4d3202dD23c8497d7F75bF1647d1DA1bb1": { "balance": "0x19D971E4FE8401E74000000" }, "0xDCA6e9B48Ea86AeBFDf9929949124042296b6e34": { "balance": "0xd3c21bcecceda1000000" }, "0xe0a2Bd4258D2768837BAa26A28fE71Dc079f84c7": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0xEA28d002042fd9898D0Db016be9758eeAFE35C1E": { "balance": "0xd3c21bcecceda1000000" }, "0xEfA7454f1116807975A4750B46695E967850de5D": { "balance": "0xd3c21bcecceda1000000" }, "0xFBFd6Fa9F73Ac6A058E01259034C28001BEf8247": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0xe0991E844041bE6F11B99da5b114b6bCf84EBd57": { "balance": "0xd3c21bcecceda1000000" }, "0x15E719b6AcAf1E4411Bf0f9576CB1D0dB161DdFc": { "balance": "0xd3c21bcecceda1000000" }, "0x346D827a75F98F0A7a324Ff80b7C3F90252E8baC": { "balance": "0xd3c21bcecceda1000000" }, "0x73b2e0E54510239E22cC936F0b4a6dE1acf0AbdE": { "balance": "0x52b7d2dcc80cd2e4000000" }, "0xBb977B2EE8a111D788B3477D242078d0B837E72b": { "balance": "0xd3c21bcecceda1000000" }, "0x834Dbf5A03e29c25bc55459cCe9c021EeBE676Ad": { "balance": "0xd3c21bcecceda1000000" }, "0xD1F77E4C1C45186e8653C489F90e008a73597296": { "balance": "0xd3c21bcecceda1000000" }, "0xb04aeF2a3d2D86B01006cCD4339A2e943d9c6480": { "balance": "0xd3c21bcecceda1000000" }, "0xC9CA2bA9A27De1Db589d8c33Ab8EDFa2111b31fb": { "balance": "0xd3c21bcecceda1000000" }, "0x4BC656B34De23896fa6069C9862F355b740401aF": { "balance": "0x084595161401484a000000" } }, "coinbase": "0x0000000000000000000000000000000000000000", "difficulty": "0x01", "extraData": "", "gasLimit": "0x17D7840", "nonce": "0x1234", "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "timestamp": "1695902100" }The main insight is that when a network flag is passed,
genesisis always non-nil and therefore thisnewCfgwill always be the current default for the network, so when the config needs to change it will still be updated so-long-as the network flag is passed.