@aboutcircles/sdk-invitations 0.1.28 → 0.1.29

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/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var vJ=($)=>BigInt($),X$=($)=>parseInt($,16),u8=($)=>{if($.startsWith("0x"))$=$.slice(2);if($.length%2!==0)throw Error("Invalid hex string");let J=new Uint8Array($.length/2);for(let Q=0;Q<$.length;Q+=2)J[Q/2]=parseInt($.substr(Q,2),16);return J};function c8($,J){if(typeof J==="string"&&J.startsWith("0x")){let Q=J.slice(2);if(Q.length===40)return J;if(Q.length===64){if($.toLowerCase().includes("digest")||$.toLowerCase().includes("data")||$.toLowerCase().includes("bytes"))return u8(J);try{return vJ(J)}catch{return J}}try{let Y=X$(J);if(Y<Number.MAX_SAFE_INTEGER)return Y;return vJ(J)}catch{return J}}if(J==="true")return!0;if(J==="false")return!1;return J}function p$($){let{event:J,values:Q}=$,Y={$event:J,blockNumber:Q.blockNumber?X$(Q.blockNumber):0,timestamp:Q.timestamp?X$(Q.timestamp):void 0,transactionIndex:Q.transactionIndex?X$(Q.transactionIndex):0,logIndex:Q.logIndex?X$(Q.logIndex):0,transactionHash:Q.transactionHash};for(let[G,M]of Object.entries(Q)){if(["blockNumber","timestamp","transactionIndex","logIndex","transactionHash"].includes(G))continue;Y[G]=c8(G,M)}return Y}function I$($){return $.map(p$)}class n0{_subscribers=[];subscribe($){return this._subscribers.push($),()=>{let J=this._subscribers.indexOf($);if(J>-1)this._subscribers.splice(J,1)}}constructor(){this._subscribers=[]}emit($){this._subscribers.forEach((J)=>J($))}static create(){let $=new n0;return{property:$,emit:(J)=>$.emit(J)}}}class K$ extends Error{name;code;source;cause;context;constructor($,J,Q){super(J);if(this.name=$,this.code=Q?.code,this.source=Q?.source??"UNKNOWN",this.cause=Q?.cause,this.context=Q?.context,Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,message:this.message,code:this.code,source:this.source,context:this.context,cause:this.cause instanceof Error?{name:this.cause.name,message:this.cause.message}:this.cause,stack:this.stack}}toString(){let $=`[${this.source}] ${this.name}: ${this.message}`;if(this.code)$+=` (Code: ${this.code})`;if(this.context)$+=`
2
- Context: ${JSON.stringify(this.context,null,2)}`;return $}}class s extends K${constructor($,J){super("RpcError",$,{...J,source:J?.source??"RPC_REQUEST"})}static connectionFailed($,J){return new s("Failed to connect to RPC endpoint",{code:"RPC_CONNECTION_FAILED",source:"RPC_CONNECTION",cause:J,context:{url:$}})}static timeout($,J){return new s("RPC request timed out",{code:"RPC_TIMEOUT",source:"RPC_TIMEOUT",context:{method:$,timeout:J}})}static invalidResponse($,J){return new s("Invalid RPC response",{code:"RPC_INVALID_RESPONSE",source:"RPC_RESPONSE",context:{method:$,response:J}})}static fromJsonRpcError($){return new s($.message,{code:$.code,source:"RPC_RESPONSE",context:{data:$.data}})}static websocketError($,J){return new s($,{code:"RPC_WEBSOCKET_ERROR",source:"RPC_WEBSOCKET",cause:J})}}class P0{rpcUrl;requestId=0;websocket=null;websocketConnected=!1;pendingResponses={};subscriptionListeners={};reconnectAttempt=0;initialBackoff=2000;maxBackoff=120000;constructor($){this.rpcUrl=$}async call($,J){this.requestId++;let Q={jsonrpc:"2.0",id:this.requestId,method:$,params:J};try{let Y=await fetch(this.rpcUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q)});if(!Y.ok)throw s.connectionFailed(this.rpcUrl,Error(`HTTP ${Y.status}: ${Y.statusText}`));let G=await Y.json();if(G.error)throw s.fromJsonRpcError(G.error);if(G.result===void 0)throw s.invalidResponse($,G);return G.result}catch(Y){if(Y instanceof s)throw Y;throw s.connectionFailed(this.rpcUrl,Y)}}setRpcUrl($){this.rpcUrl=$}getRpcUrl(){return this.rpcUrl}connect(){return new Promise(($)=>{let J=this.rpcUrl.replace("http","ws");if(J.endsWith("/"))J+="ws";else J+="/ws";this.websocket=new WebSocket(J),this.websocket.onopen=()=>{console.log("WebSocket connected"),this.websocketConnected=!0,this.reconnectAttempt=0,$()},this.websocket.onmessage=(Q)=>{let Y=JSON.parse(Q.data),{id:G,method:M,params:Z}=Y;if(G!==void 0&&this.pendingResponses[G])this.pendingResponses[G].resolve(Y),delete this.pendingResponses[G];if(M==="eth_subscription"&&Z){let{subscription:X,result:K}=Z;if(this.subscriptionListeners[X])this.subscriptionListeners[X].forEach((q)=>q(K))}},this.websocket.onclose=()=>{console.warn("WebSocket closed"),this.websocketConnected=!1},this.websocket.onerror=(Q)=>{console.error("WebSocket error:",Q),this.websocketConnected=!1,this.scheduleReconnect()}})}scheduleReconnect(){let $=Math.min(this.initialBackoff*Math.pow(2,this.reconnectAttempt),this.maxBackoff),J=$*(Math.random()*0.5),Q=$+J;console.log(`Reconnecting in ${Math.round(Q)}ms (attempt #${this.reconnectAttempt+1})`),this.reconnectAttempt++,setTimeout(()=>{this.reconnect()},Q)}async reconnect(){if(this.websocketConnected)return;try{await this.connect(),console.log("Reconnection successful")}catch($){console.error("Reconnection attempt failed:",$),this.scheduleReconnect()}}sendMessage($,J,Q=5000){if(!this.websocket||this.websocket.readyState!==WebSocket.OPEN)return Promise.reject(s.connectionFailed(this.rpcUrl));let Y=this.requestId++,G={jsonrpc:"2.0",method:$,params:J,id:Y};return new Promise((M,Z)=>{this.pendingResponses[Y]={resolve:M,reject:Z},this.websocket.send(JSON.stringify(G)),setTimeout(()=>{if(this.pendingResponses[Y])this.pendingResponses[Y].reject(s.timeout($,Q)),delete this.pendingResponses[Y]},Q)})}async subscribe($){let J=$?.toLowerCase();if(!this.websocketConnected)await this.connect();let Q=n0.create(),Y=JSON.stringify(J?{address:J}:{}),M=(await this.sendMessage("eth_subscribe",["circles",Y])).result;if(!this.subscriptionListeners[M])this.subscriptionListeners[M]=[];return this.subscriptionListeners[M].push((Z)=>{I$(Z).forEach((X)=>Q.emit(X))}),Q.property}}var S$=BigInt(4294967295),mJ=BigInt(32);function p8($,J=!1){if(J)return{h:Number($&S$),l:Number($>>mJ&S$)};return{h:Number($>>mJ&S$)|0,l:Number($&S$)|0}}function hJ($,J=!1){let Q=$.length,Y=new Uint32Array(Q),G=new Uint32Array(Q);for(let M=0;M<Q;M++){let{h:Z,l:X}=p8($[M],J);[Y[M],G[M]]=[Z,X]}return[Y,G]}var uJ=($,J,Q)=>$<<Q|J>>>32-Q,cJ=($,J,Q)=>J<<Q|$>>>32-Q,lJ=($,J,Q)=>J<<Q-32|$>>>64-Q,pJ=($,J,Q)=>$<<Q-32|J>>>64-Q;var y0=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function d8($){return $ instanceof Uint8Array||ArrayBuffer.isView($)&&$.constructor.name==="Uint8Array"}function x0($){if(!Number.isSafeInteger($)||$<0)throw Error("positive integer expected, got "+$)}function X0($,...J){if(!d8($))throw Error("Uint8Array expected");if(J.length>0&&!J.includes($.length))throw Error("Uint8Array expected of length "+J+", got length="+$.length)}function dJ($){if(typeof $!=="function"||typeof $.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");x0($.outputLen),x0($.blockLen)}function U0($,J=!0){if($.destroyed)throw Error("Hash instance has been destroyed");if(J&&$.finished)throw Error("Hash#digest() has already been called")}function _$($,J){X0($);let Q=J.outputLen;if($.length<Q)throw Error("digestInto() expects output buffer of length at least "+Q)}function iJ($){return new Uint32Array($.buffer,$.byteOffset,Math.floor($.byteLength/4))}function K0(...$){for(let J=0;J<$.length;J++)$[J].fill(0)}function y$($){return new DataView($.buffer,$.byteOffset,$.byteLength)}function Z0($,J){return $<<32-J|$>>>J}var i8=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)();function n8($){return $<<24&4278190080|$<<8&16711680|$>>>8&65280|$>>>24&255}function o8($){for(let J=0;J<$.length;J++)$[J]=n8($[J]);return $}var d$=i8?($)=>$:o8;function t8($){if(typeof $!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode($))}function A0($){if(typeof $==="string")$=t8($);return X0($),$}function nJ(...$){let J=0;for(let Y=0;Y<$.length;Y++){let G=$[Y];X0(G),J+=G.length}let Q=new Uint8Array(J);for(let Y=0,G=0;Y<$.length;Y++){let M=$[Y];Q.set(M,G),G+=M.length}return Q}class E0{}function x$($){let J=(Y)=>$().update(A0(Y)).digest(),Q=$();return J.outputLen=Q.outputLen,J.blockLen=Q.blockLen,J.create=()=>$(),J}function oJ($=32){if(y0&&typeof y0.getRandomValues==="function")return y0.getRandomValues(new Uint8Array($));if(y0&&typeof y0.randomBytes==="function")return Uint8Array.from(y0.randomBytes($));throw Error("crypto.getRandomValues must be defined")}var a8=BigInt(0),q$=BigInt(1),s8=BigInt(2),r8=BigInt(7),e8=BigInt(256),$Q=BigInt(113),sJ=[],rJ=[],eJ=[];for(let $=0,J=q$,Q=1,Y=0;$<24;$++){[Q,Y]=[Y,(2*Q+3*Y)%5],sJ.push(2*(5*Y+Q)),rJ.push(($+1)*($+2)/2%64);let G=a8;for(let M=0;M<7;M++)if(J=(J<<q$^(J>>r8)*$Q)%e8,J&s8)G^=q$<<(q$<<BigInt(M))-q$;eJ.push(G)}var $8=hJ(eJ,!0),JQ=$8[0],QQ=$8[1],tJ=($,J,Q)=>Q>32?lJ($,J,Q):uJ($,J,Q),aJ=($,J,Q)=>Q>32?pJ($,J,Q):cJ($,J,Q);function YQ($,J=24){let Q=new Uint32Array(10);for(let Y=24-J;Y<24;Y++){for(let Z=0;Z<10;Z++)Q[Z]=$[Z]^$[Z+10]^$[Z+20]^$[Z+30]^$[Z+40];for(let Z=0;Z<10;Z+=2){let X=(Z+8)%10,K=(Z+2)%10,q=Q[K],W=Q[K+1],N=tJ(q,W,1)^Q[X],V=aJ(q,W,1)^Q[X+1];for(let O=0;O<50;O+=10)$[Z+O]^=N,$[Z+O+1]^=V}let G=$[2],M=$[3];for(let Z=0;Z<24;Z++){let X=rJ[Z],K=tJ(G,M,X),q=aJ(G,M,X),W=sJ[Z];G=$[W],M=$[W+1],$[W]=K,$[W+1]=q}for(let Z=0;Z<50;Z+=10){for(let X=0;X<10;X++)Q[X]=$[Z+X];for(let X=0;X<10;X++)$[Z+X]^=~Q[(X+2)%10]&Q[(X+4)%10]}$[0]^=JQ[Y],$[1]^=QQ[Y]}K0(Q)}class i$ extends E0{constructor($,J,Q,Y=!1,G=24){super();if(this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=$,this.suffix=J,this.outputLen=Q,this.enableXOF=Y,this.rounds=G,x0(Q),!(0<$&&$<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=iJ(this.state)}clone(){return this._cloneInto()}keccak(){d$(this.state32),YQ(this.state32,this.rounds),d$(this.state32),this.posOut=0,this.pos=0}update($){U0(this),$=A0($),X0($);let{blockLen:J,state:Q}=this,Y=$.length;for(let G=0;G<Y;){let M=Math.min(J-this.pos,Y-G);for(let Z=0;Z<M;Z++)Q[this.pos++]^=$[G++];if(this.pos===J)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:$,suffix:J,pos:Q,blockLen:Y}=this;if($[Q]^=J,(J&128)!==0&&Q===Y-1)this.keccak();$[Y-1]^=128,this.keccak()}writeInto($){U0(this,!1),X0($),this.finish();let J=this.state,{blockLen:Q}=this;for(let Y=0,G=$.length;Y<G;){if(this.posOut>=Q)this.keccak();let M=Math.min(Q-this.posOut,G-Y);$.set(J.subarray(this.posOut,this.posOut+M),Y),this.posOut+=M,Y+=M}return $}xofInto($){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto($)}xof($){return x0($),this.xofInto(new Uint8Array($))}digestInto($){if(_$($,this),this.finished)throw Error("digest() was already called");return this.writeInto($),this.destroy(),$}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,K0(this.state)}_cloneInto($){let{blockLen:J,suffix:Q,outputLen:Y,rounds:G,enableXOF:M}=this;return $||($=new i$(J,Q,Y,M,G)),$.state32.set(this.state32),$.pos=this.pos,$.posOut=this.posOut,$.finished=this.finished,$.rounds=G,$.suffix=Q,$.outputLen=Y,$.enableXOF=M,$.destroyed=this.destroyed,$}}var GQ=($,J,Q)=>x$(()=>new i$(J,$,Q));var o0=(()=>GQ(1,136,32))();var J8=[];for(let $=0;$<256;$++)J8[$]=$.toString(16).padStart(2,"0");function A$($){let J="0x";for(let Q=0;Q<$.length;Q++)J+=J8[$[Q]];return J}function E$($){let J=$.startsWith("0x")?$.slice(2):$,Q=new Uint8Array(J.length/2);for(let Y=0;Y<J.length;Y+=2)Q[Y/2]=parseInt(J.slice(Y,Y+2),16);return Q}var h=64,w$=32,k$=($)=>$.startsWith("0x")?$.slice(2):$;var q0=($)=>$.toString(16).padStart(h,"0");function C0($){let J=$.toLowerCase().replace("0x",""),Q=A$(o0(new TextEncoder().encode(J))).slice(2),Y="0x";for(let G=0;G<J.length;G++)Y+=parseInt(Q[G],16)>=8?J[G].toUpperCase():J[G];return Y}function n$($,J){if($==="tuple"&&J)return`(${J.map((G)=>n$(G.type,G.components)).join(",")})`;let Q=$.match(/^tuple(\[\d*\])$/);if(Q&&J)return`${n$("tuple",J)}${Q[1]}`;return $}function MQ($){let Q=($.inputs||[]).map((Y)=>n$(Y.type,Y.components));return`${$.name}(${Q.join(",")})`}function ZQ($){let J=MQ($),Q=o0(new TextEncoder().encode(J));return A$(Q.slice(0,4))}function t0($,J){if($==="string"||$==="bytes")return!0;if($.includes("[")){let Q=$.slice(0,$.indexOf("["));if($.endsWith("[]"))return!0;if(Q==="tuple")return Q8(J);return t0(Q)}if($==="tuple")return Q8(J);return!1}function Q8($){return $?.some((J)=>t0(J.type,J.components))??!1}function R0($,J,Q){if($==="tuple"&&Q)return KQ(Q,J);if($.includes("["))return XQ($,J,Q);return qQ($,J)}function XQ($,J,Q){let Y=$.slice(0,$.indexOf("[")),G=$.endsWith("[]"),M=t0(Y,Q),Z;if(M){let X=J.map((W)=>R0(Y,W,Q)),K=J.length*w$;Z=X.map((W)=>{let N=K;return K+=W.length/2,q0(N)}).join("")+X.join("")}else Z=J.map((X)=>R0(Y,X,Q)).join("");return G?q0(J.length)+Z:Z}function KQ($,J){let Q=Array.isArray(J),Y=[],G=[],M=[];for(let Z=0;Z<$.length;Z++){let X=$[Z],K=Q?J[Z]:J[X.name||""],q=t0(X.type,X.components);if(M.push(q),q)Y.push(""),G.push(R0(X.type,K,X.components));else Y.push(R0(X.type,K,X.components))}if(G.length>0){let Z=Y.reduce((q,W,N)=>q+(M[N]?w$:W.length/2),0),X="",K=0;for(let q=0;q<$.length;q++)if(M[q])X+=q0(Z),Z+=G[K].length/2,K++;else X+=Y[q];return X+G.join("")}return Y.join("")}function qQ($,J){if($==="address")return k$(J).toLowerCase().padStart(h,"0");if($==="bool")return q0(J?1:0);if($.startsWith("uint")){let Q=typeof J==="bigint"?J:BigInt(J);return q0(Q)}if($.startsWith("int")){let Q=typeof J==="bigint"?J:BigInt(J);if(Q<0n){let Y=$==="int"?256:parseInt($.slice(3));Q=(1n<<BigInt(Y))+Q}return q0(Q)}if($.startsWith("bytes")&&$!=="bytes")return k$(J).padEnd(h,"0");if($==="bytes"){let Q=k$(J),Y=q0(Q.length/2),G=Q.padEnd(Math.ceil(Q.length/h)*h,"0");return Y+G}if($==="string"){let Q=Array.from(new TextEncoder().encode(J)).map((M)=>M.toString(16).padStart(2,"0")).join(""),Y=q0(Q.length/2),G=Q.padEnd(Math.ceil(Q.length/h)*h,"0");return Y+G}throw Error(`Unsupported type: ${$}`)}function W$($,J,Q=0,Y){if($==="tuple"&&Y)return UQ(Y,J,Q);if($.includes("["))return WQ($,J,Q,Y);return jQ($,J,Q)}function WQ($,J,Q,Y){let G=$.slice(0,$.indexOf("[")),M=J.slice(Q,Q+h);if($.endsWith("[]")){let X=parseInt(M,16)*2,K=parseInt(J.slice(X,X+h),16),q=[],W=X+h;for(let N=0;N<K;N++){let V=W$(G,J,W,Y);q.push(V.value),W+=V.consumed}return{value:q,consumed:h}}let Z=$.match(/\[(\d+)\]$/);if(Z){let X=parseInt(Z[1]),K=[],q=0;for(let W=0;W<X;W++){let N=W$(G,J,Q+q,Y);K.push(N.value),q+=N.consumed}return{value:K,consumed:q}}throw Error(`Invalid array type: ${$}`)}function UQ($,J,Q){let Y=[],G=Q;for(let M of $){let Z=W$(M.type,J,G,M.components);Y.push(Z.value),G+=Z.consumed}return{value:Y,consumed:G-Q}}function jQ($,J,Q){let Y=J.slice(Q,Q+h);if($==="address")return{value:C0("0x"+Y.slice(24)),consumed:h};if($==="bool")return{value:parseInt(Y,16)!==0,consumed:h};if($.startsWith("uint"))return{value:BigInt("0x"+Y),consumed:h};if($.startsWith("int")){let G=BigInt("0x"+Y),M=$==="int"?256:parseInt($.slice(3)),Z=1n<<BigInt(M-1);return{value:G>=Z?G-(1n<<BigInt(M)):G,consumed:h}}if($.startsWith("bytes")&&$!=="bytes"){let G=parseInt($.match(/^bytes(\d+)$/)[1]);return{value:"0x"+Y.slice(0,G*2),consumed:h}}if($==="bytes"){let G=parseInt(Y,16)*2,M=parseInt(J.slice(G,G+h),16)*2;return{value:"0x"+J.slice(G+h,G+h+M),consumed:h}}if($==="string"){let G=parseInt(Y,16)*2,M=parseInt(J.slice(G,G+h),16)*2,Z=J.slice(G+h,G+h+M),X=new Uint8Array(Z.match(/.{2}/g)?.map((K)=>parseInt(K,16))||[]);return{value:new TextDecoder().decode(X),consumed:h}}throw Error(`Unsupported type: ${$}`)}function k0($){let{abi:J,functionName:Q,args:Y=[]}=$,G=J.find((O)=>O.type==="function"&&O.name===Q);if(!G)throw Error(`Function "${Q}" not found in ABI`);let M=ZQ(G),Z=G.inputs||[];if(Z.length===0)return M;if(Y.length!==Z.length)throw Error(`Expected ${Z.length} arguments, got ${Y.length}`);let X=[],K=[],q=[];for(let O=0;O<Z.length;O++){let R=Z[O],D=R.components,A=t0(R.type,D);if(q.push(A),A)X.push(""),K.push(R0(R.type,Y[O],D));else X.push(R0(R.type,Y[O],D))}if(K.length===0)return M+X.join("");let W=X.reduce((O,R,D)=>O+(q[D]?w$:R.length/2),0),N="",V=0;for(let O=0;O<Z.length;O++)if(q[O])N+=q0(W),W+=K[V].length/2,V++;else N+=X[O];return M+N+K.join("")}function U$($){let{abi:J,functionName:Q,data:Y}=$,G=J.find((q)=>q.type==="function"&&q.name===Q);if(!G)throw Error(`Function "${Q}" not found in ABI`);let M=G.outputs||[];if(M.length===0)return;let Z=k$(Y);if(M.length===1)return W$(M[0].type,Z,0,M[0].components).value;let X=[],K=0;for(let q of M){let W=W$(q.type,Z,K,q.components);X.push(W.value),K+=W.consumed}return X}function Y0($,J){if($.length!==J.length)throw Error(`Type/value length mismatch: ${$.length} types, ${J.length} values`);let Q=[],Y=[],G=[];for(let K=0;K<$.length;K++){let q=$[K],W=t0(q);if(G.push(W),W)Q.push(""),Y.push(R0(q,J[K]));else Q.push(R0(q,J[K]))}if(Y.length===0)return"0x"+Q.join("");let M=Q.reduce((K,q,W)=>K+(G[W]?w$:q.length/2),0),Z="",X=0;for(let K=0;K<$.length;K++)if(G[K])Z+=q0(M),M+=Y[X].length/2,X++;else Z+=Q[K];return"0x"+Z+Y.join("")}function H($){return $.toLowerCase()}function zQ($){return C0($)}function NQ($){if(typeof $!=="string")return!1;let J=$.replace("0x","");return J.length===40&&/^[0-9a-fA-F]{40}$/.test(J)}function g($){if($===null||$===void 0)return $;if(NQ($))return zQ($);if(Array.isArray($))return $.map((J)=>g(J));if(typeof $==="object"&&$!==null){let J={};for(let Q in $)if(Object.prototype.hasOwnProperty.call($,Q))J[Q]=g($[Q]);return J}return $}function Y8($){return{Source:H($.from),Sink:H($.to),TargetFlow:$.targetFlow.toString(),WithWrap:$.useWrappedBalances,FromTokens:$.fromTokens?.map(H),ToTokens:$.toTokens?.map(H),ExcludedFromTokens:$.excludeFromTokens?.map(H),ExcludedToTokens:$.excludeToTokens?.map(H),SimulatedBalances:$.simulatedBalances?.map((J)=>({Holder:H(J.holder),Token:H(J.token),Amount:J.amount.toString(),IsWrapped:J.isWrapped,IsStatic:J.isStatic})),SimulatedTrusts:$.simulatedTrusts?.map((J)=>({Truster:H(J.truster),Trustee:H(J.trustee)})),MaxTransfers:$.maxTransfers}}function j0($){let J={};for(let Q in $){let Y=$[Q];if(Y===null||Y===void 0)J[Q]=Y;else if(typeof Y==="string"&&/^\d+$/.test(Y))J[Q]=BigInt(Y);else if(typeof Y==="object"&&!Array.isArray(Y))J[Q]=j0(Y);else if(Array.isArray(Y))J[Q]=Y.map((G)=>typeof G==="object"&&G!==null?j0(G):G);else J[Q]=Y}return J}var w0="0x0000000000000000000000000000000000000000",p=BigInt(96)*BigInt(1000000000000000000),j$=BigInt("9999999999999999999999999999999999999"),o$="0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",t$="0x89867a67674bd4bf33165a653cde826b696ab7d050166b71066dfa0b9b6f90f4",a$="0xe298282cefe913ab5d282047161268a8222e4bd4ed106300c547894bbefd31ee",a0="0xc19bc204eb1c1d5b3fe500e5e5dfabab625f286c",b0="0x9Eb51E6A39B3F17bB1883B80748b56170039ff1d";class z0{client;constructor($){this.client=$}async findPath($){let J=Y8($),Q=await this.client.call("circlesV2_findPath",[J]),Y=j0(Q);return g(Y)}async findMaxFlow($){let J=await this.findPath({...$,targetFlow:j$});return BigInt(J.maxFlow)}}class z${client;constructor($){this.client=$}async query($){let J=await this.client.call("circles_query",[$]);return g(J)}async tables(){return this.client.call("circles_tables",[])}async events($,J,Q=null,Y=null,G=!1){let M=await this.client.call("circles_events",[$,J,Q,Y,G]);return g(M)}}var VQ=[{name:"blockNumber",sortOrder:"DESC"},{name:"transactionIndex",sortOrder:"DESC"},{name:"logIndex",sortOrder:"DESC"}];class G0{params;client;rowTransformer;cursorColumns;orderColumns;get currentPage(){return this._currentPage}_currentPage;constructor($,J,Q){this.client=$,this.params=J,this.rowTransformer=Q||J.rowTransformer,this.orderColumns=J.orderColumns,this.cursorColumns=J.cursorColumns||this.buildEventCursorColumns()}buildEventCursorColumns(){let $=VQ.map((J)=>({...J,sortOrder:this.params.sortOrder}));if(this.params.table==="TransferBatch")$.push({name:"batchIndex",sortOrder:this.params.sortOrder});return $}transformCursorValue($,J){if(J)return J($);if(typeof $==="bigint")return $.toString();return $}createEqualityPredicate($,J){return{Type:"FilterPredicate",FilterType:"Equals",Column:$.name,Value:this.transformCursorValue(J,$.toValue)}}createComparisonPredicate($,J){return{Type:"FilterPredicate",FilterType:$.sortOrder==="ASC"?"GreaterThan":"LessThan",Column:$.name,Value:this.transformCursorValue(J,$.toValue)}}buildCursorFilter($){if(!$)return[];let J=[];for(let Q=0;Q<this.cursorColumns.length;Q++){let Y=this.cursorColumns[Q],G=$[Y.name];if(G===void 0)continue;if(Q===0)J.push(this.createComparisonPredicate(Y,G));else{let M=[];for(let Z=0;Z<Q;Z++){let X=this.cursorColumns[Z],K=$[X.name];if(K!==void 0)M.push(this.createEqualityPredicate(X,K))}M.push(this.createComparisonPredicate(Y,G)),J.push({Type:"Conjunction",ConjunctionType:"And",Predicates:M})}}if(J.length===0)return[];return[{Type:"Conjunction",ConjunctionType:"Or",Predicates:J}]}buildOrderBy(){if(this.orderColumns&&this.orderColumns.length>0)return this.orderColumns;return this.cursorColumns.map(($)=>({Column:$.name,SortOrder:$.sortOrder}))}combineFilters($,J){if(!$?.length&&!J?.length)return[];if(!$?.length)return J||[];if(!J?.length)return $;return[{Type:"Conjunction",ConjunctionType:"And",Predicates:[...$,...J]}]}rowsToObjects($){let{columns:J,rows:Q}=$;return Q.map((Y)=>{let G={};return J.forEach((M,Z)=>{G[M]=Y[Z]}),this.rowTransformer?this.rowTransformer(G):G})}rowToCursor($){let J={};for(let Q of this.cursorColumns)J[Q.name]=$[Q.name];return J}getCursors($){if($.length===0)return{};return{first:this.rowToCursor($[0]),last:this.rowToCursor($[$.length-1])}}async queryNextPage(){let $=this.buildCursorFilter(this._currentPage?.lastCursor),J=this.combineFilters(this.params.filter,$),Q={Namespace:this.params.namespace,Table:this.params.table,Columns:this.params.columns,Filter:J,Order:this.buildOrderBy(),Limit:this.params.limit},Y=await this.client.call("circles_query",[Q]),G=this.rowsToObjects(Y),M=this.getCursors(G);return this._currentPage={limit:this.params.limit,size:G.length,firstCursor:M.first,lastCursor:M.last,sortOrder:this.params.sortOrder,hasMore:G.length===this.params.limit,results:G},G.length>0}reset(){this._currentPage=void 0}}class F0{client;constructor($){this.client=$}transformQueryResponse($){let{columns:J,rows:Q}=$;return Q.map((Y)=>{let G={};return J.forEach((M,Z)=>{G[M]=Y[Z]}),G})}async getCommonTrust($,J){let Q=await this.client.call("circles_getCommonTrust",[H($),H(J)]);return g(Q)}getTrustRelations($,J=100,Q="DESC"){let Y=H($),G=[{Type:"Conjunction",ConjunctionType:"And",Predicates:[{Type:"FilterPredicate",FilterType:"Equals",Column:"version",Value:2},{Type:"Conjunction",ConjunctionType:"Or",Predicates:[{Type:"FilterPredicate",FilterType:"Equals",Column:"trustee",Value:Y},{Type:"FilterPredicate",FilterType:"Equals",Column:"truster",Value:Y}]}]}];return new G0(this.client,{namespace:"V_Crc",table:"TrustRelations",sortOrder:Q,columns:["blockNumber","timestamp","transactionIndex","logIndex","transactionHash","version","trustee","truster","expiryTime"],filter:G,limit:J},(M)=>g(M))}async getAggregatedTrustRelations($){let J=H($),Q=this.getTrustRelations(J,1000),Y=[];while(await Q.queryNextPage())if(Y.push(...Q.currentPage.results),!Q.currentPage.hasMore)break;let G={};Y.forEach((Z)=>{let X=H(Z.truster),K=H(Z.trustee),q=X!==J?Z.truster:Z.trustee;if(!G[q])G[q]=[];G[q].push(Z)});let M=Object.entries(G).filter(([Z])=>H(Z)!==J).map(([Z,X])=>{let K=Math.max(...X.map((W)=>W.timestamp)),q;if(X.length===2)q="mutuallyTrusts";else if(H(X[0]?.trustee)===J)q="trustedBy";else if(H(X[0]?.truster)===J)q="trusts";else throw Error("Unexpected trust list row. Couldn't determine trust relation.");return{subjectAvatar:J,relation:q,objectAvatar:Z,timestamp:K}});return g(M)}async getTrustedBy($){let J=H($),Y=(await this.getAggregatedTrustRelations(J)).filter((G)=>G.relation==="trustedBy");return g(Y)}async getTrusts($){let J=H($),Y=(await this.getAggregatedTrustRelations(J)).filter((G)=>G.relation==="trusts");return g(Y)}async getMutualTrusts($){let J=H($),Y=(await this.getAggregatedTrustRelations(J)).filter((G)=>G.relation==="mutuallyTrusts");return g(Y)}}class i{static ONE_64=1n<<64n;static GAMMA_64=18443079296116538654n;static BETA_64=18450409579521241655n;static SECONDS_PER_DAY=86400n;static INFLATION_DAY_ZERO_UNIX=1602720000n;static ATTO_FACTOR=1000000000000000000n;static FACTOR_1E12=1000000000000n;static V1_ACCURACY=100000000n;static V1_INFLATION_PCT_NUM=107n;static V1_INFLATION_PCT_DEN=100n;static PERIOD_SEC=31556952n;static mul64($,J){return $*J>>64n}static mulU($,J){return $*J>>64n}static pow64($,J){let Q=$,Y=J,G=this.ONE_64;while(Y>0n){if((Y&1n)===1n)G=this.mul64(G,Q);Q=this.mul64(Q,Q),Y>>=1n}return G}static ONE_36=1000000000000000000000000000000000000000n;static GAMMA_36=999801332008598957430613406568191166n;static BETA_36=1000198707468214629156271489013303962n;static mul36($,J){return $*J/this.ONE_36}static pow36($,J){let Q=this.ONE_36,Y=$,G=J;while(G>0n){if((G&1n)===1n)Q=this.mul36(Q,Y);Y=this.mul36(Y,Y),G>>=1n}return Q}static attoCirclesToCircles($){if($===0n)return 0;let J=$/this.ATTO_FACTOR,Q=$%this.ATTO_FACTOR,Y=BigInt(Number.MAX_SAFE_INTEGER);if(J>Y||J<-Y)throw RangeError("Atto value’s integer component exceeds JS double precision.");return Number(J)+Number(Q)/Number(this.ATTO_FACTOR)}static circlesToAttoCircles($){return BigInt(Math.trunc($*Number(this.ATTO_FACTOR)))}static inflationaryToDemurrage($,J){return this.mulU(this.pow64(this.GAMMA_64,J),$)}static demurrageToInflationary($,J){return this.mulU(this.pow64(this.BETA_64,J),$)}static dayFromTimestamp($){return($-this.INFLATION_DAY_ZERO_UNIX)/this.SECONDS_PER_DAY}static attoCirclesToAttoStaticCircles($,J=BigInt(Math.floor(Date.now()/1000))){return this.demurrageToInflationary($,this.dayFromTimestamp(J))}static attoStaticCirclesToAttoCircles($,J=BigInt(Math.floor(Date.now()/1000))){return this.inflationaryToDemurrage($,this.dayFromTimestamp(J))}static inflationaryToDemurrageExact($,J){let Q=this.pow36(this.GAMMA_36,J);return $*Q/this.ONE_36}static demurrageToInflationaryExact($,J){let Q=this.pow36(this.BETA_36,J);return $*Q/this.ONE_36}static attoCirclesToAttoStaticCirclesExact($,J=BigInt(Math.floor(Date.now()/1000))){let Q=this.dayFromTimestamp(J);return this.demurrageToInflationaryExact($,Q)}static attoStaticCirclesToAttoCirclesExact($,J=BigInt(Math.floor(Date.now()/1000))){let Q=this.dayFromTimestamp(J);return this.inflationaryToDemurrageExact($,Q)}static truncateToInt64($){let J=$/this.FACTOR_1E12,Q=9223372036854775807n;return J>Q?Q:J}static blowUpToBigInt($){return $*this.FACTOR_1E12}static truncateToSixDecimals($){return this.blowUpToBigInt(this.truncateToInt64($))}static v1InflateFactor($){if($===0n)return this.V1_ACCURACY;return this.V1_ACCURACY*this.V1_INFLATION_PCT_NUM**$/this.V1_INFLATION_PCT_DEN**$}static attoCrcToAttoCircles($,J){let Q=J-this.INFLATION_DAY_ZERO_UNIX,Y=Q/this.PERIOD_SEC,G=Q%this.PERIOD_SEC,M=this.v1InflateFactor(Y),Z=this.v1InflateFactor(Y+1n);return this.v1ToDemurrage($,M,Z,G,this.PERIOD_SEC)}static attoCirclesToAttoCrc($,J){let Q=J-this.INFLATION_DAY_ZERO_UNIX,Y=Q/this.PERIOD_SEC,G=Q%this.PERIOD_SEC,M=this.v1InflateFactor(Y),Z=this.v1InflateFactor(Y+1n),X=M*(this.PERIOD_SEC-G)+Z*G;return $*3n*this.V1_ACCURACY*this.PERIOD_SEC/X}static v1ToDemurrage($,J,Q,Y,G){let M=J*(G-Y)+Q*Y;return $*3n*this.V1_ACCURACY*G/M}}class g0{client;constructor($){this.client=$}async getTotalBalance($,J=!0){let Q=await this.client.call("circlesV2_getTotalBalance",[H($),J]);return i.circlesToAttoCircles(Q)}async getTokenBalances($){let Q=(await this.client.call("circles_getTokenBalances",[H($)])).map((Y)=>j0(Y));return g(Q)}}class N${client;constructor($){this.client=$}async getAvatarInfo($){let J=await this.getAvatarInfoBatch([$]);return J.length>0?J[0]:void 0}async getAvatarInfoBatch($){if($.length===0)return[];let J=$.map((Y)=>H(Y)),Q=await this.client.call("circles_getAvatarInfoBatch",[J]);return g(Q)}async getNetworkSnapshot(){let $=await this.client.call("circles_getNetworkSnapshot",[]);return g($)}}class V${client;constructor($){this.client=$}async getProfileByCid($){return this.client.call("circles_getProfileByCid",[$])}async getProfileByCidBatch($){return this.client.call("circles_getProfileByCidBatch",[$])}async getProfileByAddress($){return this.client.call("circles_getProfileByAddress",[H($)])}async getProfileByAddressBatch($){return this.client.call("circles_getProfileByAddressBatch",[$.map((J)=>J===null?null:H(J))])}async searchProfiles($,J=10,Q=0,Y){return this.client.call("circles_searchProfiles",[$.toLowerCase(),J,Q,Y])}async searchByAddressOrName($,J=10,Q=0,Y){let G=[],M=/^0x[a-fA-F0-9]{40}$/.test($);if(M)try{let Z=await this.getProfileByAddress($);if(Z){let X={...Z,address:$};if(!Y||!X.avatarType||Y.includes(X.avatarType))G.push(X)}}catch(Z){console.warn("Failed to get profile by address:",Z)}try{let Z=await this.searchProfiles($,J,Q,Y);if(M&&G.length>0){let X=$.toLowerCase(),K=Z.filter((q)=>q.address?.toLowerCase()!==X);G.push(...K)}else G.push(...Z)}catch(Z){console.warn("Failed to search profiles by text:",Z)}return G.slice(0,J)}}class f0{client;constructor($){this.client=$}async getTokenInfo($){let J=await this.getTokenInfoBatch([$]);return J.length>0?J[0]:void 0}async getTokenInfoBatch($){if($.length===0)return[];let J=$.map((G)=>H(G)),Y=(await this.client.call("circles_getTokenInfoBatch",[J])).map((G)=>j0(G));return g(Y)}getTokenHolders($,J=100,Q="DESC"){let Y=H($);return new G0(this.client,{namespace:"V_CrcV2",table:"BalancesByAccountAndToken",columns:["account","tokenAddress","demurragedTotalBalance"],filter:[{Type:"FilterPredicate",FilterType:"Equals",Column:"tokenAddress",Value:Y}],cursorColumns:[{name:"demurragedTotalBalance",sortOrder:Q},{name:"account",sortOrder:"ASC"}],orderColumns:[{Column:"demurragedTotalBalance",SortOrder:Q},{Column:"account",SortOrder:"ASC"}],limit:J,sortOrder:Q},(G)=>({account:G.account,tokenAddress:G.tokenAddress,demurragedTotalBalance:G.demurragedTotalBalance}))}}class D${client;constructor($){this.client=$}transformQueryResponse($){let{columns:J,rows:Q}=$;return Q.map((Y)=>{let G={};return J.forEach((M,Z)=>{G[M]=Y[Z]}),G})}async getInvitedBy($){let J=H($),Q=await this.client.call("circles_query",[{Namespace:"CrcV2",Table:"RegisterHuman",Columns:["inviter"],Filter:[{Type:"FilterPredicate",FilterType:"Equals",Column:"avatar",Value:J}],Order:[{Column:"blockNumber",SortOrder:"DESC"}],Limit:1}]);if(Q.length>0)return g(Q[0].inviter);return}async getInvitations($){let J=H($),Q=96,Y=await this.client.call("circles_getAvatarInfoBatch",[[J]]);if((Y.length>0?Y[0]:void 0)?.version===2)return[];let M=await this.client.call("circles_query",[{Namespace:"V_Crc",Table:"TrustRelations",Columns:["truster","trustee"],Filter:[{Type:"Conjunction",ConjunctionType:"And",Predicates:[{Type:"FilterPredicate",FilterType:"Equals",Column:"version",Value:2},{Type:"FilterPredicate",FilterType:"Equals",Column:"trustee",Value:J}]}],Order:[]}]),X=this.transformQueryResponse(M).map((W)=>W.truster);if(X.length===0)return[];let K=await this.client.call("circles_getAvatarInfoBatch",[X]),q=[];for(let W of K){if(!W?.isHuman)continue;let V=(await this.client.call("circles_getTokenBalances",[W.avatar])).find((O)=>H(O.tokenAddress)===H(W.avatar));if(V&&V.circles>=96)q.push(W)}return g(q)}async getInvitationsFrom($,J=!1){let Q=H($);if(J){let Y=await this.client.call("circles_query",[{Namespace:"CrcV2",Table:"RegisterHuman",Columns:["avatar"],Filter:[{Type:"FilterPredicate",FilterType:"Equals",Column:"inviter",Value:Q}],Order:[{Column:"blockNumber",SortOrder:"DESC"}]}]),M=this.transformQueryResponse(Y).map((Z)=>Z.avatar);return g(M)}else{let Y=await this.client.call("circles_query",[{Namespace:"V_Crc",Table:"TrustRelations",Columns:["trustee","truster"],Filter:[{Type:"Conjunction",ConjunctionType:"And",Predicates:[{Type:"FilterPredicate",FilterType:"Equals",Column:"version",Value:2},{Type:"FilterPredicate",FilterType:"Equals",Column:"truster",Value:Q}]}],Order:[]}]),M=this.transformQueryResponse(Y).map((q)=>q.trustee);if(M.length===0)return[];let Z=await this.client.call("circles_getAvatarInfoBatch",[M]),X=new Set(Z.filter((q)=>q!==null).map((q)=>H(q.avatar))),K=M.filter((q)=>!X.has(H(q)));return g(K)}}}function DQ($,J){let Q=BigInt($),Y=i.attoCirclesToCircles(Q),G=i.attoCirclesToAttoCrc(Q,BigInt(J)),M=i.attoCirclesToCircles(G),Z=i.attoCirclesToAttoStaticCircles(Q,BigInt(J)),X=i.attoCirclesToCircles(Z);return{attoCircles:Q,circles:Y,staticAttoCircles:Z,staticCircles:X,attoCrc:G,crc:M}}class O${client;constructor($){this.client=$}getTransactionHistory($,J=50,Q="DESC"){let Y=H($),G=[{Type:"Conjunction",ConjunctionType:"And",Predicates:[{Type:"FilterPredicate",FilterType:"Equals",Column:"version",Value:2},{Type:"Conjunction",ConjunctionType:"Or",Predicates:[{Type:"FilterPredicate",FilterType:"Equals",Column:"from",Value:Y},{Type:"FilterPredicate",FilterType:"Equals",Column:"to",Value:Y}]}]}];return new G0(this.client,{namespace:"V_Crc",table:"TransferSummary",sortOrder:Q,columns:[],filter:G,limit:J},(M)=>{let Z=DQ(M.value,M.timestamp),X={...M,...Z};return g(X)})}}class v0{client;constructor($){this.client=$}async findGroups($=50,J){let Q=this.getGroups($,J,"DESC"),Y=[];while(await Q.queryNextPage()){if(Y.push(...Q.currentPage.results),Y.length>=$)break;if(!Q.currentPage.hasMore)break}return Y.slice(0,$)}getGroupMemberships($,J=50,Q="DESC"){let Y=H($);return new G0(this.client,{namespace:"V_CrcV2",table:"GroupMemberships",sortOrder:Q,columns:["blockNumber","timestamp","transactionIndex","logIndex","transactionHash","group","member","expiryTime"],filter:[{Type:"FilterPredicate",FilterType:"Equals",Column:"member",Value:Y}],limit:J},(G)=>g(G))}getGroupHolders($,J=100){let Q=H($);return new G0(this.client,{namespace:"V_CrcV2",table:"GroupTokenHoldersBalance",sortOrder:"DESC",columns:["group","holder","totalBalance","demurragedTotalBalance","fractionOwnership"],cursorColumns:[{name:"holder",sortOrder:"ASC"}],orderColumns:[{Column:"totalBalance",SortOrder:"DESC"},{Column:"holder",SortOrder:"ASC"}],filter:[{Type:"FilterPredicate",FilterType:"Equals",Column:"group",Value:Q}],limit:J,rowTransformer:(Y)=>{let G={...Y,totalBalance:BigInt(Y.totalBalance),demurragedTotalBalance:BigInt(Y.demurragedTotalBalance)};return g(G)}})}getGroupMembers($,J=100,Q="DESC"){let Y=H($);return new G0(this.client,{namespace:"V_CrcV2",table:"GroupMemberships",sortOrder:Q,columns:["blockNumber","timestamp","transactionIndex","logIndex","transactionHash","group","member","expiryTime"],filter:[{Type:"FilterPredicate",FilterType:"Equals",Column:"group",Value:Y}],limit:J},(G)=>g(G))}getGroups($=50,J,Q="DESC"){let Y=[];if(J){if(J.nameStartsWith)Y.push({Type:"FilterPredicate",FilterType:"Like",Column:"name",Value:J.nameStartsWith+"%"});if(J.symbolStartsWith)Y.push({Type:"FilterPredicate",FilterType:"Like",Column:"symbol",Value:J.symbolStartsWith+"%"});if(J.groupAddressIn&&J.groupAddressIn.length>0){let M=J.groupAddressIn.map((Z)=>({Type:"FilterPredicate",FilterType:"Equals",Column:"group",Value:H(Z)}));if(M.length===1)Y.push(M[0]);else Y.push({Type:"Conjunction",ConjunctionType:"Or",Predicates:M})}if(J.groupTypeIn&&J.groupTypeIn.length>0){let M=J.groupTypeIn.map((Z)=>({Type:"FilterPredicate",FilterType:"Equals",Column:"type",Value:Z}));if(M.length===1)Y.push(M[0]);else Y.push({Type:"Conjunction",ConjunctionType:"Or",Predicates:M})}if(J.ownerIn&&J.ownerIn.length>0){let M=J.ownerIn.map((Z)=>({Type:"FilterPredicate",FilterType:"Equals",Column:"owner",Value:H(Z)}));if(M.length===1)Y.push(M[0]);else Y.push({Type:"Conjunction",ConjunctionType:"Or",Predicates:M})}if(J.mintHandlerEquals)Y.push({Type:"FilterPredicate",FilterType:"Equals",Column:"mintHandler",Value:H(J.mintHandlerEquals)});if(J.treasuryEquals)Y.push({Type:"FilterPredicate",FilterType:"Equals",Column:"treasury",Value:H(J.treasuryEquals)})}let G=Y.length>1?[{Type:"Conjunction",ConjunctionType:"And",Predicates:Y}]:Y;return new G0(this.client,{namespace:"V_CrcV2",table:"Groups",sortOrder:Q,columns:["blockNumber","timestamp","transactionIndex","logIndex","transactionHash","group","type","owner","mintPolicy","mintHandler","treasury","service","feeCollection","memberCount","name","symbol","cidV0Digest","erc20WrapperDemurraged","erc20WrapperStatic"],filter:G,limit:$},(M)=>g(M))}}class b${client;_pathfinder;_query;_trust;_balance;_avatar;_profile;_token;_invitation;_transaction;_group;constructor($="https://rpc.circlesubi.network/"){this.client=new P0($)}get pathfinder(){if(!this._pathfinder)this._pathfinder=new z0(this.client);return this._pathfinder}get query(){if(!this._query)this._query=new z$(this.client);return this._query}get trust(){if(!this._trust)this._trust=new F0(this.client);return this._trust}get balance(){if(!this._balance)this._balance=new g0(this.client);return this._balance}get avatar(){if(!this._avatar)this._avatar=new N$(this.client);return this._avatar}get profile(){if(!this._profile)this._profile=new V$(this.client);return this._profile}get token(){if(!this._token)this._token=new f0(this.client);return this._token}get invitation(){if(!this._invitation)this._invitation=new D$(this.client);return this._invitation}get transaction(){if(!this._transaction)this._transaction=new O$(this.client);return this._transaction}get group(){if(!this._group)this._group=new v0(this.client);return this._group}setRpcUrl($){this.client.setRpcUrl($)}getRpcUrl(){return this.client.getRpcUrl()}}class n{address;abi;rpcUrl;constructor($){this.address=$.address,this.abi=$.abi,this.rpcUrl=$.rpcUrl}async read($,J,Q){let Y=k0({abi:this.abi,functionName:$,args:J}),G={to:this.address,data:Y,...Q?.from&&{from:Q.from}},Z=await(await fetch(this.rpcUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_call",params:[G,"latest"]})})).json();if(Z.error)throw Error(`RPC Error: ${Z.error.message}`);if(!Z.result)throw Error("No result returned from RPC call");return U$({abi:this.abi,functionName:$,data:Z.result})}encodeWrite($,J){return k0({abi:this.abi,functionName:$,args:J})}}var G8=[{type:"function",name:"operateFlowMatrix",inputs:[{name:"_flowVertices",type:"address[]"},{name:"_flow",type:"tuple[]",components:[{name:"streamSinkId",type:"uint16"},{name:"amount",type:"uint192"}]},{name:"_streams",type:"tuple[]",components:[{name:"sourceCoordinate",type:"uint16"},{name:"flowEdgeIds",type:"uint16[]"},{name:"data",type:"bytes"}]},{name:"_packedCoordinates",type:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isApprovedForAll",inputs:[{name:"_account",type:"address"},{name:"_operator",type:"address"}],outputs:[{type:"bool"}],stateMutability:"view"},{type:"function",name:"setApprovalForAll",inputs:[{name:"_operator",type:"address"},{name:"_approved",type:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"wrap",inputs:[{name:"_avatar",type:"address"},{name:"_amount",type:"uint256"},{name:"_type",type:"uint8"}],outputs:[{type:"address"}],stateMutability:"nonpayable"},{type:"function",name:"trust",inputs:[{name:"_trustReceiver",type:"address"},{name:"_expiry",type:"uint96"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isTrusted",inputs:[{name:"_truster",type:"address"},{name:"_trustee",type:"address"}],outputs:[{type:"bool"}],stateMutability:"view"},{type:"function",name:"toTokenId",inputs:[{name:"_avatar",type:"address"}],outputs:[{type:"uint256"}],stateMutability:"pure"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_id",type:"uint256"},{name:"_value",type:"uint256"},{name:"_data",type:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isHuman",inputs:[{name:"_human",type:"address"}],outputs:[{type:"bool"}],stateMutability:"view"},{type:"function",name:"safeBatchTransferFrom",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_ids",type:"uint256[]"},{name:"_values",type:"uint256[]"},{name:"_data",type:"bytes"}],outputs:[],stateMutability:"nonpayable"}];class H0 extends n{constructor($){super({address:$.address,abi:G8,rpcUrl:$.rpcUrl})}async isTrusted($,J){return this.read("isTrusted",[$,J])}async isApprovedForAll($,J){return this.read("isApprovedForAll",[$,J])}async toTokenId($){return this.read("toTokenId",[$])}trust($,J){return{to:this.address,data:this.encodeWrite("trust",[$,J]),value:0n}}setApprovalForAll($,J){return{to:this.address,data:this.encodeWrite("setApprovalForAll",[$,J]),value:0n}}wrap($,J,Q){return{to:this.address,data:this.encodeWrite("wrap",[$,J,Q]),value:0n}}safeTransferFrom($,J,Q,Y,G="0x"){return{to:this.address,data:this.encodeWrite("safeTransferFrom",[$,J,Q,Y,G]),value:0n}}operateFlowMatrix($,J,Q,Y){return{to:this.address,data:this.encodeWrite("operateFlowMatrix",[$,J,Q,Y]),value:0n}}async isHuman($){return this.read("isHuman",[$])}safeBatchTransferFrom($,J,Q,Y,G="0x"){return{to:this.address,data:this.encodeWrite("safeBatchTransferFrom",[$,J,Q,Y,G]),value:0n}}}var M8=[{type:"function",name:"erc20Circles",inputs:[{name:"_circlesType",type:"uint8"},{name:"_avatar",type:"address"}],outputs:[{type:"address"}],stateMutability:"view"}];class F$ extends n{constructor($){super({address:$.address,abi:M8,rpcUrl:$.rpcUrl})}async erc20Circles($,J){return this.read("erc20Circles",[$,J])}}var s$=[{type:"function",name:"unwrap",inputs:[{name:"_amount",type:"uint256"}],outputs:[],stateMutability:"nonpayable"}];class s0 extends n{constructor($){super({address:$.address,abi:s$,rpcUrl:$.rpcUrl})}unwrap($){return{to:this.address,data:this.encodeWrite("unwrap",[$]),value:0n}}}class r0 extends n{constructor($){super({address:$.address,abi:s$,rpcUrl:$.rpcUrl})}unwrap($){return{to:this.address,data:this.encodeWrite("unwrap",[$]),value:0n}}}var r$=[{type:"function",name:"createAccount",inputs:[{name:"signer",type:"address"}],outputs:[{name:"account",type:"address"}],stateMutability:"nonpayable"},{type:"function",name:"createAccounts",inputs:[{name:"signers",type:"address[]"}],outputs:[{name:"_accounts",type:"address[]"}],stateMutability:"nonpayable"}];var e$=[{type:"function",name:"claimInvite",inputs:[],outputs:[{name:"id",type:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"claimInvites",inputs:[{name:"numberOfInvites",type:"uint256"}],outputs:[{name:"ids",type:"uint256[]"}],stateMutability:"nonpayable"},{type:"function",name:"inviterQuota",inputs:[{name:"",type:"address"}],outputs:[{type:"uint256"}],stateMutability:"view"},{type:"function",name:"INVITATION_FEE",inputs:[],outputs:[{type:"uint256"}],stateMutability:"view"},{type:"function",name:"invitationModule",inputs:[],outputs:[{type:"address"}],stateMutability:"view"}];var $J=[{type:"function",name:"isModuleEnabled",inputs:[{name:"module",type:"address"}],outputs:[{name:"",type:"bool"}],stateMutability:"view"},{type:"function",name:"enableModule",inputs:[{name:"module",type:"address"}],outputs:[],stateMutability:"nonpayable"}];var JJ=[{type:"function",name:"trustInviter",inputs:[{name:"inviter",type:"address"}],outputs:[],stateMutability:"nonpayable"}];class e0 extends n{constructor($){super({address:$.address,abi:r$,rpcUrl:$.rpcUrl})}createAccount($){return{to:this.address,data:this.encodeWrite("createAccount",[$]),value:0n}}createAccounts($){return{to:this.address,data:this.encodeWrite("createAccounts",[$]),value:0n}}}class $$ extends n{constructor($){super({address:$.address,abi:e$,rpcUrl:$.rpcUrl})}claimInvite(){return{to:this.address,data:this.encodeWrite("claimInvite",[]),value:0n}}claimInvites($){return{to:this.address,data:this.encodeWrite("claimInvites",[$]),value:0n}}async inviterQuota($){return this.read("inviterQuota",[$])}async invitationFee(){return this.read("INVITATION_FEE")}async invitationModule(){return this.read("invitationModule")}}class g$ extends n{constructor($){super({address:$.address,abi:$J,rpcUrl:$.rpcUrl})}async isModuleEnabled($){return this.read("isModuleEnabled",[$])}enableModule($){return{to:this.address,data:this.encodeWrite("enableModule",[$]),value:0n}}}class f$ extends n{constructor($){super({address:$.address,abi:JJ,rpcUrl:$.rpcUrl})}trustInviter($){return{to:this.address,data:this.encodeWrite("trustInviter",[$]),value:0n}}}class B$ extends Error{name;code;source;cause;context;constructor($,J,Q){super(J);if(this.name=$,this.code=Q?.code,this.source=Q?.source??"UNKNOWN",this.cause=Q?.cause,this.context=Q?.context,Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,message:this.message,code:this.code,source:this.source,context:this.context,cause:this.cause instanceof Error?{name:this.cause.name,message:this.cause.message}:this.cause,stack:this.stack}}toString(){let $=`[${this.source}] ${this.name}: ${this.message}`;if(this.code)$+=` (Code: ${this.code})`;if(this.context)$+=`
3
- Context: ${JSON.stringify(this.context,null,2)}`;return $}}function OQ($,J,Q,Y){if(typeof $.setBigUint64==="function")return $.setBigUint64(J,Q,Y);let G=BigInt(32),M=BigInt(4294967295),Z=Number(Q>>G&M),X=Number(Q&M),K=Y?4:0,q=Y?0:4;$.setUint32(J+K,Z,Y),$.setUint32(J+q,X,Y)}function Z8($,J,Q){return $&J^~$&Q}function X8($,J,Q){return $&J^$&Q^J&Q}class QJ extends E0{constructor($,J,Q,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=$,this.outputLen=J,this.padOffset=Q,this.isLE=Y,this.buffer=new Uint8Array($),this.view=y$(this.buffer)}update($){U0(this),$=A0($),X0($);let{view:J,buffer:Q,blockLen:Y}=this,G=$.length;for(let M=0;M<G;){let Z=Math.min(Y-this.pos,G-M);if(Z===Y){let X=y$($);for(;Y<=G-M;M+=Y)this.process(X,M);continue}if(Q.set($.subarray(M,M+Z),this.pos),this.pos+=Z,M+=Z,this.pos===Y)this.process(J,0),this.pos=0}return this.length+=$.length,this.roundClean(),this}digestInto($){U0(this),_$($,this),this.finished=!0;let{buffer:J,view:Q,blockLen:Y,isLE:G}=this,{pos:M}=this;if(J[M++]=128,K0(this.buffer.subarray(M)),this.padOffset>Y-M)this.process(Q,0),M=0;for(let W=M;W<Y;W++)J[W]=0;OQ(Q,Y-8,BigInt(this.length*8),G),this.process(Q,0);let Z=y$($),X=this.outputLen;if(X%4)throw Error("_sha2: outputLen should be aligned to 32bit");let K=X/4,q=this.get();if(K>q.length)throw Error("_sha2: outputLen bigger than state");for(let W=0;W<K;W++)Z.setUint32(4*W,q[W],G)}digest(){let{buffer:$,outputLen:J}=this;this.digestInto($);let Q=$.slice(0,J);return this.destroy(),Q}_cloneInto($){$||($=new this.constructor),$.set(...this.get());let{blockLen:J,buffer:Q,length:Y,finished:G,destroyed:M,pos:Z}=this;if($.destroyed=M,$.finished=G,$.length=Y,$.pos=Z,Y%J)$.buffer.set(Q);return $}clone(){return this._cloneInto()}}var N0=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var BQ=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),T0=new Uint32Array(64);class K8 extends QJ{constructor($=32){super(64,$,8,!1);this.A=N0[0]|0,this.B=N0[1]|0,this.C=N0[2]|0,this.D=N0[3]|0,this.E=N0[4]|0,this.F=N0[5]|0,this.G=N0[6]|0,this.H=N0[7]|0}get(){let{A:$,B:J,C:Q,D:Y,E:G,F:M,G:Z,H:X}=this;return[$,J,Q,Y,G,M,Z,X]}set($,J,Q,Y,G,M,Z,X){this.A=$|0,this.B=J|0,this.C=Q|0,this.D=Y|0,this.E=G|0,this.F=M|0,this.G=Z|0,this.H=X|0}process($,J){for(let W=0;W<16;W++,J+=4)T0[W]=$.getUint32(J,!1);for(let W=16;W<64;W++){let N=T0[W-15],V=T0[W-2],O=Z0(N,7)^Z0(N,18)^N>>>3,R=Z0(V,17)^Z0(V,19)^V>>>10;T0[W]=R+T0[W-7]+O+T0[W-16]|0}let{A:Q,B:Y,C:G,D:M,E:Z,F:X,G:K,H:q}=this;for(let W=0;W<64;W++){let N=Z0(Z,6)^Z0(Z,11)^Z0(Z,25),V=q+N+Z8(Z,X,K)+BQ[W]+T0[W]|0,R=(Z0(Q,2)^Z0(Q,13)^Z0(Q,22))+X8(Q,Y,G)|0;q=K,K=X,X=Z,Z=M+V|0,M=G,G=Y,Y=Q,Q=V+R|0}Q=Q+this.A|0,Y=Y+this.B|0,G=G+this.C|0,M=M+this.D|0,Z=Z+this.E|0,X=X+this.F|0,K=K+this.G|0,q=q+this.H|0,this.set(Q,Y,G,M,Z,X,K,q)}roundClean(){K0(T0)}destroy(){this.set(0,0,0,0,0,0,0,0),K0(this.buffer)}}var q8=x$(()=>new K8);class YJ extends E0{constructor($,J){super();this.finished=!1,this.destroyed=!1,dJ($);let Q=A0(J);if(this.iHash=$.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,G=new Uint8Array(Y);G.set(Q.length>Y?$.create().update(Q).digest():Q);for(let M=0;M<G.length;M++)G[M]^=54;this.iHash.update(G),this.oHash=$.create();for(let M=0;M<G.length;M++)G[M]^=106;this.oHash.update(G),K0(G)}update($){return U0(this),this.iHash.update($),this}digestInto($){U0(this),X0($,this.outputLen),this.finished=!0,this.iHash.digestInto($),this.oHash.update($),this.oHash.digestInto($),this.destroy()}digest(){let $=new Uint8Array(this.oHash.outputLen);return this.digestInto($),$}_cloneInto($){$||($=Object.create(Object.getPrototypeOf(this),{}));let{oHash:J,iHash:Q,finished:Y,destroyed:G,blockLen:M,outputLen:Z}=this;return $=$,$.finished=Y,$.destroyed=G,$.blockLen=M,$.outputLen=Z,$.oHash=J._cloneInto($.oHash),$.iHash=Q._cloneInto($.iHash),$}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var GJ=($,J,Q)=>new YJ($,J).update(Q).digest();GJ.create=($,J)=>new YJ($,J);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var KJ=BigInt(0),XJ=BigInt(1);function J$($){return $ instanceof Uint8Array||ArrayBuffer.isView($)&&$.constructor.name==="Uint8Array"}function qJ($){if(!J$($))throw Error("Uint8Array expected")}function Q$($,J){if(typeof J!=="boolean")throw Error($+" boolean expected, got "+J)}function L$($){let J=$.toString(16);return J.length&1?"0"+J:J}function j8($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);return $===""?KJ:BigInt("0x"+$)}var z8=typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function",LQ=Array.from({length:256},($,J)=>J.toString(16).padStart(2,"0"));function Y$($){if(qJ($),z8)return $.toHex();let J="";for(let Q=0;Q<$.length;Q++)J+=LQ[$[Q]];return J}var V0={_0:48,_9:57,A:65,F:70,a:97,f:102};function W8($){if($>=V0._0&&$<=V0._9)return $-V0._0;if($>=V0.A&&$<=V0.F)return $-(V0.A-10);if($>=V0.a&&$<=V0.f)return $-(V0.a-10);return}function P$($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);if(z8)return Uint8Array.fromHex($);let J=$.length,Q=J/2;if(J%2)throw Error("hex string expected, got unpadded hex of length "+J);let Y=new Uint8Array(Q);for(let G=0,M=0;G<Q;G++,M+=2){let Z=W8($.charCodeAt(M)),X=W8($.charCodeAt(M+1));if(Z===void 0||X===void 0){let K=$[M]+$[M+1];throw Error('hex string expected, got non-hex character "'+K+'" at index '+M)}Y[G]=Z*16+X}return Y}function D0($){return j8(Y$($))}function WJ($){return qJ($),j8(Y$(Uint8Array.from($).reverse()))}function m0($,J){return P$($.toString(16).padStart(J*2,"0"))}function UJ($,J){return m0($,J).reverse()}function Q0($,J,Q){let Y;if(typeof J==="string")try{Y=P$(J)}catch(M){throw Error($+" must be hex string or Uint8Array, cause: "+M)}else if(J$(J))Y=Uint8Array.from(J);else throw Error($+" must be hex string or Uint8Array");let G=Y.length;if(typeof Q==="number"&&G!==Q)throw Error($+" of length "+Q+" expected, got "+G);return Y}function R$(...$){let J=0;for(let Y=0;Y<$.length;Y++){let G=$[Y];qJ(G),J+=G.length}let Q=new Uint8Array(J);for(let Y=0,G=0;Y<$.length;Y++){let M=$[Y];Q.set(M,G),G+=M.length}return Q}var MJ=($)=>typeof $==="bigint"&&KJ<=$;function v$($,J,Q){return MJ($)&&MJ(J)&&MJ(Q)&&J<=$&&$<Q}function h0($,J,Q,Y){if(!v$(J,Q,Y))throw Error("expected valid "+$+": "+Q+" <= n < "+Y+", got "+J)}function N8($){let J;for(J=0;$>KJ;$>>=XJ,J+=1);return J}var u0=($)=>(XJ<<BigInt($))-XJ,ZJ=($)=>new Uint8Array($),U8=($)=>Uint8Array.from($);function V8($,J,Q){if(typeof $!=="number"||$<2)throw Error("hashLen must be a number");if(typeof J!=="number"||J<2)throw Error("qByteLen must be a number");if(typeof Q!=="function")throw Error("hmacFn must be a function");let Y=ZJ($),G=ZJ($),M=0,Z=()=>{Y.fill(1),G.fill(0),M=0},X=(...N)=>Q(G,Y,...N),K=(N=ZJ(0))=>{if(G=X(U8([0]),N),Y=X(),N.length===0)return;G=X(U8([1]),N),Y=X()},q=()=>{if(M++>=1000)throw Error("drbg: tried 1000 values");let N=0,V=[];while(N<J){Y=X();let O=Y.slice();V.push(O),N+=Y.length}return R$(...V)};return(N,V)=>{Z(),K(N);let O=void 0;while(!(O=V(q())))K();return Z(),O}}var PQ={bigint:($)=>typeof $==="bigint",function:($)=>typeof $==="function",boolean:($)=>typeof $==="boolean",string:($)=>typeof $==="string",stringOrUint8Array:($)=>typeof $==="string"||J$($),isSafeInteger:($)=>Number.isSafeInteger($),array:($)=>Array.isArray($),field:($,J)=>J.Fp.isValid($),hash:($)=>typeof $==="function"&&Number.isSafeInteger($.outputLen)};function c0($,J,Q={}){let Y=(G,M,Z)=>{let X=PQ[M];if(typeof X!=="function")throw Error("invalid validator function");let K=$[G];if(Z&&K===void 0)return;if(!X(K,$))throw Error("param "+String(G)+" is invalid. Expected "+M+", got "+K)};for(let[G,M]of Object.entries(J))Y(G,M,!1);for(let[G,M]of Object.entries(Q))Y(G,M,!0);return $}function jJ($){let J=new WeakMap;return(Q,...Y)=>{let G=J.get(Q);if(G!==void 0)return G;let M=$(Q,...Y);return J.set(Q,M),M}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var r=BigInt(0),t=BigInt(1),l0=BigInt(2),RQ=BigInt(3),O8=BigInt(4),B8=BigInt(5),L8=BigInt(8);function o($,J){let Q=$%J;return Q>=r?Q:J+Q}function M0($,J,Q){let Y=$;while(J-- >r)Y*=Y,Y%=Q;return Y}function m$($,J){if($===r)throw Error("invert: expected non-zero number");if(J<=r)throw Error("invert: expected positive modulus, got "+J);let Q=o($,J),Y=J,G=r,M=t,Z=t,X=r;while(Q!==r){let q=Y/Q,W=Y%Q,N=G-Z*q,V=M-X*q;Y=Q,Q=W,G=Z,M=X,Z=N,X=V}if(Y!==t)throw Error("invert: does not exist");return o(G,J)}function P8($,J){let Q=($.ORDER+t)/O8,Y=$.pow(J,Q);if(!$.eql($.sqr(Y),J))throw Error("Cannot find square root");return Y}function CQ($,J){let Q=($.ORDER-B8)/L8,Y=$.mul(J,l0),G=$.pow(Y,Q),M=$.mul(J,G),Z=$.mul($.mul(M,l0),G),X=$.mul(M,$.sub(Z,$.ONE));if(!$.eql($.sqr(X),J))throw Error("Cannot find square root");return X}function HQ($){if($<BigInt(3))throw Error("sqrt is not defined for small field");let J=$-t,Q=0;while(J%l0===r)J/=l0,Q++;let Y=l0,G=C$($);while(D8(G,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(Q===1)return P8;let M=G.pow(Y,J),Z=(J+t)/l0;return function(K,q){if(K.is0(q))return q;if(D8(K,q)!==1)throw Error("Cannot find square root");let W=Q,N=K.mul(K.ONE,M),V=K.pow(q,J),O=K.pow(q,Z);while(!K.eql(V,K.ONE)){if(K.is0(V))return K.ZERO;let R=1,D=K.sqr(V);while(!K.eql(D,K.ONE))if(R++,D=K.sqr(D),R===W)throw Error("Cannot find square root");let A=t<<BigInt(W-R-1),S=K.pow(N,A);W=R,N=K.sqr(S),V=K.mul(V,N),O=K.mul(O,S)}return O}}function TQ($){if($%O8===RQ)return P8;if($%L8===B8)return CQ;return HQ($)}var IQ=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function zJ($){let J={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},Q=IQ.reduce((Y,G)=>{return Y[G]="function",Y},J);return c0($,Q)}function SQ($,J,Q){if(Q<r)throw Error("invalid exponent, negatives unsupported");if(Q===r)return $.ONE;if(Q===t)return J;let Y=$.ONE,G=J;while(Q>r){if(Q&t)Y=$.mul(Y,G);G=$.sqr(G),Q>>=t}return Y}function NJ($,J,Q=!1){let Y=Array(J.length).fill(Q?$.ZERO:void 0),G=J.reduce((Z,X,K)=>{if($.is0(X))return Z;return Y[K]=Z,$.mul(Z,X)},$.ONE),M=$.inv(G);return J.reduceRight((Z,X,K)=>{if($.is0(X))return Z;return Y[K]=$.mul(Z,Y[K]),$.mul(Z,X)},M),Y}function D8($,J){let Q=($.ORDER-t)/l0,Y=$.pow(J,Q),G=$.eql(Y,$.ONE),M=$.eql(Y,$.ZERO),Z=$.eql(Y,$.neg($.ONE));if(!G&&!M&&!Z)throw Error("invalid Legendre symbol result");return G?1:M?0:-1}function VJ($,J){if(J!==void 0)x0(J);let Q=J!==void 0?J:$.toString(2).length,Y=Math.ceil(Q/8);return{nBitLength:Q,nByteLength:Y}}function C$($,J,Q=!1,Y={}){if($<=r)throw Error("invalid field: expected ORDER > 0, got "+$);let{nBitLength:G,nByteLength:M}=VJ($,J);if(M>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let Z,X=Object.freeze({ORDER:$,isLE:Q,BITS:G,BYTES:M,MASK:u0(G),ZERO:r,ONE:t,create:(K)=>o(K,$),isValid:(K)=>{if(typeof K!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof K);return r<=K&&K<$},is0:(K)=>K===r,isOdd:(K)=>(K&t)===t,neg:(K)=>o(-K,$),eql:(K,q)=>K===q,sqr:(K)=>o(K*K,$),add:(K,q)=>o(K+q,$),sub:(K,q)=>o(K-q,$),mul:(K,q)=>o(K*q,$),pow:(K,q)=>SQ(X,K,q),div:(K,q)=>o(K*m$(q,$),$),sqrN:(K)=>K*K,addN:(K,q)=>K+q,subN:(K,q)=>K-q,mulN:(K,q)=>K*q,inv:(K)=>m$(K,$),sqrt:Y.sqrt||((K)=>{if(!Z)Z=TQ($);return Z(X,K)}),toBytes:(K)=>Q?UJ(K,M):m0(K,M),fromBytes:(K)=>{if(K.length!==M)throw Error("Field.fromBytes: expected "+M+" bytes, got "+K.length);return Q?WJ(K):D0(K)},invertBatch:(K)=>NJ(X,K),cmov:(K,q,W)=>W?q:K});return Object.freeze(X)}function R8($){if(typeof $!=="bigint")throw Error("field order must be bigint");let J=$.toString(2).length;return Math.ceil(J/8)}function DJ($){let J=R8($);return J+Math.ceil(J/2)}function C8($,J,Q=!1){let Y=$.length,G=R8(J),M=DJ(J);if(Y<16||Y<M||Y>1024)throw Error("expected "+M+"-1024 bytes of input, got "+Y);let Z=Q?WJ($):D0($),X=o(Z,J-t)+t;return Q?UJ(X,G):m0(X,G)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var H8=BigInt(0),RJ=BigInt(1);function OJ($,J){let Q=J.negate();return $?Q:J}function I8($,J){if(!Number.isSafeInteger($)||$<=0||$>J)throw Error("invalid window size, expected [1.."+J+"], got W="+$)}function BJ($,J){I8($,J);let Q=Math.ceil(J/$)+1,Y=2**($-1),G=2**$,M=u0($),Z=BigInt($);return{windows:Q,windowSize:Y,mask:M,maxNumber:G,shiftBy:Z}}function T8($,J,Q){let{windowSize:Y,mask:G,maxNumber:M,shiftBy:Z}=Q,X=Number($&G),K=$>>Z;if(X>Y)X-=M,K+=RJ;let q=J*Y,W=q+Math.abs(X)-1,N=X===0,V=X<0,O=J%2!==0;return{nextN:K,offset:W,isZero:N,isNeg:V,isNegF:O,offsetF:q}}function _Q($,J){if(!Array.isArray($))throw Error("array expected");$.forEach((Q,Y)=>{if(!(Q instanceof J))throw Error("invalid point at index "+Y)})}function yQ($,J){if(!Array.isArray($))throw Error("array of scalars expected");$.forEach((Q,Y)=>{if(!J.isValid(Q))throw Error("invalid scalar at index "+Y)})}var LJ=new WeakMap,S8=new WeakMap;function PJ($){return S8.get($)||1}function _8($,J){return{constTimeNegate:OJ,hasPrecomputes(Q){return PJ(Q)!==1},unsafeLadder(Q,Y,G=$.ZERO){let M=Q;while(Y>H8){if(Y&RJ)G=G.add(M);M=M.double(),Y>>=RJ}return G},precomputeWindow(Q,Y){let{windows:G,windowSize:M}=BJ(Y,J),Z=[],X=Q,K=X;for(let q=0;q<G;q++){K=X,Z.push(K);for(let W=1;W<M;W++)K=K.add(X),Z.push(K);X=K.double()}return Z},wNAF(Q,Y,G){let{ZERO:M,BASE:Z}=$,X=BJ(Q,J);for(let K=0;K<X.windows;K++){let{nextN:q,offset:W,isZero:N,isNeg:V,isNegF:O,offsetF:R}=T8(G,K,X);if(G=q,N)Z=Z.add(OJ(O,Y[R]));else M=M.add(OJ(V,Y[W]))}return{p:M,f:Z}},wNAFUnsafe(Q,Y,G,M=$.ZERO){let Z=BJ(Q,J);for(let X=0;X<Z.windows;X++){if(G===H8)break;let{nextN:K,offset:q,isZero:W,isNeg:N}=T8(G,X,Z);if(G=K,W)continue;else{let V=Y[q];M=M.add(N?V.negate():V)}}return M},getPrecomputes(Q,Y,G){let M=LJ.get(Y);if(!M){if(M=this.precomputeWindow(Y,Q),Q!==1)LJ.set(Y,G(M))}return M},wNAFCached(Q,Y,G){let M=PJ(Q);return this.wNAF(M,this.getPrecomputes(M,Q,G),Y)},wNAFCachedUnsafe(Q,Y,G,M){let Z=PJ(Q);if(Z===1)return this.unsafeLadder(Q,Y,M);return this.wNAFUnsafe(Z,this.getPrecomputes(Z,Q,G),Y,M)},setWindowSize(Q,Y){I8(Y,J),S8.set(Q,Y),LJ.delete(Q)}}}function y8($,J,Q,Y){_Q(Q,$),yQ(Y,J);let G=Q.length,M=Y.length;if(G!==M)throw Error("arrays of points and scalars must have equal length");let Z=$.ZERO,X=N8(BigInt(G)),K=1;if(X>12)K=X-3;else if(X>4)K=X-2;else if(X>0)K=2;let q=u0(K),W=Array(Number(q)+1).fill(Z),N=Math.floor((J.BITS-1)/K)*K,V=Z;for(let O=N;O>=0;O-=K){W.fill(Z);for(let D=0;D<M;D++){let A=Y[D],S=Number(A>>BigInt(O)&q);W[S]=W[S].add(Q[D])}let R=Z;for(let D=W.length-1,A=Z;D>0;D--)A=A.add(W[D]),R=R.add(A);if(V=V.add(R),O!==0)for(let D=0;D<K;D++)V=V.double()}return V}function CJ($){return zJ($.Fp),c0($,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...VJ($.n,$.nBitLength),...$,...{p:$.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function x8($){if($.lowS!==void 0)Q$("lowS",$.lowS);if($.prehash!==void 0)Q$("prehash",$.prehash)}function xQ($){let J=CJ($);c0(J,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});let{endo:Q,Fp:Y,a:G}=J;if(Q){if(!Y.eql(G,Y.ZERO))throw Error("invalid endo: CURVE.a must be 0");if(typeof Q!=="object"||typeof Q.beta!=="bigint"||typeof Q.splitScalar!=="function")throw Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...J})}class A8 extends Error{constructor($=""){super($)}}var O0={Err:A8,_tlv:{encode:($,J)=>{let{Err:Q}=O0;if($<0||$>256)throw new Q("tlv.encode: wrong tag");if(J.length&1)throw new Q("tlv.encode: unpadded data");let Y=J.length/2,G=L$(Y);if(G.length/2&128)throw new Q("tlv.encode: long form length too big");let M=Y>127?L$(G.length/2|128):"";return L$($)+M+G+J},decode($,J){let{Err:Q}=O0,Y=0;if($<0||$>256)throw new Q("tlv.encode: wrong tag");if(J.length<2||J[Y++]!==$)throw new Q("tlv.decode: wrong tlv");let G=J[Y++],M=!!(G&128),Z=0;if(!M)Z=G;else{let K=G&127;if(!K)throw new Q("tlv.decode(long): indefinite length not supported");if(K>4)throw new Q("tlv.decode(long): byte length is too big");let q=J.subarray(Y,Y+K);if(q.length!==K)throw new Q("tlv.decode: length bytes not complete");if(q[0]===0)throw new Q("tlv.decode(long): zero leftmost byte");for(let W of q)Z=Z<<8|W;if(Y+=K,Z<128)throw new Q("tlv.decode(long): not minimal encoding")}let X=J.subarray(Y,Y+Z);if(X.length!==Z)throw new Q("tlv.decode: wrong value length");return{v:X,l:J.subarray(Y+Z)}}},_int:{encode($){let{Err:J}=O0;if($<B0)throw new J("integer: negative integers are not allowed");let Q=L$($);if(Number.parseInt(Q[0],16)&8)Q="00"+Q;if(Q.length&1)throw new J("unexpected DER parsing assertion: unpadded hex");return Q},decode($){let{Err:J}=O0;if($[0]&128)throw new J("invalid signature integer: negative");if($[0]===0&&!($[1]&128))throw new J("invalid signature integer: unnecessary leading zero");return D0($)}},toSig($){let{Err:J,_int:Q,_tlv:Y}=O0,G=Q0("signature",$),{v:M,l:Z}=Y.decode(48,G);if(Z.length)throw new J("invalid signature: left bytes after parsing");let{v:X,l:K}=Y.decode(2,M),{v:q,l:W}=Y.decode(2,K);if(W.length)throw new J("invalid signature: left bytes after parsing");return{r:Q.decode(X),s:Q.decode(q)}},hexFromSig($){let{_tlv:J,_int:Q}=O0,Y=J.encode(2,Q.encode($.r)),G=J.encode(2,Q.encode($.s)),M=Y+G;return J.encode(48,M)}};function HJ($,J){return Y$(m0($,J))}var B0=BigInt(0),d=BigInt(1),wG=BigInt(2),TJ=BigInt(3),AQ=BigInt(4);function EQ($){let J=xQ($),{Fp:Q}=J,Y=C$(J.n,J.nBitLength),G=J.toBytes||((U,j,P)=>{let C=j.toAffine();return R$(Uint8Array.from([4]),Q.toBytes(C.x),Q.toBytes(C.y))}),M=J.fromBytes||((U)=>{let j=U.subarray(1),P=Q.fromBytes(j.subarray(0,Q.BYTES)),C=Q.fromBytes(j.subarray(Q.BYTES,2*Q.BYTES));return{x:P,y:C}});function Z(U){let{a:j,b:P}=J,C=Q.sqr(U),k=Q.mul(C,U);return Q.add(Q.add(k,Q.mul(U,j)),P)}function X(U,j){let P=Q.sqr(j),C=Z(U);return Q.eql(P,C)}if(!X(J.Gx,J.Gy))throw Error("bad curve params: generator point");let K=Q.mul(Q.pow(J.a,TJ),AQ),q=Q.mul(Q.sqr(J.b),BigInt(27));if(Q.is0(Q.add(K,q)))throw Error("bad curve params: a or b");function W(U){return v$(U,d,J.n)}function N(U){let{allowedPrivateKeyLengths:j,nByteLength:P,wrapPrivateKey:C,n:k}=J;if(j&&typeof U!=="bigint"){if(J$(U))U=Y$(U);if(typeof U!=="string"||!j.includes(U.length))throw Error("invalid private key");U=U.padStart(P*2,"0")}let y;try{y=typeof U==="bigint"?U:D0(Q0("private key",U,P))}catch(w){throw Error("invalid private key, expected hex or "+P+" bytes, got "+typeof U)}if(C)y=o(y,k);return h0("private key",y,d,k),y}function V(U){if(!(U instanceof D))throw Error("ProjectivePoint expected")}let O=jJ((U,j)=>{let{px:P,py:C,pz:k}=U;if(Q.eql(k,Q.ONE))return{x:P,y:C};let y=U.is0();if(j==null)j=y?Q.ONE:Q.inv(k);let w=Q.mul(P,j),_=Q.mul(C,j),E=Q.mul(k,j);if(y)return{x:Q.ZERO,y:Q.ZERO};if(!Q.eql(E,Q.ONE))throw Error("invZ was invalid");return{x:w,y:_}}),R=jJ((U)=>{if(U.is0()){if(J.allowInfinityPoint&&!Q.is0(U.py))return;throw Error("bad point: ZERO")}let{x:j,y:P}=U.toAffine();if(!Q.isValid(j)||!Q.isValid(P))throw Error("bad point: x or y not FE");if(!X(j,P))throw Error("bad point: equation left != right");if(!U.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});class D{constructor(U,j,P){if(U==null||!Q.isValid(U))throw Error("x required");if(j==null||!Q.isValid(j)||Q.is0(j))throw Error("y required");if(P==null||!Q.isValid(P))throw Error("z required");this.px=U,this.py=j,this.pz=P,Object.freeze(this)}static fromAffine(U){let{x:j,y:P}=U||{};if(!U||!Q.isValid(j)||!Q.isValid(P))throw Error("invalid affine point");if(U instanceof D)throw Error("projective point not allowed");let C=(k)=>Q.eql(k,Q.ZERO);if(C(j)&&C(P))return D.ZERO;return new D(j,P,Q.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(U){let j=NJ(Q,U.map((P)=>P.pz));return U.map((P,C)=>P.toAffine(j[C])).map(D.fromAffine)}static fromHex(U){let j=D.fromAffine(M(Q0("pointHex",U)));return j.assertValidity(),j}static fromPrivateKey(U){return D.BASE.multiply(N(U))}static msm(U,j){return y8(D,Y,U,j)}_setWindowSize(U){f.setWindowSize(this,U)}assertValidity(){R(this)}hasEvenY(){let{y:U}=this.toAffine();if(Q.isOdd)return!Q.isOdd(U);throw Error("Field doesn't support isOdd")}equals(U){V(U);let{px:j,py:P,pz:C}=this,{px:k,py:y,pz:w}=U,_=Q.eql(Q.mul(j,w),Q.mul(k,C)),E=Q.eql(Q.mul(P,w),Q.mul(y,C));return _&&E}negate(){return new D(this.px,Q.neg(this.py),this.pz)}double(){let{a:U,b:j}=J,P=Q.mul(j,TJ),{px:C,py:k,pz:y}=this,w=Q.ZERO,_=Q.ZERO,E=Q.ZERO,x=Q.mul(C,C),c=Q.mul(k,k),v=Q.mul(y,y),z=Q.mul(C,k);return z=Q.add(z,z),E=Q.mul(C,y),E=Q.add(E,E),w=Q.mul(U,E),_=Q.mul(P,v),_=Q.add(w,_),w=Q.sub(c,_),_=Q.add(c,_),_=Q.mul(w,_),w=Q.mul(z,w),E=Q.mul(P,E),v=Q.mul(U,v),z=Q.sub(x,v),z=Q.mul(U,z),z=Q.add(z,E),E=Q.add(x,x),x=Q.add(E,x),x=Q.add(x,v),x=Q.mul(x,z),_=Q.add(_,x),v=Q.mul(k,y),v=Q.add(v,v),x=Q.mul(v,z),w=Q.sub(w,x),E=Q.mul(v,c),E=Q.add(E,E),E=Q.add(E,E),new D(w,_,E)}add(U){V(U);let{px:j,py:P,pz:C}=this,{px:k,py:y,pz:w}=U,_=Q.ZERO,E=Q.ZERO,x=Q.ZERO,c=J.a,v=Q.mul(J.b,TJ),z=Q.mul(j,k),L=Q.mul(P,y),T=Q.mul(C,w),b=Q.add(j,P),I=Q.add(k,y);b=Q.mul(b,I),I=Q.add(z,L),b=Q.sub(b,I),I=Q.add(j,C);let B=Q.add(k,w);return I=Q.mul(I,B),B=Q.add(z,T),I=Q.sub(I,B),B=Q.add(P,C),_=Q.add(y,w),B=Q.mul(B,_),_=Q.add(L,T),B=Q.sub(B,_),x=Q.mul(c,I),_=Q.mul(v,T),x=Q.add(_,x),_=Q.sub(L,x),x=Q.add(L,x),E=Q.mul(_,x),L=Q.add(z,z),L=Q.add(L,z),T=Q.mul(c,T),I=Q.mul(v,I),L=Q.add(L,T),T=Q.sub(z,T),T=Q.mul(c,T),I=Q.add(I,T),z=Q.mul(L,I),E=Q.add(E,z),z=Q.mul(B,I),_=Q.mul(b,_),_=Q.sub(_,z),z=Q.mul(b,L),x=Q.mul(B,x),x=Q.add(x,z),new D(_,E,x)}subtract(U){return this.add(U.negate())}is0(){return this.equals(D.ZERO)}wNAF(U){return f.wNAFCached(this,U,D.normalizeZ)}multiplyUnsafe(U){let{endo:j,n:P}=J;h0("scalar",U,B0,P);let C=D.ZERO;if(U===B0)return C;if(this.is0()||U===d)return this;if(!j||f.hasPrecomputes(this))return f.wNAFCachedUnsafe(this,U,D.normalizeZ);let{k1neg:k,k1:y,k2neg:w,k2:_}=j.splitScalar(U),E=C,x=C,c=this;while(y>B0||_>B0){if(y&d)E=E.add(c);if(_&d)x=x.add(c);c=c.double(),y>>=d,_>>=d}if(k)E=E.negate();if(w)x=x.negate();return x=new D(Q.mul(x.px,j.beta),x.py,x.pz),E.add(x)}multiply(U){let{endo:j,n:P}=J;h0("scalar",U,d,P);let C,k;if(j){let{k1neg:y,k1:w,k2neg:_,k2:E}=j.splitScalar(U),{p:x,f:c}=this.wNAF(w),{p:v,f:z}=this.wNAF(E);x=f.constTimeNegate(y,x),v=f.constTimeNegate(_,v),v=new D(Q.mul(v.px,j.beta),v.py,v.pz),C=x.add(v),k=c.add(z)}else{let{p:y,f:w}=this.wNAF(U);C=y,k=w}return D.normalizeZ([C,k])[0]}multiplyAndAddUnsafe(U,j,P){let C=D.BASE,k=(w,_)=>_===B0||_===d||!w.equals(C)?w.multiplyUnsafe(_):w.multiply(_),y=k(this,j).add(k(U,P));return y.is0()?void 0:y}toAffine(U){return O(this,U)}isTorsionFree(){let{h:U,isTorsionFree:j}=J;if(U===d)return!0;if(j)return j(D,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:U,clearCofactor:j}=J;if(U===d)return this;if(j)return j(D,this);return this.multiplyUnsafe(J.h)}toRawBytes(U=!0){return Q$("isCompressed",U),this.assertValidity(),G(D,this,U)}toHex(U=!0){return Q$("isCompressed",U),Y$(this.toRawBytes(U))}}D.BASE=new D(J.Gx,J.Gy,Q.ONE),D.ZERO=new D(Q.ZERO,Q.ONE,Q.ZERO);let{endo:A,nBitLength:S}=J,f=_8(D,A?Math.ceil(S/2):S);return{CURVE:J,ProjectivePoint:D,normPrivateKeyToScalar:N,weierstrassEquation:Z,isWithinCurveOrder:W}}function kQ($){let J=CJ($);return c0(J,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...J})}function E8($){let J=kQ($),{Fp:Q,n:Y,nByteLength:G,nBitLength:M}=J,Z=Q.BYTES+1,X=2*Q.BYTES+1;function K(z){return o(z,Y)}function q(z){return m$(z,Y)}let{ProjectivePoint:W,normPrivateKeyToScalar:N,weierstrassEquation:V,isWithinCurveOrder:O}=EQ({...J,toBytes(z,L,T){let b=L.toAffine(),I=Q.toBytes(b.x),B=R$;if(Q$("isCompressed",T),T)return B(Uint8Array.from([L.hasEvenY()?2:3]),I);else return B(Uint8Array.from([4]),I,Q.toBytes(b.y))},fromBytes(z){let L=z.length,T=z[0],b=z.subarray(1);if(L===Z&&(T===2||T===3)){let I=D0(b);if(!v$(I,d,Q.ORDER))throw Error("Point is not on curve");let B=V(I),F;try{F=Q.sqrt(B)}catch($0){let J0=$0 instanceof Error?": "+$0.message:"";throw Error("Point is not on curve"+J0)}let m=(F&d)===d;if((T&1)===1!==m)F=Q.neg(F);return{x:I,y:F}}else if(L===X&&T===4){let I=Q.fromBytes(b.subarray(0,Q.BYTES)),B=Q.fromBytes(b.subarray(Q.BYTES,2*Q.BYTES));return{x:I,y:B}}else{let I=Z,B=X;throw Error("invalid Point, expected length of "+I+", or uncompressed "+B+", got "+L)}}});function R(z){let L=Y>>d;return z>L}function D(z){return R(z)?K(-z):z}let A=(z,L,T)=>D0(z.slice(L,T));class S{constructor(z,L,T){if(h0("r",z,d,Y),h0("s",L,d,Y),this.r=z,this.s=L,T!=null)this.recovery=T;Object.freeze(this)}static fromCompact(z){let L=G;return z=Q0("compactSignature",z,L*2),new S(A(z,0,L),A(z,L,2*L))}static fromDER(z){let{r:L,s:T}=O0.toSig(Q0("DER",z));return new S(L,T)}assertValidity(){}addRecoveryBit(z){return new S(this.r,this.s,z)}recoverPublicKey(z){let{r:L,s:T,recovery:b}=this,I=k(Q0("msgHash",z));if(b==null||![0,1,2,3].includes(b))throw Error("recovery id invalid");let B=b===2||b===3?L+J.n:L;if(B>=Q.ORDER)throw Error("recovery id 2 or 3 invalid");let F=(b&1)===0?"02":"03",m=W.fromHex(F+HJ(B,Q.BYTES)),l=q(B),$0=K(-I*l),J0=K(T*l),L0=W.BASE.multiplyAndAddUnsafe(m,$0,J0);if(!L0)throw Error("point at infinify");return L0.assertValidity(),L0}hasHighS(){return R(this.s)}normalizeS(){return this.hasHighS()?new S(this.r,K(-this.s),this.recovery):this}toDERRawBytes(){return P$(this.toDERHex())}toDERHex(){return O0.hexFromSig(this)}toCompactRawBytes(){return P$(this.toCompactHex())}toCompactHex(){let z=G;return HJ(this.r,z)+HJ(this.s,z)}}let f={isValidPrivateKey(z){try{return N(z),!0}catch(L){return!1}},normPrivateKeyToScalar:N,randomPrivateKey:()=>{let z=DJ(J.n);return C8(J.randomBytes(z),J.n)},precompute(z=8,L=W.BASE){return L._setWindowSize(z),L.multiply(BigInt(3)),L}};function U(z,L=!0){return W.fromPrivateKey(z).toRawBytes(L)}function j(z){if(typeof z==="bigint")return!1;if(z instanceof W)return!0;let T=Q0("key",z).length,b=Q.BYTES,I=b+1,B=2*b+1;if(J.allowedPrivateKeyLengths||G===I)return;else return T===I||T===B}function P(z,L,T=!0){if(j(z)===!0)throw Error("first arg must be private key");if(j(L)===!1)throw Error("second arg must be public key");return W.fromHex(L).multiply(N(z)).toRawBytes(T)}let C=J.bits2int||function(z){if(z.length>8192)throw Error("input is too large");let L=D0(z),T=z.length*8-M;return T>0?L>>BigInt(T):L},k=J.bits2int_modN||function(z){return K(C(z))},y=u0(M);function w(z){return h0("num < 2^"+M,z,B0,y),m0(z,G)}function _(z,L,T=E){if(["recovered","canonical"].some((S0)=>(S0 in T)))throw Error("sign() legacy options not supported");let{hash:b,randomBytes:I}=J,{lowS:B,prehash:F,extraEntropy:m}=T;if(B==null)B=!0;if(z=Q0("msgHash",z),x8(T),F)z=Q0("prehashed msgHash",b(z));let l=k(z),$0=N(L),J0=[w($0),w(l)];if(m!=null&&m!==!1){let S0=m===!0?I(Q.BYTES):m;J0.push(Q0("extraEntropy",S0))}let L0=R$(...J0),T$=l;function c$(S0){let d0=C(S0);if(!O(d0))return;let l$=q(d0),M$=W.BASE.multiply(d0).toAffine(),_0=K(M$.x);if(_0===B0)return;let Z$=K(l$*K(T$+_0*$0));if(Z$===B0)return;let i0=(M$.x===_0?0:2)|Number(M$.y&d),fJ=Z$;if(B&&R(Z$))fJ=D(Z$),i0^=1;return new S(_0,fJ,i0)}return{seed:L0,k2sig:c$}}let E={lowS:J.lowS,prehash:!1},x={lowS:J.lowS,prehash:!1};function c(z,L,T=E){let{seed:b,k2sig:I}=_(z,L,T),B=J;return V8(B.hash.outputLen,B.nByteLength,B.hmac)(b,I)}W.BASE._setWindowSize(8);function v(z,L,T,b=x){let I=z;L=Q0("msgHash",L),T=Q0("publicKey",T);let{lowS:B,prehash:F,format:m}=b;if(x8(b),"strict"in b)throw Error("options.strict was renamed to lowS");if(m!==void 0&&m!=="compact"&&m!=="der")throw Error("format must be compact or der");let l=typeof I==="string"||J$(I),$0=!l&&!m&&typeof I==="object"&&I!==null&&typeof I.r==="bigint"&&typeof I.s==="bigint";if(!l&&!$0)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");let J0=void 0,L0;try{if($0)J0=new S(I.r,I.s);if(l){try{if(m!=="compact")J0=S.fromDER(I)}catch(i0){if(!(i0 instanceof O0.Err))throw i0}if(!J0&&m!=="der")J0=S.fromCompact(I)}L0=W.fromHex(T)}catch(i0){return!1}if(!J0)return!1;if(B&&J0.hasHighS())return!1;if(F)L=J.hash(L);let{r:T$,s:c$}=J0,S0=k(L),d0=q(c$),l$=K(S0*d0),M$=K(T$*d0),_0=W.BASE.multiplyAndAddUnsafe(L0,l$,M$)?.toAffine();if(!_0)return!1;return K(_0.x)===T$}return{CURVE:J,getPublicKey:U,getSharedSecret:P,sign:c,verify:v,ProjectivePoint:W,Signature:S,utils:f}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function wQ($){return{hash:$,hmac:(J,...Q)=>GJ($,J,nJ(...Q)),randomBytes:oJ}}function k8($,J){let Q=(Y)=>E8({...$,...wQ(Y)});return{...Q(J),create:Q}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var F8=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),w8=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),bQ=BigInt(0),FQ=BigInt(1),IJ=BigInt(2),b8=($,J)=>($+J/IJ)/J;function gQ($){let J=F8,Q=BigInt(3),Y=BigInt(6),G=BigInt(11),M=BigInt(22),Z=BigInt(23),X=BigInt(44),K=BigInt(88),q=$*$*$%J,W=q*q*$%J,N=M0(W,Q,J)*W%J,V=M0(N,Q,J)*W%J,O=M0(V,IJ,J)*q%J,R=M0(O,G,J)*O%J,D=M0(R,M,J)*R%J,A=M0(D,X,J)*D%J,S=M0(A,K,J)*A%J,f=M0(S,X,J)*D%J,U=M0(f,Q,J)*W%J,j=M0(U,Z,J)*R%J,P=M0(j,Y,J)*q%J,C=M0(P,IJ,J);if(!SJ.eql(SJ.sqr(C),$))throw Error("Cannot find square root");return C}var SJ=C$(F8,void 0,void 0,{sqrt:gQ}),_J=k8({a:bQ,b:BigInt(7),Fp:SJ,n:w8,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:($)=>{let J=w8,Q=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-FQ*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),G=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),M=Q,Z=BigInt("0x100000000000000000000000000000000"),X=b8(M*$,J),K=b8(-Y*$,J),q=o($-X*Q-K*G,J),W=o(-X*Y-K*M,J),N=q>Z,V=W>Z;if(N)q=J-q;if(V)W=J-W;if(q>Z||W>Z)throw Error("splitScalar: Endomorphism failed, k="+$);return{k1neg:N,k1:q,k2neg:V,k2:W}}}},q8);function h$(){let $=_J.utils.randomPrivateKey();return"0x"+Buffer.from($).toString("hex")}function G$($){let J=$.startsWith("0x")?$.slice(2):$,Q=Buffer.from(J,"hex"),Y=_J.getPublicKey(Q,!1),M=o0(Y.slice(1)).slice(-20),Z="0x"+Buffer.from(M).toString("hex");return C0(Z)}function u$($){let J;if(typeof $==="string"){let Y=$.startsWith("0x")?$.slice(2):$;J=Buffer.from(Y,"hex")}else J=$;let Q=o0(J);return"0x"+Buffer.from(Q).toString("hex")}class e extends B${httpStatus;constructor($,J){super("ReferralError",$,{...J,source:J?.source||"REFERRALS"});this.httpStatus=J?.httpStatus}static notFoundOnChain($){return new e(`Referral not found on-chain for signer ${$}`,{code:"REFERRAL_NOT_FOUND_ONCHAIN",source:"ONCHAIN",httpStatus:404,context:{signer:$}})}static alreadyClaimed($){return new e(`Referral for signer ${$} has already been claimed`,{code:"REFERRAL_ALREADY_CLAIMED",source:"ONCHAIN",httpStatus:410,context:{signer:$}})}static storeFailed($){return new e(`Failed to store referral: ${$}`,{code:"REFERRAL_STORE_FAILED"})}static storeBatchFailed($){return new e(`Failed to store referral batch: ${$}`,{code:"REFERRAL_STORE_BATCH_FAILED"})}static retrieveFailed($,J){return new e(`Failed to retrieve referral: ${$}`,{code:"REFERRAL_RETRIEVE_FAILED",httpStatus:J})}static listFailed($){return new e(`Failed to list referrals: ${$}`,{code:"REFERRAL_LIST_FAILED"})}static authRequired(){return new e("Authentication required to list referrals",{code:"REFERRAL_AUTH_REQUIRED",source:"VALIDATION"})}}class u extends B${constructor($,J){super("InvitationError",$,{...J,source:J?.source||"INVITATIONS"})}static noPathFound($,J,Q){return new u(`No valid invitation path found from ${$} to ${J}. ${Q||"The inviter may not have enough balance of the proxy inviter's token or there's no trust connection."}`,{code:"INVITATION_NO_PATH",source:"PATHFINDING",context:{from:$,to:J,reason:Q}})}static noProxyInviters($){return new u(`No proxy inviters found for ${$}. The inviter must have mutual trust connections with users who are also trusted by the invitation module, and these users must have sufficient balance.`,{code:"INVITATION_NO_PROXY_INVITERS",source:"VALIDATION",context:{inviter:$}})}static insufficientBalance($,J,Q,Y,G,M){let Z=Number(Q)/1000000000000000000,X=Number(Y)/1000000000000000000;return new u(`Insufficient balance for ${$} invitation(s). Can only afford ${J} invitation(s). Requested: ${Z.toFixed(6)} CRC, Available: ${X.toFixed(6)} CRC.`,{code:"INVITATION_INSUFFICIENT_BALANCE",source:"VALIDATION",context:{from:G,to:M,requestedInvites:$,availableInvites:J,requested:Q.toString(),available:Y.toString(),requestedCrc:Z,availableCrc:X}})}static inviteeAlreadyRegistered($,J){return new u(`Invitee ${J} is already registered as a human in Circles Hub. Cannot invite an already registered user.`,{code:"INVITATION_INVITEE_ALREADY_REGISTERED",source:"VALIDATION",context:{inviter:$,invitee:J}})}static noAddressesProvided(){return new u("At least one address must be provided for invitation.",{code:"INVITATION_NO_ADDRESSES_PROVIDED",source:"VALIDATION"})}}var g8=[];for(let $=0;$<256;$++)g8[$]=$.toString(16).padStart(2,"0");function H$($){let J="0x";for(let Q=0;Q<$.length;Q++)J+=g8[$[Q]];return J}function f8($){let J=new Uint8Array($.length*2);return $.forEach((Q,Y)=>{let G=Q>>8,M=Q&255,Z=2*Y;J[Z]=G,J[Z+1]=M}),H$(J)}function v8($,J,Q){let Y=new Set([J.toLowerCase(),Q.toLowerCase()]);$.forEach((Z)=>{Y.add(Z.from.toLowerCase()),Y.add(Z.to.toLowerCase()),Y.add(Z.tokenOwner.toLowerCase())});let G=[...Y].sort((Z,X)=>{let K=BigInt(Z),q=BigInt(X),W=K<q,N=K>q;return W?-1:N?1:0}),M={};return G.forEach((Z,X)=>{M[Z]=X}),{sorted:G,idx:M}}function fQ($,J){let Q=new Set,Y=[],G=null;if($.forEach((M,Z)=>{let X=M.from.toLowerCase(),K=M.to.toLowerCase();if(X===J&&K===J)G=Z;else if(K===J)Y.push(Z)}),G!==null)Q.add(G);else Y.forEach((M)=>Q.add(M));return Q}function yJ($,J,Q,Y){let G=$.toLowerCase(),M=J.toLowerCase(),{sorted:Z,idx:X}=v8(Y,G,M),K=fQ(Y,M),q=Y.map((S,f)=>{return{streamSinkId:K.has(f)?1:0,amount:S.value}});if(K.size===0)throw Error(`No terminal edges detected. Flow must have at least one edge delivering to receiver ${M}`);let W=Array.from(K),N=[{sourceCoordinate:X[G],flowEdgeIds:W,data:new Uint8Array(0)}],V=[];Y.forEach((S)=>{V.push(X[S.tokenOwner.toLowerCase()]),V.push(X[S.from.toLowerCase()]),V.push(X[S.to.toLowerCase()])});let O=f8(V),R=BigInt(Q),D=q.filter((S)=>S.streamSinkId===1).reduce((S,f)=>S+BigInt(f.amount.toString()),BigInt(0));if(D!==R)throw Error(`Terminal sum ${D} does not equal expected ${R}`);return{flowVertices:Z,flowEdges:q,streams:N,packedCoordinates:O,sourceCoordinate:X[G]}}function xJ($,J){let Q=$.streams.map((Y)=>({sourceCoordinate:Y.sourceCoordinate,flowEdgeIds:Y.flowEdgeIds,data:Y.data instanceof Uint8Array?H$(Y.data):Y.data}));if(J&&Q.length>0)Q[0].data=J instanceof Uint8Array?H$(J):J;return Q}async function AJ($,J,Q){let Y=new Map,G=new Set;return Q.transfers.forEach((X)=>{if($.toLowerCase()===X.from.toLowerCase())G.add(X.tokenOwner.toLowerCase())}),(await new b$(J).token.getTokenInfoBatch(Array.from(G))).forEach((X)=>{if(X.isWrapped&&!X.isInflationary)X.tokenType="CrcV2_ERC20WrapperDeployed_Demurraged";Y.set(X.tokenAddress.toLowerCase(),X)}),Y}function EJ($,J){let Q={};return $.transfers.forEach((Y)=>{let G=J.get(Y.tokenOwner.toLowerCase());if(G&&G.tokenType.startsWith("CrcV2_ERC20WrapperDeployed")){if(!Q[Y.tokenOwner])Q[Y.tokenOwner]=[BigInt(0),G.tokenType];Q[Y.tokenOwner][0]+=BigInt(Y.value)}}),Q}function kJ($,J){let Q=$.transfers.map((Y)=>{let G=J.get(Y.tokenOwner.toLowerCase());if(G&&G.tokenType.startsWith("CrcV2_ERC20WrapperDeployed"))return{...Y,tokenOwner:G.tokenOwner};return Y});return{...$,transfers:Q}}class a extends K${constructor($,J){super("TransferError",$,{...J,source:J?.source||"TRANSFERS"})}static noPathFound($,J,Q){return new a(`No valid transfer path found from ${$} to ${J}. ${Q||"This could mean there's no trust connection, insufficient balance, or the tokens are not transferable."}`,{code:"TRANSFER_NO_PATH",source:"PATHFINDING",context:{from:$,to:J,reason:Q}})}static insufficientBalance($,J,Q,Y){let G=Number($)/1000000000000000000,M=Number(J)/1000000000000000000;return new a(`Insufficient balance for transfer. Requested: ${G.toFixed(6)} CRC, Available: ${M.toFixed(6)} CRC.`,{code:"TRANSFER_INSUFFICIENT_BALANCE",source:"VALIDATION",context:{from:Q,to:Y,requested:$.toString(),available:J.toString(),requestedCrc:G,availableCrc:M}})}static wrappedTokensRequired(){return new a("Insufficient unwrapped token balance for transfer. Your balance contains wrapped tokens (ERC20 wrappers), but useWrappedBalances option is not enabled. Please enable it by passing { useWrappedBalances: true } in the transfer options.",{code:"TRANSFER_WRAPPED_TOKENS_REQUIRED",source:"VALIDATION"})}static unregisteredAvatars($){return new a(`Flow matrix contains ${$.length} unregistered avatar(s): ${$.join(", ")}. All addresses in the flow must be registered Circles avatars (human or group).`,{code:"TRANSFER_UNREGISTERED_AVATARS",source:"FLOW_MATRIX",context:{unregisteredAddresses:$,count:$.length}})}static flowMatrixMismatch($,J){return new a(`Flow matrix terminal sum (${$}) does not equal expected amount (${J})`,{code:"TRANSFER_FLOW_MATRIX_MISMATCH",source:"FLOW_MATRIX",context:{terminalSum:$.toString(),expected:J.toString()}})}static emptyPath($,J){return new a(`Transfer path is empty for route from ${$} to ${J}`,{code:"TRANSFER_EMPTY_PATH",source:"PATHFINDING",context:{from:$,to:J}})}}class p0{config;hubV2;liftERC20;rpcClient;pathfinder;balance;group;constructor($){this.config=$,this.hubV2=new H0({address:$.v2HubAddress,rpcUrl:$.circlesRpcUrl}),this.liftERC20=new F$({address:$.liftERC20Address,rpcUrl:$.circlesRpcUrl}),this.rpcClient=new P0($.circlesRpcUrl),this.pathfinder=new z0(this.rpcClient),this.balance=new g0(this.rpcClient),this.group=new v0(this.rpcClient)}async buildFlowMatrixTx($,J,Q,Y,G=!1){let M=$.toLowerCase(),Z=J.toLowerCase();if(!Q.transfers||Q.transfers.length===0)throw a.noPathFound(M,Z);let X={...Q};if(G&&Y?.toTokens?.length===1){let f=Y.toTokens[0].toLowerCase();if(Q.maxFlow>0n)X.transfers.push({from:Z,to:Z,tokenOwner:f,value:Q.maxFlow})}let K=await AJ(M,this.config.circlesRpcUrl,X),q=EJ(X,K),W=Object.keys(q).length>0;if(W&&!Y?.useWrappedBalances)throw a.wrappedTokensRequired();let N=[],V=[];if(W){let f=await this._getTokenBalanceMap(M),U=this._createDemurragedUnwrapCalls(q),{unwrapCalls:j,wrapCalls:P}=this._createInflationaryUnwrapAndWrapCalls(q,K,f);N=[...U,...j],V=P,X=kJ(X,K)}let O=yJ(M,Z,X.maxFlow,X.transfers),R=xJ(O,Y?.txData),D=this.hubV2.operateFlowMatrix(O.flowVertices,O.flowEdges,R,O.packedCoordinates),A=!1;try{A=await this.hubV2.isApprovedForAll(M,M)}catch(f){console.warn("Failed to check approval status, including approval transaction:",f)}return[...A?[]:[this.hubV2.setApprovalForAll(M,!0)],...N,D,...V]}async constructAdvancedTransfer($,J,Q,Y,G=!1){let M=$.toLowerCase(),Z=J.toLowerCase(),X=BigInt(Q);if(M===Z&&Y?.fromTokens?.length===1&&Y?.toTokens?.length===1){let O=Y.fromTokens[0],R=Y.toTokens[0],[D,A]=await Promise.all([this.liftERC20.erc20Circles(0,R),this.liftERC20.erc20Circles(1,R)]);if(O.toLowerCase()===D.toLowerCase()&&D!==w0){let f=new s0({address:O,rpcUrl:this.config.circlesRpcUrl}).unwrap(X);return[{to:f.to,data:f.data,value:f.value??0n}]}if(O.toLowerCase()===A.toLowerCase()&&A!==w0){let S=new r0({address:O,rpcUrl:this.config.circlesRpcUrl}),f=i.attoCirclesToAttoStaticCircles(X),U=S.unwrap(f);return[{to:U.to,data:U.data,value:U.value??0n}]}}let K=this._truncateToSixDecimals(X),q=await this._getDefaultTokenExcludeList(Z,Y?.excludeFromTokens),{...W}=Y||{},N={...W,...q?{excludeFromTokens:q}:{}},V=await this.pathfinder.findPath({from:M,to:Z,targetFlow:K,...N});if(!V.transfers||V.transfers.length===0)throw a.noPathFound(M,Z);if(V.maxFlow<K)throw a.insufficientBalance(K,V.maxFlow,M,Z);return this.buildFlowMatrixTx(M,Z,V,Y,G)}async constructReplenish($,J,Q,Y){let G=$.toLowerCase(),M=J.toLowerCase(),Z=(Y||$).toLowerCase(),X=BigInt(Q),q=(await this.balance.getTokenBalances(G)).filter((B)=>B.tokenOwner.toLowerCase()===M),W=0n,N=0n,V=0n,O=null,R=null;for(let B of q)if(B.isWrapped)if(B.tokenType.includes("Demurrage"))N=BigInt(B.attoCircles),O=B.tokenAddress;else V=BigInt(B.staticAttoCircles),R=B.tokenAddress;else W=BigInt(B.attoCircles);let D=W+N+i.attoStaticCirclesToAttoCircles(V),A=[];if(W>=X){if(console.log(`✓ Already have ${Number(W)/1000000000000000000} CRC unwrapped (target: ${Number(X)/1000000000000000000} CRC). No replenish needed.`),Z!==G){let B=await this.hubV2.toTokenId(M),F=this.hubV2.safeTransferFrom(G,Z,B,X);A.push({to:F.to,data:F.data,value:F.value??0n})}return A}let S=X-W;if(console.log(`Current unwrapped: ${Number(W)/1000000000000000000} CRC`),console.log(`Target amount: ${Number(X)/1000000000000000000} CRC`),console.log(`Need to acquire: ${Number(S)/1000000000000000000} CRC`),D>=X){let B=S;if(N>0n&&O&&B>0n){let F=B>N?N:B,l=new s0({address:O,rpcUrl:this.config.circlesRpcUrl}).unwrap(F);A.push({to:l.to,data:l.data,value:l.value??0n}),B-=F}if(V>0n&&R&&B>0n){let F=i.attoCirclesToAttoStaticCircles(B),m=F>V?V:F,$0=new r0({address:R,rpcUrl:this.config.circlesRpcUrl}).unwrap(m);A.push({to:$0.to,data:$0.data,value:$0.value??0n})}if(Z!==G){let F=await this.hubV2.toTokenId(M),m=this.hubV2.safeTransferFrom(G,Z,F,X);A.push({to:m.to,data:m.data,value:m.value??0n})}return A}let U=!await this.hubV2.isTrusted(G,M),j=BigInt(Math.floor(Date.now()/1000)+31536000),P=i.truncateToInt64(S),C=S%i.FACTOR_1E12!==0n,k=i.blowUpToBigInt(C?P+1n:P),y;try{y=await this.pathfinder.findPath({from:G,to:Z,targetFlow:k,toTokens:[M],useWrappedBalances:!0,simulatedTrusts:U?[{truster:G,trustee:M}]:void 0})}catch(B){let F=Number(D)/1000000000000000000,m=Number(X)/1000000000000000000,l=Number(S)/1000000000000000000;throw new a(`Insufficient tokens to replenish. Target: ${m.toFixed(6)} CRC, Current unwrapped: ${Number(W)/1000000000000000000} CRC, Need: ${l.toFixed(6)} CRC, Available (including all paths): ${F.toFixed(6)} CRC. Cannot acquire the remaining ${(Number(S-(D-W))/1000000000000000000).toFixed(6)} CRC.`,{code:"REPLENISH_INSUFFICIENT_TOKENS",source:"VALIDATION",context:{from:G,tokenId:M,target:X.toString(),unwrapped:W.toString(),deficit:S.toString(),available:D.toString(),targetCrc:m,unwrappedCrc:Number(W)/1000000000000000000,deficitCrc:l,availableCrc:F}})}if(!y.transfers||y.transfers.length===0)throw a.noPathFound(G,Z,`No path to acquire token ${M}`);if(y.maxFlow<k){let B=Number(y.maxFlow)/1000000000000000000,F=Number(k)/1000000000000000000;throw new a(`Pathfinder can only provide ${B.toFixed(6)} CRC of the ${F.toFixed(6)} CRC deficit needed for token ${M}.`,{code:"REPLENISH_INSUFFICIENT_PATH_FLOW",source:"PATHFINDING",context:{from:G,tokenId:M,deficit:k.toString(),pathFlow:y.maxFlow.toString(),deficitCrc:F,pathFlowCrc:B}})}if(U){let B=this.hubV2.trust(M,j);A.push({to:B.to,data:B.data,value:B.value??0n})}let w=await AJ(G,this.config.circlesRpcUrl,y),_=EJ(y,w),E=Object.keys(_).length>0,x=[],c=[];if(E){let B=await this._getTokenBalanceMap(G),F=this._createDemurragedUnwrapCalls(_),{unwrapCalls:m,wrapCalls:l}=this._createInflationaryUnwrapAndWrapCalls(_,w,B);x=[...F,...m],c=l,y=kJ(y,w)}let v=yJ(G,Z,y.maxFlow,y.transfers),z=xJ(v),L=this.hubV2.operateFlowMatrix(v.flowVertices,v.flowEdges,z,v.packedCoordinates),T={to:L.to,data:L.data,value:L.value??0n},b=!1;try{b=await this.hubV2.isApprovedForAll(G,G)}catch(B){console.warn("Failed to check approval status, including approval transaction:",B)}if(U){let B=this.hubV2.trust(M,0n);c.push({to:B.to,data:B.data,value:B.value??0n})}let I=b?[]:[{to:this.hubV2.setApprovalForAll(G,!0).to,data:this.hubV2.setApprovalForAll(G,!0).data,value:0n}];return A.push(...I,...x,T,...c),A}async _getTokenBalanceMap($){let J=await this.balance.getTokenBalances($),Q=new Map;return J.forEach((Y)=>{Q.set(Y.tokenAddress.toLowerCase(),Y.staticAttoCircles)}),Q}_createDemurragedUnwrapCalls($){let J=[];for(let[Q,[Y,G]]of Object.entries($)){if(G!=="CrcV2_ERC20WrapperDeployed_Demurraged")continue;let Z=new s0({address:Q,rpcUrl:this.config.circlesRpcUrl}).unwrap(Y);J.push({to:Z.to,data:Z.data,value:Z.value??0n})}return J}_createInflationaryUnwrapAndWrapCalls($,J,Q){let Y=[],G=[];for(let[M,[Z,X]]of Object.entries($)){if(X!=="CrcV2_ERC20WrapperDeployed_Inflationary")continue;let K=J.get(M.toLowerCase()),q=Q.get(M.toLowerCase())||0n;if(q===0n)continue;let N=new r0({address:M,rpcUrl:this.config.circlesRpcUrl}).unwrap(q);Y.push({to:N.to,data:N.data,value:N.value??0n});let V=K?.tokenOwner,O=i.attoStaticCirclesToAttoCircles(q)-Z;if(O>0n){let R=this.hubV2.wrap(V,O,1);G.push({to:R.to,data:R.data,value:R.value??0n})}}return{unwrapCalls:Y,wrapCalls:G}}_truncateToSixDecimals($){let J=BigInt(1e6),Q=BigInt(10)**BigInt(18);return $/(Q/J)*(Q/J)}async _getDefaultTokenExcludeList($,J){let Q=await this.group.findGroups(1,{mintHandlerEquals:$}),Y=new Set;if(Q.length>0){let G=Q[0];if(Y.add(G.group.toLowerCase()),G.erc20WrapperDemurraged)Y.add(G.erc20WrapperDemurraged.toLowerCase());if(G.erc20WrapperStatic)Y.add(G.erc20WrapperStatic.toLowerCase())}if(J?.forEach((G)=>Y.add(G.toLowerCase())),Y.size===0)return;return Array.from(Y)}}var m8=a0;class wJ{config;rpcClient;pathfinder;trust;token;hubV2;referralsModule;invitationFarm;invitationModuleContract;constructor($){if(!$.referralsServiceUrl)throw new u("referralsServiceUrl is required in config",{code:"INVITATION_MISSING_CONFIG",source:"INVITATIONS",context:{missingField:"referralsServiceUrl"}});this.config=$,this.rpcClient=new P0($.circlesRpcUrl),this.pathfinder=new z0(this.rpcClient),this.trust=new F0(this.rpcClient),this.token=new f0(this.rpcClient),this.hubV2=new H0({address:$.v2HubAddress,rpcUrl:$.circlesRpcUrl}),this.referralsModule=new e0({address:$.referralsModuleAddress,rpcUrl:$.circlesRpcUrl}),this.invitationFarm=new $$({address:$.invitationFarmAddress,rpcUrl:$.circlesRpcUrl}),this.invitationModuleContract=new f$({address:$.invitationModuleAddress,rpcUrl:$.circlesRpcUrl})}async ensureInviterSetup($){let J=$.toLowerCase(),Q=this.config.invitationModuleAddress,Y=[],G=new g$({address:J,rpcUrl:this.config.circlesRpcUrl});if(!await G.isModuleEnabled(Q))Y.push(G.enableModule(Q)),Y.push(this.invitationModuleContract.trustInviter(J));else if(!await this.hubV2.isTrusted(Q,J))Y.push(this.invitationModuleContract.trustInviter(J));return Y}async saveReferralData($,J){try{let Q=await fetch(`${this.config.referralsServiceUrl}/store`,{method:"POST",headers:{accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({privateKey:J,inviter:$})});if(!Q.ok)throw new u(`HTTP error! status: ${Q.status}`,{code:"INVITATION_HTTP_ERROR",source:"INVITATIONS",context:{status:Q.status,url:`${this.config.referralsServiceUrl}/store`}})}catch(Q){throw new u(`Failed to save referral data: ${Q instanceof Error?Q.message:"Unknown error"}`,{code:"INVITATION_SAVE_REFERRAL_FAILED",source:"INVITATIONS",cause:Q})}}async listReferrals($,J=10,Q=0){try{let Y=new URL(`${this.config.referralsServiceUrl}/list/${$}`);Y.searchParams.set("limit",String(J)),Y.searchParams.set("offset",String(Q));let G=await fetch(Y.toString(),{method:"GET",headers:{accept:"application/json"}});if(!G.ok)throw new u(`HTTP error! status: ${G.status}`,{code:"INVITATION_HTTP_ERROR",source:"INVITATIONS",context:{status:G.status,url:Y.toString()}});return await G.json()}catch(Y){if(Y instanceof u)throw Y;throw new u(`Failed to list referrals: ${Y instanceof Error?Y.message:"Unknown error"}`,{code:"INVITATION_LIST_REFERRALS_FAILED",source:"INVITATIONS",cause:Y})}}orderRealInviters($,J){let Q=J.toLowerCase();return $.sort((Y,G)=>{let M=Y.address.toLowerCase()===Q,Z=G.address.toLowerCase()===Q;if(M&&!Z)return-1;if(!M&&Z)return 1;return 0})}async generateInvite($,J){let Q=$.toLowerCase(),Y=J.toLowerCase();if(await this.hubV2.isHuman(Y))throw u.inviteeAlreadyRegistered(Q,Y);let M=await this.ensureInviterSetup(Q),Z=await this.getRealInviters(Q),X=[...M];if(Z.length>0){console.log("[generateInvite] Using STANDARD PATH (proxy inviters available)");let K=Z[0].address,q=await this.findInvitePath(Q,K),W=await this.generateInviteData([Y],!1),V=await new p0(this.config).buildFlowMatrixTx(Q,this.config.invitationModuleAddress,q,{toTokens:[K],useWrappedBalances:!0,txData:E$(W)},!0);X.push(...V)}else{console.log("[generateInvite] Using FARM FALLBACK PATH (no proxy inviters available)");let K=new p0(this.config),q=await this.findFarmInvitePath(Q),W=await K.buildFlowMatrixTx(Q,b0,q,{toTokens:[a0],useWrappedBalances:!0},!0);X.push(...W);let N="0x20EcD8bDeb2F48d8a7c94E542aA4feC5790D9676",V=await this.invitationFarm.read("claimInvite",[],{from:N}),O=this.invitationFarm.claimInvite();X.push(O);let R=await this.invitationFarm.invitationModule(),D=Y0(["address"],[Y]),A=this.hubV2.safeTransferFrom(Q,R,V,p,D);X.push(A)}return X}async findInvitePath($,J){let Q=$.toLowerCase(),Y;if(J)Y=J.toLowerCase();else{let M=await this.getRealInviters(Q);if(M.length===0)throw u.noPathFound(Q,this.config.invitationModuleAddress);Y=M[0].address}let G=await this.pathfinder.findPath({from:Q,to:this.config.invitationModuleAddress,targetFlow:p,toTokens:[Y],useWrappedBalances:!0,simulatedTrusts:[{truster:this.config.invitationModuleAddress,trustee:Q}]});if(!G.transfers||G.transfers.length===0)throw u.noPathFound(Q,this.config.invitationModuleAddress);if(G.maxFlow<p){let Z=Number(G.maxFlow/p);throw u.insufficientBalance(1,Z,p,G.maxFlow,Q,this.config.invitationModuleAddress)}return G}async findFarmInvitePath($){let J=$.toLowerCase(),Q=await this.pathfinder.findPath({from:J,to:b0,targetFlow:p,toTokens:[m8],useWrappedBalances:!0});if(!Q.transfers||Q.transfers.length===0)throw u.noPathFound(J,b0);if(Q.maxFlow<p){let G=Number(Q.maxFlow/p);throw u.insufficientBalance(1,G,p,Q.maxFlow,J,b0)}return Q}async getRealInviters($){let J=$.toLowerCase(),[Q,Y,G,M,Z]=await Promise.all([a0!=="0x0000000000000000000000000000000000000000"?this.trust.getTrusts(a0):Promise.resolve([]),this.trust.getTrustedBy(J),this.trust.getMutualTrusts(J),this.trust.getTrusts(this.config.invitationModuleAddress),this.trust.getMutualTrusts(this.config.invitationModuleAddress)]),X=new Set(Q.map((j)=>j.objectAvatar.toLowerCase())),K=new Set([...Y.map((j)=>j.objectAvatar.toLowerCase()),...G.map((j)=>j.objectAvatar.toLowerCase())]),q=new Set([...M.map((j)=>j.objectAvatar.toLowerCase()),...Z.map((j)=>j.objectAvatar.toLowerCase())]),N=[...[...K].filter((j)=>q.has(j)&&!X.has(j)),J];if(N.length===0)return[];let V=await this.pathfinder.findPath({from:J,to:this.config.invitationModuleAddress,useWrappedBalances:!0,targetFlow:j$,toTokens:N,simulatedTrusts:[{truster:this.config.invitationModuleAddress,trustee:J}]});if(!V.transfers||V.transfers.length===0)return[];let O=this.config.invitationModuleAddress.toLowerCase(),R=V.transfers.filter((j)=>j.to.toLowerCase()===O),D=[...new Set(R.map((j)=>j.tokenOwner.toLowerCase()))],A=await this.token.getTokenInfoBatch(D),S=new Map;for(let j of A){let P=j.tokenAddress??j.token;if(P&&j?.tokenOwner)S.set(P.toLowerCase(),j.tokenOwner.toLowerCase())}let f=new Map;for(let j of R){let P=j.tokenOwner.toLowerCase(),C=S.get(P)??P;f.set(C,(f.get(C)??0n)+j.value)}let U=[];for(let[j,P]of f.entries()){let C=Number(P/p);if(C>=1)U.push({address:j,possibleInvites:C})}return this.orderRealInviters(U,J)}async generateReferral($){let J=$.toLowerCase(),Q=h$(),Y=G$(Q),G=await this.ensureInviterSetup(J),M=await this.getRealInviters(J),Z=[...G];if(M.length>0){console.log("[generateReferral] Using STANDARD PATH (proxy inviters available)");let X=new p0(this.config),K=await this.generateInviteData([Y],!0),q=M[0].address,W=await this.findInvitePath(J,q),N=await X.buildFlowMatrixTx(J,this.config.invitationModuleAddress,W,{toTokens:[q],useWrappedBalances:!0,txData:E$(K)},!0);Z.push(...N)}else{console.log("[generateReferral] Using FARM FALLBACK PATH (no proxy inviters available)");let X=new p0(this.config),K=await this.findFarmInvitePath(J),q=await X.buildFlowMatrixTx(J,b0,K,{toTokens:[m8],useWrappedBalances:!0},!0);Z.push(...q);let W="0x20EcD8bDeb2F48d8a7c94E542aA4feC5790D9676",N=await this.invitationFarm.read("claimInvite",[],{from:W}),V=this.invitationFarm.claimInvite();Z.push(V);let O=await this.invitationFarm.invitationModule(),R=this.referralsModule.createAccount(Y).data,D=Y0(["address","bytes"],[this.config.referralsModuleAddress,R]),A=this.hubV2.safeTransferFrom(J,O,N,p,D);Z.push(A)}return{transactions:Z,privateKey:Q}}async generateInviteData($,J=!0){if($.length===0)throw u.noAddressesProvided();if(!J)if($.length===1)return Y0(["address"],[$[0]]);else return Y0(["address[]"],[$]);if($.length===1){let Y=this.referralsModule.createAccount($[0]).data;return Y0(["address","bytes"],[this.config.referralsModuleAddress,Y])}else{let Y=this.referralsModule.createAccounts($).data;return Y0(["address","bytes"],[this.config.referralsModuleAddress,Y])}}computeAddress($){let Q=$.toLowerCase().replace("0x","").padStart(64,"0"),Y=t$.replace("0x","")+Q,G=u$("0x"+Y),M="ff",Z=o$.toLowerCase().replace("0x",""),X=G.replace("0x",""),K=a$.replace("0x",""),q="ff"+Z+X+K,N="0x"+u$("0x"+q).slice(-40);return C0(N)}generateSecrets($){return Array.from({length:$},()=>{let J=h$(),Q=G$(J).toLowerCase();return{secret:J,signer:Q}})}}class mQ{referralsModuleAddress;invitations;invitationFarm;referralsModule;hubV2;constructor($){this.referralsModuleAddress=$.referralsModuleAddress,this.invitations=new wJ($),this.invitationFarm=new $$({address:$.invitationFarmAddress,rpcUrl:$.circlesRpcUrl}),this.referralsModule=new e0({address:$.referralsModuleAddress,rpcUrl:$.circlesRpcUrl}),this.hubV2=new H0({address:$.v2HubAddress,rpcUrl:$.circlesRpcUrl})}async getQuota($){return this.invitationFarm.inviterQuota($)}async getInvitationFee(){return this.invitationFarm.invitationFee()}async getInvitationModule(){return this.invitationFarm.invitationModule()}async generateReferrals($,J){if(J<=0)throw new u("Count must be greater than 0",{code:"INVITATION_INVALID_COUNT",source:"VALIDATION",context:{count:J}});let Q=$.toLowerCase(),Y=J===1,G=await this.simulateClaim(Q,J);if(!G.length)throw new u("No invitation IDs returned from claim",{code:"INVITATION_NO_IDS",source:"INVITATIONS",context:{inviter:Q,count:J}});let M=this.invitations.generateSecrets(J),Z=M.map((W)=>W.signer),X=await this.invitationFarm.invitationModule(),K=Y?this.invitationFarm.claimInvite():this.invitationFarm.claimInvites(BigInt(J)),q=Y?this.buildReferralTransfer(Q,X,G[0],Z[0]):this.buildBatchReferralTransfer(Q,X,G,Z);return{referrals:M,transactions:[K,q]}}async generateInvites($,J){if(J.length===0)throw new u("At least one invitee address must be provided",{code:"INVITATION_INVALID_COUNT",source:"VALIDATION",context:{count:0}});let Q=$.toLowerCase(),Y=J.map((W)=>W.toLowerCase()),G=Y.length,M=G===1,Z=await this.simulateClaim(Q,G);if(!Z.length)throw new u("No invitation IDs returned from claim",{code:"INVITATION_NO_IDS",source:"INVITATIONS",context:{inviter:Q,count:G}});let X=await this.invitationFarm.invitationModule(),K=M?this.invitationFarm.claimInvite():this.invitationFarm.claimInvites(BigInt(G)),q=M?this.buildInviteTransfer(Q,X,Z[0],Y[0]):this.buildBatchInviteTransfer(Q,X,Z,Y);return{invitees:Y,transactions:[K,q]}}async listReferrals($,J=10,Q=0){return this.invitations.listReferrals($,J,Q)}async simulateClaim($,J){if(J===1)return[await this.invitationFarm.read("claimInvite",[],{from:$})];return this.invitationFarm.read("claimInvites",[BigInt(J)],{from:$})}buildReferralTransfer($,J,Q,Y){let G=this.referralsModule.createAccount(Y).data,M=Y0(["address","bytes"],[this.referralsModuleAddress,G]);return this.hubV2.safeTransferFrom($,J,Q,p,M)}buildBatchReferralTransfer($,J,Q,Y){let G=this.referralsModule.createAccounts(Y).data,M=Y0(["address","bytes"],[this.referralsModuleAddress,G]),Z=Q.map(()=>p);return this.hubV2.safeBatchTransferFrom($,J,Q,Z,M)}buildInviteTransfer($,J,Q,Y){let G=Y0(["address"],[Y]);return this.hubV2.safeTransferFrom($,J,Q,p,G)}buildBatchInviteTransfer($,J,Q,Y){let G=Y0(["address[]"],[Y]),M=Q.map(()=>p);return this.hubV2.safeBatchTransferFrom($,J,Q,M,G)}}class bJ{address;abi;rpcUrl;constructor($){this.address=$.address,this.abi=$.abi,this.rpcUrl=$.rpcUrl}async read($,J,Q){let Y=k0({abi:this.abi,functionName:$,args:J}),G={to:this.address,data:Y,...Q?.from&&{from:Q.from}},Z=await(await fetch(this.rpcUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_call",params:[G,"latest"]})})).json();if(Z.error)throw Error(`RPC Error: ${Z.error.message}`);if(!Z.result)throw Error("No result returned from RPC call");return U$({abi:this.abi,functionName:$,data:Z.result})}encodeWrite($,J){return k0({abi:this.abi,functionName:$,args:J})}}var h8=[{type:"constructor",inputs:[{name:"invitationModule",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"AFFILIATE_GROUP_REGISTRY",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"GENERIC_CALL_PROXY",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"HUB",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"INVITATION_MODULE",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"NAME_REGISTRY",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"SAFE_4337_MODULE",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"SAFE_MODULE_SETUP",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"SAFE_PROXY_FACTORY",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ISafeProxyFactory"}],stateMutability:"view"},{type:"function",name:"SAFE_SINGLETON",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"SAFE_WEB_AUTHN_SHARED_SIGNER",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"WELCOME_BONUS",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"accounts",inputs:[{name:"signer",type:"address",internalType:"address"}],outputs:[{name:"account",type:"address",internalType:"address"},{name:"claimed",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"claimAccount",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"},{name:"verifier",type:"address",internalType:"address"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimAccount",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"},{name:"verifier",type:"address",internalType:"address"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"metadataDigest",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimAccount",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"},{name:"verifier",type:"address",internalType:"address"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"affiliateGroup",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimAccount",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"},{name:"verifier",type:"address",internalType:"address"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"metadataDigest",type:"bytes32",internalType:"bytes32"},{name:"affiliateGroup",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"computeAddress",inputs:[{name:"signer",type:"address",internalType:"address"}],outputs:[{name:"predictedAddress",type:"address",internalType:"address"}],stateMutability:"pure"},{type:"function",name:"createAccount",inputs:[{name:"signer",type:"address",internalType:"address"}],outputs:[{name:"account",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"createAccounts",inputs:[{name:"signers",type:"address[]",internalType:"address[]"}],outputs:[{name:"_accounts",type:"address[]",internalType:"address[]"}],stateMutability:"nonpayable"},{type:"function",name:"encodePasskeyData",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"},{name:"verifier",type:"address",internalType:"address"}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"view"},{type:"function",name:"getPasskeyHash",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"},{name:"verifier",type:"address",internalType:"address"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"event",name:"AccountClaimed",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"AccountCreated",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AccountAlreadyClaimed",inputs:[]},{type:"error",name:"InvalidSignature",inputs:[]},{type:"error",name:"OnlyGenericCallProxy",inputs:[]},{type:"error",name:"SignerAlreadyUsed",inputs:[]}];class FJ extends bJ{constructor($){super({address:$.address,abi:h8,rpcUrl:$.rpcUrl})}createAccount($){return{to:this.address,data:this.encodeWrite("createAccount",[$]),value:BigInt(0)}}createAccounts($){return{to:this.address,data:this.encodeWrite("createAccounts",[$]),value:BigInt(0)}}async computeAddress($){return this.read("computeAddress",[$])}claimAccount($,J,Q,Y){return{to:this.address,data:this.encodeWrite("claimAccount",[$,J,Q,Y]),value:BigInt(0)}}claimAccountWithMetadata($,J,Q,Y,G){return{to:this.address,data:this.encodeWrite("claimAccount",[$,J,Q,Y,G]),value:BigInt(0)}}claimAccountWithAffiliateGroup($,J,Q,Y,G){return{to:this.address,data:this.encodeWrite("claimAccount",[$,J,Q,Y,G]),value:BigInt(0)}}claimAccountWithMetadataAndAffiliateGroup($,J,Q,Y,G,M){return{to:this.address,data:this.encodeWrite("claimAccount",[$,J,Q,Y,G,M]),value:BigInt(0)}}async accounts($){let[J,Q]=await this.read("accounts",[$]);return{account:J,claimed:Q}}async domainSeparator(){return this.read("DOMAIN_SEPARATOR")}async welcomeBonus(){return this.read("WELCOME_BONUS")}async hub(){return this.read("HUB")}async invitationModule(){return this.read("INVITATION_MODULE")}async genericCallProxy(){return this.read("GENERIC_CALL_PROXY")}async nameRegistry(){return this.read("NAME_REGISTRY")}async affiliateGroupRegistry(){return this.read("AFFILIATE_GROUP_REGISTRY")}async safeProxyFactory(){return this.read("SAFE_PROXY_FACTORY")}async safeSingleton(){return this.read("SAFE_SINGLETON")}async safe4337Module(){return this.read("SAFE_4337_MODULE")}async safeModuleSetup(){return this.read("SAFE_MODULE_SETUP")}async safeWebAuthnSharedSigner(){return this.read("SAFE_WEB_AUTHN_SHARED_SIGNER")}}class hQ{baseUrl;getToken;referralsModule;constructor($,J,Q,Y){this.baseUrl=$;this.getToken=Y;this.referralsModule=new FJ({address:J,rpcUrl:Q})}getBaseUrl(){return this.baseUrl.endsWith("/")?this.baseUrl.slice(0,-1):this.baseUrl}async getAuthHeaders(){let $={"Content-Type":"application/json"};if(!this.getToken)return $;let J=await this.getToken();return{...$,Authorization:`Bearer ${J}`}}async store($,J){let Q=await fetch(`${this.getBaseUrl()}/store`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({privateKey:$,inviter:J})});if(!Q.ok){let Y=await Q.json();throw e.storeFailed(Y.error||Q.statusText)}}async storeBatch($){let J=await fetch(`${this.getBaseUrl()}/store-batch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({invitations:$})});if(!J.ok){let Q=await J.json();throw e.storeBatchFailed(Q.error||J.statusText)}return J.json()}async retrieve($){let J=G$($),{account:Q,claimed:Y}=await this.referralsModule.accounts(J),G=await fetch(`${this.getBaseUrl()}/retrieve?key=${encodeURIComponent($)}`);if(G.ok||G.status===410||Y){let Z=await G.json();if(Q===w0)return{...Z,error:`Referral not found on-chain for signer ${J}`};return Z}if(Q===w0)return{error:`Referral not found on-chain for signer ${J}`};let M=await G.json().catch(()=>null);throw e.retrieveFailed(M?.error||G.statusText,G.status)}async listMine($){if(!this.getToken)throw e.authRequired();let J=new URLSearchParams;if($?.limit!==void 0)J.set("limit",String($.limit));if($?.offset!==void 0)J.set("offset",String($.offset));if($?.inSession!==void 0)J.set("inSession",String($.inSession));if($?.status!==void 0)J.set("status",$.status);let Q=J.toString()?`?${J}`:"",Y=await this.getAuthHeaders(),G=await fetch(`${this.getBaseUrl()}/my-referrals${Q}`,{headers:Y});if(!G.ok){let M=await G.json();throw e.listFailed(M.error||G.statusText)}return G.json()}async listPublic($,J){let Q=new URLSearchParams;if(J?.limit!==void 0)Q.set("limit",String(J.limit));if(J?.offset!==void 0)Q.set("offset",String(J.offset));if(J?.inSession!==void 0)Q.set("inSession",String(J.inSession));let Y=Q.toString()?`?${Q}`:"",G=await fetch(`${this.getBaseUrl()}/list/${encodeURIComponent($)}${Y}`);if(!G.ok){let M=await G.json();throw e.listFailed(M.error||G.statusText)}return G.json()}}class gJ extends Error{code;httpStatus;constructor($,J,Q){super($);this.code=J;this.httpStatus=Q;this.name="DispenseError"}}class W0 extends Error{code;httpStatus;constructor($,J,Q){super($);this.code=J;this.httpStatus=Q;this.name="SessionError"}}function I0($){if($===400)return"VALIDATION_ERROR";if($===404)return"NOT_FOUND";if($===409)return"CONFLICT";return"SERVER_ERROR"}class uQ{baseUrl;getToken;constructor($,J){this.baseUrl=$;this.getToken=J}getBaseUrl(){return this.baseUrl.endsWith("/")?this.baseUrl.slice(0,-1):this.baseUrl}async getAuthHeaders(){let $={"Content-Type":"application/json"};if(!this.getToken)return $;let J=await this.getToken();return{...$,Authorization:`Bearer ${J}`}}async createSession($){let J=await fetch(`${this.getBaseUrl()}/distributions/sessions`,{method:"POST",headers:await this.getAuthHeaders(),body:JSON.stringify($)});if(!J.ok){let Q=await J.json();throw new W0(Q.error||`Failed to create session: ${J.statusText}`,I0(J.status),J.status)}return J.json()}async listSessions($,J){let Q=new URLSearchParams({inviter:$});if(J?.limit!==void 0)Q.set("limit",String(J.limit));if(J?.offset!==void 0)Q.set("offset",String(J.offset));let Y=await fetch(`${this.getBaseUrl()}/distributions/sessions?${Q}`,{headers:await this.getAuthHeaders()});if(!Y.ok){let G=await Y.json();throw new W0(G.error||`Failed to list sessions: ${Y.statusText}`,I0(Y.status),Y.status)}return Y.json()}async getSession($){let J=await fetch(`${this.getBaseUrl()}/distributions/sessions/${encodeURIComponent($)}`,{headers:await this.getAuthHeaders()});if(!J.ok){let Q=await J.json();throw new W0(Q.error||`Failed to get session: ${J.statusText}`,I0(J.status),J.status)}return J.json()}async updateSession($,J){let Q=await fetch(`${this.getBaseUrl()}/distributions/sessions/${encodeURIComponent($)}`,{method:"PATCH",headers:await this.getAuthHeaders(),body:JSON.stringify(J)});if(!Q.ok){let Y=await Q.json();throw new W0(Y.error||`Failed to update session: ${Q.statusText}`,I0(Q.status),Q.status)}return Q.json()}async deleteSession($){let J=await fetch(`${this.getBaseUrl()}/distributions/sessions/${encodeURIComponent($)}`,{method:"DELETE",headers:await this.getAuthHeaders()});if(!J.ok){let Q=await J.json();throw new W0(Q.error||`Failed to delete session: ${J.statusText}`,I0(J.status),J.status)}}async addKeys($,J){let Q=await fetch(`${this.getBaseUrl()}/distributions/sessions/${encodeURIComponent($)}/keys`,{method:"POST",headers:await this.getAuthHeaders(),body:JSON.stringify({keys:J})});if(!Q.ok){let Y=await Q.json();throw new W0(Y.error||`Failed to add keys: ${Q.statusText}`,I0(Q.status),Q.status)}return Q.json()}async listKeys($,J){let Q=new URLSearchParams;if(J?.limit!==void 0)Q.set("limit",String(J.limit));if(J?.offset!==void 0)Q.set("offset",String(J.offset));let Y=Q.toString()?`?${Q}`:"",G=await fetch(`${this.getBaseUrl()}/distributions/sessions/${encodeURIComponent($)}/keys${Y}`,{headers:await this.getAuthHeaders()});if(!G.ok){let M=await G.json();throw new W0(M.error||`Failed to list keys: ${G.statusText}`,I0(G.status),G.status)}return G.json()}async removeKey($,J){let Q=await fetch(`${this.getBaseUrl()}/distributions/sessions/${encodeURIComponent($)}/keys/${encodeURIComponent(J)}`,{method:"DELETE",headers:await this.getAuthHeaders()});if(!Q.ok){let Y=await Q.json();throw new W0(Y.error||`Failed to remove key: ${Q.statusText}`,I0(Q.status),Q.status)}}async dispense($){let J=await fetch(`${this.getBaseUrl()}/d/${encodeURIComponent($)}`,{headers:{Accept:"application/json"}});if(!J.ok){let Q,Y;try{Q=(await J.json()).error}catch{Q=J.statusText}switch(J.status){case 404:Y=Q.includes("keys available")?"POOL_EMPTY":"SESSION_NOT_FOUND";break;case 410:Y=Q.includes("quota")?"QUOTA_EXHAUSTED":"SESSION_EXPIRED";break;case 423:Y="SESSION_PAUSED";break;case 429:Y="RATE_LIMITED";break;default:Y="UNKNOWN"}throw new gJ(Q,Y,J.status)}return J.json()}}export{W0 as SessionError,hQ as Referrals,e as ReferralError,mQ as InviteFarm,wJ as Invitations,u as InvitationError,uQ as Distributions,gJ as DispenseError};
1
+ var h8=(J)=>BigInt(J),G$=(J)=>parseInt(J,16),t0=(J)=>{if(J.startsWith("0x"))J=J.slice(2);if(J.length%2!==0)throw Error("Invalid hex string");let $=new Uint8Array(J.length/2);for(let Q=0;Q<J.length;Q+=2)$[Q/2]=parseInt(J.substr(Q,2),16);return $};function o0(J,$){if(typeof $==="string"&&$.startsWith("0x")){let Q=$.slice(2);if(Q.length===40)return $;if(Q.length===64){if(J.toLowerCase().includes("digest")||J.toLowerCase().includes("data")||J.toLowerCase().includes("bytes"))return t0($);try{return h8($)}catch{return $}}try{let Y=G$($);if(Y<Number.MAX_SAFE_INTEGER)return Y;return h8($)}catch{return $}}if($==="true")return!0;if($==="false")return!1;return $}function p$(J){let{event:$,values:Q}=J,Y={$event:$,blockNumber:Q.blockNumber?G$(Q.blockNumber):0,timestamp:Q.timestamp?G$(Q.timestamp):void 0,transactionIndex:Q.transactionIndex?G$(Q.transactionIndex):0,logIndex:Q.logIndex?G$(Q.logIndex):0,transactionHash:Q.transactionHash};for(let[G,M]of Object.entries(Q)){if(["blockNumber","timestamp","transactionIndex","logIndex","transactionHash"].includes(G))continue;Y[G]=o0(G,M)}return Y}function T$(J){return J.map(p$)}class cJ{_subscribers=[];subscribe(J){return this._subscribers.push(J),()=>{let $=this._subscribers.indexOf(J);if($>-1)this._subscribers.splice($,1)}}constructor(){this._subscribers=[]}emit(J){this._subscribers.forEach(($)=>$(J))}static create(){let J=new cJ;return{property:J,emit:($)=>J.emit($)}}}class M$ extends Error{name;code;source;cause;context;constructor(J,$,Q){super($);if(this.name=J,this.code=Q?.code,this.source=Q?.source??"UNKNOWN",this.cause=Q?.cause,this.context=Q?.context,Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,message:this.message,code:this.code,source:this.source,context:this.context,cause:this.cause instanceof Error?{name:this.cause.name,message:this.cause.message}:this.cause,stack:this.stack}}toString(){let J=`[${this.source}] ${this.name}: ${this.message}`;if(this.code)J+=` (Code: ${this.code})`;if(this.context)J+=`
2
+ Context: ${JSON.stringify(this.context,null,2)}`;return J}}class i extends M${constructor(J,$){super("RpcError",J,{...$,source:$?.source??"RPC_REQUEST"})}static connectionFailed(J,$){return new i("Failed to connect to RPC endpoint",{code:"RPC_CONNECTION_FAILED",source:"RPC_CONNECTION",cause:$,context:{url:J}})}static timeout(J,$){return new i("RPC request timed out",{code:"RPC_TIMEOUT",source:"RPC_TIMEOUT",context:{method:J,timeout:$}})}static invalidResponse(J,$){return new i("Invalid RPC response",{code:"RPC_INVALID_RESPONSE",source:"RPC_RESPONSE",context:{method:J,response:$}})}static fromJsonRpcError(J){return new i(J.message,{code:J.code,source:"RPC_RESPONSE",context:{data:J.data}})}static websocketError(J,$){return new i(J,{code:"RPC_WEBSOCKET_ERROR",source:"RPC_WEBSOCKET",cause:$})}}class DJ{rpcUrl;requestId=0;websocket=null;websocketConnected=!1;pendingResponses={};subscriptionListeners={};reconnectAttempt=0;initialBackoff=2000;maxBackoff=120000;constructor(J){this.rpcUrl=J}async call(J,$){this.requestId++;let Q={jsonrpc:"2.0",id:this.requestId,method:J,params:$};try{let Y=await fetch(this.rpcUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q)});if(!Y.ok)throw i.connectionFailed(this.rpcUrl,Error(`HTTP ${Y.status}: ${Y.statusText}`));let G=await Y.json();if(G.error)throw i.fromJsonRpcError(G.error);if(G.result===void 0)throw i.invalidResponse(J,G);return G.result}catch(Y){if(Y instanceof i)throw Y;throw i.connectionFailed(this.rpcUrl,Y)}}setRpcUrl(J){this.rpcUrl=J}getRpcUrl(){return this.rpcUrl}connect(){return new Promise((J,$)=>{let Q=this.rpcUrl.replace("http","ws");if(Q.endsWith("/"))Q+="ws/subscribe";else Q+="/ws/subscribe";this.websocket=new WebSocket(Q),this.websocket.onopen=()=>{console.log("WebSocket connected"),this.websocketConnected=!0,this.reconnectAttempt=0,J()},this.websocket.onmessage=(Y)=>{let G=JSON.parse(Y.data),{id:M,method:Z,params:K}=G;if(M!==void 0&&this.pendingResponses[M])this.pendingResponses[M].resolve(G),delete this.pendingResponses[M];if(Z==="circles_subscription"&&K?.result)Object.values(this.subscriptionListeners).forEach((X)=>{X.forEach((q)=>q(K.result))})},this.websocket.onclose=()=>{console.warn("WebSocket closed");let Y=this.websocketConnected;if(this.websocketConnected=!1,Y)this.scheduleReconnect()},this.websocket.onerror=(Y)=>{console.error("WebSocket error:",Y),this.websocketConnected=!1,$(i.connectionFailed(this.rpcUrl,Y instanceof Error?Y:Error("WebSocket connection failed"))),this.scheduleReconnect()}})}scheduleReconnect(){let J=Math.min(this.initialBackoff*Math.pow(2,this.reconnectAttempt),this.maxBackoff),$=J*(Math.random()*0.5),Q=J+$;console.log(`Reconnecting in ${Math.round(Q)}ms (attempt #${this.reconnectAttempt+1})`),this.reconnectAttempt++,setTimeout(()=>{this.reconnect()},Q)}async reconnect(){if(this.websocketConnected)return;try{await this.connect(),console.log("Reconnection successful")}catch(J){console.error("Reconnection attempt failed:",J),this.scheduleReconnect()}}sendMessage(J,$,Q=5000){if(!this.websocket||this.websocket.readyState!==WebSocket.OPEN)return Promise.reject(i.connectionFailed(this.rpcUrl));let Y=this.requestId++,G={jsonrpc:"2.0",method:J,params:$,id:Y};return new Promise((M,Z)=>{this.pendingResponses[Y]={resolve:M,reject:Z},this.websocket.send(JSON.stringify(G)),setTimeout(()=>{if(this.pendingResponses[Y])this.pendingResponses[Y].reject(i.timeout(J,Q)),delete this.pendingResponses[Y]},Q)})}async subscribe(J){let $=J?.toLowerCase();if(!this.websocketConnected)await this.connect();let Q=cJ.create(),Y=$?{address:$}:{},M=(await this.sendMessage("circles_subscribe",Y)).result;if(!this.subscriptionListeners[M])this.subscriptionListeners[M]=[];return this.subscriptionListeners[M].push((Z)=>{T$(Z).forEach((K)=>Q.emit(K))}),Q.property}}var I$=BigInt(4294967295),l8=BigInt(32);function s0(J,$=!1){if($)return{h:Number(J&I$),l:Number(J>>l8&I$)};return{h:Number(J>>l8&I$)|0,l:Number(J&I$)|0}}function c8(J,$=!1){let Q=J.length,Y=new Uint32Array(Q),G=new Uint32Array(Q);for(let M=0;M<Q;M++){let{h:Z,l:K}=s0(J[M],$);[Y[M],G[M]]=[Z,K]}return[Y,G]}var p8=(J,$,Q)=>J<<Q|$>>>32-Q,d8=(J,$,Q)=>$<<Q|J>>>32-Q,i8=(J,$,Q)=>$<<Q-32|J>>>64-Q,n8=(J,$,Q)=>J<<Q-32|$>>>64-Q;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function r0(J){return J instanceof Uint8Array||ArrayBuffer.isView(J)&&J.constructor.name==="Uint8Array"}function d$(J,$=""){if(!Number.isSafeInteger(J)||J<0){let Q=$&&`"${$}" `;throw Error(`${Q}expected integer >= 0, got ${J}`)}}function S$(J,$,Q=""){let Y=r0(J),G=J?.length,M=$!==void 0;if(!Y||M&&G!==$){let Z=Q&&`"${Q}" `,K=M?` of length ${$}`:"",X=Y?`length=${G}`:`type=${typeof J}`;throw Error(Z+"expected Uint8Array"+K+", got "+X)}return J}function i$(J,$=!0){if(J.destroyed)throw Error("Hash instance has been destroyed");if($&&J.finished)throw Error("Hash#digest() has already been called")}function t8(J,$){S$(J,void 0,"digestInto() output");let Q=$.outputLen;if(J.length<Q)throw Error('"digestInto() output" expected to be of length >='+Q)}function o8(J){return new Uint32Array(J.buffer,J.byteOffset,Math.floor(J.byteLength/4))}function n$(...J){for(let $=0;$<J.length;$++)J[$].fill(0)}var e0=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)();function JQ(J){return J<<24&4278190080|J<<8&16711680|J>>>8&65280|J>>>24&255}function $Q(J){for(let $=0;$<J.length;$++)J[$]=JQ(J[$]);return J}var t$=e0?(J)=>J:$Q;function a8(J,$={}){let Q=(G,M)=>J(M).update(G).digest(),Y=J(void 0);return Q.outputLen=Y.outputLen,Q.blockLen=Y.blockLen,Q.create=(G)=>J(G),Object.assign(Q,$),Object.freeze(Q)}var QQ=BigInt(0),Z$=BigInt(1),YQ=BigInt(2),GQ=BigInt(7),MQ=BigInt(256),ZQ=BigInt(113),e8=[],J0=[],$0=[];for(let J=0,$=Z$,Q=1,Y=0;J<24;J++){[Q,Y]=[Y,(2*Q+3*Y)%5],e8.push(2*(5*Y+Q)),J0.push((J+1)*(J+2)/2%64);let G=QQ;for(let M=0;M<7;M++)if($=($<<Z$^($>>GQ)*ZQ)%MQ,$&YQ)G^=Z$<<(Z$<<BigInt(M))-Z$;$0.push(G)}var Q0=c8($0,!0),XQ=Q0[0],KQ=Q0[1],s8=(J,$,Q)=>Q>32?i8(J,$,Q):p8(J,$,Q),r8=(J,$,Q)=>Q>32?n8(J,$,Q):d8(J,$,Q);function qQ(J,$=24){let Q=new Uint32Array(10);for(let Y=24-$;Y<24;Y++){for(let Z=0;Z<10;Z++)Q[Z]=J[Z]^J[Z+10]^J[Z+20]^J[Z+30]^J[Z+40];for(let Z=0;Z<10;Z+=2){let K=(Z+8)%10,X=(Z+2)%10,q=Q[X],W=Q[X+1],V=s8(q,W,1)^Q[K],N=r8(q,W,1)^Q[K+1];for(let O=0;O<50;O+=10)J[Z+O]^=V,J[Z+O+1]^=N}let G=J[2],M=J[3];for(let Z=0;Z<24;Z++){let K=J0[Z],X=s8(G,M,K),q=r8(G,M,K),W=e8[Z];G=J[W],M=J[W+1],J[W]=X,J[W+1]=q}for(let Z=0;Z<50;Z+=10){for(let K=0;K<10;K++)Q[K]=J[Z+K];for(let K=0;K<10;K++)J[Z+K]^=~Q[(K+2)%10]&Q[(K+4)%10]}J[0]^=XQ[Y],J[1]^=KQ[Y]}n$(Q)}class o${state;pos=0;posOut=0;finished=!1;state32;destroyed=!1;blockLen;suffix;outputLen;enableXOF=!1;rounds;constructor(J,$,Q,Y=!1,G=24){if(this.blockLen=J,this.suffix=$,this.outputLen=Q,this.enableXOF=Y,this.rounds=G,d$(Q,"outputLen"),!(0<J&&J<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=o8(this.state)}clone(){return this._cloneInto()}keccak(){t$(this.state32),qQ(this.state32,this.rounds),t$(this.state32),this.posOut=0,this.pos=0}update(J){i$(this),S$(J);let{blockLen:$,state:Q}=this,Y=J.length;for(let G=0;G<Y;){let M=Math.min($-this.pos,Y-G);for(let Z=0;Z<M;Z++)Q[this.pos++]^=J[G++];if(this.pos===$)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:J,suffix:$,pos:Q,blockLen:Y}=this;if(J[Q]^=$,($&128)!==0&&Q===Y-1)this.keccak();J[Y-1]^=128,this.keccak()}writeInto(J){i$(this,!1),S$(J),this.finish();let $=this.state,{blockLen:Q}=this;for(let Y=0,G=J.length;Y<G;){if(this.posOut>=Q)this.keccak();let M=Math.min(Q-this.posOut,G-Y);J.set($.subarray(this.posOut,this.posOut+M),Y),this.posOut+=M,Y+=M}return J}xofInto(J){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(J)}xof(J){return d$(J),this.xofInto(new Uint8Array(J))}digestInto(J){if(t8(J,this),this.finished)throw Error("digest() was already called");return this.writeInto(J),this.destroy(),J}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,n$(this.state)}_cloneInto(J){let{blockLen:$,suffix:Q,outputLen:Y,rounds:G,enableXOF:M}=this;return J||=new o$($,Q,Y,M,G),J.state32.set(this.state32),J.pos=this.pos,J.posOut=this.posOut,J.finished=this.finished,J.rounds=G,J.suffix=Q,J.outputLen=Y,J.enableXOF=M,J.destroyed=this.destroyed,J}}var WQ=(J,$,Q,Y={})=>a8(()=>new o$($,J,Q),Y);var pJ=WQ(1,136,32);var Y0=[];for(let J=0;J<256;J++)Y0[J]=J.toString(16).padStart(2,"0");function _$(J){let $="0x";for(let Q=0;Q<J.length;Q++)$+=Y0[J[Q]];return $}function y$(J){let $=J.startsWith("0x")?J.slice(2):J,Q=new Uint8Array($.length/2);for(let Y=0;Y<$.length;Y+=2)Q[Y/2]=parseInt($.slice(Y,Y+2),16);return Q}var m=64,A$=32,E$=(J)=>J.startsWith("0x")?J.slice(2):J;var ZJ=(J)=>J.toString(16).padStart(m,"0");function RJ(J){let $=J.toLowerCase().replace("0x",""),Q=_$(pJ(new TextEncoder().encode($))).slice(2),Y="0x";for(let G=0;G<$.length;G++)Y+=parseInt(Q[G],16)>=8?$[G].toUpperCase():$[G];return Y}function a$(J,$){if(J==="tuple"&&$)return`(${$.map((G)=>a$(G.type,G.components)).join(",")})`;let Q=J.match(/^tuple(\[\d*\])$/);if(Q&&$)return`${a$("tuple",$)}${Q[1]}`;return J}function UQ(J){let Q=(J.inputs||[]).map((Y)=>a$(Y.type,Y.components));return`${J.name}(${Q.join(",")})`}function jQ(J){let $=UQ(J),Q=pJ(new TextEncoder().encode($));return _$(Q.slice(0,4))}function dJ(J,$){if(J==="string"||J==="bytes")return!0;if(J.includes("[")){let Q=J.slice(0,J.indexOf("["));if(J.endsWith("[]"))return!0;if(Q==="tuple")return G0($);return dJ(Q)}if(J==="tuple")return G0($);return!1}function G0(J){return J?.some(($)=>dJ($.type,$.components))??!1}function OJ(J,$,Q){if(J==="tuple"&&Q)return VQ(Q,$);if(J.includes("["))return zQ(J,$,Q);return NQ(J,$)}function zQ(J,$,Q){let Y=J.slice(0,J.indexOf("[")),G=J.endsWith("[]"),M=dJ(Y,Q),Z;if(M){let K=$.map((W)=>OJ(Y,W,Q)),X=$.length*A$;Z=K.map((W)=>{let V=X;return X+=W.length/2,ZJ(V)}).join("")+K.join("")}else Z=$.map((K)=>OJ(Y,K,Q)).join("");return G?ZJ($.length)+Z:Z}function VQ(J,$){let Q=Array.isArray($),Y=[],G=[],M=[];for(let Z=0;Z<J.length;Z++){let K=J[Z],X=Q?$[Z]:$[K.name||""],q=dJ(K.type,K.components);if(M.push(q),q)Y.push(""),G.push(OJ(K.type,X,K.components));else Y.push(OJ(K.type,X,K.components))}if(G.length>0){let Z=Y.reduce((q,W,V)=>q+(M[V]?A$:W.length/2),0),K="",X=0;for(let q=0;q<J.length;q++)if(M[q])K+=ZJ(Z),Z+=G[X].length/2,X++;else K+=Y[q];return K+G.join("")}return Y.join("")}function NQ(J,$){if(J==="address")return E$($).toLowerCase().padStart(m,"0");if(J==="bool")return ZJ($?1:0);if(J.startsWith("uint")){let Q=typeof $==="bigint"?$:BigInt($);return ZJ(Q)}if(J.startsWith("int")){let Q=typeof $==="bigint"?$:BigInt($);if(Q<0n){let Y=J==="int"?256:parseInt(J.slice(3));Q=(1n<<BigInt(Y))+Q}return ZJ(Q)}if(J.startsWith("bytes")&&J!=="bytes")return E$($).padEnd(m,"0");if(J==="bytes"){let Q=E$($),Y=ZJ(Q.length/2),G=Q.padEnd(Math.ceil(Q.length/m)*m,"0");return Y+G}if(J==="string"){let Q=Array.from(new TextEncoder().encode($)).map((M)=>M.toString(16).padStart(2,"0")).join(""),Y=ZJ(Q.length/2),G=Q.padEnd(Math.ceil(Q.length/m)*m,"0");return Y+G}throw Error(`Unsupported type: ${J}`)}function X$(J,$,Q=0,Y){if(J==="tuple"&&Y)return OQ(Y,$,Q);if(J.includes("["))return DQ(J,$,Q,Y);return RQ(J,$,Q)}function DQ(J,$,Q,Y){let G=J.slice(0,J.indexOf("[")),M=$.slice(Q,Q+m);if(J.endsWith("[]")){let K=parseInt(M,16)*2,X=parseInt($.slice(K,K+m),16),q=[],W=K+m;for(let V=0;V<X;V++){let N=X$(G,$,W,Y);q.push(N.value),W+=N.consumed}return{value:q,consumed:m}}let Z=J.match(/\[(\d+)\]$/);if(Z){let K=parseInt(Z[1]),X=[],q=0;for(let W=0;W<K;W++){let V=X$(G,$,Q+q,Y);X.push(V.value),q+=V.consumed}return{value:X,consumed:q}}throw Error(`Invalid array type: ${J}`)}function OQ(J,$,Q){let Y=[],G=Q;for(let M of J){let Z=X$(M.type,$,G,M.components);Y.push(Z.value),G+=Z.consumed}return{value:Y,consumed:G-Q}}function RQ(J,$,Q){let Y=$.slice(Q,Q+m);if(J==="address")return{value:RJ("0x"+Y.slice(24)),consumed:m};if(J==="bool")return{value:parseInt(Y,16)!==0,consumed:m};if(J.startsWith("uint"))return{value:BigInt("0x"+Y),consumed:m};if(J.startsWith("int")){let G=BigInt("0x"+Y),M=J==="int"?256:parseInt(J.slice(3)),Z=1n<<BigInt(M-1);return{value:G>=Z?G-(1n<<BigInt(M)):G,consumed:m}}if(J.startsWith("bytes")&&J!=="bytes"){let G=parseInt(J.match(/^bytes(\d+)$/)[1]);return{value:"0x"+Y.slice(0,G*2),consumed:m}}if(J==="bytes"){let G=parseInt(Y,16)*2,M=parseInt($.slice(G,G+m),16)*2;return{value:"0x"+$.slice(G+m,G+m+M),consumed:m}}if(J==="string"){let G=parseInt(Y,16)*2,M=parseInt($.slice(G,G+m),16)*2,Z=$.slice(G+m,G+m+M),K=new Uint8Array(Z.match(/.{2}/g)?.map((X)=>parseInt(X,16))||[]);return{value:new TextDecoder().decode(K),consumed:m}}throw Error(`Unsupported type: ${J}`)}function TJ(J){let{abi:$,functionName:Q,args:Y=[]}=J,G=$.find((O)=>O.type==="function"&&O.name===Q);if(!G)throw Error(`Function "${Q}" not found in ABI`);let M=jQ(G),Z=G.inputs||[];if(Z.length===0)return M;if(Y.length!==Z.length)throw Error(`Expected ${Z.length} arguments, got ${Y.length}`);let K=[],X=[],q=[];for(let O=0;O<Z.length;O++){let B=Z[O],D=B.components,x=dJ(B.type,D);if(q.push(x),x)K.push(""),X.push(OJ(B.type,Y[O],D));else K.push(OJ(B.type,Y[O],D))}if(X.length===0)return M+K.join("");let W=K.reduce((O,B,D)=>O+(q[D]?A$:B.length/2),0),V="",N=0;for(let O=0;O<Z.length;O++)if(q[O])V+=ZJ(W),W+=X[N].length/2,N++;else V+=K[O];return M+V+X.join("")}function K$(J){let{abi:$,functionName:Q,data:Y}=J,G=$.find((q)=>q.type==="function"&&q.name===Q);if(!G)throw Error(`Function "${Q}" not found in ABI`);let M=G.outputs||[];if(M.length===0)return;let Z=E$(Y);if(M.length===1)return X$(M[0].type,Z,0,M[0].components).value;let K=[],X=0;for(let q of M){let W=X$(q.type,Z,X,q.components);K.push(W.value),X+=W.consumed}return K}function QJ(J,$){if(J.length!==$.length)throw Error(`Type/value length mismatch: ${J.length} types, ${$.length} values`);let Q=[],Y=[],G=[];for(let X=0;X<J.length;X++){let q=J[X],W=dJ(q);if(G.push(W),W)Q.push(""),Y.push(OJ(q,$[X]));else Q.push(OJ(q,$[X]))}if(Y.length===0)return"0x"+Q.join("");let M=Q.reduce((X,q,W)=>X+(G[W]?A$:q.length/2),0),Z="",K=0;for(let X=0;X<J.length;X++)if(G[X])Z+=ZJ(M),M+=Y[K].length/2,K++;else Z+=Q[X];return"0x"+Z+Y.join("")}function P(J){return J.toLowerCase()}function LQ(J){return RJ(J)}function CQ(J){if(typeof J!=="string")return!1;let $=J.replace("0x","");return $.length===40&&/^[0-9a-fA-F]{40}$/.test($)}function A(J){if(J===null||J===void 0)return J;if(CQ(J))return LQ(J);if(Array.isArray(J))return J.map(($)=>A($));if(typeof J==="object"&&J!==null){let $={};for(let Q in J)if(Object.prototype.hasOwnProperty.call(J,Q))$[Q]=A(J[Q]);return $}return J}function M0(J){return{Source:P(J.from),Sink:P(J.to),TargetFlow:J.targetFlow.toString(),WithWrap:J.useWrappedBalances,FromTokens:J.fromTokens?.map(P),ToTokens:J.toTokens?.map(P),ExcludedFromTokens:J.excludeFromTokens?.map(P),ExcludedToTokens:J.excludeToTokens?.map(P),SimulatedBalances:J.simulatedBalances?.map(($)=>({Holder:P($.holder),Token:P($.token),Amount:$.amount.toString(),IsWrapped:$.isWrapped,IsStatic:$.isStatic})),SimulatedTrusts:J.simulatedTrusts?.map(($)=>({Truster:P($.truster),Trustee:P($.trustee)})),MaxTransfers:J.maxTransfers}}function KJ(J){let $={};for(let Q in J){let Y=J[Q];if(Y===null||Y===void 0)$[Q]=Y;else if(typeof Y==="string"&&/^\d+$/.test(Y))$[Q]=BigInt(Y);else if(typeof Y==="object"&&!Array.isArray(Y))$[Q]=KJ(Y);else if(Array.isArray(Y))$[Q]=Y.map((G)=>typeof G==="object"&&G!==null?KJ(G):G);else $[Q]=Y}return $}var IJ="0x0000000000000000000000000000000000000000",p=BigInt(96)*BigInt(1000000000000000000),q$=BigInt("9999999999999999999999999999999999999"),s$="0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",r$="0x89867a67674bd4bf33165a653cde826b696ab7d050166b71066dfa0b9b6f90f4",e$="0xe298282cefe913ab5d282047161268a8222e4bd4ed106300c547894bbefd31ee",iJ="0xc19bc204eb1c1d5b3fe500e5e5dfabab625f286c",SJ="0x9Eb51E6A39B3F17bB1883B80748b56170039ff1d";class qJ{client;constructor(J){this.client=J}async findPath(J){let $=M0(J),Q=await this.client.call("circlesV2_findPath",[$]),Y=KJ(Q);return A(Y)}async findMaxFlow(J){let $=await this.findPath({...J,targetFlow:q$});return BigInt($.maxFlow)}}class W${client;constructor(J){this.client=J}async query(J){let $=await this.client.call("circles_query",[J]),{columns:Q,rows:Y}=$,G=Y.map((M)=>{let Z={};return Q.forEach((K,X)=>{Z[K]=M[X]}),Z});return A(G)}async tables(){return this.client.call("circles_tables",[])}async events(J=null,$=null,Q=null,Y=null,G=null,M=!1,Z=100,K=null){let X=await this.client.call("circles_events_paginated",[J,$,Q,Y,G,M,Z,K]);return{events:A(X.events),hasMore:X.hasMore,nextCursor:X.nextCursor}}}var PQ=[{name:"blockNumber",sortOrder:"DESC"},{name:"transactionIndex",sortOrder:"DESC"},{name:"logIndex",sortOrder:"DESC"}];class _J{params;client;rowTransformer;cursorColumns;orderColumns;get currentPage(){return this._currentPage}_currentPage;constructor(J,$,Q){this.client=J,this.params=$,this.rowTransformer=Q||$.rowTransformer,this.orderColumns=$.orderColumns,this.cursorColumns=$.cursorColumns||this.buildEventCursorColumns()}buildEventCursorColumns(){let J=PQ.map(($)=>({...$,sortOrder:this.params.sortOrder}));if(this.params.table==="TransferBatch")J.push({name:"batchIndex",sortOrder:this.params.sortOrder});return J}buildOrderBy(){if(this.orderColumns&&this.orderColumns.length>0)return this.orderColumns;return this.cursorColumns.map((J)=>({Column:J.name,SortOrder:J.sortOrder}))}rowsToObjects(J){let{columns:$,rows:Q}=J;return Q.map((Y)=>{let G={};return $.forEach((M,Z)=>{G[M]=Y[Z]}),this.rowTransformer?this.rowTransformer(G):G})}async queryNextPage(){let J={Namespace:this.params.namespace,Table:this.params.table,Columns:this.params.columns,Filter:this.params.filter||[],Order:this.buildOrderBy(),Limit:this.params.limit},$=this._currentPage?.nextCursor?[J,this._currentPage.nextCursor]:[J],Q=await this.client.call("circles_paginated_query",$),Y=this.rowsToObjects(Q);return this._currentPage={limit:this.params.limit,size:Y.length,sortOrder:this.params.sortOrder,hasMore:Q.hasMore,nextCursor:Q.nextCursor??void 0,results:Y},Y.length>0}reset(){this._currentPage=void 0}}class yJ{client;constructor(J){this.client=J}transformQueryResponse(J){let{columns:$,rows:Q}=J;return Q.map((Y)=>{let G={};return $.forEach((M,Z)=>{G[M]=Y[Z]}),G})}async getCommonTrust(J,$){let Q=await this.client.call("circles_getCommonTrust",[P(J),P($)]);return A(Q)}getTrustRelations(J,$=100,Q="DESC"){let Y=P(J),G=[{Type:"Conjunction",ConjunctionType:"And",Predicates:[{Type:"FilterPredicate",FilterType:"Equals",Column:"version",Value:2},{Type:"Conjunction",ConjunctionType:"Or",Predicates:[{Type:"FilterPredicate",FilterType:"Equals",Column:"trustee",Value:Y},{Type:"FilterPredicate",FilterType:"Equals",Column:"truster",Value:Y}]}]}];return new _J(this.client,{namespace:"V_Crc",table:"TrustRelations",sortOrder:Q,columns:["blockNumber","timestamp","transactionIndex","logIndex","transactionHash","version","trustee","truster","expiryTime"],filter:G,limit:$},(M)=>A(M))}async getAggregatedTrustRelations(J){let $=P(J),Q=await this.client.call("circles_getAggregatedTrustRelations",[$]);return A(Q)}async getTrustedBy(J){let $=P(J),Y=(await this.getAggregatedTrustRelations($)).filter((G)=>G.relation==="trustedBy");return A(Y)}async getTrusts(J){let $=P(J),Y=(await this.getAggregatedTrustRelations($)).filter((G)=>G.relation==="trusts");return A(Y)}async getMutualTrusts(J){let $=P(J),Y=(await this.getAggregatedTrustRelations($)).filter((G)=>G.relation==="mutuallyTrusts");return A(Y)}async getTrustNetworkSummary(J,$=2){return this.client.call("circles_getTrustNetworkSummary",[P(J),$])}async getAggregatedTrustRelationsEnriched(J){return this.client.call("circles_getAggregatedTrustRelationsEnriched",[P(J)])}async getValidInviters(J,$){let Q=[P(J)];if($)Q.push($);return this.client.call("circles_getValidInviters",Q)}}class GJ{static ONE_64=1n<<64n;static GAMMA_64=18443079296116538654n;static BETA_64=18450409579521241655n;static SECONDS_PER_DAY=86400n;static INFLATION_DAY_ZERO_UNIX=1602720000n;static ATTO_FACTOR=1000000000000000000n;static FACTOR_1E12=1000000000000n;static V1_ACCURACY=100000000n;static V1_INFLATION_PCT_NUM=107n;static V1_INFLATION_PCT_DEN=100n;static PERIOD_SEC=31556952n;static mul64(J,$){return J*$>>64n}static mulU(J,$){return J*$>>64n}static pow64(J,$){let Q=J,Y=$,G=this.ONE_64;while(Y>0n){if((Y&1n)===1n)G=this.mul64(G,Q);Q=this.mul64(Q,Q),Y>>=1n}return G}static ONE_36=1000000000000000000000000000000000000000n;static GAMMA_36=999801332008598957430613406568191166n;static BETA_36=1000198707468214629156271489013303962n;static mul36(J,$){return J*$/this.ONE_36}static pow36(J,$){let Q=this.ONE_36,Y=J,G=$;while(G>0n){if((G&1n)===1n)Q=this.mul36(Q,Y);Y=this.mul36(Y,Y),G>>=1n}return Q}static attoCirclesToCircles(J){if(J===0n)return 0;let $=J/this.ATTO_FACTOR,Q=J%this.ATTO_FACTOR,Y=BigInt(Number.MAX_SAFE_INTEGER);if($>Y||$<-Y)throw RangeError("Atto value’s integer component exceeds JS double precision.");return Number($)+Number(Q)/Number(this.ATTO_FACTOR)}static circlesToAttoCircles(J){return BigInt(Math.trunc(J*Number(this.ATTO_FACTOR)))}static inflationaryToDemurrage(J,$){return this.mulU(this.pow64(this.GAMMA_64,$),J)}static demurrageToInflationary(J,$){return this.mulU(this.pow64(this.BETA_64,$),J)}static dayFromTimestamp(J){return(J-this.INFLATION_DAY_ZERO_UNIX)/this.SECONDS_PER_DAY}static attoCirclesToAttoStaticCircles(J,$=BigInt(Math.floor(Date.now()/1000))){return this.demurrageToInflationary(J,this.dayFromTimestamp($))}static attoStaticCirclesToAttoCircles(J,$=BigInt(Math.floor(Date.now()/1000))){return this.inflationaryToDemurrage(J,this.dayFromTimestamp($))}static inflationaryToDemurrageExact(J,$){let Q=this.pow36(this.GAMMA_36,$);return J*Q/this.ONE_36}static demurrageToInflationaryExact(J,$){let Q=this.pow36(this.BETA_36,$);return J*Q/this.ONE_36}static attoCirclesToAttoStaticCirclesExact(J,$=BigInt(Math.floor(Date.now()/1000))){let Q=this.dayFromTimestamp($);return this.demurrageToInflationaryExact(J,Q)}static attoStaticCirclesToAttoCirclesExact(J,$=BigInt(Math.floor(Date.now()/1000))){let Q=this.dayFromTimestamp($);return this.inflationaryToDemurrageExact(J,Q)}static truncateToInt64(J){let $=J/this.FACTOR_1E12,Q=9223372036854775807n;return $>Q?Q:$}static blowUpToBigInt(J){return J*this.FACTOR_1E12}static truncateToSixDecimals(J){return this.blowUpToBigInt(this.truncateToInt64(J))}static v1InflateFactor(J){if(J===0n)return this.V1_ACCURACY;return this.V1_ACCURACY*this.V1_INFLATION_PCT_NUM**J/this.V1_INFLATION_PCT_DEN**J}static attoCrcToAttoCircles(J,$){let Q=$-this.INFLATION_DAY_ZERO_UNIX,Y=Q/this.PERIOD_SEC,G=Q%this.PERIOD_SEC,M=this.v1InflateFactor(Y),Z=this.v1InflateFactor(Y+1n);return this.v1ToDemurrage(J,M,Z,G,this.PERIOD_SEC)}static attoCirclesToAttoCrc(J,$){let Q=$-this.INFLATION_DAY_ZERO_UNIX,Y=Q/this.PERIOD_SEC,G=Q%this.PERIOD_SEC,M=this.v1InflateFactor(Y),Z=this.v1InflateFactor(Y+1n),K=M*(this.PERIOD_SEC-G)+Z*G;return J*3n*this.V1_ACCURACY*this.PERIOD_SEC/K}static v1ToDemurrage(J,$,Q,Y,G){let M=$*(G-Y)+Q*Y;return J*3n*this.V1_ACCURACY*G/M}}class EJ{client;constructor(J){this.client=J}async getTotalBalance(J,$=!0){let Q=await this.client.call("circlesV2_getTotalBalance",[P(J),$]);return GJ.circlesToAttoCircles(Q)}async getTokenBalances(J){let Q=(await this.client.call("circles_getTokenBalances",[P(J)])).map((Y)=>KJ(Y));return A(Q)}}class U${client;constructor(J){this.client=J}async getAvatarInfo(J){let $=await this.getAvatarInfoBatch([J]);return $.length>0?$[0]:void 0}async getAvatarInfoBatch(J){if(J.length===0)return[];let $=J.map((Y)=>P(Y)),Q=await this.client.call("circles_getAvatarInfoBatch",[$]);return A(Q)}async getNetworkSnapshot(){let J=await this.client.call("circles_getNetworkSnapshot",[]);return A(J)}}class j${client;constructor(J){this.client=J}async getProfileByCid(J){return this.client.call("circles_getProfileByCid",[J])}async getProfileByCidBatch(J){return this.client.call("circles_getProfileByCidBatch",[J])}async getProfileByAddress(J){return this.client.call("circles_getProfileByAddress",[P(J)])}async getProfileByAddressBatch(J){return this.client.call("circles_getProfileByAddressBatch",[J.map(($)=>$===null?null:P($))])}async searchProfiles(J,$=10,Q=0,Y){return this.client.call("circles_searchProfiles",[J.toLowerCase(),$,Q,Y])}async searchByAddressOrName(J,$=10,Q,Y){return this.client.call("circles_searchProfileByAddressOrName",Y?[J,$,Q??null,Y]:[J,$,Q??null])}async getProfileView(J){return this.client.call("circles_getProfileView",[P(J)])}}class AJ{client;constructor(J){this.client=J}async getTokenInfo(J){let $=await this.getTokenInfoBatch([J]);return $.length>0?$[0]:void 0}async getTokenInfoBatch(J){if(J.length===0)return[];let $=J.map((G)=>P(G)),Y=(await this.client.call("circles_getTokenInfoBatch",[$])).map((G)=>KJ(G));return A(Y)}async getTokenHolders(J,$=100,Q){let Y=await this.client.call("circles_getTokenHolders",[P(J),$,Q??null]);return{hasMore:Y.hasMore,nextCursor:Y.nextCursor,results:A(Y.results)}}}class z${client;constructor(J){this.client=J}async getInvitationOrigin(J){let $=P(J),Q=await this.client.call("circles_getInvitationOrigin",[$]);return Q?A(Q):null}async getInvitedBy(J){let $=await this.getInvitationOrigin(J);if($?.inviter)return A($.inviter);return}async getTrustInvitations(J,$){let Q=P(J),Y=await this.client.call("circles_getTrustInvitations",$?[Q,$]:[Q]);return A(Y)}async getInvitations(J,$){let Y=(await this.getValidInviters(J,$)).results.map((G)=>G.avatarInfo).filter((G)=>G!==void 0&&G!==null);return A(Y)}async getValidInviters(J,$){let Q=P(J),Y=await this.client.call("circles_getValidInviters",$?[Q,$]:[Q]);return A(Y)}async getInvitationsFrom(J,$=!1){let Q=P(J),Y=await this.client.call("circles_getInvitationsFrom",[Q,$]);return A(Y)}async getEscrowInvitations(J){let $=P(J),Q=await this.client.call("circles_getEscrowInvitations",[$]);return A(Q)}async getAtScaleInvitations(J){let $=P(J),Q=await this.client.call("circles_getAtScaleInvitations",[$]);return A(Q)}async getAllInvitations(J,$){let Q=P(J),Y=await this.client.call("circles_getAllInvitations",$?[Q,$]:[Q]);return A(Y)}}class V${client;constructor(J){this.client=J}async getTransactionHistory(J,$=50,Q){let Y=await this.client.call("circles_getTransactionHistory",[P(J),$,Q??null]);return{hasMore:Y.hasMore,nextCursor:Y.nextCursor,results:A(Y.results)}}async getTransactionHistoryEnriched(J,$=0,Q=null,Y=20,G){let M=await this.client.call("circles_getTransactionHistoryEnriched",[P(J),$,Q,Y,G??null]);return{hasMore:M.hasMore,nextCursor:M.nextCursor,results:A(M.results)}}}class xJ{client;constructor(J){this.client=J}async findGroups(J=50,$,Q){let Y=$?{nameStartsWith:$.nameStartsWith,symbolStartsWith:$.symbolStartsWith,ownerIn:$.ownerIn?.map((Z)=>P(Z))}:void 0,G=await this.client.call("circles_findGroups",[J,Y??null,Q??null]),M=A(G.results).map((Z)=>{let K=Z;if(!K.owner&&K.mint)return{...K,owner:K.mint};return K});return{hasMore:G.hasMore,nextCursor:G.nextCursor,results:M}}async getGroupMemberships(J,$=50,Q){let Y=await this.client.call("circles_getGroupMemberships",[P(J),$,Q??null]);return{hasMore:Y.hasMore,nextCursor:Y.nextCursor,results:A(Y.results)}}async getGroupMembers(J,$=100,Q){let Y=await this.client.call("circles_getGroupMembers",[P(J),$,Q??null]);return{hasMore:Y.hasMore,nextCursor:Y.nextCursor,results:A(Y.results)}}getGroups(J=50,$,Q="DESC"){let Y=[];if($){if($.nameStartsWith)Y.push({Type:"FilterPredicate",FilterType:"Like",Column:"name",Value:$.nameStartsWith+"%"});if($.symbolStartsWith)Y.push({Type:"FilterPredicate",FilterType:"Like",Column:"symbol",Value:$.symbolStartsWith+"%"});if($.groupAddressIn&&$.groupAddressIn.length>0){let M=$.groupAddressIn.map((Z)=>({Type:"FilterPredicate",FilterType:"Equals",Column:"group",Value:P(Z)}));if(M.length===1)Y.push(M[0]);else Y.push({Type:"Conjunction",ConjunctionType:"Or",Predicates:M})}if($.groupTypeIn&&$.groupTypeIn.length>0){let M=$.groupTypeIn.map((Z)=>({Type:"FilterPredicate",FilterType:"Equals",Column:"type",Value:Z}));if(M.length===1)Y.push(M[0]);else Y.push({Type:"Conjunction",ConjunctionType:"Or",Predicates:M})}if($.ownerIn&&$.ownerIn.length>0){let M=$.ownerIn.map((Z)=>({Type:"FilterPredicate",FilterType:"Equals",Column:"owner",Value:P(Z)}));if(M.length===1)Y.push(M[0]);else Y.push({Type:"Conjunction",ConjunctionType:"Or",Predicates:M})}if($.mintHandlerEquals)Y.push({Type:"FilterPredicate",FilterType:"Equals",Column:"mintHandler",Value:P($.mintHandlerEquals)});if($.treasuryEquals)Y.push({Type:"FilterPredicate",FilterType:"Equals",Column:"treasury",Value:P($.treasuryEquals)})}let G=Y.length>1?[{Type:"Conjunction",ConjunctionType:"And",Predicates:Y}]:Y;return new _J(this.client,{namespace:"V_CrcV2",table:"Groups",sortOrder:Q,columns:["blockNumber","timestamp","transactionIndex","logIndex","transactionHash","group","type","owner","mintPolicy","mintHandler","treasury","service","feeCollection","memberCount","name","symbol","cidV0Digest","erc20WrapperDemurraged","erc20WrapperStatic"],filter:G,limit:J},(M)=>A(M))}getGroupHolders(J,$=100){let Q=P(J);return new _J(this.client,{namespace:"V_Crc",table:"TokenBalances",sortOrder:"DESC",columns:["blockNumber","timestamp","transactionIndex","logIndex","transactionHash","token","account","balance","lastChangedAt"],filter:[{Type:"FilterPredicate",FilterType:"Equals",Column:"token",Value:Q}],limit:$},(Y)=>A(Y))}}class x${client;constructor(J){this.client=J}async getProfileView(J){let $=P(J);return this.client.call("circles_getProfileView",[$])}async getTrustNetworkSummary(J,$=2){let Q=P(J);return this.client.call("circles_getTrustNetworkSummary",[Q,$])}async getAggregatedTrustRelations(J){let $=P(J);return this.client.call("circles_getAggregatedTrustRelations",[$])}async getValidInviters(J,$){let Q=P(J),Y=await this.client.call("circles_getValidInviters",$?[Q,$]:[Q]);return A(Y)}async getTransactionHistoryEnriched(J,$=0,Q=null,Y=50,G){let M=P(J),Z=await this.client.call("circles_getTransactionHistoryEnriched",[M,$,Q,Y,G??null]);return{hasMore:Z.hasMore,nextCursor:Z.nextCursor,results:A(Z.results)}}async searchProfileByAddressOrName(J,$=20,Q,Y){return this.client.call("circles_searchProfileByAddressOrName",Y?[J,$,Q??null,Y]:[J,$,Q??null])}}class k${client;_pathfinder;_query;_trust;_balance;_avatar;_profile;_token;_invitation;_transaction;_group;_sdk;constructor(J="https://rpc.aboutcircles.com/"){this.client=new DJ(J)}get pathfinder(){if(!this._pathfinder)this._pathfinder=new qJ(this.client);return this._pathfinder}get query(){if(!this._query)this._query=new W$(this.client);return this._query}get trust(){if(!this._trust)this._trust=new yJ(this.client);return this._trust}get balance(){if(!this._balance)this._balance=new EJ(this.client);return this._balance}get avatar(){if(!this._avatar)this._avatar=new U$(this.client);return this._avatar}get profile(){if(!this._profile)this._profile=new j$(this.client);return this._profile}get token(){if(!this._token)this._token=new AJ(this.client);return this._token}get invitation(){if(!this._invitation)this._invitation=new z$(this.client);return this._invitation}get transaction(){if(!this._transaction)this._transaction=new V$(this.client);return this._transaction}get group(){if(!this._group)this._group=new xJ(this.client);return this._group}get sdk(){if(!this._sdk)this._sdk=new x$(this.client);return this._sdk}setRpcUrl(J){this.client.setRpcUrl(J)}getRpcUrl(){return this.client.getRpcUrl()}}class n{address;abi;rpcUrl;constructor(J){this.address=J.address,this.abi=J.abi,this.rpcUrl=J.rpcUrl}async read(J,$,Q){let Y=TJ({abi:this.abi,functionName:J,args:$}),G={to:this.address,data:Y,...Q?.from&&{from:Q.from}},Z=await(await fetch(this.rpcUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_call",params:[G,"latest"]})})).json();if(Z.error)throw Error(`RPC Error: ${Z.error.message}`);if(!Z.result)throw Error("No result returned from RPC call");return K$({abi:this.abi,functionName:J,data:Z.result})}encodeWrite(J,$){return TJ({abi:this.abi,functionName:J,args:$})}}var Z0=[{type:"function",name:"operateFlowMatrix",inputs:[{name:"_flowVertices",type:"address[]"},{name:"_flow",type:"tuple[]",components:[{name:"streamSinkId",type:"uint16"},{name:"amount",type:"uint192"}]},{name:"_streams",type:"tuple[]",components:[{name:"sourceCoordinate",type:"uint16"},{name:"flowEdgeIds",type:"uint16[]"},{name:"data",type:"bytes"}]},{name:"_packedCoordinates",type:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isApprovedForAll",inputs:[{name:"_account",type:"address"},{name:"_operator",type:"address"}],outputs:[{type:"bool"}],stateMutability:"view"},{type:"function",name:"setApprovalForAll",inputs:[{name:"_operator",type:"address"},{name:"_approved",type:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"wrap",inputs:[{name:"_avatar",type:"address"},{name:"_amount",type:"uint256"},{name:"_type",type:"uint8"}],outputs:[{type:"address"}],stateMutability:"nonpayable"},{type:"function",name:"trust",inputs:[{name:"_trustReceiver",type:"address"},{name:"_expiry",type:"uint96"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isTrusted",inputs:[{name:"_truster",type:"address"},{name:"_trustee",type:"address"}],outputs:[{type:"bool"}],stateMutability:"view"},{type:"function",name:"toTokenId",inputs:[{name:"_avatar",type:"address"}],outputs:[{type:"uint256"}],stateMutability:"pure"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_id",type:"uint256"},{name:"_value",type:"uint256"},{name:"_data",type:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isHuman",inputs:[{name:"_human",type:"address"}],outputs:[{type:"bool"}],stateMutability:"view"},{type:"function",name:"safeBatchTransferFrom",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_ids",type:"uint256[]"},{name:"_values",type:"uint256[]"},{name:"_data",type:"bytes"}],outputs:[],stateMutability:"nonpayable"}];class LJ extends n{constructor(J){super({address:J.address,abi:Z0,rpcUrl:J.rpcUrl})}async isTrusted(J,$){return this.read("isTrusted",[J,$])}async isApprovedForAll(J,$){return this.read("isApprovedForAll",[J,$])}async toTokenId(J){return this.read("toTokenId",[J])}trust(J,$){return{to:this.address,data:this.encodeWrite("trust",[J,$]),value:0n}}setApprovalForAll(J,$){return{to:this.address,data:this.encodeWrite("setApprovalForAll",[J,$]),value:0n}}wrap(J,$,Q){return{to:this.address,data:this.encodeWrite("wrap",[J,$,Q]),value:0n}}safeTransferFrom(J,$,Q,Y,G="0x"){return{to:this.address,data:this.encodeWrite("safeTransferFrom",[J,$,Q,Y,G]),value:0n}}operateFlowMatrix(J,$,Q,Y){return{to:this.address,data:this.encodeWrite("operateFlowMatrix",[J,$,Q,Y]),value:0n}}async isHuman(J){return this.read("isHuman",[J])}safeBatchTransferFrom(J,$,Q,Y,G="0x"){return{to:this.address,data:this.encodeWrite("safeBatchTransferFrom",[J,$,Q,Y,G]),value:0n}}}var X0=[{type:"function",name:"erc20Circles",inputs:[{name:"_circlesType",type:"uint8"},{name:"_avatar",type:"address"}],outputs:[{type:"address"}],stateMutability:"view"}];class w$ extends n{constructor(J){super({address:J.address,abi:X0,rpcUrl:J.rpcUrl})}async erc20Circles(J,$){return this.read("erc20Circles",[J,$])}}var J8=[{type:"function",name:"unwrap",inputs:[{name:"_amount",type:"uint256"}],outputs:[],stateMutability:"nonpayable"}];class nJ extends n{constructor(J){super({address:J.address,abi:J8,rpcUrl:J.rpcUrl})}unwrap(J){return{to:this.address,data:this.encodeWrite("unwrap",[J]),value:0n}}}class tJ extends n{constructor(J){super({address:J.address,abi:J8,rpcUrl:J.rpcUrl})}unwrap(J){return{to:this.address,data:this.encodeWrite("unwrap",[J]),value:0n}}}var $8=[{type:"function",name:"createAccount",inputs:[{name:"signer",type:"address"}],outputs:[{name:"account",type:"address"}],stateMutability:"nonpayable"},{type:"function",name:"createAccounts",inputs:[{name:"signers",type:"address[]"}],outputs:[{name:"_accounts",type:"address[]"}],stateMutability:"nonpayable"}];var Q8=[{type:"function",name:"claimInvite",inputs:[],outputs:[{name:"id",type:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"claimInvites",inputs:[{name:"numberOfInvites",type:"uint256"}],outputs:[{name:"ids",type:"uint256[]"}],stateMutability:"nonpayable"},{type:"function",name:"inviterQuota",inputs:[{name:"",type:"address"}],outputs:[{type:"uint256"}],stateMutability:"view"},{type:"function",name:"INVITATION_FEE",inputs:[],outputs:[{type:"uint256"}],stateMutability:"view"},{type:"function",name:"invitationModule",inputs:[],outputs:[{type:"address"}],stateMutability:"view"}];var Y8=[{type:"function",name:"isModuleEnabled",inputs:[{name:"module",type:"address"}],outputs:[{name:"",type:"bool"}],stateMutability:"view"},{type:"function",name:"enableModule",inputs:[{name:"module",type:"address"}],outputs:[],stateMutability:"nonpayable"}];var G8=[{type:"function",name:"trustInviter",inputs:[{name:"inviter",type:"address"}],outputs:[],stateMutability:"nonpayable"}];class oJ extends n{constructor(J){super({address:J.address,abi:$8,rpcUrl:J.rpcUrl})}createAccount(J){return{to:this.address,data:this.encodeWrite("createAccount",[J]),value:0n}}createAccounts(J){return{to:this.address,data:this.encodeWrite("createAccounts",[J]),value:0n}}}class aJ extends n{constructor(J){super({address:J.address,abi:Q8,rpcUrl:J.rpcUrl})}claimInvite(){return{to:this.address,data:this.encodeWrite("claimInvite",[]),value:0n}}claimInvites(J){return{to:this.address,data:this.encodeWrite("claimInvites",[J]),value:0n}}async inviterQuota(J){return this.read("inviterQuota",[J])}async invitationFee(){return this.read("INVITATION_FEE")}async invitationModule(){return this.read("invitationModule")}}class b$ extends n{constructor(J){super({address:J.address,abi:Y8,rpcUrl:J.rpcUrl})}async isModuleEnabled(J){return this.read("isModuleEnabled",[J])}enableModule(J){return{to:this.address,data:this.encodeWrite("enableModule",[J]),value:0n}}}class F$ extends n{constructor(J){super({address:J.address,abi:G8,rpcUrl:J.rpcUrl})}trustInviter(J){return{to:this.address,data:this.encodeWrite("trustInviter",[J]),value:0n}}}class N$ extends Error{name;code;source;cause;context;constructor(J,$,Q){super($);if(this.name=J,this.code=Q?.code,this.source=Q?.source??"UNKNOWN",this.cause=Q?.cause,this.context=Q?.context,Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,message:this.message,code:this.code,source:this.source,context:this.context,cause:this.cause instanceof Error?{name:this.cause.name,message:this.cause.message}:this.cause,stack:this.stack}}toString(){let J=`[${this.source}] ${this.name}: ${this.message}`;if(this.code)J+=` (Code: ${this.code})`;if(this.context)J+=`
3
+ Context: ${JSON.stringify(this.context,null,2)}`;return J}}var kJ=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function BQ(J){return J instanceof Uint8Array||ArrayBuffer.isView(J)&&J.constructor.name==="Uint8Array"}function g$(J){if(!Number.isSafeInteger(J)||J<0)throw Error("positive integer expected, got "+J)}function wJ(J,...$){if(!BQ(J))throw Error("Uint8Array expected");if($.length>0&&!$.includes(J.length))throw Error("Uint8Array expected of length "+$+", got length="+J.length)}function K0(J){if(typeof J!=="function"||typeof J.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");g$(J.outputLen),g$(J.blockLen)}function sJ(J,$=!0){if(J.destroyed)throw Error("Hash instance has been destroyed");if($&&J.finished)throw Error("Hash#digest() has already been called")}function q0(J,$){wJ(J);let Q=$.outputLen;if(J.length<Q)throw Error("digestInto() expects output buffer of length at least "+Q)}function bJ(...J){for(let $=0;$<J.length;$++)J[$].fill(0)}function f$(J){return new DataView(J.buffer,J.byteOffset,J.byteLength)}function MJ(J,$){return J<<32-$|J>>>$}function HQ(J){if(typeof J!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(J))}function D$(J){if(typeof J==="string")J=HQ(J);return wJ(J),J}function W0(...J){let $=0;for(let Y=0;Y<J.length;Y++){let G=J[Y];wJ(G),$+=G.length}let Q=new Uint8Array($);for(let Y=0,G=0;Y<J.length;Y++){let M=J[Y];Q.set(M,G),G+=M.length}return Q}class O${}function U0(J){let $=(Y)=>J().update(D$(Y)).digest(),Q=J();return $.outputLen=Q.outputLen,$.blockLen=Q.blockLen,$.create=()=>J(),$}function j0(J=32){if(kJ&&typeof kJ.getRandomValues==="function")return kJ.getRandomValues(new Uint8Array(J));if(kJ&&typeof kJ.randomBytes==="function")return Uint8Array.from(kJ.randomBytes(J));throw Error("crypto.getRandomValues must be defined")}function TQ(J,$,Q,Y){if(typeof J.setBigUint64==="function")return J.setBigUint64($,Q,Y);let G=BigInt(32),M=BigInt(4294967295),Z=Number(Q>>G&M),K=Number(Q&M),X=Y?4:0,q=Y?0:4;J.setUint32($+X,Z,Y),J.setUint32($+q,K,Y)}function z0(J,$,Q){return J&$^~J&Q}function V0(J,$,Q){return J&$^J&Q^$&Q}class M8 extends O${constructor(J,$,Q,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=J,this.outputLen=$,this.padOffset=Q,this.isLE=Y,this.buffer=new Uint8Array(J),this.view=f$(this.buffer)}update(J){sJ(this),J=D$(J),wJ(J);let{view:$,buffer:Q,blockLen:Y}=this,G=J.length;for(let M=0;M<G;){let Z=Math.min(Y-this.pos,G-M);if(Z===Y){let K=f$(J);for(;Y<=G-M;M+=Y)this.process(K,M);continue}if(Q.set(J.subarray(M,M+Z),this.pos),this.pos+=Z,M+=Z,this.pos===Y)this.process($,0),this.pos=0}return this.length+=J.length,this.roundClean(),this}digestInto(J){sJ(this),q0(J,this),this.finished=!0;let{buffer:$,view:Q,blockLen:Y,isLE:G}=this,{pos:M}=this;if($[M++]=128,bJ(this.buffer.subarray(M)),this.padOffset>Y-M)this.process(Q,0),M=0;for(let W=M;W<Y;W++)$[W]=0;TQ(Q,Y-8,BigInt(this.length*8),G),this.process(Q,0);let Z=f$(J),K=this.outputLen;if(K%4)throw Error("_sha2: outputLen should be aligned to 32bit");let X=K/4,q=this.get();if(X>q.length)throw Error("_sha2: outputLen bigger than state");for(let W=0;W<X;W++)Z.setUint32(4*W,q[W],G)}digest(){let{buffer:J,outputLen:$}=this;this.digestInto(J);let Q=J.slice(0,$);return this.destroy(),Q}_cloneInto(J){J||(J=new this.constructor),J.set(...this.get());let{blockLen:$,buffer:Q,length:Y,finished:G,destroyed:M,pos:Z}=this;if(J.destroyed=M,J.finished=G,J.length=Y,J.pos=Z,Y%$)J.buffer.set(Q);return J}clone(){return this._cloneInto()}}var WJ=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var IQ=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),CJ=new Uint32Array(64);class N0 extends M8{constructor(J=32){super(64,J,8,!1);this.A=WJ[0]|0,this.B=WJ[1]|0,this.C=WJ[2]|0,this.D=WJ[3]|0,this.E=WJ[4]|0,this.F=WJ[5]|0,this.G=WJ[6]|0,this.H=WJ[7]|0}get(){let{A:J,B:$,C:Q,D:Y,E:G,F:M,G:Z,H:K}=this;return[J,$,Q,Y,G,M,Z,K]}set(J,$,Q,Y,G,M,Z,K){this.A=J|0,this.B=$|0,this.C=Q|0,this.D=Y|0,this.E=G|0,this.F=M|0,this.G=Z|0,this.H=K|0}process(J,$){for(let W=0;W<16;W++,$+=4)CJ[W]=J.getUint32($,!1);for(let W=16;W<64;W++){let V=CJ[W-15],N=CJ[W-2],O=MJ(V,7)^MJ(V,18)^V>>>3,B=MJ(N,17)^MJ(N,19)^N>>>10;CJ[W]=B+CJ[W-7]+O+CJ[W-16]|0}let{A:Q,B:Y,C:G,D:M,E:Z,F:K,G:X,H:q}=this;for(let W=0;W<64;W++){let V=MJ(Z,6)^MJ(Z,11)^MJ(Z,25),N=q+V+z0(Z,K,X)+IQ[W]+CJ[W]|0,B=(MJ(Q,2)^MJ(Q,13)^MJ(Q,22))+V0(Q,Y,G)|0;q=X,X=K,K=Z,Z=M+N|0,M=G,G=Y,Y=Q,Q=N+B|0}Q=Q+this.A|0,Y=Y+this.B|0,G=G+this.C|0,M=M+this.D|0,Z=Z+this.E|0,K=K+this.F|0,X=X+this.G|0,q=q+this.H|0,this.set(Q,Y,G,M,Z,K,X,q)}roundClean(){bJ(CJ)}destroy(){this.set(0,0,0,0,0,0,0,0),bJ(this.buffer)}}var D0=U0(()=>new N0);class Z8 extends O${constructor(J,$){super();this.finished=!1,this.destroyed=!1,K0(J);let Q=D$($);if(this.iHash=J.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,G=new Uint8Array(Y);G.set(Q.length>Y?J.create().update(Q).digest():Q);for(let M=0;M<G.length;M++)G[M]^=54;this.iHash.update(G),this.oHash=J.create();for(let M=0;M<G.length;M++)G[M]^=106;this.oHash.update(G),bJ(G)}update(J){return sJ(this),this.iHash.update(J),this}digestInto(J){sJ(this),wJ(J,this.outputLen),this.finished=!0,this.iHash.digestInto(J),this.oHash.update(J),this.oHash.digestInto(J),this.destroy()}digest(){let J=new Uint8Array(this.oHash.outputLen);return this.digestInto(J),J}_cloneInto(J){J||(J=Object.create(Object.getPrototypeOf(this),{}));let{oHash:$,iHash:Q,finished:Y,destroyed:G,blockLen:M,outputLen:Z}=this;return J=J,J.finished=Y,J.destroyed=G,J.blockLen=M,J.outputLen=Z,J.oHash=$._cloneInto(J.oHash),J.iHash=Q._cloneInto(J.iHash),J}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var X8=(J,$,Q)=>new Z8(J,$).update(Q).digest();X8.create=(J,$)=>new Z8(J,$);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var U8=BigInt(0),W8=BigInt(1);function rJ(J){return J instanceof Uint8Array||ArrayBuffer.isView(J)&&J.constructor.name==="Uint8Array"}function j8(J){if(!rJ(J))throw Error("Uint8Array expected")}function eJ(J,$){if(typeof $!=="boolean")throw Error(J+" boolean expected, got "+$)}function R$(J){let $=J.toString(16);return $.length&1?"0"+$:$}function L0(J){if(typeof J!=="string")throw Error("hex string expected, got "+typeof J);return J===""?U8:BigInt("0x"+J)}var C0=typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function",SQ=Array.from({length:256},(J,$)=>$.toString(16).padStart(2,"0"));function J$(J){if(j8(J),C0)return J.toHex();let $="";for(let Q=0;Q<J.length;Q++)$+=SQ[J[Q]];return $}var UJ={_0:48,_9:57,A:65,F:70,a:97,f:102};function O0(J){if(J>=UJ._0&&J<=UJ._9)return J-UJ._0;if(J>=UJ.A&&J<=UJ.F)return J-(UJ.A-10);if(J>=UJ.a&&J<=UJ.f)return J-(UJ.a-10);return}function L$(J){if(typeof J!=="string")throw Error("hex string expected, got "+typeof J);if(C0)return Uint8Array.fromHex(J);let $=J.length,Q=$/2;if($%2)throw Error("hex string expected, got unpadded hex of length "+$);let Y=new Uint8Array(Q);for(let G=0,M=0;G<Q;G++,M+=2){let Z=O0(J.charCodeAt(M)),K=O0(J.charCodeAt(M+1));if(Z===void 0||K===void 0){let X=J[M]+J[M+1];throw Error('hex string expected, got non-hex character "'+X+'" at index '+M)}Y[G]=Z*16+K}return Y}function jJ(J){return L0(J$(J))}function z8(J){return j8(J),L0(J$(Uint8Array.from(J).reverse()))}function FJ(J,$){return L$(J.toString(16).padStart($*2,"0"))}function V8(J,$){return FJ(J,$).reverse()}function $J(J,$,Q){let Y;if(typeof $==="string")try{Y=L$($)}catch(M){throw Error(J+" must be hex string or Uint8Array, cause: "+M)}else if(rJ($))Y=Uint8Array.from($);else throw Error(J+" must be hex string or Uint8Array");let G=Y.length;if(typeof Q==="number"&&G!==Q)throw Error(J+" of length "+Q+" expected, got "+G);return Y}function C$(...J){let $=0;for(let Y=0;Y<J.length;Y++){let G=J[Y];j8(G),$+=G.length}let Q=new Uint8Array($);for(let Y=0,G=0;Y<J.length;Y++){let M=J[Y];Q.set(M,G),G+=M.length}return Q}var K8=(J)=>typeof J==="bigint"&&U8<=J;function v$(J,$,Q){return K8(J)&&K8($)&&K8(Q)&&$<=J&&J<Q}function gJ(J,$,Q,Y){if(!v$($,Q,Y))throw Error("expected valid "+J+": "+Q+" <= n < "+Y+", got "+$)}function P0(J){let $;for($=0;J>U8;J>>=W8,$+=1);return $}var fJ=(J)=>(W8<<BigInt(J))-W8,q8=(J)=>new Uint8Array(J),R0=(J)=>Uint8Array.from(J);function B0(J,$,Q){if(typeof J!=="number"||J<2)throw Error("hashLen must be a number");if(typeof $!=="number"||$<2)throw Error("qByteLen must be a number");if(typeof Q!=="function")throw Error("hmacFn must be a function");let Y=q8(J),G=q8(J),M=0,Z=()=>{Y.fill(1),G.fill(0),M=0},K=(...V)=>Q(G,Y,...V),X=(V=q8(0))=>{if(G=K(R0([0]),V),Y=K(),V.length===0)return;G=K(R0([1]),V),Y=K()},q=()=>{if(M++>=1000)throw Error("drbg: tried 1000 values");let V=0,N=[];while(V<$){Y=K();let O=Y.slice();N.push(O),V+=Y.length}return C$(...N)};return(V,N)=>{Z(),X(V);let O=void 0;while(!(O=N(q())))X();return Z(),O}}var _Q={bigint:(J)=>typeof J==="bigint",function:(J)=>typeof J==="function",boolean:(J)=>typeof J==="boolean",string:(J)=>typeof J==="string",stringOrUint8Array:(J)=>typeof J==="string"||rJ(J),isSafeInteger:(J)=>Number.isSafeInteger(J),array:(J)=>Array.isArray(J),field:(J,$)=>$.Fp.isValid(J),hash:(J)=>typeof J==="function"&&Number.isSafeInteger(J.outputLen)};function vJ(J,$,Q={}){let Y=(G,M,Z)=>{let K=_Q[M];if(typeof K!=="function")throw Error("invalid validator function");let X=J[G];if(Z&&X===void 0)return;if(!K(X,J))throw Error("param "+String(G)+" is invalid. Expected "+M+", got "+X)};for(let[G,M]of Object.entries($))Y(G,M,!1);for(let[G,M]of Object.entries(Q))Y(G,M,!0);return J}function N8(J){let $=new WeakMap;return(Q,...Y)=>{let G=$.get(Q);if(G!==void 0)return G;let M=J(Q,...Y);return $.set(Q,M),M}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var s=BigInt(0),o=BigInt(1),uJ=BigInt(2),yQ=BigInt(3),T0=BigInt(4),I0=BigInt(5),S0=BigInt(8);function t(J,$){let Q=J%$;return Q>=s?Q:$+Q}function YJ(J,$,Q){let Y=J;while($-- >s)Y*=Y,Y%=Q;return Y}function u$(J,$){if(J===s)throw Error("invert: expected non-zero number");if($<=s)throw Error("invert: expected positive modulus, got "+$);let Q=t(J,$),Y=$,G=s,M=o,Z=o,K=s;while(Q!==s){let q=Y/Q,W=Y%Q,V=G-Z*q,N=M-K*q;Y=Q,Q=W,G=Z,M=K,Z=V,K=N}if(Y!==o)throw Error("invert: does not exist");return t(G,$)}function _0(J,$){let Q=(J.ORDER+o)/T0,Y=J.pow($,Q);if(!J.eql(J.sqr(Y),$))throw Error("Cannot find square root");return Y}function EQ(J,$){let Q=(J.ORDER-I0)/S0,Y=J.mul($,uJ),G=J.pow(Y,Q),M=J.mul($,G),Z=J.mul(J.mul(M,uJ),G),K=J.mul(M,J.sub(Z,J.ONE));if(!J.eql(J.sqr(K),$))throw Error("Cannot find square root");return K}function AQ(J){if(J<BigInt(3))throw Error("sqrt is not defined for small field");let $=J-o,Q=0;while($%uJ===s)$/=uJ,Q++;let Y=uJ,G=P$(J);while(H0(G,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(Q===1)return _0;let M=G.pow(Y,$),Z=($+o)/uJ;return function(X,q){if(X.is0(q))return q;if(H0(X,q)!==1)throw Error("Cannot find square root");let W=Q,V=X.mul(X.ONE,M),N=X.pow(q,$),O=X.pow(q,Z);while(!X.eql(N,X.ONE)){if(X.is0(N))return X.ZERO;let B=1,D=X.sqr(N);while(!X.eql(D,X.ONE))if(B++,D=X.sqr(D),B===W)throw Error("Cannot find square root");let x=o<<BigInt(W-B-1),S=X.pow(V,x);W=B,V=X.sqr(S),N=X.mul(N,V),O=X.mul(O,S)}return O}}function xQ(J){if(J%T0===yQ)return _0;if(J%S0===I0)return EQ;return AQ(J)}var kQ=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function D8(J){let $={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},Q=kQ.reduce((Y,G)=>{return Y[G]="function",Y},$);return vJ(J,Q)}function wQ(J,$,Q){if(Q<s)throw Error("invalid exponent, negatives unsupported");if(Q===s)return J.ONE;if(Q===o)return $;let Y=J.ONE,G=$;while(Q>s){if(Q&o)Y=J.mul(Y,G);G=J.sqr(G),Q>>=o}return Y}function O8(J,$,Q=!1){let Y=Array($.length).fill(Q?J.ZERO:void 0),G=$.reduce((Z,K,X)=>{if(J.is0(K))return Z;return Y[X]=Z,J.mul(Z,K)},J.ONE),M=J.inv(G);return $.reduceRight((Z,K,X)=>{if(J.is0(K))return Z;return Y[X]=J.mul(Z,Y[X]),J.mul(Z,K)},M),Y}function H0(J,$){let Q=(J.ORDER-o)/uJ,Y=J.pow($,Q),G=J.eql(Y,J.ONE),M=J.eql(Y,J.ZERO),Z=J.eql(Y,J.neg(J.ONE));if(!G&&!M&&!Z)throw Error("invalid Legendre symbol result");return G?1:M?0:-1}function R8(J,$){if($!==void 0)g$($);let Q=$!==void 0?$:J.toString(2).length,Y=Math.ceil(Q/8);return{nBitLength:Q,nByteLength:Y}}function P$(J,$,Q=!1,Y={}){if(J<=s)throw Error("invalid field: expected ORDER > 0, got "+J);let{nBitLength:G,nByteLength:M}=R8(J,$);if(M>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let Z,K=Object.freeze({ORDER:J,isLE:Q,BITS:G,BYTES:M,MASK:fJ(G),ZERO:s,ONE:o,create:(X)=>t(X,J),isValid:(X)=>{if(typeof X!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof X);return s<=X&&X<J},is0:(X)=>X===s,isOdd:(X)=>(X&o)===o,neg:(X)=>t(-X,J),eql:(X,q)=>X===q,sqr:(X)=>t(X*X,J),add:(X,q)=>t(X+q,J),sub:(X,q)=>t(X-q,J),mul:(X,q)=>t(X*q,J),pow:(X,q)=>wQ(K,X,q),div:(X,q)=>t(X*u$(q,J),J),sqrN:(X)=>X*X,addN:(X,q)=>X+q,subN:(X,q)=>X-q,mulN:(X,q)=>X*q,inv:(X)=>u$(X,J),sqrt:Y.sqrt||((X)=>{if(!Z)Z=xQ(J);return Z(K,X)}),toBytes:(X)=>Q?V8(X,M):FJ(X,M),fromBytes:(X)=>{if(X.length!==M)throw Error("Field.fromBytes: expected "+M+" bytes, got "+X.length);return Q?z8(X):jJ(X)},invertBatch:(X)=>O8(K,X),cmov:(X,q,W)=>W?q:X});return Object.freeze(K)}function y0(J){if(typeof J!=="bigint")throw Error("field order must be bigint");let $=J.toString(2).length;return Math.ceil($/8)}function L8(J){let $=y0(J);return $+Math.ceil($/2)}function E0(J,$,Q=!1){let Y=J.length,G=y0($),M=L8($);if(Y<16||Y<M||Y>1024)throw Error("expected "+M+"-1024 bytes of input, got "+Y);let Z=Q?z8(J):jJ(J),K=t(Z,$-o)+o;return Q?V8(K,G):FJ(K,G)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var A0=BigInt(0),T8=BigInt(1);function C8(J,$){let Q=$.negate();return J?Q:$}function k0(J,$){if(!Number.isSafeInteger(J)||J<=0||J>$)throw Error("invalid window size, expected [1.."+$+"], got W="+J)}function P8(J,$){k0(J,$);let Q=Math.ceil($/J)+1,Y=2**(J-1),G=2**J,M=fJ(J),Z=BigInt(J);return{windows:Q,windowSize:Y,mask:M,maxNumber:G,shiftBy:Z}}function x0(J,$,Q){let{windowSize:Y,mask:G,maxNumber:M,shiftBy:Z}=Q,K=Number(J&G),X=J>>Z;if(K>Y)K-=M,X+=T8;let q=$*Y,W=q+Math.abs(K)-1,V=K===0,N=K<0,O=$%2!==0;return{nextN:X,offset:W,isZero:V,isNeg:N,isNegF:O,offsetF:q}}function bQ(J,$){if(!Array.isArray(J))throw Error("array expected");J.forEach((Q,Y)=>{if(!(Q instanceof $))throw Error("invalid point at index "+Y)})}function FQ(J,$){if(!Array.isArray(J))throw Error("array of scalars expected");J.forEach((Q,Y)=>{if(!$.isValid(Q))throw Error("invalid scalar at index "+Y)})}var B8=new WeakMap,w0=new WeakMap;function H8(J){return w0.get(J)||1}function b0(J,$){return{constTimeNegate:C8,hasPrecomputes(Q){return H8(Q)!==1},unsafeLadder(Q,Y,G=J.ZERO){let M=Q;while(Y>A0){if(Y&T8)G=G.add(M);M=M.double(),Y>>=T8}return G},precomputeWindow(Q,Y){let{windows:G,windowSize:M}=P8(Y,$),Z=[],K=Q,X=K;for(let q=0;q<G;q++){X=K,Z.push(X);for(let W=1;W<M;W++)X=X.add(K),Z.push(X);K=X.double()}return Z},wNAF(Q,Y,G){let{ZERO:M,BASE:Z}=J,K=P8(Q,$);for(let X=0;X<K.windows;X++){let{nextN:q,offset:W,isZero:V,isNeg:N,isNegF:O,offsetF:B}=x0(G,X,K);if(G=q,V)Z=Z.add(C8(O,Y[B]));else M=M.add(C8(N,Y[W]))}return{p:M,f:Z}},wNAFUnsafe(Q,Y,G,M=J.ZERO){let Z=P8(Q,$);for(let K=0;K<Z.windows;K++){if(G===A0)break;let{nextN:X,offset:q,isZero:W,isNeg:V}=x0(G,K,Z);if(G=X,W)continue;else{let N=Y[q];M=M.add(V?N.negate():N)}}return M},getPrecomputes(Q,Y,G){let M=B8.get(Y);if(!M){if(M=this.precomputeWindow(Y,Q),Q!==1)B8.set(Y,G(M))}return M},wNAFCached(Q,Y,G){let M=H8(Q);return this.wNAF(M,this.getPrecomputes(M,Q,G),Y)},wNAFCachedUnsafe(Q,Y,G,M){let Z=H8(Q);if(Z===1)return this.unsafeLadder(Q,Y,M);return this.wNAFUnsafe(Z,this.getPrecomputes(Z,Q,G),Y,M)},setWindowSize(Q,Y){k0(Y,$),w0.set(Q,Y),B8.delete(Q)}}}function F0(J,$,Q,Y){bQ(Q,J),FQ(Y,$);let G=Q.length,M=Y.length;if(G!==M)throw Error("arrays of points and scalars must have equal length");let Z=J.ZERO,K=P0(BigInt(G)),X=1;if(K>12)X=K-3;else if(K>4)X=K-2;else if(K>0)X=2;let q=fJ(X),W=Array(Number(q)+1).fill(Z),V=Math.floor(($.BITS-1)/X)*X,N=Z;for(let O=V;O>=0;O-=X){W.fill(Z);for(let D=0;D<M;D++){let x=Y[D],S=Number(x>>BigInt(O)&q);W[S]=W[S].add(Q[D])}let B=Z;for(let D=W.length-1,x=Z;D>0;D--)x=x.add(W[D]),B=B.add(x);if(N=N.add(B),O!==0)for(let D=0;D<X;D++)N=N.double()}return N}function I8(J){return D8(J.Fp),vJ(J,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...R8(J.n,J.nBitLength),...J,...{p:J.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function g0(J){if(J.lowS!==void 0)eJ("lowS",J.lowS);if(J.prehash!==void 0)eJ("prehash",J.prehash)}function gQ(J){let $=I8(J);vJ($,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});let{endo:Q,Fp:Y,a:G}=$;if(Q){if(!Y.eql(G,Y.ZERO))throw Error("invalid endo: CURVE.a must be 0");if(typeof Q!=="object"||typeof Q.beta!=="bigint"||typeof Q.splitScalar!=="function")throw Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...$})}class f0 extends Error{constructor(J=""){super(J)}}var zJ={Err:f0,_tlv:{encode:(J,$)=>{let{Err:Q}=zJ;if(J<0||J>256)throw new Q("tlv.encode: wrong tag");if($.length&1)throw new Q("tlv.encode: unpadded data");let Y=$.length/2,G=R$(Y);if(G.length/2&128)throw new Q("tlv.encode: long form length too big");let M=Y>127?R$(G.length/2|128):"";return R$(J)+M+G+$},decode(J,$){let{Err:Q}=zJ,Y=0;if(J<0||J>256)throw new Q("tlv.encode: wrong tag");if($.length<2||$[Y++]!==J)throw new Q("tlv.decode: wrong tlv");let G=$[Y++],M=!!(G&128),Z=0;if(!M)Z=G;else{let X=G&127;if(!X)throw new Q("tlv.decode(long): indefinite length not supported");if(X>4)throw new Q("tlv.decode(long): byte length is too big");let q=$.subarray(Y,Y+X);if(q.length!==X)throw new Q("tlv.decode: length bytes not complete");if(q[0]===0)throw new Q("tlv.decode(long): zero leftmost byte");for(let W of q)Z=Z<<8|W;if(Y+=X,Z<128)throw new Q("tlv.decode(long): not minimal encoding")}let K=$.subarray(Y,Y+Z);if(K.length!==Z)throw new Q("tlv.decode: wrong value length");return{v:K,l:$.subarray(Y+Z)}}},_int:{encode(J){let{Err:$}=zJ;if(J<VJ)throw new $("integer: negative integers are not allowed");let Q=R$(J);if(Number.parseInt(Q[0],16)&8)Q="00"+Q;if(Q.length&1)throw new $("unexpected DER parsing assertion: unpadded hex");return Q},decode(J){let{Err:$}=zJ;if(J[0]&128)throw new $("invalid signature integer: negative");if(J[0]===0&&!(J[1]&128))throw new $("invalid signature integer: unnecessary leading zero");return jJ(J)}},toSig(J){let{Err:$,_int:Q,_tlv:Y}=zJ,G=$J("signature",J),{v:M,l:Z}=Y.decode(48,G);if(Z.length)throw new $("invalid signature: left bytes after parsing");let{v:K,l:X}=Y.decode(2,M),{v:q,l:W}=Y.decode(2,X);if(W.length)throw new $("invalid signature: left bytes after parsing");return{r:Q.decode(K),s:Q.decode(q)}},hexFromSig(J){let{_tlv:$,_int:Q}=zJ,Y=$.encode(2,Q.encode(J.r)),G=$.encode(2,Q.encode(J.s)),M=Y+G;return $.encode(48,M)}};function S8(J,$){return J$(FJ(J,$))}var VJ=BigInt(0),d=BigInt(1),hG=BigInt(2),_8=BigInt(3),fQ=BigInt(4);function vQ(J){let $=gQ(J),{Fp:Q}=$,Y=P$($.n,$.nBitLength),G=$.toBytes||((U,j,C)=>{let H=j.toAffine();return C$(Uint8Array.from([4]),Q.toBytes(H.x),Q.toBytes(H.y))}),M=$.fromBytes||((U)=>{let j=U.subarray(1),C=Q.fromBytes(j.subarray(0,Q.BYTES)),H=Q.fromBytes(j.subarray(Q.BYTES,2*Q.BYTES));return{x:C,y:H}});function Z(U){let{a:j,b:C}=$,H=Q.sqr(U),w=Q.mul(H,U);return Q.add(Q.add(w,Q.mul(U,j)),C)}function K(U,j){let C=Q.sqr(j),H=Z(U);return Q.eql(C,H)}if(!K($.Gx,$.Gy))throw Error("bad curve params: generator point");let X=Q.mul(Q.pow($.a,_8),fQ),q=Q.mul(Q.sqr($.b),BigInt(27));if(Q.is0(Q.add(X,q)))throw Error("bad curve params: a or b");function W(U){return v$(U,d,$.n)}function V(U){let{allowedPrivateKeyLengths:j,nByteLength:C,wrapPrivateKey:H,n:w}=$;if(j&&typeof U!=="bigint"){if(rJ(U))U=J$(U);if(typeof U!=="string"||!j.includes(U.length))throw Error("invalid private key");U=U.padStart(C*2,"0")}let y;try{y=typeof U==="bigint"?U:jJ($J("private key",U,C))}catch(b){throw Error("invalid private key, expected hex or "+C+" bytes, got "+typeof U)}if(H)y=t(y,w);return gJ("private key",y,d,w),y}function N(U){if(!(U instanceof D))throw Error("ProjectivePoint expected")}let O=N8((U,j)=>{let{px:C,py:H,pz:w}=U;if(Q.eql(w,Q.ONE))return{x:C,y:H};let y=U.is0();if(j==null)j=y?Q.ONE:Q.inv(w);let b=Q.mul(C,j),_=Q.mul(H,j),k=Q.mul(w,j);if(y)return{x:Q.ZERO,y:Q.ZERO};if(!Q.eql(k,Q.ONE))throw Error("invZ was invalid");return{x:b,y:_}}),B=N8((U)=>{if(U.is0()){if($.allowInfinityPoint&&!Q.is0(U.py))return;throw Error("bad point: ZERO")}let{x:j,y:C}=U.toAffine();if(!Q.isValid(j)||!Q.isValid(C))throw Error("bad point: x or y not FE");if(!K(j,C))throw Error("bad point: equation left != right");if(!U.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});class D{constructor(U,j,C){if(U==null||!Q.isValid(U))throw Error("x required");if(j==null||!Q.isValid(j)||Q.is0(j))throw Error("y required");if(C==null||!Q.isValid(C))throw Error("z required");this.px=U,this.py=j,this.pz=C,Object.freeze(this)}static fromAffine(U){let{x:j,y:C}=U||{};if(!U||!Q.isValid(j)||!Q.isValid(C))throw Error("invalid affine point");if(U instanceof D)throw Error("projective point not allowed");let H=(w)=>Q.eql(w,Q.ZERO);if(H(j)&&H(C))return D.ZERO;return new D(j,C,Q.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(U){let j=O8(Q,U.map((C)=>C.pz));return U.map((C,H)=>C.toAffine(j[H])).map(D.fromAffine)}static fromHex(U){let j=D.fromAffine(M($J("pointHex",U)));return j.assertValidity(),j}static fromPrivateKey(U){return D.BASE.multiply(V(U))}static msm(U,j){return F0(D,Y,U,j)}_setWindowSize(U){f.setWindowSize(this,U)}assertValidity(){B(this)}hasEvenY(){let{y:U}=this.toAffine();if(Q.isOdd)return!Q.isOdd(U);throw Error("Field doesn't support isOdd")}equals(U){N(U);let{px:j,py:C,pz:H}=this,{px:w,py:y,pz:b}=U,_=Q.eql(Q.mul(j,b),Q.mul(w,H)),k=Q.eql(Q.mul(C,b),Q.mul(y,H));return _&&k}negate(){return new D(this.px,Q.neg(this.py),this.pz)}double(){let{a:U,b:j}=$,C=Q.mul(j,_8),{px:H,py:w,pz:y}=this,b=Q.ZERO,_=Q.ZERO,k=Q.ZERO,E=Q.mul(H,H),l=Q.mul(w,w),v=Q.mul(y,y),z=Q.mul(H,w);return z=Q.add(z,z),k=Q.mul(H,y),k=Q.add(k,k),b=Q.mul(U,k),_=Q.mul(C,v),_=Q.add(b,_),b=Q.sub(l,_),_=Q.add(l,_),_=Q.mul(b,_),b=Q.mul(z,b),k=Q.mul(C,k),v=Q.mul(U,v),z=Q.sub(E,v),z=Q.mul(U,z),z=Q.add(z,k),k=Q.add(E,E),E=Q.add(k,E),E=Q.add(E,v),E=Q.mul(E,z),_=Q.add(_,E),v=Q.mul(w,y),v=Q.add(v,v),E=Q.mul(v,z),b=Q.sub(b,E),k=Q.mul(v,l),k=Q.add(k,k),k=Q.add(k,k),new D(b,_,k)}add(U){N(U);let{px:j,py:C,pz:H}=this,{px:w,py:y,pz:b}=U,_=Q.ZERO,k=Q.ZERO,E=Q.ZERO,l=$.a,v=Q.mul($.b,_8),z=Q.mul(j,w),L=Q.mul(C,y),T=Q.mul(H,b),F=Q.add(j,C),I=Q.add(w,y);F=Q.mul(F,I),I=Q.add(z,L),F=Q.sub(F,I),I=Q.add(j,H);let R=Q.add(w,b);return I=Q.mul(I,R),R=Q.add(z,T),I=Q.sub(I,R),R=Q.add(C,H),_=Q.add(y,b),R=Q.mul(R,_),_=Q.add(L,T),R=Q.sub(R,_),E=Q.mul(l,I),_=Q.mul(v,T),E=Q.add(_,E),_=Q.sub(L,E),E=Q.add(L,E),k=Q.mul(_,E),L=Q.add(z,z),L=Q.add(L,z),T=Q.mul(l,T),I=Q.mul(v,I),L=Q.add(L,T),T=Q.sub(z,T),T=Q.mul(l,T),I=Q.add(I,T),z=Q.mul(L,I),k=Q.add(k,z),z=Q.mul(R,I),_=Q.mul(F,_),_=Q.sub(_,z),z=Q.mul(F,L),E=Q.mul(R,E),E=Q.add(E,z),new D(_,k,E)}subtract(U){return this.add(U.negate())}is0(){return this.equals(D.ZERO)}wNAF(U){return f.wNAFCached(this,U,D.normalizeZ)}multiplyUnsafe(U){let{endo:j,n:C}=$;gJ("scalar",U,VJ,C);let H=D.ZERO;if(U===VJ)return H;if(this.is0()||U===d)return this;if(!j||f.hasPrecomputes(this))return f.wNAFCachedUnsafe(this,U,D.normalizeZ);let{k1neg:w,k1:y,k2neg:b,k2:_}=j.splitScalar(U),k=H,E=H,l=this;while(y>VJ||_>VJ){if(y&d)k=k.add(l);if(_&d)E=E.add(l);l=l.double(),y>>=d,_>>=d}if(w)k=k.negate();if(b)E=E.negate();return E=new D(Q.mul(E.px,j.beta),E.py,E.pz),k.add(E)}multiply(U){let{endo:j,n:C}=$;gJ("scalar",U,d,C);let H,w;if(j){let{k1neg:y,k1:b,k2neg:_,k2:k}=j.splitScalar(U),{p:E,f:l}=this.wNAF(b),{p:v,f:z}=this.wNAF(k);E=f.constTimeNegate(y,E),v=f.constTimeNegate(_,v),v=new D(Q.mul(v.px,j.beta),v.py,v.pz),H=E.add(v),w=l.add(z)}else{let{p:y,f:b}=this.wNAF(U);H=y,w=b}return D.normalizeZ([H,w])[0]}multiplyAndAddUnsafe(U,j,C){let H=D.BASE,w=(b,_)=>_===VJ||_===d||!b.equals(H)?b.multiplyUnsafe(_):b.multiply(_),y=w(this,j).add(w(U,C));return y.is0()?void 0:y}toAffine(U){return O(this,U)}isTorsionFree(){let{h:U,isTorsionFree:j}=$;if(U===d)return!0;if(j)return j(D,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:U,clearCofactor:j}=$;if(U===d)return this;if(j)return j(D,this);return this.multiplyUnsafe($.h)}toRawBytes(U=!0){return eJ("isCompressed",U),this.assertValidity(),G(D,this,U)}toHex(U=!0){return eJ("isCompressed",U),J$(this.toRawBytes(U))}}D.BASE=new D($.Gx,$.Gy,Q.ONE),D.ZERO=new D(Q.ZERO,Q.ONE,Q.ZERO);let{endo:x,nBitLength:S}=$,f=b0(D,x?Math.ceil(S/2):S);return{CURVE:$,ProjectivePoint:D,normPrivateKeyToScalar:V,weierstrassEquation:Z,isWithinCurveOrder:W}}function uQ(J){let $=I8(J);return vJ($,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...$})}function v0(J){let $=uQ(J),{Fp:Q,n:Y,nByteLength:G,nBitLength:M}=$,Z=Q.BYTES+1,K=2*Q.BYTES+1;function X(z){return t(z,Y)}function q(z){return u$(z,Y)}let{ProjectivePoint:W,normPrivateKeyToScalar:V,weierstrassEquation:N,isWithinCurveOrder:O}=vQ({...$,toBytes(z,L,T){let F=L.toAffine(),I=Q.toBytes(F.x),R=C$;if(eJ("isCompressed",T),T)return R(Uint8Array.from([L.hasEvenY()?2:3]),I);else return R(Uint8Array.from([4]),I,Q.toBytes(F.y))},fromBytes(z){let L=z.length,T=z[0],F=z.subarray(1);if(L===Z&&(T===2||T===3)){let I=jJ(F);if(!v$(I,d,Q.ORDER))throw Error("Point is not on curve");let R=N(I),g;try{g=Q.sqrt(R)}catch(e){let JJ=e instanceof Error?": "+e.message:"";throw Error("Point is not on curve"+JJ)}let u=(g&d)===d;if((T&1)===1!==u)g=Q.neg(g);return{x:I,y:g}}else if(L===K&&T===4){let I=Q.fromBytes(F.subarray(0,Q.BYTES)),R=Q.fromBytes(F.subarray(Q.BYTES,2*Q.BYTES));return{x:I,y:R}}else{let I=Z,R=K;throw Error("invalid Point, expected length of "+I+", or uncompressed "+R+", got "+L)}}});function B(z){let L=Y>>d;return z>L}function D(z){return B(z)?X(-z):z}let x=(z,L,T)=>jJ(z.slice(L,T));class S{constructor(z,L,T){if(gJ("r",z,d,Y),gJ("s",L,d,Y),this.r=z,this.s=L,T!=null)this.recovery=T;Object.freeze(this)}static fromCompact(z){let L=G;return z=$J("compactSignature",z,L*2),new S(x(z,0,L),x(z,L,2*L))}static fromDER(z){let{r:L,s:T}=zJ.toSig($J("DER",z));return new S(L,T)}assertValidity(){}addRecoveryBit(z){return new S(this.r,this.s,z)}recoverPublicKey(z){let{r:L,s:T,recovery:F}=this,I=w($J("msgHash",z));if(F==null||![0,1,2,3].includes(F))throw Error("recovery id invalid");let R=F===2||F===3?L+$.n:L;if(R>=Q.ORDER)throw Error("recovery id 2 or 3 invalid");let g=(F&1)===0?"02":"03",u=W.fromHex(g+S8(R,Q.BYTES)),c=q(R),e=X(-I*c),JJ=X(T*c),NJ=W.BASE.multiplyAndAddUnsafe(u,e,JJ);if(!NJ)throw Error("point at infinify");return NJ.assertValidity(),NJ}hasHighS(){return B(this.s)}normalizeS(){return this.hasHighS()?new S(this.r,X(-this.s),this.recovery):this}toDERRawBytes(){return L$(this.toDERHex())}toDERHex(){return zJ.hexFromSig(this)}toCompactRawBytes(){return L$(this.toCompactHex())}toCompactHex(){let z=G;return S8(this.r,z)+S8(this.s,z)}}let f={isValidPrivateKey(z){try{return V(z),!0}catch(L){return!1}},normPrivateKeyToScalar:V,randomPrivateKey:()=>{let z=L8($.n);return E0($.randomBytes(z),$.n)},precompute(z=8,L=W.BASE){return L._setWindowSize(z),L.multiply(BigInt(3)),L}};function U(z,L=!0){return W.fromPrivateKey(z).toRawBytes(L)}function j(z){if(typeof z==="bigint")return!1;if(z instanceof W)return!0;let T=$J("key",z).length,F=Q.BYTES,I=F+1,R=2*F+1;if($.allowedPrivateKeyLengths||G===I)return;else return T===I||T===R}function C(z,L,T=!0){if(j(z)===!0)throw Error("first arg must be private key");if(j(L)===!1)throw Error("second arg must be public key");return W.fromHex(L).multiply(V(z)).toRawBytes(T)}let H=$.bits2int||function(z){if(z.length>8192)throw Error("input is too large");let L=jJ(z),T=z.length*8-M;return T>0?L>>BigInt(T):L},w=$.bits2int_modN||function(z){return X(H(z))},y=fJ(M);function b(z){return gJ("num < 2^"+M,z,VJ,y),FJ(z,G)}function _(z,L,T=k){if(["recovered","canonical"].some((BJ)=>(BJ in T)))throw Error("sign() legacy options not supported");let{hash:F,randomBytes:I}=$,{lowS:R,prehash:g,extraEntropy:u}=T;if(R==null)R=!0;if(z=$J("msgHash",z),g0(T),g)z=$J("prehashed msgHash",F(z));let c=w(z),e=V(L),JJ=[b(e),b(c)];if(u!=null&&u!==!1){let BJ=u===!0?I(Q.BYTES):u;JJ.push($J("extraEntropy",BJ))}let NJ=C$(...JJ),H$=c;function l$(BJ){let hJ=H(BJ);if(!O(hJ))return;let c$=q(hJ),Q$=W.BASE.multiply(hJ).toAffine(),HJ=X(Q$.x);if(HJ===VJ)return;let Y$=X(c$*X(H$+HJ*e));if(Y$===VJ)return;let lJ=(Q$.x===HJ?0:2)|Number(Q$.y&d),m8=Y$;if(R&&B(Y$))m8=D(Y$),lJ^=1;return new S(HJ,m8,lJ)}return{seed:NJ,k2sig:l$}}let k={lowS:$.lowS,prehash:!1},E={lowS:$.lowS,prehash:!1};function l(z,L,T=k){let{seed:F,k2sig:I}=_(z,L,T),R=$;return B0(R.hash.outputLen,R.nByteLength,R.hmac)(F,I)}W.BASE._setWindowSize(8);function v(z,L,T,F=E){let I=z;L=$J("msgHash",L),T=$J("publicKey",T);let{lowS:R,prehash:g,format:u}=F;if(g0(F),"strict"in F)throw Error("options.strict was renamed to lowS");if(u!==void 0&&u!=="compact"&&u!=="der")throw Error("format must be compact or der");let c=typeof I==="string"||rJ(I),e=!c&&!u&&typeof I==="object"&&I!==null&&typeof I.r==="bigint"&&typeof I.s==="bigint";if(!c&&!e)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");let JJ=void 0,NJ;try{if(e)JJ=new S(I.r,I.s);if(c){try{if(u!=="compact")JJ=S.fromDER(I)}catch(lJ){if(!(lJ instanceof zJ.Err))throw lJ}if(!JJ&&u!=="der")JJ=S.fromCompact(I)}NJ=W.fromHex(T)}catch(lJ){return!1}if(!JJ)return!1;if(R&&JJ.hasHighS())return!1;if(g)L=$.hash(L);let{r:H$,s:l$}=JJ,BJ=w(L),hJ=q(l$),c$=X(BJ*hJ),Q$=X(H$*hJ),HJ=W.BASE.multiplyAndAddUnsafe(NJ,c$,Q$)?.toAffine();if(!HJ)return!1;return X(HJ.x)===H$}return{CURVE:$,getPublicKey:U,getSharedSecret:C,sign:l,verify:v,ProjectivePoint:W,Signature:S,utils:f}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function mQ(J){return{hash:J,hmac:($,...Q)=>X8(J,$,W0(...Q)),randomBytes:j0}}function u0(J,$){let Q=(Y)=>v0({...J,...mQ(Y)});return{...Q($),create:Q}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var l0=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),m0=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),hQ=BigInt(0),lQ=BigInt(1),y8=BigInt(2),h0=(J,$)=>(J+$/y8)/$;function cQ(J){let $=l0,Q=BigInt(3),Y=BigInt(6),G=BigInt(11),M=BigInt(22),Z=BigInt(23),K=BigInt(44),X=BigInt(88),q=J*J*J%$,W=q*q*J%$,V=YJ(W,Q,$)*W%$,N=YJ(V,Q,$)*W%$,O=YJ(N,y8,$)*q%$,B=YJ(O,G,$)*O%$,D=YJ(B,M,$)*B%$,x=YJ(D,K,$)*D%$,S=YJ(x,X,$)*x%$,f=YJ(S,K,$)*D%$,U=YJ(f,Q,$)*W%$,j=YJ(U,Z,$)*B%$,C=YJ(j,Y,$)*q%$,H=YJ(C,y8,$);if(!E8.eql(E8.sqr(H),J))throw Error("Cannot find square root");return H}var E8=P$(l0,void 0,void 0,{sqrt:cQ}),A8=u0({a:hQ,b:BigInt(7),Fp:E8,n:m0,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(J)=>{let $=m0,Q=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-lQ*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),G=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),M=Q,Z=BigInt("0x100000000000000000000000000000000"),K=h0(M*J,$),X=h0(-Y*J,$),q=t(J-K*Q-X*G,$),W=t(-K*Y-X*M,$),V=q>Z,N=W>Z;if(V)q=$-q;if(N)W=$-W;if(q>Z||W>Z)throw Error("splitScalar: Endomorphism failed, k="+J);return{k1neg:V,k1:q,k2neg:N,k2:W}}}},D0);function m$(){let J=A8.utils.randomPrivateKey();return"0x"+Buffer.from(J).toString("hex")}function $$(J){let $=J.startsWith("0x")?J.slice(2):J,Q=Buffer.from($,"hex"),Y=A8.getPublicKey(Q,!1),M=pJ(Y.slice(1)).slice(-20),Z="0x"+Buffer.from(M).toString("hex");return RJ(Z)}function h$(J){let $;if(typeof J==="string"){let Y=J.startsWith("0x")?J.slice(2):J;$=Buffer.from(Y,"hex")}else $=J;let Q=pJ($);return"0x"+Buffer.from(Q).toString("hex")}class r extends N${httpStatus;constructor(J,$){super("ReferralError",J,{...$,source:$?.source||"REFERRALS"});this.httpStatus=$?.httpStatus}static notFoundOnChain(J){return new r(`Referral not found on-chain for signer ${J}`,{code:"REFERRAL_NOT_FOUND_ONCHAIN",source:"ONCHAIN",httpStatus:404,context:{signer:J}})}static alreadyClaimed(J){return new r(`Referral for signer ${J} has already been claimed`,{code:"REFERRAL_ALREADY_CLAIMED",source:"ONCHAIN",httpStatus:410,context:{signer:J}})}static storeFailed(J){return new r(`Failed to store referral: ${J}`,{code:"REFERRAL_STORE_FAILED"})}static storeBatchFailed(J){return new r(`Failed to store referral batch: ${J}`,{code:"REFERRAL_STORE_BATCH_FAILED"})}static retrieveFailed(J,$){return new r(`Failed to retrieve referral: ${J}`,{code:"REFERRAL_RETRIEVE_FAILED",httpStatus:$})}static listFailed(J){return new r(`Failed to list referrals: ${J}`,{code:"REFERRAL_LIST_FAILED"})}static authRequired(){return new r("Authentication required to list referrals",{code:"REFERRAL_AUTH_REQUIRED",source:"VALIDATION"})}}class h extends N${constructor(J,$){super("InvitationError",J,{...$,source:$?.source||"INVITATIONS"})}static noPathFound(J,$,Q){return new h(`No valid invitation path found from ${J} to ${$}. ${Q||"The inviter may not have enough balance of the proxy inviter's token or there's no trust connection."}`,{code:"INVITATION_NO_PATH",source:"PATHFINDING",context:{from:J,to:$,reason:Q}})}static noProxyInviters(J){return new h(`No proxy inviters found for ${J}. The inviter must have mutual trust connections with users who are also trusted by the invitation module, and these users must have sufficient balance.`,{code:"INVITATION_NO_PROXY_INVITERS",source:"VALIDATION",context:{inviter:J}})}static insufficientBalance(J,$,Q,Y,G,M){let Z=Number(Q)/1000000000000000000,K=Number(Y)/1000000000000000000;return new h(`Insufficient balance for ${J} invitation(s). Can only afford ${$} invitation(s). Requested: ${Z.toFixed(6)} CRC, Available: ${K.toFixed(6)} CRC.`,{code:"INVITATION_INSUFFICIENT_BALANCE",source:"VALIDATION",context:{from:G,to:M,requestedInvites:J,availableInvites:$,requested:Q.toString(),available:Y.toString(),requestedCrc:Z,availableCrc:K}})}static inviteeAlreadyRegistered(J,$){return new h(`Invitee ${$} is already registered as a human in Circles Hub. Cannot invite an already registered user.`,{code:"INVITATION_INVITEE_ALREADY_REGISTERED",source:"VALIDATION",context:{inviter:J,invitee:$}})}static noAddressesProvided(){return new h("At least one address must be provided for invitation.",{code:"INVITATION_NO_ADDRESSES_PROVIDED",source:"VALIDATION"})}}var c0=[];for(let J=0;J<256;J++)c0[J]=J.toString(16).padStart(2,"0");function B$(J){let $="0x";for(let Q=0;Q<J.length;Q++)$+=c0[J[Q]];return $}function p0(J){let $=new Uint8Array(J.length*2);return J.forEach((Q,Y)=>{let G=Q>>8,M=Q&255,Z=2*Y;$[Z]=G,$[Z+1]=M}),B$($)}function d0(J,$,Q){let Y=new Set([$.toLowerCase(),Q.toLowerCase()]);J.forEach((Z)=>{Y.add(Z.from.toLowerCase()),Y.add(Z.to.toLowerCase()),Y.add(Z.tokenOwner.toLowerCase())});let G=[...Y].sort((Z,K)=>{let X=BigInt(Z),q=BigInt(K),W=X<q,V=X>q;return W?-1:V?1:0}),M={};return G.forEach((Z,K)=>{M[Z]=K}),{sorted:G,idx:M}}function pQ(J,$){let Q=new Set,Y=[],G=null;if(J.forEach((M,Z)=>{let K=M.from.toLowerCase(),X=M.to.toLowerCase();if(K===$&&X===$)G=Z;else if(X===$)Y.push(Z)}),G!==null)Q.add(G);else Y.forEach((M)=>Q.add(M));return Q}function x8(J,$,Q,Y){let G=J.toLowerCase(),M=$.toLowerCase(),{sorted:Z,idx:K}=d0(Y,G,M),X=pQ(Y,M),q=Y.map((S,f)=>{return{streamSinkId:X.has(f)?1:0,amount:S.value}});if(X.size===0)throw Error(`No terminal edges detected. Flow must have at least one edge delivering to receiver ${M}`);let W=Array.from(X),V=[{sourceCoordinate:K[G],flowEdgeIds:W,data:new Uint8Array(0)}],N=[];Y.forEach((S)=>{N.push(K[S.tokenOwner.toLowerCase()]),N.push(K[S.from.toLowerCase()]),N.push(K[S.to.toLowerCase()])});let O=p0(N),B=BigInt(Q),D=q.filter((S)=>S.streamSinkId===1).reduce((S,f)=>S+BigInt(f.amount.toString()),BigInt(0));if(D!==B)throw Error(`Terminal sum ${D} does not equal expected ${B}`);return{flowVertices:Z,flowEdges:q,streams:V,packedCoordinates:O,sourceCoordinate:K[G]}}function k8(J,$){let Q=J.streams.map((Y)=>({sourceCoordinate:Y.sourceCoordinate,flowEdgeIds:Y.flowEdgeIds,data:Y.data instanceof Uint8Array?B$(Y.data):Y.data}));if($&&Q.length>0)Q[0].data=$ instanceof Uint8Array?B$($):$;return Q}async function w8(J,$,Q){let Y=new Map,G=new Set;return Q.transfers.forEach((K)=>{if(J.toLowerCase()===K.from.toLowerCase())G.add(K.tokenOwner.toLowerCase())}),(await new k$($).token.getTokenInfoBatch(Array.from(G))).forEach((K)=>{if(K.isWrapped&&!K.isInflationary)K.tokenType="CrcV2_ERC20WrapperDeployed_Demurraged";Y.set(K.tokenAddress.toLowerCase(),K)}),Y}function b8(J,$){let Q={};return J.transfers.forEach((Y)=>{let G=$.get(Y.tokenOwner.toLowerCase());if(G&&G.tokenType.startsWith("CrcV2_ERC20WrapperDeployed")){if(!Q[Y.tokenOwner])Q[Y.tokenOwner]=[BigInt(0),G.tokenType];Q[Y.tokenOwner][0]+=BigInt(Y.value)}}),Q}function F8(J,$){let Q=J.transfers.map((Y)=>{let G=$.get(Y.tokenOwner.toLowerCase());if(G&&G.tokenType.startsWith("CrcV2_ERC20WrapperDeployed"))return{...Y,tokenOwner:G.tokenOwner};return Y});return{...J,transfers:Q}}class a extends M${constructor(J,$){super("TransferError",J,{...$,source:$?.source||"TRANSFERS"})}static noPathFound(J,$,Q){return new a(`No valid transfer path found from ${J} to ${$}. ${Q||"This could mean there's no trust connection, insufficient balance, or the tokens are not transferable."}`,{code:"TRANSFER_NO_PATH",source:"PATHFINDING",context:{from:J,to:$,reason:Q}})}static insufficientBalance(J,$,Q,Y){let G=Number(J)/1000000000000000000,M=Number($)/1000000000000000000;return new a(`Insufficient balance for transfer. Requested: ${G.toFixed(6)} CRC, Available: ${M.toFixed(6)} CRC.`,{code:"TRANSFER_INSUFFICIENT_BALANCE",source:"VALIDATION",context:{from:Q,to:Y,requested:J.toString(),available:$.toString(),requestedCrc:G,availableCrc:M}})}static wrappedTokensRequired(){return new a("Insufficient unwrapped token balance for transfer. Your balance contains wrapped tokens (ERC20 wrappers), but useWrappedBalances option is not enabled. Please enable it by passing { useWrappedBalances: true } in the transfer options.",{code:"TRANSFER_WRAPPED_TOKENS_REQUIRED",source:"VALIDATION"})}static unregisteredAvatars(J){return new a(`Flow matrix contains ${J.length} unregistered avatar(s): ${J.join(", ")}. All addresses in the flow must be registered Circles avatars (human or group).`,{code:"TRANSFER_UNREGISTERED_AVATARS",source:"FLOW_MATRIX",context:{unregisteredAddresses:J,count:J.length}})}static flowMatrixMismatch(J,$){return new a(`Flow matrix terminal sum (${J}) does not equal expected amount (${$})`,{code:"TRANSFER_FLOW_MATRIX_MISMATCH",source:"FLOW_MATRIX",context:{terminalSum:J.toString(),expected:$.toString()}})}static emptyPath(J,$){return new a(`Transfer path is empty for route from ${J} to ${$}`,{code:"TRANSFER_EMPTY_PATH",source:"PATHFINDING",context:{from:J,to:$}})}}class mJ{config;hubV2;liftERC20;rpcClient;pathfinder;balance;group;constructor(J){this.config=J,this.hubV2=new LJ({address:J.v2HubAddress,rpcUrl:J.circlesRpcUrl}),this.liftERC20=new w$({address:J.liftERC20Address,rpcUrl:J.circlesRpcUrl}),this.rpcClient=new DJ(J.circlesRpcUrl),this.pathfinder=new qJ(this.rpcClient),this.balance=new EJ(this.rpcClient),this.group=new xJ(this.rpcClient)}async buildFlowMatrixTx(J,$,Q,Y,G=!1){let M=J.toLowerCase(),Z=$.toLowerCase();if(!Q.transfers||Q.transfers.length===0)throw a.noPathFound(M,Z);let K={...Q};if(G&&Y?.toTokens?.length===1){let f=Y.toTokens[0].toLowerCase();if(Q.maxFlow>0n)K.transfers.push({from:Z,to:Z,tokenOwner:f,value:Q.maxFlow})}let X=await w8(M,this.config.circlesRpcUrl,K),q=b8(K,X),W=Object.keys(q).length>0;if(W&&!Y?.useWrappedBalances)throw a.wrappedTokensRequired();let V=[],N=[];if(W){let f=await this._getTokenBalanceMap(M),U=this._createDemurragedUnwrapCalls(q),{unwrapCalls:j,wrapCalls:C}=this._createInflationaryUnwrapAndWrapCalls(q,X,f);V=[...U,...j],N=C,K=F8(K,X)}let O=x8(M,Z,K.maxFlow,K.transfers),B=k8(O,Y?.txData),D=this.hubV2.operateFlowMatrix(O.flowVertices,O.flowEdges,B,O.packedCoordinates),x=!1;try{x=await this.hubV2.isApprovedForAll(M,M)}catch(f){console.warn("Failed to check approval status, including approval transaction:",f)}return[...x?[]:[this.hubV2.setApprovalForAll(M,!0)],...V,D,...N]}async constructAdvancedTransfer(J,$,Q,Y,G=!1){let M=J.toLowerCase(),Z=$.toLowerCase(),K=BigInt(Q);if(M===Z&&Y?.fromTokens?.length===1&&Y?.toTokens?.length===1){let O=Y.fromTokens[0],B=Y.toTokens[0],[D,x]=await Promise.all([this.liftERC20.erc20Circles(0,B),this.liftERC20.erc20Circles(1,B)]);if(O.toLowerCase()===D.toLowerCase()&&D!==IJ){let f=new nJ({address:O,rpcUrl:this.config.circlesRpcUrl}).unwrap(K);return[{to:f.to,data:f.data,value:f.value??0n}]}if(O.toLowerCase()===x.toLowerCase()&&x!==IJ){let S=new tJ({address:O,rpcUrl:this.config.circlesRpcUrl}),f=GJ.attoCirclesToAttoStaticCircles(K),U=S.unwrap(f);return[{to:U.to,data:U.data,value:U.value??0n}]}}let X=this._truncateToSixDecimals(K),q=await this._getDefaultTokenExcludeList(Z,Y?.excludeFromTokens),{...W}=Y||{},V={...W,...q?{excludeFromTokens:q}:{}},N=await this.pathfinder.findPath({from:M,to:Z,targetFlow:X,...V});if(!N.transfers||N.transfers.length===0)throw a.noPathFound(M,Z);if(N.maxFlow<X)throw a.insufficientBalance(X,N.maxFlow,M,Z);return this.buildFlowMatrixTx(M,Z,N,Y,G)}async constructReplenish(J,$,Q,Y){let G=J.toLowerCase(),M=$.toLowerCase(),Z=(Y||J).toLowerCase(),K=BigInt(Q),q=(await this.balance.getTokenBalances(G)).filter((R)=>R.tokenOwner.toLowerCase()===M),W=0n,V=0n,N=0n,O=null,B=null;for(let R of q)if(R.isWrapped)if(R.tokenType.includes("Demurrage"))V=BigInt(R.attoCircles),O=R.tokenAddress;else N=BigInt(R.staticAttoCircles),B=R.tokenAddress;else W=BigInt(R.attoCircles);let D=W+V+GJ.attoStaticCirclesToAttoCircles(N),x=[];if(W>=K){if(console.log(`✓ Already have ${Number(W)/1000000000000000000} CRC unwrapped (target: ${Number(K)/1000000000000000000} CRC). No replenish needed.`),Z!==G){let R=await this.hubV2.toTokenId(M),g=this.hubV2.safeTransferFrom(G,Z,R,K);x.push({to:g.to,data:g.data,value:g.value??0n})}return x}let S=K-W;if(console.log(`Current unwrapped: ${Number(W)/1000000000000000000} CRC`),console.log(`Target amount: ${Number(K)/1000000000000000000} CRC`),console.log(`Need to acquire: ${Number(S)/1000000000000000000} CRC`),D>=K){let R=S;if(V>0n&&O&&R>0n){let g=R>V?V:R,c=new nJ({address:O,rpcUrl:this.config.circlesRpcUrl}).unwrap(g);x.push({to:c.to,data:c.data,value:c.value??0n}),R-=g}if(N>0n&&B&&R>0n){let g=GJ.attoCirclesToAttoStaticCircles(R),u=g>N?N:g,e=new tJ({address:B,rpcUrl:this.config.circlesRpcUrl}).unwrap(u);x.push({to:e.to,data:e.data,value:e.value??0n})}if(Z!==G){let g=await this.hubV2.toTokenId(M),u=this.hubV2.safeTransferFrom(G,Z,g,K);x.push({to:u.to,data:u.data,value:u.value??0n})}return x}let U=!await this.hubV2.isTrusted(G,M),j=BigInt(Math.floor(Date.now()/1000)+31536000),C=GJ.truncateToInt64(S),H=S%GJ.FACTOR_1E12!==0n,w=GJ.blowUpToBigInt(H?C+1n:C),y;try{y=await this.pathfinder.findPath({from:G,to:Z,targetFlow:w,toTokens:[M],useWrappedBalances:!0,simulatedTrusts:U?[{truster:G,trustee:M}]:void 0})}catch(R){let g=Number(D)/1000000000000000000,u=Number(K)/1000000000000000000,c=Number(S)/1000000000000000000;throw new a(`Insufficient tokens to replenish. Target: ${u.toFixed(6)} CRC, Current unwrapped: ${Number(W)/1000000000000000000} CRC, Need: ${c.toFixed(6)} CRC, Available (including all paths): ${g.toFixed(6)} CRC. Cannot acquire the remaining ${(Number(S-(D-W))/1000000000000000000).toFixed(6)} CRC.`,{code:"REPLENISH_INSUFFICIENT_TOKENS",source:"VALIDATION",context:{from:G,tokenId:M,target:K.toString(),unwrapped:W.toString(),deficit:S.toString(),available:D.toString(),targetCrc:u,unwrappedCrc:Number(W)/1000000000000000000,deficitCrc:c,availableCrc:g}})}if(!y.transfers||y.transfers.length===0)throw a.noPathFound(G,Z,`No path to acquire token ${M}`);if(y.maxFlow<w){let R=Number(y.maxFlow)/1000000000000000000,g=Number(w)/1000000000000000000;throw new a(`Pathfinder can only provide ${R.toFixed(6)} CRC of the ${g.toFixed(6)} CRC deficit needed for token ${M}.`,{code:"REPLENISH_INSUFFICIENT_PATH_FLOW",source:"PATHFINDING",context:{from:G,tokenId:M,deficit:w.toString(),pathFlow:y.maxFlow.toString(),deficitCrc:g,pathFlowCrc:R}})}if(U){let R=this.hubV2.trust(M,j);x.push({to:R.to,data:R.data,value:R.value??0n})}let b=await w8(G,this.config.circlesRpcUrl,y),_=b8(y,b),k=Object.keys(_).length>0,E=[],l=[];if(k){let R=await this._getTokenBalanceMap(G),g=this._createDemurragedUnwrapCalls(_),{unwrapCalls:u,wrapCalls:c}=this._createInflationaryUnwrapAndWrapCalls(_,b,R);E=[...g,...u],l=c,y=F8(y,b)}let v=x8(G,Z,y.maxFlow,y.transfers),z=k8(v),L=this.hubV2.operateFlowMatrix(v.flowVertices,v.flowEdges,z,v.packedCoordinates),T={to:L.to,data:L.data,value:L.value??0n},F=!1;try{F=await this.hubV2.isApprovedForAll(G,G)}catch(R){console.warn("Failed to check approval status, including approval transaction:",R)}if(U){let R=this.hubV2.trust(M,0n);l.push({to:R.to,data:R.data,value:R.value??0n})}let I=F?[]:[{to:this.hubV2.setApprovalForAll(G,!0).to,data:this.hubV2.setApprovalForAll(G,!0).data,value:0n}];return x.push(...I,...E,T,...l),x}async _getTokenBalanceMap(J){let $=await this.balance.getTokenBalances(J),Q=new Map;return $.forEach((Y)=>{Q.set(Y.tokenAddress.toLowerCase(),Y.staticAttoCircles)}),Q}_createDemurragedUnwrapCalls(J){let $=[];for(let[Q,[Y,G]]of Object.entries(J)){if(G!=="CrcV2_ERC20WrapperDeployed_Demurraged")continue;let Z=new nJ({address:Q,rpcUrl:this.config.circlesRpcUrl}).unwrap(Y);$.push({to:Z.to,data:Z.data,value:Z.value??0n})}return $}_createInflationaryUnwrapAndWrapCalls(J,$,Q){let Y=[],G=[];for(let[M,[Z,K]]of Object.entries(J)){if(K!=="CrcV2_ERC20WrapperDeployed_Inflationary")continue;let X=$.get(M.toLowerCase()),q=Q.get(M.toLowerCase())||0n;if(q===0n)continue;let V=new tJ({address:M,rpcUrl:this.config.circlesRpcUrl}).unwrap(q);Y.push({to:V.to,data:V.data,value:V.value??0n});let N=X?.tokenOwner,O=GJ.attoStaticCirclesToAttoCircles(q)-Z;if(O>0n){let B=this.hubV2.wrap(N,O,1);G.push({to:B.to,data:B.data,value:B.value??0n})}}return{unwrapCalls:Y,wrapCalls:G}}_truncateToSixDecimals(J){let $=BigInt(1e6),Q=BigInt(10)**BigInt(18);return J/(Q/$)*(Q/$)}async _getDefaultTokenExcludeList(J,$){let Q=await this.group.findGroups(1,{mintHandlerEquals:J}),Y=new Set;if(Q.results.length>0){let G=Q.results[0];if(Y.add(G.group.toLowerCase()),G.erc20WrapperDemurraged)Y.add(G.erc20WrapperDemurraged.toLowerCase());if(G.erc20WrapperStatic)Y.add(G.erc20WrapperStatic.toLowerCase())}if($?.forEach((G)=>Y.add(G.toLowerCase())),Y.size===0)return;return Array.from(Y)}}var i0=iJ;class g8{config;rpcClient;pathfinder;trust;token;hubV2;referralsModule;invitationFarm;invitationModuleContract;constructor(J){if(!J.referralsServiceUrl)throw new h("referralsServiceUrl is required in config",{code:"INVITATION_MISSING_CONFIG",source:"INVITATIONS",context:{missingField:"referralsServiceUrl"}});this.config=J,this.rpcClient=new DJ(J.circlesRpcUrl),this.pathfinder=new qJ(this.rpcClient),this.trust=new yJ(this.rpcClient),this.token=new AJ(this.rpcClient),this.hubV2=new LJ({address:J.v2HubAddress,rpcUrl:J.circlesRpcUrl}),this.referralsModule=new oJ({address:J.referralsModuleAddress,rpcUrl:J.circlesRpcUrl}),this.invitationFarm=new aJ({address:J.invitationFarmAddress,rpcUrl:J.circlesRpcUrl}),this.invitationModuleContract=new F$({address:J.invitationModuleAddress,rpcUrl:J.circlesRpcUrl})}async ensureInviterSetup(J){let $=J.toLowerCase(),Q=this.config.invitationModuleAddress,Y=[],G=new b$({address:$,rpcUrl:this.config.circlesRpcUrl});if(!await G.isModuleEnabled(Q))Y.push(G.enableModule(Q)),Y.push(this.invitationModuleContract.trustInviter($));else if(!await this.hubV2.isTrusted(Q,$))Y.push(this.invitationModuleContract.trustInviter($));return Y}async saveReferralData(J,$){try{let Q=await fetch(`${this.config.referralsServiceUrl}/store`,{method:"POST",headers:{accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({privateKey:$,inviter:J})});if(!Q.ok)throw new h(`HTTP error! status: ${Q.status}`,{code:"INVITATION_HTTP_ERROR",source:"INVITATIONS",context:{status:Q.status,url:`${this.config.referralsServiceUrl}/store`}})}catch(Q){throw new h(`Failed to save referral data: ${Q instanceof Error?Q.message:"Unknown error"}`,{code:"INVITATION_SAVE_REFERRAL_FAILED",source:"INVITATIONS",cause:Q})}}async listReferrals(J,$=10,Q=0){try{let Y=new URL(`${this.config.referralsServiceUrl}/list/${J}`);Y.searchParams.set("limit",String($)),Y.searchParams.set("offset",String(Q));let G=await fetch(Y.toString(),{method:"GET",headers:{accept:"application/json"}});if(!G.ok)throw new h(`HTTP error! status: ${G.status}`,{code:"INVITATION_HTTP_ERROR",source:"INVITATIONS",context:{status:G.status,url:Y.toString()}});return await G.json()}catch(Y){if(Y instanceof h)throw Y;throw new h(`Failed to list referrals: ${Y instanceof Error?Y.message:"Unknown error"}`,{code:"INVITATION_LIST_REFERRALS_FAILED",source:"INVITATIONS",cause:Y})}}orderRealInviters(J,$){let Q=$.toLowerCase();return J.sort((Y,G)=>{let M=Y.address.toLowerCase()===Q,Z=G.address.toLowerCase()===Q;if(M&&!Z)return-1;if(!M&&Z)return 1;return 0})}async generateInvite(J,$){let Q=J.toLowerCase(),Y=$.toLowerCase();if(await this.hubV2.isHuman(Y))throw h.inviteeAlreadyRegistered(Q,Y);let M=await this.ensureInviterSetup(Q),Z=await this.getRealInviters(Q),K=[...M];if(Z.length>0){console.log("[generateInvite] Using STANDARD PATH (proxy inviters available)");let X=Z[0].address,q=await this.findInvitePath(Q,X),W=await this.generateInviteData([Y],!1),N=await new mJ(this.config).buildFlowMatrixTx(Q,this.config.invitationModuleAddress,q,{toTokens:[X],useWrappedBalances:!0,txData:y$(W)},!0);K.push(...N)}else{console.log("[generateInvite] Using FARM FALLBACK PATH (no proxy inviters available)");let X=new mJ(this.config),q=await this.findFarmInvitePath(Q),W=await X.buildFlowMatrixTx(Q,SJ,q,{toTokens:[iJ],useWrappedBalances:!0},!0);K.push(...W);let V="0x20EcD8bDeb2F48d8a7c94E542aA4feC5790D9676",N=await this.invitationFarm.read("claimInvite",[],{from:V}),O=this.invitationFarm.claimInvite();K.push(O);let B=await this.invitationFarm.invitationModule(),D=QJ(["address"],[Y]),x=this.hubV2.safeTransferFrom(Q,B,N,p,D);K.push(x)}return K}async findInvitePath(J,$){let Q=J.toLowerCase(),Y;if($)Y=$.toLowerCase();else{let M=await this.getRealInviters(Q);if(M.length===0)throw h.noPathFound(Q,this.config.invitationModuleAddress);Y=M[0].address}let G=await this.pathfinder.findPath({from:Q,to:this.config.invitationModuleAddress,targetFlow:p,toTokens:[Y],useWrappedBalances:!0,simulatedTrusts:[{truster:this.config.invitationModuleAddress,trustee:Q}]});if(!G.transfers||G.transfers.length===0)throw h.noPathFound(Q,this.config.invitationModuleAddress);if(G.maxFlow<p){let Z=Number(G.maxFlow/p);throw h.insufficientBalance(1,Z,p,G.maxFlow,Q,this.config.invitationModuleAddress)}return G}async findFarmInvitePath(J){let $=J.toLowerCase(),Q=await this.pathfinder.findPath({from:$,to:SJ,targetFlow:p,toTokens:[i0],useWrappedBalances:!0});if(!Q.transfers||Q.transfers.length===0)throw h.noPathFound($,SJ);if(Q.maxFlow<p){let G=Number(Q.maxFlow/p);throw h.insufficientBalance(1,G,p,Q.maxFlow,$,SJ)}return Q}async getRealInviters(J){let $=J.toLowerCase(),[Q,Y,G,M,Z]=await Promise.all([iJ!=="0x0000000000000000000000000000000000000000"?this.trust.getTrusts(iJ):Promise.resolve([]),this.trust.getTrustedBy($),this.trust.getMutualTrusts($),this.trust.getTrusts(this.config.invitationModuleAddress),this.trust.getMutualTrusts(this.config.invitationModuleAddress)]),K=new Set(Q.map((j)=>j.objectAvatar.toLowerCase())),X=new Set([...Y.map((j)=>j.objectAvatar.toLowerCase()),...G.map((j)=>j.objectAvatar.toLowerCase())]),q=new Set([...M.map((j)=>j.objectAvatar.toLowerCase()),...Z.map((j)=>j.objectAvatar.toLowerCase())]),V=[...[...X].filter((j)=>q.has(j)&&!K.has(j)),$];if(V.length===0)return[];let N=await this.pathfinder.findPath({from:$,to:this.config.invitationModuleAddress,useWrappedBalances:!0,targetFlow:q$,toTokens:V,simulatedTrusts:[{truster:this.config.invitationModuleAddress,trustee:$}]});if(!N.transfers||N.transfers.length===0)return[];let O=this.config.invitationModuleAddress.toLowerCase(),B=N.transfers.filter((j)=>j.to.toLowerCase()===O),D=[...new Set(B.map((j)=>j.tokenOwner.toLowerCase()))],x=await this.token.getTokenInfoBatch(D),S=new Map;for(let j of x){let C=j.tokenAddress??j.token;if(C&&j?.tokenOwner)S.set(C.toLowerCase(),j.tokenOwner.toLowerCase())}let f=new Map;for(let j of B){let C=j.tokenOwner.toLowerCase(),H=S.get(C)??C;f.set(H,(f.get(H)??0n)+j.value)}let U=[];for(let[j,C]of f.entries()){let H=Number(C/p);if(H>=1)U.push({address:j,possibleInvites:H})}return this.orderRealInviters(U,$)}async generateReferral(J){let $=J.toLowerCase(),Q=m$(),Y=$$(Q),G=await this.ensureInviterSetup($),M=await this.getRealInviters($),Z=[...G];if(M.length>0){console.log("[generateReferral] Using STANDARD PATH (proxy inviters available)");let K=new mJ(this.config),X=await this.generateInviteData([Y],!0),q=M[0].address,W=await this.findInvitePath($,q),V=await K.buildFlowMatrixTx($,this.config.invitationModuleAddress,W,{toTokens:[q],useWrappedBalances:!0,txData:y$(X)},!0);Z.push(...V)}else{console.log("[generateReferral] Using FARM FALLBACK PATH (no proxy inviters available)");let K=new mJ(this.config),X=await this.findFarmInvitePath($),q=await K.buildFlowMatrixTx($,SJ,X,{toTokens:[i0],useWrappedBalances:!0},!0);Z.push(...q);let W="0x20EcD8bDeb2F48d8a7c94E542aA4feC5790D9676",V=await this.invitationFarm.read("claimInvite",[],{from:W}),N=this.invitationFarm.claimInvite();Z.push(N);let O=await this.invitationFarm.invitationModule(),B=this.referralsModule.createAccount(Y).data,D=QJ(["address","bytes"],[this.config.referralsModuleAddress,B]),x=this.hubV2.safeTransferFrom($,O,V,p,D);Z.push(x)}return{transactions:Z,privateKey:Q}}async generateInviteData(J,$=!0){if(J.length===0)throw h.noAddressesProvided();if(!$)if(J.length===1)return QJ(["address"],[J[0]]);else return QJ(["address[]"],[J]);if(J.length===1){let Y=this.referralsModule.createAccount(J[0]).data;return QJ(["address","bytes"],[this.config.referralsModuleAddress,Y])}else{let Y=this.referralsModule.createAccounts(J).data;return QJ(["address","bytes"],[this.config.referralsModuleAddress,Y])}}computeAddress(J){let Q=J.toLowerCase().replace("0x","").padStart(64,"0"),Y=r$.replace("0x","")+Q,G=h$("0x"+Y),M="ff",Z=s$.toLowerCase().replace("0x",""),K=G.replace("0x",""),X=e$.replace("0x",""),q="ff"+Z+K+X,V="0x"+h$("0x"+q).slice(-40);return RJ(V)}generateSecrets(J){return Array.from({length:J},()=>{let $=m$(),Q=$$($).toLowerCase();return{secret:$,signer:Q}})}}class iQ{referralsModuleAddress;invitations;invitationFarm;referralsModule;hubV2;constructor(J){this.referralsModuleAddress=J.referralsModuleAddress,this.invitations=new g8(J),this.invitationFarm=new aJ({address:J.invitationFarmAddress,rpcUrl:J.circlesRpcUrl}),this.referralsModule=new oJ({address:J.referralsModuleAddress,rpcUrl:J.circlesRpcUrl}),this.hubV2=new LJ({address:J.v2HubAddress,rpcUrl:J.circlesRpcUrl})}async getQuota(J){return this.invitationFarm.inviterQuota(J)}async getInvitationFee(){return this.invitationFarm.invitationFee()}async getInvitationModule(){return this.invitationFarm.invitationModule()}async generateReferrals(J,$){if($<=0)throw new h("Count must be greater than 0",{code:"INVITATION_INVALID_COUNT",source:"VALIDATION",context:{count:$}});let Q=J.toLowerCase(),Y=$===1,G=await this.simulateClaim(Q,$);if(!G.length)throw new h("No invitation IDs returned from claim",{code:"INVITATION_NO_IDS",source:"INVITATIONS",context:{inviter:Q,count:$}});let M=this.invitations.generateSecrets($),Z=M.map((W)=>W.signer),K=await this.invitationFarm.invitationModule(),X=Y?this.invitationFarm.claimInvite():this.invitationFarm.claimInvites(BigInt($)),q=Y?this.buildReferralTransfer(Q,K,G[0],Z[0]):this.buildBatchReferralTransfer(Q,K,G,Z);return{referrals:M,transactions:[X,q]}}async generateInvites(J,$){if($.length===0)throw new h("At least one invitee address must be provided",{code:"INVITATION_INVALID_COUNT",source:"VALIDATION",context:{count:0}});let Q=J.toLowerCase(),Y=$.map((W)=>W.toLowerCase()),G=Y.length,M=G===1,Z=await this.simulateClaim(Q,G);if(!Z.length)throw new h("No invitation IDs returned from claim",{code:"INVITATION_NO_IDS",source:"INVITATIONS",context:{inviter:Q,count:G}});let K=await this.invitationFarm.invitationModule(),X=M?this.invitationFarm.claimInvite():this.invitationFarm.claimInvites(BigInt(G)),q=M?this.buildInviteTransfer(Q,K,Z[0],Y[0]):this.buildBatchInviteTransfer(Q,K,Z,Y);return{invitees:Y,transactions:[X,q]}}async listReferrals(J,$=10,Q=0){return this.invitations.listReferrals(J,$,Q)}async simulateClaim(J,$){if($===1)return[await this.invitationFarm.read("claimInvite",[],{from:J})];return this.invitationFarm.read("claimInvites",[BigInt($)],{from:J})}buildReferralTransfer(J,$,Q,Y){let G=this.referralsModule.createAccount(Y).data,M=QJ(["address","bytes"],[this.referralsModuleAddress,G]);return this.hubV2.safeTransferFrom(J,$,Q,p,M)}buildBatchReferralTransfer(J,$,Q,Y){let G=this.referralsModule.createAccounts(Y).data,M=QJ(["address","bytes"],[this.referralsModuleAddress,G]),Z=Q.map(()=>p);return this.hubV2.safeBatchTransferFrom(J,$,Q,Z,M)}buildInviteTransfer(J,$,Q,Y){let G=QJ(["address"],[Y]);return this.hubV2.safeTransferFrom(J,$,Q,p,G)}buildBatchInviteTransfer(J,$,Q,Y){let G=QJ(["address[]"],[Y]),M=Q.map(()=>p);return this.hubV2.safeBatchTransferFrom(J,$,Q,M,G)}}class f8{address;abi;rpcUrl;constructor(J){this.address=J.address,this.abi=J.abi,this.rpcUrl=J.rpcUrl}async read(J,$,Q){let Y=TJ({abi:this.abi,functionName:J,args:$}),G={to:this.address,data:Y,...Q?.from&&{from:Q.from}},Z=await(await fetch(this.rpcUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_call",params:[G,"latest"]})})).json();if(Z.error)throw Error(`RPC Error: ${Z.error.message}`);if(!Z.result)throw Error("No result returned from RPC call");return K$({abi:this.abi,functionName:J,data:Z.result})}encodeWrite(J,$){return TJ({abi:this.abi,functionName:J,args:$})}}var n0=[{type:"constructor",inputs:[{name:"invitationModule",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"AFFILIATE_GROUP_REGISTRY",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"GENERIC_CALL_PROXY",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"HUB",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"INVITATION_MODULE",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"NAME_REGISTRY",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"SAFE_4337_MODULE",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"SAFE_MODULE_SETUP",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"SAFE_PROXY_FACTORY",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ISafeProxyFactory"}],stateMutability:"view"},{type:"function",name:"SAFE_SINGLETON",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"SAFE_WEB_AUTHN_SHARED_SIGNER",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"WELCOME_BONUS",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"accounts",inputs:[{name:"signer",type:"address",internalType:"address"}],outputs:[{name:"account",type:"address",internalType:"address"},{name:"claimed",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"claimAccount",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"},{name:"verifier",type:"address",internalType:"address"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimAccount",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"},{name:"verifier",type:"address",internalType:"address"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"metadataDigest",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimAccount",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"},{name:"verifier",type:"address",internalType:"address"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"affiliateGroup",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimAccount",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"},{name:"verifier",type:"address",internalType:"address"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"metadataDigest",type:"bytes32",internalType:"bytes32"},{name:"affiliateGroup",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"computeAddress",inputs:[{name:"signer",type:"address",internalType:"address"}],outputs:[{name:"predictedAddress",type:"address",internalType:"address"}],stateMutability:"pure"},{type:"function",name:"createAccount",inputs:[{name:"signer",type:"address",internalType:"address"}],outputs:[{name:"account",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"createAccounts",inputs:[{name:"signers",type:"address[]",internalType:"address[]"}],outputs:[{name:"_accounts",type:"address[]",internalType:"address[]"}],stateMutability:"nonpayable"},{type:"function",name:"encodePasskeyData",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"},{name:"verifier",type:"address",internalType:"address"}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"view"},{type:"function",name:"getPasskeyHash",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"},{name:"verifier",type:"address",internalType:"address"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"event",name:"AccountClaimed",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"AccountCreated",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AccountAlreadyClaimed",inputs:[]},{type:"error",name:"InvalidSignature",inputs:[]},{type:"error",name:"OnlyGenericCallProxy",inputs:[]},{type:"error",name:"SignerAlreadyUsed",inputs:[]}];class v8 extends f8{constructor(J){super({address:J.address,abi:n0,rpcUrl:J.rpcUrl})}createAccount(J){return{to:this.address,data:this.encodeWrite("createAccount",[J]),value:BigInt(0)}}createAccounts(J){return{to:this.address,data:this.encodeWrite("createAccounts",[J]),value:BigInt(0)}}async computeAddress(J){return this.read("computeAddress",[J])}claimAccount(J,$,Q,Y){return{to:this.address,data:this.encodeWrite("claimAccount",[J,$,Q,Y]),value:BigInt(0)}}claimAccountWithMetadata(J,$,Q,Y,G){return{to:this.address,data:this.encodeWrite("claimAccount",[J,$,Q,Y,G]),value:BigInt(0)}}claimAccountWithAffiliateGroup(J,$,Q,Y,G){return{to:this.address,data:this.encodeWrite("claimAccount",[J,$,Q,Y,G]),value:BigInt(0)}}claimAccountWithMetadataAndAffiliateGroup(J,$,Q,Y,G,M){return{to:this.address,data:this.encodeWrite("claimAccount",[J,$,Q,Y,G,M]),value:BigInt(0)}}async accounts(J){let[$,Q]=await this.read("accounts",[J]);return{account:$,claimed:Q}}async domainSeparator(){return this.read("DOMAIN_SEPARATOR")}async welcomeBonus(){return this.read("WELCOME_BONUS")}async hub(){return this.read("HUB")}async invitationModule(){return this.read("INVITATION_MODULE")}async genericCallProxy(){return this.read("GENERIC_CALL_PROXY")}async nameRegistry(){return this.read("NAME_REGISTRY")}async affiliateGroupRegistry(){return this.read("AFFILIATE_GROUP_REGISTRY")}async safeProxyFactory(){return this.read("SAFE_PROXY_FACTORY")}async safeSingleton(){return this.read("SAFE_SINGLETON")}async safe4337Module(){return this.read("SAFE_4337_MODULE")}async safeModuleSetup(){return this.read("SAFE_MODULE_SETUP")}async safeWebAuthnSharedSigner(){return this.read("SAFE_WEB_AUTHN_SHARED_SIGNER")}}class nQ{baseUrl;getToken;referralsModule;constructor(J,$,Q,Y){this.baseUrl=J;this.getToken=Y;this.referralsModule=new v8({address:$,rpcUrl:Q})}getBaseUrl(){return this.baseUrl.endsWith("/")?this.baseUrl.slice(0,-1):this.baseUrl}async getAuthHeaders(){let J={"Content-Type":"application/json"};if(!this.getToken)return J;let $=await this.getToken();return{...J,Authorization:`Bearer ${$}`}}async store(J,$){let Q=await fetch(`${this.getBaseUrl()}/store`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({privateKey:J,inviter:$})});if(!Q.ok){let Y=await Q.json();throw r.storeFailed(Y.error||Q.statusText)}}async storeBatch(J){let $=await fetch(`${this.getBaseUrl()}/store-batch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({invitations:J})});if(!$.ok){let Q=await $.json();throw r.storeBatchFailed(Q.error||$.statusText)}return $.json()}async retrieve(J){let $=$$(J),{account:Q,claimed:Y}=await this.referralsModule.accounts($),G=await fetch(`${this.getBaseUrl()}/retrieve?key=${encodeURIComponent(J)}`);if(G.ok||G.status===410||Y){let Z=await G.json();if(Q===IJ)return{...Z,error:`Referral not found on-chain for signer ${$}`};return Z}if(Q===IJ)return{error:`Referral not found on-chain for signer ${$}`};let M=await G.json().catch(()=>null);throw r.retrieveFailed(M?.error||G.statusText,G.status)}async listMine(J){if(!this.getToken)throw r.authRequired();let $=new URLSearchParams;if(J?.limit!==void 0)$.set("limit",String(J.limit));if(J?.offset!==void 0)$.set("offset",String(J.offset));if(J?.inSession!==void 0)$.set("inSession",String(J.inSession));if(J?.status!==void 0)$.set("status",J.status);let Q=$.toString()?`?${$}`:"",Y=await this.getAuthHeaders(),G=await fetch(`${this.getBaseUrl()}/my-referrals${Q}`,{headers:Y});if(!G.ok){let M=await G.json();throw r.listFailed(M.error||G.statusText)}return G.json()}async listPublic(J,$){let Q=new URLSearchParams;if($?.limit!==void 0)Q.set("limit",String($.limit));if($?.offset!==void 0)Q.set("offset",String($.offset));if($?.inSession!==void 0)Q.set("inSession",String($.inSession));let Y=Q.toString()?`?${Q}`:"",G=await fetch(`${this.getBaseUrl()}/list/${encodeURIComponent(J)}${Y}`);if(!G.ok){let M=await G.json();throw r.listFailed(M.error||G.statusText)}return G.json()}}class u8 extends Error{code;httpStatus;constructor(J,$,Q){super(J);this.code=$;this.httpStatus=Q;this.name="DispenseError"}}class XJ extends Error{code;httpStatus;constructor(J,$,Q){super(J);this.code=$;this.httpStatus=Q;this.name="SessionError"}}function PJ(J){if(J===400)return"VALIDATION_ERROR";if(J===404)return"NOT_FOUND";if(J===409)return"CONFLICT";return"SERVER_ERROR"}class tQ{baseUrl;getToken;constructor(J,$){this.baseUrl=J;this.getToken=$}getBaseUrl(){return this.baseUrl.endsWith("/")?this.baseUrl.slice(0,-1):this.baseUrl}async getAuthHeaders(){let J={"Content-Type":"application/json"};if(!this.getToken)return J;let $=await this.getToken();return{...J,Authorization:`Bearer ${$}`}}async createSession(J){let $=await fetch(`${this.getBaseUrl()}/distributions/sessions`,{method:"POST",headers:await this.getAuthHeaders(),body:JSON.stringify(J)});if(!$.ok){let Q=await $.json();throw new XJ(Q.error||`Failed to create session: ${$.statusText}`,PJ($.status),$.status)}return $.json()}async listSessions(J,$){let Q=new URLSearchParams({inviter:J});if($?.limit!==void 0)Q.set("limit",String($.limit));if($?.offset!==void 0)Q.set("offset",String($.offset));let Y=await fetch(`${this.getBaseUrl()}/distributions/sessions?${Q}`,{headers:await this.getAuthHeaders()});if(!Y.ok){let G=await Y.json();throw new XJ(G.error||`Failed to list sessions: ${Y.statusText}`,PJ(Y.status),Y.status)}return Y.json()}async getSession(J){let $=await fetch(`${this.getBaseUrl()}/distributions/sessions/${encodeURIComponent(J)}`,{headers:await this.getAuthHeaders()});if(!$.ok){let Q=await $.json();throw new XJ(Q.error||`Failed to get session: ${$.statusText}`,PJ($.status),$.status)}return $.json()}async updateSession(J,$){let Q=await fetch(`${this.getBaseUrl()}/distributions/sessions/${encodeURIComponent(J)}`,{method:"PATCH",headers:await this.getAuthHeaders(),body:JSON.stringify($)});if(!Q.ok){let Y=await Q.json();throw new XJ(Y.error||`Failed to update session: ${Q.statusText}`,PJ(Q.status),Q.status)}return Q.json()}async deleteSession(J){let $=await fetch(`${this.getBaseUrl()}/distributions/sessions/${encodeURIComponent(J)}`,{method:"DELETE",headers:await this.getAuthHeaders()});if(!$.ok){let Q=await $.json();throw new XJ(Q.error||`Failed to delete session: ${$.statusText}`,PJ($.status),$.status)}}async addKeys(J,$){let Q=await fetch(`${this.getBaseUrl()}/distributions/sessions/${encodeURIComponent(J)}/keys`,{method:"POST",headers:await this.getAuthHeaders(),body:JSON.stringify({keys:$})});if(!Q.ok){let Y=await Q.json();throw new XJ(Y.error||`Failed to add keys: ${Q.statusText}`,PJ(Q.status),Q.status)}return Q.json()}async listKeys(J,$){let Q=new URLSearchParams;if($?.limit!==void 0)Q.set("limit",String($.limit));if($?.offset!==void 0)Q.set("offset",String($.offset));let Y=Q.toString()?`?${Q}`:"",G=await fetch(`${this.getBaseUrl()}/distributions/sessions/${encodeURIComponent(J)}/keys${Y}`,{headers:await this.getAuthHeaders()});if(!G.ok){let M=await G.json();throw new XJ(M.error||`Failed to list keys: ${G.statusText}`,PJ(G.status),G.status)}return G.json()}async removeKey(J,$){let Q=await fetch(`${this.getBaseUrl()}/distributions/sessions/${encodeURIComponent(J)}/keys/${encodeURIComponent($)}`,{method:"DELETE",headers:await this.getAuthHeaders()});if(!Q.ok){let Y=await Q.json();throw new XJ(Y.error||`Failed to remove key: ${Q.statusText}`,PJ(Q.status),Q.status)}}async dispense(J){let $=await fetch(`${this.getBaseUrl()}/d/${encodeURIComponent(J)}`,{headers:{Accept:"application/json"}});if(!$.ok){let Q,Y;try{Q=(await $.json()).error}catch{Q=$.statusText}switch($.status){case 404:Y=Q.includes("keys available")?"POOL_EMPTY":"SESSION_NOT_FOUND";break;case 410:Y=Q.includes("quota")?"QUOTA_EXHAUSTED":"SESSION_EXPIRED";break;case 423:Y="SESSION_PAUSED";break;case 429:Y="RATE_LIMITED";break;default:Y="UNKNOWN"}throw new u8(Q,Y,$.status)}return $.json()}}export{XJ as SessionError,nQ as Referrals,r as ReferralError,iQ as InviteFarm,g8 as Invitations,h as InvitationError,tQ as Distributions,u8 as DispenseError};
package/dist/types.d.ts CHANGED
@@ -72,6 +72,19 @@ export interface ReferralPreviewList {
72
72
  /** 'synced' = fresh RPC check, 'cached' = DB-cached status (30s TTL) */
73
73
  syncStatus: "synced" | "cached";
74
74
  }
75
+ /**
76
+ * Result of a batch store operation
77
+ */
78
+ export interface StoreBatchResult {
79
+ success: boolean;
80
+ stored: number;
81
+ failed: number;
82
+ errors?: Array<{
83
+ index: number;
84
+ keyPreview: string;
85
+ reason: string;
86
+ }>;
87
+ }
75
88
  /**
76
89
  * Error response from API
77
90
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,UAAU,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAID;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;IAC5C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,mBAAmB,GACnB,YAAY,GACZ,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,SAAS,CAAC;AAEd;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;aAGpB,IAAI,EAAE,iBAAiB;aACvB,UAAU,EAAE,MAAM;gBAFlC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,iBAAiB,EACvB,UAAU,EAAE,MAAM;CAKrC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,WAAW,GACX,UAAU,GACV,cAAc,CAAC;AAEnB;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;aAGnB,IAAI,EAAE,gBAAgB;aACtB,UAAU,EAAE,MAAM;gBAFlC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM;CAKrC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,UAAU,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAID;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;IAC5C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,mBAAmB,GACnB,YAAY,GACZ,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,SAAS,CAAC;AAEd;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;aAGpB,IAAI,EAAE,iBAAiB;aACvB,UAAU,EAAE,MAAM;gBAFlC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,iBAAiB,EACvB,UAAU,EAAE,MAAM;CAKrC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,WAAW,GACX,UAAU,GACV,cAAc,CAAC;AAEnB;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;aAGnB,IAAI,EAAE,gBAAgB;aACtB,UAAU,EAAE,MAAM;gBAFlC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM;CAKrC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aboutcircles/sdk-invitations",
3
- "version": "0.1.28",
3
+ "version": "0.1.29",
4
4
  "description": "Circles Invitations Module SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",