tapyrus-api-client 0.0.3 → 1.1.0beta4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +11 -9
  3. data/README.md +54 -52
  4. data/docs/AddTimestampRequest.md +3 -1
  5. data/docs/AddTimestampResponse.md +36 -0
  6. data/docs/AddressApi.md +15 -10
  7. data/docs/ConsumeTrackingRequest.md +18 -0
  8. data/docs/GetTimestampResponse.md +36 -0
  9. data/docs/PurposeAddressRequest.md +18 -0
  10. data/docs/SupplyTrackingRequest.md +20 -0
  11. data/docs/TimestampApi.md +84 -16
  12. data/docs/TimestampType.md +15 -0
  13. data/docs/TokenApi.md +1 -1
  14. data/docs/TokenResponse.md +4 -4
  15. data/docs/TrackingApi.md +344 -0
  16. data/docs/TrackingDestination.md +20 -0
  17. data/docs/TrackingResponse.md +18 -0
  18. data/docs/TrackingSubject.md +20 -0
  19. data/docs/TrackingSubjectMerkleRoot.md +22 -0
  20. data/docs/TrackingTrace.md +40 -0
  21. data/docs/TrackingTracesResponse.md +44 -0
  22. data/docs/TransportTrackingRequest.md +18 -0
  23. data/docs/UserApi.md +1 -1
  24. data/git_push.sh +3 -4
  25. data/lib/tapyrus-api-client/api/address_api.rb +25 -11
  26. data/lib/tapyrus-api-client/api/timestamp_api.rb +85 -17
  27. data/lib/tapyrus-api-client/api/token_api.rb +15 -6
  28. data/lib/tapyrus-api-client/api/tracking_api.rb +348 -0
  29. data/lib/tapyrus-api-client/api/user_api.rb +7 -4
  30. data/lib/tapyrus-api-client/api_client.rb +6 -6
  31. data/lib/tapyrus-api-client/api_error.rb +3 -3
  32. data/lib/tapyrus-api-client/configuration.rb +23 -6
  33. data/lib/tapyrus-api-client/models/add_timestamp_request.rb +16 -7
  34. data/lib/tapyrus-api-client/models/add_timestamp_response.rb +299 -0
  35. data/lib/tapyrus-api-client/models/consume_tracking_request.rb +226 -0
  36. data/lib/tapyrus-api-client/models/create_user_request.rb +3 -3
  37. data/lib/tapyrus-api-client/models/get_addresses_response.rb +3 -3
  38. data/lib/tapyrus-api-client/models/get_timestamp_response.rb +337 -0
  39. data/lib/tapyrus-api-client/models/get_tokens_response.rb +3 -3
  40. data/lib/tapyrus-api-client/models/issue_token_request.rb +3 -3
  41. data/lib/tapyrus-api-client/models/purpose_address_request.rb +218 -0
  42. data/lib/tapyrus-api-client/models/reissue_token_request.rb +3 -3
  43. data/lib/tapyrus-api-client/models/supply_tracking_request.rb +241 -0
  44. data/lib/tapyrus-api-client/models/timestamp_type.rb +37 -0
  45. data/lib/tapyrus-api-client/models/token_response.rb +11 -10
  46. data/lib/tapyrus-api-client/models/{payment_request.rb → tracking_destination.rb} +15 -32
  47. data/lib/tapyrus-api-client/models/{payment_response.rb → tracking_response.rb} +12 -6
  48. data/lib/tapyrus-api-client/models/tracking_subject.rb +234 -0
  49. data/lib/tapyrus-api-client/models/tracking_subject_merkle_root.rb +238 -0
  50. data/lib/tapyrus-api-client/models/tracking_trace.rb +321 -0
  51. data/lib/tapyrus-api-client/models/tracking_traces_response.rb +343 -0
  52. data/lib/tapyrus-api-client/models/transfer_token_request.rb +3 -3
  53. data/lib/tapyrus-api-client/models/transport_tracking_request.rb +226 -0
  54. data/lib/tapyrus-api-client/models/userinfo_response.rb +3 -3
  55. data/lib/tapyrus-api-client/models/userinfo_response_balances.rb +3 -3
  56. data/lib/tapyrus-api-client/version.rb +4 -4
  57. data/lib/tapyrus-api-client.rb +17 -6
  58. data/spec/api/address_api_spec.rb +7 -5
  59. data/spec/api/timestamp_api_spec.rb +19 -7
  60. data/spec/api/token_api_spec.rb +3 -3
  61. data/spec/api/tracking_api_spec.rb +95 -0
  62. data/spec/api/user_api_spec.rb +3 -3
  63. data/spec/api_client_spec.rb +5 -5
  64. data/spec/configuration_spec.rb +6 -6
  65. data/spec/models/add_timestamp_request_spec.rb +9 -3
  66. data/spec/models/add_timestamp_response_spec.rb +88 -0
  67. data/spec/models/consume_tracking_request_spec.rb +34 -0
  68. data/spec/models/create_user_request_spec.rb +3 -3
  69. data/spec/models/get_addresses_response_spec.rb +3 -3
  70. data/spec/models/get_timestamp_response_spec.rb +92 -0
  71. data/spec/models/get_tokens_response_spec.rb +3 -3
  72. data/spec/models/issue_token_request_spec.rb +3 -3
  73. data/spec/models/purpose_address_request_spec.rb +34 -0
  74. data/spec/models/reissue_token_request_spec.rb +3 -3
  75. data/spec/models/supply_tracking_request_spec.rb +40 -0
  76. data/spec/models/timestamp_type_spec.rb +28 -0
  77. data/spec/models/token_response_spec.rb +4 -4
  78. data/spec/models/tracking_destination_spec.rb +40 -0
  79. data/spec/models/tracking_response_spec.rb +34 -0
  80. data/spec/models/tracking_subject_merkle_root_spec.rb +46 -0
  81. data/spec/models/tracking_subject_spec.rb +40 -0
  82. data/spec/models/tracking_trace_spec.rb +100 -0
  83. data/spec/models/tracking_traces_response_spec.rb +112 -0
  84. data/spec/models/transfer_token_request_spec.rb +3 -3
  85. data/spec/models/transport_tracking_request_spec.rb +34 -0
  86. data/spec/models/userinfo_response_balances_spec.rb +3 -3
  87. data/spec/models/userinfo_response_spec.rb +3 -3
  88. data/spec/spec_helper.rb +3 -3
  89. data/tapyrus-api-client.gemspec +4 -4
  90. metadata +67 -23
  91. data/docs/PaymentApi.md +0 -76
  92. data/docs/PaymentRequest.md +0 -22
  93. data/docs/PaymentResponse.md +0 -18
  94. data/lib/tapyrus-api-client/api/payment_api.rb +0 -83
  95. data/spec/api/payment_api_spec.rb +0 -47
  96. data/spec/models/payment_request_spec.rb +0 -46
  97. data/spec/models/payment_response_spec.rb +0 -34
