Class: X402::Versions::V2

Inherits:
Base
  • Object
show all
Defined in:
lib/x402/versions/v2.rb

Instance Method Summary collapse

Instance Method Details

#format_network(internal_network) ⇒ Object



22
23
24
# File 'lib/x402/versions/v2.rb', line 22

def format_network(internal_network)
  X402.to_caip2(internal_network)
end

#format_requirement(requirement) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/x402/versions/v2.rb', line 34

def format_requirement(requirement)
  {
    scheme: requirement[:scheme],
    network: format_network(requirement[:network]),
    amount: requirement[:amount].to_s,
    asset: requirement[:asset],
    payTo: requirement[:pay_to],
    maxTimeoutSeconds: requirement[:max_timeout_seconds],
    extra: requirement[:extra]
  }.compact
end

#format_requirement_response(accepts:, resource:, error:) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/x402/versions/v2.rb', line 46

def format_requirement_response(accepts:, resource:, error:)
  {
    x402Version: 2,
    error: error,
    resource: {
      url: resource[:url],
      description: resource[:description],
      mimeType: resource[:mime_type]
    }.compact,
    accepts: accepts,
    extensions: {}
  }
end

#parse_network(network) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/x402/versions/v2.rb', line 26

def parse_network(network)
  if network.include?(":")
    X402.from_caip2(network)
  else
    network
  end
end

#payment_header_nameObject



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

def payment_header_name
  "PAYMENT-SIGNATURE"
end

#requirement_header_nameObject



18
19
20
# File 'lib/x402/versions/v2.rb', line 18

def requirement_header_name
  "PAYMENT-REQUIRED"
end

#response_header_nameObject



14
15
16
# File 'lib/x402/versions/v2.rb', line 14

def response_header_name
  "PAYMENT-RESPONSE"
end

#version_numberObject



6
7
8
# File 'lib/x402/versions/v2.rb', line 6

def version_number
  2
end