@aboutcircles/sdk-invitations 0.1.26 → 0.1.27

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.
@@ -32,6 +32,9 @@ export declare class Referrals {
32
32
  }>): Promise<StoreBatchResult>;
33
33
  /**
34
34
  * Retrieve referral info by private key (public endpoint, no auth required)
35
+ *
36
+ * Returns ReferralInfo for both active (200) and already-claimed (410) referrals.
37
+ * The caller can check `result.status === 'claimed'` to branch accordingly.
35
38
  */
36
39
  retrieve(privateKey: string): Promise<ReferralInfo>;
37
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Referrals.d.ts","sourceRoot":"","sources":["../src/Referrals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAY,MAAM,YAAY,CAAC;AAE9G;;;;;;;GAOG;AACH,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBADT,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,GAAE,MAAM,OAAO,CAAC,MAAM,CAAC,aAAA;IAGnD,OAAO,CAAC,UAAU;YAMJ,cAAc;IAO5B;;;;;;OAMG;IACG,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/D;;;;OAIG;IACG,UAAU,CACd,WAAW,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAC1D,OAAO,CAAC,gBAAgB,CAAC;IAe5B;;OAEG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAazD;;;;OAIG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,YAAY,CAAC;IAuBzB;;;;OAIG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC9D,OAAO,CAAC,mBAAmB,CAAC;CAkBhC"}
1
+ {"version":3,"file":"Referrals.d.ts","sourceRoot":"","sources":["../src/Referrals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAY,MAAM,YAAY,CAAC;AAE9G;;;;;;;GAOG;AACH,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBADT,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,GAAE,MAAM,OAAO,CAAC,MAAM,CAAC,aAAA;IAGnD,OAAO,CAAC,UAAU;YAMJ,cAAc;IAO5B;;;;;;OAMG;IACG,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/D;;;;OAIG;IACG,UAAU,CACd,WAAW,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAC1D,OAAO,CAAC,gBAAgB,CAAC;IAe5B;;;;;OAKG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAkBzD;;;;OAIG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,YAAY,CAAC;IAuBzB;;;;OAIG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC9D,OAAO,CAAC,mBAAmB,CAAC;CAkBhC"}
package/dist/Referrals.js CHANGED
@@ -62,14 +62,22 @@ export class Referrals {
62
62
  }
63
63
  /**
64
64
  * Retrieve referral info by private key (public endpoint, no auth required)
65
+ *
66
+ * Returns ReferralInfo for both active (200) and already-claimed (410) referrals.
67
+ * The caller can check `result.status === 'claimed'` to branch accordingly.
65
68
  */
66
69
  async retrieve(privateKey) {
67
70
  const response = await fetch(`${this.getBaseUrl()}/retrieve?key=${encodeURIComponent(privateKey)}`);
68
- if (!response.ok) {
69
- const error = (await response.json());
70
- throw new Error(error.error || `Failed to retrieve referral: ${response.statusText}`);
71
+ // 410 = already claimed — body still contains valid ReferralInfo
72
+ if (response.status === 410 || response.ok) {
73
+ return response.json();
71
74
  }
72
- return response.json();
75
+ const body = await response.json().catch(() => null);
76
+ const message = body?.error || `Failed to retrieve referral: ${response.statusText}`;
77
+ const err = new Error(message);
78
+ err.status = response.status;
79
+ err.body = body;
80
+ throw err;
73
81
  }
74
82
  /**
75
83
  * List all referrals created by the authenticated user
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  var FJ=($)=>BigInt($),Y$=($)=>parseInt($,16),f8=($)=>{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 v8($,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 f8(J);try{return FJ(J)}catch{return J}}try{let Y=Y$(J);if(Y<Number.MAX_SAFE_INTEGER)return Y;return FJ(J)}catch{return J}}if(J==="true")return!0;if(J==="false")return!1;return J}function c$($){let{event:J,values:Q}=$,Y={$event:J,blockNumber:Q.blockNumber?Y$(Q.blockNumber):0,timestamp:Q.timestamp?Y$(Q.timestamp):void 0,transactionIndex:Q.transactionIndex?Y$(Q.transactionIndex):0,logIndex:Q.logIndex?Y$(Q.logIndex):0,transactionHash:Q.transactionHash};for(let[G,Z]of Object.entries(Q)){if(["blockNumber","timestamp","transactionIndex","logIndex","transactionHash"].includes(G))continue;Y[G]=v8(G,Z)}return Y}function B$($){return $.map(c$)}class d0{_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 d0;return{property:$,emit:(J)=>$.emit(J)}}}class G$ 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
2
  Context: ${JSON.stringify(this.context,null,2)}`;return $}}class s extends G${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 B0{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:Z,params:K}=Y;if(G!==void 0&&this.pendingResponses[G])this.pendingResponses[G].resolve(Y),delete this.pendingResponses[G];if(Z==="eth_subscription"&&K){let{subscription:M,result:X}=K;if(this.subscriptionListeners[M])this.subscriptionListeners[M].forEach((q)=>q(X))}},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((Z,K)=>{this.pendingResponses[Y]={resolve:Z,reject:K},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=d0.create(),Y=JSON.stringify(J?{address:J}:{}),Z=(await this.sendMessage("eth_subscribe",["circles",Y])).result;if(!this.subscriptionListeners[Z])this.subscriptionListeners[Z]=[];return this.subscriptionListeners[Z].push((K)=>{B$(K).forEach((M)=>Q.emit(M))}),Q.property}}var L$=BigInt(4294967295),gJ=BigInt(32);function m8($,J=!1){if(J)return{h:Number($&L$),l:Number($>>gJ&L$)};return{h:Number($>>gJ&L$)|0,l:Number($&L$)|0}}function fJ($,J=!1){let Q=$.length,Y=new Uint32Array(Q),G=new Uint32Array(Q);for(let Z=0;Z<Q;Z++){let{h:K,l:M}=m8($[Z],J);[Y[Z],G[Z]]=[K,M]}return[Y,G]}var vJ=($,J,Q)=>$<<Q|J>>>32-Q,hJ=($,J,Q)=>J<<Q|$>>>32-Q,mJ=($,J,Q)=>J<<Q-32|$>>>64-Q,uJ=($,J,Q)=>$<<Q-32|J>>>64-Q;var T0=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function u8($){return $ instanceof Uint8Array||ArrayBuffer.isView($)&&$.constructor.name==="Uint8Array"}function x0($){if(!Number.isSafeInteger($)||$<0)throw Error("positive integer expected, got "+$)}function K0($,...J){if(!u8($))throw Error("Uint8Array expected");if(J.length>0&&!J.includes($.length))throw Error("Uint8Array expected of length "+J+", got length="+$.length)}function cJ($){if(typeof $!=="function"||typeof $.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");x0($.outputLen),x0($.blockLen)}function W0($,J=!0){if($.destroyed)throw Error("Hash instance has been destroyed");if(J&&$.finished)throw Error("Hash#digest() has already been called")}function P$($,J){K0($);let Q=J.outputLen;if($.length<Q)throw Error("digestInto() expects output buffer of length at least "+Q)}function lJ($){return new Uint32Array($.buffer,$.byteOffset,Math.floor($.byteLength/4))}function M0(...$){for(let J=0;J<$.length;J++)$[J].fill(0)}function C$($){return new DataView($.buffer,$.byteOffset,$.byteLength)}function Z0($,J){return $<<32-J|$>>>J}var c8=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)();function l8($){return $<<24&4278190080|$<<8&16711680|$>>>8&65280|$>>>24&255}function d8($){for(let J=0;J<$.length;J++)$[J]=l8($[J]);return $}var l$=c8?($)=>$:d8;function p8($){if(typeof $!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode($))}function E0($){if(typeof $==="string")$=p8($);return K0($),$}function dJ(...$){let J=0;for(let Y=0;Y<$.length;Y++){let G=$[Y];K0(G),J+=G.length}let Q=new Uint8Array(J);for(let Y=0,G=0;Y<$.length;Y++){let Z=$[Y];Q.set(Z,G),G+=Z.length}return Q}class k0{}function H$($){let J=(Y)=>$().update(E0(Y)).digest(),Q=$();return J.outputLen=Q.outputLen,J.blockLen=Q.blockLen,J.create=()=>$(),J}function pJ($=32){if(T0&&typeof T0.getRandomValues==="function")return T0.getRandomValues(new Uint8Array($));if(T0&&typeof T0.randomBytes==="function")return Uint8Array.from(T0.randomBytes($));throw Error("crypto.getRandomValues must be defined")}var i8=BigInt(0),Z$=BigInt(1),n8=BigInt(2),o8=BigInt(7),a8=BigInt(256),t8=BigInt(113),oJ=[],aJ=[],tJ=[];for(let $=0,J=Z$,Q=1,Y=0;$<24;$++){[Q,Y]=[Y,(2*Q+3*Y)%5],oJ.push(2*(5*Y+Q)),aJ.push(($+1)*($+2)/2%64);let G=i8;for(let Z=0;Z<7;Z++)if(J=(J<<Z$^(J>>o8)*t8)%a8,J&n8)G^=Z$<<(Z$<<BigInt(Z))-Z$;tJ.push(G)}var sJ=fJ(tJ,!0),s8=sJ[0],r8=sJ[1],iJ=($,J,Q)=>Q>32?mJ($,J,Q):vJ($,J,Q),nJ=($,J,Q)=>Q>32?uJ($,J,Q):hJ($,J,Q);function e8($,J=24){let Q=new Uint32Array(10);for(let Y=24-J;Y<24;Y++){for(let K=0;K<10;K++)Q[K]=$[K]^$[K+10]^$[K+20]^$[K+30]^$[K+40];for(let K=0;K<10;K+=2){let M=(K+8)%10,X=(K+2)%10,q=Q[X],W=Q[X+1],N=iJ(q,W,1)^Q[M],V=nJ(q,W,1)^Q[M+1];for(let O=0;O<50;O+=10)$[K+O]^=N,$[K+O+1]^=V}let G=$[2],Z=$[3];for(let K=0;K<24;K++){let M=aJ[K],X=iJ(G,Z,M),q=nJ(G,Z,M),W=oJ[K];G=$[W],Z=$[W+1],$[W]=X,$[W+1]=q}for(let K=0;K<50;K+=10){for(let M=0;M<10;M++)Q[M]=$[K+M];for(let M=0;M<10;M++)$[K+M]^=~Q[(M+2)%10]&Q[(M+4)%10]}$[0]^=s8[Y],$[1]^=r8[Y]}M0(Q)}class d$ extends k0{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=lJ(this.state)}clone(){return this._cloneInto()}keccak(){l$(this.state32),e8(this.state32,this.rounds),l$(this.state32),this.posOut=0,this.pos=0}update($){W0(this),$=E0($),K0($);let{blockLen:J,state:Q}=this,Y=$.length;for(let G=0;G<Y;){let Z=Math.min(J-this.pos,Y-G);for(let K=0;K<Z;K++)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($){W0(this,!1),K0($),this.finish();let J=this.state,{blockLen:Q}=this;for(let Y=0,G=$.length;Y<G;){if(this.posOut>=Q)this.keccak();let Z=Math.min(Q-this.posOut,G-Y);$.set(J.subarray(this.posOut,this.posOut+Z),Y),this.posOut+=Z,Y+=Z}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(P$($,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,M0(this.state)}_cloneInto($){let{blockLen:J,suffix:Q,outputLen:Y,rounds:G,enableXOF:Z}=this;return $||($=new d$(J,Q,Y,Z,G)),$.state32.set(this.state32),$.pos=this.pos,$.posOut=this.posOut,$.finished=this.finished,$.rounds=G,$.suffix=Q,$.outputLen=Y,$.enableXOF=Z,$.destroyed=this.destroyed,$}}var $Q=($,J,Q)=>H$(()=>new d$(J,$,Q));var p0=(()=>$Q(1,136,32))();var rJ=[];for(let $=0;$<256;$++)rJ[$]=$.toString(16).padStart(2,"0");function I$($){let J="0x";for(let Q=0;Q<$.length;Q++)J+=rJ[$[Q]];return J}function S$($){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 m=64,T$=32,_$=($)=>$.startsWith("0x")?$.slice(2):$;var X0=($)=>$.toString(16).padStart(m,"0");function P0($){let J=$.toLowerCase().replace("0x",""),Q=I$(p0(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 p$($,J){if($==="tuple"&&J)return`(${J.map((G)=>p$(G.type,G.components)).join(",")})`;let Q=$.match(/^tuple(\[\d*\])$/);if(Q&&J)return`${p$("tuple",J)}${Q[1]}`;return $}function JQ($){let Q=($.inputs||[]).map((Y)=>p$(Y.type,Y.components));return`${$.name}(${Q.join(",")})`}function QQ($){let J=JQ($),Q=p0(new TextEncoder().encode(J));return I$(Q.slice(0,4))}function i0($,J){if($==="string"||$==="bytes")return!0;if($.includes("[")){let Q=$.slice(0,$.indexOf("["));if($.endsWith("[]"))return!0;if(Q==="tuple")return eJ(J);return i0(Q)}if($==="tuple")return eJ(J);return!1}function eJ($){return $?.some((J)=>i0(J.type,J.components))??!1}function L0($,J,Q){if($==="tuple"&&Q)return GQ(Q,J);if($.includes("["))return YQ($,J,Q);return ZQ($,J)}function YQ($,J,Q){let Y=$.slice(0,$.indexOf("[")),G=$.endsWith("[]"),Z=i0(Y,Q),K;if(Z){let M=J.map((W)=>L0(Y,W,Q)),X=J.length*T$;K=M.map((W)=>{let N=X;return X+=W.length/2,X0(N)}).join("")+M.join("")}else K=J.map((M)=>L0(Y,M,Q)).join("");return G?X0(J.length)+K:K}function GQ($,J){let Q=Array.isArray(J),Y=[],G=[],Z=[];for(let K=0;K<$.length;K++){let M=$[K],X=Q?J[K]:J[M.name||""],q=i0(M.type,M.components);if(Z.push(q),q)Y.push(""),G.push(L0(M.type,X,M.components));else Y.push(L0(M.type,X,M.components))}if(G.length>0){let K=Y.reduce((q,W,N)=>q+(Z[N]?T$:W.length/2),0),M="",X=0;for(let q=0;q<$.length;q++)if(Z[q])M+=X0(K),K+=G[X].length/2,X++;else M+=Y[q];return M+G.join("")}return Y.join("")}function ZQ($,J){if($==="address")return _$(J).toLowerCase().padStart(m,"0");if($==="bool")return X0(J?1:0);if($.startsWith("uint")){let Q=typeof J==="bigint"?J:BigInt(J);return X0(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 X0(Q)}if($.startsWith("bytes")&&$!=="bytes")return _$(J).padEnd(m,"0");if($==="bytes"){let Q=_$(J),Y=X0(Q.length/2),G=Q.padEnd(Math.ceil(Q.length/m)*m,"0");return Y+G}if($==="string"){let Q=Array.from(new TextEncoder().encode(J)).map((Z)=>Z.toString(16).padStart(2,"0")).join(""),Y=X0(Q.length/2),G=Q.padEnd(Math.ceil(Q.length/m)*m,"0");return Y+G}throw Error(`Unsupported type: ${$}`)}function K$($,J,Q=0,Y){if($==="tuple"&&Y)return MQ(Y,J,Q);if($.includes("["))return KQ($,J,Q,Y);return XQ($,J,Q)}function KQ($,J,Q,Y){let G=$.slice(0,$.indexOf("[")),Z=J.slice(Q,Q+m);if($.endsWith("[]")){let M=parseInt(Z,16)*2,X=parseInt(J.slice(M,M+m),16),q=[],W=M+m;for(let N=0;N<X;N++){let V=K$(G,J,W,Y);q.push(V.value),W+=V.consumed}return{value:q,consumed:m}}let K=$.match(/\[(\d+)\]$/);if(K){let M=parseInt(K[1]),X=[],q=0;for(let W=0;W<M;W++){let N=K$(G,J,Q+q,Y);X.push(N.value),q+=N.consumed}return{value:X,consumed:q}}throw Error(`Invalid array type: ${$}`)}function MQ($,J,Q){let Y=[],G=Q;for(let Z of $){let K=K$(Z.type,J,G,Z.components);Y.push(K.value),G+=K.consumed}return{value:Y,consumed:G-Q}}function XQ($,J,Q){let Y=J.slice(Q,Q+m);if($==="address")return{value:P0("0x"+Y.slice(24)),consumed:m};if($==="bool")return{value:parseInt(Y,16)!==0,consumed:m};if($.startsWith("uint"))return{value:BigInt("0x"+Y),consumed:m};if($.startsWith("int")){let G=BigInt("0x"+Y),Z=$==="int"?256:parseInt($.slice(3)),K=1n<<BigInt(Z-1);return{value:G>=K?G-(1n<<BigInt(Z)):G,consumed:m}}if($.startsWith("bytes")&&$!=="bytes"){let G=parseInt($.match(/^bytes(\d+)$/)[1]);return{value:"0x"+Y.slice(0,G*2),consumed:m}}if($==="bytes"){let G=parseInt(Y,16)*2,Z=parseInt(J.slice(G,G+m),16)*2;return{value:"0x"+J.slice(G+m,G+m+Z),consumed:m}}if($==="string"){let G=parseInt(Y,16)*2,Z=parseInt(J.slice(G,G+m),16)*2,K=J.slice(G+m,G+m+Z),M=new Uint8Array(K.match(/.{2}/g)?.map((X)=>parseInt(X,16))||[]);return{value:new TextDecoder().decode(M),consumed:m}}throw Error(`Unsupported type: ${$}`)}function x$($){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 Z=QQ(G),K=G.inputs||[];if(K.length===0)return Z;if(Y.length!==K.length)throw Error(`Expected ${K.length} arguments, got ${Y.length}`);let M=[],X=[],q=[];for(let O=0;O<K.length;O++){let P=K[O],D=P.components,k=i0(P.type,D);if(q.push(k),k)M.push(""),X.push(L0(P.type,Y[O],D));else M.push(L0(P.type,Y[O],D))}if(X.length===0)return Z+M.join("");let W=M.reduce((O,P,D)=>O+(q[D]?T$:P.length/2),0),N="",V=0;for(let O=0;O<K.length;O++)if(q[O])N+=X0(W),W+=X[V].length/2,V++;else N+=M[O];return Z+N+X.join("")}function i$($){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 Z=G.outputs||[];if(Z.length===0)return;let K=_$(Y);if(Z.length===1)return K$(Z[0].type,K,0,Z[0].components).value;let M=[],X=0;for(let q of Z){let W=K$(q.type,K,X,q.components);M.push(W.value),X+=W.consumed}return M}function Q0($,J){if($.length!==J.length)throw Error(`Type/value length mismatch: ${$.length} types, ${J.length} values`);let Q=[],Y=[],G=[];for(let X=0;X<$.length;X++){let q=$[X],W=i0(q);if(G.push(W),W)Q.push(""),Y.push(L0(q,J[X]));else Q.push(L0(q,J[X]))}if(Y.length===0)return"0x"+Q.join("");let Z=Q.reduce((X,q,W)=>X+(G[W]?T$:q.length/2),0),K="",M=0;for(let X=0;X<$.length;X++)if(G[X])K+=X0(Z),Z+=Y[M].length/2,M++;else K+=Q[X];return"0x"+K+Y.join("")}function H($){return $.toLowerCase()}function qQ($){return P0($)}function WQ($){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(WQ($))return qQ($);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 $8($){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 E$="0x0000000000000000000000000000000000000000",d=BigInt(96)*BigInt(1000000000000000000),M$=BigInt("9999999999999999999999999999999999999"),n$="0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",o$="0x89867a67674bd4bf33165a653cde826b696ab7d050166b71066dfa0b9b6f90f4",a$="0xe298282cefe913ab5d282047161268a8222e4bd4ed106300c547894bbefd31ee",n0="0xc19bc204eb1c1d5b3fe500e5e5dfabab625f286c",A0="0x9Eb51E6A39B3F17bB1883B80748b56170039ff1d";class U0{client;constructor($){this.client=$}async findPath($){let J=$8($),Q=await this.client.call("circlesV2_findPath",[J]),Y=j0(Q);return g(Y)}async findMaxFlow($){let J=await this.findPath({...$,targetFlow:M$});return BigInt(J.maxFlow)}}class X${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 Z=await this.client.call("circles_events",[$,J,Q,Y,G]);return g(Z)}}var jQ=[{name:"blockNumber",sortOrder:"DESC"},{name:"transactionIndex",sortOrder:"DESC"},{name:"logIndex",sortOrder:"DESC"}];class Y0{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 $=jQ.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 Z=[];for(let K=0;K<Q;K++){let M=this.cursorColumns[K],X=$[M.name];if(X!==void 0)Z.push(this.createEqualityPredicate(M,X))}Z.push(this.createComparisonPredicate(Y,G)),J.push({Type:"Conjunction",ConjunctionType:"And",Predicates:Z})}}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((Z,K)=>{G[Z]=Y[K]}),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),Z=this.getCursors(G);return this._currentPage={limit:this.params.limit,size:G.length,firstCursor:Z.first,lastCursor:Z.last,sortOrder:this.params.sortOrder,hasMore:G.length===this.params.limit,results:G},G.length>0}reset(){this._currentPage=void 0}}class w0{client;constructor($){this.client=$}transformQueryResponse($){let{columns:J,rows:Q}=$;return Q.map((Y)=>{let G={};return J.forEach((Z,K)=>{G[Z]=Y[K]}),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 Y0(this.client,{namespace:"V_Crc",table:"TrustRelations",sortOrder:Q,columns:["blockNumber","timestamp","transactionIndex","logIndex","transactionHash","version","trustee","truster","expiryTime"],filter:G,limit:J},(Z)=>g(Z))}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((K)=>{let M=H(K.truster),X=H(K.trustee),q=M!==J?K.truster:K.trustee;if(!G[q])G[q]=[];G[q].push(K)});let Z=Object.entries(G).filter(([K])=>H(K)!==J).map(([K,M])=>{let X=Math.max(...M.map((W)=>W.timestamp)),q;if(M.length===2)q="mutuallyTrusts";else if(H(M[0]?.trustee)===J)q="trustedBy";else if(H(M[0]?.truster)===J)q="trusts";else throw Error("Unexpected trust list row. Couldn't determine trust relation.");return{subjectAvatar:J,relation:q,objectAvatar:K,timestamp:X}});return g(Z)}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,Z=this.v1InflateFactor(Y),K=this.v1InflateFactor(Y+1n);return this.v1ToDemurrage($,Z,K,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,Z=this.v1InflateFactor(Y),K=this.v1InflateFactor(Y+1n),M=Z*(this.PERIOD_SEC-G)+K*G;return $*3n*this.V1_ACCURACY*this.PERIOD_SEC/M}static v1ToDemurrage($,J,Q,Y,G){let Z=J*(G-Y)+Q*Y;return $*3n*this.V1_ACCURACY*G/Z}}class y0{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 q${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 W${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=[],Z=/^0x[a-fA-F0-9]{40}$/.test($);if(Z)try{let K=await this.getProfileByAddress($);if(K){let M={...K,address:$};if(!Y||!M.avatarType||Y.includes(M.avatarType))G.push(M)}}catch(K){console.warn("Failed to get profile by address:",K)}try{let K=await this.searchProfiles($,J,Q,Y);if(Z&&G.length>0){let M=$.toLowerCase(),X=K.filter((q)=>q.address?.toLowerCase()!==M);G.push(...X)}else G.push(...K)}catch(K){console.warn("Failed to search profiles by text:",K)}return G.slice(0,J)}}class b0{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 Y0(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 j${client;constructor($){this.client=$}transformQueryResponse($){let{columns:J,rows:Q}=$;return Q.map((Y)=>{let G={};return J.forEach((Z,K)=>{G[Z]=Y[K]}),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 Z=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:[]}]),M=this.transformQueryResponse(Z).map((W)=>W.truster);if(M.length===0)return[];let X=await this.client.call("circles_getAvatarInfoBatch",[M]),q=[];for(let W of X){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"}]}]),Z=this.transformQueryResponse(Y).map((K)=>K.avatar);return g(Z)}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:[]}]),Z=this.transformQueryResponse(Y).map((q)=>q.trustee);if(Z.length===0)return[];let K=await this.client.call("circles_getAvatarInfoBatch",[Z]),M=new Set(K.filter((q)=>q!==null).map((q)=>H(q.avatar))),X=Z.filter((q)=>!M.has(H(q)));return g(X)}}}function UQ($,J){let Q=BigInt($),Y=i.attoCirclesToCircles(Q),G=i.attoCirclesToAttoCrc(Q,BigInt(J)),Z=i.attoCirclesToCircles(G),K=i.attoCirclesToAttoStaticCircles(Q,BigInt(J)),M=i.attoCirclesToCircles(K);return{attoCircles:Q,circles:Y,staticAttoCircles:K,staticCircles:M,attoCrc:G,crc:Z}}class U${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 Y0(this.client,{namespace:"V_Crc",table:"TransferSummary",sortOrder:Q,columns:[],filter:G,limit:J},(Z)=>{let K=UQ(Z.value,Z.timestamp),M={...Z,...K};return g(M)})}}class F0{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 Y0(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 Y0(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 Y0(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 Z=J.groupAddressIn.map((K)=>({Type:"FilterPredicate",FilterType:"Equals",Column:"group",Value:H(K)}));if(Z.length===1)Y.push(Z[0]);else Y.push({Type:"Conjunction",ConjunctionType:"Or",Predicates:Z})}if(J.groupTypeIn&&J.groupTypeIn.length>0){let Z=J.groupTypeIn.map((K)=>({Type:"FilterPredicate",FilterType:"Equals",Column:"type",Value:K}));if(Z.length===1)Y.push(Z[0]);else Y.push({Type:"Conjunction",ConjunctionType:"Or",Predicates:Z})}if(J.ownerIn&&J.ownerIn.length>0){let Z=J.ownerIn.map((K)=>({Type:"FilterPredicate",FilterType:"Equals",Column:"owner",Value:H(K)}));if(Z.length===1)Y.push(Z[0]);else Y.push({Type:"Conjunction",ConjunctionType:"Or",Predicates:Z})}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 Y0(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:$},(Z)=>g(Z))}}class k${client;_pathfinder;_query;_trust;_balance;_avatar;_profile;_token;_invitation;_transaction;_group;constructor($="https://rpc.circlesubi.network/"){this.client=new B0($)}get pathfinder(){if(!this._pathfinder)this._pathfinder=new U0(this.client);return this._pathfinder}get query(){if(!this._query)this._query=new X$(this.client);return this._query}get trust(){if(!this._trust)this._trust=new w0(this.client);return this._trust}get balance(){if(!this._balance)this._balance=new y0(this.client);return this._balance}get avatar(){if(!this._avatar)this._avatar=new q$(this.client);return this._avatar}get profile(){if(!this._profile)this._profile=new W$(this.client);return this._profile}get token(){if(!this._token)this._token=new b0(this.client);return this._token}get invitation(){if(!this._invitation)this._invitation=new j$(this.client);return this._invitation}get transaction(){if(!this._transaction)this._transaction=new U$(this.client);return this._transaction}get group(){if(!this._group)this._group=new F0(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=x$({abi:this.abi,functionName:$,args:J}),G={to:this.address,data:Y,...Q?.from&&{from:Q.from}},K=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(K.error)throw Error(`RPC Error: ${K.error.message}`);if(!K.result)throw Error("No result returned from RPC call");return i$({abi:this.abi,functionName:$,data:K.result})}encodeWrite($,J){return x$({abi:this.abi,functionName:$,args:J})}}var J8=[{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 C0 extends n{constructor($){super({address:$.address,abi:J8,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 Q8=[{type:"function",name:"erc20Circles",inputs:[{name:"_circlesType",type:"uint8"},{name:"_avatar",type:"address"}],outputs:[{type:"address"}],stateMutability:"view"}];class A$ extends n{constructor($){super({address:$.address,abi:Q8,rpcUrl:$.rpcUrl})}async erc20Circles($,J){return this.read("erc20Circles",[$,J])}}var t$=[{type:"function",name:"unwrap",inputs:[{name:"_amount",type:"uint256"}],outputs:[],stateMutability:"nonpayable"}];class o0 extends n{constructor($){super({address:$.address,abi:t$,rpcUrl:$.rpcUrl})}unwrap($){return{to:this.address,data:this.encodeWrite("unwrap",[$]),value:0n}}}class a0 extends n{constructor($){super({address:$.address,abi:t$,rpcUrl:$.rpcUrl})}unwrap($){return{to:this.address,data:this.encodeWrite("unwrap",[$]),value:0n}}}var s$=[{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 r$=[{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 e$=[{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 $J=[{type:"function",name:"trustInviter",inputs:[{name:"inviter",type:"address"}],outputs:[],stateMutability:"nonpayable"}];class t0 extends n{constructor($){super({address:$.address,abi:s$,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 s0 extends n{constructor($){super({address:$.address,abi:r$,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 w$ extends n{constructor($){super({address:$.address,abi:e$,rpcUrl:$.rpcUrl})}async isModuleEnabled($){return this.read("isModuleEnabled",[$])}enableModule($){return{to:this.address,data:this.encodeWrite("enableModule",[$]),value:0n}}}class y$ extends n{constructor($){super({address:$.address,abi:$J,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 zQ($,J,Q,Y){if(typeof $.setBigUint64==="function")return $.setBigUint64(J,Q,Y);let G=BigInt(32),Z=BigInt(4294967295),K=Number(Q>>G&Z),M=Number(Q&Z),X=Y?4:0,q=Y?0:4;$.setUint32(J+X,K,Y),$.setUint32(J+q,M,Y)}function Y8($,J,Q){return $&J^~$&Q}function G8($,J,Q){return $&J^$&Q^J&Q}class JJ extends k0{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=C$(this.buffer)}update($){W0(this),$=E0($),K0($);let{view:J,buffer:Q,blockLen:Y}=this,G=$.length;for(let Z=0;Z<G;){let K=Math.min(Y-this.pos,G-Z);if(K===Y){let M=C$($);for(;Y<=G-Z;Z+=Y)this.process(M,Z);continue}if(Q.set($.subarray(Z,Z+K),this.pos),this.pos+=K,Z+=K,this.pos===Y)this.process(J,0),this.pos=0}return this.length+=$.length,this.roundClean(),this}digestInto($){W0(this),P$($,this),this.finished=!0;let{buffer:J,view:Q,blockLen:Y,isLE:G}=this,{pos:Z}=this;if(J[Z++]=128,M0(this.buffer.subarray(Z)),this.padOffset>Y-Z)this.process(Q,0),Z=0;for(let W=Z;W<Y;W++)J[W]=0;zQ(Q,Y-8,BigInt(this.length*8),G),this.process(Q,0);let K=C$($),M=this.outputLen;if(M%4)throw Error("_sha2: outputLen should be aligned to 32bit");let X=M/4,q=this.get();if(X>q.length)throw Error("_sha2: outputLen bigger than state");for(let W=0;W<X;W++)K.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:Z,pos:K}=this;if($.destroyed=Z,$.finished=G,$.length=Y,$.pos=K,Y%J)$.buffer.set(Q);return $}clone(){return this._cloneInto()}}var z0=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var NQ=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]),H0=new Uint32Array(64);class Z8 extends JJ{constructor($=32){super(64,$,8,!1);this.A=z0[0]|0,this.B=z0[1]|0,this.C=z0[2]|0,this.D=z0[3]|0,this.E=z0[4]|0,this.F=z0[5]|0,this.G=z0[6]|0,this.H=z0[7]|0}get(){let{A:$,B:J,C:Q,D:Y,E:G,F:Z,G:K,H:M}=this;return[$,J,Q,Y,G,Z,K,M]}set($,J,Q,Y,G,Z,K,M){this.A=$|0,this.B=J|0,this.C=Q|0,this.D=Y|0,this.E=G|0,this.F=Z|0,this.G=K|0,this.H=M|0}process($,J){for(let W=0;W<16;W++,J+=4)H0[W]=$.getUint32(J,!1);for(let W=16;W<64;W++){let N=H0[W-15],V=H0[W-2],O=Z0(N,7)^Z0(N,18)^N>>>3,P=Z0(V,17)^Z0(V,19)^V>>>10;H0[W]=P+H0[W-7]+O+H0[W-16]|0}let{A:Q,B:Y,C:G,D:Z,E:K,F:M,G:X,H:q}=this;for(let W=0;W<64;W++){let N=Z0(K,6)^Z0(K,11)^Z0(K,25),V=q+N+Y8(K,M,X)+NQ[W]+H0[W]|0,P=(Z0(Q,2)^Z0(Q,13)^Z0(Q,22))+G8(Q,Y,G)|0;q=X,X=M,M=K,K=Z+V|0,Z=G,G=Y,Y=Q,Q=V+P|0}Q=Q+this.A|0,Y=Y+this.B|0,G=G+this.C|0,Z=Z+this.D|0,K=K+this.E|0,M=M+this.F|0,X=X+this.G|0,q=q+this.H|0,this.set(Q,Y,G,Z,K,M,X,q)}roundClean(){M0(H0)}destroy(){this.set(0,0,0,0,0,0,0,0),M0(this.buffer)}}var K8=H$(()=>new Z8);class QJ extends k0{constructor($,J){super();this.finished=!1,this.destroyed=!1,cJ($);let Q=E0(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 Z=0;Z<G.length;Z++)G[Z]^=54;this.iHash.update(G),this.oHash=$.create();for(let Z=0;Z<G.length;Z++)G[Z]^=106;this.oHash.update(G),M0(G)}update($){return W0(this),this.iHash.update($),this}digestInto($){W0(this),K0($,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:Z,outputLen:K}=this;return $=$,$.finished=Y,$.destroyed=G,$.blockLen=Z,$.outputLen=K,$.oHash=J._cloneInto($.oHash),$.iHash=Q._cloneInto($.iHash),$}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var YJ=($,J,Q)=>new QJ($,J).update(Q).digest();YJ.create=($,J)=>new QJ($,J);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var MJ=BigInt(0),KJ=BigInt(1);function r0($){return $ instanceof Uint8Array||ArrayBuffer.isView($)&&$.constructor.name==="Uint8Array"}function XJ($){if(!r0($))throw Error("Uint8Array expected")}function e0($,J){if(typeof J!=="boolean")throw Error($+" boolean expected, got "+J)}function z$($){let J=$.toString(16);return J.length&1?"0"+J:J}function q8($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);return $===""?MJ:BigInt("0x"+$)}var W8=typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function",VQ=Array.from({length:256},($,J)=>J.toString(16).padStart(2,"0"));function $$($){if(XJ($),W8)return $.toHex();let J="";for(let Q=0;Q<$.length;Q++)J+=VQ[$[Q]];return J}var N0={_0:48,_9:57,A:65,F:70,a:97,f:102};function M8($){if($>=N0._0&&$<=N0._9)return $-N0._0;if($>=N0.A&&$<=N0.F)return $-(N0.A-10);if($>=N0.a&&$<=N0.f)return $-(N0.a-10);return}function N$($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);if(W8)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,Z=0;G<Q;G++,Z+=2){let K=M8($.charCodeAt(Z)),M=M8($.charCodeAt(Z+1));if(K===void 0||M===void 0){let X=$[Z]+$[Z+1];throw Error('hex string expected, got non-hex character "'+X+'" at index '+Z)}Y[G]=K*16+M}return Y}function V0($){return q8($$($))}function qJ($){return XJ($),q8($$(Uint8Array.from($).reverse()))}function g0($,J){return N$($.toString(16).padStart(J*2,"0"))}function WJ($,J){return g0($,J).reverse()}function J0($,J,Q){let Y;if(typeof J==="string")try{Y=N$(J)}catch(Z){throw Error($+" must be hex string or Uint8Array, cause: "+Z)}else if(r0(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 V$(...$){let J=0;for(let Y=0;Y<$.length;Y++){let G=$[Y];XJ(G),J+=G.length}let Q=new Uint8Array(J);for(let Y=0,G=0;Y<$.length;Y++){let Z=$[Y];Q.set(Z,G),G+=Z.length}return Q}var GJ=($)=>typeof $==="bigint"&&MJ<=$;function F$($,J,Q){return GJ($)&&GJ(J)&&GJ(Q)&&J<=$&&$<Q}function f0($,J,Q,Y){if(!F$(J,Q,Y))throw Error("expected valid "+$+": "+Q+" <= n < "+Y+", got "+J)}function j8($){let J;for(J=0;$>MJ;$>>=KJ,J+=1);return J}var v0=($)=>(KJ<<BigInt($))-KJ,ZJ=($)=>new Uint8Array($),X8=($)=>Uint8Array.from($);function U8($,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($),Z=0,K=()=>{Y.fill(1),G.fill(0),Z=0},M=(...N)=>Q(G,Y,...N),X=(N=ZJ(0))=>{if(G=M(X8([0]),N),Y=M(),N.length===0)return;G=M(X8([1]),N),Y=M()},q=()=>{if(Z++>=1000)throw Error("drbg: tried 1000 values");let N=0,V=[];while(N<J){Y=M();let O=Y.slice();V.push(O),N+=Y.length}return V$(...V)};return(N,V)=>{K(),X(N);let O=void 0;while(!(O=V(q())))X();return K(),O}}var DQ={bigint:($)=>typeof $==="bigint",function:($)=>typeof $==="function",boolean:($)=>typeof $==="boolean",string:($)=>typeof $==="string",stringOrUint8Array:($)=>typeof $==="string"||r0($),isSafeInteger:($)=>Number.isSafeInteger($),array:($)=>Array.isArray($),field:($,J)=>J.Fp.isValid($),hash:($)=>typeof $==="function"&&Number.isSafeInteger($.outputLen)};function h0($,J,Q={}){let Y=(G,Z,K)=>{let M=DQ[Z];if(typeof M!=="function")throw Error("invalid validator function");let X=$[G];if(K&&X===void 0)return;if(!M(X,$))throw Error("param "+String(G)+" is invalid. Expected "+Z+", got "+X)};for(let[G,Z]of Object.entries(J))Y(G,Z,!1);for(let[G,Z]of Object.entries(Q))Y(G,Z,!0);return $}function jJ($){let J=new WeakMap;return(Q,...Y)=>{let G=J.get(Q);if(G!==void 0)return G;let Z=$(Q,...Y);return J.set(Q,Z),Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var r=BigInt(0),a=BigInt(1),m0=BigInt(2),OQ=BigInt(3),N8=BigInt(4),V8=BigInt(5),D8=BigInt(8);function o($,J){let Q=$%J;return Q>=r?Q:J+Q}function G0($,J,Q){let Y=$;while(J-- >r)Y*=Y,Y%=Q;return Y}function g$($,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,Z=a,K=a,M=r;while(Q!==r){let q=Y/Q,W=Y%Q,N=G-K*q,V=Z-M*q;Y=Q,Q=W,G=K,Z=M,K=N,M=V}if(Y!==a)throw Error("invert: does not exist");return o(G,J)}function O8($,J){let Q=($.ORDER+a)/N8,Y=$.pow(J,Q);if(!$.eql($.sqr(Y),J))throw Error("Cannot find square root");return Y}function RQ($,J){let Q=($.ORDER-V8)/D8,Y=$.mul(J,m0),G=$.pow(Y,Q),Z=$.mul(J,G),K=$.mul($.mul(Z,m0),G),M=$.mul(Z,$.sub(K,$.ONE));if(!$.eql($.sqr(M),J))throw Error("Cannot find square root");return M}function BQ($){if($<BigInt(3))throw Error("sqrt is not defined for small field");let J=$-a,Q=0;while(J%m0===r)J/=m0,Q++;let Y=m0,G=D$($);while(z8(G,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(Q===1)return O8;let Z=G.pow(Y,J),K=(J+a)/m0;return function(X,q){if(X.is0(q))return q;if(z8(X,q)!==1)throw Error("Cannot find square root");let W=Q,N=X.mul(X.ONE,Z),V=X.pow(q,J),O=X.pow(q,K);while(!X.eql(V,X.ONE)){if(X.is0(V))return X.ZERO;let P=1,D=X.sqr(V);while(!X.eql(D,X.ONE))if(P++,D=X.sqr(D),P===W)throw Error("Cannot find square root");let k=a<<BigInt(W-P-1),_=X.pow(N,k);W=P,N=X.sqr(_),V=X.mul(V,N),O=X.mul(O,_)}return O}}function LQ($){if($%N8===OQ)return O8;if($%D8===V8)return RQ;return BQ($)}var PQ=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function UJ($){let J={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},Q=PQ.reduce((Y,G)=>{return Y[G]="function",Y},J);return h0($,Q)}function CQ($,J,Q){if(Q<r)throw Error("invalid exponent, negatives unsupported");if(Q===r)return $.ONE;if(Q===a)return J;let Y=$.ONE,G=J;while(Q>r){if(Q&a)Y=$.mul(Y,G);G=$.sqr(G),Q>>=a}return Y}function zJ($,J,Q=!1){let Y=Array(J.length).fill(Q?$.ZERO:void 0),G=J.reduce((K,M,X)=>{if($.is0(M))return K;return Y[X]=K,$.mul(K,M)},$.ONE),Z=$.inv(G);return J.reduceRight((K,M,X)=>{if($.is0(M))return K;return Y[X]=$.mul(K,Y[X]),$.mul(K,M)},Z),Y}function z8($,J){let Q=($.ORDER-a)/m0,Y=$.pow(J,Q),G=$.eql(Y,$.ONE),Z=$.eql(Y,$.ZERO),K=$.eql(Y,$.neg($.ONE));if(!G&&!Z&&!K)throw Error("invalid Legendre symbol result");return G?1:Z?0:-1}function NJ($,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 D$($,J,Q=!1,Y={}){if($<=r)throw Error("invalid field: expected ORDER > 0, got "+$);let{nBitLength:G,nByteLength:Z}=NJ($,J);if(Z>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let K,M=Object.freeze({ORDER:$,isLE:Q,BITS:G,BYTES:Z,MASK:v0(G),ZERO:r,ONE:a,create:(X)=>o(X,$),isValid:(X)=>{if(typeof X!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof X);return r<=X&&X<$},is0:(X)=>X===r,isOdd:(X)=>(X&a)===a,neg:(X)=>o(-X,$),eql:(X,q)=>X===q,sqr:(X)=>o(X*X,$),add:(X,q)=>o(X+q,$),sub:(X,q)=>o(X-q,$),mul:(X,q)=>o(X*q,$),pow:(X,q)=>CQ(M,X,q),div:(X,q)=>o(X*g$(q,$),$),sqrN:(X)=>X*X,addN:(X,q)=>X+q,subN:(X,q)=>X-q,mulN:(X,q)=>X*q,inv:(X)=>g$(X,$),sqrt:Y.sqrt||((X)=>{if(!K)K=LQ($);return K(M,X)}),toBytes:(X)=>Q?WJ(X,Z):g0(X,Z),fromBytes:(X)=>{if(X.length!==Z)throw Error("Field.fromBytes: expected "+Z+" bytes, got "+X.length);return Q?qJ(X):V0(X)},invertBatch:(X)=>zJ(M,X),cmov:(X,q,W)=>W?q:X});return Object.freeze(M)}function R8($){if(typeof $!=="bigint")throw Error("field order must be bigint");let J=$.toString(2).length;return Math.ceil(J/8)}function VJ($){let J=R8($);return J+Math.ceil(J/2)}function B8($,J,Q=!1){let Y=$.length,G=R8(J),Z=VJ(J);if(Y<16||Y<Z||Y>1024)throw Error("expected "+Z+"-1024 bytes of input, got "+Y);let K=Q?qJ($):V0($),M=o(K,J-a)+a;return Q?WJ(M,G):g0(M,G)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var L8=BigInt(0),LJ=BigInt(1);function DJ($,J){let Q=J.negate();return $?Q:J}function C8($,J){if(!Number.isSafeInteger($)||$<=0||$>J)throw Error("invalid window size, expected [1.."+J+"], got W="+$)}function OJ($,J){C8($,J);let Q=Math.ceil(J/$)+1,Y=2**($-1),G=2**$,Z=v0($),K=BigInt($);return{windows:Q,windowSize:Y,mask:Z,maxNumber:G,shiftBy:K}}function P8($,J,Q){let{windowSize:Y,mask:G,maxNumber:Z,shiftBy:K}=Q,M=Number($&G),X=$>>K;if(M>Y)M-=Z,X+=LJ;let q=J*Y,W=q+Math.abs(M)-1,N=M===0,V=M<0,O=J%2!==0;return{nextN:X,offset:W,isZero:N,isNeg:V,isNegF:O,offsetF:q}}function HQ($,J){if(!Array.isArray($))throw Error("array expected");$.forEach((Q,Y)=>{if(!(Q instanceof J))throw Error("invalid point at index "+Y)})}function IQ($,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 RJ=new WeakMap,H8=new WeakMap;function BJ($){return H8.get($)||1}function I8($,J){return{constTimeNegate:DJ,hasPrecomputes(Q){return BJ(Q)!==1},unsafeLadder(Q,Y,G=$.ZERO){let Z=Q;while(Y>L8){if(Y&LJ)G=G.add(Z);Z=Z.double(),Y>>=LJ}return G},precomputeWindow(Q,Y){let{windows:G,windowSize:Z}=OJ(Y,J),K=[],M=Q,X=M;for(let q=0;q<G;q++){X=M,K.push(X);for(let W=1;W<Z;W++)X=X.add(M),K.push(X);M=X.double()}return K},wNAF(Q,Y,G){let{ZERO:Z,BASE:K}=$,M=OJ(Q,J);for(let X=0;X<M.windows;X++){let{nextN:q,offset:W,isZero:N,isNeg:V,isNegF:O,offsetF:P}=P8(G,X,M);if(G=q,N)K=K.add(DJ(O,Y[P]));else Z=Z.add(DJ(V,Y[W]))}return{p:Z,f:K}},wNAFUnsafe(Q,Y,G,Z=$.ZERO){let K=OJ(Q,J);for(let M=0;M<K.windows;M++){if(G===L8)break;let{nextN:X,offset:q,isZero:W,isNeg:N}=P8(G,M,K);if(G=X,W)continue;else{let V=Y[q];Z=Z.add(N?V.negate():V)}}return Z},getPrecomputes(Q,Y,G){let Z=RJ.get(Y);if(!Z){if(Z=this.precomputeWindow(Y,Q),Q!==1)RJ.set(Y,G(Z))}return Z},wNAFCached(Q,Y,G){let Z=BJ(Q);return this.wNAF(Z,this.getPrecomputes(Z,Q,G),Y)},wNAFCachedUnsafe(Q,Y,G,Z){let K=BJ(Q);if(K===1)return this.unsafeLadder(Q,Y,Z);return this.wNAFUnsafe(K,this.getPrecomputes(K,Q,G),Y,Z)},setWindowSize(Q,Y){C8(Y,J),H8.set(Q,Y),RJ.delete(Q)}}}function S8($,J,Q,Y){HQ(Q,$),IQ(Y,J);let G=Q.length,Z=Y.length;if(G!==Z)throw Error("arrays of points and scalars must have equal length");let K=$.ZERO,M=j8(BigInt(G)),X=1;if(M>12)X=M-3;else if(M>4)X=M-2;else if(M>0)X=2;let q=v0(X),W=Array(Number(q)+1).fill(K),N=Math.floor((J.BITS-1)/X)*X,V=K;for(let O=N;O>=0;O-=X){W.fill(K);for(let D=0;D<Z;D++){let k=Y[D],_=Number(k>>BigInt(O)&q);W[_]=W[_].add(Q[D])}let P=K;for(let D=W.length-1,k=K;D>0;D--)k=k.add(W[D]),P=P.add(k);if(V=V.add(P),O!==0)for(let D=0;D<X;D++)V=V.double()}return V}function PJ($){return UJ($.Fp),h0($,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...NJ($.n,$.nBitLength),...$,...{p:$.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function _8($){if($.lowS!==void 0)e0("lowS",$.lowS);if($.prehash!==void 0)e0("prehash",$.prehash)}function SQ($){let J=PJ($);h0(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 T8 extends Error{constructor($=""){super($)}}var D0={Err:T8,_tlv:{encode:($,J)=>{let{Err:Q}=D0;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=z$(Y);if(G.length/2&128)throw new Q("tlv.encode: long form length too big");let Z=Y>127?z$(G.length/2|128):"";return z$($)+Z+G+J},decode($,J){let{Err:Q}=D0,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++],Z=!!(G&128),K=0;if(!Z)K=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=J.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)K=K<<8|W;if(Y+=X,K<128)throw new Q("tlv.decode(long): not minimal encoding")}let M=J.subarray(Y,Y+K);if(M.length!==K)throw new Q("tlv.decode: wrong value length");return{v:M,l:J.subarray(Y+K)}}},_int:{encode($){let{Err:J}=D0;if($<O0)throw new J("integer: negative integers are not allowed");let Q=z$($);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}=D0;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 V0($)}},toSig($){let{Err:J,_int:Q,_tlv:Y}=D0,G=J0("signature",$),{v:Z,l:K}=Y.decode(48,G);if(K.length)throw new J("invalid signature: left bytes after parsing");let{v:M,l:X}=Y.decode(2,Z),{v:q,l:W}=Y.decode(2,X);if(W.length)throw new J("invalid signature: left bytes after parsing");return{r:Q.decode(M),s:Q.decode(q)}},hexFromSig($){let{_tlv:J,_int:Q}=D0,Y=J.encode(2,Q.encode($.r)),G=J.encode(2,Q.encode($.s)),Z=Y+G;return J.encode(48,Z)}};function CJ($,J){return $$(g0($,J))}var O0=BigInt(0),p=BigInt(1),EG=BigInt(2),HJ=BigInt(3),_Q=BigInt(4);function TQ($){let J=SQ($),{Fp:Q}=J,Y=D$(J.n,J.nBitLength),G=J.toBytes||((j,U,L)=>{let C=U.toAffine();return V$(Uint8Array.from([4]),Q.toBytes(C.x),Q.toBytes(C.y))}),Z=J.fromBytes||((j)=>{let U=j.subarray(1),L=Q.fromBytes(U.subarray(0,Q.BYTES)),C=Q.fromBytes(U.subarray(Q.BYTES,2*Q.BYTES));return{x:L,y:C}});function K(j){let{a:U,b:L}=J,C=Q.sqr(j),w=Q.mul(C,j);return Q.add(Q.add(w,Q.mul(j,U)),L)}function M(j,U){let L=Q.sqr(U),C=K(j);return Q.eql(L,C)}if(!M(J.Gx,J.Gy))throw Error("bad curve params: generator point");let X=Q.mul(Q.pow(J.a,HJ),_Q),q=Q.mul(Q.sqr(J.b),BigInt(27));if(Q.is0(Q.add(X,q)))throw Error("bad curve params: a or b");function W(j){return F$(j,p,J.n)}function N(j){let{allowedPrivateKeyLengths:U,nByteLength:L,wrapPrivateKey:C,n:w}=J;if(U&&typeof j!=="bigint"){if(r0(j))j=$$(j);if(typeof j!=="string"||!U.includes(j.length))throw Error("invalid private key");j=j.padStart(L*2,"0")}let x;try{x=typeof j==="bigint"?j:V0(J0("private key",j,L))}catch(y){throw Error("invalid private key, expected hex or "+L+" bytes, got "+typeof j)}if(C)x=o(x,w);return f0("private key",x,p,w),x}function V(j){if(!(j instanceof D))throw Error("ProjectivePoint expected")}let O=jJ((j,U)=>{let{px:L,py:C,pz:w}=j;if(Q.eql(w,Q.ONE))return{x:L,y:C};let x=j.is0();if(U==null)U=x?Q.ONE:Q.inv(w);let y=Q.mul(L,U),T=Q.mul(C,U),A=Q.mul(w,U);if(x)return{x:Q.ZERO,y:Q.ZERO};if(!Q.eql(A,Q.ONE))throw Error("invZ was invalid");return{x:y,y:T}}),P=jJ((j)=>{if(j.is0()){if(J.allowInfinityPoint&&!Q.is0(j.py))return;throw Error("bad point: ZERO")}let{x:U,y:L}=j.toAffine();if(!Q.isValid(U)||!Q.isValid(L))throw Error("bad point: x or y not FE");if(!M(U,L))throw Error("bad point: equation left != right");if(!j.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});class D{constructor(j,U,L){if(j==null||!Q.isValid(j))throw Error("x required");if(U==null||!Q.isValid(U)||Q.is0(U))throw Error("y required");if(L==null||!Q.isValid(L))throw Error("z required");this.px=j,this.py=U,this.pz=L,Object.freeze(this)}static fromAffine(j){let{x:U,y:L}=j||{};if(!j||!Q.isValid(U)||!Q.isValid(L))throw Error("invalid affine point");if(j instanceof D)throw Error("projective point not allowed");let C=(w)=>Q.eql(w,Q.ZERO);if(C(U)&&C(L))return D.ZERO;return new D(U,L,Q.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(j){let U=zJ(Q,j.map((L)=>L.pz));return j.map((L,C)=>L.toAffine(U[C])).map(D.fromAffine)}static fromHex(j){let U=D.fromAffine(Z(J0("pointHex",j)));return U.assertValidity(),U}static fromPrivateKey(j){return D.BASE.multiply(N(j))}static msm(j,U){return S8(D,Y,j,U)}_setWindowSize(j){f.setWindowSize(this,j)}assertValidity(){P(this)}hasEvenY(){let{y:j}=this.toAffine();if(Q.isOdd)return!Q.isOdd(j);throw Error("Field doesn't support isOdd")}equals(j){V(j);let{px:U,py:L,pz:C}=this,{px:w,py:x,pz:y}=j,T=Q.eql(Q.mul(U,y),Q.mul(w,C)),A=Q.eql(Q.mul(L,y),Q.mul(x,C));return T&&A}negate(){return new D(this.px,Q.neg(this.py),this.pz)}double(){let{a:j,b:U}=J,L=Q.mul(U,HJ),{px:C,py:w,pz:x}=this,y=Q.ZERO,T=Q.ZERO,A=Q.ZERO,E=Q.mul(C,C),c=Q.mul(w,w),v=Q.mul(x,x),z=Q.mul(C,w);return z=Q.add(z,z),A=Q.mul(C,x),A=Q.add(A,A),y=Q.mul(j,A),T=Q.mul(L,v),T=Q.add(y,T),y=Q.sub(c,T),T=Q.add(c,T),T=Q.mul(y,T),y=Q.mul(z,y),A=Q.mul(L,A),v=Q.mul(j,v),z=Q.sub(E,v),z=Q.mul(j,z),z=Q.add(z,A),A=Q.add(E,E),E=Q.add(A,E),E=Q.add(E,v),E=Q.mul(E,z),T=Q.add(T,E),v=Q.mul(w,x),v=Q.add(v,v),E=Q.mul(v,z),y=Q.sub(y,E),A=Q.mul(v,c),A=Q.add(A,A),A=Q.add(A,A),new D(y,T,A)}add(j){V(j);let{px:U,py:L,pz:C}=this,{px:w,py:x,pz:y}=j,T=Q.ZERO,A=Q.ZERO,E=Q.ZERO,c=J.a,v=Q.mul(J.b,HJ),z=Q.mul(U,w),B=Q.mul(L,x),I=Q.mul(C,y),b=Q.add(U,L),S=Q.add(w,x);b=Q.mul(b,S),S=Q.add(z,B),b=Q.sub(b,S),S=Q.add(U,C);let R=Q.add(w,y);return S=Q.mul(S,R),R=Q.add(z,I),S=Q.sub(S,R),R=Q.add(L,C),T=Q.add(x,y),R=Q.mul(R,T),T=Q.add(B,I),R=Q.sub(R,T),E=Q.mul(c,S),T=Q.mul(v,I),E=Q.add(T,E),T=Q.sub(B,E),E=Q.add(B,E),A=Q.mul(T,E),B=Q.add(z,z),B=Q.add(B,z),I=Q.mul(c,I),S=Q.mul(v,S),B=Q.add(B,I),I=Q.sub(z,I),I=Q.mul(c,I),S=Q.add(S,I),z=Q.mul(B,S),A=Q.add(A,z),z=Q.mul(R,S),T=Q.mul(b,T),T=Q.sub(T,z),z=Q.mul(b,B),E=Q.mul(R,E),E=Q.add(E,z),new D(T,A,E)}subtract(j){return this.add(j.negate())}is0(){return this.equals(D.ZERO)}wNAF(j){return f.wNAFCached(this,j,D.normalizeZ)}multiplyUnsafe(j){let{endo:U,n:L}=J;f0("scalar",j,O0,L);let C=D.ZERO;if(j===O0)return C;if(this.is0()||j===p)return this;if(!U||f.hasPrecomputes(this))return f.wNAFCachedUnsafe(this,j,D.normalizeZ);let{k1neg:w,k1:x,k2neg:y,k2:T}=U.splitScalar(j),A=C,E=C,c=this;while(x>O0||T>O0){if(x&p)A=A.add(c);if(T&p)E=E.add(c);c=c.double(),x>>=p,T>>=p}if(w)A=A.negate();if(y)E=E.negate();return E=new D(Q.mul(E.px,U.beta),E.py,E.pz),A.add(E)}multiply(j){let{endo:U,n:L}=J;f0("scalar",j,p,L);let C,w;if(U){let{k1neg:x,k1:y,k2neg:T,k2:A}=U.splitScalar(j),{p:E,f:c}=this.wNAF(y),{p:v,f:z}=this.wNAF(A);E=f.constTimeNegate(x,E),v=f.constTimeNegate(T,v),v=new D(Q.mul(v.px,U.beta),v.py,v.pz),C=E.add(v),w=c.add(z)}else{let{p:x,f:y}=this.wNAF(j);C=x,w=y}return D.normalizeZ([C,w])[0]}multiplyAndAddUnsafe(j,U,L){let C=D.BASE,w=(y,T)=>T===O0||T===p||!y.equals(C)?y.multiplyUnsafe(T):y.multiply(T),x=w(this,U).add(w(j,L));return x.is0()?void 0:x}toAffine(j){return O(this,j)}isTorsionFree(){let{h:j,isTorsionFree:U}=J;if(j===p)return!0;if(U)return U(D,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:j,clearCofactor:U}=J;if(j===p)return this;if(U)return U(D,this);return this.multiplyUnsafe(J.h)}toRawBytes(j=!0){return e0("isCompressed",j),this.assertValidity(),G(D,this,j)}toHex(j=!0){return e0("isCompressed",j),$$(this.toRawBytes(j))}}D.BASE=new D(J.Gx,J.Gy,Q.ONE),D.ZERO=new D(Q.ZERO,Q.ONE,Q.ZERO);let{endo:k,nBitLength:_}=J,f=I8(D,k?Math.ceil(_/2):_);return{CURVE:J,ProjectivePoint:D,normPrivateKeyToScalar:N,weierstrassEquation:K,isWithinCurveOrder:W}}function xQ($){let J=PJ($);return h0(J,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...J})}function x8($){let J=xQ($),{Fp:Q,n:Y,nByteLength:G,nBitLength:Z}=J,K=Q.BYTES+1,M=2*Q.BYTES+1;function X(z){return o(z,Y)}function q(z){return g$(z,Y)}let{ProjectivePoint:W,normPrivateKeyToScalar:N,weierstrassEquation:V,isWithinCurveOrder:O}=TQ({...J,toBytes(z,B,I){let b=B.toAffine(),S=Q.toBytes(b.x),R=V$;if(e0("isCompressed",I),I)return R(Uint8Array.from([B.hasEvenY()?2:3]),S);else return R(Uint8Array.from([4]),S,Q.toBytes(b.y))},fromBytes(z){let B=z.length,I=z[0],b=z.subarray(1);if(B===K&&(I===2||I===3)){let S=V0(b);if(!F$(S,p,Q.ORDER))throw Error("Point is not on curve");let R=V(S),F;try{F=Q.sqrt(R)}catch(e){let $0=e instanceof Error?": "+e.message:"";throw Error("Point is not on curve"+$0)}let h=(F&p)===p;if((I&1)===1!==h)F=Q.neg(F);return{x:S,y:F}}else if(B===M&&I===4){let S=Q.fromBytes(b.subarray(0,Q.BYTES)),R=Q.fromBytes(b.subarray(Q.BYTES,2*Q.BYTES));return{x:S,y:R}}else{let S=K,R=M;throw Error("invalid Point, expected length of "+S+", or uncompressed "+R+", got "+B)}}});function P(z){let B=Y>>p;return z>B}function D(z){return P(z)?X(-z):z}let k=(z,B,I)=>V0(z.slice(B,I));class _{constructor(z,B,I){if(f0("r",z,p,Y),f0("s",B,p,Y),this.r=z,this.s=B,I!=null)this.recovery=I;Object.freeze(this)}static fromCompact(z){let B=G;return z=J0("compactSignature",z,B*2),new _(k(z,0,B),k(z,B,2*B))}static fromDER(z){let{r:B,s:I}=D0.toSig(J0("DER",z));return new _(B,I)}assertValidity(){}addRecoveryBit(z){return new _(this.r,this.s,z)}recoverPublicKey(z){let{r:B,s:I,recovery:b}=this,S=w(J0("msgHash",z));if(b==null||![0,1,2,3].includes(b))throw Error("recovery id invalid");let R=b===2||b===3?B+J.n:B;if(R>=Q.ORDER)throw Error("recovery id 2 or 3 invalid");let F=(b&1)===0?"02":"03",h=W.fromHex(F+CJ(R,Q.BYTES)),l=q(R),e=X(-S*l),$0=X(I*l),R0=W.BASE.multiplyAndAddUnsafe(h,e,$0);if(!R0)throw Error("point at infinify");return R0.assertValidity(),R0}hasHighS(){return P(this.s)}normalizeS(){return this.hasHighS()?new _(this.r,X(-this.s),this.recovery):this}toDERRawBytes(){return N$(this.toDERHex())}toDERHex(){return D0.hexFromSig(this)}toCompactRawBytes(){return N$(this.toCompactHex())}toCompactHex(){let z=G;return CJ(this.r,z)+CJ(this.s,z)}}let f={isValidPrivateKey(z){try{return N(z),!0}catch(B){return!1}},normPrivateKeyToScalar:N,randomPrivateKey:()=>{let z=VJ(J.n);return B8(J.randomBytes(z),J.n)},precompute(z=8,B=W.BASE){return B._setWindowSize(z),B.multiply(BigInt(3)),B}};function j(z,B=!0){return W.fromPrivateKey(z).toRawBytes(B)}function U(z){if(typeof z==="bigint")return!1;if(z instanceof W)return!0;let I=J0("key",z).length,b=Q.BYTES,S=b+1,R=2*b+1;if(J.allowedPrivateKeyLengths||G===S)return;else return I===S||I===R}function L(z,B,I=!0){if(U(z)===!0)throw Error("first arg must be private key");if(U(B)===!1)throw Error("second arg must be public key");return W.fromHex(B).multiply(N(z)).toRawBytes(I)}let C=J.bits2int||function(z){if(z.length>8192)throw Error("input is too large");let B=V0(z),I=z.length*8-Z;return I>0?B>>BigInt(I):B},w=J.bits2int_modN||function(z){return X(C(z))},x=v0(Z);function y(z){return f0("num < 2^"+Z,z,O0,x),g0(z,G)}function T(z,B,I=A){if(["recovered","canonical"].some((S0)=>(S0 in I)))throw Error("sign() legacy options not supported");let{hash:b,randomBytes:S}=J,{lowS:R,prehash:F,extraEntropy:h}=I;if(R==null)R=!0;if(z=J0("msgHash",z),_8(I),F)z=J0("prehashed msgHash",b(z));let l=w(z),e=N(B),$0=[y(e),y(l)];if(h!=null&&h!==!1){let S0=h===!0?S(Q.BYTES):h;$0.push(J0("extraEntropy",S0))}let R0=V$(...$0),R$=l;function m$(S0){let c0=C(S0);if(!O(c0))return;let u$=q(c0),J$=W.BASE.multiply(c0).toAffine(),_0=X(J$.x);if(_0===O0)return;let Q$=X(u$*X(R$+_0*e));if(Q$===O0)return;let l0=(J$.x===_0?0:2)|Number(J$.y&p),bJ=Q$;if(R&&P(Q$))bJ=D(Q$),l0^=1;return new _(_0,bJ,l0)}return{seed:R0,k2sig:m$}}let A={lowS:J.lowS,prehash:!1},E={lowS:J.lowS,prehash:!1};function c(z,B,I=A){let{seed:b,k2sig:S}=T(z,B,I),R=J;return U8(R.hash.outputLen,R.nByteLength,R.hmac)(b,S)}W.BASE._setWindowSize(8);function v(z,B,I,b=E){let S=z;B=J0("msgHash",B),I=J0("publicKey",I);let{lowS:R,prehash:F,format:h}=b;if(_8(b),"strict"in b)throw Error("options.strict was renamed to lowS");if(h!==void 0&&h!=="compact"&&h!=="der")throw Error("format must be compact or der");let l=typeof S==="string"||r0(S),e=!l&&!h&&typeof S==="object"&&S!==null&&typeof S.r==="bigint"&&typeof S.s==="bigint";if(!l&&!e)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");let $0=void 0,R0;try{if(e)$0=new _(S.r,S.s);if(l){try{if(h!=="compact")$0=_.fromDER(S)}catch(l0){if(!(l0 instanceof D0.Err))throw l0}if(!$0&&h!=="der")$0=_.fromCompact(S)}R0=W.fromHex(I)}catch(l0){return!1}if(!$0)return!1;if(R&&$0.hasHighS())return!1;if(F)B=J.hash(B);let{r:R$,s:m$}=$0,S0=w(B),c0=q(m$),u$=X(S0*c0),J$=X(R$*c0),_0=W.BASE.multiplyAndAddUnsafe(R0,u$,J$)?.toAffine();if(!_0)return!1;return X(_0.x)===R$}return{CURVE:J,getPublicKey:j,getSharedSecret:L,sign:c,verify:v,ProjectivePoint:W,Signature:_,utils:f}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function EQ($){return{hash:$,hmac:(J,...Q)=>YJ($,J,dJ(...Q)),randomBytes:pJ}}function E8($,J){let Q=(Y)=>x8({...$,...EQ(Y)});return{...Q(J),create:Q}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var w8=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),k8=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),kQ=BigInt(0),AQ=BigInt(1),IJ=BigInt(2),A8=($,J)=>($+J/IJ)/J;function wQ($){let J=w8,Q=BigInt(3),Y=BigInt(6),G=BigInt(11),Z=BigInt(22),K=BigInt(23),M=BigInt(44),X=BigInt(88),q=$*$*$%J,W=q*q*$%J,N=G0(W,Q,J)*W%J,V=G0(N,Q,J)*W%J,O=G0(V,IJ,J)*q%J,P=G0(O,G,J)*O%J,D=G0(P,Z,J)*P%J,k=G0(D,M,J)*D%J,_=G0(k,X,J)*k%J,f=G0(_,M,J)*D%J,j=G0(f,Q,J)*W%J,U=G0(j,K,J)*P%J,L=G0(U,Y,J)*q%J,C=G0(L,IJ,J);if(!SJ.eql(SJ.sqr(C),$))throw Error("Cannot find square root");return C}var SJ=D$(w8,void 0,void 0,{sqrt:wQ}),_J=E8({a:kQ,b:BigInt(7),Fp:SJ,n:k8,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:($)=>{let J=k8,Q=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-AQ*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),G=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),Z=Q,K=BigInt("0x100000000000000000000000000000000"),M=A8(Z*$,J),X=A8(-Y*$,J),q=o($-M*Q-X*G,J),W=o(-M*Y-X*Z,J),N=q>K,V=W>K;if(N)q=J-q;if(V)W=J-W;if(q>K||W>K)throw Error("splitScalar: Endomorphism failed, k="+$);return{k1neg:N,k1:q,k2neg:V,k2:W}}}},K8);function f$(){let $=_J.utils.randomPrivateKey();return"0x"+Buffer.from($).toString("hex")}function v$($){let J=$.startsWith("0x")?$.slice(2):$,Q=Buffer.from(J,"hex"),Y=_J.getPublicKey(Q,!1),Z=p0(Y.slice(1)).slice(-20),K="0x"+Buffer.from(Z).toString("hex");return P0(K)}function h$($){let J;if(typeof $==="string"){let Y=$.startsWith("0x")?$.slice(2):$;J=Buffer.from(Y,"hex")}else J=$;let Q=p0(J);return"0x"+Buffer.from(Q).toString("hex")}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,Z){let K=Number(Q)/1000000000000000000,M=Number(Y)/1000000000000000000;return new u(`Insufficient balance for ${$} invitation(s). Can only afford ${J} invitation(s). Requested: ${K.toFixed(6)} CRC, Available: ${M.toFixed(6)} CRC.`,{code:"INVITATION_INSUFFICIENT_BALANCE",source:"VALIDATION",context:{from:G,to:Z,requestedInvites:$,availableInvites:J,requested:Q.toString(),available:Y.toString(),requestedCrc:K,availableCrc:M}})}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 y8=[];for(let $=0;$<256;$++)y8[$]=$.toString(16).padStart(2,"0");function O$($){let J="0x";for(let Q=0;Q<$.length;Q++)J+=y8[$[Q]];return J}function b8($){let J=new Uint8Array($.length*2);return $.forEach((Q,Y)=>{let G=Q>>8,Z=Q&255,K=2*Y;J[K]=G,J[K+1]=Z}),O$(J)}function F8($,J,Q){let Y=new Set([J.toLowerCase(),Q.toLowerCase()]);$.forEach((K)=>{Y.add(K.from.toLowerCase()),Y.add(K.to.toLowerCase()),Y.add(K.tokenOwner.toLowerCase())});let G=[...Y].sort((K,M)=>{let X=BigInt(K),q=BigInt(M),W=X<q,N=X>q;return W?-1:N?1:0}),Z={};return G.forEach((K,M)=>{Z[K]=M}),{sorted:G,idx:Z}}function yQ($,J){let Q=new Set,Y=[],G=null;if($.forEach((Z,K)=>{let M=Z.from.toLowerCase(),X=Z.to.toLowerCase();if(M===J&&X===J)G=K;else if(X===J)Y.push(K)}),G!==null)Q.add(G);else Y.forEach((Z)=>Q.add(Z));return Q}function TJ($,J,Q,Y){let G=$.toLowerCase(),Z=J.toLowerCase(),{sorted:K,idx:M}=F8(Y,G,Z),X=yQ(Y,Z),q=Y.map((_,f)=>{return{streamSinkId:X.has(f)?1:0,amount:_.value}});if(X.size===0)throw Error(`No terminal edges detected. Flow must have at least one edge delivering to receiver ${Z}`);let W=Array.from(X),N=[{sourceCoordinate:M[G],flowEdgeIds:W,data:new Uint8Array(0)}],V=[];Y.forEach((_)=>{V.push(M[_.tokenOwner.toLowerCase()]),V.push(M[_.from.toLowerCase()]),V.push(M[_.to.toLowerCase()])});let O=b8(V),P=BigInt(Q),D=q.filter((_)=>_.streamSinkId===1).reduce((_,f)=>_+BigInt(f.amount.toString()),BigInt(0));if(D!==P)throw Error(`Terminal sum ${D} does not equal expected ${P}`);return{flowVertices:K,flowEdges:q,streams:N,packedCoordinates:O,sourceCoordinate:M[G]}}function xJ($,J){let Q=$.streams.map((Y)=>({sourceCoordinate:Y.sourceCoordinate,flowEdgeIds:Y.flowEdgeIds,data:Y.data instanceof Uint8Array?O$(Y.data):Y.data}));if(J&&Q.length>0)Q[0].data=J instanceof Uint8Array?O$(J):J;return Q}async function EJ($,J,Q){let Y=new Map,G=new Set;return Q.transfers.forEach((M)=>{if($.toLowerCase()===M.from.toLowerCase())G.add(M.tokenOwner.toLowerCase())}),(await new k$(J).token.getTokenInfoBatch(Array.from(G))).forEach((M)=>{if(M.isWrapped&&!M.isInflationary)M.tokenType="CrcV2_ERC20WrapperDeployed_Demurraged";Y.set(M.tokenAddress.toLowerCase(),M)}),Y}function kJ($,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 AJ($,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 t extends G${constructor($,J){super("TransferError",$,{...J,source:J?.source||"TRANSFERS"})}static noPathFound($,J,Q){return new t(`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,Z=Number(J)/1000000000000000000;return new t(`Insufficient balance for transfer. Requested: ${G.toFixed(6)} CRC, Available: ${Z.toFixed(6)} CRC.`,{code:"TRANSFER_INSUFFICIENT_BALANCE",source:"VALIDATION",context:{from:Q,to:Y,requested:$.toString(),available:J.toString(),requestedCrc:G,availableCrc:Z}})}static wrappedTokensRequired(){return new t("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 t(`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 t(`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 t(`Transfer path is empty for route from ${$} to ${J}`,{code:"TRANSFER_EMPTY_PATH",source:"PATHFINDING",context:{from:$,to:J}})}}class u0{config;hubV2;liftERC20;rpcClient;pathfinder;balance;group;constructor($){this.config=$,this.hubV2=new C0({address:$.v2HubAddress,rpcUrl:$.circlesRpcUrl}),this.liftERC20=new A$({address:$.liftERC20Address,rpcUrl:$.circlesRpcUrl}),this.rpcClient=new B0($.circlesRpcUrl),this.pathfinder=new U0(this.rpcClient),this.balance=new y0(this.rpcClient),this.group=new F0(this.rpcClient)}async buildFlowMatrixTx($,J,Q,Y,G=!1){let Z=$.toLowerCase(),K=J.toLowerCase();if(!Q.transfers||Q.transfers.length===0)throw t.noPathFound(Z,K);let M={...Q};if(G&&Y?.toTokens?.length===1){let f=Y.toTokens[0].toLowerCase();if(Q.maxFlow>0n)M.transfers.push({from:K,to:K,tokenOwner:f,value:Q.maxFlow})}let X=await EJ(Z,this.config.circlesRpcUrl,M),q=kJ(M,X),W=Object.keys(q).length>0;if(W&&!Y?.useWrappedBalances)throw t.wrappedTokensRequired();let N=[],V=[];if(W){let f=await this._getTokenBalanceMap(Z),j=this._createDemurragedUnwrapCalls(q),{unwrapCalls:U,wrapCalls:L}=this._createInflationaryUnwrapAndWrapCalls(q,X,f);N=[...j,...U],V=L,M=AJ(M,X)}let O=TJ(Z,K,M.maxFlow,M.transfers),P=xJ(O,Y?.txData),D=this.hubV2.operateFlowMatrix(O.flowVertices,O.flowEdges,P,O.packedCoordinates),k=!1;try{k=await this.hubV2.isApprovedForAll(Z,Z)}catch(f){console.warn("Failed to check approval status, including approval transaction:",f)}return[...k?[]:[this.hubV2.setApprovalForAll(Z,!0)],...N,D,...V]}async constructAdvancedTransfer($,J,Q,Y,G=!1){let Z=$.toLowerCase(),K=J.toLowerCase(),M=BigInt(Q);if(Z===K&&Y?.fromTokens?.length===1&&Y?.toTokens?.length===1){let O=Y.fromTokens[0],P=Y.toTokens[0],[D,k]=await Promise.all([this.liftERC20.erc20Circles(0,P),this.liftERC20.erc20Circles(1,P)]);if(O.toLowerCase()===D.toLowerCase()&&D!==E$){let f=new o0({address:O,rpcUrl:this.config.circlesRpcUrl}).unwrap(M);return[{to:f.to,data:f.data,value:f.value??0n}]}if(O.toLowerCase()===k.toLowerCase()&&k!==E$){let _=new a0({address:O,rpcUrl:this.config.circlesRpcUrl}),f=i.attoCirclesToAttoStaticCircles(M),j=_.unwrap(f);return[{to:j.to,data:j.data,value:j.value??0n}]}}let X=this._truncateToSixDecimals(M),q=await this._getDefaultTokenExcludeList(K,Y?.excludeFromTokens),{...W}=Y||{},N={...W,...q?{excludeFromTokens:q}:{}},V=await this.pathfinder.findPath({from:Z,to:K,targetFlow:X,...N});if(!V.transfers||V.transfers.length===0)throw t.noPathFound(Z,K);if(V.maxFlow<X)throw t.insufficientBalance(X,V.maxFlow,Z,K);return this.buildFlowMatrixTx(Z,K,V,Y,G)}async constructReplenish($,J,Q,Y){let G=$.toLowerCase(),Z=J.toLowerCase(),K=(Y||$).toLowerCase(),M=BigInt(Q),q=(await this.balance.getTokenBalances(G)).filter((R)=>R.tokenOwner.toLowerCase()===Z),W=0n,N=0n,V=0n,O=null,P=null;for(let R of q)if(R.isWrapped)if(R.tokenType.includes("Demurrage"))N=BigInt(R.attoCircles),O=R.tokenAddress;else V=BigInt(R.staticAttoCircles),P=R.tokenAddress;else W=BigInt(R.attoCircles);let D=W+N+i.attoStaticCirclesToAttoCircles(V),k=[];if(W>=M){if(console.log(`✓ Already have ${Number(W)/1000000000000000000} CRC unwrapped (target: ${Number(M)/1000000000000000000} CRC). No replenish needed.`),K!==G){let R=await this.hubV2.toTokenId(Z),F=this.hubV2.safeTransferFrom(G,K,R,M);k.push({to:F.to,data:F.data,value:F.value??0n})}return k}let _=M-W;if(console.log(`Current unwrapped: ${Number(W)/1000000000000000000} CRC`),console.log(`Target amount: ${Number(M)/1000000000000000000} CRC`),console.log(`Need to acquire: ${Number(_)/1000000000000000000} CRC`),D>=M){let R=_;if(N>0n&&O&&R>0n){let F=R>N?N:R,l=new o0({address:O,rpcUrl:this.config.circlesRpcUrl}).unwrap(F);k.push({to:l.to,data:l.data,value:l.value??0n}),R-=F}if(V>0n&&P&&R>0n){let F=i.attoCirclesToAttoStaticCircles(R),h=F>V?V:F,e=new a0({address:P,rpcUrl:this.config.circlesRpcUrl}).unwrap(h);k.push({to:e.to,data:e.data,value:e.value??0n})}if(K!==G){let F=await this.hubV2.toTokenId(Z),h=this.hubV2.safeTransferFrom(G,K,F,M);k.push({to:h.to,data:h.data,value:h.value??0n})}return k}let j=!await this.hubV2.isTrusted(G,Z),U=BigInt(Math.floor(Date.now()/1000)+31536000),L=i.truncateToInt64(_),C=_%i.FACTOR_1E12!==0n,w=i.blowUpToBigInt(C?L+1n:L),x;try{x=await this.pathfinder.findPath({from:G,to:K,targetFlow:w,toTokens:[Z],useWrappedBalances:!0,simulatedTrusts:j?[{truster:G,trustee:Z}]:void 0})}catch(R){let F=Number(D)/1000000000000000000,h=Number(M)/1000000000000000000,l=Number(_)/1000000000000000000;throw new t(`Insufficient tokens to replenish. Target: ${h.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(_-(D-W))/1000000000000000000).toFixed(6)} CRC.`,{code:"REPLENISH_INSUFFICIENT_TOKENS",source:"VALIDATION",context:{from:G,tokenId:Z,target:M.toString(),unwrapped:W.toString(),deficit:_.toString(),available:D.toString(),targetCrc:h,unwrappedCrc:Number(W)/1000000000000000000,deficitCrc:l,availableCrc:F}})}if(!x.transfers||x.transfers.length===0)throw t.noPathFound(G,K,`No path to acquire token ${Z}`);if(x.maxFlow<w){let R=Number(x.maxFlow)/1000000000000000000,F=Number(w)/1000000000000000000;throw new t(`Pathfinder can only provide ${R.toFixed(6)} CRC of the ${F.toFixed(6)} CRC deficit needed for token ${Z}.`,{code:"REPLENISH_INSUFFICIENT_PATH_FLOW",source:"PATHFINDING",context:{from:G,tokenId:Z,deficit:w.toString(),pathFlow:x.maxFlow.toString(),deficitCrc:F,pathFlowCrc:R}})}if(j){let R=this.hubV2.trust(Z,U);k.push({to:R.to,data:R.data,value:R.value??0n})}let y=await EJ(G,this.config.circlesRpcUrl,x),T=kJ(x,y),A=Object.keys(T).length>0,E=[],c=[];if(A){let R=await this._getTokenBalanceMap(G),F=this._createDemurragedUnwrapCalls(T),{unwrapCalls:h,wrapCalls:l}=this._createInflationaryUnwrapAndWrapCalls(T,y,R);E=[...F,...h],c=l,x=AJ(x,y)}let v=TJ(G,K,x.maxFlow,x.transfers),z=xJ(v),B=this.hubV2.operateFlowMatrix(v.flowVertices,v.flowEdges,z,v.packedCoordinates),I={to:B.to,data:B.data,value:B.value??0n},b=!1;try{b=await this.hubV2.isApprovedForAll(G,G)}catch(R){console.warn("Failed to check approval status, including approval transaction:",R)}if(j){let R=this.hubV2.trust(Z,0n);c.push({to:R.to,data:R.data,value:R.value??0n})}let S=b?[]:[{to:this.hubV2.setApprovalForAll(G,!0).to,data:this.hubV2.setApprovalForAll(G,!0).data,value:0n}];return k.push(...S,...E,I,...c),k}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 K=new o0({address:Q,rpcUrl:this.config.circlesRpcUrl}).unwrap(Y);J.push({to:K.to,data:K.data,value:K.value??0n})}return J}_createInflationaryUnwrapAndWrapCalls($,J,Q){let Y=[],G=[];for(let[Z,[K,M]]of Object.entries($)){if(M!=="CrcV2_ERC20WrapperDeployed_Inflationary")continue;let X=J.get(Z.toLowerCase()),q=Q.get(Z.toLowerCase())||0n;if(q===0n)continue;let N=new a0({address:Z,rpcUrl:this.config.circlesRpcUrl}).unwrap(q);Y.push({to:N.to,data:N.data,value:N.value??0n});let V=X?.tokenOwner,O=i.attoStaticCirclesToAttoCircles(q)-K;if(O>0n){let P=this.hubV2.wrap(V,O,1);G.push({to:P.to,data:P.data,value:P.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 g8=n0;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 B0($.circlesRpcUrl),this.pathfinder=new U0(this.rpcClient),this.trust=new w0(this.rpcClient),this.token=new b0(this.rpcClient),this.hubV2=new C0({address:$.v2HubAddress,rpcUrl:$.circlesRpcUrl}),this.referralsModule=new t0({address:$.referralsModuleAddress,rpcUrl:$.circlesRpcUrl}),this.invitationFarm=new s0({address:$.invitationFarmAddress,rpcUrl:$.circlesRpcUrl}),this.invitationModuleContract=new y$({address:$.invitationModuleAddress,rpcUrl:$.circlesRpcUrl})}async ensureInviterSetup($){let J=$.toLowerCase(),Q=this.config.invitationModuleAddress,Y=[],G=new w$({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 Z=Y.address.toLowerCase()===Q,K=G.address.toLowerCase()===Q;if(Z&&!K)return-1;if(!Z&&K)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 Z=await this.ensureInviterSetup(Q),K=await this.getRealInviters(Q),M=[...Z];if(K.length>0){console.log("[generateInvite] Using STANDARD PATH (proxy inviters available)");let X=K[0].address,q=await this.findInvitePath(Q,X),W=await this.generateInviteData([Y],!1),V=await new u0(this.config).buildFlowMatrixTx(Q,this.config.invitationModuleAddress,q,{toTokens:[X],useWrappedBalances:!0,txData:S$(W)},!0);M.push(...V)}else{console.log("[generateInvite] Using FARM FALLBACK PATH (no proxy inviters available)");let X=new u0(this.config),q=await this.findFarmInvitePath(Q),W=await X.buildFlowMatrixTx(Q,A0,q,{toTokens:[n0],useWrappedBalances:!0},!0);M.push(...W);let N="0x20EcD8bDeb2F48d8a7c94E542aA4feC5790D9676",V=await this.invitationFarm.read("claimInvite",[],{from:N}),O=this.invitationFarm.claimInvite();M.push(O);let P=await this.invitationFarm.invitationModule(),D=Q0(["address"],[Y]),k=this.hubV2.safeTransferFrom(Q,P,V,d,D);M.push(k)}return M}async findInvitePath($,J){let Q=$.toLowerCase(),Y;if(J)Y=J.toLowerCase();else{let Z=await this.getRealInviters(Q);if(Z.length===0)throw u.noPathFound(Q,this.config.invitationModuleAddress);Y=Z[0].address}let G=await this.pathfinder.findPath({from:Q,to:this.config.invitationModuleAddress,targetFlow:d,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<d){let K=Number(G.maxFlow/d);throw u.insufficientBalance(1,K,d,G.maxFlow,Q,this.config.invitationModuleAddress)}return G}async findFarmInvitePath($){let J=$.toLowerCase(),Q=await this.pathfinder.findPath({from:J,to:A0,targetFlow:d,toTokens:[g8],useWrappedBalances:!0});if(!Q.transfers||Q.transfers.length===0)throw u.noPathFound(J,A0);if(Q.maxFlow<d){let G=Number(Q.maxFlow/d);throw u.insufficientBalance(1,G,d,Q.maxFlow,J,A0)}return Q}async getRealInviters($){let J=$.toLowerCase(),[Q,Y,G,Z,K]=await Promise.all([n0!=="0x0000000000000000000000000000000000000000"?this.trust.getTrusts(n0):Promise.resolve([]),this.trust.getTrustedBy(J),this.trust.getMutualTrusts(J),this.trust.getTrusts(this.config.invitationModuleAddress),this.trust.getMutualTrusts(this.config.invitationModuleAddress)]),M=new Set(Q.map((U)=>U.objectAvatar.toLowerCase())),X=new Set([...Y.map((U)=>U.objectAvatar.toLowerCase()),...G.map((U)=>U.objectAvatar.toLowerCase())]),q=new Set([...Z.map((U)=>U.objectAvatar.toLowerCase()),...K.map((U)=>U.objectAvatar.toLowerCase())]),N=[...[...X].filter((U)=>q.has(U)&&!M.has(U)),J];if(N.length===0)return[];let V=await this.pathfinder.findPath({from:J,to:this.config.invitationModuleAddress,useWrappedBalances:!0,targetFlow:M$,toTokens:N,simulatedTrusts:[{truster:this.config.invitationModuleAddress,trustee:J}]});if(!V.transfers||V.transfers.length===0)return[];let O=this.config.invitationModuleAddress.toLowerCase(),P=V.transfers.filter((U)=>U.to.toLowerCase()===O),D=[...new Set(P.map((U)=>U.tokenOwner.toLowerCase()))],k=await this.token.getTokenInfoBatch(D),_=new Map;for(let U of k){let L=U.tokenAddress??U.token;if(L&&U?.tokenOwner)_.set(L.toLowerCase(),U.tokenOwner.toLowerCase())}let f=new Map;for(let U of P){let L=U.tokenOwner.toLowerCase(),C=_.get(L)??L;f.set(C,(f.get(C)??0n)+U.value)}let j=[];for(let[U,L]of f.entries()){let C=Number(L/d);if(C>=1)j.push({address:U,possibleInvites:C})}return this.orderRealInviters(j,J)}async generateReferral($){let J=$.toLowerCase(),Q=f$(),Y=v$(Q),G=await this.ensureInviterSetup(J),Z=await this.getRealInviters(J),K=[...G];if(Z.length>0){console.log("[generateReferral] Using STANDARD PATH (proxy inviters available)");let M=new u0(this.config),X=await this.generateInviteData([Y],!0),q=Z[0].address,W=await this.findInvitePath(J,q),N=await M.buildFlowMatrixTx(J,this.config.invitationModuleAddress,W,{toTokens:[q],useWrappedBalances:!0,txData:S$(X)},!0);K.push(...N)}else{console.log("[generateReferral] Using FARM FALLBACK PATH (no proxy inviters available)");let M=new u0(this.config),X=await this.findFarmInvitePath(J),q=await M.buildFlowMatrixTx(J,A0,X,{toTokens:[g8],useWrappedBalances:!0},!0);K.push(...q);let W="0x20EcD8bDeb2F48d8a7c94E542aA4feC5790D9676",N=await this.invitationFarm.read("claimInvite",[],{from:W}),V=this.invitationFarm.claimInvite();K.push(V);let O=await this.invitationFarm.invitationModule(),P=this.referralsModule.createAccount(Y).data,D=Q0(["address","bytes"],[this.config.referralsModuleAddress,P]),k=this.hubV2.safeTransferFrom(J,O,N,d,D);K.push(k)}return{transactions:K,privateKey:Q}}async generateInviteData($,J=!0){if($.length===0)throw u.noAddressesProvided();if(!J)if($.length===1)return Q0(["address"],[$[0]]);else return Q0(["address[]"],[$]);if($.length===1){let Y=this.referralsModule.createAccount($[0]).data;return Q0(["address","bytes"],[this.config.referralsModuleAddress,Y])}else{let Y=this.referralsModule.createAccounts($).data;return Q0(["address","bytes"],[this.config.referralsModuleAddress,Y])}}computeAddress($){let Q=$.toLowerCase().replace("0x","").padStart(64,"0"),Y=o$.replace("0x","")+Q,G=h$("0x"+Y),Z="ff",K=n$.toLowerCase().replace("0x",""),M=G.replace("0x",""),X=a$.replace("0x",""),q="ff"+K+M+X,N="0x"+h$("0x"+q).slice(-40);return P0(N)}generateSecrets($){return Array.from({length:$},()=>{let J=f$(),Q=v$(J).toLowerCase();return{secret:J,signer:Q}})}}class FQ{referralsModuleAddress;invitations;invitationFarm;referralsModule;hubV2;constructor($){this.referralsModuleAddress=$.referralsModuleAddress,this.invitations=new wJ($),this.invitationFarm=new s0({address:$.invitationFarmAddress,rpcUrl:$.circlesRpcUrl}),this.referralsModule=new t0({address:$.referralsModuleAddress,rpcUrl:$.circlesRpcUrl}),this.hubV2=new C0({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 Z=this.invitations.generateSecrets(J),K=Z.map((W)=>W.signer),M=await this.invitationFarm.invitationModule(),X=Y?this.invitationFarm.claimInvite():this.invitationFarm.claimInvites(BigInt(J)),q=Y?this.buildReferralTransfer(Q,M,G[0],K[0]):this.buildBatchReferralTransfer(Q,M,G,K);return{referrals:Z,transactions:[X,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,Z=G===1,K=await this.simulateClaim(Q,G);if(!K.length)throw new u("No invitation IDs returned from claim",{code:"INVITATION_NO_IDS",source:"INVITATIONS",context:{inviter:Q,count:G}});let M=await this.invitationFarm.invitationModule(),X=Z?this.invitationFarm.claimInvite():this.invitationFarm.claimInvites(BigInt(G)),q=Z?this.buildInviteTransfer(Q,M,K[0],Y[0]):this.buildBatchInviteTransfer(Q,M,K,Y);return{invitees:Y,transactions:[X,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,Z=Q0(["address","bytes"],[this.referralsModuleAddress,G]);return this.hubV2.safeTransferFrom($,J,Q,d,Z)}buildBatchReferralTransfer($,J,Q,Y){let G=this.referralsModule.createAccounts(Y).data,Z=Q0(["address","bytes"],[this.referralsModuleAddress,G]),K=Q.map(()=>d);return this.hubV2.safeBatchTransferFrom($,J,Q,K,Z)}buildInviteTransfer($,J,Q,Y){let G=Q0(["address"],[Y]);return this.hubV2.safeTransferFrom($,J,Q,d,G)}buildBatchInviteTransfer($,J,Q,Y){let G=Q0(["address[]"],[Y]),Z=Q.map(()=>d);return this.hubV2.safeBatchTransferFrom($,J,Q,Z,G)}}class gQ{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 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 Error(Y.error||`Failed to store referral: ${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 Error(Q.error||`Failed to store batch: ${J.statusText}`)}return J.json()}async retrieve($){let J=await fetch(`${this.getBaseUrl()}/retrieve?key=${encodeURIComponent($)}`);if(!J.ok){let Q=await J.json();throw Error(Q.error||`Failed to retrieve referral: ${J.statusText}`)}return J.json()}async listMine($){if(!this.getToken)throw Error("Authentication required to list referrals");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 Z=await G.json();throw Error(Z.error||`Failed to list referrals: ${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 Z=await G.json();throw Error(Z.error||`Failed to list referrals: ${G.statusText}`)}return G.json()}}class yJ extends Error{code;httpStatus;constructor($,J,Q){super($);this.code=J;this.httpStatus=Q;this.name="DispenseError"}}class q0 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 fQ{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 q0(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 q0(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 q0(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 q0(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 q0(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 q0(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 Z=await G.json();throw new q0(Z.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 q0(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 yJ(Q,Y,J.status)}return J.json()}}export{q0 as SessionError,gQ as Referrals,FQ as InviteFarm,wJ as Invitations,u as InvitationError,fQ as Distributions,yJ as DispenseError};
3
+ Context: ${JSON.stringify(this.context,null,2)}`;return $}}function zQ($,J,Q,Y){if(typeof $.setBigUint64==="function")return $.setBigUint64(J,Q,Y);let G=BigInt(32),Z=BigInt(4294967295),K=Number(Q>>G&Z),M=Number(Q&Z),X=Y?4:0,q=Y?0:4;$.setUint32(J+X,K,Y),$.setUint32(J+q,M,Y)}function Y8($,J,Q){return $&J^~$&Q}function G8($,J,Q){return $&J^$&Q^J&Q}class JJ extends k0{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=C$(this.buffer)}update($){W0(this),$=E0($),K0($);let{view:J,buffer:Q,blockLen:Y}=this,G=$.length;for(let Z=0;Z<G;){let K=Math.min(Y-this.pos,G-Z);if(K===Y){let M=C$($);for(;Y<=G-Z;Z+=Y)this.process(M,Z);continue}if(Q.set($.subarray(Z,Z+K),this.pos),this.pos+=K,Z+=K,this.pos===Y)this.process(J,0),this.pos=0}return this.length+=$.length,this.roundClean(),this}digestInto($){W0(this),P$($,this),this.finished=!0;let{buffer:J,view:Q,blockLen:Y,isLE:G}=this,{pos:Z}=this;if(J[Z++]=128,M0(this.buffer.subarray(Z)),this.padOffset>Y-Z)this.process(Q,0),Z=0;for(let W=Z;W<Y;W++)J[W]=0;zQ(Q,Y-8,BigInt(this.length*8),G),this.process(Q,0);let K=C$($),M=this.outputLen;if(M%4)throw Error("_sha2: outputLen should be aligned to 32bit");let X=M/4,q=this.get();if(X>q.length)throw Error("_sha2: outputLen bigger than state");for(let W=0;W<X;W++)K.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:Z,pos:K}=this;if($.destroyed=Z,$.finished=G,$.length=Y,$.pos=K,Y%J)$.buffer.set(Q);return $}clone(){return this._cloneInto()}}var z0=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var NQ=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]),H0=new Uint32Array(64);class Z8 extends JJ{constructor($=32){super(64,$,8,!1);this.A=z0[0]|0,this.B=z0[1]|0,this.C=z0[2]|0,this.D=z0[3]|0,this.E=z0[4]|0,this.F=z0[5]|0,this.G=z0[6]|0,this.H=z0[7]|0}get(){let{A:$,B:J,C:Q,D:Y,E:G,F:Z,G:K,H:M}=this;return[$,J,Q,Y,G,Z,K,M]}set($,J,Q,Y,G,Z,K,M){this.A=$|0,this.B=J|0,this.C=Q|0,this.D=Y|0,this.E=G|0,this.F=Z|0,this.G=K|0,this.H=M|0}process($,J){for(let W=0;W<16;W++,J+=4)H0[W]=$.getUint32(J,!1);for(let W=16;W<64;W++){let N=H0[W-15],V=H0[W-2],O=Z0(N,7)^Z0(N,18)^N>>>3,P=Z0(V,17)^Z0(V,19)^V>>>10;H0[W]=P+H0[W-7]+O+H0[W-16]|0}let{A:Q,B:Y,C:G,D:Z,E:K,F:M,G:X,H:q}=this;for(let W=0;W<64;W++){let N=Z0(K,6)^Z0(K,11)^Z0(K,25),V=q+N+Y8(K,M,X)+NQ[W]+H0[W]|0,P=(Z0(Q,2)^Z0(Q,13)^Z0(Q,22))+G8(Q,Y,G)|0;q=X,X=M,M=K,K=Z+V|0,Z=G,G=Y,Y=Q,Q=V+P|0}Q=Q+this.A|0,Y=Y+this.B|0,G=G+this.C|0,Z=Z+this.D|0,K=K+this.E|0,M=M+this.F|0,X=X+this.G|0,q=q+this.H|0,this.set(Q,Y,G,Z,K,M,X,q)}roundClean(){M0(H0)}destroy(){this.set(0,0,0,0,0,0,0,0),M0(this.buffer)}}var K8=H$(()=>new Z8);class QJ extends k0{constructor($,J){super();this.finished=!1,this.destroyed=!1,cJ($);let Q=E0(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 Z=0;Z<G.length;Z++)G[Z]^=54;this.iHash.update(G),this.oHash=$.create();for(let Z=0;Z<G.length;Z++)G[Z]^=106;this.oHash.update(G),M0(G)}update($){return W0(this),this.iHash.update($),this}digestInto($){W0(this),K0($,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:Z,outputLen:K}=this;return $=$,$.finished=Y,$.destroyed=G,$.blockLen=Z,$.outputLen=K,$.oHash=J._cloneInto($.oHash),$.iHash=Q._cloneInto($.iHash),$}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var YJ=($,J,Q)=>new QJ($,J).update(Q).digest();YJ.create=($,J)=>new QJ($,J);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var MJ=BigInt(0),KJ=BigInt(1);function r0($){return $ instanceof Uint8Array||ArrayBuffer.isView($)&&$.constructor.name==="Uint8Array"}function XJ($){if(!r0($))throw Error("Uint8Array expected")}function e0($,J){if(typeof J!=="boolean")throw Error($+" boolean expected, got "+J)}function z$($){let J=$.toString(16);return J.length&1?"0"+J:J}function q8($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);return $===""?MJ:BigInt("0x"+$)}var W8=typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function",VQ=Array.from({length:256},($,J)=>J.toString(16).padStart(2,"0"));function $$($){if(XJ($),W8)return $.toHex();let J="";for(let Q=0;Q<$.length;Q++)J+=VQ[$[Q]];return J}var N0={_0:48,_9:57,A:65,F:70,a:97,f:102};function M8($){if($>=N0._0&&$<=N0._9)return $-N0._0;if($>=N0.A&&$<=N0.F)return $-(N0.A-10);if($>=N0.a&&$<=N0.f)return $-(N0.a-10);return}function N$($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);if(W8)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,Z=0;G<Q;G++,Z+=2){let K=M8($.charCodeAt(Z)),M=M8($.charCodeAt(Z+1));if(K===void 0||M===void 0){let X=$[Z]+$[Z+1];throw Error('hex string expected, got non-hex character "'+X+'" at index '+Z)}Y[G]=K*16+M}return Y}function V0($){return q8($$($))}function qJ($){return XJ($),q8($$(Uint8Array.from($).reverse()))}function g0($,J){return N$($.toString(16).padStart(J*2,"0"))}function WJ($,J){return g0($,J).reverse()}function J0($,J,Q){let Y;if(typeof J==="string")try{Y=N$(J)}catch(Z){throw Error($+" must be hex string or Uint8Array, cause: "+Z)}else if(r0(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 V$(...$){let J=0;for(let Y=0;Y<$.length;Y++){let G=$[Y];XJ(G),J+=G.length}let Q=new Uint8Array(J);for(let Y=0,G=0;Y<$.length;Y++){let Z=$[Y];Q.set(Z,G),G+=Z.length}return Q}var GJ=($)=>typeof $==="bigint"&&MJ<=$;function F$($,J,Q){return GJ($)&&GJ(J)&&GJ(Q)&&J<=$&&$<Q}function f0($,J,Q,Y){if(!F$(J,Q,Y))throw Error("expected valid "+$+": "+Q+" <= n < "+Y+", got "+J)}function j8($){let J;for(J=0;$>MJ;$>>=KJ,J+=1);return J}var v0=($)=>(KJ<<BigInt($))-KJ,ZJ=($)=>new Uint8Array($),X8=($)=>Uint8Array.from($);function U8($,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($),Z=0,K=()=>{Y.fill(1),G.fill(0),Z=0},M=(...N)=>Q(G,Y,...N),X=(N=ZJ(0))=>{if(G=M(X8([0]),N),Y=M(),N.length===0)return;G=M(X8([1]),N),Y=M()},q=()=>{if(Z++>=1000)throw Error("drbg: tried 1000 values");let N=0,V=[];while(N<J){Y=M();let O=Y.slice();V.push(O),N+=Y.length}return V$(...V)};return(N,V)=>{K(),X(N);let O=void 0;while(!(O=V(q())))X();return K(),O}}var DQ={bigint:($)=>typeof $==="bigint",function:($)=>typeof $==="function",boolean:($)=>typeof $==="boolean",string:($)=>typeof $==="string",stringOrUint8Array:($)=>typeof $==="string"||r0($),isSafeInteger:($)=>Number.isSafeInteger($),array:($)=>Array.isArray($),field:($,J)=>J.Fp.isValid($),hash:($)=>typeof $==="function"&&Number.isSafeInteger($.outputLen)};function h0($,J,Q={}){let Y=(G,Z,K)=>{let M=DQ[Z];if(typeof M!=="function")throw Error("invalid validator function");let X=$[G];if(K&&X===void 0)return;if(!M(X,$))throw Error("param "+String(G)+" is invalid. Expected "+Z+", got "+X)};for(let[G,Z]of Object.entries(J))Y(G,Z,!1);for(let[G,Z]of Object.entries(Q))Y(G,Z,!0);return $}function jJ($){let J=new WeakMap;return(Q,...Y)=>{let G=J.get(Q);if(G!==void 0)return G;let Z=$(Q,...Y);return J.set(Q,Z),Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var r=BigInt(0),a=BigInt(1),m0=BigInt(2),OQ=BigInt(3),N8=BigInt(4),V8=BigInt(5),D8=BigInt(8);function o($,J){let Q=$%J;return Q>=r?Q:J+Q}function G0($,J,Q){let Y=$;while(J-- >r)Y*=Y,Y%=Q;return Y}function g$($,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,Z=a,K=a,M=r;while(Q!==r){let q=Y/Q,W=Y%Q,N=G-K*q,V=Z-M*q;Y=Q,Q=W,G=K,Z=M,K=N,M=V}if(Y!==a)throw Error("invert: does not exist");return o(G,J)}function O8($,J){let Q=($.ORDER+a)/N8,Y=$.pow(J,Q);if(!$.eql($.sqr(Y),J))throw Error("Cannot find square root");return Y}function RQ($,J){let Q=($.ORDER-V8)/D8,Y=$.mul(J,m0),G=$.pow(Y,Q),Z=$.mul(J,G),K=$.mul($.mul(Z,m0),G),M=$.mul(Z,$.sub(K,$.ONE));if(!$.eql($.sqr(M),J))throw Error("Cannot find square root");return M}function BQ($){if($<BigInt(3))throw Error("sqrt is not defined for small field");let J=$-a,Q=0;while(J%m0===r)J/=m0,Q++;let Y=m0,G=D$($);while(z8(G,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(Q===1)return O8;let Z=G.pow(Y,J),K=(J+a)/m0;return function(X,q){if(X.is0(q))return q;if(z8(X,q)!==1)throw Error("Cannot find square root");let W=Q,N=X.mul(X.ONE,Z),V=X.pow(q,J),O=X.pow(q,K);while(!X.eql(V,X.ONE)){if(X.is0(V))return X.ZERO;let P=1,D=X.sqr(V);while(!X.eql(D,X.ONE))if(P++,D=X.sqr(D),P===W)throw Error("Cannot find square root");let k=a<<BigInt(W-P-1),_=X.pow(N,k);W=P,N=X.sqr(_),V=X.mul(V,N),O=X.mul(O,_)}return O}}function LQ($){if($%N8===OQ)return O8;if($%D8===V8)return RQ;return BQ($)}var PQ=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function UJ($){let J={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},Q=PQ.reduce((Y,G)=>{return Y[G]="function",Y},J);return h0($,Q)}function CQ($,J,Q){if(Q<r)throw Error("invalid exponent, negatives unsupported");if(Q===r)return $.ONE;if(Q===a)return J;let Y=$.ONE,G=J;while(Q>r){if(Q&a)Y=$.mul(Y,G);G=$.sqr(G),Q>>=a}return Y}function zJ($,J,Q=!1){let Y=Array(J.length).fill(Q?$.ZERO:void 0),G=J.reduce((K,M,X)=>{if($.is0(M))return K;return Y[X]=K,$.mul(K,M)},$.ONE),Z=$.inv(G);return J.reduceRight((K,M,X)=>{if($.is0(M))return K;return Y[X]=$.mul(K,Y[X]),$.mul(K,M)},Z),Y}function z8($,J){let Q=($.ORDER-a)/m0,Y=$.pow(J,Q),G=$.eql(Y,$.ONE),Z=$.eql(Y,$.ZERO),K=$.eql(Y,$.neg($.ONE));if(!G&&!Z&&!K)throw Error("invalid Legendre symbol result");return G?1:Z?0:-1}function NJ($,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 D$($,J,Q=!1,Y={}){if($<=r)throw Error("invalid field: expected ORDER > 0, got "+$);let{nBitLength:G,nByteLength:Z}=NJ($,J);if(Z>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let K,M=Object.freeze({ORDER:$,isLE:Q,BITS:G,BYTES:Z,MASK:v0(G),ZERO:r,ONE:a,create:(X)=>o(X,$),isValid:(X)=>{if(typeof X!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof X);return r<=X&&X<$},is0:(X)=>X===r,isOdd:(X)=>(X&a)===a,neg:(X)=>o(-X,$),eql:(X,q)=>X===q,sqr:(X)=>o(X*X,$),add:(X,q)=>o(X+q,$),sub:(X,q)=>o(X-q,$),mul:(X,q)=>o(X*q,$),pow:(X,q)=>CQ(M,X,q),div:(X,q)=>o(X*g$(q,$),$),sqrN:(X)=>X*X,addN:(X,q)=>X+q,subN:(X,q)=>X-q,mulN:(X,q)=>X*q,inv:(X)=>g$(X,$),sqrt:Y.sqrt||((X)=>{if(!K)K=LQ($);return K(M,X)}),toBytes:(X)=>Q?WJ(X,Z):g0(X,Z),fromBytes:(X)=>{if(X.length!==Z)throw Error("Field.fromBytes: expected "+Z+" bytes, got "+X.length);return Q?qJ(X):V0(X)},invertBatch:(X)=>zJ(M,X),cmov:(X,q,W)=>W?q:X});return Object.freeze(M)}function R8($){if(typeof $!=="bigint")throw Error("field order must be bigint");let J=$.toString(2).length;return Math.ceil(J/8)}function VJ($){let J=R8($);return J+Math.ceil(J/2)}function B8($,J,Q=!1){let Y=$.length,G=R8(J),Z=VJ(J);if(Y<16||Y<Z||Y>1024)throw Error("expected "+Z+"-1024 bytes of input, got "+Y);let K=Q?qJ($):V0($),M=o(K,J-a)+a;return Q?WJ(M,G):g0(M,G)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var L8=BigInt(0),LJ=BigInt(1);function DJ($,J){let Q=J.negate();return $?Q:J}function C8($,J){if(!Number.isSafeInteger($)||$<=0||$>J)throw Error("invalid window size, expected [1.."+J+"], got W="+$)}function OJ($,J){C8($,J);let Q=Math.ceil(J/$)+1,Y=2**($-1),G=2**$,Z=v0($),K=BigInt($);return{windows:Q,windowSize:Y,mask:Z,maxNumber:G,shiftBy:K}}function P8($,J,Q){let{windowSize:Y,mask:G,maxNumber:Z,shiftBy:K}=Q,M=Number($&G),X=$>>K;if(M>Y)M-=Z,X+=LJ;let q=J*Y,W=q+Math.abs(M)-1,N=M===0,V=M<0,O=J%2!==0;return{nextN:X,offset:W,isZero:N,isNeg:V,isNegF:O,offsetF:q}}function HQ($,J){if(!Array.isArray($))throw Error("array expected");$.forEach((Q,Y)=>{if(!(Q instanceof J))throw Error("invalid point at index "+Y)})}function IQ($,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 RJ=new WeakMap,H8=new WeakMap;function BJ($){return H8.get($)||1}function I8($,J){return{constTimeNegate:DJ,hasPrecomputes(Q){return BJ(Q)!==1},unsafeLadder(Q,Y,G=$.ZERO){let Z=Q;while(Y>L8){if(Y&LJ)G=G.add(Z);Z=Z.double(),Y>>=LJ}return G},precomputeWindow(Q,Y){let{windows:G,windowSize:Z}=OJ(Y,J),K=[],M=Q,X=M;for(let q=0;q<G;q++){X=M,K.push(X);for(let W=1;W<Z;W++)X=X.add(M),K.push(X);M=X.double()}return K},wNAF(Q,Y,G){let{ZERO:Z,BASE:K}=$,M=OJ(Q,J);for(let X=0;X<M.windows;X++){let{nextN:q,offset:W,isZero:N,isNeg:V,isNegF:O,offsetF:P}=P8(G,X,M);if(G=q,N)K=K.add(DJ(O,Y[P]));else Z=Z.add(DJ(V,Y[W]))}return{p:Z,f:K}},wNAFUnsafe(Q,Y,G,Z=$.ZERO){let K=OJ(Q,J);for(let M=0;M<K.windows;M++){if(G===L8)break;let{nextN:X,offset:q,isZero:W,isNeg:N}=P8(G,M,K);if(G=X,W)continue;else{let V=Y[q];Z=Z.add(N?V.negate():V)}}return Z},getPrecomputes(Q,Y,G){let Z=RJ.get(Y);if(!Z){if(Z=this.precomputeWindow(Y,Q),Q!==1)RJ.set(Y,G(Z))}return Z},wNAFCached(Q,Y,G){let Z=BJ(Q);return this.wNAF(Z,this.getPrecomputes(Z,Q,G),Y)},wNAFCachedUnsafe(Q,Y,G,Z){let K=BJ(Q);if(K===1)return this.unsafeLadder(Q,Y,Z);return this.wNAFUnsafe(K,this.getPrecomputes(K,Q,G),Y,Z)},setWindowSize(Q,Y){C8(Y,J),H8.set(Q,Y),RJ.delete(Q)}}}function S8($,J,Q,Y){HQ(Q,$),IQ(Y,J);let G=Q.length,Z=Y.length;if(G!==Z)throw Error("arrays of points and scalars must have equal length");let K=$.ZERO,M=j8(BigInt(G)),X=1;if(M>12)X=M-3;else if(M>4)X=M-2;else if(M>0)X=2;let q=v0(X),W=Array(Number(q)+1).fill(K),N=Math.floor((J.BITS-1)/X)*X,V=K;for(let O=N;O>=0;O-=X){W.fill(K);for(let D=0;D<Z;D++){let k=Y[D],_=Number(k>>BigInt(O)&q);W[_]=W[_].add(Q[D])}let P=K;for(let D=W.length-1,k=K;D>0;D--)k=k.add(W[D]),P=P.add(k);if(V=V.add(P),O!==0)for(let D=0;D<X;D++)V=V.double()}return V}function PJ($){return UJ($.Fp),h0($,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...NJ($.n,$.nBitLength),...$,...{p:$.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function _8($){if($.lowS!==void 0)e0("lowS",$.lowS);if($.prehash!==void 0)e0("prehash",$.prehash)}function SQ($){let J=PJ($);h0(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 T8 extends Error{constructor($=""){super($)}}var D0={Err:T8,_tlv:{encode:($,J)=>{let{Err:Q}=D0;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=z$(Y);if(G.length/2&128)throw new Q("tlv.encode: long form length too big");let Z=Y>127?z$(G.length/2|128):"";return z$($)+Z+G+J},decode($,J){let{Err:Q}=D0,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++],Z=!!(G&128),K=0;if(!Z)K=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=J.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)K=K<<8|W;if(Y+=X,K<128)throw new Q("tlv.decode(long): not minimal encoding")}let M=J.subarray(Y,Y+K);if(M.length!==K)throw new Q("tlv.decode: wrong value length");return{v:M,l:J.subarray(Y+K)}}},_int:{encode($){let{Err:J}=D0;if($<O0)throw new J("integer: negative integers are not allowed");let Q=z$($);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}=D0;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 V0($)}},toSig($){let{Err:J,_int:Q,_tlv:Y}=D0,G=J0("signature",$),{v:Z,l:K}=Y.decode(48,G);if(K.length)throw new J("invalid signature: left bytes after parsing");let{v:M,l:X}=Y.decode(2,Z),{v:q,l:W}=Y.decode(2,X);if(W.length)throw new J("invalid signature: left bytes after parsing");return{r:Q.decode(M),s:Q.decode(q)}},hexFromSig($){let{_tlv:J,_int:Q}=D0,Y=J.encode(2,Q.encode($.r)),G=J.encode(2,Q.encode($.s)),Z=Y+G;return J.encode(48,Z)}};function CJ($,J){return $$(g0($,J))}var O0=BigInt(0),p=BigInt(1),EG=BigInt(2),HJ=BigInt(3),_Q=BigInt(4);function TQ($){let J=SQ($),{Fp:Q}=J,Y=D$(J.n,J.nBitLength),G=J.toBytes||((j,U,L)=>{let C=U.toAffine();return V$(Uint8Array.from([4]),Q.toBytes(C.x),Q.toBytes(C.y))}),Z=J.fromBytes||((j)=>{let U=j.subarray(1),L=Q.fromBytes(U.subarray(0,Q.BYTES)),C=Q.fromBytes(U.subarray(Q.BYTES,2*Q.BYTES));return{x:L,y:C}});function K(j){let{a:U,b:L}=J,C=Q.sqr(j),w=Q.mul(C,j);return Q.add(Q.add(w,Q.mul(j,U)),L)}function M(j,U){let L=Q.sqr(U),C=K(j);return Q.eql(L,C)}if(!M(J.Gx,J.Gy))throw Error("bad curve params: generator point");let X=Q.mul(Q.pow(J.a,HJ),_Q),q=Q.mul(Q.sqr(J.b),BigInt(27));if(Q.is0(Q.add(X,q)))throw Error("bad curve params: a or b");function W(j){return F$(j,p,J.n)}function N(j){let{allowedPrivateKeyLengths:U,nByteLength:L,wrapPrivateKey:C,n:w}=J;if(U&&typeof j!=="bigint"){if(r0(j))j=$$(j);if(typeof j!=="string"||!U.includes(j.length))throw Error("invalid private key");j=j.padStart(L*2,"0")}let x;try{x=typeof j==="bigint"?j:V0(J0("private key",j,L))}catch(y){throw Error("invalid private key, expected hex or "+L+" bytes, got "+typeof j)}if(C)x=o(x,w);return f0("private key",x,p,w),x}function V(j){if(!(j instanceof D))throw Error("ProjectivePoint expected")}let O=jJ((j,U)=>{let{px:L,py:C,pz:w}=j;if(Q.eql(w,Q.ONE))return{x:L,y:C};let x=j.is0();if(U==null)U=x?Q.ONE:Q.inv(w);let y=Q.mul(L,U),T=Q.mul(C,U),A=Q.mul(w,U);if(x)return{x:Q.ZERO,y:Q.ZERO};if(!Q.eql(A,Q.ONE))throw Error("invZ was invalid");return{x:y,y:T}}),P=jJ((j)=>{if(j.is0()){if(J.allowInfinityPoint&&!Q.is0(j.py))return;throw Error("bad point: ZERO")}let{x:U,y:L}=j.toAffine();if(!Q.isValid(U)||!Q.isValid(L))throw Error("bad point: x or y not FE");if(!M(U,L))throw Error("bad point: equation left != right");if(!j.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});class D{constructor(j,U,L){if(j==null||!Q.isValid(j))throw Error("x required");if(U==null||!Q.isValid(U)||Q.is0(U))throw Error("y required");if(L==null||!Q.isValid(L))throw Error("z required");this.px=j,this.py=U,this.pz=L,Object.freeze(this)}static fromAffine(j){let{x:U,y:L}=j||{};if(!j||!Q.isValid(U)||!Q.isValid(L))throw Error("invalid affine point");if(j instanceof D)throw Error("projective point not allowed");let C=(w)=>Q.eql(w,Q.ZERO);if(C(U)&&C(L))return D.ZERO;return new D(U,L,Q.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(j){let U=zJ(Q,j.map((L)=>L.pz));return j.map((L,C)=>L.toAffine(U[C])).map(D.fromAffine)}static fromHex(j){let U=D.fromAffine(Z(J0("pointHex",j)));return U.assertValidity(),U}static fromPrivateKey(j){return D.BASE.multiply(N(j))}static msm(j,U){return S8(D,Y,j,U)}_setWindowSize(j){f.setWindowSize(this,j)}assertValidity(){P(this)}hasEvenY(){let{y:j}=this.toAffine();if(Q.isOdd)return!Q.isOdd(j);throw Error("Field doesn't support isOdd")}equals(j){V(j);let{px:U,py:L,pz:C}=this,{px:w,py:x,pz:y}=j,T=Q.eql(Q.mul(U,y),Q.mul(w,C)),A=Q.eql(Q.mul(L,y),Q.mul(x,C));return T&&A}negate(){return new D(this.px,Q.neg(this.py),this.pz)}double(){let{a:j,b:U}=J,L=Q.mul(U,HJ),{px:C,py:w,pz:x}=this,y=Q.ZERO,T=Q.ZERO,A=Q.ZERO,E=Q.mul(C,C),c=Q.mul(w,w),v=Q.mul(x,x),z=Q.mul(C,w);return z=Q.add(z,z),A=Q.mul(C,x),A=Q.add(A,A),y=Q.mul(j,A),T=Q.mul(L,v),T=Q.add(y,T),y=Q.sub(c,T),T=Q.add(c,T),T=Q.mul(y,T),y=Q.mul(z,y),A=Q.mul(L,A),v=Q.mul(j,v),z=Q.sub(E,v),z=Q.mul(j,z),z=Q.add(z,A),A=Q.add(E,E),E=Q.add(A,E),E=Q.add(E,v),E=Q.mul(E,z),T=Q.add(T,E),v=Q.mul(w,x),v=Q.add(v,v),E=Q.mul(v,z),y=Q.sub(y,E),A=Q.mul(v,c),A=Q.add(A,A),A=Q.add(A,A),new D(y,T,A)}add(j){V(j);let{px:U,py:L,pz:C}=this,{px:w,py:x,pz:y}=j,T=Q.ZERO,A=Q.ZERO,E=Q.ZERO,c=J.a,v=Q.mul(J.b,HJ),z=Q.mul(U,w),B=Q.mul(L,x),I=Q.mul(C,y),b=Q.add(U,L),S=Q.add(w,x);b=Q.mul(b,S),S=Q.add(z,B),b=Q.sub(b,S),S=Q.add(U,C);let R=Q.add(w,y);return S=Q.mul(S,R),R=Q.add(z,I),S=Q.sub(S,R),R=Q.add(L,C),T=Q.add(x,y),R=Q.mul(R,T),T=Q.add(B,I),R=Q.sub(R,T),E=Q.mul(c,S),T=Q.mul(v,I),E=Q.add(T,E),T=Q.sub(B,E),E=Q.add(B,E),A=Q.mul(T,E),B=Q.add(z,z),B=Q.add(B,z),I=Q.mul(c,I),S=Q.mul(v,S),B=Q.add(B,I),I=Q.sub(z,I),I=Q.mul(c,I),S=Q.add(S,I),z=Q.mul(B,S),A=Q.add(A,z),z=Q.mul(R,S),T=Q.mul(b,T),T=Q.sub(T,z),z=Q.mul(b,B),E=Q.mul(R,E),E=Q.add(E,z),new D(T,A,E)}subtract(j){return this.add(j.negate())}is0(){return this.equals(D.ZERO)}wNAF(j){return f.wNAFCached(this,j,D.normalizeZ)}multiplyUnsafe(j){let{endo:U,n:L}=J;f0("scalar",j,O0,L);let C=D.ZERO;if(j===O0)return C;if(this.is0()||j===p)return this;if(!U||f.hasPrecomputes(this))return f.wNAFCachedUnsafe(this,j,D.normalizeZ);let{k1neg:w,k1:x,k2neg:y,k2:T}=U.splitScalar(j),A=C,E=C,c=this;while(x>O0||T>O0){if(x&p)A=A.add(c);if(T&p)E=E.add(c);c=c.double(),x>>=p,T>>=p}if(w)A=A.negate();if(y)E=E.negate();return E=new D(Q.mul(E.px,U.beta),E.py,E.pz),A.add(E)}multiply(j){let{endo:U,n:L}=J;f0("scalar",j,p,L);let C,w;if(U){let{k1neg:x,k1:y,k2neg:T,k2:A}=U.splitScalar(j),{p:E,f:c}=this.wNAF(y),{p:v,f:z}=this.wNAF(A);E=f.constTimeNegate(x,E),v=f.constTimeNegate(T,v),v=new D(Q.mul(v.px,U.beta),v.py,v.pz),C=E.add(v),w=c.add(z)}else{let{p:x,f:y}=this.wNAF(j);C=x,w=y}return D.normalizeZ([C,w])[0]}multiplyAndAddUnsafe(j,U,L){let C=D.BASE,w=(y,T)=>T===O0||T===p||!y.equals(C)?y.multiplyUnsafe(T):y.multiply(T),x=w(this,U).add(w(j,L));return x.is0()?void 0:x}toAffine(j){return O(this,j)}isTorsionFree(){let{h:j,isTorsionFree:U}=J;if(j===p)return!0;if(U)return U(D,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:j,clearCofactor:U}=J;if(j===p)return this;if(U)return U(D,this);return this.multiplyUnsafe(J.h)}toRawBytes(j=!0){return e0("isCompressed",j),this.assertValidity(),G(D,this,j)}toHex(j=!0){return e0("isCompressed",j),$$(this.toRawBytes(j))}}D.BASE=new D(J.Gx,J.Gy,Q.ONE),D.ZERO=new D(Q.ZERO,Q.ONE,Q.ZERO);let{endo:k,nBitLength:_}=J,f=I8(D,k?Math.ceil(_/2):_);return{CURVE:J,ProjectivePoint:D,normPrivateKeyToScalar:N,weierstrassEquation:K,isWithinCurveOrder:W}}function xQ($){let J=PJ($);return h0(J,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...J})}function x8($){let J=xQ($),{Fp:Q,n:Y,nByteLength:G,nBitLength:Z}=J,K=Q.BYTES+1,M=2*Q.BYTES+1;function X(z){return o(z,Y)}function q(z){return g$(z,Y)}let{ProjectivePoint:W,normPrivateKeyToScalar:N,weierstrassEquation:V,isWithinCurveOrder:O}=TQ({...J,toBytes(z,B,I){let b=B.toAffine(),S=Q.toBytes(b.x),R=V$;if(e0("isCompressed",I),I)return R(Uint8Array.from([B.hasEvenY()?2:3]),S);else return R(Uint8Array.from([4]),S,Q.toBytes(b.y))},fromBytes(z){let B=z.length,I=z[0],b=z.subarray(1);if(B===K&&(I===2||I===3)){let S=V0(b);if(!F$(S,p,Q.ORDER))throw Error("Point is not on curve");let R=V(S),F;try{F=Q.sqrt(R)}catch(e){let $0=e instanceof Error?": "+e.message:"";throw Error("Point is not on curve"+$0)}let h=(F&p)===p;if((I&1)===1!==h)F=Q.neg(F);return{x:S,y:F}}else if(B===M&&I===4){let S=Q.fromBytes(b.subarray(0,Q.BYTES)),R=Q.fromBytes(b.subarray(Q.BYTES,2*Q.BYTES));return{x:S,y:R}}else{let S=K,R=M;throw Error("invalid Point, expected length of "+S+", or uncompressed "+R+", got "+B)}}});function P(z){let B=Y>>p;return z>B}function D(z){return P(z)?X(-z):z}let k=(z,B,I)=>V0(z.slice(B,I));class _{constructor(z,B,I){if(f0("r",z,p,Y),f0("s",B,p,Y),this.r=z,this.s=B,I!=null)this.recovery=I;Object.freeze(this)}static fromCompact(z){let B=G;return z=J0("compactSignature",z,B*2),new _(k(z,0,B),k(z,B,2*B))}static fromDER(z){let{r:B,s:I}=D0.toSig(J0("DER",z));return new _(B,I)}assertValidity(){}addRecoveryBit(z){return new _(this.r,this.s,z)}recoverPublicKey(z){let{r:B,s:I,recovery:b}=this,S=w(J0("msgHash",z));if(b==null||![0,1,2,3].includes(b))throw Error("recovery id invalid");let R=b===2||b===3?B+J.n:B;if(R>=Q.ORDER)throw Error("recovery id 2 or 3 invalid");let F=(b&1)===0?"02":"03",h=W.fromHex(F+CJ(R,Q.BYTES)),l=q(R),e=X(-S*l),$0=X(I*l),R0=W.BASE.multiplyAndAddUnsafe(h,e,$0);if(!R0)throw Error("point at infinify");return R0.assertValidity(),R0}hasHighS(){return P(this.s)}normalizeS(){return this.hasHighS()?new _(this.r,X(-this.s),this.recovery):this}toDERRawBytes(){return N$(this.toDERHex())}toDERHex(){return D0.hexFromSig(this)}toCompactRawBytes(){return N$(this.toCompactHex())}toCompactHex(){let z=G;return CJ(this.r,z)+CJ(this.s,z)}}let f={isValidPrivateKey(z){try{return N(z),!0}catch(B){return!1}},normPrivateKeyToScalar:N,randomPrivateKey:()=>{let z=VJ(J.n);return B8(J.randomBytes(z),J.n)},precompute(z=8,B=W.BASE){return B._setWindowSize(z),B.multiply(BigInt(3)),B}};function j(z,B=!0){return W.fromPrivateKey(z).toRawBytes(B)}function U(z){if(typeof z==="bigint")return!1;if(z instanceof W)return!0;let I=J0("key",z).length,b=Q.BYTES,S=b+1,R=2*b+1;if(J.allowedPrivateKeyLengths||G===S)return;else return I===S||I===R}function L(z,B,I=!0){if(U(z)===!0)throw Error("first arg must be private key");if(U(B)===!1)throw Error("second arg must be public key");return W.fromHex(B).multiply(N(z)).toRawBytes(I)}let C=J.bits2int||function(z){if(z.length>8192)throw Error("input is too large");let B=V0(z),I=z.length*8-Z;return I>0?B>>BigInt(I):B},w=J.bits2int_modN||function(z){return X(C(z))},x=v0(Z);function y(z){return f0("num < 2^"+Z,z,O0,x),g0(z,G)}function T(z,B,I=A){if(["recovered","canonical"].some((S0)=>(S0 in I)))throw Error("sign() legacy options not supported");let{hash:b,randomBytes:S}=J,{lowS:R,prehash:F,extraEntropy:h}=I;if(R==null)R=!0;if(z=J0("msgHash",z),_8(I),F)z=J0("prehashed msgHash",b(z));let l=w(z),e=N(B),$0=[y(e),y(l)];if(h!=null&&h!==!1){let S0=h===!0?S(Q.BYTES):h;$0.push(J0("extraEntropy",S0))}let R0=V$(...$0),R$=l;function m$(S0){let c0=C(S0);if(!O(c0))return;let u$=q(c0),J$=W.BASE.multiply(c0).toAffine(),_0=X(J$.x);if(_0===O0)return;let Q$=X(u$*X(R$+_0*e));if(Q$===O0)return;let l0=(J$.x===_0?0:2)|Number(J$.y&p),bJ=Q$;if(R&&P(Q$))bJ=D(Q$),l0^=1;return new _(_0,bJ,l0)}return{seed:R0,k2sig:m$}}let A={lowS:J.lowS,prehash:!1},E={lowS:J.lowS,prehash:!1};function c(z,B,I=A){let{seed:b,k2sig:S}=T(z,B,I),R=J;return U8(R.hash.outputLen,R.nByteLength,R.hmac)(b,S)}W.BASE._setWindowSize(8);function v(z,B,I,b=E){let S=z;B=J0("msgHash",B),I=J0("publicKey",I);let{lowS:R,prehash:F,format:h}=b;if(_8(b),"strict"in b)throw Error("options.strict was renamed to lowS");if(h!==void 0&&h!=="compact"&&h!=="der")throw Error("format must be compact or der");let l=typeof S==="string"||r0(S),e=!l&&!h&&typeof S==="object"&&S!==null&&typeof S.r==="bigint"&&typeof S.s==="bigint";if(!l&&!e)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");let $0=void 0,R0;try{if(e)$0=new _(S.r,S.s);if(l){try{if(h!=="compact")$0=_.fromDER(S)}catch(l0){if(!(l0 instanceof D0.Err))throw l0}if(!$0&&h!=="der")$0=_.fromCompact(S)}R0=W.fromHex(I)}catch(l0){return!1}if(!$0)return!1;if(R&&$0.hasHighS())return!1;if(F)B=J.hash(B);let{r:R$,s:m$}=$0,S0=w(B),c0=q(m$),u$=X(S0*c0),J$=X(R$*c0),_0=W.BASE.multiplyAndAddUnsafe(R0,u$,J$)?.toAffine();if(!_0)return!1;return X(_0.x)===R$}return{CURVE:J,getPublicKey:j,getSharedSecret:L,sign:c,verify:v,ProjectivePoint:W,Signature:_,utils:f}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function EQ($){return{hash:$,hmac:(J,...Q)=>YJ($,J,dJ(...Q)),randomBytes:pJ}}function E8($,J){let Q=(Y)=>x8({...$,...EQ(Y)});return{...Q(J),create:Q}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var w8=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),k8=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),kQ=BigInt(0),AQ=BigInt(1),IJ=BigInt(2),A8=($,J)=>($+J/IJ)/J;function wQ($){let J=w8,Q=BigInt(3),Y=BigInt(6),G=BigInt(11),Z=BigInt(22),K=BigInt(23),M=BigInt(44),X=BigInt(88),q=$*$*$%J,W=q*q*$%J,N=G0(W,Q,J)*W%J,V=G0(N,Q,J)*W%J,O=G0(V,IJ,J)*q%J,P=G0(O,G,J)*O%J,D=G0(P,Z,J)*P%J,k=G0(D,M,J)*D%J,_=G0(k,X,J)*k%J,f=G0(_,M,J)*D%J,j=G0(f,Q,J)*W%J,U=G0(j,K,J)*P%J,L=G0(U,Y,J)*q%J,C=G0(L,IJ,J);if(!SJ.eql(SJ.sqr(C),$))throw Error("Cannot find square root");return C}var SJ=D$(w8,void 0,void 0,{sqrt:wQ}),_J=E8({a:kQ,b:BigInt(7),Fp:SJ,n:k8,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:($)=>{let J=k8,Q=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-AQ*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),G=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),Z=Q,K=BigInt("0x100000000000000000000000000000000"),M=A8(Z*$,J),X=A8(-Y*$,J),q=o($-M*Q-X*G,J),W=o(-M*Y-X*Z,J),N=q>K,V=W>K;if(N)q=J-q;if(V)W=J-W;if(q>K||W>K)throw Error("splitScalar: Endomorphism failed, k="+$);return{k1neg:N,k1:q,k2neg:V,k2:W}}}},K8);function f$(){let $=_J.utils.randomPrivateKey();return"0x"+Buffer.from($).toString("hex")}function v$($){let J=$.startsWith("0x")?$.slice(2):$,Q=Buffer.from(J,"hex"),Y=_J.getPublicKey(Q,!1),Z=p0(Y.slice(1)).slice(-20),K="0x"+Buffer.from(Z).toString("hex");return P0(K)}function h$($){let J;if(typeof $==="string"){let Y=$.startsWith("0x")?$.slice(2):$;J=Buffer.from(Y,"hex")}else J=$;let Q=p0(J);return"0x"+Buffer.from(Q).toString("hex")}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,Z){let K=Number(Q)/1000000000000000000,M=Number(Y)/1000000000000000000;return new u(`Insufficient balance for ${$} invitation(s). Can only afford ${J} invitation(s). Requested: ${K.toFixed(6)} CRC, Available: ${M.toFixed(6)} CRC.`,{code:"INVITATION_INSUFFICIENT_BALANCE",source:"VALIDATION",context:{from:G,to:Z,requestedInvites:$,availableInvites:J,requested:Q.toString(),available:Y.toString(),requestedCrc:K,availableCrc:M}})}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 y8=[];for(let $=0;$<256;$++)y8[$]=$.toString(16).padStart(2,"0");function O$($){let J="0x";for(let Q=0;Q<$.length;Q++)J+=y8[$[Q]];return J}function b8($){let J=new Uint8Array($.length*2);return $.forEach((Q,Y)=>{let G=Q>>8,Z=Q&255,K=2*Y;J[K]=G,J[K+1]=Z}),O$(J)}function F8($,J,Q){let Y=new Set([J.toLowerCase(),Q.toLowerCase()]);$.forEach((K)=>{Y.add(K.from.toLowerCase()),Y.add(K.to.toLowerCase()),Y.add(K.tokenOwner.toLowerCase())});let G=[...Y].sort((K,M)=>{let X=BigInt(K),q=BigInt(M),W=X<q,N=X>q;return W?-1:N?1:0}),Z={};return G.forEach((K,M)=>{Z[K]=M}),{sorted:G,idx:Z}}function yQ($,J){let Q=new Set,Y=[],G=null;if($.forEach((Z,K)=>{let M=Z.from.toLowerCase(),X=Z.to.toLowerCase();if(M===J&&X===J)G=K;else if(X===J)Y.push(K)}),G!==null)Q.add(G);else Y.forEach((Z)=>Q.add(Z));return Q}function TJ($,J,Q,Y){let G=$.toLowerCase(),Z=J.toLowerCase(),{sorted:K,idx:M}=F8(Y,G,Z),X=yQ(Y,Z),q=Y.map((_,f)=>{return{streamSinkId:X.has(f)?1:0,amount:_.value}});if(X.size===0)throw Error(`No terminal edges detected. Flow must have at least one edge delivering to receiver ${Z}`);let W=Array.from(X),N=[{sourceCoordinate:M[G],flowEdgeIds:W,data:new Uint8Array(0)}],V=[];Y.forEach((_)=>{V.push(M[_.tokenOwner.toLowerCase()]),V.push(M[_.from.toLowerCase()]),V.push(M[_.to.toLowerCase()])});let O=b8(V),P=BigInt(Q),D=q.filter((_)=>_.streamSinkId===1).reduce((_,f)=>_+BigInt(f.amount.toString()),BigInt(0));if(D!==P)throw Error(`Terminal sum ${D} does not equal expected ${P}`);return{flowVertices:K,flowEdges:q,streams:N,packedCoordinates:O,sourceCoordinate:M[G]}}function xJ($,J){let Q=$.streams.map((Y)=>({sourceCoordinate:Y.sourceCoordinate,flowEdgeIds:Y.flowEdgeIds,data:Y.data instanceof Uint8Array?O$(Y.data):Y.data}));if(J&&Q.length>0)Q[0].data=J instanceof Uint8Array?O$(J):J;return Q}async function EJ($,J,Q){let Y=new Map,G=new Set;return Q.transfers.forEach((M)=>{if($.toLowerCase()===M.from.toLowerCase())G.add(M.tokenOwner.toLowerCase())}),(await new k$(J).token.getTokenInfoBatch(Array.from(G))).forEach((M)=>{if(M.isWrapped&&!M.isInflationary)M.tokenType="CrcV2_ERC20WrapperDeployed_Demurraged";Y.set(M.tokenAddress.toLowerCase(),M)}),Y}function kJ($,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 AJ($,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 t extends G${constructor($,J){super("TransferError",$,{...J,source:J?.source||"TRANSFERS"})}static noPathFound($,J,Q){return new t(`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,Z=Number(J)/1000000000000000000;return new t(`Insufficient balance for transfer. Requested: ${G.toFixed(6)} CRC, Available: ${Z.toFixed(6)} CRC.`,{code:"TRANSFER_INSUFFICIENT_BALANCE",source:"VALIDATION",context:{from:Q,to:Y,requested:$.toString(),available:J.toString(),requestedCrc:G,availableCrc:Z}})}static wrappedTokensRequired(){return new t("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 t(`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 t(`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 t(`Transfer path is empty for route from ${$} to ${J}`,{code:"TRANSFER_EMPTY_PATH",source:"PATHFINDING",context:{from:$,to:J}})}}class u0{config;hubV2;liftERC20;rpcClient;pathfinder;balance;group;constructor($){this.config=$,this.hubV2=new C0({address:$.v2HubAddress,rpcUrl:$.circlesRpcUrl}),this.liftERC20=new A$({address:$.liftERC20Address,rpcUrl:$.circlesRpcUrl}),this.rpcClient=new B0($.circlesRpcUrl),this.pathfinder=new U0(this.rpcClient),this.balance=new y0(this.rpcClient),this.group=new F0(this.rpcClient)}async buildFlowMatrixTx($,J,Q,Y,G=!1){let Z=$.toLowerCase(),K=J.toLowerCase();if(!Q.transfers||Q.transfers.length===0)throw t.noPathFound(Z,K);let M={...Q};if(G&&Y?.toTokens?.length===1){let f=Y.toTokens[0].toLowerCase();if(Q.maxFlow>0n)M.transfers.push({from:K,to:K,tokenOwner:f,value:Q.maxFlow})}let X=await EJ(Z,this.config.circlesRpcUrl,M),q=kJ(M,X),W=Object.keys(q).length>0;if(W&&!Y?.useWrappedBalances)throw t.wrappedTokensRequired();let N=[],V=[];if(W){let f=await this._getTokenBalanceMap(Z),j=this._createDemurragedUnwrapCalls(q),{unwrapCalls:U,wrapCalls:L}=this._createInflationaryUnwrapAndWrapCalls(q,X,f);N=[...j,...U],V=L,M=AJ(M,X)}let O=TJ(Z,K,M.maxFlow,M.transfers),P=xJ(O,Y?.txData),D=this.hubV2.operateFlowMatrix(O.flowVertices,O.flowEdges,P,O.packedCoordinates),k=!1;try{k=await this.hubV2.isApprovedForAll(Z,Z)}catch(f){console.warn("Failed to check approval status, including approval transaction:",f)}return[...k?[]:[this.hubV2.setApprovalForAll(Z,!0)],...N,D,...V]}async constructAdvancedTransfer($,J,Q,Y,G=!1){let Z=$.toLowerCase(),K=J.toLowerCase(),M=BigInt(Q);if(Z===K&&Y?.fromTokens?.length===1&&Y?.toTokens?.length===1){let O=Y.fromTokens[0],P=Y.toTokens[0],[D,k]=await Promise.all([this.liftERC20.erc20Circles(0,P),this.liftERC20.erc20Circles(1,P)]);if(O.toLowerCase()===D.toLowerCase()&&D!==E$){let f=new o0({address:O,rpcUrl:this.config.circlesRpcUrl}).unwrap(M);return[{to:f.to,data:f.data,value:f.value??0n}]}if(O.toLowerCase()===k.toLowerCase()&&k!==E$){let _=new a0({address:O,rpcUrl:this.config.circlesRpcUrl}),f=i.attoCirclesToAttoStaticCircles(M),j=_.unwrap(f);return[{to:j.to,data:j.data,value:j.value??0n}]}}let X=this._truncateToSixDecimals(M),q=await this._getDefaultTokenExcludeList(K,Y?.excludeFromTokens),{...W}=Y||{},N={...W,...q?{excludeFromTokens:q}:{}},V=await this.pathfinder.findPath({from:Z,to:K,targetFlow:X,...N});if(!V.transfers||V.transfers.length===0)throw t.noPathFound(Z,K);if(V.maxFlow<X)throw t.insufficientBalance(X,V.maxFlow,Z,K);return this.buildFlowMatrixTx(Z,K,V,Y,G)}async constructReplenish($,J,Q,Y){let G=$.toLowerCase(),Z=J.toLowerCase(),K=(Y||$).toLowerCase(),M=BigInt(Q),q=(await this.balance.getTokenBalances(G)).filter((R)=>R.tokenOwner.toLowerCase()===Z),W=0n,N=0n,V=0n,O=null,P=null;for(let R of q)if(R.isWrapped)if(R.tokenType.includes("Demurrage"))N=BigInt(R.attoCircles),O=R.tokenAddress;else V=BigInt(R.staticAttoCircles),P=R.tokenAddress;else W=BigInt(R.attoCircles);let D=W+N+i.attoStaticCirclesToAttoCircles(V),k=[];if(W>=M){if(console.log(`✓ Already have ${Number(W)/1000000000000000000} CRC unwrapped (target: ${Number(M)/1000000000000000000} CRC). No replenish needed.`),K!==G){let R=await this.hubV2.toTokenId(Z),F=this.hubV2.safeTransferFrom(G,K,R,M);k.push({to:F.to,data:F.data,value:F.value??0n})}return k}let _=M-W;if(console.log(`Current unwrapped: ${Number(W)/1000000000000000000} CRC`),console.log(`Target amount: ${Number(M)/1000000000000000000} CRC`),console.log(`Need to acquire: ${Number(_)/1000000000000000000} CRC`),D>=M){let R=_;if(N>0n&&O&&R>0n){let F=R>N?N:R,l=new o0({address:O,rpcUrl:this.config.circlesRpcUrl}).unwrap(F);k.push({to:l.to,data:l.data,value:l.value??0n}),R-=F}if(V>0n&&P&&R>0n){let F=i.attoCirclesToAttoStaticCircles(R),h=F>V?V:F,e=new a0({address:P,rpcUrl:this.config.circlesRpcUrl}).unwrap(h);k.push({to:e.to,data:e.data,value:e.value??0n})}if(K!==G){let F=await this.hubV2.toTokenId(Z),h=this.hubV2.safeTransferFrom(G,K,F,M);k.push({to:h.to,data:h.data,value:h.value??0n})}return k}let j=!await this.hubV2.isTrusted(G,Z),U=BigInt(Math.floor(Date.now()/1000)+31536000),L=i.truncateToInt64(_),C=_%i.FACTOR_1E12!==0n,w=i.blowUpToBigInt(C?L+1n:L),x;try{x=await this.pathfinder.findPath({from:G,to:K,targetFlow:w,toTokens:[Z],useWrappedBalances:!0,simulatedTrusts:j?[{truster:G,trustee:Z}]:void 0})}catch(R){let F=Number(D)/1000000000000000000,h=Number(M)/1000000000000000000,l=Number(_)/1000000000000000000;throw new t(`Insufficient tokens to replenish. Target: ${h.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(_-(D-W))/1000000000000000000).toFixed(6)} CRC.`,{code:"REPLENISH_INSUFFICIENT_TOKENS",source:"VALIDATION",context:{from:G,tokenId:Z,target:M.toString(),unwrapped:W.toString(),deficit:_.toString(),available:D.toString(),targetCrc:h,unwrappedCrc:Number(W)/1000000000000000000,deficitCrc:l,availableCrc:F}})}if(!x.transfers||x.transfers.length===0)throw t.noPathFound(G,K,`No path to acquire token ${Z}`);if(x.maxFlow<w){let R=Number(x.maxFlow)/1000000000000000000,F=Number(w)/1000000000000000000;throw new t(`Pathfinder can only provide ${R.toFixed(6)} CRC of the ${F.toFixed(6)} CRC deficit needed for token ${Z}.`,{code:"REPLENISH_INSUFFICIENT_PATH_FLOW",source:"PATHFINDING",context:{from:G,tokenId:Z,deficit:w.toString(),pathFlow:x.maxFlow.toString(),deficitCrc:F,pathFlowCrc:R}})}if(j){let R=this.hubV2.trust(Z,U);k.push({to:R.to,data:R.data,value:R.value??0n})}let y=await EJ(G,this.config.circlesRpcUrl,x),T=kJ(x,y),A=Object.keys(T).length>0,E=[],c=[];if(A){let R=await this._getTokenBalanceMap(G),F=this._createDemurragedUnwrapCalls(T),{unwrapCalls:h,wrapCalls:l}=this._createInflationaryUnwrapAndWrapCalls(T,y,R);E=[...F,...h],c=l,x=AJ(x,y)}let v=TJ(G,K,x.maxFlow,x.transfers),z=xJ(v),B=this.hubV2.operateFlowMatrix(v.flowVertices,v.flowEdges,z,v.packedCoordinates),I={to:B.to,data:B.data,value:B.value??0n},b=!1;try{b=await this.hubV2.isApprovedForAll(G,G)}catch(R){console.warn("Failed to check approval status, including approval transaction:",R)}if(j){let R=this.hubV2.trust(Z,0n);c.push({to:R.to,data:R.data,value:R.value??0n})}let S=b?[]:[{to:this.hubV2.setApprovalForAll(G,!0).to,data:this.hubV2.setApprovalForAll(G,!0).data,value:0n}];return k.push(...S,...E,I,...c),k}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 K=new o0({address:Q,rpcUrl:this.config.circlesRpcUrl}).unwrap(Y);J.push({to:K.to,data:K.data,value:K.value??0n})}return J}_createInflationaryUnwrapAndWrapCalls($,J,Q){let Y=[],G=[];for(let[Z,[K,M]]of Object.entries($)){if(M!=="CrcV2_ERC20WrapperDeployed_Inflationary")continue;let X=J.get(Z.toLowerCase()),q=Q.get(Z.toLowerCase())||0n;if(q===0n)continue;let N=new a0({address:Z,rpcUrl:this.config.circlesRpcUrl}).unwrap(q);Y.push({to:N.to,data:N.data,value:N.value??0n});let V=X?.tokenOwner,O=i.attoStaticCirclesToAttoCircles(q)-K;if(O>0n){let P=this.hubV2.wrap(V,O,1);G.push({to:P.to,data:P.data,value:P.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 g8=n0;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 B0($.circlesRpcUrl),this.pathfinder=new U0(this.rpcClient),this.trust=new w0(this.rpcClient),this.token=new b0(this.rpcClient),this.hubV2=new C0({address:$.v2HubAddress,rpcUrl:$.circlesRpcUrl}),this.referralsModule=new t0({address:$.referralsModuleAddress,rpcUrl:$.circlesRpcUrl}),this.invitationFarm=new s0({address:$.invitationFarmAddress,rpcUrl:$.circlesRpcUrl}),this.invitationModuleContract=new y$({address:$.invitationModuleAddress,rpcUrl:$.circlesRpcUrl})}async ensureInviterSetup($){let J=$.toLowerCase(),Q=this.config.invitationModuleAddress,Y=[],G=new w$({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 Z=Y.address.toLowerCase()===Q,K=G.address.toLowerCase()===Q;if(Z&&!K)return-1;if(!Z&&K)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 Z=await this.ensureInviterSetup(Q),K=await this.getRealInviters(Q),M=[...Z];if(K.length>0){console.log("[generateInvite] Using STANDARD PATH (proxy inviters available)");let X=K[0].address,q=await this.findInvitePath(Q,X),W=await this.generateInviteData([Y],!1),V=await new u0(this.config).buildFlowMatrixTx(Q,this.config.invitationModuleAddress,q,{toTokens:[X],useWrappedBalances:!0,txData:S$(W)},!0);M.push(...V)}else{console.log("[generateInvite] Using FARM FALLBACK PATH (no proxy inviters available)");let X=new u0(this.config),q=await this.findFarmInvitePath(Q),W=await X.buildFlowMatrixTx(Q,A0,q,{toTokens:[n0],useWrappedBalances:!0},!0);M.push(...W);let N="0x20EcD8bDeb2F48d8a7c94E542aA4feC5790D9676",V=await this.invitationFarm.read("claimInvite",[],{from:N}),O=this.invitationFarm.claimInvite();M.push(O);let P=await this.invitationFarm.invitationModule(),D=Q0(["address"],[Y]),k=this.hubV2.safeTransferFrom(Q,P,V,d,D);M.push(k)}return M}async findInvitePath($,J){let Q=$.toLowerCase(),Y;if(J)Y=J.toLowerCase();else{let Z=await this.getRealInviters(Q);if(Z.length===0)throw u.noPathFound(Q,this.config.invitationModuleAddress);Y=Z[0].address}let G=await this.pathfinder.findPath({from:Q,to:this.config.invitationModuleAddress,targetFlow:d,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<d){let K=Number(G.maxFlow/d);throw u.insufficientBalance(1,K,d,G.maxFlow,Q,this.config.invitationModuleAddress)}return G}async findFarmInvitePath($){let J=$.toLowerCase(),Q=await this.pathfinder.findPath({from:J,to:A0,targetFlow:d,toTokens:[g8],useWrappedBalances:!0});if(!Q.transfers||Q.transfers.length===0)throw u.noPathFound(J,A0);if(Q.maxFlow<d){let G=Number(Q.maxFlow/d);throw u.insufficientBalance(1,G,d,Q.maxFlow,J,A0)}return Q}async getRealInviters($){let J=$.toLowerCase(),[Q,Y,G,Z,K]=await Promise.all([n0!=="0x0000000000000000000000000000000000000000"?this.trust.getTrusts(n0):Promise.resolve([]),this.trust.getTrustedBy(J),this.trust.getMutualTrusts(J),this.trust.getTrusts(this.config.invitationModuleAddress),this.trust.getMutualTrusts(this.config.invitationModuleAddress)]),M=new Set(Q.map((U)=>U.objectAvatar.toLowerCase())),X=new Set([...Y.map((U)=>U.objectAvatar.toLowerCase()),...G.map((U)=>U.objectAvatar.toLowerCase())]),q=new Set([...Z.map((U)=>U.objectAvatar.toLowerCase()),...K.map((U)=>U.objectAvatar.toLowerCase())]),N=[...[...X].filter((U)=>q.has(U)&&!M.has(U)),J];if(N.length===0)return[];let V=await this.pathfinder.findPath({from:J,to:this.config.invitationModuleAddress,useWrappedBalances:!0,targetFlow:M$,toTokens:N,simulatedTrusts:[{truster:this.config.invitationModuleAddress,trustee:J}]});if(!V.transfers||V.transfers.length===0)return[];let O=this.config.invitationModuleAddress.toLowerCase(),P=V.transfers.filter((U)=>U.to.toLowerCase()===O),D=[...new Set(P.map((U)=>U.tokenOwner.toLowerCase()))],k=await this.token.getTokenInfoBatch(D),_=new Map;for(let U of k){let L=U.tokenAddress??U.token;if(L&&U?.tokenOwner)_.set(L.toLowerCase(),U.tokenOwner.toLowerCase())}let f=new Map;for(let U of P){let L=U.tokenOwner.toLowerCase(),C=_.get(L)??L;f.set(C,(f.get(C)??0n)+U.value)}let j=[];for(let[U,L]of f.entries()){let C=Number(L/d);if(C>=1)j.push({address:U,possibleInvites:C})}return this.orderRealInviters(j,J)}async generateReferral($){let J=$.toLowerCase(),Q=f$(),Y=v$(Q),G=await this.ensureInviterSetup(J),Z=await this.getRealInviters(J),K=[...G];if(Z.length>0){console.log("[generateReferral] Using STANDARD PATH (proxy inviters available)");let M=new u0(this.config),X=await this.generateInviteData([Y],!0),q=Z[0].address,W=await this.findInvitePath(J,q),N=await M.buildFlowMatrixTx(J,this.config.invitationModuleAddress,W,{toTokens:[q],useWrappedBalances:!0,txData:S$(X)},!0);K.push(...N)}else{console.log("[generateReferral] Using FARM FALLBACK PATH (no proxy inviters available)");let M=new u0(this.config),X=await this.findFarmInvitePath(J),q=await M.buildFlowMatrixTx(J,A0,X,{toTokens:[g8],useWrappedBalances:!0},!0);K.push(...q);let W="0x20EcD8bDeb2F48d8a7c94E542aA4feC5790D9676",N=await this.invitationFarm.read("claimInvite",[],{from:W}),V=this.invitationFarm.claimInvite();K.push(V);let O=await this.invitationFarm.invitationModule(),P=this.referralsModule.createAccount(Y).data,D=Q0(["address","bytes"],[this.config.referralsModuleAddress,P]),k=this.hubV2.safeTransferFrom(J,O,N,d,D);K.push(k)}return{transactions:K,privateKey:Q}}async generateInviteData($,J=!0){if($.length===0)throw u.noAddressesProvided();if(!J)if($.length===1)return Q0(["address"],[$[0]]);else return Q0(["address[]"],[$]);if($.length===1){let Y=this.referralsModule.createAccount($[0]).data;return Q0(["address","bytes"],[this.config.referralsModuleAddress,Y])}else{let Y=this.referralsModule.createAccounts($).data;return Q0(["address","bytes"],[this.config.referralsModuleAddress,Y])}}computeAddress($){let Q=$.toLowerCase().replace("0x","").padStart(64,"0"),Y=o$.replace("0x","")+Q,G=h$("0x"+Y),Z="ff",K=n$.toLowerCase().replace("0x",""),M=G.replace("0x",""),X=a$.replace("0x",""),q="ff"+K+M+X,N="0x"+h$("0x"+q).slice(-40);return P0(N)}generateSecrets($){return Array.from({length:$},()=>{let J=f$(),Q=v$(J).toLowerCase();return{secret:J,signer:Q}})}}class FQ{referralsModuleAddress;invitations;invitationFarm;referralsModule;hubV2;constructor($){this.referralsModuleAddress=$.referralsModuleAddress,this.invitations=new wJ($),this.invitationFarm=new s0({address:$.invitationFarmAddress,rpcUrl:$.circlesRpcUrl}),this.referralsModule=new t0({address:$.referralsModuleAddress,rpcUrl:$.circlesRpcUrl}),this.hubV2=new C0({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 Z=this.invitations.generateSecrets(J),K=Z.map((W)=>W.signer),M=await this.invitationFarm.invitationModule(),X=Y?this.invitationFarm.claimInvite():this.invitationFarm.claimInvites(BigInt(J)),q=Y?this.buildReferralTransfer(Q,M,G[0],K[0]):this.buildBatchReferralTransfer(Q,M,G,K);return{referrals:Z,transactions:[X,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,Z=G===1,K=await this.simulateClaim(Q,G);if(!K.length)throw new u("No invitation IDs returned from claim",{code:"INVITATION_NO_IDS",source:"INVITATIONS",context:{inviter:Q,count:G}});let M=await this.invitationFarm.invitationModule(),X=Z?this.invitationFarm.claimInvite():this.invitationFarm.claimInvites(BigInt(G)),q=Z?this.buildInviteTransfer(Q,M,K[0],Y[0]):this.buildBatchInviteTransfer(Q,M,K,Y);return{invitees:Y,transactions:[X,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,Z=Q0(["address","bytes"],[this.referralsModuleAddress,G]);return this.hubV2.safeTransferFrom($,J,Q,d,Z)}buildBatchReferralTransfer($,J,Q,Y){let G=this.referralsModule.createAccounts(Y).data,Z=Q0(["address","bytes"],[this.referralsModuleAddress,G]),K=Q.map(()=>d);return this.hubV2.safeBatchTransferFrom($,J,Q,K,Z)}buildInviteTransfer($,J,Q,Y){let G=Q0(["address"],[Y]);return this.hubV2.safeTransferFrom($,J,Q,d,G)}buildBatchInviteTransfer($,J,Q,Y){let G=Q0(["address[]"],[Y]),Z=Q.map(()=>d);return this.hubV2.safeBatchTransferFrom($,J,Q,Z,G)}}class gQ{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 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 Error(Y.error||`Failed to store referral: ${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 Error(Q.error||`Failed to store batch: ${J.statusText}`)}return J.json()}async retrieve($){let J=await fetch(`${this.getBaseUrl()}/retrieve?key=${encodeURIComponent($)}`);if(J.status===410||J.ok)return J.json();let Q=await J.json().catch(()=>null),Y=Q?.error||`Failed to retrieve referral: ${J.statusText}`,G=Error(Y);throw G.status=J.status,G.body=Q,G}async listMine($){if(!this.getToken)throw Error("Authentication required to list referrals");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 Z=await G.json();throw Error(Z.error||`Failed to list referrals: ${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 Z=await G.json();throw Error(Z.error||`Failed to list referrals: ${G.statusText}`)}return G.json()}}class yJ extends Error{code;httpStatus;constructor($,J,Q){super($);this.code=J;this.httpStatus=Q;this.name="DispenseError"}}class q0 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 fQ{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 q0(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 q0(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 q0(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 q0(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 q0(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 q0(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 Z=await G.json();throw new q0(Z.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 q0(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 yJ(Q,Y,J.status)}return J.json()}}export{q0 as SessionError,gQ as Referrals,FQ as InviteFarm,wJ as Invitations,u as InvitationError,fQ as Distributions,yJ as DispenseError};
package/dist/types.d.ts CHANGED
@@ -12,6 +12,8 @@ export interface ReferralInfo {
12
12
  status: ReferralStatus;
13
13
  /** The Safe account address (if available) */
14
14
  accountAddress?: string;
15
+ /** Human-readable message, present on claimed (410) responses */
16
+ error?: string;
15
17
  }
16
18
  /**
17
19
  * Full referral record returned from my-referrals endpoint
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aboutcircles/sdk-invitations",
3
- "version": "0.1.26",
3
+ "version": "0.1.27",
4
4
  "description": "Circles Invitations Module SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",