ripple-binary-codec 0.3.0-rc1 → 1.0.0-mpt-beta
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 +104 -2
- package/dist/binary.d.ts +90 -0
- package/dist/binary.js +128 -0
- package/dist/binary.js.map +1 -0
- package/dist/coretypes.d.ts +9 -0
- package/dist/coretypes.js +48 -0
- package/dist/coretypes.js.map +1 -0
- package/dist/enums/bytes.d.ts +25 -0
- package/dist/enums/bytes.js +63 -0
- package/dist/enums/bytes.js.map +1 -0
- package/dist/enums/constants.d.ts +4 -0
- package/dist/enums/constants.js +8 -0
- package/dist/enums/constants.js.map +1 -0
- package/dist/enums/definitions.json +2956 -0
- package/dist/enums/field.d.ts +28 -0
- package/dist/enums/field.js +58 -0
- package/dist/enums/field.js.map +1 -0
- package/dist/enums/index.d.ts +12 -0
- package/dist/enums/index.js +31 -0
- package/dist/enums/index.js.map +1 -0
- package/{distrib/npm → dist/enums/src}/enums/definitions.json +1709 -438
- package/dist/enums/utils-renumber.d.ts +101 -0
- package/dist/enums/utils-renumber.js +127 -0
- package/dist/enums/utils-renumber.js.map +1 -0
- package/dist/enums/xrpl-definitions-base.d.ts +44 -0
- package/dist/enums/xrpl-definitions-base.js +59 -0
- package/dist/enums/xrpl-definitions-base.js.map +1 -0
- package/dist/enums/xrpl-definitions.d.ts +21 -0
- package/dist/enums/xrpl-definitions.js +29 -0
- package/dist/enums/xrpl-definitions.js.map +1 -0
- package/dist/hash-prefixes.d.ts +5 -0
- package/dist/hash-prefixes.js +41 -0
- package/dist/hash-prefixes.js.map +1 -0
- package/dist/hashes.d.ts +50 -0
- package/dist/hashes.js +76 -0
- package/dist/hashes.js.map +1 -0
- package/dist/index.d.ts +64 -0
- package/dist/index.js +123 -0
- package/dist/index.js.map +1 -0
- package/dist/ledger-hashes.d.ts +48 -0
- package/dist/ledger-hashes.js +141 -0
- package/dist/ledger-hashes.js.map +1 -0
- package/dist/quality.d.ts +21 -0
- package/dist/quality.js +42 -0
- package/dist/quality.js.map +1 -0
- package/dist/serdes/binary-parser.d.ts +100 -0
- package/dist/serdes/binary-parser.js +194 -0
- package/dist/serdes/binary-parser.js.map +1 -0
- package/dist/serdes/binary-serializer.d.ts +81 -0
- package/dist/serdes/binary-serializer.js +149 -0
- package/dist/serdes/binary-serializer.js.map +1 -0
- package/dist/shamap.d.ts +102 -0
- package/dist/shamap.js +172 -0
- package/dist/shamap.js.map +1 -0
- package/dist/src/binary.d.ts +90 -0
- package/dist/src/binary.js +128 -0
- package/dist/src/binary.js.map +1 -0
- package/dist/src/coretypes.d.ts +9 -0
- package/dist/src/coretypes.js +48 -0
- package/dist/src/coretypes.js.map +1 -0
- package/dist/src/enums/bytes.d.ts +25 -0
- package/dist/src/enums/bytes.js +63 -0
- package/dist/src/enums/bytes.js.map +1 -0
- package/dist/src/enums/constants.d.ts +4 -0
- package/dist/src/enums/constants.js +8 -0
- package/dist/src/enums/constants.js.map +1 -0
- package/dist/src/enums/definitions.json +2956 -0
- package/dist/src/enums/field.d.ts +28 -0
- package/dist/src/enums/field.js +58 -0
- package/dist/src/enums/field.js.map +1 -0
- package/dist/src/enums/index.d.ts +12 -0
- package/dist/src/enums/index.js +31 -0
- package/dist/src/enums/index.js.map +1 -0
- package/dist/src/enums/utils-renumber.d.ts +101 -0
- package/dist/src/enums/utils-renumber.js +127 -0
- package/dist/src/enums/utils-renumber.js.map +1 -0
- package/dist/src/enums/xrpl-definitions-base.d.ts +44 -0
- package/dist/src/enums/xrpl-definitions-base.js +59 -0
- package/dist/src/enums/xrpl-definitions-base.js.map +1 -0
- package/dist/src/enums/xrpl-definitions.d.ts +21 -0
- package/dist/src/enums/xrpl-definitions.js +29 -0
- package/dist/src/enums/xrpl-definitions.js.map +1 -0
- package/dist/src/hash-prefixes.d.ts +5 -0
- package/dist/src/hash-prefixes.js +41 -0
- package/dist/src/hash-prefixes.js.map +1 -0
- package/dist/src/hashes.d.ts +50 -0
- package/dist/src/hashes.js +76 -0
- package/dist/src/hashes.js.map +1 -0
- package/dist/src/index.d.ts +64 -0
- package/dist/src/index.js +123 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/ledger-hashes.d.ts +48 -0
- package/dist/src/ledger-hashes.js +141 -0
- package/dist/src/ledger-hashes.js.map +1 -0
- package/dist/src/quality.d.ts +21 -0
- package/dist/src/quality.js +42 -0
- package/dist/src/quality.js.map +1 -0
- package/dist/src/serdes/binary-parser.d.ts +100 -0
- package/dist/src/serdes/binary-parser.js +194 -0
- package/dist/src/serdes/binary-parser.js.map +1 -0
- package/dist/src/serdes/binary-serializer.d.ts +81 -0
- package/dist/src/serdes/binary-serializer.js +149 -0
- package/dist/src/serdes/binary-serializer.js.map +1 -0
- package/dist/src/shamap.d.ts +102 -0
- package/dist/src/shamap.js +172 -0
- package/dist/src/shamap.js.map +1 -0
- package/dist/src/types/account-id.d.ts +35 -0
- package/dist/src/types/account-id.js +69 -0
- package/dist/src/types/account-id.js.map +1 -0
- package/dist/src/types/amount.d.ts +91 -0
- package/dist/src/types/amount.js +289 -0
- package/dist/src/types/amount.js.map +1 -0
- package/dist/src/types/blob.d.ts +24 -0
- package/dist/src/types/blob.js +40 -0
- package/dist/src/types/blob.js.map +1 -0
- package/dist/src/types/currency.d.ts +28 -0
- package/dist/src/types/currency.js +127 -0
- package/dist/src/types/currency.js.map +1 -0
- package/dist/src/types/hash-128.d.ts +16 -0
- package/dist/src/types/hash-128.js +32 -0
- package/dist/src/types/hash-128.js.map +1 -0
- package/dist/src/types/hash-160.d.ts +10 -0
- package/dist/src/types/hash-160.js +19 -0
- package/dist/src/types/hash-160.js.map +1 -0
- package/dist/src/types/hash-192.d.ts +10 -0
- package/dist/src/types/hash-192.js +19 -0
- package/dist/src/types/hash-192.js.map +1 -0
- package/dist/src/types/hash-256.d.ts +10 -0
- package/dist/src/types/hash-256.js +16 -0
- package/dist/src/types/hash-256.js.map +1 -0
- package/dist/src/types/hash.d.ts +40 -0
- package/dist/src/types/hash.js +73 -0
- package/dist/src/types/hash.js.map +1 -0
- package/dist/src/types/index.d.ts +19 -0
- package/dist/src/types/index.js +64 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/issue.d.ts +38 -0
- package/dist/src/types/issue.js +81 -0
- package/dist/src/types/issue.js.map +1 -0
- package/dist/src/types/path-set.d.ts +36 -0
- package/dist/src/types/path-set.js +233 -0
- package/dist/src/types/path-set.js.map +1 -0
- package/dist/src/types/serialized-type.d.ts +70 -0
- package/dist/src/types/serialized-type.js +105 -0
- package/dist/src/types/serialized-type.js.map +1 -0
- package/dist/src/types/st-array.d.ts +31 -0
- package/dist/src/types/st-array.js +83 -0
- package/dist/src/types/st-array.js.map +1 -0
- package/dist/src/types/st-object.d.ts +32 -0
- package/dist/src/types/st-object.js +155 -0
- package/dist/src/types/st-object.js.map +1 -0
- package/dist/src/types/uint-16.d.ts +24 -0
- package/dist/src/types/uint-16.js +45 -0
- package/dist/src/types/uint-16.js.map +1 -0
- package/dist/src/types/uint-32.d.ts +24 -0
- package/dist/src/types/uint-32.js +50 -0
- package/dist/src/types/uint-32.js.map +1 -0
- package/dist/src/types/uint-64.d.ts +37 -0
- package/dist/src/types/uint-64.js +86 -0
- package/dist/src/types/uint-64.js.map +1 -0
- package/dist/src/types/uint-8.d.ts +24 -0
- package/dist/src/types/uint-8.js +46 -0
- package/dist/src/types/uint-8.js.map +1 -0
- package/dist/src/types/uint.d.ts +29 -0
- package/dist/src/types/uint.js +47 -0
- package/dist/src/types/uint.js.map +1 -0
- package/dist/src/types/vector-256.d.ts +30 -0
- package/dist/src/types/vector-256.js +73 -0
- package/dist/src/types/vector-256.js.map +1 -0
- package/dist/src/types/xchain-bridge.d.ts +44 -0
- package/dist/src/types/xchain-bridge.js +102 -0
- package/dist/src/types/xchain-bridge.js.map +1 -0
- package/dist/src/utils.d.ts +47 -0
- package/dist/src/utils.js +137 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/account-id.d.ts +35 -0
- package/dist/types/account-id.js +69 -0
- package/dist/types/account-id.js.map +1 -0
- package/dist/types/amount.d.ts +91 -0
- package/dist/types/amount.js +289 -0
- package/dist/types/amount.js.map +1 -0
- package/dist/types/blob.d.ts +24 -0
- package/dist/types/blob.js +40 -0
- package/dist/types/blob.js.map +1 -0
- package/dist/types/currency.d.ts +28 -0
- package/dist/types/currency.js +127 -0
- package/dist/types/currency.js.map +1 -0
- package/dist/types/hash-128.d.ts +16 -0
- package/dist/types/hash-128.js +32 -0
- package/dist/types/hash-128.js.map +1 -0
- package/dist/types/hash-160.d.ts +10 -0
- package/dist/types/hash-160.js +19 -0
- package/dist/types/hash-160.js.map +1 -0
- package/dist/types/hash-192.d.ts +10 -0
- package/dist/types/hash-192.js +19 -0
- package/dist/types/hash-192.js.map +1 -0
- package/dist/types/hash-256.d.ts +10 -0
- package/dist/types/hash-256.js +16 -0
- package/dist/types/hash-256.js.map +1 -0
- package/dist/types/hash.d.ts +40 -0
- package/dist/types/hash.js +73 -0
- package/dist/types/hash.js.map +1 -0
- package/dist/types/index.d.ts +19 -0
- package/dist/types/index.js +64 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/issue.d.ts +38 -0
- package/dist/types/issue.js +81 -0
- package/dist/types/issue.js.map +1 -0
- package/dist/types/path-set.d.ts +36 -0
- package/dist/types/path-set.js +233 -0
- package/dist/types/path-set.js.map +1 -0
- package/dist/types/serialized-type.d.ts +70 -0
- package/dist/types/serialized-type.js +105 -0
- package/dist/types/serialized-type.js.map +1 -0
- package/dist/types/st-array.d.ts +31 -0
- package/dist/types/st-array.js +83 -0
- package/dist/types/st-array.js.map +1 -0
- package/dist/types/st-object.d.ts +32 -0
- package/dist/types/st-object.js +155 -0
- package/dist/types/st-object.js.map +1 -0
- package/dist/types/uint-16.d.ts +24 -0
- package/dist/types/uint-16.js +45 -0
- package/dist/types/uint-16.js.map +1 -0
- package/dist/types/uint-32.d.ts +24 -0
- package/dist/types/uint-32.js +50 -0
- package/dist/types/uint-32.js.map +1 -0
- package/dist/types/uint-64.d.ts +37 -0
- package/dist/types/uint-64.js +86 -0
- package/dist/types/uint-64.js.map +1 -0
- package/dist/types/uint-8.d.ts +24 -0
- package/dist/types/uint-8.js +46 -0
- package/dist/types/uint-8.js.map +1 -0
- package/dist/types/uint.d.ts +29 -0
- package/dist/types/uint.js +47 -0
- package/dist/types/uint.js.map +1 -0
- package/dist/types/vector-256.d.ts +30 -0
- package/dist/types/vector-256.js +73 -0
- package/dist/types/vector-256.js.map +1 -0
- package/dist/types/xchain-bridge.d.ts +44 -0
- package/dist/types/xchain-bridge.js +102 -0
- package/dist/types/xchain-bridge.js.map +1 -0
- package/dist/utils.d.ts +47 -0
- package/dist/utils.js +137 -0
- package/dist/utils.js.map +1 -0
- package/package.json +28 -33
- package/src/README.md +5 -0
- package/src/binary.ts +194 -0
- package/src/coretypes.ts +31 -0
- package/src/enums/README.md +144 -0
- package/src/enums/bytes.ts +74 -0
- package/src/enums/constants.ts +4 -0
- package/src/enums/definitions.json +2961 -0
- package/src/enums/field.ts +84 -0
- package/src/enums/index.ts +34 -0
- package/src/enums/utils-renumber.ts +134 -0
- package/src/enums/xrpl-definitions-base.ts +111 -0
- package/src/enums/xrpl-definitions.ts +32 -0
- package/src/hash-prefixes.ts +40 -0
- package/src/hashes.ts +75 -0
- package/src/index.ts +153 -0
- package/src/ledger-hashes.ts +191 -0
- package/src/quality.ts +38 -0
- package/src/serdes/binary-parser.ts +224 -0
- package/src/serdes/binary-serializer.ts +166 -0
- package/src/shamap.ts +186 -0
- package/src/types/account-id.ts +86 -0
- package/src/types/amount.ts +362 -0
- package/src/types/blob.ts +43 -0
- package/src/types/currency.ts +140 -0
- package/src/types/hash-128.ts +33 -0
- package/src/types/hash-160.ts +19 -0
- package/src/types/hash-192.ts +19 -0
- package/src/types/hash-256.ts +15 -0
- package/src/types/hash.ts +83 -0
- package/src/types/index.ts +66 -0
- package/src/types/issue.ts +96 -0
- package/src/types/path-set.ts +290 -0
- package/src/types/serialized-type.ts +122 -0
- package/src/types/st-array.ts +107 -0
- package/src/types/st-object.ts +192 -0
- package/src/types/uint-16.ts +53 -0
- package/src/types/uint-32.ts +59 -0
- package/src/types/uint-64.ts +104 -0
- package/src/types/uint-8.ts +52 -0
- package/src/types/uint.ts +60 -0
- package/src/types/vector-256.ts +79 -0
- package/src/types/xchain-bridge.ts +128 -0
- package/src/utils.ts +152 -0
- package/HISTORY.md +0 -44
- package/distrib/npm/binary.js +0 -68
- package/distrib/npm/coretypes.js +0 -22
- package/distrib/npm/enums/index.js +0 -125
- package/distrib/npm/enums/utils-renumber.js +0 -134
- package/distrib/npm/hash-prefixes.js +0 -30
- package/distrib/npm/hashes.js +0 -42
- package/distrib/npm/index.js +0 -72
- package/distrib/npm/ledger-hashes.js +0 -71
- package/distrib/npm/quality.js +0 -20
- package/distrib/npm/serdes/binary-parser.js +0 -98
- package/distrib/npm/serdes/binary-serializer.js +0 -106
- package/distrib/npm/shamap.js +0 -107
- package/distrib/npm/signing.js +0 -66
- package/distrib/npm/types/account-id.js +0 -41
- package/distrib/npm/types/amount.js +0 -215
- package/distrib/npm/types/blob.js +0 -28
- package/distrib/npm/types/currency.js +0 -91
- package/distrib/npm/types/hash-128.js +0 -10
- package/distrib/npm/types/hash-160.js +0 -10
- package/distrib/npm/types/hash-256.js +0 -15
- package/distrib/npm/types/hash.js +0 -45
- package/distrib/npm/types/index.js +0 -45
- package/distrib/npm/types/path-set.js +0 -112
- package/distrib/npm/types/serialized-type.js +0 -63
- package/distrib/npm/types/st-array.js +0 -37
- package/distrib/npm/types/st-object.js +0 -65
- package/distrib/npm/types/uint-16.js +0 -10
- package/distrib/npm/types/uint-32.js +0 -10
- package/distrib/npm/types/uint-64.js +0 -49
- package/distrib/npm/types/uint-8.js +0 -10
- package/distrib/npm/types/uint.js +0 -60
- package/distrib/npm/types/vector-256.js +0 -31
- package/distrib/npm/utils/bytes-utils.js +0 -112
- package/distrib/npm/utils/make-class.js +0 -83
- package/test/amount-test.js +0 -43
- package/test/binary-json-test.js +0 -43
- package/test/binary-parser-test.js +0 -341
- package/test/binary-serializer-test.js +0 -194
- package/test/bytes-utils-test.js +0 -72
- package/test/fixtures/account-tx-transactions.db +0 -0
- package/test/fixtures/codec-fixtures.json +0 -4466
- package/test/fixtures/data-driven-tests.json +0 -3721
- package/test/fixtures/delivermin-tx-binary.json +0 -1
- package/test/fixtures/delivermin-tx.json +0 -98
- package/test/fixtures/deposit-preauth-tx-binary.json +0 -1
- package/test/fixtures/deposit-preauth-tx-meta-binary.json +0 -1
- package/test/fixtures/deposit-preauth-tx.json +0 -58
- package/test/fixtures/escrow-cancel-binary.json +0 -1
- package/test/fixtures/escrow-cancel-tx.json +0 -6
- package/test/fixtures/escrow-create-binary.json +0 -1
- package/test/fixtures/escrow-create-tx.json +0 -10
- package/test/fixtures/escrow-finish-binary.json +0 -1
- package/test/fixtures/escrow-finish-meta-binary.json +0 -1
- package/test/fixtures/escrow-finish-tx.json +0 -95
- package/test/fixtures/ledger-full-38129.json +0 -1
- package/test/fixtures/ledger-full-40000.json +0 -1
- package/test/fixtures/payment-channel-claim-binary.json +0 -1
- package/test/fixtures/payment-channel-claim-tx.json +0 -8
- package/test/fixtures/payment-channel-create-binary.json +0 -1
- package/test/fixtures/payment-channel-create-tx.json +0 -11
- package/test/fixtures/payment-channel-fund-binary.json +0 -1
- package/test/fixtures/payment-channel-fund-tx.json +0 -7
- package/test/fixtures/signerlistset-tx-binary.json +0 -1
- package/test/fixtures/signerlistset-tx-meta-binary.json +0 -1
- package/test/fixtures/signerlistset-tx.json +0 -94
- package/test/hash-test.js +0 -58
- package/test/ledger-test.js +0 -26
- package/test/mocha.opts +0 -1
- package/test/quality-test.js +0 -16
- package/test/shamap-test.js +0 -88
- package/test/signing-data-encoding-test.js +0 -120
- package/test/tx-encode-decode-test.js +0 -124
- package/test/types-test.js +0 -38
- package/test/uint-test.js +0 -38
- package/test/utils.js +0 -93
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
'use strict';var _ = require('lodash');
|
|
2
|
-
var makeClass = require('../utils/make-class');var _require =
|
|
3
|
-
require('../utils/bytes-utils'),slice = _require.slice;var _require2 =
|
|
4
|
-
require('./hash-160'),Hash160 = _require2.Hash160;
|
|
5
|
-
var ISO_REGEX = /^[A-Z0-9]{3}$/;
|
|
6
|
-
var HEX_REGEX = /^[A-F0-9]{40}$/;
|
|
7
|
-
|
|
8
|
-
function isoToBytes(iso) {
|
|
9
|
-
var bytes = new Uint8Array(20);
|
|
10
|
-
if (iso !== 'XRP') {
|
|
11
|
-
var isoBytes = iso.split('').map(function (c) {return c.charCodeAt(0);});
|
|
12
|
-
bytes.set(isoBytes, 12);
|
|
13
|
-
}
|
|
14
|
-
return bytes;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function isISOCode(val) {
|
|
18
|
-
return val.length === 3; // ISO_REGEX.test(val);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function isHex(val) {
|
|
22
|
-
return HEX_REGEX.test(val);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function isStringRepr(val) {
|
|
26
|
-
return _.isString(val) && (isISOCode(val) || isHex(val));
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function isBytesArray(val) {
|
|
30
|
-
return val.length === 20;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function isValidRepr(val) {
|
|
34
|
-
return isStringRepr(val) || isBytesArray(val);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function bytesFromRepr(val) {
|
|
38
|
-
if (isValidRepr(val)) {
|
|
39
|
-
// We assume at this point that we have an object with a length, either 3,
|
|
40
|
-
// 20 or 40.
|
|
41
|
-
return val.length === 3 ? isoToBytes(val) : val;
|
|
42
|
-
}
|
|
43
|
-
throw new Error('Unsupported Currency repr: ' + val);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
var $uper = Hash160.prototype;
|
|
47
|
-
var Currency = makeClass({
|
|
48
|
-
inherits: Hash160,
|
|
49
|
-
getters: ['isNative', 'iso'],
|
|
50
|
-
statics: {
|
|
51
|
-
init: function init() {
|
|
52
|
-
this.XRP = new this(new Uint8Array(20));
|
|
53
|
-
},
|
|
54
|
-
from: function from(val) {
|
|
55
|
-
return val instanceof this ? val : new this(bytesFromRepr(val));
|
|
56
|
-
} },
|
|
57
|
-
|
|
58
|
-
Currency: function Currency(bytes) {
|
|
59
|
-
Hash160.call(this, bytes);
|
|
60
|
-
this.classify();
|
|
61
|
-
},
|
|
62
|
-
classify: function classify() {
|
|
63
|
-
// We only have a non null iso() property available if the currency can be
|
|
64
|
-
// losslessly represented by the 3 letter iso code. If none is available a
|
|
65
|
-
// hex encoding of the full 20 bytes is the canonical representation.
|
|
66
|
-
var onlyISO = true;
|
|
67
|
-
|
|
68
|
-
var bytes = this._bytes;
|
|
69
|
-
var code = slice(this._bytes, 12, 15, Array);
|
|
70
|
-
var iso = code.map(function (c) {return String.fromCharCode(c);}).join('');
|
|
71
|
-
|
|
72
|
-
for (var i = bytes.length - 1; i >= 0; i--) {
|
|
73
|
-
if (bytes[i] !== 0 && !(i === 12 || i === 13 || i === 14)) {
|
|
74
|
-
onlyISO = false;
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
var lossLessISO = onlyISO && iso !== 'XRP' && ISO_REGEX.test(iso);
|
|
79
|
-
this._isNative = onlyISO && _.isEqual(code, [0, 0, 0]);
|
|
80
|
-
this._iso = this._isNative ? 'XRP' : lossLessISO ? iso : null;
|
|
81
|
-
},
|
|
82
|
-
toJSON: function toJSON() {
|
|
83
|
-
if (this.iso()) {
|
|
84
|
-
return this.iso();
|
|
85
|
-
}
|
|
86
|
-
return $uper.toJSON.call(this);
|
|
87
|
-
} });
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
module.exports = {
|
|
91
|
-
Currency: Currency };
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
'use strict';var makeClass = require('../utils/make-class');var _require =
|
|
2
|
-
require('./hash'),Hash = _require.Hash;
|
|
3
|
-
|
|
4
|
-
var Hash256 = makeClass({
|
|
5
|
-
inherits: Hash,
|
|
6
|
-
statics: {
|
|
7
|
-
width: 32,
|
|
8
|
-
init: function init() {
|
|
9
|
-
this.ZERO_256 = new this(new Uint8Array(this.width));
|
|
10
|
-
} } });
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
module.exports = {
|
|
15
|
-
Hash256: Hash256 };
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
'use strict';var assert = require('assert');
|
|
2
|
-
var makeClass = require('../utils/make-class');var _require =
|
|
3
|
-
require('./serialized-type'),Comparable = _require.Comparable,SerializedType = _require.SerializedType;var _require2 =
|
|
4
|
-
require('../utils/bytes-utils'),compareBytes = _require2.compareBytes,parseBytes = _require2.parseBytes;
|
|
5
|
-
|
|
6
|
-
var Hash = makeClass({
|
|
7
|
-
Hash: function Hash(bytes) {
|
|
8
|
-
var width = this.constructor.width;
|
|
9
|
-
this._bytes = bytes ? parseBytes(bytes, Uint8Array) :
|
|
10
|
-
new Uint8Array(width);
|
|
11
|
-
assert.equal(this._bytes.length, width);
|
|
12
|
-
},
|
|
13
|
-
mixins: [Comparable, SerializedType],
|
|
14
|
-
statics: {
|
|
15
|
-
width: NaN,
|
|
16
|
-
from: function from(value) {
|
|
17
|
-
if (value instanceof this) {
|
|
18
|
-
return value;
|
|
19
|
-
}
|
|
20
|
-
return new this(parseBytes(value));
|
|
21
|
-
},
|
|
22
|
-
fromParser: function fromParser(parser, hint) {
|
|
23
|
-
return new this(parser.read(hint || this.width));
|
|
24
|
-
} },
|
|
25
|
-
|
|
26
|
-
compareTo: function compareTo(other) {
|
|
27
|
-
return compareBytes(this._bytes, this.constructor.from(other)._bytes);
|
|
28
|
-
},
|
|
29
|
-
toString: function toString() {
|
|
30
|
-
return this.toHex();
|
|
31
|
-
},
|
|
32
|
-
nibblet: function nibblet(depth) {
|
|
33
|
-
var byte_ix = depth > 0 ? depth / 2 | 0 : 0;
|
|
34
|
-
var b = this._bytes[byte_ix];
|
|
35
|
-
if (depth % 2 === 0) {
|
|
36
|
-
b = (b & 0xF0) >>> 4;
|
|
37
|
-
} else {
|
|
38
|
-
b = b & 0x0F;
|
|
39
|
-
}
|
|
40
|
-
return b;
|
|
41
|
-
} });
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
module.exports = {
|
|
45
|
-
Hash: Hash };
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
'use strict';var enums = require('../enums');var
|
|
2
|
-
Field = enums.Field;var _require =
|
|
3
|
-
require('./account-id'),AccountID = _require.AccountID;var _require2 =
|
|
4
|
-
require('./amount'),Amount = _require2.Amount;var _require3 =
|
|
5
|
-
require('./blob'),Blob = _require3.Blob;var _require4 =
|
|
6
|
-
require('./currency'),Currency = _require4.Currency;var _require5 =
|
|
7
|
-
require('./hash-128'),Hash128 = _require5.Hash128;var _require6 =
|
|
8
|
-
require('./hash-160'),Hash160 = _require6.Hash160;var _require7 =
|
|
9
|
-
require('./hash-256'),Hash256 = _require7.Hash256;var _require8 =
|
|
10
|
-
require('./path-set'),PathSet = _require8.PathSet;var _require9 =
|
|
11
|
-
require('./st-array'),STArray = _require9.STArray;var _require10 =
|
|
12
|
-
require('./st-object'),STObject = _require10.STObject;var _require11 =
|
|
13
|
-
require('./uint-16'),UInt16 = _require11.UInt16;var _require12 =
|
|
14
|
-
require('./uint-32'),UInt32 = _require12.UInt32;var _require13 =
|
|
15
|
-
require('./uint-64'),UInt64 = _require13.UInt64;var _require14 =
|
|
16
|
-
require('./uint-8'),UInt8 = _require14.UInt8;var _require15 =
|
|
17
|
-
require('./vector-256'),Vector256 = _require15.Vector256;
|
|
18
|
-
|
|
19
|
-
var coreTypes = {
|
|
20
|
-
AccountID: AccountID,
|
|
21
|
-
Amount: Amount,
|
|
22
|
-
Blob: Blob,
|
|
23
|
-
Currency: Currency,
|
|
24
|
-
Hash128: Hash128,
|
|
25
|
-
Hash160: Hash160,
|
|
26
|
-
Hash256: Hash256,
|
|
27
|
-
PathSet: PathSet,
|
|
28
|
-
STArray: STArray,
|
|
29
|
-
STObject: STObject,
|
|
30
|
-
UInt8: UInt8,
|
|
31
|
-
UInt16: UInt16,
|
|
32
|
-
UInt32: UInt32,
|
|
33
|
-
UInt64: UInt64,
|
|
34
|
-
Vector256: Vector256 };
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
Field.values.forEach(function (field) {
|
|
38
|
-
field.associatedType = coreTypes[field.type];
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
Field.TransactionType.associatedType = enums.TransactionType;
|
|
42
|
-
Field.TransactionResult.associatedType = enums.TransactionResult;
|
|
43
|
-
Field.LedgerEntryType.associatedType = enums.LedgerEntryType;
|
|
44
|
-
|
|
45
|
-
module.exports = coreTypes;
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
'use strict'; /* eslint-disable no-unused-expressions */
|
|
2
|
-
|
|
3
|
-
var makeClass = require('../utils/make-class');var _require =
|
|
4
|
-
require('./serialized-type'),SerializedType = _require.SerializedType,ensureArrayLikeIs = _require.ensureArrayLikeIs;var _require2 =
|
|
5
|
-
require('./currency'),Currency = _require2.Currency;var _require3 =
|
|
6
|
-
require('./account-id'),AccountID = _require3.AccountID;
|
|
7
|
-
|
|
8
|
-
var PATHSET_END_BYTE = 0x00;
|
|
9
|
-
var PATH_SEPARATOR_BYTE = 0xFF;
|
|
10
|
-
var TYPE_ACCOUNT = 0x01;
|
|
11
|
-
var TYPE_CURRENCY = 0x10;
|
|
12
|
-
var TYPE_ISSUER = 0x20;
|
|
13
|
-
|
|
14
|
-
var Hop = makeClass({
|
|
15
|
-
statics: {
|
|
16
|
-
from: function from(value) {
|
|
17
|
-
if (value instanceof this) {
|
|
18
|
-
return value;
|
|
19
|
-
}
|
|
20
|
-
var hop = new Hop();
|
|
21
|
-
value.issuer && (hop.issuer = AccountID.from(value.issuer));
|
|
22
|
-
value.account && (hop.account = AccountID.from(value.account));
|
|
23
|
-
value.currency && (hop.currency = Currency.from(value.currency));
|
|
24
|
-
return hop;
|
|
25
|
-
},
|
|
26
|
-
parse: function parse(parser, type) {
|
|
27
|
-
var hop = new Hop();
|
|
28
|
-
type & TYPE_ACCOUNT && (hop.account = AccountID.fromParser(parser));
|
|
29
|
-
type & TYPE_CURRENCY && (hop.currency = Currency.fromParser(parser));
|
|
30
|
-
type & TYPE_ISSUER && (hop.issuer = AccountID.fromParser(parser));
|
|
31
|
-
return hop;
|
|
32
|
-
} },
|
|
33
|
-
|
|
34
|
-
toJSON: function toJSON() {
|
|
35
|
-
var type = this.type();
|
|
36
|
-
var ret = {};
|
|
37
|
-
type & TYPE_ACCOUNT && (ret.account = this.account.toJSON());
|
|
38
|
-
type & TYPE_ISSUER && (ret.issuer = this.issuer.toJSON());
|
|
39
|
-
type & TYPE_CURRENCY && (ret.currency = this.currency.toJSON());
|
|
40
|
-
return ret;
|
|
41
|
-
},
|
|
42
|
-
type: function type() {
|
|
43
|
-
var type = 0;
|
|
44
|
-
this.issuer && (type += TYPE_ISSUER);
|
|
45
|
-
this.account && (type += TYPE_ACCOUNT);
|
|
46
|
-
this.currency && (type += TYPE_CURRENCY);
|
|
47
|
-
return type;
|
|
48
|
-
} });
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
var Path = makeClass({
|
|
52
|
-
inherits: Array,
|
|
53
|
-
statics: {
|
|
54
|
-
from: function from(value) {
|
|
55
|
-
return ensureArrayLikeIs(Path, value).withChildren(Hop);
|
|
56
|
-
} },
|
|
57
|
-
|
|
58
|
-
toJSON: function toJSON() {
|
|
59
|
-
return this.map(function (k) {return k.toJSON();});
|
|
60
|
-
} });
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
var PathSet = makeClass({
|
|
64
|
-
mixins: SerializedType,
|
|
65
|
-
inherits: Array,
|
|
66
|
-
statics: {
|
|
67
|
-
from: function from(value) {
|
|
68
|
-
return ensureArrayLikeIs(PathSet, value).withChildren(Path);
|
|
69
|
-
},
|
|
70
|
-
fromParser: function fromParser(parser) {
|
|
71
|
-
var pathSet = new this();
|
|
72
|
-
var path = void 0;
|
|
73
|
-
while (!parser.end()) {
|
|
74
|
-
var type = parser.readUInt8();
|
|
75
|
-
if (type === PATHSET_END_BYTE) {
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
78
|
-
if (type === PATH_SEPARATOR_BYTE) {
|
|
79
|
-
path = null;
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
if (!path) {
|
|
83
|
-
path = new Path();
|
|
84
|
-
pathSet.push(path);
|
|
85
|
-
}
|
|
86
|
-
path.push(Hop.parse(parser, type));
|
|
87
|
-
}
|
|
88
|
-
return pathSet;
|
|
89
|
-
} },
|
|
90
|
-
|
|
91
|
-
toJSON: function toJSON() {
|
|
92
|
-
return this.map(function (k) {return k.toJSON();});
|
|
93
|
-
},
|
|
94
|
-
toBytesSink: function toBytesSink(sink) {
|
|
95
|
-
var n = 0;
|
|
96
|
-
this.forEach(function (path) {
|
|
97
|
-
if (n++ !== 0) {
|
|
98
|
-
sink.put([PATH_SEPARATOR_BYTE]);
|
|
99
|
-
}
|
|
100
|
-
path.forEach(function (hop) {
|
|
101
|
-
sink.put([hop.type()]);
|
|
102
|
-
hop.account && hop.account.toBytesSink(sink);
|
|
103
|
-
hop.currency && hop.currency.toBytesSink(sink);
|
|
104
|
-
hop.issuer && hop.issuer.toBytesSink(sink);
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
sink.put([PATHSET_END_BYTE]);
|
|
108
|
-
} });
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
module.exports = {
|
|
112
|
-
PathSet: PathSet };
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
'use strict';var _require = require('../utils/bytes-utils'),bytesToHex = _require.bytesToHex,slice = _require.slice;var _require2 =
|
|
2
|
-
require('../serdes/binary-serializer'),BytesList = _require2.BytesList;
|
|
3
|
-
|
|
4
|
-
var Comparable = {
|
|
5
|
-
lt: function lt(other) {
|
|
6
|
-
return this.compareTo(other) < 0;
|
|
7
|
-
},
|
|
8
|
-
eq: function eq(other) {
|
|
9
|
-
return this.compareTo(other) === 0;
|
|
10
|
-
},
|
|
11
|
-
gt: function gt(other) {
|
|
12
|
-
return this.compareTo(other) > 0;
|
|
13
|
-
},
|
|
14
|
-
gte: function gte(other) {
|
|
15
|
-
return this.compareTo(other) > -1;
|
|
16
|
-
},
|
|
17
|
-
lte: function lte(other) {
|
|
18
|
-
return this.compareTo(other) < 1;
|
|
19
|
-
} };
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
var SerializedType = {
|
|
23
|
-
toBytesSink: function toBytesSink(sink) {
|
|
24
|
-
sink.put(this._bytes);
|
|
25
|
-
},
|
|
26
|
-
toHex: function toHex() {
|
|
27
|
-
return bytesToHex(this.toBytes());
|
|
28
|
-
},
|
|
29
|
-
toBytes: function toBytes() {
|
|
30
|
-
if (this._bytes) {
|
|
31
|
-
return slice(this._bytes);
|
|
32
|
-
}
|
|
33
|
-
var bl = new BytesList();
|
|
34
|
-
this.toBytesSink(bl);
|
|
35
|
-
return bl.toBytes();
|
|
36
|
-
},
|
|
37
|
-
toJSON: function toJSON() {
|
|
38
|
-
return this.toHex();
|
|
39
|
-
},
|
|
40
|
-
toString: function toString() {
|
|
41
|
-
return this.toHex();
|
|
42
|
-
} };
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
function ensureArrayLikeIs(Type, arrayLike) {
|
|
46
|
-
return {
|
|
47
|
-
withChildren: function withChildren(Child) {
|
|
48
|
-
if (arrayLike instanceof Type) {
|
|
49
|
-
return arrayLike;
|
|
50
|
-
}
|
|
51
|
-
var obj = new Type();
|
|
52
|
-
for (var i = 0; i < arrayLike.length; i++) {
|
|
53
|
-
obj.push(Child.from(arrayLike[i]));
|
|
54
|
-
}
|
|
55
|
-
return obj;
|
|
56
|
-
} };
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
module.exports = {
|
|
61
|
-
ensureArrayLikeIs: ensureArrayLikeIs,
|
|
62
|
-
SerializedType: SerializedType,
|
|
63
|
-
Comparable: Comparable };
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
'use strict';var makeClass = require('../utils/make-class');var _require =
|
|
2
|
-
require('./serialized-type'),ensureArrayLikeIs = _require.ensureArrayLikeIs,SerializedType = _require.SerializedType;var _require2 =
|
|
3
|
-
require('../enums'),Field = _require2.Field;var _require3 =
|
|
4
|
-
require('./st-object'),STObject = _require3.STObject;var
|
|
5
|
-
ArrayEndMarker = Field.ArrayEndMarker;
|
|
6
|
-
|
|
7
|
-
var STArray = makeClass({
|
|
8
|
-
mixins: SerializedType,
|
|
9
|
-
inherits: Array,
|
|
10
|
-
statics: {
|
|
11
|
-
fromParser: function fromParser(parser) {
|
|
12
|
-
var array = new STArray();
|
|
13
|
-
while (!parser.end()) {
|
|
14
|
-
var field = parser.readField();
|
|
15
|
-
if (field === ArrayEndMarker) {
|
|
16
|
-
break;
|
|
17
|
-
}
|
|
18
|
-
var outer = new STObject();
|
|
19
|
-
outer[field] = parser.readFieldValue(field);
|
|
20
|
-
array.push(outer);
|
|
21
|
-
}
|
|
22
|
-
return array;
|
|
23
|
-
},
|
|
24
|
-
from: function from(value) {
|
|
25
|
-
return ensureArrayLikeIs(STArray, value).withChildren(STObject);
|
|
26
|
-
} },
|
|
27
|
-
|
|
28
|
-
toJSON: function toJSON() {
|
|
29
|
-
return this.map(function (v) {return v.toJSON();});
|
|
30
|
-
},
|
|
31
|
-
toBytesSink: function toBytesSink(sink) {
|
|
32
|
-
this.forEach(function (so) {return so.toBytesSink(sink);});
|
|
33
|
-
} });
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
module.exports = {
|
|
37
|
-
STArray: STArray };
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
'use strict';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;};var _ = require('lodash');
|
|
2
|
-
var makeClass = require('../utils/make-class');var _require =
|
|
3
|
-
require('../enums'),Field = _require.Field;var _require2 =
|
|
4
|
-
require('../serdes/binary-serializer'),BinarySerializer = _require2.BinarySerializer;var
|
|
5
|
-
ObjectEndMarker = Field.ObjectEndMarker;var _require3 =
|
|
6
|
-
require('./serialized-type'),SerializedType = _require3.SerializedType;
|
|
7
|
-
|
|
8
|
-
var STObject = makeClass({
|
|
9
|
-
mixins: SerializedType,
|
|
10
|
-
statics: {
|
|
11
|
-
fromParser: function fromParser(parser, hint) {
|
|
12
|
-
var end = typeof hint === 'number' ? parser.pos() + hint : null;
|
|
13
|
-
var so = new this();
|
|
14
|
-
while (!parser.end(end)) {
|
|
15
|
-
var field = parser.readField();
|
|
16
|
-
if (field === ObjectEndMarker) {
|
|
17
|
-
break;
|
|
18
|
-
}
|
|
19
|
-
so[field] = parser.readFieldValue(field);
|
|
20
|
-
}
|
|
21
|
-
return so;
|
|
22
|
-
},
|
|
23
|
-
from: function from(value) {
|
|
24
|
-
if (value instanceof this) {
|
|
25
|
-
return value;
|
|
26
|
-
}
|
|
27
|
-
if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {
|
|
28
|
-
return _.transform(value, function (so, val, key) {
|
|
29
|
-
var field = Field[key];
|
|
30
|
-
if (field) {
|
|
31
|
-
so[field] = field.associatedType.from(val);
|
|
32
|
-
} else {
|
|
33
|
-
so[key] = val;
|
|
34
|
-
}
|
|
35
|
-
}, new this());
|
|
36
|
-
}
|
|
37
|
-
throw new Error(value + ' is unsupported');
|
|
38
|
-
} },
|
|
39
|
-
|
|
40
|
-
fieldKeys: function fieldKeys() {
|
|
41
|
-
return Object.keys(this).map(function (k) {return Field[k];}).filter(Boolean);
|
|
42
|
-
},
|
|
43
|
-
toJSON: function toJSON() {
|
|
44
|
-
// Otherwise seemingly result will have same prototype as `this`
|
|
45
|
-
var accumulator = {}; // of only `own` properties
|
|
46
|
-
return _.transform(this, function (result, value, key) {
|
|
47
|
-
result[key] = value && value.toJSON ? value.toJSON() : value;
|
|
48
|
-
}, accumulator);
|
|
49
|
-
},
|
|
50
|
-
toBytesSink: function toBytesSink(sink) {var _this = this;var filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {return true;};
|
|
51
|
-
var serializer = new BinarySerializer(sink);
|
|
52
|
-
var fields = this.fieldKeys();
|
|
53
|
-
var sorted = _.sortBy(fields, 'ordinal');
|
|
54
|
-
sorted.filter(filter).forEach(function (field) {
|
|
55
|
-
var value = _this[field];
|
|
56
|
-
if (!field.isSerialized) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
serializer.writeFieldAndValue(field, value);
|
|
60
|
-
});
|
|
61
|
-
} });
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
module.exports = {
|
|
65
|
-
STObject: STObject };
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
'use strict';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;};var assert = require('assert');
|
|
2
|
-
var BN = require('bn.js');
|
|
3
|
-
var makeClass = require('../utils/make-class');var _require =
|
|
4
|
-
|
|
5
|
-
require('../utils/bytes-utils'),bytesToHex = _require.bytesToHex,parseBytes = _require.parseBytes,serializeUIntN = _require.serializeUIntN;var _require2 =
|
|
6
|
-
require('./uint'),UInt = _require2.UInt;
|
|
7
|
-
|
|
8
|
-
var HEX_REGEX = /^[A-F0-9]{16}$/;
|
|
9
|
-
|
|
10
|
-
var UInt64 = makeClass({
|
|
11
|
-
inherits: UInt,
|
|
12
|
-
statics: { width: 8 },
|
|
13
|
-
UInt64: function UInt64() {var arg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
14
|
-
var argType = typeof arg === 'undefined' ? 'undefined' : _typeof(arg);
|
|
15
|
-
if (argType === 'number') {
|
|
16
|
-
assert(arg >= 0);
|
|
17
|
-
this._bytes = new Uint8Array(8);
|
|
18
|
-
this._bytes.set(serializeUIntN(arg, 4), 4);
|
|
19
|
-
} else if (arg instanceof BN) {
|
|
20
|
-
this._bytes = parseBytes(arg.toArray('be', 8), Uint8Array);
|
|
21
|
-
this._toBN = arg;
|
|
22
|
-
} else {
|
|
23
|
-
if (argType === 'string') {
|
|
24
|
-
if (!HEX_REGEX.test(arg)) {
|
|
25
|
-
throw new Error(arg + ' is not a valid UInt64 hex string');
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
this._bytes = parseBytes(arg, Uint8Array);
|
|
29
|
-
}
|
|
30
|
-
assert(this._bytes.length === 8);
|
|
31
|
-
},
|
|
32
|
-
toJSON: function toJSON() {
|
|
33
|
-
return bytesToHex(this._bytes);
|
|
34
|
-
},
|
|
35
|
-
valueOf: function valueOf() {
|
|
36
|
-
return this.toBN();
|
|
37
|
-
},
|
|
38
|
-
cached: {
|
|
39
|
-
toBN: function toBN() {
|
|
40
|
-
return new BN(this._bytes);
|
|
41
|
-
} },
|
|
42
|
-
|
|
43
|
-
toBytes: function toBytes() {
|
|
44
|
-
return this._bytes;
|
|
45
|
-
} });
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
module.exports = {
|
|
49
|
-
UInt64: UInt64 };
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
'use strict';var assert = require('assert');
|
|
2
|
-
var BN = require('bn.js');
|
|
3
|
-
var makeClass = require('../utils/make-class');var _require =
|
|
4
|
-
require('./serialized-type'),Comparable = _require.Comparable,SerializedType = _require.SerializedType;var _require2 =
|
|
5
|
-
require('../utils/bytes-utils'),serializeUIntN = _require2.serializeUIntN;
|
|
6
|
-
var MAX_VALUES = [0, 255, 65535, 16777215, 4294967295];
|
|
7
|
-
|
|
8
|
-
function signum(a, b) {
|
|
9
|
-
return a < b ? -1 : a === b ? 0 : 1;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
var UInt = makeClass({
|
|
13
|
-
mixins: [Comparable, SerializedType],
|
|
14
|
-
UInt: function UInt() {var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
15
|
-
var max = MAX_VALUES[this.constructor.width];
|
|
16
|
-
if (val < 0 || !(val <= max)) {
|
|
17
|
-
throw new Error(val + ' not in range 0 <= $val <= ' + max);
|
|
18
|
-
}
|
|
19
|
-
this.val = val;
|
|
20
|
-
},
|
|
21
|
-
statics: {
|
|
22
|
-
width: 0,
|
|
23
|
-
fromParser: function fromParser(parser) {
|
|
24
|
-
var val = this.width > 4 ? parser.read(this.width) :
|
|
25
|
-
parser.readUIntN(this.width);
|
|
26
|
-
return new this(val);
|
|
27
|
-
},
|
|
28
|
-
from: function from(val) {
|
|
29
|
-
return val instanceof this ? val : new this(val);
|
|
30
|
-
} },
|
|
31
|
-
|
|
32
|
-
toJSON: function toJSON() {
|
|
33
|
-
return this.val;
|
|
34
|
-
},
|
|
35
|
-
valueOf: function valueOf() {
|
|
36
|
-
return this.val;
|
|
37
|
-
},
|
|
38
|
-
compareTo: function compareTo(other) {
|
|
39
|
-
var thisValue = this.valueOf();
|
|
40
|
-
var otherValue = other.valueOf();
|
|
41
|
-
if (thisValue instanceof BN) {
|
|
42
|
-
return otherValue instanceof BN ?
|
|
43
|
-
thisValue.cmp(otherValue) :
|
|
44
|
-
thisValue.cmpn(otherValue);
|
|
45
|
-
} else if (otherValue instanceof BN) {
|
|
46
|
-
return -other.compareTo(this);
|
|
47
|
-
}
|
|
48
|
-
assert(typeof otherValue === 'number');
|
|
49
|
-
return signum(thisValue, otherValue);
|
|
50
|
-
},
|
|
51
|
-
toBytesSink: function toBytesSink(sink) {
|
|
52
|
-
sink.put(this.toBytes());
|
|
53
|
-
},
|
|
54
|
-
toBytes: function toBytes() {
|
|
55
|
-
return serializeUIntN(this.val, this.constructor.width);
|
|
56
|
-
} });
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
module.exports = {
|
|
60
|
-
UInt: UInt };
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
'use strict';var makeClass = require('../utils/make-class');var _require =
|
|
2
|
-
require('./hash-256'),Hash256 = _require.Hash256;var _require2 =
|
|
3
|
-
require('./serialized-type'),ensureArrayLikeIs = _require2.ensureArrayLikeIs,SerializedType = _require2.SerializedType;
|
|
4
|
-
|
|
5
|
-
var Vector256 = makeClass({
|
|
6
|
-
mixins: SerializedType,
|
|
7
|
-
inherits: Array,
|
|
8
|
-
statics: {
|
|
9
|
-
fromParser: function fromParser(parser, hint) {
|
|
10
|
-
var vector256 = new this();
|
|
11
|
-
var bytes = hint !== null ? hint : parser.size() - parser.pos();
|
|
12
|
-
var hashes = bytes / 32;
|
|
13
|
-
for (var i = 0; i < hashes; i++) {
|
|
14
|
-
vector256.push(Hash256.fromParser(parser));
|
|
15
|
-
}
|
|
16
|
-
return vector256;
|
|
17
|
-
},
|
|
18
|
-
from: function from(value) {
|
|
19
|
-
return ensureArrayLikeIs(Vector256, value).withChildren(Hash256);
|
|
20
|
-
} },
|
|
21
|
-
|
|
22
|
-
toBytesSink: function toBytesSink(sink) {
|
|
23
|
-
this.forEach(function (h) {return h.toBytesSink(sink);});
|
|
24
|
-
},
|
|
25
|
-
toJSON: function toJSON() {
|
|
26
|
-
return this.map(function (hash) {return hash.toJSON();});
|
|
27
|
-
} });
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
module.exports = {
|
|
31
|
-
Vector256: Vector256 };
|