quorum_sdk 0.1.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quorum_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - an-lee
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-07 00:00:00.000000000 Z
11
+ date: 2023-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -108,20 +108,6 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '3'
111
- - !ruby/object:Gem::Dependency
112
- name: sha3
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '1.0'
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '1.0'
125
111
  description: A API wrapper for Quorum
126
112
  email:
127
113
  - an.lee.work@gmail.com
@@ -137,17 +123,22 @@ files:
137
123
  - LICENSE.txt
138
124
  - README.md
139
125
  - Rakefile
140
- - activity_stream_pb.rb
141
- - lib/proto/activity_stream.proto
142
- - lib/proto/activity_stream_pb.rb
143
126
  - lib/proto/chain.proto
144
127
  - lib/proto/chain_pb.rb
145
128
  - lib/quorum_sdk.rb
146
129
  - lib/quorum_sdk/account.rb
147
- - lib/quorum_sdk/api.rb
148
- - lib/quorum_sdk/api/chain.rb
149
- - lib/quorum_sdk/api/light_node.rb
130
+ - lib/quorum_sdk/chain.rb
131
+ - lib/quorum_sdk/chain/chain.rb
132
+ - lib/quorum_sdk/chain/group.rb
133
+ - lib/quorum_sdk/chain/management.rb
134
+ - lib/quorum_sdk/chain/node.rb
150
135
  - lib/quorum_sdk/client.rb
136
+ - lib/quorum_sdk/node.rb
137
+ - lib/quorum_sdk/node/announce.rb
138
+ - lib/quorum_sdk/node/app_config.rb
139
+ - lib/quorum_sdk/node/auth.rb
140
+ - lib/quorum_sdk/node/group.rb
141
+ - lib/quorum_sdk/node/trx.rb
151
142
  - lib/quorum_sdk/utils.rb
152
143
  - lib/quorum_sdk/version.rb
153
144
  - sig/quorum_sdk.rbs
@@ -174,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
165
  - !ruby/object:Gem::Version
175
166
  version: '0'
176
167
  requirements: []
177
- rubygems_version: 3.4.2
168
+ rubygems_version: 3.4.7
178
169
  signing_key:
179
170
  specification_version: 4
180
171
  summary: A Quorum SDK implemented in Ruby
