Class: Crypto::Keys::PublicKey

Inherits:
Object
  • Object
show all
Defined in:
lib/crypto/keys/public_key.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(public_key_hex, network = MAINNET) ⇒ PublicKey

Returns a new instance of PublicKey.

Raises:



5
6
7
8
9
# File 'lib/crypto/keys/public_key.rb', line 5

def initialize(public_key_hex, network = MAINNET)
    @public_key_hex = public_key_hex
    @network = network
    raise AxentroError, "invalid public key: #{@public_key_hex}" unless is_valid?
end

Instance Attribute Details

#networkObject (readonly)

Returns the value of attribute network.



3
4
5
# File 'lib/crypto/keys/public_key.rb', line 3

def network
  @network
end

Class Method Details

.from_bytes(bytes, network = MAINNET) ⇒ Object



15
16
17
# File 'lib/crypto/keys/public_key.rb', line 15

def self.from_bytes(bytes, network = MAINNET)
    PublicKey.new(KeyUtils.to_hex(bytes), network)
end

.from_hex(hex, network = MAINNET) ⇒ Object



11
12
13
# File 'lib/crypto/keys/public_key.rb', line 11

def self.from_hex(hex, network = MAINNET)
    PublicKey.new(hex, network)
end

Instance Method Details

#addressObject



27
28
29
# File 'lib/crypto/keys/public_key.rb', line 27

def address
    Address.new(KeyUtils.get_address_from_public_key(self), @network)
end

#as_bytesObject



23
24
25
# File 'lib/crypto/keys/public_key.rb', line 23

def as_bytes
 KeyUtils.to_bytes(@public_key_hex)
end

#as_hexObject



19
20
21
# File 'lib/crypto/keys/public_key.rb', line 19

def as_hex
    @public_key_hex
end

#is_valid?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/crypto/keys/public_key.rb', line 31

def is_valid?
    !@public_key_hex.nil? && @public_key_hex.size == 64
end