@@ -0,0 +1,40 @@
1
+ # TapyrusApiClient::TrackingTrace
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **trace_id** | **Float** | | [optional] |
8
+ | **subject_id** | **String** | | [optional] |
9
+ | **tracking_payload** | **String** | | [optional] |
10
+ | **tracking_payload_output_index** | **Integer** | tracking_payload がセットされたアウトプットのインデックス | [optional] |
11
+ | **inclusion_proof** | **String** | subject_id が示す Subject の包含証明。Hex 文字列 | [optional] |
12
+ | **txid** | **String** | トランザクションID | [optional] |
13
+ | **tx_index** | **Integer** | | [optional] |
14
+ | **block_height** | **Integer** | | [optional] |
15
+ | **block_time** | **Integer** | | [optional] |
16
+ | **from_address** | **String** | | [optional] |
17
+ | **to_address** | **String** | | [optional] |
18
+ | **moved** | **Boolean** | subject_id が示す Subject が to_address からすでに移動済みの場合 true 、そうでなければ false になります | [optional] |
19
+
20
+ ## Example
21
+
22
+ ```ruby
23
+ require 'tapyrus-api-client'
24
+
25
+ instance = TapyrusApiClient::TrackingTrace.new(
26
+ trace_id: 1,
27
+ subject_id: 6948DF80-14BD-4E04-8842-7668D9C001F5,
28
+ tracking_payload: 545001fd8001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002df31817469c8c55647,
29
+ tracking_payload_output_index: 1,
30
+ inclusion_proof: 7598e2d934e1502a2e4e15f1ca3329bd444815430d6cdfe8465cdead162f824d3ed8d0fec153db11789998e1dae08f1210fe8dede07362b51a432c5dcf597388738b46b3bf72d2120e7c5ae9324940e159754d6548255c1b189507be2fcbae45eff9ee348b767ff382773444200f2e89c1469366306557c178d07deafb1c8197e20482237f0bc1f273021ee3fcbf1ad06f1c77829a91f2834d96d7d3eadd06fe8b81959d52cd979e0881ea7e6efdd1e2f5441bf30f346ada077ae16dcf4dec545e4116202dfe42a3a38d009cc5ae539942a9d73e945495913a22386c833660c51e381338c65bd474346210ac4530d7d5a186b416fab9ea06fbfd8ddcdd0311cb34b1175ea50a0b9364a0a6e4a815f964d2249308bae0853c611f44c9a3445a6138f028852d9eca13fc09bcd9b1f8606710240907d7697b2e851e0bd8ba26f015b962c296edf9e4b00d23083c9c504f10ffdc02ae8328532ebd3bb36a30b7a630ddf4129a1e9e21c4d787c980d12d8c978e598ad31ab0e371397b864b1dd4ac26,
31
+ txid: 6fce02d39279f6d645ecc710ebcf1dbb7b8104106553d8da13f5db79c5a628fc,
32
+ tx_index: 0,
33
+ block_height: 101,
34
+ block_time: 1626169080,
35
+ from_address: mnzdZUieW2Hqe9GzZzVbcA7nHkDeFhJFzd,
36
+ to_address: mnzdZUieW2Hqe9GzZzVbcA7nHkDeFhJFzd,
37
+ moved: true
38
+ )
39
+ ```
40
+
@@ -0,0 +1,44 @@
1
+ # TapyrusApiClient::TrackingTracesResponse
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **trace_id** | **Float** | | [optional] |
8
+ | **subject_id** | **String** | | [optional] |
9
+ | **parents** | [**Array<TrackingSubjectMerkleRoot>**](TrackingSubjectMerkleRoot.md) | | [optional] |
10
+ | **child_subject_ids** | **Array<String>** | | [optional] |
11
+ | **tracking_payload** | **String** | | [optional] |
12
+ | **tracking_payload_output_index** | **Integer** | tracking_payload がセットされたアウトプットのインデックス | [optional] |
13
+ | **inclusion_proof** | **String** | subject_id が示す Subject の包含証明。Hex 文字列 | [optional] |
14
+ | **txid** | **String** | トランザクションID | [optional] |
15
+ | **tx_index** | **Integer** | | [optional] |
16
+ | **block_height** | **Integer** | | [optional] |
17
+ | **block_time** | **Integer** | | [optional] |
18
+ | **from_address** | **String** | | [optional] |
19
+ | **to_address** | **String** | | [optional] |
20
+ | **moved** | **Boolean** | subject_id が示す Subject が to_address からすでに移動済みの場合 true 、そうでなければ false になります | [optional] |
21
+
22
+ ## Example
23
+
24
+ ```ruby
25
+ require 'tapyrus-api-client'
26
+
27
+ instance = TapyrusApiClient::TrackingTracesResponse.new(
28
+ trace_id: 1,
29
+ subject_id: 6948DF80-14BD-4E04-8842-7668D9C001F5,
30
+ parents: null,
31
+ child_subject_ids: null,
32
+ tracking_payload: 545001fd8001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002df31817469c8c55647,
33
+ tracking_payload_output_index: 1,
34
+ inclusion_proof: 7598e2d934e1502a2e4e15f1ca3329bd444815430d6cdfe8465cdead162f824d3ed8d0fec153db11789998e1dae08f1210fe8dede07362b51a432c5dcf597388738b46b3bf72d2120e7c5ae9324940e159754d6548255c1b189507be2fcbae45eff9ee348b767ff382773444200f2e89c1469366306557c178d07deafb1c8197e20482237f0bc1f273021ee3fcbf1ad06f1c77829a91f2834d96d7d3eadd06fe8b81959d52cd979e0881ea7e6efdd1e2f5441bf30f346ada077ae16dcf4dec545e4116202dfe42a3a38d009cc5ae539942a9d73e945495913a22386c833660c51e381338c65bd474346210ac4530d7d5a186b416fab9ea06fbfd8ddcdd0311cb34b1175ea50a0b9364a0a6e4a815f964d2249308bae0853c611f44c9a3445a6138f028852d9eca13fc09bcd9b1f8606710240907d7697b2e851e0bd8ba26f015b962c296edf9e4b00d23083c9c504f10ffdc02ae8328532ebd3bb36a30b7a630ddf4129a1e9e21c4d787c980d12d8c978e598ad31ab0e371397b864b1dd4ac26,
35
+ txid: 6fce02d39279f6d645ecc710ebcf1dbb7b8104106553d8da13f5db79c5a628fc,
36
+ tx_index: 0,
37
+ block_height: 101,
38
+ block_time: 1626169080,
39
+ from_address: mnzdZUieW2Hqe9GzZzVbcA7nHkDeFhJFzd,
40
+ to_address: mnzdZUieW2Hqe9GzZzVbcA7nHkDeFhJFzd,
41
+ moved: true
42
+ )
43
+ ```
44
+
@@ -0,0 +1,18 @@
1
+ # TapyrusApiClient::TransportTrackingRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **destinations** | [**Array<TrackingDestination>**](TrackingDestination.md) | モノの移動先を表します。 | |
8
+
9
+ ## Example
10
+
11
+ ```ruby
12
+ require 'tapyrus-api-client'
13
+
14
+ instance = TapyrusApiClient::TransportTrackingRequest.new(
15
+ destinations: null
16
+ )
17
+ ```
18
+
data/docs/UserApi.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # TapyrusApiClient::UserApi
2
2
 