@@ -1,146 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Generated by the protocol buffer compiler. DO NOT EDIT!
4
- # source: activity_stream.proto
5
-
6
- require 'google/protobuf'
7
-
8
- require 'google/protobuf/timestamp_pb'
9
- require 'google/protobuf/any_pb'
10
-
11
- Google::Protobuf::DescriptorPool.generated_pool.build do
12
- add_file('activity_stream.proto', syntax: :proto3) do
13
- add_message 'quorum.pb.AnyObj' do
14
- optional :any, :message, 1, 'google.protobuf.Any'
15
- end
16
- add_message 'quorum.pb.Object' do
17
- optional :id, :string, 1
18
- optional :type, :string, 2
19
- repeated :attachments, :message, 3, 'quorum.pb.Object'
20
- repeated :attributedTo, :message, 4, 'quorum.pb.Object'
21
- optional :audience, :message, 5, 'quorum.pb.Object'
22
- optional :content, :string, 6
23
- optional :context, :message, 7, 'quorum.pb.Object'
24
- optional :name, :string, 8
25
- optional :endtime, :message, 9, 'google.protobuf.Timestamp'
26
- optional :generator, :message, 10, 'quorum.pb.Object'
27
- repeated :icon, :message, 11, 'quorum.pb.Object'
28
- repeated :image, :message, 12, 'quorum.pb.Image'
29
- optional :inreplyto, :message, 13, 'quorum.pb.Reply'
30
- optional :location, :message, 14, 'quorum.pb.Object'
31
- optional :preview, :message, 15, 'quorum.pb.Object'
32
- optional :published, :message, 16, 'google.protobuf.Timestamp'
33
- optional :replies, :message, 17, 'quorum.pb.Object'
34
- optional :startTime, :message, 18, 'google.protobuf.Timestamp'
35
- optional :summary, :string, 19
36
- repeated :tag, :message, 20, 'quorum.pb.Object'
37
- optional :updated, :message, 21, 'google.protobuf.Timestamp'
38
- repeated :url, :message, 22, 'quorum.pb.Link'
39
- repeated :to, :message, 23, 'quorum.pb.Object'
40
- repeated :bto, :message, 24, 'quorum.pb.Object'
41
- repeated :cc, :message, 25, 'quorum.pb.Object'
42
- repeated :bcc, :message, 26, 'quorum.pb.Object'
43
- optional :mediaType, :string, 27
44
- optional :duration, :string, 28
45
- optional :file, :message, 29, 'quorum.pb.File'
46
- end
47
- add_message 'quorum.pb.Link' do
48
- optional :href, :string, 1
49
- repeated :rel, :string, 2
50
- optional :mediaType, :string, 3
51
- optional :name, :string, 4
52
- optional :hreflang, :string, 5
53
- optional :height, :uint32, 6
54
- optional :width, :uint32, 7
55
- optional :preview, :message, 8, 'quorum.pb.Object'
56
- end
57
- add_message 'quorum.pb.Reply' do
58
- optional :trxid, :string, 1
59
- optional :groupid, :string, 2
60
- end
61
- add_message 'quorum.pb.Image' do
62
- optional :id, :string, 1
63
- optional :name, :string, 2
64
- optional :mediaType, :string, 3
65
- optional :content, :bytes, 4
66
- optional :url, :string, 5
67
- end
68
- add_message 'quorum.pb.File' do
69
- optional :id, :string, 1
70
- optional :name, :string, 2
71
- optional :mediaType, :string, 3
72
- optional :compression, :enum, 4, 'quorum.pb.File.Compression'
73
- optional :content, :bytes, 5
74
- optional :url, :string, 6
75
- end
76
- add_enum 'quorum.pb.File.Compression' do
77
- value :none, 0
78
- value :gz, 1
79
- value :zip, 2
80
- value :zstd, 3
81
- end
82
- add_message 'quorum.pb.Person' do
83
- optional :id, :string, 1
84
- optional :name, :string, 2
85
- optional :image, :message, 3, 'quorum.pb.Image'
86
- repeated :wallet, :message, 11, 'quorum.pb.Payment'
87
- end
88
- add_message 'quorum.pb.Payment' do
89
- optional :id, :string, 1
90
- optional :type, :string, 2
91
- optional :name, :string, 3
92
- end
93
- add_message 'quorum.pb.Activity' do
94
- optional :id, :string, 1
95
- optional :type, :string, 2
96
- repeated :attachments, :message, 3, 'quorum.pb.Object'
97
- repeated :attributedTo, :message, 4, 'quorum.pb.Object'
98
- optional :audience, :message, 5, 'quorum.pb.Object'
99
- optional :content, :string, 6
100
- optional :context, :message, 7, 'quorum.pb.Object'
101
- optional :name, :string, 8
102
- optional :endtime, :message, 9, 'google.protobuf.Timestamp'
103
- optional :generator, :message, 10, 'quorum.pb.Object'
104
- repeated :icon, :message, 11, 'quorum.pb.Object'
105
- repeated :image, :message, 12, 'quorum.pb.Object'
106
- optional :inReplyTo, :message, 13, 'quorum.pb.Object'
107
- optional :location, :message, 14, 'quorum.pb.Object'
108
- optional :preview, :message, 15, 'quorum.pb.Object'
109
- optional :published, :message, 16, 'google.protobuf.Timestamp'
110
- optional :replies, :message, 17, 'quorum.pb.Object'
111
- optional :startTime, :message, 18, 'google.protobuf.Timestamp'
112
- optional :summary, :string, 19
113
- repeated :tag, :message, 20, 'quorum.pb.Object'
114
- optional :updated, :message, 21, 'google.protobuf.Timestamp'
115
- repeated :url, :message, 22, 'quorum.pb.Link'
116
- repeated :to, :message, 23, 'quorum.pb.Object'
117
- repeated :bto, :message, 24, 'quorum.pb.Object'
118
- repeated :cc, :message, 25, 'quorum.pb.Object'
119
- repeated :bcc, :message, 26, 'quorum.pb.Object'
120
- optional :mediaType, :string, 27
121
- optional :duration, :string, 28
122
- optional :actor, :message, 29, 'quorum.pb.Object'
123
- optional :object, :message, 30, 'quorum.pb.Object'
124
- optional :target, :message, 31, 'quorum.pb.Object'
125
- optional :result, :message, 32, 'quorum.pb.Object'
126
- optional :origin, :message, 33, 'quorum.pb.Object'
127
- optional :instrument, :message, 34, 'quorum.pb.Object'
128
- optional :person, :message, 35, 'quorum.pb.Person'
129
- end
130
- end
131
- end
132
-
133
- module Quorum
134
- module Pb
135
- AnyObj = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.AnyObj').msgclass
136
- Object = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Object').msgclass
137
- Link = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Link').msgclass
138
- Reply = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Reply').msgclass
139
- Image = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Image').msgclass
140
- File = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.File').msgclass
141
- File::Compression = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.File.Compression').enummodule
142
- Person = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Person').msgclass
143
- Payment = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Payment').msgclass
144
- Activity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Activity').msgclass
145
- end
146
- end
@@ -1,134 +0,0 @@
1
- /* https://github.com/rumsystem/quorum/blob/main/pkg/pb/activity_stream.proto */
2
- syntax = "proto3";
3
- package quorum.pb;
4
- option go_package = "github.com/rumsystem/quorum/pkg/pb";
5
-
6
- import "google/protobuf/timestamp.proto";
7
- import "google/protobuf/any.proto";
8
-
9
- message AnyObj {
10
- google.protobuf.Any any=1;
11
- }
12
-
13
- message Object {
14
- string id = 1;
15
- string type = 2;
16
- repeated Object attachments = 3;
17
- repeated Object attributedTo = 4;
18
- Object audience = 5;
19
- string content = 6;
20
- Object context = 7;
21
- string name = 8;
22
- google.protobuf.Timestamp endtime = 9;
23
- Object generator= 10;
24
- repeated Object icon = 11;
25
- repeated Image image = 12;
26
- Reply inreplyto = 13;
27
- Object location = 14;
28
- Object preview = 15;
29
- google.protobuf.Timestamp published = 16;
30
- Object replies = 17;
31
- google.protobuf.Timestamp startTime = 18;
32
- string summary = 19;
33
- repeated Object tag = 20;
34
- google.protobuf.Timestamp updated = 21;
35
- repeated Link url = 22;
36
- repeated Object to = 23;
37
- repeated Object bto = 24;
38
- repeated Object cc = 25;
39
- repeated Object bcc = 26;
40
- string mediaType= 27;
41
- string duration = 28;
42
- File file = 29;
43
- }
44
-
45
- message Link {
46
- string href = 1;
47
- repeated string rel = 2;
48
- string mediaType= 3;
49
- string name = 4;
50
- string hreflang = 5;
51
- uint32 height = 6;
52
- uint32 width = 7;
53
- Object preview =8;
54
- }
55
-
56
- message Reply {
57
- string trxid = 1;
58
- string groupid = 2;
59
- }
60
-
61
- message Image {
62
- string id = 1;
63
- string name = 2;
64
- string mediaType= 3;
65
- bytes content = 4;
66
- string url = 5;
67
- }
68
-
69
- message File {
70
- string id = 1;
71
- string name = 2;
72
- string mediaType= 3;
73
- enum Compression {
74
- none = 0;
75
- gz = 1;
76
- zip = 2;
77
- zstd = 3;
78
- }
79
- Compression compression = 4;
80
- bytes content = 5;
81
- string url = 6;
82
- }
83
-
84
- message Person {
85
- string id = 1;
86
- string name = 2;
87
- Image image = 3;
88
- repeated Payment wallet = 11;
89
- }
90
-
91
- message Payment {
92
- string id = 1;
93
- string type = 2;
94
- string name = 3;
95
- }
96
-
97
- message Activity {
98
- string id = 1;
99
- string type = 2;
100
- repeated Object attachments = 3;
101
- repeated Object attributedTo = 4;
102
- Object audience = 5;
103
- string content = 6;
104
- Object context = 7;
105
- string name = 8;
106
- google.protobuf.Timestamp endtime = 9;
107
- Object generator= 10;
108
- repeated Object icon = 11;
109
- repeated Object image = 12;
110
- Object inReplyTo = 13;
111
- Object location = 14;
112
- Object preview = 15;
113
- google.protobuf.Timestamp published = 16;
114
- Object replies = 17;
115
- google.protobuf.Timestamp startTime = 18;
116
- string summary = 19;
117
- repeated Object tag = 20;
118
- google.protobuf.Timestamp updated = 21;
119
- repeated Link url = 22;
120
- repeated Object to = 23;
121
- repeated Object bto = 24;
122
- repeated Object cc = 25;
123
- repeated Object bcc = 26;
124
- string mediaType = 27;
125
- string duration = 28;
126
-
127
- Object actor = 29;
128
- Object object = 30;
129
- Object target = 31;
130
- Object result = 32;
131
- Object origin = 33;
132
- Object instrument = 34;
133
- Person person = 35;
134
- }
@@ -1,146 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Generated by the protocol buffer compiler. DO NOT EDIT!
4
- # source: lib/proto/activity_stream.proto
5
-
6
- require 'google/protobuf'
7
-
8
- require 'google/protobuf/timestamp_pb'
9
- require 'google/protobuf/any_pb'
10
-
11
- Google::Protobuf::DescriptorPool.generated_pool.build do
12
- add_file('lib/proto/activity_stream.proto', syntax: :proto3) do
13
- add_message 'quorum.pb.AnyObj' do
14
- optional :any, :message, 1, 'google.protobuf.Any'
15
- end
16
- add_message 'quorum.pb.Object' do
17
- optional :id, :string, 1
18
- optional :type, :string, 2
19
- repeated :attachments, :message, 3, 'quorum.pb.Object'
20
- repeated :attributedTo, :message, 4, 'quorum.pb.Object'
21
- optional :audience, :message, 5, 'quorum.pb.Object'
22
- optional :content, :string, 6
23
- optional :context, :message, 7, 'quorum.pb.Object'
24
- optional :name, :string, 8
25
- optional :endtime, :message, 9, 'google.protobuf.Timestamp'
26
- optional :generator, :message, 10, 'quorum.pb.Object'
27
- repeated :icon, :message, 11, 'quorum.pb.Object'
28
- repeated :image, :message, 12, 'quorum.pb.Image'
29
- optional :inreplyto, :message, 13, 'quorum.pb.Reply'
30
- optional :location, :message, 14, 'quorum.pb.Object'
31
- optional :preview, :message, 15, 'quorum.pb.Object'
32
- optional :published, :message, 16, 'google.protobuf.Timestamp'
33
- optional :replies, :message, 17, 'quorum.pb.Object'
34
- optional :startTime, :message, 18, 'google.protobuf.Timestamp'
35
- optional :summary, :string, 19
36
- repeated :tag, :message, 20, 'quorum.pb.Object'
37
- optional :updated, :message, 21, 'google.protobuf.Timestamp'
38
- repeated :url, :message, 22, 'quorum.pb.Link'
39
- repeated :to, :message, 23, 'quorum.pb.Object'
40
- repeated :bto, :message, 24, 'quorum.pb.Object'
41
- repeated :cc, :message, 25, 'quorum.pb.Object'
42
- repeated :bcc, :message, 26, 'quorum.pb.Object'
43
- optional :mediaType, :string, 27
44
- optional :duration, :string, 28
45
- optional :file, :message, 29, 'quorum.pb.File'
46
- end
47
- add_message 'quorum.pb.Link' do
48
- optional :href, :string, 1
49
- repeated :rel, :string, 2
50
- optional :mediaType, :string, 3
51
- optional :name, :string, 4
52
- optional :hreflang, :string, 5
53
- optional :height, :uint32, 6
54
- optional :width, :uint32, 7
55
- optional :preview, :message, 8, 'quorum.pb.Object'
56
- end
57
- add_message 'quorum.pb.Reply' do
58
- optional :trxid, :string, 1
59
- optional :groupid, :string, 2
60
- end
61
- add_message 'quorum.pb.Image' do
62
- optional :id, :string, 1
63
- optional :name, :string, 2
64
- optional :mediaType, :string, 3
65
- optional :content, :bytes, 4
66
- optional :url, :string, 5
67
- end
68
- add_message 'quorum.pb.File' do
69
- optional :id, :string, 1
70
- optional :name, :string, 2
71
- optional :mediaType, :string, 3
72
- optional :compression, :enum, 4, 'quorum.pb.File.Compression'
73
- optional :content, :bytes, 5
74
- optional :url, :string, 6
75
- end
76
- add_enum 'quorum.pb.File.Compression' do
77
- value :none, 0
78
- value :gz, 1
79
- value :zip, 2
80
- value :zstd, 3
81
- end
82
- add_message 'quorum.pb.Person' do
83
- optional :id, :string, 1
84
- optional :name, :string, 2
85
- optional :image, :message, 3, 'quorum.pb.Image'
86
- repeated :wallet, :message, 11, 'quorum.pb.Payment'
87
- end
88
- add_message 'quorum.pb.Payment' do
89
- optional :id, :string, 1
90
- optional :type, :string, 2
91
- optional :name, :string, 3
92
- end
93
- add_message 'quorum.pb.Activity' do
94
- optional :id, :string, 1
95
- optional :type, :string, 2
96
- repeated :attachments, :message, 3, 'quorum.pb.Object'
97
- repeated :attributedTo, :message, 4, 'quorum.pb.Object'
98
- optional :audience, :message, 5, 'quorum.pb.Object'
99
- optional :content, :string, 6
100
- optional :context, :message, 7, 'quorum.pb.Object'
101
- optional :name, :string, 8
102
- optional :endtime, :message, 9, 'google.protobuf.Timestamp'
103
- optional :generator, :message, 10, 'quorum.pb.Object'
104
- repeated :icon, :message, 11, 'quorum.pb.Object'
105
- repeated :image, :message, 12, 'quorum.pb.Object'
106
- optional :inReplyTo, :message, 13, 'quorum.pb.Object'
107
- optional :location, :message, 14, 'quorum.pb.Object'
108
- optional :preview, :message, 15, 'quorum.pb.Object'
109
- optional :published, :message, 16, 'google.protobuf.Timestamp'
110
- optional :replies, :message, 17, 'quorum.pb.Object'
111
- optional :startTime, :message, 18, 'google.protobuf.Timestamp'
112
- optional :summary, :string, 19
113
- repeated :tag, :message, 20, 'quorum.pb.Object'
114
- optional :updated, :message, 21, 'google.protobuf.Timestamp'
115
- repeated :url, :message, 22, 'quorum.pb.Link'
116
- repeated :to, :message, 23, 'quorum.pb.Object'
117
- repeated :bto, :message, 24, 'quorum.pb.Object'
118
- repeated :cc, :message, 25, 'quorum.pb.Object'
119
- repeated :bcc, :message, 26, 'quorum.pb.Object'
120
- optional :mediaType, :string, 27
121
- optional :duration, :string, 28
122
- optional :actor, :message, 29, 'quorum.pb.Object'
123
- optional :object, :message, 30, 'quorum.pb.Object'
124
- optional :target, :message, 31, 'quorum.pb.Object'
125
- optional :result, :message, 32, 'quorum.pb.Object'
126
- optional :origin, :message, 33, 'quorum.pb.Object'
127
- optional :instrument, :message, 34, 'quorum.pb.Object'
128
- optional :person, :message, 35, 'quorum.pb.Person'
129
- end
130
- end
131
- end
132
-
133
- module Quorum
134
- module Pb
135
- AnyObj = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.AnyObj').msgclass
136
- Object = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Object').msgclass
137
- Link = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Link').msgclass
138
- Reply = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Reply').msgclass
139
- Image = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Image').msgclass
140
- File = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.File').msgclass
141
- File::Compression = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.File.Compression').enummodule
142
- Person = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Person').msgclass
143
- Payment = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Payment').msgclass
144
- Activity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup('quorum.pb.Activity').msgclass
145
- end
146
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QuorumSdk
4
- class API
5
- # Wrapper for HTTP APIs for chain
6
- module Chain
7
- def trx(trx_id)
8
- path = "api/v1/trx/#{group_id}/#{trx_id}"
9
- client.get path
10
- end
11
- end
12
- end
13
- end
@@ -1,88 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QuorumSdk
4
- class API
5
- # Wrapper for HTTP APIs for light node
6
- module LightNode
7
- ARGUMENTS_FOR_BUILD_TRX = %i[private_key data].freeze
8
- def build_trx(**kwargs)
9
- raise ArgumentError, "Keyword arguments #{ARGUMENTS_FOR_BUILD_TRX} must be provided" unless ARGUMENTS_FOR_BUILD_TRX.all?(&->(arg) { arg.in? kwargs.keys })
10
- raise ArgumentError, 'data should be instance of Google::Protobuf::MessageExts' unless kwargs[:data].is_a?(Google::Protobuf::MessageExts)
11
-
12
- kwargs = kwargs.merge(
13
- group_id:,
14
- cipher_key:
15
- )
16
- QuorumSdk::Utils.encrypt_trx(**kwargs)
17
- end
18
-
19
- def send_trx(trx_item)
20
- path = "api/v1/node/trx/#{group_id}"
21
- client.post(path, TrxItem: trx_item).body
22
- end
23
-
24
- def list_trx(**kwargs)
25
- params = {
26
- group_id:,
27
- start_trx: kwargs[:start_trx],
28
- num: kwargs[:num] || 100,
29
- senders: kwargs[:senders].presence || [],
30
- trx_types: kwargs[:trx_types].presence || []
31
- }.compact
32
- params[:reverse] =
33
- if kwargs[:reverse]
34
- 'true'
35
- else
36
- 'false'
37
- end
38
- params[:include_start_trx] =
39
- if kwargs[:include_start_trx]
40
- 'true'
41
- else
42
- 'false'
43
- end
44
-
45
- encrypted_params = QuorumSdk::Utils.aes_encrypt({
46
- Req: params
47
- }.to_json, key: cipher_key)
48
-
49
- payload = {
50
- Req: Base64.strict_encode64(encrypted_params)
51
- }
52
-
53
- path = "api/v1/node/groupctn/#{group_id}"
54
- list = client.post(path, **payload).body
55
-
56
- return list unless list.is_a?(Array)
57
-
58
- list.each do |trx|
59
- data = Base64.strict_decode64 trx['Data']
60
- trx['Data'] = QuorumSdk::Utils.decrypt_trx_data data, key: cipher_key
61
- end
62
-
63
- list
64
- end
65
-
66
- def chain_data(params, type)
67
- path = "api/v1/node/getchaindata/#{group_id}"
68
- encrypted_params = QuorumSdk::Utils.aes_encrypt params.to_json, key: cipher_key
69
- encoded_params = Base64.strict_encode64 encrypted_params
70
-
71
- payload = {
72
- Req: encoded_params,
73
- ReqType: type
74
- }
75
-
76
- client.post(path, **payload).body
77
- end
78
-
79
- def group_info
80
- chain_data({ GroupId: group_id }, 'group_info')
81
- end
82
-
83
- def auth_type(trx_type)
84
- chain_data({ GroupId: group_id, TrxType: trx_type }, 'auth_type')
85
- end
86
- end
87
- end
88
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'api/chain'
4
- require_relative 'api/light_node'
5
- require_relative 'client'
6
-
7
- module QuorumSdk
8
- # Wrapper for HTTP APIs
9
- class API
10
- attr_reader :group_id, :group_name, :consensus_type, :encryption_type, :app_key, :owner_pubkey, :signature,
11
- :cipher_key, :chain_urls, :client
12
-
13
- def initialize(seed_url)
14
- r = QuorumSdk::Utils.parse_seed_url seed_url
15
-
16
- @group_id = r[:group_id]
17
- @group_name = r[:group_name]
18
- @consensus_type = r[:consensus_type]
19
- @encryption_type = r[:encryption_type]
20
- @app_key = r[:app_key]
21
- @owner_pubkey = r[:owner_pubkey]
22
- @signature = r[:signature]
23
- @cipher_key = r[:cipher_key]
24
- @chain_urls = r[:chain_urls]
25
-
26
- @client = QuorumSdk::Client.new(@chain_urls)
27
- end
28
-
29
- include QuorumSdk::API::Chain
30
- include QuorumSdk::API::LightNode
31
- end
32
- end