class Etherlite::Transaction
Attributes
tx_hash[R]
Public Class Methods
new(_connection, _tx_hash)
click to toggle source
# File lib/etherlite/transaction.rb, line 5 def initialize(_connection, _tx_hash) @connection = _connection @tx_hash = _tx_hash @loaded = false end
Public Instance Methods
block_hash()
click to toggle source
# File lib/etherlite/transaction.rb, line 48 def block_hash return nil unless mined? original['blockHash'] end
block_number()
click to toggle source
# File lib/etherlite/transaction.rb, line 42 def block_number return nil unless mined? Utils.hex_to_uint(original['blockNumber']) end
confirmations()
click to toggle source
# File lib/etherlite/transaction.rb, line 54 def confirmations return 0 unless mined? (@connection.eth_block_number - block_number) + 1 end
contract_address()
click to toggle source
# File lib/etherlite/transaction.rb, line 94 def contract_address receipt && receipt['contractAddress'] end
events()
click to toggle source
# File lib/etherlite/transaction.rb, line 90 def events receipt && ::Etherlite::EventProvider.parse_raw_logs(@connection, logs) end
failed?()
click to toggle source
# File lib/etherlite/transaction.rb, line 78 def failed? status == 0 end
gas()
click to toggle source
# File lib/etherlite/transaction.rb, line 30 def gas original && Utils.hex_to_uint(original['gas']) end
gas_price()
click to toggle source
# File lib/etherlite/transaction.rb, line 34 def gas_price original && Utils.hex_to_uint(original['gasPrice']) end
gas_used()
click to toggle source
# File lib/etherlite/transaction.rb, line 82 def gas_used receipt && Utils.hex_to_uint(receipt['gasUsed']) end
logs()
click to toggle source
# File lib/etherlite/transaction.rb, line 86 def logs receipt && (receipt['logs'] || []) end
mined?()
click to toggle source
# File lib/etherlite/transaction.rb, line 26 def mined? original.present? && !original['blockNumber'].nil? end
original()
click to toggle source
# File lib/etherlite/transaction.rb, line 17 def original refresh unless @loaded @original end
receipt()
click to toggle source
receipt attributes
# File lib/etherlite/transaction.rb, line 62 def receipt return nil unless mined? @receipt ||= @connection.eth_get_transaction_receipt(@tx_hash) end
refresh()
click to toggle source
# File lib/etherlite/transaction.rb, line 11 def refresh @original = @connection.eth_get_transaction_by_hash(@tx_hash) @loaded = true self end
removed?()
click to toggle source
# File lib/etherlite/transaction.rb, line 22 def removed? original.nil? end
status()
click to toggle source
# File lib/etherlite/transaction.rb, line 68 def status return nil if receipt.nil? receipt['status'].is_a?(String) ? Utils.hex_to_uint(receipt['status']) : receipt['status'] end
succeeded?()
click to toggle source
# File lib/etherlite/transaction.rb, line 74 def succeeded? status == 1 end
value()
click to toggle source
# File lib/etherlite/transaction.rb, line 38 def value original && Utils.hex_to_uint(original['value']) end
wait_for_block(timeout: 120)
click to toggle source
# File lib/etherlite/transaction.rb, line 98 def wait_for_block(timeout: 120) start = Time.now while !refresh.mined? return false if removed? return false if Time.now - start > timeout sleep 1 end true end