Class: Radiator::Transaction
- Inherits:
-
Object
- Object
- Radiator::Transaction
- Includes:
- ChainConfig, Utils
- Defined in:
- lib/radiator/transaction.rb
Overview
-
graphenej:
* https://github.com/kenCode-de/graphenej/blob/master/graphenej/src/main/java/de/bitsharesmunich/graphenej/Transaction.java#L142
Constant Summary collapse
- VALID_OPTIONS =
%w( wif private_key ref_block_num ref_block_prefix expiration operations chain ).map(&:to_sym)
Constants included from ChainConfig
ChainConfig::EXPIRE_IN_SECS, ChainConfig::EXPIRE_IN_SECS_PROPOSAL, ChainConfig::NETWORKS_GOLOS_ADDRESS_PREFIX, ChainConfig::NETWORKS_GOLOS_CHAIN_ID, ChainConfig::NETWORKS_GOLOS_CORE_ASSET, ChainConfig::NETWORKS_GOLOS_DEBT_ASSET, ChainConfig::NETWORKS_GOLOS_DEFAULT_NODE, ChainConfig::NETWORKS_GOLOS_VEST_ASSET, ChainConfig::NETWORKS_STEEM_ADDRESS_PREFIX, ChainConfig::NETWORKS_STEEM_CHAIN_ID, ChainConfig::NETWORKS_STEEM_CORE_ASSET, ChainConfig::NETWORKS_STEEM_DEBT_ASSET, ChainConfig::NETWORKS_STEEM_DEFAULT_NODE, ChainConfig::NETWORKS_STEEM_VEST_ASSET, ChainConfig::NETWORKS_TEST_ADDRESS_PREFIX, ChainConfig::NETWORKS_TEST_CHAIN_ID, ChainConfig::NETWORKS_TEST_CORE_ASSET, ChainConfig::NETWORKS_TEST_DEBT_ASSET, ChainConfig::NETWORKS_TEST_DEFAULT_NODE, ChainConfig::NETWORKS_TEST_VEST_ASSET, ChainConfig::NETWORK_CHAIN_IDS
Instance Method Summary collapse
- #chain_id(chain_id = nil) ⇒ Object
-
#initialize(options = {}) ⇒ Transaction
constructor
A new instance of Transaction.
- #operations ⇒ Object
- #process(broadcast = false) ⇒ Object
- #url ⇒ Object
Methods included from Utils
#hexlify, #pakArr, #pakC, #pakHash, #pakI, #pakL!, #pakS, #pakStr, #pakc, #paks, #unhexlify, #varint
Constructor Details
#initialize(options = {}) ⇒ Transaction
Returns a new instance of Transaction.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/radiator/transaction.rb', line 18 def initialize( = {}) .each do |k, v| k = k.to_sym if VALID_OPTIONS.include?(k.to_sym) .delete(k) send("#{k}=", v) end end @logger = [:logger] || Radiator.logger @chain ||= :steem @chain_id = chain_id [:chain_id] @url = [:url] || url @operations ||= [] unless NETWORK_CHAIN_IDS.include? @chain_id @logger.warn "Unknown chain id: #{@chain_id}" end if !!wif && !!private_key raise TransactionError, "Do not pass both wif and private_key. That's confusing." end if !!wif @private_key = Bitcoin::Key.from_base58 wif end = .merge(url: @url) @api = Api.new() @network_broadcast_api = NetworkBroadcastApi.new() end |
Instance Method Details
#chain_id(chain_id = nil) ⇒ Object
50 51 52 53 54 55 56 57 58 |
# File 'lib/radiator/transaction.rb', line 50 def chain_id(chain_id = nil) return chain_id if !!chain_id case chain.to_s.downcase.to_sym when :steem then NETWORKS_STEEM_CHAIN_ID when :golos then NETWORKS_GOLOS_CHAIN_ID when :test then NETWORKS_TEST_CHAIN_ID end end |
#operations ⇒ Object
78 79 80 81 82 83 84 85 |
# File 'lib/radiator/transaction.rb', line 78 def operations @operations = @operations.map do |op| case op when Operation then op else; Operation.new(op) end end end |
#process(broadcast = false) ⇒ Object
68 69 70 71 72 73 74 75 76 |
# File 'lib/radiator/transaction.rb', line 68 def process(broadcast = false) prepare if broadcast @network_broadcast_api.broadcast_transaction_synchronous(payload) else self end end |
#url ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/radiator/transaction.rb', line 60 def url case chain.to_s.downcase.to_sym when :steem then NETWORKS_STEEM_DEFAULT_NODE when :golos then NETWORKS_GOLOS_DEFAULT_NODE when :test then NETWORKS_TEST_DEFAULT_NODE end end |