Skip to content

Commit aa8ba56

Browse files
authored
fix: skip importing hardfork accounts for custom networks (#1128)
1 parent 3ae2ac2 commit aa8ba56

File tree

3 files changed

+63
-10
lines changed

3 files changed

+63
-10
lines changed

lib/ae_mdw/db/hardfork_presets.ex

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,19 @@ defmodule AeMdw.Db.HardforkPresets do
2424
end
2525

2626
defp do_import_account_presets() do
27-
State.commit(State.new(), [
28-
hardfork_mutation(:genesis, &:aec_fork_block_settings.genesis_accounts/0),
29-
hardfork_mutation(:minerva, &:aec_fork_block_settings.minerva_accounts/0),
30-
hardfork_mutation(:fortuna, &:aec_fork_block_settings.fortuna_accounts/0),
31-
hardfork_mutation(:lima, &:aec_fork_block_settings.lima_accounts/0),
32-
lima_contracts_mutation(),
33-
lima_extra_accounts_mutation()
34-
])
27+
if :aec_governance.get_network_id() in ["ae_uat", "ae_mainnet"] do
28+
State.commit(
29+
State.new(),
30+
[
31+
hardfork_mutation(:genesis, &:aec_fork_block_settings.genesis_accounts/0),
32+
hardfork_mutation(:minerva, &:aec_fork_block_settings.minerva_accounts/0),
33+
hardfork_mutation(:fortuna, &:aec_fork_block_settings.fortuna_accounts/0),
34+
hardfork_mutation(:lima, &:aec_fork_block_settings.lima_accounts/0),
35+
lima_contracts_mutation(),
36+
lima_extra_accounts_mutation()
37+
]
38+
)
39+
end
3540
end
3641

3742
defp hardfork_mutation(hardfork, fork_settings_accounts_fn) do

mix.exs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ defmodule AeMdw.MixProject do
9292
:aetx,
9393
:aetx_env,
9494
:aetx_sign,
95+
:aeu_env,
9596
:aeu_info,
9697
:aeu_mtrees,
9798
:app_ctrl,

test/ae_mdw/db/hardfork_presets_test.exs

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,20 @@ defmodule AeMdw.Db.HardforkPresetsTest do
22
use ExUnit.Case, async: false
33

44
alias AeMdw.Collection
5+
alias AeMdw.Database
56
alias AeMdw.Db.HardforkPresets
67
alias AeMdw.Db.Model
78
alias AeMdw.Db.State
89

10+
import Mock
11+
912
describe "import_account_presets" do
10-
test "saves genesis, minerva, fortuna and lima migrated accounts" do
11-
HardforkPresets.import_account_presets()
13+
test "on mainnet saves genesis, minerva, fortuna and lima migrated accounts" do
14+
delete_previous_import()
15+
16+
with_mocks [{:aec_governance, [:passthrough], get_network_id: fn -> "ae_mainnet" end}] do
17+
HardforkPresets.import_account_presets()
18+
end
1219

1320
assert 716 ==
1421
State.new()
@@ -49,5 +56,45 @@ defmodule AeMdw.Db.HardforkPresetsTest do
4956
|> Stream.take_while(&match?({"contracts_lima", _bi, _target, _txi}, &1))
5057
|> Enum.count()
5158
end
59+
60+
test "on testnet saves genesis, minerva, fortuna and lima migrated accounts" do
61+
delete_previous_import()
62+
63+
with_mocks [{:aec_governance, [:passthrough], get_network_id: fn -> "ae_uat" end}] do
64+
HardforkPresets.import_account_presets()
65+
end
66+
67+
assert 1 ==
68+
State.new()
69+
|> Collection.stream(Model.KindIntTransferTx, {"accounts_genesis", nil, nil, nil})
70+
|> Stream.take_while(&match?({"accounts_genesis", _bi, _target, _txi}, &1))
71+
|> Enum.count()
72+
73+
assert 3 ==
74+
State.new()
75+
|> Collection.stream(Model.KindIntTransferTx, {"accounts_minerva", nil, nil, nil})
76+
|> Stream.take_while(&match?({"accounts_minerva", _bi, _target, _txi}, &1))
77+
|> Enum.count()
78+
end
79+
80+
test "on custom network skips importing accounts" do
81+
delete_previous_import()
82+
83+
with_mocks [{:aec_governance, [:passthrough], get_network_id: fn -> "ae_custom" end}] do
84+
HardforkPresets.import_account_presets()
85+
end
86+
87+
assert Database.count(Model.KindIntTransferTx) == 0
88+
end
89+
end
90+
91+
defp delete_previous_import do
92+
State.new()
93+
|> Collection.stream(
94+
Model.KindIntTransferTx,
95+
{"", nil, nil, nil}
96+
)
97+
|> Enum.to_list()
98+
|> Enum.each(&State.delete(State.new(), Model.KindIntTransferTx, &1))
5299
end
53100
end

0 commit comments

Comments
 (0)