diff --git a/lib/exw3.ex b/lib/exw3.ex index a058cc1..0159a5e 100644 --- a/lib/exw3.ex +++ b/lib/exw3.ex @@ -485,10 +485,12 @@ defmodule ExW3 do bin end + gas = ExW3.encode_data("(uint)", [args[:options][:gas]]) |> Base.encode16(case: :lower) + tx = %{ from: args[:options][:from], - data: constructor_arg_data, - gas: args[:options][:gas] + data: "0x#{constructor_arg_data}", + gas: "0x#{gas}" } {:ok, tx_receipt_id} = Ethereumex.HttpClient.eth_send_transaction(tx) @@ -502,7 +504,7 @@ defmodule ExW3 do result = Ethereumex.HttpClient.eth_call(%{ to: address, - data: ExW3.encode_method_call(abi, method_name, args) + data: "0x#{ExW3.encode_method_call(abi, method_name, args)}" }) case result do @@ -512,13 +514,14 @@ defmodule ExW3 do end def eth_send_helper(address, abi, method_name, args, options) do + gas = ExW3.encode_data("(uint)", [options[:gas]]) |> Base.encode16(case: :lower) Ethereumex.HttpClient.eth_send_transaction( Map.merge( %{ to: address, - data: ExW3.encode_method_call(abi, method_name, args) + data: "0x#{ExW3.encode_method_call(abi, method_name, args)}" }, - options + Map.put(options, :gas, "0x#{gas}") ) ) end diff --git a/test/exw3_test.exs b/test/exw3_test.exs index 3d29b3a..f9d8ad3 100644 --- a/test/exw3_test.exs +++ b/test/exw3_test.exs @@ -29,17 +29,19 @@ defmodule EXW3Test do assert context[:simple_storage_abi] |> is_map end - test "mines a block" do - block_number = ExW3.block_number() - ExW3.mine() - assert ExW3.block_number() == block_number + 1 - end - - test "mines multiple blocks" do - block_number = ExW3.block_number() - ExW3.mine(5) - assert ExW3.block_number() == block_number + 5 - end + # Only works with ganache-cli + + # test "mines a block" do + # block_number = ExW3.block_number() + # ExW3.mine() + # assert ExW3.block_number() == block_number + 1 + # end + + # test "mines multiple blocks" do + # block_number = ExW3.block_number() + # ExW3.mine(5) + # assert ExW3.block_number() == block_number + 5 + # end test "keccak256 hash some data" do hash = ExW3.keccak256("foo") @@ -77,7 +79,7 @@ defmodule EXW3Test do assert data == 0 - ExW3.Contract.send(SimpleStorage, :set, [1], %{from: Enum.at(context[:accounts], 0)}) + ExW3.Contract.send(SimpleStorage, :set, [1], %{from: Enum.at(context[:accounts], 0), gas: 50_000}) {:ok, data} = ExW3.Contract.call(SimpleStorage, :get) @@ -131,7 +133,8 @@ defmodule EXW3Test do {:ok, tx_hash} = ExW3.Contract.send(EventTester, :simple, ["Hello, World!"], %{ - from: Enum.at(context[:accounts], 0) + from: Enum.at(context[:accounts], 0), + gas: 30_000 }) {:ok, {receipt, logs}} = ExW3.Contract.tx_receipt(EventTester, tx_hash) @@ -173,7 +176,7 @@ defmodule EXW3Test do EventTester, :simple, ["Hello, World!"], - %{from: Enum.at(context[:accounts], 0)} + %{from: Enum.at(context[:accounts], 0), gas: 30_000} ) receive do