4
0
Fork 0

Added 0x prefixing to values

contract-refactor
hswick 7 years ago
parent 58094ff22e
commit 4b2ef0b88b
  1. 13
      lib/exw3.ex
  2. 29
      test/exw3_test.exs

@ -485,10 +485,12 @@ defmodule ExW3 do
bin bin
end end
gas = ExW3.encode_data("(uint)", [args[:options][:gas]]) |> Base.encode16(case: :lower)
tx = %{ tx = %{
from: args[:options][:from], from: args[:options][:from],
data: constructor_arg_data, data: "0x#{constructor_arg_data}",
gas: args[:options][:gas] gas: "0x#{gas}"
} }
{:ok, tx_receipt_id} = Ethereumex.HttpClient.eth_send_transaction(tx) {:ok, tx_receipt_id} = Ethereumex.HttpClient.eth_send_transaction(tx)
@ -502,7 +504,7 @@ defmodule ExW3 do
result = result =
Ethereumex.HttpClient.eth_call(%{ Ethereumex.HttpClient.eth_call(%{
to: address, to: address,
data: ExW3.encode_method_call(abi, method_name, args) data: "0x#{ExW3.encode_method_call(abi, method_name, args)}"
}) })
case result do case result do
@ -512,13 +514,14 @@ defmodule ExW3 do
end end
def eth_send_helper(address, abi, method_name, args, options) do 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( Ethereumex.HttpClient.eth_send_transaction(
Map.merge( Map.merge(
%{ %{
to: address, 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 end

@ -29,17 +29,19 @@ defmodule EXW3Test do
assert context[:simple_storage_abi] |> is_map assert context[:simple_storage_abi] |> is_map
end end
test "mines a block" do # Only works with ganache-cli
block_number = ExW3.block_number()
ExW3.mine()
assert ExW3.block_number() == block_number + 1
end
test "mines multiple blocks" do # test "mines a block" do
block_number = ExW3.block_number() # block_number = ExW3.block_number()
ExW3.mine(5) # ExW3.mine()
assert ExW3.block_number() == block_number + 5 # assert ExW3.block_number() == block_number + 1
end # 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 test "keccak256 hash some data" do
hash = ExW3.keccak256("foo") hash = ExW3.keccak256("foo")
@ -77,7 +79,7 @@ defmodule EXW3Test do
assert data == 0 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) {:ok, data} = ExW3.Contract.call(SimpleStorage, :get)
@ -131,7 +133,8 @@ defmodule EXW3Test do
{:ok, tx_hash} = {:ok, tx_hash} =
ExW3.Contract.send(EventTester, :simple, ["Hello, World!"], %{ 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) {:ok, {receipt, logs}} = ExW3.Contract.tx_receipt(EventTester, tx_hash)
@ -173,7 +176,7 @@ defmodule EXW3Test do
EventTester, EventTester,
:simple, :simple,
["Hello, World!"], ["Hello, World!"],
%{from: Enum.at(context[:accounts], 0)} %{from: Enum.at(context[:accounts], 0), gas: 30_000}
) )
receive do receive do

Loading…
Cancel
Save