@fleet-sdk/common 0.1.2 → 0.2.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/CHANGELOG.md +23 -0
- package/README.md +1 -1
- package/dist/index.d.mts +268 -0
- package/dist/index.d.ts +268 -0
- package/dist/index.js +604 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +551 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +9 -9
- package/src/index.ts +1 -0
- package/src/models/collection.ts +107 -0
- package/src/models/index.ts +1 -0
- package/src/types/boxes.ts +2 -2
- package/src/types/common.ts +10 -3
- package/src/types/inputs.ts +3 -3
- package/src/utils/{arrayUtils.ts → array.ts} +26 -21
- package/src/utils/assertions.ts +90 -0
- package/src/utils/{bigIntUtils.ts → bigInt.ts} +28 -65
- package/src/utils/bytes.bench.ts +43 -0
- package/src/utils/bytes.ts +34 -0
- package/src/utils/index.ts +6 -6
- package/src/utils/object.ts +28 -0
- package/src/utils/{boxUtils.ts → utxo.ts} +27 -5
- package/dist/cjs/index.d.ts +0 -2
- package/dist/cjs/index.js +0 -19
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/types/boxes.d.ts +0 -22
- package/dist/cjs/types/boxes.js +0 -3
- package/dist/cjs/types/boxes.js.map +0 -1
- package/dist/cjs/types/common.d.ts +0 -18
- package/dist/cjs/types/common.js +0 -15
- package/dist/cjs/types/common.js.map +0 -1
- package/dist/cjs/types/contextExtension.d.ts +0 -4
- package/dist/cjs/types/contextExtension.js +0 -3
- package/dist/cjs/types/contextExtension.js.map +0 -1
- package/dist/cjs/types/index.d.ts +0 -8
- package/dist/cjs/types/index.js +0 -25
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/inputs.d.ts +0 -37
- package/dist/cjs/types/inputs.js +0 -3
- package/dist/cjs/types/inputs.js.map +0 -1
- package/dist/cjs/types/proverResult.d.ts +0 -6
- package/dist/cjs/types/proverResult.js +0 -3
- package/dist/cjs/types/proverResult.js.map +0 -1
- package/dist/cjs/types/registers.d.ts +0 -9
- package/dist/cjs/types/registers.js +0 -3
- package/dist/cjs/types/registers.js.map +0 -1
- package/dist/cjs/types/token.d.ts +0 -18
- package/dist/cjs/types/token.js +0 -3
- package/dist/cjs/types/token.js.map +0 -1
- package/dist/cjs/types/transactions.d.ts +0 -22
- package/dist/cjs/types/transactions.js +0 -3
- package/dist/cjs/types/transactions.js.map +0 -1
- package/dist/cjs/utils/arrayUtils.d.ts +0 -26
- package/dist/cjs/utils/arrayUtils.js +0 -151
- package/dist/cjs/utils/arrayUtils.js.map +0 -1
- package/dist/cjs/utils/bigIntLiterals.d.ts +0 -7
- package/dist/cjs/utils/bigIntLiterals.js +0 -12
- package/dist/cjs/utils/bigIntLiterals.js.map +0 -1
- package/dist/cjs/utils/bigIntUtils.d.ts +0 -51
- package/dist/cjs/utils/bigIntUtils.js +0 -158
- package/dist/cjs/utils/bigIntUtils.js.map +0 -1
- package/dist/cjs/utils/boxUtils.d.ts +0 -21
- package/dist/cjs/utils/boxUtils.js +0 -110
- package/dist/cjs/utils/boxUtils.js.map +0 -1
- package/dist/cjs/utils/index.d.ts +0 -6
- package/dist/cjs/utils/index.js +0 -23
- package/dist/cjs/utils/index.js.map +0 -1
- package/dist/cjs/utils/objectUtils.d.ts +0 -3
- package/dist/cjs/utils/objectUtils.js +0 -23
- package/dist/cjs/utils/objectUtils.js.map +0 -1
- package/dist/cjs/utils/stringUtils.d.ts +0 -7
- package/dist/cjs/utils/stringUtils.js +0 -21
- package/dist/cjs/utils/stringUtils.js.map +0 -1
- package/dist/esm/index.d.ts +0 -2
- package/dist/esm/index.js +0 -3
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/types/boxes.d.ts +0 -22
- package/dist/esm/types/boxes.js +0 -2
- package/dist/esm/types/boxes.js.map +0 -1
- package/dist/esm/types/common.d.ts +0 -18
- package/dist/esm/types/common.js +0 -12
- package/dist/esm/types/common.js.map +0 -1
- package/dist/esm/types/contextExtension.d.ts +0 -4
- package/dist/esm/types/contextExtension.js +0 -2
- package/dist/esm/types/contextExtension.js.map +0 -1
- package/dist/esm/types/index.d.ts +0 -8
- package/dist/esm/types/index.js +0 -9
- package/dist/esm/types/index.js.map +0 -1
- package/dist/esm/types/inputs.d.ts +0 -37
- package/dist/esm/types/inputs.js +0 -2
- package/dist/esm/types/inputs.js.map +0 -1
- package/dist/esm/types/proverResult.d.ts +0 -6
- package/dist/esm/types/proverResult.js +0 -2
- package/dist/esm/types/proverResult.js.map +0 -1
- package/dist/esm/types/registers.d.ts +0 -9
- package/dist/esm/types/registers.js +0 -2
- package/dist/esm/types/registers.js.map +0 -1
- package/dist/esm/types/token.d.ts +0 -18
- package/dist/esm/types/token.js +0 -2
- package/dist/esm/types/token.js.map +0 -1
- package/dist/esm/types/transactions.d.ts +0 -22
- package/dist/esm/types/transactions.js +0 -2
- package/dist/esm/types/transactions.js.map +0 -1
- package/dist/esm/utils/arrayUtils.d.ts +0 -26
- package/dist/esm/utils/arrayUtils.js +0 -135
- package/dist/esm/utils/arrayUtils.js.map +0 -1
- package/dist/esm/utils/bigIntLiterals.d.ts +0 -7
- package/dist/esm/utils/bigIntLiterals.js +0 -9
- package/dist/esm/utils/bigIntLiterals.js.map +0 -1
- package/dist/esm/utils/bigIntUtils.d.ts +0 -51
- package/dist/esm/utils/bigIntUtils.js +0 -148
- package/dist/esm/utils/bigIntUtils.js.map +0 -1
- package/dist/esm/utils/boxUtils.d.ts +0 -21
- package/dist/esm/utils/boxUtils.js +0 -103
- package/dist/esm/utils/boxUtils.js.map +0 -1
- package/dist/esm/utils/index.d.ts +0 -6
- package/dist/esm/utils/index.js +0 -7
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/esm/utils/objectUtils.d.ts +0 -3
- package/dist/esm/utils/objectUtils.js +0 -17
- package/dist/esm/utils/objectUtils.js.map +0 -1
- package/dist/esm/utils/stringUtils.d.ts +0 -7
- package/dist/esm/utils/stringUtils.js +0 -16
- package/dist/esm/utils/stringUtils.js.map +0 -1
- package/dist/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/utils/bigIntLiterals.ts +0 -9
- package/src/utils/objectUtils.ts +0 -19
- package/src/utils/stringUtils.ts +0 -18
@@ -1,135 +0,0 @@
|
|
1
|
-
export function isEmpty(obj) {
|
2
|
-
if (!obj) {
|
3
|
-
return true;
|
4
|
-
}
|
5
|
-
return Array.isArray(obj) ? obj.length === 0 : Object.keys(obj).length === 0;
|
6
|
-
}
|
7
|
-
export function some(obj) {
|
8
|
-
return !isEmpty(obj);
|
9
|
-
}
|
10
|
-
export function first(array) {
|
11
|
-
if (!array) {
|
12
|
-
return;
|
13
|
-
}
|
14
|
-
if (!array[0]) {
|
15
|
-
throw Error("Empty array.");
|
16
|
-
}
|
17
|
-
return array[0];
|
18
|
-
}
|
19
|
-
/**
|
20
|
-
* Check for duplicate elements using the equality operator
|
21
|
-
*/
|
22
|
-
export function hasDuplicates(array) {
|
23
|
-
return array.some((item, index) => {
|
24
|
-
return array.indexOf(item) !== index;
|
25
|
-
});
|
26
|
-
}
|
27
|
-
/**
|
28
|
-
* Check for duplicate keys in complex elements
|
29
|
-
*/
|
30
|
-
export function hasDuplicatesBy(array, selector) {
|
31
|
-
return array.some((item, index) => {
|
32
|
-
return array.findIndex((x) => selector(x) === selector(item)) !== index;
|
33
|
-
});
|
34
|
-
}
|
35
|
-
export function chunk(array, size) {
|
36
|
-
if (array.length <= size) {
|
37
|
-
return [array];
|
38
|
-
}
|
39
|
-
const chunks = [];
|
40
|
-
for (let i = 0; i < array.length; i += size) {
|
41
|
-
chunks.push(array.slice(i, i + size));
|
42
|
-
}
|
43
|
-
return chunks;
|
44
|
-
}
|
45
|
-
export function orderBy(array, iteratee, order = "asc") {
|
46
|
-
return [...array].sort((a, b) => {
|
47
|
-
if (iteratee(a) > iteratee(b)) {
|
48
|
-
return order === "asc" ? 1 : -1;
|
49
|
-
}
|
50
|
-
else if (iteratee(a) < iteratee(b)) {
|
51
|
-
return order === "asc" ? -1 : 1;
|
52
|
-
}
|
53
|
-
else {
|
54
|
-
return 0;
|
55
|
-
}
|
56
|
-
});
|
57
|
-
}
|
58
|
-
export function areEqual(array1, array2) {
|
59
|
-
if (array1 === array2) {
|
60
|
-
return true;
|
61
|
-
}
|
62
|
-
if (array1.length != array2.length) {
|
63
|
-
return false;
|
64
|
-
}
|
65
|
-
for (let i = 0; i < array1.length; i++) {
|
66
|
-
if (array1[i] !== array2[i]) {
|
67
|
-
return false;
|
68
|
-
}
|
69
|
-
}
|
70
|
-
return true;
|
71
|
-
}
|
72
|
-
export function areEqualBy(array1, array2, selector) {
|
73
|
-
if (array1 === array2) {
|
74
|
-
return true;
|
75
|
-
}
|
76
|
-
if (array1.length != array2.length) {
|
77
|
-
return false;
|
78
|
-
}
|
79
|
-
for (let i = 0; i < array1.length; i++) {
|
80
|
-
if (selector(array1[i]) !== selector(array2[i])) {
|
81
|
-
return false;
|
82
|
-
}
|
83
|
-
}
|
84
|
-
return true;
|
85
|
-
}
|
86
|
-
export function startsWith(array, target) {
|
87
|
-
if (array === target) {
|
88
|
-
return true;
|
89
|
-
}
|
90
|
-
if (target.length > array.length) {
|
91
|
-
return false;
|
92
|
-
}
|
93
|
-
for (let i = 0; i < target.length; i++) {
|
94
|
-
if (target[i] !== array[i]) {
|
95
|
-
return false;
|
96
|
-
}
|
97
|
-
}
|
98
|
-
return true;
|
99
|
-
}
|
100
|
-
export function endsWith(array, target) {
|
101
|
-
if (array === target) {
|
102
|
-
return true;
|
103
|
-
}
|
104
|
-
if (target.length > array.length) {
|
105
|
-
return false;
|
106
|
-
}
|
107
|
-
const offset = array.length - target.length;
|
108
|
-
for (let i = target.length - 1; i >= 0; i--) {
|
109
|
-
if (target[i] !== array[i + offset]) {
|
110
|
-
return false;
|
111
|
-
}
|
112
|
-
}
|
113
|
-
return true;
|
114
|
-
}
|
115
|
-
export function uniq(array) {
|
116
|
-
if (isEmpty(array)) {
|
117
|
-
return array;
|
118
|
-
}
|
119
|
-
return Array.from(new Set(array));
|
120
|
-
}
|
121
|
-
export function uniqBy(array, selector, selection = "keep-first") {
|
122
|
-
if (isEmpty(array)) {
|
123
|
-
return array;
|
124
|
-
}
|
125
|
-
return Array.from(array
|
126
|
-
.reduce((map, e) => {
|
127
|
-
const key = selector(e);
|
128
|
-
if (selection === "keep-first" && map.has(key)) {
|
129
|
-
return map;
|
130
|
-
}
|
131
|
-
return map.set(key, e);
|
132
|
-
}, new Map())
|
133
|
-
.values());
|
134
|
-
}
|
135
|
-
//# sourceMappingURL=arrayUtils.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"arrayUtils.js","sourceRoot":"","sources":["../../../src/utils/arrayUtils.ts"],"names":[],"mappings":"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"}
|
@@ -1,9 +0,0 @@
|
|
1
|
-
// Make some ECMAScript parsers happy by not using bigint literals like 123n
|
2
|
-
export const _0n = BigInt(0);
|
3
|
-
export const _1n = BigInt(1);
|
4
|
-
export const _7n = BigInt(7);
|
5
|
-
export const _10n = BigInt(10);
|
6
|
-
export const _63n = BigInt(63);
|
7
|
-
export const _127n = BigInt(127);
|
8
|
-
export const _128n = BigInt(128);
|
9
|
-
//# sourceMappingURL=bigIntLiterals.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"bigIntLiterals.js","sourceRoot":"","sources":["../../../src/utils/bigIntLiterals.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC"}
|
@@ -1,51 +0,0 @@
|
|
1
|
-
import { Amount } from "../types";
|
2
|
-
type NumberLike = string | number | bigint | boolean;
|
3
|
-
export declare function ensureBigInt(number: NumberLike): bigint;
|
4
|
-
type ParsingOptions = {
|
5
|
-
/**
|
6
|
-
* Number of decimals.
|
7
|
-
*/
|
8
|
-
decimals?: number;
|
9
|
-
/**
|
10
|
-
* Thousand mark char.
|
11
|
-
* Default: `.`
|
12
|
-
*/
|
13
|
-
decimalMark?: string;
|
14
|
-
};
|
15
|
-
export declare function undecimalize(decimalStr: string, options?: ParsingOptions | number): bigint;
|
16
|
-
type FormattingOptions = {
|
17
|
-
/**
|
18
|
-
* Number of decimals.
|
19
|
-
*/
|
20
|
-
decimals: number;
|
21
|
-
/**
|
22
|
-
* Thousand mark char.
|
23
|
-
*/
|
24
|
-
thousandMark?: string;
|
25
|
-
/**
|
26
|
-
* Decimal mark char.
|
27
|
-
* Default: `.`
|
28
|
-
*/
|
29
|
-
decimalMark?: string;
|
30
|
-
};
|
31
|
-
export declare function decimalize(value: Amount, options?: FormattingOptions | number): string;
|
32
|
-
export declare function sumBy<T>(collection: readonly T[], iteratee: (value: T) => bigint, condition?: (value: T) => boolean): bigint;
|
33
|
-
/**
|
34
|
-
* Converts a hex string to bigint.
|
35
|
-
* @param hex The hex string to be converted.
|
36
|
-
* @returns The bigint value represented by the hex string.
|
37
|
-
*/
|
38
|
-
export declare function hexToBigInt(hex: string): bigint;
|
39
|
-
/**
|
40
|
-
* Serializes a `BigInt` to a hex string
|
41
|
-
* @param value The bigint value to be serialized
|
42
|
-
* @returns Hex representation for the provided `number`.
|
43
|
-
*/
|
44
|
-
export declare function bigIntToHex(value: bigint): string;
|
45
|
-
/**
|
46
|
-
* Returns the two’s complement of a bigint value.
|
47
|
-
* @param value The bigint value to negate.
|
48
|
-
* @returns The two’s complement of `number` as a bigint.
|
49
|
-
*/
|
50
|
-
export declare function _bitNegate(value: bigint): bigint;
|
51
|
-
export {};
|
@@ -1,148 +0,0 @@
|
|
1
|
-
import { first, isEmpty } from "./arrayUtils";
|
2
|
-
import { _0n, _10n } from "./bigIntLiterals";
|
3
|
-
import { isUndefined } from "./objectUtils";
|
4
|
-
export function ensureBigInt(number) {
|
5
|
-
return typeof number === "bigint" ? number : BigInt(number);
|
6
|
-
}
|
7
|
-
export function undecimalize(decimalStr, options) {
|
8
|
-
if (!decimalStr) {
|
9
|
-
return _0n;
|
10
|
-
}
|
11
|
-
options = typeof options == "number" ? { decimals: options } : options;
|
12
|
-
if (isUndefined(options)) {
|
13
|
-
options = {};
|
14
|
-
}
|
15
|
-
options.decimals = options.decimals || 0;
|
16
|
-
options.decimalMark = options.decimalMark || ".";
|
17
|
-
const fragments = decimalStr.split(options.decimalMark);
|
18
|
-
if (fragments.length > 2) {
|
19
|
-
throw new Error("Invalid numeric string.");
|
20
|
-
}
|
21
|
-
let [integer, decimal] = fragments;
|
22
|
-
integer = _removeLeadingZeros(integer);
|
23
|
-
const negative = integer.startsWith("-") ? "-" : "";
|
24
|
-
if (!decimal) {
|
25
|
-
decimal = "0".repeat(options.decimals);
|
26
|
-
}
|
27
|
-
else if (decimal.length < options.decimals) {
|
28
|
-
decimal = decimal.padEnd(options.decimals, "0");
|
29
|
-
}
|
30
|
-
return BigInt(negative + _stripNonDigits(integer + decimal));
|
31
|
-
}
|
32
|
-
function _stripNonDigits(value) {
|
33
|
-
return value.replace(/\D/g, "");
|
34
|
-
}
|
35
|
-
export function decimalize(value, options) {
|
36
|
-
value = ensureBigInt(value);
|
37
|
-
if (!options) {
|
38
|
-
return value.toString();
|
39
|
-
}
|
40
|
-
options = typeof options == "number" ? { decimals: options } : options;
|
41
|
-
options.decimals = options.decimals || 0;
|
42
|
-
options.decimalMark = options.decimalMark || ".";
|
43
|
-
const pow = _10n ** BigInt(options.decimals);
|
44
|
-
const integer = value / pow;
|
45
|
-
const decimal = value - integer * pow;
|
46
|
-
return _buildFormattedDecimal(integer.toString(10), decimal.toString(10), options);
|
47
|
-
}
|
48
|
-
function _buildFormattedDecimal(integer, decimal, options) {
|
49
|
-
const integerPart = _addThousandMarks(integer, options.thousandMark);
|
50
|
-
const decimalPart = _stripTrailingZeros(decimal.padStart(options.decimals, "0"));
|
51
|
-
if (decimalPart) {
|
52
|
-
return `${integerPart}${options.decimalMark}${decimalPart}`;
|
53
|
-
}
|
54
|
-
else {
|
55
|
-
return integerPart;
|
56
|
-
}
|
57
|
-
}
|
58
|
-
function _addThousandMarks(value, mark) {
|
59
|
-
if (!mark) {
|
60
|
-
return value;
|
61
|
-
}
|
62
|
-
return value.replace(/\B(?=(\d{3})+(?!\d))/g, mark);
|
63
|
-
}
|
64
|
-
function _stripTrailingZeros(value) {
|
65
|
-
if (!value.endsWith("0")) {
|
66
|
-
return value;
|
67
|
-
}
|
68
|
-
return value.replace(/\.?0+$/, "");
|
69
|
-
}
|
70
|
-
function _removeLeadingZeros(value) {
|
71
|
-
if (!value.startsWith("0")) {
|
72
|
-
return value;
|
73
|
-
}
|
74
|
-
return value.replace(/^0+\.?/, "");
|
75
|
-
}
|
76
|
-
export function sumBy(collection, iteratee, condition) {
|
77
|
-
let acc = _0n;
|
78
|
-
if (isEmpty(collection)) {
|
79
|
-
return acc;
|
80
|
-
}
|
81
|
-
for (const item of collection) {
|
82
|
-
if (isUndefined(condition) || condition(item)) {
|
83
|
-
acc += iteratee(item);
|
84
|
-
}
|
85
|
-
}
|
86
|
-
return acc;
|
87
|
-
}
|
88
|
-
/**
|
89
|
-
* Converts a hex string to bigint.
|
90
|
-
* @param hex The hex string to be converted.
|
91
|
-
* @returns The bigint value represented by the hex string.
|
92
|
-
*/
|
93
|
-
export function hexToBigInt(hex) {
|
94
|
-
// https://coolaj86.com/articles/convert-hex-to-decimal-with-js-bigints/
|
95
|
-
if (hex.length % 2) {
|
96
|
-
hex = "0" + hex;
|
97
|
-
}
|
98
|
-
const value = BigInt("0x" + hex);
|
99
|
-
const highByte = parseInt(hex.slice(0, 2), 16);
|
100
|
-
if (0x80 & highByte) {
|
101
|
-
return -_bitNegate(value); // add two's complement and invert the number to negative
|
102
|
-
}
|
103
|
-
return value;
|
104
|
-
}
|
105
|
-
/**
|
106
|
-
* Serializes a `BigInt` to a hex string
|
107
|
-
* @param value The bigint value to be serialized
|
108
|
-
* @returns Hex representation for the provided `number`.
|
109
|
-
*/
|
110
|
-
export function bigIntToHex(value) {
|
111
|
-
// implementation inspired on
|
112
|
-
// https://coolaj86.com/articles/convert-decimal-to-hex-with-js-bigints/
|
113
|
-
const positive = value >= _0n;
|
114
|
-
if (!positive) {
|
115
|
-
value = _bitNegate(value);
|
116
|
-
}
|
117
|
-
let hex = value.toString(16);
|
118
|
-
if (hex.length % 2) {
|
119
|
-
hex = "0" + hex;
|
120
|
-
}
|
121
|
-
if (positive && 0x80 & parseInt(hex.slice(0, 2), 16)) {
|
122
|
-
hex = "00" + hex;
|
123
|
-
}
|
124
|
-
return hex;
|
125
|
-
}
|
126
|
-
/**
|
127
|
-
* Returns the two’s complement of a bigint value.
|
128
|
-
* @param value The bigint value to negate.
|
129
|
-
* @returns The two’s complement of `number` as a bigint.
|
130
|
-
*/
|
131
|
-
export function _bitNegate(value) {
|
132
|
-
const negative = value < _0n;
|
133
|
-
if (negative) {
|
134
|
-
value = -value; // turn into a positive number
|
135
|
-
}
|
136
|
-
const bits = value.toString(2);
|
137
|
-
let bitLen = bits.length; // convert to binary
|
138
|
-
const mod = bitLen % 8;
|
139
|
-
if (mod > 0) {
|
140
|
-
bitLen += 8 - mod;
|
141
|
-
}
|
142
|
-
else if (negative && first(bits) === "1" && bits.indexOf("1", 1) !== -1) {
|
143
|
-
bitLen += 8;
|
144
|
-
}
|
145
|
-
const mask = (1n << BigInt(bitLen)) - 1n; // create a mask
|
146
|
-
return (~value & mask) + 1n; // invert bits, mask it, and add one
|
147
|
-
}
|
148
|
-
//# sourceMappingURL=bigIntUtils.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"bigIntUtils.js","sourceRoot":"","sources":["../../../src/utils/bigIntUtils.ts"],"names":[],"mappings":"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"}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import { Amount, AmountType, Box, NonMandatoryRegisters, TokenAmount, TokenId } from "../types";
|
2
|
-
export declare function utxoSum(boxes: MinimalBoxAmounts): BoxSummary;
|
3
|
-
export declare function utxoSum(boxes: MinimalBoxAmounts, tokenId: TokenId): bigint;
|
4
|
-
export declare function utxoDiff(minuend: BoxSummary | Box<Amount>[], subtrahend: BoxSummary | Box<Amount>[]): BoxSummary;
|
5
|
-
export declare function areRegistersDenselyPacked(registers: NonMandatoryRegisters): boolean;
|
6
|
-
export declare function utxoFilter<T extends AmountType>(utxos: Box<T>[], filterParams: UTxOFilterParams<T>): Box<T>[];
|
7
|
-
export type UTxOFilterParams<T extends AmountType> = {
|
8
|
-
by?: (utxo: Box<T>) => boolean;
|
9
|
-
max?: {
|
10
|
-
count?: number;
|
11
|
-
aggregatedDistinctTokens?: number;
|
12
|
-
};
|
13
|
-
};
|
14
|
-
export type BoxSummary = {
|
15
|
-
nanoErgs: bigint;
|
16
|
-
tokens: TokenAmount<bigint>[];
|
17
|
-
};
|
18
|
-
export type MinimalBoxAmounts = readonly {
|
19
|
-
value: Amount;
|
20
|
-
assets: TokenAmount<Amount>[];
|
21
|
-
}[];
|
@@ -1,103 +0,0 @@
|
|
1
|
-
import { isEmpty } from "./arrayUtils";
|
2
|
-
import { _0n } from "./bigIntLiterals";
|
3
|
-
import { ensureBigInt } from "./bigIntUtils";
|
4
|
-
import { isDefined, isUndefined } from "./objectUtils";
|
5
|
-
const NANOERGS_TOKEN_ID = "nanoErgs";
|
6
|
-
export function utxoSum(boxes, tokenId) {
|
7
|
-
const balances = {};
|
8
|
-
for (const box of boxes) {
|
9
|
-
if (isUndefined(tokenId) || tokenId === NANOERGS_TOKEN_ID) {
|
10
|
-
balances[NANOERGS_TOKEN_ID] = (balances[NANOERGS_TOKEN_ID] || _0n) + ensureBigInt(box.value);
|
11
|
-
}
|
12
|
-
if (tokenId !== NANOERGS_TOKEN_ID) {
|
13
|
-
for (const token of box.assets) {
|
14
|
-
if (isDefined(tokenId) && tokenId !== token.tokenId) {
|
15
|
-
continue;
|
16
|
-
}
|
17
|
-
balances[token.tokenId] = (balances[token.tokenId] || _0n) + ensureBigInt(token.amount);
|
18
|
-
}
|
19
|
-
}
|
20
|
-
}
|
21
|
-
if (isDefined(tokenId)) {
|
22
|
-
return balances[tokenId] || _0n;
|
23
|
-
}
|
24
|
-
return {
|
25
|
-
nanoErgs: balances[NANOERGS_TOKEN_ID] || _0n,
|
26
|
-
tokens: Object.keys(balances)
|
27
|
-
.filter((x) => x !== NANOERGS_TOKEN_ID)
|
28
|
-
.map((tokenId) => ({ tokenId, amount: balances[tokenId] }))
|
29
|
-
};
|
30
|
-
}
|
31
|
-
export function utxoDiff(minuend, subtrahend) {
|
32
|
-
if (Array.isArray(minuend)) {
|
33
|
-
minuend = utxoSum(minuend);
|
34
|
-
}
|
35
|
-
if (Array.isArray(subtrahend)) {
|
36
|
-
subtrahend = utxoSum(subtrahend);
|
37
|
-
}
|
38
|
-
const tokens = [];
|
39
|
-
const nanoErgs = minuend.nanoErgs - subtrahend.nanoErgs;
|
40
|
-
for (const token of minuend.tokens) {
|
41
|
-
const balance = token.amount - (subtrahend.tokens.find((t) => t.tokenId === token.tokenId)?.amount || _0n);
|
42
|
-
if (balance !== _0n) {
|
43
|
-
tokens.push({ tokenId: token.tokenId, amount: balance });
|
44
|
-
}
|
45
|
-
}
|
46
|
-
return { nanoErgs, tokens };
|
47
|
-
}
|
48
|
-
const MIN_NON_MANDATORY_REGISTER_INDEX = 4;
|
49
|
-
const MAX_NON_MANDATORY_REGISTER_INDEX = 9;
|
50
|
-
export function areRegistersDenselyPacked(registers) {
|
51
|
-
let lastIndex = 0;
|
52
|
-
for (let i = MIN_NON_MANDATORY_REGISTER_INDEX; i <= MAX_NON_MANDATORY_REGISTER_INDEX; i++) {
|
53
|
-
const key = `R${i}`;
|
54
|
-
if (registers[key]) {
|
55
|
-
if (i === MIN_NON_MANDATORY_REGISTER_INDEX) {
|
56
|
-
lastIndex = i;
|
57
|
-
continue;
|
58
|
-
}
|
59
|
-
if (i - lastIndex > 1) {
|
60
|
-
return false;
|
61
|
-
}
|
62
|
-
lastIndex = i;
|
63
|
-
}
|
64
|
-
}
|
65
|
-
return true;
|
66
|
-
}
|
67
|
-
export function utxoFilter(utxos, filterParams) {
|
68
|
-
if (isEmpty(filterParams) || isEmpty(utxos)) {
|
69
|
-
return utxos;
|
70
|
-
}
|
71
|
-
const { by, max } = filterParams;
|
72
|
-
let filtered = utxos;
|
73
|
-
if (by) {
|
74
|
-
filtered = utxos.filter(by);
|
75
|
-
if (isEmpty(filtered)) {
|
76
|
-
return filtered;
|
77
|
-
}
|
78
|
-
}
|
79
|
-
if (!max) {
|
80
|
-
return filtered;
|
81
|
-
}
|
82
|
-
if (isDefined(max.aggregatedDistinctTokens)) {
|
83
|
-
const tokenIds = _getDistinctTokenIds(filtered, max.aggregatedDistinctTokens);
|
84
|
-
filtered = filtered.filter((utxo) => isEmpty(utxo.assets) || utxo.assets.every((token) => tokenIds.has(token.tokenId)));
|
85
|
-
}
|
86
|
-
if (isDefined(max.count) && filtered.length > max.count) {
|
87
|
-
filtered = filtered.slice(0, max.count);
|
88
|
-
}
|
89
|
-
return filtered;
|
90
|
-
}
|
91
|
-
function _getDistinctTokenIds(utxos, max) {
|
92
|
-
const tokenIds = new Set();
|
93
|
-
for (let i = 0; i < utxos.length && tokenIds.size < max; i++) {
|
94
|
-
if (isEmpty(utxos[i].assets) || utxos[i].assets.length > max) {
|
95
|
-
continue;
|
96
|
-
}
|
97
|
-
for (const token of utxos[i].assets) {
|
98
|
-
tokenIds.add(token.tokenId);
|
99
|
-
}
|
100
|
-
}
|
101
|
-
return tokenIds;
|
102
|
-
}
|
103
|
-
//# sourceMappingURL=boxUtils.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"boxUtils.js","sourceRoot":"","sources":["../../../src/utils/boxUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/utils/index.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
export function removeUndefined(value) {
|
2
|
-
const result = {};
|
3
|
-
for (const key in value) {
|
4
|
-
const val = value[key];
|
5
|
-
if (!isUndefined(val)) {
|
6
|
-
result[key] = val;
|
7
|
-
}
|
8
|
-
}
|
9
|
-
return result;
|
10
|
-
}
|
11
|
-
export function isUndefined(value) {
|
12
|
-
return value === undefined || value === null || Number.isNaN(value);
|
13
|
-
}
|
14
|
-
export function isDefined(value) {
|
15
|
-
return !isUndefined(value);
|
16
|
-
}
|
17
|
-
//# sourceMappingURL=objectUtils.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"objectUtils.js","sourceRoot":"","sources":["../../../src/utils/objectUtils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,KAA8B;IAC5D,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;SACnB;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAAoB;IAC/C,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC"}
|
@@ -1,16 +0,0 @@
|
|
1
|
-
const HEX_PATTERN = /^[0-9A-Fa-f]+$/s;
|
2
|
-
export function isHex(value) {
|
3
|
-
if (!value) {
|
4
|
-
return false;
|
5
|
-
}
|
6
|
-
return HEX_PATTERN.test(value);
|
7
|
-
}
|
8
|
-
/**
|
9
|
-
* Get hex string size in bytes
|
10
|
-
* @param hex
|
11
|
-
* @returns the byte size if the hex string
|
12
|
-
*/
|
13
|
-
export function hexByteSize(hex) {
|
14
|
-
return hex.length / 2;
|
15
|
-
}
|
16
|
-
//# sourceMappingURL=stringUtils.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"stringUtils.js","sourceRoot":"","sources":["../../../src/utils/stringUtils.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAEtC,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IAED,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB,CAAC"}
|