class Nem::Transaction::Transfer

@attr [Integer] amount @attr [String] recipient @attr [Nem::Model::Message] message @attr [Array <Nem::Model::MosaicId>] mosaics @see nemproject.github.io/#transferTransaction @see nemproject.github.io/#initiating-a-transfer-transaction @see nemproject.github.io/#version-1-transfer-transactions @see nemproject.github.io/#version-2-transfer-transactions

Constants

TYPE

Attributes

amount[R]
message[R]
mosaics[R]
recipient[R]

Public Class Methods

new(recipient, amount, message = '', mosaics: [], timestamp: nil, deadline: nil, network: nil) click to toggle source
# File lib/nem/transaction/transfer.rb, line 16
def initialize(recipient, amount, message = '', mosaics: [], timestamp: nil, deadline: nil, network: nil)
  @amount = amount
  @recipient = recipient
  @message = message.is_a?(Nem::Model::Message) ?
    message :
    Nem::Model::Message.new(message.to_s)
  @mosaics = mosaics

  @network = network || Nem.default_network
  @type = TYPE
  @fee = Nem::Fee::Transfer.new(self)
  @timestamp = timestamp || Time.now
  @deadline = deadline || Time.now + Nem.default_deadline
end

Public Instance Methods

has_message?() click to toggle source

@return [Boolean]

# File lib/nem/transaction/transfer.rb, line 32
def has_message?
  message.bytesize > 0
end
has_mosaics?() click to toggle source

@return [Boolean]

# File lib/nem/transaction/transfer.rb, line 37
def has_mosaics?
  mosaics.size > 0
end
to_hash() click to toggle source

attributes must be CAMEL CASE for NIS params @return [Hash] Mosaics need to be sorted by fqn. if not it will occur FAILURE_SIGNATURE_NOT_VERIFIABLE

# File lib/nem/transaction/transfer.rb, line 49
def to_hash
  tmp = {
    amount: (amount * 1_000_000).to_i,
    recipient: recipient,
    message: message.to_hash
  }
  unless mosaics.empty?
    tmp[:mosaics] = mosaics
      .sort_by { |mo| mo.fqn }
      .map do |moa|
      {
        mosaicId: {
          namespaceId: moa.mosaic_id.namespace_id,
          name: moa.mosaic_id.name,
        },
        quantity: moa.amount
      }
    end
  end
  tmp
end
version() click to toggle source
# File lib/nem/transaction/transfer.rb, line 41
def version
  network(hex: true) + (has_mosaics? ? 2 : 1)
end