sequence-sdk 1.1.0 → 1.2.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
2
  SHA1:
3
- metadata.gz: d3f404ef05907abe4fc55a63fb30df360c3f7737
4
- data.tar.gz: f0413842e1753dd1900cc1a21817a545536fcc36
3
+ metadata.gz: 7b66d906a04f01900203dc177533f0553b9a50c8
4
+ data.tar.gz: 71e07a3fd57e6ef1139883bfa2028dc1ffe983af
5
5
  SHA512:
6
- metadata.gz: 709080c4bc1c622863c7c3cd1d657f0301df71c895fcd3bb98ac77d6838efdf281a0c8982ed4cfdb4893ef4e716d5030c6d8462b3146dfa36a39c1e7555ad1e6
7
- data.tar.gz: 268eb83516a6ff005c7e031af68f18a99bae51d92797241d02805c8bbaea0429f28cfa491f0d7d74b1917e9dd180bdf6847fc2de02f67c16c9c21350e7edfc06
6
+ metadata.gz: a8e2b3b1d2203f6dec039726340dcb4eb6e36b4625923ac1f861e8a00b1bcc972979dab084a6266b118e4ad5d6fcec47b12aa9c1339dd3413c52d6ef0b6fadd8
7
+ data.tar.gz: 7ff33dc5a42c4be3e5552071095f458082ccdeaf3c5fda1765301e3c5cbf362b566b5b7a60f62fc57d2f8489bb876ad0935930a95da7983aac86f4b894e75075
data/README.md CHANGED
@@ -14,7 +14,7 @@ for the language's schedule for security and bug fixes.
14
14
  Add the following to your `Gemfile`:
15
15
 
16
16
  ```ruby
17
- gem 'sequence-sdk', '~> 1.1.0'
17
+ gem 'sequence-sdk', '~> 1.2.0'
18
18
  ```
19
19
 
20
20
  ### In your code
@@ -39,17 +39,31 @@ module Sequence
39
39
  # @return [Time]
40
40
  attrib :timestamp, rfc3339_time: true
41
41
 
42
+ # @!attribute [r] flavor_id
43
+ # The ID of the flavor held by the action.
44
+ # @return [String]
45
+ attrib :flavor_id
46
+
47
+ # @!attribute [r] snapshot
48
+ # A copy of the associated tags (flavor, source account, and destination
49
+ # account) as they existed at the time of the transaction.
50
+ # @return [Hash]
51
+ attrib :snapshot
52
+
42
53
  # @!attribute [r] asset_id
54
+ # Deprecated. Use {#flavor_id} instead.
43
55
  # The ID of the asset held by the action.
44
56
  # @return [String]
45
57
  attrib :asset_id
46
58
 
47
59
  # @!attribute [r] asset_alias
60
+ # Deprecated. Use {#flavor_id} instead.
48
61
  # The alias of the asset held by the action.
49
62
  # @return [String]
50
63
  attrib :asset_alias
51
64
 
52
65
  # @!attribute [r] asset_tags
66
+ # Deprecated. Use {#snapshot} instead.
53
67
  # The tags of the asset held by the action.
54
68
  # @return [Hash]
55
69
  attrib :asset_tags
@@ -60,12 +74,13 @@ module Sequence
60
74
  attrib :source_account_id
61
75
 
62
76
  # @!attribute [r] source_account_alias
63
- # Deprecated. Use {#source_account_id} instead
77
+ # Deprecated. Use {#source_account_id} instead.
64
78
  # The alias of the source account executing the action.
65
79
  # @return [String]
66
80
  attrib :source_account_alias
67
81
 
68
82
  # @!attribute [r] source_account_tags
83
+ # Deprecated. Use {#snapshot} instead.
69
84
  # The tags of the source account executing the action.
70
85
  # @return [Hash]
71
86
  attrib :source_account_tags
@@ -76,12 +91,13 @@ module Sequence
76
91
  attrib :destination_account_id
77
92
 
