Skip to content

Instantly share code, notes, and snippets.

@vamsiikrishna
Created February 3, 2021 16:58
Show Gist options
  • Save vamsiikrishna/2dc7146269c5a81c74486a464bf25cf1 to your computer and use it in GitHub Desktop.
Save vamsiikrishna/2dc7146269c5a81c74486a464bf25cf1 to your computer and use it in GitHub Desktop.
ZEC price from Gemini
defmodule Zcex.PriceWorker do
use GenServer
def start_link(args) do
GenServer.start_link(__MODULE__, args, name: __MODULE__)
end
def init(state) do
schedule_price_fetch()
{:ok, state}
end
def schedule_price_fetch do
Process.send_after(self(), :price_fetch, 30000)
end
def handle_info(:price_fetch, state) do
price = zec_price()
IO.inspect("Current Zcash price is $#{price}")
schedule_price_fetch()
{:noreply, Map.put(state, :zec, price)}
end
defp zec_price do
"https://api.gemini.com/v2/ticker/zecusd"
|> HTTPoison.get!()
|> Map.get(:body)
|> Poison.decode!()
|> Map.get("bid")
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment