@aztec/blob-lib 0.0.1-fake-c83136db25 → 0.0.2-commit.217f559981

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dest/batched_blob.d.ts +31 -0
  2. package/dest/batched_blob.d.ts.map +1 -0
  3. package/dest/batched_blob.js +20 -0
  4. package/dest/blob.d.ts +13 -13
  5. package/dest/blob.d.ts.map +1 -1
  6. package/dest/blob.js +15 -14
  7. package/dest/blob_batching.d.ts +35 -72
  8. package/dest/blob_batching.d.ts.map +1 -1
  9. package/dest/blob_batching.js +75 -110
  10. package/dest/blob_utils.d.ts +22 -12
  11. package/dest/blob_utils.d.ts.map +1 -1
  12. package/dest/blob_utils.js +32 -23
  13. package/dest/circuit_types/blob_accumulator.d.ts +4 -2
  14. package/dest/circuit_types/blob_accumulator.d.ts.map +1 -1
  15. package/dest/circuit_types/blob_accumulator.js +5 -1
  16. package/dest/circuit_types/final_blob_accumulator.d.ts +3 -2
  17. package/dest/circuit_types/final_blob_accumulator.d.ts.map +1 -1
  18. package/dest/circuit_types/final_blob_accumulator.js +5 -2
  19. package/dest/circuit_types/final_blob_batching_challenges.d.ts +3 -2
  20. package/dest/circuit_types/final_blob_batching_challenges.d.ts.map +1 -1
  21. package/dest/circuit_types/final_blob_batching_challenges.js +2 -1
  22. package/dest/circuit_types/index.d.ts +1 -1
  23. package/dest/encoding/block_blob_data.d.ts +30 -0
  24. package/dest/encoding/block_blob_data.d.ts.map +1 -0
  25. package/dest/encoding/block_blob_data.js +75 -0
  26. package/dest/encoding/block_end_marker.d.ts +11 -0
  27. package/dest/encoding/block_end_marker.d.ts.map +1 -0
  28. package/dest/encoding/block_end_marker.js +41 -0
  29. package/dest/encoding/block_end_state_field.d.ts +12 -0
  30. package/dest/encoding/block_end_state_field.d.ts.map +1 -0
  31. package/dest/encoding/block_end_state_field.js +39 -0
  32. package/dest/encoding/checkpoint_blob_data.d.ts +15 -0
  33. package/dest/encoding/checkpoint_blob_data.d.ts.map +1 -0
  34. package/dest/encoding/checkpoint_blob_data.js +67 -0
  35. package/dest/encoding/checkpoint_end_marker.d.ts +8 -0
  36. package/dest/encoding/checkpoint_end_marker.d.ts.map +1 -0
  37. package/dest/encoding/checkpoint_end_marker.js +28 -0
  38. package/dest/encoding/fixtures.d.ts +41 -0
  39. package/dest/encoding/fixtures.d.ts.map +1 -0
  40. package/dest/encoding/fixtures.js +140 -0
  41. package/dest/encoding/index.d.ts +10 -0
  42. package/dest/encoding/index.d.ts.map +1 -0
  43. package/dest/encoding/index.js +9 -0
  44. package/dest/encoding/tx_blob_data.d.ts +19 -0
  45. package/dest/encoding/tx_blob_data.d.ts.map +1 -0
  46. package/dest/encoding/tx_blob_data.js +79 -0
  47. package/dest/encoding/tx_start_marker.d.ts +16 -0
  48. package/dest/encoding/tx_start_marker.d.ts.map +1 -0
  49. package/dest/{encoding.js → encoding/tx_start_marker.js} +14 -60
  50. package/dest/errors.d.ts +1 -1
  51. package/dest/errors.d.ts.map +1 -1
  52. package/dest/hash.d.ts +14 -6
  53. package/dest/hash.d.ts.map +1 -1
  54. package/dest/hash.js +20 -9
  55. package/dest/index.d.ts +4 -4
  56. package/dest/index.d.ts.map +1 -1
  57. package/dest/index.js +3 -3
  58. package/dest/interface.d.ts +1 -2
  59. package/dest/interface.d.ts.map +1 -1
  60. package/dest/kzg_context.d.ts +6 -2
  61. package/dest/kzg_context.d.ts.map +1 -1
  62. package/dest/kzg_context.js +12 -3
  63. package/dest/sponge_blob.d.ts +9 -13
  64. package/dest/sponge_blob.d.ts.map +1 -1
  65. package/dest/sponge_blob.js +21 -36
  66. package/dest/testing.d.ts +9 -17
  67. package/dest/testing.d.ts.map +1 -1
  68. package/dest/testing.js +35 -64
  69. package/dest/types.d.ts +2 -1
  70. package/dest/types.d.ts.map +1 -1
  71. package/dest/types.js +1 -0
  72. package/package.json +8 -7
  73. package/src/batched_blob.ts +26 -0
  74. package/src/blob.ts +15 -14
  75. package/src/blob_batching.ts +93 -128
  76. package/src/blob_utils.ts +38 -25
  77. package/src/circuit_types/blob_accumulator.ts +13 -1
  78. package/src/circuit_types/final_blob_accumulator.ts +2 -1
  79. package/src/circuit_types/final_blob_batching_challenges.ts +2 -1
  80. package/src/encoding/block_blob_data.ts +114 -0
  81. package/src/encoding/block_end_marker.ts +55 -0
  82. package/src/encoding/block_end_state_field.ts +59 -0
  83. package/src/encoding/checkpoint_blob_data.ts +102 -0
  84. package/src/encoding/checkpoint_end_marker.ts +40 -0
  85. package/src/encoding/fixtures.ts +210 -0
  86. package/src/encoding/index.ts +9 -0
  87. package/src/encoding/tx_blob_data.ts +116 -0
  88. package/src/{encoding.ts → encoding/tx_start_marker.ts} +20 -77
  89. package/src/hash.ts +21 -9
  90. package/src/index.ts +3 -3
  91. package/src/interface.ts +0 -1
  92. package/src/kzg_context.ts +12 -1
  93. package/src/sponge_blob.ts +23 -36
  94. package/src/testing.ts +48 -74
  95. package/src/types.ts +1 -0
  96. package/dest/deserialize.d.ts +0 -14
  97. package/dest/deserialize.d.ts.map +0 -1
  98. package/dest/deserialize.js +0 -33
  99. package/dest/encoding.d.ts +0 -26
  100. package/dest/encoding.d.ts.map +0 -1
  101. package/src/deserialize.ts +0 -38
