Skip to content

Commit

Permalink
Improve validation number based on transaction's value
Browse files Browse the repository at this point in the history
  • Loading branch information
samuelmanzanera committed Nov 4, 2022
1 parent 83904c0 commit 5a32469
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 9 deletions.
7 changes: 3 additions & 4 deletions lib/archethic/election/constraints/validation.ex
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,10 @@ defmodule Archethic.Election.ValidationConstraints do
when is_integer(nb_authorized_nodes) do
total_transfers = Enum.reduce(transfers, 0.0, &(&2 + &1.amount))

if total_transfers > 10 do
if total_transfers > 0 do
validation_number =
trunc(
:math.floor(min_validation_nodes(nb_authorized_nodes) * :math.log10(total_transfers))
)
@default_min_validations +
(:math.log10(total_transfers / 100_000_000) |> :math.floor() |> trunc())

if validation_number > nb_authorized_nodes do
nb_authorized_nodes
Expand Down
10 changes: 5 additions & 5 deletions test/archethic/election/constraints/validation_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ defmodule Archethic.Election.ValidationConstraintsTest do
data: %TransactionData{
ledger: %Ledger{
uco: %UCOLedger{
transfers: [%Transfer{to: "@Alice2", amount: 0.05}]
transfers: [%Transfer{to: "@Alice2", amount: 100_000_000}]
}
}
}
Expand All @@ -73,25 +73,25 @@ defmodule Archethic.Election.ValidationConstraintsTest do
data: %TransactionData{
ledger: %Ledger{
uco: %UCOLedger{
transfers: [%Transfer{to: "@Alice2", amount: 200}]
transfers: [%Transfer{to: "@Alice2", amount: 2_000_000_000}]
}
}
}
}

assert 6 == ValidationConstraints.validation_number(tx, 10)
assert 4 == ValidationConstraints.validation_number(tx, 10)

tx = %Transaction{
data: %TransactionData{
ledger: %Ledger{
uco: %UCOLedger{
transfers: [%Transfer{to: "@Alice2", amount: 1000}]
transfers: [%Transfer{to: "@Alice2", amount: 100_000_000_000}]
}
}
}
}

assert 9 == ValidationConstraints.validation_number(tx, 10)
assert 6 == ValidationConstraints.validation_number(tx, 10)
end
end
end

0 comments on commit 5a32469

Please sign in to comment.