@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.
- package/README.md +203 -87
- package/dist/api/index.d.ts +128 -0
- package/dist/api/methods.d.ts +9 -0
- package/dist/api/rpc-auth.d.ts +43 -0
- package/dist/api/transports/base.d.ts +13 -0
- package/dist/api/transports/http.d.ts +9 -0
- package/dist/api/transports/index.d.ts +9 -0
- package/dist/api/transports/types.d.ts +35 -0
- package/dist/api/transports/ws.d.ts +18 -0
- package/dist/auth/ecc/index.d.ts +9 -0
- package/dist/auth/ecc/src/address.d.ts +13 -0
- package/dist/auth/ecc/src/aes.d.ts +16 -0
- package/dist/auth/ecc/src/brain_key.d.ts +1 -0
- package/dist/auth/ecc/src/ecdsa.d.ts +28 -0
- package/dist/auth/ecc/src/ecsignature.d.ts +19 -0
- package/dist/auth/ecc/src/enforce_types.d.ts +5 -0
- package/dist/auth/ecc/src/hash.d.ts +25 -0
- package/dist/auth/ecc/src/index.d.ts +9 -0
- package/dist/auth/ecc/src/key_private.d.ts +38 -0
- package/dist/auth/ecc/src/key_public.d.ts +41 -0
- package/dist/auth/ecc/src/key_utils.d.ts +9 -0
- package/dist/auth/ecc/src/signature.d.ts +18 -0
- package/dist/auth/ecc.d.ts +3 -0
- package/dist/auth/index.d.ts +48 -0
- package/dist/auth/key_classes.d.ts +3 -0
- package/dist/auth/serializer.d.ts +19 -0
- package/dist/broadcast/helpers.d.ts +11 -0
- package/dist/broadcast/index.d.ts +43 -0
- package/dist/broadcast/operations.d.ts +6 -0
- package/dist/config.d.ts +25 -0
- package/dist/crypto/index.d.ts +25 -0
- package/dist/formatter/index.d.ts +92 -0
- package/dist/index.cjs +25848 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +25812 -0
- package/dist/index.js.map +1 -0
- package/dist/index.umd.js +57513 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/memo/index.d.ts +11 -0
- package/dist/operations/index.d.ts +44 -0
- package/dist/serializer/convert.d.ts +12 -0
- package/dist/serializer/index.d.ts +11 -0
- package/dist/serializer/number_utils.d.ts +8 -0
- package/dist/serializer/precision.d.ts +5 -0
- package/dist/serializer/types.d.ts +36 -0
- package/dist/types/index.d.ts +131 -0
- package/dist/types.d.ts +34 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils.d.ts +2 -0
- package/package.json +72 -67
- package/.circleci/config.yml +0 -23
- package/.dockerignore +0 -12
- package/.editorconfig +0 -20
- package/.eslintrc +0 -27
- package/LICENSE +0 -21
- package/circle.yml +0 -3
- package/config.json +0 -10
- package/dist/statistics.html +0 -208
- package/dist/steem-tests.min.js +0 -23
- package/dist/steem-tests.min.js.gz +0 -0
- package/dist/steem-tests.min.js.map +0 -1
- package/dist/steem.min.js +0 -18
- package/dist/steem.min.js.gz +0 -0
- package/dist/steem.min.js.map +0 -1
- package/lib/api/index.js +0 -422
- package/lib/api/methods.js +0 -413
- package/lib/api/transports/base.js +0 -72
- package/lib/api/transports/http.js +0 -172
- package/lib/api/transports/index.js +0 -20
- package/lib/api/transports/ws.js +0 -228
- package/lib/auth/ecc/README.md +0 -20
- package/lib/auth/ecc/index.js +0 -13
- package/lib/auth/ecc/package.json +0 -36
- package/lib/auth/ecc/src/address.js +0 -84
- package/lib/auth/ecc/src/aes.js +0 -184
- package/lib/auth/ecc/src/brain_key.js +0 -13
- package/lib/auth/ecc/src/ecdsa.js +0 -219
- package/lib/auth/ecc/src/ecsignature.js +0 -128
- package/lib/auth/ecc/src/enforce_types.js +0 -49
- package/lib/auth/ecc/src/hash.js +0 -67
- package/lib/auth/ecc/src/key_private.js +0 -212
- package/lib/auth/ecc/src/key_public.js +0 -215
- package/lib/auth/ecc/src/key_utils.js +0 -112
- package/lib/auth/ecc/src/signature.js +0 -187
- package/lib/auth/index.js +0 -126
- package/lib/auth/memo.js +0 -147
- package/lib/auth/serializer/README.md +0 -13
- package/lib/auth/serializer/index.js +0 -21
- package/lib/auth/serializer/package.json +0 -32
- package/lib/auth/serializer/src/ChainTypes.js +0 -90
- package/lib/auth/serializer/src/convert.js +0 -37
- package/lib/auth/serializer/src/error_with_cause.js +0 -42
- package/lib/auth/serializer/src/fast_parser.js +0 -77
- package/lib/auth/serializer/src/number_utils.js +0 -67
- package/lib/auth/serializer/src/object_id.js +0 -68
- package/lib/auth/serializer/src/operations.js +0 -787
- package/lib/auth/serializer/src/precision.js +0 -95
- package/lib/auth/serializer/src/serializer.js +0 -211
- package/lib/auth/serializer/src/template.js +0 -17
- package/lib/auth/serializer/src/types.js +0 -1238
- package/lib/auth/serializer/src/validation.js +0 -360
- package/lib/broadcast/helpers.js +0 -177
- package/lib/broadcast/index.js +0 -127
- package/lib/broadcast/operations.js +0 -255
- package/lib/browser.js +0 -29
- package/lib/config.js +0 -45
- package/lib/formatter.js +0 -189
- package/lib/index.js +0 -19
- package/lib/utils.js +0 -55
- package/node-4.dockerfile +0 -6
- package/node-6.dockerfile +0 -6
- package/test/Crypto.js +0 -100
- package/test/KeyFormats.js +0 -105
- package/test/all_types.js +0 -115
- package/test/api.test.js +0 -326
- package/test/broadcast.test.js +0 -225
- package/test/browser/BrowserTests.js +0 -55
- package/test/comment.test.js +0 -69
- package/test/hf20-accounts.test.js +0 -76
- package/test/hf21-sps.test.js +0 -78
- package/test/memo.test.js +0 -37
- package/test/number_utils.js +0 -28
- package/test/operations_test.js +0 -39
- package/test/smt.test.js +0 -347
- package/test/test-post.json +0 -13
- package/test/test.html +0 -13
- package/test/test_helper.js +0 -19
- package/test/types_test.js +0 -139
- package/webpack/makeConfig.js +0 -105
- package/webpack.config.js +0 -2
- package/yarn.lock +0 -3336
package/lib/api/transports/ws.js
DELETED
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
8
|
-
|
|
9
|
-
var _bluebird = require('bluebird');
|
|
10
|
-
|
|
11
|
-
var _bluebird2 = _interopRequireDefault(_bluebird);
|
|
12
|
-
|
|
13
|
-
var _detectNode = require('detect-node');
|
|
14
|
-
|
|
15
|
-
var _detectNode2 = _interopRequireDefault(_detectNode);
|
|
16
|
-
|
|
17
|
-
var _debug = require('debug');
|
|
18
|
-
|
|
19
|
-
var _debug2 = _interopRequireDefault(_debug);
|
|
20
|
-
|
|
21
|
-
var _base = require('./base');
|
|
22
|
-
|
|
23
|
-
var _base2 = _interopRequireDefault(_base);
|
|
24
|
-
|
|
25
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
|
-
|
|
27
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
28
|
-
|
|
29
|
-
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
|
30
|
-
|
|
31
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
|
32
|
-
|
|
33
|
-
var WebSocket = void 0;
|
|
34
|
-
if (_detectNode2.default) {
|
|
35
|
-
WebSocket = require('ws'); // eslint-disable-line global-require
|
|
36
|
-
} else if (typeof window !== 'undefined') {
|
|
37
|
-
WebSocket = window.WebSocket;
|
|
38
|
-
} else {
|
|
39
|
-
throw new Error("Couldn't decide on a `WebSocket` class");
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
var debug = (0, _debug2.default)('steem:ws');
|
|
43
|
-
|
|
44
|
-
var WsTransport = function (_Transport) {
|
|
45
|
-
_inherits(WsTransport, _Transport);
|
|
46
|
-
|
|
47
|
-
function WsTransport() {
|
|
48
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
49
|
-
|
|
50
|
-
_classCallCheck(this, WsTransport);
|
|
51
|
-
|
|
52
|
-
var _this = _possibleConstructorReturn(this, (WsTransport.__proto__ || Object.getPrototypeOf(WsTransport)).call(this, Object.assign({ id: 0 }, options)));
|
|
53
|
-
|
|
54
|
-
_this._requests = new Map();
|
|
55
|
-
_this.inFlight = 0;
|
|
56
|
-
_this.isOpen = false;
|
|
57
|
-
return _this;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
_createClass(WsTransport, [{
|
|
61
|
-
key: 'start',
|
|
62
|
-
value: function start() {
|
|
63
|
-
var _this2 = this;
|
|
64
|
-
|
|
65
|
-
if (this.startPromise) {
|
|
66
|
-
return this.startPromise;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
this.startPromise = new _bluebird2.default(function (resolve, reject) {
|
|
70
|
-
_this2.ws = new WebSocket(_this2.options.websocket);
|
|
71
|
-
_this2.ws.onerror = function (err) {
|
|
72
|
-
_this2.startPromise = null;
|
|
73
|
-
reject(err);
|
|
74
|
-
};
|
|
75
|
-
_this2.ws.onopen = function () {
|
|
76
|
-
_this2.isOpen = true;
|
|
77
|
-
_this2.ws.onerror = _this2.onError.bind(_this2);
|
|
78
|
-
_this2.ws.onmessage = _this2.onMessage.bind(_this2);
|
|
79
|
-
_this2.ws.onclose = _this2.onClose.bind(_this2);
|
|
80
|
-
resolve();
|
|
81
|
-
};
|
|
82
|
-
});
|
|
83
|
-
return this.startPromise;
|
|
84
|
-
}
|
|
85
|
-
}, {
|
|
86
|
-
key: 'stop',
|
|
87
|
-
value: function stop() {
|
|
88
|
-
debug('Stopping...');
|
|
89
|
-
|
|
90
|
-
this.startPromise = null;
|
|
91
|
-
this.isOpen = false;
|
|
92
|
-
this._requests.clear();
|
|
93
|
-
|
|
94
|
-
if (this.ws) {
|
|
95
|
-
this.ws.onerror = this.ws.onmessage = this.ws.onclose = null;
|
|
96
|
-
this.ws.close();
|
|
97
|
-
this.ws = null;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}, {
|
|
101
|
-
key: 'send',
|
|
102
|
-
value: function send(api, data, callback) {
|
|
103
|
-
var _this3 = this;
|
|
104
|
-
|
|
105
|
-
debug('Steem::send', api, data);
|
|
106
|
-
return this.start().then(function () {
|
|
107
|
-
var deferral = {};
|
|
108
|
-
new _bluebird2.default(function (resolve, reject) {
|
|
109
|
-
deferral.resolve = function (val) {
|
|
110
|
-
resolve(val);
|
|
111
|
-
callback(null, val);
|
|
112
|
-
};
|
|
113
|
-
deferral.reject = function (val) {
|
|
114
|
-
reject(val);
|
|
115
|
-
callback(val);
|
|
116
|
-
};
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
if (_this3.options.useAppbaseApi) {
|
|
120
|
-
api = 'condenser_api';
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
var _request = {
|
|
124
|
-
deferral: deferral,
|
|
125
|
-
startedAt: Date.now(),
|
|
126
|
-
message: {
|
|
127
|
-
id: data.id || _this3.id++,
|
|
128
|
-
method: 'call',
|
|
129
|
-
jsonrpc: '2.0',
|
|
130
|
-
params: [api, data.method, data.params]
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
_this3.inFlight++;
|
|
134
|
-
_this3._requests.set(_request.message.id, _request);
|
|
135
|
-
_this3.ws.send(JSON.stringify(_request.message));
|
|
136
|
-
return deferral;
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}, {
|
|
140
|
-
key: 'onError',
|
|
141
|
-
value: function onError(error) {
|
|
142
|
-
var _iteratorNormalCompletion = true;
|
|
143
|
-
var _didIteratorError = false;
|
|
144
|
-
var _iteratorError = undefined;
|
|
145
|
-
|
|
146
|
-
try {
|
|
147
|
-
for (var _iterator = this._requests[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
148
|
-
var _request = _step.value;
|
|
149
|
-
|
|
150
|
-
_request.deferral.reject(error);
|
|
151
|
-
}
|
|
152
|
-
} catch (err) {
|
|
153
|
-
_didIteratorError = true;
|
|
154
|
-
_iteratorError = err;
|
|
155
|
-
} finally {
|
|
156
|
-
try {
|
|
157
|
-
if (!_iteratorNormalCompletion && _iterator.return) {
|
|
158
|
-
_iterator.return();
|
|
159
|
-
}
|
|
160
|
-
} finally {
|
|
161
|
-
if (_didIteratorError) {
|
|
162
|
-
throw _iteratorError;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
this.stop();
|
|
168
|
-
}
|
|
169
|
-
}, {
|
|
170
|
-
key: 'onClose',
|
|
171
|
-
value: function onClose() {
|
|
172
|
-
var error = new Error('Connection was closed');
|
|
173
|
-
var _iteratorNormalCompletion2 = true;
|
|
174
|
-
var _didIteratorError2 = false;
|
|
175
|
-
var _iteratorError2 = undefined;
|
|
176
|
-
|
|
177
|
-
try {
|
|
178
|
-
for (var _iterator2 = this._requests[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
179
|
-
var _request = _step2.value;
|
|
180
|
-
|
|
181
|
-
_request.deferral.reject(error);
|
|
182
|
-
}
|
|
183
|
-
} catch (err) {
|
|
184
|
-
_didIteratorError2 = true;
|
|
185
|
-
_iteratorError2 = err;
|
|
186
|
-
} finally {
|
|
187
|
-
try {
|
|
188
|
-
if (!_iteratorNormalCompletion2 && _iterator2.return) {
|
|
189
|
-
_iterator2.return();
|
|
190
|
-
}
|
|
191
|
-
} finally {
|
|
192
|
-
if (_didIteratorError2) {
|
|
193
|
-
throw _iteratorError2;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
this._requests.clear();
|
|
199
|
-
}
|
|
200
|
-
}, {
|
|
201
|
-
key: 'onMessage',
|
|
202
|
-
value: function onMessage(websocketMessage) {
|
|
203
|
-
var message = JSON.parse(websocketMessage.data);
|
|
204
|
-
debug('-- Steem.onMessage -->', message.id);
|
|
205
|
-
if (!this._requests.has(message.id)) {
|
|
206
|
-
throw new Error('Panic: no request in queue for message id ' + message.id);
|
|
207
|
-
}
|
|
208
|
-
var _request = this._requests.get(message.id);
|
|
209
|
-
this._requests.delete(message.id);
|
|
210
|
-
|
|
211
|
-
var errorCause = message.error;
|
|
212
|
-
if (errorCause) {
|
|
213
|
-
var err = new Error(
|
|
214
|
-
// eslint-disable-next-line prefer-template
|
|
215
|
-
(errorCause.message || 'Failed to complete operation') + ' (see err.payload for the full error payload)');
|
|
216
|
-
err.payload = message;
|
|
217
|
-
_request.deferral.reject(err);
|
|
218
|
-
} else {
|
|
219
|
-
this.emit('track-performance', _request.message.method, Date.now() - _request.startedAt);
|
|
220
|
-
_request.deferral.resolve(message.result);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}]);
|
|
224
|
-
|
|
225
|
-
return WsTransport;
|
|
226
|
-
}(_base2.default);
|
|
227
|
-
|
|
228
|
-
exports.default = WsTransport;
|
package/lib/auth/ecc/README.md
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Elliptic curve cryptography functions (ECC)
|
|
2
|
-
Private Key, Public Key, Cryptographic Signature, AES, Encryption / Decryption
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
import {Address, Aes, PrivateKey, PublicKey, Signature} from "ecc"
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
# Configure
|
|
9
|
-
Update `./.npmrc` if you need to change something:
|
|
10
|
-
```bash
|
|
11
|
-
ecc:default_address_prefix = STM
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
# See Also
|
|
15
|
-
* [Config](./config/index.js)
|
|
16
|
-
* [Address](./src/address.js)
|
|
17
|
-
* [Aes](./src/aes.js)
|
|
18
|
-
* [PrivateKey](./src/key_private.js)
|
|
19
|
-
* [PublicKey](./src/key_public.js)
|
|
20
|
-
* [Signature](./src/signature.js)
|
package/lib/auth/ecc/index.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
module.exports = {
|
|
4
|
-
Address: require("./src/address"),
|
|
5
|
-
Aes: require("./src/aes"),
|
|
6
|
-
PrivateKey: require("./src/key_private"),
|
|
7
|
-
PublicKey: require("./src/key_public"),
|
|
8
|
-
Signature: require("./src/signature"),
|
|
9
|
-
brainKey: require("./src/brain_key"),
|
|
10
|
-
key_utils: require("./src/key_utils"),
|
|
11
|
-
hash: require("./src/hash"),
|
|
12
|
-
ecc_config: require("../../config")
|
|
13
|
-
};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "ecc",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "Elliptic curve cryptography functions",
|
|
5
|
-
"keywords": "ECC, Private Key, Public Key, Cryptographic Signature, AES, Encryption, Decryption",
|
|
6
|
-
"main": "index.js",
|
|
7
|
-
"config": {
|
|
8
|
-
"address_prefix": "STM"
|
|
9
|
-
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"test": "mocha --compilers js:babel-core/register --recursive",
|
|
12
|
-
"test:watch": "npm test -- --watch"
|
|
13
|
-
},
|
|
14
|
-
"dependencies": {
|
|
15
|
-
"bigi": "^1.4.1",
|
|
16
|
-
"bs58": "^3.0.0",
|
|
17
|
-
"bytebuffer": "^5.0.0",
|
|
18
|
-
"crypto-js": "^3.1.5",
|
|
19
|
-
"ecurve": "^1.0.2",
|
|
20
|
-
"secure-random": "^1.1.1"
|
|
21
|
-
},
|
|
22
|
-
"author": "cryptonomex",
|
|
23
|
-
"license": "BSD-2-Clause-FreeBSD",
|
|
24
|
-
"devDependencies": {
|
|
25
|
-
"assert": "^1.3.0",
|
|
26
|
-
"babel-cli": "^6.2.0",
|
|
27
|
-
"babel-core": "^6.2.0",
|
|
28
|
-
"babel-preset-es2015": "^6.1.18",
|
|
29
|
-
"mocha": "^2.3.4"
|
|
30
|
-
},
|
|
31
|
-
"_babel": {
|
|
32
|
-
"presets": [
|
|
33
|
-
"es2015"
|
|
34
|
-
]
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
4
|
-
|
|
5
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
6
|
-
|
|
7
|
-
var assert = require('assert');
|
|
8
|
-
var config = require('../../../config');
|
|
9
|
-
var hash = require('./hash');
|
|
10
|
-
var base58 = require('bs58');
|
|
11
|
-
|
|
12
|
-
/** Addresses are shortened non-reversable hashes of a public key. The full PublicKey is preferred.
|
|
13
|
-
@deprecated
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
var Address = function () {
|
|
17
|
-
function Address(addy) {
|
|
18
|
-
_classCallCheck(this, Address);
|
|
19
|
-
|
|
20
|
-
this.addy = addy;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
_createClass(Address, [{
|
|
24
|
-
key: 'toBuffer',
|
|
25
|
-
value: function toBuffer() {
|
|
26
|
-
return this.addy;
|
|
27
|
-
}
|
|
28
|
-
}, {
|
|
29
|
-
key: 'toString',
|
|
30
|
-
value: function toString() {
|
|
31
|
-
var address_prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : config.get('address_prefix');
|
|
32
|
-
|
|
33
|
-
var checksum = hash.ripemd160(this.addy);
|
|
34
|
-
var addy = Buffer.concat([this.addy, checksum.slice(0, 4)]);
|
|
35
|
-
return address_prefix + base58.encode(addy);
|
|
36
|
-
}
|
|
37
|
-
}], [{
|
|
38
|
-
key: 'fromBuffer',
|
|
39
|
-
value: function fromBuffer(buffer) {
|
|
40
|
-
var _hash = hash.sha512(buffer);
|
|
41
|
-
var addy = hash.ripemd160(_hash);
|
|
42
|
-
return new Address(addy);
|
|
43
|
-
}
|
|
44
|
-
}, {
|
|
45
|
-
key: 'fromString',
|
|
46
|
-
value: function fromString(string) {
|
|
47
|
-
var address_prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : config.get('address_prefix');
|
|
48
|
-
|
|
49
|
-
var prefix = string.slice(0, address_prefix.length);
|
|
50
|
-
assert.equal(address_prefix, prefix, 'Expecting key to begin with ' + address_prefix + ', instead got ' + prefix);
|
|
51
|
-
var addy = string.slice(address_prefix.length);
|
|
52
|
-
addy = new Buffer(base58.decode(addy), 'binary');
|
|
53
|
-
var checksum = addy.slice(-4);
|
|
54
|
-
addy = addy.slice(0, -4);
|
|
55
|
-
var new_checksum = hash.ripemd160(addy);
|
|
56
|
-
new_checksum = new_checksum.slice(0, 4);
|
|
57
|
-
assert.deepEqual(checksum, new_checksum, 'Checksum did not match');
|
|
58
|
-
return new Address(addy);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/** @return Address - Compressed PTS format (by default) */
|
|
62
|
-
|
|
63
|
-
}, {
|
|
64
|
-
key: 'fromPublic',
|
|
65
|
-
value: function fromPublic(public_key) {
|
|
66
|
-
var compressed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
67
|
-
var version = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 56;
|
|
68
|
-
|
|
69
|
-
var sha2 = hash.sha256(public_key.toBuffer(compressed));
|
|
70
|
-
var rep = hash.ripemd160(sha2);
|
|
71
|
-
var versionBuffer = new Buffer(1);
|
|
72
|
-
versionBuffer.writeUInt8(0xFF & version, 0);
|
|
73
|
-
var addr = Buffer.concat([versionBuffer, rep]);
|
|
74
|
-
var check = hash.sha256(addr);
|
|
75
|
-
check = hash.sha256(check);
|
|
76
|
-
var buffer = Buffer.concat([addr, check.slice(0, 4)]);
|
|
77
|
-
return new Address(hash.ripemd160(buffer));
|
|
78
|
-
}
|
|
79
|
-
}]);
|
|
80
|
-
|
|
81
|
-
return Address;
|
|
82
|
-
}();
|
|
83
|
-
|
|
84
|
-
module.exports = Address;
|
package/lib/auth/ecc/src/aes.js
DELETED
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.encrypt = encrypt;
|
|
7
|
-
exports.decrypt = decrypt;
|
|
8
|
-
|
|
9
|
-
var _secureRandom = require('secure-random');
|
|
10
|
-
|
|
11
|
-
var _secureRandom2 = _interopRequireDefault(_secureRandom);
|
|
12
|
-
|
|
13
|
-
var _bytebuffer = require('bytebuffer');
|
|
14
|
-
|
|
15
|
-
var _bytebuffer2 = _interopRequireDefault(_bytebuffer);
|
|
16
|
-
|
|
17
|
-
var _browserifyAes = require('browserify-aes');
|
|
18
|
-
|
|
19
|
-
var _browserifyAes2 = _interopRequireDefault(_browserifyAes);
|
|
20
|
-
|
|
21
|
-
var _assert = require('assert');
|
|
22
|
-
|
|
23
|
-
var _assert2 = _interopRequireDefault(_assert);
|
|
24
|
-
|
|
25
|
-
var _key_public = require('./key_public');
|
|
26
|
-
|
|
27
|
-
var _key_public2 = _interopRequireDefault(_key_public);
|
|
28
|
-
|
|
29
|
-
var _key_private = require('./key_private');
|
|
30
|
-
|
|
31
|
-
var _key_private2 = _interopRequireDefault(_key_private);
|
|
32
|
-
|
|
33
|
-
var _hash = require('./hash');
|
|
34
|
-
|
|
35
|
-
var _hash2 = _interopRequireDefault(_hash);
|
|
36
|
-
|
|
37
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
38
|
-
|
|
39
|
-
var Long = _bytebuffer2.default.Long;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
Spec: http://localhost:3002/steem/@dantheman/how-to-encrypt-a-memo-when-transferring-steem
|
|
43
|
-
@throws {Error|TypeError} - "Invalid Key, ..."
|
|
44
|
-
@arg {PrivateKey} private_key - required and used for decryption
|
|
45
|
-
@arg {PublicKey} public_key - required and used to calcualte the shared secret
|
|
46
|
-
@arg {string} [nonce = uniqueNonce()] - assigned a random unique uint64
|
|
47
|
-
|
|
48
|
-
@return {object}
|
|
49
|
-
@property {string} nonce - random or unique uint64, provides entropy when re-using the same private/public keys.
|
|
50
|
-
@property {Buffer} message - Plain text message
|
|
51
|
-
@property {number} checksum - shared secret checksum
|
|
52
|
-
*/
|
|
53
|
-
function encrypt(private_key, public_key, message) {
|
|
54
|
-
var nonce = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : uniqueNonce();
|
|
55
|
-
|
|
56
|
-
return crypt(private_key, public_key, nonce, message);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
Spec: http://localhost:3002/steem/@dantheman/how-to-encrypt-a-memo-when-transferring-steem
|
|
61
|
-
@arg {PrivateKey} private_key - required and used for decryption
|
|
62
|
-
@arg {PublicKey} public_key - required and used to calcualte the shared secret
|
|
63
|
-
@arg {string} nonce - random or unique uint64, provides entropy when re-using the same private/public keys.
|
|
64
|
-
@arg {Buffer} message - Encrypted or plain text message
|
|
65
|
-
@arg {number} checksum - shared secret checksum
|
|
66
|
-
@throws {Error|TypeError} - "Invalid Key, ..."
|
|
67
|
-
@return {Buffer} - message
|
|
68
|
-
*/
|
|
69
|
-
function decrypt(private_key, public_key, nonce, message, checksum) {
|
|
70
|
-
return crypt(private_key, public_key, nonce, message, checksum).message;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
@arg {Buffer} message - Encrypted or plain text message (see checksum)
|
|
75
|
-
@arg {number} checksum - shared secret checksum (null to encrypt, non-null to decrypt)
|
|
76
|
-
*/
|
|
77
|
-
function crypt(private_key, public_key, nonce, message, checksum) {
|
|
78
|
-
private_key = toPrivateObj(private_key);
|
|
79
|
-
if (!private_key) throw new TypeError('private_key is required');
|
|
80
|
-
|
|
81
|
-
public_key = toPublicObj(public_key);
|
|
82
|
-
if (!public_key) throw new TypeError('public_key is required');
|
|
83
|
-
|
|
84
|
-
nonce = toLongObj(nonce);
|
|
85
|
-
if (!nonce) throw new TypeError('nonce is required');
|
|
86
|
-
|
|
87
|
-
if (!Buffer.isBuffer(message)) {
|
|
88
|
-
if (typeof message !== 'string') throw new TypeError('message should be buffer or string');
|
|
89
|
-
message = new Buffer(message, 'binary');
|
|
90
|
-
}
|
|
91
|
-
if (checksum && typeof checksum !== 'number') throw new TypeError('checksum should be a number');
|
|
92
|
-
|
|
93
|
-
var S = private_key.get_shared_secret(public_key);
|
|
94
|
-
var ebuf = new _bytebuffer2.default(_bytebuffer2.default.DEFAULT_CAPACITY, _bytebuffer2.default.LITTLE_ENDIAN);
|
|
95
|
-
ebuf.writeUint64(nonce);
|
|
96
|
-
ebuf.append(S.toString('binary'), 'binary');
|
|
97
|
-
ebuf = new Buffer(ebuf.copy(0, ebuf.offset).toBinary(), 'binary');
|
|
98
|
-
var encryption_key = _hash2.default.sha512(ebuf);
|
|
99
|
-
|
|
100
|
-
// D E B U G
|
|
101
|
-
// console.log('crypt', {
|
|
102
|
-
// priv_to_pub: private_key.toPublicKey().toString(),
|
|
103
|
-
// pub: public_key.toString(),
|
|
104
|
-
// nonce: nonce.toString(),
|
|
105
|
-
// message: message.length,
|
|
106
|
-
// checksum,
|
|
107
|
-
// S: S.toString('hex'),
|
|
108
|
-
// encryption_key: encryption_key.toString('hex'),
|
|
109
|
-
// })
|
|
110
|
-
|
|
111
|
-
var iv = encryption_key.slice(32, 48);
|
|
112
|
-
var key = encryption_key.slice(0, 32);
|
|
113
|
-
|
|
114
|
-
// check is first 64 bit of sha256 hash treated as uint64_t truncated to 32 bits.
|
|
115
|
-
var check = _hash2.default.sha256(encryption_key);
|
|
116
|
-
check = check.slice(0, 4);
|
|
117
|
-
var cbuf = _bytebuffer2.default.fromBinary(check.toString('binary'), _bytebuffer2.default.DEFAULT_CAPACITY, _bytebuffer2.default.LITTLE_ENDIAN);
|
|
118
|
-
check = cbuf.readUint32();
|
|
119
|
-
|
|
120
|
-
if (checksum) {
|
|
121
|
-
if (check !== checksum) throw new Error('Invalid key');
|
|
122
|
-
message = cryptoJsDecrypt(message, key, iv);
|
|
123
|
-
} else {
|
|
124
|
-
message = cryptoJsEncrypt(message, key, iv);
|
|
125
|
-
}
|
|
126
|
-
return { nonce: nonce, message: message, checksum: check };
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/** This method does not use a checksum, the returned data must be validated some other way.
|
|
130
|
-
@arg {string|Buffer} ciphertext - binary format
|
|
131
|
-
@return {Buffer}
|
|
132
|
-
*/
|
|
133
|
-
function cryptoJsDecrypt(message, key, iv) {
|
|
134
|
-
(0, _assert2.default)(message, "Missing cipher text");
|
|
135
|
-
message = toBinaryBuffer(message);
|
|
136
|
-
var decipher = _browserifyAes2.default.createDecipheriv('aes-256-cbc', key, iv);
|
|
137
|
-
// decipher.setAutoPadding(true)
|
|
138
|
-
message = Buffer.concat([decipher.update(message), decipher.final()]);
|
|
139
|
-
return message;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/** This method does not use a checksum, the returned data must be validated some other way.
|
|
143
|
-
@arg {string|Buffer} plaintext - binary format
|
|
144
|
-
@return {Buffer} binary
|
|
145
|
-
*/
|
|
146
|
-
function cryptoJsEncrypt(message, key, iv) {
|
|
147
|
-
(0, _assert2.default)(message, "Missing plain text");
|
|
148
|
-
message = toBinaryBuffer(message);
|
|
149
|
-
var cipher = _browserifyAes2.default.createCipheriv('aes-256-cbc', key, iv);
|
|
150
|
-
// cipher.setAutoPadding(true)
|
|
151
|
-
message = Buffer.concat([cipher.update(message), cipher.final()]);
|
|
152
|
-
return message;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/** @return {string} unique 64 bit unsigned number string. Being time based, this is careful to never choose the same nonce twice. This value could be recorded in the blockchain for a long time.
|
|
156
|
-
*/
|
|
157
|
-
function uniqueNonce() {
|
|
158
|
-
if (unique_nonce_entropy === null) {
|
|
159
|
-
var b = _secureRandom2.default.randomUint8Array(2);
|
|
160
|
-
unique_nonce_entropy = parseInt(b[0] << 8 | b[1], 10);
|
|
161
|
-
}
|
|
162
|
-
var long = Long.fromNumber(Date.now());
|
|
163
|
-
var entropy = ++unique_nonce_entropy % 0xFFFF;
|
|
164
|
-
// console.log('uniqueNonce date\t', ByteBuffer.allocate(8).writeUint64(long).toHex(0))
|
|
165
|
-
// console.log('uniqueNonce entropy\t', ByteBuffer.allocate(8).writeUint64(Long.fromNumber(entropy)).toHex(0))
|
|
166
|
-
long = long.shiftLeft(16).or(Long.fromNumber(entropy));
|
|
167
|
-
// console.log('uniqueNonce final\t', ByteBuffer.allocate(8).writeUint64(long).toHex(0))
|
|
168
|
-
return long.toString();
|
|
169
|
-
}
|
|
170
|
-
var unique_nonce_entropy = null;
|
|
171
|
-
// for(let i=1; i < 10; i++) key.uniqueNonce()
|
|
172
|
-
|
|
173
|
-
var toPrivateObj = function toPrivateObj(o) {
|
|
174
|
-
return o ? o.d ? o : _key_private2.default.fromWif(o) : o /*null or undefined*/;
|
|
175
|
-
};
|
|
176
|
-
var toPublicObj = function toPublicObj(o) {
|
|
177
|
-
return o ? o.Q ? o : _key_public2.default.fromString(o) : o /*null or undefined*/;
|
|
178
|
-
};
|
|
179
|
-
var toLongObj = function toLongObj(o) {
|
|
180
|
-
return o ? Long.isLong(o) ? o : Long.fromString(o) : o;
|
|
181
|
-
};
|
|
182
|
-
var toBinaryBuffer = function toBinaryBuffer(o) {
|
|
183
|
-
return o ? Buffer.isBuffer(o) ? o : new Buffer(o, 'binary') : o;
|
|
184
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.normalize = normalize;
|
|
7
|
-
function normalize(brain_key) {
|
|
8
|
-
if (typeof brain_key !== 'string') {
|
|
9
|
-
throw new Error("string required for brain_key");
|
|
10
|
-
}
|
|
11
|
-
brain_key = brain_key.trim();
|
|
12
|
-
return brain_key.split(/[\t\n\v\f\r ]+/).join(' ');
|
|
13
|
-
}
|