@fleet-sdk/common 0.1.3 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +1 -1
  3. package/dist/index.cjs.js +604 -0
  4. package/dist/index.cjs.js.map +1 -0
  5. package/dist/index.d.mts +268 -0
  6. package/dist/index.d.ts +268 -0
  7. package/dist/index.esm.js +551 -0
  8. package/dist/index.esm.js.map +1 -0
  9. package/package.json +9 -9
  10. package/src/utils/{arrayUtils.ts → array.ts} +4 -0
  11. package/src/utils/assertions.ts +68 -22
  12. package/src/utils/{bigIntUtils.ts → bigInt.ts} +10 -76
  13. package/src/utils/bytes.bench.ts +43 -0
  14. package/src/utils/bytes.ts +34 -0
  15. package/src/utils/index.ts +5 -6
  16. package/src/utils/object.ts +28 -0
  17. package/src/utils/{boxUtils.ts → utxo.ts} +3 -4
  18. package/dist/cjs/index.d.ts +0 -3
  19. package/dist/cjs/index.js +0 -20
  20. package/dist/cjs/index.js.map +0 -1
  21. package/dist/cjs/models/collection.d.ts +0 -20
  22. package/dist/cjs/models/collection.js +0 -76
  23. package/dist/cjs/models/collection.js.map +0 -1
  24. package/dist/cjs/models/index.d.ts +0 -1
  25. package/dist/cjs/models/index.js +0 -18
  26. package/dist/cjs/models/index.js.map +0 -1
  27. package/dist/cjs/types/boxes.d.ts +0 -22
  28. package/dist/cjs/types/boxes.js +0 -3
  29. package/dist/cjs/types/boxes.js.map +0 -1
  30. package/dist/cjs/types/common.d.ts +0 -23
  31. package/dist/cjs/types/common.js +0 -19
  32. package/dist/cjs/types/common.js.map +0 -1
  33. package/dist/cjs/types/contextExtension.d.ts +0 -4
  34. package/dist/cjs/types/contextExtension.js +0 -3
  35. package/dist/cjs/types/contextExtension.js.map +0 -1
  36. package/dist/cjs/types/index.d.ts +0 -8
  37. package/dist/cjs/types/index.js +0 -25
  38. package/dist/cjs/types/index.js.map +0 -1
  39. package/dist/cjs/types/inputs.d.ts +0 -37
  40. package/dist/cjs/types/inputs.js +0 -3
  41. package/dist/cjs/types/inputs.js.map +0 -1
  42. package/dist/cjs/types/proverResult.d.ts +0 -6
  43. package/dist/cjs/types/proverResult.js +0 -3
  44. package/dist/cjs/types/proverResult.js.map +0 -1
  45. package/dist/cjs/types/registers.d.ts +0 -9
  46. package/dist/cjs/types/registers.js +0 -3
  47. package/dist/cjs/types/registers.js.map +0 -1
  48. package/dist/cjs/types/token.d.ts +0 -18
  49. package/dist/cjs/types/token.js +0 -3
  50. package/dist/cjs/types/token.js.map +0 -1
  51. package/dist/cjs/types/transactions.d.ts +0 -22
  52. package/dist/cjs/types/transactions.js +0 -3
  53. package/dist/cjs/types/transactions.js.map +0 -1
  54. package/dist/cjs/utils/arrayUtils.d.ts +0 -25
  55. package/dist/cjs/utils/arrayUtils.js +0 -155
  56. package/dist/cjs/utils/arrayUtils.js.map +0 -1
  57. package/dist/cjs/utils/assertions.d.ts +0 -8
  58. package/dist/cjs/utils/assertions.js +0 -40
  59. package/dist/cjs/utils/assertions.js.map +0 -1
  60. package/dist/cjs/utils/bigIntLiterals.d.ts +0 -7
  61. package/dist/cjs/utils/bigIntLiterals.js +0 -12
  62. package/dist/cjs/utils/bigIntLiterals.js.map +0 -1
  63. package/dist/cjs/utils/bigIntUtils.d.ts +0 -54
  64. package/dist/cjs/utils/bigIntUtils.js +0 -183
  65. package/dist/cjs/utils/bigIntUtils.js.map +0 -1
  66. package/dist/cjs/utils/boxUtils.d.ts +0 -23
  67. package/dist/cjs/utils/boxUtils.js +0 -121
  68. package/dist/cjs/utils/boxUtils.js.map +0 -1
  69. package/dist/cjs/utils/index.d.ts +0 -7
  70. package/dist/cjs/utils/index.js +0 -24
  71. package/dist/cjs/utils/index.js.map +0 -1
  72. package/dist/cjs/utils/objectUtils.d.ts +0 -4
  73. package/dist/cjs/utils/objectUtils.js +0 -27
  74. package/dist/cjs/utils/objectUtils.js.map +0 -1
  75. package/dist/cjs/utils/stringUtils.d.ts +0 -7
  76. package/dist/cjs/utils/stringUtils.js +0 -21
  77. package/dist/cjs/utils/stringUtils.js.map +0 -1
  78. package/dist/esm/index.d.ts +0 -3
  79. package/dist/esm/index.js +0 -4
  80. package/dist/esm/index.js.map +0 -1
  81. package/dist/esm/models/collection.d.ts +0 -20
  82. package/dist/esm/models/collection.js +0 -72
  83. package/dist/esm/models/collection.js.map +0 -1
  84. package/dist/esm/models/index.d.ts +0 -1
  85. package/dist/esm/models/index.js +0 -2
  86. package/dist/esm/models/index.js.map +0 -1
  87. package/dist/esm/types/boxes.d.ts +0 -22
  88. package/dist/esm/types/boxes.js +0 -2
  89. package/dist/esm/types/boxes.js.map +0 -1
  90. package/dist/esm/types/common.d.ts +0 -23
  91. package/dist/esm/types/common.js +0 -16
  92. package/dist/esm/types/common.js.map +0 -1
  93. package/dist/esm/types/contextExtension.d.ts +0 -4
  94. package/dist/esm/types/contextExtension.js +0 -2
  95. package/dist/esm/types/contextExtension.js.map +0 -1
  96. package/dist/esm/types/index.d.ts +0 -8
  97. package/dist/esm/types/index.js +0 -9
  98. package/dist/esm/types/index.js.map +0 -1
  99. package/dist/esm/types/inputs.d.ts +0 -37
  100. package/dist/esm/types/inputs.js +0 -2
  101. package/dist/esm/types/inputs.js.map +0 -1
  102. package/dist/esm/types/proverResult.d.ts +0 -6
  103. package/dist/esm/types/proverResult.js +0 -2
  104. package/dist/esm/types/proverResult.js.map +0 -1
  105. package/dist/esm/types/registers.d.ts +0 -9
  106. package/dist/esm/types/registers.js +0 -2
  107. package/dist/esm/types/registers.js.map +0 -1
  108. package/dist/esm/types/token.d.ts +0 -18
  109. package/dist/esm/types/token.js +0 -2
  110. package/dist/esm/types/token.js.map +0 -1
  111. package/dist/esm/types/transactions.d.ts +0 -22
  112. package/dist/esm/types/transactions.js +0 -2
  113. package/dist/esm/types/transactions.js.map +0 -1
  114. package/dist/esm/utils/arrayUtils.d.ts +0 -25
  115. package/dist/esm/utils/arrayUtils.js +0 -139
  116. package/dist/esm/utils/arrayUtils.js.map +0 -1
  117. package/dist/esm/utils/assertions.d.ts +0 -8
  118. package/dist/esm/utils/assertions.js +0 -32
  119. package/dist/esm/utils/assertions.js.map +0 -1
  120. package/dist/esm/utils/bigIntLiterals.d.ts +0 -7
  121. package/dist/esm/utils/bigIntLiterals.js +0 -9
  122. package/dist/esm/utils/bigIntLiterals.js.map +0 -1
  123. package/dist/esm/utils/bigIntUtils.d.ts +0 -54
  124. package/dist/esm/utils/bigIntUtils.js +0 -170
  125. package/dist/esm/utils/bigIntUtils.js.map +0 -1
  126. package/dist/esm/utils/boxUtils.d.ts +0 -23
  127. package/dist/esm/utils/boxUtils.js +0 -113
  128. package/dist/esm/utils/boxUtils.js.map +0 -1
  129. package/dist/esm/utils/index.d.ts +0 -7
  130. package/dist/esm/utils/index.js +0 -8
  131. package/dist/esm/utils/index.js.map +0 -1
  132. package/dist/esm/utils/objectUtils.d.ts +0 -4
  133. package/dist/esm/utils/objectUtils.js +0 -20
  134. package/dist/esm/utils/objectUtils.js.map +0 -1
  135. package/dist/esm/utils/stringUtils.d.ts +0 -7
  136. package/dist/esm/utils/stringUtils.js +0 -16
  137. package/dist/esm/utils/stringUtils.js.map +0 -1
  138. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  139. package/dist/tsconfig.tsbuildinfo +0 -1
  140. package/src/utils/bigIntLiterals.ts +0 -9
  141. package/src/utils/objectUtils.ts +0 -23
  142. package/src/utils/stringUtils.ts +0 -18
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../../src/types/transactions.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- import { SortingDirection, SortingSelector } from "../types";
2
- type ObjectSelector<T> = (item: T) => T[keyof T];
3
- export declare function first(array: undefined): undefined;
4
- export declare function first<T>(array: ArrayLike<T>): T;
5
- export declare function last(array: undefined): undefined;
6
- export declare function last<T>(array: ArrayLike<T>): T;
7
- export declare function at(array: undefined, index: number): undefined;
8
- export declare function at<T>(array: ArrayLike<T>, index: number): T;
9
- /**
10
- * Check for duplicate elements using the equality operator
11
- */
12
- export declare function hasDuplicates<T>(array: T[]): boolean;
13
- /**
14
- * Check for duplicate keys in complex elements
15
- */
16
- export declare function hasDuplicatesBy<T>(array: T[], selector: ObjectSelector<T>): boolean;
17
- export declare function chunk<T>(array: T[], size: number): T[][];
18
- export declare function orderBy<T>(array: T[], iteratee: SortingSelector<T>, order?: SortingDirection): T[];
19
- export declare function areEqual<T>(array1: ArrayLike<T>, array2: ArrayLike<T>): boolean;
20
- export declare function areEqualBy<T>(array1: ArrayLike<T>, array2: ArrayLike<T>, selector: ObjectSelector<T>): boolean;
21
- export declare function startsWith<T>(array: ArrayLike<T>, target: ArrayLike<T>): boolean;
22
- export declare function endsWith<T>(array: ArrayLike<T>, target: ArrayLike<T>): boolean;
23
- export declare function uniq<T>(array: Array<T>): Array<T>;
24
- export declare function uniqBy<T>(array: Array<T>, selector: ObjectSelector<T>, selection?: "keep-first" | "keep-last"): Array<T>;
25
- export {};
@@ -1,139 +0,0 @@
1
- import { assert, isEmpty } from "./assertions";
2
- export function first(array) {
3
- if (!array)
4
- return undefined;
5
- assert(array.length > 0, "Empty array.");
6
- return array[0];
7
- }
8
- export function last(array) {
9
- if (!array)
10
- return undefined;
11
- assert(array.length > 0, "Empty array.");
12
- return at(array, -1);
13
- }
14
- export function at(array, index) {
15
- const len = array?.length;
16
- if (!len)
17
- return undefined;
18
- if (index < 0) {
19
- index += len;
20
- }
21
- return array[index];
22
- }
23
- /**
24
- * Check for duplicate elements using the equality operator
25
- */
26
- export function hasDuplicates(array) {
27
- return array.some((item, index) => {
28
- return array.indexOf(item) !== index;
29
- });
30
- }
31
- /**
32
- * Check for duplicate keys in complex elements
33
- */
34
- export function hasDuplicatesBy(array, selector) {
35
- return array.some((item, index) => {
36
- return array.findIndex((x) => selector(x) === selector(item)) !== index;
37
- });
38
- }
39
- export function chunk(array, size) {
40
- if (array.length <= size) {
41
- return [array];
42
- }
43
- const chunks = [];
44
- for (let i = 0; i < array.length; i += size) {
45
- chunks.push(array.slice(i, i + size));
46
- }
47
- return chunks;
48
- }
49
- export function orderBy(array, iteratee, order = "asc") {
50
- return [...array].sort((a, b) => {
51
- if (iteratee(a) > iteratee(b)) {
52
- return order === "asc" ? 1 : -1;
53
- }
54
- else if (iteratee(a) < iteratee(b)) {
55
- return order === "asc" ? -1 : 1;
56
- }
57
- else {
58
- return 0;
59
- }
60
- });
61
- }
62
- export function areEqual(array1, array2) {
63
- if (array1 === array2) {
64
- return true;
65
- }
66
- if (array1.length != array2.length) {
67
- return false;
68
- }
69
- for (let i = 0; i < array1.length; i++) {
70
- if (array1[i] !== array2[i]) {
71
- return false;
72
- }
73
- }
74
- return true;
75
- }
76
- export function areEqualBy(array1, array2, selector) {
77
- if (array1 === array2) {
78
- return true;
79
- }
80
- if (array1.length != array2.length) {
81
- return false;
82
- }
83
- for (let i = 0; i < array1.length; i++) {
84
- if (selector(array1[i]) !== selector(array2[i])) {
85
- return false;
86
- }
87
- }
88
- return true;
89
- }
90
- export function startsWith(array, target) {
91
- if (array === target) {
92
- return true;
93
- }
94
- if (target.length > array.length) {
95
- return false;
96
- }
97
- for (let i = 0; i < target.length; i++) {
98
- if (target[i] !== array[i]) {
99
- return false;
100
- }
101
- }
102
- return true;
103
- }
104
- export function endsWith(array, target) {
105
- if (array === target) {
106
- return true;
107
- }
108
- if (target.length > array.length) {
109
- return false;
110
- }
111
- const offset = array.length - target.length;
112
- for (let i = target.length - 1; i >= 0; i--) {
113
- if (target[i] !== array[i + offset]) {
114
- return false;
115
- }
116
- }
117
- return true;
118
- }
119
- export function uniq(array) {
120
- if (isEmpty(array)) {
121
- return array;
122
- }
123
- return Array.from(new Set(array));
124
- }
125
- export function uniqBy(array, selector, selection = "keep-first") {
126
- if (isEmpty(array)) {
127
- return array;
128
- }
129
- return Array.from(array
130
- .reduce((map, e) => {
131
- const key = selector(e);
132
- if (selection === "keep-first" && map.has(key)) {
133
- return map;
134
- }
135
- return map.set(key, e);
136
- }, new Map())
137
- .values());
138
- }
139
- //# 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,8 +0,0 @@
1
- export type AssertErrorMessageInput = string | Error | (() => string);
2
- export declare function assert(condition: boolean, errorMsg: AssertErrorMessageInput): asserts condition;
3
- export declare function isEmpty<T extends object>(obj?: T): obj is undefined;
4
- export declare function isEmpty<T>(array?: T[]): array is undefined;
5
- export declare function some<T extends object>(obj?: T): obj is T;
6
- export declare function some<T>(array?: T[]): array is T[];
7
- export declare function isTruthy<T>(v?: T): v is NonNullable<T>;
8
- export declare function isFalsy<T>(v?: T): v is undefined;
@@ -1,32 +0,0 @@
1
- export function assert(condition, errorMsg) {
2
- if (!condition) {
3
- let error = undefined;
4
- switch (typeof errorMsg) {
5
- case "string":
6
- error = new Error(errorMsg);
7
- break;
8
- case "function":
9
- error = new Error(errorMsg());
10
- break;
11
- default:
12
- error = errorMsg;
13
- }
14
- throw error;
15
- }
16
- }
17
- export function isEmpty(obj) {
18
- if (!obj) {
19
- return true;
20
- }
21
- return Array.isArray(obj) ? obj.length === 0 : Object.keys(obj).length === 0;
22
- }
23
- export function some(obj) {
24
- return !isEmpty(obj);
25
- }
26
- export function isTruthy(v) {
27
- return Boolean(v);
28
- }
29
- export function isFalsy(v) {
30
- return !isTruthy(v);
31
- }
32
- //# sourceMappingURL=assertions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../src/utils/assertions.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CAAC,SAAkB,EAAE,QAAiC;IAC1E,IAAI,CAAC,SAAS,EAAE;QACd,IAAI,KAAK,GAAsB,SAAS,CAAC;QAEzC,QAAQ,OAAO,QAAQ,EAAE;YACvB,KAAK,QAAQ;gBACX,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,UAAU;gBACb,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9B,MAAM;YACR;gBACE,KAAK,GAAG,QAAQ,CAAC;SACpB;QAED,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAID,MAAM,UAAU,OAAO,CAAI,GAAkB;IAC3C,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AAC/E,CAAC;AAID,MAAM,UAAU,IAAI,CAAI,GAAkB;IACxC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,CAAK;IAC/B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,OAAO,CAAI,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC"}
@@ -1,7 +0,0 @@
1
- export declare const _0n: bigint;
2
- export declare const _1n: bigint;
3
- export declare const _7n: bigint;
4
- export declare const _10n: bigint;
5
- export declare const _63n: bigint;
6
- export declare const _127n: bigint;
7
- export declare const _128n: bigint;
@@ -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,54 +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 percent(value: bigint, percentage: bigint, precision?: bigint): bigint;
33
- export declare function sumBy<T>(collection: readonly T[], iteratee: (value: T) => bigint, condition?: (value: T) => boolean): bigint;
34
- /**
35
- * Converts a hex string to bigint.
36
- * @param hex The hex string to be converted.
37
- * @returns The bigint value represented by the hex string.
38
- */
39
- export declare function hexToBigInt(hex: string): bigint;
40
- /**
41
- * Serializes a `BigInt` to a hex string
42
- * @param value The bigint value to be serialized
43
- * @returns Hex representation for the provided `number`.
44
- */
45
- export declare function bigIntToHex(value: bigint): string;
46
- /**
47
- * Returns the two’s complement of a bigint value.
48
- * @param value The bigint value to negate.
49
- * @returns The two’s complement of `number` as a bigint.
50
- */
51
- export declare function _bitNegate(value: bigint): bigint;
52
- export declare function min<T extends bigint | number>(...numbers: T[]): T;
53
- export declare function max<T extends bigint | number>(...numbers: T[]): T;
54
- export {};
@@ -1,170 +0,0 @@
1
- import { first } from "./arrayUtils";
2
- import { isEmpty } from "./assertions";
3
- import { _0n, _10n } from "./bigIntLiterals";
4
- import { isUndefined } from "./objectUtils";
5
- export function ensureBigInt(number) {
6
- return typeof number === "bigint" ? number : BigInt(number);
7
- }
8
- export function undecimalize(decimalStr, options) {
9
- if (!decimalStr) {
10
- return _0n;
11
- }
12
- options = typeof options == "number" ? { decimals: options } : options;
13
- if (isUndefined(options)) {
14
- options = {};
15
- }
16
- options.decimals = options.decimals || 0;
17
- options.decimalMark = options.decimalMark || ".";
18
- const fragments = decimalStr.split(options.decimalMark);
19
- if (fragments.length > 2) {
20
- throw new Error("Invalid numeric string.");
21
- }
22
- let [integer, decimal] = fragments;
23
- integer = _removeLeadingZeros(integer);
24
- const negative = integer.startsWith("-") ? "-" : "";
25
- if (!decimal) {
26
- decimal = "0".repeat(options.decimals);
27
- }
28
- else if (decimal.length < options.decimals) {
29
- decimal = decimal.padEnd(options.decimals, "0");
30
- }
31
- return BigInt(negative + _stripNonDigits(integer + decimal));
32
- }
33
- function _stripNonDigits(value) {
34
- return value.replace(/\D/g, "");
35
- }
36
- export function decimalize(value, options) {
37
- value = ensureBigInt(value);
38
- if (!options) {
39
- return value.toString();
40
- }
41
- options = typeof options == "number" ? { decimals: options } : options;
42
- options.decimals = options.decimals || 0;
43
- options.decimalMark = options.decimalMark || ".";
44
- const pow = _10n ** BigInt(options.decimals);
45
- const integer = value / pow;
46
- const decimal = value - integer * pow;
47
- return _buildFormattedDecimal(integer.toString(10), decimal.toString(10), options);
48
- }
49
- export function percent(value, percentage, precision = 2n) {
50
- return (value * percentage) / 10n ** precision;
51
- }
52
- function _buildFormattedDecimal(integer, decimal, options) {
53
- const integerPart = _addThousandMarks(integer, options.thousandMark);
54
- const decimalPart = _stripTrailingZeros(decimal.padStart(options.decimals, "0"));
55
- if (decimalPart) {
56
- return `${integerPart}${options.decimalMark}${decimalPart}`;
57
- }
58
- else {
59
- return integerPart;
60
- }
61
- }
62
- function _addThousandMarks(value, mark) {
63
- if (!mark) {
64
- return value;
65
- }
66
- return value.replace(/\B(?=(\d{3})+(?!\d))/g, mark);
67
- }
68
- function _stripTrailingZeros(value) {
69
- if (!value.endsWith("0")) {
70
- return value;
71
- }
72
- return value.replace(/\.?0+$/, "");
73
- }
74
- function _removeLeadingZeros(value) {
75
- if (!value.startsWith("0")) {
76
- return value;
77
- }
78
- return value.replace(/^0+\.?/, "");
79
- }
80
- export function sumBy(collection, iteratee, condition) {
81
- let acc = _0n;
82
- if (isEmpty(collection)) {
83
- return acc;
84
- }
85
- for (const item of collection) {
86
- if (isUndefined(condition) || condition(item)) {
87
- acc += iteratee(item);
88
- }
89
- }
90
- return acc;
91
- }
92
- /**
93
- * Converts a hex string to bigint.
94
- * @param hex The hex string to be converted.
95
- * @returns The bigint value represented by the hex string.
96
- */
97
- export function hexToBigInt(hex) {
98
- // https://coolaj86.com/articles/convert-hex-to-decimal-with-js-bigints/
99
- if (hex.length % 2) {
100
- hex = "0" + hex;
101
- }
102
- const value = BigInt("0x" + hex);
103
- const highByte = parseInt(hex.slice(0, 2), 16);
104
- if (0x80 & highByte) {
105
- return -_bitNegate(value); // add two's complement and invert the number to negative
106
- }
107
- return value;
108
- }
109
- /**
110
- * Serializes a `BigInt` to a hex string
111
- * @param value The bigint value to be serialized
112
- * @returns Hex representation for the provided `number`.
113
- */
114
- export function bigIntToHex(value) {
115
- // implementation inspired on
116
- // https://coolaj86.com/articles/convert-decimal-to-hex-with-js-bigints/
117
- const positive = value >= _0n;
118
- if (!positive) {
119
- value = _bitNegate(value);
120
- }
121
- let hex = value.toString(16);
122
- if (hex.length % 2) {
123
- hex = "0" + hex;
124
- }
125
- if (positive && 0x80 & parseInt(hex.slice(0, 2), 16)) {
126
- hex = "00" + hex;
127
- }
128
- return hex;
129
- }
130
- /**
131
- * Returns the two’s complement of a bigint value.
132
- * @param value The bigint value to negate.
133
- * @returns The two’s complement of `number` as a bigint.
134
- */
135
- export function _bitNegate(value) {
136
- const negative = value < _0n;
137
- if (negative) {
138
- value = -value; // turn into a positive number
139
- }
140
- const bits = value.toString(2);
141
- let bitLen = bits.length; // convert to binary
142
- const mod = bitLen % 8;
143
- if (mod > 0) {
144
- bitLen += 8 - mod;
145
- }
146
- else if (negative && first(bits) === "1" && bits.indexOf("1", 1) !== -1) {
147
- bitLen += 8;
148
- }
149
- const mask = (1n << BigInt(bitLen)) - 1n; // create a mask
150
- return (~value & mask) + 1n; // invert bits, mask it, and add one
151
- }
152
- export function min(...numbers) {
153
- let min = first(numbers);
154
- for (const num of numbers) {
155
- if (num < min) {
156
- min = num;
157
- }
158
- }
159
- return min;
160
- }
161
- export function max(...numbers) {
162
- let max = first(numbers);
163
- for (const num of numbers) {
164
- if (num > max) {
165
- max = num;
166
- }
167
- }
168
- return max;
169
- }
170
- //# 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,23 +0,0 @@
1
- import { Amount, AmountType, Box, BoxCandidate, 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
- }[];
22
- export declare function ensureUTxOBigInt(box: Box<Amount>): Box<bigint>;
23
- export declare function ensureUTxOBigInt(candidate: BoxCandidate<Amount>): BoxCandidate<bigint>;
@@ -1,113 +0,0 @@
1
- import { isEmpty } from "./assertions";
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
- export function ensureUTxOBigInt(box) {
104
- return {
105
- ...box,
106
- value: ensureBigInt(box.value),
107
- assets: box.assets.map((token) => ({
108
- tokenId: token.tokenId,
109
- amount: ensureBigInt(token.amount)
110
- }))
111
- };
112
- }
113
- //# 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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"}
@@ -1,7 +0,0 @@
1
- export * from "./arrayUtils";
2
- export * from "./bigIntLiterals";
3
- export * from "./bigIntUtils";
4
- export * from "./boxUtils";
5
- export * from "./objectUtils";
6
- export * from "./stringUtils";
7
- export * from "./assertions";
@@ -1,8 +0,0 @@
1
- export * from "./arrayUtils";
2
- export * from "./bigIntLiterals";
3
- export * from "./bigIntUtils";
4
- export * from "./boxUtils";
5
- export * from "./objectUtils";
6
- export * from "./stringUtils";
7
- export * from "./assertions";
8
- //# sourceMappingURL=index.js.map
@@ -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;AAC9B,cAAc,cAAc,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare function removeUndefined(value: Record<string, unknown>): Record<string, unknown>;
2
- export declare function isUndefined(value: unknown): value is undefined;
3
- export declare function isDefined<T>(value: T | undefined): value is T;
4
- export declare function hasKey(o: unknown, key: PropertyKey): boolean;