View Source Signet.Transaction (Signet v0.1.7)

A module to help build, sign and encode Ethereum transactions.

Link to this section Summary

Functions

Builds and signs a transaction, to be ready to be passed to JSON-RPC.

Link to this section Functions

Link to this function

build_signed_trx(address, nonce, call_data, gas_price, gas_limit, value, opts \\ [])

View Source

Builds and signs a transaction, to be ready to be passed to JSON-RPC.

Optionally takes a callback to modify the transaction before it is signed.

examples

Examples

iex> signer_proc = Signet.Test.Signer.start_signer()
iex> {:ok, signed_trx} = Signet.Transaction.build_signed_trx(<<1::160>>, 5, {"baz(uint,address)", [50, :binary.decode_unsigned(<<1::160>>)]}, {50, :gwei}, 100_000, 0, signer: signer_proc, chain_id: :goerli)
iex> {:ok, signer} = Signet.Transaction.V1.recover_signer(signed_trx, 5)
iex> Base.encode16(signer)
"63CC7C25E0CDB121ABB0FE477A6B9901889F99A7"
Link to this function

build_trx(address, nonce, call_data, gas_price, gas_limit, value, chain_id \\ nil)

View Source

Builds a v1-style call to a given contract

examples

Examples

iex> Signet.Transaction.build_trx(<<1::160>>, 5, {"baz(uint,address)", [50, :binary.decode_unsigned(<<1::160>>)]}, {50, :gwei}, 100_000, 0, 5)
%Signet.Transaction.V1{
  nonce: 5,
  gas_price: 50000000000,
  gas_limit: 100000,
  to: <<1::160>>,
  value: 0,
  data: Base.decode16!("A291ADD600000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"),
  v: 5,
  r: 0,
  s: 0
}

iex> call_data = Base.decode16!("A291ADD600000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001")
...> Signet.Transaction.build_trx(<<1::160>>, 5, call_data, {50, :gwei}, 100_000, 0, 5)
%Signet.Transaction.V1{
  nonce: 5,
  gas_price: 50000000000,
  gas_limit: 100000,
  to: <<1::160>>,
  value: 0,
  data: Base.decode16!("A291ADD600000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"),
  v: 5,
  r: 0,
  s: 0
}