class EvmClient::Transaction

Constants

DEFAULT_STEP
DEFAULT_TIMEOUT

Attributes

connection[RW]
id[RW]
input[RW]
input_parameters[RW]
mined[RW]

Public Class Methods

from_blockchain(address, connection = IpcClient.new) click to toggle source
# File lib/evm_client/transaction.rb, line 37
def self.from_blockchain(address, connection = IpcClient.new)
  Transaction.new(address, connection, nil, nil)
end
new(id, connection, data, input_parameters = []) click to toggle source
# File lib/evm_client/transaction.rb, line 10
def initialize(id, connection, data, input_parameters = [])
  @mined = false
  @connection = connection
  @id = id
  @input = data
  @input_parameters = input_parameters
end

Public Instance Methods

address() click to toggle source
# File lib/evm_client/transaction.rb, line 18
def address
  @id
end
mined?() click to toggle source
# File lib/evm_client/transaction.rb, line 22
def mined?
  return true if @mined
  tx = @connection.eth_get_transaction_by_hash(@id)
  @mined = !tx.nil? && !tx["result"].nil? && tx["result"]["blockNumber"].present?
end
wait_for_miner(timeout: DEFAULT_TIMEOUT, step: DEFAULT_STEP) click to toggle source
# File lib/evm_client/transaction.rb, line 28
def wait_for_miner(timeout: DEFAULT_TIMEOUT, step: DEFAULT_STEP)
  start_time = Time.now
  loop do
    raise Timeout::Error if ((Time.now - start_time) > timeout)
    return true if self.mined?
    sleep step
  end
end