3
- All URIs are relative to *https://ap-01.tapyrus.chaintope.com/api/v1*
3
+ All URIs are relative to *https://ap-01.api.tapyrus.chaintope.com/api/v1*
4
4
 
5
5
  | Method | HTTP request | Description |
6
6
  | ------ | ------------ | ----------- |
data/git_push.sh CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
2
  # ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
3
3
  #
4
- # Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update" "gitlab.com"
4
+ # Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com"
5
5
 
6
6
  git_user_id=$1
7
7
  git_repo_id=$2
@@ -38,14 +38,14 @@ git add .
38
38
  git commit -m "$release_note"
39
39
 
40
40
  # Sets the new remote
41
- git_remote=`git remote`
41
+ git_remote=$(git remote)
42
42
  if [ "$git_remote" = "" ]; then # git remote not defined
43
43
 
44
44
  if [ "$GIT_TOKEN" = "" ]; then
45
45
  echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
46
46
  git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git
47
47
  else
48
- git remote add origin https://${git_user_id}:${GIT_TOKEN}@${git_host}/${git_user_id}/${git_repo_id}.git
48
+ git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git
49
49
  fi
50
50
 
51
51
  fi
@@ -55,4 +55,3 @@ git pull origin master
55
55
  # Pushes (Forces) the changes in the local repository up to the remote repository
