diff --git a/lib/archethic/contracts.ex b/lib/archethic/contracts.ex index c9152fb790..9bb679a16a 100644 --- a/lib/archethic/contracts.ex +++ b/lib/archethic/contracts.ex @@ -23,6 +23,19 @@ defmodule Archethic.Contracts do @extended_mode? Mix.env() != :prod + @doc """ + Return the minimum interval in milliseconds. + Depends on the env + """ + @spec minimum_interval() :: pos_integer() + def minimum_interval() do + if @extended_mode? do + 1000 + else + 60_000 + end + end + @doc """ Parse a smart contract code and return a contract struct """ diff --git a/lib/archethic/utils/regression/playbooks/smart_contract/faucet.ex b/lib/archethic/utils/regression/playbooks/smart_contract/faucet.ex index 12310abc2f..31e859f838 100644 --- a/lib/archethic/utils/regression/playbooks/smart_contract/faucet.ex +++ b/lib/archethic/utils/regression/playbooks/smart_contract/faucet.ex @@ -4,6 +4,7 @@ defmodule Archethic.Utils.Regression.Playbook.SmartContract.Faucet do with some UCOs to all callers """ + alias Archethic.Contracts alias Archethic.TransactionChain.TransactionData alias Archethic.Utils alias Archethic.Utils.Regression.Playbook.SmartContract @@ -44,9 +45,10 @@ defmodule Archethic.Utils.Regression.Playbook.SmartContract.Faucet do trigger2_tx = SmartContract.trigger(trigger2_seed, contract_address, host, port) trigger3_tx = SmartContract.trigger(trigger3_seed, contract_address, host, port) - # wait for the tick (5s + delta) - Logger.debug("Sleeping for 1 tick (5 seconds)") - Process.sleep(200 + 5000) + # wait for the tick (+ delta) + sleep_time = 200 + Contracts.minimum_interval() + Logger.debug("Sleeping for 1 tick (#{div(sleep_time, 1000)} seconds)") + Process.sleep(sleep_time) expected_balance = Utils.to_bigint(5) balance1 = SmartContract.get_balance(trigger1_tx, host, port) @@ -74,7 +76,7 @@ defmodule Archethic.Utils.Regression.Playbook.SmartContract.Faucet do content: true ] - actions triggered_by: interval, at: "*/5 * * * *" do + actions triggered_by: interval, at: "* * * * *" do now = Time.now() faucet_delay = 60 * 60 calls = Contract.get_calls() diff --git a/lib/archethic/utils/regression/playbooks/smart_contract/legacy.ex b/lib/archethic/utils/regression/playbooks/smart_contract/legacy.ex index 9c69d90483..4ed96d85f1 100644 --- a/lib/archethic/utils/regression/playbooks/smart_contract/legacy.ex +++ b/lib/archethic/utils/regression/playbooks/smart_contract/legacy.ex @@ -4,6 +4,7 @@ defmodule Archethic.Utils.Regression.Playbook.SmartContract.Legacy do It should send 0.1 UCO to the recipient chain every tick """ + alias Archethic.Contracts alias Archethic.TransactionChain.TransactionData alias Archethic.Utils.Regression.Playbook.SmartContract @@ -28,8 +29,9 @@ defmodule Archethic.Utils.Regression.Playbook.SmartContract.Legacy do ) # wait some ticks (+ a little delta) - Logger.debug("Sleeping for #{ticks_count} ticks (#{ticks_count} seconds)") - Process.sleep(200 + ticks_count * 1000) + sleep_time = 200 + ticks_count * Contracts.minimum_interval() + Logger.debug("Sleeping for #{ticks_count} ticks (#{div(sleep_time, 1000)} seconds)") + Process.sleep(sleep_time) balance = SmartContract.get_balance(recipient_address, host, port) expected_balance = ticks_count * amount_to_send