78
93
  # @!attribute [r] destination_account_alias
79
- # Deprecated. Use {#destination_account_id} instead
94
+ # Deprecated. Use {#destination_account_id} instead.
80
95
  # The alias of the destination account affected by the action.
81
96
  # @return [String]
82
97
  attrib :destination_account_alias
83
98
 
84
99
  # @!attribute [r] destination_account_tags
100
+ # Deprecated. Use {#snapshot} instead.
85
101
  # The tags of the destination account affected by the action.
86
102
  # @return [Hash]
87
103
  attrib :destination_account_tags
@@ -7,6 +7,7 @@ require_relative './response_object'
7
7
 
8
8
  module Sequence
9
9
  # A type or class of value that can be tracked on a ledger.
10
+ # @deprecated Use {Flavor} instead.
10
11
  class Asset < ResponseObject
11
12
  # @!attribute [r] id
12
13
  # Unique, auto-generated identifier.
@@ -4,6 +4,7 @@ require_relative './asset'
4
4
  require_relative './balance'
5
5
  require_relative './contract'
6
6
  require_relative './dev_utils'
7
+ require_relative './flavor'
7
8
  require_relative './key'
8
9
  require_relative './stats'
9
10
  require_relative './transaction'
@@ -55,6 +56,11 @@ module Sequence
55
56
  @assets ||= Asset::ClientModule.new(self)
56
57
  end
57
58
 
59
+ # @return [Flavor::ClientModule]
60
+ def flavors
61
+ @flavors ||= Flavor::ClientModule.new(self)
62
+ end
63
+
58
64
  # @return [Action::ClientModule]
59
65
  def actions
60
66
  @actions ||= Action::ClientModule.new(self)
@@ -46,7 +46,7 @@ module Sequence
46
46
  attrib :account_id
47
47
 
48
48
  # @!attribute [r] account_alias
49
- # Deprecated. Use {#account_id} instead
49
+ # Deprecated. Use {#account_id} instead.
50
50
  # The alias of the account controlling the contract.
51
51
  # @return [String]
52
52
  attrib :account_alias
@@ -1,5 +1,4 @@
1
1
  module Sequence
2
-
3
2
  # Base class for all errors raised by the Sequence SDK.
4
3
  class BaseError < StandardError; end
5
4
 
@@ -36,37 +35,53 @@ module Sequence
36
35
  class APIError < BaseError
37
36
  attr_accessor(
38
37
  :chain_message,
39
- :code,
40
38
  :data,
41
39
  :detail,
42
40
  :request_id,
43
41
  :response,
44
42
  :retriable,
43
+ :seq_code,
45
44
  :temporary,
46
45
  )
46
+ # Use {#seq_code} instead.
47
+ # @deprecated
48
+ attr_accessor :code
47
49
 
48
50
  def initialize(body, response)
49
51
  self.code = body['code']
50
52
  self.chain_message = body['message']
51
53
  self.detail = body['detail']
52
54
  self.retriable = body['retriable']
55
+ self.seq_code = body['seq_code']
53
56
  self.temporary = body['retriable']
54
57
 
55
58
  self.response = response
56
59
  self.request_id = response['Chain-Request-ID'] if response
57
60
 
58
- super self.class.format_error_message(code, chain_message, detail, request_id)
61
+ super(
62
+ self.class.format_error_message(
63
+ seq_code,
64
+ chain_message,
65
+ detail,
66
+ request_id,
67
+ )
68
+ )
59
69
  end
60
70
 
61
71
  def retriable?
62
- self.retriable
72
+ retriable
63
73
  end
64
74
 
65
- def self.format_error_message(code, message, detail, request_id)
75
+ # @private
76
+ def self.format_error_message(seq_code, message, detail, request_id)
66
77
  tokens = []
67
- tokens << "Code: #{code}" if code.is_a?(String) && code.size > 0
78
+ if seq_code.is_a?(String) && !seq_code.empty?
79
+ tokens << "Code: #{seq_code}"
80
+ end
68
81
  tokens << "Message: #{message}"
