4
0
Fork 0

Contract tx_receipt returns tuple, modified tests

contracts
hswick 7 years ago
parent 0bb04f362e
commit d0355acb3e
  1. 5
      lib/exw3.ex
  2. 24
      test/exw3_test.exs

@ -203,15 +203,16 @@ defmodule ExW3 do
receipt = ExW3.tx_receipt tx_hash receipt = ExW3.tx_receipt tx_hash
events = get(contract_agent, :events) events = get(contract_agent, :events)
logs = receipt["logs"] logs = receipt["logs"]
Enum.map logs, fn log -> formatted_logs = Enum.map logs, fn log ->
topic = Enum.at log["topics"], 0 topic = Enum.at log["topics"], 0
event = Map.get events, topic event = Map.get events, topic
if event do if event do
Enum.zip(event[:names], ExW3.decode_event(log["data"], event[:signature])) |> Enum.into %{} Enum.zip(event[:names], ExW3.decode_event(log["data"], event[:signature])) |> Enum.into(%{})
else else
nil nil
end end
end end
{:ok, {receipt, formatted_logs}}
end end
end end

@ -50,19 +50,13 @@ defmodule EXW3Test do
storage = ExW3.Contract.at context[:simple_storage_abi], contract_address storage = ExW3.Contract.at context[:simple_storage_abi], contract_address
{:ok, result} = ExW3.Contract.method(storage, :get) {:ok, result} = ExW3.Contract.method storage, :get
assert result == 0 assert result == 0
{:ok, tx_hash} = ExW3.Contract.method(storage, :set, [1], %{from: Enum.at(context[:accounts], 0)}) {:ok, tx_hash} = ExW3.Contract.method(storage, :set, [1], %{from: Enum.at(context[:accounts], 0)})
receipt = ExW3.tx_receipt tx_hash {:ok, result} = ExW3.Contract.method storage, :get
#IO.inspect receipt
#IO.inspect ExW3.block receipt["blockNumber"]
{:ok, result} = ExW3.Contract.method(storage, :get)
assert result == 1 assert result == 1
@ -86,15 +80,15 @@ defmodule EXW3Test do
%{from: Enum.at(context[:accounts], 0)} %{from: Enum.at(context[:accounts], 0)}
) )
receipt = ExW3.Contract.tx_receipt(event_tester, tx_hash) {:ok, {receipt, logs}} = ExW3.Contract.tx_receipt(event_tester, tx_hash)
IO.inspect receipt
#topic = Map.get(Enum.at(logs, 0), "topics")
#assert String.slice(Enum.at(topic, 0), 2..-1) == ExW3.encode_event("Simple(uint256,bytes32)") data =
logs
|> Enum.at(0)
|> Map.get("data")
|> ExW3.bytes_to_string()
#:timer.sleep(2000) assert data == "Hello, World!"
end end

Loading…
Cancel
Save