56
56
  echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git"
57
57
  git push origin master 2>&1 | grep -v 'To https'
58
-
@@ -1,12 +1,12 @@
1
1
  =begin
2
2
  #Tapyrus API
3
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)
4
+ ## イントロダクション これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていきます。 * Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録 * Token: 新しいトークンの発行、送金、焼却。NFTも利用可能 * Tracking: トレーサビリティを目的としてたモノの移動履歴を記録 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 のエンドポイント エンドポイントは以下のフォーマットで作成されます。 `https://xxx.api.tapyrus.chaintope.com/api/v1` `xxx`の部分は各ユーザー固有の識別子になります。正式なURLは、ダッシュボードで確認できます。 ### API接続の準備 ダッシュボードに登録すると、chaintopeが登録情報を確認後、お客様のAPIエンドポイントを設定します。 エンドポイントが設定されるまでは、APIの機能はご利用いただけません。 #### クライアント証明書 Tapyrus APIに接続する際には、クライアント証明書が必要になります。ダッシュボードの「クライアント証明書」のメニューより、 クライアント証明書を発行してください。 発行すると秘密鍵と公開鍵の証明書を含む[PKCS#12](https://en.wikipedia.org/wiki/PKCS_12)形式のファイルがダウンロードできます。 #### ユーザーの登録 ダッシュボードからAPIに接続するユーザーを作成します。Tapyrus APIではユーザー単位にウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されています。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。 ダッシュボードの、「ユーザー一覧」からアクセスするユーザーを作成することができます。 ユーザーを作成すると、そのユーザー用のアクセストークンが発行されます。このアクセストークンとクライアント証明書の両方が漏洩すると、 不正アクセスが可能になるため、データの取り扱いには十分注意してください。 #### 接続確認 クライアント証明書とユーザーが作成されると、APIにアクセスできるようになります。簡単な接続確認は、curlで以下のように行なえます。 1. ダウンロードしたPKCS#12ファイルからcert.pemを生成。 `$ openssl pkcs12 -in <ダウンロードした.p12ファイルのパス> -out cert.pem -nodes -clcerts` 2. cert.pemとアクセストークンを使ってAPIへアクセス。 `$ curl -X GET -H 'Authorization: Bearer <ユーザーのアクセストークン>' \"https://xxx.api.tapyrus.chaintope.com/api/v1/timestamps\" -E cert.pem` 成功するとAPIへのアクセスが可能になっています。これらの認証情報を使って、以下に記載する各APIがご利用いただけます。
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0beta4
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.2.1-SNAPSHOT
9
+ OpenAPI Generator version: 5.4.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -20,22 +20,28 @@ module TapyrusApiClient
20
20
  @api_client = api_client
21
21
  end
22
22
  # アドレスを生成して返します。
23
- # 受金用のアドレス生成して返します。
23
+ # 受金用のアドレスを生成して返します。 任意で`purpose`を設定し、生成するアドレスの種類を指定できます。未指定の場合、汎用的に使うアドレスを生成します。 - `purpose` に `general` と入力する、または未指定の場合、汎用的に使うアドレスを生成します。 - `purpose`に`tracking`と入力すると、トラッキングに使用するアドレスを生成します。
24
+ # @param purpose_address_request [PurposeAddressRequest]
24
25
  # @param [Hash] opts the optional parameters
25
26
  # @return [String]
26
- def create_address(opts = {})
27
- data, _status_code, _headers = create_address_with_http_info(opts)
27
+ def create_address(purpose_address_request, opts = {})
28
+ data, _status_code, _headers = create_address_with_http_info(purpose_address_request, opts)
28
29
  data
29
30
  end
30
31
 
31
32
  # アドレスを生成して返します。
32
- # 受金用のアドレス生成して返します。
33
+ # 受金用のアドレスを生成して返します。 任意で&#x60;purpose&#x60;を設定し、生成するアドレスの種類を指定できます。未指定の場合、汎用的に使うアドレスを生成します。 - &#x60;purpose&#x60; に &#x60;general&#x60; と入力する、または未指定の場合、汎用的に使うアドレスを生成します。 - &#x60;purpose&#x60;に&#x60;tracking&#x60;と入力すると、トラッキングに使用するアドレスを生成します。
34
+ # @param purpose_address_request [PurposeAddressRequest]
33
35
  # @param [Hash] opts the optional parameters
34
36
  # @return [Array<(String, Integer, Hash)>] String data, response status code and response headers
35
- def create_address_with_http_info(opts = {})
37
+ def create_address_with_http_info(purpose_address_request, opts = {})
36
38
  if @api_client.config.debugging
37
39
  @api_client.config.logger.debug 'Calling API: AddressApi.create_address ...'
38
40
  end
41
+ # verify the required parameter 'purpose_address_request' is set
42
+ if @api_client.config.client_side_validation && purpose_address_request.nil?
43
+ fail ArgumentError, "Missing the required parameter 'purpose_address_request' when calling AddressApi.create_address"
44
+ end
39
45
  # resource path
40
46
  local_var_path = '/addresses'
41
47
 
@@ -46,12 +52,17 @@ module TapyrusApiClient
46
52
  header_params = opts[:header_params] || {}
47
53
  # HTTP header 'Accept' (if needed)
