class StellarSpectrum::SendPayment

Public Class Methods

actions() click to toggle source
# File lib/stellar_spectrum/services/send_payment.rb, line 34
def self.actions
  [
    IncrementTries,
    InitStellarClient,
    InitRedis,
    GetChannelAccounts,
    reduce_if(->(c) {c[:force_transaction_source].nil?}, [
      GetLockedAccounts,
      GetAvailableChannels,
      reduce_if(->(c) {c.available_channels.empty?}, SendingPayment::Retry),
      PickChannel,
    ]),
    reduce_if(->(c) {c[:force_transaction_source].present?}, [
      execute(->(c) {c[:channel_account] = c[:force_transaction_source]}),
    ]),
    GetSequenceNumber,
    LockChannel,
    reduce_if(->(c) {!c.successfully_locked}, SendingPayment::Retry),
    SendingPayment::SendAsset,
    SendingPayment::AttemptReleaseLock,
  ]
end
call( from:, to:, amount:, memo: nil, tries: 0, seeds:, redis_url:, horizon_url:, force_transaction_source: nil, force_sequence_number: nil, force_lock: false ) click to toggle source
# File lib/stellar_spectrum/services/send_payment.rb, line 6
def self.call(
  from:,
  to:,
  amount:,
  memo: nil,
  tries: 0,
  seeds:,
  redis_url:,
  horizon_url:,
  force_transaction_source: nil,
  force_sequence_number: nil,
  force_lock: false
)
  with(
    from: from,
    to: to,
    amount: amount,
    memo: memo,
    tries: tries,
    seeds: seeds,
    redis_url: redis_url,
    horizon_url: horizon_url,
    force_transaction_source: force_transaction_source,
    force_sequence_number: force_sequence_number,
    force_lock: force_lock,
  ).reduce(actions)
end