class Mnam::TransactionBuilder

Public Instance Methods

create_delegate(username, secret, second_secret) click to toggle source
# File lib/mnam/transaction_builder.rb, line 215
def create_delegate(username, secret, second_secret)
  key = Mnam::Util::Crypto.get_key(secret)
  second_key = Mnam::Util::Crypto.get_key(second_secret) if second_secret

  transaction = Transaction.new(
    :type => Transaction::Type::DELEGATE,
    :fee => Transaction::Fee::DELEGATE,
    :sender_public_key => key.public_key.unpack('H*').first,
    :amount => 0,
    :asset => {
      :delegate => {
        :username => username,
        :public_key => key.public_key.unpack('H*').first
      }
    }
  )

  transaction.sign_and_create_id(key, second_key)

  transaction
end
create_multisignature(secret, second_secret, keysgroup, lifetime, min) click to toggle source
# File lib/mnam/transaction_builder.rb, line 237
def create_multisignature(secret, second_secret, keysgroup, lifetime, min)
  key = Mnam::Util::Crypto.get_key(secret)
  second_key = Mnam::Util::Crypto.get_key(second_secret) if second_secret

  transaction = Transaction.new(
    :type => Transaction::Type::MULTISIGNATURE,
    :fee => (keysgroup.size + 1) * Transaction::Fee::MULTISIGNATURE_BASE,
    :sender_public_key => key.public_key.unpack('H*').first,
    :amount => 0,
    :asset => {
      :multisignature => {
        :min => min,
        :lifetime => lifetime,
        :keysgroup => keysgroup
      }
    }
  )

  transaction.sign_and_create_id(key, second_key)

  transaction
end
create_second_signature(second_secret, first_secret) click to toggle source
# File lib/mnam/transaction_builder.rb, line 176
def create_second_signature(second_secret, first_secret)
  key = Mnam::Util::Crypto.get_key(first_secret)
  second_key = Mnam::Util::Crypto.get_key(second_secret) if second_secret

  transaction = Transaction.new(
    :type => Transaction::Type::SECOND_SIGNATURE,
    :fee => Transaction::Fee::SECOND_SIGNATURE,
    :sender_public_key => key.public_key.unpack('H*').first,
    :amount => 0,
    :asset => {
      :signature => {
        :public_key => second_key.public_key.unpack('H*').first
      }
    }
  )

  transaction.sign_and_create_id(key)

  return transaction
end
create_transfer(recipient_id, amount, vendor_field, secret, second_secret = nil) click to toggle source
# File lib/mnam/transaction_builder.rb, line 159
def create_transfer(recipient_id, amount, vendor_field, secret, second_secret = nil)
  key = Mnam::Util::Crypto.get_key(secret)
  second_key = Mnam::Util::Crypto.get_key(second_secret) if second_secret

  transaction = Transaction.new(
    :type => Transaction::Type::TRANSFER,
    :fee => Transaction::Fee::TRANSFER,
    :sender_public_key => key.public_key.unpack('H*').first,
    :recipient_id => recipient_id,
    :amount => amount,
    :vendor_field => vendor_field,
  )
  transaction.sign_and_create_id(key, second_key)

  transaction
end
create_vote(votes, secret, second_secret, network_address) click to toggle source
# File lib/mnam/transaction_builder.rb, line 197
def create_vote(votes, secret, second_secret, network_address)
  key = Mnam::Util::Crypto.get_key(secret)
  second_key = Mnam::Util::Crypto.get_key(second_secret) if second_secret

  transaction = Transaction.new(
    :type => Transaction::Type::VOTE,
    :fee => Transaction::Fee::VOTE,
    :sender_public_key => key.public_key.unpack('H*').first,
    :recipient_id => Mnam::Util::Crypto.get_address(key, network_address),
    :amount => 0,
    :asset => {:votes => votes}
  )

  transaction.sign_and_create_id(key, second_key)

  transaction
end