bitcoinrb-grpc 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bitcoin/grpc/api.rb +2 -0
- data/lib/bitcoin/grpc/api/get_balance.rb +21 -0
- data/lib/bitcoin/grpc/api/get_token_balance.rb +31 -0
- data/lib/bitcoin/grpc/grpc_pb.rb +19 -0
- data/lib/bitcoin/grpc/grpc_services_pb.rb +2 -0
- data/lib/bitcoin/grpc/server.rb +8 -0
- data/lib/bitcoin/grpc/version.rb +1 -1
- data/proto/bitcoin/grpc/grpc.proto +22 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3fcac84338b9a2eb74ee9d72b276a1ff6ea8cebd2c35052d3a857a650b53e877
|
4
|
+
data.tar.gz: 9d614d0891e3544fefa96c93f213eebabced6496d41914b451d466a9268d3f50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf53e08ca4e325a6c5160bd10be916f687938e0d6b6b836fd3af92cd5891ebf40ea528718fafc738aa8f467fe2f4eb4ffe38ddfe85f38bcb680af27a2c27b745
|
7
|
+
data.tar.gz: 53f829615c9edd13f41b7efca47ac4c6b16407a408eb5b6b841204fd11c09c00ca049b2ef19659517051af7fd5ce0ba66d02121cd6042a4f997f4d8c80314a46
|
data/lib/bitcoin/grpc/api.rb
CHANGED
@@ -5,6 +5,8 @@ module Bitcoin
|
|
5
5
|
autoload :ListUnspent, 'bitcoin/grpc/api/list_unspent'
|
6
6
|
autoload :ListColoredUnspent, 'bitcoin/grpc/api/list_colored_unspent'
|
7
7
|
autoload :ListUncoloredUnspent, 'bitcoin/grpc/api/list_uncolored_unspent'
|
8
|
+
autoload :GetBalance, 'bitcoin/grpc/api/get_balance'
|
9
|
+
autoload :GetTokenBalance, 'bitcoin/grpc/api/get_token_balance'
|
8
10
|
end
|
9
11
|
end
|
10
12
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bitcoin
|
4
|
+
module Grpc
|
5
|
+
module Api
|
6
|
+
class GetBalance
|
7
|
+
attr_reader :spv
|
8
|
+
|
9
|
+
def initialize(spv)
|
10
|
+
@spv = spv
|
11
|
+
end
|
12
|
+
|
13
|
+
def execute(request)
|
14
|
+
height = spv.chain.latest_block.height
|
15
|
+
balance = spv.wallet.get_balance(request.account_name)
|
16
|
+
Bitcoin::Grpc::GetBalanceResponse.new(balance: balance)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bitcoin
|
4
|
+
module Grpc
|
5
|
+
module Api
|
6
|
+
class GetTokenBalance
|
7
|
+
attr_reader :spv
|
8
|
+
|
9
|
+
def initialize(spv)
|
10
|
+
@spv = spv
|
11
|
+
end
|
12
|
+
|
13
|
+
def execute(request)
|
14
|
+
height = spv.chain.latest_block.height
|
15
|
+
assets = spv.wallet.list_unspent_assets_in_account(
|
16
|
+
request.asset_type,
|
17
|
+
request.asset_id,
|
18
|
+
account_name: request.account_name,
|
19
|
+
current_block_height: height,
|
20
|
+
min: 0,
|
21
|
+
max: 9999999
|
22
|
+
)
|
23
|
+
balance = assets.sum(&:value)
|
24
|
+
token_balance = assets.sum(&:asset_quantity)
|
25
|
+
|
26
|
+
Bitcoin::Grpc::GetTokenBalanceResponse.new(balance: balance, token_balance: token_balance)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/bitcoin/grpc/grpc_pb.rb
CHANGED
@@ -143,6 +143,21 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
143
143
|
add_message "bitcoin.grpc.ListUncoloredUnspentResponse" do
|
144
144
|
repeated :utxos, :message, 1, "bitcoin.grpc.Utxo"
|
145
145
|
end
|
146
|
+
add_message "bitcoin.grpc.GetBalanceRequest" do
|
147
|
+
optional :account_name, :string, 1
|
148
|
+
end
|
149
|
+
add_message "bitcoin.grpc.GetBalanceResponse" do
|
150
|
+
optional :balance, :uint64, 1
|
151
|
+
end
|
152
|
+
add_message "bitcoin.grpc.GetTokenBalanceRequest" do
|
153
|
+
optional :account_name, :string, 1
|
154
|
+
optional :asset_type, :uint32, 4
|
155
|
+
optional :asset_id, :string, 5
|
156
|
+
end
|
157
|
+
add_message "bitcoin.grpc.GetTokenBalanceResponse" do
|
158
|
+
optional :token_balance, :uint64, 1
|
159
|
+
optional :balance, :uint64, 2
|
160
|
+
end
|
146
161
|
add_message "bitcoin.grpc.EventTxConfirmed" do
|
147
162
|
optional :request_id, :uint32, 1
|
148
163
|
optional :tx_hash, :string, 2
|
@@ -233,6 +248,10 @@ module Bitcoin
|
|
233
248
|
ListColoredUnspentResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("bitcoin.grpc.ListColoredUnspentResponse").msgclass
|
234
249
|
ListUncoloredUnspentRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("bitcoin.grpc.ListUncoloredUnspentRequest").msgclass
|
235
250
|
ListUncoloredUnspentResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("bitcoin.grpc.ListUncoloredUnspentResponse").msgclass
|
251
|
+
GetBalanceRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("bitcoin.grpc.GetBalanceRequest").msgclass
|
252
|
+
GetBalanceResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("bitcoin.grpc.GetBalanceResponse").msgclass
|
253
|
+
GetTokenBalanceRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("bitcoin.grpc.GetTokenBalanceRequest").msgclass
|
254
|
+
GetTokenBalanceResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("bitcoin.grpc.GetTokenBalanceResponse").msgclass
|
236
255
|
EventTxConfirmed = Google::Protobuf::DescriptorPool.generated_pool.lookup("bitcoin.grpc.EventTxConfirmed").msgclass
|
237
256
|
EventUtxoRegistered = Google::Protobuf::DescriptorPool.generated_pool.lookup("bitcoin.grpc.EventUtxoRegistered").msgclass
|
238
257
|
EventUtxoSpent = Google::Protobuf::DescriptorPool.generated_pool.lookup("bitcoin.grpc.EventUtxoSpent").msgclass
|
@@ -24,6 +24,8 @@ module Bitcoin
|
|
24
24
|
rpc :ListUnspent, ListUnspentRequest, ListUnspentResponse
|
25
25
|
rpc :ListColoredUnspent, ListColoredUnspentRequest, ListColoredUnspentResponse
|
26
26
|
rpc :ListUncoloredUnspent, ListUncoloredUnspentRequest, ListUncoloredUnspentResponse
|
27
|
+
rpc :GetBalance, GetBalanceRequest, GetBalanceResponse
|
28
|
+
rpc :GetTokenBalance, GetTokenBalanceRequest, GetTokenBalanceResponse
|
27
29
|
end
|
28
30
|
|
29
31
|
Stub = Service.rpc_stub_class
|
data/lib/bitcoin/grpc/server.rb
CHANGED
@@ -120,6 +120,14 @@ module Bitcoin
|
|
120
120
|
logger.error("list_uncolored_unspent: #{e.message}")
|
121
121
|
logger.error("list_uncolored_unspent: #{e.backtrace}")
|
122
122
|
end
|
123
|
+
|
124
|
+
def get_balance(request, _call)
|
125
|
+
logger.info("get_balance: #{request}")
|
126
|
+
Bitcoin::Grpc::Api::GetBalance.new(spv).execute(request)
|
127
|
+
rescue => e
|
128
|
+
logger.error("get_balance: #{e.message}")
|
129
|
+
logger.error("get_balance: #{e.backtrace}")
|
130
|
+
end
|
123
131
|
end
|
124
132
|
|
125
133
|
class EventsReceiver < Concurrent::Actor::Context
|
data/lib/bitcoin/grpc/version.rb
CHANGED
@@ -13,6 +13,8 @@ service Blockchain {
|
|
13
13
|
rpc ListUnspent(ListUnspentRequest) returns (ListUnspentResponse);
|
14
14
|
rpc ListColoredUnspent(ListColoredUnspentRequest) returns (ListColoredUnspentResponse);
|
15
15
|
rpc ListUncoloredUnspent(ListUncoloredUnspentRequest) returns (ListUncoloredUnspentResponse);
|
16
|
+
rpc GetBalance(GetBalanceRequest) returns (GetBalanceResponse);
|
17
|
+
rpc GetTokenBalance(GetTokenBalanceRequest) returns (GetTokenBalanceResponse);
|
16
18
|
}
|
17
19
|
|
18
20
|
enum Operation {
|
@@ -186,6 +188,25 @@ message ListUncoloredUnspentResponse {
|
|
186
188
|
repeated Utxo utxos = 1;
|
187
189
|
}
|
188
190
|
|
191
|
+
message GetBalanceRequest {
|
192
|
+
string account_name = 1;
|
193
|
+
}
|
194
|
+
|
195
|
+
message GetBalanceResponse {
|
196
|
+
uint64 balance = 1;
|
197
|
+
}
|
198
|
+
|
199
|
+
message GetTokenBalanceRequest {
|
200
|
+
string account_name = 1;
|
201
|
+
uint32 asset_type = 4;
|
202
|
+
string asset_id = 5;
|
203
|
+
}
|
204
|
+
|
205
|
+
message GetTokenBalanceResponse {
|
206
|
+
uint64 token_balance = 1;
|
207
|
+
uint64 balance = 2;
|
208
|
+
}
|
209
|
+
|
189
210
|
message EventTxConfirmed {
|
190
211
|
uint32 request_id = 1;
|
191
212
|
string tx_hash = 2;
|
@@ -247,4 +268,4 @@ message AssetOutput {
|
|
247
268
|
uint32 block_height = 6;
|
248
269
|
uint64 value = 7;
|
249
270
|
string script_pubkey = 8;
|
250
|
-
}
|
271
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bitcoinrb-grpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hajime Yamaguchi
|
@@ -172,6 +172,8 @@ files:
|
|
172
172
|
- config.yml
|
173
173
|
- lib/bitcoin/grpc.rb
|
174
174
|
- lib/bitcoin/grpc/api.rb
|
175
|
+
- lib/bitcoin/grpc/api/get_balance.rb
|
176
|
+
- lib/bitcoin/grpc/api/get_token_balance.rb
|
175
177
|
- lib/bitcoin/grpc/api/list_colored_unspent.rb
|
176
178
|
- lib/bitcoin/grpc/api/list_uncolored_unspent.rb
|
177
179
|
- lib/bitcoin/grpc/api/list_unspent.rb
|