@@ -104,7 +104,15 @@ function srsPerField(f: 'fp' | 'fq', wasm: Wasm, conversion: RustConversion) {
104104 let maybeLagrangeCommitment = ( srs : WasmSrs , domain_size : number , i : number ) => {
105105 try {
106106 console . log ( 3 ) ;
107- return wasm [ `caml_${ f } _srs_maybe_lagrange_commitment` ] ( srs , domain_size , i ) ;
107+ console . log ( 'srs' , srs ) ;
108+ let bytes = ( wasm as any ) [ `caml_${ f } _srs_to_bytes_external` ] ( srs ) ;
109+ console . log ( 'bytes' , bytes ) ;
110+ let wasmSrs = undefined ;
111+ if ( f === 'fp' ) wasmSrs = wasm . WasmFpSrs . deserialize ( bytes ) ;
112+ else wasmSrs = wasm . WasmFqSrs . deserialize ( bytes ) ;
113+ let s = wasm [ `caml_${ f } _srs_maybe_lagrange_commitment` ] ( wasmSrs , domain_size , i ) ;
114+ console . log ( 'S' , s ) ;
115+ return s ;
108116 } catch ( error ) {
109117 console . error ( `Error in SRS maybe lagrange commitment for field ${ f } ` ) ;
110118 throw error ;
@@ -113,7 +121,13 @@ function srsPerField(f: 'fp' | 'fq', wasm: Wasm, conversion: RustConversion) {
113121 let lagrangeCommitment = ( srs : WasmSrs , domain_size : number , i : number ) => {
114122 try {
115123 console . log ( 4 ) ;
116- return wasm [ `caml_${ f } _srs_lagrange_commitment` ] ( srs , domain_size , i ) ;
124+ console . log ( 'srs' , srs ) ;
125+ let bytes = ( wasm as any ) [ `caml_${ f } _srs_to_bytes_external` ] ( srs ) ;
126+ console . log ( 'bytes' , bytes ) ;
127+ let wasmSrs = undefined ;
128+ if ( f === 'fp' ) wasmSrs = wasm . WasmFpSrs . deserialize ( bytes ) ;
129+ else wasmSrs = wasm . WasmFqSrs . deserialize ( bytes ) ;
130+ return wasm [ `caml_${ f } _srs_lagrange_commitment` ] ( wasmSrs , domain_size , i ) ;
117131 } catch ( error ) {
118132 console . error ( `Error in SRS lagrange commitment for field ${ f } ` ) ;
119133 throw error ;
@@ -122,7 +136,13 @@ function srsPerField(f: 'fp' | 'fq', wasm: Wasm, conversion: RustConversion) {
122136 let lagrangeCommitmentsWholeDomainPtr = ( srs : WasmSrs , domain_size : number ) => {
123137 try {
124138 console . log ( 5 ) ;
125- return wasm [ `caml_${ f } _srs_lagrange_commitments_whole_domain_ptr` ] ( srs , domain_size ) ;
139+ console . log ( 'srs' , srs ) ;
140+ let bytes = ( wasm as any ) [ `caml_${ f } _srs_to_bytes_external` ] ( srs ) ;
141+ console . log ( 'bytes' , bytes ) ;
142+ let wasmSrs = undefined ;
143+ if ( f === 'fp' ) wasmSrs = wasm . WasmFpSrs . deserialize ( bytes ) ;
144+ else wasmSrs = wasm . WasmFqSrs . deserialize ( bytes ) ;
145+ return wasm [ `caml_${ f } _srs_lagrange_commitments_whole_domain_ptr` ] ( wasmSrs , domain_size ) ;
126146 } catch ( error ) {
127147 console . error ( `Error in SRS lagrange commitments whole domain ptr for field ${ f } ` ) ;
128148 throw error ;
@@ -140,7 +160,13 @@ function srsPerField(f: 'fp' | 'fq', wasm: Wasm, conversion: RustConversion) {
140160 let getLagrangeBasis = ( srs : WasmSrs , n : number ) => {
141161 try {
142162 console . log ( 7 ) ;
143- return wasm [ `caml_${ f } _srs_get_lagrange_basis` ] ( srs , n ) ;
163+ console . log ( 'srs' , srs ) ;
164+ let bytes = ( wasm as any ) [ `caml_${ f } _srs_to_bytes_external` ] ( srs ) ;
165+ console . log ( 'bytes' , bytes ) ;
166+ let wasmSrs = undefined ;
167+ if ( f === 'fp' ) wasmSrs = wasm . WasmFpSrs . deserialize ( bytes ) ;
168+ else wasmSrs = wasm . WasmFqSrs . deserialize ( bytes ) ;
169+ return wasm [ `caml_${ f } _srs_get_lagrange_basis` ] ( wasmSrs , n ) ;
144170 } catch ( error ) {
145171 console . error ( `Error in SRS get lagrange basis for field ${ f } ` ) ;
146172 throw error ;
@@ -241,7 +267,9 @@ function srsPerField(f: 'fp' | 'fq', wasm: Wasm, conversion: RustConversion) {
241267 // TODO: this code path will throw on the web since `caml_${f}_srs_get_lagrange_basis` is not properly implemented
242268 // using a writable cache in the browser seems to be fairly uncommon though, so it's at least an 80/20 solution
243269 let wasmComms = getLagrangeBasis ( srs , domainSize ) ;
270+ console . log ( 'wasmComms' , wasmComms ) ;
244271 let mlComms = conversion [ f ] . polyCommsFromRust ( wasmComms ) ;
272+ console . log ( 'mlComms' , mlComms ) ;
245273 let comms = polyCommsToJSON ( mlComms ) ;
246274 let bytes = new TextEncoder ( ) . encode ( JSON . stringify ( comms ) ) ;
247275 writeCache ( cache , header , bytes ) ;
0 commit comments