@aztec/blob-lib 0.0.1-commit.d3ec352c → 0.0.1-commit.f295ac2
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/batched_blob.d.ts +8 -2
- package/dest/batched_blob.d.ts.map +1 -1
- package/dest/blob.d.ts +11 -5
- package/dest/blob.d.ts.map +1 -1
- package/dest/blob.js +7 -6
- package/dest/blob_batching.d.ts +15 -2
- package/dest/blob_batching.d.ts.map +1 -1
- package/dest/blob_batching.js +6 -4
- package/dest/blob_utils.d.ts +3 -2
- package/dest/blob_utils.d.ts.map +1 -1
- package/dest/blob_utils.js +1 -1
- package/dest/circuit_types/blob_accumulator.d.ts +3 -2
- package/dest/circuit_types/blob_accumulator.d.ts.map +1 -1
- package/dest/circuit_types/blob_accumulator.js +2 -1
- package/dest/circuit_types/final_blob_accumulator.d.ts +3 -2
- package/dest/circuit_types/final_blob_accumulator.d.ts.map +1 -1
- package/dest/circuit_types/final_blob_accumulator.js +5 -2
- package/dest/circuit_types/final_blob_batching_challenges.d.ts +3 -2
- package/dest/circuit_types/final_blob_batching_challenges.d.ts.map +1 -1
- package/dest/circuit_types/final_blob_batching_challenges.js +2 -1
- package/dest/encoding/block_blob_data.d.ts +10 -2
- package/dest/encoding/block_blob_data.d.ts.map +1 -1
- package/dest/encoding/block_blob_data.js +11 -1
- package/dest/encoding/block_end_marker.d.ts +2 -2
- package/dest/encoding/block_end_marker.d.ts.map +1 -1
- package/dest/encoding/block_end_marker.js +1 -1
- package/dest/encoding/block_end_state_field.d.ts +2 -2
- package/dest/encoding/block_end_state_field.d.ts.map +1 -1
- package/dest/encoding/block_end_state_field.js +1 -1
- package/dest/encoding/checkpoint_blob_data.d.ts +2 -2
- package/dest/encoding/checkpoint_blob_data.d.ts.map +1 -1
- package/dest/encoding/checkpoint_blob_data.js +6 -6
- package/dest/encoding/checkpoint_end_marker.d.ts +2 -2
- package/dest/encoding/checkpoint_end_marker.d.ts.map +1 -1
- package/dest/encoding/checkpoint_end_marker.js +1 -1
- package/dest/encoding/fixtures.js +1 -1
- package/dest/encoding/tx_blob_data.d.ts +2 -2
- package/dest/encoding/tx_blob_data.d.ts.map +1 -1
- package/dest/encoding/tx_blob_data.js +1 -1
- package/dest/encoding/tx_start_marker.d.ts +2 -2
- package/dest/encoding/tx_start_marker.d.ts.map +1 -1
- package/dest/encoding/tx_start_marker.js +1 -1
- package/dest/hash.d.ts +3 -2
- package/dest/hash.d.ts.map +1 -1
- package/dest/hash.js +5 -4
- package/dest/index.d.ts +2 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -0
- package/dest/interface.d.ts +1 -2
- package/dest/interface.d.ts.map +1 -1
- package/dest/kzg_context.d.ts +6 -2
- package/dest/kzg_context.d.ts.map +1 -1
- package/dest/kzg_context.js +12 -3
- package/dest/sponge_blob.d.ts +4 -2
- package/dest/sponge_blob.d.ts.map +1 -1
- package/dest/sponge_blob.js +2 -2
- package/dest/testing.d.ts +1 -1
- package/dest/testing.d.ts.map +1 -1
- package/dest/testing.js +2 -1
- package/package.json +5 -5
- package/src/batched_blob.ts +2 -1
- package/src/blob.ts +7 -6
- package/src/blob_batching.ts +11 -4
- package/src/blob_utils.ts +2 -1
- package/src/circuit_types/blob_accumulator.ts +2 -1
- package/src/circuit_types/final_blob_accumulator.ts +2 -1
- package/src/circuit_types/final_blob_batching_challenges.ts +2 -1
- package/src/encoding/block_blob_data.ts +14 -2
- package/src/encoding/block_end_marker.ts +1 -1
- package/src/encoding/block_end_state_field.ts +1 -1
- package/src/encoding/checkpoint_blob_data.ts +13 -6
- package/src/encoding/checkpoint_end_marker.ts +1 -1
- package/src/encoding/fixtures.ts +1 -1
- package/src/encoding/tx_blob_data.ts +1 -1
- package/src/encoding/tx_start_marker.ts +1 -1
- package/src/hash.ts +6 -4
- package/src/index.ts +1 -0
- package/src/interface.ts +0 -1
- package/src/kzg_context.ts +12 -1
- package/src/sponge_blob.ts +2 -2
- package/src/testing.ts +2 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PRIVATE_LOGS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
2
2
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
3
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
4
|
-
import { Fr } from '@aztec/foundation/
|
|
4
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
5
|
import { getTotalNumBlobFieldsFromTxs } from './checkpoint_blob_data.js';
|
|
6
6
|
import { getNumTxBlobFields } from './tx_blob_data.js';
|
|
7
7
|
const fr = (seed)=>new Fr(BigInt(seed));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { FieldReader } from '@aztec/foundation/serialize';
|
|
3
3
|
import { type TxStartMarker } from './tx_start_marker.js';
|
|
4
4
|
export interface TxBlobData {
|
|
@@ -16,4 +16,4 @@ export interface TxBlobData {
|
|
|
16
16
|
export declare function encodeTxBlobData(txBlobData: TxBlobData): Fr[];
|
|
17
17
|
export declare function decodeTxBlobData(fields: Fr[] | FieldReader): TxBlobData;
|
|
18
18
|
export declare function getNumTxBlobFields(txStartMarker: Omit<TxStartMarker, 'revertCode' | 'numBlobFields'>): number;
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfYmxvYl9kYXRhLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW5jb2RpbmcvdHhfYmxvYl9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHMUQsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUE0QyxNQUFNLHNCQUFzQixDQUFDO0FBSXBHLE1BQU0sV0FBVyxVQUFVO0lBQ3pCLGFBQWEsRUFBRSxhQUFhLENBQUM7SUFDN0IsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNYLGNBQWMsRUFBRSxFQUFFLENBQUM7SUFDbkIsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2pCLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNqQixVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDakIsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM3QixXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNwQixVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDakIsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLENBQUM7Q0FDeEI7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLFVBQVUsR0FBRyxFQUFFLEVBQUUsQ0FhN0Q7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsR0FBRyxVQUFVLENBNkR2RTtBQUVELHdCQUFnQixrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxZQUFZLEdBQUcsZUFBZSxDQUFDLFVBZXBHIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_blob_data.d.ts","sourceRoot":"","sources":["../../src/encoding/tx_blob_data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"tx_blob_data.d.ts","sourceRoot":"","sources":["../../src/encoding/tx_blob_data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,EAAE,KAAK,aAAa,EAA4C,MAAM,sBAAsB,CAAC;AAIpG,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,EAAE,CAAC;IACX,cAAc,EAAE,EAAE,CAAC;IACnB,UAAU,EAAE,EAAE,EAAE,CAAC;IACjB,UAAU,EAAE,EAAE,EAAE,CAAC;IACjB,UAAU,EAAE,EAAE,EAAE,CAAC;IACjB,gBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IAC7B,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC;IACpB,UAAU,EAAE,EAAE,EAAE,CAAC;IACjB,gBAAgB,EAAE,EAAE,EAAE,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,EAAE,EAAE,CAa7D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,UAAU,CA6DvE;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,eAAe,CAAC,UAepG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { chunk } from '@aztec/foundation/collection';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { FieldReader } from '@aztec/foundation/serialize';
|
|
4
4
|
import { BlobDeserializationError } from '../errors.js';
|
|
5
5
|
import { decodeTxStartMarker, encodeTxStartMarker } from './tx_start_marker.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
export interface TxStartMarker {
|
|
3
3
|
numBlobFields: number;
|
|
4
4
|
revertCode: number;
|
|
@@ -13,4 +13,4 @@ export interface TxStartMarker {
|
|
|
13
13
|
}
|
|
14
14
|
export declare function encodeTxStartMarker(txStartMarker: TxStartMarker): Fr;
|
|
15
15
|
export declare function decodeTxStartMarker(field: Fr): TxStartMarker;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfc3RhcnRfbWFya2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW5jb2RpbmcvdHhfc3RhcnRfbWFya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQWlCcEQsTUFBTSxXQUFXLGFBQWE7SUFDNUIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUM1QixjQUFjLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFDekIsc0JBQXNCLEVBQUUsTUFBTSxDQUFDO0NBQ2hDO0FBRUQsd0JBQWdCLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxhQUFhLEdBQUcsRUFBRSxDQXVCcEU7QUFFRCx3QkFBZ0IsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxhQUFhLENBd0M1RCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_start_marker.d.ts","sourceRoot":"","sources":["../../src/encoding/tx_start_marker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"tx_start_marker.d.ts","sourceRoot":"","sources":["../../src/encoding/tx_start_marker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAiBpD,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,EAAE,CAuBpE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,EAAE,GAAG,aAAa,CAwC5D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TX_START_PREFIX } from '@aztec/constants';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { BlobDeserializationError } from '../errors.js';
|
|
4
4
|
// Must match the implementation in `noir-protocol-circuits/crates/types/src/blob_data/tx_blob_data.nr`.
|
|
5
5
|
const NUM_BLOB_FIELDS_BIT_SIZE = 32n;
|
package/dest/hash.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { BLS12Fr
|
|
1
|
+
import { BLS12Fr } from '@aztec/foundation/curves/bls12';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
3
|
/**
|
|
3
4
|
* Returns ethereum's versioned blob hash, following kzg_to_versioned_hash: https://eips.ethereum.org/EIPS/eip-4844#helpers
|
|
4
5
|
*/
|
|
@@ -39,4 +40,4 @@ export declare function computeChallengeZ(blobFieldsHash: Fr, commitment: Buffer
|
|
|
39
40
|
* rollup circuits.
|
|
40
41
|
*/
|
|
41
42
|
export declare function hashNoirBigNumLimbs(field: BLS12Fr): Promise<Fr>;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2hhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU9wRDs7R0FFRztBQUNILHdCQUFnQiwyQkFBMkIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FJdEU7QUFPRCx3QkFBZ0IsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUVyRTtBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsd0JBQXNCLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBSXJFO0FBRUQsd0JBQWdCLHFCQUFxQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsTUFBTSxDQU05RDtBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FNL0Q7QUFFRCx3QkFBc0IsaUJBQWlCLENBQUMsY0FBYyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FHM0Y7QUFFRDs7O0dBR0c7QUFDSCx3QkFBc0IsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBR3JFIn0=
|
package/dest/hash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAOpD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAItE;AAOD,wBAAgB,gBAAgB,CAAC,sBAAsB,EAAE,MAAM,EAAE,GAAG,EAAE,CAErE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAIrE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAM9D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAM/D;AAED,wBAAsB,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAG3F;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,CAGrE"}
|
package/dest/hash.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { poseidon2Hash
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
2
|
+
import { sha256, sha256ToField } from '@aztec/foundation/crypto/sha256';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
+
import { BYTES_PER_BLOB, BYTES_PER_COMMITMENT, getKzg } from './kzg_context.js';
|
|
4
5
|
import { SpongeBlob } from './sponge_blob.js';
|
|
5
6
|
const VERSIONED_HASH_VERSION_KZG = 0x01;
|
|
6
7
|
/**
|
|
@@ -38,7 +39,7 @@ export function computeBlobCommitment(data) {
|
|
|
38
39
|
if (data.length !== BYTES_PER_BLOB) {
|
|
39
40
|
throw new Error(`Expected ${BYTES_PER_BLOB} bytes per blob. Got ${data.length}.`);
|
|
40
41
|
}
|
|
41
|
-
return Buffer.from(
|
|
42
|
+
return Buffer.from(getKzg().blobToKzgCommitment(data));
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
44
45
|
* Get the commitment fields of the blob, to compute the challenge z.
|
package/dest/index.d.ts
CHANGED
|
@@ -7,4 +7,5 @@ export * from './encoding/index.js';
|
|
|
7
7
|
export * from './hash.js';
|
|
8
8
|
export * from './interface.js';
|
|
9
9
|
export * from './sponge_blob.js';
|
|
10
|
-
|
|
10
|
+
export * from './kzg_context.js';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUMifQ==
|
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
package/dest/index.js
CHANGED
package/dest/interface.d.ts
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export interface BlobJson {
|
|
5
5
|
blob: string;
|
|
6
|
-
index: string;
|
|
7
6
|
kzg_commitment: string;
|
|
8
7
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxXQUFXLFFBQVE7SUFDdkIsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLGNBQWMsRUFBRSxNQUFNLENBQUM7Q0FDeEIifQ==
|
package/dest/interface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB"}
|
package/dest/kzg_context.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { DasContextJs } from '@crate-crypto/node-eth-kzg';
|
|
2
2
|
export * from '@crate-crypto/node-eth-kzg';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Returns the lazily-initialized KZG context.
|
|
5
|
+
* The first call takes ~3 seconds to initialize the precomputation tables.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getKzg(): DasContextJs;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3pnX2NvbnRleHQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9remdfY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsY0FBYyw0QkFBNEIsQ0FBQztBQUkzQzs7O0dBR0c7QUFDSCx3QkFBZ0IsTUFBTSxJQUFJLFlBQVksQ0FLckMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kzg_context.d.ts","sourceRoot":"","sources":["../src/kzg_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,cAAc,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"kzg_context.d.ts","sourceRoot":"","sources":["../src/kzg_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,cAAc,4BAA4B,CAAC;AAI3C;;;GAGG;AACH,wBAAgB,MAAM,IAAI,YAAY,CAKrC"}
|
package/dest/kzg_context.js
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { DasContextJs } from '@crate-crypto/node-eth-kzg';
|
|
2
2
|
export * from '@crate-crypto/node-eth-kzg';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
let kzgInstance;
|
|
4
|
+
/**
|
|
5
|
+
* Returns the lazily-initialized KZG context.
|
|
6
|
+
* The first call takes ~3 seconds to initialize the precomputation tables.
|
|
7
|
+
*/ export function getKzg() {
|
|
8
|
+
if (!kzgInstance) {
|
|
9
|
+
kzgInstance = DasContextJs.create({
|
|
10
|
+
usePrecomp: true
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
return kzgInstance;
|
|
14
|
+
}
|
package/dest/sponge_blob.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { type FieldsOf } from '@aztec/foundation/array';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { BufferReader, FieldReader, type Tuple } from '@aztec/foundation/serialize';
|
|
4
4
|
/**
|
|
5
5
|
* A Poseidon2 sponge used to accumulate data that will be added to blobs.
|
|
6
6
|
* See noir-projects/noir-protocol-circuits/crates/types/src/abis/sponge_blob.nr.
|
|
7
7
|
*/
|
|
8
8
|
export declare class SpongeBlob {
|
|
9
|
+
/** Sponge with absorbed fields that will go into one or more blobs. */
|
|
9
10
|
readonly sponge: Poseidon2Sponge;
|
|
11
|
+
/** Number of effects absorbed so far. */
|
|
10
12
|
numAbsorbedFields: number;
|
|
11
13
|
static MAX_FIELDS: number;
|
|
12
14
|
constructor(
|
|
@@ -45,4 +47,4 @@ export declare class Poseidon2Sponge {
|
|
|
45
47
|
absorb(fields: Fr[]): Promise<void>;
|
|
46
48
|
squeeze(): Promise<Fr>;
|
|
47
49
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvbmdlX2Jsb2IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zcG9uZ2VfYmxvYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUNMLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxLQUFLLEVBR1gsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQzs7O0dBR0c7QUFDSCxxQkFBYSxVQUFVO0lBSW5CLHVFQUF1RTthQUN2RCxNQUFNLEVBQUUsZUFBZTtJQUN2Qyx5Q0FBeUM7SUFDbEMsaUJBQWlCLEVBQUUsTUFBTTtJQU5sQyxNQUFNLENBQUMsVUFBVSxTQUEwQztJQUUzRDtJQUNFLHVFQUF1RTtJQUN2RCxNQUFNLEVBQUUsZUFBZTtJQUN2Qyx5Q0FBeUM7SUFDbEMsaUJBQWlCLEVBQUUsTUFBTSxFQUM5QjtJQUVKOztPQUVHO0lBQ0gsTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLENBS3hCO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxVQUFVLENBRzNEO0lBRUQsUUFBUSw0QkFFUDtJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsZ0NBRTVDO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxHQUFHLFVBQVUsQ0FHeEQ7SUFFRCxLQUFLLGVBRUo7SUFFSyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxpQkFReEI7SUFFSyxPQUFPLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUUzQjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksVUFBVSxDQUV6QjtDQUNGO0FBR0QscUJBQWEsZUFBZTtJQUVqQixLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25CLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFdBQVcsRUFBRSxPQUFPO0lBSjdCLFlBQ1MsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ25CLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNuQixTQUFTLEVBQUUsTUFBTSxFQUNqQixXQUFXLEVBQUUsT0FBTyxFQUN6QjtJQUVKLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsZUFBZSxDQVFoRTtJQUVELFFBQVEsNEJBRVA7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLDBEQUVqRDtJQUVELFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FFZjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsR0FBRyxlQUFlLENBUTdEO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxlQUFlLENBTzlCO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLGVBQWUsQ0FJbkM7SUFLSyxhQUFhLGtCQVNsQjtJQUVLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLGlCQWF4QjtJQUVLLE9BQU8sSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLENBTzNCO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sponge_blob.d.ts","sourceRoot":"","sources":["../src/sponge_blob.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sponge_blob.d.ts","sourceRoot":"","sources":["../src/sponge_blob.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,KAAK,KAAK,EAGX,MAAM,6BAA6B,CAAC;AAErC;;;GAGG;AACH,qBAAa,UAAU;IAInB,uEAAuE;aACvD,MAAM,EAAE,eAAe;IACvC,yCAAyC;IAClC,iBAAiB,EAAE,MAAM;IANlC,MAAM,CAAC,UAAU,SAA0C;IAE3D;IACE,uEAAuE;IACvD,MAAM,EAAE,eAAe;IACvC,yCAAyC;IAClC,iBAAiB,EAAE,MAAM,EAC9B;IAEJ;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,UAAU,CAKxB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAG3D;IAED,QAAQ,4BAEP;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,gCAE5C;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,UAAU,CAGxD;IAED,KAAK,eAEJ;IAEK,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,iBAQxB;IAEK,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAE3B;IAED,MAAM,CAAC,KAAK,IAAI,UAAU,CAEzB;CACF;AAGD,qBAAa,eAAe;IAEjB,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACnB,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,OAAO;IAJ7B,YACS,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EACnB,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,EACzB;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe,CAQhE;IAED,QAAQ,4BAEP;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,0DAEjD;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,eAAe,CAQ7D;IAED,MAAM,CAAC,KAAK,IAAI,eAAe,CAO9B;IAED,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,eAAe,CAInC;IAKK,aAAa,kBASlB;IAEK,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,iBAaxB;IAEK,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAO3B;CACF"}
|
package/dest/sponge_blob.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB, TWO_POW_64 } from '@aztec/constants';
|
|
2
2
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
|
-
import { poseidon2Permutation } from '@aztec/foundation/crypto';
|
|
4
|
-
import { Fr } from '@aztec/foundation/
|
|
3
|
+
import { poseidon2Permutation } from '@aztec/foundation/crypto/poseidon';
|
|
4
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
5
|
import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
6
6
|
/**
|
|
7
7
|
* A Poseidon2 sponge used to accumulate data that will be added to blobs.
|
package/dest/testing.d.ts
CHANGED
|
@@ -28,4 +28,4 @@ export declare function makeFinalBlobBatchingChallenges(seed?: number): FinalBlo
|
|
|
28
28
|
* @returns
|
|
29
29
|
*/
|
|
30
30
|
export declare function makeRandomBlob(length: number): Blob;
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDaEcsT0FBTyxFQUFtQixVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRCxjQUFjLHdCQUF3QixDQUFDO0FBRXZDOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGNBQWMsQ0FBQyxJQUFJLFNBQUksR0FBRyxVQUFVLENBVW5EO0FBMEJEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLG1CQUFtQixDQUFDLElBQUksU0FBSSxHQUFHLGVBQWUsQ0FTN0Q7QUFFRCx3QkFBZ0Isd0JBQXdCLENBQUMsSUFBSSxTQUFJLHdCQU9oRDtBQUVELHdCQUFnQiwrQkFBK0IsQ0FBQyxJQUFJLFNBQUksK0JBRXZEO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFbkQifQ==
|
package/dest/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAmB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE/D,cAAc,wBAAwB,CAAC;AAEvC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,SAAI,GAAG,UAAU,CAUnD;AA0BD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,SAAI,GAAG,eAAe,CAS7D;AAED,wBAAgB,wBAAwB,CAAC,IAAI,SAAI,wBAOhD;AAED,wBAAgB,+BAA+B,CAAC,IAAI,SAAI,+BAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEnD"}
|
package/dest/testing.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { makeTuple } from '@aztec/foundation/array';
|
|
2
|
-
import { BLS12Fq, BLS12Fr, BLS12Point, BLSPointNotOnCurveError
|
|
2
|
+
import { BLS12Fq, BLS12Fr, BLS12Point, BLSPointNotOnCurveError } from '@aztec/foundation/curves/bls12';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { Blob } from './blob.js';
|
|
4
5
|
import { BlobAccumulator } from './circuit_types/blob_accumulator.js';
|
|
5
6
|
import { FinalBlobAccumulator } from './circuit_types/final_blob_accumulator.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/blob-lib",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.f295ac2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"build": "yarn clean && ../scripts/tsc.sh",
|
|
20
20
|
"build:dev": "../scripts/tsc.sh --watch",
|
|
21
21
|
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
22
|
-
"start:dev": "concurrently -k \"
|
|
22
|
+
"start:dev": "concurrently -k \"../scripts/tsc.sh --watch\" \"nodemon --watch dest --exec yarn start\"",
|
|
23
23
|
"start": "node ./dest/index.js",
|
|
24
24
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
25
25
|
},
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"../package.common.json"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@aztec/constants": "0.0.1-commit.
|
|
31
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
30
|
+
"@aztec/constants": "0.0.1-commit.f295ac2",
|
|
31
|
+
"@aztec/foundation": "0.0.1-commit.f295ac2",
|
|
32
32
|
"@crate-crypto/node-eth-kzg": "^0.10.0",
|
|
33
33
|
"tslib": "^2.4.0"
|
|
34
34
|
},
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@jest/globals": "^30.0.0",
|
|
37
37
|
"@types/jest": "^30.0.0",
|
|
38
38
|
"@types/node": "^22.15.17",
|
|
39
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
39
|
+
"@typescript/native-preview": "7.0.0-dev.20260113.1",
|
|
40
40
|
"get-port": "^7.1.0",
|
|
41
41
|
"jest": "^30.0.0",
|
|
42
42
|
"ts-node": "^10.9.1",
|
package/src/batched_blob.ts
CHANGED
package/src/blob.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { FIELDS_PER_BLOB } from '@aztec/constants';
|
|
2
|
-
import { BLS12Fr
|
|
2
|
+
import { BLS12Fr } from '@aztec/foundation/curves/bls12';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
5
|
|
|
5
6
|
import { computeBlobCommitment, computeChallengeZ, computeEthVersionedBlobHash } from './hash.js';
|
|
6
7
|
import type { BlobJson } from './interface.js';
|
|
7
|
-
import { BYTES_PER_BLOB, BYTES_PER_COMMITMENT,
|
|
8
|
+
import { BYTES_PER_BLOB, BYTES_PER_COMMITMENT, getKzg } from './kzg_context.js';
|
|
8
9
|
|
|
9
10
|
export { FIELDS_PER_BLOB };
|
|
10
11
|
|
|
@@ -80,7 +81,7 @@ export class Blob {
|
|
|
80
81
|
/**
|
|
81
82
|
* Create a Blob from a JSON object.
|
|
82
83
|
*
|
|
83
|
-
* Blobs will be in this form when requested from the blob
|
|
84
|
+
* Blobs will be in this form when requested from the blob client, or from
|
|
84
85
|
* the beacon chain via `getBlobSidecars`
|
|
85
86
|
* https://ethereum.github.io/beacon-APIs/?urls.primaryName=dev#/Beacon/getBlobSidecars
|
|
86
87
|
*
|
|
@@ -101,13 +102,11 @@ export class Blob {
|
|
|
101
102
|
/**
|
|
102
103
|
* Get the JSON representation of the blob.
|
|
103
104
|
*
|
|
104
|
-
* @param index - optional - The index of the blob in the block.
|
|
105
105
|
* @returns The JSON representation of the blob.
|
|
106
106
|
*/
|
|
107
|
-
|
|
107
|
+
toJSON(): BlobJson {
|
|
108
108
|
return {
|
|
109
109
|
blob: `0x${Buffer.from(this.data).toString('hex')}`,
|
|
110
|
-
index: index.toString(),
|
|
111
110
|
// eslint-disable-next-line camelcase
|
|
112
111
|
kzg_commitment: `0x${this.commitment.toString('hex')}`,
|
|
113
112
|
};
|
|
@@ -136,6 +135,7 @@ export class Blob {
|
|
|
136
135
|
* proof: Buffer - KZG opening proof for y = p(z). The commitment to quotient polynomial Q, used in compressed BLS12 point format (48 bytes).
|
|
137
136
|
*/
|
|
138
137
|
evaluate(challengeZ: Fr, verifyProof = false) {
|
|
138
|
+
const kzg = getKzg();
|
|
139
139
|
const res = kzg.computeKzgProof(this.data, challengeZ.toBuffer());
|
|
140
140
|
if (verifyProof && !kzg.verifyKzgProof(this.commitment, challengeZ.toBuffer(), res[1], res[0])) {
|
|
141
141
|
throw new Error(`KZG proof did not verify.`);
|
|
@@ -178,6 +178,7 @@ export class Blob {
|
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
static getViemKzgInstance() {
|
|
181
|
+
const kzg = getKzg();
|
|
181
182
|
return {
|
|
182
183
|
blobToKzgCommitment: kzg.blobToKzgCommitment.bind(kzg),
|
|
183
184
|
computeBlobKzgProof: kzg.computeBlobKzgProof.bind(kzg),
|
package/src/blob_batching.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { AZTEC_MAX_EPOCH_DURATION, BLOBS_PER_CHECKPOINT } from '@aztec/constants';
|
|
2
|
-
import { poseidon2Hash
|
|
3
|
-
import {
|
|
2
|
+
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
3
|
+
import { sha256ToField } from '@aztec/foundation/crypto/sha256';
|
|
4
|
+
import { BLS12Fr, BLS12Point } from '@aztec/foundation/curves/bls12';
|
|
5
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
6
|
|
|
5
7
|
import { BatchedBlob } from './batched_blob.js';
|
|
6
8
|
import { Blob } from './blob.js';
|
|
7
9
|
import { getBlobsPerL1Block } from './blob_utils.js';
|
|
8
10
|
import { BlobAccumulator, FinalBlobAccumulator, FinalBlobBatchingChallenges } from './circuit_types/index.js';
|
|
9
11
|
import { computeBlobFieldsHash, hashNoirBigNumLimbs } from './hash.js';
|
|
10
|
-
import {
|
|
12
|
+
import { getKzg } from './kzg_context.js';
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
15
|
* A class to create, manage, and prove batched EVM blobs.
|
|
@@ -248,7 +250,12 @@ export class BatchedBlobAccumulator {
|
|
|
248
250
|
}
|
|
249
251
|
|
|
250
252
|
verify() {
|
|
251
|
-
return
|
|
253
|
+
return getKzg().verifyKzgProof(
|
|
254
|
+
this.cAcc.compress(),
|
|
255
|
+
this.zAcc.toBuffer(),
|
|
256
|
+
this.yAcc.toBuffer(),
|
|
257
|
+
this.qAcc.compress(),
|
|
258
|
+
);
|
|
252
259
|
}
|
|
253
260
|
|
|
254
261
|
isEmptyState() {
|
package/src/blob_utils.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FIELDS_PER_BLOB } from '@aztec/constants';
|
|
2
|
-
import { BLS12Point
|
|
2
|
+
import { BLS12Point } from '@aztec/foundation/curves/bls12';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
|
|
4
5
|
import type { BatchedBlob } from './batched_blob.js';
|
|
5
6
|
import { Blob } from './blob.js';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BLS12_FQ_LIMBS, BLS12_FR_LIMBS } from '@aztec/constants';
|
|
2
|
-
import { BLS12Fq, BLS12Fr, BLS12Point
|
|
2
|
+
import { BLS12Fq, BLS12Fr, BLS12Point } from '@aztec/foundation/curves/bls12';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { BLS12Fr, BLS12Point
|
|
1
|
+
import { BLS12Fr, BLS12Point } from '@aztec/foundation/curves/bls12';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
3
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
4
|
|
|
4
5
|
import { inspect } from 'util';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { FieldReader } from '@aztec/foundation/serialize';
|
|
3
3
|
|
|
4
4
|
import { BlobDeserializationError } from '../errors.js';
|
|
@@ -17,6 +17,18 @@ import { type TxBlobData, decodeTxBlobData, encodeTxBlobData } from './tx_blob_d
|
|
|
17
17
|
|
|
18
18
|
// Must match the implementation in `noir-protocol-circuits/crates/types/src/blob_data/block_blob_data.nr`.
|
|
19
19
|
|
|
20
|
+
export const NUM_BLOCK_END_BLOB_FIELDS = 6;
|
|
21
|
+
export const NUM_FIRST_BLOCK_END_BLOB_FIELDS = 7;
|
|
22
|
+
export const NUM_CHECKPOINT_END_MARKER_FIELDS = 1;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Returns the number of blob fields used for block end data.
|
|
26
|
+
* @param isFirstBlockInCheckpoint - Whether this is the first block in a checkpoint.
|
|
27
|
+
*/
|
|
28
|
+
export function getNumBlockEndBlobFields(isFirstBlockInCheckpoint: boolean): number {
|
|
29
|
+
return isFirstBlockInCheckpoint ? NUM_FIRST_BLOCK_END_BLOB_FIELDS : NUM_BLOCK_END_BLOB_FIELDS;
|
|
30
|
+
}
|
|
31
|
+
|
|
20
32
|
export interface BlockEndBlobData {
|
|
21
33
|
blockEndMarker: BlockEndMarker;
|
|
22
34
|
blockEndStateField: BlockEndStateField;
|
|
@@ -46,7 +58,7 @@ export function encodeBlockEndBlobData(blockEndBlobData: BlockEndBlobData): Fr[]
|
|
|
46
58
|
export function decodeBlockEndBlobData(fields: Fr[] | FieldReader, isFirstBlock: boolean): BlockEndBlobData {
|
|
47
59
|
const reader = FieldReader.asReader(fields);
|
|
48
60
|
|
|
49
|
-
const numBlockEndData = isFirstBlock
|
|
61
|
+
const numBlockEndData = getNumBlockEndBlobFields(isFirstBlock);
|
|
50
62
|
if (numBlockEndData > reader.remainingFields()) {
|
|
51
63
|
throw new BlobDeserializationError(
|
|
52
64
|
`Incorrect encoding of blob fields: not enough fields for block end data. Expected ${numBlockEndData} fields, only ${reader.remainingFields()} remaining.`,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BLOCK_END_PREFIX } from '@aztec/constants';
|
|
2
2
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
|
-
import { Fr } from '@aztec/foundation/
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
|
|
5
5
|
import { BlobDeserializationError } from '../errors.js';
|
|
6
6
|
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
3
3
|
|
|
4
4
|
import { BlobDeserializationError } from '../errors.js';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
type BlockBlobData,
|
|
7
|
+
NUM_BLOCK_END_BLOB_FIELDS,
|
|
8
|
+
NUM_CHECKPOINT_END_MARKER_FIELDS,
|
|
9
|
+
NUM_FIRST_BLOCK_END_BLOB_FIELDS,
|
|
10
|
+
decodeBlockBlobData,
|
|
11
|
+
encodeBlockBlobData,
|
|
12
|
+
} from './block_blob_data.js';
|
|
6
13
|
import {
|
|
7
14
|
type CheckpointEndMarker,
|
|
8
15
|
decodeCheckpointEndMarker,
|
|
@@ -25,7 +32,7 @@ export function encodeCheckpointBlobData(checkpointBlobData: CheckpointBlobData)
|
|
|
25
32
|
|
|
26
33
|
export function encodeCheckpointBlobDataFromBlocks(blocks: BlockBlobData[]): Fr[] {
|
|
27
34
|
const blocksBlobFields = blocks.map(block => encodeBlockBlobData(block)).flat();
|
|
28
|
-
const numBlobFields = blocksBlobFields.length +
|
|
35
|
+
const numBlobFields = blocksBlobFields.length + NUM_CHECKPOINT_END_MARKER_FIELDS;
|
|
29
36
|
return blocksBlobFields.concat(encodeCheckpointEndMarker({ numBlobFields }));
|
|
30
37
|
}
|
|
31
38
|
|
|
@@ -87,9 +94,9 @@ export function getTotalNumBlobFieldsFromTxs(txsPerBlock: TxStartMarker[][]): nu
|
|
|
87
94
|
}
|
|
88
95
|
|
|
89
96
|
return (
|
|
90
|
-
(numBlocks ?
|
|
91
|
-
numBlocks *
|
|
97
|
+
(numBlocks ? NUM_FIRST_BLOCK_END_BLOB_FIELDS - NUM_BLOCK_END_BLOB_FIELDS : 0) + // l1ToL2Messages root in the first block
|
|
98
|
+
numBlocks * NUM_BLOCK_END_BLOB_FIELDS + // 6 fields for each block end blob data.
|
|
92
99
|
txsPerBlock.reduce((total, txs) => total + txs.reduce((total, tx) => total + tx.numBlobFields, 0), 0) +
|
|
93
|
-
|
|
100
|
+
NUM_CHECKPOINT_END_MARKER_FIELDS // checkpoint end marker
|
|
94
101
|
);
|
|
95
102
|
}
|
package/src/encoding/fixtures.ts
CHANGED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from '@aztec/constants';
|
|
11
11
|
import { makeTuple } from '@aztec/foundation/array';
|
|
12
12
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
13
|
-
import { Fr } from '@aztec/foundation/
|
|
13
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
14
14
|
|
|
15
15
|
import type { BlockBlobData, BlockEndBlobData } from './block_blob_data.js';
|
|
16
16
|
import type { BlockEndMarker } from './block_end_marker.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { chunk } from '@aztec/foundation/collection';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { FieldReader } from '@aztec/foundation/serialize';
|
|
4
4
|
|
|
5
5
|
import { BlobDeserializationError } from '../errors.js';
|
package/src/hash.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { poseidon2Hash
|
|
2
|
-
import {
|
|
1
|
+
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
2
|
+
import { sha256, sha256ToField } from '@aztec/foundation/crypto/sha256';
|
|
3
|
+
import { BLS12Fr } from '@aztec/foundation/curves/bls12';
|
|
4
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
5
|
|
|
4
|
-
import { BYTES_PER_BLOB, BYTES_PER_COMMITMENT,
|
|
6
|
+
import { BYTES_PER_BLOB, BYTES_PER_COMMITMENT, getKzg } from './kzg_context.js';
|
|
5
7
|
import { SpongeBlob } from './sponge_blob.js';
|
|
6
8
|
|
|
7
9
|
const VERSIONED_HASH_VERSION_KZG = 0x01;
|
|
@@ -47,7 +49,7 @@ export function computeBlobCommitment(data: Uint8Array): Buffer {
|
|
|
47
49
|
throw new Error(`Expected ${BYTES_PER_BLOB} bytes per blob. Got ${data.length}.`);
|
|
48
50
|
}
|
|
49
51
|
|
|
50
|
-
return Buffer.from(
|
|
52
|
+
return Buffer.from(getKzg().blobToKzgCommitment(data));
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
/**
|
package/src/index.ts
CHANGED