69
- tokens << "Detail: #{detail}" if detail.is_a?(String) && detail.size > 0
82
+ if detail.is_a?(String) && !detail.empty?
83
+ tokens << "Detail: #{detail}"
84
+ end
70
85
  tokens << "Request-ID: #{request_id}"
71
86
  tokens.join(' ')
72
87
  end
@@ -76,5 +91,4 @@ module Sequence
76
91
  # response status code is 401. This is a common error case, so a discrete
77
92
  # exception type is provided for convenience.
78
93
  class UnauthorizedError < APIError; end
79
-
80
94
  end
@@ -0,0 +1,108 @@
1
+ require 'securerandom'
2
+
3
+ require_relative './client_module'
4
+ require_relative './errors'
5
+ require_relative './query'
6
+ require_relative './response_object'
7
+
8
+ module Sequence
9
+ # A type or class of value that can be tracked on a ledger.
10
+ class Flavor < ResponseObject
11
+ # @!attribute [r] id
12
+ # Unique, auto-generated identifier.
13
+ # @return [String]
14
+ attrib :id
15
+
16
+ # @!attribute [r] keys
17
+ # The set of keys used to sign transactions that issue tokens of the
18
+ # flavor.
19
+ # @return [Array<Key>]
20
+ attrib(:keys) { |raw| raw.map { |k| Key.new(k) } }
21
+
22
+ # @!attribute [r] quorum
23
+ # The number of keys required to sign transactions that issue tokens of
24
+ # the flavor.
25
+ # @return [Integer]
26
+ attrib :quorum
27
+
28
+ # @!attribute [r] tags
29
+ # User-specified key-value data describing the flavor.
30
+ # @return [Hash]
31
+ attrib :tags
32
+
33
+ class Key < ResponseObject
34
+ attrib :id
35
+ end
36
+
37
+ class ClientModule < Sequence::ClientModule
38
+ # Creates a new flavor in the ledger.
39
+ # @param [Hash] opts
40
+ # Options hash
41
+ # @option opts [String] id
42
+ # Unique, user-specified identifier.
43
+ # @option opts [Array<Hash>, Array<Sequence::Key>] keys
44
+ # The set of keys used for signing transactions that issue tokens of the
45
+ # flavor. A key can be either a key object, or a hash containing an
46
+ # `id` field.
47
+ # @option opts [Integer] quorum
48
+ # The number of keys required to sign transactions that issue tokens of
49
+ # the flavor. Defaults to the number of keys provided.
50
+ # @option opts [Hash] tags
51
+ # User-specified key-value data describing the flavor.
52
+ # @return [Flavor]
53
+ def create(opts = {})
54
+ validate_inclusion_of!(opts, :id, :keys, :quorum, :tags)
55
+ if opts[:keys].nil? || opts[:keys].empty?
56
+ raise ArgumentError, ':keys must be provided'
57
+ end
58
+ opts = { client_token: SecureRandom.uuid }.merge(opts)
59
+ Flavor.new(client.session.request('create-flavor', opts))
60
+ end
61
+
62
+ # Updates a flavor's tags.
63
+ # @param [Hash] opts
64
+ # Options hash
65
+ # @option opts [String] id
66
+ # The ID of the flavor.
67
+ # @option opts [Hash] tags
68
+ # A new set of tags, which will replace the existing tags.
69
+ # @return [void]
70
+ def update_tags(opts = {})
71
+ validate_inclusion_of!(opts, :id, :tags)
72
+ if (opts[:id].nil? || opts[:id].empty?)
73
+ raise ArgumentError, ':id must be provided'
74
+ end
75
+ client.session.request('update-flavor-tags', opts)
76
+ end
77
+
78
+ # Executes a query, returning an enumerable over individual flavors.
79
+ # @param [Hash] opts
80
+ # Options hash
81
+ # @option opts [String] filter
82
+ # A filter expression.
83
+ # @option opts [Array<String|Integer>] filter_params
84
+ # A list of values that will be interpolated into the filter expression.
85
+ # @return [Query]
86
+ def list(opts = {})
87
+ validate_inclusion_of!(
88
+ opts,
89
+ :filter,
90
+ :filter_params,
91
+ :page_size,
92
+ :after,
93
+ )
94
+ Query.new(client, opts)
95
+ end
96
+ end
97
+
98
+ class Query < Sequence::Query
99
+ def fetch(query)
100
+ client.session.request('list-flavors', query)
101
+ end
102
+
103
+ def translate(raw)
104
+ Flavor.new(raw)
105
+ end
106
+ end
107
+ end
108
+ end
@@ -116,6 +116,12 @@ module Sequence
116
116
  def setup_connection
