class Neb::PrivateKey
Attributes
raw[R]
Public Class Methods
new(raw)
click to toggle source
# File lib/neb/private_key.rb, line 8 def initialize(raw) @raw = raw end
random()
click to toggle source
# File lib/neb/private_key.rb, line 85 def random new(Utils.random_bytes) end
Public Instance Methods
decode(fmt = nil)
click to toggle source
# File lib/neb/private_key.rb, line 35 def decode(fmt = nil) fmt ||= format case fmt when :decimal raw when :bin BaseConvert.decode(raw, 256) when :bin_compressed BaseConvert.decode(raw[0, 32], 256) when :hex BaseConvert.decode(raw, 16) when :hex_compressed BaseConvert.decode(raw[0, 64], 16) else raise ArgumentError, "WIF does not represent privkey" end end
encode(fmt)
click to toggle source
# File lib/neb/private_key.rb, line 16 def encode(fmt) return self.class.new(value).encode(fmt) unless raw.is_a?(Numeric) case fmt when :decimal raw when :bin BaseConvert.encode(raw, 256, 32) when :bin_compressed "#{BaseConvert.encode(raw, 256, 32)}\x01" when :hex BaseConvert.encode(raw, 16, 64) when :hex_compressed "#{BaseConvert.encode(raw, 16, 64)}01" else raise ArgumentError, "invalid format: #{fmt}" end end
format()
click to toggle source
# File lib/neb/private_key.rb, line 58 def format return :decimal if raw.is_a?(Numeric) return :bin if raw.size == 32 return :bin_compressed if raw.size == 33 return :hex if raw.size == 64 return :hex_compressed if raw.size == 66 end
to_address()
click to toggle source
# File lib/neb/private_key.rb, line 79 def to_address to_address_obj.to_s end
to_address_obj()
click to toggle source
# File lib/neb/private_key.rb, line 75 def to_address_obj PublicKey.new(to_pubkey_obj.encode(:bin)).to_address end
to_pubkey()
click to toggle source
# File lib/neb/private_key.rb, line 66 def to_pubkey to_pubkey_obj.to_s end
to_pubkey_obj()
click to toggle source
# File lib/neb/private_key.rb, line 70 def to_pubkey_obj raise ValidationError, "Invalid private key" if value >= Secp256k1::N PublicKey.new(Secp256k1.priv_to_pub(encode(:bin))) end
to_s()
click to toggle source
# File lib/neb/private_key.rb, line 12 def to_s encode(:hex) end
value()
click to toggle source
# File lib/neb/private_key.rb, line 54 def value @value ||= decode end