class RubyCoin::Address
Attributes
compressed[RW]
curve[RW]
private_key[RW]
public_key[RW]
secret[RW]
Public Class Methods
new(seed, *args)
click to toggle source
# File lib/ruby_coin/address.rb, line 7 def initialize(seed, *args) options = extract_options!(args) case options[:format] when :uncompressed @compressed = false else @compressed = true end self.curve = ::OpenSSL::PKey::EC.new(seed, *args) curve.generate_key curve.private_key? ? init_private_key : nil_private_key curve.public_key? ? init_public_key : nil_public_key end
Public Instance Methods
compressed?()
click to toggle source
# File lib/ruby_coin/address.rb, line 30 def compressed? !!@compressed end
to_s()
click to toggle source
# File lib/ruby_coin/address.rb, line 26 def to_s address end
Protected Instance Methods
checksum(hex)
click to toggle source
# File lib/ruby_coin/address.rb, line 51 def checksum(hex) Digest::SHA256.hexdigest( Digest::SHA256.digest( [hex].pack('H*') ))[0...8] end
hash160(hex)
click to toggle source
# File lib/ruby_coin/address.rb, line 47 def hash160(hex) Digest::RMD160.hexdigest(Digest::SHA256.digest([hex].pack('H*'))) end
number_to_base(number, alpha)
click to toggle source
# File lib/ruby_coin/address.rb, line 58 def number_to_base(number, alpha) string, base = '', alpha.size while(number >= base) mod = number % base string = alpha[mod,1] + string number = (number - mod)/base end alpha[number,1] + string end
Private Instance Methods
init_private_key()
click to toggle source
# File lib/ruby_coin/address.rb, line 69 def init_private_key @private_key = curve.private_key.to_hex end
init_public_key()
click to toggle source
# File lib/ruby_coin/address.rb, line 73 def init_public_key @public_key = curve.public_key.to_hex end
nil_private_key()
click to toggle source
# File lib/ruby_coin/address.rb, line 77 def nil_private_key @private_key = nil nil_public_key end
nil_public_key()
click to toggle source
# File lib/ruby_coin/address.rb, line 82 def nil_public_key @address = nil @public_key = nil end