@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/auth/memo.js
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
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; };
|
|
8
|
-
|
|
9
|
-
exports.decode = decode;
|
|
10
|
-
exports.encode = encode;
|
|
11
|
-
|
|
12
|
-
var _bytebuffer = require('bytebuffer');
|
|
13
|
-
|
|
14
|
-
var _bytebuffer2 = _interopRequireDefault(_bytebuffer);
|
|
15
|
-
|
|
16
|
-
var _assert = require('assert');
|
|
17
|
-
|
|
18
|
-
var _assert2 = _interopRequireDefault(_assert);
|
|
19
|
-
|
|
20
|
-
var _bs = require('bs58');
|
|
21
|
-
|
|
22
|
-
var _bs2 = _interopRequireDefault(_bs);
|
|
23
|
-
|
|
24
|
-
var _ecc = require('./ecc');
|
|
25
|
-
|
|
26
|
-
var _serializer = require('./serializer');
|
|
27
|
-
|
|
28
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
|
-
|
|
30
|
-
var encMemo = _serializer.ops.encrypted_memo;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
Some fields are only required if the memo is marked for decryption (starts with a hash).
|
|
34
|
-
@arg {string|PrivateKey} private_key - WIF or PrivateKey object
|
|
35
|
-
@arg {string} memo - plain text is returned, hash prefix base58 is decrypted
|
|
36
|
-
@return {string} - utf8 decoded string (hash prefix)
|
|
37
|
-
*/
|
|
38
|
-
function decode(private_key, memo) {
|
|
39
|
-
(0, _assert2.default)(memo, 'memo is required');
|
|
40
|
-
_assert2.default.equal(typeof memo === 'undefined' ? 'undefined' : _typeof(memo), 'string', 'memo');
|
|
41
|
-
if (!/^#/.test(memo)) return memo;
|
|
42
|
-
memo = memo.substring(1);
|
|
43
|
-
|
|
44
|
-
(0, _assert2.default)(private_key, 'private_key is required');
|
|
45
|
-
checkEncryption();
|
|
46
|
-
|
|
47
|
-
private_key = toPrivateObj(private_key);
|
|
48
|
-
|
|
49
|
-
memo = _bs2.default.decode(memo);
|
|
50
|
-
memo = encMemo.fromBuffer(new Buffer(memo, 'binary'));
|
|
51
|
-
|
|
52
|
-
var _memo = memo,
|
|
53
|
-
from = _memo.from,
|
|
54
|
-
to = _memo.to,
|
|
55
|
-
nonce = _memo.nonce,
|
|
56
|
-
check = _memo.check,
|
|
57
|
-
encrypted = _memo.encrypted;
|
|
58
|
-
|
|
59
|
-
var pubkey = private_key.toPublicKey().toString();
|
|
60
|
-
var otherpub = pubkey === from.toString() ? to.toString() : from.toString();
|
|
61
|
-
memo = _ecc.Aes.decrypt(private_key, otherpub, nonce, encrypted, check);
|
|
62
|
-
|
|
63
|
-
// remove varint length prefix
|
|
64
|
-
var mbuf = _bytebuffer2.default.fromBinary(memo.toString('binary'), _bytebuffer2.default.DEFAULT_CAPACITY, _bytebuffer2.default.LITTLE_ENDIAN);
|
|
65
|
-
try {
|
|
66
|
-
mbuf.mark();
|
|
67
|
-
return '#' + mbuf.readVString();
|
|
68
|
-
} catch (e) {
|
|
69
|
-
mbuf.reset();
|
|
70
|
-
// Sender did not length-prefix the memo
|
|
71
|
-
memo = new Buffer(mbuf.toString('binary'), 'binary').toString('utf-8');
|
|
72
|
-
return '#' + memo;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
Some fields are only required if the memo is marked for encryption (starts with a hash).
|
|
78
|
-
@arg {string|PrivateKey} private_key - WIF or PrivateKey object
|
|
79
|
-
@arg {string|PublicKey} public_key - Recipient
|
|
80
|
-
@arg {string} memo - plain text is returned, hash prefix text is encrypted
|
|
81
|
-
@arg {string} [testNonce = undefined] - just for testing
|
|
82
|
-
@return {string} - base64 decoded string (or plain text)
|
|
83
|
-
*/
|
|
84
|
-
function encode(private_key, public_key, memo, testNonce) {
|
|
85
|
-
(0, _assert2.default)(memo, 'memo is required');
|
|
86
|
-
_assert2.default.equal(typeof memo === 'undefined' ? 'undefined' : _typeof(memo), 'string', 'memo');
|
|
87
|
-
if (!/^#/.test(memo)) return memo;
|
|
88
|
-
memo = memo.substring(1);
|
|
89
|
-
|
|
90
|
-
(0, _assert2.default)(private_key, 'private_key is required');
|
|
91
|
-
(0, _assert2.default)(public_key, 'public_key is required');
|
|
92
|
-
checkEncryption();
|
|
93
|
-
|
|
94
|
-
private_key = toPrivateObj(private_key);
|
|
95
|
-
public_key = toPublicObj(public_key);
|
|
96
|
-
|
|
97
|
-
var mbuf = new _bytebuffer2.default(_bytebuffer2.default.DEFAULT_CAPACITY, _bytebuffer2.default.LITTLE_ENDIAN);
|
|
98
|
-
mbuf.writeVString(memo);
|
|
99
|
-
memo = new Buffer(mbuf.copy(0, mbuf.offset).toBinary(), 'binary');
|
|
100
|
-
|
|
101
|
-
var _Aes$encrypt = _ecc.Aes.encrypt(private_key, public_key, memo, testNonce),
|
|
102
|
-
nonce = _Aes$encrypt.nonce,
|
|
103
|
-
message = _Aes$encrypt.message,
|
|
104
|
-
checksum = _Aes$encrypt.checksum;
|
|
105
|
-
|
|
106
|
-
memo = encMemo.fromObject({
|
|
107
|
-
from: private_key.toPublicKey(),
|
|
108
|
-
to: public_key,
|
|
109
|
-
nonce: nonce,
|
|
110
|
-
check: checksum,
|
|
111
|
-
encrypted: message
|
|
112
|
-
});
|
|
113
|
-
// serialize
|
|
114
|
-
memo = encMemo.toBuffer(memo);
|
|
115
|
-
return '#' + _bs2.default.encode(new Buffer(memo, 'binary'));
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
var encodeTest = undefined;
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
Memo encryption has failed in the browser before. An Error will be thrown
|
|
122
|
-
if a memo can't be encrypted and decrypted.
|
|
123
|
-
*/
|
|
124
|
-
function checkEncryption() {
|
|
125
|
-
if (encodeTest === undefined) {
|
|
126
|
-
var plaintext = void 0;
|
|
127
|
-
encodeTest = true; // prevent infinate looping
|
|
128
|
-
try {
|
|
129
|
-
var wif = '5JdeC9P7Pbd1uGdFVEsJ41EkEnADbbHGq6p1BwFxm6txNBsQnsw';
|
|
130
|
-
var pubkey = 'STM8m5UgaFAAYQRuaNejYdS8FVLVp9Ss3K1qAVk5de6F8s3HnVbvA';
|
|
131
|
-
var cyphertext = encode(wif, pubkey, '#memo爱');
|
|
132
|
-
plaintext = decode(wif, cyphertext);
|
|
133
|
-
} catch (e) {
|
|
134
|
-
console.error(e);
|
|
135
|
-
} finally {
|
|
136
|
-
encodeTest = plaintext === '#memo爱';
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
if (encodeTest === false) throw new Error('This environment does not support encryption.');
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
var toPrivateObj = function toPrivateObj(o) {
|
|
143
|
-
return o ? o.d ? o : _ecc.PrivateKey.fromWif(o) : o /*null or undefined*/;
|
|
144
|
-
};
|
|
145
|
-
var toPublicObj = function toPublicObj(o) {
|
|
146
|
-
return o ? o.Q ? o : _ecc.PublicKey.fromString(o) : o /*null or undefined*/;
|
|
147
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
module.exports = {
|
|
4
|
-
|
|
5
|
-
// Primary class for creating operations
|
|
6
|
-
Serializer: require('./src/serializer'),
|
|
7
|
-
|
|
8
|
-
// helper functions for creating operations
|
|
9
|
-
fp: require('./src/fast_parser'),
|
|
10
|
-
|
|
11
|
-
// Low level types
|
|
12
|
-
types: require('./src/types'),
|
|
13
|
-
|
|
14
|
-
// Higher level operations (made out of generic types)
|
|
15
|
-
ops: require('./src/operations'),
|
|
16
|
-
|
|
17
|
-
// Utility that generates JSON examples
|
|
18
|
-
template: require('./src/template'),
|
|
19
|
-
|
|
20
|
-
number_utils: require('./src/number_utils')
|
|
21
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "serializer",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "Binary serialization and deserialization library",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"config": {
|
|
7
|
-
"hex_dump": false
|
|
8
|
-
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"test": "mocha --compilers js:babel-core/register --recursive",
|
|
11
|
-
"test:watch": "npm test -- --watch"
|
|
12
|
-
},
|
|
13
|
-
"author": "",
|
|
14
|
-
"license": "BSD-2-Clause-FreeBSD",
|
|
15
|
-
"dependencies": {
|
|
16
|
-
"bigi": "^1.4.1",
|
|
17
|
-
"bytebuffer": "^5.0.0",
|
|
18
|
-
"ecc": "^1.0.0"
|
|
19
|
-
},
|
|
20
|
-
"devDependencies": {
|
|
21
|
-
"assert": "^1.3.0",
|
|
22
|
-
"babel-cli": "^6.2.0",
|
|
23
|
-
"babel-core": "^6.2.0",
|
|
24
|
-
"babel-preset-es2015": "^6.1.18",
|
|
25
|
-
"mocha": "^2.3.4"
|
|
26
|
-
},
|
|
27
|
-
"_babel": {
|
|
28
|
-
"presets": [
|
|
29
|
-
"es2015"
|
|
30
|
-
]
|
|
31
|
-
}
|
|
32
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var ChainTypes;
|
|
4
|
-
|
|
5
|
-
module.exports = ChainTypes = {};
|
|
6
|
-
|
|
7
|
-
ChainTypes.reserved_spaces = {
|
|
8
|
-
relative_protocol_ids: 0,
|
|
9
|
-
protocol_ids: 1,
|
|
10
|
-
implementation_ids: 2
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
ChainTypes.operations = {
|
|
14
|
-
vote: 0,
|
|
15
|
-
comment: 1,
|
|
16
|
-
transfer: 2,
|
|
17
|
-
transfer_to_vesting: 3,
|
|
18
|
-
withdraw_vesting: 4,
|
|
19
|
-
limit_order_create: 5,
|
|
20
|
-
limit_order_cancel: 6,
|
|
21
|
-
feed_publish: 7,
|
|
22
|
-
convert: 8,
|
|
23
|
-
account_create: 9,
|
|
24
|
-
account_update: 10,
|
|
25
|
-
witness_update: 11,
|
|
26
|
-
account_witness_vote: 12,
|
|
27
|
-
account_witness_proxy: 13,
|
|
28
|
-
pow: 14,
|
|
29
|
-
custom: 15,
|
|
30
|
-
report_over_production: 16,
|
|
31
|
-
delete_comment: 17,
|
|
32
|
-
custom_json: 18,
|
|
33
|
-
comment_options: 19,
|
|
34
|
-
set_withdraw_vesting_route: 20,
|
|
35
|
-
limit_order_create2: 21,
|
|
36
|
-
claim_account: 22,
|
|
37
|
-
create_claimed_account: 23,
|
|
38
|
-
request_account_recovery: 24,
|
|
39
|
-
recover_account: 25,
|
|
40
|
-
change_recovery_account: 26,
|
|
41
|
-
escrow_transfer: 27,
|
|
42
|
-
escrow_dispute: 28,
|
|
43
|
-
escrow_release: 29,
|
|
44
|
-
pow2: 30,
|
|
45
|
-
escrow_approve: 31,
|
|
46
|
-
transfer_to_savings: 32,
|
|
47
|
-
transfer_from_savings: 33,
|
|
48
|
-
cancel_transfer_from_savings: 34,
|
|
49
|
-
custom_binary: 35,
|
|
50
|
-
decline_voting_rights: 36,
|
|
51
|
-
reset_account: 37,
|
|
52
|
-
set_reset_account: 38,
|
|
53
|
-
claim_reward_balance: 39,
|
|
54
|
-
delegate_vesting_shares: 40,
|
|
55
|
-
account_create_with_delegation: 41,
|
|
56
|
-
witness_set_properties: 42,
|
|
57
|
-
account_update2: 43,
|
|
58
|
-
create_proposal: 44,
|
|
59
|
-
update_proposal_votes: 45,
|
|
60
|
-
remove_proposal: 46,
|
|
61
|
-
claim_reward_balance2: 47,
|
|
62
|
-
vote2: 48,
|
|
63
|
-
smt_setup: 49,
|
|
64
|
-
smt_setup_emissions: 50,
|
|
65
|
-
smt_setup_ico_tier: 51,
|
|
66
|
-
smt_set_setup_parameters: 52,
|
|
67
|
-
smt_set_runtime_parameters: 53,
|
|
68
|
-
smt_create: 54,
|
|
69
|
-
smt_contribute: 55,
|
|
70
|
-
fill_convert_request: 56,
|
|
71
|
-
author_reward: 57,
|
|
72
|
-
curation_reward: 58,
|
|
73
|
-
comment_reward: 59,
|
|
74
|
-
liquidity_reward: 60,
|
|
75
|
-
interest: 61,
|
|
76
|
-
fill_vesting_withdraw: 62,
|
|
77
|
-
fill_order: 63,
|
|
78
|
-
shutdown_witness: 64,
|
|
79
|
-
fill_transfer_from_savings: 65,
|
|
80
|
-
hardfork: 66,
|
|
81
|
-
comment_payout_update: 67,
|
|
82
|
-
return_vesting_delegation: 68,
|
|
83
|
-
comment_benefactor_reward: 69
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
//types.hpp
|
|
87
|
-
ChainTypes.object_type = {
|
|
88
|
-
"null": 0,
|
|
89
|
-
base: 1
|
|
90
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var ByteBuffer = require('bytebuffer');
|
|
4
|
-
|
|
5
|
-
module.exports = function (type) {
|
|
6
|
-
|
|
7
|
-
return {
|
|
8
|
-
fromHex: function fromHex(hex) {
|
|
9
|
-
var b = ByteBuffer.fromHex(hex, ByteBuffer.LITTLE_ENDIAN);
|
|
10
|
-
return type.fromByteBuffer(b);
|
|
11
|
-
},
|
|
12
|
-
toHex: function toHex(object) {
|
|
13
|
-
var b = toByteBuffer(type, object);
|
|
14
|
-
return b.toHex();
|
|
15
|
-
},
|
|
16
|
-
fromBuffer: function fromBuffer(buffer) {
|
|
17
|
-
var b = ByteBuffer.fromBinary(buffer.toString(), ByteBuffer.LITTLE_ENDIAN);
|
|
18
|
-
return type.fromByteBuffer(b);
|
|
19
|
-
},
|
|
20
|
-
toBuffer: function toBuffer(object) {
|
|
21
|
-
return new Buffer(toByteBuffer(type, object).toBinary(), 'binary');
|
|
22
|
-
},
|
|
23
|
-
fromBinary: function fromBinary(string) {
|
|
24
|
-
var b = ByteBuffer.fromBinary(string, ByteBuffer.LITTLE_ENDIAN);
|
|
25
|
-
return type.fromByteBuffer(b);
|
|
26
|
-
},
|
|
27
|
-
toBinary: function toBinary(object) {
|
|
28
|
-
return toByteBuffer(type, object).toBinary();
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
var toByteBuffer = function toByteBuffer(type, object) {
|
|
34
|
-
var b = new ByteBuffer(ByteBuffer.DEFAULT_CAPACITY, ByteBuffer.LITTLE_ENDIAN);
|
|
35
|
-
type.appendByteBuffer(b, object);
|
|
36
|
-
return b.copy(0, b.offset);
|
|
37
|
-
};
|
|
@@ -1,42 +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
|
-
/** Exception nesting. */
|
|
8
|
-
var ErrorWithCause = function () {
|
|
9
|
-
function ErrorWithCause(message, cause) {
|
|
10
|
-
_classCallCheck(this, ErrorWithCause);
|
|
11
|
-
|
|
12
|
-
this.message = message;
|
|
13
|
-
if (typeof cause !== "undefined" && cause !== null ? cause.message : undefined) {
|
|
14
|
-
this.message = "cause\t" + cause.message + "\t" + this.message;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
var stack = ""; //(new Error).stack
|
|
18
|
-
if (typeof cause !== "undefined" && cause !== null ? cause.stack : undefined) {
|
|
19
|
-
stack = "caused by\n\t" + cause.stack + "\t" + stack;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
this.stack = this.message + "\n" + stack;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
_createClass(ErrorWithCause, null, [{
|
|
26
|
-
key: "throw",
|
|
27
|
-
value: function _throw(message, cause) {
|
|
28
|
-
var msg = message;
|
|
29
|
-
if (typeof cause !== "undefined" && cause !== null ? cause.message : undefined) {
|
|
30
|
-
msg += "\t cause: " + cause.message + " ";
|
|
31
|
-
}
|
|
32
|
-
if (typeof cause !== "undefined" && cause !== null ? cause.stack : undefined) {
|
|
33
|
-
msg += "\n stack: " + cause.stack + " ";
|
|
34
|
-
}
|
|
35
|
-
throw new Error(msg);
|
|
36
|
-
}
|
|
37
|
-
}]);
|
|
38
|
-
|
|
39
|
-
return ErrorWithCause;
|
|
40
|
-
}();
|
|
41
|
-
|
|
42
|
-
module.exports = ErrorWithCause;
|
|
@@ -1,77 +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
|
-
var _ecc = require('../../ecc');
|
|
6
|
-
|
|
7
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
8
|
-
|
|
9
|
-
var FastParser = function () {
|
|
10
|
-
function FastParser() {
|
|
11
|
-
_classCallCheck(this, FastParser);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
_createClass(FastParser, null, [{
|
|
15
|
-
key: 'fixed_data',
|
|
16
|
-
value: function fixed_data(b, len, buffer) {
|
|
17
|
-
if (!b) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
if (buffer) {
|
|
21
|
-
var data = buffer.slice(0, len).toString('binary');
|
|
22
|
-
b.append(data, 'binary');
|
|
23
|
-
while (len-- > data.length) {
|
|
24
|
-
b.writeUint8(0);
|
|
25
|
-
}
|
|
26
|
-
} else {
|
|
27
|
-
var b_copy = b.copy(b.offset, b.offset + len);
|
|
28
|
-
b.skip(len);
|
|
29
|
-
return new Buffer(b_copy.toBinary(), 'binary');
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}, {
|
|
33
|
-
key: 'public_key',
|
|
34
|
-
value: function public_key(b, _public_key) {
|
|
35
|
-
if (!b) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
if (_public_key) {
|
|
39
|
-
var buffer = _public_key.toBuffer();
|
|
40
|
-
b.append(buffer.toString('binary'), 'binary');
|
|
41
|
-
return;
|
|
42
|
-
} else {
|
|
43
|
-
buffer = FastParser.fixed_data(b, 33);
|
|
44
|
-
return _ecc.PublicKey.fromBuffer(buffer);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}, {
|
|
48
|
-
key: 'ripemd160',
|
|
49
|
-
value: function ripemd160(b, _ripemd) {
|
|
50
|
-
if (!b) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (_ripemd) {
|
|
54
|
-
FastParser.fixed_data(b, 20, _ripemd);
|
|
55
|
-
return;
|
|
56
|
-
} else {
|
|
57
|
-
return FastParser.fixed_data(b, 20);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}, {
|
|
61
|
-
key: 'time_point_sec',
|
|
62
|
-
value: function time_point_sec(b, epoch) {
|
|
63
|
-
if (epoch) {
|
|
64
|
-
epoch = Math.ceil(epoch / 1000);
|
|
65
|
-
b.writeInt32(epoch);
|
|
66
|
-
return;
|
|
67
|
-
} else {
|
|
68
|
-
epoch = b.readInt32(); // fc::time_point_sec
|
|
69
|
-
return new Date(epoch * 1000);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}]);
|
|
73
|
-
|
|
74
|
-
return FastParser;
|
|
75
|
-
}();
|
|
76
|
-
|
|
77
|
-
module.exports = FastParser;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
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"); } }; }();
|
|
8
|
-
|
|
9
|
-
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; };
|
|
10
|
-
|
|
11
|
-
exports.toImpliedDecimal = toImpliedDecimal;
|
|
12
|
-
exports.fromImpliedDecimal = fromImpliedDecimal;
|
|
13
|
-
|
|
14
|
-
var _assert = require("assert");
|
|
15
|
-
|
|
16
|
-
var _assert2 = _interopRequireDefault(_assert);
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
Convert 12.34 with a precision of 3 into 12340
|
|
22
|
-
|
|
23
|
-
@arg {number|string} number - Use strings for large numbers. This may contain one decimal but no sign
|
|
24
|
-
@arg {number} precision - number of implied decimal places (usually causes right zero padding)
|
|
25
|
-
@return {string} -
|
|
26
|
-
*/
|
|
27
|
-
function toImpliedDecimal(number, precision) {
|
|
28
|
-
|
|
29
|
-
if (typeof number === "number") {
|
|
30
|
-
(0, _assert2.default)(number <= 9007199254740991, "overflow");
|
|
31
|
-
number = "" + number;
|
|
32
|
-
} else if (number.toString) number = number.toString();
|
|
33
|
-
|
|
34
|
-
(0, _assert2.default)(typeof number === "string", "number should be an actual number or string: " + (typeof number === "undefined" ? "undefined" : _typeof(number)));
|
|
35
|
-
number = number.trim();
|
|
36
|
-
(0, _assert2.default)(/^[0-9]*\.?[0-9]*$/.test(number), "Invalid decimal number " + number);
|
|
37
|
-
|
|
38
|
-
var _number$split = number.split("."),
|
|
39
|
-
_number$split2 = _slicedToArray(_number$split, 2),
|
|
40
|
-
_number$split2$ = _number$split2[0],
|
|
41
|
-
whole = _number$split2$ === undefined ? "" : _number$split2$,
|
|
42
|
-
_number$split2$2 = _number$split2[1],
|
|
43
|
-
decimal = _number$split2$2 === undefined ? "" : _number$split2$2;
|
|
44
|
-
|
|
45
|
-
var padding = precision - decimal.length;
|
|
46
|
-
(0, _assert2.default)(padding >= 0, "Too many decimal digits in " + number + " to create an implied decimal of " + precision);
|
|
47
|
-
|
|
48
|
-
for (var i = 0; i < padding; i++) {
|
|
49
|
-
decimal += "0";
|
|
50
|
-
}while (whole.charAt(0) === "0") {
|
|
51
|
-
whole = whole.substring(1);
|
|
52
|
-
}return whole + decimal;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function fromImpliedDecimal(number, precision) {
|
|
56
|
-
if (typeof number === "number") {
|
|
57
|
-
(0, _assert2.default)(number <= 9007199254740991, "overflow");
|
|
58
|
-
number = "" + number;
|
|
59
|
-
} else if (number.toString) number = number.toString();
|
|
60
|
-
|
|
61
|
-
while (number.length < precision + 1) {
|
|
62
|
-
// 0.123
|
|
63
|
-
number = "0" + number;
|
|
64
|
-
} // 44000 => 44.000
|
|
65
|
-
var dec_string = number.substring(number.length - precision);
|
|
66
|
-
return number.substring(0, number.length - precision) + (dec_string ? "." + dec_string : "");
|
|
67
|
-
}
|
|
@@ -1,68 +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 Long = require('bytebuffer').Long;
|
|
8
|
-
|
|
9
|
-
var v = require('./validation');
|
|
10
|
-
var DB_MAX_INSTANCE_ID = Long.fromNumber(Math.pow(2, 48) - 1);
|
|
11
|
-
|
|
12
|
-
var ObjectId = function () {
|
|
13
|
-
function ObjectId(space, type, instance) {
|
|
14
|
-
_classCallCheck(this, ObjectId);
|
|
15
|
-
|
|
16
|
-
this.space = space;
|
|
17
|
-
this.type = type;
|
|
18
|
-
this.instance = instance;
|
|
19
|
-
var instance_string = this.instance.toString();
|
|
20
|
-
var object_id = this.space + '.' + this.type + '.' + instance_string;
|
|
21
|
-
if (!v.is_digits(instance_string)) {
|
|
22
|
-
throw new ('Invalid object id ' + object_id)();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
_createClass(ObjectId, [{
|
|
27
|
-
key: 'toLong',
|
|
28
|
-
value: function toLong() {
|
|
29
|
-
return Long.fromNumber(this.space).shiftLeft(56).or(Long.fromNumber(this.type).shiftLeft(48).or(this.instance));
|
|
30
|
-
}
|
|
31
|
-
}, {
|
|
32
|
-
key: 'appendByteBuffer',
|
|
33
|
-
value: function appendByteBuffer(b) {
|
|
34
|
-
return b.writeUint64(this.toLong());
|
|
35
|
-
}
|
|
36
|
-
}, {
|
|
37
|
-
key: 'toString',
|
|
38
|
-
value: function toString() {
|
|
39
|
-
return this.space + '.' + this.type + '.' + this.instance.toString();
|
|
40
|
-
}
|
|
41
|
-
}], [{
|
|
42
|
-
key: 'fromString',
|
|
43
|
-
value: function fromString(value) {
|
|
44
|
-
if (value.space !== undefined && value.type !== undefined && value.instance !== undefined) {
|
|
45
|
-
return value;
|
|
46
|
-
}
|
|
47
|
-
var params = v.require_match(/^([0-9]+)\.([0-9]+)\.([0-9]+)$/, v.required(value, "object_id"), "object_id");
|
|
48
|
-
return new ObjectId(parseInt(params[1]), parseInt(params[2]), Long.fromString(params[3]));
|
|
49
|
-
}
|
|
50
|
-
}, {
|
|
51
|
-
key: 'fromLong',
|
|
52
|
-
value: function fromLong(long) {
|
|
53
|
-
var space = long.shiftRight(56).toInt();
|
|
54
|
-
var type = long.shiftRight(48).toInt() & 0x00ff;
|
|
55
|
-
var instance = long.and(DB_MAX_INSTANCE_ID);
|
|
56
|
-
return new ObjectId(space, type, instance);
|
|
57
|
-
}
|
|
58
|
-
}, {
|
|
59
|
-
key: 'fromByteBuffer',
|
|
60
|
-
value: function fromByteBuffer(b) {
|
|
61
|
-
return ObjectId.fromLong(b.readUint64());
|
|
62
|
-
}
|
|
63
|
-
}]);
|
|
64
|
-
|
|
65
|
-
return ObjectId;
|
|
66
|
-
}();
|
|
67
|
-
|
|
68
|
-
module.exports = ObjectId;
|