48
54
  header_params['Accept'] = @api_client.select_header_accept(['application/json'])
55
+ # HTTP header 'Content-Type'
56
+ content_type = @api_client.select_header_content_type(['application/json'])
57
+ if !content_type.nil?
58
+ header_params['Content-Type'] = content_type
59
+ end
49
60
 
50
61
  # form parameters
51
62
  form_params = opts[:form_params] || {}
52
63
 
53
64
  # http body (model)
54
- post_body = opts[:debug_body]
65
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(purpose_address_request)
55
66
 
56
67
  # return_type
57
68
  return_type = opts[:debug_return_type] || 'String'
@@ -77,10 +88,11 @@ module TapyrusApiClient
77
88
  end
78
89
 
79
90
  # これまで生成したアドレスを一覧にして返します。
80
- # これまで生成したアドレスを一覧にして返します。
91
+ # これまで生成したアドレスを一覧にして返します。 任意で`purpose`を設定し、取得するアドレスの種類を指定できます。未指定の場合、汎用的に使うアドレスのみ取得します。 - `purpose`に`general`と入力すると、生成したアドレスのうち、汎用的に使うアドレスのみ取得します。 - `purpose`に`all`と入力すると、生成したアドレスすべて取得します。 - `purpose`に`tracking`と入力すると、生成したアドレスのうち、トラッキングに使用されているアドレスを取得します。
81
92
  # @param [Hash] opts the optional parameters
82
93
  # @option opts [Integer] :per 1ページあたりの件数
83
94
  # @option opts [Integer] :page ページ番号
95
+ # @option opts [String] :purpose 取得したいアドレス
84
96
  # @return [GetAddressesResponse]
85
97
  def get_addresses(opts = {})
86
98
  data, _status_code, _headers = get_addresses_with_http_info(opts)
@@ -88,10 +100,11 @@ module TapyrusApiClient
88
100
  end
89
101
 
90
102
  # これまで生成したアドレスを一覧にして返します。
91
- # これまで生成したアドレスを一覧にして返します。
103
+ # これまで生成したアドレスを一覧にして返します。 任意で&#x60;purpose&#x60;を設定し、取得するアドレスの種類を指定できます。未指定の場合、汎用的に使うアドレスのみ取得します。 - &#x60;purpose&#x60;に&#x60;general&#x60;と入力すると、生成したアドレスのうち、汎用的に使うアドレスのみ取得します。 - &#x60;purpose&#x60;に&#x60;all&#x60;と入力すると、生成したアドレスすべて取得します。 - &#x60;purpose&#x60;に&#x60;tracking&#x60;と入力すると、生成したアドレスのうち、トラッキングに使用されているアドレスを取得します。
92
104
  # @param [Hash] opts the optional parameters
93
105
  # @option opts [Integer] :per 1ページあたりの件数
94
106
  # @option opts [Integer] :page ページ番号
107
+ # @option opts [String] :purpose 取得したいアドレス
95
108
  # @return [Array<(GetAddressesResponse, Integer, Hash)>] GetAddressesResponse data, response status code and response headers
96
109
  def get_addresses_with_http_info(opts = {})
97
110
  if @api_client.config.debugging
@@ -104,6 +117,7 @@ module TapyrusApiClient
104
117
  query_params = opts[:query_params] || {}
105
118
  query_params[:'per'] = opts[:'per'] if !opts[:'per'].nil?
106
119
  query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
120
+ query_params[:'purpose'] = opts[:'purpose'] if !opts[:'purpose'].nil?
107
121
 
108
122
  # header parameters
109
123
  header_params = opts[:header_params] || {}
@@ -1,12 +1,12 @@
1
1
  =begin
2
2
  #Tapyrus API
3
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)
4
+ ## イントロダクション これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていきます。 * Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録 * Token: 新しいトークンの発行、送金、焼却。NFTも利用可能 * Tracking: トレーサビリティを目的としてたモノの移動履歴を記録 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 のエンドポイント エンドポイントは以下のフォーマットで作成されます。 `https://xxx.api.tapyrus.chaintope.com/api/v1` `xxx`の部分は各ユーザー固有の識別子になります。正式なURLは、ダッシュボードで確認できます。 ### API接続の準備 ダッシュボードに登録すると、chaintopeが登録情報を確認後、お客様のAPIエンドポイントを設定します。 エンドポイントが設定されるまでは、APIの機能はご利用いただけません。 #### クライアント証明書 Tapyrus APIに接続する際には、クライアント証明書が必要になります。ダッシュボードの「クライアント証明書」のメニューより、 クライアント証明書を発行してください。 発行すると秘密鍵と公開鍵の証明書を含む[PKCS#12](https://en.wikipedia.org/wiki/PKCS_12)形式のファイルがダウンロードできます。 #### ユーザーの登録 ダッシュボードからAPIに接続するユーザーを作成します。Tapyrus APIではユーザー単位にウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されています。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。 ダッシュボードの、「ユーザー一覧」からアクセスするユーザーを作成することができます。 ユーザーを作成すると、そのユーザー用のアクセストークンが発行されます。このアクセストークンとクライアント証明書の両方が漏洩すると、 不正アクセスが可能になるため、データの取り扱いには十分注意してください。 #### 接続確認 クライアント証明書とユーザーが作成されると、APIにアクセスできるようになります。簡単な接続確認は、curlで以下のように行なえます。 1. ダウンロードしたPKCS#12ファイルからcert.pemを生成。 `$ openssl pkcs12 -in <ダウンロードした.p12ファイルのパス> -out cert.pem -nodes -clcerts` 2. cert.pemとアクセストークンを使ってAPIへアクセス。 `$ curl -X GET -H 'Authorization: Bearer <ユーザーのアクセストークン>' \"https://xxx.api.tapyrus.chaintope.com/api/v1/timestamps\" -E cert.pem` 成功するとAPIへのアクセスが可能になっています。これらの認証情報を使って、以下に記載する各APIがご利用いただけます。
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0beta4
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.2.1-SNAPSHOT
9
+ OpenAPI Generator version: 5.4.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -20,34 +20,39 @@ module TapyrusApiClient
20
20
  @api_client = api_client
