@steemit/steem-js 0.7.11 → 1.0.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.
Files changed (132) hide show
  1. package/README.md +203 -87
  2. package/dist/api/index.d.ts +128 -0
  3. package/dist/api/methods.d.ts +9 -0
  4. package/dist/api/rpc-auth.d.ts +43 -0
  5. package/dist/api/transports/base.d.ts +13 -0
  6. package/dist/api/transports/http.d.ts +9 -0
  7. package/dist/api/transports/index.d.ts +9 -0
  8. package/dist/api/transports/types.d.ts +35 -0
  9. package/dist/api/transports/ws.d.ts +18 -0
  10. package/dist/auth/ecc/index.d.ts +9 -0
  11. package/dist/auth/ecc/src/address.d.ts +13 -0
  12. package/dist/auth/ecc/src/aes.d.ts +16 -0
  13. package/dist/auth/ecc/src/brain_key.d.ts +1 -0
  14. package/dist/auth/ecc/src/ecdsa.d.ts +28 -0
  15. package/dist/auth/ecc/src/ecsignature.d.ts +19 -0
  16. package/dist/auth/ecc/src/enforce_types.d.ts +5 -0
  17. package/dist/auth/ecc/src/hash.d.ts +25 -0
  18. package/dist/auth/ecc/src/index.d.ts +9 -0
  19. package/dist/auth/ecc/src/key_private.d.ts +38 -0
  20. package/dist/auth/ecc/src/key_public.d.ts +41 -0
  21. package/dist/auth/ecc/src/key_utils.d.ts +9 -0
  22. package/dist/auth/ecc/src/signature.d.ts +18 -0
  23. package/dist/auth/ecc.d.ts +3 -0
  24. package/dist/auth/index.d.ts +48 -0
  25. package/dist/auth/key_classes.d.ts +3 -0
  26. package/dist/auth/serializer.d.ts +19 -0
  27. package/dist/broadcast/helpers.d.ts +11 -0
  28. package/dist/broadcast/index.d.ts +43 -0
  29. package/dist/broadcast/operations.d.ts +6 -0
  30. package/dist/config.d.ts +25 -0
  31. package/dist/crypto/index.d.ts +25 -0
  32. package/dist/formatter/index.d.ts +92 -0
  33. package/dist/index.cjs +25848 -0
  34. package/dist/index.cjs.map +1 -0
  35. package/dist/index.d.ts +30 -0
  36. package/dist/index.js +25812 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/index.umd.js +57513 -0
  39. package/dist/index.umd.js.map +1 -0
  40. package/dist/memo/index.d.ts +11 -0
  41. package/dist/operations/index.d.ts +44 -0
  42. package/dist/serializer/convert.d.ts +12 -0
  43. package/dist/serializer/index.d.ts +11 -0
  44. package/dist/serializer/number_utils.d.ts +8 -0
  45. package/dist/serializer/precision.d.ts +5 -0
  46. package/dist/serializer/types.d.ts +36 -0
  47. package/dist/types/index.d.ts +131 -0
  48. package/dist/types.d.ts +34 -0
  49. package/dist/utils/index.d.ts +8 -0
  50. package/dist/utils.d.ts +2 -0
  51. package/package.json +72 -67
  52. package/.circleci/config.yml +0 -23
  53. package/.dockerignore +0 -12
  54. package/.editorconfig +0 -20
  55. package/.eslintrc +0 -27
  56. package/LICENSE +0 -21
  57. package/circle.yml +0 -3
  58. package/config.json +0 -10
  59. package/dist/statistics.html +0 -208
  60. package/dist/steem-tests.min.js +0 -23
  61. package/dist/steem-tests.min.js.gz +0 -0
  62. package/dist/steem-tests.min.js.map +0 -1
  63. package/dist/steem.min.js +0 -18
  64. package/dist/steem.min.js.gz +0 -0
  65. package/dist/steem.min.js.map +0 -1
  66. package/lib/api/index.js +0 -422
  67. package/lib/api/methods.js +0 -413
  68. package/lib/api/transports/base.js +0 -72
  69. package/lib/api/transports/http.js +0 -172
  70. package/lib/api/transports/index.js +0 -20
  71. package/lib/api/transports/ws.js +0 -228
  72. package/lib/auth/ecc/README.md +0 -20
  73. package/lib/auth/ecc/index.js +0 -13
  74. package/lib/auth/ecc/package.json +0 -36
  75. package/lib/auth/ecc/src/address.js +0 -84
  76. package/lib/auth/ecc/src/aes.js +0 -184
  77. package/lib/auth/ecc/src/brain_key.js +0 -13
  78. package/lib/auth/ecc/src/ecdsa.js +0 -219
  79. package/lib/auth/ecc/src/ecsignature.js +0 -128
  80. package/lib/auth/ecc/src/enforce_types.js +0 -49
  81. package/lib/auth/ecc/src/hash.js +0 -67
  82. package/lib/auth/ecc/src/key_private.js +0 -212
  83. package/lib/auth/ecc/src/key_public.js +0 -215
  84. package/lib/auth/ecc/src/key_utils.js +0 -112
  85. package/lib/auth/ecc/src/signature.js +0 -187
  86. package/lib/auth/index.js +0 -126
  87. package/lib/auth/memo.js +0 -147
  88. package/lib/auth/serializer/README.md +0 -13
  89. package/lib/auth/serializer/index.js +0 -21
  90. package/lib/auth/serializer/package.json +0 -32
  91. package/lib/auth/serializer/src/ChainTypes.js +0 -90
  92. package/lib/auth/serializer/src/convert.js +0 -37
  93. package/lib/auth/serializer/src/error_with_cause.js +0 -42
  94. package/lib/auth/serializer/src/fast_parser.js +0 -77
  95. package/lib/auth/serializer/src/number_utils.js +0 -67
  96. package/lib/auth/serializer/src/object_id.js +0 -68
  97. package/lib/auth/serializer/src/operations.js +0 -787
  98. package/lib/auth/serializer/src/precision.js +0 -95
  99. package/lib/auth/serializer/src/serializer.js +0 -211
  100. package/lib/auth/serializer/src/template.js +0 -17
  101. package/lib/auth/serializer/src/types.js +0 -1238
  102. package/lib/auth/serializer/src/validation.js +0 -360
  103. package/lib/broadcast/helpers.js +0 -177
  104. package/lib/broadcast/index.js +0 -127
  105. package/lib/broadcast/operations.js +0 -255
  106. package/lib/browser.js +0 -29
  107. package/lib/config.js +0 -45
  108. package/lib/formatter.js +0 -189
  109. package/lib/index.js +0 -19
  110. package/lib/utils.js +0 -55
  111. package/node-4.dockerfile +0 -6
  112. package/node-6.dockerfile +0 -6
  113. package/test/Crypto.js +0 -100
  114. package/test/KeyFormats.js +0 -105
  115. package/test/all_types.js +0 -115
  116. package/test/api.test.js +0 -326
  117. package/test/broadcast.test.js +0 -225
  118. package/test/browser/BrowserTests.js +0 -55
  119. package/test/comment.test.js +0 -69
  120. package/test/hf20-accounts.test.js +0 -76
  121. package/test/hf21-sps.test.js +0 -78
  122. package/test/memo.test.js +0 -37
  123. package/test/number_utils.js +0 -28
  124. package/test/operations_test.js +0 -39
  125. package/test/smt.test.js +0 -347
  126. package/test/test-post.json +0 -13
  127. package/test/test.html +0 -13
  128. package/test/test_helper.js +0 -19
  129. package/test/types_test.js +0 -139
  130. package/webpack/makeConfig.js +0 -105
  131. package/webpack.config.js +0 -2
  132. package/yarn.lock +0 -3336
