defmodule ETH do
@moduledoc """
Elixir module that provides Ethereum utility functions
"""
@doc """
In order to use most of the functions in this library you need to be connected to an ethereum node.
This could be your own self-hosted node running locally or a public proxy.
## Examples
iex> ETH.block_number
46080211
"""
Application.put_env(:ethereumex, :url, Application.get_env(:eth, :url, "http://localhost:8545"))
defdelegate block_number, to: ETH.Query
defdelegate block_number!, to: ETH.Query
defdelegate syncing, to: ETH.Query
defdelegate syncing!, to: ETH.Query
defdelegate get_accounts, to: ETH.Query
defdelegate get_accounts!, to: ETH.Query
defdelegate gas_price, to: ETH.Query
defdelegate gas_price!, to: ETH.Query
defdelegate call(call_params), to: ETH.Query
defdelegate call(call_params, state), to: ETH.Query
defdelegate call!(call_params), to: ETH.Query
defdelegate call!(call_params, state), to: ETH.Query
defdelegate get_block, to: ETH.Query
defdelegate get_block(identifier), to: ETH.Query
defdelegate get_block!, to: ETH.Query
defdelegate get_block!(identifier), to: ETH.Query
defdelegate get_balance(wallet_or_address), to: ETH.Query
defdelegate get_balance(wallet_or_address, state), to: ETH.Query
defdelegate get_balance(wallet_or_address, denomination, state), to: ETH.Query
defdelegate get_balance!(wallet_or_address), to: ETH.Query
defdelegate get_balance!(wallet_or_address, state), to: ETH.Query
defdelegate get_balance!(wallet_or_address, denomination, state), to: ETH.Query
defdelegate estimate_gas(transaction), to: ETH.Query
defdelegate estimate_gas!(transaction), to: ETH.Query
defdelegate estimate_gas(transaction, denomination), to: ETH.Query
defdelegate estimate_gas!(transaction, denomination), to: ETH.Query
defdelegate get_block_transactions(identifier), to: ETH.TransactionQueries
defdelegate get_block_transactions!(identifier), to: ETH.TransactionQueries
defdelegate get_block_transaction_count(identifier), to: ETH.TransactionQueries
defdelegate get_block_transaction_count!(identifier), to: ETH.TransactionQueries
defdelegate get_transaction_from_block(identifier, index), to: ETH.TransactionQueries
defdelegate get_transaction_from_block!(identifier, index), to: ETH.TransactionQueries
defdelegate get_transaction(transaction_hash), to: ETH.TransactionQueries
defdelegate get_transaction!(transaction_hash), to: ETH.TransactionQueries
defdelegate get_transaction_receipt(transaction_hash), to: ETH.TransactionQueries
defdelegate get_transaction_receipt!(transaction_hash), to: ETH.TransactionQueries
defdelegate get_transaction_count(wallet_or_address), to: ETH.TransactionQueries
defdelegate get_transaction_count(wallet_or_address, state), to: ETH.TransactionQueries
defdelegate get_transaction_count!(wallet_or_address), to: ETH.TransactionQueries
defdelegate get_transaction_count!(wallet_or_address, state), to: ETH.TransactionQueries
defdelegate parse(data), to: ETH.Transaction.Parser
defdelegate to_list(data), to: ETH.Transaction.Parser
defdelegate build(params), to: ETH.Transaction.Builder
defdelegate build(wallet, params), to: ETH.Transaction.Builder
defdelegate build(sender_wallet, receiver_wallet, params_or_value), to: ETH.Transaction.Builder
defdelegate hash_transaction(transaction), to: ETH.Transaction
defdelegate hash_transaction(transaction, include_signature), to: ETH.Transaction
defdelegate sign_transaction(transaction, 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
defdelegate send_transaction(sender_wallet, receiver_wallet, value_or_params, private_key),
to: ETH.Transaction
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
defdelegate send_transaction!(sender_wallet, receiver_wallet, value_or_params, private_key),
to: ETH.Transaction
defdelegate send(signature), to: ETH.Transaction
defdelegate send!(signature), to: ETH.Transaction
defdelegate get_senders_public_key(transaction_input), to: ETH.Transaction
defdelegate get_sender_address(transaction_input), to: ETH.Transaction
defdelegate get_private_key, to: ETH.Utils
defdelegate get_public_key(private_key), to: ETH.Utils
defdelegate get_address(private_or_public_key), to: ETH.Utils
defdelegate convert(value, denomination), to: ETH.Utils
defdelegate secp256k1_signature(hash, private_key), to: ETH.Utils
defdelegate encode16(data), to: ETH.Utils
defdelegate decode16(decoded_data), to: ETH.Utils
defdelegate to_buffer(data), to: ETH.Utils
defdelegate buffer_to_int(data), to: ETH.Utils
defdelegate pad_to_even(data), to: ETH.Utils
defdelegate get_chain_id(v, chain_id), to: ETH.Utils
end