Class: Mastercoin::PurchaseOffer
- Inherits:
-
Message
- Object
- Message
- Mastercoin::PurchaseOffer
show all
- Defined in:
- lib/mastercoin-ruby/purchase_offer.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Message
decode, decode_from_compressed_public_key, #encode_to_compressed_public_key, #mangle_key_until_valid, probe, probe_and_read
Constructor Details
#initialize(options = {}) ⇒ PurchaseOffer
Supply the amount in ‘dacoinminster’s 77702fd6333eb5a67fa03b6fdb0fda04981bd671fd2a9175e2bee43340770940
7
8
9
10
11
|
# File 'lib/mastercoin-ruby/purchase_offer.rb', line 7
def initialize(options= {})
self.transaction_type = Mastercoin::TRANSACTION_PURCHASE_BTC_TRADE
self.currency_id = options[:currency_id]
self.amount = options[:amount]
end
|
Instance Attribute Details
#amount ⇒ Object
Returns the value of attribute amount.
3
4
5
|
# File 'lib/mastercoin-ruby/purchase_offer.rb', line 3
def amount
@amount
end
|
#currency_id ⇒ Object
Returns the value of attribute currency_id.
3
4
5
|
# File 'lib/mastercoin-ruby/purchase_offer.rb', line 3
def currency_id
@currency_id
end
|
#transaction_type ⇒ Object
Returns the value of attribute transaction_type.
3
4
5
|
# File 'lib/mastercoin-ruby/purchase_offer.rb', line 3
def transaction_type
@transaction_type
end
|
Class Method Details
.decode_from_address(raw_address) ⇒ Object
38
39
40
41
42
43
44
45
46
|
# File 'lib/mastercoin-ruby/purchase_offer.rb', line 38
def self.decode_from_address(raw_address)
simple_send = Mastercoin::PurchaseOffer.new
decoded = Bitcoin.decode_base58(raw_address)
simple_send.sequence = decoded[2..3].to_i(16)
simple_send.transaction_type = decoded[4..11].to_i(16)
simple_send.currency_id = decoded[12..19].to_i(16)
simple_send.amount = decoded[20..35].to_i(16)
return simple_send
end
|
.decode_key_to_data(public_key) ⇒ Object
19
20
21
22
23
24
25
|
# File 'lib/mastercoin-ruby/purchase_offer.rb', line 19
def self.decode_key_to_data(public_key)
simple_send = PurchaseOffer.new
simple_send.transaction_type = public_key[2..9].to_i(16)
simple_send.currency_id = public_key[10..17].to_i(16)
simple_send.amount = public_key[18..33].to_i(16)
return simple_send
end
|
Instance Method Details
#currency_id_text ⇒ Object
57
58
59
|
# File 'lib/mastercoin-ruby/purchase_offer.rb', line 57
def currency_id_text
Mastercoin::CURRENCY_IDS[self.currency_id.to_s]
end
|
#encode_data_to_key ⇒ Object
27
28
29
30
31
|
# File 'lib/mastercoin-ruby/purchase_offer.rb', line 27
def encode_data_to_key
raw = (self.public_key_sequence.to_i.to_s(16).rjust(2, "0") + self.transaction_type.to_i.to_s(16).rjust(8,"0") + self.currency_id.to_i.to_s(16).rjust(8, "0") + self.amount.to_i.to_s(16).rjust(16, "0"))
raw = raw.ljust(62,"0")
return raw
end
|
#encode_to_address ⇒ Object
33
34
35
36
|
# File 'lib/mastercoin-ruby/purchase_offer.rb', line 33
def encode_to_address
raw = (self.get_sequence.to_i.to_s(16).rjust(2, "0") + self.transaction_type.to_i.to_s(16).rjust(8,"0") + self.currency_id.to_i.to_s(16).rjust(8, "0") + self.amount.to_i.to_s(16).rjust(16, "0") + "000000")
Bitcoin.hash160_to_address(raw)
end
|
#explain(sending_address = nil) ⇒ Object
53
54
55
|
# File 'lib/mastercoin-ruby/purchase_offer.rb', line 53
def explain(sending_address= nil)
"Purchase Offer transaction for %.8f #{self.currency_id_text} from #{sending_address}." % (self.amount / 1e8)
end
|
#get_sequence(bitcoin_address = nil) ⇒ Object
48
49
50
51
|
# File 'lib/mastercoin-ruby/purchase_offer.rb', line 48
def get_sequence(bitcoin_address = nil)
bitcoin_address ||= self.receiving_address
Mastercoin::Util.get_sequence(bitcoin_address)
end
|
#public_key_sequence ⇒ Object
hardcode the sequence for a public key simple send since it’s always fits inside a public key Please note that we start at 01 - 00 will generate unvalid ECDSA points somehow
15
16
17
|
# File 'lib/mastercoin-ruby/purchase_offer.rb', line 15
def public_key_sequence
01
end
|