voilkruby 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +77 -0
  4. data/LICENSE +41 -0
  5. data/README.md +519 -0
  6. data/Rakefile +140 -0
  7. data/gource.sh +8 -0
  8. data/images/Anthony Martin.png +0 -0
  9. data/images/Marvin Hofmann.jpg +0 -0
  10. data/images/Marvin Hofmann.png +0 -0
  11. data/lib/voilk.rb +17 -0
  12. data/lib/voilkruby.rb +45 -0
  13. data/lib/voilkruby/account_by_key_api.rb +7 -0
  14. data/lib/voilkruby/account_history_api.rb +15 -0
  15. data/lib/voilkruby/api.rb +772 -0
  16. data/lib/voilkruby/base_error.rb +23 -0
  17. data/lib/voilkruby/block_api.rb +14 -0
  18. data/lib/voilkruby/broadcast_operations.json +497 -0
  19. data/lib/voilkruby/chain.rb +299 -0
  20. data/lib/voilkruby/chain_config.rb +22 -0
  21. data/lib/voilkruby/chain_stats_api.rb +15 -0
  22. data/lib/voilkruby/condenser_api.rb +99 -0
  23. data/lib/voilkruby/database_api.rb +5 -0
  24. data/lib/voilkruby/error_parser.rb +228 -0
  25. data/lib/voilkruby/follow_api.rb +7 -0
  26. data/lib/voilkruby/logger.rb +20 -0
  27. data/lib/voilkruby/market_history_api.rb +19 -0
  28. data/lib/voilkruby/methods.json +495 -0
  29. data/lib/voilkruby/mixins/acts_as_poster.rb +124 -0
  30. data/lib/voilkruby/mixins/acts_as_voter.rb +50 -0
  31. data/lib/voilkruby/mixins/acts_as_wallet.rb +67 -0
  32. data/lib/voilkruby/network_broadcast_api.rb +7 -0
  33. data/lib/voilkruby/operation.rb +101 -0
  34. data/lib/voilkruby/operation_ids.rb +98 -0
  35. data/lib/voilkruby/operation_types.rb +139 -0
  36. data/lib/voilkruby/stream.rb +527 -0
  37. data/lib/voilkruby/tag_api.rb +33 -0
  38. data/lib/voilkruby/transaction.rb +306 -0
  39. data/lib/voilkruby/type/amount.rb +57 -0
  40. data/lib/voilkruby/type/array.rb +17 -0
  41. data/lib/voilkruby/type/beneficiaries.rb +29 -0
  42. data/lib/voilkruby/type/future.rb +18 -0
  43. data/lib/voilkruby/type/hash.rb +17 -0
  44. data/lib/voilkruby/type/permission.rb +19 -0
  45. data/lib/voilkruby/type/point_in_time.rb +19 -0
  46. data/lib/voilkruby/type/price.rb +25 -0
  47. data/lib/voilkruby/type/public_key.rb +18 -0
  48. data/lib/voilkruby/type/serializer.rb +12 -0
  49. data/lib/voilkruby/type/u_int16.rb +19 -0
  50. data/lib/voilkruby/type/u_int32.rb +19 -0
  51. data/lib/voilkruby/utils.rb +170 -0
  52. data/lib/voilkruby/version.rb +4 -0
  53. data/voilkruby.gemspec +40 -0
  54. metadata +412 -0