@@ -1,360 +0,0 @@
1
- 'use strict';
2
-
3
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
4
-
5
- var _my;
6
- var is_empty;
7
- var is_digits;
8
- var to_number;
9
- var require_match;
10
- var require_object_id;
11
- var require_object_type;
12
- var get_instance;
13
- var require_relative_type;
14
- var get_relative_instance;
15
- var require_protocol_type;
16
- var get_protocol_instance;
17
- var get_protocol_type;
18
- var require_implementation_type;
19
- var get_implementation_instance;
20
- var Long = require('bytebuffer').Long;
21
- // var BigInteger = require('bigi');
22
-
23
- var chain_types = require('./ChainTypes');
24
-
25
- var MAX_SAFE_INT = 9007199254740991;
26
- var MIN_SAFE_INT = -9007199254740991;
27
-
28
- /**
29
- Most validations are skipped and the value returned unchanged when an empty string, null, or undefined is encountered (except "required").
30
-
31
- Validations support a string format for dealing with large numbers.
32
- */
33
- module.exports = _my = {
34
-
35
- is_empty: is_empty = function is_empty(value) {
36
- return value === null || value === undefined;
37
- },
38
-
39
- required: function required(value) {
40
- var field_name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
41
-
42
- if (is_empty(value)) {
43
- throw new Error('value required ' + field_name + ' ' + value);
44
- }
45
- return value;
46
- },
47
- require_long: function require_long(value) {
48
- var field_name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
49
-
50
- if (!Long.isLong(value)) {
51
- throw new Error('Long value required ' + field_name + ' ' + value);
52
- }
53
- return value;
54
- },
55
- string: function string(value) {
56
- if (is_empty(value)) {
57
- return value;
58
- }
59
- if (typeof value !== "string") {
60
- throw new Error('string required: ' + value);
61
- }
62
- return value;
63
- },
64
- number: function number(value) {
65
- if (is_empty(value)) {
66
- return value;
67
- }
68
- if (typeof value !== "number") {
69
- throw new Error('number required: ' + value);
70
- }
71
- return value;
72
- },
73
- whole_number: function whole_number(value) {
74
- var field_name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
75
-
76
- if (is_empty(value)) {
77
- return value;
78
- }
79
- if (/\./.test(value)) {
80
- throw new Error('whole number required ' + field_name + ' ' + value);
81
- }
82
- return value;
83
- },
84
- unsigned: function unsigned(value) {
85
- var field_name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
86
-
87
- if (is_empty(value)) {
88
- return value;
89
- }
90
- if (/-/.test(value)) {
91
- throw new Error('unsigned required ' + field_name + ' ' + value);
92
- }
93
- return value;
94
- },
95
-
96
-
97
- is_digits: is_digits = function is_digits(value) {
98
- if (typeof value === "numeric") {
99
- return true;
100
- }
101
- return (/^[0-9]+$/.test(value)
102
- );
103
- },
104
-
105
- to_number: to_number = function to_number(value) {
106
- var field_name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
107
-
108
- if (is_empty(value)) {
109
- return value;
110
- }
111
- _my.no_overflow53(value, field_name);
112
- var int_value = function () {
113
- if (typeof value === "number") {
114
- return value;
115
- } else {
116
- return parseInt(value);
117
- }
118
- }();
119
- return int_value;
120
- },
121
-
122
- to_long: function to_long(value) {
123
- var field_name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
124
-
125
- if (is_empty(value)) {
126
- return value;
127
- }
128
- if (Long.isLong(value)) {
129
- return value;
130
- }
131
-
132
- _my.no_overflow64(value, field_name);
133
- if (typeof value === "number") {
134
- value = "" + value;
135
- }
136
- return Long.fromString(value);
137
- },
138
- to_string: function to_string(value) {
139
- var field_name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
140
-
141
- if (is_empty(value)) {
142
- return value;
143
- }
144
- if (typeof value === "string") {
145
- return value;
146
- }
147
- if (typeof value === "number") {
148
- _my.no_overflow53(value, field_name);
149
- return "" + value;
150
- }
151
- if (Long.isLong(value)) {
152
- return value.toString();
153
- }
154
- throw 'unsupported type ' + field_name + ': (' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)) + ') ' + value;
155
- },
156
- require_test: function require_test(regex, value) {
157
- var field_name = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
158
-
159
- if (is_empty(value)) {
160
- return value;
161
- }
162
- if (!regex.test(value)) {
163
- throw new Error('unmatched ' + regex + ' ' + field_name + ' ' + value);
164
- }
165
- return value;
166
- },
167
-
168
-
169
- require_match: require_match = function require_match(regex, value) {
170
- var field_name = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
171
-
172
- if (is_empty(value)) {
173
- return value;
174
- }
175
- var match = value.match(regex);
176
- if (match === null) {
177
- throw new Error('unmatched ' + regex + ' ' + field_name + ' ' + value);
178
- }
179
- return match;
180
- },
181
-
182
- // require_object_id: require_object_id=function(value, field_name){
183
- // return require_match(
184
- // /^([0-9]+)\.([0-9]+)\.([0-9]+)$/,
185
- // value,
186
- // field_name
187
- // );
188
- // },
189
-
190
- // Does not support over 53 bits
191
- require_range: function require_range(min, max, value) {
192
- var field_name = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "";
193
-
194
- if (is_empty(value)) {
195
- return value;
196
- }
197
- var number = to_number(value);
198
- if (value < min || value > max) {
199
- throw new Error('out of range ' + value + ' ' + field_name + ' ' + value);
200
- }
201
- return value;
202
- },
203
-
204
-
205
- require_object_type: require_object_type = function require_object_type() {
206
- var reserved_spaces = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
207
- var type = arguments[1];
208
- var value = arguments[2];
209
- var field_name = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "";
210
-
211
- if (is_empty(value)) {
212
- return value;
213
- }
214
- var object_type = chain_types.object_type[type];
215
- if (!object_type) {
216
- throw new Error('Unknown object type: ' + type + ', ' + field_name + ', ' + value);
217
- }
218
- var re = new RegExp(reserved_spaces + '.' + object_type + '.[0-9]+$');
219
- if (!re.test(value)) {
220
- throw new Error('Expecting ' + type + ' in format ' + (reserved_spaces + '.' + object_type + '.[0-9]+ ') + ('instead of ' + value + ' ' + field_name + ' ' + value));
221
- }
222
- return value;
223
- },
224
-
225
- get_instance: get_instance = function get_instance(reserve_spaces, type, value, field_name) {
226
- if (is_empty(value)) {
227
- return value;
228
- }
229
- require_object_type(reserve_spaces, type, value, field_name);
230
- return to_number(value.split('.')[2]);
231
- },
232
-
233
- require_relative_type: require_relative_type = function require_relative_type(type, value, field_name) {
234
- require_object_type(0, type, value, field_name);
235
- return value;
236
- },
237
-
238
- get_relative_instance: get_relative_instance = function get_relative_instance(type, value, field_name) {
239
- if (is_empty(value)) {
240
- return value;
241
- }
242
- require_object_type(0, type, value, field_name);
243
- return to_number(value.split('.')[2]);
244
- },
245
-
246
- require_protocol_type: require_protocol_type = function require_protocol_type(type, value, field_name) {
247
- require_object_type(1, type, value, field_name);
248
- return value;
249
- },
250
-
251
- get_protocol_instance: get_protocol_instance = function get_protocol_instance(type, value, field_name) {
252
- if (is_empty(value)) {
253
- return value;
254
- }
255
- require_object_type(1, type, value, field_name);
256
- return to_number(value.split('.')[2]);
257
- },
258
-
259
- get_protocol_type: get_protocol_type = function get_protocol_type(value, field_name) {
260
- if (is_empty(value)) {
261
- return value;
262
- }
263
- require_object_id(value, field_name);
264
- var values = value.split('.');
265
- return to_number(values[1]);
266
- },
267
-
268
- get_protocol_type_name: function get_protocol_type_name(value, field_name) {
269
- if (is_empty(value)) {
270
- return value;
271
- }
272
- var type_id = get_protocol_type(value, field_name);
273
- return Object.keys(chain_types.object_type)[type_id];
274
- },
275
-
276
-
277
- require_implementation_type: require_implementation_type = function require_implementation_type(type, value, field_name) {
278
- require_object_type(2, type, value, field_name);
279
- return value;
280
- },
281
-
282
- get_implementation_instance: get_implementation_instance = function get_implementation_instance(type, value, field_name) {
283
- if (is_empty(value)) {
284
- return value;
285
- }
286
- require_object_type(2, type, value, field_name);
287
- return to_number(value.split('.')[2]);
288
- },
289
-
290
- // signed / unsigned decimal
291
- no_overflow53: function no_overflow53(value) {
292
- var field_name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
293
-
294
- if (typeof value === "number") {
295
- if (value > MAX_SAFE_INT || value < MIN_SAFE_INT) {
296
- throw new Error('overflow ' + field_name + ' ' + value);
297
- }
298
- return;
299
- }
300
- if (typeof value === "string") {
301
- var int = parseInt(value);
302
- if (value > MAX_SAFE_INT || value < MIN_SAFE_INT) {
303
- throw new Error('overflow ' + field_name + ' ' + value);
304
- }
305
- return;
306
- }
307
- if (Long.isLong(value)) {
308
- // typeof value.toInt() is 'number'
309
- _my.no_overflow53(value.toInt(), field_name);
310
- return;
311
- }
312
- throw 'unsupported type ' + field_name + ': (' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)) + ') ' + value;
313
- },
314
-
315
-
316
- // signed / unsigned whole numbers only
317
- no_overflow64: function no_overflow64(value) {
318
- var field_name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
319
-
320
- // https://github.com/dcodeIO/Long.js/issues/20
321
- if (Long.isLong(value)) {
322
- return;
323
- }
324
-
325
- // BigInteger#isBigInteger https://github.com/cryptocoinjs/bigi/issues/20
326
- if (value.t !== undefined && value.s !== undefined) {
327
- _my.no_overflow64(value.toString(), field_name);
328
- return;
329
- }
330
-
331
- if (typeof value === "string") {
332
- // remove leading zeros, will cause a false positive
333
- value = value.replace(/^0+/, '');
334
- // remove trailing zeros
335
- while (/0$/.test(value)) {
336
- value = value.substring(0, value.length - 1);
337
- }
338
- if (/\.$/.test(value)) {
339
- // remove trailing dot
340
- value = value.substring(0, value.length - 1);
341
- }
342
- if (value === "") {
343
- value = "0";
344
- }
345
- var long_string = Long.fromString(value).toString();
346
- if (long_string !== value.trim()) {
347
- throw new Error('overflow ' + field_name + ' ' + value);
348
- }
349
- return;
350
- }
351
- if (typeof value === "number") {
352
- if (value > MAX_SAFE_INT || value < MIN_SAFE_INT) {
353
- throw new Error('overflow ' + field_name + ' ' + value);
354
- }
355
- return;
356
- }
357
-
358
- throw 'unsupported type ' + field_name + ': (' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)) + ') ' + value;
359
- }
360
- };
@@ -1,177 +0,0 @@
1
- 'use strict';
2
-
3
- var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
4
-
5
- var _api = require('../api');
6
-
7
- var _api2 = _interopRequireDefault(_api);
8
-
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
-
11
- exports = module.exports = function (steemBroadcast) {
12
- steemBroadcast.addAccountAuth = function (_ref, cb) {
13
- var signingKey = _ref.signingKey,
14
- username = _ref.username,
15
- authorizedUsername = _ref.authorizedUsername,
16
- _ref$role = _ref.role,
17
- role = _ref$role === undefined ? 'posting' : _ref$role,
18
- weight = _ref.weight;
19
-
20
- _api2.default.getAccounts([username], function (err, _ref2) {
21
- var _ref3 = _slicedToArray(_ref2, 1),
22
- userAccount = _ref3[0];
23
-
24
- if (err) {
25
- return cb(new Error(err), null);
26
- }
27
- if (!userAccount) {
28
- return cb(new Error('Invalid account name'), null);
29
- }
30
-
31
- var updatedAuthority = userAccount[role];
32
-
33
- /** Release callback if the account already exist in the account_auths array */
34
- var authorizedAccounts = updatedAuthority.account_auths.map(function (auth) {
35
- return auth[0];
36
- });
37
- var hasAuthority = authorizedAccounts.indexOf(authorizedUsername) !== -1;
38
- if (hasAuthority) {
39
- return cb(null, null);
40
- }
41
-
42
- /** Use weight_thresold as default weight */
43
- weight = weight || userAccount[role].weight_threshold;
44
- updatedAuthority.account_auths.push([authorizedUsername, weight]);
45
- var owner = role === 'owner' ? updatedAuthority : undefined;
46
- var active = role === 'active' ? updatedAuthority : undefined;
47
- var posting = role === 'posting' ? updatedAuthority : undefined;
48
-
49
- /** Add authority on user account */
50
- steemBroadcast.accountUpdate(signingKey, userAccount.name, owner, active, posting, userAccount.memo_key, userAccount.json_metadata, cb);
51
- });
52
- };
53
-
54
- steemBroadcast.removeAccountAuth = function (_ref4, cb) {
55
- var signingKey = _ref4.signingKey,
56
- username = _ref4.username,
57
- authorizedUsername = _ref4.authorizedUsername,
58
- _ref4$role = _ref4.role,
59
- role = _ref4$role === undefined ? 'posting' : _ref4$role;
60
-
61
- _api2.default.getAccounts([username], function (err, _ref5) {
62
- var _ref6 = _slicedToArray(_ref5, 1),
63
- userAccount = _ref6[0];
64
-
65
- if (err) {
66
- return cb(new Error(err), null);
67
- }
68
- if (!userAccount) {
69
- return cb(new Error('Invalid account name'), null);
70
- }
71
-
72
- var updatedAuthority = userAccount[role];
73
- var totalAuthorizedUser = updatedAuthority.account_auths.length;
74
- for (var i = 0; i < totalAuthorizedUser; i++) {
75
- var user = updatedAuthority.account_auths[i];
76
- if (user[0] === authorizedUsername) {
77
- updatedAuthority.account_auths.splice(i, 1);
78
- break;
79
- }
80
- }
81
-
82
- /** Release callback if the account does not exist in the account_auths array */
83
- if (totalAuthorizedUser === updatedAuthority.account_auths.length) {
84
- return cb(null, null);
85
- }
86
-
87
- var owner = role === 'owner' ? updatedAuthority : undefined;
88
- var active = role === 'active' ? updatedAuthority : undefined;
89
- var posting = role === 'posting' ? updatedAuthority : undefined;
90
-
91
- steemBroadcast.accountUpdate(signingKey, userAccount.name, owner, active, posting, userAccount.memo_key, userAccount.json_metadata, cb);
92
- });
93
- };
94
-
95
- steemBroadcast.addKeyAuth = function (_ref7, cb) {
96
- var signingKey = _ref7.signingKey,
97
- username = _ref7.username,
98
- authorizedKey = _ref7.authorizedKey,
99
- _ref7$role = _ref7.role,
100
- role = _ref7$role === undefined ? 'posting' : _ref7$role,
101
- weight = _ref7.weight;
102
-
103
- _api2.default.getAccounts([username], function (err, _ref8) {
104
- var _ref9 = _slicedToArray(_ref8, 1),
105
- userAccount = _ref9[0];
106
-
107
- if (err) {
108
- return cb(new Error(err), null);
109
- }
110
- if (!userAccount) {
111
- return cb(new Error('Invalid account name'), null);
112
- }
113
-
114
- var updatedAuthority = userAccount[role];
115
-
116
- /** Release callback if the key already exist in the key_auths array */
117
- var authorizedKeys = updatedAuthority.key_auths.map(function (auth) {
118
- return auth[0];
119
- });
120
- var hasAuthority = authorizedKeys.indexOf(authorizedKey) !== -1;
121
- if (hasAuthority) {
122
- return cb(null, null);
123
- }
124
-
125
- /** Use weight_thresold as default weight */
126
- weight = weight || userAccount[role].weight_threshold;
127
- updatedAuthority.key_auths.push([authorizedKey, weight]);
128
- var owner = role === 'owner' ? updatedAuthority : undefined;
129
- var active = role === 'active' ? updatedAuthority : undefined;
130
- var posting = role === 'posting' ? updatedAuthority : undefined;
131
-
132
- /** Add authority on user account */
133
- steemBroadcast.accountUpdate(signingKey, userAccount.name, owner, active, posting, userAccount.memo_key, userAccount.json_metadata, cb);
134
- });
135
- };
136
-
137
- steemBroadcast.removeKeyAuth = function (_ref10, cb) {
138
- var signingKey = _ref10.signingKey,
139
- username = _ref10.username,
140
- authorizedKey = _ref10.authorizedKey,
141
- _ref10$role = _ref10.role,
142
- role = _ref10$role === undefined ? 'posting' : _ref10$role;
143
-
144
- _api2.default.getAccounts([username], function (err, _ref11) {
145
- var _ref12 = _slicedToArray(_ref11, 1),
146
- userAccount = _ref12[0];
147
-
148
- if (err) {
149
- return cb(new Error(err), null);
150
- }
151
- if (!userAccount) {
152
- return cb(new Error('Invalid account name'), null);
153
- }
154
-
155
- var updatedAuthority = userAccount[role];
156
- var totalAuthorizedKey = updatedAuthority.key_auths.length;
157
- for (var i = 0; i < totalAuthorizedKey; i++) {
158
- var user = updatedAuthority.key_auths[i];
159
- if (user[0] === authorizedKey) {
160
- updatedAuthority.key_auths.splice(i, 1);
161
- break;
162
- }
163
- }
164
-
165
- /** Release callback if the key does not exist in the key_auths array */
166
- if (totalAuthorizedKey === updatedAuthority.key_auths.length) {
167
- return cb(null, null);
168
- }
169
-
170
- var owner = role === 'owner' ? updatedAuthority : undefined;
171
- var active = role === 'active' ? updatedAuthority : undefined;
172
- var posting = role === 'posting' ? updatedAuthority : undefined;
173
-
174
- steemBroadcast.accountUpdate(signingKey, userAccount.name, owner, active, posting, userAccount.memo_key, userAccount.json_metadata, cb);
175
- });
176
- };
177
- };
@@ -1,127 +0,0 @@
1
- 'use strict';
2
-
3
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
4
-
5
- var _bluebird = require('bluebird');
6
-
7
- var _bluebird2 = _interopRequireDefault(_bluebird);
8
-
9
- var _debug = require('debug');
10
-
11
- var _debug2 = _interopRequireDefault(_debug);
12
-
13
- var _helpers = require('./helpers');
14
-
15
- var _helpers2 = _interopRequireDefault(_helpers);
16
-
17
- var _formatter = require('../formatter');
18
-
19
- var _formatter2 = _interopRequireDefault(_formatter);
20
-
21
- var _operations = require('./operations');
22
-
23
- var _operations2 = _interopRequireDefault(_operations);
24
-
25
- var _api = require('../api');
26
-
27
- var _api2 = _interopRequireDefault(_api);
28
-
29
- var _auth = require('../auth');
30
-
31
- var _auth2 = _interopRequireDefault(_auth);
32
-
33
- var _utils = require('../utils');
34
-
35
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
36
-
37
- var debug = (0, _debug2.default)('steem:broadcast');
38
- var noop = function noop() {};
39
- var formatter = (0, _formatter2.default)(_api2.default);
40
-
41
- var steemBroadcast = {};
42
-
43
- // Base transaction logic -----------------------------------------------------
44
-
45
- /**
46
- * Sign and broadcast transactions on the steem network
47
- */
48
-
49
- steemBroadcast.send = function steemBroadcast$send(tx, privKeys, callback) {
50
- var resultP = steemBroadcast._prepareTransaction(tx).then(function (transaction) {
51
- debug('Signing transaction (transaction, transaction.operations)', transaction, transaction.operations);
52
- return _bluebird2.default.join(transaction, _auth2.default.signTransaction(transaction, privKeys));
53
- }).spread(function (transaction, signedTransaction) {
54
- debug('Broadcasting transaction (transaction, transaction.operations)', transaction, transaction.operations);
55
- return _api2.default.broadcastTransactionSynchronousAsync(signedTransaction).then(function (result) {
56
- return Object.assign({}, result, signedTransaction);
57
- });
58
- });
59
-
60
- resultP.nodeify(callback || noop);
61
- };
62
-
63
- steemBroadcast._prepareTransaction = function steemBroadcast$_prepareTransaction(tx) {
64
- var propertiesP = _api2.default.getDynamicGlobalPropertiesAsync();
65
- return propertiesP.then(function (properties) {
66
- // Set defaults on the transaction
67
- var chainDate = new Date(properties.time + 'Z');
68
- var refBlockNum = properties.last_irreversible_block_num - 1 & 0xFFFF;
69
- return _api2.default.getBlockHeaderAsync(properties.last_irreversible_block_num).then(function (block) {
70
- var headBlockId = block ? block.previous : '0000000000000000000000000000000000000000';
71
- return Object.assign({
72
- ref_block_num: refBlockNum,
73
- ref_block_prefix: new Buffer(headBlockId, 'hex').readUInt32LE(4),
74
- expiration: new Date(chainDate.getTime() + 600 * 1000)
75
- }, tx);
76
- });
77
- });
78
- };
79
-
80
- // Generated wrapper ----------------------------------------------------------
81
-
82
- // Generate operations from operations.json
83
- _operations2.default.forEach(function (operation) {
84
- var operationName = (0, _utils.camelCase)(operation.operation);
85
- var operationParams = operation.params || [];
86
-
87
- var useCommentPermlink = operationParams.indexOf('parent_author') !== -1 && operationParams.indexOf('parent_permlink') !== -1;
88
-
89
- steemBroadcast[operationName + 'With'] = function steemBroadcast$specializedSendWith(wif, options, callback) {
90
- debug('Sending operation "' + operationName + '" with', { options: options, callback: callback });
91
- var keys = {};
92
- if (operation.roles && operation.roles.length) {
93
- keys[operation.roles[0]] = wif; // TODO - Automatically pick a role? Send all?
94
- }
95
- return steemBroadcast.send({
96
- extensions: [],
97
- operations: [[operation.operation, Object.assign({}, options, options.json_metadata != null ? {
98
- json_metadata: toString(options.json_metadata)
99
- } : {}, useCommentPermlink && options.permlink == null ? {
100
- permlink: formatter.commentPermlink(options.parent_author, options.parent_permlink)
101
- } : {})]]
102
- }, keys, callback);
103
- };
104
-
105
- steemBroadcast[operationName] = function steemBroadcast$specializedSend(wif) {
106
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
107
- args[_key - 1] = arguments[_key];
108
- }
109
-
110
- debug('Parsing operation "' + operationName + '" with', { args: args });
111
- var options = operationParams.reduce(function (memo, param, i) {
112
- memo[param] = args[i]; // eslint-disable-line no-param-reassign
113
- return memo;
114
- }, {});
115
- var callback = args[operationParams.length];
116
- return steemBroadcast[operationName + 'With'](wif, options, callback);
117
- };
118
- });
119
-
120
- var toString = function toString(obj) {
121
- return (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' ? JSON.stringify(obj) : obj;
122
- };
123
- (0, _helpers2.default)(steemBroadcast);
124
-
125
- _bluebird2.default.promisifyAll(steemBroadcast);
126
-
127
- exports = module.exports = steemBroadcast;