4
0
Fork 0

formatting fromBlock and toBlock

indexed
hswick 6 years ago
parent 15c2b5accb
commit e9661ae815
  1. 39
      lib/exw3.ex
  2. 11
      test/exw3_test.exs

@ -756,6 +756,41 @@ defmodule ExW3 do
end
end
def from_block_helper(event_data) do
if event_data[:fromBlock] do
new_from_block =
if Enum.member?(["latest", "earliest", "pending"], event_data[:fromBlock]) do
event_data[:fromBlock]
else
ExW3.encode_data("(uint256)", [event_data[:fromBlock]])
end
Map.put(event_data, :fromBlock, new_from_block)
else
event_data
end
end
defp param_helper(event_data, key) do
if event_data[key] do
new_param =
if Enum.member?(["latest", "earliest", "pending"], event_data[key]) do
event_data[key]
else
"0x" <> (ExW3.encode_data("(uint256)", [event_data[key]]) |> Base.encode16(case: :lower))
end
Map.put(event_data, key, new_param)
else
event_data
end
end
defp event_data_format_helper(event_data) do
event_data
|> param_helper(:fromBlock)
|> param_helper(:toBlock)
|> Map.delete(:topics)
end
def handle_call({:filter, {contract_name, event_name, other_pid, event_data}}, _from, state) do
contract_info = state[contract_name]
@ -771,10 +806,8 @@ defmodule ExW3 do
payload = Map.merge(
%{address: contract_info[:address], topics: topics},
Map.delete(event_data, :topics)
event_data_format_helper(event_data)
)
IO.inspect payload
filter_id = ExW3.new_filter(payload)
event_attributes = contract_info[:events][contract_info[:event_names][event_name]]

@ -268,7 +268,16 @@ defmodule EXW3Test do
{:ok, agent} = Agent.start_link(fn -> [] end)
indexed_filter_id = ExW3.Contract.filter(:EventTester, "SimpleIndex", self(), %{topics: [nil, ["Hello, World", "Hello, World!"]]})
indexed_filter_id = ExW3.Contract.filter(
:EventTester,
"SimpleIndex",
self(),
%{
topics: [nil, ["Hello, World", "Hello, World!"]],
fromBlock: 1,
toBlock: "latest"
}
)
{:ok, _tx_hash} =
ExW3.Contract.send(

Loading…
Cancel
Save