21
21
  end
22
22
  # Timestampを記録
23
- # ブロックチェーンにハッシュ値をタイムスタンプとして記録します。
23
+ # ブロックチェーンにハッシュ値をタイムスタンプとして記録します。 現在、記録方法として2種類の`type`(`simple`(デフォルト)、`trackable`)をサポートしています。 `simple`を指定した場合は、ハッシュ値がトランザクション内のOP_RETURNアウトプットに直接埋め込まれます。 単純に値をブロックチェーンに記録する場合は`simple`の利用を推奨します。 `trackable`を指定した場合は、ハッシュ値を組み合わせたPay to Contractアドレスが生成され、ハッシュ値は間接的に記録されます。 アドレスは、Timestampの戻り値の1つである`payment_base`と指定されたコンテンツハッシュを使って次のように計算されます。 ``` アドレスの公開鍵 = payment_base + SHA256(payment_base || コンテンツハッシュ)G ``` ※Gは楕円曲線の生成元。公開鍵からアドレス(P2PKH)を導出すると、戻り値の1つである`p2c_address`と合致します。 `trackable`を使用するとハッシュ値は間接的に記録されますが、ブロックチェーン上で使用可能なアセットとして管理できます。 そのため、ある記録を持つデータを更新する場合に、このアセットを使用して新しい`trackable`アセットを作成することで、 記録の更新、最新性を表現することが可能になります。未使用な記録のみ`latest`がtrueになります。
24
24
  # @param [Hash] opts the optional parameters
25
- # @option opts [AddTimestampRequest] :add_timestamp_request &#x60;content_hash&#x60;, &#x60;prefix&#x60;を受け取り、ブロックチェーンにハッシュ値をタイムスタンプとして記録します。
26
- # @return [nil]
25
+ # @option opts [AddTimestampRequest] :add_timestamp_request &#x60;content_hash&#x60;, &#x60;prefix&#x60;, &#x60;type&#x60; を受け取り、ブロックチェーンにハッシュ値をタイムスタンプとして記録します。
26
+ # @return [AddTimestampResponse]
27
27
  def add_timestamp(opts = {})
28
- add_timestamp_with_http_info(opts)
29
- nil
28
+ data, _status_code, _headers = add_timestamp_with_http_info(opts)
29
+ data
30
30
  end
31
31
 
32
32
  # Timestampを記録
33
- # ブロックチェーンにハッシュ値をタイムスタンプとして記録します。
33
+ # ブロックチェーンにハッシュ値をタイムスタンプとして記録します。 現在、記録方法として2種類の&#x60;type&#x60;(&#x60;simple&#x60;(デフォルト)、&#x60;trackable&#x60;)をサポートしています。 &#x60;simple&#x60;を指定した場合は、ハッシュ値がトランザクション内のOP_RETURNアウトプットに直接埋め込まれます。 単純に値をブロックチェーンに記録する場合は&#x60;simple&#x60;の利用を推奨します。 &#x60;trackable&#x60;を指定した場合は、ハッシュ値を組み合わせたPay to Contractアドレスが生成され、ハッシュ値は間接的に記録されます。 アドレスは、Timestampの戻り値の1つである&#x60;payment_base&#x60;と指定されたコンテンツハッシュを使って次のように計算されます。 &#x60;&#x60;&#x60; アドレスの公開鍵 &#x3D; payment_base + SHA256(payment_base || コンテンツハッシュ)G &#x60;&#x60;&#x60; ※Gは楕円曲線の生成元。公開鍵からアドレス(P2PKH)を導出すると、戻り値の1つである&#x60;p2c_address&#x60;と合致します。 &#x60;trackable&#x60;を使用するとハッシュ値は間接的に記録されますが、ブロックチェーン上で使用可能なアセットとして管理できます。 そのため、ある記録を持つデータを更新する場合に、このアセットを使用して新しい&#x60;trackable&#x60;アセットを作成することで、 記録の更新、最新性を表現することが可能になります。未使用な記録のみ&#x60;latest&#x60;がtrueになります。
34
34
  # @param [Hash] opts the optional parameters
