Class: X402::FacilitatorClient

Inherits:
Object
  • Object
show all
Defined in:
lib/x402/facilitator_client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(facilitator_url = nil) ⇒ FacilitatorClient

Returns a new instance of FacilitatorClient.



10
11
12
# File 'lib/x402/facilitator_client.rb', line 10

def initialize(facilitator_url = nil)
  @facilitator_url = facilitator_url || X402.configuration.facilitator
end

Instance Attribute Details

#facilitator_urlObject (readonly)

Returns the value of attribute facilitator_url.



8
9
10
# File 'lib/x402/facilitator_client.rb', line 8

def facilitator_url
  @facilitator_url
end

Instance Method Details

#discovery_resources(params = {}) ⇒ Object

Lists the facilitator's Bazaar discovery catalog (PayAI, CDP, and any other facilitator implementing the x402 discovery spec expose this). Params pass through as query string, e.g. type: "http", limit: 50.



37
38
39
40
41
# File 'lib/x402/facilitator_client.rb', line 37

def discovery_resources(params = {})
  get_json("discovery/resources", action: "discovery", params: params)
rescue Faraday::Error => e
  raise FacilitatorError, "Failed to fetch discovery resources: #{e.message}"
end

#settle(payment_payload, payment_requirements) ⇒ Object



21
22
23
24
25
26
# File 'lib/x402/facilitator_client.rb', line 21

def settle(payment_payload, payment_requirements)
  response = post_payment("settle", payment_payload, payment_requirements)
  SettlementResponse.new(handle_response(response, "settle"))
rescue Faraday::Error => e
  raise FacilitatorError, "Failed to settle payment: #{e.message}"
end

#supported_networksObject



28
29
30
31
32
# File 'lib/x402/facilitator_client.rb', line 28

def supported_networks
  get_json("supported", action: "supported")
rescue Faraday::Error => e
  raise FacilitatorError, "Failed to fetch supported networks: #{e.message}"
end

#verify(payment_payload, payment_requirements) ⇒ Object



14
15
16
17
18
19
# File 'lib/x402/facilitator_client.rb', line 14

def verify(payment_payload, payment_requirements)
  response = post_payment("verify", payment_payload, payment_requirements)
  handle_response(response, "verify")
rescue Faraday::Error => e
  raise FacilitatorError, "Failed to verify payment: #{e.message}"
end