radiator 0.4.0pre4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -3
- data/README.md +48 -24
- data/Rakefile +1 -2
- data/lib/radiator/api.rb +28 -17
- data/lib/radiator/chain.rb +0 -1
- data/lib/radiator/chain_config.rb +1 -8
- data/lib/radiator/error_parser.rb +6 -6
- data/lib/radiator/transaction.rb +1 -3
- data/lib/radiator/type/amount.rb +0 -3
- data/lib/radiator/utils.rb +11 -3
- data/lib/radiator/version.rb +1 -1
- data/lib/radiator.rb +1 -1
- metadata +4 -5
- data/lib/golos.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20a5af6853cd421c70122a70ff48cc4822e7c58c
|
4
|
+
data.tar.gz: 2f303245c66ce3f4ee7d7ad7a1050bd18221c0b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a42aa75fa026a2ea1e0e6dfb25d22c1769eab3672e28616762df741ea523135389980b1299c863ca6886ddd643b72f146f97569f47f0b332c9e2d6565593fa4d
|
7
|
+
data.tar.gz: ba2fa368c835473f96519c909818a645e8d416e4061ea28b34c5b1d5a575b3188acaa7601aa1dd2ae6d4d12086950b73501d2215271dd70924dbd15e18806be1
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
radiator (0.4.
|
4
|
+
radiator (0.4.0)
|
5
5
|
awesome_print (~> 1.7, >= 1.7.0)
|
6
6
|
bitcoin-ruby (~> 0.0, >= 0.0.11)
|
7
7
|
ffi (~> 1.9, >= 1.9.18)
|
@@ -32,7 +32,7 @@ GEM
|
|
32
32
|
multi_json (~> 1.10)
|
33
33
|
method_source (0.9.0)
|
34
34
|
minitest (5.11.3)
|
35
|
-
minitest-line (0.6.
|
35
|
+
minitest-line (0.6.5)
|
36
36
|
minitest (~> 5.0)
|
37
37
|
minitest-proveit (1.0.0)
|
38
38
|
minitest (> 5, < 7)
|
@@ -51,7 +51,7 @@ GEM
|
|
51
51
|
simplecov-html (~> 0.10.0)
|
52
52
|
simplecov-html (0.10.2)
|
53
53
|
vcr (3.0.3)
|
54
|
-
webmock (3.
|
54
|
+
webmock (3.4.1)
|
55
55
|
addressable (>= 2.3.6)
|
56
56
|
crack (>= 0.3.2)
|
57
57
|
hashdiff
|
data/README.md
CHANGED
@@ -13,7 +13,7 @@ Radiator is an API Client for interaction with the STEEM network using Ruby.
|
|
13
13
|
#### Changes in v0.4.0
|
14
14
|
|
15
15
|
* Gem updates
|
16
|
-
* AppBase Support
|
16
|
+
* **AppBase Support**
|
17
17
|
* Defaulting to `condenser_api.*` in `Radiator::Api` (see below)
|
18
18
|
* Handle/recover from new `AppBase` errors.
|
19
19
|
* `Radiator::Stream` now detects if it's stalled and takes action if it has to wait too long for a new block.
|
@@ -425,24 +425,6 @@ tx.operations << transfer
|
|
425
425
|
tx.process(true)
|
426
426
|
```
|
427
427
|
|
428
|
-
#### Golos
|
429
|
-
|
430
|
-
Radiator also supports Golos. To use the Golos blockchain, provide a node and chain_id:
|
431
|
-
|
432
|
-
```ruby
|
433
|
-
tx = Radiator::Transaction.new(wif: 'Your Wif Here', chain: :golos, url: 'https://ws.golos.io')
|
434
|
-
vote = {
|
435
|
-
type: :vote,
|
436
|
-
voter: 'xeroc',
|
437
|
-
author: 'xeroc',
|
438
|
-
permlink: 'piston',
|
439
|
-
weight: 10000
|
440
|
-
}
|
441
|
-
|
442
|
-
tx.operations << vote
|
443
|
-
tx.process(true)
|
444
|
-
```
|
445
|
-
|
446
428
|
There's a complete list of operations known to Radiator in [`broadcast_operations.json`](https://github.com/inertia186/radiator/blob/master/lib/radiator/broadcast_operations.json).
|
447
429
|
|
448
430
|
## Failover
|
@@ -451,10 +433,10 @@ Radiator supports failover for situations where a node has, for example, become
|
|
451
433
|
|
452
434
|
```ruby
|
453
435
|
options = {
|
454
|
-
|
436
|
+
url: 'https://api.steemit.com',
|
455
437
|
failover_urls: [
|
456
438
|
'https://api.steemitstage.com',
|
457
|
-
'https://
|
439
|
+
'https://api.steem.house'
|
458
440
|
]
|
459
441
|
}
|
460
442
|
|
@@ -475,6 +457,22 @@ There is another rare scenario involving `::Transaction` broadcasts that's handl
|
|
475
457
|
tx = Radiator::Transaction.new(wif: wif, recover_transactions_on_error: false)
|
476
458
|
```
|
477
459
|
|
460
|
+
### Golos Failover Examples
|
461
|
+
|
462
|
+
Typically, you only need to pass `chain: :golos` to enable Golos. Failover is enabled by default. If you want to provide your own full nodes, use this format:
|
463
|
+
|
464
|
+
```ruby
|
465
|
+
options = {
|
466
|
+
chain: :golos,
|
467
|
+
url: 'https://ws.golos.io',
|
468
|
+
failover_urls: [
|
469
|
+
'https://api.golos.cf'
|
470
|
+
]
|
471
|
+
}
|
472
|
+
|
473
|
+
api = Radiator::Api.new(options)
|
474
|
+
```
|
475
|
+
|
478
476
|
## Debugging
|
479
477
|
|
480
478
|
To enable debugging, set environment `LOG=DEBUG` before launching your app. E.g.:
|
@@ -519,6 +517,34 @@ If you have excluded system resources as the root cause, then you should take a
|
|
519
517
|
|
520
518
|
Verify your code is not doing too much between blocks.
|
521
519
|
|
520
|
+
## Problem: I'm getting an endless loop: `#<OpenSSL::SSL::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=error: certificate verify failed>`
|
521
|
+
|
522
|
+
## Solution:
|
523
|
+
|
524
|
+
You're probably creating too many threads or you don't have enough resources for what you're doing. One option for you is to avoid persistent HTTP by passing `persist: false`.
|
525
|
+
|
526
|
+
Doing this will impact performance because each API call will be a separate socket call. All of the constructors accept `persist: false`., e.g.:
|
527
|
+
|
528
|
+
```ruby
|
529
|
+
api = Radiator::Api.new(persist: false)
|
530
|
+
```
|
531
|
+
|
532
|
+
... or ...
|
533
|
+
|
534
|
+
```ruby
|
535
|
+
stream = Radiator::Stream.new(persist: false)
|
536
|
+
```
|
537
|
+
|
538
|
+
... or ...
|
539
|
+
|
540
|
+
```ruby
|
541
|
+
tx = Radiator::Transaction.new(options.merge(persist: false, wif: wif))
|
542
|
+
```
|
543
|
+
|
544
|
+
Also see troubleshooting discussion about this situation:
|
545
|
+
|
546
|
+
https://github.com/inertia186/radiator/issues/12
|
547
|
+
|
522
548
|
## Tests
|
523
549
|
|
524
550
|
* Clone the client repository into a directory of your choice:
|
@@ -531,15 +557,13 @@ Verify your code is not doing too much between blocks.
|
|
531
557
|
* `HELL_ENABLED=true rake`
|
532
558
|
* To run a stream test on the live STEEM blockchain with debug logging enabled:
|
533
559
|
* `LOG=DEBUG rake test_live_stream`
|
534
|
-
* To run a stream test on the live GOLOS blockchain with debug logging enabled:
|
535
|
-
* `LOG=DEBUG rake test_live_stream[golos]`
|
536
560
|
---
|
537
561
|
|
538
562
|
<center>
|
539
563
|
<img src="http://www.steemimg.com/images/2016/08/19/RadiatorCoolingFan-54in-Webfdcb1.png" />
|
540
564
|
</center>
|
541
565
|
|
542
|
-
See my previous Ruby How To posts in: [
|
566
|
+
See my previous Ruby How To posts in: [/f/ruby](https://chainbb.com/f/ruby)
|
543
567
|
|
544
568
|
## Get in touch!
|
545
569
|
|
data/Rakefile
CHANGED
@@ -3,7 +3,6 @@ require 'rake/testtask'
|
|
3
3
|
require 'yard'
|
4
4
|
require 'radiator'
|
5
5
|
require 'awesome_print'
|
6
|
-
require 'pry'
|
7
6
|
|
8
7
|
Rake::TestTask.new(:test) do |t|
|
9
8
|
t.libs << 'test'
|
@@ -85,7 +84,7 @@ task :test_live_stream, [:chain, :persist] do |t, args|
|
|
85
84
|
api.get_ops_in_block(n, true) do |vops, error|
|
86
85
|
if !!error
|
87
86
|
puts "Error on get_ops_in_block for block #{n}"
|
88
|
-
ap error
|
87
|
+
ap error if defined? ap
|
89
88
|
end
|
90
89
|
|
91
90
|
puts "Problem: vops is nil!" if vops.nil?
|
data/lib/radiator/api.rb
CHANGED
@@ -136,13 +136,10 @@ module Radiator
|
|
136
136
|
|
137
137
|
DEFAULT_STEEM_URL = 'https://api.steemit.com'
|
138
138
|
|
139
|
-
DEFAULT_GOLOS_URL = 'https://ws.golos.io'
|
140
|
-
|
141
139
|
DEFAULT_STEEM_FAILOVER_URLS = [
|
142
140
|
DEFAULT_STEEM_URL,
|
143
141
|
'https://api.steemitstage.com',
|
144
142
|
'https://appbasetest.timcliff.com',
|
145
|
-
'https://gtg.steem.house:8090',
|
146
143
|
'https://api.steem.house',
|
147
144
|
'https://seed.bitcoiner.me',
|
148
145
|
'https://steemd.minnowsupportproject.org',
|
@@ -155,16 +152,6 @@ module Radiator
|
|
155
152
|
'https://steemd.steemgigs.org'
|
156
153
|
]
|
157
154
|
|
158
|
-
DEFAULT_GOLOS_FAILOVER_URLS = [
|
159
|
-
DEFAULT_GOLOS_URL,
|
160
|
-
'https://api.golos.cf',
|
161
|
-
# not recommended, not all plug-ins enabled:
|
162
|
-
# 'https://ws.goldvoice.club',
|
163
|
-
# 'http://golos-seed.arcange.eu',
|
164
|
-
# not recommended, requires option ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE
|
165
|
-
# 'https://golos-seed.arcange.eu',
|
166
|
-
]
|
167
|
-
|
168
155
|
# @private
|
169
156
|
POST_HEADERS = {
|
170
157
|
'Content-Type' => 'application/json',
|
@@ -177,7 +164,6 @@ module Radiator
|
|
177
164
|
def self.default_url(chain)
|
178
165
|
case chain.to_sym
|
179
166
|
when :steem then DEFAULT_STEEM_URL
|
180
|
-
when :golos then DEFAULT_GOLOS_URL
|
181
167
|
else; raise ApiError, "Unsupported chain: #{chain}"
|
182
168
|
end
|
183
169
|
end
|
@@ -185,7 +171,6 @@ module Radiator
|
|
185
171
|
def self.default_failover_urls(chain)
|
186
172
|
case chain.to_sym
|
187
173
|
when :steem then DEFAULT_STEEM_FAILOVER_URLS
|
188
|
-
when :golos then DEFAULT_GOLOS_FAILOVER_URLS
|
189
174
|
else; raise ApiError, "Unsupported chain: #{chain}"
|
190
175
|
end
|
191
176
|
end
|
@@ -204,6 +189,7 @@ module Radiator
|
|
204
189
|
# @option options [Integer] :max_requests Maximum number of requests on a connection before it is considered expired and automatically closed.
|
205
190
|
# @option options [Integer] :pool_size Maximum number of connections allowed.
|
206
191
|
# @option options [Boolean] :reuse_ssl_sessions Reuse a previously opened SSL session for a new connection. There's a slight performance improvement by enabling this, but at the expense of reliability during long execution. Default false.
|
192
|
+
# @option options [Boolean] :persist Enable or disable Persistent HTTP. Using Persistent HTTP keeps the connection alive between API calls. Default: `true`
|
207
193
|
def initialize(options = {})
|
208
194
|
@user = options[:user]
|
209
195
|
@password = options[:password]
|
@@ -400,6 +386,10 @@ module Radiator
|
|
400
386
|
loop do
|
401
387
|
tries += 1
|
402
388
|
|
389
|
+
if tries > 5 && flappy? && !check_file_open?
|
390
|
+
raise ApiError, 'PANIC: Out of file resources'
|
391
|
+
end
|
392
|
+
|
403
393
|
begin
|
404
394
|
if tries > 1 && @recover_transactions_on_error && api_name == :network_broadcast_api
|
405
395
|
signatures, exp = extract_signatures(options)
|
@@ -435,7 +425,7 @@ module Radiator
|
|
435
425
|
warning "Unexpected rpc_id (expected: #{options[:id]}, got: #{response['id']}), retrying ...", method_name, true
|
436
426
|
else
|
437
427
|
# The node has broken the jsonrpc spec.
|
438
|
-
warning "Node did not provide jsonrpc id (expected: #{options[:id]}, got: nothing, retrying ...", method_name, true
|
428
|
+
warning "Node did not provide jsonrpc id (expected: #{options[:id]}, got: nothing), retrying ...", method_name, true
|
439
429
|
end
|
440
430
|
|
441
431
|
if response.keys.include?('error')
|
@@ -675,7 +665,6 @@ module Radiator
|
|
675
665
|
|
676
666
|
api.get_blocks(block_range) do |block, block_num|
|
677
667
|
unless defined? block.transaction_ids
|
678
|
-
# Happens on Golos, see: https://github.com/GolosChain/golos/issues/281
|
679
668
|
error "Blockchain does not provide transaction ids in blocks, giving up."
|
680
669
|
return nil
|
681
670
|
end
|
@@ -683,6 +672,16 @@ module Radiator
|
|
683
672
|
count += 1
|
684
673
|
raise ApiError, "Race condition detected on remote node at: #{block_num}" if block.nil?
|
685
674
|
|
675
|
+
# TODO Some blockchains (like Golos) do not have transaction_ids. In
|
676
|
+
# the future, it would be better to decode the operation and signature
|
677
|
+
# into the transaction id.
|
678
|
+
# See: https://github.com/steemit/steem/issues/187
|
679
|
+
# See: https://github.com/GolosChain/golos/issues/281
|
680
|
+
unless defined? block.transaction_ids
|
681
|
+
@recover_transactions_on_error = false
|
682
|
+
return
|
683
|
+
end
|
684
|
+
|
686
685
|
timestamp = Time.parse(block.timestamp + 'Z')
|
687
686
|
break if timestamp < after
|
688
687
|
|
@@ -867,5 +866,17 @@ module Radiator
|
|
867
866
|
@backoff_sleep = nil
|
868
867
|
end
|
869
868
|
end
|
869
|
+
|
870
|
+
def self.finalize(logger, hashie_logger)
|
871
|
+
proc {
|
872
|
+
if !!logger && defined?(logger.close) && !logger.closed?
|
873
|
+
logger.close
|
874
|
+
end
|
875
|
+
|
876
|
+
if !!hashie_logger && defined?(hashie_logger.close) && !hashie_logger.closed?
|
877
|
+
hashie_logger.close
|
878
|
+
end
|
879
|
+
}
|
880
|
+
end
|
870
881
|
end
|
871
882
|
end
|
data/lib/radiator/chain.rb
CHANGED
@@ -291,7 +291,6 @@ module Radiator
|
|
291
291
|
def default_debt_asset
|
292
292
|
case chain
|
293
293
|
when :steem then ChainConfig::NETWORKS_STEEM_DEBT_ASSET
|
294
|
-
when :golos then ChainConfig::NETWORKS_GOLOS_DEBT_ASSET
|
295
294
|
when :test then ChainConfig::NETWORKS_TEST_DEBT_ASSET
|
296
295
|
else; raise ChainError, "Unknown chain: #{chain}"
|
297
296
|
end
|
@@ -10,13 +10,6 @@ module Radiator
|
|
10
10
|
NETWORKS_STEEM_VEST_ASSET = 'VESTS'
|
11
11
|
NETWORKS_STEEM_DEFAULT_NODE = 'https://api.steemit.com'
|
12
12
|
|
13
|
-
NETWORKS_GOLOS_CHAIN_ID = '782a3039b478c839e4cb0c941ff4eaeb7df40bdd68bd441afd444b9da763de12'
|
14
|
-
NETWORKS_GOLOS_ADDRESS_PREFIX = 'GLS'
|
15
|
-
NETWORKS_GOLOS_CORE_ASSET = 'GOLOS'
|
16
|
-
NETWORKS_GOLOS_DEBT_ASSET = 'GBG'
|
17
|
-
NETWORKS_GOLOS_VEST_ASSET = 'GESTS'
|
18
|
-
NETWORKS_GOLOS_DEFAULT_NODE = 'https://ws.golos.io'
|
19
|
-
|
20
13
|
NETWORKS_TEST_CHAIN_ID = '18dcf0a285365fc58b71f18b3d3fec954aa0c141c44e4e5cb4cf777b9eab274e'
|
21
14
|
NETWORKS_TEST_ADDRESS_PREFIX = 'TST'
|
22
15
|
NETWORKS_TEST_CORE_ASSET = 'CORE'
|
@@ -24,6 +17,6 @@ module Radiator
|
|
24
17
|
NETWORKS_TEST_VEST_ASSET = 'CESTS'
|
25
18
|
NETWORKS_TEST_DEFAULT_NODE = 'https://test.steem.ws'
|
26
19
|
|
27
|
-
NETWORK_CHAIN_IDS = [NETWORKS_STEEM_CHAIN_ID,
|
20
|
+
NETWORK_CHAIN_IDS = [NETWORKS_STEEM_CHAIN_ID, NETWORKS_TEST_CHAIN_ID]
|
28
21
|
end
|
29
22
|
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'awesome_print'
|
2
|
-
|
3
1
|
module Radiator
|
4
2
|
class ErrorParser
|
5
3
|
include Utils
|
@@ -154,10 +152,12 @@ module Radiator
|
|
154
152
|
@can_reprepare = false
|
155
153
|
end
|
156
154
|
rescue => e
|
157
|
-
if
|
158
|
-
|
159
|
-
|
160
|
-
|
155
|
+
if defined? ap
|
156
|
+
if ENV['DEBUG'] == 'true'
|
157
|
+
ap error_parser_exception: e, original_response: response, backtrace: e.backtrace
|
158
|
+
else
|
159
|
+
ap error_parser_exception: e, original_response: response
|
160
|
+
end
|
161
161
|
end
|
162
162
|
|
163
163
|
@expiry = false
|
data/lib/radiator/transaction.rb
CHANGED
@@ -75,7 +75,6 @@ module Radiator
|
|
75
75
|
|
76
76
|
case chain.to_s.downcase.to_sym
|
77
77
|
when :steem then NETWORKS_STEEM_CHAIN_ID
|
78
|
-
when :golos then NETWORKS_GOLOS_CHAIN_ID
|
79
78
|
when :test then NETWORKS_TEST_CHAIN_ID
|
80
79
|
end
|
81
80
|
end
|
@@ -83,7 +82,6 @@ module Radiator
|
|
83
82
|
def url
|
84
83
|
case chain.to_s.downcase.to_sym
|
85
84
|
when :steem then NETWORKS_STEEM_DEFAULT_NODE
|
86
|
-
when :golos then NETWORKS_GOLOS_DEFAULT_NODE
|
87
85
|
when :test then NETWORKS_TEST_DEFAULT_NODE
|
88
86
|
end
|
89
87
|
end
|
@@ -172,7 +170,7 @@ module Radiator
|
|
172
170
|
|
173
171
|
@api.get_block(block_number) do |block, error|
|
174
172
|
if !!error
|
175
|
-
ap error if ENV['DEBUG'] == 'true'
|
173
|
+
ap error if defined?(ap) && ENV['DEBUG'] == 'true'
|
176
174
|
raise TransactionError, "Unable to prepare transaction: #{error.message || 'Unknown cause.'}"
|
177
175
|
end
|
178
176
|
|
data/lib/radiator/type/amount.rb
CHANGED
data/lib/radiator/utils.rb
CHANGED
@@ -39,10 +39,18 @@ module Radiator
|
|
39
39
|
puts "#{level}: #{log_message}"
|
40
40
|
end
|
41
41
|
else
|
42
|
-
if
|
43
|
-
|
42
|
+
if defined? @logger.ap
|
43
|
+
if !!prefix
|
44
|
+
@logger.ap log_level: level, prefix => obj
|
45
|
+
else
|
46
|
+
@logger.ap obj, level
|
47
|
+
end
|
44
48
|
else
|
45
|
-
|
49
|
+
if !!prefix
|
50
|
+
@logger.send level, ({prefix => obj}).inspect
|
51
|
+
else
|
52
|
+
@logger.send level, obj.inspect
|
53
|
+
end
|
46
54
|
end
|
47
55
|
end
|
48
56
|
|
data/lib/radiator/version.rb
CHANGED
data/lib/radiator.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'radiator/version'
|
2
2
|
require 'json'
|
3
|
+
require 'awesome_print' if ENV['USE_AWESOME_PRINT'] == 'true'
|
3
4
|
|
4
5
|
module Radiator
|
5
6
|
require 'radiator/utils'
|
@@ -38,6 +39,5 @@ module Radiator
|
|
38
39
|
require 'radiator/mixins/acts_as_wallet'
|
39
40
|
require 'radiator/chain'
|
40
41
|
require 'steem'
|
41
|
-
require 'golos'
|
42
42
|
extend self
|
43
43
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: radiator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anthony Martin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -345,7 +345,6 @@ files:
|
|
345
345
|
- images/Anthony Martin.png
|
346
346
|
- images/Marvin Hofmann.jpg
|
347
347
|
- images/Marvin Hofmann.png
|
348
|
-
- lib/golos.rb
|
349
348
|
- lib/radiator.rb
|
350
349
|
- lib/radiator/account_by_key_api.rb
|
351
350
|
- lib/radiator/account_history_api.rb
|
@@ -402,9 +401,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
402
401
|
version: '0'
|
403
402
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
404
403
|
requirements:
|
405
|
-
- - "
|
404
|
+
- - ">="
|
406
405
|
- !ruby/object:Gem::Version
|
407
|
-
version:
|
406
|
+
version: '0'
|
408
407
|
requirements: []
|
409
408
|
rubyforge_project:
|
410
409
|
rubygems_version: 2.6.14
|
data/lib/golos.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
# Golos chain client for broadcasting common operations.
|
2
|
-
#
|
3
|
-
# @see Radiator::Chain
|
4
|
-
class Golos < Radiator::Chain
|
5
|
-
def initialize(options = {})
|
6
|
-
super(options.merge(chain: :golos))
|
7
|
-
end
|
8
|
-
|
9
|
-
alias golos_per_mgest base_per_mvest
|
10
|
-
alias golos_per_gbg base_per_debt
|
11
|
-
end
|