tapyrus-api-client 0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +9 -0
- data/Gemfile.lock +68 -0
- data/README.md +183 -0
- data/Rakefile +10 -0
- data/docs/AddTimestampRequest.md +20 -0
- data/docs/AddressApi.md +142 -0
- data/docs/CreateUserRequest.md +24 -0
- data/docs/GetAddressesResponse.md +20 -0
- data/docs/GetTokensResponse.md +20 -0
- data/docs/IssueTokenRequest.md +20 -0
- data/docs/PaymentApi.md +76 -0
- data/docs/PaymentRequest.md +22 -0
- data/docs/PaymentResponse.md +18 -0
- data/docs/ReissueTokenRequest.md +18 -0
- data/docs/TimestampApi.md +139 -0
- data/docs/TokenApi.md +355 -0
- data/docs/TokenResponse.md +20 -0
- data/docs/TransferTokenRequest.md +20 -0
- data/docs/UserApi.md +140 -0
- data/docs/UserinfoResponse.md +22 -0
- data/docs/UserinfoResponseBalances.md +18 -0
- data/git_push.sh +58 -0
- data/lib/tapyrus-api-client.rb +56 -0
- data/lib/tapyrus-api-client/api/address_api.rb +142 -0
- data/lib/tapyrus-api-client/api/payment_api.rb +83 -0
- data/lib/tapyrus-api-client/api/timestamp_api.rb +138 -0
- data/lib/tapyrus-api-client/api/token_api.rb +345 -0
- data/lib/tapyrus-api-client/api/user_api.rb +145 -0
- data/lib/tapyrus-api-client/api_client.rb +389 -0
- data/lib/tapyrus-api-client/api_error.rb +57 -0
- data/lib/tapyrus-api-client/configuration.rb +270 -0
- data/lib/tapyrus-api-client/models/add_timestamp_request.rb +232 -0
- data/lib/tapyrus-api-client/models/create_user_request.rb +269 -0
- data/lib/tapyrus-api-client/models/get_addresses_response.rb +229 -0
- data/lib/tapyrus-api-client/models/get_tokens_response.rb +227 -0
- data/lib/tapyrus-api-client/models/issue_token_request.rb +232 -0
- data/lib/tapyrus-api-client/models/payment_request.rb +246 -0
- data/lib/tapyrus-api-client/models/payment_response.rb +218 -0
- data/lib/tapyrus-api-client/models/reissue_token_request.rb +223 -0
- data/lib/tapyrus-api-client/models/token_response.rb +227 -0
- data/lib/tapyrus-api-client/models/transfer_token_request.rb +232 -0
- data/lib/tapyrus-api-client/models/userinfo_response.rb +238 -0
- data/lib/tapyrus-api-client/models/userinfo_response_balances.rb +218 -0
- data/lib/tapyrus-api-client/version.rb +15 -0
- data/spec/api/address_api_spec.rb +59 -0
- data/spec/api/payment_api_spec.rb +47 -0
- data/spec/api/timestamp_api_spec.rb +58 -0
- data/spec/api/token_api_spec.rb +98 -0
- data/spec/api/user_api_spec.rb +59 -0
- data/spec/api_client_spec.rb +226 -0
- data/spec/configuration_spec.rb +42 -0
- data/spec/models/add_timestamp_request_spec.rb +40 -0
- data/spec/models/create_user_request_spec.rb +52 -0
- data/spec/models/get_addresses_response_spec.rb +40 -0
- data/spec/models/get_tokens_response_spec.rb +40 -0
- data/spec/models/issue_token_request_spec.rb +40 -0
- data/spec/models/payment_request_spec.rb +46 -0
- data/spec/models/payment_response_spec.rb +34 -0
- data/spec/models/reissue_token_request_spec.rb +34 -0
- data/spec/models/token_response_spec.rb +40 -0
- data/spec/models/transfer_token_request_spec.rb +40 -0
- data/spec/models/userinfo_response_balances_spec.rb +34 -0
- data/spec/models/userinfo_response_spec.rb +46 -0
- data/spec/spec_helper.rb +111 -0
- data/tapyrus-api-client.gemspec +38 -0
- metadata +192 -0
@@ -0,0 +1,83 @@
|
|
1
|
+
=begin
|
2
|
+
#Tapyrus API
|
3
|
+
|
4
|
+
## イントロダクション これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていくことを予定しています。 * Payment: TPC(Tapyrus Coin) の送金 * Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録 * Token: 新しいトークンの発行、送金、焼却。NFTも利用可能 Tapyrus ブロックチェーンについては以下の情報を参照してください。 * [Chaintope のブロックチェーンプロトコル](https://www.chaintope.com/chaintope-blockchain-protocol/) * [chaintope/tapyrus-core - github](https://github.com/chaintope/tapyrus-core) ## Tapyrus API の利用法 Tapyrus API は REST API として提供されています。利用を開始するためには、Tapyrus API の `エンドポイント` に対して、 `認証` 済みの トークンを使いアクセスする必要があります。また、認証されたユーザはそれぞれが自身のウォレットを Tapyrus API 内部に持つことになります。 ウォレットではそのユーザの TPC やトークンといったアセットを管理するための鍵が管理され、アセットの移動などで利用されます。 ### Tapyrus API のエンドポイント エンドポイントは以下のフォーマットで作成され、 chaintope より提供されます。 `ap-01.tapyrus.chaintope.com` 例えば [testnet](https://testnet-explorer.tapyrus.dev.chaintope.com/blocks) では以下のようになります。 `testnet-api.tapyrus.chaintope.com` testnet は誰でも利用可能な動作の確認用のネットワークであり、予告なくリセットされる可能性があります。 利用に必要な TPC は [faucet](https://testnet-faucet.tapyrus.dev.chaintope.com) から取得できます。 * [faucet](https://testnet-faucet.tapyrus.dev.chaintope.com) ### OpenID Connect を使った認証 Tapyrus API では [OpenID Connect](https://openid.net/connect/) を使った認証をサポートします。この認証を利用するためには、 以下のステップを踏みます。 1. 利用する OpenID Provider(OP) を選択する 公開された OP から選択する方法と、自身で OP を構築する方法があります。独自のユーザデータベースがあり、そのユーザに Tapyrus API を利用させる場合は後者の自身で OP を構築する方法を選択することになります。 2. OAuth 2.0 Client Credential を入手する 多くの公開された OP では、アプリケーションを登録して Client Credential を入手する必要があります。手順は利用する OP に従ってください。 3. Access Token と ID Token を入手する OpenID Connect に沿った認証を行い、 token エンドポイントから ID Token を入手します。 4. Tapyrus API ユーザを作成する 入手した Access Token と ID Token を Tapyrus API の [createUser API](https://doc.api.tapyrus.chaintope.com/#operation/createUser) へ送り、 Tapyrus API のユーザを作成します。 コード例を後述の Getting Started ドキュメントで解説していますので、そちらを参照してください。 ## Tapyrus API ユーザとウォレットについて 認証により得たアクセストークンを使い、Tapyrus API ユーザを1つ作成する必要があります。 Tapyrus API の内部では、このユーザ1つにつき1つのウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されており、同時にそれらのカギに紐づくアセットも管理されます。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。 # Getting Started Getting Started ドキュメントでは実際のコード例を交えながらより具体的な Tapyrus API の利用法を解説しています。 * [Getting Started - [Javascript] Tapyrus API を利用するウェブアプリケーションの開発を学ぶ](https://github.com/chaintope/tapyrus-api-client-examples/tree/main/javascript/GettingStarted-ja.md)
|
5
|
+
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
|
+
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 5.2.1-SNAPSHOT
|
10
|
+
|
11
|
+
=end
|
12
|
+
|
13
|
+
require 'cgi'
|
14
|
+
|
15
|
+
module TapyrusApiClient
|
16
|
+
class PaymentApi
|
17
|
+
attr_accessor :api_client
|
18
|
+
|
19
|
+
def initialize(api_client = ApiClient.default)
|
20
|
+
@api_client = api_client
|
21
|
+
end
|
22
|
+
# 資金の送金
|
23
|
+
# 指定したアドレスに任意のtapyrusを送金します。
|
24
|
+
# @param [Hash] opts the optional parameters
|
25
|
+
# @option opts [PaymentRequest] :payment_request `address`, `amount`を受け取り、アドレスに対して指定した額の資金(tapyrus)を送金します。 任意で`fee`を設定し、送金手数料を指定できます。
|
26
|
+
# @return [PaymentResponse]
|
27
|
+
def transfer(opts = {})
|
28
|
+
data, _status_code, _headers = transfer_with_http_info(opts)
|
29
|
+
data
|
30
|
+
end
|
31
|
+
|
32
|
+
# 資金の送金
|
33
|
+
# 指定したアドレスに任意のtapyrusを送金します。
|
34
|
+
# @param [Hash] opts the optional parameters
|
35
|
+
# @option opts [PaymentRequest] :payment_request `address`, `amount`を受け取り、アドレスに対して指定した額の資金(tapyrus)を送金します。 任意で`fee`を設定し、送金手数料を指定できます。
|
36
|
+
# @return [Array<(PaymentResponse, Integer, Hash)>] PaymentResponse data, response status code and response headers
|
37
|
+
def transfer_with_http_info(opts = {})
|
38
|
+
if @api_client.config.debugging
|
39
|
+
@api_client.config.logger.debug 'Calling API: PaymentApi.transfer ...'
|
40
|
+
end
|
41
|
+
# resource path
|
42
|
+
local_var_path = '/payment'
|
43
|
+
|
44
|
+
# query parameters
|
45
|
+
query_params = opts[:query_params] || {}
|
46
|
+
|
47
|
+
# header parameters
|
48
|
+
header_params = opts[:header_params] || {}
|
49
|
+
# HTTP header 'Accept' (if needed)
|
50
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
51
|
+
# HTTP header 'Content-Type'
|
52
|
+
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
|
53
|
+
|
54
|
+
# form parameters
|
55
|
+
form_params = opts[:form_params] || {}
|
56
|
+
|
57
|
+
# http body (model)
|
58
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'payment_request'])
|
59
|
+
|
60
|
+
# return_type
|
61
|
+
return_type = opts[:debug_return_type] || 'PaymentResponse'
|
62
|
+
|
63
|
+
# auth_names
|
64
|
+
auth_names = opts[:debug_auth_names] || []
|
65
|
+
|
66
|
+
new_options = opts.merge(
|
67
|
+
:operation => :"PaymentApi.transfer",
|
68
|
+
:header_params => header_params,
|
69
|
+
:query_params => query_params,
|
70
|
+
:form_params => form_params,
|
71
|
+
:body => post_body,
|
72
|
+
:auth_names => auth_names,
|
73
|
+
:return_type => return_type
|
74
|
+
)
|
75
|
+
|
76
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
77
|
+
if @api_client.config.debugging
|
78
|
+
@api_client.config.logger.debug "API called: PaymentApi#transfer\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
79
|
+
end
|
80
|
+
return data, status_code, headers
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,138 @@
|
|
1
|
+
=begin
|
2
|
+
#Tapyrus API
|
3
|
+
|
4
|
+
## イントロダクション これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていくことを予定しています。 * Payment: TPC(Tapyrus Coin) の送金 * Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録 * Token: 新しいトークンの発行、送金、焼却。NFTも利用可能 Tapyrus ブロックチェーンについては以下の情報を参照してください。 * [Chaintope のブロックチェーンプロトコル](https://www.chaintope.com/chaintope-blockchain-protocol/) * [chaintope/tapyrus-core - github](https://github.com/chaintope/tapyrus-core) ## Tapyrus API の利用法 Tapyrus API は REST API として提供されています。利用を開始するためには、Tapyrus API の `エンドポイント` に対して、 `認証` 済みの トークンを使いアクセスする必要があります。また、認証されたユーザはそれぞれが自身のウォレットを Tapyrus API 内部に持つことになります。 ウォレットではそのユーザの TPC やトークンといったアセットを管理するための鍵が管理され、アセットの移動などで利用されます。 ### Tapyrus API のエンドポイント エンドポイントは以下のフォーマットで作成され、 chaintope より提供されます。 `ap-01.tapyrus.chaintope.com` 例えば [testnet](https://testnet-explorer.tapyrus.dev.chaintope.com/blocks) では以下のようになります。 `testnet-api.tapyrus.chaintope.com` testnet は誰でも利用可能な動作の確認用のネットワークであり、予告なくリセットされる可能性があります。 利用に必要な TPC は [faucet](https://testnet-faucet.tapyrus.dev.chaintope.com) から取得できます。 * [faucet](https://testnet-faucet.tapyrus.dev.chaintope.com) ### OpenID Connect を使った認証 Tapyrus API では [OpenID Connect](https://openid.net/connect/) を使った認証をサポートします。この認証を利用するためには、 以下のステップを踏みます。 1. 利用する OpenID Provider(OP) を選択する 公開された OP から選択する方法と、自身で OP を構築する方法があります。独自のユーザデータベースがあり、そのユーザに Tapyrus API を利用させる場合は後者の自身で OP を構築する方法を選択することになります。 2. OAuth 2.0 Client Credential を入手する 多くの公開された OP では、アプリケーションを登録して Client Credential を入手する必要があります。手順は利用する OP に従ってください。 3. Access Token と ID Token を入手する OpenID Connect に沿った認証を行い、 token エンドポイントから ID Token を入手します。 4. Tapyrus API ユーザを作成する 入手した Access Token と ID Token を Tapyrus API の [createUser API](https://doc.api.tapyrus.chaintope.com/#operation/createUser) へ送り、 Tapyrus API のユーザを作成します。 コード例を後述の Getting Started ドキュメントで解説していますので、そちらを参照してください。 ## Tapyrus API ユーザとウォレットについて 認証により得たアクセストークンを使い、Tapyrus API ユーザを1つ作成する必要があります。 Tapyrus API の内部では、このユーザ1つにつき1つのウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されており、同時にそれらのカギに紐づくアセットも管理されます。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。 # Getting Started Getting Started ドキュメントでは実際のコード例を交えながらより具体的な Tapyrus API の利用法を解説しています。 * [Getting Started - [Javascript] Tapyrus API を利用するウェブアプリケーションの開発を学ぶ](https://github.com/chaintope/tapyrus-api-client-examples/tree/main/javascript/GettingStarted-ja.md)
|
5
|
+
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
|
+
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 5.2.1-SNAPSHOT
|
10
|
+
|
11
|
+
=end
|
12
|
+
|
13
|
+
require 'cgi'
|
14
|
+
|
15
|
+
module TapyrusApiClient
|
16
|
+
class TimestampApi
|
17
|
+
attr_accessor :api_client
|
18
|
+
|
19
|
+
def initialize(api_client = ApiClient.default)
|
20
|
+
@api_client = api_client
|
21
|
+
end
|
22
|
+
# Timestampを記録
|
23
|
+
# ブロックチェーンにハッシュ値をタイムスタンプとして記録します。
|
24
|
+
# @param [Hash] opts the optional parameters
|
25
|
+
# @option opts [AddTimestampRequest] :add_timestamp_request `content_hash`, `prefix`を受け取り、ブロックチェーンにハッシュ値をタイムスタンプとして記録します。
|
26
|
+
# @return [nil]
|
27
|
+
def add_timestamp(opts = {})
|
28
|
+
add_timestamp_with_http_info(opts)
|
29
|
+
nil
|
30
|
+
end
|
31
|
+
|
32
|
+
# Timestampを記録
|
33
|
+
# ブロックチェーンにハッシュ値をタイムスタンプとして記録します。
|
34
|
+
# @param [Hash] opts the optional parameters
|
35
|
+
# @option opts [AddTimestampRequest] :add_timestamp_request `content_hash`, `prefix`を受け取り、ブロックチェーンにハッシュ値をタイムスタンプとして記録します。
|
36
|
+
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
37
|
+
def add_timestamp_with_http_info(opts = {})
|
38
|
+
if @api_client.config.debugging
|
39
|
+
@api_client.config.logger.debug 'Calling API: TimestampApi.add_timestamp ...'
|
40
|
+
end
|
41
|
+
# resource path
|
42
|
+
local_var_path = '/timestamp'
|
43
|
+
|
44
|
+
# query parameters
|
45
|
+
query_params = opts[:query_params] || {}
|
46
|
+
|
47
|
+
# header parameters
|
48
|
+
header_params = opts[:header_params] || {}
|
49
|
+
# HTTP header 'Content-Type'
|
50
|
+
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
|
51
|
+
|
52
|
+
# form parameters
|
53
|
+
form_params = opts[:form_params] || {}
|
54
|
+
|
55
|
+
# http body (model)
|
56
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'add_timestamp_request'])
|
57
|
+
|
58
|
+
# return_type
|
59
|
+
return_type = opts[:debug_return_type]
|
60
|
+
|
61
|
+
# auth_names
|
62
|
+
auth_names = opts[:debug_auth_names] || []
|
63
|
+
|
64
|
+
new_options = opts.merge(
|
65
|
+
:operation => :"TimestampApi.add_timestamp",
|
66
|
+
:header_params => header_params,
|
67
|
+
:query_params => query_params,
|
68
|
+
:form_params => form_params,
|
69
|
+
:body => post_body,
|
70
|
+
:auth_names => auth_names,
|
71
|
+
:return_type => return_type
|
72
|
+
)
|
73
|
+
|
74
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
75
|
+
if @api_client.config.debugging
|
76
|
+
@api_client.config.logger.debug "API called: TimestampApi#add_timestamp\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
77
|
+
end
|
78
|
+
return data, status_code, headers
|
79
|
+
end
|
80
|
+
|
81
|
+
# Timestamp一覧表示
|
82
|
+
# ブロックチェーンに記録したタイムスタンプを取得し、`content_hash`,`prefix`,`txid`を一覧で表示します。
|
83
|
+
# @param [Hash] opts the optional parameters
|
84
|
+
# @return [Array<Array>]
|
85
|
+
def get_timestamps(opts = {})
|
86
|
+
data, _status_code, _headers = get_timestamps_with_http_info(opts)
|
87
|
+
data
|
88
|
+
end
|
89
|
+
|
90
|
+
# Timestamp一覧表示
|
91
|
+
# ブロックチェーンに記録したタイムスタンプを取得し、`content_hash`,`prefix`,`txid`を一覧で表示します。
|
92
|
+
# @param [Hash] opts the optional parameters
|
93
|
+
# @return [Array<(Array<Array>, Integer, Hash)>] Array<Array> data, response status code and response headers
|
94
|
+
def get_timestamps_with_http_info(opts = {})
|
95
|
+
if @api_client.config.debugging
|
96
|
+
@api_client.config.logger.debug 'Calling API: TimestampApi.get_timestamps ...'
|
97
|
+
end
|
98
|
+
# resource path
|
99
|
+
local_var_path = '/timestamps'
|
100
|
+
|
101
|
+
# query parameters
|
102
|
+
query_params = opts[:query_params] || {}
|
103
|
+
|
104
|
+
# header parameters
|
105
|
+
header_params = opts[:header_params] || {}
|
106
|
+
# HTTP header 'Accept' (if needed)
|
107
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
108
|
+
|
109
|
+
# form parameters
|
110
|
+
form_params = opts[:form_params] || {}
|
111
|
+
|
112
|
+
# http body (model)
|
113
|
+
post_body = opts[:debug_body]
|
114
|
+
|
115
|
+
# return_type
|
116
|
+
return_type = opts[:debug_return_type] || 'Array<Array>'
|
117
|
+
|
118
|
+
# auth_names
|
119
|
+
auth_names = opts[:debug_auth_names] || []
|
120
|
+
|
121
|
+
new_options = opts.merge(
|
122
|
+
:operation => :"TimestampApi.get_timestamps",
|
123
|
+
:header_params => header_params,
|
124
|
+
:query_params => query_params,
|
125
|
+
:form_params => form_params,
|
126
|
+
:body => post_body,
|
127
|
+
:auth_names => auth_names,
|
128
|
+
:return_type => return_type
|
129
|
+
)
|
130
|
+
|
131
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
132
|
+
if @api_client.config.debugging
|
133
|
+
@api_client.config.logger.debug "API called: TimestampApi#get_timestamps\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
134
|
+
end
|
135
|
+
return data, status_code, headers
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
@@ -0,0 +1,345 @@
|
|
1
|
+
=begin
|
2
|
+
#Tapyrus API
|
3
|
+
|
4
|
+
## イントロダクション これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていくことを予定しています。 * Payment: TPC(Tapyrus Coin) の送金 * Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録 * Token: 新しいトークンの発行、送金、焼却。NFTも利用可能 Tapyrus ブロックチェーンについては以下の情報を参照してください。 * [Chaintope のブロックチェーンプロトコル](https://www.chaintope.com/chaintope-blockchain-protocol/) * [chaintope/tapyrus-core - github](https://github.com/chaintope/tapyrus-core) ## Tapyrus API の利用法 Tapyrus API は REST API として提供されています。利用を開始するためには、Tapyrus API の `エンドポイント` に対して、 `認証` 済みの トークンを使いアクセスする必要があります。また、認証されたユーザはそれぞれが自身のウォレットを Tapyrus API 内部に持つことになります。 ウォレットではそのユーザの TPC やトークンといったアセットを管理するための鍵が管理され、アセットの移動などで利用されます。 ### Tapyrus API のエンドポイント エンドポイントは以下のフォーマットで作成され、 chaintope より提供されます。 `ap-01.tapyrus.chaintope.com` 例えば [testnet](https://testnet-explorer.tapyrus.dev.chaintope.com/blocks) では以下のようになります。 `testnet-api.tapyrus.chaintope.com` testnet は誰でも利用可能な動作の確認用のネットワークであり、予告なくリセットされる可能性があります。 利用に必要な TPC は [faucet](https://testnet-faucet.tapyrus.dev.chaintope.com) から取得できます。 * [faucet](https://testnet-faucet.tapyrus.dev.chaintope.com) ### OpenID Connect を使った認証 Tapyrus API では [OpenID Connect](https://openid.net/connect/) を使った認証をサポートします。この認証を利用するためには、 以下のステップを踏みます。 1. 利用する OpenID Provider(OP) を選択する 公開された OP から選択する方法と、自身で OP を構築する方法があります。独自のユーザデータベースがあり、そのユーザに Tapyrus API を利用させる場合は後者の自身で OP を構築する方法を選択することになります。 2. OAuth 2.0 Client Credential を入手する 多くの公開された OP では、アプリケーションを登録して Client Credential を入手する必要があります。手順は利用する OP に従ってください。 3. Access Token と ID Token を入手する OpenID Connect に沿った認証を行い、 token エンドポイントから ID Token を入手します。 4. Tapyrus API ユーザを作成する 入手した Access Token と ID Token を Tapyrus API の [createUser API](https://doc.api.tapyrus.chaintope.com/#operation/createUser) へ送り、 Tapyrus API のユーザを作成します。 コード例を後述の Getting Started ドキュメントで解説していますので、そちらを参照してください。 ## Tapyrus API ユーザとウォレットについて 認証により得たアクセストークンを使い、Tapyrus API ユーザを1つ作成する必要があります。 Tapyrus API の内部では、このユーザ1つにつき1つのウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されており、同時にそれらのカギに紐づくアセットも管理されます。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。 # Getting Started Getting Started ドキュメントでは実際のコード例を交えながらより具体的な Tapyrus API の利用法を解説しています。 * [Getting Started - [Javascript] Tapyrus API を利用するウェブアプリケーションの開発を学ぶ](https://github.com/chaintope/tapyrus-api-client-examples/tree/main/javascript/GettingStarted-ja.md)
|
5
|
+
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
|
+
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 5.2.1-SNAPSHOT
|
10
|
+
|
11
|
+
=end
|
12
|
+
|
13
|
+
require 'cgi'
|
14
|
+
|
15
|
+
module TapyrusApiClient
|
16
|
+
class TokenApi
|
17
|
+
attr_accessor :api_client
|
18
|
+
|
19
|
+
def initialize(api_client = ApiClient.default)
|
20
|
+
@api_client = api_client
|
21
|
+
end
|
22
|
+
# トークンの焼却
|
23
|
+
# 任意の数のトークンを焼却します。
|
24
|
+
# @param token_id [String] トークンの識別子。
|
25
|
+
# @param [Hash] opts the optional parameters
|
26
|
+
# @option opts [Integer] :amount `amount`を受け取り、指定した量のトークンを焼却します。 `amount`が未入力の場合全てのトークンを焼却します。
|
27
|
+
# @return [nil]
|
28
|
+
def burn_token(token_id, opts = {})
|
29
|
+
burn_token_with_http_info(token_id, opts)
|
30
|
+
nil
|
31
|
+
end
|
32
|
+
|
33
|
+
# トークンの焼却
|
34
|
+
# 任意の数のトークンを焼却します。
|
35
|
+
# @param token_id [String] トークンの識別子。
|
36
|
+
# @param [Hash] opts the optional parameters
|
37
|
+
# @option opts [Integer] :amount `amount`を受け取り、指定した量のトークンを焼却します。 `amount`が未入力の場合全てのトークンを焼却します。
|
38
|
+
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
39
|
+
def burn_token_with_http_info(token_id, opts = {})
|
40
|
+
if @api_client.config.debugging
|
41
|
+
@api_client.config.logger.debug 'Calling API: TokenApi.burn_token ...'
|
42
|
+
end
|
43
|
+
# verify the required parameter 'token_id' is set
|
44
|
+
if @api_client.config.client_side_validation && token_id.nil?
|
45
|
+
fail ArgumentError, "Missing the required parameter 'token_id' when calling TokenApi.burn_token"
|
46
|
+
end
|
47
|
+
# resource path
|
48
|
+
local_var_path = '/tokens/{token_id}/burn'.sub('{' + 'token_id' + '}', CGI.escape(token_id.to_s))
|
49
|
+
|
50
|
+
# query parameters
|
51
|
+
query_params = opts[:query_params] || {}
|
52
|
+
query_params[:'amount'] = opts[:'amount'] if !opts[:'amount'].nil?
|
53
|
+
|
54
|
+
# header parameters
|
55
|
+
header_params = opts[:header_params] || {}
|
56
|
+
|
57
|
+
# form parameters
|
58
|
+
form_params = opts[:form_params] || {}
|
59
|
+
|
60
|
+
# http body (model)
|
61
|
+
post_body = opts[:debug_body]
|
62
|
+
|
63
|
+
# return_type
|
64
|
+
return_type = opts[:debug_return_type]
|
65
|
+
|
66
|
+
# auth_names
|
67
|
+
auth_names = opts[:debug_auth_names] || []
|
68
|
+
|
69
|
+
new_options = opts.merge(
|
70
|
+
:operation => :"TokenApi.burn_token",
|
71
|
+
:header_params => header_params,
|
72
|
+
:query_params => query_params,
|
73
|
+
:form_params => form_params,
|
74
|
+
:body => post_body,
|
75
|
+
:auth_names => auth_names,
|
76
|
+
:return_type => return_type
|
77
|
+
)
|
78
|
+
|
79
|
+
data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
|
80
|
+
if @api_client.config.debugging
|
81
|
+
@api_client.config.logger.debug "API called: TokenApi#burn_token\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
82
|
+
end
|
83
|
+
return data, status_code, headers
|
84
|
+
end
|
85
|
+
|
86
|
+
# トークンの総量取得
|
87
|
+
# 所有するトークンの総量を取得し、トークン識別子(`token_id`)ごとに総量(`amount`)を一覧で表示します。
|
88
|
+
# @param [Hash] opts the optional parameters
|
89
|
+
# @option opts [Boolean] :confirmation_only オプションで`confirmation_only`を設定でき、`true`の場合ブロックチェーン上で承認済みのトークンのみを取得し、`false`の場合未承認のトークンも含めて取得します。デフォルトは`true`です。
|
90
|
+
# @return [Array<GetTokensResponse>]
|
91
|
+
def get_tokens(opts = {})
|
92
|
+
data, _status_code, _headers = get_tokens_with_http_info(opts)
|
93
|
+
data
|
94
|
+
end
|
95
|
+
|
96
|
+
# トークンの総量取得
|
97
|
+
# 所有するトークンの総量を取得し、トークン識別子(`token_id`)ごとに総量(`amount`)を一覧で表示します。
|
98
|
+
# @param [Hash] opts the optional parameters
|
99
|
+
# @option opts [Boolean] :confirmation_only オプションで`confirmation_only`を設定でき、`true`の場合ブロックチェーン上で承認済みのトークンのみを取得し、`false`の場合未承認のトークンも含めて取得します。デフォルトは`true`です。
|
100
|
+
# @return [Array<(Array<GetTokensResponse>, Integer, Hash)>] Array<GetTokensResponse> data, response status code and response headers
|
101
|
+
def get_tokens_with_http_info(opts = {})
|
102
|
+
if @api_client.config.debugging
|
103
|
+
@api_client.config.logger.debug 'Calling API: TokenApi.get_tokens ...'
|
104
|
+
end
|
105
|
+
# resource path
|
106
|
+
local_var_path = '/tokens'
|
107
|
+
|
108
|
+
# query parameters
|
109
|
+
query_params = opts[:query_params] || {}
|
110
|
+
query_params[:'confirmation_only'] = opts[:'confirmation_only'] if !opts[:'confirmation_only'].nil?
|
111
|
+
|
112
|
+
# header parameters
|
113
|
+
header_params = opts[:header_params] || {}
|
114
|
+
# HTTP header 'Accept' (if needed)
|
115
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
116
|
+
|
117
|
+
# form parameters
|
118
|
+
form_params = opts[:form_params] || {}
|
119
|
+
|
120
|
+
# http body (model)
|
121
|
+
post_body = opts[:debug_body]
|
122
|
+
|
123
|
+
# return_type
|
124
|
+
return_type = opts[:debug_return_type] || 'Array<GetTokensResponse>'
|
125
|
+
|
126
|
+
# auth_names
|
127
|
+
auth_names = opts[:debug_auth_names] || []
|
128
|
+
|
129
|
+
new_options = opts.merge(
|
130
|
+
:operation => :"TokenApi.get_tokens",
|
131
|
+
:header_params => header_params,
|
132
|
+
:query_params => query_params,
|
133
|
+
:form_params => form_params,
|
134
|
+
:body => post_body,
|
135
|
+
:auth_names => auth_names,
|
136
|
+
:return_type => return_type
|
137
|
+
)
|
138
|
+
|
139
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
140
|
+
if @api_client.config.debugging
|
141
|
+
@api_client.config.logger.debug "API called: TokenApi#get_tokens\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
142
|
+
end
|
143
|
+
return data, status_code, headers
|
144
|
+
end
|
145
|
+
|
146
|
+
# トークンの新規発行
|
147
|
+
# 任意の数のトークンを新規発行します。
|
148
|
+
# @param [Hash] opts the optional parameters
|
149
|
+
# @option opts [IssueTokenRequest] :issue_token_request `amount`を受け取り指定した数のトークンを新規発行します。 任意で`token_type`を設定し、トークンの種類を指定できます。 `token_type`が未指定な場合、再発行可能なトークンが発行されます。 トークンの種類は以下の通りです。 - 1: 再発行可能なトークン - 2: 再発行不可能なトークン - 3: NFT また、`token_type`が未指定または`1`の場合、任意でトークン識別子`id`を指定することで、指定したトークン識別子のトークンを再発行します。
|
150
|
+
# @return [TokenResponse]
|
151
|
+
def issue_token(opts = {})
|
152
|
+
data, _status_code, _headers = issue_token_with_http_info(opts)
|
153
|
+
data
|
154
|
+
end
|
155
|
+
|
156
|
+
# トークンの新規発行
|
157
|
+
# 任意の数のトークンを新規発行します。
|
158
|
+
# @param [Hash] opts the optional parameters
|
159
|
+
# @option opts [IssueTokenRequest] :issue_token_request `amount`を受け取り指定した数のトークンを新規発行します。 任意で`token_type`を設定し、トークンの種類を指定できます。 `token_type`が未指定な場合、再発行可能なトークンが発行されます。 トークンの種類は以下の通りです。 - 1: 再発行可能なトークン - 2: 再発行不可能なトークン - 3: NFT また、`token_type`が未指定または`1`の場合、任意でトークン識別子`id`を指定することで、指定したトークン識別子のトークンを再発行します。
|
160
|
+
# @return [Array<(TokenResponse, Integer, Hash)>] TokenResponse data, response status code and response headers
|
161
|
+
def issue_token_with_http_info(opts = {})
|
162
|
+
if @api_client.config.debugging
|
163
|
+
@api_client.config.logger.debug 'Calling API: TokenApi.issue_token ...'
|
164
|
+
end
|
165
|
+
# resource path
|
166
|
+
local_var_path = '/tokens/issue'
|
167
|
+
|
168
|
+
# query parameters
|
169
|
+
query_params = opts[:query_params] || {}
|
170
|
+
|
171
|
+
# header parameters
|
172
|
+
header_params = opts[:header_params] || {}
|
173
|
+
# HTTP header 'Accept' (if needed)
|
174
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
175
|
+
# HTTP header 'Content-Type'
|
176
|
+
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
|
177
|
+
|
178
|
+
# form parameters
|
179
|
+
form_params = opts[:form_params] || {}
|
180
|
+
|
181
|
+
# http body (model)
|
182
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'issue_token_request'])
|
183
|
+
|
184
|
+
# return_type
|
185
|
+
return_type = opts[:debug_return_type] || 'TokenResponse'
|
186
|
+
|
187
|
+
# auth_names
|
188
|
+
auth_names = opts[:debug_auth_names] || []
|
189
|
+
|
190
|
+
new_options = opts.merge(
|
191
|
+
:operation => :"TokenApi.issue_token",
|
192
|
+
:header_params => header_params,
|
193
|
+
:query_params => query_params,
|
194
|
+
:form_params => form_params,
|
195
|
+
:body => post_body,
|
196
|
+
:auth_names => auth_names,
|
197
|
+
:return_type => return_type
|
198
|
+
)
|
199
|
+
|
200
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
201
|
+
if @api_client.config.debugging
|
202
|
+
@api_client.config.logger.debug "API called: TokenApi#issue_token\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
203
|
+
end
|
204
|
+
return data, status_code, headers
|
205
|
+
end
|
206
|
+
|
207
|
+
# トークンの再発行
|
208
|
+
# 指定した識別子を持つ再発行可能なトークンを任意の量再発行します。
|
209
|
+
# @param token_id [String] トークンの識別子。
|
210
|
+
# @param [Hash] opts the optional parameters
|
211
|
+
# @option opts [ReissueTokenRequest] :reissue_token_request
|
212
|
+
# @return [TokenResponse]
|
213
|
+
def reissue_token(token_id, opts = {})
|
214
|
+
data, _status_code, _headers = reissue_token_with_http_info(token_id, opts)
|
215
|
+
data
|
216
|
+
end
|
217
|
+
|
218
|
+
# トークンの再発行
|
219
|
+
# 指定した識別子を持つ再発行可能なトークンを任意の量再発行します。
|
220
|
+
# @param token_id [String] トークンの識別子。
|
221
|
+
# @param [Hash] opts the optional parameters
|
222
|
+
# @option opts [ReissueTokenRequest] :reissue_token_request
|
223
|
+
# @return [Array<(TokenResponse, Integer, Hash)>] TokenResponse data, response status code and response headers
|
224
|
+
def reissue_token_with_http_info(token_id, opts = {})
|
225
|
+
if @api_client.config.debugging
|
226
|
+
@api_client.config.logger.debug 'Calling API: TokenApi.reissue_token ...'
|
227
|
+
end
|
228
|
+
# verify the required parameter 'token_id' is set
|
229
|
+
if @api_client.config.client_side_validation && token_id.nil?
|
230
|
+
fail ArgumentError, "Missing the required parameter 'token_id' when calling TokenApi.reissue_token"
|
231
|
+
end
|
232
|
+
# resource path
|
233
|
+
local_var_path = '/tokens/{token_id}/reissue'.sub('{' + 'token_id' + '}', CGI.escape(token_id.to_s))
|
234
|
+
|
235
|
+
# query parameters
|
236
|
+
query_params = opts[:query_params] || {}
|
237
|
+
|
238
|
+
# header parameters
|
239
|
+
header_params = opts[:header_params] || {}
|
240
|
+
# HTTP header 'Accept' (if needed)
|
241
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
242
|
+
# HTTP header 'Content-Type'
|
243
|
+
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
|
244
|
+
|
245
|
+
# form parameters
|
246
|
+
form_params = opts[:form_params] || {}
|
247
|
+
|
248
|
+
# http body (model)
|
249
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'reissue_token_request'])
|
250
|
+
|
251
|
+
# return_type
|
252
|
+
return_type = opts[:debug_return_type] || 'TokenResponse'
|
253
|
+
|
254
|
+
# auth_names
|
255
|
+
auth_names = opts[:debug_auth_names] || []
|
256
|
+
|
257
|
+
new_options = opts.merge(
|
258
|
+
:operation => :"TokenApi.reissue_token",
|
259
|
+
:header_params => header_params,
|
260
|
+
:query_params => query_params,
|
261
|
+
:form_params => form_params,
|
262
|
+
:body => post_body,
|
263
|
+
:auth_names => auth_names,
|
264
|
+
:return_type => return_type
|
265
|
+
)
|
266
|
+
|
267
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
268
|
+
if @api_client.config.debugging
|
269
|
+
@api_client.config.logger.debug "API called: TokenApi#reissue_token\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
270
|
+
end
|
271
|
+
return data, status_code, headers
|
272
|
+
end
|
273
|
+
|
274
|
+
# トークンの送付
|
275
|
+
# 任意の数のトークンを指定したアドレスに対して送付します。
|
276
|
+
# @param token_id [String] トークンの識別子。
|
277
|
+
# @param transfer_token_request [TransferTokenRequest] `address`でトークンを送付する相手のアドレスを指定し、`amount`で送付するトークンの量を指定します。
|
278
|
+
# @param [Hash] opts the optional parameters
|
279
|
+
# @return [TokenResponse]
|
280
|
+
def transfer_token(token_id, transfer_token_request, opts = {})
|
281
|
+
data, _status_code, _headers = transfer_token_with_http_info(token_id, transfer_token_request, opts)
|
282
|
+
data
|
283
|
+
end
|
284
|
+
|
285
|
+
# トークンの送付
|
286
|
+
# 任意の数のトークンを指定したアドレスに対して送付します。
|
287
|
+
# @param token_id [String] トークンの識別子。
|
288
|
+
# @param transfer_token_request [TransferTokenRequest] `address`でトークンを送付する相手のアドレスを指定し、`amount`で送付するトークンの量を指定します。
|
289
|
+
# @param [Hash] opts the optional parameters
|
290
|
+
# @return [Array<(TokenResponse, Integer, Hash)>] TokenResponse data, response status code and response headers
|
291
|
+
def transfer_token_with_http_info(token_id, transfer_token_request, opts = {})
|
292
|
+
if @api_client.config.debugging
|
293
|
+
@api_client.config.logger.debug 'Calling API: TokenApi.transfer_token ...'
|
294
|
+
end
|
295
|
+
# verify the required parameter 'token_id' is set
|
296
|
+
if @api_client.config.client_side_validation && token_id.nil?
|
297
|
+
fail ArgumentError, "Missing the required parameter 'token_id' when calling TokenApi.transfer_token"
|
298
|
+
end
|
299
|
+
# verify the required parameter 'transfer_token_request' is set
|
300
|
+
if @api_client.config.client_side_validation && transfer_token_request.nil?
|
301
|
+
fail ArgumentError, "Missing the required parameter 'transfer_token_request' when calling TokenApi.transfer_token"
|
302
|
+
end
|
303
|
+
# resource path
|
304
|
+
local_var_path = '/tokens/{token_id}/transfer'.sub('{' + 'token_id' + '}', CGI.escape(token_id.to_s))
|
305
|
+
|
306
|
+
# query parameters
|
307
|
+
query_params = opts[:query_params] || {}
|
308
|
+
|
309
|
+
# header parameters
|
310
|
+
header_params = opts[:header_params] || {}
|
311
|
+
# HTTP header 'Accept' (if needed)
|
312
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
313
|
+
# HTTP header 'Content-Type'
|
314
|
+
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
|
315
|
+
|
316
|
+
# form parameters
|
317
|
+
form_params = opts[:form_params] || {}
|
318
|
+
|
319
|
+
# http body (model)
|
320
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(transfer_token_request)
|
321
|
+
|
322
|
+
# return_type
|
323
|
+
return_type = opts[:debug_return_type] || 'TokenResponse'
|
324
|
+
|
325
|
+
# auth_names
|
326
|
+
auth_names = opts[:debug_auth_names] || []
|
327
|
+
|
328
|
+
new_options = opts.merge(
|
329
|
+
:operation => :"TokenApi.transfer_token",
|
330
|
+
:header_params => header_params,
|
331
|
+
:query_params => query_params,
|
332
|
+
:form_params => form_params,
|
333
|
+
:body => post_body,
|
334
|
+
:auth_names => auth_names,
|
335
|
+
:return_type => return_type
|
336
|
+
)
|
337
|
+
|
338
|
+
data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
|
339
|
+
if @api_client.config.debugging
|
340
|
+
@api_client.config.logger.debug "API called: TokenApi#transfer_token\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
341
|
+
end
|
342
|
+
return data, status_code, headers
|
343
|
+
end
|
344
|
+
end
|
345
|
+
end
|