mobius-client 0.3.0 → 0.4.0

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
- SHA256:
3
- metadata.gz: f26fccdb1893d53cbb280832a4fe527a98f17c9d62bb4350cc07629caea51251
4
- data.tar.gz: c2b3d55a4c15c334617d3571d1e1ad0ac1a8436685f5e965dcf1854d55d59f64
2
+ SHA1:
3
+ metadata.gz: bb3a779d514fea2f8482f7843d4c2e78ce01902a
4
+ data.tar.gz: bf92f3da028fc789bb158f81318239d66ee84add
5
5
  SHA512:
6
- metadata.gz: 62078725168f732c21c720471ab26780dce72fd19869d0177715ff69caa49aee7e29eb815b0f44e91777c48d15a0473dd6976f5b38ee335af4aa0cc346e0d664
7
- data.tar.gz: fadbdb441858930947ccf18895505fd5c5c44525acb99fe365f2212bbaeced1cf15e26426215a7ad3520e1caf792963704c25d5c16930141afd0ce031c72e548
6
+ metadata.gz: 7f6a32e7302f77b8530e6b8f79ef84091cf69ff1902721f928bbb1392227fef2a18d9563250fb178062359e0788f97d082de26d670aa7edf485c0d476afa9794
7
+ data.tar.gz: b6af2c669c2a6311fe6a5ddadf55a78a9eb98d33938dd720cbdbb5d0f715b1de4320fd02a5bc7a9496e98e9921b9a7e13acadcee72fc82cba8e410540a633ed8
data/.travis.yml CHANGED
@@ -9,14 +9,14 @@ rvm:
9
9
  - 2.5
10
10
  cache: bundler
11
11
  before_install:
12
- - gem update --system && gem install bundler
13
- before_script:
12
+ - gem update --system && gem install --no-document bundler
14
13
  - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
15
14
  - chmod +x ./cc-test-reporter
15
+ before_script:
16
16
  - ./cc-test-reporter before-build
17
17
  after_script:
18
18
  - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
19
19
  script:
20
20
  - bundle exec rake