35
- # @option opts [AddTimestampRequest] :add_timestamp_request &#x60;content_hash&#x60;, &#x60;prefix&#x60;を受け取り、ブロックチェーンにハッシュ値をタイムスタンプとして記録します。
36
- # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
35
+ # @option opts [AddTimestampRequest] :add_timestamp_request &#x60;content_hash&#x60;, &#x60;prefix&#x60;, &#x60;type&#x60; を受け取り、ブロックチェーンにハッシュ値をタイムスタンプとして記録します。
36
+ # @return [Array<(AddTimestampResponse, Integer, Hash)>] AddTimestampResponse data, response status code and response headers
37
37
  def add_timestamp_with_http_info(opts = {})
38
38
  if @api_client.config.debugging
39
39
  @api_client.config.logger.debug 'Calling API: TimestampApi.add_timestamp ...'
40
40
  end
41
41
  # resource path
42
- local_var_path = '/timestamp'
42
+ local_var_path = '/timestamps'
43
43
 
44
44
  # query parameters
45
45
  query_params = opts[:query_params] || {}
46
46
 
47
47
  # header parameters
48
48
  header_params = opts[:header_params] || {}
49
+ # HTTP header 'Accept' (if needed)
50
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
49
51
  # HTTP header 'Content-Type'
50
- header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
52
+ content_type = @api_client.select_header_content_type(['application/json'])
53
+ if !content_type.nil?
54
+ header_params['Content-Type'] = content_type
55
+ end
51
56
 
52
57
  # form parameters
53
58
  form_params = opts[:form_params] || {}
@@ -56,7 +61,7 @@ module TapyrusApiClient
56
61
  post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'add_timestamp_request'])
57
62
 
58
63
  # return_type
59
- return_type = opts[:debug_return_type]
64
+ return_type = opts[:debug_return_type] || 'AddTimestampResponse'
60
65
 
61
66
  # auth_names
62
67
  auth_names = opts[:debug_auth_names] || []
@@ -78,10 +83,73 @@ module TapyrusApiClient
78
83
  return data, status_code, headers
79
84
  end
80
85
 
86
+ # Timestamp表示
87
+ # タイムスタンプ ID に対応する Timestamp を表示します。
88
+ # @param id [Integer] Timestamp id。&#x60;Timestamp を記録 API(POST /timestamps)&#x60; の返り値の JSON の &#x60;id&#x60; 要素の値です。
89
+ # @param [Hash] opts the optional parameters
90
+ # @return [GetTimestampResponse]
91
+ def get_timestamp(id, opts = {})
92
+ data, _status_code, _headers = get_timestamp_with_http_info(id, opts)
93
+ data
94
+ end
95
+
96
+ # Timestamp表示
97
+ # タイムスタンプ ID に対応する Timestamp を表示します。
98
+ # @param id [Integer] Timestamp id。&#x60;Timestamp を記録 API(POST /timestamps)&#x60; の返り値の JSON の &#x60;id&#x60; 要素の値です。
99
+ # @param [Hash] opts the optional parameters
100
+ # @return [Array<(GetTimestampResponse, Integer, Hash)>] GetTimestampResponse data, response status code and response headers
101
+ def get_timestamp_with_http_info(id, opts = {})
102
+ if @api_client.config.debugging
103
+ @api_client.config.logger.debug 'Calling API: TimestampApi.get_timestamp ...'
104
+ end
105
+ # verify the required parameter 'id' is set
106
+ if @api_client.config.client_side_validation && id.nil?
107
+ fail ArgumentError, "Missing the required parameter 'id' when calling TimestampApi.get_timestamp"
108
+ end
109
+ # resource path
110
+ local_var_path = '/timestamps/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
111
+
112
+ # query parameters
113
+ query_params = opts[:query_params] || {}
114
+
115
+ # header parameters
116
+ header_params = opts[:header_params] || {}
117
+ # HTTP header 'Accept' (if needed)
118
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
119
+
120
+ # form parameters
121
+ form_params = opts[:form_params] || {}
122
+
123
+ # http body (model)
124
+ post_body = opts[:debug_body]
125
+
126
+ # return_type
127
+ return_type = opts[:debug_return_type] || 'GetTimestampResponse'
128
+
129
+ # auth_names
130
+ auth_names = opts[:debug_auth_names] || []
131
+
132
+ new_options = opts.merge(
133
+ :operation => :"TimestampApi.get_timestamp",
134
+ :header_params => header_params,
135
+ :query_params => query_params,
136
+ :form_params => form_params,
137
+ :body => post_body,
138
+ :auth_names => auth_names,
139
+ :return_type => return_type
140
+ )
141
+
142
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
143
+ if @api_client.config.debugging
144
+ @api_client.config.logger.debug "API called: TimestampApi#get_timestamp\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
145
+ end
146
+ return data, status_code, headers
147
+ end
148
+
81
149
  # Timestamp一覧表示
82
150
  # ブロックチェーンに記録したタイムスタンプを取得し、`content_hash`,`prefix`,`txid`を一覧で表示します。
83
151
  # @param [Hash] opts the optional parameters
84
- # @return [Array<Array>]
152
+ # @return [Array<GetTimestampResponse>]
85
153
  def get_timestamps(opts = {})
86
154
  data, _status_code, _headers = get_timestamps_with_http_info(opts)
87
155
  data
@@ -90,7 +158,7 @@ module TapyrusApiClient
90
158
  # Timestamp一覧表示
