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 +5 -5
- data/.travis.yml +3 -3
- data/README.md +2 -1
- data/lib/mobius/client/app.rb +51 -22
- data/lib/mobius/client/blockchain/account.rb +2 -1
- data/lib/mobius/client/version.rb +1 -1
- data/lib/mobius/client.rb +1 -4
- data/mobius-client.gemspec +1 -1
- metadata +17 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bb3a779d514fea2f8482f7843d4c2e78ce01902a
|
4
|
+
data.tar.gz: bf92f3da028fc789bb158f81318239d66ee84add
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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/
|
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
|
|
data/lib/mobius/client/app.rb
CHANGED
@@ -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
|
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
|
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
|
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.
|
data/lib/mobius/client.rb
CHANGED
data/mobius-client.gemspec
CHANGED
@@ -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.
|
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
|
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.
|
409
|
+
rubygems_version: 2.6.13
|
410
410
|
signing_key:
|
411
411
|
specification_version: 4
|
412
412
|
summary: Mobius Ruby Client
|