@fleet-sdk/common 0.1.2 → 0.1.3

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 (80) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/index.d.ts +1 -0
  3. package/dist/cjs/index.js +1 -0
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/models/collection.d.ts +20 -0
  6. package/dist/cjs/models/collection.js +76 -0
  7. package/dist/cjs/models/collection.js.map +1 -0
  8. package/dist/cjs/models/index.d.ts +1 -0
  9. package/dist/cjs/models/index.js +18 -0
  10. package/dist/cjs/models/index.js.map +1 -0
  11. package/dist/cjs/types/boxes.d.ts +2 -2
  12. package/dist/cjs/types/common.d.ts +6 -1
  13. package/dist/cjs/types/common.js +5 -1
  14. package/dist/cjs/types/common.js.map +1 -1
  15. package/dist/cjs/types/inputs.d.ts +3 -3
  16. package/dist/cjs/utils/arrayUtils.d.ts +4 -5
  17. package/dist/cjs/utils/arrayUtils.js +24 -20
  18. package/dist/cjs/utils/arrayUtils.js.map +1 -1
  19. package/dist/cjs/utils/assertions.d.ts +8 -0
  20. package/dist/cjs/utils/assertions.js +40 -0
  21. package/dist/cjs/utils/assertions.js.map +1 -0
  22. package/dist/cjs/utils/bigIntUtils.d.ts +3 -0
  23. package/dist/cjs/utils/bigIntUtils.js +27 -2
  24. package/dist/cjs/utils/bigIntUtils.js.map +1 -1
  25. package/dist/cjs/utils/boxUtils.d.ts +3 -1
  26. package/dist/cjs/utils/boxUtils.js +17 -6
  27. package/dist/cjs/utils/boxUtils.js.map +1 -1
  28. package/dist/cjs/utils/index.d.ts +1 -0
  29. package/dist/cjs/utils/index.js +1 -0
  30. package/dist/cjs/utils/index.js.map +1 -1
  31. package/dist/cjs/utils/objectUtils.d.ts +1 -0
  32. package/dist/cjs/utils/objectUtils.js +5 -1
  33. package/dist/cjs/utils/objectUtils.js.map +1 -1
  34. package/dist/esm/index.d.ts +1 -0
  35. package/dist/esm/index.js +1 -0
  36. package/dist/esm/index.js.map +1 -1
  37. package/dist/esm/models/collection.d.ts +20 -0
  38. package/dist/esm/models/collection.js +72 -0
  39. package/dist/esm/models/collection.js.map +1 -0
  40. package/dist/esm/models/index.d.ts +1 -0
  41. package/dist/esm/models/index.js +2 -0
  42. package/dist/esm/models/index.js.map +1 -0
  43. package/dist/esm/types/boxes.d.ts +2 -2
  44. package/dist/esm/types/common.d.ts +6 -1
  45. package/dist/esm/types/common.js +4 -0
  46. package/dist/esm/types/common.js.map +1 -1
  47. package/dist/esm/types/inputs.d.ts +3 -3
  48. package/dist/esm/utils/arrayUtils.d.ts +4 -5
  49. package/dist/esm/utils/arrayUtils.js +19 -15
  50. package/dist/esm/utils/arrayUtils.js.map +1 -1
  51. package/dist/esm/utils/assertions.d.ts +8 -0
  52. package/dist/esm/utils/assertions.js +32 -0
  53. package/dist/esm/utils/assertions.js.map +1 -0
  54. package/dist/esm/utils/bigIntUtils.d.ts +3 -0
  55. package/dist/esm/utils/bigIntUtils.js +23 -1
  56. package/dist/esm/utils/bigIntUtils.js.map +1 -1
  57. package/dist/esm/utils/boxUtils.d.ts +3 -1
  58. package/dist/esm/utils/boxUtils.js +11 -1
  59. package/dist/esm/utils/boxUtils.js.map +1 -1
  60. package/dist/esm/utils/index.d.ts +1 -0
  61. package/dist/esm/utils/index.js +1 -0
  62. package/dist/esm/utils/index.js.map +1 -1
  63. package/dist/esm/utils/objectUtils.d.ts +1 -0
  64. package/dist/esm/utils/objectUtils.js +3 -0
  65. package/dist/esm/utils/objectUtils.js.map +1 -1
  66. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  67. package/dist/tsconfig.tsbuildinfo +1 -1
  68. package/package.json +1 -1
  69. package/src/index.ts +1 -0
  70. package/src/models/collection.ts +107 -0
  71. package/src/models/index.ts +1 -0
  72. package/src/types/boxes.ts +2 -2
  73. package/src/types/common.ts +10 -3
  74. package/src/types/inputs.ts +3 -3
  75. package/src/utils/arrayUtils.ts +22 -21
  76. package/src/utils/assertions.ts +44 -0
  77. package/src/utils/bigIntUtils.ts +30 -1
  78. package/src/utils/boxUtils.ts +25 -2
  79. package/src/utils/index.ts +1 -0
  80. package/src/utils/objectUtils.ts +4 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @fleet-sdk/common
