@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.
Files changed (65) hide show
  1. package/dist/consts/chainEnvToChain.d.cts +32 -33
  2. package/dist/consts/chainEnvToChain.d.ts +32 -33
  3. package/dist/consts/index.d.cts +0 -1
  4. package/dist/consts/index.d.ts +0 -1
  5. package/dist/eip712/eip712ValueTypes.d.cts +1 -1
  6. package/dist/eip712/eip712ValueTypes.d.ts +1 -1
  7. package/dist/encoding/encoding.cjs +21 -0
  8. package/dist/encoding/encoding.cjs.map +1 -1
  9. package/dist/encoding/encoding.d.cts +27 -3
  10. package/dist/encoding/encoding.d.ts +27 -3
  11. package/dist/encoding/encoding.js +24 -1
  12. package/dist/encoding/encoding.js.map +1 -1
  13. package/dist/encoding/index.d.cts +2 -2
  14. package/dist/encoding/index.d.ts +2 -2
  15. package/dist/index.d.cts +3 -3
  16. package/dist/index.d.ts +3 -3
  17. package/dist/types/balanceTypes.d.cts +1 -1
  18. package/dist/types/balanceTypes.d.ts +1 -1
  19. package/dist/types/index.d.cts +1 -1
  20. package/dist/types/index.d.ts +1 -1
  21. package/dist/types/orderAppendixTypes.cjs.map +1 -1
  22. package/dist/types/orderAppendixTypes.d.cts +21 -1
  23. package/dist/types/orderAppendixTypes.d.ts +21 -1
  24. package/dist/types/viemTypes.d.cts +1 -1
  25. package/dist/types/viemTypes.d.ts +1 -1
  26. package/dist/utils/balanceValue.d.cts +1 -1
  27. package/dist/utils/balanceValue.d.ts +1 -1
  28. package/dist/utils/bytes32.d.cts +1 -1
  29. package/dist/utils/bytes32.d.ts +1 -1
  30. package/dist/utils/math/bigDecimal.cjs +4 -3
  31. package/dist/utils/math/bigDecimal.cjs.map +1 -1
  32. package/dist/utils/math/bigDecimal.js +4 -3
  33. package/dist/utils/math/bigDecimal.js.map +1 -1
  34. package/dist/utils/orders/appendix/orderAppendix.test.cjs +54 -0
  35. package/dist/utils/orders/appendix/orderAppendix.test.cjs.map +1 -1
  36. package/dist/utils/orders/appendix/orderAppendix.test.js +54 -0
  37. package/dist/utils/orders/appendix/orderAppendix.test.js.map +1 -1
  38. package/dist/utils/orders/appendix/packOrderAppendix.cjs +5 -1
  39. package/dist/utils/orders/appendix/packOrderAppendix.cjs.map +1 -1
  40. package/dist/utils/orders/appendix/packOrderAppendix.js +5 -1
  41. package/dist/utils/orders/appendix/packOrderAppendix.js.map +1 -1
  42. package/dist/utils/orders/appendix/types.cjs.map +1 -1
  43. package/dist/utils/orders/appendix/types.d.cts +6 -4
  44. package/dist/utils/orders/appendix/types.d.ts +6 -4
  45. package/dist/utils/orders/appendix/unpackOrderAppendix.cjs +19 -3
  46. package/dist/utils/orders/appendix/unpackOrderAppendix.cjs.map +1 -1
  47. package/dist/utils/orders/appendix/unpackOrderAppendix.js +19 -3
  48. package/dist/utils/orders/appendix/unpackOrderAppendix.js.map +1 -1
  49. package/dist/utils/productTypeFilter.d.cts +2 -2
  50. package/dist/utils/productTypeFilter.d.ts +2 -2
  51. package/dist/utils/toPrintableObject.cjs +2 -2
  52. package/dist/utils/toPrintableObject.cjs.map +1 -1
  53. package/dist/utils/toPrintableObject.d.cts +5 -1
  54. package/dist/utils/toPrintableObject.d.ts +5 -1
  55. package/dist/utils/toPrintableObject.js +2 -2
  56. package/dist/utils/toPrintableObject.js.map +1 -1
  57. package/package.json +6 -3
  58. package/src/encoding/encoding.ts +43 -1
  59. package/src/types/orderAppendixTypes.ts +21 -0
  60. package/src/utils/math/bigDecimal.ts +5 -3
  61. package/src/utils/orders/appendix/orderAppendix.test.ts +58 -0
  62. package/src/utils/orders/appendix/packOrderAppendix.ts +5 -1
  63. package/src/utils/orders/appendix/types.ts +7 -5
  64. package/src/utils/orders/appendix/unpackOrderAppendix.ts +18 -2
  65. 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 << 50n) | bitMaskValue(bits.reserved, 50);
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 | 50 bits | 2 bits | 1 bit | 2 bits | 1 bit | 8 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
- reserved: number; // 50 bits, set to 0
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, 50));
78
- temp >>= 50n;
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 == null) {
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;