Exception: Solace::Errors::ConfirmationTimeout

Inherits:
Error
  • Object
show all
Defined in:
lib/solace/errors/confirmation_timeout.rb

Overview

Raised when a transaction confirmation times out.

This error is raised when waiting for a transaction to be confirmed by the network exceeds the specified timeout period. This can happen when the network is congested, the transaction fee is too low, or the transaction was not successfully processed by the validators.

Examples:

Handling confirmation timeout

begin
  connection.wait_for_confirmed_signature(signature, timeout: 30)
rescue Solace::Errors::ConfirmationTimeout => e
  puts "Transaction confirmation timed out: #{e.message}"
end

Since:

  • 0.0.1

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, signature:, commitment:, timeout:) ⇒ ConfirmationTimeout

Returns a new instance of ConfirmationTimeout.

Parameters:

  • message (String)

    The error message

  • signature (String)

    The signature of the transaction

  • commitment (String)

    The commitment level not reached

  • timeout (Integer)

    The time out reached

Since:

  • 0.0.1



27
28
29
30
31
32
# File 'lib/solace/errors/confirmation_timeout.rb', line 27

def initialize(message, signature:, commitment:, timeout:)
  super(message)
  @signature = signature
  @commitment = commitment
  @timeout = timeout
end

Instance Attribute Details

#commitmentObject (readonly)

Since:

  • 0.0.1



21
22
23
# File 'lib/solace/errors/confirmation_timeout.rb', line 21

def commitment
  @commitment
end

#signatureObject (readonly)

Since:

  • 0.0.1



21
22
23
# File 'lib/solace/errors/confirmation_timeout.rb', line 21

def signature
  @signature
end

#timeoutObject (readonly)

Since:

  • 0.0.1



21
22
23
# File 'lib/solace/errors/confirmation_timeout.rb', line 21

def timeout
  @timeout
end

Class Method Details

.format(signature, commitment, timeout) ⇒ Solace::Errors::ConfirmationTimeout

Formats a confirmation timeout error

Parameters:

  • signature (String)

    The signature of the transaction

  • commitment (String)

    The commitment level not reached

  • timeout (Integer)

    The time out reached

Returns:

Since:

  • 0.0.1



40
41
42
43
44
45
46
47
# File 'lib/solace/errors/confirmation_timeout.rb', line 40

def self.format(signature, commitment, timeout)
  new(
    "Timed out waiting for signature #{signature} at commitment=#{commitment} after #{timeout}s",
    signature: signature,
    commitment: commitment,
    timeout: timeout
  )
end