Module: Solana::Ruby::Kit::Rpc::Api::GetSignaturesForAddress

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

Overview

Returns confirmed transaction signatures that reference the given address. Mirrors TypeScript’s GetSignaturesForAddressApi.getSignaturesForAddress. See solana.com/docs/rpc/http/getsignaturesforaddress

Instance Method Summary collapse

Instance Method Details

#get_signatures_for_address(address, before: nil, until_sig: nil, limit: nil, commitment: nil, min_context_slot: nil) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/solana/ruby/kit/rpc/api/get_signatures_for_address.rb', line 39

def get_signatures_for_address(
  address,
  before:           nil,
  until_sig:        nil,
  limit:            nil,
  commitment:       nil,
  min_context_slot: nil
)
  config = {}
  config['before']           = before if before
  config['until']            = until_sig if until_sig
  config['limit']            = limit if limit
  config['commitment']       = commitment.to_s if commitment
  config['minContextSlot']   = min_context_slot if min_context_slot

  params = config.empty? ? [address] : [address, config]
  result = transport.request('getSignaturesForAddress', params)

  result.map do |tx|
    SignatureInfo.new(
      block_time:          tx['blockTime'],
      confirmation_status: tx['confirmationStatus']&.to_sym,
      err:                 tx['err'],
      memo:                tx['memo'],
      signature:           tx['signature'],
      slot:                Kernel.Integer(tx['slot']),
      transaction_index:   tx['transactionIndex']
    )
  end
end