pinetwork 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 19ca8427c38f5d1a3cfef85fe1a3e026fb0b0f354b056c106d3d980e5182229e
4
- data.tar.gz: a76c9c5b067472f207d10d0d9bd52b92149b0d2192af5b13198bef6bf469e23e
3
+ metadata.gz: 1e55714fc1d6fbd13ff97e4d78e32d918a7926bc29e2e10cba93c8c9797ff9d5
4
+ data.tar.gz: f5dc2d60e6f0b835d677504e6ea70d0b78e21e48f3ad09a692287e5feacd7d71
5
5
  SHA512:
6
- metadata.gz: 3de9acdecb5e03c5256be0a6a65d4341f3037fb64eb73262577a5dea5c61beae7a42ba7dc02596985683144242da6e7273b1ba6f37cf02019a09a294a2a8fae2
7
- data.tar.gz: 9828e6a0cd9fe3a8de440bef58589ac275a51119c94f2adf67874282134db21042f0081a6e1ab23519445be11ea257635bf9a91494fe44448c3fb10b93b2a1ea
6
+ metadata.gz: 68b9a5f54bab85dd97c1e358a8d7ae428e7c04b5029ebdcfe66bfb1057fc53c59126236528aaada6c8017a25050fc3bd251287eb4d132f8ebf8ece6cad467506
7
+ data.tar.gz: 469f3afd74061b371b27118172bc3f10955fd24e89f68c00fe26e2677e9ca3b09a69949e70babfd9d10679784c62619b44420cb50b40dc13fdf26cf1298abc05
data/lib/errors.rb ADDED
@@ -0,0 +1,32 @@
1
+ class ::PiNetwork
2
+ module Errors
3
+ class APIRequestError < StandardError
4
+ attr_reader :response_body
5
+ attr_reader :response_status
6
+ def initialize(message, response_status, response_body)
7
+ super(message)
8
+ @response_status = response_status
9
+ @response_body = response_body
10
+ end
11
+ end
12
+
13
+ class PaymentNotFoundError < StandardError
14
+ attr_reader :payment_id
15
+ def initialize(message, payment_id)
16
+ super(message)
17
+ @payment_id = payment_id
18
+ end
19
+ end
20
+
21
+ class TxidAlreadyLinkedError < StandardError
22
+ attr_reader :payment_id
23
+ attr_reader :txid
24
+
25
+ def initialize(message, payment_id, txid)
26
+ super(message)
27
+ @payment_id = payment_id
28
+ @txid = txid
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,4 @@
1
- gem_dir = Gem::Specification.find_by_name("pi_network").gem_dir
2
- require "#{gem_dir}/lib/errors"
1
+ require_relative 'errors'
3
2
 
4
3
  class PiNetwork
5
4
  require 'faraday'
@@ -17,6 +16,8 @@ class PiNetwork
17
16
  @api_key = api_key
18
17
  @account = load_account(wallet_private_key)
19
18
  @base_url = options[:base_url] || "https://api.minepi.com"
19
+ @mainnet_host = options[:mainnet_host] || "api.mainnet.minepi.com"
20
+ @testnet_host = options[:testnet_host] || "api.testnet.minepi.com"
20
21
 
21
22
  @open_payments = {}
22
23
  end
@@ -61,7 +62,7 @@ class PiNetwork
61
62
 
62
63
  if payment.nil? || payment["identifier"] != payment_id
63
64
  payment = get_payment(payment_id)
64
- txid = payment["transaction"]["txid"]
65
+ txid = payment["transaction"]&.dig("txid")
65
66
  raise Errors::TxidAlreadyLinkedError.new("This payment already has a linked txid", payment_id, txid) if txid.present?
66
67
  end
67
68
 
@@ -82,27 +83,27 @@ class PiNetwork
82
83
  return txid
83
84
  end
84
85
 
85
- def complete_payment(identifier, txid)
86
+ def complete_payment(payment_id, txid)
86
87
  body = {"txid": txid}
87
88
 
88
89
  response = Faraday.post(
89
- base_url + "/v2/payments/#{identifier}/complete",
90
+ base_url + "/v2/payments/#{payment_id}/complete",
90
91
  body.to_json,
91
92
  http_headers
92
93
  )
93
94
 
94
- @open_payments.delete(identifier)
95
+ @open_payments.delete(payment_id)
95
96
  handle_http_response(response, "An unknown error occurred while completing the payment")
96
97
  end
97
98
 
98
- def cancel_payment(identifier)
99
+ def cancel_payment(payment_id)
99
100
  response = Faraday.post(
100
- base_url + "/v2/payments/#{identifier}/cancel",
101
+ base_url + "/v2/payments/#{payment_id}/cancel",
101
102
  {}.to_json,
102
103
  http_headers,
103
104
  )
104
105
 
105
- @open_payments.delete(identifier)
106
+ @open_payments.delete(payment_id)
106
107
  handle_http_response(response, "An unknown error occurred while cancelling the payment")
107
108
  end
108
109
 
@@ -130,7 +131,7 @@ class PiNetwork
130
131
 
131
132
  def handle_http_response(response, unknown_error_message = "An unknown error occurred while making an API request")
132
133
  unless response.status == 200
133
- error_message = JSON.parse(response.body).dig("error_message") rescue unknown_err_message
134
+ error_message = JSON.parse(response.body).dig("error_message") rescue unknown_error_message
134
135
  raise Errors::APIRequestError.new(error_message, response.status, response.body)
135
136
  end
136
137
 
@@ -144,8 +145,9 @@ class PiNetwork
144
145
  end
145
146
 
146
147
  def set_horizon_client(network)
147
- host = network == "Pi Network" ? "api.mainnet.minepi.com" : "api.testnet.minepi.com"
148
- horizon = network == "Pi Network" ? "https://api.mainnet.minepi.com" : "https://api.testnet.minepi.com"
148
+ host = (network.starts_with? "Pi Network") ? @mainnet_host : @testnet_host
149
+ horizon = "https://#{host}"
150
+
149
151
  client = Stellar::Client.new(host: host, horizon: horizon)
150
152
  Stellar::default_network = network
151
153
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pinetwork
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pi Core Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-25 00:00:00.000000000 Z
11
+ date: 2023-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: stellar-sdk
@@ -44,7 +44,8 @@ executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
46
46
  files:
47
- - lib/pi_network.rb
47
+ - lib/errors.rb
48
+ - lib/pinetwork.rb
48
49
  homepage: https://github.com/pi-apps/pi-ruby
49
50
  licenses:
50
51
  - PiOS