Class: Monerorequest::Decoder

Inherits:
Object
  • Object
show all
Defined in:
lib/monerorequest/decoder.rb

Overview

class to Decode an encoded Monerorequest

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ Decoder

Returns a new instance of Decoder.



6
7
8
# File 'lib/monerorequest/decoder.rb', line 6

def initialize(request)
  @request = request
end

Instance Method Details

#decodeObject



10
11
12
13
14
15
16
17
18
19
# File 'lib/monerorequest/decoder.rb', line 10

def decode
  _, version, encoded_str = @request.split(":")
  raise RequestVersionError, "Request Versions 1 and 2 are supported." unless [1, 2].include?(version.to_i)

  compressed_data = Base64.decode64(encoded_str)
  json_str = Zlib::GzipReader.new(StringIO.new(compressed_data)).read
  decoded_hash = JSON.parse(json_str)
  decoded_hash["version"] = version.to_i
  decoded_hash
end