chain-sdk 1.1.1 → 1.2.0.rc2
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/README.md +1 -1
- data/lib/chain/access_token.rb +6 -6
- data/lib/chain/account.rb +13 -15
- data/lib/chain/asset.rb +15 -0
- data/lib/chain/authorization_grant.rb +139 -0
- data/lib/chain/client.rb +6 -0
- data/lib/chain/config.rb +35 -1
- data/lib/chain/connection.rb +17 -1
- data/lib/chain/transaction.rb +0 -45
- data/lib/chain/version.rb +1 -1
- metadata +5 -5
- data/lib/chain/control_program.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c013135b3eeaa68f8b9ff51ce82c5605c8373bfb
|
4
|
+
data.tar.gz: 07dbf685e55001d5f69546ffa128b7923dc6eca1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1945dea88d0fe6a69a43c34f0c582e0813a369301e6ca675ce0974118e5417d018c55acd7cc2bdeee6d438f5742edd43895e5feb2729a341d97f093f1935c6d5
|
7
|
+
data.tar.gz: 79b0b783a89ed29eb35cfcacf370a7673c5bca7d27870952fbdc1b123b4e31578e4b79abb04105dbd132116686bdea18ab7105ee52ea95ce4cffee1236307cfc
|
data/README.md
CHANGED
@@ -11,7 +11,7 @@ Ruby 2.0 or greater is required. We strongly recommend upgrading to Ruby 2.1 or
|
|
11
11
|
For most applications, you can simply add the following to your `Gemfile`:
|
12
12
|
|
13
13
|
```
|
14
|
-
gem 'chain-sdk', '~> 1.
|
14
|
+
gem 'chain-sdk', '~> 1.2.0.rc2', require: 'chain'
|
15
15
|
```
|
16
16
|
|
17
17
|
### In your code
|
data/lib/chain/access_token.rb
CHANGED
@@ -15,8 +15,9 @@ module Chain
|
|
15
15
|
# @return [String]
|
16
16
|
attrib :token
|
17
17
|
|
18
|
+
# @deprecated
|
18
19
|
# @!attribute [r] type
|
19
|
-
# Either 'client' or 'network'.
|
20
|
+
# Either 'client' or 'network'. Ignore in 1.2 or greater.
|
20
21
|
# @return [String]
|
21
22
|
attrib :type
|
22
23
|
|
@@ -27,12 +28,11 @@ module Chain
|
|
27
28
|
|
28
29
|
class ClientModule < Chain::ClientModule
|
29
30
|
|
30
|
-
# Create
|
31
|
+
# Create an access token.
|
31
32
|
# @param [Hash] opts
|
32
|
-
# @option opts [String] :type Type specifiying the type of access token to be created.
|
33
|
-
# You must specify either 'client' or 'network'.
|
34
33
|
# @option opts [String] :id ID specifying the ID of newly created access token.
|
35
34
|
# You must specify a unique ID for access token.
|
35
|
+
# @option opts [String] :type DEPRECATED. Do not use in 1.2 or greater.
|
36
36
|
# @return [AccessToken]
|
37
37
|
def create(opts = {})
|
38
38
|
AccessToken.new(client.conn.request('create-access-token', opts))
|
@@ -41,7 +41,7 @@ module Chain
|
|
41
41
|
# Get all access tokens sorted by descending creation time,
|
42
42
|
# optionally filtered by type.
|
43
43
|
# @param [Hash] opts Filtering information
|
44
|
-
# @option opts [String] :type
|
44
|
+
# @option opts [String] :type DEPRECATED. Do not use in 1.2 or greater.
|
45
45
|
# @return [Query]
|
46
46
|
def query(opts = {})
|
47
47
|
Query.new(client, opts)
|
@@ -53,7 +53,7 @@ module Chain
|
|
53
53
|
# @return [void]
|
54
54
|
def delete(id)
|
55
55
|
client.conn.request('delete-access-token', {id: id})
|
56
|
-
|
56
|
+
nil
|
57
57
|
end
|
58
58
|
|
59
59
|
class Query < Chain::Query
|
data/lib/chain/account.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require_relative './client_module'
|
2
|
-
require_relative './control_program'
|
3
2
|
require_relative './errors'
|
4
3
|
require_relative './query'
|
5
4
|
require_relative './receiver'
|
@@ -53,20 +52,19 @@ module Chain
|
|
53
52
|
client.conn.batch_request('create-account', opts) { |item| Account.new(item) }
|
54
53
|
end
|
55
54
|
|
56
|
-
# @
|
57
|
-
# @
|
58
|
-
# @
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
) { |item| ControlProgram.new(item) }
|
55
|
+
# @param [Hash] opts Options hash specifiying account creation details.
|
56
|
+
# @option opts [String] id The ID of the account. Either an ID or alias should be provided, but not both.
|
57
|
+
# @option opts [String] alias The alias of the account. Either an ID or alias should be provided, but not both.
|
58
|
+
# @option opts [Hash] tags A new set of tags, which will replace the existing tags.
|
59
|
+
# @return [Hash] a success message.
|
60
|
+
def update_tags(opts)
|
61
|
+
client.conn.singleton_batch_request('update-account-tags', [opts])
|
62
|
+
end
|
63
|
+
|
64
|
+
# @param [Array<Hash>] opts An array of options hashes. See {#update_tags} for a description of the hash structure.
|
65
|
+
# @return [BatchResponse<Hash>]
|
66
|
+
def update_tags_batch(opts)
|
67
|
+
client.conn.batch_request('update-account-tags', opts)
|
70
68
|
end
|
71
69
|
|
72
70
|
# Creates a new receiver under the specified account.
|
data/lib/chain/asset.rb
CHANGED
@@ -70,6 +70,21 @@ module Chain
|
|
70
70
|
client.conn.batch_request('create-asset', opts) { |item| Asset.new(item) }
|
71
71
|
end
|
72
72
|
|
73
|
+
# @param [Hash] opts Options hash specifiying asset creation details.
|
74
|
+
# @option opts [String] id The ID of the asset. Either an ID or alias should be provided, but not both.
|
75
|
+
# @option opts [String] alias The alias of the asset. Either an ID or alias should be provided, but not both.
|
76
|
+
# @option opts [Hash] tags A new set of tags, which will replace the existing tags.
|
77
|
+
# @return [Hash] a success message.
|
78
|
+
def update_tags(opts)
|
79
|
+
client.conn.singleton_batch_request('update-asset-tags', [opts])
|
80
|
+
end
|
81
|
+
|
82
|
+
# @param [Array<Hash>] opts An array of options hashes. See {#update_tags} for a description of the hash structure.
|
83
|
+
# @return [BatchResponse<Hash>]
|
84
|
+
def update_tags_batch(opts)
|
85
|
+
client.conn.batch_request('update-asset-tags', opts)
|
86
|
+
end
|
87
|
+
|
73
88
|
# @param [Hash] opts Filtering information
|
74
89
|
# @option opts [String] filter Filter string, see {https://chain.com/docs/core/build-applications/queries}.
|
75
90
|
# @option opts [Array<String|Integer>] filter_params Parameter values for filter string (if needed).
|
@@ -0,0 +1,139 @@
|
|
1
|
+
require_relative './client_module'
|
2
|
+
require_relative './query'
|
3
|
+
require_relative './response_object'
|
4
|
+
|
5
|
+
module Chain
|
6
|
+
class AuthorizationGrant < ResponseObject
|
7
|
+
|
8
|
+
# @!attribute [r] guard_type
|
9
|
+
# The type of credential that the guard matches against. Only "access_token"
|
10
|
+
# and "x509" are allowed.
|
11
|
+
# @return [String]
|
12
|
+
attrib :guard_type
|
13
|
+
|
14
|
+
# @!attribute [r] guard_data
|
15
|
+
# A list of parameters that match specific credentials.
|
16
|
+
# @return [Hash]
|
17
|
+
attrib :guard_data
|
18
|
+
|
19
|
+
# @!attribute [r] policy
|
20
|
+
# @return [String]
|
21
|
+
attrib :policy
|
22
|
+
|
23
|
+
# @!attribute [r] protected
|
24
|
+
# @return [Boolean]
|
25
|
+
# Whether the grant can be deleted. Only used for internal purposes.
|
26
|
+
attrib :protected
|
27
|
+
|
28
|
+
# @!attribute [r] created_at
|
29
|
+
# Timestamp of token creation.
|
30
|
+
# @return [Time]
|
31
|
+
attrib :created_at, rfc3339_time: true
|
32
|
+
|
33
|
+
class ClientModule < Chain::ClientModule
|
34
|
+
|
35
|
+
# Create an authorization grant, which provides the specified
|
36
|
+
# credential with access to the given policy. Credentials are identified
|
37
|
+
# using predicates called guards. Guards identify credentials by type
|
38
|
+
# and by patterns specific to that type.
|
39
|
+
#
|
40
|
+
# @param [Hash] opts
|
41
|
+
# @option opts [String] :guard_type Either "access_token" or "x509".
|
42
|
+
# @option opts [Hash] :guard_data Parameters that describe a credential.
|
43
|
+
#
|
44
|
+
# For guards of type "access_token", provide a Hash with a single key,
|
45
|
+
# "id", whose value is the unique ID of the access token.
|
46
|
+
#
|
47
|
+
# For guards of type "x509", there should be a single top-level key,
|
48
|
+
# "subject", which maps to a hash of Subject attributes. Valid
|
49
|
+
# keys include:
|
50
|
+
# - "C" (Country, string or array of strings)
|
51
|
+
# - "O" (Organization, string or array of strings)
|
52
|
+
# - "OU" (Organizational Unit, string or array of strings)
|
53
|
+
# - "L" (Locality, string or array of strings)
|
54
|
+
# - "ST" (State or Province, string or array of strings)
|
55
|
+
# - "STREET" (Street Address, string or array of strings)
|
56
|
+
# - "POSTALCODE" (Postal Code, string or array of strings)
|
57
|
+
# - "SERIALNUMBER" (Serial Number, string)
|
58
|
+
# - "CN" (Common Name, string)
|
59
|
+
#
|
60
|
+
# @option opts [String] :policy One of the following:
|
61
|
+
#
|
62
|
+
# - "client-readwrite": full access to the Client API, including
|
63
|
+
# accounts, assets, transactions, access tokens, MockHSM, etc.
|
64
|
+
# - "client-readonly": read-only access to the Client API.
|
65
|
+
# - "monitoring": read-only access to diagnostic components of the API,
|
66
|
+
# including fetching configuration info.
|
67
|
+
# - "crosscore": access to the cross-core API, including fetching blocks
|
68
|
+
# and submitting transactions, but not including block signing.
|
69
|
+
# - "crosscore-signblock": access to the cross-core API's block-signing
|
70
|
+
# API call.
|
71
|
+
# @return [AuthorizationGrant]
|
72
|
+
def create(opts)
|
73
|
+
# Copy input and stringify keys
|
74
|
+
opts = opts.reduce({}) do |memo, (k, v)|
|
75
|
+
memo[k.to_s] = v
|
76
|
+
memo
|
77
|
+
end
|
78
|
+
|
79
|
+
if opts['guard_type'].to_s == 'x509'
|
80
|
+
opts['guard_data'] = self.class.sanitize_x509(opts['guard_data'])
|
81
|
+
end
|
82
|
+
|
83
|
+
AuthorizationGrant.new(client.conn.request('create-authorization-grant', opts))
|
84
|
+
end
|
85
|
+
|
86
|
+
# List all authorization grants. The sort order is not defined.
|
87
|
+
# @return [Array<AuthorizationGrant>]
|
88
|
+
def list_all
|
89
|
+
client.conn.request('list-authorization-grants')['items'].map { |item| AuthorizationGrant.new(item) }
|
90
|
+
end
|
91
|
+
|
92
|
+
# Delete the specified authorization grant.
|
93
|
+
# @param opts Identical to {#create}.
|
94
|
+
# @return [void]
|
95
|
+
def delete(opts)
|
96
|
+
client.conn.request('delete-authorization-grant', opts)
|
97
|
+
nil
|
98
|
+
end
|
99
|
+
|
100
|
+
SUBJECT_ATTRIBUTES = {
|
101
|
+
'C' => {array: true},
|
102
|
+
'O' => {array: true},
|
103
|
+
'OU' => {array: true},
|
104
|
+
'L' => {array: true},
|
105
|
+
'ST' => {array: true},
|
106
|
+
'STREET' => {array: true},
|
107
|
+
'POSTALCODE' => {array: true},
|
108
|
+
'SERIALNUMBER' => {array: false},
|
109
|
+
'CN' => {array: false},
|
110
|
+
}
|
111
|
+
|
112
|
+
def self.sanitize_x509(guard_data)
|
113
|
+
first_key = guard_data.keys.first
|
114
|
+
if guard_data.size != 1 || first_key.to_s.downcase != 'subject'
|
115
|
+
raise ArgumentError.new('Guard data must contain exactly one key, "subject"')
|
116
|
+
end
|
117
|
+
|
118
|
+
res = {}
|
119
|
+
res[first_key] = guard_data.values.first.reduce({}) do |memo, (k, v)|
|
120
|
+
attrib = SUBJECT_ATTRIBUTES[k.to_s.upcase]
|
121
|
+
raise ArgumentError.new("Invalid subject attrib: #{k}") unless attrib
|
122
|
+
|
123
|
+
if attrib[:array] && !v.is_a?(Array)
|
124
|
+
memo[k] = [v]
|
125
|
+
elsif !attrib[:array] && v.is_a?(Array)
|
126
|
+
raise ArgumentError.new("Invalid array value for #{k}: #{v}")
|
127
|
+
else
|
128
|
+
memo[k] = v
|
129
|
+
end
|
130
|
+
|
131
|
+
memo
|
132
|
+
end
|
133
|
+
res
|
134
|
+
end
|
135
|
+
|
136
|
+
end
|
137
|
+
|
138
|
+
end
|
139
|
+
end
|
data/lib/chain/client.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative './access_token'
|
2
|
+
require_relative './authorization_grant'
|
2
3
|
require_relative './account'
|
3
4
|
require_relative './asset'
|
4
5
|
require_relative './balance'
|
@@ -31,6 +32,11 @@ module Chain
|
|
31
32
|
@access_tokens ||= AccessToken::ClientModule.new(self)
|
32
33
|
end
|
33
34
|
|
35
|
+
# @return [AuthorizationGrant::ClientModule]
|
36
|
+
def authorization_grants
|
37
|
+
@authorization_grants ||= AuthorizationGrant::ClientModule.new(self)
|
38
|
+
end
|
39
|
+
|
34
40
|
# @return [Account::ClientModule]
|
35
41
|
def accounts
|
36
42
|
@accounts ||= Account::ClientModule.new(self)
|
data/lib/chain/config.rb
CHANGED
@@ -5,6 +5,30 @@ module Chain
|
|
5
5
|
module Config
|
6
6
|
|
7
7
|
class Info < ResponseObject
|
8
|
+
class BuildConfig < ResponseObject
|
9
|
+
# @!attribute [r] is_localhost_auth
|
10
|
+
# @return [Boolean]
|
11
|
+
# Whether any request from the loopback device (localhost) should be
|
12
|
+
# automatically authenticated and authorized, without additional
|
13
|
+
# credentials.
|
14
|
+
attrib :is_localhost_auth
|
15
|
+
|
16
|
+
# @!attribute [r] is_mockhsm
|
17
|
+
# @return [Boolean]
|
18
|
+
# Whether the MockHSM API is enabled.
|
19
|
+
attrib :is_mockhsm
|
20
|
+
|
21
|
+
# @!attribute [r] is_reset
|
22
|
+
# @return [Boolean]
|
23
|
+
# Whether the core reset API call is enabled.
|
24
|
+
attrib :is_reset
|
25
|
+
|
26
|
+
# @!attribute [r] is_http_ok
|
27
|
+
# @return [Boolean]
|
28
|
+
# Whether non-TLS HTTP requests (http://...) are allowed.
|
29
|
+
attrib :is_http_ok
|
30
|
+
end
|
31
|
+
|
8
32
|
class Snapshot < ResponseObject
|
9
33
|
# @!attribute [r] attempt
|
10
34
|
# @return [Integer]
|
@@ -71,8 +95,14 @@ module Chain
|
|
71
95
|
# @return [Boolean]
|
72
96
|
attrib :is_production
|
73
97
|
|
98
|
+
# @!attribute [r] crosscore_rpc_version
|
99
|
+
# @return [Integer]
|
100
|
+
attrib :crosscore_rpc_version
|
101
|
+
|
102
|
+
# @deprecated
|
74
103
|
# @!attribute [r] network_rpc_version
|
75
104
|
# @return [Integer]
|
105
|
+
# Ignore in 1.2 or greater. Superseded by crosscore_rpc_version.
|
76
106
|
attrib :network_rpc_version
|
77
107
|
|
78
108
|
# @!attribute [r] core_id
|
@@ -95,6 +125,10 @@ module Chain
|
|
95
125
|
# @return [String]
|
96
126
|
attrib :build_date
|
97
127
|
|
128
|
+
# @!attribute [r] build_config
|
129
|
+
# @return [BuildConfig]
|
130
|
+
attrib(:build_config) { |raw| BuildConfig.new(raw) }
|
131
|
+
|
98
132
|
# @!attribute [r] health
|
99
133
|
# @return [Hash]
|
100
134
|
attrib :health
|
@@ -116,7 +150,7 @@ module Chain
|
|
116
150
|
# @param [Hash] opts Options for configuring Chain Core.
|
117
151
|
# @option opts [Boolean] is_generator Whether the local core will be a block generator for the blockchain; i.e., you are starting a new blockchain on the local core. `false` if you are connecting to a pre-existing blockchain.
|
118
152
|
# @option opts [String] generator_url A URL for the block generator. Required if `isGenerator` is false.
|
119
|
-
# @option opts [String] generator_access_token
|
153
|
+
# @option opts [String] generator_access_token An access token provided by administrators of the block generator. Required if `isGenerator` is false.
|
120
154
|
# @option opts [String] blockchain_id The unique ID of the generator's blockchain. Required if `isGenerator` is false.
|
121
155
|
# @return [void]
|
122
156
|
def configure(opts)
|
data/lib/chain/connection.rb
CHANGED
@@ -57,7 +57,11 @@ module Chain
|
|
57
57
|
if !!item['code']
|
58
58
|
errors[i] = APIError.new(item, response)
|
59
59
|
else
|
60
|
-
|
60
|
+
if translate
|
61
|
+
successes[i] = translate.call(item)
|
62
|
+
else
|
63
|
+
successes[i] = item
|
64
|
+
end
|
61
65
|
end
|
62
66
|
end
|
63
67
|
|
@@ -182,6 +186,18 @@ module Chain
|
|
182
186
|
if @url.scheme == 'https'
|
183
187
|
@http.use_ssl = true
|
184
188
|
@http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
189
|
+
if @opts.key?(:ssl_params)
|
190
|
+
ssl_params = @opts[:ssl_params]
|
191
|
+
if ssl_params.key?(:ca_file)
|
192
|
+
@http.ca_file = ssl_params[:ca_file]
|
193
|
+
end
|
194
|
+
if ssl_params.key?(:cert)
|
195
|
+
@http.cert = ssl_params[:cert]
|
196
|
+
end
|
197
|
+
if ssl_params.key?(:key)
|
198
|
+
@http.key = ssl_params[:key]
|
199
|
+
end
|
200
|
+
end
|
185
201
|
end
|
186
202
|
|
187
203
|
@http
|
data/lib/chain/transaction.rb
CHANGED
@@ -164,12 +164,6 @@ module Chain
|
|
164
164
|
# @return [String]
|
165
165
|
attrib :spent_output_id
|
166
166
|
|
167
|
-
# @deprecated (as of version 1.1) Use {#spent_output_id} instead.
|
168
|
-
# @!attribute [r] spent_output
|
169
|
-
# The output consumed by this input.
|
170
|
-
# @return [SpentOutput]
|
171
|
-
attrib(:spent_output) { |raw| SpentOutput.new(raw) }
|
172
|
-
|
173
167
|
# @!attribute [r] account_id
|
174
168
|
# The id of the account transferring the asset (possibly null if the
|
175
169
|
# input is an issuance or an unspent output is specified).
|
@@ -187,22 +181,12 @@ module Chain
|
|
187
181
|
# @return [String]
|
188
182
|
attrib :account_tags
|
189
183
|
|
190
|
-
# @deprecated (as of version 1.1) Do not use this field.
|
191
|
-
# @!attribute [r] input_witness
|
192
|
-
# @return [String]
|
193
|
-
attrib :input_witness
|
194
|
-
|
195
184
|
# @!attribute [r] issuance_program
|
196
185
|
# A program specifying a predicate for issuing an asset (possibly null
|
197
186
|
# if input is not an issuance).
|
198
187
|
# @return [String]
|
199
188
|
attrib :issuance_program
|
200
189
|
|
201
|
-
# @deprecated (as of version 1.1) Do not use this field.
|
202
|
-
# @!attribute [r] control_program
|
203
|
-
# @return [String]
|
204
|
-
attrib :control_program
|
205
|
-
|
206
190
|
# @!attribute [r] reference_data
|
207
191
|
# User specified, unstructured data embedded within an input
|
208
192
|
# (possibly null).
|
@@ -213,19 +197,6 @@ module Chain
|
|
213
197
|
# A flag indicating if the input is local.
|
214
198
|
# @return [Boolean]
|
215
199
|
attrib :is_local
|
216
|
-
|
217
|
-
# @deprecated (as of version 1.1)
|
218
|
-
class SpentOutput < ResponseObject
|
219
|
-
# @!attribute [r] transaction_id
|
220
|
-
# Unique transaction identifier.
|
221
|
-
# @return [String]
|
222
|
-
attrib :transaction_id
|
223
|
-
|
224
|
-
# @!attribute [r] position
|
225
|
-
# Position of an output within the transaction.
|
226
|
-
# @return [Integer]
|
227
|
-
attrib :position
|
228
|
-
end
|
229
200
|
end
|
230
201
|
|
231
202
|
class Output < ResponseObject
|
@@ -418,8 +389,6 @@ module Chain
|
|
418
389
|
# Add a spend action taken on a particular unspent output.
|
419
390
|
# @param [Hash] params Action parameters
|
420
391
|
# @option params [String] :output_id Output ID specifying the transaction output to spend.
|
421
|
-
# @option params [String] :transaction_id DEPRECATED (as of version 1.1) Transaction ID specifying the transaction to select an output from.
|
422
|
-
# @option params [Integer] :position DEPRECATED (as of version 1.1) Position of the output within the transaction to be spent.
|
423
392
|
# @return [Builder]
|
424
393
|
def spend_account_unspent_output(params)
|
425
394
|
add_action(params.merge(type: :spend_account_unspent_output))
|
@@ -455,20 +424,6 @@ module Chain
|
|
455
424
|
add_action(params.merge(type: :control_receiver))
|
456
425
|
end
|
457
426
|
|
458
|
-
# @deprecated (as of version 1.1) Use {#control_with_receiver} instead.
|
459
|
-
# Add a control action taken on a control program.
|
460
|
-
# @param [Hash] params Action parameters
|
461
|
-
# @option params [String] :asset_id Asset ID specifying the asset to be controlled.
|
462
|
-
# You must specify either an ID or an alias.
|
463
|
-
# @option params [String] :asset_alias Asset alias specifying the asset to be controlled.
|
464
|
-
# You must specify either an ID or an alias.
|
465
|
-
# @option params [String] :control_program The control program to be used
|
466
|
-
# @option params [Integer] :amount amount of the asset to be controlled.
|
467
|
-
# @return [Builder]
|
468
|
-
def control_with_program(params)
|
469
|
-
add_action(params.merge(type: :control_program))
|
470
|
-
end
|
471
|
-
|
472
427
|
# Add a retire action.
|
473
428
|
# @param [Hash] params Action parameters
|
474
429
|
# @option params [String] :asset_id Asset ID specifying the asset to be retired.
|
data/lib/chain/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chain-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chain Engineering
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- lib/chain/access_token.rb
|
91
91
|
- lib/chain/account.rb
|
92
92
|
- lib/chain/asset.rb
|
93
|
+
- lib/chain/authorization_grant.rb
|
93
94
|
- lib/chain/balance.rb
|
94
95
|
- lib/chain/batch_response.rb
|
95
96
|
- lib/chain/client.rb
|
@@ -97,7 +98,6 @@ files:
|
|
97
98
|
- lib/chain/config.rb
|
98
99
|
- lib/chain/connection.rb
|
99
100
|
- lib/chain/constants.rb
|
100
|
-
- lib/chain/control_program.rb
|
101
101
|
- lib/chain/errors.rb
|
102
102
|
- lib/chain/hsm_signer.rb
|
103
103
|
- lib/chain/mock_hsm.rb
|
@@ -123,9 +123,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
123
|
version: '2.0'
|
124
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
125
|
requirements:
|
126
|
-
- - "
|
126
|
+
- - ">"
|
127
127
|
- !ruby/object:Gem::Version
|
128
|
-
version:
|
128
|
+
version: 1.3.1
|
129
129
|
requirements: []
|
130
130
|
rubyforge_project:
|
131
131
|
rubygems_version: 2.6.8
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require_relative './response_object'
|
2
|
-
|
3
|
-
module Chain
|
4
|
-
# @deprecated (as of version 1.1) Use {Receiver} instead.
|
5
|
-
class ControlProgram < ResponseObject
|
6
|
-
# @!attribute [r] control_program
|
7
|
-
# Hex-encoded string representation of the control program.
|
8
|
-
# @return [String]
|
9
|
-
attrib :control_program
|
10
|
-
end
|
11
|
-
end
|