21
- - bundle exec bundle-audit update && bundle exec bundle-audit check
21
+ - bundle exec bundle-audit check --update --ignore CVE-2016-10545
22
22
  - bundle exec rubocop
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/mobius-client.svg)](https://badge.fury.io/rb/mobius-client)
2
2
  [![Build Status](https://travis-ci.org/mobius-network/mobius-client-ruby.svg?branch=master)](https://travis-ci.org/mobius-network/mobius-client-ruby)
3
- [![Maintainability](https://api.codeclimate.com/v1/badges/a99a88d28ad37a79dbf6/maintainability)](https://codeclimate.com/github/codeclimate/codeclimate/maintainability)
3
+ [![Maintainability](https://api.codeclimate.com/v1/badges/f6810e8244fc0dceb5bd/maintainability)](https://codeclimate.com/github/mobius-network/mobius-client-ruby/maintainability)
4
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/f6810e8244fc0dceb5bd/test_coverage)](https://codeclimate.com/github/mobius-network/mobius-client-ruby/test_coverage)
4
5
 
5
6
  # Mobius DApp Store Ruby SDK
6
7
 
@@ -1,4 +1,5 @@
1
1
  # Interface to user balance in application.
2
+ # rubocop:disable Metrics/ClassLength
2
3
  class Mobius::Client::App
3
4
  extend Dry::Initializer
4
5
 
@@ -15,9 +16,18 @@ class Mobius::Client::App
15
16
  user_account.authorized?(app_keypair)
16
17
  end
17
18
 
19
+ # @deprecated use {#user_balance} instead
20
+ def balance
21
+ warn <<~MSG
22
+ [DEPRECATED] method Mobius::Client::App#balance is deprecated and will be removed,
23
+ use Mobius::Client::App#user_balance instead"
24
+ MSG
25
+ user_balance
26
+ end
27
+
18
28
  # Returns user balance.
19
29
  # @return [Float] User balance.
20
- def balance
30
+ def user_balance
21
31
  validate!
22
32
  user_account.balance
23
33
  end
@@ -33,7 +43,10 @@ class Mobius::Client::App
33
43
  # @param target_address [String] Optional: third party receiver address.
34
44
  # @deprecated use {#charge} instead
35
45
  def pay(amount, target_address: nil)
36
- warn "[DEPRECATED] method Mobius::Client::App#pay is deprecated and will be removed, use Mobius::Client::App#charge instead"
46
+ warn <<~MSG
47
+ [DEPRECATED] method Mobius::Client::App#pay is deprecated and will be removed,
48
+ use Mobius::Client::App#charge instead"
49
+ MSG
37
50
  charge(amount, target_address)
38
51
  end
39
52
 
@@ -77,6 +90,30 @@ class Mobius::Client::App
77
90
  handle(err)
78
91
  end
79
92
 
93
+ # Returns application keypair
94
+ # @return [Stellar::KeyPair] Application KeyPair
95
+ def app_keypair
96
+ @app_keypair ||= Mobius::Client.to_keypair(seed)
97
+ end
98
+
99
+ # Returns user keypair
100
+ # @return [Stellar::KeyPair] User KeyPair
101
+ def user_keypair
102
+ @user_keypair ||= Mobius::Client.to_keypair(address)
103
+ end
104
+
105
+ # Returns application account
106
+ # @return [Mobius::Client::Blockchain::Account] Application Account
107
+ def app_account
108
+ @app_account ||= Mobius::Client::Blockchain::Account.new(app_keypair)
109
+ end
110
+
111
+ # Returns user account
112
+ # @return [Mobius::Client::Blockchain::Account] User Account
113
+ def user_account
114
+ @user_account ||= Mobius::Client::Blockchain::Account.new(user_keypair)
115
+ end
116
+
80
117
  private
81
118
 
82
119
  def submit_tx
@@ -84,17 +121,24 @@ class Mobius::Client::App
84
121
 
85
122
  tx = Stellar::Transaction.for_account(
86
123
  account: user_keypair,
87
- sequence: user_account.next_sequence_value,
124
+ sequence: user_account.next_sequence_value
88
125
  )
89
126
 
90
127
  yield(tx.operations)
128
+ calc_fee(tx)
129
+ txe = base64(tx)
91
130
 
92
- tx.fee = FEE * tx.operations.size
93
-
94
- txe = tx.to_envelope(app_keypair).to_xdr(:base64)
95
131
  post_txe(txe).tap { [app_account, user_account].each(&:reload!) }
96
132
  end
97
133
 
134
+ def calc_fee(txn)
135
+ txn.fee = FEE * txn.operations.size
136
+ end
137
+
138
+ def base64(txn)
139
+ txn.to_envelope(app_keypair).to_xdr(:base64)
140
+ end
141
+
98
142
  def post_txe(txe)
99
143
  Mobius::Client.horizon_client.horizon.transactions._post(tx: txe)
100
144
  end
@@ -112,22 +156,6 @@ class Mobius::Client::App
112
156
  raise Mobius::Client::Error::TrustlineMissing unless user_account.trustline_exists?
113
157
  end
114
158
 
115
- def app_keypair
116
- @app_keypair ||= Mobius::Client.to_keypair(seed)
117
- end
118
-
119
- def user_keypair
120
- @user_keypair ||= Mobius::Client.to_keypair(address)
121
- end
122
-
123
- def app_account
124
- @app_account ||= Mobius::Client::Blockchain::Account.new(app_keypair)
125
- end
126
-
127
- def user_account
128
- @user_account ||= Mobius::Client::Blockchain::Account.new(user_keypair)
129
- end
130
-
131
159
  def handle(err)
132
160
  ops = err.response.dig(:body, "extras", "result_codes", "operations")
133
161
  raise Mobius::Client::Error::AccountMissing if ops.include?("op_no_destination")
@@ -143,3 +171,4 @@ class Mobius::Client::App
143
171
 
144
172
  FEE = 100
145
173
  end
174
+ # rubocop:enable Metrics/ClassLength
@@ -20,7 +20,8 @@ class Mobius::Client::Blockchain::Account
20
20
  # @return [Float] Balance value.
21
21
  def balance(asset = Mobius::Client.stellar_asset)
22
22
  balance = find_balance(asset)
23
- balance && balance.dig("balance").to_d
23
+ balance = balance&.dig("balance")
24
+ return balance.to_d if balance
24
25
  end
25
26
 
26
27
  # Returns true if given keypair is added as cosigner to current account.
@@ -1,5 +1,5 @@
1
1
  module Mobius
2
2
  module Client
3
- VERSION = "0.3.0".freeze
3
+ VERSION = "0.4.0".freeze
4
4
  end
5
5
  end
data/lib/mobius/client.rb CHANGED
@@ -9,10 +9,7 @@ require "jwt"
9
9
 
10
10
  require "mobius/client/version"
11
11
 
12
- begin
13
- require "pry-byebug"
14
- rescue LoadError
15
- end
12
+ require "pry-byebug" rescue LoadError
16
13
 
17
14
  module Mobius
18
15
  module Cli
@@ -28,11 +28,11 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency "bundler", "~> 1.16"
29
29
  spec.add_development_dependency "bundler-audit", "~> 0.6.0"
30
30
  spec.add_development_dependency "httplog", "~> 1.0", ">= 1.0.2"
31
+ spec.add_development_dependency "pry-byebug"
31
32
  spec.add_development_dependency "rake", "~> 12.0"
32
33
  spec.add_development_dependency "rspec", "~> 3.0"
33
34
  spec.add_development_dependency "rubocop", "~> 0.53"
34
35
  spec.add_development_dependency "rubocop-rspec", "~> 1.23"
35
- spec.add_development_dependency "pry-byebug"
36
36
  spec.add_development_dependency "simplecov", ">= 0.16.1"
37
37
  spec.add_development_dependency "simplecov-console", ">= 0.4.2"
38
38
  spec.add_development_dependency "timecop", "~> 0.9", ">= 0.9.1"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobius-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Viktor Sokolov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-15 00:00:00.000000000 Z
11
+ date: 2018-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -58,6 +58,20 @@ dependencies:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: 1.0.2
61
+ - !ruby/object:Gem::Dependency
62
+ name: pry-byebug
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
61
75
  - !ruby/object:Gem::Dependency
62
76
  name: rake
63
77
  requirement: !ruby/object:Gem::Requirement
@@ -114,20 +128,6 @@ dependencies:
114
128
  - - "~>"
115
129
  - !ruby/object:Gem::Version
116
130
  version: '1.23'
117
- - !ruby/object:Gem::Dependency
118
- name: pry-byebug
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: '0'
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: simplecov
133
133
  requirement: !ruby/object:Gem::Requirement
@@ -406,7 +406,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
406
406
  version: '0'
407
407
  requirements: []
408
408
  rubyforge_project:
409
- rubygems_version: 2.7.6
409
+ rubygems_version: 2.6.13
410
410
  signing_key:
411
411
  specification_version: 4
412
412
  summary: Mobius Ruby Client