class Docproof::PaymentProcessor::Coinbase

Attributes

amount[R]
recipient[R]

Public Class Methods

configuration() click to toggle source
# File lib/docproof/payment_processor/coinbase.rb, line 17
def self.configuration
  @configuration ||= Configuration.new
end
configuration=(config) click to toggle source
# File lib/docproof/payment_processor/coinbase.rb, line 21
def self.configuration=(config)
  @configuration = config
end
configure() { |configuration| ... } click to toggle source
# File lib/docproof/payment_processor/coinbase.rb, line 26
def self.configure
  yield configuration
end
new(recipient:, amount:) click to toggle source
# File lib/docproof/payment_processor/coinbase.rb, line 30
def initialize(recipient:, amount:)
  if !Coinbase.configuration.api_key || !Coinbase.configuration.api_secret
    raise MissingCredentials, 'Coinbase API key and secret in not set'
  end

  @recipient = recipient
  @amount    = amount
end

Public Instance Methods

perform!() click to toggle source
# File lib/docproof/payment_processor/coinbase.rb, line 39
def perform!
  coinbase_wallet_primary_account.send(
    to:       recipient,
    amount:   amount,
    currency: 'BTC'
  )
end

Private Instance Methods

coinbase_wallet_primary_account() click to toggle source
# File lib/docproof/payment_processor/coinbase.rb, line 49
def coinbase_wallet_primary_account
  require 'coinbase/wallet'

  @coinbase_wallet_primary_account ||= ::Coinbase::Wallet::Client.new(
    api_key:    Coinbase.configuration.api_key,
    api_secret: Coinbase.configuration.api_secret
  ).primary_account
rescue LoadError
  raise MissingDependency,
    'Coinbase is required, You can install it with: `gem install coinbase`'
end