2
2
 
3
+ ## 0.1.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 92d8477: Move `Collection` model from core to common package.
8
+ - 280308a: Add `hasKey()` function.
9
+ - e9f4d74: Add `ensureUTxOBigInt()` function.
10
+ - 40a23b2: Add `percent()` function.
11
+ - be6364f: Refactored and added new assertion functions.
12
+ - d59dc22: Fix `first()` function when the first item is equal to zero.
13
+ - 452f97d: Add `min()` and `max()` utility functions.
14
+
3
15
  ## 0.1.2
4
16
 
5
17
  ### Patch Changes
@@ -1,2 +1,3 @@
1
1
  export * from "./utils";
2
2
  export * from "./types";
3
+ export * from "./models";
package/dist/cjs/index.js CHANGED
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./utils"), exports);
18
18
  __exportStar(require("./types"), exports);
19
+ __exportStar(require("./models"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB"}
@@ -0,0 +1,20 @@
1
+ import { OneOrMore } from "../types";
2
+ export type CollectionAddOptions = {
3
+ index?: number;
4
+ };
5
+ export declare abstract class Collection<InternalType, ExternalType> implements Iterable<InternalType> {
6
+ protected readonly _items: InternalType[];
7
+ constructor();
8
+ protected _isIndexOutOfBounds(index: number): boolean;
9
+ [Symbol.iterator](): Iterator<InternalType>;
10
+ get length(): number;
11
+ get isEmpty(): boolean;
12
+ at(index: number): InternalType;
13
+ add(items: OneOrMore<ExternalType>, options?: CollectionAddOptions): number;
14
+ abstract remove(item: unknown): number;
15
+ protected abstract _map(item: ExternalType | InternalType): InternalType;
16
+ protected _addOne(item: InternalType | ExternalType, options?: CollectionAddOptions): number;
17
+ protected _addOneOrMore(items: OneOrMore<ExternalType>, options?: CollectionAddOptions): number;
18
+ toArray(): InternalType[];
19
+ reduce<U>(callbackFn: (accumulator: U, currentValue: InternalType, currentIndex: number, array: InternalType[]) => U, initialValue: U): U;
20
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Collection = void 0;
4
+ const utils_1 = require("../utils");
5
+ class Collection {
6
+ _items;
7
+ constructor() {
8
+ this._items = [];
9
+ }
10
+ _isIndexOutOfBounds(index) {
11
+ return index < 0 || index >= this._items.length;
12
+ }
13
+ [Symbol.iterator]() {
14
+ let counter = 0;
15
+ return {
16
+ next: () => {
17
+ return {
18
+ done: counter >= this.length,
19
+ value: this._items[counter++]
20
+ };
21
+ }
22
+ };
23
+ }
24
+ get length() {
25
+ return this._items.length;
26
+ }
27
+ get isEmpty() {
28
+ return this.length === 0;
29
+ }
30
+ at(index) {
31
+ if (this._isIndexOutOfBounds(index)) {
32
+ throw new RangeError(`Index '${index}' is out of range.`);
33
+ }
34
+ return this._items[index];
35
+ }
36
+ add(items, options) {
37
+ return this._addOneOrMore(items, options);
38
+ }
39
+ _addOne(item, options) {
40
+ if ((0, utils_1.isDefined)(options) && (0, utils_1.isDefined)(options.index)) {
41
+ if (options.index === this.length) {
42
+ this._items.push(this._map(item));
43
+ return this.length;
44
+ }
45
+ if (this._isIndexOutOfBounds(options.index)) {
46
+ throw new RangeError(`Index '${options.index}' is out of range.`);
47
+ }
48
+ this._items.splice(options.index, 0, this._map(item));
49
+ return this.length;
50
+ }
51
+ this._items.push(this._map(item));
52
+ return this._items.length;
53
+ }
54
+ _addOneOrMore(items, options) {
55
+ if (Array.isArray(items)) {
56
+ if ((0, utils_1.isDefined)(options) && (0, utils_1.isDefined)(options.index)) {
57
+ items = items.reverse();
58
+ }
59
+ for (const item of items) {
60
+ this._addOne(item, options);
61
+ }
62
+ }
63
+ else {
64
+ this._addOne(items, options);
65
+ }
66
+ return this.length;
67
+ }
68
+ toArray() {
69
+ return [...this._items];
70
+ }
71
+ reduce(callbackFn, initialValue) {
72
+ return this._items.reduce(callbackFn, initialValue);
73
+ }
74
+ }
75
+ exports.Collection = Collection;
76
+ //# sourceMappingURL=collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/models/collection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./collection";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./collection"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B"}
@@ -1,11 +1,11 @@
1
- import { ErgoTree } from "./common";
1
+ import { ErgoTreeHex } from "./common";
2
2
  import { NonMandatoryRegisters } from "./registers";
3
3
  import { TokenAmount } from "./token";
4
4
  import { TransactionId } from "./transactions";
5
5
  export type BoxId = string;
6
6
  export type AmountType = string | bigint;
7
7
  type BoxBaseType<T extends AmountType, R extends NonMandatoryRegisters> = {
8
- ergoTree: ErgoTree;
8
+ ergoTree: ErgoTreeHex;
9
9
  creationHeight: number;
10
10
  value: T;
11
11
  assets: TokenAmount<T>[];
@@ -1,5 +1,5 @@
1
1
  export type HexString = string;
2
- export type ErgoTree = string;
2
+ export type ErgoTreeHex = string;
3
3
  export type Base58String = string;
4
4
  export type Amount = string | bigint;
5
5
  export type OneOrMore<T> = T | T[];
@@ -16,3 +16,8 @@ export declare enum AddressType {
16
16
  P2SH = 2,
17
17
  P2S = 3
18
18
  }
19
+ export declare const ergoTreeHeaderFlags: {
20
+ readonly sizeInclusion: 8;
21
+ readonly constantSegregation: 16;
22
+ };
23
+ export type ErgoTreeHeaderFlag = (typeof ergoTreeHeaderFlags)[keyof typeof ergoTreeHeaderFlags];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AddressType = exports.Network = void 0;
3
+ exports.ergoTreeHeaderFlags = exports.AddressType = exports.Network = void 0;
4
4
  var Network;
5
5
  (function (Network) {
6
6
  Network[Network["Mainnet"] = 0] = "Mainnet";
@@ -12,4 +12,8 @@ var AddressType;
12
12
  AddressType[AddressType["P2SH"] = 2] = "P2SH";
13
13
  AddressType[AddressType["P2S"] = 3] = "P2S";
14
14
  })(AddressType || (exports.AddressType = AddressType = {}));
15
+ exports.ergoTreeHeaderFlags = {
16
+ sizeInclusion: 0x08,
17
+ constantSegregation: 0x10
18
+ };
15
19
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":";;;AAcA,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,2CAAgB,CAAA;IAChB,4CAAgB,CAAA;AAClB,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,6CAAQ,CAAA;IACR,6CAAQ,CAAA;IACR,2CAAO,CAAA;AACT,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":";;;AAcA,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,2CAAc,CAAA;IACd,4CAAc,CAAA;AAChB,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,6CAAQ,CAAA;IACR,6CAAQ,CAAA;IACR,2CAAO,CAAA;AACT,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAEY,QAAA,mBAAmB,GAAG;IACjC,aAAa,EAAE,IAAI;IACnB,mBAAmB,EAAE,IAAI;CACjB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { BoxId } from "./boxes";
2
- import { ErgoTree } from "./common";
2
+ import { ErgoTreeHex } from "./common";
3
3
  import { ContextExtension } from "./contextExtension";
4
4
  import { ProverResult } from "./proverResult";
5
5
  import { NonMandatoryRegisters } from "./registers";
@@ -16,7 +16,7 @@ export type UnsignedInput = {
16
16
  export type EIP12UnsignedInput = UnsignedInput & {
17
17
  transactionId: TransactionId;
18
18
  index: number;
19
- ergoTree: ErgoTree;
19
+ ergoTree: ErgoTreeHex;
20
20
  creationHeight: number;
21
21
  value: string;
22
22
  assets: TokenAmount<string>[];
@@ -26,7 +26,7 @@ export type EIP12UnsignedDataInput = {
26
26
  boxId: BoxId;
27
27
  transactionId: TransactionId;
28
28
  index: number;
29
- ergoTree: ErgoTree;
29
+ ergoTree: ErgoTreeHex;
30
30
  creationHeight: number;
31
31
  value: string;
32
32
  assets: TokenAmount<string>[];
@@ -1,12 +1,11 @@
1
1
  import { SortingDirection, SortingSelector } from "../types";
2
2
  type ObjectSelector<T> = (item: T) => T[keyof T];
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
3
  export declare function first(array: undefined): undefined;
8
- export declare function first(array: Uint8Array): number;
9
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;
10
9
  /**
11
10
  * Check for duplicate elements using the equality operator
12
11
  */
@@ -1,27 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uniqBy = exports.uniq = exports.endsWith = exports.startsWith = exports.areEqualBy = exports.areEqual = exports.orderBy = exports.chunk = exports.hasDuplicatesBy = exports.hasDuplicates = exports.first = exports.some = exports.isEmpty = void 0;
4
- function isEmpty(obj) {
5
- if (!obj) {
6
- return true;
7
- }
8
- return Array.isArray(obj) ? obj.length === 0 : Object.keys(obj).length === 0;
9
- }
10
- exports.isEmpty = isEmpty;
11
- function some(obj) {
12
- return !isEmpty(obj);
13
- }
14
- exports.some = some;
3
+ exports.uniqBy = exports.uniq = exports.endsWith = exports.startsWith = exports.areEqualBy = exports.areEqual = exports.orderBy = exports.chunk = exports.hasDuplicatesBy = exports.hasDuplicates = exports.at = exports.last = exports.first = void 0;
4
+ const assertions_1 = require("./assertions");
15
5
  function first(array) {
16
- if (!array) {
17
- return;
18
- }
19
- if (!array[0]) {
20
- throw Error("Empty array.");
21
- }
6
+ if (!array)
7
+ return undefined;
8
+ (0, assertions_1.assert)(array.length > 0, "Empty array.");
22
9
  return array[0];
23
10
  }
24
11
  exports.first = first;
12
+ function last(array) {
13
+ if (!array)
14
+ return undefined;
15
+ (0, assertions_1.assert)(array.length > 0, "Empty array.");
16
+ return at(array, -1);
17
+ }
18
+ exports.last = last;
19
+ function at(array, index) {
20
+ const len = array?.length;
21
+ if (!len)
22
+ return undefined;
23
+ if (index < 0) {
24
+ index += len;
25
+ }
26
+ return array[index];
27
+ }
28
+ exports.at = at;
25
29
  /**
26
30
  * Check for duplicate elements using the equality operator
27
31
  */
@@ -127,14 +131,14 @@ function endsWith(array, target) {
127
131
  }
128
132
  exports.endsWith = endsWith;
129
133
  function uniq(array) {
130
- if (isEmpty(array)) {
134
+ if ((0, assertions_1.isEmpty)(array)) {
131
135
  return array;
132
136
  }
133
137
  return Array.from(new Set(array));
134
138
  }
135
139
  exports.uniq = uniq;
136
140
  function uniqBy(array, selector, selection = "keep-first") {
137
- if (isEmpty(array)) {
141
+ if ((0, assertions_1.isEmpty)(array)) {
138
142
  return array;
139
143
  }
140
144
  return Array.from(array
@@ -1 +1 @@
1
- {"version":3,"file":"arrayUtils.js","sourceRoot":"","sources":["../../../src/utils/arrayUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arrayUtils.js","sourceRoot":"","sources":["../../../src/utils/arrayUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
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;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFalsy = exports.isTruthy = exports.some = exports.isEmpty = exports.assert = void 0;
4
+ function assert(condition, errorMsg) {
5
+ if (!condition) {
6
+ let error = undefined;
7
+ switch (typeof errorMsg) {
8
+ case "string":
9
+ error = new Error(errorMsg);
10
+ break;
11
+ case "function":
12
+ error = new Error(errorMsg());
13
+ break;
14
+ default:
15
+ error = errorMsg;
16
+ }
17
+ throw error;
18
+ }
19
+ }
20
+ exports.assert = assert;
21
+ function isEmpty(obj) {
22
+ if (!obj) {
23
+ return true;
24
+ }
25
+ return Array.isArray(obj) ? obj.length === 0 : Object.keys(obj).length === 0;
26
+ }
27
+ exports.isEmpty = isEmpty;
28
+ function some(obj) {
29
+ return !isEmpty(obj);
30
+ }
31
+ exports.some = some;
32
+ function isTruthy(v) {
33
+ return Boolean(v);
34
+ }
35
+ exports.isTruthy = isTruthy;
36
+ function isFalsy(v) {
37
+ return !isTruthy(v);
38
+ }
39
+ exports.isFalsy = isFalsy;
40
+ //# sourceMappingURL=assertions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../src/utils/assertions.ts"],"names":[],"mappings":";;;AAEA,SAAgB,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;AAjBD,wBAiBC;AAID,SAAgB,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;AAND,0BAMC;AAID,SAAgB,IAAI,CAAI,GAAkB;IACxC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAFD,oBAEC;AAED,SAAgB,QAAQ,CAAI,CAAK;IAC/B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAFD,4BAEC;AAED,SAAgB,OAAO,CAAI,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC;AAFD,0BAEC"}
@@ -29,6 +29,7 @@ type FormattingOptions = {
29
29
  decimalMark?: string;
30
30
  };
31
31
  export declare function decimalize(value: Amount, options?: FormattingOptions | number): string;
32
+ export declare function percent(value: bigint, percentage: bigint, precision?: bigint): bigint;
32
33
  export declare function sumBy<T>(collection: readonly T[], iteratee: (value: T) => bigint, condition?: (value: T) => boolean): bigint;
33
34
  /**
34
35
  * Converts a hex string to bigint.
@@ -48,4 +49,6 @@ export declare function bigIntToHex(value: bigint): string;
48
49
  * @returns The two’s complement of `number` as a bigint.
49
50
  */
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;
51
54
  export {};
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._bitNegate = exports.bigIntToHex = exports.hexToBigInt = exports.sumBy = exports.decimalize = exports.undecimalize = exports.ensureBigInt = void 0;
3
+ exports.max = exports.min = exports._bitNegate = exports.bigIntToHex = exports.hexToBigInt = exports.sumBy = exports.percent = exports.decimalize = exports.undecimalize = exports.ensureBigInt = void 0;
4
4
  const arrayUtils_1 = require("./arrayUtils");
5
+ const assertions_1 = require("./assertions");
5
6
  const bigIntLiterals_1 = require("./bigIntLiterals");
6
7
  const objectUtils_1 = require("./objectUtils");
7
8
  function ensureBigInt(number) {
@@ -51,6 +52,10 @@ function decimalize(value, options) {
51
52
  return _buildFormattedDecimal(integer.toString(10), decimal.toString(10), options);
52
53
  }
53
54
  exports.decimalize = decimalize;
55
+ function percent(value, percentage, precision = 2n) {
56
+ return (value * percentage) / 10n ** precision;
57
+ }
58
+ exports.percent = percent;
54
59
  function _buildFormattedDecimal(integer, decimal, options) {
55
60
  const integerPart = _addThousandMarks(integer, options.thousandMark);
56
61
  const decimalPart = _stripTrailingZeros(decimal.padStart(options.decimals, "0"));
@@ -81,7 +86,7 @@ function _removeLeadingZeros(value) {
81
86
  }
82
87
  function sumBy(collection, iteratee, condition) {
83
88
  let acc = bigIntLiterals_1._0n;
84
- if ((0, arrayUtils_1.isEmpty)(collection)) {
89
+ if ((0, assertions_1.isEmpty)(collection)) {
85
90
  return acc;
86
91
  }
87
92
  for (const item of collection) {
@@ -155,4 +160,24 @@ function _bitNegate(value) {
155
160
  return (~value & mask) + 1n; // invert bits, mask it, and add one
156
161
  }
157
162
  exports._bitNegate = _bitNegate;
163
+ function min(...numbers) {
164
+ let min = (0, arrayUtils_1.first)(numbers);
165
+ for (const num of numbers) {
166
+ if (num < min) {
167
+ min = num;
168
+ }
169
+ }
170
+ return min;
171
+ }
172
+ exports.min = min;
173
+ function max(...numbers) {
174
+ let max = (0, arrayUtils_1.first)(numbers);
175
+ for (const num of numbers) {
176
+ if (num > max) {
177
+ max = num;
178
+ }
179
+ }
180
+ return max;
181
+ }
182
+ exports.max = max;
158
183
  //# sourceMappingURL=bigIntUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bigIntUtils.js","sourceRoot":"","sources":["../../../src/utils/bigIntUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bigIntUtils.js","sourceRoot":"","sources":["../../../src/utils/bigIntUtils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Amount, AmountType, Box, NonMandatoryRegisters, TokenAmount, TokenId } from "../types";
1
+ import { Amount, AmountType, Box, BoxCandidate, NonMandatoryRegisters, TokenAmount, TokenId } from "../types";
2
2
  export declare function utxoSum(boxes: MinimalBoxAmounts): BoxSummary;
3
3
  export declare function utxoSum(boxes: MinimalBoxAmounts, tokenId: TokenId): bigint;
4
4
  export declare function utxoDiff(minuend: BoxSummary | Box<Amount>[], subtrahend: BoxSummary | Box<Amount>[]): BoxSummary;
@@ -19,3 +19,5 @@ export type MinimalBoxAmounts = readonly {
19
19
  value: Amount;
20
20
  assets: TokenAmount<Amount>[];
21
21
  }[];
22
+ export declare function ensureUTxOBigInt(box: Box<Amount>): Box<bigint>;
23
+ export declare function ensureUTxOBigInt(candidate: BoxCandidate<Amount>): BoxCandidate<bigint>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.utxoFilter = exports.areRegistersDenselyPacked = exports.utxoDiff = exports.utxoSum = void 0;
4
- const arrayUtils_1 = require("./arrayUtils");
3
+ exports.ensureUTxOBigInt = exports.utxoFilter = exports.areRegistersDenselyPacked = exports.utxoDiff = exports.utxoSum = void 0;
4
+ const assertions_1 = require("./assertions");
5
5
  const bigIntLiterals_1 = require("./bigIntLiterals");
6
6
  const bigIntUtils_1 = require("./bigIntUtils");
7
7
  const objectUtils_1 = require("./objectUtils");
@@ -71,14 +71,14 @@ function areRegistersDenselyPacked(registers) {
71
71
  }
72
72
  exports.areRegistersDenselyPacked = areRegistersDenselyPacked;
73
73
  function utxoFilter(utxos, filterParams) {
74
- if ((0, arrayUtils_1.isEmpty)(filterParams) || (0, arrayUtils_1.isEmpty)(utxos)) {
74
+ if ((0, assertions_1.isEmpty)(filterParams) || (0, assertions_1.isEmpty)(utxos)) {
75
75
  return utxos;
76
76
  }
77
77
  const { by, max } = filterParams;
78
78
  let filtered = utxos;
79
79
  if (by) {
80
80
  filtered = utxos.filter(by);
81
- if ((0, arrayUtils_1.isEmpty)(filtered)) {
81
+ if ((0, assertions_1.isEmpty)(filtered)) {
82
82
  return filtered;
83
83
  }
84
84
  }
@@ -87,7 +87,7 @@ function utxoFilter(utxos, filterParams) {
87
87
  }
88
88
  if ((0, objectUtils_1.isDefined)(max.aggregatedDistinctTokens)) {
89
89
  const tokenIds = _getDistinctTokenIds(filtered, max.aggregatedDistinctTokens);
90
- filtered = filtered.filter((utxo) => (0, arrayUtils_1.isEmpty)(utxo.assets) || utxo.assets.every((token) => tokenIds.has(token.tokenId)));
90
+ filtered = filtered.filter((utxo) => (0, assertions_1.isEmpty)(utxo.assets) || utxo.assets.every((token) => tokenIds.has(token.tokenId)));
91
91
  }
92
92
  if ((0, objectUtils_1.isDefined)(max.count) && filtered.length > max.count) {
93
93
  filtered = filtered.slice(0, max.count);
@@ -98,7 +98,7 @@ exports.utxoFilter = utxoFilter;
98
98
  function _getDistinctTokenIds(utxos, max) {
99
99
  const tokenIds = new Set();
100
100
  for (let i = 0; i < utxos.length && tokenIds.size < max; i++) {
101
- if ((0, arrayUtils_1.isEmpty)(utxos[i].assets) || utxos[i].assets.length > max) {
101
+ if ((0, assertions_1.isEmpty)(utxos[i].assets) || utxos[i].assets.length > max) {
102
102
  continue;
103
103
  }
104
104
  for (const token of utxos[i].assets) {
@@ -107,4 +107,15 @@ function _getDistinctTokenIds(utxos, max) {
107
107
  }
108
108
  return tokenIds;
109
109
  }
110
+ function ensureUTxOBigInt(box) {
111
+ return {
112
+ ...box,
113
+ value: (0, bigIntUtils_1.ensureBigInt)(box.value),
114
+ assets: box.assets.map((token) => ({
115
+ tokenId: token.tokenId,
116
+ amount: (0, bigIntUtils_1.ensureBigInt)(token.amount)
117
+ }))
118
+ };
119
+ }
120
+ exports.ensureUTxOBigInt = ensureUTxOBigInt;
110
121
  //# sourceMappingURL=boxUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"boxUtils.js","sourceRoot":"","sources":["../../../src/utils/boxUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boxUtils.js","sourceRoot":"","sources":["../../../src/utils/boxUtils.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,4 @@ export * from "./bigIntUtils";
4
4
  export * from "./boxUtils";
5
5
  export * from "./objectUtils";
6
6
  export * from "./stringUtils";
7
+ export * from "./assertions";
@@ -20,4 +20,5 @@ __exportStar(require("./bigIntUtils"), exports);
20
20
  __exportStar(require("./boxUtils"), exports);
21
21
  __exportStar(require("./objectUtils"), exports);
22
22
  __exportStar(require("./stringUtils"), exports);
23
+ __exportStar(require("./assertions"), exports);
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B;AAC9B,6CAA2B;AAC3B,gDAA8B;AAC9B,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B;AAC9B,6CAA2B;AAC3B,gDAA8B;AAC9B,gDAA8B;AAC9B,+CAA6B"}
@@ -1,3 +1,4 @@
1
1
  export declare function removeUndefined(value: Record<string, unknown>): Record<string, unknown>;
2
2
  export declare function isUndefined(value: unknown): value is undefined;
3
3
  export declare function isDefined<T>(value: T | undefined): value is T;
4
+ export declare function hasKey(o: unknown, key: PropertyKey): boolean;