class TonSdk::Processing::ProcessingEvent

Constants

TYPES

Attributes

error[R]
message[R]
message_id[R]
shard_block_id[R]
type_[R]

Public Class Methods

new(type_:, error: nil, shard_block_id: nil, message_id: nil, message: nil) click to toggle source
# File lib/ton_sdk_client/processing.rb, line 82
def initialize(type_:, error: nil, shard_block_id: nil, message_id: nil, message: nil)
  unless TYPES.include?(type_)
    raise ArgumentError.new("type #{type_} is unknown; known types: #{TYPES}")
  end
  @type_ = type_
  @error = error
  @shard_block_id = shard_block_id
  @message_id = message_id
  @message = message
end

Public Instance Methods

to_h() click to toggle source
# File lib/ton_sdk_client/processing.rb, line 93
def to_h
  h1 = {
    type: @type
  }

  h2 = case @type_
  when :will_fetch_first_block
    { }
  when :fetch_first_block_failed
    { 
      error: @error
    }
  when :will_send, :did_send, :will_fetch_next_block
    {
      shard_block_id: @shard_block_id,
      message_id: @message_id,
      message: @message
    }
  when :send_failed, :fetch_next_block_failed
    {
      shard_block_id: @shard_block_id,
      message_id: @message_id,
      message: @message,
      error: @error
    }
  when :message_expired
    {
      message_id: @message_id,
      message: @message,
      error: @error
    }
  else
    raise ArgumentError.new("unsupported type: #{@type_}")
  end

  h1.merge(h2)
end