@aztec/foundation 0.60.0 → 0.62.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.
@@ -1 +1 @@
1
- {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/abi/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,KAAK,YAAY,EAAoB,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAG7E;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC;AA0FxG;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,cAEzD;AAED;;GAEG;AACH,qBAAa,wBAAwB;IAEvB,OAAO,CAAC,IAAI;IAAU,OAAO,CAAC,UAAU;IAAkB,OAAO,CAAC,YAAY;IAD1F,OAAO,CAAC,SAAS,CAAS;gBACN,IAAI,EAAE,MAAM,EAAU,UAAU,EAAE,YAAY,EAAE,EAAU,YAAY,UAAQ;IAIlG;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAKvB;;;OAGG;IACI,MAAM,IAAI,MAAM;CAGxB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAE/E;AAED;;;;;GAKG;AACH,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAEjG"}
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/abi/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,KAAK,YAAY,EAAoB,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAG7E;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC;AA8FxG;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,cAEzD;AAED;;GAEG;AACH,qBAAa,wBAAwB;IAEvB,OAAO,CAAC,IAAI;IAAU,OAAO,CAAC,UAAU;IAAkB,OAAO,CAAC,YAAY;IAD1F,OAAO,CAAC,SAAS,CAAS;gBACN,IAAI,EAAE,MAAM,EAAU,UAAU,EAAE,YAAY,EAAE,EAAU,YAAY,UAAQ;IAIlG;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAKvB;;;OAGG;IACI,MAAM,IAAI,MAAM;CAGxB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAE/E;AAED;;;;;GAKG;AACH,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAEjG"}
@@ -1,8 +1,7 @@
1
1
  import { AztecAddress } from '../aztec-address/index.js';
2
- import { isAztecAddressStruct } from './utils.js';
2
+ import { isAztecAddressStruct, parseSignedInt } from './utils.js';
3
3
  /**
4
4
  * Decodes values using a provided ABI.
5
- * Missing support for signed integer.
6
5
  */
7
6
  class AbiDecoder {
8
7
  constructor(types, flattened) {
@@ -18,11 +17,14 @@ class AbiDecoder {
18
17
  switch (abiType.kind) {
19
18
  case 'field':
20
19
  return this.getNextField().toBigInt();
21
- case 'integer':
20
+ case 'integer': {
21
+ const nextField = this.getNextField();
22
22
  if (abiType.sign === 'signed') {
23
- throw new Error('Unsupported type: signed integer');
23
+ // We parse the buffer using 2's complement
24
+ return parseSignedInt(nextField.toBuffer(), abiType.width);
24
25
  }
25
- return this.getNextField().toBigInt();
26
+ return nextField.toBigInt();
27
+ }
26
28
  case 'boolean':
27
29
  return !this.getNextField().isZero();
28
30
  case 'array': {
@@ -166,4 +168,4 @@ export function decodeFunctionSignature(name, parameters) {
166
168
  export function decodeFunctionSignatureWithParameterNames(name, parameters) {
167
169
  return new FunctionSignatureDecoder(name, parameters, true).decode();
168
170
  }
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hYmkvZGVjb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBT2xEOzs7R0FHRztBQUNILE1BQU0sVUFBVTtJQUNkLFlBQW9CLEtBQWdCLEVBQVUsU0FBZTtRQUF6QyxVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBTTtJQUFHLENBQUM7SUFFakU7Ozs7T0FJRztJQUNLLFVBQVUsQ0FBQyxPQUFnQjtRQUNqQyxRQUFRLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEMsS0FBSyxTQUFTO2dCQUNaLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO2dCQUN0RCxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hDLEtBQUssU0FBUztnQkFDWixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDYixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDM0MsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FB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
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hYmkvZGVjb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQU9sRTs7R0FFRztBQUNILE1BQU0sVUFBVTtJQUNkLFlBQW9CLEtBQWdCLEVBQVUsU0FBZTtRQUF6QyxVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBTTtJQUFHLENBQUM7SUFFakU7Ozs7T0FJRztJQUNLLFVBQVUsQ0FBQyxPQUFnQjtRQUNqQyxRQUFRLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNmLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFFdEMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUM5QiwyQ0FBMkM7b0JBQzNDLE9BQU8sY0FBYyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdELENBQUM7Z0JBRUQsT0FBTyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUIsQ0FBQztZQUNELEtBQUssU0FBUztnQkFDWixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDYixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENB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
@@ -1,3 +1,5 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
1
3
  import { type AbiType } from './abi.js';
2
4
  /**
3
5
  * Returns whether the ABI type is an Aztec or Ethereum Address defined in Aztec.nr.
@@ -28,4 +30,10 @@ export declare function isFunctionSelectorStruct(abiType: AbiType): boolean;
28
30
  * @param abiType - Type to check.
29
31
  */
30
32
  export declare function isWrappedFieldStruct(abiType: AbiType): boolean;
33
+ /**
34
+ * Returns a bigint by parsing a serialized 2's complement signed int.
35
+ * @param b - The signed int as a buffer
36
+ * @returns - a deserialized bigint
37
+ */
38
+ export declare function parseSignedInt(b: Buffer, width?: number): bigint;
31
39
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/abi/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,WAE/C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,WAElD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,WAEpD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,WAExD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,WAOpD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/abi/utils.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,WAE/C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,WAElD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,WAEpD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,WAExD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,WAOpD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,UAqBvD"}
package/dest/abi/utils.js CHANGED
@@ -40,4 +40,26 @@ export function isWrappedFieldStruct(abiType) {
40
40
  abiType.fields[0].name === 'inner' &&
41
41
  abiType.fields[0].type.kind === 'field');
42
42
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWJpL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQWdCO0lBQzlDLE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsT0FBZ0I7SUFDakQsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ25GLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE9BQWdCO0lBQ25ELE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNyRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxPQUFnQjtJQUN2RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7QUFDaEgsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxPQUFnQjtJQUNuRCxPQUFPLENBQ0wsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRO1FBQ3pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDM0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTztRQUNsQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUN4QyxDQUFDO0FBQ0osQ0FBQyJ9
43
+ /**
44
+ * Returns a bigint by parsing a serialized 2's complement signed int.
45
+ * @param b - The signed int as a buffer
46
+ * @returns - a deserialized bigint
47
+ */
48
+ export function parseSignedInt(b, width) {
49
+ const buf = Buffer.from(b);
50
+ // We get the last (width / 8) bytes where width = bits of type (i64, i32 etc)
51
+ const slicedBuf = width !== undefined ? buf.subarray(-(width / 8)) : buf;
52
+ // Then manually deserialize with 2's complement, with the process as follows:
53
+ // If our most significant bit is high...
54
+ if (0x80 & slicedBuf.subarray(0, 1).readUInt8()) {
55
+ // We flip the bits
56
+ for (let i = 0; i < slicedBuf.length; i++) {
57
+ slicedBuf[i] = ~slicedBuf[i];
58
+ }
59
+ // Add one, then negate it
60
+ return -(BigInt(`0x${slicedBuf.toString('hex')}`) + 1n);
61
+ }
62
+ // ...otherwise we just return our positive int
63
+ return BigInt(`0x${slicedBuf.toString('hex')}`);
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWJpL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQWdCO0lBQzlDLE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsT0FBZ0I7SUFDakQsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ25GLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE9BQWdCO0lBQ25ELE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNyRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxPQUFnQjtJQUN2RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7QUFDaEgsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxPQUFnQjtJQUNuRCxPQUFPLENBQ0wsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRO1FBQ3pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDM0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTztRQUNsQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUN4QyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLENBQVMsRUFBRSxLQUFjO0lBQ3RELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFM0IsOEVBQThFO0lBQzlFLE1BQU0sU0FBUyxHQUFHLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFFekUsOEVBQThFO0lBRTlFLHlDQUF5QztJQUN6QyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQ2hELG1CQUFtQjtRQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBRUQsMEJBQTBCO1FBQzFCLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCwrQ0FBK0M7SUFDL0MsT0FBTyxNQUFNLENBQUMsS0FBSyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsRCxDQUFDIn0=
@@ -6,9 +6,10 @@ import { type Tuple } from '../serialize/types.js';
6
6
  * @param arr - Array with elements to pad.
7
7
  * @param elem - Element to use for padding.
8
8
  * @param length - Target length.
9
+ * @param errorMsg - Error message to throw if target length exceeds the input array length.
9
10
  * @returns A new padded array.
10
11
  */
11
- export declare function padArrayEnd<T, N extends number>(arr: T[], elem: T, length: N): Tuple<T, N>;
12
+ export declare function padArrayEnd<T, N extends number>(arr: T[], elem: T, length: N, errorMsg?: string): Tuple<T, N>;
12
13
  /** Removes the right-padding for an array. Does not modify original array. */
13
14
  export declare function removeArrayPaddingEnd<T>(arr: T[], isEmpty: (item: T) => boolean): T[];
14
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/collection/array.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAM1F;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,EAAE,CAGrF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAM5F;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAOhF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,MAAM,CAEtF;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAE7D;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,CAAC,CAAC;IAAE,MAAM,EAAE,MAAM,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,OAAO,CAAA;CAAE,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;CAAE,CAAC,EAAE,UAM/F;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAE3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAiC,GAAG,OAAO,CAUhH"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/collection/array.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAC7C,GAAG,EAAE,CAAC,EAAE,EACR,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,CAAC,EACT,QAAQ,SAAqC,GAC5C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAMb;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,EAAE,CAGrF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAM5F;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAOhF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,MAAM,CAEtF;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAE7D;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,CAAC,CAAC;IAAE,MAAM,EAAE,MAAM,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,OAAO,CAAA;CAAE,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;CAAE,CAAC,EAAE,UAM/F;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAE3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAiC,GAAG,OAAO,CAUhH"}
@@ -3,11 +3,12 @@
3
3
  * @param arr - Array with elements to pad.
4
4
  * @param elem - Element to use for padding.
5
5
  * @param length - Target length.
6
+ * @param errorMsg - Error message to throw if target length exceeds the input array length.
6
7
  * @returns A new padded array.
7
8
  */
8
- export function padArrayEnd(arr, elem, length) {
9
+ export function padArrayEnd(arr, elem, length, errorMsg = 'Array size exceeds target length') {
9
10
  if (arr.length > length) {
10
- throw new Error(`Array size exceeds target length`);
11
+ throw new Error(errorMsg);
11
12
  }
12
13
  // Since typescript cannot always deduce that something is a tuple, we cast
13
14
  return [...arr, ...Array(length - arr.length).fill(elem)];
@@ -102,4 +103,4 @@ export function areArraysEqual(a, b, eq = (a, b) => a === b) {
102
103
  }
103
104
  return true;
104
105
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29sbGVjdGlvbi9hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFzQixHQUFRLEVBQUUsSUFBTyxFQUFFLE1BQVM7SUFDM0UsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsMkVBQTJFO0lBQzNFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBZ0IsQ0FBQztBQUMzRSxDQUFDO0FBRUQsOEVBQThFO0FBQzlFLE1BQU0sVUFBVSxxQkFBcUIsQ0FBSSxHQUFRLEVBQUUsT0FBNkI7SUFDOUUsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsT0FBTyxpQkFBaUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBc0IsR0FBUSxFQUFFLElBQU8sRUFBRSxNQUFTO0lBQzdFLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FB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
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29sbGVjdGlvbi9hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDekIsR0FBUSxFQUNSLElBQU8sRUFDUCxNQUFTLEVBQ1QsUUFBUSxHQUFHLGtDQUFrQztJQUU3QyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsMkVBQTJFO0lBQzNFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBZ0IsQ0FBQztBQUMzRSxDQUFDO0FBRUQsOEVBQThFO0FBQzlFLE1BQU0sVUFBVSxxQkFBcUIsQ0FBSSxHQUFRLEVBQUUsT0FBNkI7SUFDOUUsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsT0FBTyxpQkFBaUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBc0IsR0FBUSxFQUFFLElBQU8sRUFBRSxNQUFTO0lBQzdFLElBQUksR0FBRyxDQUFDLE1B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
@@ -1,2 +1,2 @@
1
- export type EnvVar = 'ACVM_BINARY_PATH' | 'ACVM_WORKING_DIRECTORY' | 'APELLA_CONTRACT_ADDRESS' | 'API_KEY' | 'API_PREFIX' | 'ARCHIVER_MAX_LOGS' | 'ARCHIVER_POLLING_INTERVAL_MS' | 'ARCHIVER_URL' | 'ARCHIVER_VIEM_POLLING_INTERVAL_MS' | 'ASSUME_PROVEN_THROUGH_BLOCK_NUMBER' | 'AZTEC_NODE_URL' | 'AZTEC_PORT' | 'BB_BINARY_PATH' | 'BB_SKIP_CLEANUP' | 'BB_WORKING_DIRECTORY' | 'BOOTSTRAP_NODES' | 'BOT_DA_GAS_LIMIT' | 'BOT_FEE_PAYMENT_METHOD' | 'BOT_FLUSH_SETUP_TRANSACTIONS' | 'BOT_FOLLOW_CHAIN' | 'BOT_L2_GAS_LIMIT' | 'BOT_MAX_PENDING_TXS' | 'BOT_NO_START' | 'BOT_NO_WAIT_FOR_TRANSFERS' | 'BOT_PRIVATE_KEY' | 'BOT_PRIVATE_TRANSFERS_PER_TX' | 'BOT_PUBLIC_TRANSFERS_PER_TX' | 'BOT_PXE_URL' | 'BOT_RECIPIENT_ENCRYPTION_SECRET' | 'BOT_SKIP_PUBLIC_SIMULATION' | 'BOT_TOKEN_CONTRACT' | 'BOT_TOKEN_SALT' | 'BOT_TX_INTERVAL_SECONDS' | 'BOT_TX_MINED_WAIT_SECONDS' | 'COINBASE' | 'DATA_DIRECTORY' | 'DEBUG' | 'DEPLOY_AZTEC_CONTRACTS_SALT' | 'DEPLOY_AZTEC_CONTRACTS' | 'ENABLE_GAS' | 'ENFORCE_FEES' | 'ETHEREUM_HOST' | 'FEE_JUICE_CONTRACT_ADDRESS' | 'FEE_JUICE_PORTAL_CONTRACT_ADDRESS' | 'FEE_RECIPIENT' | 'GEROUSIA_CONTRACT_ADDRESS' | 'GEROUSIA_PAYLOAD_ADDRESS' | 'INBOX_CONTRACT_ADDRESS' | 'L1_CHAIN_ID' | 'L1_PRIVATE_KEY' | 'L2_QUEUE_SIZE' | 'LOG_JSON' | 'LOG_LEVEL' | 'MNEMONIC' | 'NETWORK_NAME' | 'NETWORK' | 'NOMISMATOKOPIO_CONTRACT_ADDRESS' | 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT' | 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT' | 'OTEL_SERVICE_NAME' | 'OUTBOX_CONTRACT_ADDRESS' | 'P2P_BLOCK_CHECK_INTERVAL_MS' | 'P2P_ENABLED' | 'P2P_GOSSIPSUB_D' | 'P2P_GOSSIPSUB_DHI' | 'P2P_GOSSIPSUB_DLO' | 'P2P_GOSSIPSUB_INTERVAL_MS' | 'P2P_GOSSIPSUB_MCACHE_GOSSIP' | 'P2P_GOSSIPSUB_MCACHE_LENGTH' | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_DECAY' | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_WEIGHT' | 'P2P_GOSSIPSUB_TX_TOPIC_WEIGHT' | 'P2P_L2_QUEUE_SIZE' | 'P2P_MAX_PEERS' | 'P2P_MIN_PEERS' | 'P2P_PEER_CHECK_INTERVAL_MS' | 'P2P_PEER_PENALTY_VALUES' | 'P2P_QUERY_FOR_IP' | 'P2P_REQRESP_INDIVIDUAL_REQUEST_TIMEOUT_MS' | 'P2P_REQRESP_OVERALL_REQUEST_TIMEOUT_MS' | 'P2P_SEVERE_PEER_PENALTY_BLOCK_LENGTH' | 'P2P_TCP_LISTEN_ADDR' | 'P2P_TCP_ANNOUNCE_ADDR' | 'P2P_TX_POOL_KEEP_PROVEN_FOR' | 'P2P_TX_PROTOCOL' | 'P2P_UDP_ANNOUNCE_ADDR' | 'P2P_UDP_LISTEN_ADDR' | 'PEER_ID_PRIVATE_KEY' | 'PROOF_VERIFIER_L1_START_BLOCK' | 'PROOF_VERIFIER_POLL_INTERVAL_MS' | 'PROVER_AGENT_CONCURRENCY' | 'PROVER_AGENT_ENABLED' | 'PROVER_AGENT_POLL_INTERVAL_MS' | 'PROVER_COORDINATION_NODE_URL' | 'PROVER_DISABLED' | 'PROVER_ID' | 'PROVER_JOB_POLL_INTERVAL_MS' | 'PROVER_JOB_TIMEOUT_MS' | 'PROVER_JOB_SOURCE_URL' | 'PROVER_NODE_POLLING_INTERVAL_MS' | 'PROVER_NODE_MAX_PENDING_JOBS' | 'PROVER_PUBLISH_RETRY_INTERVAL_MS' | 'PROVER_PUBLISHER_PRIVATE_KEY' | 'PROVER_REAL_PROOFS' | 'PROVER_REQUIRED_CONFIRMATIONS' | 'PROVER_TEST_DELAY_MS' | 'PXE_BLOCK_POLLING_INTERVAL_MS' | 'PXE_DATA_DIRECTORY' | 'PXE_L2_STARTING_BLOCK' | 'PXE_PROVER_ENABLED' | 'QUOTE_PROVIDER_BASIS_POINT_FEE' | 'QUOTE_PROVIDER_BOND_AMOUNT' | 'QUOTE_PROVIDER_URL' | 'PROVER_TARGET_ESCROW_AMOUNT' | 'PROVER_MINIMUM_ESCROW_AMOUNT' | 'REGISTRY_CONTRACT_ADDRESS' | 'ROLLUP_CONTRACT_ADDRESS' | 'SEQ_ALLOWED_SETUP_FN' | 'SEQ_ALLOWED_TEARDOWN_FN' | 'SEQ_MAX_BLOCK_SIZE_IN_BYTES' | 'SEQ_MAX_SECONDS_BETWEEN_BLOCKS' | 'SEQ_MAX_TX_PER_BLOCK' | 'SEQ_MIN_SECONDS_BETWEEN_BLOCKS' | 'SEQ_MIN_TX_PER_BLOCK' | 'SEQ_PUBLISH_RETRY_INTERVAL_MS' | 'SEQ_PUBLISHER_PRIVATE_KEY' | 'SEQ_REQUIRED_CONFIRMATIONS' | 'SEQ_TX_POLLING_INTERVAL_MS' | 'SYSSTIA_CONTRACT_ADDRESS' | 'TELEMETRY' | 'TEST_ACCOUNTS' | 'TX_GOSSIP_VERSION' | 'TXE_PORT' | 'VALIDATOR_ATTESTATIONS_POOLING_INTERVAL_MS' | 'VALIDATOR_ATTESTATIONS_WAIT_TIMEOUT_MS' | 'VALIDATOR_DISABLED' | 'VALIDATOR_PRIVATE_KEY' | 'VERSION' | 'WS_BLOCK_CHECK_INTERVAL_MS' | 'WS_PROVEN_BLOCKS_ONLY' | 'WS_BLOCK_REQUEST_BATCH_SIZE' | 'VERIFIER_VIEM_POLLING_INTERVAL_MS' | 'L1_READER_VIEM_POLLING_INTERVAL_MS' | 'PROVER_VIEM_POLLING_INTERVAL_MS' | 'SEQ_VIEM_POLLING_INTERVAL_MS';
1
+ export type EnvVar = 'ACVM_BINARY_PATH' | 'ACVM_WORKING_DIRECTORY' | 'APELLA_CONTRACT_ADDRESS' | 'API_KEY' | 'API_PREFIX' | 'ARCHIVER_MAX_LOGS' | 'ARCHIVER_POLLING_INTERVAL_MS' | 'ARCHIVER_URL' | 'ARCHIVER_VIEM_POLLING_INTERVAL_MS' | 'ASSUME_PROVEN_THROUGH_BLOCK_NUMBER' | 'AZTEC_NODE_URL' | 'AZTEC_PORT' | 'BB_BINARY_PATH' | 'BB_SKIP_CLEANUP' | 'BB_WORKING_DIRECTORY' | 'BOOTSTRAP_NODES' | 'BOT_DA_GAS_LIMIT' | 'BOT_FEE_PAYMENT_METHOD' | 'BOT_FLUSH_SETUP_TRANSACTIONS' | 'BOT_FOLLOW_CHAIN' | 'BOT_L2_GAS_LIMIT' | 'BOT_MAX_PENDING_TXS' | 'BOT_NO_START' | 'BOT_NO_WAIT_FOR_TRANSFERS' | 'BOT_PRIVATE_KEY' | 'BOT_PRIVATE_TRANSFERS_PER_TX' | 'BOT_PUBLIC_TRANSFERS_PER_TX' | 'BOT_PXE_URL' | 'BOT_RECIPIENT_ENCRYPTION_SECRET' | 'BOT_SKIP_PUBLIC_SIMULATION' | 'BOT_TOKEN_CONTRACT' | 'BOT_TOKEN_SALT' | 'BOT_TX_INTERVAL_SECONDS' | 'BOT_TX_MINED_WAIT_SECONDS' | 'BOT_MAX_CONSECUTIVE_ERRORS' | 'BOT_STOP_WHEN_UNHEALTHY' | 'COINBASE' | 'DATA_DIRECTORY' | 'DEBUG' | 'DEPLOY_AZTEC_CONTRACTS_SALT' | 'DEPLOY_AZTEC_CONTRACTS' | 'ENABLE_GAS' | 'ENFORCE_FEES' | 'ETHEREUM_HOST' | 'FEE_JUICE_CONTRACT_ADDRESS' | 'FEE_JUICE_PORTAL_CONTRACT_ADDRESS' | 'FEE_RECIPIENT' | 'GEROUSIA_CONTRACT_ADDRESS' | 'GEROUSIA_PAYLOAD_ADDRESS' | 'INBOX_CONTRACT_ADDRESS' | 'L1_CHAIN_ID' | 'L1_PRIVATE_KEY' | 'L2_QUEUE_SIZE' | 'LOG_JSON' | 'LOG_LEVEL' | 'MNEMONIC' | 'NETWORK_NAME' | 'NETWORK' | 'NOMISMATOKOPIO_CONTRACT_ADDRESS' | 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT' | 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT' | 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT' | 'OTEL_SERVICE_NAME' | 'OUTBOX_CONTRACT_ADDRESS' | 'P2P_BLOCK_CHECK_INTERVAL_MS' | 'P2P_BLOCK_REQUEST_BATCH_SIZE' | 'P2P_ENABLED' | 'P2P_GOSSIPSUB_D' | 'P2P_GOSSIPSUB_DHI' | 'P2P_GOSSIPSUB_DLO' | 'P2P_GOSSIPSUB_INTERVAL_MS' | 'P2P_GOSSIPSUB_MCACHE_GOSSIP' | 'P2P_GOSSIPSUB_MCACHE_LENGTH' | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_DECAY' | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_WEIGHT' | 'P2P_GOSSIPSUB_TX_TOPIC_WEIGHT' | 'P2P_L2_QUEUE_SIZE' | 'P2P_MAX_PEERS' | 'P2P_MIN_PEERS' | 'P2P_PEER_CHECK_INTERVAL_MS' | 'P2P_PEER_PENALTY_VALUES' | 'P2P_QUERY_FOR_IP' | 'P2P_REQRESP_INDIVIDUAL_REQUEST_TIMEOUT_MS' | 'P2P_REQRESP_OVERALL_REQUEST_TIMEOUT_MS' | 'P2P_SEVERE_PEER_PENALTY_BLOCK_LENGTH' | 'P2P_TCP_LISTEN_ADDR' | 'P2P_TCP_ANNOUNCE_ADDR' | 'P2P_TX_POOL_KEEP_PROVEN_FOR' | 'P2P_TX_PROTOCOL' | 'P2P_UDP_ANNOUNCE_ADDR' | 'P2P_UDP_LISTEN_ADDR' | 'PEER_ID_PRIVATE_KEY' | 'PROOF_VERIFIER_L1_START_BLOCK' | 'PROOF_VERIFIER_POLL_INTERVAL_MS' | 'PROVER_AGENT_CONCURRENCY' | 'PROVER_AGENT_ENABLED' | 'PROVER_AGENT_POLL_INTERVAL_MS' | 'PROVER_COORDINATION_NODE_URL' | 'PROVER_DISABLED' | 'PROVER_ID' | 'PROVER_JOB_POLL_INTERVAL_MS' | 'PROVER_JOB_TIMEOUT_MS' | 'PROVER_JOB_SOURCE_URL' | 'PROVER_NODE_POLLING_INTERVAL_MS' | 'PROVER_NODE_MAX_PENDING_JOBS' | 'PROVER_PUBLISH_RETRY_INTERVAL_MS' | 'PROVER_PUBLISHER_PRIVATE_KEY' | 'PROVER_REAL_PROOFS' | 'PROVER_REQUIRED_CONFIRMATIONS' | 'PROVER_TEST_DELAY_MS' | 'PXE_BLOCK_POLLING_INTERVAL_MS' | 'PXE_DATA_DIRECTORY' | 'PXE_L2_STARTING_BLOCK' | 'PXE_PROVER_ENABLED' | 'QUOTE_PROVIDER_BASIS_POINT_FEE' | 'QUOTE_PROVIDER_BOND_AMOUNT' | 'QUOTE_PROVIDER_URL' | 'PROVER_TARGET_ESCROW_AMOUNT' | 'PROVER_MINIMUM_ESCROW_AMOUNT' | 'REGISTRY_CONTRACT_ADDRESS' | 'ROLLUP_CONTRACT_ADDRESS' | 'SEQ_ALLOWED_SETUP_FN' | 'SEQ_ALLOWED_TEARDOWN_FN' | 'SEQ_MAX_BLOCK_SIZE_IN_BYTES' | 'SEQ_MAX_SECONDS_BETWEEN_BLOCKS' | 'SEQ_MAX_TX_PER_BLOCK' | 'SEQ_MIN_SECONDS_BETWEEN_BLOCKS' | 'SEQ_MIN_TX_PER_BLOCK' | 'SEQ_PUBLISH_RETRY_INTERVAL_MS' | 'SEQ_PUBLISHER_PRIVATE_KEY' | 'SEQ_REQUIRED_CONFIRMATIONS' | 'SEQ_TX_POLLING_INTERVAL_MS' | 'SYSSTIA_CONTRACT_ADDRESS' | 'TELEMETRY' | 'TEST_ACCOUNTS' | 'TX_GOSSIP_VERSION' | 'TXE_PORT' | 'VALIDATOR_ATTESTATIONS_POOLING_INTERVAL_MS' | 'VALIDATOR_ATTESTATIONS_WAIT_TIMEOUT_MS' | 'VALIDATOR_DISABLED' | 'VALIDATOR_PRIVATE_KEY' | 'VERSION' | 'WS_BLOCK_CHECK_INTERVAL_MS' | 'WS_PROVEN_BLOCKS_ONLY' | 'WS_BLOCK_REQUEST_BATCH_SIZE' | 'VERIFIER_VIEM_POLLING_INTERVAL_MS' | 'L1_READER_VIEM_POLLING_INTERVAL_MS' | 'PROVER_VIEM_POLLING_INTERVAL_MS' | 'SEQ_VIEM_POLLING_INTERVAL_MS';
2
2
  //# sourceMappingURL=env_var.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env_var.d.ts","sourceRoot":"","sources":["../../src/config/env_var.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GACd,kBAAkB,GAClB,wBAAwB,GACxB,yBAAyB,GACzB,SAAS,GACT,YAAY,GACZ,mBAAmB,GACnB,8BAA8B,GAC9B,cAAc,GACd,mCAAmC,GACnC,oCAAoC,GACpC,gBAAgB,GAChB,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,GACjB,sBAAsB,GACtB,iBAAiB,GACjB,kBAAkB,GAClB,wBAAwB,GACxB,8BAA8B,GAC9B,kBAAkB,GAClB,kBAAkB,GAClB,qBAAqB,GACrB,cAAc,GACd,2BAA2B,GAC3B,iBAAiB,GACjB,8BAA8B,GAC9B,6BAA6B,GAC7B,aAAa,GACb,iCAAiC,GACjC,4BAA4B,GAC5B,oBAAoB,GACpB,gBAAgB,GAChB,yBAAyB,GACzB,2BAA2B,GAC3B,UAAU,GACV,gBAAgB,GAChB,OAAO,GACP,6BAA6B,GAC7B,wBAAwB,GACxB,YAAY,GACZ,cAAc,GACd,eAAe,GACf,4BAA4B,GAC5B,mCAAmC,GACnC,eAAe,GACf,2BAA2B,GAC3B,0BAA0B,GAC1B,wBAAwB,GACxB,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,UAAU,GACV,WAAW,GACX,UAAU,GACV,cAAc,GACd,SAAS,GACT,iCAAiC,GACjC,qCAAqC,GACrC,oCAAoC,GACpC,mBAAmB,GACnB,yBAAyB,GACzB,6BAA6B,GAC7B,aAAa,GACb,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,2BAA2B,GAC3B,6BAA6B,GAC7B,6BAA6B,GAC7B,mDAAmD,GACnD,oDAAoD,GACpD,+BAA+B,GAC/B,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,4BAA4B,GAC5B,yBAAyB,GACzB,kBAAkB,GAClB,2CAA2C,GAC3C,wCAAwC,GACxC,sCAAsC,GACtC,qBAAqB,GACrB,uBAAuB,GACvB,6BAA6B,GAC7B,iBAAiB,GACjB,uBAAuB,GACvB,qBAAqB,GACrB,qBAAqB,GACrB,+BAA+B,GAC/B,iCAAiC,GACjC,0BAA0B,GAC1B,sBAAsB,GACtB,+BAA+B,GAC/B,8BAA8B,GAC9B,iBAAiB,GACjB,WAAW,GACX,6BAA6B,GAC7B,uBAAuB,GACvB,uBAAuB,GACvB,iCAAiC,GACjC,8BAA8B,GAC9B,kCAAkC,GAClC,8BAA8B,GAC9B,oBAAoB,GACpB,+BAA+B,GAC/B,sBAAsB,GACtB,+BAA+B,GAC/B,oBAAoB,GACpB,uBAAuB,GACvB,oBAAoB,GACpB,gCAAgC,GAChC,4BAA4B,GAC5B,oBAAoB,GACpB,6BAA6B,GAC7B,8BAA8B,GAC9B,2BAA2B,GAC3B,yBAAyB,GACzB,sBAAsB,GACtB,yBAAyB,GACzB,6BAA6B,GAC7B,gCAAgC,GAChC,sBAAsB,GACtB,gCAAgC,GAChC,sBAAsB,GACtB,+BAA+B,GAC/B,2BAA2B,GAC3B,4BAA4B,GAC5B,4BAA4B,GAC5B,0BAA0B,GAC1B,WAAW,GACX,eAAe,GACf,mBAAmB,GACnB,UAAU,GACV,4CAA4C,GAC5C,wCAAwC,GACxC,oBAAoB,GACpB,uBAAuB,GACvB,SAAS,GACT,4BAA4B,GAC5B,uBAAuB,GACvB,6BAA6B,GAC7B,mCAAmC,GACnC,oCAAoC,GACpC,iCAAiC,GACjC,8BAA8B,CAAC"}
1
+ {"version":3,"file":"env_var.d.ts","sourceRoot":"","sources":["../../src/config/env_var.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GACd,kBAAkB,GAClB,wBAAwB,GACxB,yBAAyB,GACzB,SAAS,GACT,YAAY,GACZ,mBAAmB,GACnB,8BAA8B,GAC9B,cAAc,GACd,mCAAmC,GACnC,oCAAoC,GACpC,gBAAgB,GAChB,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,GACjB,sBAAsB,GACtB,iBAAiB,GACjB,kBAAkB,GAClB,wBAAwB,GACxB,8BAA8B,GAC9B,kBAAkB,GAClB,kBAAkB,GAClB,qBAAqB,GACrB,cAAc,GACd,2BAA2B,GAC3B,iBAAiB,GACjB,8BAA8B,GAC9B,6BAA6B,GAC7B,aAAa,GACb,iCAAiC,GACjC,4BAA4B,GAC5B,oBAAoB,GACpB,gBAAgB,GAChB,yBAAyB,GACzB,2BAA2B,GAC3B,4BAA4B,GAC5B,yBAAyB,GACzB,UAAU,GACV,gBAAgB,GAChB,OAAO,GACP,6BAA6B,GAC7B,wBAAwB,GACxB,YAAY,GACZ,cAAc,GACd,eAAe,GACf,4BAA4B,GAC5B,mCAAmC,GACnC,eAAe,GACf,2BAA2B,GAC3B,0BAA0B,GAC1B,wBAAwB,GACxB,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,UAAU,GACV,WAAW,GACX,UAAU,GACV,cAAc,GACd,SAAS,GACT,iCAAiC,GACjC,qCAAqC,GACrC,oCAAoC,GACpC,kCAAkC,GAClC,mBAAmB,GACnB,yBAAyB,GACzB,6BAA6B,GAC7B,8BAA8B,GAC9B,aAAa,GACb,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,2BAA2B,GAC3B,6BAA6B,GAC7B,6BAA6B,GAC7B,mDAAmD,GACnD,oDAAoD,GACpD,+BAA+B,GAC/B,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,4BAA4B,GAC5B,yBAAyB,GACzB,kBAAkB,GAClB,2CAA2C,GAC3C,wCAAwC,GACxC,sCAAsC,GACtC,qBAAqB,GACrB,uBAAuB,GACvB,6BAA6B,GAC7B,iBAAiB,GACjB,uBAAuB,GACvB,qBAAqB,GACrB,qBAAqB,GACrB,+BAA+B,GAC/B,iCAAiC,GACjC,0BAA0B,GAC1B,sBAAsB,GACtB,+BAA+B,GAC/B,8BAA8B,GAC9B,iBAAiB,GACjB,WAAW,GACX,6BAA6B,GAC7B,uBAAuB,GACvB,uBAAuB,GACvB,iCAAiC,GACjC,8BAA8B,GAC9B,kCAAkC,GAClC,8BAA8B,GAC9B,oBAAoB,GACpB,+BAA+B,GAC/B,sBAAsB,GACtB,+BAA+B,GAC/B,oBAAoB,GACpB,uBAAuB,GACvB,oBAAoB,GACpB,gCAAgC,GAChC,4BAA4B,GAC5B,oBAAoB,GACpB,6BAA6B,GAC7B,8BAA8B,GAC9B,2BAA2B,GAC3B,yBAAyB,GACzB,sBAAsB,GACtB,yBAAyB,GACzB,6BAA6B,GAC7B,gCAAgC,GAChC,sBAAsB,GACtB,gCAAgC,GAChC,sBAAsB,GACtB,+BAA+B,GAC/B,2BAA2B,GAC3B,4BAA4B,GAC5B,4BAA4B,GAC5B,0BAA0B,GAC1B,WAAW,GACX,eAAe,GACf,mBAAmB,GACnB,UAAU,GACV,4CAA4C,GAC5C,wCAAwC,GACxC,oBAAoB,GACpB,uBAAuB,GACvB,SAAS,GACT,4BAA4B,GAC5B,uBAAuB,GACvB,6BAA6B,GAC7B,mCAAmC,GACnC,oCAAoC,GACpC,iCAAiC,GACjC,8BAA8B,CAAC"}
@@ -14,6 +14,7 @@ export declare class JsonRpcServer {
14
14
  private objectClassMap;
15
15
  /** List of methods to disallow from calling remotely */
16
16
  readonly disallowedMethods: string[];
17
+ private healthCheck;
17
18
  private log;
18
19
  /**
19
20
  * The proxy object.
@@ -26,7 +27,8 @@ export declare class JsonRpcServer {
26
27
  private httpServer?;
27
28
  constructor(handler: object, stringClassMap: StringClassConverterInput, objectClassMap: JsonClassConverterInput,
28
29
  /** List of methods to disallow from calling remotely */
29
- disallowedMethods?: string[], log?: import("../../log/logger.js").Logger);
30
+ disallowedMethods?: string[], healthCheck?: StatusCheckFn, log?: import("../../log/logger.js").Logger);
31
+ isHealthy(): boolean | Promise<boolean>;
30
32
  /**
31
33
  * Get an express app object.
32
34
  * @param prefix - Our server prefix.
@@ -68,12 +70,14 @@ export declare class JsonRpcServer {
68
70
  */
69
71
  call(methodName: string, jsonParams: any[] | undefined, skipConversion: boolean): Promise<any>;
70
72
  }
73
+ export type StatusCheckFn = () => boolean | Promise<boolean>;
71
74
  /**
72
75
  * Creates a router for handling a plain status request that will return 200 status when running.
76
+ * @param getCurrentStatus - List of health check functions to run.
73
77
  * @param apiPrefix - The prefix to use for all api requests
74
78
  * @returns - The router for handling status requests.
75
79
  */
76
- export declare function createStatusRouter(apiPrefix?: string): Router<any, {}>;
80
+ export declare function createStatusRouter(getCurrentStatus: StatusCheckFn, apiPrefix?: string): Router<any, {}>;
77
81
  /**
78
82
  * Creates an http server that forwards calls to the underlying instance and starts it on the given port.
79
83
  * @param instance - Instance to wrap in a JSON-RPC server.
@@ -1 +1 @@
1
- {"version":3,"file":"json_rpc_server.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/server/json_rpc_server.ts"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,OAAO,MAAM,MAAM,YAAY,CAAC;AAIhC,OAAO,EAAE,KAAK,uBAAuB,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAErG,OAAO,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;GAGG;AACH,qBAAa,aAAa;IAatB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,cAAc;IACtB,wDAAwD;aACxC,iBAAiB,EAAE,MAAM,EAAE;IAC3C,OAAO,CAAC,GAAG;IAjBb;;OAEG;IACI,KAAK,EAAE,SAAS,CAAC;IAExB;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAC,CAAc;gBAGvB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,yBAAyB,EACzC,cAAc,EAAE,uBAAuB;IAC/C,wDAAwD;IACxC,iBAAiB,GAAE,MAAM,EAAO,EACxC,GAAG,uCAAuC;IAKpD;;;;OAIG;IACI,MAAM,CAAC,MAAM,SAAK;IAkDzB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IA8CjB;;;;OAIG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,IAAI;IAS7C;;OAEG;IACI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B;;;OAGG;IACI,UAAU,IAAI,MAAM,EAAE;IAI7B;;;OAGG;IACI,YAAY,IAAI,SAAS;IAIhC;;;;;;OAMG;IACU,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,mBAAY,EAAE,cAAc,EAAE,OAAO;CAGtF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,SAAK,mBAMhD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,EACX,kBAAkB,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,aAAa,EAClD,IAAI,EAAE,MAAM,GAAG,MAAM,GACpB,IAAI,CAAC,MAAM,CAWb;AACD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,qDAAqD;IACrD,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC;CAC/B,EAAE,CAAC;AAEJ;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,UAAU,EACnB,GAAG,uCAA6C,GAC/C,aAAa,CAuCf"}
1
+ {"version":3,"file":"json_rpc_server.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/server/json_rpc_server.ts"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,OAAO,MAAM,MAAM,YAAY,CAAC;AAIhC,OAAO,EAAE,KAAK,uBAAuB,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAErG,OAAO,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;GAGG;AACH,qBAAa,aAAa;IAatB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,cAAc;IACtB,wDAAwD;aACxC,iBAAiB,EAAE,MAAM,EAAE;IAC3C,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;IAlBb;;OAEG;IACI,KAAK,EAAE,SAAS,CAAC;IAExB;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAC,CAAc;gBAGvB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,yBAAyB,EACzC,cAAc,EAAE,uBAAuB;IAC/C,wDAAwD;IACxC,iBAAiB,GAAE,MAAM,EAAO,EACxC,WAAW,GAAE,aAA0B,EACvC,GAAG,uCAAuC;IAK7C,SAAS,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9C;;;;OAIG;IACI,MAAM,CAAC,MAAM,SAAK;IAkDzB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IA8CjB;;;;OAIG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,IAAI;IAS7C;;OAEG;IACI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B;;;OAGG;IACI,UAAU,IAAI,MAAM,EAAE;IAI7B;;;OAGG;IACI,YAAY,IAAI,SAAS;IAIhC;;;;;;OAMG;IACU,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,mBAAY,EAAE,cAAc,EAAE,OAAO;CAGtF;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,aAAa,EAAE,SAAS,SAAK,mBAajF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,EACX,kBAAkB,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,aAAa,EAClD,IAAI,EAAE,MAAM,GAAG,MAAM,GACpB,IAAI,CAAC,MAAM,CAWb;AACD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,qDAAqD;IACrD,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC;CAC/B,EAAE,CAAC;AAEJ;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,UAAU,EACnB,GAAG,uCAA6C,GAC/C,aAAa,CAwDf"}
@@ -15,14 +15,18 @@ import { JsonProxy } from './json_proxy.js';
15
15
  export class JsonRpcServer {
16
16
  constructor(handler, stringClassMap, objectClassMap,
17
17
  /** List of methods to disallow from calling remotely */
18
- disallowedMethods = [], log = createDebugLogger('json-rpc:server')) {
18
+ disallowedMethods = [], healthCheck = () => true, log = createDebugLogger('json-rpc:server')) {
19
19
  this.handler = handler;
20
20
  this.stringClassMap = stringClassMap;
21
21
  this.objectClassMap = objectClassMap;
22
22
  this.disallowedMethods = disallowedMethods;
23
+ this.healthCheck = healthCheck;
23
24
  this.log = log;
24
25
  this.proxy = new JsonProxy(handler, stringClassMap, objectClassMap);
25
26
  }
27
+ isHealthy() {
28
+ return this.healthCheck();
29
+ }
26
30
  /**
27
31
  * Get an express app object.
28
32
  * @param prefix - Our server prefix.
@@ -184,13 +188,21 @@ export class JsonRpcServer {
184
188
  }
185
189
  /**
186
190
  * Creates a router for handling a plain status request that will return 200 status when running.
191
+ * @param getCurrentStatus - List of health check functions to run.
187
192
  * @param apiPrefix - The prefix to use for all api requests
188
193
  * @returns - The router for handling status requests.
189
194
  */
190
- export function createStatusRouter(apiPrefix = '') {
195
+ export function createStatusRouter(getCurrentStatus, apiPrefix = '') {
191
196
  const router = new Router({ prefix: `${apiPrefix}` });
192
- router.get('/status', (ctx) => {
193
- ctx.status = 200;
197
+ router.get('/status', async (ctx) => {
198
+ let ok;
199
+ try {
200
+ ok = (await getCurrentStatus()) === true;
201
+ }
202
+ catch (err) {
203
+ ok = false;
204
+ }
205
+ ctx.status = ok ? 200 : 500;
194
206
  });
195
207
  return router;
196
208
  }
@@ -243,6 +255,11 @@ export function createNamespacedJsonRpcServer(servers, log = createDebugLogger('
243
255
  objectClassMap: { ...acc.objectClassMap, ...curr.objectClassMap },
244
256
  };
245
257
  }, { stringClassMap: {}, objectClassMap: {} });
246
- return new JsonRpcServer(Object.create(handler), classMaps.stringClassMap, classMaps.objectClassMap, [], log);
258
+ const aggregateHealthCheck = async () => {
259
+ const statuses = await Promise.allSettled(servers.flatMap(services => Object.entries(services).map(async ([name, service]) => ({ name, healthy: await service.isHealthy() }))));
260
+ const allHealthy = statuses.every(result => result.status === 'fulfilled' && result.value.healthy);
261
+ return allHealthy;
262
+ };
263
+ return new JsonRpcServer(Object.create(handler), classMaps.stringClassMap, classMaps.objectClassMap, [], aggregateHealthCheck, log);
247
264
  }
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbl9ycGNfc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2pzb24tcnBjL3NlcnZlci9qc29uX3JwY19zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxVQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxRQUFRLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sTUFBTSxNQUFNLFlBQVksQ0FBQztBQUVoQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFrQixTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQVl4QixZQUNVLE9BQWUsRUFDZixjQUF5QyxFQUN6QyxjQUF1QztJQUMvQyx3REFBd0Q7SUFDeEMsb0JBQThCLEVBQUUsRUFDeEMsTUFBTSxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQztRQUwxQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsbUJBQWMsR0FBZCxjQUFjLENBQTJCO1FBQ3pDLG1CQUFjLEdBQWQsY0FBYyxDQUF5QjtRQUUvQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWU7UUFDeEMsUUFBRyxHQUFILEdBQUcsQ0FBdUM7UUFFbEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE1B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
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbl9ycGNfc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2pzb24tcnBjL3NlcnZlci9qc29uX3JwY19zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxVQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxRQUFRLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sTUFBTSxNQUFNLFlBQVksQ0FBQztBQUVoQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFrQixTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQVl4QixZQUNVLE9BQWUsRUFDZixjQUF5QyxFQUN6QyxjQUF1QztJQUMvQyx3REFBd0Q7SUFDeEMsb0JBQThCLEVBQUUsRUFDeEMsY0FBNkIsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUN2QyxNQUFNLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO1FBTjFDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBMkI7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQXlCO1FBRS9CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBZTtRQUN4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBNEI7UUFDdkMsUUFBRyxHQUFILEdBQUcsQ0FBdUM7UUFFbEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxPQUFPLEVBQUUsY0FBYyxF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
@@ -26,11 +26,19 @@ export type DebugLogger = Logger;
26
26
  * Uses npm debug for debug level and console.error for other levels.
27
27
  * @param name - Name of the module.
28
28
  * @param fixedLogData - Additional data to include in the log message.
29
- * @usage createDebugLogger('aztec:validator', {validatorAddress: '0x1234...'});
29
+ * @usage createDebugLogger('aztec:validator');
30
30
  * // will always add the validator address to the log labels
31
31
  * @returns A debug logger.
32
32
  */
33
- export declare function createDebugLogger(name: string, fixedLogData?: LogData): DebugLogger;
33
+ export declare function createDebugLogger(name: string): DebugLogger;
34
+ /**
35
+ * A function to create a logger that automatically includes fixed data in each log entry.
36
+ * @param debugLogger - The base DebugLogger instance to which we attach fixed log data.
37
+ * @param fixedLogData - The data to be included in every log entry.
38
+ * @returns A DebugLogger with log level methods (error, warn, info, verbose, debug) that
39
+ * automatically attach `fixedLogData` to every log message.
40
+ */
41
+ export declare function attachedFixedDataToLogger(debugLogger: DebugLogger, fixedLogData: LogData): DebugLogger;
34
42
  /** A callback to capture all logs. */
35
43
  export type LogHandler = (level: LogLevel, namespace: string, msg: string, data?: LogData) => void;
36
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/log/logger.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEvD,QAAA,MAAM,SAAS,kEAAmE,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AASlD,eAAO,IAAI,YAAY,4DAAgB,CAAC;AAKxC,oDAAoD;AACpD,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;KAAG,CAAC,IAAI,QAAQ,GAAG,KAAK;CAAE,GAAG;IAA4B,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAElG;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;;;;;;;;GASG;AAEH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,WAAW,CAkBnF;AACD,sCAAsC;AACtC,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAInG;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,UAAU,QAExC;AAED,mCAAmC;AACnC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,QAEvC;AA6BD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAIjD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/log/logger.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEvD,QAAA,MAAM,SAAS,kEAAmE,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AASlD,eAAO,IAAI,YAAY,4DAAgB,CAAC;AAqBxC,oDAAoD;AACpD,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;KAAG,CAAC,IAAI,QAAQ,GAAG,KAAK;CAAE,GAAG;IAA4B,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAElG;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;;;;;;;;GASG;AAEH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAqB3D;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,GAAG,WAAW,CActG;AAED,sCAAsC;AACtC,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAInG;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,UAAU,QAExC;AAED,mCAAmC;AACnC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,QAEvC;AA6BD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAIjD"}
@@ -8,30 +8,73 @@ function getLogLevel() {
8
8
  return LogLevels.includes(envLogLevel) ? envLogLevel : defaultLogLevel;
9
9
  }
10
10
  export let currentLevel = getLogLevel();
11
+ function filterNegativePatterns(debugString) {
12
+ return debugString
13
+ .split(',')
14
+ .filter(p => !p.startsWith('-'))
15
+ .join(',');
16
+ }
17
+ function extractNegativePatterns(debugString) {
18
+ return (debugString
19
+ .split(',')
20
+ .filter(p => p.startsWith('-'))
21
+ // Remove the leading '-' from the pattern
22
+ .map(p => p.slice(1)));
23
+ }
11
24
  const namespaces = process.env.DEBUG ?? 'aztec:*';
12
- debug.enable(namespaces);
25
+ debug.enable(filterNegativePatterns(namespaces));
13
26
  /**
14
27
  * Creates a new DebugLogger for the current module, defaulting to the LOG_LEVEL env var.
15
28
  * If DEBUG="[module]" env is set, will enable debug logging if the module matches.
16
29
  * Uses npm debug for debug level and console.error for other levels.
17
30
  * @param name - Name of the module.
18
31
  * @param fixedLogData - Additional data to include in the log message.
19
- * @usage createDebugLogger('aztec:validator', {validatorAddress: '0x1234...'});
32
+ * @usage createDebugLogger('aztec:validator');
20
33
  * // will always add the validator address to the log labels
21
34
  * @returns A debug logger.
22
35
  */
23
- export function createDebugLogger(name, fixedLogData) {
36
+ export function createDebugLogger(name) {
24
37
  const debugLogger = debug(name);
25
- const attatchFixedLogData = (data) => ({ ...fixedLogData, ...data });
38
+ const negativePatterns = extractNegativePatterns(namespaces);
39
+ const accepted = () => {
40
+ return !negativePatterns.some(pattern => name.match(pattern));
41
+ };
42
+ const log = (level, msg, data) => {
43
+ if (accepted()) {
44
+ logWithDebug(debugLogger, level, msg, data);
45
+ }
46
+ };
47
+ const logger = {
48
+ silent: () => { },
49
+ error: (msg, err, data) => log('error', fmtErr(msg, err), data),
50
+ warn: (msg, data) => log('warn', msg, data),
51
+ info: (msg, data) => log('info', msg, data),
52
+ verbose: (msg, data) => log('verbose', msg, data),
53
+ debug: (msg, data) => log('debug', msg, data),
54
+ };
55
+ return Object.assign((msg, data) => log('debug', msg, data), logger);
56
+ }
57
+ /**
58
+ * A function to create a logger that automatically includes fixed data in each log entry.
59
+ * @param debugLogger - The base DebugLogger instance to which we attach fixed log data.
60
+ * @param fixedLogData - The data to be included in every log entry.
61
+ * @returns A DebugLogger with log level methods (error, warn, info, verbose, debug) that
62
+ * automatically attach `fixedLogData` to every log message.
63
+ */
64
+ export function attachedFixedDataToLogger(debugLogger, fixedLogData) {
65
+ // Helper function to merge fixed data with additional data passed to log entries.
66
+ const attach = (data) => ({ ...fixedLogData, ...data });
67
+ // Define the logger with all the necessary log level methods.
26
68
  const logger = {
69
+ // Silent log level does nothing.
27
70
  silent: () => { },
28
- error: (msg, err, data) => logWithDebug(debugLogger, 'error', fmtErr(msg, err), attatchFixedLogData(data)),
29
- warn: (msg, data) => logWithDebug(debugLogger, 'warn', msg, attatchFixedLogData(data)),
30
- info: (msg, data) => logWithDebug(debugLogger, 'info', msg, attatchFixedLogData(data)),
31
- verbose: (msg, data) => logWithDebug(debugLogger, 'verbose', msg, attatchFixedLogData(data)),
32
- debug: (msg, data) => logWithDebug(debugLogger, 'debug', msg, attatchFixedLogData(data)),
71
+ error: (msg, err, data) => debugLogger.error(fmtErr(msg, err), attach(data)),
72
+ warn: (msg, data) => debugLogger.warn(msg, attach(data)),
73
+ info: (msg, data) => debugLogger.info(msg, attach(data)),
74
+ verbose: (msg, data) => debugLogger.verbose(msg, attach(data)),
75
+ debug: (msg, data) => debugLogger.debug(msg, attach(data)),
33
76
  };
34
- return Object.assign((msg, data) => logWithDebug(debugLogger, 'debug', msg, attatchFixedLogData(data)), logger);
77
+ return Object.assign((msg, data) => debugLogger.debug(msg, attach(data)), logger);
35
78
  }
36
79
  const logHandlers = [];
37
80
  /**
@@ -78,4 +121,4 @@ export function fmtLogData(data) {
78
121
  .map(([key, value]) => `${key}=${typeof value === 'object' && 'toString' in value ? value.toString() : value}`)
79
122
  .join(' ');
80
123
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZy9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJL0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBVSxDQUFDO0FBT25GLFNBQVMsV0FBVztJQUNsQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQWMsQ0FBQztJQUNyRSxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUUsTUFBZ0IsQ0FBQyxDQUFDLENBQUUsT0FBaUIsQ0FBQztJQUN4RyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFFLFFBQWtCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO0lBQ3ZHLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7QUFDekUsQ0FBQztBQUVELE1BQU0sQ0FBQyxJQUFJLFlBQVksR0FBRyxXQUFXLEVBQUUsQ0FBQztBQUV4QyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUM7QUFDbEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQWdCekI7Ozs7Ozs7OztHQVNHO0FBRUgsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQVksRUFBRSxZQUFzQjtJQUNwRSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMs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
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZy9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJL0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBVSxDQUFDO0FBT25GLFNBQVMsV0FBVztJQUNsQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQWMsQ0FBQztJQUNyRSxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUUsTUFBZ0IsQ0FBQyxDQUFDLENBQUUsT0FBaUIsQ0FBQztJQUN4RyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFFLFFBQWtCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO0lBQ3ZHLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7QUFDekUsQ0FBQztBQUVELE1BQU0sQ0FBQyxJQUFJLFlBQVksR0FBRyxXQUFXLEVBQUUsQ0FBQztBQUV4QyxTQUFTLHNCQUFzQixDQUFDLFdBQW1CO0lBQ2pELE9BQU8sV0FBVztTQUNmLEtBQUssQ0FBQyxHQUFHLENBQUM7U0FDVixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQUNELFNBQVMs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
@@ -211,6 +211,11 @@ export declare class BufferReader {
211
211
  * @returns The length of the underlying reader's buffer.
212
212
  */
213
213
  getLength(): number;
214
+ /**
215
+ * Gets bytes remaining to be read from the buffer.
216
+ * @returns Bytes remaining to be read from the buffer.
217
+ */
218
+ remainingBytes(): number;
214
219
  }
215
220
  /**
216
221
  * A deserializer
@@ -1 +1 @@
1
- {"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/buffer_reader.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAY;;IAEX,OAAO,CAAC,MAAM;IAD1B,OAAO,CAAC,KAAK,CAAS;gBACF,MAAM,EAAE,MAAM,EAAE,MAAM,SAAI;IAI9C;;;;;;;OAOG;WACW,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY;IAYxF,0EAA0E;IACnE,OAAO,IAAI,OAAO;IAIzB;;;;;OAKG;IACI,UAAU,IAAI,MAAM;IAM3B;;;;OAIG;IACI,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAKhE;;;;;;;OAOG;IACI,WAAW,IAAI,MAAM;IAY5B;;;;;OAKG;IACI,UAAU,IAAI,MAAM;IAM3B;;;;;OAKG;IACI,SAAS,IAAI,MAAM;IAM1B;;;;;;OAMG;IACI,WAAW,IAAI,OAAO;IAM7B;;;;;;;OAOG;IACI,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAMnC,yCAAyC;IAClC,SAAS,IAAI,MAAM;IAM1B;;;;;OAKG;IACI,gBAAgB,IAAI,MAAM,EAAE;IAMnC;;;;;;;;OAQG;IACI,UAAU,CAAC,CAAC,EAAE,gBAAgB,EAAE;QACrC;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GAAG,CAAC,EAAE;IASP;;;;;;;;OAQG;IACI,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,EAAE;QAChD;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GAAG,CAAC,EAAE;IASP;;;;;;;;;OASG;IACI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAClC,IAAI,EAAE,CAAC,EACP,gBAAgB,EAAE;QAChB;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GACA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAKd;;;;;;;OAOG;IACI,eAAe,CAAC,IAAI,SAAK,GAAG,MAAM,EAAE;IAiB3C;;;;;;OAMG;IACI,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE;QACjC;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GAAG,CAAC;IAIL;;;;;;OAMG;IACI,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAKpC;;;;;;OAMG;IACI,UAAU,IAAI,MAAM;IAI3B;;;;;;;OAOG;IACI,UAAU,IAAI,MAAM;IAM3B;;;;;;;;OAQG;IACI,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE;QAC9B;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAA;KAAE;IAWxB;;;OAGG;IACI,SAAS,IAAI,MAAM;CAW3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;CAC/B"}
1
+ {"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/buffer_reader.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAY;;IAEX,OAAO,CAAC,MAAM;IAD1B,OAAO,CAAC,KAAK,CAAS;gBACF,MAAM,EAAE,MAAM,EAAE,MAAM,SAAI;IAI9C;;;;;;;OAOG;WACW,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY;IAYxF,0EAA0E;IACnE,OAAO,IAAI,OAAO;IAIzB;;;;;OAKG;IACI,UAAU,IAAI,MAAM;IAM3B;;;;OAIG;IACI,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAKhE;;;;;;;OAOG;IACI,WAAW,IAAI,MAAM;IAY5B;;;;;OAKG;IACI,UAAU,IAAI,MAAM;IAM3B;;;;;OAKG;IACI,SAAS,IAAI,MAAM;IAM1B;;;;;;OAMG;IACI,WAAW,IAAI,OAAO;IAM7B;;;;;;;OAOG;IACI,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAMnC,yCAAyC;IAClC,SAAS,IAAI,MAAM;IAM1B;;;;;OAKG;IACI,gBAAgB,IAAI,MAAM,EAAE;IAMnC;;;;;;;;OAQG;IACI,UAAU,CAAC,CAAC,EAAE,gBAAgB,EAAE;QACrC;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GAAG,CAAC,EAAE;IASP;;;;;;;;OAQG;IACI,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,EAAE;QAChD;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GAAG,CAAC,EAAE;IASP;;;;;;;;;OASG;IACI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAClC,IAAI,EAAE,CAAC,EACP,gBAAgB,EAAE;QAChB;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GACA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAKd;;;;;;;OAOG;IACI,eAAe,CAAC,IAAI,SAAK,GAAG,MAAM,EAAE;IAiB3C;;;;;;OAMG;IACI,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE;QACjC;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GAAG,CAAC;IAIL;;;;;;OAMG;IACI,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAKpC;;;;;;OAMG;IACI,UAAU,IAAI,MAAM;IAI3B;;;;;;;OAOG;IACI,UAAU,IAAI,MAAM;IAM3B;;;;;;;;OAQG;IACI,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE;QAC9B;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAA;KAAE;IAWxB;;;OAGG;IACI,SAAS,IAAI,MAAM;IAI1B;;;OAGG;IACI,cAAc,IAAI,MAAM;CAWhC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;CAC/B"}
@@ -285,10 +285,17 @@ export class BufferReader {
285
285
  getLength() {
286
286
  return this.buffer.length;
287
287
  }
288
+ /**
289
+ * Gets bytes remaining to be read from the buffer.
290
+ * @returns Bytes remaining to be read from the buffer.
291
+ */
292
+ remainingBytes() {
293
+ return this.buffer.length - this.index;
294
+ }
288
295
  }
289
296
  _BufferReader_instances = new WeakSet(), _BufferReader_rangeCheck = function _BufferReader_rangeCheck(numBytes) {
290
297
  if (this.index + numBytes > this.buffer.length) {
291
298
  throw new Error(`Attempted to read beyond buffer length. Start index: ${this.index}, Num bytes to read: ${numBytes}, Buffer length: ${this.buffer.length}`);
292
299
  }
293
300
  };
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX3JlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJpYWxpemUvYnVmZmVyX3JlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFFdkIsWUFBb0IsTUFBYyxFQUFFLE1BQU0sR0FBRyxDQUFDOztRQUExQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFrRDtRQUN2RSxJQUFJLGNBQWMsWUFBWSxZQUFZLEVBQUUsQ0FBQztZQUMzQyxPQUFPLGNBQWMsQ0FBQztRQUN4QixDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFDekMsQ0FBQyxDQUFDLGNBQWM7WUFDaEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU3RixPQUFPLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCwwRUFBMEU7SUFDbkUsT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxVQUFVO1FBQ2YsdUJBQUEsSUFBSSx5REFBWSxNQUFoQixJQUFJLEVBQWEsQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMs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
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX3JlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJpYWxpemUvYnVmZmVyX3JlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFFdkIsWUFBb0IsTUFBYyxFQUFFLE1BQU0sR0FBRyxDQUFDOztRQUExQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFrRDtRQUN2RSxJQUFJLGNBQWMsWUFBWSxZQUFZLEVBQUUsQ0FBQztZQUMzQyxPQUFPLGNBQWMsQ0FBQztRQUN4QixDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFDekMsQ0FBQyxDQUFDLGNBQWM7WUFDaEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU3RixPQUFPLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCwwRUFBMEU7SUFDbkUsT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxVQUFVO1FBQ2YsdUJBQUEsSUFBSSx5REFBWSxNQUFoQixJQUFJLEVBQWEsQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFtQixLQUFRO1FBQzNDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDdEUsT0FBTyxNQUEwQixDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksV0FBVztRQUNoQix1QkFBQSxJQUFJLHlEQUFZLE1BQWhCLElBQUksRUFBYSxFQUFFLENBQUMsQ0FBQztRQUVyQixJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzVCLE1BQU0sR0FBRyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFVBQVU7UUFDZix1QkFBQSxJQUFJLHlEQUFZLE1BQWhCLElBQUksRUFBYSxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksU0FBUztRQUNkLHVCQUFBLElBQUkseURBQVksTUFBaEIsSUFBSSxFQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksV0FBVztRQUNoQix1QkFBQSxJQUFJLHlEQUFZLE1BQWhCLElBQUksRUFBYSxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxTQUFTLENBQUMsQ0FBUztRQUN4Qix1QkFBQSxJQUFJLHlEQUFZLE1BQWhCLElBQUksRUFBYSxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELHlDQUF5QztJQUNsQyxTQUFTO1FBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNyQixVQUFVLEVBQUUsQ0FBQyxNQUFvQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO1NBQzFELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFVBQVUsQ0FBSSxnQkFLcEI7UUFDQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUksSUFBSSxDQUFDLENBQUM7UUFDbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLHFCQUFxQixDQUFJLGdCQUsvQjtRQUNDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM5QixNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBSSxJQUFJLENBQUMsQ0FBQztRQUNsQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLFNBQVMsQ0FDZCxJQUFPLEVBQ1AsZ0JBS0M7UUFFRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLE9BQU8sTUFBcUIsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGVBQWUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDL0QsdUJBQUEsSUFBSSx5REFBWSxNQUFoQixJQUFJLEVBQWEsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUNELHdDQUF3QztRQUN4QyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FDYix3REFBd0QsSUFBSSxDQUFDLEtBQUssd0JBQXdCLEdBQUcsU0FBUyxDQUN2RyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxVQUFVLENBQUksWUFLcEI7UUFDQyxPQUFPLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFNBQVMsQ0FBQyxDQUFVO1FBQ3pCLHVCQUFBLElBQUkseURBQVksTUFBaEIsSUFBSSxFQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLFVBQVU7UUFDZixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0IsdUJBQUEsSUFBSSx5REFBWSxNQUFoQixJQUFJLEVBQWEsSUFBSSxDQUFDLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE9BQU8sQ0FBSSxZQUtqQjtRQUNDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxNQUFNLEdBQUcsR0FBeUIsRUFBRSxDQUFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBSSxZQUFZLENBQUMsQ0FBQztZQUMvQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDekMsQ0FBQztDQVNGO3NHQVBhLFFBQWdCO0lBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMvQyxNQUFNLElBQUksS0FBSyxDQUNiLHdEQUF3RCxJQUFJLENBQUMsS0FBSyx3QkFBd0IsUUFBUSxvQkFBb0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FDM0ksQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIn0=
@@ -39,7 +39,7 @@ export class WasmModule {
39
39
  * @param initMethod - Defaults to calling '_initialize'.
40
40
  * @param maximum - 8192 maximum by default. 512mb.
41
41
  */
42
- async init(initial = 30, maximum = 8192, initMethod = '_initialize') {
42
+ async init(initial = 31, maximum = 8192, initMethod = '_initialize') {
43
43
  this.debug(`initial mem: ${initial} pages, ${(initial * 2 ** 16) / (1024 * 1024)}mb. max mem: ${maximum} pages, ${(maximum * 2 ** 16) / (1024 * 1024)}mb`);
44
44
  this.memory = new WebAssembly.Memory({ initial, maximum });
45
45
  // Create a view over the memory buffer.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/foundation",
3
- "version": "0.60.0",
3
+ "version": "0.62.0",
4
4
  "packageManager": "yarn@3.4.1",
5
5
  "type": "module",
6
6
  "main": "./dest/index.js",
@@ -95,7 +95,7 @@
95
95
  ]
96
96
  },
97
97
  "dependencies": {
98
- "@aztec/bb.js": "0.60.0",
98
+ "@aztec/bb.js": "0.62.0",
99
99
  "@koa/cors": "^5.0.0",
100
100
  "@noble/curves": "^1.2.0",
101
101
  "bn.js": "^5.2.1",
@@ -1,7 +1,7 @@
1
1
  import { AztecAddress } from '../aztec-address/index.js';
2
2
  import { type Fr } from '../fields/index.js';
3
3
  import { type ABIParameter, type ABIVariable, type AbiType } from './abi.js';
4
- import { isAztecAddressStruct } from './utils.js';
4
+ import { isAztecAddressStruct, parseSignedInt } from './utils.js';
5
5
 
6
6
  /**
7
7
  * The type of our decoded ABI.
@@ -10,7 +10,6 @@ export type AbiDecoded = bigint | boolean | AztecAddress | AbiDecoded[] | { [key
10
10
 
11
11
  /**
12
12
  * Decodes values using a provided ABI.
13
- * Missing support for signed integer.
14
13
  */
15
14
  class AbiDecoder {
16
15
  constructor(private types: AbiType[], private flattened: Fr[]) {}
@@ -24,11 +23,16 @@ class AbiDecoder {
24
23
  switch (abiType.kind) {
25
24
  case 'field':
26
25
  return this.getNextField().toBigInt();
27
- case 'integer':
26
+ case 'integer': {
27
+ const nextField = this.getNextField();
28
+
28
29
  if (abiType.sign === 'signed') {
29
- throw new Error('Unsupported type: signed integer');
30
+ // We parse the buffer using 2's complement
31
+ return parseSignedInt(nextField.toBuffer(), abiType.width);
30
32
  }
31
- return this.getNextField().toBigInt();
33
+
34
+ return nextField.toBigInt();
35
+ }
32
36
  case 'boolean':
33
37
  return !this.getNextField().isZero();
34
38
  case 'array': {
package/src/abi/utils.ts CHANGED
@@ -48,3 +48,31 @@ export function isWrappedFieldStruct(abiType: AbiType) {
48
48
  abiType.fields[0].type.kind === 'field'
49
49
  );
50
50
  }
51
+
52
+ /**
53
+ * Returns a bigint by parsing a serialized 2's complement signed int.
54
+ * @param b - The signed int as a buffer
55
+ * @returns - a deserialized bigint
56
+ */
57
+ export function parseSignedInt(b: Buffer, width?: number) {
58
+ const buf = Buffer.from(b);
59
+
60
+ // We get the last (width / 8) bytes where width = bits of type (i64, i32 etc)
61
+ const slicedBuf = width !== undefined ? buf.subarray(-(width / 8)) : buf;
62
+
63
+ // Then manually deserialize with 2's complement, with the process as follows:
64
+
65
+ // If our most significant bit is high...
66
+ if (0x80 & slicedBuf.subarray(0, 1).readUInt8()) {
67
+ // We flip the bits
68
+ for (let i = 0; i < slicedBuf.length; i++) {
69
+ slicedBuf[i] = ~slicedBuf[i];
70
+ }
71
+
72
+ // Add one, then negate it
73
+ return -(BigInt(`0x${slicedBuf.toString('hex')}`) + 1n);
74
+ }
75
+
76
+ // ...otherwise we just return our positive int
77
+ return BigInt(`0x${slicedBuf.toString('hex')}`);
78
+ }
@@ -5,11 +5,17 @@ import { type Tuple } from '../serialize/types.js';
5
5
  * @param arr - Array with elements to pad.
6
6
  * @param elem - Element to use for padding.
7
7
  * @param length - Target length.
8
+ * @param errorMsg - Error message to throw if target length exceeds the input array length.
8
9
  * @returns A new padded array.
9
10
  */
10
- export function padArrayEnd<T, N extends number>(arr: T[], elem: T, length: N): Tuple<T, N> {
11
+ export function padArrayEnd<T, N extends number>(
12
+ arr: T[],
13
+ elem: T,
14
+ length: N,
15
+ errorMsg = 'Array size exceeds target length',
16
+ ): Tuple<T, N> {
11
17
  if (arr.length > length) {
12
- throw new Error(`Array size exceeds target length`);
18
+ throw new Error(errorMsg);
13
19
  }
14
20
  // Since typescript cannot always deduce that something is a tuple, we cast
15
21
  return [...arr, ...Array(length - arr.length).fill(elem)] as Tuple<T, N>;
@@ -33,6 +33,8 @@ export type EnvVar =
33
33
  | 'BOT_TOKEN_SALT'
34
34
  | 'BOT_TX_INTERVAL_SECONDS'
35
35
  | 'BOT_TX_MINED_WAIT_SECONDS'
36
+ | 'BOT_MAX_CONSECUTIVE_ERRORS'
37
+ | 'BOT_STOP_WHEN_UNHEALTHY'
36
38
  | 'COINBASE'
37
39
  | 'DATA_DIRECTORY'
38
40
  | 'DEBUG'
@@ -58,9 +60,11 @@ export type EnvVar =
58
60
  | 'NOMISMATOKOPIO_CONTRACT_ADDRESS'
59
61
  | 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
60
62
  | 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT'
63
+ | 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT'
61
64
  | 'OTEL_SERVICE_NAME'
62
65
  | 'OUTBOX_CONTRACT_ADDRESS'
63
66
  | 'P2P_BLOCK_CHECK_INTERVAL_MS'
67
+ | 'P2P_BLOCK_REQUEST_BATCH_SIZE'
64
68
  | 'P2P_ENABLED'
65
69
  | 'P2P_GOSSIPSUB_D'
66
70
  | 'P2P_GOSSIPSUB_DHI'
@@ -33,11 +33,16 @@ export class JsonRpcServer {
33
33
  private objectClassMap: JsonClassConverterInput,
34
34
  /** List of methods to disallow from calling remotely */
35
35
  public readonly disallowedMethods: string[] = [],
36
+ private healthCheck: StatusCheckFn = () => true,
36
37
  private log = createDebugLogger('json-rpc:server'),
37
38
  ) {
38
39
  this.proxy = new JsonProxy(handler, stringClassMap, objectClassMap);
39
40
  }
40
41
 
42
+ public isHealthy(): boolean | Promise<boolean> {
43
+ return this.healthCheck();
44
+ }
45
+
41
46
  /**
42
47
  * Get an express app object.
43
48
  * @param prefix - Our server prefix.
@@ -205,15 +210,25 @@ export class JsonRpcServer {
205
210
  }
206
211
  }
207
212
 
213
+ export type StatusCheckFn = () => boolean | Promise<boolean>;
214
+
208
215
  /**
209
216
  * Creates a router for handling a plain status request that will return 200 status when running.
217
+ * @param getCurrentStatus - List of health check functions to run.
210
218
  * @param apiPrefix - The prefix to use for all api requests
211
219
  * @returns - The router for handling status requests.
212
220
  */
213
- export function createStatusRouter(apiPrefix = '') {
221
+ export function createStatusRouter(getCurrentStatus: StatusCheckFn, apiPrefix = '') {
214
222
  const router = new Router({ prefix: `${apiPrefix}` });
215
- router.get('/status', (ctx: Koa.Context) => {
216
- ctx.status = 200;
223
+ router.get('/status', async (ctx: Koa.Context) => {
224
+ let ok: boolean;
225
+ try {
226
+ ok = (await getCurrentStatus()) === true;
227
+ } catch (err) {
228
+ ok = false;
229
+ }
230
+
231
+ ctx.status = ok ? 200 : 500;
217
232
  });
218
233
  return router;
219
234
  }
@@ -296,5 +311,22 @@ export function createNamespacedJsonRpcServer(
296
311
  { stringClassMap: {}, objectClassMap: {} } as ClassMaps,
297
312
  );
298
313
 
299
- return new JsonRpcServer(Object.create(handler), classMaps.stringClassMap, classMaps.objectClassMap, [], log);
314
+ const aggregateHealthCheck = async () => {
315
+ const statuses = await Promise.allSettled(
316
+ servers.flatMap(services =>
317
+ Object.entries(services).map(async ([name, service]) => ({ name, healthy: await service.isHealthy() })),
318
+ ),
319
+ );
320
+ const allHealthy = statuses.every(result => result.status === 'fulfilled' && result.value.healthy);
321
+ return allHealthy;
322
+ };
323
+
324
+ return new JsonRpcServer(
325
+ Object.create(handler),
326
+ classMaps.stringClassMap,
327
+ classMaps.objectClassMap,
328
+ [],
329
+ aggregateHealthCheck,
330
+ log,
331
+ );
300
332
  }
package/src/log/logger.ts CHANGED
@@ -19,8 +19,24 @@ function getLogLevel() {
19
19
 
20
20
  export let currentLevel = getLogLevel();
21
21
 
22
+ function filterNegativePatterns(debugString: string): string {
23
+ return debugString
24
+ .split(',')
25
+ .filter(p => !p.startsWith('-'))
26
+ .join(',');
27
+ }
28
+ function extractNegativePatterns(debugString: string): string[] {
29
+ return (
30
+ debugString
31
+ .split(',')
32
+ .filter(p => p.startsWith('-'))
33
+ // Remove the leading '-' from the pattern
34
+ .map(p => p.slice(1))
35
+ );
36
+ }
37
+
22
38
  const namespaces = process.env.DEBUG ?? 'aztec:*';
23
- debug.enable(namespaces);
39
+ debug.enable(filterNegativePatterns(namespaces));
24
40
 
25
41
  /** Log function that accepts an exception object */
26
42
  type ErrorLogFn = (msg: string, err?: Error | unknown, data?: LogData) => void;
@@ -42,30 +58,57 @@ export type DebugLogger = Logger;
42
58
  * Uses npm debug for debug level and console.error for other levels.
43
59
  * @param name - Name of the module.
44
60
  * @param fixedLogData - Additional data to include in the log message.
45
- * @usage createDebugLogger('aztec:validator', {validatorAddress: '0x1234...'});
61
+ * @usage createDebugLogger('aztec:validator');
46
62
  * // will always add the validator address to the log labels
47
63
  * @returns A debug logger.
48
64
  */
49
65
 
50
- export function createDebugLogger(name: string, fixedLogData?: LogData): DebugLogger {
66
+ export function createDebugLogger(name: string): DebugLogger {
51
67
  const debugLogger = debug(name);
52
68
 
53
- const attatchFixedLogData = (data?: LogData) => ({ ...fixedLogData, ...data });
69
+ const negativePatterns = extractNegativePatterns(namespaces);
70
+ const accepted = () => {
71
+ return !negativePatterns.some(pattern => name.match(pattern));
72
+ };
73
+ const log = (level: LogLevel, msg: string, data?: LogData) => {
74
+ if (accepted()) {
75
+ logWithDebug(debugLogger, level, msg, data);
76
+ }
77
+ };
78
+ const logger = {
79
+ silent: () => {},
80
+ error: (msg: string, err?: unknown, data?: LogData) => log('error', fmtErr(msg, err), data),
81
+ warn: (msg: string, data?: LogData) => log('warn', msg, data),
82
+ info: (msg: string, data?: LogData) => log('info', msg, data),
83
+ verbose: (msg: string, data?: LogData) => log('verbose', msg, data),
84
+ debug: (msg: string, data?: LogData) => log('debug', msg, data),
85
+ };
86
+ return Object.assign((msg: string, data?: LogData) => log('debug', msg, data), logger);
87
+ }
54
88
 
89
+ /**
90
+ * A function to create a logger that automatically includes fixed data in each log entry.
91
+ * @param debugLogger - The base DebugLogger instance to which we attach fixed log data.
92
+ * @param fixedLogData - The data to be included in every log entry.
93
+ * @returns A DebugLogger with log level methods (error, warn, info, verbose, debug) that
94
+ * automatically attach `fixedLogData` to every log message.
95
+ */
96
+ export function attachedFixedDataToLogger(debugLogger: DebugLogger, fixedLogData: LogData): DebugLogger {
97
+ // Helper function to merge fixed data with additional data passed to log entries.
98
+ const attach = (data?: LogData) => ({ ...fixedLogData, ...data });
99
+ // Define the logger with all the necessary log level methods.
55
100
  const logger = {
101
+ // Silent log level does nothing.
56
102
  silent: () => {},
57
- error: (msg: string, err?: unknown, data?: LogData) =>
58
- logWithDebug(debugLogger, 'error', fmtErr(msg, err), attatchFixedLogData(data)),
59
- warn: (msg: string, data?: LogData) => logWithDebug(debugLogger, 'warn', msg, attatchFixedLogData(data)),
60
- info: (msg: string, data?: LogData) => logWithDebug(debugLogger, 'info', msg, attatchFixedLogData(data)),
61
- verbose: (msg: string, data?: LogData) => logWithDebug(debugLogger, 'verbose', msg, attatchFixedLogData(data)),
62
- debug: (msg: string, data?: LogData) => logWithDebug(debugLogger, 'debug', msg, attatchFixedLogData(data)),
103
+ error: (msg: string, err?: unknown, data?: LogData) => debugLogger.error(fmtErr(msg, err), attach(data)),
104
+ warn: (msg: string, data?: LogData) => debugLogger.warn(msg, attach(data)),
105
+ info: (msg: string, data?: LogData) => debugLogger.info(msg, attach(data)),
106
+ verbose: (msg: string, data?: LogData) => debugLogger.verbose(msg, attach(data)),
107
+ debug: (msg: string, data?: LogData) => debugLogger.debug(msg, attach(data)),
63
108
  };
64
- return Object.assign(
65
- (msg: string, data?: LogData) => logWithDebug(debugLogger, 'debug', msg, attatchFixedLogData(data)),
66
- logger,
67
- );
109
+ return Object.assign((msg: string, data?: LogData) => debugLogger.debug(msg, attach(data)), logger);
68
110
  }
111
+
69
112
  /** A callback to capture all logs. */
70
113
  export type LogHandler = (level: LogLevel, namespace: string, msg: string, data?: LogData) => void;
71
114
 
@@ -340,6 +340,14 @@ export class BufferReader {
340
340
  return this.buffer.length;
341
341
  }
342
342
 
343
+ /**
344
+ * Gets bytes remaining to be read from the buffer.
345
+ * @returns Bytes remaining to be read from the buffer.
346
+ */
347
+ public remainingBytes(): number {
348
+ return this.buffer.length - this.index;
349
+ }
350
+
343
351
  #rangeCheck(numBytes: number) {
344
352
  if (this.index + numBytes > this.buffer.length) {
345
353
  throw new Error(
@@ -79,7 +79,7 @@ export class WasmModule implements IWasmModule {
79
79
  * @param initMethod - Defaults to calling '_initialize'.
80
80
  * @param maximum - 8192 maximum by default. 512mb.
81
81
  */
82
- public async init(initial = 30, maximum = 8192, initMethod: string | null = '_initialize') {
82
+ public async init(initial = 31, maximum = 8192, initMethod: string | null = '_initialize') {
83
83
  this.debug(
84
84
  `initial mem: ${initial} pages, ${(initial * 2 ** 16) / (1024 * 1024)}mb. max mem: ${maximum} pages, ${
85
85
  (maximum * 2 ** 16) / (1024 * 1024)