class Eth::Client
def transfer(destination, amount, sender_key = nil, legacy = false)
-
(String)
- the transaction hash.
Parameters:
-
legacy
(Boolean
) -- enables legacy transactions (pre-EIP-1559). -
sender_key
(Eth::Key
) -- the sender private key. -
amount
(Integer
) -- the transfer amount in Wei. -
destination
(Eth::Address
) -- the destination address.
def transfer(destination, amount, sender_key = nil, legacy = false) params = { value: amount, to: destination, gas_limit: gas_limit, chain_id: chain_id, } if legacy params.merge!({ gas_price: max_fee_per_gas, }) else params.merge!({ priority_fee: max_priority_fee_per_gas, max_gas_fee: max_fee_per_gas, }) end unless sender_key.nil? # use the provided key as sender and signer params.merge!({ from: sender_key.address, nonce: get_nonce(sender_key.address), }) tx = Eth::Tx.new(params) tx.sign sender_key return eth_send_raw_transaction(tx.hex)["result"] else # use the default account as sender and external signer params.merge!({ from: default_account, nonce: get_nonce(default_account), }) return eth_send_transaction(params)["result"] end end