mastercoin-ruby 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.2.4
@@ -19,12 +19,16 @@ module Mastercoin
19
19
  else
20
20
  transaction_type = result[0][1][2..9].to_i(16)
21
21
  end
22
+ Mastercoin.log.debug("Transaction type: #{transaction_type}")
22
23
 
23
24
  if transaction_type == Mastercoin::TRANSACTION_SELL_FOR_BITCOIN
25
+ Mastercoin.log.debug("Selling offer found")
24
26
  Mastercoin::SellingOffer.decode_from_compressed_public_key([result[0][0], result[1][0]], xor_target)
25
27
  elsif transaction_type.to_s == Mastercoin::TRANSACTION_PURCHASE_BTC_TRADE.to_i.to_s
28
+ Mastercoin.log.debug("Purchase offer found")
26
29
  Mastercoin::PurchaseOffer.decode_from_compressed_public_key(result[0][0], xor_target)
27
30
  elsif transaction_type.to_s == Mastercoin::TRANSACTION_SIMPLE_SEND.to_s
31
+ Mastercoin.log.debug("Simple send found")
28
32
  Mastercoin::SimpleSend.decode_from_compressed_public_key(result[0][0], xor_target)
29
33
  end
30
34
  end
@@ -56,6 +56,10 @@ module Mastercoin
56
56
  end
57
57
  else
58
58
  exodus_size_outputs = self.btc_tx.outputs.find_all{|x| x.value == exodus_value}
59
+ if exodus_size_outputs.length < 3
60
+ raise NoMastercoinTransactionException.new("Not enough Exodus outputs found, we need at least 3 outputs with the value specified to Exodus, but got #{exodus_size_outputs.length}")
61
+ end
62
+
59
63
  self.btc_tx.outputs.each do |output|
60
64
  if output.get_address == Mastercoin::EXODUS_ADDRESS
61
65
  # Do nothing yet; this is simply the exodus address
@@ -74,10 +78,12 @@ module Mastercoin
74
78
 
75
79
  if (self.data.sequence.to_i + 1).to_s == sequence.to_s
76
80
  self.target_address = address
81
+ Mastercoin.log.debug "Target address found #{self.target_address}"
77
82
  end
78
83
  end
79
84
 
80
85
  unless self.target_address
86
+ Mastercoin.log.debug "Target address not found attempting peek & decode."
81
87
  # Find data outputs and brute force receiver
82
88
  found = exodus_size_outputs.reject do |output|
83
89
  output.get_address == Mastercoin::EXODUS_ADDRESS || Mastercoin::SimpleSend.decode_from_address(output.get_address).looks_like_mastercoin? # This looks like a data packet
@@ -86,7 +92,7 @@ module Mastercoin
86
92
  if found.length == 1
87
93
  self.target_address = found.first.get_address
88
94
  else
89
- puts "Could not find target address"
95
+ raise NoMastercoinTransactionException.new("Could not find a recipient address.") unless self.data
90
96
  end
91
97
  end
92
98
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "mastercoin-ruby"
8
- s.version = "0.2.3"
8
+ s.version = "0.2.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Maran"]
12
- s.date = "2013-12-14"
12
+ s.date = "2013-12-16"
13
13
  s.description = "Basic implementation of the Mastercoin protocol."
14
14
  s.email = "maran.hidskes@gmail.com"
15
15
  s.executables = ["console", "exodus_payment", "mastercoin_transaction", "simple_send", "wallet.rb"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mastercoin-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-12-14 00:00:00.000000000 Z
12
+ date: 2013-12-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bitcoin-ruby
@@ -194,7 +194,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
194
194
  version: '0'
195
195
  segments:
196
196
  - 0
197
- hash: -3636912781632535613
197
+ hash: 2239308773199340819
198
198
  required_rubygems_version: !ruby/object:Gem::Requirement
199
199
  none: false
200
200
  requirements: