Class: ArkEcosystem::Crypto::Serialiser

Inherits:
Object
  • Object
show all
Defined in:
lib/arkecosystem/crypto/serialiser.rb

Overview

The base serialiser for transactions.

Instance Method Summary collapse

Constructor Details

#initialize(transaction) ⇒ Serialiser

Returns a new instance of Serialiser.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/arkecosystem/crypto/serialiser.rb', line 5

def initialize(transaction)
  @transaction = transaction

  @handlers = %w[
    Transfer
    SecondSignatureRegistration
    DelegateRegistration
    Vote
    MultiSignatureRegistration
    Ipfs
    TimelockTransfer
    MultiPayment
    DelegateResignation
  ]
end

Instance Method Details

#serialiseObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/arkecosystem/crypto/serialiser.rb', line 21

def serialise
  bytes = ''
  bytes << [0xff].pack('C')
  bytes << [@transaction[:version] || 0x01].pack('C')
  bytes << [@transaction[:network]].pack('C')
  bytes << [@transaction[:type]].pack('C')
  bytes << [@transaction[:timestamp]].pack('V')
  bytes << [@transaction[:senderPublicKey]].pack('H*')
  bytes << [@transaction[:fee]].pack('Q<')

  bytes = handle_vendor_field(bytes)
  bytes = handle_type(bytes)
  bytes = handle_signatures(bytes)

  BTC::Data.hex_from_data(bytes)
end