diff --git a/lib/sanbase/balances/balance.ex b/lib/sanbase/balances/balance.ex index e0e0919a0..184604af8 100644 --- a/lib/sanbase/balances/balance.ex +++ b/lib/sanbase/balances/balance.ex @@ -153,7 +153,11 @@ defmodule Sanbase.Balance do balances |> Enum.chunk_every(2, 1, :discard) |> Enum.map(fn [%{balance: previous}, %{balance: current, datetime: dt}] -> - %{datetime: dt, balance: current - previous} + %{ + datetime: dt, + balance_change_amount: current - previous, + balance_change_percent: Sanbase.Math.percent_change(previous, current) + } end) {:ok, changes} diff --git a/lib/sanbase/balances/balance_sql_query.ex b/lib/sanbase/balances/balance_sql_query.ex index 8203f0fe3..95bb136d3 100644 --- a/lib/sanbase/balances/balance_sql_query.ex +++ b/lib/sanbase/balances/balance_sql_query.ex @@ -10,6 +10,8 @@ defmodule Sanbase.Balance.SqlQuery do "bitcoin" -> "btc_balances" "litecoin" -> "ltc_balances" "dogecoin" -> "doge_balances" + "bitcoin-cash" -> "bch_balances" + "binance" -> "bep20_balances" end end diff --git a/test/sanbase_web/graphql/projects/project_api_eth_spent_over_time_test.exs b/test/sanbase_web/graphql/projects/project_api_eth_spent_over_time_test.exs index 762252339..a2c89f318 100644 --- a/test/sanbase_web/graphql/projects/project_api_eth_spent_over_time_test.exs +++ b/test/sanbase_web/graphql/projects/project_api_eth_spent_over_time_test.exs @@ -21,16 +21,19 @@ defmodule SanbaseWeb.Graphql.ProjectApiEthSpentOverTimeTest do end test "project eth spent over time", context do - [dt1, dt2, dt3, dt4, dt5, dt6] = - generate_datetimes(~U[2017-05-13T00:00:00Z], "1d", 6) |> Enum.map(&DateTime.to_unix/1) + [dt0, dt1, dt2, dt3, dt4, dt5, dt6] = + generate_datetimes(~U[2017-05-12T00:00:00Z], "1d", 7) |> Enum.map(&DateTime.to_unix/1) + # Historical Balances Changes uses internally the historical balances query, + # so that's what needs to be mocked rows = [ - [dt1, -500], - [dt2, -1500], - [dt3, -6000], - [dt4, 0], - [dt5, 0], - [dt6, -6500] + [dt0, 20000, 1], + [dt1, 19500, 1], + [dt2, 18000, 1], + [dt3, 12000, 1], + [dt4, 0, 0], + [dt5, 0, 0], + [dt6, 5500, 1] ] Sanbase.Mock.prepare_mock2(&Sanbase.ClickhouseRepo.query/2, {:ok, %{rows: rows}}) diff --git a/test/sanbase_web/graphql/projects/project_api_eth_spent_test.exs b/test/sanbase_web/graphql/projects/project_api_eth_spent_test.exs index 2780f52a5..82dca617d 100644 --- a/test/sanbase_web/graphql/projects/project_api_eth_spent_test.exs +++ b/test/sanbase_web/graphql/projects/project_api_eth_spent_test.exs @@ -123,16 +123,19 @@ defmodule SanbaseWeb.Graphql.ProjecApiEthSpentTest do end test "eth spent over time by erc20 projects", context do - [dt1, dt2, dt3, dt4, dt5] = - generate_datetimes(Timex.shift(Timex.now(), days: -4), "1d", 5) + [dt0, dt1, dt2, dt3, dt4, dt5] = + generate_datetimes(Timex.shift(Timex.now(), days: -5), "1d", 6) |> Enum.map(&DateTime.to_unix/1) + # Historical Balances Changes uses internally the historical balances query, + # so that's what needs to be mocked rows = [ - [dt1, -16_500], - [dt2, -5500], - [dt3, -3500], - [dt4, -2500], - [dt5, -500] + [dt0, 50_000, 1], + [dt1, 33_500, 1], + [dt2, 28_000, 1], + [dt3, 24_500, 1], + [dt4, 22_000, 1], + [dt5, 21_500, 1] ] Sanbase.Mock.prepare_mock2(&Sanbase.ClickhouseRepo.query/2, {:ok, %{rows: rows}})