@@ -17,6 +17,10 @@ fn ssz_blob_to_crypto_blob<E: EthSpec>(blob: &Blob<E>) -> Result<KzgBlob, KzgErr
1717 KzgBlob :: from_bytes ( blob. as_ref ( ) ) . map_err ( Into :: into)
1818}
1919
20+ fn ssz_blob_to_crypto_blob_boxed < E : EthSpec > ( blob : & Blob < E > ) -> Result < Box < KzgBlob > , KzgError > {
21+ ssz_blob_to_crypto_blob :: < E > ( blob) . map ( Box :: new)
22+ }
23+
2024/// Converts a cell ssz List object to an array to be used with the kzg
2125/// crypto library.
2226fn ssz_cell_to_crypto_cell < E : EthSpec > ( cell : & Cell < E > ) -> Result < KzgCellRef , KzgError > {
@@ -34,7 +38,7 @@ pub fn validate_blob<E: EthSpec>(
3438 kzg_proof : KzgProof ,
3539) -> Result < ( ) , KzgError > {
3640 let _timer = crate :: metrics:: start_timer ( & crate :: metrics:: KZG_VERIFICATION_SINGLE_TIMES ) ;
37- let kzg_blob = ssz_blob_to_crypto_blob :: < E > ( blob) ?;
41+ let kzg_blob = ssz_blob_to_crypto_blob_boxed :: < E > ( blob) ?;
3842 kzg. verify_blob_kzg_proof ( & kzg_blob, kzg_commitment, kzg_proof)
3943}
4044
@@ -104,7 +108,7 @@ pub fn compute_blob_kzg_proof<E: EthSpec>(
104108 blob : & Blob < E > ,
105109 kzg_commitment : KzgCommitment ,
106110) -> Result < KzgProof , KzgError > {
107- let kzg_blob = ssz_blob_to_crypto_blob :: < E > ( blob) ?;
111+ let kzg_blob = ssz_blob_to_crypto_blob_boxed :: < E > ( blob) ?;
108112 kzg. compute_blob_kzg_proof ( & kzg_blob, kzg_commitment)
109113}
110114
@@ -113,7 +117,7 @@ pub fn blob_to_kzg_commitment<E: EthSpec>(
113117 kzg : & Kzg ,
114118 blob : & Blob < E > ,
115119) -> Result < KzgCommitment , KzgError > {
116- let kzg_blob = ssz_blob_to_crypto_blob :: < E > ( blob) ?;
120+ let kzg_blob = ssz_blob_to_crypto_blob_boxed :: < E > ( blob) ?;
117121 kzg. blob_to_kzg_commitment ( & kzg_blob)
118122}
119123
@@ -124,7 +128,7 @@ pub fn compute_kzg_proof<E: EthSpec>(
124128 z : Hash256 ,
125129) -> Result < ( KzgProof , Hash256 ) , KzgError > {
126130 let z = z. 0 . into ( ) ;
127- let kzg_blob = ssz_blob_to_crypto_blob :: < E > ( blob) ?;
131+ let kzg_blob = ssz_blob_to_crypto_blob_boxed :: < E > ( blob) ?;
128132 kzg. compute_kzg_proof ( & kzg_blob, & z)
129133 . map ( |( proof, z) | ( proof, Hash256 :: from_slice ( & z. to_vec ( ) ) ) )
130134}
0 commit comments