@aztec/foundation 0.0.1-commit.3d8f95d → 0.0.1-commit.3f296a7d2
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/dest/branded-types/slot.d.ts +4 -1
- package/dest/branded-types/slot.d.ts.map +1 -1
- package/dest/branded-types/slot.js +3 -0
- package/dest/buffer/index.d.ts +2 -1
- package/dest/buffer/index.d.ts.map +1 -1
- package/dest/buffer/index.js +1 -0
- package/dest/buffer/utils.d.ts +3 -0
- package/dest/buffer/utils.d.ts.map +1 -0
- package/dest/buffer/utils.js +7 -0
- package/dest/config/env_var.d.ts +2 -2
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/config/index.d.ts +1 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +15 -0
- package/dest/config/network_config.d.ts +19 -1
- package/dest/config/network_config.d.ts.map +1 -1
- package/dest/config/network_config.js +4 -1
- package/dest/config/network_name.d.ts +2 -2
- package/dest/config/network_name.d.ts.map +1 -1
- package/dest/config/network_name.js +2 -0
- package/dest/crypto/poseidon/index.d.ts +1 -1
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +40 -33
- package/dest/crypto/secp256k1-signer/utils.d.ts +12 -1
- package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
- package/dest/crypto/secp256k1-signer/utils.js +26 -0
- package/dest/curves/bn254/field.d.ts +2 -1
- package/dest/curves/bn254/field.d.ts.map +1 -1
- package/dest/curves/bn254/field.js +5 -2
- package/dest/eth-signature/eth_signature.d.ts +2 -1
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- package/dest/eth-signature/eth_signature.js +7 -2
- package/dest/fifo/fifo_frame_reader.d.ts +41 -0
- package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
- package/dest/fifo/fifo_frame_reader.js +74 -0
- package/dest/fifo/index.d.ts +2 -0
- package/dest/fifo/index.d.ts.map +1 -0
- package/dest/fifo/index.js +1 -0
- package/dest/jest/setup.js +24 -0
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.js +1 -1
- package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
- package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
- package/dest/json-rpc/server/api_key_auth.js +57 -0
- package/dest/json-rpc/server/index.d.ts +2 -1
- package/dest/json-rpc/server/index.d.ts.map +1 -1
- package/dest/json-rpc/server/index.js +1 -0
- package/dest/log/bigint-utils.d.ts +5 -0
- package/dest/log/bigint-utils.d.ts.map +1 -0
- package/dest/log/bigint-utils.js +21 -0
- package/dest/log/gcloud-logger-config.d.ts +1 -1
- package/dest/log/gcloud-logger-config.d.ts.map +1 -1
- package/dest/log/gcloud-logger-config.js +3 -0
- package/dest/log/pino-logger.d.ts +1 -1
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +4 -0
- package/dest/serialize/buffer_reader.d.ts +8 -1
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +13 -0
- package/dest/serialize/serialize.d.ts +19 -1
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/serialize/serialize.js +31 -0
- package/dest/sleep/index.d.ts +2 -1
- package/dest/sleep/index.d.ts.map +1 -1
- package/dest/sleep/index.js +10 -1
- package/dest/timer/date.d.ts +3 -1
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +4 -0
- package/dest/transport/transport_client.js +2 -2
- package/package.json +3 -2
- package/src/branded-types/slot.ts +5 -0
- package/src/buffer/index.ts +1 -0
- package/src/buffer/utils.ts +8 -0
- package/src/config/env_var.ts +38 -5
- package/src/config/index.ts +15 -0
- package/src/config/network_config.ts +3 -0
- package/src/config/network_name.ts +4 -1
- package/src/crypto/poseidon/index.ts +42 -34
- package/src/crypto/secp256k1-signer/utils.ts +32 -0
- package/src/curves/bn254/field.ts +6 -2
- package/src/eth-signature/eth_signature.ts +7 -1
- package/src/fifo/fifo_frame_reader.ts +98 -0
- package/src/fifo/index.ts +1 -0
- package/src/jest/setup.mjs +27 -0
- package/src/json-rpc/client/safe_json_rpc_client.ts +2 -0
- package/src/json-rpc/server/api_key_auth.ts +63 -0
- package/src/json-rpc/server/index.ts +1 -0
- package/src/log/bigint-utils.ts +25 -0
- package/src/log/gcloud-logger-config.ts +5 -0
- package/src/log/pino-logger.ts +4 -0
- package/src/serialize/buffer_reader.ts +15 -0
- package/src/serialize/serialize.ts +32 -0
- package/src/sleep/index.ts +10 -1
- package/src/timer/date.ts +6 -0
- package/src/transport/transport_client.ts +2 -2
|
@@ -49,6 +49,7 @@ declare abstract class BaseField {
|
|
|
49
49
|
lt(rhs: BaseField): boolean;
|
|
50
50
|
cmp(rhs: BaseField): -1 | 0 | 1;
|
|
51
51
|
static cmp(lhs: BaseField, rhs: BaseField): -1 | 0 | 1;
|
|
52
|
+
static cmpAsBigInt(lhs: bigint, rhs: bigint): -1 | 0 | 1;
|
|
52
53
|
isZero(): boolean;
|
|
53
54
|
isEmpty(): boolean;
|
|
54
55
|
toFriendlyJSON(): string;
|
|
@@ -177,4 +178,4 @@ export declare class Fq extends BaseField {
|
|
|
177
178
|
/** Wraps a function that returns a buffer so that all results are reduced into a field of the given type. */
|
|
178
179
|
export declare function reduceFn<TInput, TField extends BaseField>(fn: (input: TInput) => Buffer, field: DerivedField<TField>): (input: TInput) => TField;
|
|
179
180
|
export {};
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYm4yNTQvZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFLaEU7O0dBRUc7QUFDSCxLQUFLLFlBQVksQ0FBQyxDQUFDLFNBQVMsU0FBUyxJQUFJO0lBQ3ZDLEtBQUssS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDcEI7O09BRUc7SUFDSCxPQUFPLEVBQUUsTUFBTSxDQUFDO0NBQ2pCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsdUJBQWUsU0FBUztJQUN0QixNQUFNLENBQUMsYUFBYSxTQUFNO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFTO0lBRWxDOzs7U0FHSztJQUNMLElBQUksS0FBSyxJQUFJLE1BQU0sQ0FFbEI7SUFFRCxpQ0FBaUM7SUFDakMsSUFBSSxJQUFJLElBQUksTUFBTSxDQUVqQjtJQUVELFNBQVMsYUFBYSxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLE1BQU0sRUFtQjFFO0lBRUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDO0lBRXJDOztPQUVHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sSUFBSSxPQUFPLENBRWhCO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FLakI7SUFFRDs7O09BR0c7SUFDSCxjQUFjLElBQUksTUFBTSxDQUV2QjtJQUVELGFBQWEsSUFBSSxNQUFNLENBR3RCO0lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxT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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/curves/bn254/field.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAK/B,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAKhE;;GAEG;AACH,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,IAAI;IACvC,KAAK,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,uBAAe,SAAS;IACtB,MAAM,CAAC,aAAa,SAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;;SAGK;IACL,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,iCAAiC;IACjC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,SAAS,aAAa,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,EAmB1E;IAED,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;IAErC;;OAEG;IACH,QAAQ,IAAI,MAAM,CAEjB;IAED,QAAQ,IAAI,KAAK,MAAM,EAAE,CAExB;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,OAAO,CAEhB;IAED;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAKjB;IAED;;;OAGG;IACH,cAAc,IAAI,MAAM,CAEvB;IAED,aAAa,IAAI,MAAM,CAGtB;IAED,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAE9B;IAED,EAAE,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAE1B;IAED,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/curves/bn254/field.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,12 +81,15 @@ import { TypeRegistry } from '../../serialize/type_registry.js';
|
|
|
81
81
|
return this.asBigInt < rhs.asBigInt;
|
|
82
82
|
}
|
|
83
83
|
cmp(rhs) {
|
|
84
|
-
|
|
85
|
-
return this.asBigInt === rhsBigInt ? 0 : this.asBigInt < rhsBigInt ? -1 : 1;
|
|
84
|
+
return BaseField.cmpAsBigInt(this.asBigInt, rhs.asBigInt);
|
|
86
85
|
}
|
|
87
86
|
static cmp(lhs, rhs) {
|
|
88
87
|
return lhs.cmp(rhs);
|
|
89
88
|
}
|
|
89
|
+
// Actual bigint comparison. Arguments must have been validated previously.
|
|
90
|
+
static cmpAsBigInt(lhs, rhs) {
|
|
91
|
+
return lhs === rhs ? 0 : lhs < rhs ? -1 : 1;
|
|
92
|
+
}
|
|
90
93
|
isZero() {
|
|
91
94
|
return this.asBigInt === 0n;
|
|
92
95
|
}
|
|
@@ -43,6 +43,7 @@ export declare class Signature {
|
|
|
43
43
|
static fromString(sig: `0x${string}`): Signature;
|
|
44
44
|
static fromViemSignature(sig: ViemSignature): Signature;
|
|
45
45
|
static fromViemTransactionSignature(sig: ViemTransactionSignature): Signature;
|
|
46
|
+
/** Generates a random valid ECDSA signature with a low s-value by signing a random message with a random key. */
|
|
46
47
|
static random(): Signature;
|
|
47
48
|
static empty(): Signature;
|
|
48
49
|
isEmpty(): boolean;
|
|
@@ -61,4 +62,4 @@ export declare class Signature {
|
|
|
61
62
|
toJSON(): `0x${string}`;
|
|
62
63
|
static get schema(): z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, `0x${string}`, string>, `0x${string}`, string>, Signature, string>;
|
|
63
64
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX3NpZ25hdHVyZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V0aC1zaWduYXR1cmUvZXRoX3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUc5RSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBS3hCOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGFBQWEsR0FBRztJQUMxQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ1gsQ0FBQztBQUVGLE1BQU0sTUFBTSx3QkFBd0IsR0FBRztJQUNyQyxDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNoQixDQUFDO0FBRUY7O0dBRUc7QUFDSCxxQkFBYSxTQUFTO0lBT2xCLG1DQUFtQzthQUNuQixDQUFDLEVBQUUsUUFBUTtJQUMzQixtQ0FBbUM7YUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO2FBQ25CLENBQUMsRUFBRSxNQUFNO0lBVjNCLE9BQU8sQ0FBQyxJQUFJLENBQXFCO0lBRWpDLFNBQWdCLEtBQUssRUFBRSxPQUFPLENBQUM7SUFFL0I7SUFDRSxtQ0FBbUM7SUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO0lBQ25CLENBQUMsRUFBRSxRQUFRO0lBQzNCLG1DQUFtQztJQUNuQixDQUFDLEVBQUUsTUFBTSxFQUcxQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsU0FBUyxDQVF2RDtJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUVoRDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FRL0M7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLGFBQWEsR0FBRyxTQUFTLENBRXREO0lBRUQsTUFBTSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsRUFBRSx3QkFBd0IsR0FBRyxTQUFTLENBRTVFO0lBRUQsaUhBQWlIO0lBQ2pILE1BQU0sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUt6QjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxDQUV4QjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUVoQztJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsT0FBTyxJQUFJLE1BQU0sQ0FRaEI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRDs7T0FFRztJQUNILGVBQWUsSUFBSSxhQUFhLENBTS9CO0lBRUQ7O09BRUc7SUFDSCwwQkFBMEIsSUFBSSx3QkFBd0IsQ0FTckQ7SUFFRCxNQUFNLGtCQUVMO0lBRUQsTUFBTSxLQUFLLE1BQU0sMkhBTWhCO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eth_signature.d.ts","sourceRoot":"","sources":["../../src/eth-signature/eth_signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"eth_signature.d.ts","sourceRoot":"","sources":["../../src/eth-signature/eth_signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;IAOlB,mCAAmC;aACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;aACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;aACnB,CAAC,EAAE,MAAM;IAV3B,OAAO,CAAC,IAAI,CAAqB;IAEjC,SAAgB,KAAK,EAAE,OAAO,CAAC;IAE/B;IACE,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,MAAM,EAG1B;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQvD;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO,CAEhD;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAQ/C;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CAEtD;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,wBAAwB,GAAG,SAAS,CAE5E;IAED,iHAAiH;IACjH,MAAM,CAAC,MAAM,IAAI,SAAS,CAKzB;IAED,MAAM,CAAC,KAAK,IAAI,SAAS,CAExB;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEhC;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,OAAO,IAAI,MAAM,CAQhB;IAED,QAAQ,IAAI,KAAK,MAAM,EAAE,CAExB;IAED;;OAEG;IACH,eAAe,IAAI,aAAa,CAM/B;IAED;;OAEG;IACH,0BAA0B,IAAI,wBAAwB,CASrD;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,2HAMhB;CACF"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
2
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
|
+
import { secp256k1 } from '@noble/curves/secp256k1';
|
|
3
4
|
import { z } from 'zod';
|
|
5
|
+
import { randomBytes } from '../crypto/random/index.js';
|
|
4
6
|
import { hasHexPrefix, hexToBuffer } from '../string/index.js';
|
|
5
7
|
/**
|
|
6
8
|
* Contains a signature split into it's primary components (r,s,v)
|
|
@@ -45,8 +47,11 @@ import { hasHexPrefix, hexToBuffer } from '../string/index.js';
|
|
|
45
47
|
static fromViemTransactionSignature(sig) {
|
|
46
48
|
return new Signature(Buffer32.fromBuffer(hexToBuffer(sig.r)), Buffer32.fromBuffer(hexToBuffer(sig.s)), sig.yParity);
|
|
47
49
|
}
|
|
48
|
-
static random() {
|
|
49
|
-
|
|
50
|
+
/** Generates a random valid ECDSA signature with a low s-value by signing a random message with a random key. */ static random() {
|
|
51
|
+
const privateKey = randomBytes(32);
|
|
52
|
+
const message = randomBytes(32);
|
|
53
|
+
const { r, s, recovery } = secp256k1.sign(message, privateKey);
|
|
54
|
+
return new Signature(Buffer32.fromBigInt(r), Buffer32.fromBigInt(s), recovery ? 28 : 27);
|
|
50
55
|
}
|
|
51
56
|
static empty() {
|
|
52
57
|
return new Signature(Buffer32.ZERO, Buffer32.ZERO, 0);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import EventEmitter from 'node:events';
|
|
2
|
+
import type { Readable } from 'node:stream';
|
|
3
|
+
/**
|
|
4
|
+
* Events emitted by FifoFrameReader.
|
|
5
|
+
*
|
|
6
|
+
* - `frame`: A complete frame payload (without the 4-byte length header).
|
|
7
|
+
* - `error`: An unrecoverable error (invalid frame length, stream error).
|
|
8
|
+
* - `end`: The underlying stream has ended.
|
|
9
|
+
*/
|
|
10
|
+
export interface FifoFrameReaderEvents {
|
|
11
|
+
frame: [payload: Buffer];
|
|
12
|
+
error: [error: Error];
|
|
13
|
+
end: [];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Reads length-delimited frames from a readable stream (typically a named FIFO pipe).
|
|
17
|
+
*
|
|
18
|
+
* Wire format: `[4-byte big-endian payload length][payload bytes]`
|
|
19
|
+
*
|
|
20
|
+
* Emits a `frame` event for each complete frame with the raw payload buffer.
|
|
21
|
+
* Callers are responsible for deserializing the payload (e.g., via msgpack).
|
|
22
|
+
*
|
|
23
|
+
* On encountering an invalid payload length (0 or >maxPayloadSize), emits `error`
|
|
24
|
+
* and destroys the stream.
|
|
25
|
+
*/
|
|
26
|
+
export declare class FifoFrameReader extends EventEmitter<FifoFrameReaderEvents> {
|
|
27
|
+
private readonly maxPayloadSize;
|
|
28
|
+
private stream;
|
|
29
|
+
private pendingBuf;
|
|
30
|
+
private running;
|
|
31
|
+
constructor(maxPayloadSize?: number);
|
|
32
|
+
/** Open a FIFO at the given path and start reading frames. */
|
|
33
|
+
start(fifoPath: string, highWaterMark?: number): void;
|
|
34
|
+
/** Start reading frames from an existing readable stream. */
|
|
35
|
+
startFromStream(stream: Readable): void;
|
|
36
|
+
/** Stop reading and destroy the underlying stream. */
|
|
37
|
+
stop(): void;
|
|
38
|
+
/** Parse complete frames out of the pending buffer. */
|
|
39
|
+
private drainFrames;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlmb19mcmFtZV9yZWFkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWZvL2ZpZm9fZnJhbWVfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sWUFBWSxNQUFNLGFBQWEsQ0FBQztBQUV2QyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxXQUFXLHFCQUFxQjtJQUNwQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekIsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLEdBQUcsRUFBRSxFQUFFLENBQUM7Q0FDVDtBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxxQkFBYSxlQUFnQixTQUFRLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQztJQUsxRCxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWM7SUFKM0MsT0FBTyxDQUFDLE1BQU0sQ0FBeUI7SUFDdkMsT0FBTyxDQUFDLFVBQVUsQ0FBMkI7SUFDN0MsT0FBTyxDQUFDLE9BQU8sQ0FBUztJQUV4QixZQUE2QixjQUFjLFNBQW1CLEVBRTdEO0lBRUQsOERBQThEO0lBQzlELEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLGFBQWEsU0FBWSxHQUFHLElBQUksQ0FFdkQ7SUFFRCw2REFBNkQ7SUFDN0QsZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxDQXVCdEM7SUFFRCxzREFBc0Q7SUFDdEQsSUFBSSxJQUFJLElBQUksQ0FNWDtJQUVELHVEQUF1RDtJQUN2RCxPQUFPLENBQUMsV0FBVztDQW1CcEIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fifo_frame_reader.d.ts","sourceRoot":"","sources":["../../src/fifo/fifo_frame_reader.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtB,GAAG,EAAE,EAAE,CAAC;CACT;AAED;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,YAAY,CAAC,qBAAqB,CAAC;IAK1D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAJ3C,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,OAAO,CAAS;IAExB,YAA6B,cAAc,SAAmB,EAE7D;IAED,8DAA8D;IAC9D,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,SAAY,GAAG,IAAI,CAEvD;IAED,6DAA6D;IAC7D,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAuBtC;IAED,sDAAsD;IACtD,IAAI,IAAI,IAAI,CAMX;IAED,uDAAuD;IACvD,OAAO,CAAC,WAAW;CAmBpB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import EventEmitter from 'node:events';
|
|
2
|
+
import * as fs from 'node:fs';
|
|
3
|
+
/**
|
|
4
|
+
* Reads length-delimited frames from a readable stream (typically a named FIFO pipe).
|
|
5
|
+
*
|
|
6
|
+
* Wire format: `[4-byte big-endian payload length][payload bytes]`
|
|
7
|
+
*
|
|
8
|
+
* Emits a `frame` event for each complete frame with the raw payload buffer.
|
|
9
|
+
* Callers are responsible for deserializing the payload (e.g., via msgpack).
|
|
10
|
+
*
|
|
11
|
+
* On encountering an invalid payload length (0 or >maxPayloadSize), emits `error`
|
|
12
|
+
* and destroys the stream.
|
|
13
|
+
*/ export class FifoFrameReader extends EventEmitter {
|
|
14
|
+
maxPayloadSize;
|
|
15
|
+
stream;
|
|
16
|
+
pendingBuf;
|
|
17
|
+
running;
|
|
18
|
+
constructor(maxPayloadSize = 10 * 1024 * 1024){
|
|
19
|
+
super(), this.maxPayloadSize = maxPayloadSize, this.stream = null, this.pendingBuf = Buffer.alloc(0), this.running = false;
|
|
20
|
+
}
|
|
21
|
+
/** Open a FIFO at the given path and start reading frames. */ start(fifoPath, highWaterMark = 64 * 1024) {
|
|
22
|
+
this.startFromStream(fs.createReadStream(fifoPath, {
|
|
23
|
+
highWaterMark
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
/** Start reading frames from an existing readable stream. */ startFromStream(stream) {
|
|
27
|
+
if (this.running) {
|
|
28
|
+
throw new Error('FifoFrameReader is already running');
|
|
29
|
+
}
|
|
30
|
+
this.running = true;
|
|
31
|
+
this.pendingBuf = Buffer.alloc(0);
|
|
32
|
+
this.stream = stream;
|
|
33
|
+
stream.on('data', (chunk)=>{
|
|
34
|
+
const buf = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
35
|
+
this.pendingBuf = this.pendingBuf.length > 0 ? Buffer.concat([
|
|
36
|
+
this.pendingBuf,
|
|
37
|
+
buf
|
|
38
|
+
]) : buf;
|
|
39
|
+
this.drainFrames();
|
|
40
|
+
});
|
|
41
|
+
stream.on('error', (err)=>{
|
|
42
|
+
if (this.running) {
|
|
43
|
+
this.emit('error', err);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
stream.on('end', ()=>{
|
|
47
|
+
this.emit('end');
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/** Stop reading and destroy the underlying stream. */ stop() {
|
|
51
|
+
this.running = false;
|
|
52
|
+
if (this.stream) {
|
|
53
|
+
this.stream.destroy();
|
|
54
|
+
this.stream = null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/** Parse complete frames out of the pending buffer. */ drainFrames() {
|
|
58
|
+
while(this.pendingBuf.length >= 4){
|
|
59
|
+
const payloadLen = this.pendingBuf.readUInt32BE(0);
|
|
60
|
+
if (payloadLen === 0 || payloadLen > this.maxPayloadSize) {
|
|
61
|
+
this.emit('error', new Error(`Invalid payload length: ${payloadLen}`));
|
|
62
|
+
this.stop();
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const frameLen = 4 + payloadLen;
|
|
66
|
+
if (this.pendingBuf.length < frameLen) {
|
|
67
|
+
break; // Wait for more data
|
|
68
|
+
}
|
|
69
|
+
const payload = this.pendingBuf.subarray(4, frameLen);
|
|
70
|
+
this.pendingBuf = this.pendingBuf.subarray(frameLen);
|
|
71
|
+
this.emit('frame', Buffer.from(payload));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { FifoFrameReader } from './fifo_frame_reader.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWZvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fifo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FifoFrameReader } from './fifo_frame_reader.js';
|
package/dest/jest/setup.js
CHANGED
|
@@ -8,3 +8,27 @@ import pretty from 'pino-pretty';
|
|
|
8
8
|
if (!parseBooleanEnv(process.env.LOG_JSON)) {
|
|
9
9
|
overwriteLoggingStream(pretty(pinoPrettyOpts));
|
|
10
10
|
}
|
|
11
|
+
// Prevent timers from keeping the process alive after tests complete.
|
|
12
|
+
// Libraries like viem create internal polling loops (via setTimeout) that
|
|
13
|
+
// reschedule themselves indefinitely. In test environments we never want a
|
|
14
|
+
// timer to be the reason the process can't exit. We also unref stdout/stderr
|
|
15
|
+
// which, when they are pipes (as in Jest workers), remain ref'd by default.
|
|
16
|
+
{
|
|
17
|
+
const origSetTimeout = globalThis.setTimeout;
|
|
18
|
+
const origSetInterval = globalThis.setInterval;
|
|
19
|
+
globalThis.setTimeout = function unrefSetTimeout(...args) {
|
|
20
|
+
const id = origSetTimeout.apply(this, args);
|
|
21
|
+
id?.unref?.();
|
|
22
|
+
return id;
|
|
23
|
+
};
|
|
24
|
+
// Preserve .unref, .__promisify__ etc. that may exist on the original
|
|
25
|
+
Object.setPrototypeOf(globalThis.setTimeout, origSetTimeout);
|
|
26
|
+
globalThis.setInterval = function unrefSetInterval(...args) {
|
|
27
|
+
const id = origSetInterval.apply(this, args);
|
|
28
|
+
id?.unref?.();
|
|
29
|
+
return id;
|
|
30
|
+
};
|
|
31
|
+
Object.setPrototypeOf(globalThis.setInterval, origSetInterval);
|
|
32
|
+
if (process.stdout?._handle?.unref) process.stdout._handle.unref();
|
|
33
|
+
if (process.stderr?._handle?.unref) process.stderr._handle.unref();
|
|
34
|
+
}
|
|
@@ -8,6 +8,7 @@ export type SafeJsonRpcClientOptions = {
|
|
|
8
8
|
batchWindowMS?: number;
|
|
9
9
|
maxBatchSize?: number;
|
|
10
10
|
maxRequestBodySize?: number;
|
|
11
|
+
extraHeaders?: Record<string, string>;
|
|
11
12
|
onResponse?: (res: {
|
|
12
13
|
response: any;
|
|
13
14
|
headers: {
|
|
@@ -29,4 +30,4 @@ export declare function createSafeJsonRpcClient<T extends object>(host: string,
|
|
|
29
30
|
export declare function batch<T extends readonly unknown[]>(values: T): Promise<{
|
|
30
31
|
-readonly [P in keyof T]: Awaited<T[P]>;
|
|
31
32
|
}>;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZV9qc29uX3JwY19jbGllbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9qc29uLXJwYy9jbGllbnQvc2FmZV9qc29uX3JwY19jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXJFLE9BQU8sRUFBa0IsS0FBSyxZQUFZLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7QUFFMUYsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUFnQixNQUFNLFlBQVksQ0FBQztBQWE3RCxNQUFNLE1BQU0sd0JBQXdCLEdBQUc7SUFDckMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLEtBQUssQ0FBQyxFQUFFLFlBQVksQ0FBQztJQUNyQixHQUFHLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDYixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzVCLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUU7UUFDakIsUUFBUSxFQUFFLEdBQUcsQ0FBQztRQUNkLE9BQU8sRUFBRTtZQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxTQUFTLENBQUE7U0FBRSxDQUFDO0tBQ2pFLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQ3JCLENBQUM7QUE2QkY7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLHVCQUF1QixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQ3RELElBQUksRUFBRSxNQUFNLEVBQ1osTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDdkIsTUFBTSxHQUFFLHdCQUE2QixHQUNwQyxDQUFDLENBb0xIO0FBRUQ7O0dBRUc7QUFDSCx3QkFBc0IsS0FBSyxDQUFDLENBQUMsU0FBUyxTQUFTLE9BQU8sRUFBRSxFQUN0RCxNQUFNLEVBQUUsQ0FBQyxHQUNSLE9BQU8sQ0FBQztJQUFFLENBQUMsVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUFFLENBQUMsQ0F1QnREIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe_json_rpc_client.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/safe_json_rpc_client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAkB,KAAK,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,YAAY,CAAC;AAa7D,MAAM,MAAM,wBAAwB,GAAG;IACrC,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE;QACjB,QAAQ,EAAE,GAAG,CAAC;QACd,OAAO,EAAE;YAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;SAAE,CAAC;KACjE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB,CAAC;AA6BF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,MAAM,GAAE,wBAA6B,GACpC,CAAC,
|
|
1
|
+
{"version":3,"file":"safe_json_rpc_client.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/safe_json_rpc_client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAkB,KAAK,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,YAAY,CAAC;AAa7D,MAAM,MAAM,wBAAwB,GAAG;IACrC,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE;QACjB,QAAQ,EAAE,GAAG,CAAC;QACd,OAAO,EAAE;YAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;SAAE,CAAC;KACjE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB,CAAC;AA6BF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,MAAM,GAAE,wBAA6B,GACpC,CAAC,CAoLH;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EACtD,MAAM,EAAE,CAAC,GACR,OAAO,CAAC;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,CAuBtD"}
|
|
@@ -64,7 +64,7 @@ const clients = new Map();
|
|
|
64
64
|
methods: rpcCalls.map(({ request })=>request.method)
|
|
65
65
|
});
|
|
66
66
|
try {
|
|
67
|
-
const { response, headers } = await fetch(host, rpcCalls.map(({ request })=>request));
|
|
67
|
+
const { response, headers } = await fetch(host, rpcCalls.map(({ request })=>request), config.extraHeaders);
|
|
68
68
|
if (config.onResponse) {
|
|
69
69
|
await config.onResponse({
|
|
70
70
|
response,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type Koa from 'koa';
|
|
2
|
+
/**
|
|
3
|
+
* Computes the SHA-256 hash of a string and returns it as a Buffer.
|
|
4
|
+
* @param input - The input string to hash.
|
|
5
|
+
* @returns The SHA-256 hash as a Buffer.
|
|
6
|
+
*/
|
|
7
|
+
export declare function sha256Hash(input: string): Buffer;
|
|
8
|
+
/**
|
|
9
|
+
* Creates a Koa middleware that enforces API key authentication on all requests
|
|
10
|
+
* except the health check endpoint (GET /status).
|
|
11
|
+
*
|
|
12
|
+
* The API key can be provided via the `x-api-key` header or the `Authorization: Bearer <key>` header.
|
|
13
|
+
* Comparison is done by hashing the provided key with SHA-256 and comparing against the stored hash.
|
|
14
|
+
*
|
|
15
|
+
* @param apiKeyHash - The SHA-256 hash of the expected API key as a Buffer.
|
|
16
|
+
* @returns A Koa middleware that rejects requests without a valid API key.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getApiKeyAuthMiddleware(apiKeyHash: Buffer): (ctx: Koa.Context, next: () => Promise<void>) => Promise<void>;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX2tleV9hdXRoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvanNvbi1ycGMvc2VydmVyL2FwaV9rZXlfYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssR0FBRyxNQUFNLEtBQUssQ0FBQztBQU8zQjs7OztHQUlHO0FBQ0gsd0JBQWdCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FFaEQ7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBZ0IsdUJBQXVCLENBQ3JDLFVBQVUsRUFBRSxNQUFNLEdBQ2pCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FpQ2hFIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api_key_auth.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/server/api_key_auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAO3B;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,GACjB,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAiChE"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { timingSafeEqual } from 'crypto';
|
|
2
|
+
import { sha256 } from '../../crypto/sha256/index.js';
|
|
3
|
+
import { createLogger } from '../../log/index.js';
|
|
4
|
+
const log = createLogger('json-rpc:api-key-auth');
|
|
5
|
+
/**
|
|
6
|
+
* Computes the SHA-256 hash of a string and returns it as a Buffer.
|
|
7
|
+
* @param input - The input string to hash.
|
|
8
|
+
* @returns The SHA-256 hash as a Buffer.
|
|
9
|
+
*/ export function sha256Hash(input) {
|
|
10
|
+
return sha256(Buffer.from(input));
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates a Koa middleware that enforces API key authentication on all requests
|
|
14
|
+
* except the health check endpoint (GET /status).
|
|
15
|
+
*
|
|
16
|
+
* The API key can be provided via the `x-api-key` header or the `Authorization: Bearer <key>` header.
|
|
17
|
+
* Comparison is done by hashing the provided key with SHA-256 and comparing against the stored hash.
|
|
18
|
+
*
|
|
19
|
+
* @param apiKeyHash - The SHA-256 hash of the expected API key as a Buffer.
|
|
20
|
+
* @returns A Koa middleware that rejects requests without a valid API key.
|
|
21
|
+
*/ export function getApiKeyAuthMiddleware(apiKeyHash) {
|
|
22
|
+
return async (ctx, next)=>{
|
|
23
|
+
// Allow health check through without auth
|
|
24
|
+
if (ctx.path === '/status' && ctx.method === 'GET') {
|
|
25
|
+
return next();
|
|
26
|
+
}
|
|
27
|
+
const providedKey = ctx.get('x-api-key') || ctx.get('authorization')?.replace(/^Bearer\s+/i, '');
|
|
28
|
+
if (!providedKey) {
|
|
29
|
+
log.warn(`Rejected admin RPC request from ${ctx.ip}: missing API key`);
|
|
30
|
+
ctx.status = 401;
|
|
31
|
+
ctx.body = {
|
|
32
|
+
jsonrpc: '2.0',
|
|
33
|
+
id: null,
|
|
34
|
+
error: {
|
|
35
|
+
code: -32000,
|
|
36
|
+
message: 'Unauthorized: invalid or missing API key'
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const providedHashBuf = sha256Hash(providedKey);
|
|
42
|
+
if (!timingSafeEqual(apiKeyHash, providedHashBuf)) {
|
|
43
|
+
log.warn(`Rejected admin RPC request from ${ctx.ip}: invalid API key`);
|
|
44
|
+
ctx.status = 401;
|
|
45
|
+
ctx.body = {
|
|
46
|
+
jsonrpc: '2.0',
|
|
47
|
+
id: null,
|
|
48
|
+
error: {
|
|
49
|
+
code: -32000,
|
|
50
|
+
message: 'Unauthorized: invalid or missing API key'
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
await next();
|
|
56
|
+
};
|
|
57
|
+
}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
export * from './api_key_auth.js';
|
|
1
2
|
export * from './safe_json_rpc_server.js';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9qc29uLXJwYy9zZXJ2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDJCQUEyQixDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts bigint values to strings recursively in a log object to avoid serialization issues.
|
|
3
|
+
*/
|
|
4
|
+
export declare function convertBigintsToStrings(obj: unknown): unknown;
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlnaW50LXV0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9nL2JpZ2ludC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FxQjdEIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bigint-utils.d.ts","sourceRoot":"","sources":["../../src/log/bigint-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAqB7D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts bigint values to strings recursively in a log object to avoid serialization issues.
|
|
3
|
+
*/ export function convertBigintsToStrings(obj) {
|
|
4
|
+
if (typeof obj === 'bigint') {
|
|
5
|
+
return String(obj);
|
|
6
|
+
}
|
|
7
|
+
if (Array.isArray(obj)) {
|
|
8
|
+
return obj.map((item)=>convertBigintsToStrings(item));
|
|
9
|
+
}
|
|
10
|
+
if (obj !== null && typeof obj === 'object') {
|
|
11
|
+
if (typeof obj.toJSON === 'function') {
|
|
12
|
+
return convertBigintsToStrings(obj.toJSON());
|
|
13
|
+
}
|
|
14
|
+
const result = {};
|
|
15
|
+
for(const key in obj){
|
|
16
|
+
result[key] = convertBigintsToStrings(obj[key]);
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
return obj;
|
|
21
|
+
}
|
|
@@ -10,4 +10,4 @@ export declare const GoogleCloudLoggerConfig: {
|
|
|
10
10
|
level(label: string, level: number): object;
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2Nsb3VkLWxvZ2dlci1jb25maWcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvZ2Nsb3VkLWxvZ2dlci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUE7Ozs7R0FJRztBQUNILGVBQU8sTUFBTSx1QkFBdUI7Ozs7OztDQXFETixDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gcloud-logger-config.d.ts","sourceRoot":"","sources":["../../src/log/gcloud-logger-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gcloud-logger-config.d.ts","sourceRoot":"","sources":["../../src/log/gcloud-logger-config.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;CAqDN,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { convertBigintsToStrings } from './bigint-utils.js';
|
|
1
2
|
/* eslint-disable camelcase */ const GOOGLE_CLOUD_TRACE_ID = 'logging.googleapis.com/trace';
|
|
2
3
|
const GOOGLE_CLOUD_SPAN_ID = 'logging.googleapis.com/spanId';
|
|
3
4
|
const GOOGLE_CLOUD_TRACE_SAMPLED = 'logging.googleapis.com/trace_sampled';
|
|
@@ -9,6 +10,8 @@ const GOOGLE_CLOUD_TRACE_SAMPLED = 'logging.googleapis.com/trace_sampled';
|
|
|
9
10
|
messageKey: 'message',
|
|
10
11
|
formatters: {
|
|
11
12
|
log (object) {
|
|
13
|
+
// Convert bigints to strings recursively to avoid serialization issues
|
|
14
|
+
object = convertBigintsToStrings(object);
|
|
12
15
|
// Add trace context attributes following Cloud Logging structured log format described
|
|
13
16
|
// in https://cloud.google.com/logging/docs/structured-logging#special-payload-fields
|
|
14
17
|
const { trace_id, span_id, trace_flags, ...rest } = object;
|
|
@@ -83,4 +83,4 @@ export type Logger = {
|
|
|
83
83
|
getBindings: () => LoggerBindings;
|
|
84
84
|
};
|
|
85
85
|
export {};
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby1sb2dnZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvcGluby1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssS0FBSyxFQUFrQyxNQUFNLFdBQVcsQ0FBQztBQUd2RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFTdkMsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCx3RUFBd0U7QUFDeEUsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQiwrREFBK0Q7SUFDL0QsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2YsdUZBQXVGO0lBQ3ZGLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNyQixDQUFDO0FBSUYsS0FBSyxrQkFBa0IsR0FBRyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUM7QUFHM0Qsd0JBQWdCLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsR0FBRyxJQUFJLENBRXZFO0FBRUQsd0JBQWdCLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsUUFLbkU7QUFZRCx3QkFBZ0IsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUFHLE1BQU0sQ0E2QzlFO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxHQUFHLGNBQWMsR0FBRyxNQUFNLENBS2hHO0FBSUQsS0FBSyxjQUFjLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxLQUFLLE9BQU8sQ0FBQztBQUdqRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGNBQWMsR0FBRyxJQUFJLENBRS9EO0FBZUQsZUFBTyxNQUFPLFFBQVEsa0ZBQUUsVUFBVSx1Q0FBK0QsQ0FBQztBQTZDbEcsZUFBTyxNQUFNLE1BQU07Ozs7O0NBR2xCLENBQUM7QUFlRiwyRkFBMkY7QUFDM0Ysd0JBQWdCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLEtBQUssQ0FRbEQ7QUFFRCw2REFBNkQ7QUFDN0Qsd0JBQWdCLGdCQUFnQixJQUFJLElBQUksQ0FHdkM7QUFNRCxLQUFLLFNBQVMsR0FBRztJQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUM7QUFFeEYseUdBQXlHO0FBQ3pHLHdCQUFnQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQWtCM0U7QUFjRDs7O0dBR0c7QUFDSCxlQUFPLE1BQU0sY0FBYzs7Ozs7Ozs7OztDQUcxQixDQUFDO0FBMERGLGVBQU8sTUFBTSxNQUFNLDJDQUFlLENBQUM7QUFhbkM7OztHQUdHO0FBQ0gsd0JBQWdCLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUU3RDtBQUVEOzs7R0FHRztBQUNILHdCQUFnQixxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FlNUQ7QUFFRCxvREFBb0Q7QUFDcEQsS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxPQUFPLEtBQUssSUFBSSxDQUFDO0FBRXZFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLE1BQU0sR0FBRztLQUFHLENBQUMsSUFBSSxRQUFRLEdBQUcsS0FBSztDQUFFLEdBQUc7SUFBNEIsS0FBSyxFQUFFLFVBQVUsQ0FBQTtDQUFFLEdBQUc7SUFDbEcsS0FBSyxFQUFFLFFBQVEsQ0FBQztJQUNoQixjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxLQUFLLE9BQU8sQ0FBQztJQUM3QyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUM7SUFDN0MsZ0VBQWdFO0lBQ2hFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztDQUNuQyxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAkC,MAAM,WAAW,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAkC,MAAM,WAAW,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AASvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG;IAC3B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,KAAK,kBAAkB,GAAG,MAAM,cAAc,GAAG,SAAS,CAAC;AAG3D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAEvE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,QAKnE;AAYD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,CA6C9E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,MAAM,CAKhG;AAID,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;AAGjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/D;AAeD,eAAO,MAAO,QAAQ,kFAAE,UAAU,uCAA+D,CAAC;AA6ClG,eAAO,MAAM,MAAM;;;;;CAGlB,CAAC;AAeF,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAQlD;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAMD,KAAK,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,yGAAyG;AACzG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAkB3E;AAcD;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;CAG1B,CAAC;AA0DF,eAAO,MAAM,MAAM,2CAAe,CAAC;AAanC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAE7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAe5D;AAED,oDAAoD;AACpD,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;KAAG,CAAC,IAAI,QAAQ,GAAG,KAAK;CAAE,GAAG;IAA4B,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAClG,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,gEAAgE;IAChE,WAAW,EAAE,MAAM,cAAc,CAAC;CACnC,CAAC"}
|
package/dest/log/pino-logger.js
CHANGED
|
@@ -4,6 +4,7 @@ import { pino, symbols } from 'pino';
|
|
|
4
4
|
import { inspect } from 'util';
|
|
5
5
|
import { compactArray } from '../collection/array.js';
|
|
6
6
|
import { parseBooleanEnv } from '../config/parse-env.js';
|
|
7
|
+
import { convertBigintsToStrings } from './bigint-utils.js';
|
|
7
8
|
import { GoogleCloudLoggerConfig } from './gcloud-logger-config.js';
|
|
8
9
|
import { getLogLevelFromFilters, parseLogLevelEnvVar } from './log-filters.js';
|
|
9
10
|
const logBindingsHandlers = [];
|
|
@@ -129,6 +130,9 @@ const pinoOpts = {
|
|
|
129
130
|
...redactedPaths.map((p)=>`opts.${p}`)
|
|
130
131
|
]
|
|
131
132
|
},
|
|
133
|
+
formatters: {
|
|
134
|
+
log: (obj)=>convertBigintsToStrings(obj)
|
|
135
|
+
},
|
|
132
136
|
...useGcloudLogging ? GoogleCloudLoggerConfig : {}
|
|
133
137
|
};
|
|
134
138
|
export const levels = {
|
|
@@ -72,6 +72,13 @@ export declare class BufferReader {
|
|
|
72
72
|
* @returns The read 256 bit value as a bigint.
|
|
73
73
|
*/
|
|
74
74
|
readUInt256(): bigint;
|
|
75
|
+
/**
|
|
76
|
+
* Reads a 256-bit signed integer (two's complement) from the buffer at the current index position.
|
|
77
|
+
* Updates the index position by 32 bytes after reading the number.
|
|
78
|
+
*
|
|
79
|
+
* @returns The read 256 bit signed value as a bigint.
|
|
80
|
+
*/
|
|
81
|
+
readInt256(): bigint;
|
|
75
82
|
/** Alias for readUInt256 */
|
|
76
83
|
readBigInt(): bigint;
|
|
77
84
|
/**
|
|
@@ -264,4 +271,4 @@ export interface FromBuffer<T> {
|
|
|
264
271
|
*/
|
|
265
272
|
fromBuffer(buffer: Buffer): T;
|
|
266
273
|
}
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX3JlYWRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcmlhbGl6ZS9idWZmZXJfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILHFCQUFhLFlBQVk7O0lBR3JCLE9BQU8sQ0FBQyxNQUFNO0lBRmhCLE9BQU8sQ0FBQyxLQUFLLENBQVM7SUFDdEIsWUFDVSxNQUFNLEVBQUUsTUFBTSxFQUN0QixNQUFNLFNBQUksRUFHWDtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLFFBQVEsQ0FBQyxjQUFjLEVBQUUsVUFBVSxHQUFHLE1BQU0sR0FBRyxZQUFZLEdBQUcsWUFBWSxDQVV2RjtJQUVELDBFQUEwRTtJQUNuRSxPQUFPLElBQUksT0FBTyxDQUV4QjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FJMUI7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUcvRDtJQUVEOzs7Ozs7O09BT0c7SUFDSSxVQUFVLElBQUksTUFBTSxDQU8xQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FNMUI7SUFFRCw0QkFBNEI7SUFDckIsVUFBVSxJQUFJLE1BQU0sQ0FFMUI7SUFFRDs7Ozs7T0FLRztJQUNJLFVBQVUsSUFBSSxNQUFNLENBSTFCO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLElBQUksTUFBTSxDQUl6QjtJQUVEOzs7Ozs7T0FNRztJQUNJLFdBQVcsSUFBSSxP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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/buffer_reader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/buffer_reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { toBigIntBE } from '../bigint-buffer/index.js';
|
|
1
2
|
/**
|
|
2
3
|
* The BufferReader class provides a utility for reading various data types from a buffer.
|
|
3
4
|
* It supports reading numbers, booleans, byte arrays, Fr and Fq field elements,
|
|
@@ -103,6 +104,18 @@
|
|
|
103
104
|
this.index += 32;
|
|
104
105
|
return result;
|
|
105
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Reads a 256-bit signed integer (two's complement) from the buffer at the current index position.
|
|
109
|
+
* Updates the index position by 32 bytes after reading the number.
|
|
110
|
+
*
|
|
111
|
+
* @returns The read 256 bit signed value as a bigint.
|
|
112
|
+
*/ readInt256() {
|
|
113
|
+
this.#rangeCheck(32);
|
|
114
|
+
const unsigned = toBigIntBE(this.buffer.subarray(this.index, this.index + 32));
|
|
115
|
+
this.index += 32;
|
|
116
|
+
const signBit = 1n << 255n;
|
|
117
|
+
return unsigned >= signBit ? unsigned - (1n << 256n) : unsigned;
|
|
118
|
+
}
|
|
106
119
|
/** Alias for readUInt256 */ readBigInt() {
|
|
107
120
|
return this.readUInt256();
|
|
108
121
|
}
|