Skip to content

Commit

Permalink
signer methods refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
izelnakri committed Jan 23, 2018
1 parent 2893321 commit ab40803
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 15 deletions.
2 changes: 1 addition & 1 deletion lib/eth.ex
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,11 @@ defmodule ETH do
defdelegate hash(transaction, include_signature), to: ETH.Transaction

defdelegate sign_transaction(transaction, private_key), to: ETH.Transaction.Signer
defdelegate sign_transaction_list(transaction_list, private_key), to: ETH.Transaction.Signer
defdelegate decode(rlp_encoded_transaction), to: ETH.Transaction.Signer
defdelegate encode(signed_transaction_list), to: ETH.Transaction.Signer

defdelegate send_transaction(params_or_wallet, private_key_or_params), to: ETH.Transaction

defdelegate send_transaction(sender_wallet, receiver_wallet, value_or_params),
to: ETH.Transaction

Expand Down
1 change: 0 additions & 1 deletion lib/eth/transaction.ex
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ defmodule ETH.Transaction do
defdelegate hash(transaction, include_signature), to: ETH.Transaction.Signer

defdelegate sign_transaction(transaction, private_key), to: ETH.Transaction.Signer
defdelegate sign_transaction_list(transaction_list, private_key), to: ETH.Transaction.Signer
defdelegate decode(rlp_encoded_transaction), to: ETH.Transaction.Signer
defdelegate encode(signed_transaction_list), to: ETH.Transaction.Signer

Expand Down
20 changes: 10 additions & 10 deletions lib/eth/transaction/signer.ex
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ defmodule ETH.Transaction.Signer do
def sign_transaction(transaction, private_key) when is_map(transaction) do
transaction
|> ETH.Transaction.to_list()
|> sign_transaction_list(private_key)
|> sign_transaction(private_key)
|> ExRLP.encode()
end

def sign_transaction_list(
def sign_transaction(
transaction_list = [
_nonce,
_gas_price,
Expand All @@ -73,11 +73,11 @@ defmodule ETH.Transaction.Signer do
_s
],
<<private_key::binary-size(32)>>
) do
to_signed_transaction_list(transaction_list, private_key)
) when is_map(transaction_list) do
sign_transaction_list(transaction_list, private_key)
end

def sign_transaction_list(
def sign_transaction(
transaction_list = [
_nonce,
_gas_price,
Expand All @@ -90,12 +90,12 @@ defmodule ETH.Transaction.Signer do
_s
],
<<encoded_private_key::binary-size(64)>>
) do
) when is_list(transaction_list) do
decoded_private_key = Base.decode16!(encoded_private_key, case: :mixed)
to_signed_transaction_list(transaction_list, decoded_private_key)
sign_transaction_list(transaction_list, decoded_private_key)
end

defp to_signed_transaction_list(
defp sign_transaction_list(
transaction_list = [
nonce,
gas_price,
Expand All @@ -104,8 +104,8 @@ defmodule ETH.Transaction.Signer do
value,
data,
v,
_r,
_s
r,
s
],
<<private_key::binary-size(32)>>
) do
Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ defmodule Eth.Mixfile do
def project do
[
app: :eth,
version: "0.3.0",
version: "0.3.1",
elixir: "~> 1.5",
start_permanent: Mix.env() == :prod,
deps: deps(),
Expand Down
1 change: 0 additions & 1 deletion test/eth/eth_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ defmodule ETH.Test do
send_transaction: 3,
send_transaction: 4,
sign_transaction: 2,
sign_transaction_list: 2,
syncing: 0,
syncing!: 0,
to_buffer: 1,
Expand Down
2 changes: 1 addition & 1 deletion test/eth/transaction_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ defmodule TransactionTest do
|> Map.get("raw")
|> Transaction.parse()
|> Transaction.to_list()
|> Transaction.sign_transaction_list(transaction["privateKey"])
|> Transaction.sign_transaction(transaction["privateKey"])

result = Transaction.get_sender_address(signed_transaction_list)
assert result == "0x" <> String.upcase(transaction["sendersAddress"])
Expand Down

0 comments on commit ab40803

Please # to comment.