rubybear 0.0.2

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