@nadohq/shared 0.1.0-alpha.45 → 0.1.0-alpha.47
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/dist/consts/chainEnvToChain.d.cts +32 -33
- package/dist/consts/chainEnvToChain.d.ts +32 -33
- package/dist/consts/index.d.cts +0 -1
- package/dist/consts/index.d.ts +0 -1
- package/dist/eip712/eip712ValueTypes.d.cts +1 -1
- package/dist/eip712/eip712ValueTypes.d.ts +1 -1
- package/dist/encoding/encoding.cjs +21 -0
- package/dist/encoding/encoding.cjs.map +1 -1
- package/dist/encoding/encoding.d.cts +27 -3
- package/dist/encoding/encoding.d.ts +27 -3
- package/dist/encoding/encoding.js +24 -1
- package/dist/encoding/encoding.js.map +1 -1
- package/dist/encoding/index.d.cts +2 -2
- package/dist/encoding/index.d.ts +2 -2
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/types/balanceTypes.d.cts +1 -1
- package/dist/types/balanceTypes.d.ts +1 -1
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/orderAppendixTypes.cjs.map +1 -1
- package/dist/types/orderAppendixTypes.d.cts +21 -1
- package/dist/types/orderAppendixTypes.d.ts +21 -1
- package/dist/types/viemTypes.d.cts +1 -1
- package/dist/types/viemTypes.d.ts +1 -1
- package/dist/utils/balanceValue.d.cts +1 -1
- package/dist/utils/balanceValue.d.ts +1 -1
- package/dist/utils/bytes32.d.cts +1 -1
- package/dist/utils/bytes32.d.ts +1 -1
- package/dist/utils/math/bigDecimal.cjs +4 -3
- package/dist/utils/math/bigDecimal.cjs.map +1 -1
- package/dist/utils/math/bigDecimal.js +4 -3
- package/dist/utils/math/bigDecimal.js.map +1 -1
- package/dist/utils/orders/appendix/orderAppendix.test.cjs +54 -0
- package/dist/utils/orders/appendix/orderAppendix.test.cjs.map +1 -1
- package/dist/utils/orders/appendix/orderAppendix.test.js +54 -0
- package/dist/utils/orders/appendix/orderAppendix.test.js.map +1 -1
- package/dist/utils/orders/appendix/packOrderAppendix.cjs +5 -1
- package/dist/utils/orders/appendix/packOrderAppendix.cjs.map +1 -1
- package/dist/utils/orders/appendix/packOrderAppendix.js +5 -1
- package/dist/utils/orders/appendix/packOrderAppendix.js.map +1 -1
- package/dist/utils/orders/appendix/types.cjs.map +1 -1
- package/dist/utils/orders/appendix/types.d.cts +6 -4
- package/dist/utils/orders/appendix/types.d.ts +6 -4
- package/dist/utils/orders/appendix/unpackOrderAppendix.cjs +19 -3
- package/dist/utils/orders/appendix/unpackOrderAppendix.cjs.map +1 -1
- package/dist/utils/orders/appendix/unpackOrderAppendix.js +19 -3
- package/dist/utils/orders/appendix/unpackOrderAppendix.js.map +1 -1
- package/dist/utils/productTypeFilter.d.cts +2 -2
- package/dist/utils/productTypeFilter.d.ts +2 -2
- package/dist/utils/toPrintableObject.cjs +2 -2
- package/dist/utils/toPrintableObject.cjs.map +1 -1
- package/dist/utils/toPrintableObject.d.cts +5 -1
- package/dist/utils/toPrintableObject.d.ts +5 -1
- package/dist/utils/toPrintableObject.js +2 -2
- package/dist/utils/toPrintableObject.js.map +1 -1
- package/package.json +6 -3
- package/src/encoding/encoding.ts +43 -1
- package/src/types/orderAppendixTypes.ts +21 -0
- package/src/utils/math/bigDecimal.ts +5 -3
- package/src/utils/orders/appendix/orderAppendix.test.ts +58 -0
- package/src/utils/orders/appendix/packOrderAppendix.ts +5 -1
- package/src/utils/orders/appendix/types.ts +7 -5
- package/src/utils/orders/appendix/unpackOrderAppendix.ts +18 -2
- package/src/utils/toPrintableObject.ts +11 -2
|
@@ -43,6 +43,8 @@ function mapOrderAppendixToBitValues(
|
|
|
43
43
|
|
|
44
44
|
return {
|
|
45
45
|
value,
|
|
46
|
+
builderId: appendix.builder?.builderId ?? 0,
|
|
47
|
+
builderFeeRate: appendix.builder?.builderFeeRate ?? 0,
|
|
46
48
|
reserved: 0,
|
|
47
49
|
trigger,
|
|
48
50
|
reduceOnly: appendix.reduceOnly ? 1 : 0,
|
|
@@ -61,7 +63,9 @@ export function packOrderAppendix(appendix: OrderAppendix): bigint {
|
|
|
61
63
|
|
|
62
64
|
// Ensure value is within 64 bits
|
|
63
65
|
let packed = bitMaskValue(bits.value, 64);
|
|
64
|
-
packed = (packed <<
|
|
66
|
+
packed = (packed << 16n) | bitMaskValue(bits.builderId, 16);
|
|
67
|
+
packed = (packed << 10n) | bitMaskValue(bits.builderFeeRate, 10);
|
|
68
|
+
packed = (packed << 24n) | bitMaskValue(bits.reserved, 24);
|
|
65
69
|
packed = (packed << 2n) | bitMaskValue(bits.trigger, 2);
|
|
66
70
|
packed = (packed << 1n) | bitMaskValue(bits.reduceOnly, 1);
|
|
67
71
|
packed = (packed << 2n) | bitMaskValue(bits.orderType, 2);
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Bit layout for OrderAppendix packing (MSB → LSB):
|
|
3
3
|
*
|
|
4
|
-
* | value | reserved | trigger | reduceOnly | orderType | isolated | version |
|
|
5
|
-
*
|
|
6
|
-
* | 127..64 | 63..14 | 13..12 | 11 | 10..9 | 8 | 7..0 |
|
|
7
|
-
* | 64 bits |
|
|
4
|
+
* | value | builderId | builderFeeRate | reserved | trigger | reduceOnly | orderType | isolated | version |
|
|
5
|
+
* |-----------|-----------|----------------|----------|---------|------------|-----------|----------|---------|
|
|
6
|
+
* | 127..64 | 63..48 | 47..38 | 37..14 | 13..12 | 11 | 10..9 | 8 | 7..0 |
|
|
7
|
+
* | 64 bits | 16 bits | 10 bits | 24 bits | 2 bits | 1 bit | 2 bits | 1 bit | 8 bits |
|
|
8
8
|
*/
|
|
9
9
|
export interface PackedOrderAppendixBits {
|
|
10
10
|
value: bigint; // 64 bits
|
|
11
|
-
|
|
11
|
+
builderId: number; // 16 bits
|
|
12
|
+
builderFeeRate: number; // 10 bits
|
|
13
|
+
reserved: number; // 24 bits, set to 0
|
|
12
14
|
trigger: number; // 2 bits
|
|
13
15
|
reduceOnly: number; // 1 bit
|
|
14
16
|
orderType: number; // 2 bits
|
|
@@ -45,6 +45,15 @@ function mapBitValuesToAppendix(bits: PackedOrderAppendixBits): OrderAppendix {
|
|
|
45
45
|
return unpackTwapOrderAppendixValue(bits.value);
|
|
46
46
|
}
|
|
47
47
|
})();
|
|
48
|
+
const builderFields = (() => {
|
|
49
|
+
if (bits.builderId) {
|
|
50
|
+
return {
|
|
51
|
+
builderId: bits.builderId,
|
|
52
|
+
builderFeeRate: bits.builderFeeRate,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
})();
|
|
48
57
|
|
|
49
58
|
return {
|
|
50
59
|
reduceOnly: !!bits.reduceOnly,
|
|
@@ -52,6 +61,7 @@ function mapBitValuesToAppendix(bits: PackedOrderAppendixBits): OrderAppendix {
|
|
|
52
61
|
triggerType,
|
|
53
62
|
isolated: isolatedFields,
|
|
54
63
|
twap: twapFields,
|
|
64
|
+
builder: builderFields,
|
|
55
65
|
};
|
|
56
66
|
}
|
|
57
67
|
|
|
@@ -74,13 +84,19 @@ export function unpackOrderAppendix(packed: BigDecimalish): OrderAppendix {
|
|
|
74
84
|
temp >>= 1n;
|
|
75
85
|
const trigger = Number(bitMaskValue(temp, 2));
|
|
76
86
|
temp >>= 2n;
|
|
77
|
-
const reserved = Number(bitMaskValue(temp,
|
|
78
|
-
temp >>=
|
|
87
|
+
const reserved = Number(bitMaskValue(temp, 24));
|
|
88
|
+
temp >>= 24n;
|
|
89
|
+
const builderFeeRate = Number(bitMaskValue(temp, 10));
|
|
90
|
+
temp >>= 10n;
|
|
91
|
+
const builderId = Number(bitMaskValue(temp, 16));
|
|
92
|
+
temp >>= 16n;
|
|
79
93
|
// The remaining bits are the value, which should be 64 bits
|
|
80
94
|
const value = bitMaskValue(temp, 64);
|
|
81
95
|
|
|
82
96
|
return mapBitValuesToAppendix({
|
|
83
97
|
value,
|
|
98
|
+
builderId,
|
|
99
|
+
builderFeeRate,
|
|
84
100
|
reserved,
|
|
85
101
|
trigger,
|
|
86
102
|
reduceOnly,
|
|
@@ -4,8 +4,17 @@ import { BigDecimal } from './math/bigDecimal';
|
|
|
4
4
|
* Util for converting any BigDecimal types into a string so that it can be logged nicely.
|
|
5
5
|
* Handles cyclic references by returning '[Circular]' for already-visited objects.
|
|
6
6
|
*/
|
|
7
|
+
export function toPrintableObject(
|
|
8
|
+
obj: null | undefined,
|
|
9
|
+
seen?: WeakSet<object>,
|
|
10
|
+
): null;
|
|
11
|
+
export function toPrintableObject(
|
|
12
|
+
obj: BigDecimal | bigint,
|
|
13
|
+
seen?: WeakSet<object>,
|
|
14
|
+
): string;
|
|
15
|
+
export function toPrintableObject(obj: unknown, seen?: WeakSet<object>): object;
|
|
7
16
|
export function toPrintableObject(obj: unknown, seen = new WeakSet()): unknown {
|
|
8
|
-
if (obj
|
|
17
|
+
if (obj === null || obj === undefined) {
|
|
9
18
|
return null;
|
|
10
19
|
}
|
|
11
20
|
if (obj instanceof BigDecimal || typeof obj === 'bigint') {
|
|
@@ -29,7 +38,7 @@ export function toPrintableObject(obj: unknown, seen = new WeakSet()): unknown {
|
|
|
29
38
|
]),
|
|
30
39
|
);
|
|
31
40
|
} catch {
|
|
32
|
-
return '[Unserializable Object]';
|
|
41
|
+
return { error: '[Unserializable Object]' };
|
|
33
42
|
}
|
|
34
43
|
}
|
|
35
44
|
return obj;
|