91
159
  # ブロックチェーンに記録したタイムスタンプを取得し、&#x60;content_hash&#x60;,&#x60;prefix&#x60;,&#x60;txid&#x60;を一覧で表示します。
92
160
  # @param [Hash] opts the optional parameters
93
- # @return [Array<(Array<Array>, Integer, Hash)>] Array<Array> data, response status code and response headers
161
+ # @return [Array<(Array<GetTimestampResponse>, Integer, Hash)>] Array<GetTimestampResponse> data, response status code and response headers
94
162
  def get_timestamps_with_http_info(opts = {})
95
163
  if @api_client.config.debugging
96
164
  @api_client.config.logger.debug 'Calling API: TimestampApi.get_timestamps ...'
@@ -113,7 +181,7 @@ module TapyrusApiClient
113
181
  post_body = opts[:debug_body]
114
182
 
115
183
  # return_type
116
- return_type = opts[:debug_return_type] || 'Array<Array>'
184
+ return_type = opts[:debug_return_type] || 'Array<GetTimestampResponse>'
117
185
 
118
186
  # auth_names
119
187
  auth_names = opts[:debug_auth_names] || []
@@ -1,12 +1,12 @@
1
1
  =begin
2
2
  #Tapyrus API
3
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)
4
+ ## イントロダクション これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていきます。 * Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録 * Token: 新しいトークンの発行、送金、焼却。NFTも利用可能 * Tracking: トレーサビリティを目的としてたモノの移動履歴を記録 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 のエンドポイント エンドポイントは以下のフォーマットで作成されます。 `https://xxx.api.tapyrus.chaintope.com/api/v1` `xxx`の部分は各ユーザー固有の識別子になります。正式なURLは、ダッシュボードで確認できます。 ### API接続の準備 ダッシュボードに登録すると、chaintopeが登録情報を確認後、お客様のAPIエンドポイントを設定します。 エンドポイントが設定されるまでは、APIの機能はご利用いただけません。 #### クライアント証明書 Tapyrus APIに接続する際には、クライアント証明書が必要になります。ダッシュボードの「クライアント証明書」のメニューより、 クライアント証明書を発行してください。 発行すると秘密鍵と公開鍵の証明書を含む[PKCS#12](https://en.wikipedia.org/wiki/PKCS_12)形式のファイルがダウンロードできます。 #### ユーザーの登録 ダッシュボードからAPIに接続するユーザーを作成します。Tapyrus APIではユーザー単位にウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されています。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。 ダッシュボードの、「ユーザー一覧」からアクセスするユーザーを作成することができます。 ユーザーを作成すると、そのユーザー用のアクセストークンが発行されます。このアクセストークンとクライアント証明書の両方が漏洩すると、 不正アクセスが可能になるため、データの取り扱いには十分注意してください。 #### 接続確認 クライアント証明書とユーザーが作成されると、APIにアクセスできるようになります。簡単な接続確認は、curlで以下のように行なえます。 1. ダウンロードしたPKCS#12ファイルからcert.pemを生成。 `$ openssl pkcs12 -in <ダウンロードした.p12ファイルのパス> -out cert.pem -nodes -clcerts` 2. cert.pemとアクセストークンを使ってAPIへアクセス。 `$ curl -X GET -H 'Authorization: Bearer <ユーザーのアクセストークン>' \"https://xxx.api.tapyrus.chaintope.com/api/v1/timestamps\" -E cert.pem` 成功するとAPIへのアクセスが可能になっています。これらの認証情報を使って、以下に記載する各APIがご利用いただけます。
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0beta4
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.2.1-SNAPSHOT
9
+ OpenAPI Generator version: 5.4.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -173,7 +173,10 @@ module TapyrusApiClient
173
173
  # HTTP header 'Accept' (if needed)
174
174
  header_params['Accept'] = @api_client.select_header_accept(['application/json'])
175
175
  # HTTP header 'Content-Type'
176
- header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
176
+ content_type = @api_client.select_header_content_type(['application/json'])
177
+ if !content_type.nil?
178
+ header_params['Content-Type'] = content_type
179
+ end
177
180
 
178
181
  # form parameters
179
182
  form_params = opts[:form_params] || {}
@@ -240,7 +243,10 @@ module TapyrusApiClient
240
243
  # HTTP header 'Accept' (if needed)
241
244
  header_params['Accept'] = @api_client.select_header_accept(['application/json'])
242
245
  # HTTP header 'Content-Type'
243
- header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
246
+ content_type = @api_client.select_header_content_type(['application/json'])
247
+ if !content_type.nil?
248
+ header_params['Content-Type'] = content_type
249
+ end
244
250
 
245
251
  # form parameters
246
252
  form_params = opts[:form_params] || {}
@@ -311,7 +317,10 @@ module TapyrusApiClient
311
317
  # HTTP header 'Accept' (if needed)
312
318
  header_params['Accept'] = @api_client.select_header_accept(['application/json'])
313
319
  # HTTP header 'Content-Type'
314
- header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
320
+ content_type = @api_client.select_header_content_type(['application/json'])
321
+ if !content_type.nil?
322
+ header_params['Content-Type'] = content_type
323
+ end
315
324
 
316
325
  # form parameters
317
326
  form_params = opts[:form_params] || {}