117
117
  args = [@host.hostname, @host.port]
118
118
 
119
+ # Override host+port for local development.
120
+ env_addr = ENV['SEQADDR']
121
+ if env_addr
122
+ args = (env_addr.split(':') + [nil])[0...2]
123
+ end
124
+
119
125
  # Proxy configuration
120
126
  if @opts.key?(:proxy_addr)
121
127
  args += [@opts[:proxy_addr], @opts[:proxy_port]]
@@ -13,7 +13,6 @@ module Sequence
13
13
  @session_host = @opts[:session_host] || 'https://session-api.seq.com'
14
14
  @ledger = @opts[:ledger_name] || raise(ArgumentError, "missing ledger_name")
15
15
  @macaroon = @opts[:credential] || raise(ArgumentError, "missing credential")
16
- @request_id = @opts[:request_id]
17
16
 
18
17
  # Start at 0 to trigger an immediate refresh
19
18
  @refresh_at = 0
@@ -37,13 +36,12 @@ module Sequence
37
36
  @ledger_api = HttpWrapper.new(@host, @macaroon, @opts)
38
37
  end
39
38
 
40
- # Returns a copy of the configuration options
41
- def opts
42
- @opts.dup
39
+ def dup
40
+ Sequence::Session.new(@opts)
43
41
  end
44
42
 
45
43
  def request(path, body = {})
46
- request_full_resp(@request_id, path, body)[:parsed_body]
44
+ request_full_resp(nil, path, body)[:parsed_body]
47
45
  end
48
46
 
49
47
  def request_full_resp(id, path, body = {})
@@ -7,8 +7,8 @@ require_relative './validations'
7
7
 
8
8
  module Sequence
9
9
  # A transaction is an atomic update to the state of the ledger. Transactions
10
- # can issue new asset units, transfer of asset units from one account to
11
- # another, and/or the retire asset units from an account.
10
+ # can issue new flavor units, transfer of flavor units from one account to
11
+ # another, and/or the retire flavor units from an account.
12
12
  class Transaction < ResponseObject
13
13
  # @!attribute [r] id
14
14
  # A unique ID.
@@ -101,60 +101,77 @@ module Sequence
101
101
  # @return [String]
102
102
  attrib :type
103
103
 
104
+ # @!attribute [r] flavor_id
105
+ # The id of the action's flavor.
106
+ # @return [String]
107
+ attrib :flavor_id
108
+
109
+ # @!attribute [r] snapshot
110
+ # A copy of the associated tags (flavor, source account, and destination
111
+ # account) as they existed at the time of the transaction.
112
+ # @return [Hash]
113
+ attrib :snapshot
114
+
104
115
  # @!attribute [r] asset_id
116
+ # Deprecated. Use {#flavor_id} instead.
105
117
  # The id of the action's asset.
106
118
  # @return [String]
107
119
  attrib :asset_id
108
120
 
109
121
  # @!attribute [r] asset_alias
122
+ # Deprecated. Use {#flavor_id} instead.
110
123
  # The alias of the action's asset.
111
124
  # @return [String]
112
125
  attrib :asset_alias
113
126
 
114
127
  # @!attribute [r] asset_tags
128
+ # Deprecated. Use {#snapshot} instead.
115
129
  # The tags of the action's asset.
