Module: Solana::Ruby::Kit::Rpc::Api::GetSignatureStatuses

Extended by:
T::Sig
Included in:
Client
Defined in:
lib/solana/ruby/kit/rpc/api/get_signature_statuses.rb

Overview

Returns the confirmation status of one or more transaction signatures. Mirrors TypeScript’s ‘GetSignatureStatusesApi.getSignatureStatuses(sigs, config?)`.

Returns a RpcContextualValue with:

.slot  

Instance Method Summary collapse

Instance Method Details

#get_signature_statuses(signatures, search_transaction_history: false) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/solana/ruby/kit/rpc/api/get_signature_statuses.rb', line 33

def get_signature_statuses(signatures, search_transaction_history: false)
  config = { 'searchTransactionHistory' => search_transaction_history }
  result = transport.request('getSignatureStatuses', [signatures, config])

  statuses = result['value'].map do |raw|
    next nil if raw.nil?

    SignatureStatus.new(
      slot:                Kernel.Integer(raw['slot']),
      confirmations:       raw['confirmations'] ? Kernel.Integer(raw['confirmations']) : nil,
      err:                 raw['err'],
      confirmation_status: raw['confirmationStatus']&.to_sym
    )
  end

  RpcTypes::RpcContextualValue.new(
    slot:  Kernel.Integer(result['context']['slot']),
    value: statuses
  )
end