Class: ArkEcosystem::Crypto::Deserialisers::MultiSignatureRegistration

Inherits:
Base
  • Object
show all
Defined in:
lib/arkecosystem/crypto/deserialisers/multi_signature_registration.rb

Overview

The deserialiser for multi signature registrations transactions.

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from ArkEcosystem::Crypto::Deserialisers::Base

Instance Method Details

#deserialiseObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/arkecosystem/crypto/deserialisers/multi_signature_registration.rb', line 6

def deserialise
  @transaction[:asset] = {
    multisignature: {
      keysgroup: []
    }
  }

  @transaction[:asset][:multisignature][:min] = @binary.unpack("C#{@asset_offset / 2}Q<").last & 0xff
  @transaction[:asset][:multisignature][:lifetime] = @binary.unpack("C#{@asset_offset / 2 + 2}Q<").last & 0xff

  count = @binary.unpack("C#{@asset_offset / 2 + 1}Q<").last & 0xff

  i = 0
  while i < count
    index_start = @asset_offset + 6 + i * 66

    @transaction[:asset][:multisignature][:keysgroup].push(@serialised[index_start, 66])

    i += 1
  end

  ArkEcosystem::Crypto::Crypto.parse_signatures(@serialised, @transaction, @asset_offset + 6 + count * 66)
end