From 4408b34dfb1231eaa25fefaf605a779958087fcd Mon Sep 17 00:00:00 2001 From: apoorv-2204 Date: Tue, 7 Mar 2023 19:26:20 +0530 Subject: [PATCH] Resolves Dialyzer Warning and test failures - improve aliasing of archethic modules - Dialyzer warning was due to a missing archethic alias - Oracle/Reward Scheduler test failures were due to a persistent term not being nil or cleared after tests - Graphql schema test crashes : add message reply for get Beacon aggreagte --- lib/archethic/crypto.ex | 18 +++--------- lib/archethic/oracle_chain/scheduler.ex | 25 ++++------------ lib/archethic/p2p.ex | 17 ++--------- lib/archethic/reward/scheduler.ex | 15 +++------- lib/archethic/self_repair/scheduler.ex | 12 ++------ lib/archethic/self_repair/sync.ex | 29 ++++--------------- lib/archethic_web/channels/user_socket.ex | 1 + .../archethic/oracle_chain/scheduler_test.exs | 2 ++ test/archethic/reward/scheduler_test.exs | 2 ++ test/archethic_web/graphql_schema_test.exs | 3 ++ 10 files changed, 31 insertions(+), 93 deletions(-) diff --git a/lib/archethic/crypto.ex b/lib/archethic/crypto.ex index 4890dd127..041f88678 100755 --- a/lib/archethic/crypto.ex +++ b/lib/archethic/crypto.ex @@ -30,21 +30,11 @@ defmodule Archethic.Crypto do According to the implementation, keys can be stored and regenerated on the fly """ - alias __MODULE__.ECDSA - alias __MODULE__.Ed25519 - alias __MODULE__.ID - alias __MODULE__.NodeKeystore - alias __MODULE__.SharedSecretsKeystore + alias __MODULE__.{ECDSA, Ed25519, ID, NodeKeystore, SharedSecretsKeystore} - alias Archethic.SharedSecrets - - alias Archethic.TransactionChain - alias Archethic.TransactionChain.Transaction - alias Archethic.TransactionChain.Transaction.ValidationStamp - alias Archethic.TransactionChain.TransactionData - alias Archethic.TransactionChain.TransactionData.Ownership - - alias Archethic.Utils + alias Archethic.{SharedSecrets, Utils, TransactionChain} + alias Archethic.TransactionChain.{Transaction, Transaction.ValidationStamp} + alias Archethic.TransactionChain.{TransactionData, TransactionData.Ownership} require Logger diff --git a/lib/archethic/oracle_chain/scheduler.ex b/lib/archethic/oracle_chain/scheduler.ex index 7d4a85649..9131a3393 100644 --- a/lib/archethic/oracle_chain/scheduler.ex +++ b/lib/archethic/oracle_chain/scheduler.ex @@ -2,26 +2,11 @@ defmodule Archethic.OracleChain.Scheduler do @moduledoc """ Manage the scheduling of the oracle transactions """ - - alias Archethic.Crypto - - alias Archethic.Election - - alias Archethic.P2P - alias Archethic.P2P.Node - - alias Archethic.PubSub - - alias Archethic.OracleChain - alias Archethic.OracleChain.Services - alias Archethic.OracleChain.Summary - - alias Archethic.TransactionChain - alias Archethic.TransactionChain.Transaction - alias Archethic.TransactionChain.TransactionData - - alias Archethic.Utils - alias Archethic.Utils.DetectNodeResponsiveness + alias Archethic + alias Archethic.{Crypto, Election, P2P, P2P.Node, PubSub, Utils} + alias Archethic.{OracleChain, TransactionChain, Utils.DetectNodeResponsiveness} + alias OracleChain.{Services, Summary} + alias TransactionChain.{Transaction, TransactionData} alias Crontab.CronExpression.Parser, as: CronParser diff --git a/lib/archethic/p2p.ex b/lib/archethic/p2p.ex index 701d01bb4..f3d7bf879 100644 --- a/lib/archethic/p2p.ex +++ b/lib/archethic/p2p.ex @@ -2,22 +2,11 @@ defmodule Archethic.P2P do @moduledoc """ Handle P2P node discovery and messaging """ - alias Archethic.Crypto + alias Archethic.{Crypto, TaskSupervisor, TransactionChain} - alias __MODULE__.BootstrappingSeeds - alias __MODULE__.Client - alias __MODULE__.GeoPatch - alias __MODULE__.MemTable - alias __MODULE__.MemTableLoader - alias __MODULE__.Message - alias __MODULE__.Node + alias Archethic.{TransactionChain.Transaction, Utils} - alias Archethic.TaskSupervisor - - alias Archethic.TransactionChain - alias Archethic.TransactionChain.Transaction - - alias Archethic.Utils + alias __MODULE__.{BootstrappingSeeds, Client, GeoPatch, MemTable, MemTableLoader, Message, Node} require Logger diff --git a/lib/archethic/reward/scheduler.ex b/lib/archethic/reward/scheduler.ex index d43d08d1c..a3a149516 100644 --- a/lib/archethic/reward/scheduler.ex +++ b/lib/archethic/reward/scheduler.ex @@ -4,17 +4,10 @@ defmodule Archethic.Reward.Scheduler do use GenStateMachine, callback_mode: [:handle_event_function] @vsn Mix.Project.config()[:version] - alias Archethic.{ - Crypto, - PubSub, - DB, - P2P, - P2P.Node, - Reward, - Election, - Utils, - Utils.DetectNodeResponsiveness - } + alias Archethic + + alias Archethic.{Crypto, PubSub, DB, P2P, P2P.Node} + alias Archethic.{Reward, Election, Utils, Utils.DetectNodeResponsiveness} require Logger diff --git a/lib/archethic/self_repair/scheduler.ex b/lib/archethic/self_repair/scheduler.ex index 301fd65d4..90384795e 100644 --- a/lib/archethic/self_repair/scheduler.ex +++ b/lib/archethic/self_repair/scheduler.ex @@ -5,16 +5,8 @@ defmodule Archethic.SelfRepair.Scheduler do """ use GenServer @vsn Mix.Project.config()[:version] - - alias Archethic.P2P - - alias Archethic.SelfRepair.Sync - - alias Archethic.TaskSupervisor - - alias Archethic.Utils - - alias Archethic.PubSub + alias Archethic + alias Archethic.{P2P, SelfRepair.Sync, TaskSupervisor, Utils, PubSub} alias Archethic.Bootstrap.Sync, as: BootstrapSync diff --git a/lib/archethic/self_repair/sync.ex b/lib/archethic/self_repair/sync.ex index acdea38d5..e21a4685f 100644 --- a/lib/archethic/self_repair/sync.ex +++ b/lib/archethic/self_repair/sync.ex @@ -1,34 +1,15 @@ defmodule Archethic.SelfRepair.Sync do @moduledoc false + alias Archethic - alias Archethic.BeaconChain - alias Archethic.BeaconChain.Subset.P2PSampling - alias Archethic.BeaconChain.Summary - alias Archethic.BeaconChain.SummaryAggregate + alias Archethic.{BeaconChain, Crypto, DB, Election, P2P, P2P.Node, P2P.Message} + alias Archethic.{SelfRepair, TaskSupervisor, TransactionChain, Utils, PubSub} + alias Archethic.{TaskSupervisor, TransactionChain.TransactionSummary} - alias Archethic.Crypto - - alias Archethic.DB - - alias Archethic.Election - - alias Archethic.PubSub - - alias Archethic.P2P - alias Archethic.P2P.Node - alias Archethic.P2P.Message + alias BeaconChain.{Subset.P2PSampling, Summary, SummaryAggregate} alias __MODULE__.TransactionHandler - alias Archethic.TaskSupervisor - alias Archethic.TransactionChain - - alias Archethic.TransactionChain.TransactionSummary - - alias Archethic.SelfRepair - - alias Archethic.Utils - require Logger @bootstrap_info_last_sync_date_key "last_sync_time" diff --git a/lib/archethic_web/channels/user_socket.ex b/lib/archethic_web/channels/user_socket.ex index 9c0f733f0..dc0b431d0 100644 --- a/lib/archethic_web/channels/user_socket.ex +++ b/lib/archethic_web/channels/user_socket.ex @@ -8,6 +8,7 @@ defmodule ArchethicWeb.UserSocket do require Logger + alias Archethic ## Channels # channel "room:*", ArchethicWeb.RoomChannel diff --git a/test/archethic/oracle_chain/scheduler_test.exs b/test/archethic/oracle_chain/scheduler_test.exs index 424dbceea..004bc5a0c 100644 --- a/test/archethic/oracle_chain/scheduler_test.exs +++ b/test/archethic/oracle_chain/scheduler_test.exs @@ -383,6 +383,8 @@ defmodule Archethic.OracleChain.SchedulerTest do end test "should wait for node up message to start the scheduler and node_down to stop the scheduler, node: authorized and available" do + :persistent_term.put(:archethic_up, nil) + P2P.add_and_connect_node(%Node{ ip: {127, 0, 0, 1}, port: 3002, diff --git a/test/archethic/reward/scheduler_test.exs b/test/archethic/reward/scheduler_test.exs index f804b2681..40c229fc6 100644 --- a/test/archethic/reward/scheduler_test.exs +++ b/test/archethic/reward/scheduler_test.exs @@ -138,6 +138,8 @@ defmodule Archethic.Reward.SchedulerTest do end test "should wait for :node_up message to start the scheduler, when node is authorized and available" do + :persistent_term.put(:archethic_up, nil) + P2P.add_and_connect_node(%Node{ ip: {127, 0, 0, 1}, port: 3002, diff --git a/test/archethic_web/graphql_schema_test.exs b/test/archethic_web/graphql_schema_test.exs index c53964b25..f7cb8afce 100644 --- a/test/archethic_web/graphql_schema_test.exs +++ b/test/archethic_web/graphql_schema_test.exs @@ -865,6 +865,9 @@ defmodule ArchethicWeb.GraphQLSchemaTest do |> stub(:send_message, fn _, %GetCurrentSummaries{}, _ -> {:ok, []} + + _, %GetBeaconSummariesAggregate{}, _ -> + {:ok, %SummaryAggregate{version: version}} end) conn =