scalechain 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +72 -0
- data/lib/scalechain/api_exception.rb +23 -0
- data/lib/scalechain/api_helper.rb +82 -0
- data/lib/scalechain/configuration.rb +22 -0
- data/lib/scalechain/controllers/account_controller.rb +189 -0
- data/lib/scalechain/controllers/address_controller.rb +279 -0
- data/lib/scalechain/controllers/api_key_controller.rb +103 -0
- data/lib/scalechain/controllers/authorization_controller.rb +85 -0
- data/lib/scalechain/controllers/block_controller.rb +45 -0
- data/lib/scalechain/controllers/node_controller.rb +113 -0
- data/lib/scalechain/controllers/transaction_controller.rb +159 -0
- data/lib/scalechain.rb +20 -0
- metadata +68 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ae6f281db35833d225a7ee87eb333519a9cde0eb
|
4
|
+
data.tar.gz: 1d1aa30190eaeb5c7279239656de7c1823736361
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4ed0dcdaab2c42b3891e76a4ffd1c5be25888d0f71512aecc75214eebe8ce2f180769f645c47729736eadc6aff59ffd8e3fca9ad9ad5bb9f0b20a6fe71e4da8b
|
7
|
+
data.tar.gz: d52c76900b989af551e15966e6e001412a37508b994a8a9a5caf7e0b0acbb9f746ab10d8148699288f55876cd5162f8823dfc48b7cfeadb3813dc16c85c42674
|
data/README.md
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
# The ScaleChain API for Ruby
|
2
|
+
|
3
|
+
The official Ruby library for the [ScaleChain API](https://docs.scalechain.io/).
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
```
|
8
|
+
gem install scalechain
|
9
|
+
```
|
10
|
+
|
11
|
+
## Quick Start
|
12
|
+
|
13
|
+
### Sign Up
|
14
|
+
|
15
|
+
The first thing you'll need to do is sign up for [ScaleChain Cloud](https://cloud.scalechain.io/signup).
|
16
|
+
|
17
|
+
### Get API Key
|
18
|
+
|
19
|
+
Go to [Manage API](https://cloud.scalechain.io/keys) and click 'Add New API Key'.
|
20
|
+
|
21
|
+
### Get an Access Token
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
# Import ScaleChain SDK
|
25
|
+
require 'scalechain'
|
26
|
+
|
27
|
+
key = "API-KEY"
|
28
|
+
secret = "API-SECRET"
|
29
|
+
|
30
|
+
auth = ScaleChain::AuthorizationController.new
|
31
|
+
config = ScaleChain::Configuration
|
32
|
+
|
33
|
+
response = auth.get_access_token_by_client_credential(key, secret)
|
34
|
+
|
35
|
+
config.o_auth_access_token = response["access_token"]
|
36
|
+
config.o_auth_refresh_token = response["refresh_token"]
|
37
|
+
```
|
38
|
+
|
39
|
+
## Making API Calls
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
block = ScaleChain::BlockController.new
|
43
|
+
|
44
|
+
response = block.get_block("latest", "mainnet")
|
45
|
+
puts response
|
46
|
+
```
|
47
|
+
|
48
|
+
## Switching to Testnet Blockchain
|
49
|
+
|
50
|
+
```ruby
|
51
|
+
block = ScaleChain::BlockController.new
|
52
|
+
|
53
|
+
response = block.get_block("latest", "testnet")
|
54
|
+
puts response
|
55
|
+
```
|
56
|
+
|
57
|
+
## Handling exception
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
block = ScaleChain::BlockController.new
|
61
|
+
|
62
|
+
begin
|
63
|
+
response = block.get_block("latest", "testnet")
|
64
|
+
puts response
|
65
|
+
rescue Exception => exception
|
66
|
+
puts exception.response_body
|
67
|
+
end
|
68
|
+
```
|
69
|
+
|
70
|
+
## API Reference
|
71
|
+
|
72
|
+
Visit [docs.scalechain.io](https://docs.scalechain.io/).
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# This file was automatically generated by APIMATIC BETA v2.0 on 02/26/2016
|
2
|
+
|
3
|
+
module ScaleChain
|
4
|
+
class APIException < StandardError
|
5
|
+
|
6
|
+
# value store
|
7
|
+
attr_reader :response_code
|
8
|
+
|
9
|
+
# value store
|
10
|
+
attr_reader :response_body
|
11
|
+
|
12
|
+
# The HTTP response code from the API request
|
13
|
+
# @param [String] the reason for raising an exception
|
14
|
+
# @param [Numeric] the HTTP response code from the API request
|
15
|
+
# @param [Object] the HTTP unprased response from the API request
|
16
|
+
def initialize(reason, response_code, response_body)
|
17
|
+
super(reason)
|
18
|
+
@response_code = response_code
|
19
|
+
@response_body = response_body
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# This file was automatically generated by APIMATIC BETA v2.0 on 02/26/2016
|
2
|
+
|
3
|
+
module ScaleChain
|
4
|
+
class APIHelper
|
5
|
+
|
6
|
+
# Replaces template parameters in the given url
|
7
|
+
# @param [String] The query string builder to replace the template parameters
|
8
|
+
# @param [Array] The parameters to replace in the url
|
9
|
+
def self.append_url_with_template_parameters(query_builder, parameters)
|
10
|
+
# perform parameter validation
|
11
|
+
raise ArgumentError, 'Given value for parameter \"query_builder\" is invalid.' unless query_builder.is_a? String
|
12
|
+
|
13
|
+
# return if there are no parameters to replace
|
14
|
+
if parameters.nil? then
|
15
|
+
abort('no parameters to append')
|
16
|
+
end
|
17
|
+
|
18
|
+
# iterate and append parameters
|
19
|
+
parameters.map do |key, value|
|
20
|
+
replace_value = ''
|
21
|
+
|
22
|
+
if value.nil?
|
23
|
+
replace_value = ''
|
24
|
+
elsif value.is_a? Enumerable
|
25
|
+
replace_value = value.join("/")
|
26
|
+
else
|
27
|
+
replace_value = value.to_s
|
28
|
+
end
|
29
|
+
|
30
|
+
# find the template parameter and replace it with its value
|
31
|
+
query_builder = query_builder.gsub('{' + key.to_s + '}', replace_value)
|
32
|
+
end
|
33
|
+
|
34
|
+
query_builder
|
35
|
+
end
|
36
|
+
|
37
|
+
# Appends the given set of parameters to the given query string
|
38
|
+
# @param [String] The query string builder to replace the template parameters
|
39
|
+
# @param [Array] The parameters to append
|
40
|
+
def self.append_url_with_query_parameters(query_builder, parameters)
|
41
|
+
# perform parameter validation
|
42
|
+
raise ArgumentError, 'Given value for parameter \"query_builder\" is invalid.' unless query_builder.is_a? String
|
43
|
+
|
44
|
+
# return if there are no parameters to replace
|
45
|
+
if parameters.nil? then
|
46
|
+
abort('no parameters to append')
|
47
|
+
end
|
48
|
+
|
49
|
+
#remove any nil values
|
50
|
+
parameters = parameters.reject {|key, value| value.nil?}
|
51
|
+
|
52
|
+
# does the query string already has parameters
|
53
|
+
has_params = query_builder.include? '?'
|
54
|
+
separator = if has_params then '&' else '?' end
|
55
|
+
|
56
|
+
# append query with separator and parameters
|
57
|
+
query_builder << separator << URI.unescape(URI.encode_www_form(parameters))
|
58
|
+
end
|
59
|
+
|
60
|
+
# Validates and processes the given Url
|
61
|
+
# @param [String] The given Url to process
|
62
|
+
# @return [String] Pre-processed Url as string
|
63
|
+
def self.clean_url(url)
|
64
|
+
# perform parameter validation
|
65
|
+
raise ArgumentError, 'Invalid Url.' unless url.is_a? String
|
66
|
+
|
67
|
+
# ensure that the urls are absolute
|
68
|
+
matches = url.match(/^(https?:\/\/[^\/]+)/)
|
69
|
+
raise ArgumentError, 'Invalid Url format.' if matches.nil?
|
70
|
+
|
71
|
+
# get the http protocol match
|
72
|
+
protocol = matches[1]
|
73
|
+
|
74
|
+
# remove redundant forward slashes
|
75
|
+
query = url[protocol.length..-1].gsub(/\/\/+/, '/')
|
76
|
+
|
77
|
+
# return process url
|
78
|
+
return protocol + query;
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# This file was automatically generated by APIMATIC BETA v2.0 on 02/26/2016
|
2
|
+
|
3
|
+
module ScaleChain
|
4
|
+
class Configuration
|
5
|
+
|
6
|
+
# The base Uri for API calls
|
7
|
+
@BASE_URI = "https://api.scalechain.io/v1"
|
8
|
+
|
9
|
+
# The OAuth 2.0 access token to be set before API calls
|
10
|
+
@o_auth_access_token = nil
|
11
|
+
@o_auth_refresh_token = nil
|
12
|
+
|
13
|
+
|
14
|
+
# create the getters and setters
|
15
|
+
class << self
|
16
|
+
attr_accessor :BASE_URI
|
17
|
+
|
18
|
+
attr_accessor :o_auth_access_token
|
19
|
+
attr_accessor :o_auth_refresh_token
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,189 @@
|
|
1
|
+
# This file was automatically generated by APIMATIC BETA v2.0 on 02/26/2016
|
2
|
+
|
3
|
+
module ScaleChain
|
4
|
+
class AccountController
|
5
|
+
|
6
|
+
# Returns a collection of accounts for the authorized user.
|
7
|
+
# @return mixed response from the API call
|
8
|
+
def list
|
9
|
+
# the base uri for api requests
|
10
|
+
query_builder = Configuration.BASE_URI.dup
|
11
|
+
|
12
|
+
# prepare query string for API call
|
13
|
+
query_builder << "/accounts/list"
|
14
|
+
|
15
|
+
# validate and preprocess url
|
16
|
+
query_url = APIHelper.clean_url query_builder
|
17
|
+
|
18
|
+
# prepare headers
|
19
|
+
headers = {
|
20
|
+
"user-agent" => "APIMATIC 2.0",
|
21
|
+
"accept" => "application/json",
|
22
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token)
|
23
|
+
}
|
24
|
+
|
25
|
+
# invoke the API call request to fetch the response
|
26
|
+
response = Unirest.get query_url, headers:headers
|
27
|
+
|
28
|
+
#Error handling using HTTP status codes
|
29
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
30
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
31
|
+
end
|
32
|
+
|
33
|
+
response.body
|
34
|
+
end
|
35
|
+
|
36
|
+
# Returns details of an account.
|
37
|
+
# @param [String] id Required parameter: An account id
|
38
|
+
# @param [String] network Required parameter: Blockchain network
|
39
|
+
# @return mixed response from the API call
|
40
|
+
def show id, network
|
41
|
+
# the base uri for api requests
|
42
|
+
query_builder = Configuration.BASE_URI.dup
|
43
|
+
|
44
|
+
# prepare query string for API call
|
45
|
+
query_builder << "/accounts/{id}/show"
|
46
|
+
|
47
|
+
# process optional query parameters
|
48
|
+
query_builder = APIHelper.append_url_with_template_parameters query_builder, {
|
49
|
+
"id" => id,
|
50
|
+
}
|
51
|
+
|
52
|
+
# validate and preprocess url
|
53
|
+
query_url = APIHelper.clean_url query_builder
|
54
|
+
|
55
|
+
# prepare headers
|
56
|
+
headers = {
|
57
|
+
"user-agent" => "APIMATIC 2.0",
|
58
|
+
"accept" => "application/json",
|
59
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
60
|
+
"network" => network
|
61
|
+
}
|
62
|
+
|
63
|
+
# invoke the API call request to fetch the response
|
64
|
+
response = Unirest.get query_url, headers:headers
|
65
|
+
|
66
|
+
#Error handling using HTTP status codes
|
67
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
68
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
69
|
+
end
|
70
|
+
|
71
|
+
response.body
|
72
|
+
end
|
73
|
+
|
74
|
+
# Returns a newly created account.
|
75
|
+
# @param [mixed] account Required parameter: An account object
|
76
|
+
# @return mixed response from the API call
|
77
|
+
def create account
|
78
|
+
# the base uri for api requests
|
79
|
+
query_builder = Configuration.BASE_URI.dup
|
80
|
+
|
81
|
+
# prepare query string for API call
|
82
|
+
query_builder << "/accounts/new"
|
83
|
+
|
84
|
+
# validate and preprocess url
|
85
|
+
query_url = APIHelper.clean_url query_builder
|
86
|
+
|
87
|
+
# prepare headers
|
88
|
+
headers = {
|
89
|
+
"user-agent" => "APIMATIC 2.0",
|
90
|
+
"accept" => "application/json",
|
91
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token)
|
92
|
+
}
|
93
|
+
|
94
|
+
# prepare parameters
|
95
|
+
parameters = {
|
96
|
+
"account" => account
|
97
|
+
}
|
98
|
+
|
99
|
+
# invoke the API call request to fetch the response
|
100
|
+
response = Unirest.post query_url, headers:headers, parameters:parameters
|
101
|
+
|
102
|
+
#Error handling using HTTP status codes
|
103
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
104
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
105
|
+
end
|
106
|
+
|
107
|
+
response.body
|
108
|
+
end
|
109
|
+
|
110
|
+
# Returns the deleted account id.
|
111
|
+
# @param [String] id Required parameter: An account id
|
112
|
+
# @return mixed response from the API call
|
113
|
+
def delete id
|
114
|
+
# the base uri for api requests
|
115
|
+
query_builder = Configuration.BASE_URI.dup
|
116
|
+
|
117
|
+
# prepare query string for API call
|
118
|
+
query_builder << "/accounts/delete"
|
119
|
+
|
120
|
+
# validate and preprocess url
|
121
|
+
query_url = APIHelper.clean_url query_builder
|
122
|
+
|
123
|
+
# prepare headers
|
124
|
+
headers = {
|
125
|
+
"user-agent" => "APIMATIC 2.0",
|
126
|
+
"accept" => "application/json",
|
127
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token)
|
128
|
+
}
|
129
|
+
|
130
|
+
# prepare parameters
|
131
|
+
parameters = {
|
132
|
+
"id" => id
|
133
|
+
}
|
134
|
+
|
135
|
+
# invoke the API call request to fetch the response
|
136
|
+
response = Unirest.delete query_url, headers:headers, parameters:parameters
|
137
|
+
|
138
|
+
#Error handling using HTTP status codes
|
139
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
140
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
141
|
+
end
|
142
|
+
|
143
|
+
response.body
|
144
|
+
end
|
145
|
+
|
146
|
+
# Send coins to an address and returns its transaction id.
|
147
|
+
# @param [String] account_id Required parameter: An account id
|
148
|
+
# @param [String] amount Required parameter: An amount to send
|
149
|
+
# @param [String] network Required parameter: Blockchain network
|
150
|
+
# @param [String] to_address Required parameter: An address to send
|
151
|
+
# @return mixed response from the API call
|
152
|
+
def send_coin account_id, amount, to_address, network
|
153
|
+
# the base uri for api requests
|
154
|
+
query_builder = Configuration.BASE_URI.dup
|
155
|
+
|
156
|
+
# prepare query string for API call
|
157
|
+
query_builder << "/accounts/send"
|
158
|
+
|
159
|
+
# validate and preprocess url
|
160
|
+
query_url = APIHelper.clean_url query_builder
|
161
|
+
|
162
|
+
# prepare headers
|
163
|
+
headers = {
|
164
|
+
"user-agent" => "APIMATIC 2.0",
|
165
|
+
"accept" => "application/json",
|
166
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
167
|
+
"network" => network
|
168
|
+
}
|
169
|
+
|
170
|
+
# prepare parameters
|
171
|
+
parameters = {
|
172
|
+
"account_id" => account_id,
|
173
|
+
"amount" => amount,
|
174
|
+
"to_address" => to_address
|
175
|
+
}
|
176
|
+
|
177
|
+
# invoke the API call request to fetch the response
|
178
|
+
response = Unirest.post query_url, headers:headers, parameters:parameters
|
179
|
+
|
180
|
+
#Error handling using HTTP status codes
|
181
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
182
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
183
|
+
end
|
184
|
+
|
185
|
+
response.body
|
186
|
+
end
|
187
|
+
|
188
|
+
end
|
189
|
+
end
|
@@ -0,0 +1,279 @@
|
|
1
|
+
# This file was automatically generated by APIMATIC BETA v2.0 on 02/26/2016
|
2
|
+
|
3
|
+
module ScaleChain
|
4
|
+
class AddressController
|
5
|
+
|
6
|
+
# Returns basic balance details for an addresses.
|
7
|
+
# @param [String] address Required parameter: An address
|
8
|
+
# @param [String] network Required parameter: Blockchain network
|
9
|
+
# @return mixed response from the API call
|
10
|
+
def get_address address, network
|
11
|
+
# the base uri for api requests
|
12
|
+
query_builder = Configuration.BASE_URI.dup
|
13
|
+
|
14
|
+
# prepare query string for API call
|
15
|
+
query_builder << "/addresses/{address}"
|
16
|
+
|
17
|
+
# process optional query parameters
|
18
|
+
query_builder = APIHelper.append_url_with_template_parameters query_builder, {
|
19
|
+
"address" => address,
|
20
|
+
}
|
21
|
+
|
22
|
+
# validate and preprocess url
|
23
|
+
query_url = APIHelper.clean_url query_builder
|
24
|
+
|
25
|
+
# prepare headers
|
26
|
+
headers = {
|
27
|
+
"user-agent" => "APIMATIC 2.0",
|
28
|
+
"accept" => "application/json",
|
29
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
30
|
+
"network" => network
|
31
|
+
}
|
32
|
+
|
33
|
+
# invoke the API call request to fetch the response
|
34
|
+
response = Unirest.get query_url, headers:headers
|
35
|
+
|
36
|
+
#Error handling using HTTP status codes
|
37
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
38
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
39
|
+
end
|
40
|
+
|
41
|
+
response.body
|
42
|
+
end
|
43
|
+
|
44
|
+
# Returns a collection of addresses for an account.
|
45
|
+
# @param [String] id Required parameter: An account id
|
46
|
+
# @param [String] network Required parameter: Blockchain network
|
47
|
+
# @return mixed response from the API call
|
48
|
+
def list id, network
|
49
|
+
# the base uri for api requests
|
50
|
+
query_builder = Configuration.BASE_URI.dup
|
51
|
+
|
52
|
+
# prepare query string for API call
|
53
|
+
query_builder << "/accounts/{id}/addresses"
|
54
|
+
|
55
|
+
# process optional query parameters
|
56
|
+
query_builder = APIHelper.append_url_with_template_parameters query_builder, {
|
57
|
+
"id" => id,
|
58
|
+
}
|
59
|
+
|
60
|
+
# validate and preprocess url
|
61
|
+
query_url = APIHelper.clean_url query_builder
|
62
|
+
|
63
|
+
# prepare headers
|
64
|
+
headers = {
|
65
|
+
"user-agent" => "APIMATIC 2.0",
|
66
|
+
"accept" => "application/json",
|
67
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
68
|
+
"network" => network
|
69
|
+
}
|
70
|
+
|
71
|
+
# invoke the API call request to fetch the response
|
72
|
+
response = Unirest.get query_url, headers:headers
|
73
|
+
|
74
|
+
#Error handling using HTTP status codes
|
75
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
76
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
77
|
+
end
|
78
|
+
|
79
|
+
response.body
|
80
|
+
end
|
81
|
+
|
82
|
+
# Returns details of an address.
|
83
|
+
# @param [String] address Required parameter: An address
|
84
|
+
# @param [String] network Required parameter: Blockchain network
|
85
|
+
# @return mixed response from the API call
|
86
|
+
def show address, network
|
87
|
+
# the base uri for api requests
|
88
|
+
query_builder = Configuration.BASE_URI.dup
|
89
|
+
|
90
|
+
# prepare query string for API call
|
91
|
+
query_builder << "/addresses/{address}/show"
|
92
|
+
|
93
|
+
# process optional query parameters
|
94
|
+
query_builder = APIHelper.append_url_with_template_parameters query_builder, {
|
95
|
+
"address" => address,
|
96
|
+
}
|
97
|
+
|
98
|
+
# validate and preprocess url
|
99
|
+
query_url = APIHelper.clean_url query_builder
|
100
|
+
|
101
|
+
# prepare headers
|
102
|
+
headers = {
|
103
|
+
"user-agent" => "APIMATIC 2.0",
|
104
|
+
"accept" => "application/json",
|
105
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
106
|
+
"network" => network
|
107
|
+
}
|
108
|
+
|
109
|
+
# invoke the API call request to fetch the response
|
110
|
+
response = Unirest.get query_url, headers:headers
|
111
|
+
|
112
|
+
#Error handling using HTTP status codes
|
113
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
114
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
115
|
+
end
|
116
|
+
|
117
|
+
response.body
|
118
|
+
end
|
119
|
+
|
120
|
+
# Returns a newly created address.
|
121
|
+
# @param [String] account_id Required parameter: An account id
|
122
|
+
# @param [String] network Required parameter: Blockchain network
|
123
|
+
# @return mixed response from the API call
|
124
|
+
def create account_id, network
|
125
|
+
# the base uri for api requests
|
126
|
+
query_builder = Configuration.BASE_URI.dup
|
127
|
+
|
128
|
+
# prepare query string for API call
|
129
|
+
query_builder << "/addresses/new"
|
130
|
+
|
131
|
+
# validate and preprocess url
|
132
|
+
query_url = APIHelper.clean_url query_builder
|
133
|
+
|
134
|
+
# prepare headers
|
135
|
+
headers = {
|
136
|
+
"user-agent" => "APIMATIC 2.0",
|
137
|
+
"accept" => "application/json",
|
138
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
139
|
+
"network" => network
|
140
|
+
}
|
141
|
+
|
142
|
+
# prepare parameters
|
143
|
+
parameters = {
|
144
|
+
"account_id" => account_id
|
145
|
+
}
|
146
|
+
|
147
|
+
# invoke the API call request to fetch the response
|
148
|
+
response = Unirest.post query_url, headers:headers, parameters:parameters
|
149
|
+
|
150
|
+
#Error handling using HTTP status codes
|
151
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
152
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
153
|
+
end
|
154
|
+
|
155
|
+
response.body
|
156
|
+
end
|
157
|
+
|
158
|
+
# Returns the deleted address.
|
159
|
+
# @param [String] address Required parameter: An address
|
160
|
+
# @param [String] network Required parameter: Blockchain network
|
161
|
+
# @return mixed response from the API call
|
162
|
+
def delete address, network
|
163
|
+
# the base uri for api requests
|
164
|
+
query_builder = Configuration.BASE_URI.dup
|
165
|
+
|
166
|
+
# prepare query string for API call
|
167
|
+
query_builder << "/addresses/delete"
|
168
|
+
|
169
|
+
# validate and preprocess url
|
170
|
+
query_url = APIHelper.clean_url query_builder
|
171
|
+
|
172
|
+
# prepare headers
|
173
|
+
headers = {
|
174
|
+
"user-agent" => "APIMATIC 2.0",
|
175
|
+
"accept" => "application/json",
|
176
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
177
|
+
"network" => network
|
178
|
+
}
|
179
|
+
|
180
|
+
# prepare parameters
|
181
|
+
parameters = {
|
182
|
+
"address" => address
|
183
|
+
}
|
184
|
+
|
185
|
+
# invoke the API call request to fetch the response
|
186
|
+
response = Unirest.delete query_url, headers:headers, parameters:parameters
|
187
|
+
|
188
|
+
#Error handling using HTTP status codes
|
189
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
190
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
191
|
+
end
|
192
|
+
|
193
|
+
response.body
|
194
|
+
end
|
195
|
+
|
196
|
+
# Returns a set of transactions for an addresses.
|
197
|
+
# @param [String] address Required parameter: An address
|
198
|
+
# @param [String] network Required parameter: Blockchain network
|
199
|
+
# @param [Numeric] limit Optional parameter: The number of transactions to return, starting with most recent (default=50, max=500)
|
200
|
+
# @return mixed response from the API call
|
201
|
+
def get_address_transactions address, network, limit: nil
|
202
|
+
# the base uri for api requests
|
203
|
+
query_builder = Configuration.BASE_URI.dup
|
204
|
+
|
205
|
+
# prepare query string for API call
|
206
|
+
query_builder << "/addresses/{address}/transactions"
|
207
|
+
|
208
|
+
# process optional query parameters
|
209
|
+
query_builder = APIHelper.append_url_with_template_parameters query_builder, {
|
210
|
+
"address" => address,
|
211
|
+
}
|
212
|
+
|
213
|
+
# process optional query parameters
|
214
|
+
query_builder = APIHelper.append_url_with_query_parameters query_builder, {
|
215
|
+
"limit" => limit,
|
216
|
+
}
|
217
|
+
|
218
|
+
# validate and preprocess url
|
219
|
+
query_url = APIHelper.clean_url query_builder
|
220
|
+
|
221
|
+
# prepare headers
|
222
|
+
headers = {
|
223
|
+
"user-agent" => "APIMATIC 2.0",
|
224
|
+
"accept" => "application/json",
|
225
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
226
|
+
"network" => network
|
227
|
+
}
|
228
|
+
|
229
|
+
# invoke the API call request to fetch the response
|
230
|
+
response = Unirest.get query_url, headers:headers
|
231
|
+
|
232
|
+
#Error handling using HTTP status codes
|
233
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
234
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
235
|
+
end
|
236
|
+
|
237
|
+
response.body
|
238
|
+
end
|
239
|
+
|
240
|
+
# Returns a collection of unspent outputs for an address. These outputs can be used as inputs for a new transaction.
|
241
|
+
# @param [String] address Required parameter: An address
|
242
|
+
# @param [String] network Required parameter: Blockchain network
|
243
|
+
# @return mixed response from the API call
|
244
|
+
def get_address_unspent_outputs address, network
|
245
|
+
# the base uri for api requests
|
246
|
+
query_builder = Configuration.BASE_URI.dup
|
247
|
+
|
248
|
+
# prepare query string for API call
|
249
|
+
query_builder << "/addresses/{address}/unspents"
|
250
|
+
|
251
|
+
# process optional query parameters
|
252
|
+
query_builder = APIHelper.append_url_with_template_parameters query_builder, {
|
253
|
+
"address" => address,
|
254
|
+
}
|
255
|
+
|
256
|
+
# validate and preprocess url
|
257
|
+
query_url = APIHelper.clean_url query_builder
|
258
|
+
|
259
|
+
# prepare headers
|
260
|
+
headers = {
|
261
|
+
"user-agent" => "APIMATIC 2.0",
|
262
|
+
"accept" => "application/json",
|
263
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
264
|
+
"network" => network
|
265
|
+
}
|
266
|
+
|
267
|
+
# invoke the API call request to fetch the response
|
268
|
+
response = Unirest.get query_url, headers:headers
|
269
|
+
|
270
|
+
#Error handling using HTTP status codes
|
271
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
272
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
273
|
+
end
|
274
|
+
|
275
|
+
response.body
|
276
|
+
end
|
277
|
+
|
278
|
+
end
|
279
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
# This file was automatically generated by APIMATIC BETA v2.0 on 02/26/2016
|
2
|
+
|
3
|
+
module ScaleChain
|
4
|
+
class APIKeyController
|
5
|
+
|
6
|
+
# Returns a newly created API key.
|
7
|
+
# @return mixed response from the API call
|
8
|
+
def create
|
9
|
+
# the base uri for api requests
|
10
|
+
query_builder = Configuration.BASE_URI.dup
|
11
|
+
|
12
|
+
# prepare query string for API call
|
13
|
+
query_builder << "/clients/new"
|
14
|
+
|
15
|
+
# validate and preprocess url
|
16
|
+
query_url = APIHelper.clean_url query_builder
|
17
|
+
|
18
|
+
# prepare headers
|
19
|
+
headers = {
|
20
|
+
"user-agent" => "APIMATIC 2.0",
|
21
|
+
"accept" => "application/json",
|
22
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token)
|
23
|
+
}
|
24
|
+
|
25
|
+
# invoke the API call request to fetch the response
|
26
|
+
response = Unirest.post query_url, headers:headers
|
27
|
+
|
28
|
+
#Error handling using HTTP status codes
|
29
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
30
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
31
|
+
end
|
32
|
+
|
33
|
+
response.body
|
34
|
+
end
|
35
|
+
|
36
|
+
# Returns a collection of API keys for the authorized user.
|
37
|
+
# @return mixed response from the API call
|
38
|
+
def list
|
39
|
+
# the base uri for api requests
|
40
|
+
query_builder = Configuration.BASE_URI.dup
|
41
|
+
|
42
|
+
# prepare query string for API call
|
43
|
+
query_builder << "/clients/list"
|
44
|
+
|
45
|
+
# validate and preprocess url
|
46
|
+
query_url = APIHelper.clean_url query_builder
|
47
|
+
|
48
|
+
# prepare headers
|
49
|
+
headers = {
|
50
|
+
"user-agent" => "APIMATIC 2.0",
|
51
|
+
"accept" => "application/json",
|
52
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token)
|
53
|
+
}
|
54
|
+
|
55
|
+
# invoke the API call request to fetch the response
|
56
|
+
response = Unirest.get query_url, headers:headers
|
57
|
+
|
58
|
+
#Error handling using HTTP status codes
|
59
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
60
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
61
|
+
end
|
62
|
+
|
63
|
+
response.body
|
64
|
+
end
|
65
|
+
|
66
|
+
# Returns the deleted API key id.
|
67
|
+
# @param [String] id Required parameter: An API key id
|
68
|
+
# @return mixed response from the API call
|
69
|
+
def delete id
|
70
|
+
# the base uri for api requests
|
71
|
+
query_builder = Configuration.BASE_URI.dup
|
72
|
+
|
73
|
+
# prepare query string for API call
|
74
|
+
query_builder << "/clients/delete"
|
75
|
+
|
76
|
+
# validate and preprocess url
|
77
|
+
query_url = APIHelper.clean_url query_builder
|
78
|
+
|
79
|
+
# prepare headers
|
80
|
+
headers = {
|
81
|
+
"user-agent" => "APIMATIC 2.0",
|
82
|
+
"accept" => "application/json",
|
83
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token)
|
84
|
+
}
|
85
|
+
|
86
|
+
# prepare parameters
|
87
|
+
parameters = {
|
88
|
+
"id" => id
|
89
|
+
}
|
90
|
+
|
91
|
+
# invoke the API call request to fetch the response
|
92
|
+
response = Unirest.delete query_url, headers:headers, parameters:parameters
|
93
|
+
|
94
|
+
#Error handling using HTTP status codes
|
95
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
96
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
97
|
+
end
|
98
|
+
|
99
|
+
response.body
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# This file was automatically generated by APIMATIC BETA v2.0 on 02/26/2016
|
2
|
+
|
3
|
+
module ScaleChain
|
4
|
+
class AuthorizationController
|
5
|
+
|
6
|
+
# TODO: type endpoint description here
|
7
|
+
# @param [String] client_id Required parameter: TODO: type description here
|
8
|
+
# @param [String] client_secret Required parameter: TODO: type description here
|
9
|
+
# @return mixed response from the API call
|
10
|
+
def get_access_token_by_client_credential client_id, client_secret
|
11
|
+
# the base uri for api requests
|
12
|
+
query_builder = Configuration.BASE_URI.dup
|
13
|
+
|
14
|
+
# prepare query string for API call
|
15
|
+
query_builder << "/oauth2/token"
|
16
|
+
|
17
|
+
# validate and preprocess url
|
18
|
+
query_url = APIHelper.clean_url query_builder
|
19
|
+
|
20
|
+
# prepare headers
|
21
|
+
headers = {
|
22
|
+
"user-agent" => "APIMATIC 2.0",
|
23
|
+
"accept" => "application/json"
|
24
|
+
}
|
25
|
+
|
26
|
+
# prepare parameters
|
27
|
+
parameters = {
|
28
|
+
"client_id" => client_id,
|
29
|
+
"client_secret" => client_secret,
|
30
|
+
"grant_type" => "client_credentials"
|
31
|
+
}
|
32
|
+
|
33
|
+
# invoke the API call request to fetch the response
|
34
|
+
response = Unirest.post query_url, headers:headers, parameters:parameters
|
35
|
+
|
36
|
+
#Error handling using HTTP status codes
|
37
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
38
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
39
|
+
end
|
40
|
+
|
41
|
+
response.body
|
42
|
+
end
|
43
|
+
|
44
|
+
# TODO: type endpoint description here
|
45
|
+
# @param [String] client_id Required parameter: TODO: type description here
|
46
|
+
# @param [String] client_secret Required parameter: TODO: type description here
|
47
|
+
# @param [String] refresh_token Required parameter: TODO: type description here
|
48
|
+
# @return mixed response from the API call
|
49
|
+
def get_access_token_by_refresh_token client_id, client_secret, refresh_token
|
50
|
+
# the base uri for api requests
|
51
|
+
query_builder = Configuration.BASE_URI.dup
|
52
|
+
|
53
|
+
# prepare query string for API call
|
54
|
+
query_builder << "/oauth2/token"
|
55
|
+
|
56
|
+
# validate and preprocess url
|
57
|
+
query_url = APIHelper.clean_url query_builder
|
58
|
+
|
59
|
+
# prepare headers
|
60
|
+
headers = {
|
61
|
+
"user-agent" => "APIMATIC 2.0",
|
62
|
+
"accept" => "application/json"
|
63
|
+
}
|
64
|
+
|
65
|
+
# prepare parameters
|
66
|
+
parameters = {
|
67
|
+
"client_id" => client_id,
|
68
|
+
"client_secret" => client_secret,
|
69
|
+
"grant_type" => "refresh_token",
|
70
|
+
"refresh_token" => refresh_token
|
71
|
+
}
|
72
|
+
|
73
|
+
# invoke the API call request to fetch the response
|
74
|
+
response = Unirest.post query_url, headers:headers, parameters:parameters
|
75
|
+
|
76
|
+
#Error handling using HTTP status codes
|
77
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
78
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
79
|
+
end
|
80
|
+
|
81
|
+
response.body
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# This file was automatically generated by APIMATIC BETA v2.0 on 02/26/2016
|
2
|
+
|
3
|
+
module ScaleChain
|
4
|
+
class BlockController
|
5
|
+
|
6
|
+
# Returns details about a block, including all transaction hashes.
|
7
|
+
# @param [String] block Required parameter: Hash, Height, or Latest
|
8
|
+
# @param [String] network Required parameter: Blockchain network
|
9
|
+
# @return mixed response from the API call
|
10
|
+
def get_block block, network
|
11
|
+
# the base uri for api requests
|
12
|
+
query_builder = Configuration.BASE_URI.dup
|
13
|
+
|
14
|
+
# prepare query string for API call
|
15
|
+
query_builder << "/blocks/{block}"
|
16
|
+
|
17
|
+
# process optional query parameters
|
18
|
+
query_builder = APIHelper.append_url_with_template_parameters query_builder, {
|
19
|
+
"block" => block,
|
20
|
+
}
|
21
|
+
|
22
|
+
# validate and preprocess url
|
23
|
+
query_url = APIHelper.clean_url query_builder
|
24
|
+
|
25
|
+
# prepare headers
|
26
|
+
headers = {
|
27
|
+
"user-agent" => "APIMATIC 2.0",
|
28
|
+
"accept" => "application/json",
|
29
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
30
|
+
"network" => network
|
31
|
+
}
|
32
|
+
|
33
|
+
# invoke the API call request to fetch the response
|
34
|
+
response = Unirest.get query_url, headers:headers
|
35
|
+
|
36
|
+
#Error handling using HTTP status codes
|
37
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
38
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
39
|
+
end
|
40
|
+
|
41
|
+
response.body
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
# This file was automatically generated by APIMATIC BETA v2.0 on 02/26/2016
|
2
|
+
|
3
|
+
module ScaleChain
|
4
|
+
class NodeController
|
5
|
+
|
6
|
+
# Returns a collection of nodes for the authorized user.
|
7
|
+
# @param [String] network Required parameter: Blockchain network
|
8
|
+
# @return mixed response from the API call
|
9
|
+
def list network
|
10
|
+
# the base uri for api requests
|
11
|
+
query_builder = Configuration.BASE_URI.dup
|
12
|
+
|
13
|
+
# prepare query string for API call
|
14
|
+
query_builder << "/nodes/list"
|
15
|
+
|
16
|
+
# validate and preprocess url
|
17
|
+
query_url = APIHelper.clean_url query_builder
|
18
|
+
|
19
|
+
# prepare headers
|
20
|
+
headers = {
|
21
|
+
"user-agent" => "APIMATIC 2.0",
|
22
|
+
"accept" => "application/json",
|
23
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
24
|
+
"network" => network
|
25
|
+
}
|
26
|
+
|
27
|
+
# invoke the API call request to fetch the response
|
28
|
+
response = Unirest.get query_url, headers:headers
|
29
|
+
|
30
|
+
#Error handling using HTTP status codes
|
31
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
32
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
33
|
+
end
|
34
|
+
|
35
|
+
response.body
|
36
|
+
end
|
37
|
+
|
38
|
+
# Returns a newly registered node.
|
39
|
+
# @param [String] network Required parameter: Blockchain network
|
40
|
+
# @param [mixed] node Required parameter: A node object
|
41
|
+
# @return mixed response from the API call
|
42
|
+
def register node, network
|
43
|
+
# the base uri for api requests
|
44
|
+
query_builder = Configuration.BASE_URI.dup
|
45
|
+
|
46
|
+
# prepare query string for API call
|
47
|
+
query_builder << "/nodes/new"
|
48
|
+
|
49
|
+
# validate and preprocess url
|
50
|
+
query_url = APIHelper.clean_url query_builder
|
51
|
+
|
52
|
+
# prepare headers
|
53
|
+
headers = {
|
54
|
+
"user-agent" => "APIMATIC 2.0",
|
55
|
+
"accept" => "application/json",
|
56
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
57
|
+
"network" => network
|
58
|
+
}
|
59
|
+
|
60
|
+
# prepare parameters
|
61
|
+
parameters = {
|
62
|
+
"node" => node
|
63
|
+
}
|
64
|
+
|
65
|
+
# invoke the API call request to fetch the response
|
66
|
+
response = Unirest.post query_url, headers:headers, parameters:parameters
|
67
|
+
|
68
|
+
#Error handling using HTTP status codes
|
69
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
70
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
71
|
+
end
|
72
|
+
|
73
|
+
response.body
|
74
|
+
end
|
75
|
+
|
76
|
+
# Returns the deleted node id.
|
77
|
+
# @param [String] id Required parameter: A node id
|
78
|
+
# @return mixed response from the API call
|
79
|
+
def delete id
|
80
|
+
# the base uri for api requests
|
81
|
+
query_builder = Configuration.BASE_URI.dup
|
82
|
+
|
83
|
+
# prepare query string for API call
|
84
|
+
query_builder << "/nodes/delete"
|
85
|
+
|
86
|
+
# validate and preprocess url
|
87
|
+
query_url = APIHelper.clean_url query_builder
|
88
|
+
|
89
|
+
# prepare headers
|
90
|
+
headers = {
|
91
|
+
"user-agent" => "APIMATIC 2.0",
|
92
|
+
"accept" => "application/json",
|
93
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token)
|
94
|
+
}
|
95
|
+
|
96
|
+
# prepare parameters
|
97
|
+
parameters = {
|
98
|
+
"id" => id
|
99
|
+
}
|
100
|
+
|
101
|
+
# invoke the API call request to fetch the response
|
102
|
+
response = Unirest.delete query_url, headers:headers, parameters:parameters
|
103
|
+
|
104
|
+
#Error handling using HTTP status codes
|
105
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
106
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
107
|
+
end
|
108
|
+
|
109
|
+
response.body
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
113
|
+
end
|
@@ -0,0 +1,159 @@
|
|
1
|
+
# This file was automatically generated by APIMATIC BETA v2.0 on 02/26/2016
|
2
|
+
|
3
|
+
module ScaleChain
|
4
|
+
class TransactionController
|
5
|
+
|
6
|
+
# Returns details about a transaction, including inputs and outputs.
|
7
|
+
# @param [String] hash Required parameter: A transaction hash
|
8
|
+
# @param [String] network Required parameter: Blockchain network
|
9
|
+
# @return mixed response from the API call
|
10
|
+
def get_transaction hash, network
|
11
|
+
# the base uri for api requests
|
12
|
+
query_builder = Configuration.BASE_URI.dup
|
13
|
+
|
14
|
+
# prepare query string for API call
|
15
|
+
query_builder << "/transactions/{hash}"
|
16
|
+
|
17
|
+
# process optional query parameters
|
18
|
+
query_builder = APIHelper.append_url_with_template_parameters query_builder, {
|
19
|
+
"hash" => hash,
|
20
|
+
}
|
21
|
+
|
22
|
+
# validate and preprocess url
|
23
|
+
query_url = APIHelper.clean_url query_builder
|
24
|
+
|
25
|
+
# prepare headers
|
26
|
+
headers = {
|
27
|
+
"user-agent" => "APIMATIC 2.0",
|
28
|
+
"accept" => "application/json",
|
29
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
30
|
+
"network" => network
|
31
|
+
}
|
32
|
+
|
33
|
+
# invoke the API call request to fetch the response
|
34
|
+
response = Unirest.get query_url, headers:headers
|
35
|
+
|
36
|
+
#Error handling using HTTP status codes
|
37
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
38
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
39
|
+
end
|
40
|
+
|
41
|
+
response.body
|
42
|
+
end
|
43
|
+
|
44
|
+
# Returns the raw transaction hex data for a given transaction hash.
|
45
|
+
# @param [String] hash Required parameter: A transaction hash
|
46
|
+
# @param [String] network Required parameter: Blockchain network
|
47
|
+
# @return mixed response from the API call
|
48
|
+
def get_raw_transaction_hex hash, network
|
49
|
+
# the base uri for api requests
|
50
|
+
query_builder = Configuration.BASE_URI.dup
|
51
|
+
|
52
|
+
# prepare query string for API call
|
53
|
+
query_builder << "/transactions/{hash}/hex"
|
54
|
+
|
55
|
+
# process optional query parameters
|
56
|
+
query_builder = APIHelper.append_url_with_template_parameters query_builder, {
|
57
|
+
"hash" => hash,
|
58
|
+
}
|
59
|
+
|
60
|
+
# validate and preprocess url
|
61
|
+
query_url = APIHelper.clean_url query_builder
|
62
|
+
|
63
|
+
# prepare headers
|
64
|
+
headers = {
|
65
|
+
"user-agent" => "APIMATIC 2.0",
|
66
|
+
"accept" => "application/json",
|
67
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
68
|
+
"network" => network
|
69
|
+
}
|
70
|
+
|
71
|
+
# invoke the API call request to fetch the response
|
72
|
+
response = Unirest.get query_url, headers:headers
|
73
|
+
|
74
|
+
#Error handling using HTTP status codes
|
75
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
76
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
77
|
+
end
|
78
|
+
|
79
|
+
response.body
|
80
|
+
end
|
81
|
+
|
82
|
+
# Returns a signed transaction in hex.
|
83
|
+
# @param [String] network Required parameter: Blockchain network
|
84
|
+
# @param [String] raw_tx_hex Required parameter: A raw transaction in hex
|
85
|
+
# @return mixed response from the API call
|
86
|
+
def sign_raw_transaction raw_tx_hex, network
|
87
|
+
# the base uri for api requests
|
88
|
+
query_builder = Configuration.BASE_URI.dup
|
89
|
+
|
90
|
+
# prepare query string for API call
|
91
|
+
query_builder << "/transactions/sign"
|
92
|
+
|
93
|
+
# validate and preprocess url
|
94
|
+
query_url = APIHelper.clean_url query_builder
|
95
|
+
|
96
|
+
# prepare headers
|
97
|
+
headers = {
|
98
|
+
"user-agent" => "APIMATIC 2.0",
|
99
|
+
"accept" => "application/json",
|
100
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
101
|
+
"network" => network
|
102
|
+
}
|
103
|
+
|
104
|
+
# prepare parameters
|
105
|
+
parameters = {
|
106
|
+
"raw_tx_hex" => raw_tx_hex
|
107
|
+
}
|
108
|
+
|
109
|
+
# invoke the API call request to fetch the response
|
110
|
+
response = Unirest.post query_url, headers:headers, parameters:parameters
|
111
|
+
|
112
|
+
#Error handling using HTTP status codes
|
113
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
114
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
115
|
+
end
|
116
|
+
|
117
|
+
response.body
|
118
|
+
end
|
119
|
+
|
120
|
+
# Accepts a raw signed transaction in hex format and submits to the blockchain network and returns the transaction hash in hex.
|
121
|
+
# @param [String] network Required parameter: Blockchain network
|
122
|
+
# @param [String] signed_hex Required parameter: A signed transaction in hex format
|
123
|
+
# @return mixed response from the API call
|
124
|
+
def send_signed_transaction signed_hex, network
|
125
|
+
# the base uri for api requests
|
126
|
+
query_builder = Configuration.BASE_URI.dup
|
127
|
+
|
128
|
+
# prepare query string for API call
|
129
|
+
query_builder << "/transactions/send"
|
130
|
+
|
131
|
+
# validate and preprocess url
|
132
|
+
query_url = APIHelper.clean_url query_builder
|
133
|
+
|
134
|
+
# prepare headers
|
135
|
+
headers = {
|
136
|
+
"user-agent" => "APIMATIC 2.0",
|
137
|
+
"accept" => "application/json",
|
138
|
+
"Authorization" => "Bearer %s" % (Configuration.o_auth_access_token),
|
139
|
+
"network" => network
|
140
|
+
}
|
141
|
+
|
142
|
+
# prepare parameters
|
143
|
+
parameters = {
|
144
|
+
"signed_hex" => signed_hex
|
145
|
+
}
|
146
|
+
|
147
|
+
# invoke the API call request to fetch the response
|
148
|
+
response = Unirest.post query_url, headers:headers, parameters:parameters
|
149
|
+
|
150
|
+
#Error handling using HTTP status codes
|
151
|
+
if !(response.code.between?(200,206)) # [200,206] = HTTP OK
|
152
|
+
raise APIException.new "HTTP Response Not OK", response.code, response.raw_body
|
153
|
+
end
|
154
|
+
|
155
|
+
response.body
|
156
|
+
end
|
157
|
+
|
158
|
+
end
|
159
|
+
end
|
data/lib/scalechain.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# This file was automatically generated by APIMATIC BETA v2.0 on 02/26/2016
|
2
|
+
require 'openssl'
|
3
|
+
require 'json'
|
4
|
+
require 'unirest'
|
5
|
+
|
6
|
+
# APIMATIC Helper Files
|
7
|
+
require 'scalechain/api_helper.rb'
|
8
|
+
require 'scalechain/api_exception.rb'
|
9
|
+
require 'scalechain/configuration.rb'
|
10
|
+
|
11
|
+
# Controllers
|
12
|
+
require 'scalechain/controllers/authorization_controller.rb'
|
13
|
+
require 'scalechain/controllers/api_key_controller.rb'
|
14
|
+
require 'scalechain/controllers/account_controller.rb'
|
15
|
+
require 'scalechain/controllers/address_controller.rb'
|
16
|
+
require 'scalechain/controllers/node_controller.rb'
|
17
|
+
require 'scalechain/controllers/block_controller.rb'
|
18
|
+
require 'scalechain/controllers/transaction_controller.rb'
|
19
|
+
|
20
|
+
# Models
|
metadata
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: scalechain
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- ScaleChain
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-02-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: unirest
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.1.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.1.2
|
27
|
+
description: The ScaleChain SDK for Ruby
|
28
|
+
email: developer@scalechain.io
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- README.md
|
34
|
+
- lib/scalechain.rb
|
35
|
+
- lib/scalechain/api_exception.rb
|
36
|
+
- lib/scalechain/api_helper.rb
|
37
|
+
- lib/scalechain/configuration.rb
|
38
|
+
- lib/scalechain/controllers/account_controller.rb
|
39
|
+
- lib/scalechain/controllers/address_controller.rb
|
40
|
+
- lib/scalechain/controllers/api_key_controller.rb
|
41
|
+
- lib/scalechain/controllers/authorization_controller.rb
|
42
|
+
- lib/scalechain/controllers/block_controller.rb
|
43
|
+
- lib/scalechain/controllers/node_controller.rb
|
44
|
+
- lib/scalechain/controllers/transaction_controller.rb
|
45
|
+
homepage: https://scalechain.io
|
46
|
+
licenses: []
|
47
|
+
metadata: {}
|
48
|
+
post_install_message:
|
49
|
+
rdoc_options: []
|
50
|
+
require_paths:
|
51
|
+
- lib
|
52
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '2.0'
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
requirements: []
|
63
|
+
rubyforge_project:
|
64
|
+
rubygems_version: 2.4.6
|
65
|
+
signing_key:
|
66
|
+
specification_version: 4
|
67
|
+
summary: The ScaleChain SDK for Ruby
|
68
|
+
test_files: []
|