class Nem::Transaction::MultisigAggregateModification

@attr [Array <Nem::Model::MultisigCosignatoryModification>] modifications @attr [Interger] relative_change @attr [Interger] min_cosignatories

Constants

TYPE

Attributes

min_cosignatories[R]
modifications[R]
relative_change[R]

Public Class Methods

new(modifications, relative_change = 0, timestamp: nil, deadline: nil, network: nil) click to toggle source
# File lib/nem/transaction/multisig_aggregate_modification.rb, line 11
def initialize(modifications, relative_change = 0, timestamp: nil, deadline: nil, network: nil)
  @modifications = modifications
  @relative_change = relative_change

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

Public Instance Methods

has_relative_change?() click to toggle source
# File lib/nem/transaction/multisig_aggregate_modification.rb, line 22
def has_relative_change?
  relative_change != 0
end
to_hash() click to toggle source

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

# File lib/nem/transaction/multisig_aggregate_modification.rb, line 34
def to_hash
  tmp = {
    minCosignatories: {
      relativeChange: relative_change
    }
  }
  tmp[:modifications] = modifications
    .sort_by { |mo| Nem::Unit::Address.from_public_key(mo.cosignatory_account) }
    .map(&:to_hash)
  tmp
end
version() click to toggle source
# File lib/nem/transaction/multisig_aggregate_modification.rb, line 26
def version
  network(hex: true) + (has_relative_change? ? 2 : 1)
end