Class: BTC::BigNumber

Inherits:
Object
  • Object
show all
Defined in:
lib/btcruby/big_number.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(signed_little_endian: nil, unsigned_big_endian: nil, integer: nil) ⇒ BigNumber

Initializes with one of the formats:

  1. Raw little-endian data extracted from MPI,
  2. Native OpenSSL BIGNUM big-endian unsigned big integer,
  3. Ruby Integer (Fixnum or Bignum)


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/btcruby/big_number.rb', line 18

def initialize(signed_little_endian: nil, unsigned_big_endian: nil, integer: nil)
  if signed_little_endian

    raise "Not Implemented"

  elsif unsigned_big_endian

    raise "Not Implemented"

  elsif integer
    @integer = integer
  else
    raise ArgumentError, "One of the arguments must not be nil"
  end
end

Instance Attribute Details

#integerObject (readonly)

Ruby Integer representation (Fixnum or Bignum)



6
7
8
# File 'lib/btcruby/big_number.rb', line 6

def integer
  @integer
end

#signed_little_endianObject (readonly)

Raw little-endian signed integer data



9
10
11
# File 'lib/btcruby/big_number.rb', line 9

def signed_little_endian
  @signed_little_endian
end

#unsigned_big_endianObject (readonly)

OpenSSL-compatible big-endian signed integer data



12
13
14
# File 'lib/btcruby/big_number.rb', line 12

def unsigned_big_endian
  @unsigned_big_endian
end