@corpus-core/colibri-stateless 1.1.14 → 1.1.17

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/c4w.js CHANGED
@@ -5,7 +5,7 @@ var c4w = (() => {
5
5
  async function(moduleArg = {}) {
6
6
  var moduleRtn;
7
7
 
8
- var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.slice(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;wasmExports["r"]()}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}var runDependencies=0;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module["locateFile"]){return locateFile("c4w.wasm")}return new URL("c4w.wasm",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){return{a:wasmImports}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["q"];updateMemoryViews();removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(mod,inst)=>{receiveInstance(mod,inst);resolve(mod.exports)})})}wasmBinaryFile??=findWasmBinary();try{var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}catch(e){readyPromiseReject(e);return Promise.reject(e)}}var ASM_CONSTS={168140:($0,$1)=>{var keyStr=UTF8ToString($0);var data=Module.storage.get(keyStr);if(data){var bufferPtr=_c4w_buffer_alloc($1,data.length);HEAPU8.set(data,bufferPtr);return 1}return 0},168328:($0,$1,$2)=>{var keyStr=UTF8ToString($0);var array=new Uint8Array($2);array.set(HEAPU8.subarray($1,$1+$2));Module.storage.set(keyStr,array)},168471:$0=>{var keyStr=UTF8ToString($0);Module.storage.del(keyStr)}};class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.unshift(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.unshift(cb);var noExitRuntime=Module["noExitRuntime"]||true;var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]);class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var SYSCALLS={varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;return 0}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;return 0}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs}var __abort_js=()=>abort("");var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==106?HEAP64[buf>>3]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i<str.length;++i){HEAP8[buffer++]=str.charCodeAt(i)}HEAP8[buffer]=0};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var _fd_close=fd=>52;var _fd_read=(fd,iov,iovcnt,pnum)=>52;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);return 70}var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer));buffer.length=0}else{buffer.push(curr)}};var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j<len;j++){printChar(fd,HEAPU8[ptr+j])}num+=len}HEAPU32[pnum>>2]=num;return 0};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func(...cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var wasmImports={a:___assert_fail,b:___cxa_throw,g:___syscall_fcntl64,i:___syscall_ioctl,j:___syscall_openat,l:__abort_js,k:__tzset_js,d:_emscripten_asm_const_int,m:_emscripten_resize_heap,o:_environ_get,p:_environ_sizes_get,c:_exit,e:_fd_close,h:_fd_read,n:_fd_seek,f:_fd_write};var wasmExports=await createWasm();var ___wasm_call_ctors=wasmExports["r"];var _c4w_create_proof_ctx=Module["_c4w_create_proof_ctx"]=wasmExports["s"];var _c4w_free_proof_ctx=Module["_c4w_free_proof_ctx"]=wasmExports["t"];var _c4w_execute_proof_ctx=Module["_c4w_execute_proof_ctx"]=wasmExports["u"];var _c4w_req_set_response=Module["_c4w_req_set_response"]=wasmExports["v"];var _c4w_req_set_error=Module["_c4w_req_set_error"]=wasmExports["w"];var _c4w_create_verify_ctx=Module["_c4w_create_verify_ctx"]=wasmExports["x"];var _c4w_free_verify_ctx=Module["_c4w_free_verify_ctx"]=wasmExports["y"];var _free=Module["_free"]=wasmExports["z"];var _c4w_get_method_type=Module["_c4w_get_method_type"]=wasmExports["A"];var _c4w_verify_proof=Module["_c4w_verify_proof"]=wasmExports["B"];var _c4w_decode_proof=Module["_c4w_decode_proof"]=wasmExports["C"];var _c4w_req_free=Module["_c4w_req_free"]=wasmExports["D"];var _c4w_buffer_alloc=Module["_c4w_buffer_alloc"]=wasmExports["E"];var _init_storage=Module["_init_storage"]=wasmExports["F"];var _malloc=Module["_malloc"]=wasmExports["H"];var __emscripten_stack_restore=wasmExports["I"];var __emscripten_stack_alloc=wasmExports["J"];var _emscripten_stack_get_current=wasmExports["K"];Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise;
8
+ var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.slice(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;wasmExports["r"]()}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}var runDependencies=0;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module["locateFile"]){return locateFile("c4w.wasm")}return new URL("c4w.wasm",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){return{a:wasmImports}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["q"];updateMemoryViews();removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(mod,inst)=>{receiveInstance(mod,inst);resolve(mod.exports)})})}wasmBinaryFile??=findWasmBinary();try{var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}catch(e){readyPromiseReject(e);return Promise.reject(e)}}var ASM_CONSTS={168796:($0,$1)=>{var keyStr=UTF8ToString($0);var data=Module.storage.get(keyStr);if(data){var bufferPtr=_c4w_buffer_alloc($1,data.length);HEAPU8.set(data,bufferPtr);return 1}return 0},168984:($0,$1,$2)=>{var keyStr=UTF8ToString($0);var array=new Uint8Array($2);array.set(HEAPU8.subarray($1,$1+$2));Module.storage.set(keyStr,array)},169127:$0=>{var keyStr=UTF8ToString($0);Module.storage.del(keyStr)}};class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.unshift(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.unshift(cb);var noExitRuntime=Module["noExitRuntime"]||true;var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]);class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var SYSCALLS={varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;return 0}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;return 0}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs}var __abort_js=()=>abort("");var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==106?HEAP64[buf>>3]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i<str.length;++i){HEAP8[buffer++]=str.charCodeAt(i)}HEAP8[buffer]=0};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var _fd_close=fd=>52;var _fd_read=(fd,iov,iovcnt,pnum)=>52;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);return 70}var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer));buffer.length=0}else{buffer.push(curr)}};var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j<len;j++){printChar(fd,HEAPU8[ptr+j])}num+=len}HEAPU32[pnum>>2]=num;return 0};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func(...cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var wasmImports={a:___assert_fail,b:___cxa_throw,g:___syscall_fcntl64,i:___syscall_ioctl,j:___syscall_openat,l:__abort_js,k:__tzset_js,d:_emscripten_asm_const_int,m:_emscripten_resize_heap,o:_environ_get,p:_environ_sizes_get,c:_exit,e:_fd_close,h:_fd_read,n:_fd_seek,f:_fd_write};var wasmExports=await createWasm();var ___wasm_call_ctors=wasmExports["r"];var _c4w_create_proof_ctx=Module["_c4w_create_proof_ctx"]=wasmExports["s"];var _c4w_free_proof_ctx=Module["_c4w_free_proof_ctx"]=wasmExports["t"];var _c4w_execute_proof_ctx=Module["_c4w_execute_proof_ctx"]=wasmExports["u"];var _c4w_req_set_response=Module["_c4w_req_set_response"]=wasmExports["v"];var _c4w_req_set_error=Module["_c4w_req_set_error"]=wasmExports["w"];var _c4w_create_verify_ctx=Module["_c4w_create_verify_ctx"]=wasmExports["x"];var _c4w_free_verify_ctx=Module["_c4w_free_verify_ctx"]=wasmExports["y"];var _free=Module["_free"]=wasmExports["z"];var _c4w_verify_proof=Module["_c4w_verify_proof"]=wasmExports["A"];var _c4w_get_method_type=Module["_c4w_get_method_type"]=wasmExports["B"];var _c4w_create_rpc_ctx=Module["_c4w_create_rpc_ctx"]=wasmExports["C"];var _c4w_execute_rpc_ctx=Module["_c4w_execute_rpc_ctx"]=wasmExports["D"];var _c4w_free_rpc_ctx=Module["_c4w_free_rpc_ctx"]=wasmExports["E"];var _c4w_set_checkpoint=Module["_c4w_set_checkpoint"]=wasmExports["F"];var _c4w_rpc_ctx_set_witness_keys=Module["_c4w_rpc_ctx_set_witness_keys"]=wasmExports["G"];var _c4w_decode_proof=Module["_c4w_decode_proof"]=wasmExports["H"];var _c4w_req_free=Module["_c4w_req_free"]=wasmExports["I"];var _c4w_buffer_alloc=Module["_c4w_buffer_alloc"]=wasmExports["J"];var _init_storage=Module["_init_storage"]=wasmExports["K"];var _c4w_get_current_version_number=Module["_c4w_get_current_version_number"]=wasmExports["L"];var _malloc=Module["_malloc"]=wasmExports["N"];var __emscripten_stack_restore=wasmExports["O"];var __emscripten_stack_alloc=wasmExports["P"];var _emscripten_stack_get_current=wasmExports["Q"];Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise;
9
9
 
10
10
 
11
11
  return moduleRtn;
package/c4w.wasm CHANGED
Binary file
package/chains.js CHANGED
@@ -23,8 +23,8 @@
23
23
  export const default_config = {
24
24
  '1': {
25
25
  alias: ["mainnet", "eth", "0x1"],
26
- beacon_apis: ["https://lodestar-mainnet.chainsafe.io"],
27
- rpcs: ["https://rpc.ankr.com/eth"],
26
+ rpcs: ["https://mainnet1.colibri-proof.tech/execution"],
27
+ beacon_apis: ["https://mainnet1.colibri-proof.tech/consensus/"],
28
28
  prover: ["https://mainnet1.colibri-proof.tech"],
29
29
  checkpointz: [], //"https://sync-mainnet.beaconcha.in", "https://beaconstate.info", "https://sync.invis.tools", "https://beaconstate.ethstaker.cc"],
30
30
  pollingInterval: 12000,
package/cjs/chains.js CHANGED
@@ -28,8 +28,8 @@ exports.chain_conf = chain_conf;
28
28
  exports.default_config = {
29
29
  '1': {
30
30
  alias: ["mainnet", "eth", "0x1"],
31
- beacon_apis: ["https://lodestar-mainnet.chainsafe.io"],
32
- rpcs: ["https://rpc.ankr.com/eth"],
31
+ rpcs: ["https://mainnet1.colibri-proof.tech/execution"],
32
+ beacon_apis: ["https://mainnet1.colibri-proof.tech/consensus/"],
33
33
  prover: ["https://mainnet1.colibri-proof.tech"],
34
34
  checkpointz: [], //"https://sync-mainnet.beaconcha.in", "https://beaconstate.info", "https://sync.invis.tools", "https://beaconstate.ethstaker.cc"],
35
35
  pollingInterval: 12000,
package/cjs/index.js CHANGED
@@ -44,16 +44,6 @@ Object.defineProperty(exports, "decode_proof", { enumerable: true, get: function
44
44
  var transactionVerifier_js_2 = require("./transactionVerifier.js");
45
45
  Object.defineProperty(exports, "TransactionVerifier", { enumerable: true, get: function () { return transactionVerifier_js_2.TransactionVerifier; } });
46
46
  Object.defineProperty(exports, "PrototypeProtection", { enumerable: true, get: function () { return transactionVerifier_js_2.PrototypeProtection; } });
47
- // fetch_rpc und handle_request sind nach http.ts verschoben
48
- // default_config, get_chain_id, chain_conf ausgelagert nach ./chains.ts
49
- function cleanup_args(method, args) {
50
- if (method == "eth_verifyLogs")
51
- return args.map(arg => ({
52
- transactionIndex: arg.transactionIndex,
53
- blockNumber: arg.blockNumber
54
- }));
55
- return args;
56
- }
57
47
  class C4Client {
58
48
  /**
59
49
  * Creates a new Colibri client instance.
@@ -68,7 +58,6 @@ class C4Client {
68
58
  * @param config Optional partial configuration; user config overrides defaults.
69
59
  */
70
60
  constructor(config) {
71
- this.initMap = new Map();
72
61
  this.flags = 0;
73
62
  this.verify_flags = 0;
74
63
  const chainId = config?.chainId ? (0, chains_js_1.get_chain_id)(config?.chainId + '') : 1;
@@ -96,7 +85,7 @@ class C4Client {
96
85
  if (!this.config.warningHandler)
97
86
  this.config.warningHandler = async (req, message) => console.warn(message);
98
87
  if (!this.config.proofStrategy)
99
- this.config.proofStrategy = strategy_js_1.default.VerifyIfPossible;
88
+ this.config.proofStrategy = strategy_js_1.default.WarningWithFallback;
100
89
  this.eventEmitter = new eventEmitter_js_1.EventEmitter();
101
90
  this.connectionState = new connectionState_js_1.ConnectionState({ chainId: parseInt(this.config.chainId + ''), debug: this.config.debug }, async () => this.rpc('eth_chainId', [], types_js_1.MethodType.LOCAL), // specific callback to detect chainId
102
91
  this.eventEmitter);
@@ -105,29 +94,6 @@ class C4Client {
105
94
  pollingInterval: this.config.pollingInterval || (0, chains_js_1.chain_conf)(this.config, this.config.chainId)?.pollingInterval || 12000
106
95
  });
107
96
  }
108
- // Prover config helpers are moved to wasm.ts (get_prover_config_hex)
109
- async fetch_checkpointz() {
110
- let checkpoint = undefined;
111
- for (const url of [...(this.config.checkpointz || []), ...(this.config.beacon_apis || []), ...(this.config.prover || [])]) {
112
- const response = await fetch(url + (url.endsWith('/') ? '' : '/') + 'eth/v1/beacon/states/head/finality_checkpoints', {
113
- method: 'GET',
114
- headers: {
115
- "Content-Type": "application/json"
116
- }
117
- });
118
- if (response.ok) {
119
- const res = await response.json();
120
- checkpoint = res?.data?.finalized?.root;
121
- if (checkpoint)
122
- break;
123
- }
124
- }
125
- if (!checkpoint)
126
- throw new Error('No checkpoint found');
127
- this.config.trusted_checkpoint = checkpoint;
128
- // set trusted checkpoint in C state so we can use it in proof calls immediately
129
- await (0, wasm_js_1.set_trusted_checkpoint)(this.config.chainId, checkpoint);
130
- }
131
97
  /**
132
98
  * Checks whether the RPC method is supported or proofable.
133
99
  * @param method - The method to check
@@ -162,7 +128,7 @@ class C4Client {
162
128
  return (0, wasm_js_1.as_bytes)(state.result, state.result_len, c4w);
163
129
  case "error":
164
130
  throw new Error(state.error);
165
- case "waiting": {
131
+ case "pending": {
166
132
  await Promise.all(state.requests.map((req) => (0, http_js_1.handle_request)(req, this.config)));
167
133
  break;
168
134
  }
@@ -202,7 +168,7 @@ class C4Client {
202
168
  return state.result;
203
169
  case "error":
204
170
  throw new Error(state.error);
205
- case "waiting": {
171
+ case "pending": {
206
172
  await Promise.all(state.requests.map((req) => (0, http_js_1.handle_request)(req, this.config)));
207
173
  break;
208
174
  }
@@ -225,45 +191,46 @@ class C4Client {
225
191
  * @returns The result
226
192
  */
227
193
  async rpc(method, args, method_type) {
228
- // eth_subscribe and eth_unsubscribe are handled by C4Client.request before this method is called.
229
- // This rpc method is for the underlying data fetching/proving.
230
- if (!this.initMap.get(this.config.chainId)) {
231
- this.initMap.set(this.config.chainId, true);
232
- if (!this.config.zk_proof && this.config.checkpointz && this.config.checkpointz.length > 0 && !this.config.trusted_checkpoint && (await (0, wasm_js_1.get_prover_config_hex)(this.config.chainId)).length == 2)
233
- await this.fetch_checkpointz();
234
- }
235
- // Special handling for eth_sendTransaction with verification
194
+ // eth_sendTransaction stays in bindings (requires fallback_provider interaction)
236
195
  if (method === 'eth_sendTransaction' && this.config.verifyTransactions) {
237
196
  return await transactionVerifier_js_1.TransactionVerifier.verifyAndSendTransaction(args[0], this.config, (method, args, methodType) => this.rpc(method, args, methodType), http_js_1.fetch_rpc);
238
197
  }
198
+ // Allow host to skip verification for specific calls
239
199
  if (method_type === undefined)
240
200
  method_type = await this.getMethodSupport(method, args);
241
- switch (method_type) {
242
- case types_js_1.MethodType.PROOFABLE: {
243
- if (this.config.verify && !this.config.verify(method, args)) {
244
- // skip verification and fetch directly
245
- return await (0, http_js_1.fetch_rpc)(this.config.rpcs, { method, params: args }, false);
201
+ if (method_type === types_js_1.MethodType.PROOFABLE && this.config.verify && !this.config.verify(method, args))
202
+ return await (0, http_js_1.fetch_rpc)(this.config.rpcs, { method, params: args }, false);
203
+ const c4w = await (0, wasm_js_1.getC4w)();
204
+ const free_buffers = [];
205
+ let ctx = 0;
206
+ try {
207
+ const use_remote_prover = (method_type === types_js_1.MethodType.PROOFABLE && this.config.prover?.length) ? 1 : 0;
208
+ let prover_flags = this.flags;
209
+ if (this.config.zk_proof)
210
+ prover_flags |= (1 << 7);
211
+ ctx = c4w._c4w_create_rpc_ctx((0, wasm_js_1.as_char_ptr)(method, c4w, free_buffers), (0, wasm_js_1.as_char_ptr)(JSON.stringify(args || []), c4w, free_buffers), BigInt(this.config.chainId), prover_flags, this.verify_flags, use_remote_prover);
212
+ if (this.config.trusted_checkpoint)
213
+ c4w._c4w_set_checkpoint(BigInt(this.config.chainId), (0, wasm_js_1.as_char_ptr)(this.config.trusted_checkpoint, c4w, free_buffers));
214
+ if (this.config.checkpoint_witness_keys)
215
+ c4w._c4w_rpc_ctx_set_witness_keys(ctx, (0, wasm_js_1.as_char_ptr)(this.config.checkpoint_witness_keys, c4w, free_buffers));
216
+ while (true) {
217
+ const state = (0, wasm_js_1.as_json)(c4w._c4w_execute_rpc_ctx(ctx), c4w, true);
218
+ switch (state.status) {
219
+ case "success":
220
+ return state.result;
221
+ case "error":
222
+ throw new Error(state.error);
223
+ case "pending":
224
+ await Promise.all(state.requests.map((req) => (0, http_js_1.handle_request)(req, this.config)));
225
+ break;
246
226
  }
247
- const proof = this.config.prover && this.config.prover.length
248
- ? await (0, http_js_1.fetch_rpc)(this.config.prover, {
249
- method,
250
- params: cleanup_args(method, args),
251
- c4: await (0, wasm_js_1.get_prover_config_hex)(this.config.chainId),
252
- zk_proof: !!this.config.zk_proof,
253
- signers: this.config.checkpoint_witness_keys || '0x'
254
- }, true)
255
- : await this.createProof(method, args);
256
- return this.verifyProof(method, args, proof);
257
227
  }
258
- case types_js_1.MethodType.UNPROOFABLE:
259
- return await (0, http_js_1.fetch_rpc)(this.config.rpcs, { method, params: args }, false);
260
- case types_js_1.MethodType.NOT_SUPPORTED:
261
- throw new types_js_1.ProviderRpcError(4200, `Method ${method} is not supported by C4Client.rpc core`);
262
- case types_js_1.MethodType.LOCAL:
263
- return this.verifyProof(method, args, new Uint8Array());
264
228
  }
265
- // Should be unreachable if MethodType enum is comprehensive and handled
266
- throw new types_js_1.ProviderRpcError(-32603, `Internal error: Unhandled method type for ${method} in C4Client.rpc core`);
229
+ finally {
230
+ free_buffers.forEach(ptr => c4w._free(ptr));
231
+ if (ctx)
232
+ c4w._c4w_free_rpc_ctx(ctx);
233
+ }
267
234
  }
268
235
  static async register_storage(storage) {
269
236
  const c4w = await (0, wasm_js_1.getC4w)();
package/cjs/strategy.js CHANGED
@@ -93,17 +93,13 @@ async function WarningStrategy(client, req, config, fetch_rpc) {
93
93
  case types_js_1.MethodType.NOT_SUPPORTED:
94
94
  return fetch_unverified_rpc(config, req, fetch_rpc);
95
95
  case types_js_1.MethodType.PROOFABLE: {
96
- const [verified_result, unverified_result] = await Promise.all([
97
- client.rpc(req.method, argsToArray(req.params), types_js_1.MethodType.PROOFABLE)
98
- .catch(async (err) => {
96
+ return client.rpc(req.method, argsToArray(req.params), method_type).catch(async (err) => {
97
+ if (config.warningHandler)
99
98
  await config.warningHandler(req, `[Warning] ${req.method} failed to be verfiy: ${err.message}, falling back to Default`);
100
- return undefined;
101
- }),
102
- fetch_unverified_rpc(config, req, fetch_rpc)
103
- ]);
104
- if (verified_result !== undefined && !deepEqual(verified_result, unverified_result))
105
- await config.warningHandler(req, `[Warning] ${req.method} does not match the rpc-result`);
106
- return unverified_result;
99
+ else
100
+ console.warn(`[Warning] ${req.method} failed to be verfiy: ${err.message}, falling back to Default`);
101
+ return fetch_unverified_rpc(config, req, fetch_rpc);
102
+ });
107
103
  }
108
104
  }
109
105
  }
@@ -208,7 +208,7 @@ function createC4wApi(options) {
208
208
  async function set_trusted_checkpoint(chainId, checkpoint) {
209
209
  const c4w = await getC4w();
210
210
  const free_buffers = [];
211
- c4w._c4w_create_verify_ctx(0, 0, 0, 0, BigInt(chainId), as_char_ptr(checkpoint, c4w, free_buffers), 0, 0);
211
+ c4w._c4w_set_checkpoint(BigInt(chainId), as_char_ptr(checkpoint, c4w, free_buffers));
212
212
  free_buffers.forEach(ptr => c4w._free(ptr));
213
213
  }
214
214
  async function decode_proof(proof) {
package/index.d.ts CHANGED
@@ -33,7 +33,6 @@ export default class C4Client {
33
33
  private eventEmitter;
34
34
  private connectionState;
35
35
  private subscriptionManager;
36
- private initMap;
37
36
  private flags;
38
37
  private verify_flags;
39
38
  private static readonly CRITICAL_METHODS;
@@ -50,7 +49,6 @@ export default class C4Client {
50
49
  * @param config Optional partial configuration; user config overrides defaults.
51
50
  */
52
51
  constructor(config?: Partial<C4Config>);
53
- private fetch_checkpointz;
54
52
  /**
55
53
  * Checks whether the RPC method is supported or proofable.
56
54
  * @param method - The method to check
package/index.js CHANGED
@@ -21,7 +21,7 @@
21
21
  * SPDX-License-Identifier: MIT
22
22
  */
23
23
  // Import the Emscripten-generated module
24
- import { as_bytes, as_char_ptr, as_json, copy_to_c, getC4w, get_prover_config_hex, set_trusted_checkpoint } from "./wasm.js";
24
+ import { as_bytes, as_char_ptr, as_json, copy_to_c, getC4w } from "./wasm.js";
25
25
  import { EventEmitter } from './eventEmitter.js';
26
26
  import { ConnectionState } from './connectionState.js';
27
27
  import { ProviderRpcError, MethodType as C4MethodType } from './types.js';
@@ -37,16 +37,6 @@ export { set_wasm_url, decode_proof } from "./wasm.js";
37
37
  export { ProviderRpcError, C4MethodType as MethodType };
38
38
  // Re-export transaction verification utilities
39
39
  export { TransactionVerifier, PrototypeProtection } from './transactionVerifier.js';
40
- // fetch_rpc und handle_request sind nach http.ts verschoben
41
- // default_config, get_chain_id, chain_conf ausgelagert nach ./chains.ts
42
- function cleanup_args(method, args) {
43
- if (method == "eth_verifyLogs")
44
- return args.map(arg => ({
45
- transactionIndex: arg.transactionIndex,
46
- blockNumber: arg.blockNumber
47
- }));
48
- return args;
49
- }
50
40
  class C4Client {
51
41
  /**
52
42
  * Creates a new Colibri client instance.
@@ -61,7 +51,6 @@ class C4Client {
61
51
  * @param config Optional partial configuration; user config overrides defaults.
62
52
  */
63
53
  constructor(config) {
64
- this.initMap = new Map();
65
54
  this.flags = 0;
66
55
  this.verify_flags = 0;
67
56
  const chainId = config?.chainId ? get_chain_id(config?.chainId + '') : 1;
@@ -89,7 +78,7 @@ class C4Client {
89
78
  if (!this.config.warningHandler)
90
79
  this.config.warningHandler = async (req, message) => console.warn(message);
91
80
  if (!this.config.proofStrategy)
92
- this.config.proofStrategy = Strategy.VerifyIfPossible;
81
+ this.config.proofStrategy = Strategy.WarningWithFallback;
93
82
  this.eventEmitter = new EventEmitter();
94
83
  this.connectionState = new ConnectionState({ chainId: parseInt(this.config.chainId + ''), debug: this.config.debug }, async () => this.rpc('eth_chainId', [], C4MethodType.LOCAL), // specific callback to detect chainId
95
84
  this.eventEmitter);
@@ -98,29 +87,6 @@ class C4Client {
98
87
  pollingInterval: this.config.pollingInterval || chain_conf(this.config, this.config.chainId)?.pollingInterval || 12000
99
88
  });
100
89
  }
101
- // Prover config helpers are moved to wasm.ts (get_prover_config_hex)
102
- async fetch_checkpointz() {
103
- let checkpoint = undefined;
104
- for (const url of [...(this.config.checkpointz || []), ...(this.config.beacon_apis || []), ...(this.config.prover || [])]) {
105
- const response = await fetch(url + (url.endsWith('/') ? '' : '/') + 'eth/v1/beacon/states/head/finality_checkpoints', {
106
- method: 'GET',
107
- headers: {
108
- "Content-Type": "application/json"
109
- }
110
- });
111
- if (response.ok) {
112
- const res = await response.json();
113
- checkpoint = res?.data?.finalized?.root;
114
- if (checkpoint)
115
- break;
116
- }
117
- }
118
- if (!checkpoint)
119
- throw new Error('No checkpoint found');
120
- this.config.trusted_checkpoint = checkpoint;
121
- // set trusted checkpoint in C state so we can use it in proof calls immediately
122
- await set_trusted_checkpoint(this.config.chainId, checkpoint);
123
- }
124
90
  /**
125
91
  * Checks whether the RPC method is supported or proofable.
126
92
  * @param method - The method to check
@@ -155,7 +121,7 @@ class C4Client {
155
121
  return as_bytes(state.result, state.result_len, c4w);
156
122
  case "error":
157
123
  throw new Error(state.error);
158
- case "waiting": {
124
+ case "pending": {
159
125
  await Promise.all(state.requests.map((req) => handle_request(req, this.config)));
160
126
  break;
161
127
  }
@@ -195,7 +161,7 @@ class C4Client {
195
161
  return state.result;
196
162
  case "error":
197
163
  throw new Error(state.error);
198
- case "waiting": {
164
+ case "pending": {
199
165
  await Promise.all(state.requests.map((req) => handle_request(req, this.config)));
200
166
  break;
201
167
  }
@@ -218,45 +184,46 @@ class C4Client {
218
184
  * @returns The result
219
185
  */
220
186
  async rpc(method, args, method_type) {
221
- // eth_subscribe and eth_unsubscribe are handled by C4Client.request before this method is called.
222
- // This rpc method is for the underlying data fetching/proving.
223
- if (!this.initMap.get(this.config.chainId)) {
224
- this.initMap.set(this.config.chainId, true);
225
- if (!this.config.zk_proof && this.config.checkpointz && this.config.checkpointz.length > 0 && !this.config.trusted_checkpoint && (await get_prover_config_hex(this.config.chainId)).length == 2)
226
- await this.fetch_checkpointz();
227
- }
228
- // Special handling for eth_sendTransaction with verification
187
+ // eth_sendTransaction stays in bindings (requires fallback_provider interaction)
229
188
  if (method === 'eth_sendTransaction' && this.config.verifyTransactions) {
230
189
  return await TransactionVerifier.verifyAndSendTransaction(args[0], this.config, (method, args, methodType) => this.rpc(method, args, methodType), fetch_rpc);
231
190
  }
191
+ // Allow host to skip verification for specific calls
232
192
  if (method_type === undefined)
233
193
  method_type = await this.getMethodSupport(method, args);
234
- switch (method_type) {
235
- case C4MethodType.PROOFABLE: {
236
- if (this.config.verify && !this.config.verify(method, args)) {
237
- // skip verification and fetch directly
238
- return await fetch_rpc(this.config.rpcs, { method, params: args }, false);
194
+ if (method_type === C4MethodType.PROOFABLE && this.config.verify && !this.config.verify(method, args))
195
+ return await fetch_rpc(this.config.rpcs, { method, params: args }, false);
196
+ const c4w = await getC4w();
197
+ const free_buffers = [];
198
+ let ctx = 0;
199
+ try {
200
+ const use_remote_prover = (method_type === C4MethodType.PROOFABLE && this.config.prover?.length) ? 1 : 0;
201
+ let prover_flags = this.flags;
202
+ if (this.config.zk_proof)
203
+ prover_flags |= (1 << 7);
204
+ ctx = c4w._c4w_create_rpc_ctx(as_char_ptr(method, c4w, free_buffers), as_char_ptr(JSON.stringify(args || []), c4w, free_buffers), BigInt(this.config.chainId), prover_flags, this.verify_flags, use_remote_prover);
205
+ if (this.config.trusted_checkpoint)
206
+ c4w._c4w_set_checkpoint(BigInt(this.config.chainId), as_char_ptr(this.config.trusted_checkpoint, c4w, free_buffers));
207
+ if (this.config.checkpoint_witness_keys)
208
+ c4w._c4w_rpc_ctx_set_witness_keys(ctx, as_char_ptr(this.config.checkpoint_witness_keys, c4w, free_buffers));
209
+ while (true) {
210
+ const state = as_json(c4w._c4w_execute_rpc_ctx(ctx), c4w, true);
211
+ switch (state.status) {
212
+ case "success":
213
+ return state.result;
214
+ case "error":
215
+ throw new Error(state.error);
216
+ case "pending":
217
+ await Promise.all(state.requests.map((req) => handle_request(req, this.config)));
218
+ break;
239
219
  }
240
- const proof = this.config.prover && this.config.prover.length
241
- ? await fetch_rpc(this.config.prover, {
242
- method,
243
- params: cleanup_args(method, args),
244
- c4: await get_prover_config_hex(this.config.chainId),
245
- zk_proof: !!this.config.zk_proof,
246
- signers: this.config.checkpoint_witness_keys || '0x'
247
- }, true)
248
- : await this.createProof(method, args);
249
- return this.verifyProof(method, args, proof);
250
220
  }
251
- case C4MethodType.UNPROOFABLE:
252
- return await fetch_rpc(this.config.rpcs, { method, params: args }, false);
253
- case C4MethodType.NOT_SUPPORTED:
254
- throw new ProviderRpcError(4200, `Method ${method} is not supported by C4Client.rpc core`);
255
- case C4MethodType.LOCAL:
256
- return this.verifyProof(method, args, new Uint8Array());
257
221
  }
258
- // Should be unreachable if MethodType enum is comprehensive and handled
259
- throw new ProviderRpcError(-32603, `Internal error: Unhandled method type for ${method} in C4Client.rpc core`);
222
+ finally {
223
+ free_buffers.forEach(ptr => c4w._free(ptr));
224
+ if (ctx)
225
+ c4w._c4w_free_rpc_ctx(ctx);
226
+ }
260
227
  }
261
228
  static async register_storage(storage) {
262
229
  const c4w = await getC4w();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@corpus-core/colibri-stateless",
3
- "version": "1.1.14",
3
+ "version": "1.1.17",
4
4
  "description": "Colibri is a stateless and trustless ethereum client, which is optimized for the mobile apps or embedded devices, because it does not hols the state, but verifies on demand.",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -14,7 +14,8 @@
14
14
  },
15
15
  "scripts": {
16
16
  "test": "npm run test:node && npm run test:webpack",
17
- "test:node": "node --test test/*.test.mjs",
17
+ "test:node": "node --test test/rpc.test.mjs test/cjs_bridge.test.mjs",
18
+ "test:integration": "C4_RUN_INTEGRATION=1 node --test test/integration.test.mjs",
18
19
  "test:webpack": "npm run webpack:install && npm run webpack:build",
19
20
  "webpack:install": "cd webpack && npm install --legacy-peer-deps",
20
21
  "webpack:build": "cd webpack && npm run build",
package/strategy.js CHANGED
@@ -91,17 +91,13 @@ async function WarningStrategy(client, req, config, fetch_rpc) {
91
91
  case MethodType.NOT_SUPPORTED:
92
92
  return fetch_unverified_rpc(config, req, fetch_rpc);
93
93
  case MethodType.PROOFABLE: {
94
- const [verified_result, unverified_result] = await Promise.all([
95
- client.rpc(req.method, argsToArray(req.params), MethodType.PROOFABLE)
96
- .catch(async (err) => {
94
+ return client.rpc(req.method, argsToArray(req.params), method_type).catch(async (err) => {
95
+ if (config.warningHandler)
97
96
  await config.warningHandler(req, `[Warning] ${req.method} failed to be verfiy: ${err.message}, falling back to Default`);
98
- return undefined;
99
- }),
100
- fetch_unverified_rpc(config, req, fetch_rpc)
101
- ]);
102
- if (verified_result !== undefined && !deepEqual(verified_result, unverified_result))
103
- await config.warningHandler(req, `[Warning] ${req.method} does not match the rpc-result`);
104
- return unverified_result;
97
+ else
98
+ console.warn(`[Warning] ${req.method} failed to be verfiy: ${err.message}, falling back to Default`);
99
+ return fetch_unverified_rpc(config, req, fetch_rpc);
100
+ });
105
101
  }
106
102
  }
107
103
  }
package/wasm_shared.d.ts CHANGED
@@ -32,6 +32,12 @@ export interface C4W {
32
32
  _c4w_free_verify_ctx: (verifyCtx: number) => void;
33
33
  _c4w_verify_proof: (verifyCtx: number) => number;
34
34
  _c4w_req_free: (reqPtr: number) => void;
35
+ _c4w_get_current_version_number: () => number;
36
+ _c4w_create_rpc_ctx: (method: number, params: number, chainId: bigint, prover_flags: number, verify_flags: number, use_remote_prover: number) => number;
37
+ _c4w_execute_rpc_ctx: (ctx: number) => number;
38
+ _c4w_free_rpc_ctx: (ctx: number) => void;
39
+ _c4w_set_checkpoint: (chainId: bigint, checkpoint: number) => void;
40
+ _c4w_rpc_ctx_set_witness_keys: (ctx: number, keys: number) => void;
35
41
  _c4w_decode_proof: (data: number, len: number) => number;
36
42
  _init_storage: () => void;
37
43
  HEAPU8: Uint8Array;
package/wasm_shared.js CHANGED
@@ -198,7 +198,7 @@ export function createC4wApi(options) {
198
198
  async function set_trusted_checkpoint(chainId, checkpoint) {
199
199
  const c4w = await getC4w();
200
200
  const free_buffers = [];
201
- c4w._c4w_create_verify_ctx(0, 0, 0, 0, BigInt(chainId), as_char_ptr(checkpoint, c4w, free_buffers), 0, 0);
201
+ c4w._c4w_set_checkpoint(BigInt(chainId), as_char_ptr(checkpoint, c4w, free_buffers));
202
202
  free_buffers.forEach(ptr => c4w._free(ptr));
203
203
  }
204
204
  async function decode_proof(proof) {