class DbchainClient::Writer

Public Class Methods

new(base_url, chain_id, private_key_hex, address=nil) click to toggle source
# File lib/dbchain_client/writer.rb, line 8
def initialize(base_url, chain_id, private_key_hex, address=nil)
  @transaction = DbchainClient::Transaction.new(base_url, chain_id, private_key_hex)
  from_address = address || PrivateKey.new(private_key_hex).public_key.address
  @message_generator = DbchainClient::MessageGenerator.new(from_address)
end

Public Instance Methods

insert_row(app_code, table_name, fields) click to toggle source
# File lib/dbchain_client/writer.rb, line 22
def insert_row(app_code, table_name, fields)
  fields_str = Base64.strict_encode64(fields.to_json)
  message = generate_message('InsertRow',
    app_code: app_code,
    table_name: table_name,
    fields: fields_str
  )
  sign_and_broadcast([message])
end
send_token(to_address, amount) click to toggle source
# File lib/dbchain_client/writer.rb, line 14
def send_token(to_address, amount)
  message = generate_message('MsgSend',
    to_address: to_address,
    amount: [{denom: 'dbctoken', amount: amount.to_string}]
  )
  sign_and_broadcast([message])
end

Private Instance Methods

generate_message(message_type, message_data) click to toggle source
# File lib/dbchain_client/writer.rb, line 34
def generate_message(message_type, message_data)
  @message_generator.run(message_type, message_data)
end
sign_and_broadcast(messages) click to toggle source
# File lib/dbchain_client/writer.rb, line 38
def sign_and_broadcast(messages)
  @transaction.sign_and_broadcast(messages)
end