class Platon::Deployment
Constants
- DEFAULT_STEP
- DEFAULT_TIMEOUT
Attributes
connection[RW]
contract_address[RW]
deployed[RW]
id[RW]
mined[RW]
valid_deployment[R]
Public Class Methods
new(txid, connection)
click to toggle source
# File lib/platon/deployment.rb, line 11 def initialize(txid, connection) @id = txid @connection = connection @deployed = false @contract_address = nil @valid_deployment = false end
Public Instance Methods
check_deployed()
click to toggle source
# File lib/platon/deployment.rb, line 25 def check_deployed return false unless @id contract_receipt = @connection.platon_get_transaction_receipt(@id) result = contract_receipt["result"] has_contract_address = result && result["contractAddress"] @contract_address ||= result["contractAddress"] if has_contract_address has_contract_address && result["blockNumber"] end
deployed?()
click to toggle source
# File lib/platon/deployment.rb, line 34 def deployed? @valid_deployment ||= check_deployed end
mined?()
click to toggle source
# File lib/platon/deployment.rb, line 19 def mined? return true if @mined @mined = @connection.platon_get_transaction_by_hash(@id)["result"]["blockNumber"].present? @mined ||= false end
wait_for_deployment(timeout: DEFAULT_TIMEOUT, step: DEFAULT_STEP) { || ... }
click to toggle source
# File lib/platon/deployment.rb, line 38 def wait_for_deployment(timeout: DEFAULT_TIMEOUT, step: DEFAULT_STEP) start_time = Time.now loop do raise "Transaction #{@id} timed out." if ((Time.now - start_time) > timeout) yield if block_given? return true if deployed? sleep step end end