@@ -0,0 +1,23 @@
1
+ module VoilkRuby
2
+ class BaseError < StandardError
3
+ def initialize(error, cause = nil)
4
+ @error = error
5
+ @cause = cause
6
+ end
7
+
8
+ def to_s
9
+ if !!@cause
10
+ JSON[error: @error, cause: @cause] rescue {error: @error, cause: @cause}.to_s
11
+ else
12
+ JSON[@error] rescue @error
13
+ end
14
+ end
15
+ end
16
+ end
17
+
18
+ module VoilkRuby; class ApiError < BaseError; end; end
19
+ module VoilkRuby; class StreamError < BaseError; end; end
20
+ module VoilkRuby; class TypeError < BaseError; end; end
21
+ module VoilkRuby; class OperationError < BaseError; end; end
22
+ module VoilkRuby; class TransactionError < BaseError; end; end
23
+ module VoilkRuby; class ChainError < BaseError; end; end
@@ -0,0 +1,14 @@
1
+ module VoilkRuby
2
+ class BlockApi < Api
3
+ def method_names
4
+ @method_names ||= [
5
+ :get_block_header,
6
+ :get_block
7
+ ].freeze
8
+ end
9
+
10
+ def api_name
11
+ :block_api
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,497 @@
1
+ [
2
+ {
3
+ "roles": ["posting", "active", "owner"],
4
+ "operation": "vote",
5
+ "params": [
6
+ "voter",
7
+ "author",
8
+ "permlink",
9
+ "weight"
10
+ ]
11
+ },
12
+ {
13
+ "roles": ["posting", "active", "owner"],
14
+ "operation": "comment",
15
+ "params": [
16
+ "parent_author",
17
+ "parent_permlink",
18
+ "author",
19
+ "permlink",
20
+ "title",
21
+ "body",
22
+ "json_metadata"
23
+ ]
24
+ },
25
+ {
26
+ "roles": ["active", "owner"],
27
+ "operation": "transfer",
28
+ "params": [
29
+ "from",
30
+ "to",
31
+ "amount",
32
+ "memo"
33
+ ]
34
+ },
35
+ {
36
+ "roles": ["active", "owner"],
37
+ "operation": "transfer_to_coining",
38
+ "params": [
39
+ "from",
40
+ "to",
41
+ "amount"
42
+ ]
43
+ },
44
+ {
45
+ "roles": ["active", "owner"],
46
+ "operation": "withdraw_coining",
47
+ "params": [
48
+ "account",
49
+ "coining_shares"
50
+ ]
51
+ },
52
+ {
53
+ "roles": ["active", "owner"],
54
+ "operation": "limit_order_create",
55
+ "params": [
56
+ "owner",
57
+ "orderid",
58
+ "amount_to_sell",
59
+ "min_to_receive",
60
+ "fill_or_kill",
61
+ "expiration"
62
+ ]
63
+ },
64
+ {
65
+ "roles": ["active", "owner"],
66
+ "operation": "limit_order_cancel",
67
+ "params": [
68
+ "owner",
69
+ "orderid"
70
+ ]
71
+ },
72
+ {
73
+ "roles": ["active", "owner"],
74
+ "operation": "price",
75
+ "params": [
76
+ "base",
77
+ "quote"
78
+ ]
79
+ },
80
+ {
81
+ "roles": ["active", "owner"],
82
+ "operation": "feed_publish",
83
+ "params": [
84
+ "publisher",
85
+ "exchange_rate"
86
+ ]
87
+ },
88
+ {
89
+ "roles": ["active", "owner"],
90
+ "operation": "convert",
91
+ "params": [
92
+ "owner",
93
+ "requestid",
94
+ "amount"
95
+ ]
96
+ },
97
+ {
98
+ "roles": ["active", "owner"],
99
+ "operation": "account_create",
100
+ "params": [
101
+ "fee",
102
+ "creator",
103
+ "new_account_name",
104
+ "owner",
105
+ "active",
106
+ "posting",
107
+ "memo_key",
108
+ "json_metadata"
109
+ ]
110
+ },
111
+ {
112
+ "roles": ["active", "owner"],
113
+ "operation": "account_update",
114
+ "params": [
115
+ "account",
116
+ "owner",
117
+ "active",
118
+ "posting",
119
+ "memo_key",
120
+ "json_metadata"
121
+ ]
122
+ },
123
+ {
124
+ "roles": ["active", "owner"],
125
+ "operation": "witness_update",
126
+ "params": [
127
+ "owner",
128
+ "url",
129
+ "block_signing_key",
130
+ "props",
131
+ "fee"
132
+ ]
133
+ },
134
+ {
135
+ "roles": ["active", "owner"],
136
+ "operation": "account_witness_vote",
137
+ "params": [
138
+ "account",
139
+ "witness",
140
+ "approve"
141
+ ]
142
+ },
143
+ {
144
+ "roles": ["active", "owner"],
145
+ "operation": "account_witness_proxy",
146
+ "params": [
147
+ "account",
148
+ "proxy"
149
+ ]
150
+ },
151
+ {
152
+ "roles": ["active", "owner"],
153
+ "operation": "pow",
154
+ "params": [
155
+ "worker",
156
+ "input",
157
+ "signature",
158
+ "work"
159
+ ]
160
+ },
161
+ {
162
+ "roles": ["active", "owner"],
163
+ "operation": "custom",
164
+ "params": [
165
+ "required_auths",
166
+ "id",
167
+ "data"
168
+ ]
169
+ },
170
+ {
171
+ "roles": ["posting", "active", "owner"],
172
+ "operation": "delete_comment",
173
+ "params": [
174
+ "author",
175
+ "permlink"
176
+ ]
177
+ },
178
+ {
179
+ "roles": ["posting", "active", "owner"],
180
+ "operation": "custom_json",
181
+ "params": [
182
+ "required_auths",
183
+ "required_posting_auths",
184
+ "id",
185
+ "json"
186
+ ]
187
+ },
188
+ {
189
+ "roles": ["posting", "active", "owner"],
190
+ "operation": "comment_options",
191
+ "params": [
192
+ "author",
193
+ "permlink",
194
+ "max_accepted_payout",
195
+ "percent_voilk_dollars",
196
+ "allow_replies",
197
+ "allow_votes",
198
+ "allow_curation_rewards",
199
+ "extensions"
200
+ ]
201
+ },
202
+ {
203
+ "roles": ["active", "owner"],
204
+ "operation": "set_withdraw_coining_route",
205
+ "params": [
206
+ "from_account",
207
+ "to_account",
208
+ "percent",
209
+ "auto_coin"
210
+ ]
211
+ },
212
+ {
213
+ "roles": ["active", "owner"],
214
+ "operation": "limit_order_create2",
215
+ "params": [
216
+ "owner",
217
+ "orderid",
218
+ "amount_to_sell",
219
+ "exchange_rate",
220
+ "fill_or_kill",
221
+ "expiration"
222
+ ]
223
+ },
224
+ {
225
+ "roles": ["posting", "active", "owner"],
226
+ "operation": "challenge_authority",
227
+ "params": [
228
+ "challenger",
229
+ "challenged",
230
+ "require_owner"
231
+ ]
232
+ },
233
+ {
234
+ "roles": ["active", "owner"],
235
+ "operation": "prove_authority",
236
+ "params": [
237
+ "challenged",
238
+ "require_owner"
239
+ ]
240
+ },
241
+ {
242
+ "roles": ["active", "owner"],
243
+ "operation": "request_account_recovery",
244
+ "params": [
245
+ "recovery_account",
246
+ "account_to_recover",
247
+ "new_owner_authority",
248
+ "extensions"
249
+ ]
250
+ },
251
+ {
252
+ "roles": ["owner"],
253
+ "operation": "recover_account",
254
+ "params": [
255
+ "account_to_recover",
256
+ "new_owner_authority",
257
+ "recent_owner_authority",
258
+ "extensions"
259
+ ]
260
+ },
261
+ {
262
+ "roles": ["owner"],
263
+ "operation": "change_recovery_account",
264
+ "params": [
265
+ "account_to_recover",
266
+ "new_recovery_account",
267
+ "extensions"
268
+ ]
269
+ },
270
+ {
271
+ "roles": ["active", "owner"],
272
+ "operation": "escrow_transfer",
273
+ "params": [
274
+ "from",
275
+ "to",
276
+ "agent",
277
+ "escrow_id",
278
+ "vsd_amount",
279
+ "voilk_amount",
280
+ "fee",
281
+ "ratification_deadline",
282
+ "escrow_expiration",
283
+ "json_meta"
284
+ ]
285
+ },
286
+ {
287
+ "roles": ["active", "owner"],
288
+ "operation": "escrow_dispute",
289
+ "params": [
290
+ "from",
291
+ "to",
292
+ "agent",
293
+ "who",
294
+ "escrow_id"
295
+ ]
296
+ },
297
+ {
298
+ "roles": ["active", "owner"],
299
+ "operation": "escrow_release",
300
+ "params": [
301
+ "from",
302
+ "to",
303
+ "agent",
304
+ "who",
305
+ "receiver",
306
+ "escrow_id",
307
+ "vsd_amount",
308
+ "voilk_amount"
309
+ ]
310
+ },
311
+ {
312
+ "roles": ["active", "owner"],
313
+ "operation": "pow2",
314
+ "params": [
315
+ "input",
316
+ "pow_summary"
317
+ ]
318
+ },
319
+ {
320
+ "roles": ["active", "owner"],
321
+ "operation": "escrow_approve",
322
+ "params": [
323
+ "from",
324
+ "to",
325
+ "agent",
326
+ "who",
327
+ "escrow_id",
328
+ "approve"
329
+ ]
330
+ },
331
+ {
332
+ "roles": ["active", "owner"],
333
+ "operation": "transfer_to_savings",
334
+ "params": [
335
+ "from",
336
+ "to",
337
+ "amount",
338
+ "memo"
339
+ ]
340
+ },
341
+ {
342
+ "roles": ["active", "owner"],
343
+ "operation": "transfer_from_savings",
344
+ "params": [
345
+ "from",
346
+ "request_id",
347
+ "to",
348
+ "amount",
349
+ "memo"
350
+ ]
351
+ },
352
+ {
353
+ "roles": ["active", "owner"],
354
+ "operation": "cancel_transfer_from_savings",
355
+ "params": [
356
+ "from",
357
+ "request_id"
358
+ ]
359
+ },
360
+ {
361
+ "roles": ["posting", "active", "owner"],
362
+ "operation": "custom_binary",
363
+ "params": [
364
+ "id",
365
+ "data"
366
+ ]
367
+ },
368
+ {
369
+ "roles": ["owner"],
370
+ "operation": "decline_voting_rights",
371
+ "params": [
372
+ "account",
373
+ "decline"
374
+ ]
375
+ },
376
+ {
377
+ "roles": ["active", "owner"],
378
+ "operation": "reset_account",
379
+ "params": [
380
+ "reset_account",
381
+ "account_to_reset",
382
+ "new_owner_authority"
383
+ ]
384
+ },
385
+ {
386
+ "roles": ["owner", "posting"],
387
+ "operation": "set_reset_account",
388
+ "params": [
389
+ "account",
390
+ "current_reset_account",
391
+ "reset_account"
392
+ ]
393
+ },
394
+ {
395
+ "roles": ["posting", "active", "owner"],
396
+ "operation": "claim_reward_balance",
397
+ "params": [
398
+ "account",
399
+ "reward_voilk",
400
+ "reward_vsd",
401
+ "reward_coins"
402
+ ]
403
+ },
404
+ {
405
+ "roles": ["active", "owner"],
406
+ "operation": "delegate_coining_shares",
407
+ "params": [
408
+ "delegator",
409
+ "delegatee",
410
+ "coining_shares"
411
+ ]
412
+ },
413
+ {
414
+ "roles": ["active", "owner"],
415
+ "operation": "account_create_with_delegation",
416
+ "params": [
417
+ "fee",
418
+ "delegation",
419
+ "creator",
420
+ "new_account_name",
421
+ "owner",
422
+ "active",
423
+ "posting",
424
+ "memo_key",
425
+ "json_metadata",
426
+ "extensions"
427
+ ]
428
+ },
429
+ {
430
+ "roles": ["active", "owner"],
431
+ "operation": "fill_convert_request",
432
+ "params": [
433
+ "owner",
434
+ "requestid",
435
+ "amount_in",
436
+ "amount_out"
437
+ ]
438
+ },
439
+ {
440
+ "roles": ["posting", "active", "owner"],
441
+ "operation": "comment_reward",
442
+ "params": [
443
+ "author",
444
+ "permlink",
445
+ "payout"
446
+ ]
447
+ },
448
+ {
449
+ "roles": ["active", "owner"],
450
+ "operation": "liquidity_reward",
451
+ "params": [
452
+ "owner",
453
+ "payout"
454
+ ]
455
+ },
456
+ {
457
+ "roles": ["active", "owner"],
458
+ "operation": "interest",
459
+ "params": [
460
+ "owner",
461
+ "interest"
462
+ ]
463
+ },
464
+ {
465
+ "roles": ["active", "owner"],
466
+ "operation": "fill_coining_withdraw",
467
+ "params": [
468
+ "from_account",
469
+ "to_account",
470
+ "withdrawn",
471
+ "deposited"
472
+ ]
473
+ },
474
+ {
475
+ "roles": ["posting", "active", "owner"],
476
+ "operation": "fill_order",
477
+ "params": [
478
+ "current_owner",
479
+ "current_orderid",
480
+ "current_pays",
481
+ "open_owner",
482
+ "open_orderid",
483
+ "open_pays"
484
+ ]
485
+ },
486
+ {
487
+ "roles": ["posting", "active", "owner"],
488
+ "operation": "fill_transfer_from_savings",
489
+ "params": [
490
+ "from",
491
+ "to",
492
+ "amount",
493
+ "request_id",
494
+ "memo"
495
+ ]
496
+ }
497
+ ]