Skip to content

Commit d932b99

Browse files
authored
[genesis] Fix genesis hash for testnet (#4636)
1 parent 4f201c0 commit d932b99

File tree

4 files changed

+79
-61
lines changed

4 files changed

+79
-61
lines changed

blockchain/block/genesis_block_test.go

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,38 @@ import (
1919
func TestGenesisBlock(t *testing.T) {
2020
r := require.New(t)
2121

22-
g := genesis.Default
22+
g, err := genesis.New("")
23+
r.NoError(err)
24+
g.Account.InitBalanceMap = map[string]string{
25+
"io1uqhmnttmv0pg8prugxxn7d8ex9angrvfjfthxa": "9800000000000000000000000000",
26+
"io1v3gkc49d5vwtdfdka2ekjl3h468egun8e43r7z": "100000000000000000000000000",
27+
"io1vrl48nsdm8jaujccd9cx4ve23cskr0ys6urx92": "100000000000000000000000000",
28+
"io1llupp3n8q5x8usnr5w08j6hc6hn55x64l46rr7": "100000000000000000000000000",
29+
"io1ns7y0pxmklk8ceattty6n7makpw76u770u5avy": "100000000000000000000000000",
30+
"io1xuavja5dwde8pvy4yms06yyncad4yavghjhwra": "100000000000000000000000000",
31+
"io1cdqx6p5rquudxuewflfndpcl0l8t5aezen9slr": "100000000000000000000000000",
32+
"io1hh97f273nhxcq8ajzcpujtt7p9pqyndfmavn9r": "100000000000000000000000000",
33+
"io1yhvu38epz5vmkjaclp45a7t08r27slmcc0zjzh": "100000000000000000000000000",
34+
"io1cl6rl2ev5dfa988qmgzg2x4hfazmp9vn2g66ng": "100000000000000000000000000",
35+
"io1skmqp33qme8knyw0fzgt9takwrc2nvz4sevk5c": "100000000000000000000000000",
36+
"io1fxzh50pa6qc6x5cprgmgw4qrp5vw97zk5pxt3q": "100000000000000000000000000",
37+
"io1jh0ekmccywfkmj7e8qsuzsupnlk3w5337hjjg2": "100000000000000000000000000",
38+
"io1juvx5g063eu4ts832nukp4vgcwk2gnc5cu9ayd": "100000000000000000000000000",
39+
"io19d0p3ah4g8ww9d7kcxfq87yxe7fnr8rpth5shj": "100000000000000000000000000",
40+
"io1ed52svvdun2qv8sf2m0xnynuxfaulv6jlww7ur": "100000000000000000000000000",
41+
"io158hyzrmf4a8xll7gfc8xnwlv70jgp44tzy5nvd": "100000000000000000000000000",
42+
"io19kshh892255x4h5ularvr3q3al2v8cgl80fqrt": "100000000000000000000000000",
43+
"io1ph0u2psnd7muq5xv9623rmxdsxc4uapxhzpg02": "100000000000000000000000000",
44+
"io1znka733xefxjjw2wqddegplwtefun0mfdmz7dw": "100000000000000000000000000",
45+
"io13sj9mzpewn25ymheukte4v39hvjdtrfp00mlyv": "100000000000000000000000000",
46+
"io14gnqxf9dpkn05g337rl7eyt2nxasphf5m6n0rd": "100000000000000000000000000",
47+
"io1l3wc0smczyay8xq747e2hw63mzg3ctp6uf8wsg": "100000000000000000000000000",
48+
"io1q4tdrahguffdu4e9j9aj4f38p2nee0r9vlhx7s": "100000000000000000000000000",
49+
"io1k9y4a9juk45zaqwvjmhtz6yjc68twqds4qcvzv": "100000000000000000000000000",
50+
"io15flratm0nhh5xpxz2lznrrpmnwteyd86hxdtj0": "100000000000000000000000000",
51+
"io1eq4ehs6xx6zj9gcsax7h3qydwlxut9xcfcjras": "100000000000000000000000000",
52+
"io10a298zmzvrt4guq79a9f4x7qedj59y7ery84he": "100000000000000000000000000",
53+
}
2354
genesis.SetGenesisTimestamp(g.Timestamp)
2455
blk := GenesisBlock()
2556
r.EqualValues(version.ProtocolVersion, blk.Version())

blockchain/genesis/genesis.go

Lines changed: 37 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -81,36 +81,7 @@ func defaultConfig() Genesis {
8181
ToBeEnabledBlockHeight: math.MaxUint64,
8282
},
8383
Account: Account{
84-
InitBalanceMap: map[string]string{
85-
"io1uqhmnttmv0pg8prugxxn7d8ex9angrvfjfthxa": "9800000000000000000000000000",
86-
"io1v3gkc49d5vwtdfdka2ekjl3h468egun8e43r7z": "100000000000000000000000000",
87-
"io1vrl48nsdm8jaujccd9cx4ve23cskr0ys6urx92": "100000000000000000000000000",
88-
"io1llupp3n8q5x8usnr5w08j6hc6hn55x64l46rr7": "100000000000000000000000000",
89-
"io1ns7y0pxmklk8ceattty6n7makpw76u770u5avy": "100000000000000000000000000",
90-
"io1xuavja5dwde8pvy4yms06yyncad4yavghjhwra": "100000000000000000000000000",
91-
"io1cdqx6p5rquudxuewflfndpcl0l8t5aezen9slr": "100000000000000000000000000",
92-
"io1hh97f273nhxcq8ajzcpujtt7p9pqyndfmavn9r": "100000000000000000000000000",
93-
"io1yhvu38epz5vmkjaclp45a7t08r27slmcc0zjzh": "100000000000000000000000000",
94-
"io1cl6rl2ev5dfa988qmgzg2x4hfazmp9vn2g66ng": "100000000000000000000000000",
95-
"io1skmqp33qme8knyw0fzgt9takwrc2nvz4sevk5c": "100000000000000000000000000",
96-
"io1fxzh50pa6qc6x5cprgmgw4qrp5vw97zk5pxt3q": "100000000000000000000000000",
97-
"io1jh0ekmccywfkmj7e8qsuzsupnlk3w5337hjjg2": "100000000000000000000000000",
98-
"io1juvx5g063eu4ts832nukp4vgcwk2gnc5cu9ayd": "100000000000000000000000000",
99-
"io19d0p3ah4g8ww9d7kcxfq87yxe7fnr8rpth5shj": "100000000000000000000000000",
100-
"io1ed52svvdun2qv8sf2m0xnynuxfaulv6jlww7ur": "100000000000000000000000000",
101-
"io158hyzrmf4a8xll7gfc8xnwlv70jgp44tzy5nvd": "100000000000000000000000000",
102-
"io19kshh892255x4h5ularvr3q3al2v8cgl80fqrt": "100000000000000000000000000",
103-
"io1ph0u2psnd7muq5xv9623rmxdsxc4uapxhzpg02": "100000000000000000000000000",
104-
"io1znka733xefxjjw2wqddegplwtefun0mfdmz7dw": "100000000000000000000000000",
105-
"io13sj9mzpewn25ymheukte4v39hvjdtrfp00mlyv": "100000000000000000000000000",
106-
"io14gnqxf9dpkn05g337rl7eyt2nxasphf5m6n0rd": "100000000000000000000000000",
107-
"io1l3wc0smczyay8xq747e2hw63mzg3ctp6uf8wsg": "100000000000000000000000000",
108-
"io1q4tdrahguffdu4e9j9aj4f38p2nee0r9vlhx7s": "100000000000000000000000000",
109-
"io1k9y4a9juk45zaqwvjmhtz6yjc68twqds4qcvzv": "100000000000000000000000000",
110-
"io15flratm0nhh5xpxz2lznrrpmnwteyd86hxdtj0": "100000000000000000000000000",
111-
"io1eq4ehs6xx6zj9gcsax7h3qydwlxut9xcfcjras": "100000000000000000000000000",
112-
"io10a298zmzvrt4guq79a9f4x7qedj59y7ery84he": "100000000000000000000000000",
113-
},
84+
InitBalanceMap: map[string]string{},
11485
ReplayDeployerWhitelist: []string{"0x3fab184622dc19b6109349b94811493bf2a45362"},
11586
},
11687
Poll: Poll{
@@ -208,6 +179,39 @@ func defaultConfig() Genesis {
208179
}
209180
}
210181

182+
func defaultInitBalanceMap() map[string]string {
183+
return map[string]string{
184+
"io1uqhmnttmv0pg8prugxxn7d8ex9angrvfjfthxa": "9800000000000000000000000000",
185+
"io1v3gkc49d5vwtdfdka2ekjl3h468egun8e43r7z": "100000000000000000000000000",
186+
"io1vrl48nsdm8jaujccd9cx4ve23cskr0ys6urx92": "100000000000000000000000000",
187+
"io1llupp3n8q5x8usnr5w08j6hc6hn55x64l46rr7": "100000000000000000000000000",
188+
"io1ns7y0pxmklk8ceattty6n7makpw76u770u5avy": "100000000000000000000000000",
189+
"io1xuavja5dwde8pvy4yms06yyncad4yavghjhwra": "100000000000000000000000000",
190+
"io1cdqx6p5rquudxuewflfndpcl0l8t5aezen9slr": "100000000000000000000000000",
191+
"io1hh97f273nhxcq8ajzcpujtt7p9pqyndfmavn9r": "100000000000000000000000000",
192+
"io1yhvu38epz5vmkjaclp45a7t08r27slmcc0zjzh": "100000000000000000000000000",
193+
"io1cl6rl2ev5dfa988qmgzg2x4hfazmp9vn2g66ng": "100000000000000000000000000",
194+
"io1skmqp33qme8knyw0fzgt9takwrc2nvz4sevk5c": "100000000000000000000000000",
195+
"io1fxzh50pa6qc6x5cprgmgw4qrp5vw97zk5pxt3q": "100000000000000000000000000",
196+
"io1jh0ekmccywfkmj7e8qsuzsupnlk3w5337hjjg2": "100000000000000000000000000",
197+
"io1juvx5g063eu4ts832nukp4vgcwk2gnc5cu9ayd": "100000000000000000000000000",
198+
"io19d0p3ah4g8ww9d7kcxfq87yxe7fnr8rpth5shj": "100000000000000000000000000",
199+
"io1ed52svvdun2qv8sf2m0xnynuxfaulv6jlww7ur": "100000000000000000000000000",
200+
"io158hyzrmf4a8xll7gfc8xnwlv70jgp44tzy5nvd": "100000000000000000000000000",
201+
"io19kshh892255x4h5ularvr3q3al2v8cgl80fqrt": "100000000000000000000000000",
202+
"io1ph0u2psnd7muq5xv9623rmxdsxc4uapxhzpg02": "100000000000000000000000000",
203+
"io1znka733xefxjjw2wqddegplwtefun0mfdmz7dw": "100000000000000000000000000",
204+
"io13sj9mzpewn25ymheukte4v39hvjdtrfp00mlyv": "100000000000000000000000000",
205+
"io14gnqxf9dpkn05g337rl7eyt2nxasphf5m6n0rd": "100000000000000000000000000",
206+
"io1l3wc0smczyay8xq747e2hw63mzg3ctp6uf8wsg": "100000000000000000000000000",
207+
"io1q4tdrahguffdu4e9j9aj4f38p2nee0r9vlhx7s": "100000000000000000000000000",
208+
"io1k9y4a9juk45zaqwvjmhtz6yjc68twqds4qcvzv": "100000000000000000000000000",
209+
"io15flratm0nhh5xpxz2lznrrpmnwteyd86hxdtj0": "100000000000000000000000000",
210+
"io1eq4ehs6xx6zj9gcsax7h3qydwlxut9xcfcjras": "100000000000000000000000000",
211+
"io10a298zmzvrt4guq79a9f4x7qedj59y7ery84he": "100000000000000000000000000",
212+
}
213+
}
214+
211215
// TestDefault is the default genesis config for testing
212216
func TestDefault() Genesis {
213217
cfg := defaultConfig()
@@ -521,6 +525,9 @@ func New(genesisPath string) (Genesis, error) {
521525
if err := yaml.Get(config.Root).Populate(&genesis); err != nil {
522526
return Genesis{}, errors.Wrap(err, "failed to unmarshal yaml genesis to struct")
523527
}
528+
if len(genesis.InitBalanceMap) == 0 {
529+
genesis.InitBalanceMap = defaultInitBalanceMap()
530+
}
524531
return genesis, nil
525532
}
526533

blockchain/genesis/genesis_test.go

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/stretchr/testify/require"
1414

1515
"github.com/iotexproject/iotex-address/address"
16+
1617
"github.com/iotexproject/iotex-core/v2/pkg/unit"
1718
)
1819

@@ -37,36 +38,6 @@ func TestHash(t *testing.T) {
3738
cfg.Timestamp = 1553558500
3839
cfg.NumSubEpochs = 15
3940
cfg.TimeBasedRotation = true
40-
cfg.InitBalanceMap = map[string]string{
41-
"io1uqhmnttmv0pg8prugxxn7d8ex9angrvfjfthxa": "9800000000000000000000000000",
42-
"io1v3gkc49d5vwtdfdka2ekjl3h468egun8e43r7z": "100000000000000000000000000",
43-
"io1vrl48nsdm8jaujccd9cx4ve23cskr0ys6urx92": "100000000000000000000000000",
44-
"io1llupp3n8q5x8usnr5w08j6hc6hn55x64l46rr7": "100000000000000000000000000",
45-
"io1ns7y0pxmklk8ceattty6n7makpw76u770u5avy": "100000000000000000000000000",
46-
"io1xuavja5dwde8pvy4yms06yyncad4yavghjhwra": "100000000000000000000000000",
47-
"io1cdqx6p5rquudxuewflfndpcl0l8t5aezen9slr": "100000000000000000000000000",
48-
"io1hh97f273nhxcq8ajzcpujtt7p9pqyndfmavn9r": "100000000000000000000000000",
49-
"io1yhvu38epz5vmkjaclp45a7t08r27slmcc0zjzh": "100000000000000000000000000",
50-
"io1cl6rl2ev5dfa988qmgzg2x4hfazmp9vn2g66ng": "100000000000000000000000000",
51-
"io1skmqp33qme8knyw0fzgt9takwrc2nvz4sevk5c": "100000000000000000000000000",
52-
"io1fxzh50pa6qc6x5cprgmgw4qrp5vw97zk5pxt3q": "100000000000000000000000000",
53-
"io1jh0ekmccywfkmj7e8qsuzsupnlk3w5337hjjg2": "100000000000000000000000000",
54-
"io1juvx5g063eu4ts832nukp4vgcwk2gnc5cu9ayd": "100000000000000000000000000",
55-
"io19d0p3ah4g8ww9d7kcxfq87yxe7fnr8rpth5shj": "100000000000000000000000000",
56-
"io1ed52svvdun2qv8sf2m0xnynuxfaulv6jlww7ur": "100000000000000000000000000",
57-
"io158hyzrmf4a8xll7gfc8xnwlv70jgp44tzy5nvd": "100000000000000000000000000",
58-
"io19kshh892255x4h5ularvr3q3al2v8cgl80fqrt": "100000000000000000000000000",
59-
"io1ph0u2psnd7muq5xv9623rmxdsxc4uapxhzpg02": "100000000000000000000000000",
60-
"io1znka733xefxjjw2wqddegplwtefun0mfdmz7dw": "100000000000000000000000000",
61-
"io13sj9mzpewn25ymheukte4v39hvjdtrfp00mlyv": "100000000000000000000000000",
62-
"io14gnqxf9dpkn05g337rl7eyt2nxasphf5m6n0rd": "100000000000000000000000000",
63-
"io1l3wc0smczyay8xq747e2hw63mzg3ctp6uf8wsg": "100000000000000000000000000",
64-
"io1q4tdrahguffdu4e9j9aj4f38p2nee0r9vlhx7s": "100000000000000000000000000",
65-
"io1k9y4a9juk45zaqwvjmhtz6yjc68twqds4qcvzv": "100000000000000000000000000",
66-
"io15flratm0nhh5xpxz2lznrrpmnwteyd86hxdtj0": "100000000000000000000000000",
67-
"io1eq4ehs6xx6zj9gcsax7h3qydwlxut9xcfcjras": "100000000000000000000000000",
68-
"io10a298zmzvrt4guq79a9f4x7qedj59y7ery84he": "100000000000000000000000000",
69-
}
7041
cfg.GravityChainStartHeight = 7614500
7142
cfg.RegisterContractAddress = "0x95724986563028deb58f15c5fac19fa09304f32d"
7243
cfg.StakingContractAddress = "0x87c9dbff0016af23f5b1ab9b8e072124ab729193"
@@ -156,3 +127,11 @@ func TestWakeBlockReward(t *testing.T) {
156127
r.Equal(1, wake.Cmp(four))
157128
r.Equal(-1, wake.Cmp(five))
158129
}
130+
131+
func TestGenesisMapEmpty(t *testing.T) {
132+
r := require.New(t)
133+
g := defaultConfig()
134+
// When merging configs, maps are merged instead of overwritten, which is not the behavior we want.
135+
// Therefore, the default map must be empty.
136+
r.Empty(g.Account.InitBalanceMap, "InitBalanceMap should be empty")
137+
}

state/factory/factory_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,6 +1022,7 @@ func TestSTXPickAndRunActions(t *testing.T) {
10221022

10231023
cfg := DefaultConfig
10241024
cfg.Chain.TrieDBPath = testStateDBPath
1025+
cfg.Genesis.InitBalanceMap[identityset.Address(0).String()] = "1000000000"
10251026
cfg.Genesis.InitBalanceMap[identityset.Address(28).String()] = "100"
10261027
cfg.Genesis.InitBalanceMap[identityset.Address(29).String()] = "200"
10271028
registry := protocol.NewRegistry()

0 commit comments

Comments
 (0)