116
130
  # @return [Hash]
117
131
  attrib :asset_tags
118
132
 
119
133
  # @!attribute [r] amount
120
- # The number of asset units issues, transferred, or retired.
134
+ # The number of flavor units issued, transferred, or retired.
121
135
  # @return [Integer]
122
136
  attrib :amount
123
137
 
124
138
  # @!attribute [r] source_account_id
125
- # The ID of the account serving as the source of asset units. Null for
139
+ # The ID of the account serving as the source of flavor units. Null for
126
140
  # issuances.
127
141
  # @return [String]
128
142
  attrib :source_account_id
129
143
 
130
144
  # @!attribute [r] source_account_alias
131
- # Deprecated. Use {#source_account_id} instead
132
- # The alias of the account serving as the source of asset units. Null
133
- # for issuances.
145
+ # Deprecated. Use {#source_account_id} instead.
146
+ # The alias of the account serving as the source of asset units.
147
+ # Null for issuances.
134
148
  # @return [String]
135
149
  attrib :source_account_alias
136
150
 
137
151
  # @!attribute [r] source_account_tags
138
- # The tags of the account serving as the source of asset units. Null for
139
- # issuances.
152
+ # Deprecated. Use {#snapshot} instead.
153
+ # The tags of the account serving as the source of flavor units.
154
+ # Null for issuances.
140
155
  # @return [String]
141
156
  attrib :source_account_tags
142
157
 
143
158
  # @!attribute [r] destination_account_id
144
- # The ID of the account receiving the asset units. Null for retirements.
159
+ # The ID of the account receiving the flavor units.
160
+ # Null for retirements.
145
161
  # @return [String]
146
162
  attrib :destination_account_id
147
163
 
148
164
  # @!attribute [r] destination_account_alias
149
- # Deprecated. Use {#destination_account_id} instead
165
+ # Deprecated. Use {#destination_account_id} instead.
150
166
  # The alias of the account receiving the asset units. Null for
151
167
  # retirements.
152
168
  # @return [String]
153
169
  attrib :destination_account_alias
154
170
 
155
171
  # @!attribute [r] destination_account_tags
156
- # The tags of the account receiving the asset units. Null for
157
- # retirements.
172
+ # Deprecated. Use {#snapshot} instead.
173
+ # The tags of the account receiving the flavor units.
174
+ # Null for retirements.
158
175
  # @return [String]
159
176
  attrib :destination_account_tags
160
177
 
@@ -201,23 +218,27 @@ module Sequence
201
218
  self
202
219
  end
203
220
 
204
- # Issues new units of an asset to a destination account.
221
+ # Issues new units of a flavor to a destination account.
205
222
  #
206
223
  # @param [Hash] opts
207
224
  # Options hash
208
225
  # @option opts [Integer] :amount
209
- # Amount of the asset to be issued.
226
+ # Amount of the flavor to be issued.
227
+ # @option opts [String] :flavor_id
228
+ # ID of the flavor to be issued.
210
229
  # @option opts [String] :asset_id
230
+ # Deprecated. Use :flavor_id instead.
211
231
  # ID of the asset to be issued. You must specify either an ID or an
212
232
  # alias.
213
233
  # @option opts [String] :asset_alias
234
+ # Deprecated. Use :flavor_id instead.
214
235
  # Asset alias of the asset to be issued. You must specify either an ID
215
236
  # or an alias.
216
237
  # @option opts [String] :destination_account_id
217
- # ID of the account receiving the asset units. You must specify a
238
+ # ID of the account receiving the flavor units. You must specify a
218
239
  # destination account ID or alias.
219
240
  # @option opts [String] :destination_account_alias
220
- # Deprecated. Use :destination_account_id instead
241
+ # Deprecated. Use :destination_account_id instead.
221
242
  # Alias of the account receiving the asset units. You must specify a
222
243
  # destination account ID or alias.
223
244
  # @option opts [Hash] :reference_data
