stellar-sdk 0.8.0 → 0.9.0.pre2
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/{LICENSE.txt → LICENSE} +0 -0
- data/README.md +4 -5
- data/lib/stellar-sdk.rb +2 -3
- data/lib/stellar/account.rb +16 -18
- data/lib/stellar/amount.rb +9 -13
- data/lib/stellar/client.rb +153 -113
- data/lib/stellar/horizon/problem.rb +14 -16
- data/lib/stellar/sep10.rb +56 -93
- data/lib/stellar/transaction_page.rb +4 -6
- data/lib/stellar/version.rb +1 -1
- metadata +13 -217
- data/.github/CODEOWNERS +0 -2
- data/.gitignore +0 -17
- data/.travis.yml +0 -20
- data/.yardopts +0 -7
- data/CONTRIBUTING.md +0 -48
- data/Gemfile +0 -14
- data/Guardfile +0 -5
- data/Rakefile +0 -3
- data/examples/01_get_funded.rb +0 -37
- data/examples/02_payment.rb +0 -15
- data/examples/03_transaction_history.rb +0 -21
- data/examples/04_setting_trust.rb +0 -1
- data/examples/05_fiat_payment.rb +0 -13
- data/examples/06_fund_testnet_friendbot.rb +0 -15
- data/examples/07_sep10.rb +0 -125
- data/ruby-stellar-sdk.gemspec +0 -35
- data/spec/config.yml.sample +0 -12
- data/spec/fixtures/vcr_cassettes/Stellar_Account/_lookup/should_handle_404_request_when_performing_federation_lookup.yml +0 -133
- data/spec/fixtures/vcr_cassettes/Stellar_Account/_lookup/should_handle_domains_that_are_not_federation_servers.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Stellar_Account/_lookup/should_peforms_federation_lookup.yml +0 -85
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_account_info/returns_the_current_details_for_the_account.yml +0 -190
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_account_merge/merges_source_account_into_destination.yml +0 -714
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_change_trust/given_an_asset_described_as_an_array/creates_updates_or_deletes_a_trustline.yml +0 -1156
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_create_account/creates_the_account.yml +0 -323
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_friendbot/requests_for_XLM_from_a_friendbot.yml +0 -246
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_load_account/loads_successfully.yml +0 -226
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/alphanum12_asset/sends_a_alphanum12_asset_to_the_destination.yml +0 -747
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/alphanum4_asset/sends_a_alphanum4_asset_to_the_destination.yml +0 -747
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/memo/accepts_the_memo_attribute.yml +0 -725
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/native_asset/sends_a_native_payment_to_the_account.yml +0 -562
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/using_a_payment_channel/sends_a_payment_account_through_a_channel_account.yml +0 -757
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/using_a_payment_channel/sends_a_payment_when_the_channel_is_the_same_as_from_.yml +0 -642
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_transactions/account_transactions/accepts_a_cursor_to_return_less_data.yml +0 -94
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_transactions/account_transactions/returns_a_list_of_transaction_for_an_account.yml +0 -94
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_transactions/all_transactions/accepts_a_cursor_to_return_less_data.yml +0 -94
- data/spec/fixtures/vcr_cassettes/Stellar_Client/_transactions/all_transactions/returns_a_list_of_transactions.yml +0 -94
- data/spec/lib/stellar/account_spec.rb +0 -59
- data/spec/lib/stellar/amount_spec.rb +0 -70
- data/spec/lib/stellar/client_spec.rb +0 -430
- data/spec/lib/stellar/sep10_spec.rb +0 -1148
- data/spec/spec_helper.rb +0 -14
- data/spec/support/config.rb +0 -3
- data/spec/support/vcr.rb +0 -10
- data/tasks/rspec.rake +0 -6
- data/tasks/travis.rake +0 -1
@@ -1,46 +1,44 @@
|
|
1
1
|
module Stellar
|
2
2
|
module Horizon
|
3
|
-
class Problem
|
4
|
-
include Contracts
|
5
|
-
|
3
|
+
class Problem
|
6
4
|
def initialize(attributes)
|
7
5
|
@attributes = attributes.reverse_merge({
|
8
6
|
type: "about:blank",
|
9
7
|
title: "Unknown Error",
|
10
|
-
status: 500
|
8
|
+
status: 500
|
11
9
|
})
|
12
10
|
|
13
11
|
@meta = @attributes.except!(:type, :title, :status, :detail, :instance)
|
14
12
|
end
|
15
13
|
|
16
|
-
|
14
|
+
# @return [String]
|
17
15
|
def type
|
18
|
-
@attributes[:type]
|
16
|
+
@attributes[:type]
|
19
17
|
end
|
20
18
|
|
21
|
-
|
19
|
+
# @return [String]
|
22
20
|
def title
|
23
|
-
@attributes[:title]
|
21
|
+
@attributes[:title]
|
24
22
|
end
|
25
23
|
|
26
|
-
|
24
|
+
# @return [Integer]
|
27
25
|
def status
|
28
|
-
@attributes[:status]
|
26
|
+
@attributes[:status]
|
29
27
|
end
|
30
28
|
|
31
|
-
|
29
|
+
# @return [String]
|
32
30
|
def detail
|
33
|
-
@attributes[:detail]
|
31
|
+
@attributes[:detail]
|
34
32
|
end
|
35
33
|
|
36
|
-
|
34
|
+
# @return [String]
|
37
35
|
def instance
|
38
|
-
@attributes[:instance]
|
36
|
+
@attributes[:instance]
|
39
37
|
end
|
40
38
|
|
41
|
-
|
39
|
+
# @return [{String => Object}]
|
42
40
|
def meta
|
43
|
-
@attributes[:instance]
|
41
|
+
@attributes[:instance]
|
44
42
|
end
|
45
43
|
end
|
46
44
|
end
|
data/lib/stellar/sep10.rb
CHANGED
@@ -2,19 +2,9 @@ module Stellar
|
|
2
2
|
class InvalidSep10ChallengeError < StandardError; end
|
3
3
|
|
4
4
|
class SEP10
|
5
|
-
include Contracts
|
6
|
-
C = Contracts
|
7
|
-
|
8
|
-
Contract(C::KeywordArgs[
|
9
|
-
server: Stellar::KeyPair,
|
10
|
-
client: Stellar::KeyPair,
|
11
|
-
anchor_name: String,
|
12
|
-
timeout: C::Optional[Integer]
|
13
|
-
] => String)
|
14
|
-
#
|
15
5
|
# Helper method to create a valid {SEP0010}[https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md]
|
16
6
|
# challenge transaction which you can use for Stellar Web Authentication.
|
17
|
-
#
|
7
|
+
#
|
18
8
|
# @param server [Stellar::KeyPair] Keypair for server's signing account.
|
19
9
|
# @param client [Stellar::KeyPair] Keypair for the account whishing to authenticate with the server.
|
20
10
|
# @param anchor_name [String] Anchor's name to be used in the manage_data key.
|
@@ -23,38 +13,37 @@ module Stellar
|
|
23
13
|
# @return [String] A base64 encoded string of the raw TransactionEnvelope xdr struct for the transaction.
|
24
14
|
#
|
25
15
|
# = Example
|
26
|
-
#
|
27
|
-
# Stellar::SEP10.build_challenge_tx(server: server, client: user, anchor_name: anchor, timeout: timeout)
|
28
|
-
#
|
16
|
+
#
|
17
|
+
# Stellar::SEP10.build_challenge_tx(server: server, client: user, anchor_name: anchor, timeout: timeout)
|
18
|
+
#
|
29
19
|
# @see {SEP0010: Stellar Web Authentication}[https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0010.md]
|
30
20
|
def self.build_challenge_tx(server:, client:, anchor_name:, timeout: 300)
|
31
21
|
# The value must be 64 bytes long. It contains a 48 byte
|
32
22
|
# cryptographic-quality random string encoded using base64 (for a total of
|
33
23
|
# 64 bytes after encoding).
|
34
24
|
value = SecureRandom.base64(48)
|
35
|
-
|
36
|
-
tx = Stellar::Transaction.manage_data({
|
37
|
-
account: server,
|
38
|
-
sequence: 0,
|
39
|
-
name: "#{anchor_name} auth",
|
40
|
-
value: value,
|
41
|
-
source_account: client
|
42
|
-
})
|
43
25
|
|
44
26
|
now = Time.now.to_i
|
45
|
-
|
46
|
-
min_time: now,
|
27
|
+
time_bounds = Stellar::TimeBounds.new(
|
28
|
+
min_time: now,
|
47
29
|
max_time: now + timeout
|
48
30
|
)
|
49
31
|
|
32
|
+
tx = Stellar::TransactionBuilder.new(
|
33
|
+
source_account: server,
|
34
|
+
sequence_number: 0,
|
35
|
+
time_bounds: time_bounds
|
36
|
+
).add_operation(
|
37
|
+
Stellar::Operation.manage_data(
|
38
|
+
name: "#{anchor_name} auth",
|
39
|
+
value: value,
|
40
|
+
source_account: client
|
41
|
+
)
|
42
|
+
).build
|
43
|
+
|
50
44
|
tx.to_envelope(server).to_xdr(:base64)
|
51
45
|
end
|
52
46
|
|
53
|
-
|
54
|
-
Contract(C::KeywordArgs[
|
55
|
-
challenge_xdr: String,
|
56
|
-
server: Stellar::KeyPair
|
57
|
-
] => [Stellar::TransactionEnvelope, String])
|
58
47
|
# Reads a SEP 10 challenge transaction and returns the decoded transaction envelope and client account ID contained within.
|
59
48
|
#
|
60
49
|
# It also verifies that transaction is signed by the server.
|
@@ -71,13 +60,13 @@ module Stellar
|
|
71
60
|
# @return [Stellar::TransactionEnvelope, String]
|
72
61
|
#
|
73
62
|
# = Example
|
74
|
-
#
|
63
|
+
#
|
75
64
|
# sep10 = Stellar::SEP10
|
76
|
-
# challenge = sep10.build_challenge_tx(server: server, client: user, anchor_name: anchor, timeout: timeout)
|
65
|
+
# challenge = sep10.build_challenge_tx(server: server, client: user, anchor_name: anchor, timeout: timeout)
|
77
66
|
# envelope, client_address = sep10.read_challenge_tx(challenge: challenge, server: server)
|
78
67
|
#
|
79
68
|
def self.read_challenge_tx(challenge_xdr:, server:)
|
80
|
-
envelope = Stellar::TransactionEnvelope.from_xdr(challenge_xdr, "base64")
|
69
|
+
envelope = Stellar::TransactionEnvelope.from_xdr(challenge_xdr, "base64")
|
81
70
|
transaction = envelope.tx
|
82
71
|
|
83
72
|
if transaction.seq_num != 0
|
@@ -86,7 +75,7 @@ module Stellar
|
|
86
75
|
)
|
87
76
|
end
|
88
77
|
|
89
|
-
if transaction.source_account != server.
|
78
|
+
if transaction.source_account != server.raw_public_key
|
90
79
|
raise InvalidSep10ChallengeError.new(
|
91
80
|
"The transaction source account is not equal to the server's account"
|
92
81
|
)
|
@@ -113,13 +102,13 @@ module Stellar
|
|
113
102
|
)
|
114
103
|
end
|
115
104
|
|
116
|
-
if operation.body.value.data_value.
|
105
|
+
if operation.body.value.data_value.unpack1("m").size != 48
|
117
106
|
raise InvalidSep10ChallengeError.new(
|
118
107
|
"The transaction's operation value should be a 64 bytes base64 random string"
|
119
108
|
)
|
120
109
|
end
|
121
110
|
|
122
|
-
|
111
|
+
unless verify_tx_signed_by(tx_envelope: envelope, keypair: server)
|
123
112
|
raise InvalidSep10ChallengeError.new(
|
124
113
|
"The transaction is not signed by the server"
|
125
114
|
)
|
@@ -129,26 +118,20 @@ module Stellar
|
|
129
118
|
now = Time.now.to_i
|
130
119
|
|
131
120
|
if time_bounds.nil? || !now.between?(time_bounds.min_time, time_bounds.max_time)
|
132
|
-
raise InvalidSep10ChallengeError.new("The transaction has expired")
|
121
|
+
raise InvalidSep10ChallengeError.new("The transaction has expired")
|
133
122
|
end
|
134
123
|
|
135
124
|
# Mirror the return type of the other SDK's and return a string
|
136
125
|
client_kp = Stellar::KeyPair.from_public_key(client_account_id.ed25519!)
|
137
126
|
|
138
|
-
|
127
|
+
[envelope, client_kp.address]
|
139
128
|
end
|
140
129
|
|
141
|
-
|
142
|
-
Contract(C::KeywordArgs[
|
143
|
-
challenge_xdr: String,
|
144
|
-
server: Stellar::KeyPair,
|
145
|
-
signers: SetOf[String]
|
146
|
-
] => C::SetOf[String])
|
147
130
|
# Verifies that for a SEP 10 challenge transaction all signatures on the transaction are accounted for.
|
148
131
|
#
|
149
|
-
# A transaction is verified if it is signed by the server account, and all other signatures match a signer
|
150
|
-
# that has been provided as an argument. Additional signers can be provided that do not have a signature,
|
151
|
-
# but all signatures must be matched to a signer for verification to succeed.
|
132
|
+
# A transaction is verified if it is signed by the server account, and all other signatures match a signer
|
133
|
+
# that has been provided as an argument. Additional signers can be provided that do not have a signature,
|
134
|
+
# but all signatures must be matched to a signer for verification to succeed.
|
152
135
|
#
|
153
136
|
# If verification succeeds a list of signers that were found is returned, excluding the server account ID.
|
154
137
|
#
|
@@ -160,7 +143,7 @@ module Stellar
|
|
160
143
|
#
|
161
144
|
# Raises a InvalidSep10ChallengeError if:
|
162
145
|
# - The transaction is invalid according to Stellar::SEP10.read_challenge_tx.
|
163
|
-
# - One or more signatures in the transaction are not identifiable as the server account or one of the
|
146
|
+
# - One or more signatures in the transaction are not identifiable as the server account or one of the
|
164
147
|
# signers provided in the arguments.
|
165
148
|
def self.verify_challenge_tx_signers(
|
166
149
|
challenge_xdr:,
|
@@ -192,7 +175,7 @@ module Stellar
|
|
192
175
|
end
|
193
176
|
|
194
177
|
if client_signers.empty?
|
195
|
-
raise InvalidSep10ChallengeError.new("At least one signer with a G... address must be provied")
|
178
|
+
raise InvalidSep10ChallengeError.new("At least one signer with a G... address must be provied")
|
196
179
|
end
|
197
180
|
|
198
181
|
# verify all signatures in one pass
|
@@ -202,7 +185,7 @@ module Stellar
|
|
202
185
|
)
|
203
186
|
|
204
187
|
# ensure server signed transaction and remove it
|
205
|
-
|
188
|
+
unless signers_found.delete?(server.address)
|
206
189
|
raise InvalidSep10ChallengeError.new("Transaction not signed by server: #{server.address}")
|
207
190
|
end
|
208
191
|
|
@@ -216,20 +199,13 @@ module Stellar
|
|
216
199
|
raise InvalidSep10ChallengeError.new("Transaction has unrecognized signatures.")
|
217
200
|
end
|
218
201
|
|
219
|
-
|
220
|
-
|
202
|
+
signers_found
|
221
203
|
end
|
222
204
|
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
signers: SetOf[::Hash],
|
228
|
-
] => C::SetOf[::Hash])
|
229
|
-
# Verifies that for a SEP 10 challenge transaction all signatures on the transaction
|
230
|
-
# are accounted for and that the signatures meet a threshold on an account. A
|
231
|
-
# transaction is verified if it is signed by the server account, and all other
|
232
|
-
# signatures match a signer that has been provided as an argument, and those
|
205
|
+
# Verifies that for a SEP 10 challenge transaction all signatures on the transaction
|
206
|
+
# are accounted for and that the signatures meet a threshold on an account. A
|
207
|
+
# transaction is verified if it is signed by the server account, and all other
|
208
|
+
# signatures match a signer that has been provided as an argument, and those
|
233
209
|
# signatures meet a threshold on the account.
|
234
210
|
#
|
235
211
|
# @param challenge_xdr [String] SEP0010 transaction challenge transaction in base64.
|
@@ -241,7 +217,7 @@ module Stellar
|
|
241
217
|
#
|
242
218
|
# Raises a InvalidSep10ChallengeError if:
|
243
219
|
# - The transaction is invalid according to Stellar::SEP10.read_challenge_transaction.
|
244
|
-
# - One or more signatures in the transaction are not identifiable as the server
|
220
|
+
# - One or more signatures in the transaction are not identifiable as the server
|
245
221
|
# account or one of the signers provided in the arguments.
|
246
222
|
# - The signatures are all valid but do not meet the threshold.
|
247
223
|
def self.verify_challenge_tx_threshold(
|
@@ -250,22 +226,22 @@ module Stellar
|
|
250
226
|
threshold:,
|
251
227
|
signers:
|
252
228
|
)
|
253
|
-
signer_str_set = signers.map { |s| s[
|
229
|
+
signer_str_set = signers.map { |s| s["key"] }.to_set
|
254
230
|
signer_strs_found = verify_challenge_tx_signers(
|
255
|
-
challenge_xdr: challenge_xdr,
|
256
|
-
server: server,
|
231
|
+
challenge_xdr: challenge_xdr,
|
232
|
+
server: server,
|
257
233
|
signers: signer_str_set
|
258
234
|
)
|
259
|
-
|
235
|
+
|
260
236
|
weight = 0
|
261
237
|
signers_found = Set.new
|
262
238
|
signers.each do |s|
|
263
|
-
|
239
|
+
unless signer_strs_found.include?(s["key"])
|
264
240
|
next
|
265
241
|
end
|
266
|
-
signer_strs_found.delete(s[
|
242
|
+
signer_strs_found.delete(s["key"])
|
267
243
|
signers_found.add(s)
|
268
|
-
weight += s[
|
244
|
+
weight += s["weight"]
|
269
245
|
end
|
270
246
|
|
271
247
|
if weight < threshold
|
@@ -273,18 +249,14 @@ module Stellar
|
|
273
249
|
"signers with weight #{weight} do not meet threshold #{threshold}."
|
274
250
|
)
|
275
251
|
end
|
276
|
-
|
277
|
-
|
252
|
+
|
253
|
+
signers_found
|
278
254
|
end
|
279
255
|
|
280
|
-
Contract(C::KeywordArgs[
|
281
|
-
challenge_xdr: String,
|
282
|
-
server: Stellar::KeyPair
|
283
|
-
] => nil)
|
284
256
|
# DEPRECATED: Use verify_challenge_tx_signers instead.
|
285
257
|
# This function does not support multiple client signatures.
|
286
258
|
#
|
287
|
-
# Verifies if a transaction is a valid per SEP-10 challenge transaction, if the validation
|
259
|
+
# Verifies if a transaction is a valid per SEP-10 challenge transaction, if the validation
|
288
260
|
# fails, an exception will be thrown.
|
289
261
|
#
|
290
262
|
# This function performs the following checks:
|
@@ -303,20 +275,16 @@ module Stellar
|
|
303
275
|
challenge_xdr: String, server: Stellar::KeyPair
|
304
276
|
)
|
305
277
|
transaction_envelope, client_address = read_challenge_tx(
|
306
|
-
|
278
|
+
challenge_xdr: challenge_xdr, server: server
|
307
279
|
)
|
308
280
|
client_keypair = Stellar::KeyPair.from_address(client_address)
|
309
|
-
|
281
|
+
unless verify_tx_signed_by(tx_envelope: transaction_envelope, keypair: client_keypair)
|
310
282
|
raise InvalidSep10ChallengeError.new(
|
311
|
-
|
283
|
+
"Transaction not signed by client: %s" % [client_keypair.address]
|
312
284
|
)
|
313
285
|
end
|
314
286
|
end
|
315
287
|
|
316
|
-
Contract(C::KeywordArgs[
|
317
|
-
tx_envelope: Stellar::TransactionEnvelope,
|
318
|
-
signers: SetOf[String]
|
319
|
-
] => SetOf[String])
|
320
288
|
# Verifies every signer passed matches a signature on the transaction exactly once,
|
321
289
|
# returning a list of unique signers that were found to have signed the transaction.
|
322
290
|
#
|
@@ -352,33 +320,28 @@ module Stellar
|
|
352
320
|
end
|
353
321
|
end
|
354
322
|
|
355
|
-
|
323
|
+
signers_found
|
356
324
|
end
|
357
325
|
|
358
|
-
Contract(C::KeywordArgs[
|
359
|
-
tx_envelope: Stellar::TransactionEnvelope,
|
360
|
-
keypair: Stellar::KeyPair
|
361
|
-
] => C::Bool)
|
362
326
|
# Verifies if a Stellar::TransactionEnvelope was signed by the given Stellar::KeyPair
|
363
327
|
#
|
364
|
-
# @param tx_envelope [Stellar::TransactionEnvelope]
|
328
|
+
# @param tx_envelope [Stellar::TransactionEnvelope]
|
365
329
|
# @param keypair [Stellar::KeyPair]
|
366
330
|
#
|
367
331
|
# @return [Boolean]
|
368
332
|
#
|
369
333
|
# = Example
|
370
|
-
#
|
334
|
+
#
|
371
335
|
# Stellar::SEP10.verify_tx_signed_by(tx_envelope: envelope, keypair: keypair)
|
372
336
|
#
|
373
337
|
def self.verify_tx_signed_by(tx_envelope:, keypair:)
|
374
338
|
tx_hash = tx_envelope.tx.hash
|
375
|
-
tx_envelope.signatures.any? do |sig|
|
339
|
+
tx_envelope.signatures.any? do |sig|
|
376
340
|
if sig.hint != keypair.signature_hint
|
377
341
|
next
|
378
342
|
end
|
379
343
|
keypair.verify(sig.signature, tx_hash)
|
380
344
|
end
|
381
345
|
end
|
382
|
-
|
383
346
|
end
|
384
|
-
end
|
347
|
+
end
|
@@ -1,9 +1,8 @@
|
|
1
1
|
module Stellar
|
2
2
|
class TransactionPage
|
3
|
-
include Contracts
|
4
3
|
include Enumerable
|
5
4
|
|
6
|
-
|
5
|
+
# @param [Hyperclient::Link] resource
|
7
6
|
def initialize(resource)
|
8
7
|
@resource = resource
|
9
8
|
end
|
@@ -11,10 +10,10 @@ module Stellar
|
|
11
10
|
def each
|
12
11
|
@resource.records.each do |tx|
|
13
12
|
yield tx if block_given?
|
14
|
-
end
|
13
|
+
end
|
15
14
|
end
|
16
15
|
|
17
|
-
|
16
|
+
# @return [Stellar::TransactionPage]
|
18
17
|
def next_page
|
19
18
|
self.class.new(@resource.next)
|
20
19
|
end
|
@@ -22,6 +21,5 @@ module Stellar
|
|
22
21
|
def next_page!
|
23
22
|
@resource = @resource.next
|
24
23
|
end
|
25
|
-
|
26
24
|
end
|
27
|
-
end
|
25
|
+
end
|
data/lib/stellar/version.rb
CHANGED
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stellar-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0.pre2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Fleckenstein
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: stellar-base
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.23.0.pre1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.23.0.pre1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: hyperclient
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,34 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0.
|
48
|
-
- - ">="
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: 0.44.4
|
47
|
+
version: '0.71'
|
51
48
|
type: :runtime
|
52
49
|
prerelease: false
|
53
50
|
version_requirements: !ruby/object:Gem::Requirement
|
54
51
|
requirements:
|
55
52
|
- - "~>"
|
56
53
|
- !ruby/object:Gem::Version
|
57
|
-
version: '0.
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: 0.44.4
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: contracts
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - "~>"
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '0.16'
|
68
|
-
type: :runtime
|
69
|
-
prerelease: false
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - "~>"
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '0.16'
|
54
|
+
version: '0.71'
|
75
55
|
- !ruby/object:Gem::Dependency
|
76
56
|
name: activesupport
|
77
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,118 +86,6 @@ dependencies:
|
|
106
86
|
- - ">="
|
107
87
|
- !ruby/object:Gem::Version
|
108
88
|
version: 1.1.1
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
|
-
name: bundler
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
112
|
-
requirements:
|
113
|
-
- - "~>"
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
version: '2.0'
|
116
|
-
type: :development
|
117
|
-
prerelease: false
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
119
|
-
requirements:
|
120
|
-
- - "~>"
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: '2.0'
|
123
|
-
- !ruby/object:Gem::Dependency
|
124
|
-
name: rake
|
125
|
-
requirement: !ruby/object:Gem::Requirement
|
126
|
-
requirements:
|
127
|
-
- - "~>"
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
version: '10.0'
|
130
|
-
type: :development
|
131
|
-
prerelease: false
|
132
|
-
version_requirements: !ruby/object:Gem::Requirement
|
133
|
-
requirements:
|
134
|
-
- - "~>"
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
version: '10.0'
|
137
|
-
- !ruby/object:Gem::Dependency
|
138
|
-
name: rspec
|
139
|
-
requirement: !ruby/object:Gem::Requirement
|
140
|
-
requirements:
|
141
|
-
- - "~>"
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
version: '3.1'
|
144
|
-
type: :development
|
145
|
-
prerelease: false
|
146
|
-
version_requirements: !ruby/object:Gem::Requirement
|
147
|
-
requirements:
|
148
|
-
- - "~>"
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
version: '3.1'
|
151
|
-
- !ruby/object:Gem::Dependency
|
152
|
-
name: guard-rspec
|
153
|
-
requirement: !ruby/object:Gem::Requirement
|
154
|
-
requirements:
|
155
|
-
- - "~>"
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '4.7'
|
158
|
-
type: :development
|
159
|
-
prerelease: false
|
160
|
-
version_requirements: !ruby/object:Gem::Requirement
|
161
|
-
requirements:
|
162
|
-
- - "~>"
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
version: '4.7'
|
165
|
-
- !ruby/object:Gem::Dependency
|
166
|
-
name: simplecov
|
167
|
-
requirement: !ruby/object:Gem::Requirement
|
168
|
-
requirements:
|
169
|
-
- - "~>"
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
version: '0.18'
|
172
|
-
type: :development
|
173
|
-
prerelease: false
|
174
|
-
version_requirements: !ruby/object:Gem::Requirement
|
175
|
-
requirements:
|
176
|
-
- - "~>"
|
177
|
-
- !ruby/object:Gem::Version
|
178
|
-
version: '0.18'
|
179
|
-
- !ruby/object:Gem::Dependency
|
180
|
-
name: yard
|
181
|
-
requirement: !ruby/object:Gem::Requirement
|
182
|
-
requirements:
|
183
|
-
- - "~>"
|
184
|
-
- !ruby/object:Gem::Version
|
185
|
-
version: '0.9'
|
186
|
-
type: :development
|
187
|
-
prerelease: false
|
188
|
-
version_requirements: !ruby/object:Gem::Requirement
|
189
|
-
requirements:
|
190
|
-
- - "~>"
|
191
|
-
- !ruby/object:Gem::Version
|
192
|
-
version: '0.9'
|
193
|
-
- !ruby/object:Gem::Dependency
|
194
|
-
name: vcr
|
195
|
-
requirement: !ruby/object:Gem::Requirement
|
196
|
-
requirements:
|
197
|
-
- - "~>"
|
198
|
-
- !ruby/object:Gem::Version
|
199
|
-
version: '3.0'
|
200
|
-
type: :development
|
201
|
-
prerelease: false
|
202
|
-
version_requirements: !ruby/object:Gem::Requirement
|
203
|
-
requirements:
|
204
|
-
- - "~>"
|
205
|
-
- !ruby/object:Gem::Version
|
206
|
-
version: '3.0'
|
207
|
-
- !ruby/object:Gem::Dependency
|
208
|
-
name: webmock
|
209
|
-
requirement: !ruby/object:Gem::Requirement
|
210
|
-
requirements:
|
211
|
-
- - "~>"
|
212
|
-
- !ruby/object:Gem::Version
|
213
|
-
version: '2.3'
|
214
|
-
type: :development
|
215
|
-
prerelease: false
|
216
|
-
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
requirements:
|
218
|
-
- - "~>"
|
219
|
-
- !ruby/object:Gem::Version
|
220
|
-
version: '2.3'
|
221
89
|
description:
|
222
90
|
email:
|
223
91
|
- scott@stellar.org
|
@@ -225,24 +93,9 @@ executables: []
|
|
225
93
|
extensions: []
|
226
94
|
extra_rdoc_files: []
|
227
95
|
files:
|
228
|
-
- ".github/CODEOWNERS"
|
229
|
-
- ".gitignore"
|
230
|
-
- ".travis.yml"
|
231
|
-
- ".yardopts"
|
232
96
|
- CHANGELOG.md
|
233
|
-
-
|
234
|
-
- Gemfile
|
235
|
-
- Guardfile
|
236
|
-
- LICENSE.txt
|
97
|
+
- LICENSE
|
237
98
|
- README.md
|
238
|
-
- Rakefile
|
239
|
-
- examples/01_get_funded.rb
|
240
|
-
- examples/02_payment.rb
|
241
|
-
- examples/03_transaction_history.rb
|
242
|
-
- examples/04_setting_trust.rb
|
243
|
-
- examples/05_fiat_payment.rb
|
244
|
-
- examples/06_fund_testnet_friendbot.rb
|
245
|
-
- examples/07_sep10.rb
|
246
99
|
- lib/stellar-sdk.rb
|
247
100
|
- lib/stellar/account.rb
|
248
101
|
- lib/stellar/amount.rb
|
@@ -251,36 +104,6 @@ files:
|
|
251
104
|
- lib/stellar/sep10.rb
|
252
105
|
- lib/stellar/transaction_page.rb
|
253
106
|
- lib/stellar/version.rb
|
254
|
-
- ruby-stellar-sdk.gemspec
|
255
|
-
- spec/config.yml.sample
|
256
|
-
- spec/fixtures/vcr_cassettes/Stellar_Account/_lookup/should_handle_404_request_when_performing_federation_lookup.yml
|
257
|
-
- spec/fixtures/vcr_cassettes/Stellar_Account/_lookup/should_handle_domains_that_are_not_federation_servers.yml
|
258
|
-
- spec/fixtures/vcr_cassettes/Stellar_Account/_lookup/should_peforms_federation_lookup.yml
|
259
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_account_info/returns_the_current_details_for_the_account.yml
|
260
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_account_merge/merges_source_account_into_destination.yml
|
261
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_change_trust/given_an_asset_described_as_an_array/creates_updates_or_deletes_a_trustline.yml
|
262
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_create_account/creates_the_account.yml
|
263
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_friendbot/requests_for_XLM_from_a_friendbot.yml
|
264
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_load_account/loads_successfully.yml
|
265
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/alphanum12_asset/sends_a_alphanum12_asset_to_the_destination.yml
|
266
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/alphanum4_asset/sends_a_alphanum4_asset_to_the_destination.yml
|
267
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/memo/accepts_the_memo_attribute.yml
|
268
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/native_asset/sends_a_native_payment_to_the_account.yml
|
269
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/using_a_payment_channel/sends_a_payment_account_through_a_channel_account.yml
|
270
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/using_a_payment_channel/sends_a_payment_when_the_channel_is_the_same_as_from_.yml
|
271
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_transactions/account_transactions/accepts_a_cursor_to_return_less_data.yml
|
272
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_transactions/account_transactions/returns_a_list_of_transaction_for_an_account.yml
|
273
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_transactions/all_transactions/accepts_a_cursor_to_return_less_data.yml
|
274
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_transactions/all_transactions/returns_a_list_of_transactions.yml
|
275
|
-
- spec/lib/stellar/account_spec.rb
|
276
|
-
- spec/lib/stellar/amount_spec.rb
|
277
|
-
- spec/lib/stellar/client_spec.rb
|
278
|
-
- spec/lib/stellar/sep10_spec.rb
|
279
|
-
- spec/spec_helper.rb
|
280
|
-
- spec/support/config.rb
|
281
|
-
- spec/support/vcr.rb
|
282
|
-
- tasks/rspec.rake
|
283
|
-
- tasks/travis.rake
|
284
107
|
homepage: http://github.com/stellar/ruby-stellar-sdk
|
285
108
|
licenses:
|
286
109
|
- Apache-2.0
|
@@ -296,39 +119,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
296
119
|
version: '0'
|
297
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
298
121
|
requirements:
|
299
|
-
- - "
|
122
|
+
- - ">"
|
300
123
|
- !ruby/object:Gem::Version
|
301
|
-
version:
|
124
|
+
version: 1.3.1
|
302
125
|
requirements: []
|
303
|
-
rubygems_version: 3.
|
126
|
+
rubygems_version: 3.1.3
|
304
127
|
signing_key:
|
305
128
|
specification_version: 4
|
306
129
|
summary: Stellar client library
|
307
|
-
test_files:
|
308
|
-
- spec/config.yml.sample
|
309
|
-
- spec/fixtures/vcr_cassettes/Stellar_Account/_lookup/should_handle_404_request_when_performing_federation_lookup.yml
|
310
|
-
- spec/fixtures/vcr_cassettes/Stellar_Account/_lookup/should_handle_domains_that_are_not_federation_servers.yml
|
311
|
-
- spec/fixtures/vcr_cassettes/Stellar_Account/_lookup/should_peforms_federation_lookup.yml
|
312
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_account_info/returns_the_current_details_for_the_account.yml
|
313
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_account_merge/merges_source_account_into_destination.yml
|
314
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_change_trust/given_an_asset_described_as_an_array/creates_updates_or_deletes_a_trustline.yml
|
315
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_create_account/creates_the_account.yml
|
316
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_friendbot/requests_for_XLM_from_a_friendbot.yml
|
317
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_load_account/loads_successfully.yml
|
318
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/alphanum12_asset/sends_a_alphanum12_asset_to_the_destination.yml
|
319
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/alphanum4_asset/sends_a_alphanum4_asset_to_the_destination.yml
|
320
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/memo/accepts_the_memo_attribute.yml
|
321
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/native_asset/sends_a_native_payment_to_the_account.yml
|
322
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/using_a_payment_channel/sends_a_payment_account_through_a_channel_account.yml
|
323
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_send_payment/using_a_payment_channel/sends_a_payment_when_the_channel_is_the_same_as_from_.yml
|
324
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_transactions/account_transactions/accepts_a_cursor_to_return_less_data.yml
|
325
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_transactions/account_transactions/returns_a_list_of_transaction_for_an_account.yml
|
326
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_transactions/all_transactions/accepts_a_cursor_to_return_less_data.yml
|
327
|
-
- spec/fixtures/vcr_cassettes/Stellar_Client/_transactions/all_transactions/returns_a_list_of_transactions.yml
|
328
|
-
- spec/lib/stellar/account_spec.rb
|
329
|
-
- spec/lib/stellar/amount_spec.rb
|
330
|
-
- spec/lib/stellar/client_spec.rb
|
331
|
-
- spec/lib/stellar/sep10_spec.rb
|
332
|
-
- spec/spec_helper.rb
|
333
|
-
- spec/support/config.rb
|
334
|
-
- spec/support/vcr.rb
|
130
|
+
test_files: []
|