pinetwork 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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