@@ -227,13 +248,14 @@ module Sequence
227
248
  validate_inclusion_of!(
228
249
  opts,
229
250
  :amount,
251
+ :flavor_id,
230
252
  :asset_id,
231
253
  :asset_alias,
232
254
  :destination_account_id,
233
255
  :destination_account_alias,
234
256
  :reference_data,
235
257
  )
236
- validate_either!(opts, :asset_id, :asset_alias)
258
+ validate_either!(opts, :flavor_id, :asset_id, :asset_alias)
237
259
  validate_either!(
238
260
  opts,
239
261
  :destination_account_id,
@@ -242,34 +264,38 @@ module Sequence
242
264
  add_action(opts.merge(type: :issue))
243
265
  end
244
266
 
245
- # Moves units of an asset from a source (an account or contract) to a
267
+ # Moves units of a flavor from a source (an account or contract) to a
246
268
  # destination account.
247
269
  #
248
270
  # @param [Hash] opts
249
271
  # Options hash
250
272
  # @option opts [Integer] :amount
251
- # Amount of the asset to be transferred.
273
+ # Amount of the flavor to be transferred.
274
+ # @option opts [String] :flavor_id
275
+ # ID of the flavor to be transferred.
252
276
  # @option opts [String] :asset_id
277
+ # Deprecated. Use :flavor_id instead.
253
278
  # ID of the asset to be transferred. You must specify either an ID or an
254
279
  # alias.
255
280
  # @option opts [String] :asset_alias
281
+ # Deprecated. Use :flavor_id instead.
256
282
  # Asset alias of the asset to be transferred. You must specify either an
257
283
  # ID or an alias.
258
284
  # @option opts [String] :source_account_id
259
- # ID of the account serving as the source of asset units. You must
285
+ # ID of the account serving as the source of flavor units. You must
260
286
  # specify a source account ID, account alias, or contract ID.
261
287
  # @option opts [String] :source_account_alias
262
- # Deprecated. Use :source_account_id instead
288
+ # Deprecated. Use :source_account_id instead.
263
289
  # Alias of the account serving as the source of asset units You must
264
290
  # specify a source account ID, account alias, or contract ID.
265
291
  # @option opts [String] :source_contract_id
266
- # ID of the contract serving as the source of asset units. You must
292
+ # ID of the contract serving as the source of flavor units. You must
267
293
  # specify a source account ID, account alias, or contract ID.
268
294
  # @option opts [String] :destination_account_id
269
- # ID of the account receiving the asset units. You must specify a
295
+ # ID of the account receiving the flavor units. You must specify a
270
296
  # destination account ID or alias.
271
297
  # @option opts [String] :destination_account_alias
272
- # Deprecated. Use :destination_account_id instead
298
+ # Deprecated. Use :destination_account_id instead.
273
299
  # Alias of the account receiving the asset units. You must specify a
274
300
  # destination account ID or alias.
275
301
  # @option opts [Hash] :reference_data
@@ -281,6 +307,7 @@ module Sequence
281
307
  validate_inclusion_of!(
282
308
  opts,
283
309
  :amount,
310
+ :flavor_id,
284
311
  :asset_id,
285
312
  :asset_alias,
286
313
  :source_account_id,
@@ -291,7 +318,7 @@ module Sequence
291
318
  :reference_data,
292
319
  :change_reference_data,
293
320
  )
294
- validate_either!(opts, :asset_id, :asset_alias)
321
+ validate_either!(opts, :flavor_id, :asset_id, :asset_alias)
295
322
  validate_either!(
296
323
  opts,
297
324
  :source_account_id,
@@ -306,27 +333,31 @@ module Sequence
306
333
  add_action(opts.merge(type: :transfer))
307
334
  end
308
335
 
309
- # Takes units of an asset from a source (an account or contract) and
336
+ # Takes units of a flavor from a source (an account or contract) and
310
337
  # retires them.
311
338
  #
312
339
  # @param [Hash] opts Options hash
313
340
  # @option opts [Integer] :amount
314
- # Amount of the asset to be retired.
341
+ # Amount of the flavor to be retired.
342
+ # @option opts [String] :flavor_id
343
+ # ID of the flavor to be retired.
315
344
  # @option opts [String] :asset_id
345
+ # Deprecated. Use :flavor_id instead.
316
346
  # ID of the asset to be retired. You must specify either an ID or an
317
347
  # alias.
318
348
  # @option opts [String] :asset_alias
349
+ # Deprecated. Use :flavor_id instead.
319
350
  # Asset alias of the asset to be retired. You must specify either an ID
320
351
  # or an alias.
321
352
  # @option opts [String] :source_account_id
322
- # ID of the account serving as the source of asset units. You must
353
+ # ID of the account serving as the source of flavor units. You must
323
354
  # specify a source account ID, account alias, or contract ID.
324
355
  # @option opts [String] :source_account_alias
325
- # Deprecated. Use :source_account_id instead
356
+ # Deprecated. Use :source_account_id instead.
326
357
  # Alias of the account serving as the source of asset units You must
327
358
  # specify a source account ID, account alias, or contract ID.
328
359
  # @option opts [String] :source_contract_id
329
- # ID of the contract serving as the source of asset units. You must
360
+ # ID of the contract serving as the source of flavor units. You must
330
361
  # specify a source account ID, account alias, or contract ID.
331
362
  # @option opts [Hash] :reference_data
332
363
  # Reference data for the action.
@@ -337,6 +368,7 @@ module Sequence
337
368
  validate_inclusion_of!(
338
369
  opts,
339
370
  :amount,
371
+ :flavor_id,
340
372
  :asset_id,
341
373
  :asset_alias,
342
374
  :source_account_id,
@@ -345,7 +377,7 @@ module Sequence
345
377
  :reference_data,
346
378
  :change_reference_data,
347
379
  )
348
- validate_either!(opts, :asset_id, :asset_alias)
380
+ validate_either!(opts, :flavor_id, :asset_id, :asset_alias)
349
381
  validate_either!(
350
382
  opts,
351
383
  :source_account_id,
@@ -1,3 +1,3 @@
1
1
  module Sequence
2
- VERSION = '1.1.0'.freeze
2
+ VERSION = '1.2.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,139 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequence-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chain Engineering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-07 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.0'
27
- - !ruby/object:Gem::Dependency
28
- name: bundler-audit
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 3.5.0
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: 3.5.0
65
- type: :development
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - "~>"
70
- - !ruby/object:Gem::Version
71
- version: 3.5.0
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 3.5.0
75
- - !ruby/object:Gem::Dependency
76
- name: rspec-its
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: 1.2.0
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: 1.2.0
89
- - !ruby/object:Gem::Dependency
90
- name: simplecov
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: 0.14.1
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: 0.14.1
103
- - !ruby/object:Gem::Dependency
104
- name: webmock
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: 2.3.2
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: 2.3.2
117
- - !ruby/object:Gem::Dependency
118
- name: yard
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: 0.9.5
124
- - - ">="
125
- - !ruby/object:Gem::Version
126
- version: 0.9.5
127
- type: :development
128
- prerelease: false
129
- version_requirements: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - "~>"
132
- - !ruby/object:Gem::Version
133
- version: 0.9.5
134
- - - ">="
135
- - !ruby/object:Gem::Version
136
- version: 0.9.5
11
+ date: 2018-02-16 00:00:00.000000000 Z
12
+ dependencies: []
137
13
  description: SDK for Sequence
138
14
  email:
139
15
  executables: []
@@ -152,6 +28,7 @@ files:
152
28
  - lib/sequence/contract.rb
153
29
  - lib/sequence/dev_utils.rb
154
30
  - lib/sequence/errors.rb
31
+ - lib/sequence/flavor.rb
155
32
  - lib/sequence/http_wrapper.rb
156
33
  - lib/sequence/key.rb
157
34
  - lib/sequence/page.rb