@@ -0,0 +1,31 @@
1
+ import { BLS12Fr, BLS12Point } from '@aztec/foundation/curves/bls12';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { FinalBlobAccumulator } from './circuit_types/index.js';
4
+ /**
5
+ * A class to represent the result from accumulating blobs in an epoch using BatchedBlobAccumulator.
6
+ */
7
+ export declare class BatchedBlob {
8
+ /** Hash of Cs (to link to L1 blob hashes). */
9
+ readonly blobCommitmentsHash: Fr;
10
+ /** Challenge point z such that p_i(z) = y_i. */
11
+ readonly z: Fr;
12
+ /** Evaluation y, linear combination of all evaluations y_i = p_i(z) with gamma. */
13
+ readonly y: BLS12Fr;
14
+ /** Commitment C, linear combination of all commitments C_i = [p_i] with gamma. */
15
+ readonly commitment: BLS12Point;
16
+ /** KZG opening 'proof' Q (commitment to the quotient poly.), linear combination of all blob kzg 'proofs' Q_i with gamma. */
17
+ readonly q: BLS12Point;
18
+ constructor(
19
+ /** Hash of Cs (to link to L1 blob hashes). */
20
+ blobCommitmentsHash: Fr,
21
+ /** Challenge point z such that p_i(z) = y_i. */
22
+ z: Fr,
23
+ /** Evaluation y, linear combination of all evaluations y_i = p_i(z) with gamma. */
24
+ y: BLS12Fr,
25
+ /** Commitment C, linear combination of all commitments C_i = [p_i] with gamma. */
26
+ commitment: BLS12Point,
27
+ /** KZG opening 'proof' Q (commitment to the quotient poly.), linear combination of all blob kzg 'proofs' Q_i with gamma. */
28
+ q: BLS12Point);
29
+ toFinalBlobAccumulator(): FinalBlobAccumulator;
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hlZF9ibG9iLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYmF0Y2hlZF9ibG9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFOztHQUVHO0FBQ0gscUJBQWEsV0FBVztJQUVwQiw4Q0FBOEM7YUFDOUIsbUJBQW1CLEVBQUUsRUFBRTtJQUN2QyxnREFBZ0Q7YUFDaEMsQ0FBQyxFQUFFLEVBQUU7SUFDckIsbUZBQW1GO2FBQ25FLENBQUMsRUFBRSxPQUFPO0lBQzFCLGtGQUFrRjthQUNsRSxVQUFVLEVBQUUsVUFBVTtJQUN0Qyw0SEFBNEg7YUFDNUcsQ0FBQyxFQUFFLFVBQVU7SUFWL0I7SUFDRSw4Q0FBOEM7SUFDOUIsbUJBQW1CLEVBQUUsRUFBRTtJQUN2QyxnREFBZ0Q7SUFDaEMsQ0FBQyxFQUFFLEVBQUU7SUFDckIsbUZBQW1GO0lBQ25FLENBQUMsRUFBRSxPQUFPO0lBQzFCLGtGQUFrRjtJQUNsRSxVQUFVLEVBQUUsVUFBVTtJQUN0Qyw0SEFBNEg7SUFDNUcsQ0FBQyxFQUFFLFVBQVUsRUFDM0I7SUFFSixzQkFBc0IseUJBRXJCO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batched_blob.d.ts","sourceRoot":"","sources":["../src/batched_blob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;GAEG;AACH,qBAAa,WAAW;IAEpB,8CAA8C;aAC9B,mBAAmB,EAAE,EAAE;IACvC,gDAAgD;aAChC,CAAC,EAAE,EAAE;IACrB,mFAAmF;aACnE,CAAC,EAAE,OAAO;IAC1B,kFAAkF;aAClE,UAAU,EAAE,UAAU;IACtC,4HAA4H;aAC5G,CAAC,EAAE,UAAU;IAV/B;IACE,8CAA8C;IAC9B,mBAAmB,EAAE,EAAE;IACvC,gDAAgD;IAChC,CAAC,EAAE,EAAE;IACrB,mFAAmF;IACnE,CAAC,EAAE,OAAO;IAC1B,kFAAkF;IAClE,UAAU,EAAE,UAAU;IACtC,4HAA4H;IAC5G,CAAC,EAAE,UAAU,EAC3B;IAEJ,sBAAsB,yBAErB;CACF"}
@@ -0,0 +1,20 @@
1
+ import { FinalBlobAccumulator } from './circuit_types/index.js';
2
+ /**
3
+ * A class to represent the result from accumulating blobs in an epoch using BatchedBlobAccumulator.
4
+ */ export class BatchedBlob {
5
+ blobCommitmentsHash;
6
+ z;
7
+ y;
8
+ commitment;
9
+ q;
10
+ constructor(/** Hash of Cs (to link to L1 blob hashes). */ blobCommitmentsHash, /** Challenge point z such that p_i(z) = y_i. */ z, /** Evaluation y, linear combination of all evaluations y_i = p_i(z) with gamma. */ y, /** Commitment C, linear combination of all commitments C_i = [p_i] with gamma. */ commitment, /** KZG opening 'proof' Q (commitment to the quotient poly.), linear combination of all blob kzg 'proofs' Q_i with gamma. */ q){
11
+ this.blobCommitmentsHash = blobCommitmentsHash;
12
+ this.z = z;
13
+ this.y = y;
14
+ this.commitment = commitment;
15
+ this.q = q;
16
+ }
17
+ toFinalBlobAccumulator() {
18
+ return new FinalBlobAccumulator(this.blobCommitmentsHash, this.z, this.y, this.commitment);
19
+ }
20
+ }
package/dest/blob.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { FIELDS_PER_BLOB } from '@aztec/constants';
2
- import { BLS12Fr, Fr } from '@aztec/foundation/fields';
2
+ import { BLS12Fr } from '@aztec/foundation/curves/bls12';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import { BufferReader } from '@aztec/foundation/serialize';
4
5
  import type { BlobJson } from './interface.js';
5
6
  export { FIELDS_PER_BLOB };
@@ -35,7 +36,7 @@ export declare class Blob {
35
36
  *
36
37
  * @throws If data does not match the expected length (BYTES_PER_BLOB).
37
38
  */
38
- static fromBlobBuffer(data: Uint8Array): Blob;
39
+ static fromBlobBuffer(data: Uint8Array): Promise<Blob>;
39
40
  /**
40
41
  * Create a Blob from an array of fields.
41
42
  *
@@ -44,7 +45,7 @@ export declare class Blob {
44
45
  * @param fields - The array of fields to create the Blob from.
45
46
  * @returns A Blob created from the array of fields.
46
47
  */
47
- static fromFields(fields: Fr[]): Blob;
48
+ static fromFields(fields: Fr[]): Promise<Blob>;
48
49
  /**
49
50
  * Get the fields from the blob data.
50
51
  *
@@ -56,21 +57,20 @@ export declare class Blob {
56
57
  /**
57
58
  * Create a Blob from a JSON object.
58
59
  *
59
- * Blobs will be in this form when requested from the blob sink, or from
60
+ * Blobs will be in this form when requested from the blob client, or from
60
61
  * the beacon chain via `getBlobSidecars`
61
62
  * https://ethereum.github.io/beacon-APIs/?urls.primaryName=dev#/Beacon/getBlobSidecars
62
63
  *
63
64
  * @param json - The JSON object to create the Blob from.
64
65
  * @returns A Blob created from the JSON object.
65
66
  */
66
- static fromJson(json: BlobJson): Blob;
67
+ static fromJson(json: BlobJson): Promise<Blob>;
67
68
  /**
68
69
  * Get the JSON representation of the blob.
69
70
  *
70
- * @param index - optional - The index of the blob in the block.
71
71
  * @returns The JSON representation of the blob.
72
72
  */
73
- toJson(index: number): BlobJson;
73
+ toJSON(): BlobJson;
74
74
  getEthVersionedBlobHash(): Buffer;
75
75
  /**
76
76
  * Challenge point z (= H(H(tx_effects), kzgCommitment)).
@@ -87,10 +87,10 @@ export declare class Blob {
87
87
  * y: BLS12Fr - Evaluation y = p(z), where p() is the blob polynomial. BLS12 field element, rep. as BigNum in nr, bigint in ts.
88
88
  * proof: Buffer - KZG opening proof for y = p(z). The commitment to quotient polynomial Q, used in compressed BLS12 point format (48 bytes).
89
89
  */
90
- evaluate(challengeZ: Fr, verifyProof?: boolean): {
90
+ evaluate(challengeZ: Fr, verifyProof?: boolean): Promise<{
91
91
  y: BLS12Fr;
92
92
  proof: Buffer<ArrayBuffer>;
93
- };
93
+ }>;
94
94
  /**
95
95
  * Get the buffer representation of the ENTIRE blob.
96
96
  *
@@ -113,9 +113,9 @@ export declare class Blob {
113
113
  */
114
114
  getSize(): number;
115
115
  static getViemKzgInstance(): {
116
- blobToKzgCommitment: (blob: Uint8Array) => Uint8Array;
117
- computeBlobKzgProof: (blob: Uint8Array, commitment: Uint8Array) => Uint8Array;
118
- computeCellsAndKzgProofs: (b: Uint8Array) => [Uint8Array[], Uint8Array[]];
116
+ blobToKzgCommitment: (blob: Uint8Array<ArrayBufferLike>) => Uint8Array<ArrayBufferLike>;
117
+ computeBlobKzgProof: (blob: Uint8Array<ArrayBufferLike>, commitment: Uint8Array<ArrayBufferLike>) => Uint8Array<ArrayBufferLike>;
118
+ computeCellsAndKzgProofs: (b: Uint8Array<ArrayBufferLike>) => [Uint8Array<ArrayBufferLike>[], Uint8Array<ArrayBufferLike>[]];
119
119
  };
120
120
  }
121
- //# sourceMappingURL=blob.d.ts.map
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvYi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Jsb2IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUc5RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUM7QUFFM0I7Ozs7OztHQU1HO0FBQ0gscUJBQWEsSUFBSTtJQUViOztPQUVHO2FBQ2EsSUFBSSxFQUFFLFVBQVU7SUFDaEM7O09BRUc7YUFDYSxVQUFVLEVBQUUsTUFBTTtJQVJwQztJQUNFOztPQUVHO0lBQ2EsSUFBSSxFQUFFLFVBQVU7SUFDaEM7O09BRUc7SUFDYSxVQUFVLEVBQUUsTUFBTSxFQVFuQztJQUVEOzs7Ozs7T0FNRztJQUNILE9BQWEsY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUczRDtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFhLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVFuRDtJQUVEOzs7Ozs7T0FNRztJQUNILFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FJZjtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILE9BQWEsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVNuRDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLElBQUksUUFBUSxDQU1qQjtJQUVELHVCQUF1QixJQUFJLE1BQU0sQ0FFaEM7SUFFRDs7O09BR0c7SUFDRyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFdkQ7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDRyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxXQUFXLFVBQVE7OztPQVVqRDtJQUVEOzs7Ozs7T0FNRztJQUNILFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUdsRDtJQUVEOztPQUVHO0lBQ0gsT0FBTyxXQUVOO0lBRUQsTUFBTSxDQUFDLGtCQUFrQjs7OztNQVV4QjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../src/blob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B;;;;;;GAMG;AACH,qBAAa,IAAI;IAEb;;OAEG;aACa,IAAI,EAAE,UAAU;IAChC;;OAEG;aACa,UAAU,EAAE,MAAM;;IAPlC;;OAEG;IACa,IAAI,EAAE,UAAU;IAChC;;OAEG;IACa,UAAU,EAAE,MAAM;IAUpC;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAK7C;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI;IAUrC;;;;;;OAMG;IACH,QAAQ,IAAI,EAAE,EAAE;IAMhB;;;;;;;;;OASG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAWrC;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAS/B,uBAAuB,IAAI,MAAM;IAIjC;;;OAGG;IACG,iBAAiB,CAAC,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAIxD;;;;;;;;;OASG;IACH,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,WAAW,UAAQ;;;;IAW5C;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAKnD;;OAEG;IACH,OAAO;IAIP,MAAM,CAAC,kBAAkB;;;sCAIS,UAAU,KAAG,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC;;CAM5E"}
1
+ {"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../src/blob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B;;;;;;GAMG;AACH,qBAAa,IAAI;IAEb;;OAEG;aACa,IAAI,EAAE,UAAU;IAChC;;OAEG;aACa,UAAU,EAAE,MAAM;IARpC;IACE;;OAEG;IACa,IAAI,EAAE,UAAU;IAChC;;OAEG;IACa,UAAU,EAAE,MAAM,EAQnC;IAED;;;;;;OAMG;IACH,OAAa,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3D;IAED;;;;;;;OAOG;IACH,OAAa,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnD;IAED;;;;;;OAMG;IACH,QAAQ,IAAI,EAAE,EAAE,CAIf;IAED;;;;;;;;;OASG;IACH,OAAa,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CASnD;IAED;;;;OAIG;IACH,MAAM,IAAI,QAAQ,CAMjB;IAED,uBAAuB,IAAI,MAAM,CAEhC;IAED;;;OAGG;IACG,iBAAiB,CAAC,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAEvD;IAED;;;;;;;;;OASG;IACG,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,WAAW,UAAQ;;;OAUjD;IAED;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM,CAEjB;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAGlD;IAED;;OAEG;IACH,OAAO,WAEN;IAED,MAAM,CAAC,kBAAkB;;;;MAUxB;CACF"}
package/dest/blob.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { FIELDS_PER_BLOB } from '@aztec/constants';
2
- import { BLS12Fr, Fr } from '@aztec/foundation/fields';
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
  import { computeBlobCommitment, computeChallengeZ, computeEthVersionedBlobHash } from './hash.js';
5
- import { BYTES_PER_BLOB, BYTES_PER_COMMITMENT, kzg } from './kzg_context.js';
6
+ import { BYTES_PER_BLOB, BYTES_PER_COMMITMENT, getKzg } from './kzg_context.js';
6
7
  export { FIELDS_PER_BLOB };
7
8
  /**
8
9
  * A class to create, manage, and prove EVM blobs.
@@ -33,8 +34,8 @@ export { FIELDS_PER_BLOB };
33
34
  * @returns A Blob created from the buffer.
34
35
  *
35
36
  * @throws If data does not match the expected length (BYTES_PER_BLOB).
36
- */ static fromBlobBuffer(data) {
37
- const commitment = computeBlobCommitment(data);
37
+ */ static async fromBlobBuffer(data) {
38
+ const commitment = await computeBlobCommitment(data);
38
39
  return new Blob(data, commitment);
39
40
  }
40
41
  /**
@@ -44,14 +45,14 @@ export { FIELDS_PER_BLOB };
44
45
  *
45
46
  * @param fields - The array of fields to create the Blob from.
46
47
  * @returns A Blob created from the array of fields.
47
- */ static fromFields(fields) {
48
+ */ static async fromFields(fields) {
48
49
  if (fields.length > FIELDS_PER_BLOB) {
49
50
  throw new Error(`Attempted to overfill blob with ${fields.length} fields. The maximum is ${FIELDS_PER_BLOB}.`);
50
51
  }
51
52
  const data = Buffer.concat([
52
53
  serializeToBuffer(fields)
53
54
  ], BYTES_PER_BLOB);
54
- const commitment = computeBlobCommitment(data);
55
+ const commitment = await computeBlobCommitment(data);
55
56
  return new Blob(data, commitment);
56
57
  }
57
58
  /**
@@ -68,15 +69,15 @@ export { FIELDS_PER_BLOB };
68
69
  /**
69
70
  * Create a Blob from a JSON object.
70
71
  *
71
- * Blobs will be in this form when requested from the blob sink, or from
72
+ * Blobs will be in this form when requested from the blob client, or from
72
73
  * the beacon chain via `getBlobSidecars`
73
74
  * https://ethereum.github.io/beacon-APIs/?urls.primaryName=dev#/Beacon/getBlobSidecars
74
75
  *
75
76
  * @param json - The JSON object to create the Blob from.
76
77
  * @returns A Blob created from the JSON object.
77
- */ static fromJson(json) {
78
+ */ static async fromJson(json) {
78
79
  const blobBuffer = Buffer.from(json.blob.slice(2), 'hex');
79
- const blob = Blob.fromBlobBuffer(blobBuffer);
80
+ const blob = await Blob.fromBlobBuffer(blobBuffer);
80
81
  if (blob.commitment.toString('hex') !== json.kzg_commitment.slice(2)) {
81
82
  throw new Error('KZG commitment does not match');
82
83
  }
@@ -85,12 +86,10 @@ export { FIELDS_PER_BLOB };
85
86
  /**
86
87
  * Get the JSON representation of the blob.
87
88
  *
88
- * @param index - optional - The index of the blob in the block.
89
89
  * @returns The JSON representation of the blob.
90
- */ toJson(index) {
90
+ */ toJSON() {
91
91
  return {
92
92
  blob: `0x${Buffer.from(this.data).toString('hex')}`,
93
- index: index.toString(),
94
93
  // eslint-disable-next-line camelcase
95
94
  kzg_commitment: `0x${this.commitment.toString('hex')}`
96
95
  };
@@ -113,8 +112,9 @@ export { FIELDS_PER_BLOB };
113
112
  * @returns
114
113
  * y: BLS12Fr - Evaluation y = p(z), where p() is the blob polynomial. BLS12 field element, rep. as BigNum in nr, bigint in ts.
115
114
  * proof: Buffer - KZG opening proof for y = p(z). The commitment to quotient polynomial Q, used in compressed BLS12 point format (48 bytes).
116
- */ evaluate(challengeZ, verifyProof = false) {
117
- const res = kzg.computeKzgProof(this.data, challengeZ.toBuffer());
115
+ */ async evaluate(challengeZ, verifyProof = false) {
116
+ const kzg = getKzg();
117
+ const res = await kzg.asyncComputeKzgProof(this.data, challengeZ.toBuffer());
118
118
  if (verifyProof && !kzg.verifyKzgProof(this.commitment, challengeZ.toBuffer(), res[1], res[0])) {
119
119
  throw new Error(`KZG proof did not verify.`);
120
120
  }
@@ -151,6 +151,7 @@ export { FIELDS_PER_BLOB };
151
151
  return this.data.length;
152
152
  }
153
153
  static getViemKzgInstance() {
154
+ const kzg = getKzg();
154
155
  return {
155
156
  blobToKzgCommitment: kzg.blobToKzgCommitment.bind(kzg),
156
157
  computeBlobKzgProof: kzg.computeBlobKzgProof.bind(kzg),
@@ -1,75 +1,10 @@
1
- import { BLS12Fr, BLS12Point, Fr } from '@aztec/foundation/fields';
1
+ import { BLS12Fr, BLS12Point } from '@aztec/foundation/curves/bls12';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { BatchedBlob } from './batched_blob.js';
2
4
  import { Blob } from './blob.js';
3
5
  import { BlobAccumulator, FinalBlobAccumulator, FinalBlobBatchingChallenges } from './circuit_types/index.js';
4
6
  /**
5
7
  * A class to create, manage, and prove batched EVM blobs.
6
- */
7
- export declare class BatchedBlob {
8
- /** Hash of Cs (to link to L1 blob hashes). */
9
- readonly blobCommitmentsHash: Fr;
10
- /** Challenge point z such that p_i(z) = y_i. */
11
- readonly z: Fr;
12
- /** Evaluation y, linear combination of all evaluations y_i = p_i(z) with gamma. */
13
- readonly y: BLS12Fr;
14
- /** Commitment C, linear combination of all commitments C_i = [p_i] with gamma. */
15
- readonly commitment: BLS12Point;
16
- /** KZG opening 'proof' Q (commitment to the quotient poly.), linear combination of all blob kzg 'proofs' Q_i with gamma. */
17
- readonly q: BLS12Point;
18
- constructor(
19
- /** Hash of Cs (to link to L1 blob hashes). */
20
- blobCommitmentsHash: Fr,
21
- /** Challenge point z such that p_i(z) = y_i. */
22
- z: Fr,
23
- /** Evaluation y, linear combination of all evaluations y_i = p_i(z) with gamma. */
24
- y: BLS12Fr,
25
- /** Commitment C, linear combination of all commitments C_i = [p_i] with gamma. */
26
- commitment: BLS12Point,
27
- /** KZG opening 'proof' Q (commitment to the quotient poly.), linear combination of all blob kzg 'proofs' Q_i with gamma. */
28
- q: BLS12Point);
29
- /**
30
- * Get the final batched opening proof from multiple blobs.
31
- * @dev MUST input all blobs to be broadcast. Does not work in multiple calls because z and gamma are calculated
32
- * beforehand from ALL blobs.
33
- *
34
- * @returns A batched blob.
35
- */
36
- static batch(blobs: Blob[][]): Promise<BatchedBlob>;
37
- /**
38
- * Returns an empty BatchedBlobAccumulator with precomputed challenges from all blobs in the epoch.
39
- * @dev MUST input all blobs to be broadcast. Does not work in multiple calls because z and gamma are calculated
40
- * beforehand from ALL blobs.
41
- */
42
- static newAccumulator(blobs: Blob[][]): Promise<BatchedBlobAccumulator>;
43
- /**
44
- * Gets the final challenges based on all blobs and their elements to perform a multi opening proof.
45
- * Used in BatchedBlobAccumulator as 'finalZ' and finalGamma':
46
- * - z = H(...H(H(z_0, z_1) z_2)..z_n)
47
- * - where z_i = H(H(fields of blob_i), C_i) = Blob.challengeZ,
48
- * - used such that p_i(z) = y_i = Blob.evaluationY for all n blob polynomials p_i().
49
- * - gamma = H(H(...H(H(y_0, y_1) y_2)..y_n), z)
50
- * - used such that y = sum_i { gamma^i * y_i }, and C = sum_i { gamma^i * C_i }, for all blob evaluations y_i (see above) and commitments C_i.
51
- *
52
- * @param blobs - The blobs to precompute the challenges for. Each sub-array is the blobs for an L1 block.
53
- * @returns Challenges z and gamma.
54
- */
55
- static precomputeBatchedBlobChallenges(blobs: Blob[][]): Promise<FinalBlobBatchingChallenges>;
56
- verify(): boolean;
57
- getEthVersionedBlobHash(): Buffer;
58
- /**
59
- * Returns a proof of opening of the blobs to verify on L1 using the point evaluation precompile:
60
- *
61
- * input[:32] - versioned_hash
62
- * input[32:64] - z
63
- * input[64:96] - y
64
- * input[96:144] - commitment C
65
- * input[144:192] - commitment Q (a 'proof' committing to the quotient polynomial q(X))
66
- *
67
- * See https://eips.ethereum.org/EIPS/eip-4844#point-evaluation-precompile
68
- */
69
- getEthBlobEvaluationInputs(): `0x${string}`;
70
- toFinalBlobAccumulator(): FinalBlobAccumulator;
71
- }
72
- /**
73
8
  * See noir-projects/noir-protocol-circuits/crates/blob/src/abis/blob_accumulator.nr
74
9
  */
75
10
  export declare class BatchedBlobAccumulator {
@@ -119,19 +54,46 @@ export declare class BatchedBlobAccumulator {
119
54
  * @returns An empty blob accumulator with challenges.
120
55
  */
121
56
  static newWithChallenges(finalBlobChallenges: FinalBlobBatchingChallenges): BatchedBlobAccumulator;
57
+ /**
58
+ * Returns an empty BatchedBlobAccumulator with precomputed challenges from all blobs in the epoch.
59
+ * @dev MUST input all blobs to be broadcast. Does not work in multiple calls because z and gamma are calculated
60
+ * beforehand from ALL blobs.
61
+ */
62
+ static fromBlobFields(blobFieldsPerCheckpoint: Fr[][]): Promise<BatchedBlobAccumulator>;
63
+ /**
64
+ * Get the final batched opening proof from multiple blobs.
65
+ * @dev MUST input all blobs to be broadcast. Does not work in multiple calls because z and gamma are calculated
66
+ * beforehand from ALL blobs.
67
+ *
68
+ * @returns A batched blob.
69
+ */
70
+ static batch(blobFieldsPerCheckpoint: Fr[][], verifyProof?: boolean): Promise<BatchedBlob>;
71
+ /**
72
+ * Gets the final challenges based on all blobs and their elements to perform a multi opening proof.
73
+ * Used in BatchedBlobAccumulator as 'finalZ' and finalGamma':
74
+ * - z = H(...H(H(z_0, z_1) z_2)..z_n)
75
+ * - where z_i = H(H(fields of blob_i), C_i) = Blob.challengeZ,
76
+ * - used such that p_i(z) = y_i = Blob.evaluationY for all n blob polynomials p_i().
77
+ * - gamma = H(H(...H(H(y_0, y_1) y_2)..y_n), z)
78
+ * - used such that y = sum_i { gamma^i * y_i }, and C = sum_i { gamma^i * C_i }, for all blob evaluations y_i (see above) and commitments C_i.
79
+ *
80
+ * @param blobs - The blobs to precompute the challenges for. Each sub-array is the blobs for an L1 block.
81
+ * @returns Challenges z and gamma.
82
+ */
83
+ static precomputeBatchedBlobChallenges(blobFieldsPerCheckpoint: Fr[][]): Promise<FinalBlobBatchingChallenges>;
122
84
  /**
123
85
  * Given blob i, accumulate all state.
124
86
  * We assume the input blob has not been evaluated at z.
125
87
  * @returns An updated blob accumulator.
126
88
  */
127
- private accumulate;
89
+ accumulateBlob(blob: Blob, blobFieldsHash: Fr): Promise<BatchedBlobAccumulator>;
128
90
  /**
129
91
  * Given blobs, accumulate all state.
130
92
  * We assume the input blobs have not been evaluated at z.
131
- * @param blobs - The blobs to accumulate. They should be in the same L1 block.
93
+ * @param blobFields - The blob fields of a checkpoint to accumulate.
132
94
  * @returns An updated blob accumulator.
133
95
  */
134
- accumulateBlobs(blobs: Blob[]): Promise<BatchedBlobAccumulator>;
96
+ accumulateFields(blobFields: Fr[]): Promise<BatchedBlobAccumulator>;
135
97
  /**
136
98
  * Finalize accumulation state of the epoch.
137
99
  * We assume ALL blobs in the epoch have been accumulated.
@@ -147,9 +109,10 @@ export declare class BatchedBlobAccumulator {
147
109
  * @returns A batched blob.
148
110
  */
149
111
  finalize(verifyProof?: boolean): Promise<BatchedBlob>;
112
+ verify(): boolean;
150
113
  isEmptyState(): boolean;
151
114
  clone(): BatchedBlobAccumulator;
152
115
  toBlobAccumulator(): BlobAccumulator;
153
116
  toFinalBlobAccumulator(): FinalBlobAccumulator;
154
117
  }
155
- //# sourceMappingURL=blob_batching.d.ts.map
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvYl9iYXRjaGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Jsb2JfYmF0Y2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFakMsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSTlHOzs7R0FHRztBQUNILHFCQUFhLHNCQUFzQjtJQUUvQiw4Q0FBOEM7YUFDOUIsc0JBQXNCLEVBQUUsRUFBRTtJQUMxQyxzRUFBc0U7YUFDdEQsSUFBSSxFQUFFLEVBQUU7SUFDeEIseUdBQXlHO2FBQ3pGLElBQUksRUFBRSxPQUFPO0lBQzdCLHFHQUFxRzthQUNyRixJQUFJLEVBQUUsVUFBVTtJQUNoQyxvR0FBb0c7YUFDcEYsSUFBSSxFQUFFLFVBQVU7SUFDaEM7Ozs7T0FJRzthQUNhLFFBQVEsRUFBRSxFQUFFO0lBQzVCLHVHQUF1RzthQUN2RixRQUFRLEVBQUUsT0FBTztJQUNqQyxvR0FBb0c7YUFDcEYsbUJBQW1CLEVBQUUsMkJBQTJCO0lBcEJsRTtJQUNFLDhDQUE4QztJQUM5QixzQkFBc0IsRUFBRSxFQUFFO0lBQzFDLHNFQUFzRTtJQUN0RCxJQUFJLEVBQUUsRUFBRTtJQUN4Qix5R0FBeUc7SUFDekYsSUFBSSxFQUFFLE9BQU87SUFDN0IscUdBQXFHO0lBQ3JGLElBQUksRUFBRSxVQUFVO0lBQ2hDLG9HQUFvRztJQUNwRixJQUFJLEVBQUUsVUFBVTtJQUNoQzs7OztPQUlHO0lBQ2EsUUFBUSxFQUFFLEVBQUU7SUFDNUIsdUdBQXVHO0lBQ3ZGLFFBQVEsRUFBRSxPQUFPO0lBQ2pDLG9HQUFvRztJQUNwRixtQkFBbUIsRUFBRSwyQkFBMkIsRUFDOUQ7SUFFSjs7O09BR0c7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUUsMkJBQTJCLEdBQUcsc0JBQXNCLENBV2pHO0lBRUQ7Ozs7T0FJRztJQUNILE9BQWEsY0FBYyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBRzVGO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsT0FBYSxLQUFLLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLFVBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBZTdGO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxPQUFhLCtCQUErQixDQUFDLHVCQUF1QixFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBbUNsSDtJQUVEOzs7O09BSUc7SUFDRyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsRUFBRSxtQ0F1Q2xEO0lBRUQ7Ozs7O09BS0c7SUFDRyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLG1DQWtCdEM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0csUUFBUSxDQUFDLFdBQVcsVUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FzQnhEO0lBRUQsTUFBTSxZQU9MO0lBRUQsWUFBWSxZQVVYO0lBRUQsS0FBSywyQkFXSjtJQUVELGlCQUFpQixvQkFTaEI7SUFFRCxzQkFBc0IseUJBRXJCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"blob_batching.d.ts","sourceRoot":"","sources":["../src/blob_batching.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAI9G;;GAEG;AACH,qBAAa,WAAW;IAEpB,8CAA8C;aAC9B,mBAAmB,EAAE,EAAE;IACvC,gDAAgD;aAChC,CAAC,EAAE,EAAE;IACrB,mFAAmF;aACnE,CAAC,EAAE,OAAO;IAC1B,kFAAkF;aAClE,UAAU,EAAE,UAAU;IACtC,4HAA4H;aAC5G,CAAC,EAAE,UAAU;;IAT7B,8CAA8C;IAC9B,mBAAmB,EAAE,EAAE;IACvC,gDAAgD;IAChC,CAAC,EAAE,EAAE;IACrB,mFAAmF;IACnE,CAAC,EAAE,OAAO;IAC1B,kFAAkF;IAClE,UAAU,EAAE,UAAU;IACtC,4HAA4H;IAC5G,CAAC,EAAE,UAAU;IAG/B;;;;;;OAMG;WACU,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAgBzD;;;;OAIG;WACU,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAK7E;;;;;;;;;;;OAWG;WACU,+BAA+B,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAmCnG,MAAM;IAKN,uBAAuB,IAAI,MAAM;IAIjC;;;;;;;;;;OAUG;IACH,0BAA0B,IAAI,KAAK,MAAM,EAAE;IAW3C,sBAAsB;CAGvB;AAED;;GAEG;AACH,qBAAa,sBAAsB;IAE/B,8CAA8C;aAC9B,sBAAsB,EAAE,EAAE;IAC1C,sEAAsE;aACtD,IAAI,EAAE,EAAE;IACxB,yGAAyG;aACzF,IAAI,EAAE,OAAO;IAC7B,qGAAqG;aACrF,IAAI,EAAE,UAAU;IAChC,oGAAoG;aACpF,IAAI,EAAE,UAAU;IAChC;;;;OAIG;aACa,QAAQ,EAAE,EAAE;IAC5B,uGAAuG;aACvF,QAAQ,EAAE,OAAO;IACjC,oGAAoG;aACpF,mBAAmB,EAAE,2BAA2B;;IAnBhE,8CAA8C;IAC9B,sBAAsB,EAAE,EAAE;IAC1C,sEAAsE;IACtD,IAAI,EAAE,EAAE;IACxB,yGAAyG;IACzF,IAAI,EAAE,OAAO;IAC7B,qGAAqG;IACrF,IAAI,EAAE,UAAU;IAChC,oGAAoG;IACpF,IAAI,EAAE,UAAU;IAChC;;;;OAIG;IACa,QAAQ,EAAE,EAAE;IAC5B,uGAAuG;IACvF,QAAQ,EAAE,OAAO;IACjC,oGAAoG;IACpF,mBAAmB,EAAE,2BAA2B;IAGlE;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,2BAA2B,GAAG,sBAAsB;IAalG;;;;OAIG;YACW,UAAU;IAyCxB;;;;;OAKG;IACG,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE;IAkBnC;;;;;;;;;;;;;OAaG;IACG,QAAQ,CAAC,WAAW,UAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;IAwBzD,YAAY;IAYZ,KAAK;IAaL,iBAAiB;IAWjB,sBAAsB;CAGvB"}
1
+ {"version":3,"file":"blob_batching.d.ts","sourceRoot":"","sources":["../src/blob_batching.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAI9G;;;GAGG;AACH,qBAAa,sBAAsB;IAE/B,8CAA8C;aAC9B,sBAAsB,EAAE,EAAE;IAC1C,sEAAsE;aACtD,IAAI,EAAE,EAAE;IACxB,yGAAyG;aACzF,IAAI,EAAE,OAAO;IAC7B,qGAAqG;aACrF,IAAI,EAAE,UAAU;IAChC,oGAAoG;aACpF,IAAI,EAAE,UAAU;IAChC;;;;OAIG;aACa,QAAQ,EAAE,EAAE;IAC5B,uGAAuG;aACvF,QAAQ,EAAE,OAAO;IACjC,oGAAoG;aACpF,mBAAmB,EAAE,2BAA2B;IApBlE;IACE,8CAA8C;IAC9B,sBAAsB,EAAE,EAAE;IAC1C,sEAAsE;IACtD,IAAI,EAAE,EAAE;IACxB,yGAAyG;IACzF,IAAI,EAAE,OAAO;IAC7B,qGAAqG;IACrF,IAAI,EAAE,UAAU;IAChC,oGAAoG;IACpF,IAAI,EAAE,UAAU;IAChC;;;;OAIG;IACa,QAAQ,EAAE,EAAE;IAC5B,uGAAuG;IACvF,QAAQ,EAAE,OAAO;IACjC,oGAAoG;IACpF,mBAAmB,EAAE,2BAA2B,EAC9D;IAEJ;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,2BAA2B,GAAG,sBAAsB,CAWjG;IAED;;;;OAIG;IACH,OAAa,cAAc,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAG5F;IAED;;;;;;OAMG;IACH,OAAa,KAAK,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,UAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAe7F;IAED;;;;;;;;;;;OAWG;IACH,OAAa,+BAA+B,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAmClH;IAED;;;;OAIG;IACG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,mCAuClD;IAED;;;;;OAKG;IACG,gBAAgB,CAAC,UAAU,EAAE,EAAE,EAAE,mCAkBtC;IAED;;;;;;;;;;;;;OAaG;IACG,QAAQ,CAAC,WAAW,UAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAsBxD;IAED,MAAM,YAOL;IAED,YAAY,YAUX;IAED,KAAK,2BAWJ;IAED,iBAAiB,oBAShB;IAED,sBAAsB,yBAErB;CACF"}