stellar_spectrum 1.1.4 → 1.2.0
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +5 -5
- data/lib/stellar_spectrum.rb +2 -0
- data/lib/stellar_spectrum/client.rb +1 -9
- data/lib/stellar_spectrum/services/get_current_sequence_number.rb +13 -0
- data/lib/stellar_spectrum/services/get_sequence_number.rb +4 -2
- data/lib/stellar_spectrum/services/log.rb +21 -0
- data/lib/stellar_spectrum/services/sending_payment/send_asset.rb +16 -22
- data/lib/stellar_spectrum/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9bde5c4526ef6395789a0f36643e1b172f2ee39b27d92783ae33c90f361ccccf
|
4
|
+
data.tar.gz: 4fabffb86d4194e6c278c91aabbd57027561101f025e91c0760d01f59ed95c23
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e59d089d618d4957a4b1c1f853b329f484ccf50289b59c811af883720996fdab88a6d2856318971b5fcaecc1678d164d5e33ef349199cb2be677565ac7f59fa6
|
7
|
+
data.tar.gz: 4546b8bd18f5f460d761d687d93a95e8423d5105b2dff88775b0e1bf534b7d353eb16526daefa40ae166522520219225c7bc3db7658e8422872f11dbaecb8054
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## [1.2.0] - 2019-01-18
|
8
|
+
### Added
|
9
|
+
- Retry calls to Stellar horizon API regardless of the type of error code it receives.
|
10
|
+
- Log, if logger is set, when exceptions occur and payment is retried.
|
11
|
+
|
7
12
|
## [1.1.4] - 2018-12-13
|
8
13
|
### Fixed
|
9
14
|
- Remove accidentally added puts :/
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
stellar_spectrum (1.
|
4
|
+
stellar_spectrum (1.2.0)
|
5
5
|
activesupport
|
6
6
|
gem_config
|
7
7
|
light-service
|
@@ -24,7 +24,7 @@ GEM
|
|
24
24
|
byebug (10.0.2)
|
25
25
|
citrus (3.0.2)
|
26
26
|
coderay (1.1.2)
|
27
|
-
concurrent-ruby (1.1.
|
27
|
+
concurrent-ruby (1.1.4)
|
28
28
|
contracts (0.16.0)
|
29
29
|
crack (0.4.3)
|
30
30
|
safe_yaml (~> 1.0.0)
|
@@ -40,7 +40,7 @@ GEM
|
|
40
40
|
faraday_middleware (~> 0.9)
|
41
41
|
faraday_middleware (0.12.2)
|
42
42
|
faraday (>= 0.7.4, < 1.0)
|
43
|
-
ffi (1.
|
43
|
+
ffi (1.10.0)
|
44
44
|
gem_config (0.3.1)
|
45
45
|
hashdiff (0.3.7)
|
46
46
|
hyperclient (0.9.0)
|
@@ -50,7 +50,7 @@ GEM
|
|
50
50
|
faraday_middleware
|
51
51
|
net-http-digest_auth
|
52
52
|
uri_template
|
53
|
-
i18n (1.2
|
53
|
+
i18n (1.5.2)
|
54
54
|
concurrent-ruby (~> 1.0)
|
55
55
|
light-service (0.11.0)
|
56
56
|
activesupport (>= 3.0)
|
@@ -68,7 +68,7 @@ GEM
|
|
68
68
|
rake (10.5.0)
|
69
69
|
rbnacl (6.0.0)
|
70
70
|
ffi
|
71
|
-
redis (4.0
|
71
|
+
redis (4.1.0)
|
72
72
|
rspec (3.8.0)
|
73
73
|
rspec-core (~> 3.8.0)
|
74
74
|
rspec-expectations (~> 3.8.0)
|
data/lib/stellar_spectrum.rb
CHANGED
@@ -13,10 +13,12 @@ require "stellar_spectrum/services/get_channel_accounts"
|
|
13
13
|
require "stellar_spectrum/services/get_key_for_address"
|
14
14
|
require "stellar_spectrum/services/get_locked_accounts"
|
15
15
|
require "stellar_spectrum/services/get_sequence_number"
|
16
|
+
require "stellar_spectrum/services/get_current_sequence_number"
|
16
17
|
require "stellar_spectrum/services/increment_tries"
|
17
18
|
require "stellar_spectrum/services/init_redis"
|
18
19
|
require "stellar_spectrum/services/init_stellar_client"
|
19
20
|
require "stellar_spectrum/services/lock_channel"
|
21
|
+
require "stellar_spectrum/services/log"
|
20
22
|
require "stellar_spectrum/services/pick_channel"
|
21
23
|
require "stellar_spectrum/services/send_payment"
|
22
24
|
require "stellar_spectrum/services/sending_payment/attempt_release_lock"
|
@@ -4,21 +4,17 @@ module StellarSpectrum
|
|
4
4
|
attr_accessor :redis_url
|
5
5
|
attr_accessor :seeds
|
6
6
|
attr_accessor :horizon_url
|
7
|
-
attr_accessor :logger
|
8
7
|
|
9
|
-
LOG_TAG = "[StellarSpectrum]"
|
10
8
|
MAX_LOCK_TIME_IN_SECONDS = 120
|
11
9
|
|
12
10
|
def initialize(
|
13
11
|
redis_url: StellarSpectrum.configuration.redis_url,
|
14
12
|
seeds: StellarSpectrum.configuration.seeds,
|
15
|
-
horizon_url: StellarSpectrum.configuration.horizon_url
|
16
|
-
logger: StellarSpectrum.configuration.logger
|
13
|
+
horizon_url: StellarSpectrum.configuration.horizon_url
|
17
14
|
)
|
18
15
|
self.redis_url = redis_url
|
19
16
|
self.seeds = seeds
|
20
17
|
self.horizon_url = horizon_url
|
21
|
-
self.logger = logger
|
22
18
|
end
|
23
19
|
|
24
20
|
def send_payment(
|
@@ -42,10 +38,6 @@ module StellarSpectrum
|
|
42
38
|
force_lock: false,
|
43
39
|
)
|
44
40
|
|
45
|
-
# if result.failure?
|
46
|
-
# return false
|
47
|
-
# end
|
48
|
-
|
49
41
|
result.send_asset_response
|
50
42
|
end
|
51
43
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module StellarSpectrum
|
2
|
+
class GetCurrentSequenceNumber
|
3
|
+
|
4
|
+
def self.execute(stellar_client:, channel_account:)
|
5
|
+
account_info = stellar_client.account_info(channel_account)
|
6
|
+
account_info.sequence.to_i
|
7
|
+
rescue Faraday::ClientError => e
|
8
|
+
Log.warn("Retrying GetCurrentSequenceNumber - #{e.inspect}")
|
9
|
+
execute(stellar_client: stellar_client, channel_account: channel_account)
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
@@ -6,8 +6,10 @@ module StellarSpectrum
|
|
6
6
|
promises :current_sequence_number, :next_sequence_number
|
7
7
|
|
8
8
|
executed do |c|
|
9
|
-
|
10
|
-
|
9
|
+
c.current_sequence_number = GetCurrentSequenceNumber.execute(
|
10
|
+
stellar_client: c.stellar_client,
|
11
|
+
channel_account: c.channel_account
|
12
|
+
)
|
11
13
|
|
12
14
|
c.next_sequence_number = c[:force_sequence_number] ||
|
13
15
|
c.current_sequence_number + 1
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module StellarSpectrum
|
2
|
+
class Log
|
3
|
+
|
4
|
+
TAG = "[StellarSpectrum]".freeze
|
5
|
+
LEVELS = [:debug, :warn, :info, :error, :fatal].freeze
|
6
|
+
|
7
|
+
class << self
|
8
|
+
LEVELS.each do |level|
|
9
|
+
|
10
|
+
define_method level do |message|
|
11
|
+
logger = StellarSpectrum.configuration.logger
|
12
|
+
if logger
|
13
|
+
logger.send(level, "#{TAG}: #{message}")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -3,7 +3,6 @@ module StellarSpectrum
|
|
3
3
|
class SendAsset
|
4
4
|
|
5
5
|
extend LightService::Action
|
6
|
-
TIMEOUT_CODE = 504.freeze
|
7
6
|
|
8
7
|
expects *%i[
|
9
8
|
from
|
@@ -31,27 +30,22 @@ module StellarSpectrum
|
|
31
30
|
sequence: c.next_sequence_number,
|
32
31
|
)
|
33
32
|
rescue Faraday::ClientError => e
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
)
|
51
|
-
c.send_asset_response = retry_result[:send_asset_response]
|
52
|
-
else
|
53
|
-
fail
|
54
|
-
end
|
33
|
+
Log.warn("Retrying SendingPayment::SendAsset - #{e.inspect}")
|
34
|
+
retry_result = Retry.execute(
|
35
|
+
stellar_client: c.stellar_client,
|
36
|
+
from: c.from,
|
37
|
+
to: c.to,
|
38
|
+
amount: c.amount,
|
39
|
+
memo: c.memo,
|
40
|
+
tries: c.tries,
|
41
|
+
seeds: c.seeds,
|
42
|
+
horizon_url: c.horizon_url,
|
43
|
+
redis_url: c.redis_url,
|
44
|
+
force_transaction_source: c.channel_account,
|
45
|
+
force_sequence_number: c.next_sequence_number,
|
46
|
+
force_lock: true,
|
47
|
+
)
|
48
|
+
c.send_asset_response = retry_result[:send_asset_response]
|
55
49
|
end
|
56
50
|
|
57
51
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stellar_spectrum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ramon Tayag
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-01-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -178,6 +178,7 @@ files:
|
|
178
178
|
- lib/stellar_spectrum/services/get_available_channels.rb
|
179
179
|
- lib/stellar_spectrum/services/get_channel_account_info.rb
|
180
180
|
- lib/stellar_spectrum/services/get_channel_accounts.rb
|
181
|
+
- lib/stellar_spectrum/services/get_current_sequence_number.rb
|
181
182
|
- lib/stellar_spectrum/services/get_key_for_address.rb
|
182
183
|
- lib/stellar_spectrum/services/get_locked_accounts.rb
|
183
184
|
- lib/stellar_spectrum/services/get_sequence_number.rb
|
@@ -185,6 +186,7 @@ files:
|
|
185
186
|
- lib/stellar_spectrum/services/init_redis.rb
|
186
187
|
- lib/stellar_spectrum/services/init_stellar_client.rb
|
187
188
|
- lib/stellar_spectrum/services/lock_channel.rb
|
189
|
+
- lib/stellar_spectrum/services/log.rb
|
188
190
|
- lib/stellar_spectrum/services/pick_channel.rb
|
189
191
|
- lib/stellar_spectrum/services/send_payment.rb
|
190
192
|
- lib/stellar_spectrum/services/sending_payment/attempt_release_lock.rb
|