@0xmonaco/mcp-server 0.7.0 → 0.7.1

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.
Files changed (2) hide show
  1. package/dist/bin.js +2 -2
  2. package/package.json +1 -1
package/dist/bin.js CHANGED
@@ -109,11 +109,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
109
109
  `:`[${Y[U]}\r
110
110
  ]`;continue}if(X+=Y[U],Y[U]==="\\")G=!0;else if(W&&Y[U]==="]")W=!1;else if(!W&&Y[U]==="[")W=!0}try{new RegExp(X)}catch{return console.warn(`Could not convert regex pattern at ${J.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),$.source}return X}function bO($,J){if(J.target==="openAi")console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");if(J.target==="openApi3"&&$.keyType?._def.typeName===$$.ZodEnum)return{type:"object",required:$.keyType._def.values,properties:$.keyType._def.values.reduce((Y,X)=>({...Y,[X]:B$($.valueType._def,{...J,currentPath:[...J.currentPath,"properties",X]})??E4(J)}),{}),additionalProperties:J.rejectedAdditionalProperties};let Q={type:"object",additionalProperties:B$($.valueType._def,{...J,currentPath:[...J.currentPath,"additionalProperties"]})??J.allowedAdditionalProperties};if(J.target==="openApi3")return Q;if($.keyType?._def.typeName===$$.ZodString&&$.keyType._def.checks?.length){let{type:Y,...X}=fO($.keyType._def,J);return{...Q,propertyNames:X}}else if($.keyType?._def.typeName===$$.ZodEnum)return{...Q,propertyNames:{enum:$.keyType._def.values}};else if($.keyType?._def.typeName===$$.ZodBranded&&$.keyType._def.type._def.typeName===$$.ZodString&&$.keyType._def.type._def.checks?.length){let{type:Y,...X}=xO($.keyType._def,J);return{...Q,propertyNames:X}}return Q}function Iv($,J){if(J.mapStrategy==="record")return bO($,J);let Q=B$($.keyType._def,{...J,currentPath:[...J.currentPath,"items","items","0"]})||E4(J),Y=B$($.valueType._def,{...J,currentPath:[...J.currentPath,"items","items","1"]})||E4(J);return{type:"array",maxItems:125,items:{type:"array",items:[Q,Y],minItems:2,maxItems:2}}}function Lv($){let J=$.values,Y=Object.keys($.values).filter((G)=>{return typeof J[J[G]]!=="number"}).map((G)=>J[G]),X=Array.from(new Set(Y.map((G)=>typeof G)));return{type:X.length===1?X[0]==="string"?"string":"number":["string","number"],enum:Y}}function Bv($){return $.target==="openAi"?void 0:{not:E4({...$,currentPath:[...$.currentPath,"not"]})}}function Zv($){return $.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var k7={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function jv($,J){if(J.target==="openApi3")return Fv($,J);let Q=$.options instanceof Map?Array.from($.options.values()):$.options;if(Q.every((Y)=>(Y._def.typeName in k7)&&(!Y._def.checks||!Y._def.checks.length))){let Y=Q.reduce((X,G)=>{let W=k7[G._def.typeName];return W&&!X.includes(W)?[...X,W]:X},[]);return{type:Y.length>1?Y:Y[0]}}else if(Q.every((Y)=>Y._def.typeName==="ZodLiteral"&&!Y.description)){let Y=Q.reduce((X,G)=>{let W=typeof G._def.value;switch(W){case"string":case"number":case"boolean":return[...X,W];case"bigint":return[...X,"integer"];case"object":if(G._def.value===null)return[...X,"null"];case"symbol":case"undefined":case"function":default:return X}},[]);if(Y.length===Q.length){let X=Y.filter((G,W,D)=>D.indexOf(G)===W);return{type:X.length>1?X:X[0],enum:Q.reduce((G,W)=>{return G.includes(W._def.value)?G:[...G,W._def.value]},[])}}}else if(Q.every((Y)=>Y._def.typeName==="ZodEnum"))return{type:"string",enum:Q.reduce((Y,X)=>[...Y,...X._def.values.filter((G)=>!Y.includes(G))],[])};return Fv($,J)}var Fv=($,J)=>{let Q=($.options instanceof Map?Array.from($.options.values()):$.options).map((Y,X)=>B$(Y._def,{...J,currentPath:[...J.currentPath,"anyOf",`${X}`]})).filter((Y)=>!!Y&&(!J.strictUnions||typeof Y==="object"&&Object.keys(Y).length>0));return Q.length?{anyOf:Q}:void 0};function Sv($,J){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes($.innerType._def.typeName)&&(!$.innerType._def.checks||!$.innerType._def.checks.length)){if(J.target==="openApi3")return{type:k7[$.innerType._def.typeName],nullable:!0};return{type:[k7[$.innerType._def.typeName],"null"]}}if(J.target==="openApi3"){let Y=B$($.innerType._def,{...J,currentPath:[...J.currentPath]});if(Y&&"$ref"in Y)return{allOf:[Y],nullable:!0};return Y&&{...Y,nullable:!0}}let Q=B$($.innerType._def,{...J,currentPath:[...J.currentPath,"anyOf","0"]});return Q&&{anyOf:[Q,{type:"null"}]}}function _v($,J){let Q={type:"number"};if(!$.checks)return Q;for(let Y of $.checks)switch(Y.kind){case"int":Q.type="integer",ZI(Q,"type",Y.message,J);break;case"min":if(J.target==="jsonSchema7")if(Y.inclusive)c$(Q,"minimum",Y.value,Y.message,J);else c$(Q,"exclusiveMinimum",Y.value,Y.message,J);else{if(!Y.inclusive)Q.exclusiveMinimum=!0;c$(Q,"minimum",Y.value,Y.message,J)}break;case"max":if(J.target==="jsonSchema7")if(Y.inclusive)c$(Q,"maximum",Y.value,Y.message,J);else c$(Q,"exclusiveMaximum",Y.value,Y.message,J);else{if(!Y.inclusive)Q.exclusiveMaximum=!0;c$(Q,"maximum",Y.value,Y.message,J)}break;case"multipleOf":c$(Q,"multipleOf",Y.value,Y.message,J);break}return Q}function Ev($,J){let Q=J.target==="openAi",Y={type:"object",properties:{}},X=[],G=$.shape();for(let D in G){let U=G[D];if(U===void 0||U._def===void 0)continue;let V=wa(U);if(V&&Q){if(U._def.typeName==="ZodOptional")U=U._def.innerType;if(!U.isNullable())U=U.nullable();V=!1}let O=B$(U._def,{...J,currentPath:[...J.currentPath,"properties",D],propertyPath:[...J.currentPath,"properties",D]});if(O===void 0)continue;if(Y.properties[D]=O,!V)X.push(D)}if(X.length)Y.required=X;let W=Ha($,J);if(W!==void 0)Y.additionalProperties=W;return Y}function Ha($,J){if($.catchall._def.typeName!=="ZodNever")return B$($.catchall._def,{...J,currentPath:[...J.currentPath,"additionalProperties"]});switch($.unknownKeys){case"passthrough":return J.allowedAdditionalProperties;case"strict":return J.rejectedAdditionalProperties;case"strip":return J.removeAdditionalStrategy==="strict"?J.allowedAdditionalProperties:J.rejectedAdditionalProperties}}function wa($){try{return $.isOptional()}catch{return!0}}var Pv=($,J)=>{if(J.currentPath.toString()===J.propertyPath?.toString())return B$($.innerType._def,J);let Q=B$($.innerType._def,{...J,currentPath:[...J.currentPath,"anyOf","1"]});return Q?{anyOf:[{not:E4(J)},Q]}:E4(J)};var vv=($,J)=>{if(J.pipeStrategy==="input")return B$($.in._def,J);else if(J.pipeStrategy==="output")return B$($.out._def,J);let Q=B$($.in._def,{...J,currentPath:[...J.currentPath,"allOf","0"]}),Y=B$($.out._def,{...J,currentPath:[...J.currentPath,"allOf",Q?"1":"0"]});return{allOf:[Q,Y].filter((X)=>X!==void 0)}};function Rv($,J){return B$($.type._def,J)}function Tv($,J){let Y={type:"array",uniqueItems:!0,items:B$($.valueType._def,{...J,currentPath:[...J.currentPath,"items"]})};if($.minSize)c$(Y,"minItems",$.minSize.value,$.minSize.message,J);if($.maxSize)c$(Y,"maxItems",$.maxSize.value,$.maxSize.message,J);return Y}function Cv($,J){if($.rest)return{type:"array",minItems:$.items.length,items:$.items.map((Q,Y)=>B$(Q._def,{...J,currentPath:[...J.currentPath,"items",`${Y}`]})).reduce((Q,Y)=>Y===void 0?Q:[...Q,Y],[]),additionalItems:B$($.rest._def,{...J,currentPath:[...J.currentPath,"additionalItems"]})};else return{type:"array",minItems:$.items.length,maxItems:$.items.length,items:$.items.map((Q,Y)=>B$(Q._def,{...J,currentPath:[...J.currentPath,"items",`${Y}`]})).reduce((Q,Y)=>Y===void 0?Q:[...Q,Y],[])}}function kv($){return{not:E4($)}}function xv($){return E4($)}var fv=($,J)=>{return B$($.innerType._def,J)};var bv=($,J,Q)=>{switch(J){case $$.ZodString:return fO($,Q);case $$.ZodNumber:return _v($,Q);case $$.ZodObject:return Ev($,Q);case $$.ZodBigInt:return Vv($,Q);case $$.ZodBoolean:return Ov();case $$.ZodDate:return FI($,Q);case $$.ZodUndefined:return kv(Q);case $$.ZodNull:return Zv(Q);case $$.ZodArray:return Kv($,Q);case $$.ZodUnion:case $$.ZodDiscriminatedUnion:return jv($,Q);case $$.ZodIntersection:return Hv($,Q);case $$.ZodTuple:return Cv($,Q);case $$.ZodRecord:return bO($,Q);case $$.ZodLiteral:return wv($,Q);case $$.ZodEnum:return qv($);case $$.ZodNativeEnum:return Lv($);case $$.ZodNullable:return Sv($,Q);case $$.ZodOptional:return Pv($,Q);case $$.ZodMap:return Iv($,Q);case $$.ZodSet:return Tv($,Q);case $$.ZodLazy:return()=>$.getter()._def;case $$.ZodPromise:return Rv($,Q);case $$.ZodNaN:case $$.ZodNever:return Bv(Q);case $$.ZodEffects:return Nv($,Q);case $$.ZodAny:return E4(Q);case $$.ZodUnknown:return xv(Q);case $$.ZodDefault:return zv($,Q);case $$.ZodBranded:return xO($,Q);case $$.ZodReadonly:return fv($,Q);case $$.ZodCatch:return Mv($,Q);case $$.ZodPipeline:return vv($,Q);case $$.ZodFunction:case $$.ZodVoid:case $$.ZodSymbol:return;default:return((Y)=>{return})(J)}};function B$($,J,Q=!1){let Y=J.seen.get($);if(J.override){let D=J.override?.($,J,Y,Q);if(D!==Wv)return D}if(Y&&!Q){let D=Aa(Y,J);if(D!==void 0)return D}let X={def:$,path:J.currentPath,jsonSchema:void 0};J.seen.set($,X);let G=bv($,$.typeName,J),W=typeof G==="function"?B$(G(),J):G;if(W)Ia($,J,W);if(J.postProcess){let D=J.postProcess(W,$,J);return X.jsonSchema=W,D}return X.jsonSchema=W,W}var Aa=($,J)=>{switch(J.$refStrategy){case"root":return{$ref:$.path.join("/")};case"relative":return{$ref:kO(J.currentPath,$.path)};case"none":case"seen":{if($.path.length<J.currentPath.length&&$.path.every((Q,Y)=>J.currentPath[Y]===Q))return console.warn(`Recursive reference detected at ${J.currentPath.join("/")}! Defaulting to any`),E4(J);return J.$refStrategy==="seen"?E4(J):void 0}}},Ia=($,J,Q)=>{if($.description){if(Q.description=$.description,J.markdownDescription)Q.markdownDescription=$.description}return Q};var _I=($,J)=>{let Q=Uv(J),Y=typeof J==="object"&&J.definitions?Object.entries(J.definitions).reduce((U,[V,O])=>({...U,[V]:B$(O._def,{...Q,currentPath:[...Q.basePath,Q.definitionPath,V]},!0)??E4(Q)}),{}):void 0,X=typeof J==="string"?J:J?.nameStrategy==="title"?void 0:J?.name,G=B$($._def,X===void 0?Q:{...Q,currentPath:[...Q.basePath,Q.definitionPath,X]},!1)??E4(Q),W=typeof J==="object"&&J.name!==void 0&&J.nameStrategy==="title"?J.name:void 0;if(W!==void 0)G.title=W;if(Q.flags.hasReferencedOpenAiAnyType){if(!Y)Y={};if(!Y[Q.openAiAnyTypeName])Y[Q.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:Q.$refStrategy==="relative"?"1":[...Q.basePath,Q.definitionPath,Q.openAiAnyTypeName].join("/")}}}let D=X===void 0?Y?{...G,[Q.definitionPath]:Y}:G:{$ref:[...Q.$refStrategy==="relative"?[]:Q.basePath,Q.definitionPath,X].join("/"),[Q.definitionPath]:{...Y,[X]:G}};if(Q.target==="jsonSchema7")D.$schema="http://json-schema.org/draft-07/schema#";else if(Q.target==="jsonSchema2019-09"||Q.target==="openAi")D.$schema="https://json-schema.org/draft/2019-09/schema#";if(Q.target==="openAi"&&(("anyOf"in D)||("oneOf"in D)||("allOf"in D)||("type"in D)&&Array.isArray(D.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return D};function La($){if(!$)return"draft-7";if($==="jsonSchema7"||$==="draft-7")return"draft-7";if($==="jsonSchema2019-09"||$==="draft-2020-12")return"draft-2020-12";return"draft-7"}function EI($,J){if(v1($))return aX($,{target:La(J?.target),io:J?.pipeStrategy??"input"});return _I($,{strictUnions:J?.strictUnions??!0,pipeStrategy:J?.pipeStrategy??"input"})}function PI($){let Q=vQ($)?.method;if(!Q)throw Error("Schema is missing a method literal");let Y=xV(Q);if(typeof Y!=="string")throw Error("Schema method literal must be a string");return Y}function vI($,J){let Q=PQ($,J);if(!Q.success)throw Q.error;return Q.data}var Ba=60000;class RI{constructor($){if(this._options=$,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(qO,(J)=>{this._oncancel(J)}),this.setNotificationHandler(wO,(J)=>{this._onprogress(J)}),this.setRequestHandler(HO,(J)=>({})),this._taskStore=$?.taskStore,this._taskMessageQueue=$?.taskMessageQueue,this._taskStore)this.setRequestHandler(AO,async(J,Q)=>{let Y=await this._taskStore.getTask(J.params.taskId,Q.sessionId);if(!Y)throw new z$(H$.InvalidParams,"Failed to retrieve task: Task not found");return{...Y}}),this.setRequestHandler(LO,async(J,Q)=>{let Y=async()=>{let X=J.params.taskId;if(this._taskMessageQueue){let W;while(W=await this._taskMessageQueue.dequeue(X,Q.sessionId)){if(W.type==="response"||W.type==="error"){let D=W.message,U=D.id,V=this._requestResolvers.get(U);if(V)if(this._requestResolvers.delete(U),W.type==="response")V(D);else{let O=D,M=new z$(O.error.code,O.error.message,O.error.data);V(M)}else{let O=W.type==="response"?"Response":"Error";this._onerror(Error(`${O} handler missing for request ${U}`))}continue}await this._transport?.send(W.message,{relatedRequestId:Q.requestId})}}let G=await this._taskStore.getTask(X,Q.sessionId);if(!G)throw new z$(H$.InvalidParams,`Task not found: ${X}`);if(!CQ(G.status))return await this._waitForTaskUpdate(X,Q.signal),await Y();if(CQ(G.status)){let W=await this._taskStore.getTaskResult(X,Q.sessionId);return this._clearTaskQueue(X),{...W,_meta:{...W._meta,[TQ]:{taskId:X}}}}return await Y()};return await Y()}),this.setRequestHandler(BO,async(J,Q)=>{try{let{tasks:Y,nextCursor:X}=await this._taskStore.listTasks(J.params?.cursor,Q.sessionId);return{tasks:Y,nextCursor:X,_meta:{}}}catch(Y){throw new z$(H$.InvalidParams,`Failed to list tasks: ${Y instanceof Error?Y.message:String(Y)}`)}}),this.setRequestHandler(FO,async(J,Q)=>{try{let Y=await this._taskStore.getTask(J.params.taskId,Q.sessionId);if(!Y)throw new z$(H$.InvalidParams,`Task not found: ${J.params.taskId}`);if(CQ(Y.status))throw new z$(H$.InvalidParams,`Cannot cancel task in terminal status: ${Y.status}`);await this._taskStore.updateTaskStatus(J.params.taskId,"cancelled","Client cancelled task execution.",Q.sessionId),this._clearTaskQueue(J.params.taskId);let X=await this._taskStore.getTask(J.params.taskId,Q.sessionId);if(!X)throw new z$(H$.InvalidParams,`Task not found after cancellation: ${J.params.taskId}`);return{_meta:{},...X}}catch(Y){if(Y instanceof z$)throw Y;throw new z$(H$.InvalidRequest,`Failed to cancel task: ${Y instanceof Error?Y.message:String(Y)}`)}})}async _oncancel($){if(!$.params.requestId)return;this._requestHandlerAbortControllers.get($.params.requestId)?.abort($.params.reason)}_setupTimeout($,J,Q,Y,X=!1){this._timeoutInfo.set($,{timeoutId:setTimeout(Y,J),startTime:Date.now(),timeout:J,maxTotalTimeout:Q,resetTimeoutOnProgress:X,onTimeout:Y})}_resetTimeout($){let J=this._timeoutInfo.get($);if(!J)return!1;let Q=Date.now()-J.startTime;if(J.maxTotalTimeout&&Q>=J.maxTotalTimeout)throw this._timeoutInfo.delete($),z$.fromError(H$.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:J.maxTotalTimeout,totalElapsed:Q});return clearTimeout(J.timeoutId),J.timeoutId=setTimeout(J.onTimeout,J.timeout),!0}_cleanupTimeout($){let J=this._timeoutInfo.get($);if(J)clearTimeout(J.timeoutId),this._timeoutInfo.delete($)}async connect($){if(this._transport)throw Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=$;let J=this.transport?.onclose;this._transport.onclose=()=>{J?.(),this._onclose()};let Q=this.transport?.onerror;this._transport.onerror=(X)=>{Q?.(X),this._onerror(X)};let Y=this._transport?.onmessage;this._transport.onmessage=(X,G)=>{if(Y?.(X,G),S7(X)||cP(X))this._onresponse(X);else if(DI(X))this._onrequest(X,G);else if(iP(X))this._onnotification(X);else this._onerror(Error(`Unknown message type: ${JSON.stringify(X)}`))},await this._transport.start()}_onclose(){let $=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let Q of this._requestHandlerAbortControllers.values())Q.abort();this._requestHandlerAbortControllers.clear();let J=z$.fromError(H$.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let Q of $.values())Q(J)}_onerror($){this.onerror?.($)}_onnotification($){let J=this._notificationHandlers.get($.method)??this.fallbackNotificationHandler;if(J===void 0)return;Promise.resolve().then(()=>J($)).catch((Q)=>this._onerror(Error(`Uncaught error in notification handler: ${Q}`)))}_onrequest($,J){let Q=this._requestHandlers.get($.method)??this.fallbackRequestHandler,Y=this._transport,X=$.params?._meta?.[TQ]?.taskId;if(Q===void 0){let V={jsonrpc:"2.0",id:$.id,error:{code:H$.MethodNotFound,message:"Method not found"}};if(X&&this._taskMessageQueue)this._enqueueTaskMessage(X,{type:"error",message:V,timestamp:Date.now()},Y?.sessionId).catch((O)=>this._onerror(Error(`Failed to enqueue error response: ${O}`)));else Y?.send(V).catch((O)=>this._onerror(Error(`Failed to send an error response: ${O}`)));return}let G=new AbortController;this._requestHandlerAbortControllers.set($.id,G);let W=nP($.params)?$.params.task:void 0,D=this._taskStore?this.requestTaskStore($,Y?.sessionId):void 0,U={signal:G.signal,sessionId:Y?.sessionId,_meta:$.params?._meta,sendNotification:async(V)=>{if(G.signal.aborted)return;let O={relatedRequestId:$.id};if(X)O.relatedTask={taskId:X};await this.notification(V,O)},sendRequest:async(V,O,M)=>{if(G.signal.aborted)throw new z$(H$.ConnectionClosed,"Request was cancelled");let N={...M,relatedRequestId:$.id};if(X&&!N.relatedTask)N.relatedTask={taskId:X};let q=N.relatedTask?.taskId??X;if(q&&D)await D.updateTaskStatus(q,"input_required");return await this.request(V,O,N)},authInfo:J?.authInfo,requestId:$.id,requestInfo:J?.requestInfo,taskId:X,taskStore:D,taskRequestedTtl:W?.ttl,closeSSEStream:J?.closeSSEStream,closeStandaloneSSEStream:J?.closeStandaloneSSEStream};Promise.resolve().then(()=>{if(W)this.assertTaskHandlerCapability($.method)}).then(()=>Q($,U)).then(async(V)=>{if(G.signal.aborted)return;let O={result:V,jsonrpc:"2.0",id:$.id};if(X&&this._taskMessageQueue)await this._enqueueTaskMessage(X,{type:"response",message:O,timestamp:Date.now()},Y?.sessionId);else await Y?.send(O)},async(V)=>{if(G.signal.aborted)return;let O={jsonrpc:"2.0",id:$.id,error:{code:Number.isSafeInteger(V.code)?V.code:H$.InternalError,message:V.message??"Internal error",...V.data!==void 0&&{data:V.data}}};if(X&&this._taskMessageQueue)await this._enqueueTaskMessage(X,{type:"error",message:O,timestamp:Date.now()},Y?.sessionId);else await Y?.send(O)}).catch((V)=>this._onerror(Error(`Failed to send response: ${V}`))).finally(()=>{this._requestHandlerAbortControllers.delete($.id)})}_onprogress($){let{progressToken:J,...Q}=$.params,Y=Number(J),X=this._progressHandlers.get(Y);if(!X){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify($)}`));return}let G=this._responseHandlers.get(Y),W=this._timeoutInfo.get(Y);if(W&&G&&W.resetTimeoutOnProgress)try{this._resetTimeout(Y)}catch(D){this._responseHandlers.delete(Y),this._progressHandlers.delete(Y),this._cleanupTimeout(Y),G(D);return}X(Q)}_onresponse($){let J=Number($.id),Q=this._requestResolvers.get(J);if(Q){if(this._requestResolvers.delete(J),S7($))Q($);else{let G=new z$($.error.code,$.error.message,$.error.data);Q(G)}return}let Y=this._responseHandlers.get(J);if(Y===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify($)}`));return}this._responseHandlers.delete(J),this._cleanupTimeout(J);let X=!1;if(S7($)&&$.result&&typeof $.result==="object"){let G=$.result;if(G.task&&typeof G.task==="object"){let W=G.task;if(typeof W.taskId==="string")X=!0,this._taskProgressTokens.set(W.taskId,J)}}if(!X)this._progressHandlers.delete(J);if(S7($))Y($);else{let G=z$.fromError($.error.code,$.error.message,$.error.data);Y(G)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream($,J,Q){let{task:Y}=Q??{};if(!Y){try{yield{type:"result",result:await this.request($,J,Q)}}catch(G){yield{type:"error",error:G instanceof z$?G:new z$(H$.InternalError,String(G))}}return}let X;try{let G=await this.request($,$Y,Q);if(G.task)X=G.task.taskId,yield{type:"taskCreated",task:G.task};else throw new z$(H$.InternalError,"Task creation did not return a task");while(!0){let W=await this.getTask({taskId:X},Q);if(yield{type:"taskStatus",task:W},CQ(W.status)){if(W.status==="completed")yield{type:"result",result:await this.getTaskResult({taskId:X},J,Q)};else if(W.status==="failed")yield{type:"error",error:new z$(H$.InternalError,`Task ${X} failed`)};else if(W.status==="cancelled")yield{type:"error",error:new z$(H$.InternalError,`Task ${X} was cancelled`)};return}if(W.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:X},J,Q)};return}let D=W.pollInterval??this._options?.defaultTaskPollInterval??1000;await new Promise((U)=>setTimeout(U,D)),Q?.signal?.throwIfAborted()}}catch(G){yield{type:"error",error:G instanceof z$?G:new z$(H$.InternalError,String(G))}}}request($,J,Q){let{relatedRequestId:Y,resumptionToken:X,onresumptiontoken:G,task:W,relatedTask:D}=Q??{};return new Promise((U,V)=>{let O=(L)=>{V(L)};if(!this._transport){O(Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{if(this.assertCapabilityForMethod($.method),W)this.assertTaskCapability($.method)}catch(L){O(L);return}Q?.signal?.throwIfAborted();let M=this._requestMessageId++,N={...$,jsonrpc:"2.0",id:M};if(Q?.onprogress)this._progressHandlers.set(M,Q.onprogress),N.params={...$.params,_meta:{...$.params?._meta||{},progressToken:M}};if(W)N.params={...N.params,task:W};if(D)N.params={...N.params,_meta:{...N.params?._meta||{},[TQ]:D}};let q=(L)=>{this._responseHandlers.delete(M),this._progressHandlers.delete(M),this._cleanupTimeout(M),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:M,reason:String(L)}},{relatedRequestId:Y,resumptionToken:X,onresumptiontoken:G}).catch((B)=>this._onerror(Error(`Failed to send cancellation: ${B}`)));let _=L instanceof z$?L:new z$(H$.RequestTimeout,String(L));V(_)};this._responseHandlers.set(M,(L)=>{if(Q?.signal?.aborted)return;if(L instanceof Error)return V(L);try{let _=PQ(J,L.result);if(!_.success)V(_.error);else U(_.data)}catch(_){V(_)}}),Q?.signal?.addEventListener("abort",()=>{q(Q?.signal?.reason)});let w=Q?.timeout??Ba,I=()=>q(z$.fromError(H$.RequestTimeout,"Request timed out",{timeout:w}));this._setupTimeout(M,w,Q?.maxTotalTimeout,I,Q?.resetTimeoutOnProgress??!1);let Z=D?.taskId;if(Z){let L=(_)=>{let B=this._responseHandlers.get(M);if(B)B(_);else this._onerror(Error(`Response handler missing for side-channeled request ${M}`))};this._requestResolvers.set(M,L),this._enqueueTaskMessage(Z,{type:"request",message:N,timestamp:Date.now()}).catch((_)=>{this._cleanupTimeout(M),V(_)})}else this._transport.send(N,{relatedRequestId:Y,resumptionToken:X,onresumptiontoken:G}).catch((L)=>{this._cleanupTimeout(M),V(L)})})}async getTask($,J){return this.request({method:"tasks/get",params:$},IO,J)}async getTaskResult($,J,Q){return this.request({method:"tasks/result",params:$},J,Q)}async listTasks($,J){return this.request({method:"tasks/list",params:$},ZO,J)}async cancelTask($,J){return this.request({method:"tasks/cancel",params:$},tP,J)}async notification($,J){if(!this._transport)throw Error("Not connected");this.assertNotificationCapability($.method);let Q=J?.relatedTask?.taskId;if(Q){let W={...$,jsonrpc:"2.0",params:{...$.params,_meta:{...$.params?._meta||{},[TQ]:J.relatedTask}}};await this._enqueueTaskMessage(Q,{type:"notification",message:W,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes($.method)&&!$.params&&!J?.relatedRequestId&&!J?.relatedTask){if(this._pendingDebouncedNotifications.has($.method))return;this._pendingDebouncedNotifications.add($.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete($.method),!this._transport)return;let W={...$,jsonrpc:"2.0"};if(J?.relatedTask)W={...W,params:{...W.params,_meta:{...W.params?._meta||{},[TQ]:J.relatedTask}}};this._transport?.send(W,J).catch((D)=>this._onerror(D))});return}let G={...$,jsonrpc:"2.0"};if(J?.relatedTask)G={...G,params:{...G.params,_meta:{...G.params?._meta||{},[TQ]:J.relatedTask}}};await this._transport.send(G,J)}setRequestHandler($,J){let Q=PI($);this.assertRequestHandlerCapability(Q),this._requestHandlers.set(Q,(Y,X)=>{let G=vI($,Y);return Promise.resolve(J(G,X))})}removeRequestHandler($){this._requestHandlers.delete($)}assertCanSetRequestHandler($){if(this._requestHandlers.has($))throw Error(`A request handler for ${$} already exists, which would be overridden`)}setNotificationHandler($,J){let Q=PI($);this._notificationHandlers.set(Q,(Y)=>{let X=vI($,Y);return Promise.resolve(J(X))})}removeNotificationHandler($){this._notificationHandlers.delete($)}_cleanupTaskProgressHandler($){let J=this._taskProgressTokens.get($);if(J!==void 0)this._progressHandlers.delete(J),this._taskProgressTokens.delete($)}async _enqueueTaskMessage($,J,Q){if(!this._taskStore||!this._taskMessageQueue)throw Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let Y=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue($,J,Q,Y)}async _clearTaskQueue($,J){if(this._taskMessageQueue){let Q=await this._taskMessageQueue.dequeueAll($,J);for(let Y of Q)if(Y.type==="request"&&DI(Y.message)){let X=Y.message.id,G=this._requestResolvers.get(X);if(G)G(new z$(H$.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(X);else this._onerror(Error(`Resolver missing for request ${X} during task ${$} cleanup`))}}}async _waitForTaskUpdate($,J){let Q=this._options?.defaultTaskPollInterval??1000;try{let Y=await this._taskStore?.getTask($);if(Y?.pollInterval)Q=Y.pollInterval}catch{}return new Promise((Y,X)=>{if(J.aborted){X(new z$(H$.InvalidRequest,"Request cancelled"));return}let G=setTimeout(Y,Q);J.addEventListener("abort",()=>{clearTimeout(G),X(new z$(H$.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore($,J){let Q=this._taskStore;if(!Q)throw Error("No task store configured");return{createTask:async(Y)=>{if(!$)throw Error("No request provided");return await Q.createTask(Y,$.id,{method:$.method,params:$.params},J)},getTask:async(Y)=>{let X=await Q.getTask(Y,J);if(!X)throw new z$(H$.InvalidParams,"Failed to retrieve task: Task not found");return X},storeTaskResult:async(Y,X,G)=>{await Q.storeTaskResult(Y,X,G,J);let W=await Q.getTask(Y,J);if(W){let D=R7.parse({method:"notifications/tasks/status",params:W});if(await this.notification(D),CQ(W.status))this._cleanupTaskProgressHandler(Y)}},getTaskResult:(Y)=>{return Q.getTaskResult(Y,J)},updateTaskStatus:async(Y,X,G)=>{let W=await Q.getTask(Y,J);if(!W)throw new z$(H$.InvalidParams,`Task "${Y}" not found - it may have been cleaned up`);if(CQ(W.status))throw new z$(H$.InvalidParams,`Cannot update task "${Y}" from terminal status "${W.status}" to "${X}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await Q.updateTaskStatus(Y,X,G,J);let D=await Q.getTask(Y,J);if(D){let U=R7.parse({method:"notifications/tasks/status",params:D});if(await this.notification(U),CQ(D.status))this._cleanupTaskProgressHandler(Y)}},listTasks:(Y)=>{return Q.listTasks(Y,J)}}}}function gv($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function yv($,J){let Q={...$};for(let Y in J){let X=Y,G=J[X];if(G===void 0)continue;let W=Q[X];if(gv(W)&&gv(G))Q[X]={...W,...G};else Q[X]=G}return Q}var qx=S1(jL(),1),Hx=S1(Nx(),1);function RJ$(){let $=new qx.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return Hx.default($),$}class xL{constructor($){this._ajv=$??RJ$()}getValidator($){let J="$id"in $&&typeof $.$id==="string"?this._ajv.getSchema($.$id)??this._ajv.compile($):this._ajv.compile($);return(Q)=>{if(J(Q))return{valid:!0,data:Q,errorMessage:void 0};else return{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(J.errors)}}}}class fL{constructor($){this._server=$}requestStream($,J,Q){return this._server.requestStream($,J,Q)}async getTask($,J){return this._server.getTask({taskId:$},J)}async getTaskResult($,J,Q){return this._server.getTaskResult({taskId:$},J,Q)}async listTasks($,J){return this._server.listTasks($?{cursor:$}:void 0,J)}async cancelTask($,J){return this._server.cancelTask({taskId:$},J)}}function wx($,J,Q){if(!$)throw Error(`${Q} does not support task creation (required for ${J})`);switch(J){case"tools/call":if(!$.tools?.call)throw Error(`${Q} does not support task creation for tools/call (required for ${J})`);break;default:break}}function Ax($,J,Q){if(!$)throw Error(`${Q} does not support task creation (required for ${J})`);switch(J){case"sampling/createMessage":if(!$.sampling?.createMessage)throw Error(`${Q} does not support task creation for sampling/createMessage (required for ${J})`);break;case"elicitation/create":if(!$.elicitation?.create)throw Error(`${Q} does not support task creation for elicitation/create (required for ${J})`);break;default:break}}class bL extends RI{constructor($,J){super(J);if(this._serverInfo=$,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(C7.options.map((Q,Y)=>[Q,Y])),this.isMessageIgnored=(Q,Y)=>{let X=this._loggingLevels.get(Y);return X?this.LOG_LEVEL_SEVERITY.get(Q)<this.LOG_LEVEL_SEVERITY.get(X):!1},this._capabilities=J?.capabilities??{},this._instructions=J?.instructions,this._jsonSchemaValidator=J?.jsonSchemaValidator??new xL,this.setRequestHandler(VI,(Q)=>this._oninitialize(Q)),this.setNotificationHandler(OI,()=>this.oninitialized?.()),this._capabilities.logging)this.setRequestHandler(AI,async(Q,Y)=>{let X=Y.sessionId||Y.requestInfo?.headers["mcp-session-id"]||void 0,{level:G}=Q.params,W=C7.safeParse(G);if(W.success)this._loggingLevels.set(X,W.data);return{}})}get experimental(){if(!this._experimental)this._experimental={tasks:new fL(this)};return this._experimental}registerCapabilities($){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=yv(this._capabilities,$)}setRequestHandler($,J){let Y=vQ($)?.method;if(!Y)throw Error("Schema is missing a method literal");let X;if(v1(Y)){let W=Y;X=W._zod?.def?.value??W.value}else{let W=Y;X=W._def?.value??W.value}if(typeof X!=="string")throw Error("Schema method literal must be a string");if(X==="tools/call"){let W=async(D,U)=>{let V=PQ(QY,D);if(!V.success){let q=V.error instanceof Error?V.error.message:String(V.error);throw new z$(H$.InvalidParams,`Invalid tools/call request: ${q}`)}let{params:O}=V.data,M=await Promise.resolve(J(D,U));if(O.task){let q=PQ($Y,M);if(!q.success){let w=q.error instanceof Error?q.error.message:String(q.error);throw new z$(H$.InvalidParams,`Invalid task creation result: ${w}`)}return q.data}let N=PQ(RO,M);if(!N.success){let q=N.error instanceof Error?N.error.message:String(N.error);throw new z$(H$.InvalidParams,`Invalid tools/call result: ${q}`)}return N.data};return super.setRequestHandler($,W)}return super.setRequestHandler($,J)}assertCapabilityForMethod($){switch($){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw Error(`Client does not support sampling (required for ${$})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw Error(`Client does not support elicitation (required for ${$})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw Error(`Client does not support listing roots (required for ${$})`);break;case"ping":break}}assertNotificationCapability($){switch($){case"notifications/message":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${$})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${$})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${$})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${$})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for ${$})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability($){if(!this._capabilities)return;switch($){case"completion/complete":if(!this._capabilities.completions)throw Error(`Server does not support completions (required for ${$})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${$})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${$})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${$})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${$})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw Error(`Server does not support tasks capability (required for ${$})`);break;case"ping":case"initialize":break}}assertTaskCapability($){Ax(this._clientCapabilities?.tasks?.requests,$,"Client")}assertTaskHandlerCapability($){if(!this._capabilities)return;wx(this._capabilities.tasks?.requests,$,"Server")}async _oninitialize($){let J=$.params.protocolVersion;return this._clientCapabilities=$.params.capabilities,this._clientVersion=$.params.clientInfo,{protocolVersion:uP.includes(J)?J:GI,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},NO)}async createMessage($,J){if($.tools||$.toolChoice){if(!this._clientCapabilities?.sampling?.tools)throw Error("Client does not support sampling tools capability.")}if($.messages.length>0){let Q=$.messages[$.messages.length-1],Y=Array.isArray(Q.content)?Q.content:[Q.content],X=Y.some((U)=>U.type==="tool_result"),G=$.messages.length>1?$.messages[$.messages.length-2]:void 0,W=G?Array.isArray(G.content)?G.content:[G.content]:[],D=W.some((U)=>U.type==="tool_use");if(X){if(Y.some((U)=>U.type!=="tool_result"))throw Error("The last message must contain only tool_result content if any is present");if(!D)throw Error("tool_result blocks are not matching any tool_use from the previous message")}if(D){let U=new Set(W.filter((O)=>O.type==="tool_use").map((O)=>O.id)),V=new Set(Y.filter((O)=>O.type==="tool_result").map((O)=>O.toolUseId));if(U.size!==V.size||![...U].every((O)=>V.has(O)))throw Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}if($.tools)return this.request({method:"sampling/createMessage",params:$},LI,J);return this.request({method:"sampling/createMessage",params:$},II,J)}async elicitInput($,J){switch($.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support url elicitation.");let Y=$;return this.request({method:"elicitation/create",params:Y},TO,J)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw Error("Client does not support form elicitation.");let Y=$.mode==="form"?$:{...$,mode:"form"},X=await this.request({method:"elicitation/create",params:Y},TO,J);if(X.action==="accept"&&X.content&&Y.requestedSchema)try{let W=this._jsonSchemaValidator.getValidator(Y.requestedSchema)(X.content);if(!W.valid)throw new z$(H$.InvalidParams,`Elicitation response content does not match requested schema: ${W.errorMessage}`)}catch(G){if(G instanceof z$)throw G;throw new z$(H$.InternalError,`Error validating elicitation response: ${G instanceof Error?G.message:String(G)}`)}return X}}}createElicitationCompletionNotifier($,J){if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:$}},J)}async listRoots($,J){return this.request({method:"roots/list",params:$},BI,J)}async sendLoggingMessage($,J){if(this._capabilities.logging){if(!this.isMessageIgnored($.level,J))return this.notification({method:"notifications/message",params:$})}}async sendResourceUpdated($){return this.notification({method:"notifications/resources/updated",params:$})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}var Lx=Symbol.for("mcp.completable");function gL($){return!!$&&typeof $==="object"&&Lx in $}function Bx($){return $[Lx]?.complete}var Ix;(function($){$.Completable="McpCompletable"})(Ix||(Ix={}));var TJ$=/^[A-Za-z0-9._-]{1,128}$/;function CJ$($){let J=[];if($.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if($.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${$.length})`]};if($.includes(" "))J.push("Tool name contains spaces, which may cause parsing issues");if($.includes(","))J.push("Tool name contains commas, which may cause parsing issues");if($.startsWith("-")||$.endsWith("-"))J.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts");if($.startsWith(".")||$.endsWith("."))J.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts");if(!TJ$.test($)){let Q=$.split("").filter((Y)=>!/[A-Za-z0-9._-]/.test(Y)).filter((Y,X,G)=>G.indexOf(Y)===X);return J.push(`Tool name contains invalid characters: ${Q.map((Y)=>`"${Y}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:J}}return{isValid:!0,warnings:J}}function kJ$($,J){if(J.length>0){console.warn(`Tool name validation warning for "${$}":`);for(let Q of J)console.warn(` - ${Q}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}}function yL($){let J=CJ$($);return kJ$($,J.warnings),J.isValid}class hL{constructor($){this._mcpServer=$}registerToolTask($,J,Q){let Y={taskSupport:"required",...J.execution};if(Y.taskSupport==="forbidden")throw Error(`Cannot register task-based tool '${$}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool($,J.title,J.description,J.inputSchema,J.outputSchema,J.annotations,Y,J._meta,Q)}}class mL{constructor($,J){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new bL($,J)}get experimental(){if(!this._experimental)this._experimental={tasks:new hL(this)};return this._experimental}async connect($){return await this.server.connect($)}async close(){await this.server.close()}setToolRequestHandlers(){if(this._toolHandlersInitialized)return;this.server.assertCanSetRequestHandler(uQ(vO)),this.server.assertCanSetRequestHandler(uQ(QY)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(vO,()=>({tools:Object.entries(this._registeredTools).filter(([,$])=>$.enabled).map(([$,J])=>{let Q={name:$,title:J.title,description:J.description,inputSchema:(()=>{let Y=n9(J.inputSchema);return Y?EI(Y,{strictUnions:!0,pipeStrategy:"input"}):xJ$})(),annotations:J.annotations,execution:J.execution,_meta:J._meta};if(J.outputSchema){let Y=n9(J.outputSchema);if(Y)Q.outputSchema=EI(Y,{strictUnions:!0,pipeStrategy:"output"})}return Q})})),this.server.setRequestHandler(QY,async($,J)=>{try{let Q=this._registeredTools[$.params.name];if(!Q)throw new z$(H$.InvalidParams,`Tool ${$.params.name} not found`);if(!Q.enabled)throw new z$(H$.InvalidParams,`Tool ${$.params.name} disabled`);let Y=!!$.params.task,X=Q.execution?.taskSupport,G="createTask"in Q.handler;if((X==="required"||X==="optional")&&!G)throw new z$(H$.InternalError,`Tool ${$.params.name} has taskSupport '${X}' but was not registered with registerToolTask`);if(X==="required"&&!Y)throw new z$(H$.MethodNotFound,`Tool ${$.params.name} requires task augmentation (taskSupport: 'required')`);if(X==="optional"&&!Y&&G)return await this.handleAutomaticTaskPolling(Q,$,J);let W=await this.validateToolInput(Q,$.params.arguments,$.params.name),D=await this.executeToolHandler(Q,W,J);if(Y)return D;return await this.validateToolOutput(Q,D,$.params.name),D}catch(Q){if(Q instanceof z$){if(Q.code===H$.UrlElicitationRequired)throw Q}return this.createToolError(Q instanceof Error?Q.message:String(Q))}}),this._toolHandlersInitialized=!0}createToolError($){return{content:[{type:"text",text:$}],isError:!0}}async validateToolInput($,J,Q){if(!$.inputSchema)return;let X=n9($.inputSchema)??$.inputSchema,G=await CV(X,J);if(!G.success){let W="error"in G?G.error:"Unknown error",D=kV(W);throw new z$(H$.InvalidParams,`Input validation error: Invalid arguments for tool ${Q}: ${D}`)}return G.data}async validateToolOutput($,J,Q){if(!$.outputSchema)return;if(!("content"in J))return;if(J.isError)return;if(!J.structuredContent)throw new z$(H$.InvalidParams,`Output validation error: Tool ${Q} has an output schema but no structured content was provided`);let Y=n9($.outputSchema),X=await CV(Y,J.structuredContent);if(!X.success){let G="error"in X?X.error:"Unknown error",W=kV(G);throw new z$(H$.InvalidParams,`Output validation error: Invalid structured content for tool ${Q}: ${W}`)}}async executeToolHandler($,J,Q){let Y=$.handler;if("createTask"in Y){if(!Q.taskStore)throw Error("No task store provided.");let G={...Q,taskStore:Q.taskStore};if($.inputSchema)return await Promise.resolve(Y.createTask(J,G));else return await Promise.resolve(Y.createTask(G))}if($.inputSchema)return await Promise.resolve(Y(J,Q));else return await Promise.resolve(Y(Q))}async handleAutomaticTaskPolling($,J,Q){if(!Q.taskStore)throw Error("No task store provided for task-capable tool.");let Y=await this.validateToolInput($,J.params.arguments,J.params.name),X=$.handler,G={...Q,taskStore:Q.taskStore},W=Y?await Promise.resolve(X.createTask(Y,G)):await Promise.resolve(X.createTask(G)),D=W.task.taskId,U=W.task,V=U.pollInterval??5000;while(U.status!=="completed"&&U.status!=="failed"&&U.status!=="cancelled"){await new Promise((M)=>setTimeout(M,V));let O=await Q.taskStore.getTask(D);if(!O)throw new z$(H$.InternalError,`Task ${D} not found during polling`);U=O}return await Q.taskStore.getTaskResult(D)}setCompletionRequestHandler(){if(this._completionHandlerInitialized)return;this.server.assertCanSetRequestHandler(uQ(CO)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(CO,async($)=>{switch($.params.ref.type){case"ref/prompt":return Qv($),this.handlePromptCompletion($,$.params.ref);case"ref/resource":return Xv($),this.handleResourceCompletion($,$.params.ref);default:throw new z$(H$.InvalidParams,`Invalid completion reference: ${$.params.ref}`)}}),this._completionHandlerInitialized=!0}async handlePromptCompletion($,J){let Q=this._registeredPrompts[J.name];if(!Q)throw new z$(H$.InvalidParams,`Prompt ${J.name} not found`);if(!Q.enabled)throw new z$(H$.InvalidParams,`Prompt ${J.name} disabled`);if(!Q.argsSchema)return XW;let X=vQ(Q.argsSchema)?.[$.params.argument.name];if(!gL(X))return XW;let G=Bx(X);if(!G)return XW;let W=await G($.params.argument.value,$.params.context);return Fx(W)}async handleResourceCompletion($,J){let Q=Object.values(this._registeredResourceTemplates).find((G)=>G.resourceTemplate.uriTemplate.toString()===J.uri);if(!Q){if(this._registeredResources[J.uri])return XW;throw new z$(H$.InvalidParams,`Resource template ${$.params.ref.uri} not found`)}let Y=Q.resourceTemplate.completeCallback($.params.argument.name);if(!Y)return XW;let X=await Y($.params.argument.value,$.params.context);return Fx(X)}setResourceRequestHandlers(){if(this._resourceHandlersInitialized)return;this.server.assertCanSetRequestHandler(uQ(jO)),this.server.assertCanSetRequestHandler(uQ(SO)),this.server.assertCanSetRequestHandler(uQ(_O)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(jO,async($,J)=>{let Q=Object.entries(this._registeredResources).filter(([X,G])=>G.enabled).map(([X,G])=>({uri:X,name:G.name,...G.metadata})),Y=[];for(let X of Object.values(this._registeredResourceTemplates)){if(!X.resourceTemplate.listCallback)continue;let G=await X.resourceTemplate.listCallback(J);for(let W of G.resources)Y.push({...X.metadata,...W})}return{resources:[...Q,...Y]}}),this.server.setRequestHandler(SO,async()=>{return{resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([J,Q])=>({name:J,uriTemplate:Q.resourceTemplate.uriTemplate.toString(),...Q.metadata}))}}),this.server.setRequestHandler(_O,async($,J)=>{let Q=new URL($.params.uri),Y=this._registeredResources[Q.toString()];if(Y){if(!Y.enabled)throw new z$(H$.InvalidParams,`Resource ${Q} disabled`);return Y.readCallback(Q,J)}for(let X of Object.values(this._registeredResourceTemplates)){let G=X.resourceTemplate.uriTemplate.match(Q.toString());if(G)return X.readCallback(Q,G,J)}throw new z$(H$.InvalidParams,`Resource ${Q} not found`)}),this._resourceHandlersInitialized=!0}setPromptRequestHandlers(){if(this._promptHandlersInitialized)return;this.server.assertCanSetRequestHandler(uQ(EO)),this.server.assertCanSetRequestHandler(uQ(PO)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(EO,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,$])=>$.enabled).map(([$,J])=>{return{name:$,title:J.title,description:J.description,arguments:J.argsSchema?bJ$(J.argsSchema):void 0}})})),this.server.setRequestHandler(PO,async($,J)=>{let Q=this._registeredPrompts[$.params.name];if(!Q)throw new z$(H$.InvalidParams,`Prompt ${$.params.name} not found`);if(!Q.enabled)throw new z$(H$.InvalidParams,`Prompt ${$.params.name} disabled`);if(Q.argsSchema){let Y=n9(Q.argsSchema),X=await CV(Y,$.params.arguments);if(!X.success){let D="error"in X?X.error:"Unknown error",U=kV(D);throw new z$(H$.InvalidParams,`Invalid arguments for prompt ${$.params.name}: ${U}`)}let G=X.data,W=Q.callback;return await Promise.resolve(W(G,J))}else{let Y=Q.callback;return await Promise.resolve(Y(J))}}),this._promptHandlersInitialized=!0}resource($,J,...Q){let Y;if(typeof Q[0]==="object")Y=Q.shift();let X=Q[0];if(typeof J==="string"){if(this._registeredResources[J])throw Error(`Resource ${J} is already registered`);let G=this._createRegisteredResource($,void 0,J,Y,X);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),G}else{if(this._registeredResourceTemplates[$])throw Error(`Resource template ${$} is already registered`);let G=this._createRegisteredResourceTemplate($,void 0,J,Y,X);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),G}}registerResource($,J,Q,Y){if(typeof J==="string"){if(this._registeredResources[J])throw Error(`Resource ${J} is already registered`);let X=this._createRegisteredResource($,Q.title,J,Q,Y);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),X}else{if(this._registeredResourceTemplates[$])throw Error(`Resource template ${$} is already registered`);let X=this._createRegisteredResourceTemplate($,Q.title,J,Q,Y);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),X}}_createRegisteredResource($,J,Q,Y,X){let G={name:$,title:J,metadata:Y,readCallback:X,enabled:!0,disable:()=>G.update({enabled:!1}),enable:()=>G.update({enabled:!0}),remove:()=>G.update({uri:null}),update:(W)=>{if(typeof W.uri<"u"&&W.uri!==Q){if(delete this._registeredResources[Q],W.uri)this._registeredResources[W.uri]=G}if(typeof W.name<"u")G.name=W.name;if(typeof W.title<"u")G.title=W.title;if(typeof W.metadata<"u")G.metadata=W.metadata;if(typeof W.callback<"u")G.readCallback=W.callback;if(typeof W.enabled<"u")G.enabled=W.enabled;this.sendResourceListChanged()}};return this._registeredResources[Q]=G,G}_createRegisteredResourceTemplate($,J,Q,Y,X){let G={resourceTemplate:Q,title:J,metadata:Y,readCallback:X,enabled:!0,disable:()=>G.update({enabled:!1}),enable:()=>G.update({enabled:!0}),remove:()=>G.update({name:null}),update:(U)=>{if(typeof U.name<"u"&&U.name!==$){if(delete this._registeredResourceTemplates[$],U.name)this._registeredResourceTemplates[U.name]=G}if(typeof U.title<"u")G.title=U.title;if(typeof U.template<"u")G.resourceTemplate=U.template;if(typeof U.metadata<"u")G.metadata=U.metadata;if(typeof U.callback<"u")G.readCallback=U.callback;if(typeof U.enabled<"u")G.enabled=U.enabled;this.sendResourceListChanged()}};this._registeredResourceTemplates[$]=G;let W=Q.uriTemplate.variableNames;if(Array.isArray(W)&&W.some((U)=>!!Q.completeCallback(U)))this.setCompletionRequestHandler();return G}_createRegisteredPrompt($,J,Q,Y,X){let G={title:J,description:Q,argsSchema:Y===void 0?void 0:sX(Y),callback:X,enabled:!0,disable:()=>G.update({enabled:!1}),enable:()=>G.update({enabled:!0}),remove:()=>G.update({name:null}),update:(W)=>{if(typeof W.name<"u"&&W.name!==$){if(delete this._registeredPrompts[$],W.name)this._registeredPrompts[W.name]=G}if(typeof W.title<"u")G.title=W.title;if(typeof W.description<"u")G.description=W.description;if(typeof W.argsSchema<"u")G.argsSchema=sX(W.argsSchema);if(typeof W.callback<"u")G.callback=W.callback;if(typeof W.enabled<"u")G.enabled=W.enabled;this.sendPromptListChanged()}};if(this._registeredPrompts[$]=G,Y){if(Object.values(Y).some((D)=>{let U=D instanceof s9?D._def?.innerType:D;return gL(U)}))this.setCompletionRequestHandler()}return G}_createRegisteredTool($,J,Q,Y,X,G,W,D,U){yL($);let V={title:J,description:Q,inputSchema:Zx(Y),outputSchema:Zx(X),annotations:G,execution:W,_meta:D,handler:U,enabled:!0,disable:()=>V.update({enabled:!1}),enable:()=>V.update({enabled:!0}),remove:()=>V.update({name:null}),update:(O)=>{if(typeof O.name<"u"&&O.name!==$){if(typeof O.name==="string")yL(O.name);if(delete this._registeredTools[$],O.name)this._registeredTools[O.name]=V}if(typeof O.title<"u")V.title=O.title;if(typeof O.description<"u")V.description=O.description;if(typeof O.paramsSchema<"u")V.inputSchema=sX(O.paramsSchema);if(typeof O.outputSchema<"u")V.outputSchema=sX(O.outputSchema);if(typeof O.callback<"u")V.handler=O.callback;if(typeof O.annotations<"u")V.annotations=O.annotations;if(typeof O._meta<"u")V._meta=O._meta;if(typeof O.enabled<"u")V.enabled=O.enabled;this.sendToolListChanged()}};return this._registeredTools[$]=V,this.setToolRequestHandlers(),this.sendToolListChanged(),V}tool($,...J){if(this._registeredTools[$])throw Error(`Tool ${$} is already registered`);let Q,Y,X,G;if(typeof J[0]==="string")Q=J.shift();if(J.length>1){let D=J[0];if(uL(D)){if(Y=J.shift(),J.length>1&&typeof J[0]==="object"&&J[0]!==null&&!uL(J[0]))G=J.shift()}else if(typeof D==="object"&&D!==null)G=J.shift()}let W=J[0];return this._createRegisteredTool($,void 0,Q,Y,X,G,{taskSupport:"forbidden"},void 0,W)}registerTool($,J,Q){if(this._registeredTools[$])throw Error(`Tool ${$} is already registered`);let{title:Y,description:X,inputSchema:G,outputSchema:W,annotations:D,_meta:U}=J;return this._createRegisteredTool($,Y,X,G,W,D,{taskSupport:"forbidden"},U,Q)}prompt($,...J){if(this._registeredPrompts[$])throw Error(`Prompt ${$} is already registered`);let Q;if(typeof J[0]==="string")Q=J.shift();let Y;if(J.length>1)Y=J.shift();let X=J[0],G=this._createRegisteredPrompt($,void 0,Q,Y,X);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),G}registerPrompt($,J,Q){if(this._registeredPrompts[$])throw Error(`Prompt ${$} is already registered`);let{title:Y,description:X,argsSchema:G}=J,W=this._createRegisteredPrompt($,Y,X,G,Q);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),W}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage($,J){return this.server.sendLoggingMessage($,J)}sendResourceListChanged(){if(this.isConnected())this.server.sendResourceListChanged()}sendToolListChanged(){if(this.isConnected())this.server.sendToolListChanged()}sendPromptListChanged(){if(this.isConnected())this.server.sendPromptListChanged()}}var xJ$={type:"object",properties:{}};function jx($){return $!==null&&typeof $==="object"&&"parse"in $&&typeof $.parse==="function"&&"safeParse"in $&&typeof $.safeParse==="function"}function fJ$($){return"_def"in $||"_zod"in $||jx($)}function uL($){if(typeof $!=="object"||$===null)return!1;if(fJ$($))return!1;if(Object.keys($).length===0)return!0;return Object.values($).some(jx)}function Zx($){if(!$)return;if(uL($))return sX($);return $}function bJ$($){let J=vQ($);if(!J)return[];return Object.entries(J).map(([Q,Y])=>{let X=EE(Y),G=PE(Y);return{name:Q,description:X,required:!G}})}function uQ($){let Q=vQ($)?.method;if(!Q)throw Error("Schema is missing a method literal");let Y=xV(Q);if(typeof Y==="string")return Y;throw Error("Schema method literal must be a string")}function Fx($){return{completion:{values:$.slice(0,100),total:$.length,hasMore:$.length>100}}}var XW={completion:{values:[],hasMore:!1}};import _x from"node:process";class lL{append($){this._buffer=this._buffer?Buffer.concat([this._buffer,$]):$}readMessage(){if(!this._buffer)return null;let $=this._buffer.indexOf(`
111
111
  `);if($===-1)return null;let J=this._buffer.toString("utf8",0,$).replace(/\r$/,"");return this._buffer=this._buffer.subarray($+1),gJ$(J)}clear(){this._buffer=void 0}}function gJ$($){return oP.parse(JSON.parse($))}function Sx($){return JSON.stringify($)+`
112
- `}class nL{constructor($=_x.stdin,J=_x.stdout){this._stdin=$,this._stdout=J,this._readBuffer=new lL,this._started=!1,this._ondata=(Q)=>{this._readBuffer.append(Q),this.processReadBuffer()},this._onerror=(Q)=>{this.onerror?.(Q)}}async start(){if(this._started)throw Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){while(!0)try{let $=this._readBuffer.readMessage();if($===null)break;this.onmessage?.($)}catch($){this.onerror?.($)}}async close(){if(this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0)this._stdin.pause();this._readBuffer.clear(),this.onclose?.()}send($){return new Promise((J)=>{let Q=Sx($);if(this._stdout.write(Q))J();else this._stdout.once("drain",J)})}}var B3={name:"@0xmonaco/mcp-server",version:"0.7.0",type:"module",repository:{type:"git",url:"https://github.com/Monaco-Research/monaco-sdk.git",directory:"packages/mcp-server"},description:"MCP server for the Monaco SDK",engines:{node:">=18"},bin:"./dist/bin.js",files:["dist"],scripts:{build:"bun build src/bin.ts --outdir dist --target node --format esm --minify",dev:"bun --watch src/bin.ts",start:"bun dist/bin.js",clean:"rm -rf dist",lint:"biome lint .",test:"bun test"},author:"@codebycarson",dependencies:{"@0xmonaco/core":"*","@0xmonaco/types":"*","@modelcontextprotocol/sdk":"^1.26.0","node-fetch":"^3.3.2",viem:"^2.45.2",ws:"^8.19.0",zod:"^4.0.0"},devDependencies:{"@types/bun":"latest","@types/ws":"^8.18.1"}};var hJ$={mainnet:"https://evm-rpc.sei-apis.com",development:"https://evm-rpc-testnet.sei-apis.com",staging:"https://evm-rpc-testnet.sei-apis.com",local:"http://localhost:8545"};function mQ($=process.env){let J=$.MONACO_PRIVATE_KEY||null;if(J&&!J.startsWith("0x"))throw Error("MONACO_PRIVATE_KEY must start with '0x'.");let Q=$.MONACO_CLIENT_ID||null;if(J&&!Q)throw Error("MONACO_CLIENT_ID is required when MONACO_PRIVATE_KEY is set.");let Y=["mainnet","development","staging","local"],X=$.MONACO_NETWORK||"mainnet";if(!Y.includes(X))throw Error(`MONACO_NETWORK must be one of: ${Y.join(", ")}. Got: "${X}".`);let G=X,W=$.MONACO_RPC_URL||hJ$[G];return{privateKey:J,clientId:Q,network:G,seiRpcUrl:W}}function uJ$($){return $.replace(/_([a-z])/g,(J,Q)=>Q.toUpperCase())}function NY($){if($===null||$===void 0)return $;if(typeof $!=="object")return $;if(Array.isArray($))return $.map((Q)=>NY(Q));let J={};for(let[Q,Y]of Object.entries($))J[uJ$(Q)]=typeof Y==="object"&&Y!==null?NY(Y):Y;return J}var YW=[0.0001,0.001,0.01,0.1,1,10,100,1000,1e4];var mJ$=1e4,lJ$=15000,nJ$=30000,dJ$=["created","cancelled","triggered","failed","oco_cancelled"],pJ$=["STOP_LOSS","TAKE_PROFIT"],iJ$=["MARK_PRICE"],cJ$=["ACTIVE","TRIGGERING","TRIGGERED","CANCELLED","EXPIRED","FAILED"];function Ex($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function W8($,J){let Q=$[J];if(typeof Q!=="string"||Q.length===0)throw Error(`Invalid conditional order event: ${J} must be a non-empty string`);return Q}function EJ($,J){let Q=$[J];if(Q===void 0||Q===null)return;if(typeof Q!=="string")throw Error(`Invalid conditional order event: ${J} must be a string`);return Q}function oJ$($,J){let Q=$[J];if(typeof Q!=="boolean")throw Error(`Invalid conditional order event: ${J} must be a boolean`);return Q}function rJ$($,J){let Q=$[J];if(Q===void 0||Q===null)return;if(typeof Q!=="number"||!Number.isFinite(Q))throw Error(`Invalid conditional order event: ${J} must be a finite number`);return Q}function lQ($,J,Q){let Y=W8($,J);if(!Q.includes(Y))throw Error(`Invalid conditional order event: ${J} must be one of ${Q.join(", ")}`);return Y}function tJ$($,J,Q){let Y=$[J];if(Y===void 0||Y===null)return;if(typeof Y!=="string"||!Q.includes(Y))throw Error(`Invalid conditional order event: ${J} must be one of ${Q.join(", ")}`);return Y}function aJ$($){if(!Ex($))throw Error("Invalid conditional order event: payload must be an object");if(!Ex($.data))throw Error("Invalid conditional order event: data must be an object");let J=NY($.data);return{eventType:lQ($,"event_type",["conditional_order_update"]),userId:W8($,"user_id"),data:{conditionalOrderId:W8(J,"conditionalOrderId"),tradingPairId:W8(J,"tradingPairId"),marginAccountId:W8(J,"marginAccountId"),positionId:EJ(J,"positionId"),linkedGroupId:EJ(J,"linkedGroupId"),conditionType:lQ(J,"conditionType",pJ$),triggerSource:lQ(J,"triggerSource",iJ$),triggerPrice:W8(J,"triggerPrice"),side:lQ(J,"side",["BUY","SELL"]),positionSide:lQ(J,"positionSide",["LONG","SHORT","NONE"]),orderType:lQ(J,"orderType",["LIMIT","MARKET"]),limitPrice:EJ(J,"limitPrice"),quantity:EJ(J,"quantity"),slippageToleranceBps:rJ$(J,"slippageToleranceBps"),reduceOnly:oJ$(J,"reduceOnly"),timeInForce:tJ$(J,"timeInForce",["GTC","IOC"]),state:lQ(J,"state",cJ$),triggeredOrderId:EJ(J,"triggeredOrderId"),triggeredAt:EJ(J,"triggeredAt"),cancelledAt:EJ(J,"cancelledAt"),expiresAt:EJ(J,"expiresAt"),failureReason:EJ(J,"failureReason"),reason:lQ(J,"reason",dJ$),updatedAt:W8(J,"updatedAt")}}}function dL($,J={}){let Q=null,Y=J.token,X=0,G=null,W=null,D=J.autoReconnect??!0,U=J.maxReconnectAttempts??5,V=new Map,O=()=>{if(!Q)return"disconnected";switch(Q.readyState){case WebSocket.CONNECTING:return"connecting";case WebSocket.OPEN:return"connected";default:return"disconnected"}},M=()=>{let m=new URL($);if(Y)m.searchParams.set("token",Y);return m.toString()},N=()=>{if(W)clearInterval(W),W=null},q=()=>{N(),W=setInterval(()=>{if(Q?.readyState===WebSocket.OPEN)Q.send(JSON.stringify({type:"Ping"}))},lJ$)},w=()=>{if(G)clearTimeout(G),G=null},I=()=>{if(!D||X>=U){console.error("WebSocket: Max reconnect attempts reached");return}X++;let m=Math.min(1000*2**X,nJ$);G=setTimeout(()=>{B().catch((T)=>{console.warn("WebSocket: Failed to reconnect:",T)})},m)},Z=(m)=>{if(Q?.readyState===WebSocket.OPEN)Q.send(JSON.stringify(m))},L=()=>{let m=Array.from(V.keys());if(m.length>0)Z({type:"Subscribe",channels:m})},_=(m)=>{if(m.type!=="Event"||!m.channel)return;for(let[T,u]of V)if(m.channel===T||m.channel.startsWith(`${T}:`))for(let d of u)d(m.data)},B=()=>{return new Promise((m,T)=>{if(Q?.readyState===WebSocket.CONNECTING||Q?.readyState===WebSocket.OPEN){m();return}try{let u=new WebSocket(M());Q=u;let d=setTimeout(()=>{if(Q!==u){m();return}if(u.readyState===WebSocket.CONNECTING)u.close(1000,"Connection timeout"),T(Error("WebSocket connection timeout"))},mJ$);u.onopen=()=>{if(clearTimeout(d),Q!==u){m();return}X=0,q(),L(),J.onStatusChange?.("connected"),m()},u.onmessage=(b)=>{if(Q!==u)return;try{let i=JSON.parse(b.data);if(i.type==="Pong")return;_(i)}catch(i){console.warn("WebSocket: Failed to parse message",i)}},u.onclose=(b)=>{if(clearTimeout(d),Q!==u){m();return}if(Q=null,N(),J.onStatusChange?.("disconnected"),D&&b.code!==1000)I()},u.onerror=()=>clearTimeout(d)}catch(u){J.onStatusChange?.("disconnected"),T(u)}})},F=()=>{D=!1,w(),N(),V.clear(),Q?.close(1000,"Client disconnect"),Q=null,J.onStatusChange?.("disconnected")},S=(m,T)=>{let u=!V.has(m);if(!V.has(m))V.set(m,new Set);if(V.get(m)?.add(T),u&&Q?.readyState===WebSocket.OPEN)Z({type:"Subscribe",channels:[m]});return()=>{let d=V.get(m);if(d){if(d.delete(T),d.size===0){if(V.delete(m),Q?.readyState===WebSocket.OPEN)Z({type:"Unsubscribe",channels:[m]})}}}};return{connect:B,disconnect:F,isConnected:()=>Q?.readyState===WebSocket.OPEN,getStatus:O,setToken:(m)=>{Y=m||void 0,w();let T=Q;if(T?.readyState===WebSocket.OPEN||T?.readyState===WebSocket.CONNECTING||T?.readyState===WebSocket.CLOSING)T.close(1000,m?"Token updated, reconnecting.":"Token cleared."),Q=null;if(!m)return;B().catch((u)=>{console.warn("WebSocket: Failed to reconnect after token update:",u)})},orders:(m,T,u)=>{let d=`orders:${m}:${T}`;return S(d,(b)=>{try{let i=b,V$={orderId:i.order_id,eventType:i.event_type,timestamp:i.timestamp,data:NY(i.data)};u(V$)}catch(i){console.error("WebSocket: Error processing order event",i)}})},orderbook:(m,T,u,d,b)=>{if(!m||!T||u===void 0||!d)throw Error(`orderbook subscription requires all params: tradingPairId="${m}", tradingMode="${T}", magnitude=${u} (valid: ${YW.join(", ")}), quotationMode="${d}" (valid: "BASE", "QUOTE")`);if(!YW.includes(u))throw Error(`Invalid magnitude: ${u}. Must be one of: ${YW.join(", ")}`);let i=`orderbook:${m}:${T}:${u}:${d.toLowerCase()}`;return S(i,(V$)=>{try{let R$=V$,P$=R$.data,w6={tradingPairId:R$.symbol,tradingMode:R$.trading_mode,bids:(P$?.bids||[]).map((e$)=>({price:e$.price,quantity:e$.quantity,orderCount:e$.order_count||0})),asks:(P$?.asks||[]).map((e$)=>({price:e$.price,quantity:e$.quantity,orderCount:e$.order_count||0})),bestBid:P$?.best_bid,bestAsk:P$?.best_ask,bidVolume:P$?.bid_volume||void 0,askVolume:P$?.ask_volume||void 0,priceChange:P$?.price_change?{side:P$.price_change.side,oldPrice:P$.price_change.old_price,newPrice:P$.price_change.new_price,levelRemoved:P$.price_change.level_removed||!1,levelAdded:P$.price_change.level_added||!1}:void 0,baseDecimals:R$.base_decimals||0,quoteDecimals:R$.quote_decimals||0,timestamp:R$.timestamp||new Date().toISOString(),sequence:R$.sequence_number||0};b(w6)}catch(R$){console.error("WebSocket: Error processing orderbook event",R$)}})},ohlcv:(m,T,u,d)=>{let b=`ohlcv:${m}:${T}:${u}`;return S(b,(i)=>{try{let V$=i,R$=V$.data,P$={tradingPairId:V$.symbol,tradingMode:V$.trading_mode,interval:V$.interval,candlestick:{T:R$.period_start||0,t:R$.period_end||0,o:R$.open||"0",h:R$.high||"0",l:R$.low||"0",c:R$.close||"0",v:R$.volume||"0",s:V$.symbol,i:V$.interval,n:R$.trades_count||0}};d(P$)}catch(V$){console.error("WebSocket: Error processing OHLCV event",V$)}})},trades:(m,T)=>{let u=`trades:${m}`;return S(u,(d)=>{try{let b=d,i=b.data,V$={eventType:"trade",tradingPairId:b.trading_pair_id,tradingMode:b.trading_mode.toUpperCase(),data:{tradeId:i.trade_id,price:i.price,quantity:i.quantity,makerSide:i.maker_side.toUpperCase(),executedAt:i.executed_at}};T(V$)}catch(b){console.error("WebSocket: Error processing trade event",b)}})},movements:(m)=>{return S("movements",(u)=>{try{let d=u,b=d.data,i={eventType:"movement",userId:d.user_id,data:{id:b.id,entryType:b.entry_type,transactionType:b.transaction_type,tokenAddress:b.token_address,amount:String(b.amount),amountRaw:b.amount_raw,balanceBefore:b.balance_before!=null?String(b.balance_before):void 0,balanceAfter:b.balance_after!=null?String(b.balance_after):void 0,lockedBefore:b.locked_before!=null?String(b.locked_before):void 0,lockedAfter:b.locked_after!=null?String(b.locked_after):void 0,referenceId:b.reference_id,referenceType:b.reference_type,description:b.description,txHash:b.tx_hash,createdAt:b.created_at,decimals:b.decimals}};m(i)}catch(d){console.error("WebSocket: Error processing movement event",d)}})},userOrders:(m)=>{return S("orders",(u)=>{try{let d=u,b={orderId:d.order_id,eventType:d.event_type,timestamp:d.timestamp,data:NY(d.data)};m(b)}catch(d){console.error("WebSocket: Error processing user order event",d)}})},balances:(m)=>{return S("balances",(u)=>{try{let d=u,b=d.data,i={eventType:"balance_update",userId:d.user_id,data:{tokenAddress:b.token_address,tokenSymbol:b.token_symbol,available:b.available,availableRaw:b.available_raw,locked:b.locked,lockedRaw:b.locked_raw,total:b.total,totalRaw:b.total_raw,reason:b.reason,referenceId:b.reference_id,updatedAt:b.updated_at}};m(i)}catch(d){console.error("WebSocket: Error processing balance event",d)}})},conditionalOrders:(m,T)=>{if(!m)throw Error("conditionalOrders subscription requires a handler");if(T!==void 0&&T.length===0)throw Error("conditionalOrders tradingPairId cannot be empty");let u=T?`conditional_orders:${T}`:"conditional_orders";return S(u,(d)=>{try{m(aJ$(d))}catch(b){console.error("WebSocket: Error processing conditional order event",b)}})}}}var nQ=S1(F3(),1),hf=["token","accessToken","access_token","refreshToken","refresh_token","authToken","auth_token","bearerToken","bearer_token","jwtToken","jwt_token","apiKey","api_key","apikey","clientSecret","client_secret","clientId","client_id","secret","password","authorization","bearer","auth","credentials","credential","email","phone","phoneNumber","phone_number","ssn","socialSecurity","social_security","address","passport","passportNumber","passport_number","driversLicense","drivers_license","cardNumber","card_number","creditCard","credit_card","cvv","pin","signature","privateKey","private_key","publicKey","public_key","mnemonic","seed","salt","hash","certificate","cert","fingerprint","cookie","session","sessionId","session_id","sessionToken","session_token","ipAddress","ip_address","deviceId","device_id","userId","user_id","accountId","account_id"];function qY($,J=5,Q=0){if(Q>=J)return"[Max depth reached]";if($===null||$===void 0)return $;if(Array.isArray($)){let X=$.slice(0,10).map((G)=>qY(G,J,Q+1));if($.length>10)X.push(`[... ${$.length-10} more items]`);return X}if(typeof $==="object"){let Y={};for(let[X,G]of Object.entries($)){let W=X.toLowerCase();if(hf.some((U)=>W.includes(U.toLowerCase())))Y[X]="[REDACTED]";else if(typeof G==="string"&&G.length>500)Y[X]=`${G.substring(0,500)}... [truncated]`;else Y[X]=qY(G,J,Q+1)}return Y}if(typeof $==="string"){if($.length>1000)return`${$.substring(0,1000)}... [truncated]`;return $}return $}class HY extends Error{cause;suggestion;retryable=!1;timestamp;constructor($,J){super($);if(this.name=this.constructor.name,this.timestamp=Date.now(),J?.cause)this.cause=J.cause;if(J?.suggestion)this.suggestion=J.suggestion;if(J?.retryable!==void 0)this.retryable=J.retryable}toJSON(){return{name:this.name,code:this.code,message:this.message,suggestion:this.suggestion,retryable:this.retryable,timestamp:this.timestamp,cause:this.cause instanceof Error?this.cause.message:this.cause}}}class b4 extends HY{code="INVALID_CONFIG";field;value;constructor($,J,Q,Y){let X=J?`Check the '${J}' configuration parameter. ${MQ$(J)}`:"Review your SDK configuration and ensure all required fields are provided correctly.";super($,{cause:Y,suggestion:X,retryable:!1});this.field=J,this.value=Q}toJSON(){let $;if(this.field){let J=this.field.toLowerCase();if(hf.some((Y)=>J.includes(Y.toLowerCase())))$="[REDACTED]";else $=qY(this.value)}else $=qY(this.value);return{...super.toJSON(),field:this.field,value:$}}}function MQ$($){switch($.toLowerCase()){case"walletclient":return"Ensure you're creating the wallet client with a valid account and chain configuration.";case"seirpcurl":return"Use 'https://evm-rpc-testnet.sei-apis.com' for testnet or 'https://evm-rpc.sei-apis.com' for mainnet.";case"wsurl":return"Use 'wss://development.apimonaco.xyz/ws' for testnet or 'wss://api.monaco.xyz/ws' for mainnet.";case"network":return"Valid networks are: 'mainnet', 'development', 'staging', 'local'.";default:return"Refer to the SDK documentation for correct configuration format."}}class GW extends HY{code="INVALID_STATE";currentState;expectedState;constructor($,J,Q,Y){let X=Q?`${J?`Current state is '${J}', `:""}Expected state is '${Q}'. Ensure operations are performed in the correct order.`:"Check that prerequisites are met before calling this method.";super($,{cause:Y,suggestion:X,retryable:!1});this.currentState=J,this.expectedState=Q}toJSON(){return{...super.toJSON(),currentState:this.currentState,expectedState:this.expectedState}}}class f6 extends HY{code="API_ERROR";endpoint;statusCode;responseBody;requestBody;requestId;retryAfter;constructor($,J){let{suggestion:Q,retryable:Y}=zQ$(J?.statusCode,$,J?.responseBody);super($,{cause:J?.cause,suggestion:Q,retryable:Y});this.endpoint=J?.endpoint,this.statusCode=J?.statusCode,this.responseBody=J?.responseBody,this.requestBody=J?.requestBody,this.requestId=J?.requestId,this.retryAfter=J?.retryAfter}toJSON(){return{...super.toJSON(),endpoint:this.endpoint,statusCode:this.statusCode,responseBody:qY(this.responseBody),requestBody:qY(this.requestBody),requestId:this.requestId,retryAfter:this.retryAfter}}}function zQ$($,J,Q){if(!$)return{suggestion:"Network request failed. Check your internet connection and try again.",retryable:!0};if($===nQ.StatusCodes.UNAUTHORIZED){if(J?.toLowerCase().includes("expired"))return{suggestion:"Access token has expired. Call sdk.refreshAuth() to get a new token, or call sdk.login() to re-authenticate.",retryable:!1};return{suggestion:"Authentication required. Call sdk.login(clientId) to authenticate before making this request.",retryable:!1}}if($===nQ.StatusCodes.FORBIDDEN)return{suggestion:"Access denied. Ensure your application has the required permissions and your client ID is valid.",retryable:!1};if($===nQ.StatusCodes.NOT_FOUND)return{suggestion:"Resource not found. Check that the ID or identifier is correct and the resource exists.",retryable:!1};if($===nQ.StatusCodes.CONFLICT)return{suggestion:"Resource conflict. The resource may have been modified. Refresh and try again.",retryable:!0};if($===nQ.StatusCodes.BAD_REQUEST){if(J?.toLowerCase().includes("insufficient balance"))return{suggestion:"Insufficient balance. Deposit more funds using sdk.vault.deposit() or reduce the order size.",retryable:!1};if(J?.toLowerCase().includes("invalid"))return{suggestion:"Invalid request parameters. Check the API documentation for correct parameter format and values.",retryable:!1};return{suggestion:"Bad request. Verify that all required parameters are provided and correctly formatted.",retryable:!1}}if($===nQ.StatusCodes.TOO_MANY_REQUESTS){let Y;if(typeof Q==="object"&&Q!==null&&"retry_after"in Q&&Q.retry_after){let X=Q.retry_after;Y=` Wait ${String(X)} seconds before retrying.`}else Y=" Wait a moment before retrying.";return{suggestion:`Rate limit exceeded.${Y} Consider implementing exponential backoff for retries.`,retryable:!0}}if($>=nQ.StatusCodes.INTERNAL_SERVER_ERROR&&$<600)return{suggestion:"Server error occurred. This is likely a temporary issue. Try again in a few moments.",retryable:!0};return{suggestion:void 0,retryable:!1}}class D8 extends HY{code="CONTRACT_ERROR";revertReason;transactionHash;contractAddress;constructor($,J){let Q=NQ$(J?.revertReason);super($,{cause:J?.cause,suggestion:Q,retryable:!1});this.revertReason=J?.revertReason,this.transactionHash=J?.transactionHash,this.contractAddress=J?.contractAddress}toJSON(){return{...super.toJSON(),revertReason:this.revertReason,transactionHash:this.transactionHash,contractAddress:this.contractAddress}}}function NQ$($){if(!$)return"Smart contract execution failed. Check transaction parameters and try again.";let J=$.toLowerCase();if(J.includes("insufficient allowance"))return"Token allowance is insufficient. Call sdk.vault.approve() to increase the token allowance for the vault contract.";if(J.includes("insufficient balance"))return"Wallet balance is insufficient for this transaction. Ensure you have enough tokens and native currency for gas fees.";if(J.includes("nonce"))return"Transaction nonce error. This may be due to a pending transaction. Wait for pending transactions to complete or reset your account nonce.";if(J.includes("gas"))return"Transaction ran out of gas. Try increasing the gas limit for this transaction.";return}var qQ$={local:"http://localhost:8080",development:"https://develop.apimonaco.xyz",staging:"https://staging.apimonaco.xyz",mainnet:"https://api.monaco.xyz"},HQ$={local:"ws://localhost:8085/ws",development:"wss://develop.apimonaco.xyz/ws",staging:"wss://staging.apimonaco.xyz/ws",mainnet:"wss://api.monaco.xyz/ws"};function WW($){return qQ$[$]}function aL($){return HQ$[$]}var dm=S1(F3(),1);var j3=256,S3;function _3($=11){if(!S3||j3+$>512){S3="",j3=0;for(let J=0;J<256;J++)S3+=(256+Math.random()*256|0).toString(16).substring(1)}return S3.substring(j3,j3+++$)}function E3($){let{batch:J,chain:Q,ccipRead:Y,dataSuffix:X,key:G="base",name:W="Base Client",type:D="base"}=$,U=$.experimental_blockTag??(typeof Q?.experimental_preconfirmationTime==="number"?"pending":void 0),V=Q?.blockTime??12000,O=Math.min(Math.max(Math.floor(V/2),500),4000),M=$.pollingInterval??O,N=$.cacheTime??M,q=$.account?_$($.account):void 0,{config:w,request:I,value:Z}=$.transport({account:q,chain:Q,pollingInterval:M}),L={...w,...Z},_={account:q,batch:J,cacheTime:N,ccipRead:Y,chain:Q,dataSuffix:X,key:G,name:W,pollingInterval:M,request:I,transport:L,type:D,uid:_3(),...U?{experimental_blockTag:U}:{}};function B(F){return(S)=>{let v=S(F);for(let h in _)delete v[h];let k={...F,...v};return Object.assign(k,{extend:B(k)})}}return Object.assign(_,{extend:B(_)})}PJ();eQ();w1();H8();w$();x$();$X();function RY($){if(!($ instanceof R))return!1;let J=$.walk((Q)=>Q instanceof vY);if(!(J instanceof vY))return!1;if(J.data?.errorName==="HttpError")return!0;if(J.data?.errorName==="ResolverError")return!0;if(J.data?.errorName==="ResolverNotContract")return!0;if(J.data?.errorName==="ResolverNotFound")return!0;if(J.data?.errorName==="ReverseAddressMismatch")return!0;if(J.data?.errorName==="UnsupportedResolverProfile")return!0;return!1}PW();$6();w$();b1();function NM($){if($.length!==66)return null;if($.indexOf("[")!==0)return null;if($.indexOf("]")!==65)return null;let J=`0x${$.slice(1,65)}`;if(!T4(J))return null;return J}function vW($){let J=new Uint8Array(32).fill(0);if(!$)return a$(J);let Q=$.split(".");for(let Y=Q.length-1;Y>=0;Y-=1){let X=NM(Q[Y]),G=X?f1(X):U4(O0(Q[Y]),"bytes");J=U4(Z4([J,G]),"bytes")}return a$(J)}$6();function wg($){return`[${$.slice(2)}]`}$6();w$();b1();function Ag($){let J=new Uint8Array(32).fill(0);if(!$)return a$(J);return NM($)||U4(O0($))}function TY($){let J=$.replace(/^\.|\.$/gm,"");if(J.length===0)return new Uint8Array(1);let Q=new Uint8Array(O0(J).byteLength+2),Y=0,X=J.split(".");for(let G=0;G<X.length;G++){let W=O0(X[G]);if(W.byteLength>255)W=O0(wg(Ag(X[G])));Q[Y]=W.length,Q.set(W,Y+1),Y+=W.length+1}if(Q.byteLength!==Y+1)return Q.slice(0,Y+1);return Q}function p($,J,Q){let Y=$[J.name];if(typeof Y==="function")return Y;let X=$[Q];if(typeof X==="function")return X;return(G)=>J($,G)}eQ();w1();l4();x$();$X();L8();aY();var IX$=3;function A1($,{abi:J,address:Q,args:Y,docsPath:X,functionName:G,sender:W}){let D=$ instanceof hJ?$:$ instanceof R?$.walk((w)=>("data"in w))||$.walk():{},{code:U,data:V,details:O,message:M,shortMessage:N}=D,q=(()=>{if($ instanceof K0)return new zB({functionName:G});if([IX$,mJ.code].includes(U)&&(V||O||M||N)||U===m1.code&&O==="execution reverted"&&V)return new vY({abi:J,data:typeof V==="object"?V.data:V,functionName:G,message:D instanceof I8?O:N??M});return $})();return new EW(q,{abi:J,args:Y,contractAddress:Q,docsPath:X,functionName:G,sender:W})}O5();async function i4($,J){let{abi:Q,address:Y,args:X,functionName:G,...W}=J,D=S4({abi:Q,args:X,functionName:G});try{let{data:U}=await p($,r0,"call")({...W,data:D,to:Y});return $1({abi:Q,args:X,functionName:G,data:U||"0x"})}catch(U){throw A1(U,{abi:Q,address:Y,args:X,docsPath:"/docs/contract/readContract",functionName:G})}}async function Yy($,J){let{blockNumber:Q,blockTag:Y,coinType:X,name:G,gatewayUrls:W,strict:D}=J,{chain:U}=$,V=(()=>{if(J.universalResolverAddress)return J.universalResolverAddress;if(!U)throw Error("client chain not configured. universalResolverAddress is required.");return h1({blockNumber:Q,chain:U,contract:"ensUniversalResolver"})})(),O=U?.ensTlds;if(O&&!O.some((N)=>G.endsWith(N)))return null;let M=(()=>{if(X!=null)return[vW(G),BigInt(X)];return[vW(G)]})();try{let N=S4({abi:eL,functionName:"addr",args:M}),q={address:V,abi:v3,functionName:"resolveWithGateways",args:[P4(TY(G)),N,W??[uJ]],blockNumber:Q,blockTag:Y},I=await p($,i4,"readContract")(q);if(I[0]==="0x")return null;let Z=$1({abi:eL,args:M,functionName:"addr",data:I[0]});if(Z==="0x")return null;if(s4(Z)==="0x00")return null;return Z}catch(N){if(D)throw N;if(RY(N))return null;throw N}}x$();class rB extends R{constructor({data:$}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify($)}`],name:"EnsAvatarInvalidMetadataError"})}}class P8 extends R{constructor({reason:$}){super(`ENS NFT avatar URI is invalid. ${$}`,{name:"EnsAvatarInvalidNftUriError"})}}class nW extends R{constructor({uri:$}){super(`Unable to resolve ENS avatar URI "${$}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}}class tB extends R{constructor({namespace:$}){super(`ENS NFT avatar namespace "${$}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}}var lX$=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,nX$=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/,dX$=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,pX$=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function iX$($){try{let J=await fetch($,{method:"HEAD"});if(J.status===200)return J.headers.get("content-type")?.startsWith("image/");return!1}catch(J){if(typeof J==="object"&&typeof J.response<"u")return!1;if(!Object.hasOwn(globalThis,"Image"))return!1;return new Promise((Q)=>{let Y=new Image;Y.onload=()=>{Q(!0)},Y.onerror=()=>{Q(!1)},Y.src=$})}}function Gy($,J){if(!$)return J;if($.endsWith("/"))return $.slice(0,-1);return $}function aB({uri:$,gatewayUrls:J}){let Q=dX$.test($);if(Q)return{uri:$,isOnChain:!0,isEncoded:Q};let Y=Gy(J?.ipfs,"https://ipfs.io"),X=Gy(J?.arweave,"https://arweave.net"),G=$.match(lX$),{protocol:W,subpath:D,target:U,subtarget:V=""}=G?.groups||{},O=W==="ipns:/"||D==="ipns/",M=W==="ipfs:/"||D==="ipfs/"||nX$.test($);if($.startsWith("http")&&!O&&!M){let q=$;if(J?.arweave)q=$.replace(/https:\/\/arweave.net/g,J?.arweave);return{uri:q,isOnChain:!1,isEncoded:!1}}if((O||M)&&U)return{uri:`${Y}/${O?"ipns":"ipfs"}/${U}${V}`,isOnChain:!1,isEncoded:!1};if(W==="ar:/"&&U)return{uri:`${X}/${U}${V||""}`,isOnChain:!1,isEncoded:!1};let N=$.replace(pX$,"");if(N.startsWith("<svg"))N=`data:image/svg+xml;base64,${btoa(N)}`;if(N.startsWith("data:")||N.startsWith("{"))return{uri:N,isOnChain:!0,isEncoded:!1};throw new nW({uri:$})}function sB($){if(typeof $!=="object"||!("image"in $)&&!("image_url"in $)&&!("image_data"in $))throw new rB({data:$});return $.image||$.image_url||$.image_data}async function Wy({gatewayUrls:$,uri:J}){try{let Q=await fetch(J).then((X)=>X.json());return await vM({gatewayUrls:$,uri:sB(Q)})}catch{throw new nW({uri:J})}}async function vM({gatewayUrls:$,uri:J}){let{uri:Q,isOnChain:Y}=aB({uri:J,gatewayUrls:$});if(Y)return Q;if(await iX$(Q))return Q;throw new nW({uri:J})}function Dy($){let J=$;if(J.startsWith("did:nft:"))J=J.replace("did:nft:","").replace(/_/g,"/");let[Q,Y,X]=J.split("/"),[G,W]=Q.split(":"),[D,U]=Y.split(":");if(!G||G.toLowerCase()!=="eip155")throw new P8({reason:"Only EIP-155 supported"});if(!W)throw new P8({reason:"Chain ID not found"});if(!U)throw new P8({reason:"Contract address not found"});if(!X)throw new P8({reason:"Token ID not found"});if(!D)throw new P8({reason:"ERC namespace not found"});return{chainID:Number.parseInt(W,10),namespace:D.toLowerCase(),contractAddress:U,tokenID:X}}async function Uy($,{nft:J}){if(J.namespace==="erc721")return i4($,{address:J.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(J.tokenID)]});if(J.namespace==="erc1155")return i4($,{address:J.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(J.tokenID)]});throw new tB({namespace:J.namespace})}async function Ky($,{gatewayUrls:J,record:Q}){if(/eip155:/i.test(Q))return cX$($,{gatewayUrls:J,record:Q});return vM({uri:Q,gatewayUrls:J})}async function cX$($,{gatewayUrls:J,record:Q}){let Y=Dy(Q),X=await Uy($,{nft:Y}),{uri:G,isOnChain:W,isEncoded:D}=aB({uri:X,gatewayUrls:J});if(W&&(G.includes("data:application/json;base64,")||G.startsWith("{"))){let V=D?atob(G.replace("data:application/json;base64,","")):G,O=JSON.parse(V);return vM({uri:sB(O),gatewayUrls:J})}let U=Y.tokenID;if(Y.namespace==="erc1155")U=U.replace("0x","").padStart(64,"0");return Wy({gatewayUrls:J,uri:G.replace(/(?:0x)?{id}/,U)})}PJ();eQ();w1();H8();w$();PW();async function RM($,J){let{blockNumber:Q,blockTag:Y,key:X,name:G,gatewayUrls:W,strict:D}=J,{chain:U}=$,V=(()=>{if(J.universalResolverAddress)return J.universalResolverAddress;if(!U)throw Error("client chain not configured. universalResolverAddress is required.");return h1({blockNumber:Q,chain:U,contract:"ensUniversalResolver"})})(),O=U?.ensTlds;if(O&&!O.some((M)=>G.endsWith(M)))return null;try{let M={address:V,abi:v3,args:[P4(TY(G)),S4({abi:sL,functionName:"text",args:[vW(G),X]}),W??[uJ]],functionName:"resolveWithGateways",blockNumber:Q,blockTag:Y},q=await p($,i4,"readContract")(M);if(q[0]==="0x")return null;let w=$1({abi:sL,functionName:"text",data:q[0]});return w===""?null:w}catch(M){if(D)throw M;if(RY(M))return null;throw M}}async function Vy($,{blockNumber:J,blockTag:Q,assetGatewayUrls:Y,name:X,gatewayUrls:G,strict:W,universalResolverAddress:D}){let U=await p($,RM,"getEnsText")({blockNumber:J,blockTag:Q,key:"avatar",name:X,universalResolverAddress:D,gatewayUrls:G,strict:W});if(!U)return null;try{return await Ky($,{record:U,gatewayUrls:Y})}catch{return null}}PJ();H8();PW();async function Oy($,J){let{address:Q,blockNumber:Y,blockTag:X,coinType:G=60n,gatewayUrls:W,strict:D}=J,{chain:U}=$,V=(()=>{if(J.universalResolverAddress)return J.universalResolverAddress;if(!U)throw Error("client chain not configured. universalResolverAddress is required.");return h1({blockNumber:Y,chain:U,contract:"ensUniversalResolver"})})();try{let O={address:V,abi:mf,args:[Q,G,W??[uJ]],functionName:"reverseWithGateways",blockNumber:Y,blockTag:X},M=p($,i4,"readContract"),[N]=await M(O);return N||null}catch(O){if(D)throw O;if(RY(O))return null;throw O}}H8();w$();async function My($,J){let{blockNumber:Q,blockTag:Y,name:X}=J,{chain:G}=$,W=(()=>{if(J.universalResolverAddress)return J.universalResolverAddress;if(!G)throw Error("client chain not configured. universalResolverAddress is required.");return h1({blockNumber:Q,chain:G,contract:"ensUniversalResolver"})})(),D=G?.ensTlds;if(D&&!D.some((V)=>X.endsWith(V)))throw Error(`${X} is not a valid ENS TLD (${D?.join(", ")}) for chain "${G.name}" (id: ${G.id}).`);let[U]=await p($,i4,"readContract")({address:W,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[P4(TY(X))],blockNumber:Q,blockTag:Y});return U}O5();w$();lB();rJ();o0();async function TM($,J){let{account:Q=$.account,blockNumber:Y,blockTag:X="latest",blobs:G,data:W,gas:D,gasPrice:U,maxFeePerBlobGas:V,maxFeePerGas:O,maxPriorityFeePerGas:M,to:N,value:q,...w}=J,I=Q?_$(Q):void 0;try{Q6(J);let L=(typeof Y==="bigint"?y(Y):void 0)||X,_=$.chain?.formatters?.transactionRequest?.format,F=(_||Z6)({...n1(w,{format:_}),account:I,blobs:G,data:W,gas:D,gasPrice:U,maxFeePerBlobGas:V,maxFeePerGas:O,maxPriorityFeePerGas:M,to:N,value:q},"createAccessList"),S=await $.request({method:"eth_createAccessList",params:[F,L]});return{accessList:S.accessList,gasUsed:BigInt(S.gasUsed)}}catch(Z){throw _M(Z,{...J,account:I,chain:$.chain})}}function KX($,{method:J}){let Q={};if($.transport.type==="fallback")$.transport.onResponse?.(({method:Y,response:X,status:G,transport:W})=>{if(G==="success"&&J===Y)Q[X]=W.request});return(Y)=>Q[Y]||$.request}async function zy($){let J=KX($,{method:"eth_newBlockFilter"}),Q=await $.request({method:"eth_newBlockFilter"});return{id:Q,request:J(Q),type:"block"}}l4();x$();class eB extends R{constructor($){super(`Filter type "${$}" is not supported.`,{name:"FilterTypeNotSupportedError"})}}$6();b1();BW();fJ();vJ();sQ();var Ny="/docs/contract/encodeEventTopics";function t0($){let{abi:J,eventName:Q,args:Y}=$,X=J[0];if(Q){let U=e6({abi:J,name:Q});if(!U)throw new k3(Q,{docsPath:Ny});X=U}if(X.type!=="event")throw new k3(void 0,{docsPath:Ny});let G=c4(X),W=aQ(G),D=[];if(Y&&"inputs"in X){let U=X.inputs?.filter((O)=>("indexed"in O)&&O.indexed),V=Array.isArray(Y)?Y:Object.values(Y).length>0?U?.map((O)=>Y[O.name])??[]:[];if(V.length>0)D=U?.map((O,M)=>{if(Array.isArray(V[M]))return V[M].map((N,q)=>qy({param:O,value:V[M][q]}));return typeof V[M]<"u"&&V[M]!==null?qy({param:O,value:V[M]}):null})??[]}return[W,...D]}function qy({param:$,value:J}){if($.type==="string"||$.type==="bytes")return U4(f1(J));if($.type==="tuple"||$.type.match(/^(.*)\[(\d+)?\]$/))throw new eB($.type);return b6([$],[J])}w$();async function CM($,J){let{address:Q,abi:Y,args:X,eventName:G,fromBlock:W,strict:D,toBlock:U}=J,V=KX($,{method:"eth_newFilter"}),O=G?t0({abi:Y,args:X,eventName:G}):void 0,M=await $.request({method:"eth_newFilter",params:[{address:Q,fromBlock:typeof W==="bigint"?y(W):W,toBlock:typeof U==="bigint"?y(U):U,topics:O}]});return{abi:Y,args:X,eventName:G,id:M,request:V(M),strict:Boolean(D),type:"event"}}w$();async function kM($,{address:J,args:Q,event:Y,events:X,fromBlock:G,strict:W,toBlock:D}={}){let U=X??(Y?[Y]:void 0),V=KX($,{method:"eth_newFilter"}),O=[];if(U){if(O=[U.flatMap((q)=>t0({abi:[q],eventName:q.name,args:Q}))],Y)O=O[0]}let M=await $.request({method:"eth_newFilter",params:[{address:J,fromBlock:typeof G==="bigint"?y(G):G,toBlock:typeof D==="bigint"?y(D):D,...O.length?{topics:O}:{}}]});return{abi:U,args:Q,eventName:Y?Y.name:void 0,fromBlock:G,id:M,request:V(M),strict:Boolean(W),toBlock:D,type:"event"}}async function xM($){let J=KX($,{method:"eth_newPendingTransactionFilter"}),Q=await $.request({method:"eth_newPendingTransactionFilter"});return{id:Q,request:J(Q),type:"transaction"}}w1();x$();oQ();b1();function fM($){let J=U4(`0x${$.substring(4)}`).substring(26);return xJ(`0x${J}`)}x1();e4();w$();async function sy({hash:$,signature:J}){let Q=T4($)?$:P4($),{secp256k1:Y}=await Promise.resolve().then(() => (N5(),ty));return`0x${(()=>{if(typeof J==="object"&&"r"in J&&"s"in J){let{r:V,s:O,v:M,yParity:N}=J,q=Number(N??M),w=ay(q);return new Y.Signature(g4(V),g4(O)).addRecoveryBit(w)}let W=T4(J)?J:P4(J);if(t$(W)!==65)throw Error("invalid signature length");let D=C4(`0x${W.slice(130)}`),U=ay(D);return Y.Signature.fromCompact(W.substring(2,130)).addRecoveryBit(U)})().recoverPublicKey(Q.substring(2)).toHex(!1)}`}function ay($){if($===0||$===1)return $;if($===27)return 0;if($===28)return 1;throw Error("Invalid yParityOrV value")}async function mM({hash:$,signature:J}){return fM(await sy({hash:$,signature:J}))}$6();w$();x$();c3();$6();w$();function sJ($,J="hex"){let Q=ey($),Y=AY(new Uint8Array(Q.length));if(Q.encode(Y),J==="hex")return a$(Y.bytes);return Y.bytes}function ey($){if(Array.isArray($))return B8$($.map((J)=>ey(J)));return Z8$($)}function B8$($){let J=$.reduce((X,G)=>X+G.length,0),Q=$h(J);return{length:(()=>{if(J<=55)return 1+J;return 1+Q+J})(),encode(X){if(J<=55)X.pushByte(192+J);else if(X.pushByte(247+Q),Q===1)X.pushUint8(J);else if(Q===2)X.pushUint16(J);else if(Q===3)X.pushUint24(J);else X.pushUint32(J);for(let{encode:G}of $)G(X)}}}function Z8$($){let J=typeof $==="string"?o4($):$,Q=$h(J.length);return{length:(()=>{if(J.length===1&&J[0]<128)return 1;if(J.length<=55)return 1+J.length;return 1+Q+J.length})(),encode(X){if(J.length===1&&J[0]<128)X.pushBytes(J);else if(J.length<=55)X.pushByte(128+J.length),X.pushBytes(J);else{if(X.pushByte(183+Q),Q===1)X.pushUint8(J.length);else if(Q===2)X.pushUint16(J.length);else if(Q===3)X.pushUint24(J.length);else X.pushUint32(J.length);X.pushBytes(J)}}}}function $h($){if($<256)return 1;if($<65536)return 2;if($<16777216)return 3;if($<4294967296)return 4;throw new R("Length is too large.")}b1();function lM($){let{chainId:J,nonce:Q,to:Y}=$,X=$.contractAddress??$.address,G=U4(B6(["0x05",sJ([J?y(J):"0x",X,Q?y(Q):"0x"])]));if(Y==="bytes")return o4(G);return G}async function NX($){let{authorization:J,signature:Q}=$;return mM({hash:lM(J),signature:Q??J})}w$();zM();PY();x$();u1();class FZ extends R{constructor($,{account:J,docsPath:Q,chain:Y,data:X,gas:G,gasPrice:W,maxFeePerGas:D,maxPriorityFeePerGas:U,nonce:V,to:O,value:M}){let N=w8({from:J?.address,to:O,value:typeof M<"u"&&`${EY(M)} ${Y?.nativeCurrency?.symbol||"ETH"}`,data:X,gas:G,gasPrice:typeof W<"u"&&`${r4(W)} gwei`,maxFeePerGas:typeof D<"u"&&`${r4(D)} gwei`,maxPriorityFeePerGas:typeof U<"u"&&`${r4(U)} gwei`,nonce:V});super($.shortMessage,{cause:$,docsPath:Q,metaMessages:[...$.metaMessages?[...$.metaMessages," "]:[],"Estimate Gas Arguments:",N].filter(Boolean),name:"EstimateGasExecutionError"});Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=$}}DX();lW();function Jh($,{docsPath:J,...Q}){let Y=(()=>{let X=UX($,Q);if(X instanceof H0)return $;return X})();return new FZ(Y,{docsPath:J,...Q})}rJ();PM();o0();PY();x$();class aW extends R{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}}class T8 extends R{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}}class jZ extends R{constructor({maxPriorityFeePerGas:$}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${r4($)} gwei).`,{name:"MaxFeePerGasTooLowError"})}}e4();x$();class sW extends R{constructor({blockHash:$,blockNumber:J}){let Q="Block";if($)Q=`Block at hash "${$}"`;if(J)Q=`Block at number "${J}"`;super(`${Q} could not be found.`,{name:"BlockNotFoundError"})}}w$();e4();var SZ={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function q5($,J){let Q={...$,blockHash:$.blockHash?$.blockHash:null,blockNumber:$.blockNumber?BigInt($.blockNumber):null,chainId:$.chainId?C4($.chainId):void 0,gas:$.gas?BigInt($.gas):void 0,gasPrice:$.gasPrice?BigInt($.gasPrice):void 0,maxFeePerBlobGas:$.maxFeePerBlobGas?BigInt($.maxFeePerBlobGas):void 0,maxFeePerGas:$.maxFeePerGas?BigInt($.maxFeePerGas):void 0,maxPriorityFeePerGas:$.maxPriorityFeePerGas?BigInt($.maxPriorityFeePerGas):void 0,nonce:$.nonce?C4($.nonce):void 0,to:$.to?$.to:null,transactionIndex:$.transactionIndex?Number($.transactionIndex):null,type:$.type?SZ[$.type]:void 0,typeHex:$.type?$.type:void 0,value:$.value?BigInt($.value):void 0,v:$.v?BigInt($.v):void 0};if($.authorizationList)Q.authorizationList=F8$($.authorizationList);if(Q.yParity=(()=>{if($.yParity)return Number($.yParity);if(typeof Q.v==="bigint"){if(Q.v===0n||Q.v===27n)return 0;if(Q.v===1n||Q.v===28n)return 1;if(Q.v>=35n)return Q.v%2n===0n?1:0}return})(),Q.type==="legacy")delete Q.accessList,delete Q.maxFeePerBlobGas,delete Q.maxFeePerGas,delete Q.maxPriorityFeePerGas,delete Q.yParity;if(Q.type==="eip2930")delete Q.maxFeePerBlobGas,delete Q.maxFeePerGas,delete Q.maxPriorityFeePerGas;if(Q.type==="eip1559")delete Q.maxFeePerBlobGas;return Q}function F8$($){return $.map((J)=>({address:J.address,chainId:Number(J.chainId),nonce:Number(J.nonce),r:J.r,s:J.s,yParity:Number(J.yParity)}))}function nM($,J){let Q=($.transactions??[]).map((Y)=>{if(typeof Y==="string")return Y;return q5(Y)});return{...$,baseFeePerGas:$.baseFeePerGas?BigInt($.baseFeePerGas):null,blobGasUsed:$.blobGasUsed?BigInt($.blobGasUsed):void 0,difficulty:$.difficulty?BigInt($.difficulty):void 0,excessBlobGas:$.excessBlobGas?BigInt($.excessBlobGas):void 0,gasLimit:$.gasLimit?BigInt($.gasLimit):void 0,gasUsed:$.gasUsed?BigInt($.gasUsed):void 0,hash:$.hash?$.hash:null,logsBloom:$.logsBloom?$.logsBloom:null,nonce:$.nonce?$.nonce:null,number:$.number?BigInt($.number):null,size:$.size?BigInt($.size):void 0,timestamp:$.timestamp?BigInt($.timestamp):void 0,transactions:Q,totalDifficulty:$.totalDifficulty?BigInt($.totalDifficulty):null}}async function X6($,{blockHash:J,blockNumber:Q,blockTag:Y=$.experimental_blockTag??"latest",includeTransactions:X}={}){let G=X??!1,W=Q!==void 0?y(Q):void 0,D=null;if(J)D=await $.request({method:"eth_getBlockByHash",params:[J,G]},{dedupe:!0});else D=await $.request({method:"eth_getBlockByNumber",params:[W||Y,G]},{dedupe:Boolean(W)});if(!D)throw new sW({blockHash:J,blockNumber:Q});return($.chain?.formatters?.block?.format||nM)(D,"getBlock")}async function H5($){let J=await $.request({method:"eth_gasPrice"});return BigInt(J)}async function Qh($,J){return _Z($,J)}async function _Z($,J){let{block:Q,chain:Y=$.chain,request:X}=J||{};try{let G=Y?.fees?.maxPriorityFeePerGas??Y?.fees?.defaultPriorityFee;if(typeof G==="function"){let D=Q||await p($,X6,"getBlock")({}),U=await G({block:D,client:$,request:X});if(U===null)throw Error();return U}if(typeof G<"u")return G;let W=await $.request({method:"eth_maxPriorityFeePerGas"});return g4(W)}catch{let[G,W]=await Promise.all([Q?Promise.resolve(Q):p($,X6,"getBlock")({}),p($,H5,"getGasPrice")({})]);if(typeof G.baseFeePerGas!=="bigint")throw new T8;let D=W-G.baseFeePerGas;if(D<0n)return 0n;return D}}async function Xh($,J){return dM($,J)}async function dM($,J){let{block:Q,chain:Y=$.chain,request:X,type:G="eip1559"}=J||{},W=await(async()=>{if(typeof Y?.fees?.baseFeeMultiplier==="function")return Y.fees.baseFeeMultiplier({block:Q,client:$,request:X});return Y?.fees?.baseFeeMultiplier??1.2})();if(W<1)throw new aW;let U=10**(W.toString().split(".")[1]?.length??0),V=(N)=>N*BigInt(Math.ceil(W*U))/BigInt(U),O=Q?Q:await p($,X6,"getBlock")({});if(typeof Y?.fees?.estimateFeesPerGas==="function"){let N=await Y.fees.estimateFeesPerGas({block:Q,client:$,multiply:V,request:X,type:G});if(N!==null)return N}if(G==="eip1559"){if(typeof O.baseFeePerGas!=="bigint")throw new T8;let N=typeof X?.maxPriorityFeePerGas==="bigint"?X.maxPriorityFeePerGas:await _Z($,{block:O,chain:Y,request:X}),q=V(O.baseFeePerGas);return{maxFeePerGas:X?.maxFeePerGas??q+N,maxPriorityFeePerGas:N}}return{gasPrice:X?.gasPrice??V(await p($,H5,"getGasPrice")({}))}}e4();w$();async function w5($,{address:J,blockTag:Q="latest",blockNumber:Y}){let X=await $.request({method:"eth_getTransactionCount",params:[J,typeof Y==="bigint"?y(Y):Q]},{dedupe:Boolean(Y)});return C4(X)}$6();w$();function A5($){let{kzg:J}=$,Q=$.to??(typeof $.blobs[0]==="string"?"hex":"bytes"),Y=typeof $.blobs[0]==="string"?$.blobs.map((G)=>o4(G)):$.blobs,X=[];for(let G of Y)X.push(Uint8Array.from(J.blobToKzgCommitment(G)));return Q==="bytes"?X:X.map((G)=>a$(G))}$6();w$();function I5($){let{kzg:J}=$,Q=$.to??(typeof $.blobs[0]==="string"?"hex":"bytes"),Y=typeof $.blobs[0]==="string"?$.blobs.map((W)=>o4(W)):$.blobs,X=typeof $.commitments[0]==="string"?$.commitments.map((W)=>o4(W)):$.commitments,G=[];for(let W=0;W<Y.length;W++){let D=Y[W],U=X[W];G.push(Uint8Array.from(J.computeBlobKzgProof(D,U)))}return Q==="bytes"?G:G.map((W)=>a$(W))}w$();QZ();var Yh=v8;$6();w$();function Gh($,J){let Q=J||"hex",Y=Yh(T4($,{strict:!1})?f1($):$);if(Q==="bytes")return Y;return P4(Y)}function Wh($){let{commitment:J,version:Q=1}=$,Y=$.to??(typeof J==="string"?"hex":"bytes"),X=Gh(J,"bytes");return X.set([Q],0),Y==="bytes"?X:a$(X)}function pM($){let{commitments:J,version:Q}=$,Y=$.to??(typeof J[0]==="string"?"hex":"bytes"),X=[];for(let G of J)X.push(Wh({commitment:G,to:Y,version:Q}));return X}var Dh=32,Uh=4096,Kh=131072,EZ=761855;var iM=1;x$();class PZ extends R{constructor({maxSize:$,size:J}){super("Blob size is too large.",{metaMessages:[`Max: ${$} bytes`,`Given: ${J} bytes`],name:"BlobSizeTooLargeError"})}}class eW extends R{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class vZ extends R{constructor({hash:$,size:J}){super(`Versioned hash "${$}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${J}`],name:"InvalidVersionedHashSizeError"})}}class RZ extends R{constructor({hash:$,version:J}){super(`Versioned hash "${$}" version is invalid.`,{metaMessages:[`Expected: ${iM}`,`Received: ${J}`],name:"InvalidVersionedHashVersionError"})}}c3();x1();$6();w$();function Vh($){let J=$.to??(typeof $.data==="string"?"hex":"bytes"),Q=typeof $.data==="string"?o4($.data):$.data,Y=t$(Q);if(!Y)throw new eW;if(Y>EZ)throw new PZ({maxSize:EZ,size:Y});let X=[],G=!0,W=0;while(G){let D=AY(new Uint8Array(Kh)),U=0;while(U<Uh){let V=Q.slice(W,W+(Dh-1));if(D.pushByte(0),D.pushBytes(V),V.length<31){D.pushByte(128),G=!1;break}U++,W+=31}X.push(D)}return J==="bytes"?X.map((D)=>D.bytes):X.map((D)=>a$(D.bytes))}function cM($){let{data:J,kzg:Q,to:Y}=$,X=$.blobs??Vh({data:J,to:Y}),G=$.commitments??A5({blobs:X,kzg:Q,to:Y}),W=$.proofs??I5({blobs:X,commitments:G,kzg:Q,to:Y}),D=[];for(let U=0;U<X.length;U++)D.push({blob:X[U],commitment:G[U],proof:W[U]});return D}N8();o0();u1();function oM($){if($.type)return $.type;if(typeof $.authorizationList<"u")return"eip7702";if(typeof $.blobs<"u"||typeof $.blobVersionedHashes<"u"||typeof $.maxFeePerBlobGas<"u"||typeof $.sidecars<"u")return"eip4844";if(typeof $.maxFeePerGas<"u"||typeof $.maxPriorityFeePerGas<"u")return"eip1559";if(typeof $.gasPrice<"u"){if(typeof $.accessList<"u")return"eip2930";return"legacy"}throw new KB({transaction:$})}DX();u1();lW();function qX($,{docsPath:J,...Q}){let Y=(()=>{let X=UX($,Q);if(X instanceof H0)return $;return X})();return new OB(Y,{docsPath:J,...Q})}rJ();o0();e4();async function j6($){let J=await $.request({method:"eth_chainId"},{dedupe:!0});return C4(J)}async function L5($,J){let{account:Q=$.account,accessList:Y,authorizationList:X,chain:G=$.chain,blobVersionedHashes:W,blobs:D,data:U,gas:V,gasPrice:O,maxFeePerBlobGas:M,maxFeePerGas:N,maxPriorityFeePerGas:q,nonce:w,nonceManager:I,to:Z,type:L,value:_,...B}=J,F=await(async()=>{if(!Q)return w;if(!I)return w;if(typeof w<"u")return w;let h=_$(Q),o=G?G.id:await p($,j6,"getChainId")({});return await I.consume({address:h.address,chainId:o,client:$})})();Q6(J);let S=G?.formatters?.transactionRequest?.format,k=(S||Z6)({...n1(B,{format:S}),account:Q?_$(Q):void 0,accessList:Y,authorizationList:X,blobs:D,blobVersionedHashes:W,data:U,gas:V,gasPrice:O,maxFeePerBlobGas:M,maxFeePerGas:N,maxPriorityFeePerGas:q,nonce:F,to:Z,type:L,value:_},"fillTransaction");try{let h=await $.request({method:"eth_fillTransaction",params:[k]}),g=(G?.formatters?.transaction?.format||q5)(h.tx);if(delete g.blockHash,delete g.blockNumber,delete g.r,delete g.s,delete g.transactionIndex,delete g.v,delete g.yParity,g.data=g.input,g.gas)g.gas=J.gas??g.gas;if(g.gasPrice)g.gasPrice=J.gasPrice??g.gasPrice;if(g.maxFeePerBlobGas)g.maxFeePerBlobGas=J.maxFeePerBlobGas??g.maxFeePerBlobGas;if(g.maxFeePerGas)g.maxFeePerGas=J.maxFeePerGas??g.maxFeePerGas;if(g.maxPriorityFeePerGas)g.maxPriorityFeePerGas=J.maxPriorityFeePerGas??g.maxPriorityFeePerGas;if(g.nonce)g.nonce=J.nonce??g.nonce;let Q$=await(async()=>{if(typeof G?.fees?.baseFeeMultiplier==="function"){let T=await p($,X6,"getBlock")({});return G.fees.baseFeeMultiplier({block:T,client:$,request:J})}return G?.fees?.baseFeeMultiplier??1.2})();if(Q$<1)throw new aW;let K$=10**(Q$.toString().split(".")[1]?.length??0),m=(T)=>T*BigInt(Math.ceil(Q$*K$))/BigInt(K$);if(g.maxFeePerGas&&!J.maxFeePerGas)g.maxFeePerGas=m(g.maxFeePerGas);if(g.gasPrice&&!J.gasPrice)g.gasPrice=m(g.gasPrice);return{raw:h.raw,transaction:{from:k.from,...g}}}catch(h){throw qX(h,{...J,chain:$.chain})}}var $D=["blobVersionedHashes","chainId","fees","gas","nonce","type"],Oh=new Map,TZ=new q1(128);async function a0($,J){let Q=J;Q.account??=$.account,Q.parameters??=$D;let{account:Y,chain:X=$.chain,nonceManager:G,parameters:W}=Q,D=(()=>{if(typeof X?.prepareTransactionRequest==="function")return{fn:X.prepareTransactionRequest,runAt:["beforeFillTransaction"]};if(Array.isArray(X?.prepareTransactionRequest))return{fn:X.prepareTransactionRequest[0],runAt:X.prepareTransactionRequest[1].runAt};return})(),U;async function V(){if(U)return U;if(typeof Q.chainId<"u")return Q.chainId;if(X)return X.id;return U=await p($,j6,"getChainId")({}),U}let O=Y?_$(Y):Y,M=Q.nonce;if(W.includes("nonce")&&typeof M>"u"&&O&&G){let F=await V();M=await G.consume({address:O.address,chainId:F,client:$})}if(D?.fn&&D.runAt?.includes("beforeFillTransaction"))Q=await D.fn({...Q,chain:X},{phase:"beforeFillTransaction"}),M??=Q.nonce;let q=(()=>{if((W.includes("blobVersionedHashes")||W.includes("sidecars"))&&Q.kzg&&Q.blobs)return!1;if(TZ.get($.uid)===!1)return!1;if(!["fees","gas"].some((S)=>W.includes(S)))return!1;if(W.includes("chainId")&&typeof Q.chainId!=="number")return!0;if(W.includes("nonce")&&typeof M!=="number")return!0;if(W.includes("fees")&&typeof Q.gasPrice!=="bigint"&&(typeof Q.maxFeePerGas!=="bigint"||typeof Q.maxPriorityFeePerGas!=="bigint"))return!0;if(W.includes("gas")&&typeof Q.gas!=="bigint")return!0;return!1})()?await p($,L5,"fillTransaction")({...Q,nonce:M}).then((F)=>{let{chainId:S,from:v,gas:k,gasPrice:h,nonce:o,maxFeePerBlobGas:g,maxFeePerGas:Q$,maxPriorityFeePerGas:t,type:K$,...m}=F.transaction;return TZ.set($.uid,!0),{...Q,...v?{from:v}:{},...K$?{type:K$}:{},...typeof S<"u"?{chainId:S}:{},...typeof k<"u"?{gas:k}:{},...typeof h<"u"?{gasPrice:h}:{},...typeof o<"u"?{nonce:o}:{},...typeof g<"u"?{maxFeePerBlobGas:g}:{},...typeof Q$<"u"?{maxFeePerGas:Q$}:{},...typeof t<"u"?{maxPriorityFeePerGas:t}:{},..."nonceKey"in m&&typeof m.nonceKey<"u"?{nonceKey:m.nonceKey}:{}}}).catch((F)=>{let S=F;if(S.name!=="TransactionExecutionError")return Q;if(S.walk?.((k)=>{let h=k;return h.name==="MethodNotFoundRpcError"||h.name==="MethodNotSupportedRpcError"}))TZ.set($.uid,!1);return Q}):Q;M??=q.nonce,Q={...q,...O?{from:O?.address}:{},...M?{nonce:M}:{}};let{blobs:w,gas:I,kzg:Z,type:L}=Q;if(D?.fn&&D.runAt?.includes("beforeFillParameters"))Q=await D.fn({...Q,chain:X},{phase:"beforeFillParameters"});let _;async function B(){if(_)return _;return _=await p($,X6,"getBlock")({blockTag:"latest"}),_}if(W.includes("nonce")&&typeof M>"u"&&O&&!G)Q.nonce=await p($,w5,"getTransactionCount")({address:O.address,blockTag:"pending"});if((W.includes("blobVersionedHashes")||W.includes("sidecars"))&&w&&Z){let F=A5({blobs:w,kzg:Z});if(W.includes("blobVersionedHashes")){let S=pM({commitments:F,to:"hex"});Q.blobVersionedHashes=S}if(W.includes("sidecars")){let S=I5({blobs:w,commitments:F,kzg:Z}),v=cM({blobs:w,commitments:F,proofs:S,to:"hex"});Q.sidecars=v}}if(W.includes("chainId"))Q.chainId=await V();if((W.includes("fees")||W.includes("type"))&&typeof L>"u")try{Q.type=oM(Q)}catch{let F=Oh.get($.uid);if(typeof F>"u")F=typeof(await B())?.baseFeePerGas==="bigint",Oh.set($.uid,F);Q.type=F?"eip1559":"legacy"}if(W.includes("fees"))if(Q.type!=="legacy"&&Q.type!=="eip2930"){if(typeof Q.maxFeePerGas>"u"||typeof Q.maxPriorityFeePerGas>"u"){let F=await B(),{maxFeePerGas:S,maxPriorityFeePerGas:v}=await dM($,{block:F,chain:X,request:Q});if(typeof Q.maxPriorityFeePerGas>"u"&&Q.maxFeePerGas&&Q.maxFeePerGas<v)throw new jZ({maxPriorityFeePerGas:v});Q.maxPriorityFeePerGas=v,Q.maxFeePerGas=S}}else{if(typeof Q.maxFeePerGas<"u"||typeof Q.maxPriorityFeePerGas<"u")throw new T8;if(typeof Q.gasPrice>"u"){let F=await B(),{gasPrice:S}=await dM($,{block:F,chain:X,request:Q,type:"legacy"});Q.gasPrice=S}}if(W.includes("gas")&&typeof I>"u")Q.gas=await p($,B5,"estimateGas")({...Q,account:O,prepare:O?.type==="local"?[]:["blobVersionedHashes"]});if(D?.fn&&D.runAt?.includes("afterFillParameters"))Q=await D.fn({...Q,chain:X},{phase:"afterFillParameters"});return Q6(Q),delete Q.parameters,Q}async function B5($,J){let{account:Q=$.account,prepare:Y=!0}=J,X=Q?_$(Q):void 0,G=(()=>{if(Array.isArray(Y))return Y;if(X?.type!=="local")return["blobVersionedHashes"];return})();try{let W=await(async()=>{if(J.to)return J.to;if(J.authorizationList&&J.authorizationList.length>0)return await NX({authorization:J.authorizationList[0]}).catch(()=>{throw new R("`to` is required. Could not infer from `authorizationList`")});return})(),{accessList:D,authorizationList:U,blobs:V,blobVersionedHashes:O,blockNumber:M,blockTag:N,data:q,gas:w,gasPrice:I,maxFeePerBlobGas:Z,maxFeePerGas:L,maxPriorityFeePerGas:_,nonce:B,value:F,stateOverride:S,...v}=Y?await a0($,{...J,parameters:G,to:W}):J;if(w&&J.gas!==w)return w;let h=(typeof M==="bigint"?y(M):void 0)||N,o=K5(S);Q6(J);let g=$.chain?.formatters?.transactionRequest?.format,t=(g||Z6)({...n1(v,{format:g}),account:X,accessList:D,authorizationList:U,blobs:V,blobVersionedHashes:O,data:q,gasPrice:I,maxFeePerBlobGas:Z,maxFeePerGas:L,maxPriorityFeePerGas:_,nonce:B,to:W,value:F},"estimateGas");return BigInt(await $.request({method:"eth_estimateGas",params:o?[t,h??$.experimental_blockTag??"latest",o]:h?[t,h]:[t]}))}catch(W){throw Jh(W,{...J,account:X,chain:$.chain})}}async function Mh($,J){let{abi:Q,address:Y,args:X,functionName:G,dataSuffix:W=typeof $.dataSuffix==="string"?$.dataSuffix:$.dataSuffix?.value,...D}=J,U=S4({abi:Q,args:X,functionName:G});try{return await p($,B5,"estimateGas")({data:`${U}${W?W.replace("0x",""):""}`,to:Y,...D})}catch(V){let O=D.account?_$(D.account):void 0;throw A1(V,{abi:Q,address:Y,args:X,docsPath:"/docs/contract/estimateContractGas",functionName:G,sender:O?.address})}}w$();async function zh($,{address:J,blockNumber:Q,blockTag:Y=$.experimental_blockTag??"latest"}){let X=typeof Q==="bigint"?y(Q):void 0,G=await $.request({method:"eth_getBalance",params:[J,X||Y]});return BigInt(G)}async function Nh($){let J=await $.request({method:"eth_blobBaseFee"});return BigInt(J)}var j8$=new Map,S8$=new Map;function qh($){let J=(X,G)=>({clear:()=>G.delete(X),get:()=>G.get(X),set:(W)=>G.set(X,W)}),Q=J($,j8$),Y=J($,S8$);return{clear:()=>{Q.clear(),Y.clear()},promise:Q,response:Y}}async function Hh($,{cacheKey:J,cacheTime:Q=Number.POSITIVE_INFINITY}){let Y=qh(J),X=Y.response.get();if(X&&Q>0){if(Date.now()-X.created.getTime()<Q)return X.data}let G=Y.promise.get();if(!G)G=$(),Y.promise.set(G);try{let W=await G;return Y.response.set({created:new Date,data:W}),W}finally{Y.promise.clear()}}var _8$=($)=>`blockNumber.${$}`;async function s0($,{cacheTime:J=$.cacheTime}={}){let Q=await Hh(()=>$.request({method:"eth_blockNumber"}),{cacheKey:_8$($.uid),cacheTime:J});return BigInt(Q)}e4();w$();async function wh($,{blockHash:J,blockNumber:Q,blockTag:Y="latest"}={}){let X=Q!==void 0?y(Q):void 0,G;if(J)G=await $.request({method:"eth_getBlockTransactionCountByHash",params:[J]},{dedupe:!0});else G=await $.request({method:"eth_getBlockTransactionCountByNumber",params:[X||Y]},{dedupe:Boolean(X)});return C4(G)}w$();async function JD($,{address:J,blockNumber:Q,blockTag:Y="latest"}){let X=Q!==void 0?y(Q):void 0,G=await $.request({method:"eth_getCode",params:[J,X||Y]},{dedupe:Boolean(X)});if(G==="0x")return;return G}sQ();E8();$6();b1();BW();l4();_2();x1();BW();wW();vJ();var Ah="/docs/contract/decodeEventLog";function C8($){let{abi:J,data:Q,strict:Y,topics:X}=$,G=Y??!0,[W,...D]=X;if(!W)throw new K2({docsPath:Ah});let U=J.find((L)=>L.type==="event"&&W===aQ(c4(L)));if(!(U&&("name"in U))||U.type!=="event")throw new V2(W,{docsPath:Ah});let{name:V,inputs:O}=U,M=O?.some((L)=>!(("name"in L)&&L.name)),N=M?[]:{},q=O.map((L,_)=>[L,_]).filter(([L])=>("indexed"in L)&&L.indexed),w=[];for(let L=0;L<q.length;L++){let[_,B]=q[L],F=D[L];if(!F){if(G)throw new U8({abiItem:U,param:_});w.push([_,B]);continue}N[M?B:_.name||B]=E8$({param:_,value:F})}let I=O.filter((L)=>!(("indexed"in L)&&L.indexed)),Z=G?I:[...w.map(([L])=>L),...I];if(Z.length>0){if(Q&&Q!=="0x")try{let L=bJ(Z,Q);if(L){let _=0;if(!G)for(let[B,F]of w)N[M?F:B.name||F]=L[_++];if(M){for(let B=0;B<O.length;B++)if(N[B]===void 0&&_<L.length)N[B]=L[_++]}else for(let B=0;B<I.length;B++)N[I[B].name]=L[_++]}}catch(L){if(G){if(L instanceof KW||L instanceof qW)throw new pQ({abiItem:U,data:Q,params:Z,size:t$(Q)});throw L}}else if(G)throw new pQ({abiItem:U,data:"0x",params:Z,size:0})}return{eventName:V,args:Object.values(N).length>0?N:void 0}}function E8$({param:$,value:J}){if($.type==="string"||$.type==="bytes"||$.type==="tuple"||$.type.match(/^(.*)\[(\d+)?\]$/))return J;return(bJ([$],J)||[])[0]}function Z5($){let{abi:J,args:Q,logs:Y,strict:X=!0}=$,G=(()=>{if(!$.eventName)return;if(Array.isArray($.eventName))return $.eventName;return[$.eventName]})(),W=J.filter((D)=>D.type==="event").map((D)=>({abi:D,selector:aQ(D)}));return Y.map((D)=>{let U=W.filter((M)=>D.topics[0]===M.selector);if(U.length===0)return null;let V,O;for(let M of U)try{V=C8({...D,abi:[M.abi],strict:!0}),O=M;break}catch{}if(!V&&!X){O=U[0];try{V=C8({data:D.data,topics:D.topics,abi:[O.abi],strict:!1})}catch{let M=O.abi.inputs?.some((N)=>!(("name"in N)&&N.name));return{...D,args:M?[]:{},eventName:O.abi.name}}}if(!V||!O)return null;if(G&&!G.includes(V.eventName))return null;if(!P8$({args:V.args,inputs:O.abi.inputs,matchArgs:Q}))return null;return{...V,...D}}).filter(Boolean)}function P8$($){let{args:J,inputs:Q,matchArgs:Y}=$;if(!Y)return!0;if(!J)return!1;function X(G,W,D){try{if(G.type==="address")return d1(W,D);if(G.type==="string"||G.type==="bytes")return U4(f1(W))===D;return W===D}catch{return!1}}if(Array.isArray(J)&&Array.isArray(Y))return Y.every((G,W)=>{if(G===null||G===void 0)return!0;let D=Q[W];if(!D)return!1;return(Array.isArray(G)?G:[G]).some((V)=>X(D,V,J[W]))});if(typeof J==="object"&&!Array.isArray(J)&&typeof Y==="object"&&!Array.isArray(Y))return Object.entries(Y).every(([G,W])=>{if(W===null||W===void 0)return!0;let D=Q.find((V)=>V.name===G);if(!D)return!1;return(Array.isArray(W)?W:[W]).some((V)=>X(D,V,J[G]))});return!1}w$();function S6($,{args:J,eventName:Q}={}){return{...$,blockHash:$.blockHash?$.blockHash:null,blockNumber:$.blockNumber?BigInt($.blockNumber):null,blockTimestamp:$.blockTimestamp?BigInt($.blockTimestamp):$.blockTimestamp===null?null:void 0,logIndex:$.logIndex?Number($.logIndex):null,transactionHash:$.transactionHash?$.transactionHash:null,transactionIndex:$.transactionIndex?Number($.transactionIndex):null,...Q?{args:J,eventName:Q}:{}}}async function F5($,{address:J,blockHash:Q,fromBlock:Y,toBlock:X,event:G,events:W,args:D,strict:U}={}){let V=U??!1,O=W??(G?[G]:void 0),M=[];if(O){if(M=[O.flatMap((I)=>t0({abi:[I],eventName:I.name,args:W?void 0:D}))],G)M=M[0]}let N;if(Q)N=await $.request({method:"eth_getLogs",params:[{address:J,topics:M,blockHash:Q}]});else N=await $.request({method:"eth_getLogs",params:[{address:J,topics:M,fromBlock:typeof Y==="bigint"?y(Y):Y,toBlock:typeof X==="bigint"?y(X):X}]});let q=N.map((w)=>S6(w));if(!O)return q;return Z5({abi:O,args:D,logs:q,strict:V})}async function rM($,J){let{abi:Q,address:Y,args:X,blockHash:G,eventName:W,fromBlock:D,toBlock:U,strict:V}=J,O=W?e6({abi:Q,name:W}):void 0,M=!O?Q.filter((N)=>N.type==="event"):void 0;return p($,F5,"getLogs")({address:Y,args:X,blockHash:G,event:O,events:M,fromBlock:D,toBlock:U,strict:V})}x$();class CZ extends R{constructor({address:$}){super(`No EIP-712 domain found on contract "${$}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${$}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}}async function Ih($,J){let{address:Q,factory:Y,factoryData:X}=J;try{let[G,W,D,U,V,O,M]=await p($,i4,"readContract")({abi:v8$,address:Q,functionName:"eip712Domain",factory:Y,factoryData:X});return{domain:{name:W,version:D,chainId:Number(U),verifyingContract:V,salt:O},extensions:M,fields:G}}catch(G){let W=G;if(W.name==="ContractFunctionExecutionError"&&W.cause.name==="ContractFunctionZeroDataError")throw new CZ({address:Q});throw W}}var v8$=[{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"}];w$();function Lh($){return{baseFeePerGas:$.baseFeePerGas.map((J)=>BigInt(J)),gasUsedRatio:$.gasUsedRatio,oldestBlock:BigInt($.oldestBlock),reward:$.reward?.map((J)=>J.map((Q)=>BigInt(Q)))}}async function Bh($,{blockCount:J,blockNumber:Q,blockTag:Y="latest",rewardPercentiles:X}){let G=typeof Q==="bigint"?y(Q):void 0,W=await $.request({method:"eth_feeHistory",params:[y(J),G||Y,X]},{dedupe:Boolean(G)});return Lh(W)}async function HX($,{filter:J}){let Q="strict"in J&&J.strict,Y=await J.request({method:"eth_getFilterChanges",params:[J.id]});if(typeof Y[0]==="string")return Y;let X=Y.map((G)=>S6(G));if(!("abi"in J)||!J.abi)return X;return Z5({abi:J.abi,logs:X,strict:Q})}async function Zh($,{filter:J}){let Q=J.strict??!1,X=(await J.request({method:"eth_getFilterLogs",params:[J.id]})).map((G)=>S6(G));if(!J.abi)return X;return Z5({abi:J.abi,logs:X,strict:Q})}w$();e4();w$();function R8$($){return $.map((J)=>({...J,value:BigInt(J.value)}))}function Fh($){return{...$,balance:$.balance?BigInt($.balance):void 0,nonce:$.nonce?C4($.nonce):void 0,storageProof:$.storageProof?R8$($.storageProof):void 0}}async function jh($,{address:J,blockNumber:Q,blockTag:Y,storageKeys:X}){let G=Y??"latest",W=Q!==void 0?y(Q):void 0,D=await $.request({method:"eth_getProof",params:[J,X,W||G]});return Fh(D)}w$();async function Sh($,{address:J,blockNumber:Q,blockTag:Y="latest",slot:X}){let G=Q!==void 0?y(Q):void 0;return await $.request({method:"eth_getStorageAt",params:[J,X,G||Y]})}u1();w$();async function j5($,{blockHash:J,blockNumber:Q,blockTag:Y,hash:X,index:G,sender:W,nonce:D}){let U=Y||"latest",V=Q!==void 0?y(Q):void 0,O=null;if(X)O=await $.request({method:"eth_getTransactionByHash",params:[X]},{dedupe:!0});else if(J)O=await $.request({method:"eth_getTransactionByBlockHashAndIndex",params:[J,y(G)]},{dedupe:!0});else if((V||U)&&typeof G==="number")O=await $.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[V||U,y(G)]},{dedupe:Boolean(V)});else if(W&&typeof D==="number")O=await $.request({method:"eth_getTransactionBySenderAndNonce",params:[W,y(D)]},{dedupe:!0});if(!O)throw new FW({blockHash:J,blockNumber:Q,blockTag:U,hash:X,index:G});return($.chain?.formatters?.transaction?.format||q5)(O,"getTransaction")}async function _h($,{hash:J,transactionReceipt:Q}){let[Y,X]=await Promise.all([p($,s0,"getBlockNumber")({}),J?p($,j5,"getTransaction")({hash:J}):void 0]),G=Q?.blockNumber||X?.blockNumber;if(!G)return 0n;return Y-G+1n}u1();e4();var kZ={"0x0":"reverted","0x1":"success"};function tM($,J){let Q={...$,blockNumber:$.blockNumber?BigInt($.blockNumber):null,contractAddress:$.contractAddress?$.contractAddress:null,cumulativeGasUsed:$.cumulativeGasUsed?BigInt($.cumulativeGasUsed):null,effectiveGasPrice:$.effectiveGasPrice?BigInt($.effectiveGasPrice):null,gasUsed:$.gasUsed?BigInt($.gasUsed):null,logs:$.logs?$.logs.map((Y)=>S6(Y)):null,to:$.to?$.to:null,transactionIndex:$.transactionIndex?C4($.transactionIndex):null,status:$.status?kZ[$.status]:null,type:$.type?SZ[$.type]||$.type:null};if($.blobGasPrice)Q.blobGasPrice=BigInt($.blobGasPrice);if($.blobGasUsed)Q.blobGasUsed=BigInt($.blobGasUsed);return Q}async function S5($,{hash:J}){let Q=await $.request({method:"eth_getTransactionReceipt",params:[J]},{dedupe:!0});if(!Q)throw new jW({hash:J});return($.chain?.formatters?.transactionReceipt?.format||tM)(Q,"getTransactionReceipt")}PJ();l4();x$();$X();eQ();w1();H8();async function Eh($,J){let{account:Q,authorizationList:Y,allowFailure:X=!0,blockNumber:G,blockOverrides:W,blockTag:D,stateOverride:U}=J,V=J.contracts,{batchSize:O=J.batchSize??1024,deployless:M=J.deployless??!1}=typeof $.batch?.multicall==="object"?$.batch.multicall:{},N=(()=>{if(J.multicallAddress)return J.multicallAddress;if(M)return null;if($.chain)return h1({blockNumber:G,chain:$.chain,contract:"multicall3"});throw Error("client chain not configured. multicallAddress is required.")})(),q=[[]],w=0,I=0;for(let _=0;_<V.length;_++){let{abi:B,address:F,args:S,functionName:v}=V[_];try{let k=S4({abi:B,args:S,functionName:v});if(I+=(k.length-2)/2,O>0&&I>O&&q[w].length>0)w++,I=(k.length-2)/2,q[w]=[];q[w]=[...q[w],{allowFailure:!0,callData:k,target:F}]}catch(k){let h=A1(k,{abi:B,address:F,args:S,docsPath:"/docs/contract/multicall",functionName:v,sender:Q});if(!X)throw h;q[w]=[...q[w],{allowFailure:!0,callData:"0x",target:F}]}}let Z=await Promise.allSettled(q.map((_)=>p($,i4,"readContract")({...N===null?{code:D5}:{address:N},abi:dQ,account:Q,args:[_],authorizationList:Y,blockNumber:G,blockOverrides:W,blockTag:D,functionName:"aggregate3",stateOverride:U}))),L=[];for(let _=0;_<Z.length;_++){let B=Z[_];if(B.status==="rejected"){if(!X)throw B.reason;for(let S=0;S<q[_].length;S++)L.push({status:"failure",error:B.reason,result:void 0});continue}let F=B.value;for(let S=0;S<F.length;S++){let{returnData:v,success:k}=F[S],{callData:h}=q[_][S],{abi:o,address:g,functionName:Q$,args:t}=V[L.length];try{if(h==="0x")throw new K0;if(!k)throw new hJ({data:v});let K$=$1({abi:o,args:t,data:v,functionName:Q$});L.push(X?{result:K$,status:"success"}:K$)}catch(K$){let m=A1(K$,{abi:o,address:g,args:t,docsPath:"/docs/contract/multicall",functionName:Q$});if(!X)throw m;L.push({error:m,result:void 0,status:"failure"})}}}if(L.length!==V.length)throw new R("multicall results mismatch");return L}uB();l4();$X();DX();eQ();w1();w$();lW();rJ();PM();o0();async function QD($,J){let{blockNumber:Q,blockTag:Y=$.experimental_blockTag??"latest",blocks:X,returnFullTransactions:G,traceTransfers:W,validation:D}=J;try{let U=[];for(let N of X){let q=N.blockOverrides?FM(N.blockOverrides):void 0,w=N.calls.map((Z)=>{let L=Z,_=L.account?_$(L.account):void 0,B=L.abi?S4(L):L.data,F={...L,account:_,data:L.dataSuffix?Z4([B||"0x",L.dataSuffix]):B,from:L.from??_?.address};return Q6(F),Z6(F)}),I=N.stateOverrides?K5(N.stateOverrides):void 0;U.push({blockOverrides:q,calls:w,stateOverrides:I})}let O=(typeof Q==="bigint"?y(Q):void 0)||Y;return(await $.request({method:"eth_simulateV1",params:[{blockStateCalls:U,returnFullTransactions:G,traceTransfers:W,validation:D},O]})).map((N,q)=>({...nM(N),calls:N.calls.map((w,I)=>{let{abi:Z,args:L,functionName:_,to:B}=X[q].calls[I],F=w.error?.data??w.returnData,S=BigInt(w.gasUsed),v=w.logs?.map((g)=>S6(g)),k=w.status==="0x1"?"success":"failure",h=Z&&k==="success"&&F!=="0x"?$1({abi:Z,data:F,functionName:_}):null,o=(()=>{if(k==="success")return;let g;if(F==="0x")g=new K0;else if(F)g=new hJ({data:F});if(!g)return;return A1(g,{abi:Z??[],address:B??"0x",args:L,functionName:_??"<unknown>"})})();return{data:F,gasUsed:S,logs:v,status:k,...k==="success"?{result:h}:{error:o}}})}))}catch(U){let V=U,O=UX(V,{});if(O instanceof H0)throw V;throw O}}LW();Q1();Z2();YX();J6();function k8($,J={}){let{as:Q=typeof $==="string"?"Hex":"Bytes"}=J,Y=p3(gg($));if(Q==="Bytes")return Y;return n4(Y)}J6();YX();class fZ extends Map{constructor($){super();Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=$}get($){let J=super.get($);if(super.has($)&&J!==void 0)this.delete($),super.set($,J);return J}set($,J){if(super.set($,J),this.maxSize&&this.size>this.maxSize){let Q=this.keys().next().value;if(Q)this.delete(Q)}return this}}var T8$={checksum:new fZ(8192)},aM=T8$.checksum;Q1();YX();Q1();J6();function Ph($,J={}){let{compressed:Q}=J,{prefix:Y,x:X,y:G}=$;if(Q===!1||typeof X==="bigint"&&typeof G==="bigint"){if(Y!==4)throw new bZ({prefix:Y,cause:new kh});return}if(Q===!0||typeof X==="bigint"&&typeof G>"u"){if(Y!==3&&Y!==2)throw new bZ({prefix:Y,cause:new Ch});return}throw new Th({publicKey:$})}function vh($){let J=(()=>{if(kW($))return Rh($);if(ng($))return k8$($);let{prefix:Q,x:Y,y:X}=$;if(typeof Y==="bigint"&&typeof X==="bigint")return{prefix:Q??4,x:Y,y:X};return{prefix:Q,x:Y}})();return Ph(J),J}function k8$($){return Rh(n4($))}function Rh($){if($.length!==132&&$.length!==130&&$.length!==68)throw new xh({publicKey:$});if($.length===130){let Y=BigInt(R4($,0,32)),X=BigInt(R4($,32,64));return{prefix:4,x:Y,y:X}}if($.length===132){let Y=Number(R4($,0,1)),X=BigInt(R4($,1,33)),G=BigInt(R4($,33,65));return{prefix:Y,x:X,y:G}}let J=Number(R4($,0,1)),Q=BigInt(R4($,1,33));return{prefix:J,x:Q}}function gZ($,J={}){Ph($);let{prefix:Q,x:Y,y:X}=$,{includePrefix:G=!0}=J;return k4(G?J4(Q,{size:1}):"0x",J4(Y,{size:32}),typeof X==="bigint"?J4(X,{size:32}):"0x")}class Th extends D${constructor({publicKey:$}){super(`Value \`${GX($)}\` is not a valid public key.`,{metaMessages:["Public key must contain:","- an `x` and `prefix` value (compressed)","- an `x`, `y`, and `prefix` value (uncompressed)"]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidError"})}}class bZ extends D${constructor({prefix:$,cause:J}){super(`Prefix "${$}" is invalid.`,{cause:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidPrefixError"})}}class Ch extends D${constructor(){super("Prefix must be 2 or 3 for compressed public keys.");Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidCompressedPrefixError"})}}class kh extends D${constructor(){super("Prefix must be 4 for uncompressed public keys.");Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidUncompressedPrefixError"})}}class xh extends D${constructor({publicKey:$}){super(`Value \`${$}\` is an invalid public key size.`,{metaMessages:["Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).",`Received ${v4(G5($))} bytes.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"})}}var x8$=/^0x[a-fA-F0-9]{40}$/;function x8($,J={}){let{strict:Q=!0}=J;if(!x8$.test($))throw new yZ({address:$,cause:new gh});if(Q){if($.toLowerCase()===$)return;if(sM($)!==$)throw new yZ({address:$,cause:new yh})}}function sM($){if(aM.has($))return aM.get($);x8($,{strict:!1});let J=$.substring(2).toLowerCase(),Q=k8(yg(J),{as:"Bytes"}),Y=J.split("");for(let G=0;G<40;G+=2){if(Q[G>>1]>>4>=8&&Y[G])Y[G]=Y[G].toUpperCase();if((Q[G>>1]&15)>=8&&Y[G+1])Y[G+1]=Y[G+1].toUpperCase()}let X=`0x${Y.join("")}`;return aM.set($,X),X}function f8$($,J={}){let{checksum:Q=!1}=J;if(x8($),Q)return sM($);return $}function bh($,J={}){let Q=k8(`0x${gZ($).slice(4)}`).substring(26);return f8$(`0x${Q}`,J)}function eM($,J={}){let{strict:Q=!0}=J??{};try{return x8($,{strict:Q}),!0}catch{return!1}}class yZ extends D${constructor({address:$,cause:J}){super(`Address "${$}" is invalid.`,{cause:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class gh extends D${constructor(){super("Address is not a 20 byte (40 hexadecimal character) value.");Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class yh extends D${constructor(){super("Address does not match its checksum counterpart.");Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}Q1();function Qz($){let J=!0,Q="",Y=0,X="",G=!1;for(let W=0;W<$.length;W++){let D=$[W];if(["(",")",","].includes(D))J=!0;if(D==="(")Y++;if(D===")")Y--;if(!J)continue;if(Y===0){if(D===" "&&["event","function","error",""].includes(X))X="";else if(X+=D,D===")"){G=!0;break}continue}if(D===" "){if($[W-1]!==","&&Q!==","&&Q!==",(")Q="",J=!1;continue}X+=D,Q+=D}if(!G)throw new D$("Unable to normalize signature.");return X}function Jz($,J){let Q=typeof $,Y=J.type;switch(Y){case"address":return eM($,{strict:!1});case"bool":return Q==="boolean";case"function":return Q==="string";case"string":return Q==="string";default:{if(Y==="tuple"&&"components"in J)return Object.values(J.components).every((X,G)=>{return Jz(Object.values($)[G],X)});if(/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(Y))return Q==="number"||Q==="bigint";if(/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(Y))return Q==="string"||$ instanceof Uint8Array;if(/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(Y))return Array.isArray($)&&$.every((X)=>Jz(X,{...J,type:Y.replace(/(\[[0-9]{0,}\])$/,"")}));return!1}}}function hZ($,J,Q){for(let Y in $){let X=$[Y],G=J[Y];if(X.type==="tuple"&&G.type==="tuple"&&"components"in X&&"components"in G)return hZ(X.components,G.components,Q[Y]);let W=[X.type,G.type];if((()=>{if(W.includes("address")&&W.includes("bytes20"))return!0;if(W.includes("address")&&W.includes("string"))return eM(Q[Y],{strict:!1});if(W.includes("address")&&W.includes("bytes"))return eM(Q[Y],{strict:!1});return!1})())return W}return}function Xz($,J={}){let{prepare:Q=!0}=J,Y=(()=>{if(Array.isArray($))return GM($);if(typeof $==="string")return GM($);return $})();return{...Y,...Q?{hash:_5(Y)}:{}}}function XD($,J,Q){let{args:Y=[],prepare:X=!0}=Q??{},G=kW(J,{strict:!1}),W=$.filter((V)=>{if(G){if(V.type==="function"||V.type==="error")return uZ(V)===R4(J,0,4);if(V.type==="event")return _5(V)===J;return!1}return"name"in V&&V.name===J});if(W.length===0)throw new f8({name:J});if(W.length===1)return{...W[0],...X?{hash:_5(W[0])}:{}};let D;for(let V of W){if(!("inputs"in V))continue;if(!Y||Y.length===0){if(!V.inputs||V.inputs.length===0)return{...V,...X?{hash:_5(V)}:{}};continue}if(!V.inputs)continue;if(V.inputs.length===0)continue;if(V.inputs.length!==Y.length)continue;if(Y.every((M,N)=>{let q="inputs"in V&&V.inputs[N];if(!q)return!1;return Jz(M,q)})){if(D&&"inputs"in D&&D.inputs){let M=hZ(V.inputs,D.inputs,Y);if(M)throw new hh({abiItem:V,type:M[0]},{abiItem:D,type:M[1]})}D=V}}let U=(()=>{if(D)return D;let[V,...O]=W;return{...V,overloads:O}})();if(!U)throw new f8({name:J});return{...U,...X?{hash:_5(U)}:{}}}function uZ(...$){let J=(()=>{if(Array.isArray($[0])){let[Q,Y]=$;return XD(Q,Y)}return $[0]})();return R4(_5(J),0,4)}function g8$(...$){let J=(()=>{if(Array.isArray($[0])){let[Y,X]=$;return XD(Y,X)}return $[0]})(),Q=(()=>{if(typeof J==="string")return J;return q8(J)})();return Qz(Q)}function _5(...$){let J=(()=>{if(Array.isArray($[0])){let[Q,Y]=$;return XD(Q,Y)}return $[0]})();if(typeof J!=="string"&&"hash"in J&&J.hash)return J.hash;return k8(W5(g8$(J)))}class hh extends D${constructor($,J){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${$.type}\` in \`${Qz(q8($.abiItem))}\`, and`,`\`${J.type}\` in \`${Qz(q8(J.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"})}}class f8 extends D${constructor({name:$,data:J,type:Q="item"}){let Y=(()=>{if($)return` with name "${$}"`;if(J)return` with data "${J}"`;return""})();super(`ABI ${Q}${Y} not found.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}}LW();YX();Q1();J6();YX();Q1();J6();var mh=/^(.*)\[([0-9]*)\]$/,lh=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Yz=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,fC$=2n**(8n-1n)-1n,bC$=2n**(16n-1n)-1n,gC$=2n**(24n-1n)-1n,yC$=2n**(32n-1n)-1n,hC$=2n**(40n-1n)-1n,uC$=2n**(48n-1n)-1n,mC$=2n**(56n-1n)-1n,lC$=2n**(64n-1n)-1n,nC$=2n**(72n-1n)-1n,dC$=2n**(80n-1n)-1n,pC$=2n**(88n-1n)-1n,iC$=2n**(96n-1n)-1n,cC$=2n**(104n-1n)-1n,oC$=2n**(112n-1n)-1n,rC$=2n**(120n-1n)-1n,tC$=2n**(128n-1n)-1n,aC$=2n**(136n-1n)-1n,sC$=2n**(144n-1n)-1n,eC$=2n**(152n-1n)-1n,$k$=2n**(160n-1n)-1n,Jk$=2n**(168n-1n)-1n,Qk$=2n**(176n-1n)-1n,Xk$=2n**(184n-1n)-1n,Yk$=2n**(192n-1n)-1n,Gk$=2n**(200n-1n)-1n,Wk$=2n**(208n-1n)-1n,Dk$=2n**(216n-1n)-1n,Uk$=2n**(224n-1n)-1n,Kk$=2n**(232n-1n)-1n,Vk$=2n**(240n-1n)-1n,Ok$=2n**(248n-1n)-1n,Mk$=2n**(256n-1n)-1n,zk$=-(2n**(8n-1n)),Nk$=-(2n**(16n-1n)),qk$=-(2n**(24n-1n)),Hk$=-(2n**(32n-1n)),wk$=-(2n**(40n-1n)),Ak$=-(2n**(48n-1n)),Ik$=-(2n**(56n-1n)),Lk$=-(2n**(64n-1n)),Bk$=-(2n**(72n-1n)),Zk$=-(2n**(80n-1n)),Fk$=-(2n**(88n-1n)),jk$=-(2n**(96n-1n)),Sk$=-(2n**(104n-1n)),_k$=-(2n**(112n-1n)),Ek$=-(2n**(120n-1n)),Pk$=-(2n**(128n-1n)),vk$=-(2n**(136n-1n)),Rk$=-(2n**(144n-1n)),Tk$=-(2n**(152n-1n)),Ck$=-(2n**(160n-1n)),kk$=-(2n**(168n-1n)),xk$=-(2n**(176n-1n)),fk$=-(2n**(184n-1n)),bk$=-(2n**(192n-1n)),gk$=-(2n**(200n-1n)),yk$=-(2n**(208n-1n)),hk$=-(2n**(216n-1n)),uk$=-(2n**(224n-1n)),mk$=-(2n**(232n-1n)),lk$=-(2n**(240n-1n)),nk$=-(2n**(248n-1n)),dk$=-(2n**(256n-1n)),pk$=2n**8n-1n,ik$=2n**16n-1n,ck$=2n**24n-1n,ok$=2n**32n-1n,rk$=2n**40n-1n,tk$=2n**48n-1n,ak$=2n**56n-1n,sk$=2n**64n-1n,ek$=2n**72n-1n,$x$=2n**80n-1n,Jx$=2n**88n-1n,Qx$=2n**96n-1n,Xx$=2n**104n-1n,Yx$=2n**112n-1n,Gx$=2n**120n-1n,Wx$=2n**128n-1n,Dx$=2n**136n-1n,Ux$=2n**144n-1n,Kx$=2n**152n-1n,Vx$=2n**160n-1n,Ox$=2n**168n-1n,Mx$=2n**176n-1n,zx$=2n**184n-1n,Nx$=2n**192n-1n,qx$=2n**200n-1n,Hx$=2n**208n-1n,wx$=2n**216n-1n,Ax$=2n**224n-1n,Ix$=2n**232n-1n,Lx$=2n**240n-1n,Bx$=2n**248n-1n,mZ=2n**256n-1n;function b8($,J,Q){let{checksumAddress:Y,staticPosition:X}=Q,G=dZ(J.type);if(G){let[W,D]=G;return h8$($,{...J,type:D},{checksumAddress:Y,length:W,staticPosition:X})}if(J.type==="tuple")return n8$($,J,{checksumAddress:Y,staticPosition:X});if(J.type==="address")return y8$($,{checksum:Y});if(J.type==="bool")return u8$($);if(J.type.startsWith("bytes"))return m8$($,J,{staticPosition:X});if(J.type.startsWith("uint")||J.type.startsWith("int"))return l8$($,J);if(J.type==="string")return d8$($,{staticPosition:X});throw new GD(J.type)}var dh=32,lZ=32;function y8$($,J={}){let{checksum:Q=!1}=J,Y=$.readBytes(32);return[((G)=>Q?sM(G):G)(n4(hg(Y,-20))),32]}function h8$($,J,Q){let{checksumAddress:Y,length:X,staticPosition:G}=Q;if(!X){let U=i0($.readBytes(lZ)),V=G+U,O=V+dh;$.setPosition(V);let M=i0($.readBytes(dh)),N=YD(J),q=0,w=[];for(let I=0;I<M;++I){$.setPosition(O+(N?I*32:q));let[Z,L]=b8($,J,{checksumAddress:Y,staticPosition:O});q+=L,w.push(Z)}return $.setPosition(G+32),[w,32]}if(YD(J)){let U=i0($.readBytes(lZ)),V=G+U,O=[];for(let M=0;M<X;++M){$.setPosition(V+M*32);let[N]=b8($,J,{checksumAddress:Y,staticPosition:V});O.push(N)}return $.setPosition(G+32),[O,32]}let W=0,D=[];for(let U=0;U<X;++U){let[V,O]=b8($,J,{checksumAddress:Y,staticPosition:G+W});W+=O,D.push(V)}return[D,W]}function u8$($){return[mg($.readBytes(32),{size:32}),32]}function m8$($,J,{staticPosition:Q}){let[Y,X]=J.type.split("bytes");if(!X){let W=i0($.readBytes(32));$.setPosition(Q+W);let D=i0($.readBytes(32));if(D===0)return $.setPosition(Q+32),["0x",32];let U=$.readBytes(D);return $.setPosition(Q+32),[n4(U),32]}return[n4($.readBytes(Number.parseInt(X,10),32)),32]}function l8$($,J){let Q=J.type.startsWith("int"),Y=Number.parseInt(J.type.split("int")[1]||"256",10),X=$.readBytes(32);return[Y>48?ug(X,{signed:Q}):i0(X,{signed:Q}),32]}function n8$($,J,Q){let{checksumAddress:Y,staticPosition:X}=Q,G=J.components.length===0||J.components.some(({name:U})=>!U),W=G?[]:{},D=0;if(YD(J)){let U=i0($.readBytes(lZ)),V=X+U;for(let O=0;O<J.components.length;++O){let M=J.components[O];$.setPosition(V+D);let[N,q]=b8($,M,{checksumAddress:Y,staticPosition:V});D+=q,W[G?O:M?.name]=N}return $.setPosition(X+32),[W,32]}for(let U=0;U<J.components.length;++U){let V=J.components[U],[O,M]=b8($,V,{checksumAddress:Y,staticPosition:X});W[G?U:V?.name]=O,D+=M}return[W,D]}function d8$($,{staticPosition:J}){let Q=i0($.readBytes(32)),Y=J+Q;$.setPosition(Y);let X=i0($.readBytes(32));if(X===0)return $.setPosition(J+32),["",32];let G=$.readBytes(X,32),W=lg(fB(G));return $.setPosition(J+32),[W,32]}function ph({checksumAddress:$,parameters:J,values:Q}){let Y=[];for(let X=0;X<J.length;X++)Y.push(nZ({checksumAddress:$,parameter:J[X],value:Q[X]}));return Y}function nZ({checksumAddress:$=!1,parameter:J,value:Q}){let Y=J,X=dZ(Y.type);if(X){let[G,W]=X;return i8$(Q,{checksumAddress:$,length:G,parameter:{...Y,type:W}})}if(Y.type==="tuple")return a8$(Q,{checksumAddress:$,parameter:Y});if(Y.type==="address")return p8$(Q,{checksum:$});if(Y.type==="bool")return o8$(Q);if(Y.type.startsWith("uint")||Y.type.startsWith("int")){let G=Y.type.startsWith("int"),[,,W="256"]=Yz.exec(Y.type)??[];return r8$(Q,{signed:G,size:Number(W)})}if(Y.type.startsWith("bytes"))return c8$(Q,{type:Y.type});if(Y.type==="string")return t8$(Q);throw new GD(Y.type)}function Gz($){let J=0;for(let G=0;G<$.length;G++){let{dynamic:W,encoded:D}=$[G];if(W)J+=32;else J+=v4(D)}let Q=[],Y=[],X=0;for(let G=0;G<$.length;G++){let{dynamic:W,encoded:D}=$[G];if(W)Q.push(J4(J+X,{size:32})),Y.push(D),X+=v4(D);else Q.push(D)}return k4(...Q,...Y)}function p8$($,J){let{checksum:Q=!1}=J;return x8($,{strict:Q}),{dynamic:!1,encoded:cJ($.toLowerCase())}}function i8$($,J){let{checksumAddress:Q,length:Y,parameter:X}=J,G=Y===null;if(!Array.isArray($))throw new iZ($);if(!G&&$.length!==Y)throw new pZ({expectedLength:Y,givenLength:$.length,type:`${X.type}[${Y}]`});let W=!1,D=[];for(let U=0;U<$.length;U++){let V=nZ({checksumAddress:Q,parameter:X,value:$[U]});if(V.dynamic)W=!0;D.push(V)}if(G||W){let U=Gz(D);if(G){let V=J4(D.length,{size:32});return{dynamic:!0,encoded:D.length>0?k4(V,U):V}}if(W)return{dynamic:!0,encoded:U}}return{dynamic:!1,encoded:k4(...D.map(({encoded:U})=>U))}}function c8$($,{type:J}){let[,Q]=J.split("bytes"),Y=v4($);if(!Q){let X=$;if(Y%32!==0)X=c0(X,Math.ceil(($.length-2)/2/32)*32);return{dynamic:!0,encoded:k4(cJ(J4(Y,{size:32})),X)}}if(Y!==Number.parseInt(Q,10))throw new Wz({expectedSize:Number.parseInt(Q,10),value:$});return{dynamic:!1,encoded:c0($)}}function o8$($){if(typeof $!=="boolean")throw new D$(`Invalid boolean value: "${$}" (type: ${typeof $}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:cJ(BM($))}}function r8$($,{signed:J,size:Q}){if(typeof Q==="number"){let Y=2n**(BigInt(Q)-(J?1n:0n))-1n,X=J?-Y-1n:0n;if($>Y||$<X)throw new ZM({max:Y.toString(),min:X.toString(),signed:J,size:Q/8,value:$.toString()})}return{dynamic:!1,encoded:J4($,{size:32,signed:J})}}function t8$($){let J=W5($),Q=Math.ceil(v4(J)/32),Y=[];for(let X=0;X<Q;X++)Y.push(c0(R4(J,X*32,(X+1)*32)));return{dynamic:!0,encoded:k4(c0(J4(v4(J),{size:32})),...Y)}}function a8$($,J){let{checksumAddress:Q,parameter:Y}=J,X=!1,G=[];for(let W=0;W<Y.components.length;W++){let D=Y.components[W],U=Array.isArray($)?W:D.name,V=nZ({checksumAddress:Q,parameter:D,value:$[U]});if(G.push(V),V.dynamic)X=!0}return{dynamic:X,encoded:X?Gz(G):k4(...G.map(({encoded:W})=>W))}}function dZ($){let J=$.match(/^(.*)\[(\d+)?\]$/);return J?[J[2]?Number(J[2]):null,J[1]]:void 0}function YD($){let{type:J}=$;if(J==="string")return!0;if(J==="bytes")return!0;if(J.endsWith("[]"))return!0;if(J==="tuple")return $.components?.some(YD);let Q=dZ($.type);if(Q&&YD({...$,type:Q[1]}))return!0;return!1}Q1();var e8$={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new ch({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition($){if($<0||$>this.bytes.length-1)throw new ih({length:this.bytes.length,position:$})},decrementPosition($){if($<0)throw new cZ({offset:$});let J=this.position-$;this.assertPosition(J),this.position=J},getReadCount($){return this.positionReadCount.get($||this.position)||0},incrementPosition($){if($<0)throw new cZ({offset:$});let J=this.position+$;this.assertPosition(J),this.position=J},inspectByte($){let J=$??this.position;return this.assertPosition(J),this.bytes[J]},inspectBytes($,J){let Q=J??this.position;return this.assertPosition(Q+$-1),this.bytes.subarray(Q,Q+$)},inspectUint8($){let J=$??this.position;return this.assertPosition(J),this.bytes[J]},inspectUint16($){let J=$??this.position;return this.assertPosition(J+1),this.dataView.getUint16(J)},inspectUint24($){let J=$??this.position;return this.assertPosition(J+2),(this.dataView.getUint16(J)<<8)+this.dataView.getUint8(J+2)},inspectUint32($){let J=$??this.position;return this.assertPosition(J+3),this.dataView.getUint32(J)},pushByte($){this.assertPosition(this.position),this.bytes[this.position]=$,this.position++},pushBytes($){this.assertPosition(this.position+$.length-1),this.bytes.set($,this.position),this.position+=$.length},pushUint8($){this.assertPosition(this.position),this.bytes[this.position]=$,this.position++},pushUint16($){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,$),this.position+=2},pushUint24($){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,$>>8),this.dataView.setUint8(this.position+2,$&255),this.position+=3},pushUint32($){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,$),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let $=this.inspectByte();return this.position++,$},readBytes($,J){this.assertReadLimit(),this._touch();let Q=this.inspectBytes($);return this.position+=J??$,Q},readUint8(){this.assertReadLimit(),this._touch();let $=this.inspectUint8();return this.position+=1,$},readUint16(){this.assertReadLimit(),this._touch();let $=this.inspectUint16();return this.position+=2,$},readUint24(){this.assertReadLimit(),this._touch();let $=this.inspectUint24();return this.position+=3,$},readUint32(){this.assertReadLimit(),this._touch();let $=this.inspectUint32();return this.position+=4,$},get remaining(){return this.bytes.length-this.position},setPosition($){let J=this.position;return this.assertPosition($),this.position=$,()=>this.position=J},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let $=this.getReadCount();if(this.positionReadCount.set(this.position,$+1),$>0)this.recursiveReadCount++}};function Dz($,{recursiveReadLimit:J=8192}={}){let Q=Object.create(e8$);return Q.bytes=$,Q.dataView=new DataView($.buffer,$.byteOffset,$.byteLength),Q.positionReadCount=new Map,Q.recursiveReadLimit=J,Q}class cZ extends D${constructor({offset:$}){super(`Offset \`${$}\` cannot be negative.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class ih extends D${constructor({length:$,position:J}){super(`Position \`${J}\` is out of bounds (\`0 < position < ${$}\`).`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}}class ch extends D${constructor({count:$,limit:J}){super(`Recursive read limit of \`${J}\` exceeded (recursive read count: \`${$}\`).`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}}function E5($,J,Q={}){let{as:Y="Array",checksumAddress:X=!1}=Q,G=typeof J==="string"?Y5(J):J,W=Dz(G);if(l1(G)===0&&$.length>0)throw new th;if(l1(G)&&l1(G)<32)throw new rh({data:typeof J==="string"?J:n4(J),parameters:$,size:l1(G)});let D=0,U=Y==="Array"?[]:{};for(let V=0;V<$.length;++V){let O=$[V];W.setPosition(D);let[M,N]=b8(W,O,{checksumAddress:X,staticPosition:0});if(D+=N,Y==="Array")U.push(M);else U[O.name??V]=M}return U}function wX($,J,Q){let{checksumAddress:Y=!1}=Q??{};if($.length!==J.length)throw new rZ({expectedLength:$.length,givenLength:J.length});let X=ph({checksumAddress:Y,parameters:$,values:J}),G=Gz(X);if(G.length===0)return"0x";return G}function oZ($,J){if($.length!==J.length)throw new rZ({expectedLength:$.length,givenLength:J.length});let Q=[];for(let Y=0;Y<$.length;Y++){let X=$[Y],G=J[Y];Q.push(oZ.encode(X,G))}return k4(...Q)}(function($){function J(Q,Y,X=!1){if(Q==="address"){let U=Y;return x8(U),cJ(U.toLowerCase(),X?32:0)}if(Q==="string")return W5(Y);if(Q==="bytes")return Y;if(Q==="bool")return cJ(BM(Y),X?32:1);let G=Q.match(Yz);if(G){let[U,V,O="256"]=G,M=Number.parseInt(O,10)/8;return J4(Y,{size:X?32:M,signed:V==="int"})}let W=Q.match(lh);if(W){let[U,V]=W;if(Number.parseInt(V,10)!==(Y.length-2)/2)throw new Wz({expectedSize:Number.parseInt(V,10),value:Y});return c0(Y,X?32:0)}let D=Q.match(mh);if(D&&Array.isArray(Y)){let[U,V]=D,O=[];for(let M=0;M<Y.length;M++)O.push(J(V,Y[M],!0));if(O.length===0)return"0x";return k4(...O)}throw new GD(Q)}$.encode=J})(oZ||(oZ={}));function DD($){if(Array.isArray($)&&typeof $[0]==="string")return WM($);if(typeof $==="string")return WM($);return $}class rh extends D${constructor({data:$,parameters:J,size:Q}){super(`Data size of ${Q} bytes is too small for given parameters.`,{metaMessages:[`Params: (${gJ(J)})`,`Data: ${$} (${Q} bytes)`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}}class th extends D${constructor(){super('Cannot decode zero data ("0x") with ABI parameters.');Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"})}}class pZ extends D${constructor({expectedLength:$,givenLength:J,type:Q}){super(`Array length mismatch for type \`${Q}\`. Expected: \`${$}\`. Given: \`${J}\`.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"})}}class Wz extends D${constructor({expectedSize:$,value:J}){super(`Size of bytes "${J}" (bytes${v4(J)}) does not match expected size (bytes${$}).`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class rZ extends D${constructor({expectedLength:$,givenLength:J}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${$}`,`Given length (values): ${J}`].join(`
112
+ `}class nL{constructor($=_x.stdin,J=_x.stdout){this._stdin=$,this._stdout=J,this._readBuffer=new lL,this._started=!1,this._ondata=(Q)=>{this._readBuffer.append(Q),this.processReadBuffer()},this._onerror=(Q)=>{this.onerror?.(Q)}}async start(){if(this._started)throw Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){while(!0)try{let $=this._readBuffer.readMessage();if($===null)break;this.onmessage?.($)}catch($){this.onerror?.($)}}async close(){if(this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0)this._stdin.pause();this._readBuffer.clear(),this.onclose?.()}send($){return new Promise((J)=>{let Q=Sx($);if(this._stdout.write(Q))J();else this._stdout.once("drain",J)})}}var B3={name:"@0xmonaco/mcp-server",version:"0.6.3",type:"module",repository:{type:"git",url:"https://github.com/Monaco-Research/monaco-sdk.git",directory:"packages/mcp-server"},description:"MCP server for the Monaco SDK",engines:{node:">=18"},bin:"./dist/bin.js",files:["dist"],scripts:{build:"bun build src/bin.ts --outdir dist --target node --format esm --minify",dev:"bun --watch src/bin.ts",start:"bun dist/bin.js",clean:"rm -rf dist",lint:"biome lint .",test:"bun test"},author:"@codebycarson",dependencies:{"@0xmonaco/core":"*","@0xmonaco/types":"*","@modelcontextprotocol/sdk":"^1.26.0","node-fetch":"^3.3.2",viem:"^2.45.2",ws:"^8.19.0",zod:"^4.0.0"},devDependencies:{"@types/bun":"latest","@types/ws":"^8.18.1"}};var hJ$={mainnet:"https://evm-rpc.sei-apis.com",development:"https://evm-rpc-testnet.sei-apis.com",staging:"https://evm-rpc-testnet.sei-apis.com",local:"http://localhost:8545"};function mQ($=process.env){let J=$.MONACO_PRIVATE_KEY||null;if(J&&!J.startsWith("0x"))throw Error("MONACO_PRIVATE_KEY must start with '0x'.");let Q=$.MONACO_CLIENT_ID||null;if(J&&!Q)throw Error("MONACO_CLIENT_ID is required when MONACO_PRIVATE_KEY is set.");let Y=["mainnet","development","staging","local"],X=$.MONACO_NETWORK||"mainnet";if(!Y.includes(X))throw Error(`MONACO_NETWORK must be one of: ${Y.join(", ")}. Got: "${X}".`);let G=X,W=$.MONACO_RPC_URL||hJ$[G];return{privateKey:J,clientId:Q,network:G,seiRpcUrl:W}}function uJ$($){return $.replace(/_([a-z])/g,(J,Q)=>Q.toUpperCase())}function NY($){if($===null||$===void 0)return $;if(typeof $!=="object")return $;if(Array.isArray($))return $.map((Q)=>NY(Q));let J={};for(let[Q,Y]of Object.entries($))J[uJ$(Q)]=typeof Y==="object"&&Y!==null?NY(Y):Y;return J}var YW=[0.0001,0.001,0.01,0.1,1,10,100,1000,1e4];var mJ$=1e4,lJ$=15000,nJ$=30000,dJ$=["created","cancelled","triggered","failed","oco_cancelled"],pJ$=["STOP_LOSS","TAKE_PROFIT"],iJ$=["MARK_PRICE"],cJ$=["ACTIVE","TRIGGERING","TRIGGERED","CANCELLED","EXPIRED","FAILED"];function Ex($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function W8($,J){let Q=$[J];if(typeof Q!=="string"||Q.length===0)throw Error(`Invalid conditional order event: ${J} must be a non-empty string`);return Q}function EJ($,J){let Q=$[J];if(Q===void 0||Q===null)return;if(typeof Q!=="string")throw Error(`Invalid conditional order event: ${J} must be a string`);return Q}function oJ$($,J){let Q=$[J];if(typeof Q!=="boolean")throw Error(`Invalid conditional order event: ${J} must be a boolean`);return Q}function rJ$($,J){let Q=$[J];if(Q===void 0||Q===null)return;if(typeof Q!=="number"||!Number.isFinite(Q))throw Error(`Invalid conditional order event: ${J} must be a finite number`);return Q}function lQ($,J,Q){let Y=W8($,J);if(!Q.includes(Y))throw Error(`Invalid conditional order event: ${J} must be one of ${Q.join(", ")}`);return Y}function tJ$($,J,Q){let Y=$[J];if(Y===void 0||Y===null)return;if(typeof Y!=="string"||!Q.includes(Y))throw Error(`Invalid conditional order event: ${J} must be one of ${Q.join(", ")}`);return Y}function aJ$($){if(!Ex($))throw Error("Invalid conditional order event: payload must be an object");if(!Ex($.data))throw Error("Invalid conditional order event: data must be an object");let J=NY($.data);return{eventType:lQ($,"event_type",["conditional_order_update"]),userId:W8($,"user_id"),data:{conditionalOrderId:W8(J,"conditionalOrderId"),tradingPairId:W8(J,"tradingPairId"),marginAccountId:W8(J,"marginAccountId"),positionId:EJ(J,"positionId"),linkedGroupId:EJ(J,"linkedGroupId"),conditionType:lQ(J,"conditionType",pJ$),triggerSource:lQ(J,"triggerSource",iJ$),triggerPrice:W8(J,"triggerPrice"),side:lQ(J,"side",["BUY","SELL"]),positionSide:lQ(J,"positionSide",["LONG","SHORT","NONE"]),orderType:lQ(J,"orderType",["LIMIT","MARKET"]),limitPrice:EJ(J,"limitPrice"),quantity:EJ(J,"quantity"),slippageToleranceBps:rJ$(J,"slippageToleranceBps"),reduceOnly:oJ$(J,"reduceOnly"),timeInForce:tJ$(J,"timeInForce",["GTC","IOC"]),state:lQ(J,"state",cJ$),triggeredOrderId:EJ(J,"triggeredOrderId"),triggeredAt:EJ(J,"triggeredAt"),cancelledAt:EJ(J,"cancelledAt"),expiresAt:EJ(J,"expiresAt"),failureReason:EJ(J,"failureReason"),reason:lQ(J,"reason",dJ$),updatedAt:W8(J,"updatedAt")}}}function dL($,J={}){let Q=null,Y=J.token,X=0,G=null,W=null,D=J.autoReconnect??!0,U=J.maxReconnectAttempts??5,V=new Map,O=()=>{if(!Q)return"disconnected";switch(Q.readyState){case WebSocket.CONNECTING:return"connecting";case WebSocket.OPEN:return"connected";default:return"disconnected"}},M=()=>{let m=new URL($);if(Y)m.searchParams.set("token",Y);return m.toString()},N=()=>{if(W)clearInterval(W),W=null},q=()=>{N(),W=setInterval(()=>{if(Q?.readyState===WebSocket.OPEN)Q.send(JSON.stringify({type:"Ping"}))},lJ$)},w=()=>{if(G)clearTimeout(G),G=null},I=()=>{if(!D||X>=U){console.error("WebSocket: Max reconnect attempts reached");return}X++;let m=Math.min(1000*2**X,nJ$);G=setTimeout(()=>{B().catch((T)=>{console.warn("WebSocket: Failed to reconnect:",T)})},m)},Z=(m)=>{if(Q?.readyState===WebSocket.OPEN)Q.send(JSON.stringify(m))},L=()=>{let m=Array.from(V.keys());if(m.length>0)Z({type:"Subscribe",channels:m})},_=(m)=>{if(m.type!=="Event"||!m.channel)return;for(let[T,u]of V)if(m.channel===T||m.channel.startsWith(`${T}:`))for(let d of u)d(m.data)},B=()=>{return new Promise((m,T)=>{if(Q?.readyState===WebSocket.CONNECTING||Q?.readyState===WebSocket.OPEN){m();return}try{let u=new WebSocket(M());Q=u;let d=setTimeout(()=>{if(Q!==u){m();return}if(u.readyState===WebSocket.CONNECTING)u.close(1000,"Connection timeout"),T(Error("WebSocket connection timeout"))},mJ$);u.onopen=()=>{if(clearTimeout(d),Q!==u){m();return}X=0,q(),L(),J.onStatusChange?.("connected"),m()},u.onmessage=(b)=>{if(Q!==u)return;try{let i=JSON.parse(b.data);if(i.type==="Pong")return;_(i)}catch(i){console.warn("WebSocket: Failed to parse message",i)}},u.onclose=(b)=>{if(clearTimeout(d),Q!==u){m();return}if(Q=null,N(),J.onStatusChange?.("disconnected"),D&&b.code!==1000)I()},u.onerror=()=>clearTimeout(d)}catch(u){J.onStatusChange?.("disconnected"),T(u)}})},F=()=>{D=!1,w(),N(),V.clear(),Q?.close(1000,"Client disconnect"),Q=null,J.onStatusChange?.("disconnected")},S=(m,T)=>{let u=!V.has(m);if(!V.has(m))V.set(m,new Set);if(V.get(m)?.add(T),u&&Q?.readyState===WebSocket.OPEN)Z({type:"Subscribe",channels:[m]});return()=>{let d=V.get(m);if(d){if(d.delete(T),d.size===0){if(V.delete(m),Q?.readyState===WebSocket.OPEN)Z({type:"Unsubscribe",channels:[m]})}}}};return{connect:B,disconnect:F,isConnected:()=>Q?.readyState===WebSocket.OPEN,getStatus:O,setToken:(m)=>{Y=m||void 0,w();let T=Q;if(T?.readyState===WebSocket.OPEN||T?.readyState===WebSocket.CONNECTING||T?.readyState===WebSocket.CLOSING)T.close(1000,m?"Token updated, reconnecting.":"Token cleared."),Q=null;if(!m)return;B().catch((u)=>{console.warn("WebSocket: Failed to reconnect after token update:",u)})},orders:(m,T,u)=>{let d=`orders:${m}:${T}`;return S(d,(b)=>{try{let i=b,V$={orderId:i.order_id,eventType:i.event_type,timestamp:i.timestamp,data:NY(i.data)};u(V$)}catch(i){console.error("WebSocket: Error processing order event",i)}})},orderbook:(m,T,u,d,b)=>{if(!m||!T||u===void 0||!d)throw Error(`orderbook subscription requires all params: tradingPairId="${m}", tradingMode="${T}", magnitude=${u} (valid: ${YW.join(", ")}), quotationMode="${d}" (valid: "BASE", "QUOTE")`);if(!YW.includes(u))throw Error(`Invalid magnitude: ${u}. Must be one of: ${YW.join(", ")}`);let i=`orderbook:${m}:${T}:${u}:${d.toLowerCase()}`;return S(i,(V$)=>{try{let R$=V$,P$=R$.data,w6={tradingPairId:R$.symbol,tradingMode:R$.trading_mode,bids:(P$?.bids||[]).map((e$)=>({price:e$.price,quantity:e$.quantity,orderCount:e$.order_count||0})),asks:(P$?.asks||[]).map((e$)=>({price:e$.price,quantity:e$.quantity,orderCount:e$.order_count||0})),bestBid:P$?.best_bid,bestAsk:P$?.best_ask,bidVolume:P$?.bid_volume||void 0,askVolume:P$?.ask_volume||void 0,priceChange:P$?.price_change?{side:P$.price_change.side,oldPrice:P$.price_change.old_price,newPrice:P$.price_change.new_price,levelRemoved:P$.price_change.level_removed||!1,levelAdded:P$.price_change.level_added||!1}:void 0,baseDecimals:R$.base_decimals||0,quoteDecimals:R$.quote_decimals||0,timestamp:R$.timestamp||new Date().toISOString(),sequence:R$.sequence_number||0};b(w6)}catch(R$){console.error("WebSocket: Error processing orderbook event",R$)}})},ohlcv:(m,T,u,d)=>{let b=`ohlcv:${m}:${T}:${u}`;return S(b,(i)=>{try{let V$=i,R$=V$.data,P$={tradingPairId:V$.symbol,tradingMode:V$.trading_mode,interval:V$.interval,candlestick:{T:R$.period_start||0,t:R$.period_end||0,o:R$.open||"0",h:R$.high||"0",l:R$.low||"0",c:R$.close||"0",v:R$.volume||"0",s:V$.symbol,i:V$.interval,n:R$.trades_count||0}};d(P$)}catch(V$){console.error("WebSocket: Error processing OHLCV event",V$)}})},trades:(m,T)=>{let u=`trades:${m}`;return S(u,(d)=>{try{let b=d,i=b.data,V$={eventType:"trade",tradingPairId:b.trading_pair_id,tradingMode:b.trading_mode.toUpperCase(),data:{tradeId:i.trade_id,price:i.price,quantity:i.quantity,makerSide:i.maker_side.toUpperCase(),executedAt:i.executed_at}};T(V$)}catch(b){console.error("WebSocket: Error processing trade event",b)}})},movements:(m)=>{return S("movements",(u)=>{try{let d=u,b=d.data,i={eventType:"movement",userId:d.user_id,data:{id:b.id,entryType:b.entry_type,transactionType:b.transaction_type,tokenAddress:b.token_address,amount:String(b.amount),amountRaw:b.amount_raw,balanceBefore:b.balance_before!=null?String(b.balance_before):void 0,balanceAfter:b.balance_after!=null?String(b.balance_after):void 0,lockedBefore:b.locked_before!=null?String(b.locked_before):void 0,lockedAfter:b.locked_after!=null?String(b.locked_after):void 0,referenceId:b.reference_id,referenceType:b.reference_type,description:b.description,txHash:b.tx_hash,createdAt:b.created_at,decimals:b.decimals}};m(i)}catch(d){console.error("WebSocket: Error processing movement event",d)}})},userOrders:(m)=>{return S("orders",(u)=>{try{let d=u,b={orderId:d.order_id,eventType:d.event_type,timestamp:d.timestamp,data:NY(d.data)};m(b)}catch(d){console.error("WebSocket: Error processing user order event",d)}})},balances:(m)=>{return S("balances",(u)=>{try{let d=u,b=d.data,i={eventType:"balance_update",userId:d.user_id,data:{tokenAddress:b.token_address,tokenSymbol:b.token_symbol,available:b.available,availableRaw:b.available_raw,locked:b.locked,lockedRaw:b.locked_raw,total:b.total,totalRaw:b.total_raw,reason:b.reason,referenceId:b.reference_id,updatedAt:b.updated_at}};m(i)}catch(d){console.error("WebSocket: Error processing balance event",d)}})},conditionalOrders:(m,T)=>{if(!m)throw Error("conditionalOrders subscription requires a handler");if(T!==void 0&&T.length===0)throw Error("conditionalOrders tradingPairId cannot be empty");let u=T?`conditional_orders:${T}`:"conditional_orders";return S(u,(d)=>{try{m(aJ$(d))}catch(b){console.error("WebSocket: Error processing conditional order event",b)}})}}}var nQ=S1(F3(),1),hf=["token","accessToken","access_token","refreshToken","refresh_token","authToken","auth_token","bearerToken","bearer_token","jwtToken","jwt_token","apiKey","api_key","apikey","clientSecret","client_secret","clientId","client_id","secret","password","authorization","bearer","auth","credentials","credential","email","phone","phoneNumber","phone_number","ssn","socialSecurity","social_security","address","passport","passportNumber","passport_number","driversLicense","drivers_license","cardNumber","card_number","creditCard","credit_card","cvv","pin","signature","privateKey","private_key","publicKey","public_key","mnemonic","seed","salt","hash","certificate","cert","fingerprint","cookie","session","sessionId","session_id","sessionToken","session_token","ipAddress","ip_address","deviceId","device_id","userId","user_id","accountId","account_id"];function qY($,J=5,Q=0){if(Q>=J)return"[Max depth reached]";if($===null||$===void 0)return $;if(Array.isArray($)){let X=$.slice(0,10).map((G)=>qY(G,J,Q+1));if($.length>10)X.push(`[... ${$.length-10} more items]`);return X}if(typeof $==="object"){let Y={};for(let[X,G]of Object.entries($)){let W=X.toLowerCase();if(hf.some((U)=>W.includes(U.toLowerCase())))Y[X]="[REDACTED]";else if(typeof G==="string"&&G.length>500)Y[X]=`${G.substring(0,500)}... [truncated]`;else Y[X]=qY(G,J,Q+1)}return Y}if(typeof $==="string"){if($.length>1000)return`${$.substring(0,1000)}... [truncated]`;return $}return $}class HY extends Error{cause;suggestion;retryable=!1;timestamp;constructor($,J){super($);if(this.name=this.constructor.name,this.timestamp=Date.now(),J?.cause)this.cause=J.cause;if(J?.suggestion)this.suggestion=J.suggestion;if(J?.retryable!==void 0)this.retryable=J.retryable}toJSON(){return{name:this.name,code:this.code,message:this.message,suggestion:this.suggestion,retryable:this.retryable,timestamp:this.timestamp,cause:this.cause instanceof Error?this.cause.message:this.cause}}}class b4 extends HY{code="INVALID_CONFIG";field;value;constructor($,J,Q,Y){let X=J?`Check the '${J}' configuration parameter. ${MQ$(J)}`:"Review your SDK configuration and ensure all required fields are provided correctly.";super($,{cause:Y,suggestion:X,retryable:!1});this.field=J,this.value=Q}toJSON(){let $;if(this.field){let J=this.field.toLowerCase();if(hf.some((Y)=>J.includes(Y.toLowerCase())))$="[REDACTED]";else $=qY(this.value)}else $=qY(this.value);return{...super.toJSON(),field:this.field,value:$}}}function MQ$($){switch($.toLowerCase()){case"walletclient":return"Ensure you're creating the wallet client with a valid account and chain configuration.";case"seirpcurl":return"Use 'https://evm-rpc-testnet.sei-apis.com' for testnet or 'https://evm-rpc.sei-apis.com' for mainnet.";case"wsurl":return"Use 'wss://development.apimonaco.xyz/ws' for testnet or 'wss://api.monaco.xyz/ws' for mainnet.";case"network":return"Valid networks are: 'mainnet', 'development', 'staging', 'local'.";default:return"Refer to the SDK documentation for correct configuration format."}}class GW extends HY{code="INVALID_STATE";currentState;expectedState;constructor($,J,Q,Y){let X=Q?`${J?`Current state is '${J}', `:""}Expected state is '${Q}'. Ensure operations are performed in the correct order.`:"Check that prerequisites are met before calling this method.";super($,{cause:Y,suggestion:X,retryable:!1});this.currentState=J,this.expectedState=Q}toJSON(){return{...super.toJSON(),currentState:this.currentState,expectedState:this.expectedState}}}class f6 extends HY{code="API_ERROR";endpoint;statusCode;responseBody;requestBody;requestId;retryAfter;constructor($,J){let{suggestion:Q,retryable:Y}=zQ$(J?.statusCode,$,J?.responseBody);super($,{cause:J?.cause,suggestion:Q,retryable:Y});this.endpoint=J?.endpoint,this.statusCode=J?.statusCode,this.responseBody=J?.responseBody,this.requestBody=J?.requestBody,this.requestId=J?.requestId,this.retryAfter=J?.retryAfter}toJSON(){return{...super.toJSON(),endpoint:this.endpoint,statusCode:this.statusCode,responseBody:qY(this.responseBody),requestBody:qY(this.requestBody),requestId:this.requestId,retryAfter:this.retryAfter}}}function zQ$($,J,Q){if(!$)return{suggestion:"Network request failed. Check your internet connection and try again.",retryable:!0};if($===nQ.StatusCodes.UNAUTHORIZED){if(J?.toLowerCase().includes("expired"))return{suggestion:"Access token has expired. Call sdk.refreshAuth() to get a new token, or call sdk.login() to re-authenticate.",retryable:!1};return{suggestion:"Authentication required. Call sdk.login(clientId) to authenticate before making this request.",retryable:!1}}if($===nQ.StatusCodes.FORBIDDEN)return{suggestion:"Access denied. Ensure your application has the required permissions and your client ID is valid.",retryable:!1};if($===nQ.StatusCodes.NOT_FOUND)return{suggestion:"Resource not found. Check that the ID or identifier is correct and the resource exists.",retryable:!1};if($===nQ.StatusCodes.CONFLICT)return{suggestion:"Resource conflict. The resource may have been modified. Refresh and try again.",retryable:!0};if($===nQ.StatusCodes.BAD_REQUEST){if(J?.toLowerCase().includes("insufficient balance"))return{suggestion:"Insufficient balance. Deposit more funds using sdk.vault.deposit() or reduce the order size.",retryable:!1};if(J?.toLowerCase().includes("invalid"))return{suggestion:"Invalid request parameters. Check the API documentation for correct parameter format and values.",retryable:!1};return{suggestion:"Bad request. Verify that all required parameters are provided and correctly formatted.",retryable:!1}}if($===nQ.StatusCodes.TOO_MANY_REQUESTS){let Y;if(typeof Q==="object"&&Q!==null&&"retry_after"in Q&&Q.retry_after){let X=Q.retry_after;Y=` Wait ${String(X)} seconds before retrying.`}else Y=" Wait a moment before retrying.";return{suggestion:`Rate limit exceeded.${Y} Consider implementing exponential backoff for retries.`,retryable:!0}}if($>=nQ.StatusCodes.INTERNAL_SERVER_ERROR&&$<600)return{suggestion:"Server error occurred. This is likely a temporary issue. Try again in a few moments.",retryable:!0};return{suggestion:void 0,retryable:!1}}class D8 extends HY{code="CONTRACT_ERROR";revertReason;transactionHash;contractAddress;constructor($,J){let Q=NQ$(J?.revertReason);super($,{cause:J?.cause,suggestion:Q,retryable:!1});this.revertReason=J?.revertReason,this.transactionHash=J?.transactionHash,this.contractAddress=J?.contractAddress}toJSON(){return{...super.toJSON(),revertReason:this.revertReason,transactionHash:this.transactionHash,contractAddress:this.contractAddress}}}function NQ$($){if(!$)return"Smart contract execution failed. Check transaction parameters and try again.";let J=$.toLowerCase();if(J.includes("insufficient allowance"))return"Token allowance is insufficient. Call sdk.vault.approve() to increase the token allowance for the vault contract.";if(J.includes("insufficient balance"))return"Wallet balance is insufficient for this transaction. Ensure you have enough tokens and native currency for gas fees.";if(J.includes("nonce"))return"Transaction nonce error. This may be due to a pending transaction. Wait for pending transactions to complete or reset your account nonce.";if(J.includes("gas"))return"Transaction ran out of gas. Try increasing the gas limit for this transaction.";return}var qQ$={local:"http://localhost:8080",development:"https://develop.apimonaco.xyz",staging:"https://staging.apimonaco.xyz",mainnet:"https://api.monaco.xyz"},HQ$={local:"ws://localhost:8085/ws",development:"wss://develop.apimonaco.xyz/ws",staging:"wss://staging.apimonaco.xyz/ws",mainnet:"wss://api.monaco.xyz/ws"};function WW($){return qQ$[$]}function aL($){return HQ$[$]}var dm=S1(F3(),1);var j3=256,S3;function _3($=11){if(!S3||j3+$>512){S3="",j3=0;for(let J=0;J<256;J++)S3+=(256+Math.random()*256|0).toString(16).substring(1)}return S3.substring(j3,j3+++$)}function E3($){let{batch:J,chain:Q,ccipRead:Y,dataSuffix:X,key:G="base",name:W="Base Client",type:D="base"}=$,U=$.experimental_blockTag??(typeof Q?.experimental_preconfirmationTime==="number"?"pending":void 0),V=Q?.blockTime??12000,O=Math.min(Math.max(Math.floor(V/2),500),4000),M=$.pollingInterval??O,N=$.cacheTime??M,q=$.account?_$($.account):void 0,{config:w,request:I,value:Z}=$.transport({account:q,chain:Q,pollingInterval:M}),L={...w,...Z},_={account:q,batch:J,cacheTime:N,ccipRead:Y,chain:Q,dataSuffix:X,key:G,name:W,pollingInterval:M,request:I,transport:L,type:D,uid:_3(),...U?{experimental_blockTag:U}:{}};function B(F){return(S)=>{let v=S(F);for(let h in _)delete v[h];let k={...F,...v};return Object.assign(k,{extend:B(k)})}}return Object.assign(_,{extend:B(_)})}PJ();eQ();w1();H8();w$();x$();$X();function RY($){if(!($ instanceof R))return!1;let J=$.walk((Q)=>Q instanceof vY);if(!(J instanceof vY))return!1;if(J.data?.errorName==="HttpError")return!0;if(J.data?.errorName==="ResolverError")return!0;if(J.data?.errorName==="ResolverNotContract")return!0;if(J.data?.errorName==="ResolverNotFound")return!0;if(J.data?.errorName==="ReverseAddressMismatch")return!0;if(J.data?.errorName==="UnsupportedResolverProfile")return!0;return!1}PW();$6();w$();b1();function NM($){if($.length!==66)return null;if($.indexOf("[")!==0)return null;if($.indexOf("]")!==65)return null;let J=`0x${$.slice(1,65)}`;if(!T4(J))return null;return J}function vW($){let J=new Uint8Array(32).fill(0);if(!$)return a$(J);let Q=$.split(".");for(let Y=Q.length-1;Y>=0;Y-=1){let X=NM(Q[Y]),G=X?f1(X):U4(O0(Q[Y]),"bytes");J=U4(Z4([J,G]),"bytes")}return a$(J)}$6();function wg($){return`[${$.slice(2)}]`}$6();w$();b1();function Ag($){let J=new Uint8Array(32).fill(0);if(!$)return a$(J);return NM($)||U4(O0($))}function TY($){let J=$.replace(/^\.|\.$/gm,"");if(J.length===0)return new Uint8Array(1);let Q=new Uint8Array(O0(J).byteLength+2),Y=0,X=J.split(".");for(let G=0;G<X.length;G++){let W=O0(X[G]);if(W.byteLength>255)W=O0(wg(Ag(X[G])));Q[Y]=W.length,Q.set(W,Y+1),Y+=W.length+1}if(Q.byteLength!==Y+1)return Q.slice(0,Y+1);return Q}function p($,J,Q){let Y=$[J.name];if(typeof Y==="function")return Y;let X=$[Q];if(typeof X==="function")return X;return(G)=>J($,G)}eQ();w1();l4();x$();$X();L8();aY();var IX$=3;function A1($,{abi:J,address:Q,args:Y,docsPath:X,functionName:G,sender:W}){let D=$ instanceof hJ?$:$ instanceof R?$.walk((w)=>("data"in w))||$.walk():{},{code:U,data:V,details:O,message:M,shortMessage:N}=D,q=(()=>{if($ instanceof K0)return new zB({functionName:G});if([IX$,mJ.code].includes(U)&&(V||O||M||N)||U===m1.code&&O==="execution reverted"&&V)return new vY({abi:J,data:typeof V==="object"?V.data:V,functionName:G,message:D instanceof I8?O:N??M});return $})();return new EW(q,{abi:J,args:Y,contractAddress:Q,docsPath:X,functionName:G,sender:W})}O5();async function i4($,J){let{abi:Q,address:Y,args:X,functionName:G,...W}=J,D=S4({abi:Q,args:X,functionName:G});try{let{data:U}=await p($,r0,"call")({...W,data:D,to:Y});return $1({abi:Q,args:X,functionName:G,data:U||"0x"})}catch(U){throw A1(U,{abi:Q,address:Y,args:X,docsPath:"/docs/contract/readContract",functionName:G})}}async function Yy($,J){let{blockNumber:Q,blockTag:Y,coinType:X,name:G,gatewayUrls:W,strict:D}=J,{chain:U}=$,V=(()=>{if(J.universalResolverAddress)return J.universalResolverAddress;if(!U)throw Error("client chain not configured. universalResolverAddress is required.");return h1({blockNumber:Q,chain:U,contract:"ensUniversalResolver"})})(),O=U?.ensTlds;if(O&&!O.some((N)=>G.endsWith(N)))return null;let M=(()=>{if(X!=null)return[vW(G),BigInt(X)];return[vW(G)]})();try{let N=S4({abi:eL,functionName:"addr",args:M}),q={address:V,abi:v3,functionName:"resolveWithGateways",args:[P4(TY(G)),N,W??[uJ]],blockNumber:Q,blockTag:Y},I=await p($,i4,"readContract")(q);if(I[0]==="0x")return null;let Z=$1({abi:eL,args:M,functionName:"addr",data:I[0]});if(Z==="0x")return null;if(s4(Z)==="0x00")return null;return Z}catch(N){if(D)throw N;if(RY(N))return null;throw N}}x$();class rB extends R{constructor({data:$}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify($)}`],name:"EnsAvatarInvalidMetadataError"})}}class P8 extends R{constructor({reason:$}){super(`ENS NFT avatar URI is invalid. ${$}`,{name:"EnsAvatarInvalidNftUriError"})}}class nW extends R{constructor({uri:$}){super(`Unable to resolve ENS avatar URI "${$}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}}class tB extends R{constructor({namespace:$}){super(`ENS NFT avatar namespace "${$}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}}var lX$=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,nX$=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/,dX$=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,pX$=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function iX$($){try{let J=await fetch($,{method:"HEAD"});if(J.status===200)return J.headers.get("content-type")?.startsWith("image/");return!1}catch(J){if(typeof J==="object"&&typeof J.response<"u")return!1;if(!Object.hasOwn(globalThis,"Image"))return!1;return new Promise((Q)=>{let Y=new Image;Y.onload=()=>{Q(!0)},Y.onerror=()=>{Q(!1)},Y.src=$})}}function Gy($,J){if(!$)return J;if($.endsWith("/"))return $.slice(0,-1);return $}function aB({uri:$,gatewayUrls:J}){let Q=dX$.test($);if(Q)return{uri:$,isOnChain:!0,isEncoded:Q};let Y=Gy(J?.ipfs,"https://ipfs.io"),X=Gy(J?.arweave,"https://arweave.net"),G=$.match(lX$),{protocol:W,subpath:D,target:U,subtarget:V=""}=G?.groups||{},O=W==="ipns:/"||D==="ipns/",M=W==="ipfs:/"||D==="ipfs/"||nX$.test($);if($.startsWith("http")&&!O&&!M){let q=$;if(J?.arweave)q=$.replace(/https:\/\/arweave.net/g,J?.arweave);return{uri:q,isOnChain:!1,isEncoded:!1}}if((O||M)&&U)return{uri:`${Y}/${O?"ipns":"ipfs"}/${U}${V}`,isOnChain:!1,isEncoded:!1};if(W==="ar:/"&&U)return{uri:`${X}/${U}${V||""}`,isOnChain:!1,isEncoded:!1};let N=$.replace(pX$,"");if(N.startsWith("<svg"))N=`data:image/svg+xml;base64,${btoa(N)}`;if(N.startsWith("data:")||N.startsWith("{"))return{uri:N,isOnChain:!0,isEncoded:!1};throw new nW({uri:$})}function sB($){if(typeof $!=="object"||!("image"in $)&&!("image_url"in $)&&!("image_data"in $))throw new rB({data:$});return $.image||$.image_url||$.image_data}async function Wy({gatewayUrls:$,uri:J}){try{let Q=await fetch(J).then((X)=>X.json());return await vM({gatewayUrls:$,uri:sB(Q)})}catch{throw new nW({uri:J})}}async function vM({gatewayUrls:$,uri:J}){let{uri:Q,isOnChain:Y}=aB({uri:J,gatewayUrls:$});if(Y)return Q;if(await iX$(Q))return Q;throw new nW({uri:J})}function Dy($){let J=$;if(J.startsWith("did:nft:"))J=J.replace("did:nft:","").replace(/_/g,"/");let[Q,Y,X]=J.split("/"),[G,W]=Q.split(":"),[D,U]=Y.split(":");if(!G||G.toLowerCase()!=="eip155")throw new P8({reason:"Only EIP-155 supported"});if(!W)throw new P8({reason:"Chain ID not found"});if(!U)throw new P8({reason:"Contract address not found"});if(!X)throw new P8({reason:"Token ID not found"});if(!D)throw new P8({reason:"ERC namespace not found"});return{chainID:Number.parseInt(W,10),namespace:D.toLowerCase(),contractAddress:U,tokenID:X}}async function Uy($,{nft:J}){if(J.namespace==="erc721")return i4($,{address:J.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(J.tokenID)]});if(J.namespace==="erc1155")return i4($,{address:J.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(J.tokenID)]});throw new tB({namespace:J.namespace})}async function Ky($,{gatewayUrls:J,record:Q}){if(/eip155:/i.test(Q))return cX$($,{gatewayUrls:J,record:Q});return vM({uri:Q,gatewayUrls:J})}async function cX$($,{gatewayUrls:J,record:Q}){let Y=Dy(Q),X=await Uy($,{nft:Y}),{uri:G,isOnChain:W,isEncoded:D}=aB({uri:X,gatewayUrls:J});if(W&&(G.includes("data:application/json;base64,")||G.startsWith("{"))){let V=D?atob(G.replace("data:application/json;base64,","")):G,O=JSON.parse(V);return vM({uri:sB(O),gatewayUrls:J})}let U=Y.tokenID;if(Y.namespace==="erc1155")U=U.replace("0x","").padStart(64,"0");return Wy({gatewayUrls:J,uri:G.replace(/(?:0x)?{id}/,U)})}PJ();eQ();w1();H8();w$();PW();async function RM($,J){let{blockNumber:Q,blockTag:Y,key:X,name:G,gatewayUrls:W,strict:D}=J,{chain:U}=$,V=(()=>{if(J.universalResolverAddress)return J.universalResolverAddress;if(!U)throw Error("client chain not configured. universalResolverAddress is required.");return h1({blockNumber:Q,chain:U,contract:"ensUniversalResolver"})})(),O=U?.ensTlds;if(O&&!O.some((M)=>G.endsWith(M)))return null;try{let M={address:V,abi:v3,args:[P4(TY(G)),S4({abi:sL,functionName:"text",args:[vW(G),X]}),W??[uJ]],functionName:"resolveWithGateways",blockNumber:Q,blockTag:Y},q=await p($,i4,"readContract")(M);if(q[0]==="0x")return null;let w=$1({abi:sL,functionName:"text",data:q[0]});return w===""?null:w}catch(M){if(D)throw M;if(RY(M))return null;throw M}}async function Vy($,{blockNumber:J,blockTag:Q,assetGatewayUrls:Y,name:X,gatewayUrls:G,strict:W,universalResolverAddress:D}){let U=await p($,RM,"getEnsText")({blockNumber:J,blockTag:Q,key:"avatar",name:X,universalResolverAddress:D,gatewayUrls:G,strict:W});if(!U)return null;try{return await Ky($,{record:U,gatewayUrls:Y})}catch{return null}}PJ();H8();PW();async function Oy($,J){let{address:Q,blockNumber:Y,blockTag:X,coinType:G=60n,gatewayUrls:W,strict:D}=J,{chain:U}=$,V=(()=>{if(J.universalResolverAddress)return J.universalResolverAddress;if(!U)throw Error("client chain not configured. universalResolverAddress is required.");return h1({blockNumber:Y,chain:U,contract:"ensUniversalResolver"})})();try{let O={address:V,abi:mf,args:[Q,G,W??[uJ]],functionName:"reverseWithGateways",blockNumber:Y,blockTag:X},M=p($,i4,"readContract"),[N]=await M(O);return N||null}catch(O){if(D)throw O;if(RY(O))return null;throw O}}H8();w$();async function My($,J){let{blockNumber:Q,blockTag:Y,name:X}=J,{chain:G}=$,W=(()=>{if(J.universalResolverAddress)return J.universalResolverAddress;if(!G)throw Error("client chain not configured. universalResolverAddress is required.");return h1({blockNumber:Q,chain:G,contract:"ensUniversalResolver"})})(),D=G?.ensTlds;if(D&&!D.some((V)=>X.endsWith(V)))throw Error(`${X} is not a valid ENS TLD (${D?.join(", ")}) for chain "${G.name}" (id: ${G.id}).`);let[U]=await p($,i4,"readContract")({address:W,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[P4(TY(X))],blockNumber:Q,blockTag:Y});return U}O5();w$();lB();rJ();o0();async function TM($,J){let{account:Q=$.account,blockNumber:Y,blockTag:X="latest",blobs:G,data:W,gas:D,gasPrice:U,maxFeePerBlobGas:V,maxFeePerGas:O,maxPriorityFeePerGas:M,to:N,value:q,...w}=J,I=Q?_$(Q):void 0;try{Q6(J);let L=(typeof Y==="bigint"?y(Y):void 0)||X,_=$.chain?.formatters?.transactionRequest?.format,F=(_||Z6)({...n1(w,{format:_}),account:I,blobs:G,data:W,gas:D,gasPrice:U,maxFeePerBlobGas:V,maxFeePerGas:O,maxPriorityFeePerGas:M,to:N,value:q},"createAccessList"),S=await $.request({method:"eth_createAccessList",params:[F,L]});return{accessList:S.accessList,gasUsed:BigInt(S.gasUsed)}}catch(Z){throw _M(Z,{...J,account:I,chain:$.chain})}}function KX($,{method:J}){let Q={};if($.transport.type==="fallback")$.transport.onResponse?.(({method:Y,response:X,status:G,transport:W})=>{if(G==="success"&&J===Y)Q[X]=W.request});return(Y)=>Q[Y]||$.request}async function zy($){let J=KX($,{method:"eth_newBlockFilter"}),Q=await $.request({method:"eth_newBlockFilter"});return{id:Q,request:J(Q),type:"block"}}l4();x$();class eB extends R{constructor($){super(`Filter type "${$}" is not supported.`,{name:"FilterTypeNotSupportedError"})}}$6();b1();BW();fJ();vJ();sQ();var Ny="/docs/contract/encodeEventTopics";function t0($){let{abi:J,eventName:Q,args:Y}=$,X=J[0];if(Q){let U=e6({abi:J,name:Q});if(!U)throw new k3(Q,{docsPath:Ny});X=U}if(X.type!=="event")throw new k3(void 0,{docsPath:Ny});let G=c4(X),W=aQ(G),D=[];if(Y&&"inputs"in X){let U=X.inputs?.filter((O)=>("indexed"in O)&&O.indexed),V=Array.isArray(Y)?Y:Object.values(Y).length>0?U?.map((O)=>Y[O.name])??[]:[];if(V.length>0)D=U?.map((O,M)=>{if(Array.isArray(V[M]))return V[M].map((N,q)=>qy({param:O,value:V[M][q]}));return typeof V[M]<"u"&&V[M]!==null?qy({param:O,value:V[M]}):null})??[]}return[W,...D]}function qy({param:$,value:J}){if($.type==="string"||$.type==="bytes")return U4(f1(J));if($.type==="tuple"||$.type.match(/^(.*)\[(\d+)?\]$/))throw new eB($.type);return b6([$],[J])}w$();async function CM($,J){let{address:Q,abi:Y,args:X,eventName:G,fromBlock:W,strict:D,toBlock:U}=J,V=KX($,{method:"eth_newFilter"}),O=G?t0({abi:Y,args:X,eventName:G}):void 0,M=await $.request({method:"eth_newFilter",params:[{address:Q,fromBlock:typeof W==="bigint"?y(W):W,toBlock:typeof U==="bigint"?y(U):U,topics:O}]});return{abi:Y,args:X,eventName:G,id:M,request:V(M),strict:Boolean(D),type:"event"}}w$();async function kM($,{address:J,args:Q,event:Y,events:X,fromBlock:G,strict:W,toBlock:D}={}){let U=X??(Y?[Y]:void 0),V=KX($,{method:"eth_newFilter"}),O=[];if(U){if(O=[U.flatMap((q)=>t0({abi:[q],eventName:q.name,args:Q}))],Y)O=O[0]}let M=await $.request({method:"eth_newFilter",params:[{address:J,fromBlock:typeof G==="bigint"?y(G):G,toBlock:typeof D==="bigint"?y(D):D,...O.length?{topics:O}:{}}]});return{abi:U,args:Q,eventName:Y?Y.name:void 0,fromBlock:G,id:M,request:V(M),strict:Boolean(W),toBlock:D,type:"event"}}async function xM($){let J=KX($,{method:"eth_newPendingTransactionFilter"}),Q=await $.request({method:"eth_newPendingTransactionFilter"});return{id:Q,request:J(Q),type:"transaction"}}w1();x$();oQ();b1();function fM($){let J=U4(`0x${$.substring(4)}`).substring(26);return xJ(`0x${J}`)}x1();e4();w$();async function sy({hash:$,signature:J}){let Q=T4($)?$:P4($),{secp256k1:Y}=await Promise.resolve().then(() => (N5(),ty));return`0x${(()=>{if(typeof J==="object"&&"r"in J&&"s"in J){let{r:V,s:O,v:M,yParity:N}=J,q=Number(N??M),w=ay(q);return new Y.Signature(g4(V),g4(O)).addRecoveryBit(w)}let W=T4(J)?J:P4(J);if(t$(W)!==65)throw Error("invalid signature length");let D=C4(`0x${W.slice(130)}`),U=ay(D);return Y.Signature.fromCompact(W.substring(2,130)).addRecoveryBit(U)})().recoverPublicKey(Q.substring(2)).toHex(!1)}`}function ay($){if($===0||$===1)return $;if($===27)return 0;if($===28)return 1;throw Error("Invalid yParityOrV value")}async function mM({hash:$,signature:J}){return fM(await sy({hash:$,signature:J}))}$6();w$();x$();c3();$6();w$();function sJ($,J="hex"){let Q=ey($),Y=AY(new Uint8Array(Q.length));if(Q.encode(Y),J==="hex")return a$(Y.bytes);return Y.bytes}function ey($){if(Array.isArray($))return B8$($.map((J)=>ey(J)));return Z8$($)}function B8$($){let J=$.reduce((X,G)=>X+G.length,0),Q=$h(J);return{length:(()=>{if(J<=55)return 1+J;return 1+Q+J})(),encode(X){if(J<=55)X.pushByte(192+J);else if(X.pushByte(247+Q),Q===1)X.pushUint8(J);else if(Q===2)X.pushUint16(J);else if(Q===3)X.pushUint24(J);else X.pushUint32(J);for(let{encode:G}of $)G(X)}}}function Z8$($){let J=typeof $==="string"?o4($):$,Q=$h(J.length);return{length:(()=>{if(J.length===1&&J[0]<128)return 1;if(J.length<=55)return 1+J.length;return 1+Q+J.length})(),encode(X){if(J.length===1&&J[0]<128)X.pushBytes(J);else if(J.length<=55)X.pushByte(128+J.length),X.pushBytes(J);else{if(X.pushByte(183+Q),Q===1)X.pushUint8(J.length);else if(Q===2)X.pushUint16(J.length);else if(Q===3)X.pushUint24(J.length);else X.pushUint32(J.length);X.pushBytes(J)}}}}function $h($){if($<256)return 1;if($<65536)return 2;if($<16777216)return 3;if($<4294967296)return 4;throw new R("Length is too large.")}b1();function lM($){let{chainId:J,nonce:Q,to:Y}=$,X=$.contractAddress??$.address,G=U4(B6(["0x05",sJ([J?y(J):"0x",X,Q?y(Q):"0x"])]));if(Y==="bytes")return o4(G);return G}async function NX($){let{authorization:J,signature:Q}=$;return mM({hash:lM(J),signature:Q??J})}w$();zM();PY();x$();u1();class FZ extends R{constructor($,{account:J,docsPath:Q,chain:Y,data:X,gas:G,gasPrice:W,maxFeePerGas:D,maxPriorityFeePerGas:U,nonce:V,to:O,value:M}){let N=w8({from:J?.address,to:O,value:typeof M<"u"&&`${EY(M)} ${Y?.nativeCurrency?.symbol||"ETH"}`,data:X,gas:G,gasPrice:typeof W<"u"&&`${r4(W)} gwei`,maxFeePerGas:typeof D<"u"&&`${r4(D)} gwei`,maxPriorityFeePerGas:typeof U<"u"&&`${r4(U)} gwei`,nonce:V});super($.shortMessage,{cause:$,docsPath:Q,metaMessages:[...$.metaMessages?[...$.metaMessages," "]:[],"Estimate Gas Arguments:",N].filter(Boolean),name:"EstimateGasExecutionError"});Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=$}}DX();lW();function Jh($,{docsPath:J,...Q}){let Y=(()=>{let X=UX($,Q);if(X instanceof H0)return $;return X})();return new FZ(Y,{docsPath:J,...Q})}rJ();PM();o0();PY();x$();class aW extends R{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}}class T8 extends R{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}}class jZ extends R{constructor({maxPriorityFeePerGas:$}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${r4($)} gwei).`,{name:"MaxFeePerGasTooLowError"})}}e4();x$();class sW extends R{constructor({blockHash:$,blockNumber:J}){let Q="Block";if($)Q=`Block at hash "${$}"`;if(J)Q=`Block at number "${J}"`;super(`${Q} could not be found.`,{name:"BlockNotFoundError"})}}w$();e4();var SZ={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function q5($,J){let Q={...$,blockHash:$.blockHash?$.blockHash:null,blockNumber:$.blockNumber?BigInt($.blockNumber):null,chainId:$.chainId?C4($.chainId):void 0,gas:$.gas?BigInt($.gas):void 0,gasPrice:$.gasPrice?BigInt($.gasPrice):void 0,maxFeePerBlobGas:$.maxFeePerBlobGas?BigInt($.maxFeePerBlobGas):void 0,maxFeePerGas:$.maxFeePerGas?BigInt($.maxFeePerGas):void 0,maxPriorityFeePerGas:$.maxPriorityFeePerGas?BigInt($.maxPriorityFeePerGas):void 0,nonce:$.nonce?C4($.nonce):void 0,to:$.to?$.to:null,transactionIndex:$.transactionIndex?Number($.transactionIndex):null,type:$.type?SZ[$.type]:void 0,typeHex:$.type?$.type:void 0,value:$.value?BigInt($.value):void 0,v:$.v?BigInt($.v):void 0};if($.authorizationList)Q.authorizationList=F8$($.authorizationList);if(Q.yParity=(()=>{if($.yParity)return Number($.yParity);if(typeof Q.v==="bigint"){if(Q.v===0n||Q.v===27n)return 0;if(Q.v===1n||Q.v===28n)return 1;if(Q.v>=35n)return Q.v%2n===0n?1:0}return})(),Q.type==="legacy")delete Q.accessList,delete Q.maxFeePerBlobGas,delete Q.maxFeePerGas,delete Q.maxPriorityFeePerGas,delete Q.yParity;if(Q.type==="eip2930")delete Q.maxFeePerBlobGas,delete Q.maxFeePerGas,delete Q.maxPriorityFeePerGas;if(Q.type==="eip1559")delete Q.maxFeePerBlobGas;return Q}function F8$($){return $.map((J)=>({address:J.address,chainId:Number(J.chainId),nonce:Number(J.nonce),r:J.r,s:J.s,yParity:Number(J.yParity)}))}function nM($,J){let Q=($.transactions??[]).map((Y)=>{if(typeof Y==="string")return Y;return q5(Y)});return{...$,baseFeePerGas:$.baseFeePerGas?BigInt($.baseFeePerGas):null,blobGasUsed:$.blobGasUsed?BigInt($.blobGasUsed):void 0,difficulty:$.difficulty?BigInt($.difficulty):void 0,excessBlobGas:$.excessBlobGas?BigInt($.excessBlobGas):void 0,gasLimit:$.gasLimit?BigInt($.gasLimit):void 0,gasUsed:$.gasUsed?BigInt($.gasUsed):void 0,hash:$.hash?$.hash:null,logsBloom:$.logsBloom?$.logsBloom:null,nonce:$.nonce?$.nonce:null,number:$.number?BigInt($.number):null,size:$.size?BigInt($.size):void 0,timestamp:$.timestamp?BigInt($.timestamp):void 0,transactions:Q,totalDifficulty:$.totalDifficulty?BigInt($.totalDifficulty):null}}async function X6($,{blockHash:J,blockNumber:Q,blockTag:Y=$.experimental_blockTag??"latest",includeTransactions:X}={}){let G=X??!1,W=Q!==void 0?y(Q):void 0,D=null;if(J)D=await $.request({method:"eth_getBlockByHash",params:[J,G]},{dedupe:!0});else D=await $.request({method:"eth_getBlockByNumber",params:[W||Y,G]},{dedupe:Boolean(W)});if(!D)throw new sW({blockHash:J,blockNumber:Q});return($.chain?.formatters?.block?.format||nM)(D,"getBlock")}async function H5($){let J=await $.request({method:"eth_gasPrice"});return BigInt(J)}async function Qh($,J){return _Z($,J)}async function _Z($,J){let{block:Q,chain:Y=$.chain,request:X}=J||{};try{let G=Y?.fees?.maxPriorityFeePerGas??Y?.fees?.defaultPriorityFee;if(typeof G==="function"){let D=Q||await p($,X6,"getBlock")({}),U=await G({block:D,client:$,request:X});if(U===null)throw Error();return U}if(typeof G<"u")return G;let W=await $.request({method:"eth_maxPriorityFeePerGas"});return g4(W)}catch{let[G,W]=await Promise.all([Q?Promise.resolve(Q):p($,X6,"getBlock")({}),p($,H5,"getGasPrice")({})]);if(typeof G.baseFeePerGas!=="bigint")throw new T8;let D=W-G.baseFeePerGas;if(D<0n)return 0n;return D}}async function Xh($,J){return dM($,J)}async function dM($,J){let{block:Q,chain:Y=$.chain,request:X,type:G="eip1559"}=J||{},W=await(async()=>{if(typeof Y?.fees?.baseFeeMultiplier==="function")return Y.fees.baseFeeMultiplier({block:Q,client:$,request:X});return Y?.fees?.baseFeeMultiplier??1.2})();if(W<1)throw new aW;let U=10**(W.toString().split(".")[1]?.length??0),V=(N)=>N*BigInt(Math.ceil(W*U))/BigInt(U),O=Q?Q:await p($,X6,"getBlock")({});if(typeof Y?.fees?.estimateFeesPerGas==="function"){let N=await Y.fees.estimateFeesPerGas({block:Q,client:$,multiply:V,request:X,type:G});if(N!==null)return N}if(G==="eip1559"){if(typeof O.baseFeePerGas!=="bigint")throw new T8;let N=typeof X?.maxPriorityFeePerGas==="bigint"?X.maxPriorityFeePerGas:await _Z($,{block:O,chain:Y,request:X}),q=V(O.baseFeePerGas);return{maxFeePerGas:X?.maxFeePerGas??q+N,maxPriorityFeePerGas:N}}return{gasPrice:X?.gasPrice??V(await p($,H5,"getGasPrice")({}))}}e4();w$();async function w5($,{address:J,blockTag:Q="latest",blockNumber:Y}){let X=await $.request({method:"eth_getTransactionCount",params:[J,typeof Y==="bigint"?y(Y):Q]},{dedupe:Boolean(Y)});return C4(X)}$6();w$();function A5($){let{kzg:J}=$,Q=$.to??(typeof $.blobs[0]==="string"?"hex":"bytes"),Y=typeof $.blobs[0]==="string"?$.blobs.map((G)=>o4(G)):$.blobs,X=[];for(let G of Y)X.push(Uint8Array.from(J.blobToKzgCommitment(G)));return Q==="bytes"?X:X.map((G)=>a$(G))}$6();w$();function I5($){let{kzg:J}=$,Q=$.to??(typeof $.blobs[0]==="string"?"hex":"bytes"),Y=typeof $.blobs[0]==="string"?$.blobs.map((W)=>o4(W)):$.blobs,X=typeof $.commitments[0]==="string"?$.commitments.map((W)=>o4(W)):$.commitments,G=[];for(let W=0;W<Y.length;W++){let D=Y[W],U=X[W];G.push(Uint8Array.from(J.computeBlobKzgProof(D,U)))}return Q==="bytes"?G:G.map((W)=>a$(W))}w$();QZ();var Yh=v8;$6();w$();function Gh($,J){let Q=J||"hex",Y=Yh(T4($,{strict:!1})?f1($):$);if(Q==="bytes")return Y;return P4(Y)}function Wh($){let{commitment:J,version:Q=1}=$,Y=$.to??(typeof J==="string"?"hex":"bytes"),X=Gh(J,"bytes");return X.set([Q],0),Y==="bytes"?X:a$(X)}function pM($){let{commitments:J,version:Q}=$,Y=$.to??(typeof J[0]==="string"?"hex":"bytes"),X=[];for(let G of J)X.push(Wh({commitment:G,to:Y,version:Q}));return X}var Dh=32,Uh=4096,Kh=131072,EZ=761855;var iM=1;x$();class PZ extends R{constructor({maxSize:$,size:J}){super("Blob size is too large.",{metaMessages:[`Max: ${$} bytes`,`Given: ${J} bytes`],name:"BlobSizeTooLargeError"})}}class eW extends R{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class vZ extends R{constructor({hash:$,size:J}){super(`Versioned hash "${$}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${J}`],name:"InvalidVersionedHashSizeError"})}}class RZ extends R{constructor({hash:$,version:J}){super(`Versioned hash "${$}" version is invalid.`,{metaMessages:[`Expected: ${iM}`,`Received: ${J}`],name:"InvalidVersionedHashVersionError"})}}c3();x1();$6();w$();function Vh($){let J=$.to??(typeof $.data==="string"?"hex":"bytes"),Q=typeof $.data==="string"?o4($.data):$.data,Y=t$(Q);if(!Y)throw new eW;if(Y>EZ)throw new PZ({maxSize:EZ,size:Y});let X=[],G=!0,W=0;while(G){let D=AY(new Uint8Array(Kh)),U=0;while(U<Uh){let V=Q.slice(W,W+(Dh-1));if(D.pushByte(0),D.pushBytes(V),V.length<31){D.pushByte(128),G=!1;break}U++,W+=31}X.push(D)}return J==="bytes"?X.map((D)=>D.bytes):X.map((D)=>a$(D.bytes))}function cM($){let{data:J,kzg:Q,to:Y}=$,X=$.blobs??Vh({data:J,to:Y}),G=$.commitments??A5({blobs:X,kzg:Q,to:Y}),W=$.proofs??I5({blobs:X,commitments:G,kzg:Q,to:Y}),D=[];for(let U=0;U<X.length;U++)D.push({blob:X[U],commitment:G[U],proof:W[U]});return D}N8();o0();u1();function oM($){if($.type)return $.type;if(typeof $.authorizationList<"u")return"eip7702";if(typeof $.blobs<"u"||typeof $.blobVersionedHashes<"u"||typeof $.maxFeePerBlobGas<"u"||typeof $.sidecars<"u")return"eip4844";if(typeof $.maxFeePerGas<"u"||typeof $.maxPriorityFeePerGas<"u")return"eip1559";if(typeof $.gasPrice<"u"){if(typeof $.accessList<"u")return"eip2930";return"legacy"}throw new KB({transaction:$})}DX();u1();lW();function qX($,{docsPath:J,...Q}){let Y=(()=>{let X=UX($,Q);if(X instanceof H0)return $;return X})();return new OB(Y,{docsPath:J,...Q})}rJ();o0();e4();async function j6($){let J=await $.request({method:"eth_chainId"},{dedupe:!0});return C4(J)}async function L5($,J){let{account:Q=$.account,accessList:Y,authorizationList:X,chain:G=$.chain,blobVersionedHashes:W,blobs:D,data:U,gas:V,gasPrice:O,maxFeePerBlobGas:M,maxFeePerGas:N,maxPriorityFeePerGas:q,nonce:w,nonceManager:I,to:Z,type:L,value:_,...B}=J,F=await(async()=>{if(!Q)return w;if(!I)return w;if(typeof w<"u")return w;let h=_$(Q),o=G?G.id:await p($,j6,"getChainId")({});return await I.consume({address:h.address,chainId:o,client:$})})();Q6(J);let S=G?.formatters?.transactionRequest?.format,k=(S||Z6)({...n1(B,{format:S}),account:Q?_$(Q):void 0,accessList:Y,authorizationList:X,blobs:D,blobVersionedHashes:W,data:U,gas:V,gasPrice:O,maxFeePerBlobGas:M,maxFeePerGas:N,maxPriorityFeePerGas:q,nonce:F,to:Z,type:L,value:_},"fillTransaction");try{let h=await $.request({method:"eth_fillTransaction",params:[k]}),g=(G?.formatters?.transaction?.format||q5)(h.tx);if(delete g.blockHash,delete g.blockNumber,delete g.r,delete g.s,delete g.transactionIndex,delete g.v,delete g.yParity,g.data=g.input,g.gas)g.gas=J.gas??g.gas;if(g.gasPrice)g.gasPrice=J.gasPrice??g.gasPrice;if(g.maxFeePerBlobGas)g.maxFeePerBlobGas=J.maxFeePerBlobGas??g.maxFeePerBlobGas;if(g.maxFeePerGas)g.maxFeePerGas=J.maxFeePerGas??g.maxFeePerGas;if(g.maxPriorityFeePerGas)g.maxPriorityFeePerGas=J.maxPriorityFeePerGas??g.maxPriorityFeePerGas;if(g.nonce)g.nonce=J.nonce??g.nonce;let Q$=await(async()=>{if(typeof G?.fees?.baseFeeMultiplier==="function"){let T=await p($,X6,"getBlock")({});return G.fees.baseFeeMultiplier({block:T,client:$,request:J})}return G?.fees?.baseFeeMultiplier??1.2})();if(Q$<1)throw new aW;let K$=10**(Q$.toString().split(".")[1]?.length??0),m=(T)=>T*BigInt(Math.ceil(Q$*K$))/BigInt(K$);if(g.maxFeePerGas&&!J.maxFeePerGas)g.maxFeePerGas=m(g.maxFeePerGas);if(g.gasPrice&&!J.gasPrice)g.gasPrice=m(g.gasPrice);return{raw:h.raw,transaction:{from:k.from,...g}}}catch(h){throw qX(h,{...J,chain:$.chain})}}var $D=["blobVersionedHashes","chainId","fees","gas","nonce","type"],Oh=new Map,TZ=new q1(128);async function a0($,J){let Q=J;Q.account??=$.account,Q.parameters??=$D;let{account:Y,chain:X=$.chain,nonceManager:G,parameters:W}=Q,D=(()=>{if(typeof X?.prepareTransactionRequest==="function")return{fn:X.prepareTransactionRequest,runAt:["beforeFillTransaction"]};if(Array.isArray(X?.prepareTransactionRequest))return{fn:X.prepareTransactionRequest[0],runAt:X.prepareTransactionRequest[1].runAt};return})(),U;async function V(){if(U)return U;if(typeof Q.chainId<"u")return Q.chainId;if(X)return X.id;return U=await p($,j6,"getChainId")({}),U}let O=Y?_$(Y):Y,M=Q.nonce;if(W.includes("nonce")&&typeof M>"u"&&O&&G){let F=await V();M=await G.consume({address:O.address,chainId:F,client:$})}if(D?.fn&&D.runAt?.includes("beforeFillTransaction"))Q=await D.fn({...Q,chain:X},{phase:"beforeFillTransaction"}),M??=Q.nonce;let q=(()=>{if((W.includes("blobVersionedHashes")||W.includes("sidecars"))&&Q.kzg&&Q.blobs)return!1;if(TZ.get($.uid)===!1)return!1;if(!["fees","gas"].some((S)=>W.includes(S)))return!1;if(W.includes("chainId")&&typeof Q.chainId!=="number")return!0;if(W.includes("nonce")&&typeof M!=="number")return!0;if(W.includes("fees")&&typeof Q.gasPrice!=="bigint"&&(typeof Q.maxFeePerGas!=="bigint"||typeof Q.maxPriorityFeePerGas!=="bigint"))return!0;if(W.includes("gas")&&typeof Q.gas!=="bigint")return!0;return!1})()?await p($,L5,"fillTransaction")({...Q,nonce:M}).then((F)=>{let{chainId:S,from:v,gas:k,gasPrice:h,nonce:o,maxFeePerBlobGas:g,maxFeePerGas:Q$,maxPriorityFeePerGas:t,type:K$,...m}=F.transaction;return TZ.set($.uid,!0),{...Q,...v?{from:v}:{},...K$?{type:K$}:{},...typeof S<"u"?{chainId:S}:{},...typeof k<"u"?{gas:k}:{},...typeof h<"u"?{gasPrice:h}:{},...typeof o<"u"?{nonce:o}:{},...typeof g<"u"?{maxFeePerBlobGas:g}:{},...typeof Q$<"u"?{maxFeePerGas:Q$}:{},...typeof t<"u"?{maxPriorityFeePerGas:t}:{},..."nonceKey"in m&&typeof m.nonceKey<"u"?{nonceKey:m.nonceKey}:{}}}).catch((F)=>{let S=F;if(S.name!=="TransactionExecutionError")return Q;if(S.walk?.((k)=>{let h=k;return h.name==="MethodNotFoundRpcError"||h.name==="MethodNotSupportedRpcError"}))TZ.set($.uid,!1);return Q}):Q;M??=q.nonce,Q={...q,...O?{from:O?.address}:{},...M?{nonce:M}:{}};let{blobs:w,gas:I,kzg:Z,type:L}=Q;if(D?.fn&&D.runAt?.includes("beforeFillParameters"))Q=await D.fn({...Q,chain:X},{phase:"beforeFillParameters"});let _;async function B(){if(_)return _;return _=await p($,X6,"getBlock")({blockTag:"latest"}),_}if(W.includes("nonce")&&typeof M>"u"&&O&&!G)Q.nonce=await p($,w5,"getTransactionCount")({address:O.address,blockTag:"pending"});if((W.includes("blobVersionedHashes")||W.includes("sidecars"))&&w&&Z){let F=A5({blobs:w,kzg:Z});if(W.includes("blobVersionedHashes")){let S=pM({commitments:F,to:"hex"});Q.blobVersionedHashes=S}if(W.includes("sidecars")){let S=I5({blobs:w,commitments:F,kzg:Z}),v=cM({blobs:w,commitments:F,proofs:S,to:"hex"});Q.sidecars=v}}if(W.includes("chainId"))Q.chainId=await V();if((W.includes("fees")||W.includes("type"))&&typeof L>"u")try{Q.type=oM(Q)}catch{let F=Oh.get($.uid);if(typeof F>"u")F=typeof(await B())?.baseFeePerGas==="bigint",Oh.set($.uid,F);Q.type=F?"eip1559":"legacy"}if(W.includes("fees"))if(Q.type!=="legacy"&&Q.type!=="eip2930"){if(typeof Q.maxFeePerGas>"u"||typeof Q.maxPriorityFeePerGas>"u"){let F=await B(),{maxFeePerGas:S,maxPriorityFeePerGas:v}=await dM($,{block:F,chain:X,request:Q});if(typeof Q.maxPriorityFeePerGas>"u"&&Q.maxFeePerGas&&Q.maxFeePerGas<v)throw new jZ({maxPriorityFeePerGas:v});Q.maxPriorityFeePerGas=v,Q.maxFeePerGas=S}}else{if(typeof Q.maxFeePerGas<"u"||typeof Q.maxPriorityFeePerGas<"u")throw new T8;if(typeof Q.gasPrice>"u"){let F=await B(),{gasPrice:S}=await dM($,{block:F,chain:X,request:Q,type:"legacy"});Q.gasPrice=S}}if(W.includes("gas")&&typeof I>"u")Q.gas=await p($,B5,"estimateGas")({...Q,account:O,prepare:O?.type==="local"?[]:["blobVersionedHashes"]});if(D?.fn&&D.runAt?.includes("afterFillParameters"))Q=await D.fn({...Q,chain:X},{phase:"afterFillParameters"});return Q6(Q),delete Q.parameters,Q}async function B5($,J){let{account:Q=$.account,prepare:Y=!0}=J,X=Q?_$(Q):void 0,G=(()=>{if(Array.isArray(Y))return Y;if(X?.type!=="local")return["blobVersionedHashes"];return})();try{let W=await(async()=>{if(J.to)return J.to;if(J.authorizationList&&J.authorizationList.length>0)return await NX({authorization:J.authorizationList[0]}).catch(()=>{throw new R("`to` is required. Could not infer from `authorizationList`")});return})(),{accessList:D,authorizationList:U,blobs:V,blobVersionedHashes:O,blockNumber:M,blockTag:N,data:q,gas:w,gasPrice:I,maxFeePerBlobGas:Z,maxFeePerGas:L,maxPriorityFeePerGas:_,nonce:B,value:F,stateOverride:S,...v}=Y?await a0($,{...J,parameters:G,to:W}):J;if(w&&J.gas!==w)return w;let h=(typeof M==="bigint"?y(M):void 0)||N,o=K5(S);Q6(J);let g=$.chain?.formatters?.transactionRequest?.format,t=(g||Z6)({...n1(v,{format:g}),account:X,accessList:D,authorizationList:U,blobs:V,blobVersionedHashes:O,data:q,gasPrice:I,maxFeePerBlobGas:Z,maxFeePerGas:L,maxPriorityFeePerGas:_,nonce:B,to:W,value:F},"estimateGas");return BigInt(await $.request({method:"eth_estimateGas",params:o?[t,h??$.experimental_blockTag??"latest",o]:h?[t,h]:[t]}))}catch(W){throw Jh(W,{...J,account:X,chain:$.chain})}}async function Mh($,J){let{abi:Q,address:Y,args:X,functionName:G,dataSuffix:W=typeof $.dataSuffix==="string"?$.dataSuffix:$.dataSuffix?.value,...D}=J,U=S4({abi:Q,args:X,functionName:G});try{return await p($,B5,"estimateGas")({data:`${U}${W?W.replace("0x",""):""}`,to:Y,...D})}catch(V){let O=D.account?_$(D.account):void 0;throw A1(V,{abi:Q,address:Y,args:X,docsPath:"/docs/contract/estimateContractGas",functionName:G,sender:O?.address})}}w$();async function zh($,{address:J,blockNumber:Q,blockTag:Y=$.experimental_blockTag??"latest"}){let X=typeof Q==="bigint"?y(Q):void 0,G=await $.request({method:"eth_getBalance",params:[J,X||Y]});return BigInt(G)}async function Nh($){let J=await $.request({method:"eth_blobBaseFee"});return BigInt(J)}var j8$=new Map,S8$=new Map;function qh($){let J=(X,G)=>({clear:()=>G.delete(X),get:()=>G.get(X),set:(W)=>G.set(X,W)}),Q=J($,j8$),Y=J($,S8$);return{clear:()=>{Q.clear(),Y.clear()},promise:Q,response:Y}}async function Hh($,{cacheKey:J,cacheTime:Q=Number.POSITIVE_INFINITY}){let Y=qh(J),X=Y.response.get();if(X&&Q>0){if(Date.now()-X.created.getTime()<Q)return X.data}let G=Y.promise.get();if(!G)G=$(),Y.promise.set(G);try{let W=await G;return Y.response.set({created:new Date,data:W}),W}finally{Y.promise.clear()}}var _8$=($)=>`blockNumber.${$}`;async function s0($,{cacheTime:J=$.cacheTime}={}){let Q=await Hh(()=>$.request({method:"eth_blockNumber"}),{cacheKey:_8$($.uid),cacheTime:J});return BigInt(Q)}e4();w$();async function wh($,{blockHash:J,blockNumber:Q,blockTag:Y="latest"}={}){let X=Q!==void 0?y(Q):void 0,G;if(J)G=await $.request({method:"eth_getBlockTransactionCountByHash",params:[J]},{dedupe:!0});else G=await $.request({method:"eth_getBlockTransactionCountByNumber",params:[X||Y]},{dedupe:Boolean(X)});return C4(G)}w$();async function JD($,{address:J,blockNumber:Q,blockTag:Y="latest"}){let X=Q!==void 0?y(Q):void 0,G=await $.request({method:"eth_getCode",params:[J,X||Y]},{dedupe:Boolean(X)});if(G==="0x")return;return G}sQ();E8();$6();b1();BW();l4();_2();x1();BW();wW();vJ();var Ah="/docs/contract/decodeEventLog";function C8($){let{abi:J,data:Q,strict:Y,topics:X}=$,G=Y??!0,[W,...D]=X;if(!W)throw new K2({docsPath:Ah});let U=J.find((L)=>L.type==="event"&&W===aQ(c4(L)));if(!(U&&("name"in U))||U.type!=="event")throw new V2(W,{docsPath:Ah});let{name:V,inputs:O}=U,M=O?.some((L)=>!(("name"in L)&&L.name)),N=M?[]:{},q=O.map((L,_)=>[L,_]).filter(([L])=>("indexed"in L)&&L.indexed),w=[];for(let L=0;L<q.length;L++){let[_,B]=q[L],F=D[L];if(!F){if(G)throw new U8({abiItem:U,param:_});w.push([_,B]);continue}N[M?B:_.name||B]=E8$({param:_,value:F})}let I=O.filter((L)=>!(("indexed"in L)&&L.indexed)),Z=G?I:[...w.map(([L])=>L),...I];if(Z.length>0){if(Q&&Q!=="0x")try{let L=bJ(Z,Q);if(L){let _=0;if(!G)for(let[B,F]of w)N[M?F:B.name||F]=L[_++];if(M){for(let B=0;B<O.length;B++)if(N[B]===void 0&&_<L.length)N[B]=L[_++]}else for(let B=0;B<I.length;B++)N[I[B].name]=L[_++]}}catch(L){if(G){if(L instanceof KW||L instanceof qW)throw new pQ({abiItem:U,data:Q,params:Z,size:t$(Q)});throw L}}else if(G)throw new pQ({abiItem:U,data:"0x",params:Z,size:0})}return{eventName:V,args:Object.values(N).length>0?N:void 0}}function E8$({param:$,value:J}){if($.type==="string"||$.type==="bytes"||$.type==="tuple"||$.type.match(/^(.*)\[(\d+)?\]$/))return J;return(bJ([$],J)||[])[0]}function Z5($){let{abi:J,args:Q,logs:Y,strict:X=!0}=$,G=(()=>{if(!$.eventName)return;if(Array.isArray($.eventName))return $.eventName;return[$.eventName]})(),W=J.filter((D)=>D.type==="event").map((D)=>({abi:D,selector:aQ(D)}));return Y.map((D)=>{let U=W.filter((M)=>D.topics[0]===M.selector);if(U.length===0)return null;let V,O;for(let M of U)try{V=C8({...D,abi:[M.abi],strict:!0}),O=M;break}catch{}if(!V&&!X){O=U[0];try{V=C8({data:D.data,topics:D.topics,abi:[O.abi],strict:!1})}catch{let M=O.abi.inputs?.some((N)=>!(("name"in N)&&N.name));return{...D,args:M?[]:{},eventName:O.abi.name}}}if(!V||!O)return null;if(G&&!G.includes(V.eventName))return null;if(!P8$({args:V.args,inputs:O.abi.inputs,matchArgs:Q}))return null;return{...V,...D}}).filter(Boolean)}function P8$($){let{args:J,inputs:Q,matchArgs:Y}=$;if(!Y)return!0;if(!J)return!1;function X(G,W,D){try{if(G.type==="address")return d1(W,D);if(G.type==="string"||G.type==="bytes")return U4(f1(W))===D;return W===D}catch{return!1}}if(Array.isArray(J)&&Array.isArray(Y))return Y.every((G,W)=>{if(G===null||G===void 0)return!0;let D=Q[W];if(!D)return!1;return(Array.isArray(G)?G:[G]).some((V)=>X(D,V,J[W]))});if(typeof J==="object"&&!Array.isArray(J)&&typeof Y==="object"&&!Array.isArray(Y))return Object.entries(Y).every(([G,W])=>{if(W===null||W===void 0)return!0;let D=Q.find((V)=>V.name===G);if(!D)return!1;return(Array.isArray(W)?W:[W]).some((V)=>X(D,V,J[G]))});return!1}w$();function S6($,{args:J,eventName:Q}={}){return{...$,blockHash:$.blockHash?$.blockHash:null,blockNumber:$.blockNumber?BigInt($.blockNumber):null,blockTimestamp:$.blockTimestamp?BigInt($.blockTimestamp):$.blockTimestamp===null?null:void 0,logIndex:$.logIndex?Number($.logIndex):null,transactionHash:$.transactionHash?$.transactionHash:null,transactionIndex:$.transactionIndex?Number($.transactionIndex):null,...Q?{args:J,eventName:Q}:{}}}async function F5($,{address:J,blockHash:Q,fromBlock:Y,toBlock:X,event:G,events:W,args:D,strict:U}={}){let V=U??!1,O=W??(G?[G]:void 0),M=[];if(O){if(M=[O.flatMap((I)=>t0({abi:[I],eventName:I.name,args:W?void 0:D}))],G)M=M[0]}let N;if(Q)N=await $.request({method:"eth_getLogs",params:[{address:J,topics:M,blockHash:Q}]});else N=await $.request({method:"eth_getLogs",params:[{address:J,topics:M,fromBlock:typeof Y==="bigint"?y(Y):Y,toBlock:typeof X==="bigint"?y(X):X}]});let q=N.map((w)=>S6(w));if(!O)return q;return Z5({abi:O,args:D,logs:q,strict:V})}async function rM($,J){let{abi:Q,address:Y,args:X,blockHash:G,eventName:W,fromBlock:D,toBlock:U,strict:V}=J,O=W?e6({abi:Q,name:W}):void 0,M=!O?Q.filter((N)=>N.type==="event"):void 0;return p($,F5,"getLogs")({address:Y,args:X,blockHash:G,event:O,events:M,fromBlock:D,toBlock:U,strict:V})}x$();class CZ extends R{constructor({address:$}){super(`No EIP-712 domain found on contract "${$}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${$}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}}async function Ih($,J){let{address:Q,factory:Y,factoryData:X}=J;try{let[G,W,D,U,V,O,M]=await p($,i4,"readContract")({abi:v8$,address:Q,functionName:"eip712Domain",factory:Y,factoryData:X});return{domain:{name:W,version:D,chainId:Number(U),verifyingContract:V,salt:O},extensions:M,fields:G}}catch(G){let W=G;if(W.name==="ContractFunctionExecutionError"&&W.cause.name==="ContractFunctionZeroDataError")throw new CZ({address:Q});throw W}}var v8$=[{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"}];w$();function Lh($){return{baseFeePerGas:$.baseFeePerGas.map((J)=>BigInt(J)),gasUsedRatio:$.gasUsedRatio,oldestBlock:BigInt($.oldestBlock),reward:$.reward?.map((J)=>J.map((Q)=>BigInt(Q)))}}async function Bh($,{blockCount:J,blockNumber:Q,blockTag:Y="latest",rewardPercentiles:X}){let G=typeof Q==="bigint"?y(Q):void 0,W=await $.request({method:"eth_feeHistory",params:[y(J),G||Y,X]},{dedupe:Boolean(G)});return Lh(W)}async function HX($,{filter:J}){let Q="strict"in J&&J.strict,Y=await J.request({method:"eth_getFilterChanges",params:[J.id]});if(typeof Y[0]==="string")return Y;let X=Y.map((G)=>S6(G));if(!("abi"in J)||!J.abi)return X;return Z5({abi:J.abi,logs:X,strict:Q})}async function Zh($,{filter:J}){let Q=J.strict??!1,X=(await J.request({method:"eth_getFilterLogs",params:[J.id]})).map((G)=>S6(G));if(!J.abi)return X;return Z5({abi:J.abi,logs:X,strict:Q})}w$();e4();w$();function R8$($){return $.map((J)=>({...J,value:BigInt(J.value)}))}function Fh($){return{...$,balance:$.balance?BigInt($.balance):void 0,nonce:$.nonce?C4($.nonce):void 0,storageProof:$.storageProof?R8$($.storageProof):void 0}}async function jh($,{address:J,blockNumber:Q,blockTag:Y,storageKeys:X}){let G=Y??"latest",W=Q!==void 0?y(Q):void 0,D=await $.request({method:"eth_getProof",params:[J,X,W||G]});return Fh(D)}w$();async function Sh($,{address:J,blockNumber:Q,blockTag:Y="latest",slot:X}){let G=Q!==void 0?y(Q):void 0;return await $.request({method:"eth_getStorageAt",params:[J,X,G||Y]})}u1();w$();async function j5($,{blockHash:J,blockNumber:Q,blockTag:Y,hash:X,index:G,sender:W,nonce:D}){let U=Y||"latest",V=Q!==void 0?y(Q):void 0,O=null;if(X)O=await $.request({method:"eth_getTransactionByHash",params:[X]},{dedupe:!0});else if(J)O=await $.request({method:"eth_getTransactionByBlockHashAndIndex",params:[J,y(G)]},{dedupe:!0});else if((V||U)&&typeof G==="number")O=await $.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[V||U,y(G)]},{dedupe:Boolean(V)});else if(W&&typeof D==="number")O=await $.request({method:"eth_getTransactionBySenderAndNonce",params:[W,y(D)]},{dedupe:!0});if(!O)throw new FW({blockHash:J,blockNumber:Q,blockTag:U,hash:X,index:G});return($.chain?.formatters?.transaction?.format||q5)(O,"getTransaction")}async function _h($,{hash:J,transactionReceipt:Q}){let[Y,X]=await Promise.all([p($,s0,"getBlockNumber")({}),J?p($,j5,"getTransaction")({hash:J}):void 0]),G=Q?.blockNumber||X?.blockNumber;if(!G)return 0n;return Y-G+1n}u1();e4();var kZ={"0x0":"reverted","0x1":"success"};function tM($,J){let Q={...$,blockNumber:$.blockNumber?BigInt($.blockNumber):null,contractAddress:$.contractAddress?$.contractAddress:null,cumulativeGasUsed:$.cumulativeGasUsed?BigInt($.cumulativeGasUsed):null,effectiveGasPrice:$.effectiveGasPrice?BigInt($.effectiveGasPrice):null,gasUsed:$.gasUsed?BigInt($.gasUsed):null,logs:$.logs?$.logs.map((Y)=>S6(Y)):null,to:$.to?$.to:null,transactionIndex:$.transactionIndex?C4($.transactionIndex):null,status:$.status?kZ[$.status]:null,type:$.type?SZ[$.type]||$.type:null};if($.blobGasPrice)Q.blobGasPrice=BigInt($.blobGasPrice);if($.blobGasUsed)Q.blobGasUsed=BigInt($.blobGasUsed);return Q}async function S5($,{hash:J}){let Q=await $.request({method:"eth_getTransactionReceipt",params:[J]},{dedupe:!0});if(!Q)throw new jW({hash:J});return($.chain?.formatters?.transactionReceipt?.format||tM)(Q,"getTransactionReceipt")}PJ();l4();x$();$X();eQ();w1();H8();async function Eh($,J){let{account:Q,authorizationList:Y,allowFailure:X=!0,blockNumber:G,blockOverrides:W,blockTag:D,stateOverride:U}=J,V=J.contracts,{batchSize:O=J.batchSize??1024,deployless:M=J.deployless??!1}=typeof $.batch?.multicall==="object"?$.batch.multicall:{},N=(()=>{if(J.multicallAddress)return J.multicallAddress;if(M)return null;if($.chain)return h1({blockNumber:G,chain:$.chain,contract:"multicall3"});throw Error("client chain not configured. multicallAddress is required.")})(),q=[[]],w=0,I=0;for(let _=0;_<V.length;_++){let{abi:B,address:F,args:S,functionName:v}=V[_];try{let k=S4({abi:B,args:S,functionName:v});if(I+=(k.length-2)/2,O>0&&I>O&&q[w].length>0)w++,I=(k.length-2)/2,q[w]=[];q[w]=[...q[w],{allowFailure:!0,callData:k,target:F}]}catch(k){let h=A1(k,{abi:B,address:F,args:S,docsPath:"/docs/contract/multicall",functionName:v,sender:Q});if(!X)throw h;q[w]=[...q[w],{allowFailure:!0,callData:"0x",target:F}]}}let Z=await Promise.allSettled(q.map((_)=>p($,i4,"readContract")({...N===null?{code:D5}:{address:N},abi:dQ,account:Q,args:[_],authorizationList:Y,blockNumber:G,blockOverrides:W,blockTag:D,functionName:"aggregate3",stateOverride:U}))),L=[];for(let _=0;_<Z.length;_++){let B=Z[_];if(B.status==="rejected"){if(!X)throw B.reason;for(let S=0;S<q[_].length;S++)L.push({status:"failure",error:B.reason,result:void 0});continue}let F=B.value;for(let S=0;S<F.length;S++){let{returnData:v,success:k}=F[S],{callData:h}=q[_][S],{abi:o,address:g,functionName:Q$,args:t}=V[L.length];try{if(h==="0x")throw new K0;if(!k)throw new hJ({data:v});let K$=$1({abi:o,args:t,data:v,functionName:Q$});L.push(X?{result:K$,status:"success"}:K$)}catch(K$){let m=A1(K$,{abi:o,address:g,args:t,docsPath:"/docs/contract/multicall",functionName:Q$});if(!X)throw m;L.push({error:m,result:void 0,status:"failure"})}}}if(L.length!==V.length)throw new R("multicall results mismatch");return L}uB();l4();$X();DX();eQ();w1();w$();lW();rJ();PM();o0();async function QD($,J){let{blockNumber:Q,blockTag:Y=$.experimental_blockTag??"latest",blocks:X,returnFullTransactions:G,traceTransfers:W,validation:D}=J;try{let U=[];for(let N of X){let q=N.blockOverrides?FM(N.blockOverrides):void 0,w=N.calls.map((Z)=>{let L=Z,_=L.account?_$(L.account):void 0,B=L.abi?S4(L):L.data,F={...L,account:_,data:L.dataSuffix?Z4([B||"0x",L.dataSuffix]):B,from:L.from??_?.address};return Q6(F),Z6(F)}),I=N.stateOverrides?K5(N.stateOverrides):void 0;U.push({blockOverrides:q,calls:w,stateOverrides:I})}let O=(typeof Q==="bigint"?y(Q):void 0)||Y;return(await $.request({method:"eth_simulateV1",params:[{blockStateCalls:U,returnFullTransactions:G,traceTransfers:W,validation:D},O]})).map((N,q)=>({...nM(N),calls:N.calls.map((w,I)=>{let{abi:Z,args:L,functionName:_,to:B}=X[q].calls[I],F=w.error?.data??w.returnData,S=BigInt(w.gasUsed),v=w.logs?.map((g)=>S6(g)),k=w.status==="0x1"?"success":"failure",h=Z&&k==="success"&&F!=="0x"?$1({abi:Z,data:F,functionName:_}):null,o=(()=>{if(k==="success")return;let g;if(F==="0x")g=new K0;else if(F)g=new hJ({data:F});if(!g)return;return A1(g,{abi:Z??[],address:B??"0x",args:L,functionName:_??"<unknown>"})})();return{data:F,gasUsed:S,logs:v,status:k,...k==="success"?{result:h}:{error:o}}})}))}catch(U){let V=U,O=UX(V,{});if(O instanceof H0)throw V;throw O}}LW();Q1();Z2();YX();J6();function k8($,J={}){let{as:Q=typeof $==="string"?"Hex":"Bytes"}=J,Y=p3(gg($));if(Q==="Bytes")return Y;return n4(Y)}J6();YX();class fZ extends Map{constructor($){super();Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=$}get($){let J=super.get($);if(super.has($)&&J!==void 0)this.delete($),super.set($,J);return J}set($,J){if(super.set($,J),this.maxSize&&this.size>this.maxSize){let Q=this.keys().next().value;if(Q)this.delete(Q)}return this}}var T8$={checksum:new fZ(8192)},aM=T8$.checksum;Q1();YX();Q1();J6();function Ph($,J={}){let{compressed:Q}=J,{prefix:Y,x:X,y:G}=$;if(Q===!1||typeof X==="bigint"&&typeof G==="bigint"){if(Y!==4)throw new bZ({prefix:Y,cause:new kh});return}if(Q===!0||typeof X==="bigint"&&typeof G>"u"){if(Y!==3&&Y!==2)throw new bZ({prefix:Y,cause:new Ch});return}throw new Th({publicKey:$})}function vh($){let J=(()=>{if(kW($))return Rh($);if(ng($))return k8$($);let{prefix:Q,x:Y,y:X}=$;if(typeof Y==="bigint"&&typeof X==="bigint")return{prefix:Q??4,x:Y,y:X};return{prefix:Q,x:Y}})();return Ph(J),J}function k8$($){return Rh(n4($))}function Rh($){if($.length!==132&&$.length!==130&&$.length!==68)throw new xh({publicKey:$});if($.length===130){let Y=BigInt(R4($,0,32)),X=BigInt(R4($,32,64));return{prefix:4,x:Y,y:X}}if($.length===132){let Y=Number(R4($,0,1)),X=BigInt(R4($,1,33)),G=BigInt(R4($,33,65));return{prefix:Y,x:X,y:G}}let J=Number(R4($,0,1)),Q=BigInt(R4($,1,33));return{prefix:J,x:Q}}function gZ($,J={}){Ph($);let{prefix:Q,x:Y,y:X}=$,{includePrefix:G=!0}=J;return k4(G?J4(Q,{size:1}):"0x",J4(Y,{size:32}),typeof X==="bigint"?J4(X,{size:32}):"0x")}class Th extends D${constructor({publicKey:$}){super(`Value \`${GX($)}\` is not a valid public key.`,{metaMessages:["Public key must contain:","- an `x` and `prefix` value (compressed)","- an `x`, `y`, and `prefix` value (uncompressed)"]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidError"})}}class bZ extends D${constructor({prefix:$,cause:J}){super(`Prefix "${$}" is invalid.`,{cause:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidPrefixError"})}}class Ch extends D${constructor(){super("Prefix must be 2 or 3 for compressed public keys.");Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidCompressedPrefixError"})}}class kh extends D${constructor(){super("Prefix must be 4 for uncompressed public keys.");Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidUncompressedPrefixError"})}}class xh extends D${constructor({publicKey:$}){super(`Value \`${$}\` is an invalid public key size.`,{metaMessages:["Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).",`Received ${v4(G5($))} bytes.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"})}}var x8$=/^0x[a-fA-F0-9]{40}$/;function x8($,J={}){let{strict:Q=!0}=J;if(!x8$.test($))throw new yZ({address:$,cause:new gh});if(Q){if($.toLowerCase()===$)return;if(sM($)!==$)throw new yZ({address:$,cause:new yh})}}function sM($){if(aM.has($))return aM.get($);x8($,{strict:!1});let J=$.substring(2).toLowerCase(),Q=k8(yg(J),{as:"Bytes"}),Y=J.split("");for(let G=0;G<40;G+=2){if(Q[G>>1]>>4>=8&&Y[G])Y[G]=Y[G].toUpperCase();if((Q[G>>1]&15)>=8&&Y[G+1])Y[G+1]=Y[G+1].toUpperCase()}let X=`0x${Y.join("")}`;return aM.set($,X),X}function f8$($,J={}){let{checksum:Q=!1}=J;if(x8($),Q)return sM($);return $}function bh($,J={}){let Q=k8(`0x${gZ($).slice(4)}`).substring(26);return f8$(`0x${Q}`,J)}function eM($,J={}){let{strict:Q=!0}=J??{};try{return x8($,{strict:Q}),!0}catch{return!1}}class yZ extends D${constructor({address:$,cause:J}){super(`Address "${$}" is invalid.`,{cause:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class gh extends D${constructor(){super("Address is not a 20 byte (40 hexadecimal character) value.");Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class yh extends D${constructor(){super("Address does not match its checksum counterpart.");Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}Q1();function Qz($){let J=!0,Q="",Y=0,X="",G=!1;for(let W=0;W<$.length;W++){let D=$[W];if(["(",")",","].includes(D))J=!0;if(D==="(")Y++;if(D===")")Y--;if(!J)continue;if(Y===0){if(D===" "&&["event","function","error",""].includes(X))X="";else if(X+=D,D===")"){G=!0;break}continue}if(D===" "){if($[W-1]!==","&&Q!==","&&Q!==",(")Q="",J=!1;continue}X+=D,Q+=D}if(!G)throw new D$("Unable to normalize signature.");return X}function Jz($,J){let Q=typeof $,Y=J.type;switch(Y){case"address":return eM($,{strict:!1});case"bool":return Q==="boolean";case"function":return Q==="string";case"string":return Q==="string";default:{if(Y==="tuple"&&"components"in J)return Object.values(J.components).every((X,G)=>{return Jz(Object.values($)[G],X)});if(/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(Y))return Q==="number"||Q==="bigint";if(/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(Y))return Q==="string"||$ instanceof Uint8Array;if(/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(Y))return Array.isArray($)&&$.every((X)=>Jz(X,{...J,type:Y.replace(/(\[[0-9]{0,}\])$/,"")}));return!1}}}function hZ($,J,Q){for(let Y in $){let X=$[Y],G=J[Y];if(X.type==="tuple"&&G.type==="tuple"&&"components"in X&&"components"in G)return hZ(X.components,G.components,Q[Y]);let W=[X.type,G.type];if((()=>{if(W.includes("address")&&W.includes("bytes20"))return!0;if(W.includes("address")&&W.includes("string"))return eM(Q[Y],{strict:!1});if(W.includes("address")&&W.includes("bytes"))return eM(Q[Y],{strict:!1});return!1})())return W}return}function Xz($,J={}){let{prepare:Q=!0}=J,Y=(()=>{if(Array.isArray($))return GM($);if(typeof $==="string")return GM($);return $})();return{...Y,...Q?{hash:_5(Y)}:{}}}function XD($,J,Q){let{args:Y=[],prepare:X=!0}=Q??{},G=kW(J,{strict:!1}),W=$.filter((V)=>{if(G){if(V.type==="function"||V.type==="error")return uZ(V)===R4(J,0,4);if(V.type==="event")return _5(V)===J;return!1}return"name"in V&&V.name===J});if(W.length===0)throw new f8({name:J});if(W.length===1)return{...W[0],...X?{hash:_5(W[0])}:{}};let D;for(let V of W){if(!("inputs"in V))continue;if(!Y||Y.length===0){if(!V.inputs||V.inputs.length===0)return{...V,...X?{hash:_5(V)}:{}};continue}if(!V.inputs)continue;if(V.inputs.length===0)continue;if(V.inputs.length!==Y.length)continue;if(Y.every((M,N)=>{let q="inputs"in V&&V.inputs[N];if(!q)return!1;return Jz(M,q)})){if(D&&"inputs"in D&&D.inputs){let M=hZ(V.inputs,D.inputs,Y);if(M)throw new hh({abiItem:V,type:M[0]},{abiItem:D,type:M[1]})}D=V}}let U=(()=>{if(D)return D;let[V,...O]=W;return{...V,overloads:O}})();if(!U)throw new f8({name:J});return{...U,...X?{hash:_5(U)}:{}}}function uZ(...$){let J=(()=>{if(Array.isArray($[0])){let[Q,Y]=$;return XD(Q,Y)}return $[0]})();return R4(_5(J),0,4)}function g8$(...$){let J=(()=>{if(Array.isArray($[0])){let[Y,X]=$;return XD(Y,X)}return $[0]})(),Q=(()=>{if(typeof J==="string")return J;return q8(J)})();return Qz(Q)}function _5(...$){let J=(()=>{if(Array.isArray($[0])){let[Q,Y]=$;return XD(Q,Y)}return $[0]})();if(typeof J!=="string"&&"hash"in J&&J.hash)return J.hash;return k8(W5(g8$(J)))}class hh extends D${constructor($,J){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${$.type}\` in \`${Qz(q8($.abiItem))}\`, and`,`\`${J.type}\` in \`${Qz(q8(J.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"})}}class f8 extends D${constructor({name:$,data:J,type:Q="item"}){let Y=(()=>{if($)return` with name "${$}"`;if(J)return` with data "${J}"`;return""})();super(`ABI ${Q}${Y} not found.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}}LW();YX();Q1();J6();YX();Q1();J6();var mh=/^(.*)\[([0-9]*)\]$/,lh=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Yz=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,fC$=2n**(8n-1n)-1n,bC$=2n**(16n-1n)-1n,gC$=2n**(24n-1n)-1n,yC$=2n**(32n-1n)-1n,hC$=2n**(40n-1n)-1n,uC$=2n**(48n-1n)-1n,mC$=2n**(56n-1n)-1n,lC$=2n**(64n-1n)-1n,nC$=2n**(72n-1n)-1n,dC$=2n**(80n-1n)-1n,pC$=2n**(88n-1n)-1n,iC$=2n**(96n-1n)-1n,cC$=2n**(104n-1n)-1n,oC$=2n**(112n-1n)-1n,rC$=2n**(120n-1n)-1n,tC$=2n**(128n-1n)-1n,aC$=2n**(136n-1n)-1n,sC$=2n**(144n-1n)-1n,eC$=2n**(152n-1n)-1n,$k$=2n**(160n-1n)-1n,Jk$=2n**(168n-1n)-1n,Qk$=2n**(176n-1n)-1n,Xk$=2n**(184n-1n)-1n,Yk$=2n**(192n-1n)-1n,Gk$=2n**(200n-1n)-1n,Wk$=2n**(208n-1n)-1n,Dk$=2n**(216n-1n)-1n,Uk$=2n**(224n-1n)-1n,Kk$=2n**(232n-1n)-1n,Vk$=2n**(240n-1n)-1n,Ok$=2n**(248n-1n)-1n,Mk$=2n**(256n-1n)-1n,zk$=-(2n**(8n-1n)),Nk$=-(2n**(16n-1n)),qk$=-(2n**(24n-1n)),Hk$=-(2n**(32n-1n)),wk$=-(2n**(40n-1n)),Ak$=-(2n**(48n-1n)),Ik$=-(2n**(56n-1n)),Lk$=-(2n**(64n-1n)),Bk$=-(2n**(72n-1n)),Zk$=-(2n**(80n-1n)),Fk$=-(2n**(88n-1n)),jk$=-(2n**(96n-1n)),Sk$=-(2n**(104n-1n)),_k$=-(2n**(112n-1n)),Ek$=-(2n**(120n-1n)),Pk$=-(2n**(128n-1n)),vk$=-(2n**(136n-1n)),Rk$=-(2n**(144n-1n)),Tk$=-(2n**(152n-1n)),Ck$=-(2n**(160n-1n)),kk$=-(2n**(168n-1n)),xk$=-(2n**(176n-1n)),fk$=-(2n**(184n-1n)),bk$=-(2n**(192n-1n)),gk$=-(2n**(200n-1n)),yk$=-(2n**(208n-1n)),hk$=-(2n**(216n-1n)),uk$=-(2n**(224n-1n)),mk$=-(2n**(232n-1n)),lk$=-(2n**(240n-1n)),nk$=-(2n**(248n-1n)),dk$=-(2n**(256n-1n)),pk$=2n**8n-1n,ik$=2n**16n-1n,ck$=2n**24n-1n,ok$=2n**32n-1n,rk$=2n**40n-1n,tk$=2n**48n-1n,ak$=2n**56n-1n,sk$=2n**64n-1n,ek$=2n**72n-1n,$x$=2n**80n-1n,Jx$=2n**88n-1n,Qx$=2n**96n-1n,Xx$=2n**104n-1n,Yx$=2n**112n-1n,Gx$=2n**120n-1n,Wx$=2n**128n-1n,Dx$=2n**136n-1n,Ux$=2n**144n-1n,Kx$=2n**152n-1n,Vx$=2n**160n-1n,Ox$=2n**168n-1n,Mx$=2n**176n-1n,zx$=2n**184n-1n,Nx$=2n**192n-1n,qx$=2n**200n-1n,Hx$=2n**208n-1n,wx$=2n**216n-1n,Ax$=2n**224n-1n,Ix$=2n**232n-1n,Lx$=2n**240n-1n,Bx$=2n**248n-1n,mZ=2n**256n-1n;function b8($,J,Q){let{checksumAddress:Y,staticPosition:X}=Q,G=dZ(J.type);if(G){let[W,D]=G;return h8$($,{...J,type:D},{checksumAddress:Y,length:W,staticPosition:X})}if(J.type==="tuple")return n8$($,J,{checksumAddress:Y,staticPosition:X});if(J.type==="address")return y8$($,{checksum:Y});if(J.type==="bool")return u8$($);if(J.type.startsWith("bytes"))return m8$($,J,{staticPosition:X});if(J.type.startsWith("uint")||J.type.startsWith("int"))return l8$($,J);if(J.type==="string")return d8$($,{staticPosition:X});throw new GD(J.type)}var dh=32,lZ=32;function y8$($,J={}){let{checksum:Q=!1}=J,Y=$.readBytes(32);return[((G)=>Q?sM(G):G)(n4(hg(Y,-20))),32]}function h8$($,J,Q){let{checksumAddress:Y,length:X,staticPosition:G}=Q;if(!X){let U=i0($.readBytes(lZ)),V=G+U,O=V+dh;$.setPosition(V);let M=i0($.readBytes(dh)),N=YD(J),q=0,w=[];for(let I=0;I<M;++I){$.setPosition(O+(N?I*32:q));let[Z,L]=b8($,J,{checksumAddress:Y,staticPosition:O});q+=L,w.push(Z)}return $.setPosition(G+32),[w,32]}if(YD(J)){let U=i0($.readBytes(lZ)),V=G+U,O=[];for(let M=0;M<X;++M){$.setPosition(V+M*32);let[N]=b8($,J,{checksumAddress:Y,staticPosition:V});O.push(N)}return $.setPosition(G+32),[O,32]}let W=0,D=[];for(let U=0;U<X;++U){let[V,O]=b8($,J,{checksumAddress:Y,staticPosition:G+W});W+=O,D.push(V)}return[D,W]}function u8$($){return[mg($.readBytes(32),{size:32}),32]}function m8$($,J,{staticPosition:Q}){let[Y,X]=J.type.split("bytes");if(!X){let W=i0($.readBytes(32));$.setPosition(Q+W);let D=i0($.readBytes(32));if(D===0)return $.setPosition(Q+32),["0x",32];let U=$.readBytes(D);return $.setPosition(Q+32),[n4(U),32]}return[n4($.readBytes(Number.parseInt(X,10),32)),32]}function l8$($,J){let Q=J.type.startsWith("int"),Y=Number.parseInt(J.type.split("int")[1]||"256",10),X=$.readBytes(32);return[Y>48?ug(X,{signed:Q}):i0(X,{signed:Q}),32]}function n8$($,J,Q){let{checksumAddress:Y,staticPosition:X}=Q,G=J.components.length===0||J.components.some(({name:U})=>!U),W=G?[]:{},D=0;if(YD(J)){let U=i0($.readBytes(lZ)),V=X+U;for(let O=0;O<J.components.length;++O){let M=J.components[O];$.setPosition(V+D);let[N,q]=b8($,M,{checksumAddress:Y,staticPosition:V});D+=q,W[G?O:M?.name]=N}return $.setPosition(X+32),[W,32]}for(let U=0;U<J.components.length;++U){let V=J.components[U],[O,M]=b8($,V,{checksumAddress:Y,staticPosition:X});W[G?U:V?.name]=O,D+=M}return[W,D]}function d8$($,{staticPosition:J}){let Q=i0($.readBytes(32)),Y=J+Q;$.setPosition(Y);let X=i0($.readBytes(32));if(X===0)return $.setPosition(J+32),["",32];let G=$.readBytes(X,32),W=lg(fB(G));return $.setPosition(J+32),[W,32]}function ph({checksumAddress:$,parameters:J,values:Q}){let Y=[];for(let X=0;X<J.length;X++)Y.push(nZ({checksumAddress:$,parameter:J[X],value:Q[X]}));return Y}function nZ({checksumAddress:$=!1,parameter:J,value:Q}){let Y=J,X=dZ(Y.type);if(X){let[G,W]=X;return i8$(Q,{checksumAddress:$,length:G,parameter:{...Y,type:W}})}if(Y.type==="tuple")return a8$(Q,{checksumAddress:$,parameter:Y});if(Y.type==="address")return p8$(Q,{checksum:$});if(Y.type==="bool")return o8$(Q);if(Y.type.startsWith("uint")||Y.type.startsWith("int")){let G=Y.type.startsWith("int"),[,,W="256"]=Yz.exec(Y.type)??[];return r8$(Q,{signed:G,size:Number(W)})}if(Y.type.startsWith("bytes"))return c8$(Q,{type:Y.type});if(Y.type==="string")return t8$(Q);throw new GD(Y.type)}function Gz($){let J=0;for(let G=0;G<$.length;G++){let{dynamic:W,encoded:D}=$[G];if(W)J+=32;else J+=v4(D)}let Q=[],Y=[],X=0;for(let G=0;G<$.length;G++){let{dynamic:W,encoded:D}=$[G];if(W)Q.push(J4(J+X,{size:32})),Y.push(D),X+=v4(D);else Q.push(D)}return k4(...Q,...Y)}function p8$($,J){let{checksum:Q=!1}=J;return x8($,{strict:Q}),{dynamic:!1,encoded:cJ($.toLowerCase())}}function i8$($,J){let{checksumAddress:Q,length:Y,parameter:X}=J,G=Y===null;if(!Array.isArray($))throw new iZ($);if(!G&&$.length!==Y)throw new pZ({expectedLength:Y,givenLength:$.length,type:`${X.type}[${Y}]`});let W=!1,D=[];for(let U=0;U<$.length;U++){let V=nZ({checksumAddress:Q,parameter:X,value:$[U]});if(V.dynamic)W=!0;D.push(V)}if(G||W){let U=Gz(D);if(G){let V=J4(D.length,{size:32});return{dynamic:!0,encoded:D.length>0?k4(V,U):V}}if(W)return{dynamic:!0,encoded:U}}return{dynamic:!1,encoded:k4(...D.map(({encoded:U})=>U))}}function c8$($,{type:J}){let[,Q]=J.split("bytes"),Y=v4($);if(!Q){let X=$;if(Y%32!==0)X=c0(X,Math.ceil(($.length-2)/2/32)*32);return{dynamic:!0,encoded:k4(cJ(J4(Y,{size:32})),X)}}if(Y!==Number.parseInt(Q,10))throw new Wz({expectedSize:Number.parseInt(Q,10),value:$});return{dynamic:!1,encoded:c0($)}}function o8$($){if(typeof $!=="boolean")throw new D$(`Invalid boolean value: "${$}" (type: ${typeof $}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:cJ(BM($))}}function r8$($,{signed:J,size:Q}){if(typeof Q==="number"){let Y=2n**(BigInt(Q)-(J?1n:0n))-1n,X=J?-Y-1n:0n;if($>Y||$<X)throw new ZM({max:Y.toString(),min:X.toString(),signed:J,size:Q/8,value:$.toString()})}return{dynamic:!1,encoded:J4($,{size:32,signed:J})}}function t8$($){let J=W5($),Q=Math.ceil(v4(J)/32),Y=[];for(let X=0;X<Q;X++)Y.push(c0(R4(J,X*32,(X+1)*32)));return{dynamic:!0,encoded:k4(c0(J4(v4(J),{size:32})),...Y)}}function a8$($,J){let{checksumAddress:Q,parameter:Y}=J,X=!1,G=[];for(let W=0;W<Y.components.length;W++){let D=Y.components[W],U=Array.isArray($)?W:D.name,V=nZ({checksumAddress:Q,parameter:D,value:$[U]});if(G.push(V),V.dynamic)X=!0}return{dynamic:X,encoded:X?Gz(G):k4(...G.map(({encoded:W})=>W))}}function dZ($){let J=$.match(/^(.*)\[(\d+)?\]$/);return J?[J[2]?Number(J[2]):null,J[1]]:void 0}function YD($){let{type:J}=$;if(J==="string")return!0;if(J==="bytes")return!0;if(J.endsWith("[]"))return!0;if(J==="tuple")return $.components?.some(YD);let Q=dZ($.type);if(Q&&YD({...$,type:Q[1]}))return!0;return!1}Q1();var e8$={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new ch({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition($){if($<0||$>this.bytes.length-1)throw new ih({length:this.bytes.length,position:$})},decrementPosition($){if($<0)throw new cZ({offset:$});let J=this.position-$;this.assertPosition(J),this.position=J},getReadCount($){return this.positionReadCount.get($||this.position)||0},incrementPosition($){if($<0)throw new cZ({offset:$});let J=this.position+$;this.assertPosition(J),this.position=J},inspectByte($){let J=$??this.position;return this.assertPosition(J),this.bytes[J]},inspectBytes($,J){let Q=J??this.position;return this.assertPosition(Q+$-1),this.bytes.subarray(Q,Q+$)},inspectUint8($){let J=$??this.position;return this.assertPosition(J),this.bytes[J]},inspectUint16($){let J=$??this.position;return this.assertPosition(J+1),this.dataView.getUint16(J)},inspectUint24($){let J=$??this.position;return this.assertPosition(J+2),(this.dataView.getUint16(J)<<8)+this.dataView.getUint8(J+2)},inspectUint32($){let J=$??this.position;return this.assertPosition(J+3),this.dataView.getUint32(J)},pushByte($){this.assertPosition(this.position),this.bytes[this.position]=$,this.position++},pushBytes($){this.assertPosition(this.position+$.length-1),this.bytes.set($,this.position),this.position+=$.length},pushUint8($){this.assertPosition(this.position),this.bytes[this.position]=$,this.position++},pushUint16($){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,$),this.position+=2},pushUint24($){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,$>>8),this.dataView.setUint8(this.position+2,$&255),this.position+=3},pushUint32($){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,$),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let $=this.inspectByte();return this.position++,$},readBytes($,J){this.assertReadLimit(),this._touch();let Q=this.inspectBytes($);return this.position+=J??$,Q},readUint8(){this.assertReadLimit(),this._touch();let $=this.inspectUint8();return this.position+=1,$},readUint16(){this.assertReadLimit(),this._touch();let $=this.inspectUint16();return this.position+=2,$},readUint24(){this.assertReadLimit(),this._touch();let $=this.inspectUint24();return this.position+=3,$},readUint32(){this.assertReadLimit(),this._touch();let $=this.inspectUint32();return this.position+=4,$},get remaining(){return this.bytes.length-this.position},setPosition($){let J=this.position;return this.assertPosition($),this.position=$,()=>this.position=J},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let $=this.getReadCount();if(this.positionReadCount.set(this.position,$+1),$>0)this.recursiveReadCount++}};function Dz($,{recursiveReadLimit:J=8192}={}){let Q=Object.create(e8$);return Q.bytes=$,Q.dataView=new DataView($.buffer,$.byteOffset,$.byteLength),Q.positionReadCount=new Map,Q.recursiveReadLimit=J,Q}class cZ extends D${constructor({offset:$}){super(`Offset \`${$}\` cannot be negative.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class ih extends D${constructor({length:$,position:J}){super(`Position \`${J}\` is out of bounds (\`0 < position < ${$}\`).`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}}class ch extends D${constructor({count:$,limit:J}){super(`Recursive read limit of \`${J}\` exceeded (recursive read count: \`${$}\`).`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}}function E5($,J,Q={}){let{as:Y="Array",checksumAddress:X=!1}=Q,G=typeof J==="string"?Y5(J):J,W=Dz(G);if(l1(G)===0&&$.length>0)throw new th;if(l1(G)&&l1(G)<32)throw new rh({data:typeof J==="string"?J:n4(J),parameters:$,size:l1(G)});let D=0,U=Y==="Array"?[]:{};for(let V=0;V<$.length;++V){let O=$[V];W.setPosition(D);let[M,N]=b8(W,O,{checksumAddress:X,staticPosition:0});if(D+=N,Y==="Array")U.push(M);else U[O.name??V]=M}return U}function wX($,J,Q){let{checksumAddress:Y=!1}=Q??{};if($.length!==J.length)throw new rZ({expectedLength:$.length,givenLength:J.length});let X=ph({checksumAddress:Y,parameters:$,values:J}),G=Gz(X);if(G.length===0)return"0x";return G}function oZ($,J){if($.length!==J.length)throw new rZ({expectedLength:$.length,givenLength:J.length});let Q=[];for(let Y=0;Y<$.length;Y++){let X=$[Y],G=J[Y];Q.push(oZ.encode(X,G))}return k4(...Q)}(function($){function J(Q,Y,X=!1){if(Q==="address"){let U=Y;return x8(U),cJ(U.toLowerCase(),X?32:0)}if(Q==="string")return W5(Y);if(Q==="bytes")return Y;if(Q==="bool")return cJ(BM(Y),X?32:1);let G=Q.match(Yz);if(G){let[U,V,O="256"]=G,M=Number.parseInt(O,10)/8;return J4(Y,{size:X?32:M,signed:V==="int"})}let W=Q.match(lh);if(W){let[U,V]=W;if(Number.parseInt(V,10)!==(Y.length-2)/2)throw new Wz({expectedSize:Number.parseInt(V,10),value:Y});return c0(Y,X?32:0)}let D=Q.match(mh);if(D&&Array.isArray(Y)){let[U,V]=D,O=[];for(let M=0;M<Y.length;M++)O.push(J(V,Y[M],!0));if(O.length===0)return"0x";return k4(...O)}throw new GD(Q)}$.encode=J})(oZ||(oZ={}));function DD($){if(Array.isArray($)&&typeof $[0]==="string")return WM($);if(typeof $==="string")return WM($);return $}class rh extends D${constructor({data:$,parameters:J,size:Q}){super(`Data size of ${Q} bytes is too small for given parameters.`,{metaMessages:[`Params: (${gJ(J)})`,`Data: ${$} (${Q} bytes)`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}}class th extends D${constructor(){super('Cannot decode zero data ("0x") with ABI parameters.');Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"})}}class pZ extends D${constructor({expectedLength:$,givenLength:J,type:Q}){super(`Array length mismatch for type \`${Q}\`. Expected: \`${$}\`. Given: \`${J}\`.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"})}}class Wz extends D${constructor({expectedSize:$,value:J}){super(`Size of bytes "${J}" (bytes${v4(J)}) does not match expected size (bytes${$}).`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class rZ extends D${constructor({expectedLength:$,givenLength:J}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${$}`,`Given length (values): ${J}`].join(`
113
113
  `));Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}}class iZ extends D${constructor($){super(`Value \`${$}\` is not a valid array.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"})}}class GD extends D${constructor($){super(`Type \`${$}\` is not a valid ABI Type.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}}J6();function ah(...$){let[J,Q]=(()=>{if(Array.isArray($[0])){let[G,W]=$;return[$9$(G),W]}return $})(),{bytecode:Y,args:X}=Q;return k4(Y,J.inputs?.length&&X?.length?wX(J.inputs,X):"0x")}function sh($){return Xz($)}function $9$($){let J=$.find((Q)=>Q.type==="constructor");if(!J)throw new f8({name:"constructor"});return J}J6();function $u(...$){let[J,Q=[]]=(()=>{if(Array.isArray($[0])){let[V,O,M]=$;return[eh(V,O,{args:M}),M]}let[D,U]=$;return[D,U]})(),{overloads:Y}=J,X=Y?eh([J,...Y],J.name,{args:Q}):J,G=Q9$(X),W=Q.length>0?wX(X.inputs,Q):void 0;return W?k4(G,W):G}function g8($,J={}){return Xz($,J)}function eh($,J,Q){let Y=XD($,J,Q);if(Y.type!=="function")throw new f8({name:J,type:"function"});return Y}function Q9$($){return uZ($)}var tZ="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",X1="0x0000000000000000000000000000000000000000";x$();w1();var Y9$="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function Ju($,J){let{blockNumber:Q,blockTag:Y,calls:X,stateOverrides:G,traceAssetChanges:W,traceTransfers:D,validation:U}=J,V=J.account?_$(J.account):void 0;if(W&&!V)throw new R("`account` is required when `traceAssetChanges` is true");let O=V?ah(sh("constructor(bytes, bytes)"),{bytecode:jM,args:[Y9$,$u(g8("function getBalance(address)"),[V.address])]}):void 0,M=W?await Promise.all(J.calls.map(async(b)=>{if(!b.data&&!b.abi)return;let{accessList:i}=await TM($,{account:V.address,...b,data:b.abi?S4(b):b.data});return i.map(({address:V$,storageKeys:R$})=>R$.length>0?V$:null)})).then((b)=>b.flat().filter(Boolean)):[],N=await QD($,{blockNumber:Q,blockTag:Y,blocks:[...W?[{calls:[{data:O}],stateOverrides:G},{calls:M.map((b,i)=>({abi:[g8("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[V.address],to:b,from:X1,nonce:i})),stateOverrides:[{address:X1,nonce:0}]}]:[],{calls:[...X,{}].map((b)=>({...b,from:V?.address})),stateOverrides:G},...W?[{calls:[{data:O}]},{calls:M.map((b,i)=>({abi:[g8("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[V.address],to:b,from:X1,nonce:i})),stateOverrides:[{address:X1,nonce:0}]},{calls:M.map((b,i)=>({to:b,abi:[g8("function decimals() returns (uint256)")],functionName:"decimals",from:X1,nonce:i})),stateOverrides:[{address:X1,nonce:0}]},{calls:M.map((b,i)=>({to:b,abi:[g8("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:X1,nonce:i})),stateOverrides:[{address:X1,nonce:0}]},{calls:M.map((b,i)=>({to:b,abi:[g8("function symbol() returns (string)")],functionName:"symbol",from:X1,nonce:i})),stateOverrides:[{address:X1,nonce:0}]}]:[]],traceTransfers:D,validation:U}),q=W?N[2]:N[0],[w,I,,Z,L,_,B,F]=W?N:[],{calls:S,...v}=q,k=S.slice(0,-1)??[],h=w?.calls??[],o=I?.calls??[],g=[...h,...o].map((b)=>b.status==="success"?g4(b.data):null),Q$=Z?.calls??[],t=L?.calls??[],K$=[...Q$,...t].map((b)=>b.status==="success"?g4(b.data):null),m=(_?.calls??[]).map((b)=>b.status==="success"?b.result:null),T=(F?.calls??[]).map((b)=>b.status==="success"?b.result:null),u=(B?.calls??[]).map((b)=>b.status==="success"?b.result:null),d=[];for(let[b,i]of K$.entries()){let V$=g[b];if(typeof i!=="bigint")continue;if(typeof V$!=="bigint")continue;let R$=m[b-1],P$=T[b-1],w6=u[b-1],e$=(()=>{if(b===0)return{address:tZ,decimals:18,symbol:"ETH"};return{address:M[b-1],decimals:w6||R$?Number(R$??1):void 0,symbol:P$??void 0}})();if(d.some((Y4)=>Y4.token.address===e$.address))continue;d.push({token:e$,value:{pre:V$,post:i,diff:i-V$}})}return{assetChanges:d,block:v,results:k}}eQ();w1();O5();async function Qu($,J){let{abi:Q,address:Y,args:X,functionName:G,dataSuffix:W=typeof $.dataSuffix==="string"?$.dataSuffix:$.dataSuffix?.value,...D}=J,U=D.account?_$(D.account):$.account,V=S4({abi:Q,args:X,functionName:G});try{let{data:O}=await p($,r0,"call")({batch:!1,data:`${V}${W?W.replace("0x",""):""}`,to:Y,...D,account:U}),M=$1({abi:Q,args:X,functionName:G,data:O||"0x"}),N=Q.filter((q)=>("name"in q)&&q.name===J.functionName);return{result:M,request:{abi:N,address:Y,args:X,dataSuffix:W,functionName:G,...D,account:U}}}catch(O){throw A1(O,{abi:Q,address:Y,args:X,docsPath:"/docs/contract/simulateContract",functionName:G,sender:U?.address})}}async function AX($,{filter:J}){return J.request({method:"eth_uninstallFilter",params:[J.id]})}var UD={};l6(UD,{wrap:()=>U9$,validate:()=>K9$,unwrap:()=>Xu,universalSignatureValidatorBytecode:()=>G9$,universalSignatureValidatorAbi:()=>W9$,magicBytes:()=>aZ,from:()=>D9$,assert:()=>sZ,InvalidWrappedSignatureError:()=>eZ});Q1();J6();var aZ="0x6492649264926492649264926492649264926492649264926492649264926492",G9$="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",W9$=[{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],outputs:[{type:"bool"}],stateMutability:"nonpayable",type:"function",name:"isValidSig"}];function sZ($){if(R4($,-32)!==aZ)throw new eZ($)}function D9$($){if(typeof $==="string")return Xu($);return $}function Xu($){sZ($);let[J,Q,Y]=E5(DD("address, bytes, bytes"),$);return{data:Q,signature:Y,to:J}}function U9$($){let{data:J,signature:Q,to:Y}=$;return k4(wX(DD("address, bytes, bytes"),[Y,J,Q]),aZ)}function K9$($){try{return sZ($),!0}catch{return!1}}class eZ extends D${constructor($){super(`Value \`${$}\` is an invalid ERC-6492 wrapped signature.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"})}}var KD={};l6(KD,{wrap:()=>j9$,validate:()=>S9$,unwrap:()=>wu,suffixParameters:()=>GF,magicBytes:()=>YF,from:()=>F9$,assert:()=>Vz,InvalidWrappedSignatureError:()=>WF});J6();YX();Q1();J6();function V9$($,J){let{as:Q}=J,Y=Gu($),X=Dz(new Uint8Array(Y.length));if(Y.encode(X),Q==="Hex")return n4(X.bytes);return X.bytes}function Yu($,J={}){let{as:Q="Hex"}=J;return V9$($,{as:Q})}function Gu($){if(Array.isArray($))return O9$($.map((J)=>Gu(J)));return M9$($)}function O9$($){let J=$.reduce((X,G)=>X+G.length,0),Q=Wu(J);return{length:(()=>{if(J<=55)return 1+J;return 1+Q+J})(),encode(X){if(J<=55)X.pushByte(192+J);else if(X.pushByte(247+Q),Q===1)X.pushUint8(J);else if(Q===2)X.pushUint16(J);else if(Q===3)X.pushUint24(J);else X.pushUint32(J);for(let{encode:G}of $)G(X)}}}function M9$($){let J=typeof $==="string"?Y5($):$,Q=Wu(J.length);return{length:(()=>{if(J.length===1&&J[0]<128)return 1;if(J.length<=55)return 1+J.length;return 1+Q+J.length})(),encode(X){if(J.length===1&&J[0]<128)X.pushBytes(J);else if(J.length<=55)X.pushByte(128+J.length),X.pushBytes(J);else{if(X.pushByte(183+Q),Q===1)X.pushUint8(J.length);else if(Q===2)X.pushUint16(J.length);else if(Q===3)X.pushUint24(J.length);else X.pushUint32(J.length);X.pushBytes(J)}}}}function Wu($){if($<=255)return 1;if($<=65535)return 2;if($<=16777215)return 3;if($<=4294967295)return 4;throw new D$("Length is too large.")}Q1();J6();function $F($,J={}){let{recovered:Q}=J;if(typeof $.r>"u")throw new Uz({signature:$});if(typeof $.s>"u")throw new Uz({signature:$});if(Q&&typeof $.yParity>"u")throw new Uz({signature:$});if($.r<0n||$.r>mZ)throw new Vu({value:$.r});if($.s<0n||$.s>mZ)throw new Ou({value:$.s});if(typeof $.yParity==="number"&&$.yParity!==0&&$.yParity!==1)throw new Kz({value:$.yParity})}function N9$($){return Du(n4($))}function Du($){if($.length!==130&&$.length!==132)throw new Ku({signature:$});let J=BigInt(R4($,0,32)),Q=BigInt(R4($,32,64)),Y=(()=>{let X=Number(`0x${$.slice(130)}`);if(Number.isNaN(X))return;try{return XF(X)}catch{throw new Kz({value:X})}})();if(typeof Y>"u")return{r:J,s:Q};return{r:J,s:Q,yParity:Y}}function JF($){if(typeof $.r>"u")return;if(typeof $.s>"u")return;return QF($)}function QF($){let J=(()=>{if(typeof $==="string")return Du($);if($ instanceof Uint8Array)return N9$($);if(typeof $.r==="string")return H9$($);if($.v)return q9$($);return{r:$.r,s:$.s,...typeof $.yParity<"u"?{yParity:$.yParity}:{}}})();return $F(J),J}function q9$($){return{r:$.r,s:$.s,yParity:XF($.v)}}function H9$($){let J=(()=>{let Q=$.v?Number($.v):void 0,Y=$.yParity?Number($.yParity):void 0;if(typeof Q==="number"&&typeof Y!=="number")Y=XF(Q);if(typeof Y!=="number")throw new Kz({value:$.yParity});return Y})();return{r:BigInt($.r),s:BigInt($.s),yParity:J}}function Uu($){let{r:J,s:Q,yParity:Y}=$;return[Y?"0x01":"0x",J===0n?"0x":hB(J4(J)),Q===0n?"0x":hB(J4(Q))]}function XF($){if($===0||$===27)return 0;if($===1||$===28)return 1;if($>=35)return $%2===0?1:0;throw new Mu({value:$})}class Ku extends D${constructor({signature:$}){super(`Value \`${$}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${v4(G5($))} bytes.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class Uz extends D${constructor({signature:$}){super(`Signature \`${GX($)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}}class Vu extends D${constructor({value:$}){super(`Value \`${$}\` is an invalid r value. r must be a positive integer less than 2^256.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidRError"})}}class Ou extends D${constructor({value:$}){super(`Value \`${$}\` is an invalid s value. s must be a positive integer less than 2^256.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSError"})}}class Kz extends D${constructor({value:$}){super(`Value \`${$}\` is an invalid y-parity value. Y-parity must be 0 or 1.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"})}}class Mu extends D${constructor({value:$}){super(`Value \`${$}\` is an invalid v value. v must be 27, 28 or >=35.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"})}}function Nu($,J={}){if(typeof $.chainId==="string")return w9$($);return{...$,...J.signature}}function w9$($){let{address:J,chainId:Q,nonce:Y}=$,X=JF($);return{address:J,chainId:Number(Q),nonce:BigInt(Y),...X}}function qu($){return A9$($,{presign:!0})}function A9$($,J={}){let{presign:Q}=J;return k8(k4("0x05",Yu(I9$(Q?{address:$.address,chainId:$.chainId,nonce:$.nonce}:$))))}function I9$($){let{address:J,chainId:Q,nonce:Y}=$,X=JF($);return[Q?J4(Q):"0x",J,Y?J4(Y):"0x",...X?Uu(X):[]]}Q1();J6();N5();J6();function Hu($){return bh(B9$($))}function B9$($){let{payload:J,signature:Q}=$,{r:Y,s:X,yParity:G}=Q,D=new B1.Signature(BigInt(Y),BigInt(X)).addRecoveryBit(G).recoverPublicKey(G5(J).substring(2));return vh(D)}var YF="0x8010801080108010801080108010801080108010801080108010801080108010",GF=DD("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function Vz($){if(typeof $==="string"){if(R4($,-32)!==YF)throw new WF($)}else $F($.authorization)}function F9$($){if(typeof $==="string")return wu($);return $}function wu($){Vz($);let J=LM(R4($,-64,-32)),Q=R4($,-J-64,-64),Y=R4($,0,-J-64),[X,G,W]=E5(GF,Q);return{authorization:Nu({address:X.delegation,chainId:Number(X.chainId),nonce:X.nonce,yParity:X.yParity,r:X.r,s:X.s}),signature:Y,...W&&W!=="0x"?{data:W,to:G}:{}}}function j9$($){let{data:J,signature:Q}=$;Vz($);let Y=Hu({payload:qu($.authorization),signature:QF($.authorization)}),X=wX(GF,[{...$.authorization,delegation:$.authorization.address,chainId:BigInt($.authorization.chainId)},$.to??Y,J??"0x"]),G=J4(v4(X),{size:32});return k4(Q,X,G,YF)}function S9$($){try{return Vz($),!0}catch{return!1}}class WF extends D${constructor($){super(`Value \`${$}\` is an invalid ERC-8010 wrapped signature.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc8010.InvalidWrappedSignatureError"})}}PJ();$X();SM();w1();oQ();E8();oQ();E8();async function Au({address:$,authorization:J,signature:Q}){return d1(wY($),await NX({authorization:J,signature:Q}))}e4();w$();N5();e4();$6();function Oz({r:$,s:J,to:Q="hex",v:Y,yParity:X}){let G=(()=>{if(X===0||X===1)return X;if(Y&&(Y===27n||Y===28n||Y>=35n))return Y%2n===0n?1:0;throw Error("Invalid `v` or `yParity` value")})(),W=`0x${new B1.Signature(g4($),g4(J)).toCompactHex()}${G===0?"1b":"1c"}`;if(Q==="hex")return W;return o4(W)}O5();async function LX($,J){let{address:Q,chain:Y=$.chain,hash:X,erc6492VerifierAddress:G=J.universalSignatureVerifierAddress??Y?.contracts?.erc6492Verifier?.address,multicallAddress:W=J.multicallAddress??Y?.contracts?.multicall3?.address}=J;if(Y?.verifyHash)return await Y.verifyHash($,J);let D=(()=>{let U=J.signature;if(T4(U))return U;if(typeof U==="object"&&"r"in U&&"s"in U)return Oz(U);return a$(U)})();try{if(KD.validate(D))return await _9$($,{...J,multicallAddress:W,signature:D});return await E9$($,{...J,verifierAddress:G,signature:D})}catch(U){try{if(d1(wY(Q),await mM({hash:X,signature:D})))return!0}catch{}if(U instanceof IX)return!1;throw U}}async function _9$($,J){let{address:Q,blockNumber:Y,blockTag:X,hash:G,multicallAddress:W}=J,{authorization:D,data:U,signature:V,to:O}=KD.unwrap(J.signature);if(await JD($,{address:Q,blockNumber:Y,blockTag:X})===B6(["0xef0100",D.address]))return await P9$($,{address:Q,blockNumber:Y,blockTag:X,hash:G,signature:V});let N={address:D.address,chainId:Number(D.chainId),nonce:Number(D.nonce),r:y(D.r,{size:32}),s:y(D.s,{size:32}),yParity:D.yParity};if(!await Au({address:Q,authorization:N}))throw new IX;let w=await p($,i4,"readContract")({...W?{address:W}:{code:D5},authorizationList:[N],abi:dQ,blockNumber:Y,blockTag:"pending",functionName:"aggregate3",args:[[...U?[{allowFailure:!0,target:O??Q,callData:U}]:[],{allowFailure:!0,target:Q,callData:S4({abi:$2,functionName:"isValidSignature",args:[G,V]})}]]});if(w[w.length-1]?.returnData?.startsWith("0x1626ba7e"))return!0;throw new IX}async function E9$($,J){let{address:Q,factory:Y,factoryData:X,hash:G,signature:W,verifierAddress:D,...U}=J,V=await(async()=>{if(!Y&&!X)return W;if(UD.validate(W))return W;return UD.wrap({data:X,signature:W,to:Y})})(),O=D?{to:D,data:S4({abi:DW,functionName:"isValidSig",args:[Q,G,V]}),...U}:{data:_8({abi:DW,args:[Q,G,V],bytecode:tg}),...U},{data:M}=await p($,r0,"call")(O).catch((N)=>{if(N instanceof _W)throw new IX;throw N});if(I2(M??"0x0"))return!0;throw new IX}async function P9$($,J){let{address:Q,blockNumber:Y,blockTag:X,hash:G,signature:W}=J;if((await p($,i4,"readContract")({address:Q,abi:$2,args:[G,W],blockNumber:Y,blockTag:X,functionName:"isValidSignature"}).catch((U)=>{if(U instanceof EW)throw new IX;throw U})).startsWith("0x1626ba7e"))return!0;throw new IX}class IX extends Error{}b1();var Iu=`\x19Ethereum Signed Message:
114
114
  `;x1();w$();function Lu($){let J=(()=>{if(typeof $==="string")return V0($);if(typeof $.raw==="string")return $.raw;return a$($.raw)})(),Q=V0(`${Iu}${t$(J)}`);return Z4([Q,J])}function P5($,J){return U4(Lu($),J)}async function Bu($,{address:J,message:Q,factory:Y,factoryData:X,signature:G,...W}){let D=P5(Q);return p($,LX,"verifyHash")({address:J,factory:Y,factoryData:X,hash:D,signature:G,...W})}fJ();w$();b1();l4();u0();x$();class DF extends R{constructor({domain:$}){super(`Invalid domain "${i$($)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class UF extends R{constructor({primaryType:$,types:J}){super(`Invalid primary type \`${$}\` must be one of \`${JSON.stringify(Object.keys(J))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}}class KF extends R{constructor({type:$}){super(`Struct type "${$}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}g1();x1();w$();P2();function Zu($){let{domain:J,message:Q,primaryType:Y,types:X}=$,G=(U,V)=>{let O={...V};for(let M of U){let{name:N,type:q}=M;if(q==="address")O[N]=O[N].toLowerCase()}return O},W=(()=>{if(!X.EIP712Domain)return{};if(!J)return{};return G(X.EIP712Domain,J)})(),D=(()=>{if(Y==="EIP712Domain")return;return G(X[Y],Q)})();return i$({domain:W,message:D,primaryType:Y,types:X})}function Mz($){let{domain:J,message:Q,primaryType:Y,types:X}=$,G=(W,D)=>{for(let U of W){let{name:V,type:O}=U,M=D[V],N=O.match(r3);if(N&&(typeof M==="number"||typeof M==="bigint")){let[I,Z,L]=N;y(M,{signed:Z==="int",size:Number.parseInt(L,10)/8})}if(O==="address"&&typeof M==="string"&&!X4(M))throw new j4({address:M});let q=O.match(Nb);if(q){let[I,Z]=q;if(Z&&t$(M)!==Number.parseInt(Z,10))throw new z2({expectedSize:Number.parseInt(Z,10),givenSize:t$(M)})}let w=X[O];if(w)v9$(O),G(w,M)}};if(X.EIP712Domain&&J){if(typeof J!=="object")throw new DF({domain:J});G(X.EIP712Domain,J)}if(Y!=="EIP712Domain")if(X[Y])G(X[Y],Q);else throw new UF({primaryType:Y,types:X})}function zz({domain:$}){return[typeof $?.name==="string"&&{name:"name",type:"string"},$?.version&&{name:"version",type:"string"},(typeof $?.chainId==="number"||typeof $?.chainId==="bigint")&&{name:"chainId",type:"uint256"},$?.verifyingContract&&{name:"verifyingContract",type:"address"},$?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function v9$($){if($==="address"||$==="bool"||$==="string"||$.startsWith("bytes")||$.startsWith("uint")||$.startsWith("int"))throw new KF({type:$})}function Nz($){let{domain:J={},message:Q,primaryType:Y}=$,X={EIP712Domain:zz({domain:J}),...$.types};Mz({domain:J,message:Q,primaryType:Y,types:X});let G=["0x1901"];if(J)G.push(R9$({domain:J,types:X}));if(Y!=="EIP712Domain")G.push(Fu({data:Q,primaryType:Y,types:X}));return U4(Z4(G))}function R9$({domain:$,types:J}){return Fu({data:$,primaryType:"EIP712Domain",types:J})}function Fu({data:$,primaryType:J,types:Q}){let Y=ju({data:$,primaryType:J,types:Q});return U4(Y)}function ju({data:$,primaryType:J,types:Q}){let Y=[{type:"bytes32"}],X=[T9$({primaryType:J,types:Q})];for(let G of Q[J]){let[W,D]=_u({types:Q,name:G.name,type:G.type,value:$[G.name]});Y.push(W),X.push(D)}return b6(Y,X)}function T9$({primaryType:$,types:J}){let Q=P4(C9$({primaryType:$,types:J}));return U4(Q)}function C9$({primaryType:$,types:J}){let Q="",Y=Su({primaryType:$,types:J});Y.delete($);let X=[$,...Array.from(Y).sort()];for(let G of X)Q+=`${G}(${J[G].map(({name:W,type:D})=>`${D} ${W}`).join(",")})`;return Q}function Su({primaryType:$,types:J},Q=new Set){let X=$.match(/^\w*/u)?.[0];if(Q.has(X)||J[X]===void 0)return Q;Q.add(X);for(let G of J[X])Su({primaryType:G.type,types:J},Q);return Q}function _u({types:$,name:J,type:Q,value:Y}){if($[Q]!==void 0)return[{type:"bytes32"},U4(ju({data:Y,primaryType:Q,types:$}))];if(Q==="bytes")return[{type:"bytes32"},U4(Y)];if(Q==="string")return[{type:"bytes32"},U4(P4(Y))];if(Q.lastIndexOf("]")===Q.length-1){let X=Q.slice(0,Q.lastIndexOf("[")),G=Y.map((W)=>_u({name:J,type:X,types:$,value:W}));return[{type:"bytes32"},U4(b6(G.map(([W])=>W),G.map(([,W])=>W)))]}return[{type:Q},Y]}async function Eu($,J){let{address:Q,factory:Y,factoryData:X,signature:G,message:W,primaryType:D,types:U,domain:V,...O}=J,M=Nz({message:W,primaryType:D,types:U,domain:V});return p($,LX,"verifyHash")({address:Q,factory:Y,factoryData:X,hash:M,signature:G,...O})}u1();var VF=new Map,Pu=new Map,k9$=0;function _6($,J,Q){let Y=++k9$,X=()=>VF.get($)||[],G=()=>{let O=X();VF.set($,O.filter((M)=>M.id!==Y))},W=()=>{let O=X();if(!O.some((N)=>N.id===Y))return;let M=Pu.get($);if(O.length===1&&M){let N=M();if(N instanceof Promise)N.catch(()=>{})}G()},D=X();if(VF.set($,[...D,{id:Y,fns:J}]),D&&D.length>0)return W;let U={};for(let O in J)U[O]=(...M)=>{let N=X();if(N.length===0)return;for(let q of N)q.fns[O]?.(...M)};let V=Q(U);if(typeof V==="function")Pu.set($,V);return W}async function VD($){return new Promise((J)=>setTimeout(J,$))}function y8($,{delay:J=100,retryCount:Q=2,shouldRetry:Y=()=>!0}={}){return new Promise((X,G)=>{let W=async({count:D=0}={})=>{let U=async({error:V})=>{let O=typeof J==="function"?J({count:D,error:V}):J;if(O)await VD(O);W({count:D+1})};try{let V=await $();X(V)}catch(V){if(D<Q&&await Y({count:D,error:V}))return U({error:V});G(V)}};W()})}e4();function p1($,{emitOnBegin:J,initialWaitTime:Q,interval:Y}){let X=!0,G=()=>X=!1;return(async()=>{let D;if(J)D=await $({unpoll:G});let U=await Q?.(D)??Y;await VD(U);let V=async()=>{if(!X)return;await $({unpoll:G}),await VD(Y),V()};V()})(),G}function qz($,{emitOnBegin:J=!1,emitMissed:Q=!1,onBlockNumber:Y,onError:X,poll:G,pollingInterval:W=$.pollingInterval}){let D=(()=>{if(typeof G<"u")return G;if($.transport.type==="webSocket"||$.transport.type==="ipc")return!1;if($.transport.type==="fallback"&&($.transport.transports[0].config.type==="webSocket"||$.transport.transports[0].config.type==="ipc"))return!1;return!0})(),U;return D?(()=>{let M=i$(["watchBlockNumber",$.uid,J,Q,W]);return _6(M,{onBlockNumber:Y,onError:X},(N)=>p1(async()=>{try{let q=await p($,s0,"getBlockNumber")({cacheTime:0});if(U!==void 0){if(q===U)return;if(q-U>1&&Q)for(let w=U+1n;w<q;w++)N.onBlockNumber(w,U),U=w}if(U===void 0||q>U)N.onBlockNumber(q,U),U=q}catch(q){N.onError?.(q)}},{emitOnBegin:J,interval:W}))})():(()=>{let M=i$(["watchBlockNumber",$.uid,J,Q]);return _6(M,{onBlockNumber:Y,onError:X},(N)=>{let q=!0,w=()=>q=!1;return(async()=>{try{let I=(()=>{if($.transport.type==="fallback"){let L=$.transport.transports.find((_)=>_.config.type==="webSocket"||_.config.type==="ipc");if(!L)return $.transport;return L.value}return $.transport})(),{unsubscribe:Z}=await I.subscribe({params:["newHeads"],onData(L){if(!q)return;let _=g4(L.result?.number);N.onBlockNumber(_,U),U=_},onError(L){N.onError?.(L)}});if(w=Z,!q)w()}catch(I){X?.(I)}})(),()=>w()})})()}async function Hz($,J){let{checkReplacement:Q=!0,confirmations:Y=1,hash:X,onReplaced:G,retryCount:W=6,retryDelay:D=({count:S})=>~~(1<<S)*200,timeout:U=180000}=J,V=i$(["waitForTransactionReceipt",$.uid,X]),O=(()=>{if(J.pollingInterval)return J.pollingInterval;if($.chain?.experimental_preconfirmationTime)return $.chain.experimental_preconfirmationTime;return $.pollingInterval})(),M,N,q,w=!1,I,Z,{promise:L,resolve:_,reject:B}=U5(),F=U?setTimeout(()=>{Z?.(),I?.(),B(new MB({hash:X}))},U):void 0;return I=_6(V,{onReplaced:G,resolve:_,reject:B},async(S)=>{if(q=await p($,S5,"getTransactionReceipt")({hash:X}).catch(()=>{return}),q&&Y<=1){clearTimeout(F),S.resolve(q),I?.();return}Z=p($,qz,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:O,async onBlockNumber(v){let k=(o)=>{clearTimeout(F),Z?.(),o(),I?.()},h=v;if(w)return;try{if(q){if(Y>1&&(!q.blockNumber||h-q.blockNumber+1n<Y))return;k(()=>S.resolve(q));return}if(Q&&!M)w=!0,await y8(async()=>{if(M=await p($,j5,"getTransaction")({hash:X}),M.blockNumber)h=M.blockNumber},{delay:D,retryCount:W}),w=!1;if(q=await p($,S5,"getTransactionReceipt")({hash:X}),Y>1&&(!q.blockNumber||h-q.blockNumber+1n<Y))return;k(()=>S.resolve(q))}catch(o){if(o instanceof FW||o instanceof jW){if(!M){w=!1;return}try{N=M,w=!0;let g=await y8(()=>p($,X6,"getBlock")({blockNumber:h,includeTransactions:!0}),{delay:D,retryCount:W,shouldRetry:({error:K$})=>K$ instanceof sW});w=!1;let Q$=g.transactions.find(({from:K$,nonce:m})=>K$===N.from&&m===N.nonce);if(!Q$)return;if(q=await p($,S5,"getTransactionReceipt")({hash:Q$.hash}),Y>1&&(!q.blockNumber||h-q.blockNumber+1n<Y))return;let t="replaced";if(Q$.to===N.to&&Q$.value===N.value&&Q$.input===N.input)t="repriced";else if(Q$.from===Q$.to&&Q$.value===0n)t="cancelled";k(()=>{S.onReplaced?.({reason:t,replacedTransaction:N,transaction:Q$,transactionReceipt:q}),S.resolve(q)})}catch(g){k(()=>S.reject(g))}}else k(()=>S.reject(o))}}})}),L}function vu($,{blockTag:J=$.experimental_blockTag??"latest",emitMissed:Q=!1,emitOnBegin:Y=!1,onBlock:X,onError:G,includeTransactions:W,poll:D,pollingInterval:U=$.pollingInterval}){let V=(()=>{if(typeof D<"u")return D;if($.transport.type==="webSocket"||$.transport.type==="ipc")return!1;if($.transport.type==="fallback"&&($.transport.transports[0].config.type==="webSocket"||$.transport.transports[0].config.type==="ipc"))return!1;return!0})(),O=W??!1,M;return V?(()=>{let w=i$(["watchBlocks",$.uid,J,Q,Y,O,U]);return _6(w,{onBlock:X,onError:G},(I)=>p1(async()=>{try{let Z=await p($,X6,"getBlock")({blockTag:J,includeTransactions:O});if(Z.number!==null&&M?.number!=null){if(Z.number===M.number)return;if(Z.number-M.number>1&&Q)for(let L=M?.number+1n;L<Z.number;L++){let _=await p($,X6,"getBlock")({blockNumber:L,includeTransactions:O});I.onBlock(_,M),M=_}}if(M?.number==null||J==="pending"&&Z?.number==null||Z.number!==null&&Z.number>M.number)I.onBlock(Z,M),M=Z}catch(Z){I.onError?.(Z)}},{emitOnBegin:Y,interval:U}))})():(()=>{let w=!0,I=!0,Z=()=>w=!1;return(async()=>{try{if(Y)p($,X6,"getBlock")({blockTag:J,includeTransactions:O}).then((B)=>{if(!w)return;if(!I)return;X(B,void 0),I=!1}).catch(G);let L=(()=>{if($.transport.type==="fallback"){let B=$.transport.transports.find((F)=>F.config.type==="webSocket"||F.config.type==="ipc");if(!B)return $.transport;return B.value}return $.transport})(),{unsubscribe:_}=await L.subscribe({params:["newHeads"],async onData(B){if(!w)return;let F=await p($,X6,"getBlock")({blockNumber:B.result?.number,includeTransactions:O}).catch(()=>{});if(!w)return;X(F,M),I=!1,M=F},onError(B){G?.(B)}});if(Z=_,!w)Z()}catch(L){G?.(L)}})(),()=>Z()})()}l4();aY();function Ru($,J){let{abi:Q,address:Y,args:X,batch:G=!0,eventName:W,fromBlock:D,onError:U,onLogs:V,poll:O,pollingInterval:M=$.pollingInterval,strict:N}=J;return(()=>{if(typeof O<"u")return O;if(typeof D==="bigint")return!0;if($.transport.type==="webSocket"||$.transport.type==="ipc")return!1;if($.transport.type==="fallback"&&($.transport.transports[0].config.type==="webSocket"||$.transport.transports[0].config.type==="ipc"))return!1;return!0})()?(()=>{let Z=N??!1,L=i$(["watchContractEvent",Y,X,G,$.uid,W,M,Z,D]);return _6(L,{onLogs:V,onError:U},(_)=>{let B;if(D!==void 0)B=D-1n;let F,S=!1,v=p1(async()=>{if(!S){try{F=await p($,CM,"createContractEventFilter")({abi:Q,address:Y,args:X,eventName:W,strict:Z,fromBlock:D})}catch{}S=!0;return}try{let k;if(F)k=await p($,HX,"getFilterChanges")({filter:F});else{let h=await p($,s0,"getBlockNumber")({});if(B&&B<h)k=await p($,rM,"getContractEvents")({abi:Q,address:Y,args:X,eventName:W,fromBlock:B+1n,toBlock:h,strict:Z});else k=[];B=h}if(k.length===0)return;if(G)_.onLogs(k);else for(let h of k)_.onLogs([h])}catch(k){if(F&&k instanceof m1)S=!1;_.onError?.(k)}},{emitOnBegin:!0,interval:M});return async()=>{if(F)await p($,AX,"uninstallFilter")({filter:F});v()}})})():(()=>{let Z=N??!1,L=i$(["watchContractEvent",Y,X,G,$.uid,W,M,Z]),_=!0,B=()=>_=!1;return _6(L,{onLogs:V,onError:U},(F)=>{return(async()=>{try{let S=(()=>{if($.transport.type==="fallback"){let h=$.transport.transports.find((o)=>o.config.type==="webSocket"||o.config.type==="ipc");if(!h)return $.transport;return h.value}return $.transport})(),v=W?t0({abi:Q,eventName:W,args:X}):[],{unsubscribe:k}=await S.subscribe({params:["logs",{address:Y,topics:v}],onData(h){if(!_)return;let o=h.result;try{let{eventName:g,args:Q$}=C8({abi:Q,data:o.data,topics:o.topics,strict:N}),t=S6(o,{args:Q$,eventName:g});F.onLogs([t])}catch(g){let Q$,t;if(g instanceof pQ||g instanceof U8){if(N)return;Q$=g.abiItem.name,t=g.abiItem.inputs?.some((m)=>!(("name"in m)&&m.name))}let K$=S6(o,{args:t?[]:{},eventName:Q$});F.onLogs([K$])}},onError(h){F.onError?.(h)}});if(B=k,!_)B()}catch(S){U?.(S)}})(),()=>B()})})()}l4();aY();function Tu($,{address:J,args:Q,batch:Y=!0,event:X,events:G,fromBlock:W,onError:D,onLogs:U,poll:V,pollingInterval:O=$.pollingInterval,strict:M}){let N=(()=>{if(typeof V<"u")return V;if(typeof W==="bigint")return!0;if($.transport.type==="webSocket"||$.transport.type==="ipc")return!1;if($.transport.type==="fallback"&&($.transport.transports[0].config.type==="webSocket"||$.transport.transports[0].config.type==="ipc"))return!1;return!0})(),q=M??!1;return N?(()=>{let Z=i$(["watchEvent",J,Q,Y,$.uid,X,O,W]);return _6(Z,{onLogs:U,onError:D},(L)=>{let _;if(W!==void 0)_=W-1n;let B,F=!1,S=p1(async()=>{if(!F){try{B=await p($,kM,"createEventFilter")({address:J,args:Q,event:X,events:G,strict:q,fromBlock:W})}catch{}F=!0;return}try{let v;if(B)v=await p($,HX,"getFilterChanges")({filter:B});else{let k=await p($,s0,"getBlockNumber")({});if(_&&_!==k)v=await p($,F5,"getLogs")({address:J,args:Q,event:X,events:G,fromBlock:_+1n,toBlock:k});else v=[];_=k}if(v.length===0)return;if(Y)L.onLogs(v);else for(let k of v)L.onLogs([k])}catch(v){if(B&&v instanceof m1)F=!1;L.onError?.(v)}},{emitOnBegin:!0,interval:O});return async()=>{if(B)await p($,AX,"uninstallFilter")({filter:B});S()}})})():(()=>{let Z=!0,L=()=>Z=!1;return(async()=>{try{let _=(()=>{if($.transport.type==="fallback"){let v=$.transport.transports.find((k)=>k.config.type==="webSocket"||k.config.type==="ipc");if(!v)return $.transport;return v.value}return $.transport})(),B=G??(X?[X]:void 0),F=[];if(B){if(F=[B.flatMap((k)=>t0({abi:[k],eventName:k.name,args:Q}))],X)F=F[0]}let{unsubscribe:S}=await _.subscribe({params:["logs",{address:J,topics:F}],onData(v){if(!Z)return;let k=v.result;try{let{eventName:h,args:o}=C8({abi:B??[],data:k.data,topics:k.topics,strict:q}),g=S6(k,{args:o,eventName:h});U([g])}catch(h){let o,g;if(h instanceof pQ||h instanceof U8){if(M)return;o=h.abiItem.name,g=h.abiItem.inputs?.some((t)=>!(("name"in t)&&t.name))}let Q$=S6(k,{args:g?[]:{},eventName:o});U([Q$])}},onError(v){D?.(v)}});if(L=S,!Z)L()}catch(_){D?.(_)}})(),()=>L()})()}function Cu($,{batch:J=!0,onError:Q,onTransactions:Y,poll:X,pollingInterval:G=$.pollingInterval}){return(typeof X<"u"?X:$.transport.type!=="webSocket"&&$.transport.type!=="ipc")?(()=>{let V=i$(["watchPendingTransactions",$.uid,J,G]);return _6(V,{onTransactions:Y,onError:Q},(O)=>{let M,N=p1(async()=>{try{if(!M)try{M=await p($,xM,"createPendingTransactionFilter")({});return}catch(w){throw N(),w}let q=await p($,HX,"getFilterChanges")({filter:M});if(q.length===0)return;if(J)O.onTransactions(q);else for(let w of q)O.onTransactions([w])}catch(q){O.onError?.(q)}},{emitOnBegin:!0,interval:G});return async()=>{if(M)await p($,AX,"uninstallFilter")({filter:M});N()}})})():(()=>{let V=!0,O=()=>V=!1;return(async()=>{try{let{unsubscribe:M}=await $.transport.subscribe({params:["newPendingTransactions"],onData(N){if(!V)return;let q=N.result;Y([q])},onError(N){Q?.(N)}});if(O=M,!V)O()}catch(M){Q?.(M)}})(),()=>O()})()}function ku($){let{scheme:J,statement:Q,...Y}=$.match(x9$)?.groups??{},{chainId:X,expirationTime:G,issuedAt:W,notBefore:D,requestId:U,...V}=$.match(f9$)?.groups??{},O=$.split("Resources:")[1]?.split(`
115
115
  - `).slice(1);return{...Y,...V,...X?{chainId:Number(X)}:{},...G?{expirationTime:new Date(G)}:{},...W?{issuedAt:new Date(W)}:{},...D?{notBefore:new Date(D)}:{},...U?{requestId:U}:{},...O?{resources:O}:{},...J?{scheme:J}:{},...Q?{statement:Q}:{}}}var x9$=/^(?:(?<scheme>[a-zA-Z][a-zA-Z0-9+-.]*):\/\/)?(?<domain>[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\n)(?<address>0x[a-fA-F0-9]{40})\n\n(?:(?<statement>.*)\n\n)?/,f9$=/(?:URI: (?<uri>.+))\n(?:Version: (?<version>.+))\n(?:Chain ID: (?<chainId>\d+))\n(?:Nonce: (?<nonce>[a-zA-Z0-9]+))\n(?:Issued At: (?<issuedAt>.+))(?:\nExpiration Time: (?<expirationTime>.+))?(?:\nNot Before: (?<notBefore>.+))?(?:\nRequest ID: (?<requestId>.+))?/;g1();E8();function xu($){let{address:J,domain:Q,message:Y,nonce:X,scheme:G,time:W=new Date}=$;if(Q&&Y.domain!==Q)return!1;if(X&&Y.nonce!==X)return!1;if(G&&Y.scheme!==G)return!1;if(Y.expirationTime&&W>=Y.expirationTime)return!1;if(Y.notBefore&&W<Y.notBefore)return!1;try{if(!Y.address)return!1;if(!X4(Y.address,{strict:!1}))return!1;if(J&&!d1(Y.address,J))return!1}catch{return!1}return!0}async function fu($,J){let{address:Q,domain:Y,message:X,nonce:G,scheme:W,signature:D,time:U=new Date,...V}=J,O=ku(X);if(!O.address)return!1;if(!xu({address:Q,domain:Y,message:O,nonce:G,scheme:W,time:U}))return!1;let N=P5(X);return LX($,{address:O.address,hash:N,signature:D,...V})}async function v5($,{serializedTransaction:J}){return $.request({method:"eth_sendRawTransaction",params:[J]},{retryCount:0})}u1();async function R5($,{serializedTransaction:J,throwOnReceiptRevert:Q,timeout:Y}){let X=await $.request({method:"eth_sendRawTransactionSync",params:Y?[J,y(Y)]:[J]},{retryCount:0}),W=($.chain?.formatters?.transactionReceipt?.format||tM)(X);if(W.status==="reverted"&&Q)throw new SW({receipt:W});return W}function bu($){return{call:(J)=>r0($,J),createAccessList:(J)=>TM($,J),createBlockFilter:()=>zy($),createContractEventFilter:(J)=>CM($,J),createEventFilter:(J)=>kM($,J),createPendingTransactionFilter:()=>xM($),estimateContractGas:(J)=>Mh($,J),estimateGas:(J)=>B5($,J),getBalance:(J)=>zh($,J),getBlobBaseFee:()=>Nh($),getBlock:(J)=>X6($,J),getBlockNumber:(J)=>s0($,J),getBlockTransactionCount:(J)=>wh($,J),getBytecode:(J)=>JD($,J),getChainId:()=>j6($),getCode:(J)=>JD($,J),getContractEvents:(J)=>rM($,J),getEip712Domain:(J)=>Ih($,J),getEnsAddress:(J)=>Yy($,J),getEnsAvatar:(J)=>Vy($,J),getEnsName:(J)=>Oy($,J),getEnsResolver:(J)=>My($,J),getEnsText:(J)=>RM($,J),getFeeHistory:(J)=>Bh($,J),estimateFeesPerGas:(J)=>Xh($,J),getFilterChanges:(J)=>HX($,J),getFilterLogs:(J)=>Zh($,J),getGasPrice:()=>H5($),getLogs:(J)=>F5($,J),getProof:(J)=>jh($,J),estimateMaxPriorityFeePerGas:(J)=>Qh($,J),fillTransaction:(J)=>L5($,J),getStorageAt:(J)=>Sh($,J),getTransaction:(J)=>j5($,J),getTransactionConfirmations:(J)=>_h($,J),getTransactionCount:(J)=>w5($,J),getTransactionReceipt:(J)=>S5($,J),multicall:(J)=>Eh($,J),prepareTransactionRequest:(J)=>a0($,J),readContract:(J)=>i4($,J),sendRawTransaction:(J)=>v5($,J),sendRawTransactionSync:(J)=>R5($,J),simulate:(J)=>QD($,J),simulateBlocks:(J)=>QD($,J),simulateCalls:(J)=>Ju($,J),simulateContract:(J)=>Qu($,J),verifyHash:(J)=>LX($,J),verifyMessage:(J)=>Bu($,J),verifySiweMessage:(J)=>fu($,J),verifyTypedData:(J)=>Eu($,J),uninstallFilter:(J)=>AX($,J),waitForTransactionReceipt:(J)=>Hz($,J),watchBlocks:(J)=>vu($,J),watchBlockNumber:(J)=>qz($,J),watchContractEvent:(J)=>Ru($,J),watchEvent:(J)=>Tu($,J),watchPendingTransactions:(J)=>Cu($,J)}}function OF($){let{key:J="public",name:Q="Public Client"}=$;return E3({...$,key:J,name:Q,type:"publicClient"}).extend(bu)}w$();async function gu($,{chain:J}){let{id:Q,name:Y,nativeCurrency:X,rpcUrls:G,blockExplorers:W}=J;await $.request({method:"wallet_addEthereumChain",params:[{chainId:y(Q),chainName:Y,nativeCurrency:X,rpcUrls:G.default.http,blockExplorerUrls:W?Object.values(W).map(({url:D})=>D):void 0}]},{dedupe:!0,retryCount:0})}SM();x$();class H6 extends R{constructor({docsPath:$}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join(`
116
116
  `),{docsPath:$,docsSlug:"account",name:"AccountNotFoundError"})}}class A0 extends R{constructor({docsPath:$,metaMessages:J,type:Q}){super(`Account type "${Q}" is not supported.`,{docsPath:$,metaMessages:J,name:"AccountTypeNotSupportedError"})}}x$();ZW();function T5({chain:$,currentChainId:J}){if(!$)throw new JB;if(J!==$.id)throw new $B({chain:$,currentChainId:J})}rJ();N8();o0();var MF=new q1(128);async function BX($,J){let{account:Q=$.account,assertChainId:Y=!0,chain:X=$.chain,accessList:G,authorizationList:W,blobs:D,data:U,dataSuffix:V=typeof $.dataSuffix==="string"?$.dataSuffix:$.dataSuffix?.value,gas:O,gasPrice:M,maxFeePerBlobGas:N,maxFeePerGas:q,maxPriorityFeePerGas:w,nonce:I,type:Z,value:L,..._}=J;if(typeof Q>"u")throw new H6({docsPath:"/docs/actions/wallet/sendTransaction"});let B=Q?_$(Q):null;try{Q6(J);let F=await(async()=>{if(J.to)return J.to;if(J.to===null)return;if(W&&W.length>0)return await NX({authorization:W[0]}).catch(()=>{throw new R("`to` is required. Could not infer from `authorizationList`.")});return})();if(B?.type==="json-rpc"||B===null){let S;if(X!==null){if(S=await p($,j6,"getChainId")({}),Y)T5({currentChainId:S,chain:X})}let v=$.chain?.formatters?.transactionRequest?.format,h=(v||Z6)({...n1(_,{format:v}),accessList:G,account:B,authorizationList:W,blobs:D,chainId:S,data:U?Z4([U,V??"0x"]):U,gas:O,gasPrice:M,maxFeePerBlobGas:N,maxFeePerGas:q,maxPriorityFeePerGas:w,nonce:I,to:F,type:Z,value:L},"sendTransaction"),o=MF.get($.uid),g=o?"wallet_sendTransaction":"eth_sendTransaction";try{return await $.request({method:g,params:[h]},{retryCount:0})}catch(Q$){if(o===!1)throw Q$;let t=Q$;if(t.name==="InvalidInputRpcError"||t.name==="InvalidParamsRpcError"||t.name==="MethodNotFoundRpcError"||t.name==="MethodNotSupportedRpcError")return await $.request({method:"wallet_sendTransaction",params:[h]},{retryCount:0}).then((K$)=>{return MF.set($.uid,!0),K$}).catch((K$)=>{let m=K$;if(m.name==="MethodNotFoundRpcError"||m.name==="MethodNotSupportedRpcError")throw MF.set($.uid,!1),t;throw m});throw t}}if(B?.type==="local"){let S=await p($,a0,"prepareTransactionRequest")({account:B,accessList:G,authorizationList:W,blobs:D,chain:X,data:U?Z4([U,V??"0x"]):U,gas:O,gasPrice:M,maxFeePerBlobGas:N,maxFeePerGas:q,maxPriorityFeePerGas:w,nonce:I,nonceManager:B.nonceManager,parameters:[...$D,"sidecars"],type:Z,value:L,..._,to:F}),v=X?.serializers?.transaction,k=await B.signTransaction(S,{serializer:v});return await p($,v5,"sendRawTransaction")({serializedTransaction:k})}if(B?.type==="smart")throw new A0({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"});throw new A0({docsPath:"/docs/actions/wallet/sendTransaction",type:B?.type})}catch(F){if(F instanceof A0)throw F;throw qX(F,{...J,account:B,chain:J.chain||void 0})}}function yu($,J){let{abi:Q,args:Y,bytecode:X,...G}=J,W=_8({abi:Q,args:Y,bytecode:X});return BX($,{...G,...G.authorizationList?{to:null}:{},data:W})}oQ();async function hu($){if($.account?.type==="local")return[$.account.address];return(await $.request({method:"eth_accounts"},{dedupe:!0})).map((Q)=>xJ(Q))}rQ();e4();x$();aY();w1();e4();w$();var zF="0x5792579257925792579257925792579257925792579257925792579257925792",NF=y(0,{size:32});async function wz($,J){let{account:Q=$.account,chain:Y=$.chain,experimental_fallback:X,experimental_fallbackDelay:G=32,forceAtomic:W=!1,id:D,version:U="2.0.0"}=J,V=Q?_$(Q):null,O=J.capabilities;if($.dataSuffix&&!J.capabilities?.dataSuffix)if(typeof $.dataSuffix==="string")O={...J.capabilities,dataSuffix:{value:$.dataSuffix,optional:!0}};else O={...J.capabilities,dataSuffix:{value:$.dataSuffix.value,...$.dataSuffix.required?{}:{optional:!0}}};let M=J.calls.map((N)=>{let q=N,w=q.abi?S4({abi:q.abi,functionName:q.functionName,args:q.args}):q.data;return{data:q.dataSuffix&&w?Z4([w,q.dataSuffix]):w,to:q.to,value:q.value?y(q.value):void 0}});try{let N=await $.request({method:"wallet_sendCalls",params:[{atomicRequired:W,calls:M,capabilities:O,chainId:y(Y.id),from:V?.address,id:D,version:U}]},{retryCount:0});if(typeof N==="string")return{id:N};return N}catch(N){let q=N;if(X&&(q.name==="MethodNotFoundRpcError"||q.name==="MethodNotSupportedRpcError"||q.name==="UnknownRpcError"||q.details.toLowerCase().includes("does not exist / is not available")||q.details.toLowerCase().includes("missing or invalid. request()")||q.details.toLowerCase().includes("did not match any variant of untagged enum")||q.details.toLowerCase().includes("account upgraded to unsupported contract")||q.details.toLowerCase().includes("eip-7702 not supported")||q.details.toLowerCase().includes("unsupported wc_ method")||q.details.toLowerCase().includes("feature toggled misconfigured")||q.details.toLowerCase().includes("jsonrpcengine: response has no error or result for request"))){if(O){if(Object.values(O).some((_)=>!_.optional))throw new QX(new R("non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.",{details:"non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`."}))}if(W&&M.length>1)throw new XX(new R("`forceAtomic` is not supported on fallback to `eth_sendTransaction`.",{details:"`forceAtomic` is not supported on fallback to `eth_sendTransaction`."}));let w=[];for(let L of M){let _=BX($,{account:V,chain:Y,data:L.data,to:L.to,value:L.value?g4(L.value):void 0});if(w.push(_),G>0)await new Promise((B)=>setTimeout(B,G))}let I=await Promise.allSettled(w);if(I.every((L)=>L.status==="rejected"))throw I[0].reason;let Z=I.map((L)=>{if(L.status==="fulfilled")return L.value;return NF});return{id:Z4([...Z,y(Y.id,{size:32}),zF])}}throw qX(N,{...J,account:V,chain:J.chain})}}async function Az($,J){async function Q(O){if(O.endsWith(zF.slice(2))){let N=s4(o3(O,-64,-32)),q=o3(O,0,-64).slice(2).match(/.{1,64}/g),w=await Promise.all(q.map((Z)=>NF.slice(2)!==Z?$.request({method:"eth_getTransactionReceipt",params:[`0x${Z}`]},{dedupe:!0}):void 0)),I=(()=>{if(w.some((Z)=>Z===null))return 100;if(w.every((Z)=>Z?.status==="0x1"))return 200;if(w.every((Z)=>Z?.status==="0x0"))return 500;return 600})();return{atomic:!1,chainId:C4(N),receipts:w.filter(Boolean),status:I,version:"2.0.0"}}return $.request({method:"wallet_getCallsStatus",params:[O]})}let{atomic:Y=!1,chainId:X,receipts:G,version:W="2.0.0",...D}=await Q(J.id),[U,V]=(()=>{let O=D.status;if(O>=100&&O<200)return["pending",O];if(O>=200&&O<300)return["success",O];if(O>=300&&O<700)return["failure",O];if(O==="CONFIRMED")return["success",200];if(O==="PENDING")return["pending",100];return[void 0,O]})();return{...D,atomic:Y,chainId:X?C4(X):void 0,receipts:G?.map((O)=>({...O,blockNumber:g4(O.blockNumber),gasUsed:g4(O.gasUsed),status:kZ[O.status]}))??[],statusCode:V,status:U,version:W}}w$();async function uu($,J={}){let{account:Q=$.account,chainId:Y}=J,X=Q?_$(Q):void 0,G=Y?[X?.address,[y(Y)]]:[X?.address],W=await $.request({method:"wallet_getCapabilities",params:G}),D={};for(let[U,V]of Object.entries(W)){D[Number(U)]={};for(let[O,M]of Object.entries(V)){if(O==="addSubAccount")O="unstable_addSubAccount";D[Number(U)][O]=M}}return typeof Y==="number"?D[Y]:D}async function mu($){return await $.request({method:"wallet_getPermissions"},{dedupe:!0})}E8();async function Iz($,J){let{account:Q=$.account,chainId:Y,nonce:X}=J;if(!Q)throw new H6({docsPath:"/docs/eip7702/prepareAuthorization"});let G=_$(Q),W=(()=>{if(!J.executor)return;if(J.executor==="self")return J.executor;return _$(J.executor)})(),D={address:J.contractAddress??J.address,chainId:Y,nonce:X};if(typeof D.chainId>"u")D.chainId=$.chain?.id??await p($,j6,"getChainId")({});if(typeof D.nonce>"u"){if(D.nonce=await p($,w5,"getTransactionCount")({address:G.address,blockTag:"pending"}),W==="self"||W?.address&&d1(W.address,G.address))D.nonce+=1}return D}oQ();async function lu($){return(await $.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map((Q)=>wY(Q))}async function nu($,J){return $.request({method:"wallet_requestPermissions",params:[J]},{retryCount:0})}x$();x$();class qF extends R{constructor($){super(`Call bundle failed with status: ${$.statusCode}`,{name:"BundleFailedError"});Object.defineProperty(this,"result",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.result=$}}async function Lz($,J){let{id:Q,pollingInterval:Y=$.pollingInterval,status:X=({statusCode:I})=>I===200||I>=300,retryCount:G=4,retryDelay:W=({count:I})=>~~(1<<I)*200,timeout:D=60000,throwOnFailure:U=!1}=J,V=i$(["waitForCallsStatus",$.uid,Q]),{promise:O,resolve:M,reject:N}=U5(),q,w=_6(V,{resolve:M,reject:N},(I)=>{let Z=p1(async()=>{let L=(_)=>{clearTimeout(q),Z(),_(),w()};try{let _=await y8(async()=>{let B=await p($,Az,"getCallsStatus")({id:Q});if(U&&B.status==="failure")throw new qF(B);return B},{retryCount:G,delay:W});if(!X(_))return;L(()=>I.resolve(_))}catch(_){L(()=>I.reject(_))}},{interval:Y,emitOnBegin:!0});return Z});return q=D?setTimeout(()=>{w(),clearTimeout(q),N(new du({id:Q}))},D):void 0,await O}class du extends R{constructor({id:$}){super(`Timed out while waiting for call bundle with id "${$}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}}async function pu($,J){let{chain:Q=$.chain}=J,Y=J.timeout??Math.max((Q?.blockTime??0)*3,5000),X=await p($,wz,"sendCalls")(J);return await p($,Lz,"waitForCallsStatus")({...J,id:X.id,timeout:Y})}x$();u1();rJ();N8();o0();var HF=new q1(128);async function Bz($,J){let{account:Q=$.account,assertChainId:Y=!0,chain:X=$.chain,accessList:G,authorizationList:W,blobs:D,data:U,dataSuffix:V=typeof $.dataSuffix==="string"?$.dataSuffix:$.dataSuffix?.value,gas:O,gasPrice:M,maxFeePerBlobGas:N,maxFeePerGas:q,maxPriorityFeePerGas:w,nonce:I,pollingInterval:Z,throwOnReceiptRevert:L,type:_,value:B,...F}=J,S=J.timeout??Math.max((X?.blockTime??0)*3,5000);if(typeof Q>"u")throw new H6({docsPath:"/docs/actions/wallet/sendTransactionSync"});let v=Q?_$(Q):null;try{Q6(J);let k=await(async()=>{if(J.to)return J.to;if(J.to===null)return;if(W&&W.length>0)return await NX({authorization:W[0]}).catch(()=>{throw new R("`to` is required. Could not infer from `authorizationList`.")});return})();if(v?.type==="json-rpc"||v===null){let h;if(X!==null){if(h=await p($,j6,"getChainId")({}),Y)T5({currentChainId:h,chain:X})}let o=$.chain?.formatters?.transactionRequest?.format,Q$=(o||Z6)({...n1(F,{format:o}),accessList:G,account:v,authorizationList:W,blobs:D,chainId:h,data:U?Z4([U,V??"0x"]):U,gas:O,gasPrice:M,maxFeePerBlobGas:N,maxFeePerGas:q,maxPriorityFeePerGas:w,nonce:I,to:k,type:_,value:B},"sendTransaction"),t=HF.get($.uid),K$=t?"wallet_sendTransaction":"eth_sendTransaction",m=await(async()=>{try{return await $.request({method:K$,params:[Q$]},{retryCount:0})}catch(u){if(t===!1)throw u;let d=u;if(d.name==="InvalidInputRpcError"||d.name==="InvalidParamsRpcError"||d.name==="MethodNotFoundRpcError"||d.name==="MethodNotSupportedRpcError")return await $.request({method:"wallet_sendTransaction",params:[Q$]},{retryCount:0}).then((b)=>{return HF.set($.uid,!0),b}).catch((b)=>{let i=b;if(i.name==="MethodNotFoundRpcError"||i.name==="MethodNotSupportedRpcError")throw HF.set($.uid,!1),d;throw i});throw d}})(),T=await p($,Hz,"waitForTransactionReceipt")({checkReplacement:!1,hash:m,pollingInterval:Z,timeout:S});if(L&&T.status==="reverted")throw new SW({receipt:T});return T}if(v?.type==="local"){let h=await p($,a0,"prepareTransactionRequest")({account:v,accessList:G,authorizationList:W,blobs:D,chain:X,data:U?Z4([U,V??"0x"]):U,gas:O,gasPrice:M,maxFeePerBlobGas:N,maxFeePerGas:q,maxPriorityFeePerGas:w,nonce:I,nonceManager:v.nonceManager,parameters:[...$D,"sidecars"],type:_,value:B,...F,to:k}),o=X?.serializers?.transaction,g=await v.signTransaction(h,{serializer:o});return await p($,R5,"sendRawTransactionSync")({serializedTransaction:g,throwOnReceiptRevert:L,timeout:J.timeout})}if(v?.type==="smart")throw new A0({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"});throw new A0({docsPath:"/docs/actions/wallet/sendTransactionSync",type:v?.type})}catch(k){if(k instanceof A0)throw k;throw qX(k,{...J,account:v,chain:J.chain||void 0})}}async function iu($,J){let{id:Q}=J;await $.request({method:"wallet_showCallsStatus",params:[Q]});return}async function cu($,J){let{account:Q=$.account}=J;if(!Q)throw new H6({docsPath:"/docs/eip7702/signAuthorization"});let Y=_$(Q);if(!Y.signAuthorization)throw new A0({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:Y.type});let X=await Iz($,J);return Y.signAuthorization(X)}w$();async function ou($,{account:J=$.account,message:Q}){if(!J)throw new H6({docsPath:"/docs/actions/wallet/signMessage"});let Y=_$(J);if(Y.signMessage)return Y.signMessage({message:Q});let X=(()=>{if(typeof Q==="string")return V0(Q);if(Q.raw instanceof Uint8Array)return P4(Q.raw);return Q.raw})();return $.request({method:"personal_sign",params:[X,Y.address]},{retryCount:0})}w$();rJ();o0();async function ru($,J){let{account:Q=$.account,chain:Y=$.chain,...X}=J;if(!Q)throw new H6({docsPath:"/docs/actions/wallet/signTransaction"});let G=_$(Q);Q6({account:G,...J});let W=await p($,j6,"getChainId")({});if(Y!==null)T5({currentChainId:W,chain:Y});let U=(Y?.formatters||$.chain?.formatters)?.transactionRequest?.format||Z6;if(G.signTransaction)return G.signTransaction({...X,chainId:W},{serializer:$.chain?.serializers?.transaction});return await $.request({method:"eth_signTransaction",params:[{...U({...X,account:G},"signTransaction"),chainId:y(W),from:G.address}]},{retryCount:0})}async function tu($,J){let{account:Q=$.account,domain:Y,message:X,primaryType:G}=J;if(!Q)throw new H6({docsPath:"/docs/actions/wallet/signTypedData"});let W=_$(Q),D={EIP712Domain:zz({domain:Y}),...J.types};if(Mz({domain:Y,message:X,primaryType:G,types:D}),W.signTypedData)return W.signTypedData({domain:Y,message:X,primaryType:G,types:D});let U=Zu({domain:Y,message:X,primaryType:G,types:D});return $.request({method:"eth_signTypedData_v4",params:[W.address,U]},{retryCount:0})}w$();async function au($,{id:J}){await $.request({method:"wallet_switchEthereumChain",params:[{chainId:y(J)}]},{retryCount:0})}async function su($,J){return await $.request({method:"wallet_watchAsset",params:J},{retryCount:0})}w1();async function h8($,J){return h8.internal($,BX,"sendTransaction",J)}(function($){async function J(Q,Y,X,G){let{abi:W,account:D=Q.account,address:U,args:V,functionName:O,...M}=G;if(typeof D>"u")throw new H6({docsPath:"/docs/contract/writeContract"});let N=D?_$(D):null,q=S4({abi:W,args:V,functionName:O});try{return await p(Q,Y,X)({data:q,to:U,account:N,...M})}catch(w){throw A1(w,{abi:W,address:U,args:V,docsPath:"/docs/contract/writeContract",functionName:O,sender:N?.address})}}$.internal=J})(h8||(h8={}));async function eu($,J){return h8.internal($,Bz,"sendTransactionSync",J)}function $m($){return{addChain:(J)=>gu($,J),deployContract:(J)=>yu($,J),fillTransaction:(J)=>L5($,J),getAddresses:()=>hu($),getCallsStatus:(J)=>Az($,J),getCapabilities:(J)=>uu($,J),getChainId:()=>j6($),getPermissions:()=>mu($),prepareAuthorization:(J)=>Iz($,J),prepareTransactionRequest:(J)=>a0($,J),requestAddresses:()=>lu($),requestPermissions:(J)=>nu($,J),sendCalls:(J)=>wz($,J),sendCallsSync:(J)=>pu($,J),sendRawTransaction:(J)=>v5($,J),sendRawTransactionSync:(J)=>R5($,J),sendTransaction:(J)=>BX($,J),sendTransactionSync:(J)=>Bz($,J),showCallsStatus:(J)=>iu($,J),signAuthorization:(J)=>cu($,J),signMessage:(J)=>ou($,J),signTransaction:(J)=>ru($,J),signTypedData:(J)=>tu($,J),switchChain:(J)=>au($,J),waitForCallsStatus:(J)=>Lz($,J),watchAsset:(J)=>su($,J),writeContract:(J)=>h8($,J),writeContractSync:(J)=>eu($,J)}}function wF($){let{key:J="wallet",name:Q="Wallet Client",transport:Y}=$;return E3({...$,key:J,name:Q,transport:Y,type:"walletClient"}).extend($m)}L8();x$();class AF extends R{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}}dB();L8();function Jm($,{errorInstance:J=Error("timed out"),timeout:Q,signal:Y}){return new Promise((X,G)=>{(async()=>{let W;try{let D=new AbortController;if(Q>0)W=setTimeout(()=>{if(Y)D.abort();else G(J)},Q);X(await $({signal:D?.signal||null}))}catch(D){if(D?.name==="AbortError")G(J);G(D)}finally{clearTimeout(W)}})()})}function b9$(){return{current:0,take(){return this.current++},reset(){this.current=0}}}var IF=b9$();function Qm($,J={}){let{url:Q,headers:Y}=g9$($);return{async request(X){let{body:G,fetchFn:W=J.fetchFn??fetch,onRequest:D=J.onRequest,onResponse:U=J.onResponse,timeout:V=J.timeout??1e4}=X,O={...J.fetchOptions??{},...X.fetchOptions??{}},{headers:M,method:N,signal:q}=O;try{let w=await Jm(async({signal:Z})=>{let L={...O,body:Array.isArray(G)?i$(G.map((S)=>({jsonrpc:"2.0",id:S.id??IF.take(),...S}))):i$({jsonrpc:"2.0",id:G.id??IF.take(),...G}),headers:{...Y,"Content-Type":"application/json",...M},method:N||"POST",signal:q||(V>0?Z:null)},_=new Request(Q,L),B=await D?.(_,L)??{...L,url:Q};return await W(B.url??Q,B)},{errorInstance:new qM({body:G,url:Q}),timeout:V,signal:!0});if(U)await U(w);let I;if(w.headers.get("Content-Type")?.startsWith("application/json"))I=await w.json();else{I=await w.text();try{I=JSON.parse(I||"{}")}catch(Z){if(w.ok)throw Z;I={error:I}}}if(!w.ok)throw new N0({body:G,details:i$(I.error)||w.statusText,headers:w.headers,status:w.status,url:Q});return I}catch(w){if(w instanceof N0)throw w;if(w instanceof qM)throw w;throw new N0({body:G,cause:w,url:Q})}}}}function g9$($){try{let J=new URL($),Q=(()=>{if(J.username){let Y=`${decodeURIComponent(J.username)}:${decodeURIComponent(J.password)}`;return J.username="",J.password="",{url:J.toString(),headers:{Authorization:`Basic ${btoa(Y)}`}}}return})();return{url:J.toString(),...Q}}catch{return{url:$}}}x$();L8();aY();w$();N8();var Zz=new q1(8192);function Xm($,{enabled:J=!0,id:Q}){if(!J||!Q)return $();if(Zz.get(Q))return Zz.get(Q);let Y=$().finally(()=>Zz.delete(Q));return Zz.set(Q,Y),Y}function Ym($,J={}){return async(Q,Y={})=>{let{dedupe:X=!1,methods:G,retryDelay:W=150,retryCount:D=3,uid:U}={...J,...Y},{method:V}=Q;if(G?.exclude?.includes(V))throw new JX(Error("method not supported"),{method:V});if(G?.include&&!G.include.includes(V))throw new JX(Error("method not supported"),{method:V});let O=X?V0(`${U}.${i$(Q)}`):void 0;return Xm(()=>y8(async()=>{try{return await $(Q)}catch(M){let N=M;switch(N.code){case CY.code:throw new CY(N);case kY.code:throw new kY(N);case xY.code:throw new xY(N,{method:Q.method});case fY.code:throw new fY(N);case mJ.code:throw new mJ(N);case m1.code:throw new m1(N);case bY.code:throw new bY(N);case gY.code:throw new gY(N);case yY.code:throw new yY(N);case JX.code:throw new JX(N,{method:Q.method});case B8.code:throw new B8(N);case hY.code:throw new hY(N);case Z8.code:throw new Z8(N);case uY.code:throw new uY(N);case mY.code:throw new mY(N);case lY.code:throw new lY(N);case nY.code:throw new nY(N);case dY.code:throw new dY(N);case QX.code:throw new QX(N);case pY.code:throw new pY(N);case iY.code:throw new iY(N);case cY.code:throw new cY(N);case oY.code:throw new oY(N);case rY.code:throw new rY(N);case XX.code:throw new XX(N);case 5000:throw new Z8(N);case tY.code:throw new tY(N);default:if(M instanceof R)throw M;throw new IB(N)}}},{delay:({count:M,error:N})=>{if(N&&N instanceof N0){let q=N?.headers?.get("Retry-After");if(q?.match(/\d/))return Number.parseInt(q,10)*1000}return~~(1<<M)*W},retryCount:D,shouldRetry:({error:M})=>y9$(M)}),{enabled:X,id:O})}}function y9$($){if("code"in $&&typeof $.code==="number"){if($.code===-1)return!0;if($.code===B8.code)return!0;if($.code===mJ.code)return!0;return!1}if($ instanceof N0&&$.status){if($.status===403)return!0;if($.status===408)return!0;if($.status===413)return!0;if($.status===429)return!0;if($.status===500)return!0;if($.status===502)return!0;if($.status===503)return!0;if($.status===504)return!0;return!1}return!0}function Gm({key:$,methods:J,name:Q,request:Y,retryCount:X=3,retryDelay:G=150,timeout:W,type:D},U){let V=_3();return{config:{key:$,methods:J,name:Q,request:Y,retryCount:X,retryDelay:G,timeout:W,type:D},request:Ym(Y,{methods:J,retryCount:X,retryDelay:G,uid:V}),value:U}}function OD($,J={}){let{batch:Q,fetchFn:Y,fetchOptions:X,key:G="http",methods:W,name:D="HTTP JSON-RPC",onFetchRequest:U,onFetchResponse:V,retryDelay:O,raw:M}=J;return({chain:N,retryCount:q,timeout:w})=>{let{batchSize:I=1000,wait:Z=0}=typeof Q==="object"?Q:{},L=J.retryCount??q,_=w??J.timeout??1e4,B=$||N?.rpcUrls.default.http[0];if(!B)throw new AF;let F=Qm(B,{fetchFn:Y,fetchOptions:X,onRequest:U,onResponse:V,timeout:_});return Gm({key:G,methods:W,name:D,async request({method:S,params:v}){let k={method:S,params:v},{schedule:h}=EM({id:B,wait:Z,shouldSplitBatch(t){return t.length>I},fn:(t)=>F.request({body:t}),sort:(t,K$)=>t.id-K$.id}),o=async(t)=>Q?h(t):[await F.request({body:t})],[{error:g,result:Q$}]=await o(k);if(M)return{error:g,result:Q$};if(g)throw new I8({body:k,error:g,url:B});return Q$},retryCount:L,retryDelay:O,timeout:_,type:"http"},{fetchOptions:X,url:B})}}PJ();function Fz($){let J={formatters:void 0,fees:void 0,serializers:void 0,...$};function Q(Y){return(X)=>{let G=typeof X==="function"?X(Y):X,W={...Y,...G};return Object.assign(W,{extend:Q(W)})}}return Object.assign(J,{extend:Q(J)})}var MD=Fz({id:1329,name:"Sei Network",nativeCurrency:{name:"Sei",symbol:"SEI",decimals:18},rpcUrls:{default:{http:["https://evm-rpc.sei-apis.com/"],webSocket:["wss://evm-ws.sei-apis.com/"]}},blockExplorers:{default:{name:"Seitrace",url:"https://seitrace.com",apiUrl:"https://seitrace.com/pacific-1/api"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11"}}});var zD=Fz({id:1328,name:"Sei Testnet",nativeCurrency:{name:"Sei",symbol:"SEI",decimals:18},rpcUrls:{default:{http:["https://evm-rpc-testnet.sei-apis.com"],webSocket:["wss://evm-ws-testnet.sei-apis.com"]}},blockExplorers:{default:{name:"Seitrace",url:"https://seitrace.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:98697651}},testnet:!0});var Wm=S1(F3(),1);class x4{apiUrl;accessToken;retryOptions;constructor($,J){this.apiUrl=$,this.retryOptions={maxRetries:J?.maxRetries??3,baseDelayMs:J?.baseDelayMs??1000}}setAccessToken($){this.accessToken=$}getAccessToken(){return this.accessToken}parseRequestBody($){if(!$)return;if(typeof $==="string")try{return JSON.parse($)}catch{return $}if($ instanceof FormData){let J={};return $.forEach((Q,Y)=>{J[Y]=Q instanceof File?`[File: ${Q.name}]`:Q}),J}if($ instanceof URLSearchParams){let J={};return $.forEach((Q,Y)=>{J[Y]=Q}),J}if($ instanceof Blob)return{type:"[Blob]",size:$.size,contentType:$.type};if($ instanceof ArrayBuffer||ArrayBuffer.isView($))return{type:"[ArrayBuffer]",size:$ instanceof ArrayBuffer?$.byteLength:$.byteLength};if(typeof ReadableStream<"u"&&$ instanceof ReadableStream)return{type:"[ReadableStream]",note:"Stream body not captured for logging"};return{type:"[Unknown]",bodyType:typeof $}}extractResponseMetadata($){if(!$)return{};let J=$.get("x-request-id")||$.get("request-id")||$.get("x-correlation-id")||void 0,Q=$.get("retry-after"),Y;if(Q!==null){let X=Number.parseInt(Q,10);Y=Number.isNaN(X)?void 0:X}return{requestId:J,retryAfter:Y}}async executeRequest($,J,Q,Y){let X;try{X=await fetch($,Q)}catch(U){throw new f6(`Network request failed for ${J}`,{endpoint:$,cause:U instanceof Error?U:Error(String(U)),requestBody:Y})}let G,W=X.headers?.get("content-type")||"unknown",D=X.clone?X.clone():X;try{G=await X.json()}catch(U){let V;try{V=await D.text()}catch{V="[Unable to read response body]"}if(!X.ok){let O=`API request failed: ${X.status}. Response is not JSON (Content-Type: ${W})`,{requestId:M,retryAfter:N}=this.extractResponseMetadata(X.headers);throw new f6(O,{endpoint:$,statusCode:X.status,responseBody:{rawResponse:V.substring(0,500),contentType:W,parseError:U instanceof Error?U.message:String(U)},cause:U instanceof Error?U:void 0,requestBody:Y,requestId:M,retryAfter:N})}throw new f6(`Expected JSON response but received ${W}`,{endpoint:$,statusCode:X.status,responseBody:{rawResponse:V.substring(0,500),contentType:W},cause:U instanceof Error?U:void 0,requestBody:Y})}if(!X.ok){let U=G!==null&&typeof G==="object"?G:void 0,V=(typeof U?.message==="string"?U.message:void 0)||(typeof U?.error==="string"?U.error:void 0)||`API request failed: ${X.status}`,{requestId:O,retryAfter:M}=this.extractResponseMetadata(X.headers);throw new f6(V,{endpoint:$,statusCode:X.status,responseBody:G,requestBody:Y,requestId:O,retryAfter:M})}return G}async makeAuthenticatedRequest($,J={}){if(!this.accessToken)throw new f6("Access token not set. Call setAccessToken() first.",{endpoint:`${this.apiUrl}${$}`,statusCode:Wm.StatusCodes.UNAUTHORIZED});let Q=`${this.apiUrl}${$}`,Y=this.parseRequestBody(J.body);return this.executeRequest(Q,$,{...J,headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.accessToken}`,...J.headers}},Y)}async makePublicRequest($,J={}){let Q=`${this.apiUrl}${$}`,Y=this.parseRequestBody(J.body);return this.executeRequest(Q,$,{...J,headers:{"Content-Type":"application/json",...J.headers}},Y)}}class jz extends x4{async getApplicationConfig(){let $=await this.makeAuthenticatedRequest("/api/v1/applications/config",{method:"GET"});return{id:$.id,name:$.name,allowedOrigins:$.allowed_origins,webhookUrl:$.webhook_url,vaultContractAddress:$.vault_contract_address}}}var LF=A.object({trading_pair_id:A.string().trim().min(1,"Trading pair ID is required and cannot be empty"),side:A.enum(["BUY","SELL"],{message:"Order side is required and must be either 'BUY' or 'SELL'"}),price:A.string().trim().min(1,"Price is required and cannot be empty").refine(($)=>!Number.isNaN(Number($)),"Price must be a valid number").refine(($)=>Number($)>0,"Price must be greater than 0"),quantity:A.string().trim().min(1,"Quantity is required and cannot be empty").refine(($)=>!Number.isNaN(Number($)),"Quantity must be a valid number").refine(($)=>Number($)>0,"Quantity must be greater than 0"),order_type:A.enum(["LIMIT","MARKET"]).optional(),slippage_tolerance_bps:A.number().int().min(0,"Slippage tolerance must be between 0 and 1000 bps").max(1000,"Slippage tolerance must be between 0 and 1000 bps").optional()}).superRefine(($,J)=>{if($.slippage_tolerance_bps!==void 0&&$.order_type!=="MARKET")J.addIssue({code:A.ZodIssueCode.custom,message:"slippage_tolerance_bps is only valid when order_type is MARKET",path:["slippage_tolerance_bps"]})}),h9$=A.object({application_name:A.string().nullable().optional(),application_taker_fee:A.string(),application_taker_fee_bps:A.number(),buy_order_lock_amount:A.string().nullable().optional(),maker_total_receipt:A.string(),monaco_maker_rebate:A.string(),monaco_maker_rebate_bps:A.number(),monaco_taker_fee:A.string(),monaco_taker_fee_bps:A.number(),notional:A.string(),taker_total_payment:A.string(),total_taker_fees:A.string(),max_quantity:A.string().nullable(),max_quantity_raw:A.string().nullable(),slippage_tolerance_bps:A.number().nullable()});var BF=["SUBMITTED","PARTIALLY_FILLED","FILLED","SETTLED_ON_CHAIN","SETTLED","CANCELLED","REJECTED","EXPIRED"];class Dm extends Error{issues;constructor($){let J=$.issues.map((Q)=>{let Y=Q.path.join(".");return`${Y?`${Y}: `:""}${Q.message}`});super(`Validation failed:
117
117
  - ${J.join(`
118
- - `)}`);this.name="ValidationError",this.issues=$.issues}getErrors(){let $={};for(let J of this.issues){let Q=J.path.join(".");$[Q||"root"]=J.message}return $}}function F$($,J){let Q=$.safeParse(J);if(!Q.success)throw new Dm(Q.error);return Q.data}var C5=A.enum(["BUY","SELL"],{message:'Order side must be "BUY" or "SELL"'}),Sz=A.enum(["SPOT","MARGIN"],{message:'Trading mode must be "SPOT" or "MARGIN"'}),ND=A.enum(["LONG","SHORT","NONE"],{message:'Position side must be "LONG", "SHORT", or "NONE"'}),Um=A.enum(["GTC","IOC","FOK"],{message:'Time in force must be "GTC", "IOC", or "FOK"'}),ZF=A.enum(["GTC","IOC"],{message:'Conditional order time in force must be "GTC" or "IOC"'}),z4=A.string().trim().min(1,"Value cannot be empty").regex(/^\d+(\.\d+)?$/,"Value must be a positive decimal number (e.g., '1.5', '100')").refine(($)=>Number.parseFloat($)>0,{message:"Value must be greater than 0"}),f$=A.uuid({message:"Must be a valid UUID (e.g., '123e4567-e89b-12d3-a456-426614174000')"}),qD=A.iso.datetime({message:"Must be a valid ISO 8601 date string (e.g., '2024-12-31T23:59:59Z')"}),Km=A.number().min(0,"Slippage tolerance must be at least 0 (no slippage)").max(1,"Slippage tolerance cannot exceed 1 (100%)").optional(),Vm=A.object({tradingPairId:f$,side:C5,quantity:z4,price:z4,options:A.object({tradingMode:Sz.optional(),useMasterBalance:A.boolean().optional(),expirationDate:qD.optional(),timeInForce:Um.optional(),marginAccountId:f$.optional(),positionSide:ND.optional(),leverage:z4.optional(),reduceOnly:A.boolean().optional()}).optional()}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.marginAccountId!==void 0,{message:"marginAccountId is required for MARGIN orders",path:["options","marginAccountId"]}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.positionSide!==void 0,{message:"positionSide is required for MARGIN orders",path:["options","positionSide"]}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.leverage!==void 0,{message:"leverage is required for MARGIN orders",path:["options","leverage"]}),Om=A.object({tradingPairId:f$,side:C5,quantity:z4,options:A.object({tradingMode:Sz.optional(),slippageTolerance:Km,marginAccountId:f$.optional(),positionSide:ND.optional(),leverage:z4.optional(),reduceOnly:A.boolean().optional()}).optional()}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.marginAccountId!==void 0,{message:"marginAccountId is required for MARGIN orders",path:["options","marginAccountId"]}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.positionSide!==void 0,{message:"positionSide is required for MARGIN orders",path:["options","positionSide"]}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.leverage!==void 0,{message:"leverage is required for MARGIN orders",path:["options","leverage"]}),Mm=A.object({orderId:f$}),zm=A.object({orderId:f$,newOrder:A.object({price:z4.optional(),quantity:z4.optional(),useMasterBalance:A.boolean().optional()})}),Nm=A.object({status:A.enum(BF).optional(),trading_pair_id:f$.optional(),trading_mode:Sz.optional(),margin_account_id:f$.optional(),page:A.number().int().min(1,"Page must be at least 1").optional(),page_size:A.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),k5=A.enum(["LIMIT","MARKET"],{message:'Order type must be "LIMIT" or "MARKET"'}),u9$=A.enum(["STOP_LOSS","TAKE_PROFIT"],{message:'conditionType must be "STOP_LOSS" or "TAKE_PROFIT"'}),m9$=A.enum(["MARK_PRICE"],{message:'triggerSource must be "MARK_PRICE"'}),l9$=A.enum(["ACTIVE","TRIGGERING","TRIGGERED","CANCELLED","EXPIRED","FAILED"],{message:"Invalid conditional order state"}),n9$=A.enum(["LONG","SHORT"],{message:'Position side must be "LONG" or "SHORT"'}),_z=A.number().int().min(0,"Slippage tolerance must be at least 0 bps").max(1e4,"Slippage tolerance cannot exceed 10000 bps"),qm=A.object({tradingPairId:f$,marginAccountId:f$,conditionType:u9$,triggerPrice:z4,triggerSource:m9$.optional(),side:C5,positionSide:n9$,orderType:k5,limitPrice:z4.optional(),quantity:z4.optional(),reduceOnly:A.boolean().optional(),timeInForce:ZF.optional(),slippageToleranceBps:_z.optional(),expiresAt:qD.optional()}).refine(($)=>$.orderType!=="LIMIT"||$.limitPrice!==void 0,{message:"limitPrice is required for LIMIT conditional orders",path:["limitPrice"]}).refine(($)=>$.orderType!=="MARKET"||$.limitPrice===void 0,{message:"limitPrice must not be provided for MARKET conditional orders",path:["limitPrice"]}).refine(($)=>$.orderType!=="MARKET"||$.timeInForce===void 0,{message:"timeInForce is only allowed for LIMIT conditional orders",path:["timeInForce"]}).refine(($)=>$.orderType!=="LIMIT"||$.slippageToleranceBps===void 0,{message:"slippageToleranceBps is only allowed for MARKET conditional orders",path:["slippageToleranceBps"]}),Hm=A.object({conditionalOrderId:f$}),wm=A.object({margin_account_id:f$.optional(),trading_pair_id:f$.optional(),state:l9$.optional(),page:A.number().int().min(1,"Page must be at least 1").optional(),page_size:A.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),d9$=A.object({tradingPairId:f$,orderType:k5,side:C5,price:z4.optional(),quantity:z4,tradingMode:Sz.optional(),slippageTolerance:Km,useMasterBalance:A.boolean().optional(),expirationDate:qD.optional(),timeInForce:Um.optional(),marginAccountId:f$.optional(),positionSide:ND.optional(),leverage:z4.optional(),reduceOnly:A.boolean().optional()}).refine(($)=>$.orderType!=="LIMIT"||$.price!==void 0,{message:"Price is required for LIMIT orders",path:["price"]}).refine(($)=>$.orderType!=="MARKET"||$.price===void 0,{message:"Price must not be provided for MARKET orders",path:["price"]}).refine(($)=>$.tradingMode!=="MARGIN"||$.marginAccountId!==void 0,{message:"marginAccountId is required for MARGIN orders",path:["marginAccountId"]}).refine(($)=>$.tradingMode!=="MARGIN"||$.positionSide!==void 0,{message:"positionSide is required for MARGIN orders",path:["positionSide"]}).refine(($)=>$.tradingMode!=="MARGIN"||$.leverage!==void 0,{message:"leverage is required for MARGIN orders",path:["leverage"]}),Am=A.object({orders:A.array(d9$).min(1,"At least one order is required")}),p9$=A.object({orderId:f$,price:z4.optional(),quantity:z4.optional(),useMasterBalance:A.boolean().optional()}).refine(($)=>$.price!==void 0||$.quantity!==void 0,{message:"At least one of price or quantity must be provided"}),Im=A.object({orders:A.array(p9$).min(1,"At least one order is required")});var Lm=A.object({page:A.number().int().min(1,"Page must be at least 1").optional(),page_size:A.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),Bm=Lm.extend({state:A.string().trim().min(1,"State cannot be empty").optional()}),Zm=A.object({label:A.string().trim().min(1,"Label cannot be empty").optional(),collateralAsset:A.string().trim().min(1,"Collateral asset cannot be empty").optional()}).optional(),Fm=A.object({marginAccountId:f$}),jm=A.object({asset:A.string().trim().min(1,"Asset cannot be empty").optional()}).optional(),FF=A.object({marginAccountId:f$,request:A.object({asset:A.string().trim().min(1,"Asset cannot be empty"),amount:z4})}),Sm=Lm.extend({marginAccountId:f$,movement_type:A.string().trim().min(1,"Movement type cannot be empty").optional()}),_m=A.object({marginAccountId:f$,request:A.object({tradingPairId:f$,side:C5,positionSide:ND,orderType:k5,price:z4.optional(),quantity:z4,leverage:z4,reduceOnly:A.boolean().optional()})}).refine(($)=>$.request.orderType!=="LIMIT"||$.request.price!==void 0,{message:"price is required for LIMIT risk simulations",path:["request","price"]}).refine(($)=>$.request.orderType!=="MARKET"||$.request.price===void 0,{message:"price must not be provided for MARKET risk simulations",path:["request","price"]});var Em=A.enum(["1m","5m","15m","30m","1h","4h","1d","1w","1M"],{message:'Interval must be one of: "1m", "5m", "15m", "30m", "1h", "4h", "1d", "1w", "1M"'}),i9$=31536000000,c9$=946684800000,Ez=A.number().int().positive({message:"Timestamp must be a positive integer (milliseconds since epoch)"}).min(c9$,{message:"Timestamp must be at least Jan 1, 2000 (946684800000 ms). Did you pass seconds instead of milliseconds?"}).max(Number.MAX_SAFE_INTEGER,{message:"Timestamp must not exceed JavaScript's maximum safe integer"}).refine(($)=>$<=Date.now()+i9$,{message:"Timestamp must not be unreasonably far in the future (max 1 year ahead)"}),VH4=A.object({tradingPairId:f$,interval:Em,startTime:Ez,endTime:Ez}).refine(($)=>$.startTime<$.endTime,{message:"startTime must be less than endTime",path:["endTime"]}),OH4=A.string().min(1,"Trading pair symbol cannot be empty").regex(/^[A-Za-z0-9]{1,10}\/[A-Za-z0-9]{1,10}$/,{message:'Trading pair symbol must be in format "BASE/QUOTE" (e.g., "BTC/USDT", "ETH/USD")'}),o9$=A.number().int().positive({message:"Limit must be a positive integer"}).max(500,{message:"Limit cannot exceed 500 bars per request"}).optional(),Pm=A.object({tradingPairId:f$,interval:Em,startTime:Ez.optional(),endTime:Ez.optional(),limit:o9$}).refine(($)=>{if($.startTime!==void 0&&$.endTime!==void 0)return $.startTime<$.endTime;return!0},{message:"startTime must be less than endTime",path:["endTime"]});var MH4=A.object({tradingPairId:f$}),zH4=A.object({query:A.string().min(1,"Search query cannot be empty").optional(),page_size:A.number().int().min(1).max(100).optional(),page:A.number().int().min(1).optional()}),eJ=A.object({tradingPairId:f$});var Rm=A.object({page:A.number().int().min(1,"Page must be at least 1").optional(),page_size:A.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),r9$=A.enum(["OPEN","CLOSED","LIQUIDATING"],{message:'Position status must be "OPEN", "CLOSED", or "LIQUIDATING"'}),t9$=A.enum(["MARKET","LIMIT","IOC"],{message:'Close type must be "MARKET", "LIMIT", or "IOC"'}),x5=A.object({positionId:f$}),Tm=Rm.extend({margin_account_id:f$.optional(),trading_pair_id:f$.optional(),status:r9$.optional()}),Cm=x5,km=x5.extend({request:A.object({closeType:t9$,limitPrice:z4.optional(),slippageToleranceBps:_z.optional(),quantity:z4.optional()})}).refine(($)=>$.request.closeType!=="LIMIT"||$.request.limitPrice!==void 0,{message:"limitPrice is required for LIMIT close requests",path:["request","limitPrice"]}).refine(($)=>$.request.closeType==="LIMIT"||$.request.limitPrice===void 0,{message:"limitPrice is only allowed for LIMIT close requests",path:["request","limitPrice"]}),xm=x5,fm=x5.extend({request:A.object({amount:z4,asset:A.string().trim().min(1,"Asset cannot be empty")})}),bm=x5.extend({request:A.object({amount:z4})}),vm=A.object({triggerPrice:z4,orderType:k5,limitPrice:z4.optional(),quantity:z4.optional(),timeInForce:ZF.optional(),slippageToleranceBps:_z.optional(),expiresAt:qD.optional()}).refine(($)=>$.orderType!=="LIMIT"||$.limitPrice!==void 0,{message:"limitPrice is required for LIMIT TP/SL legs",path:["limitPrice"]}).refine(($)=>$.orderType!=="MARKET"||$.limitPrice===void 0,{message:"limitPrice must not be provided for MARKET TP/SL legs",path:["limitPrice"]}).refine(($)=>$.orderType!=="MARKET"||$.timeInForce===void 0,{message:"timeInForce is only allowed for LIMIT TP/SL legs",path:["timeInForce"]}).refine(($)=>$.orderType!=="LIMIT"||$.slippageToleranceBps===void 0,{message:"slippageToleranceBps is only allowed for MARKET TP/SL legs",path:["slippageToleranceBps"]}),gm=x5.extend({request:A.object({takeProfit:vm.optional(),stopLoss:vm.optional()}).refine(($)=>$.takeProfit!==void 0||$.stopLoss!==void 0,{message:"At least one of takeProfit or stopLoss is required"})}),ym=Rm.extend({position_id:f$.optional(),margin_account_id:f$.optional(),trading_pair_id:f$.optional()});var a9$=A.enum(["CREDIT","DEBIT","LOCK","UNLOCK","FEE"],{message:'Entry type must be "CREDIT", "DEBIT", "LOCK", "UNLOCK", or "FEE"'}),s9$=A.enum(["DEPOSIT","WITHDRAWAL","TRADE","FEE","FUNDING","LIQUIDATION","INTEREST","REWARD"],{message:'Transaction type must be "DEPOSIT", "WITHDRAWAL", "TRADE", "FEE", "FUNDING", "LIQUIDATION", "INTEREST", or "REWARD"'}),hm=A.object({page:A.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),page_size:A.number().int("Page size must be an integer").min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional(),entry_type:a9$.optional(),transaction_type:s9$.optional(),asset_id:f$.optional()}),um=A.object({page:A.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),page_size:A.number().int("Page size must be an integer").min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional(),trading_pair_id:f$.optional()});var FH4=A.string().regex(/^0x[a-fA-F0-9]{40}$/,{message:"Must be a valid Ethereum address (e.g., '0x1234...5678')"}),jF=A.union([A.string().regex(/^\d+$/,"Must be a positive integer string").refine(($)=>BigInt($)>0n,{message:"Amount must be greater than 0"}),A.bigint().refine(($)=>$>0n,{message:"Amount must be greater than 0"})]),mm=A.object({assetId:f$,amount:jF,autoWait:A.boolean().optional()}),lm=A.object({assetId:f$,amount:jF,autoWait:A.boolean().optional()}),nm=A.object({assetId:f$,amount:jF,autoWait:A.boolean().optional()}),jH4=A.object({assetId:f$});class Pz extends x4{async simulateFees($){let J=F$(LF,$),Q=new URLSearchParams;if(Q.append("trading_pair_id",J.trading_pair_id),Q.append("side",J.side),Q.append("price",J.price),Q.append("quantity",J.quantity),J.order_type!==void 0)Q.append("order_type",J.order_type);if(J.slippage_tolerance_bps!==void 0)Q.append("slippage_tolerance_bps",String(J.slippage_tolerance_bps));let Y=`/api/v1/fees/simulate?${Q.toString()}`;return await this.makeAuthenticatedRequest(Y,{method:"GET"})}}function N4($){return encodeURIComponent($)}function Z1($,J){if(!J)return $;let Q=new URLSearchParams;for(let[X,G]of Object.entries(J))if(G!==void 0)Q.set(X,String(G));let Y=Q.toString();return Y?`${$}?${Y}`:$}var b$={orders:{create:()=>"/api/v1/orders",list:($)=>Z1("/api/v1/orders",$),get:($)=>`/api/v1/orders/${N4($)}`,replace:($)=>`/api/v1/orders/${N4($)}`,cancel:()=>"/api/v1/orders/cancel",batchCancel:()=>"/api/v1/orders/batch-cancel",batchCancelAll:()=>"/api/v1/orders/batch-cancel-all",batchCancelAllByPair:($)=>`/api/v1/orders/batch-cancel-all/${N4($)}`,batchCreate:()=>"/api/v1/orders/batch-create",batchReplace:()=>"/api/v1/orders/batch-replace",createConditional:()=>"/api/v1/orders/conditional",listConditional:($)=>Z1("/api/v1/orders/conditional",$),cancelConditional:($)=>`/api/v1/orders/conditional/${N4($)}`},market:{listTradingPairs:($)=>Z1("/api/v1/market/pairs",$),getTradingPair:($)=>`/api/v1/market/pairs/${N4($)}`,getCandles:($,J,Q)=>Z1(`/api/v1/market/pairs/charts/candlestick/${N4($)}/${N4(J)}`,Q),getMarketMetadata:($)=>`/api/v1/market/pairs/${N4($)}/metadata`,getPerpMarketConfig:($)=>`/api/v1/market/pairs/${N4($)}/perp/config`,getPerpMarketSummary:($)=>`/api/v1/market/pairs/${N4($)}/perp/summary`,getMarkPrice:($)=>`/api/v1/market/pairs/${N4($)}/mark-price`,getIndexPrice:($)=>`/api/v1/market/pairs/${N4($)}/index-price`,getFundingState:($)=>`/api/v1/market/pairs/${N4($)}/funding`,listFundingHistory:($,J)=>Z1(`/api/v1/market/pairs/${N4($)}/funding/history`,J),getOpenInterest:($)=>`/api/v1/market/pairs/${N4($)}/open-interest`},orderbook:{get:($,J)=>Z1(`/api/v1/orderbook/${N4($)}`,J)},trades:{publicByPair:($,J)=>Z1(`/api/v1/trades/${N4($)}`,J),user:($)=>Z1("/api/v1/accounts/trades",$)},positions:{list:($)=>Z1("/api/v1/positions",$),get:($)=>`/api/v1/positions/${N4($)}`,close:($)=>`/api/v1/positions/${N4($)}/close`,risk:($)=>`/api/v1/positions/${N4($)}/risk`,addMargin:($)=>`/api/v1/positions/${N4($)}/margin/add`,reduceMargin:($)=>`/api/v1/positions/${N4($)}/margin/reduce`,attachTpSl:($)=>`/api/v1/positions/${N4($)}/tp-sl`,history:($)=>Z1("/api/v1/positions/history",$)},marginAccounts:{list:($)=>Z1("/api/v1/margin/accounts",$),create:()=>"/api/v1/margin/accounts",summary:($)=>`/api/v1/margin/accounts/${N4($)}`,availableCollateral:($)=>Z1("/api/v1/margin/collateral/available",$),transferIn:($)=>`/api/v1/margin/accounts/${N4($)}/collateral/transfer-in`,transferOut:($)=>`/api/v1/margin/accounts/${N4($)}/collateral/transfer-out`,movements:($,J)=>Z1(`/api/v1/margin/accounts/${N4($)}/movements`,J),simulateOrderRisk:($)=>`/api/v1/margin/accounts/${N4($)}/simulate-order-risk`},streams:{orderbook:()=>"/api/v1/streaming/orderbook",trades:()=>"/api/v1/streaming/trades",perpMarketSummaries:()=>"/api/v1/streaming/perp-market-summaries",markPrices:()=>"/api/v1/streaming/mark-prices",privateTrades:()=>"/api/v1/streaming/private-trades",orders:()=>"/api/v1/streaming/orders",positions:()=>"/api/v1/streaming/positions",marginAccount:()=>"/api/v1/streaming/margin-account",funding:()=>"/api/v1/streaming/funding",liquidationAlerts:()=>"/api/v1/streaming/liquidation-alerts"}};class vz extends x4{async listMarginAccounts($){if($)F$(Bm,$);return await this.makeAuthenticatedRequest(b$.marginAccounts.list($))}async createMarginAccount($){return F$(Zm,$),await this.makeAuthenticatedRequest(b$.marginAccounts.create(),{method:"POST",body:JSON.stringify({label:$?.label,collateral_asset:$?.collateralAsset})})}async getMarginAccountSummary($){return F$(Fm,{marginAccountId:$}),await this.makeAuthenticatedRequest(b$.marginAccounts.summary($))}async getAvailableCollateral($){return F$(jm,$),await this.makeAuthenticatedRequest(b$.marginAccounts.availableCollateral($))}async transferCollateralToMarginAccount($,J){return F$(FF,{marginAccountId:$,request:J}),await this.makeAuthenticatedRequest(b$.marginAccounts.transferIn($),{method:"POST",body:JSON.stringify({asset:J.asset,amount:J.amount})})}async transferCollateralFromMarginAccount($,J){return F$(FF,{marginAccountId:$,request:J}),await this.makeAuthenticatedRequest(b$.marginAccounts.transferOut($),{method:"POST",body:JSON.stringify({asset:J.asset,amount:J.amount})})}async getMarginAccountMovements($,J){return F$(Sm,{marginAccountId:$,...J}),await this.makeAuthenticatedRequest(b$.marginAccounts.movements($,J))}async simulateOrderRisk($,J){return F$(_m,{marginAccountId:$,request:J}),await this.makeAuthenticatedRequest(b$.marginAccounts.simulateOrderRisk($),{method:"POST",body:JSON.stringify({trading_pair_id:J.tradingPairId,side:J.side,position_side:J.positionSide,order_type:J.orderType,price:J.price,quantity:J.quantity,leverage:J.leverage,reduce_only:J.reduceOnly})})}}class Rz extends x4{async getPaginatedTradingPairs($){let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.page_size!==void 0)J.append("page_size",$.page_size.toString());if($?.market_type)J.append("market_type",$.market_type);if($?.base_token)J.append("base_token",$.base_token);if($?.quote_token)J.append("quote_token",$.quote_token);if($?.is_active!==void 0)J.append("is_active",$.is_active.toString());let Q=J.toString(),Y=Q?`/api/v1/market/pairs?${Q}`:"/api/v1/market/pairs";return await this.makePublicRequest(Y)}async getTradingPairBySymbol($){return(await this.getPaginatedTradingPairs({page_size:100})).trading_pairs.find((Q)=>Q.symbol===$)}async getCandlesticks($,J,Q){F$(Pm,{tradingPairId:$,interval:J,startTime:Q?.startTime,endTime:Q?.endTime,limit:Q?.limit});let Y=new URLSearchParams;if(Q?.startTime!==void 0)Y.append("start_time",Q.startTime.toString());if(Q?.endTime!==void 0)Y.append("end_time",Q.endTime.toString());if(Q?.limit!==void 0)Y.append("limit",Q.limit.toString());let X=Y.toString(),G=X?`/api/v1/market/pairs/charts/candlestick/${encodeURIComponent($)}/${J}?${X}`:`/api/v1/market/pairs/charts/candlestick/${encodeURIComponent($)}/${J}`;return(await this.makePublicRequest(G)).data||[]}async getMarketMetadata($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getMarketMetadata($))}async getPerpMarketConfig($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getPerpMarketConfig($))}async getPerpMarketSummary($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getPerpMarketSummary($))}async getMarkPrice($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getMarkPrice($))}async getIndexPrice($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getIndexPrice($))}async getFundingState($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getFundingState($))}async listFundingHistory($,J){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.listFundingHistory($,J))}async getOpenInterest($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getOpenInterest($))}}class Tz extends x4{async getOrderbook($,J={}){let{depth:Q=10,tradingMode:Y,magnitude:X,denomination:G}=J,W=new URLSearchParams;if(W.set("levels",String(Q)),Y)W.set("trading_mode",Y);if(X!==void 0)W.set("magnitude",String(X));if(G)W.set("denomination",G.toLowerCase());let D=await this.makePublicRequest(`/api/v1/orderbook/${encodeURIComponent($)}?${W.toString()}`);return{tradingPairId:D.symbol,tradingMode:D.trading_mode,bids:D.data.bids.map((U)=>({price:U.price,quantity:U.quantity,orderCount:U.order_count})),asks:D.data.asks.map((U)=>({price:U.price,quantity:U.quantity,orderCount:U.order_count})),bestBid:D.data.best_bid,bestAsk:D.data.best_ask,bidVolume:D.data.bid_volume,askVolume:D.data.ask_volume,baseDecimals:D.base_decimals,quoteDecimals:D.quote_decimals,timestamp:D.timestamp,sequence:D.sequence_number}}}class Cz extends x4{async listPositions($){if($)F$(Tm,$);return await this.makeAuthenticatedRequest(b$.positions.list($))}async getPosition($){return F$(Cm,{positionId:$}),await this.makeAuthenticatedRequest(b$.positions.get($))}async closePosition($,J){return F$(km,{positionId:$,request:J}),await this.makeAuthenticatedRequest(b$.positions.close($),{method:"POST",body:JSON.stringify({close_type:J.closeType,limit_price:J.limitPrice,slippage_tolerance_bps:J.slippageToleranceBps,quantity:J.quantity})})}async getPositionRisk($){return F$(xm,{positionId:$}),await this.makeAuthenticatedRequest(b$.positions.risk($))}async addPositionMargin($,J){return F$(fm,{positionId:$,request:J}),await this.makeAuthenticatedRequest(b$.positions.addMargin($),{method:"POST",body:JSON.stringify({position_id:$,amount:J.amount,asset:J.asset})})}async reducePositionMargin($,J){return F$(bm,{positionId:$,request:J}),await this.makeAuthenticatedRequest(b$.positions.reduceMargin($),{method:"POST",body:JSON.stringify({position_id:$,amount:J.amount})})}async attachPositionTpSl($,J){return F$(gm,{positionId:$,request:J}),await this.makeAuthenticatedRequest(b$.positions.attachTpSl($),{method:"POST",body:JSON.stringify({take_profit:J.takeProfit?{trigger_price:J.takeProfit.triggerPrice,order_type:J.takeProfit.orderType,limit_price:J.takeProfit.limitPrice,quantity:J.takeProfit.quantity,time_in_force:J.takeProfit.timeInForce,slippage_tolerance_bps:J.takeProfit.slippageToleranceBps,expires_at:J.takeProfit.expiresAt}:void 0,stop_loss:J.stopLoss?{trigger_price:J.stopLoss.triggerPrice,order_type:J.stopLoss.orderType,limit_price:J.stopLoss.limitPrice,quantity:J.stopLoss.quantity,time_in_force:J.stopLoss.timeInForce,slippage_tolerance_bps:J.stopLoss.slippageToleranceBps,expires_at:J.stopLoss.expiresAt}:void 0})})}async listPositionHistory($){if($)F$(ym,$);return await this.makeAuthenticatedRequest(b$.positions.history($))}}class SF extends x4{async getProfile(){return await this.makeAuthenticatedRequest("/api/v1/accounts/me")}async getPaginatedUserMovements($){if($)F$(hm,$);let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.page_size!==void 0)J.append("page_size",$.page_size.toString());if($?.entry_type!==void 0)J.append("entry_type",$.entry_type);if($?.transaction_type!==void 0)J.append("transaction_type",$.transaction_type);if($?.asset_id!==void 0)J.append("asset_id",$.asset_id);let Q=J.toString(),Y=Q?`/api/v1/accounts/movements?${Q}`:"/api/v1/accounts/movements";return await this.makeAuthenticatedRequest(Y)}async getUserBalances($){let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.page_size!==void 0)J.append("page_size",$.page_size.toString());let Q=J.toString(),Y=Q?`/api/v1/accounts/balances?${Q}`:"/api/v1/accounts/balances";return await this.makeAuthenticatedRequest(Y)}async getUserBalanceByAssetId($){if(!$||$.trim()==="")throw new f6("assetId is required and cannot be empty",{endpoint:"/api/v1/accounts/balances/{asset_id}"});let J=`/api/v1/accounts/balances/${$}`;return await this.makeAuthenticatedRequest(J)}async getPortfolioStats($){let J=new URLSearchParams({period:$});return await this.makeAuthenticatedRequest(`/api/v1/accounts/me/portfolio?${J}`)}async getPortfolioChart($,J){let Q=new URLSearchParams({period:$,metric:J});return await this.makeAuthenticatedRequest(`/api/v1/accounts/me/portfolio/chart?${Q}`)}async getUserTrades($){if($)F$(um,$);let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.page_size!==void 0)J.append("page_size",$.page_size.toString());if($?.trading_pair_id!==void 0)J.append("trading_pair_id",$.trading_pair_id);let Q=J.toString(),Y=Q?`/api/v1/accounts/trades?${Q}`:"/api/v1/accounts/trades";return await this.makeAuthenticatedRequest(Y)}}function e9$($){return{eventType:"trade",tradingPairId:$.trading_pair_id,tradingMode:$.trading_mode.toUpperCase(),data:{tradeId:$.data.trade_id,price:$.data.price,quantity:$.data.quantity,makerSide:$.data.maker_side.toUpperCase(),executedAt:$.data.executed_at}}}class _F extends x4{async getTrades($,J={}){let{page:Q=1}=J,Y=J.page_size!=null&&J.page_size>0?Math.min(J.page_size,100):25,X=new URLSearchParams;if(Q>1)X.set("page",String(Q));return X.set("page_size",String(Y)),(await this.makePublicRequest(`/api/v1/trades/${encodeURIComponent($)}?${X.toString()}`)).trades.map(e9$)}}class kz extends x4{async placeLimitOrder($,J,Q,Y,X){F$(Vm,{tradingPairId:$,side:J,quantity:Q,price:Y,options:X});let G={trading_pair_id:$,order_type:"LIMIT",side:J,price:Y,quantity:Q,trading_mode:X?.tradingMode||"SPOT",use_master_balance:X?.useMasterBalance,expiration_date:X?.expirationDate,time_in_force:X?.timeInForce,margin_account_id:X?.marginAccountId,position_side:X?.positionSide,leverage:X?.leverage,reduce_only:X?.reduceOnly};return await this.makeAuthenticatedRequest(b$.orders.create(),{method:"POST",body:JSON.stringify(G)})}async placeMarketOrder($,J,Q,Y){F$(Om,{tradingPairId:$,side:J,quantity:Q,options:Y});let X={trading_pair_id:$,order_type:"MARKET",side:J,slippage_tolerance_bps:Y?.slippageTolerance!==void 0?Math.round(Y.slippageTolerance*1e4):void 0,price:null,quantity:Q,trading_mode:Y?.tradingMode||"SPOT",margin_account_id:Y?.marginAccountId,position_side:Y?.positionSide,leverage:Y?.leverage,reduce_only:Y?.reduceOnly};return await this.makeAuthenticatedRequest(b$.orders.create(),{method:"POST",body:JSON.stringify(X)})}async cancelOrder($){F$(Mm,{orderId:$});let J={order_id:$};return await this.makeAuthenticatedRequest(b$.orders.cancel(),{method:"POST",body:JSON.stringify(J)})}async createConditionalOrder($){F$(qm,$);let J={trading_pair_id:$.tradingPairId,margin_account_id:$.marginAccountId,condition_type:$.conditionType,trigger_price:$.triggerPrice,trigger_source:$.triggerSource??"MARK_PRICE",side:$.side,position_side:$.positionSide,order_type:$.orderType,limit_price:$.limitPrice,quantity:$.quantity,reduce_only:$.reduceOnly??!0,time_in_force:$.timeInForce,slippage_tolerance_bps:$.slippageToleranceBps,expires_at:$.expiresAt};return await this.makeAuthenticatedRequest(b$.orders.createConditional(),{method:"POST",body:JSON.stringify(J)})}async cancelConditionalOrder($){return F$(Hm,{conditionalOrderId:$}),await this.makeAuthenticatedRequest(b$.orders.cancelConditional($),{method:"DELETE"})}async listConditionalOrders($){if($)F$(wm,$);let{page:J=1,page_size:Q=20,margin_account_id:Y,trading_pair_id:X,state:G}=$||{};return await this.makeAuthenticatedRequest(b$.orders.listConditional({page:J,page_size:Math.min(Math.max(Q,1),100),margin_account_id:Y,trading_pair_id:X,state:G}),{method:"GET"})}async batchCancel($){if(!$||$.length===0)throw Error("orderIds is required and must not be empty");return this.makeAuthenticatedRequest(b$.orders.batchCancel(),{method:"POST",body:JSON.stringify({order_ids:$})})}async batchCancelAll($){let J=$?b$.orders.batchCancelAllByPair($):b$.orders.batchCancelAll();return this.makeAuthenticatedRequest(J,{method:"POST"})}async replaceOrder($,J){F$(zm,{orderId:$,newOrder:J});let Q={use_master_balance:J.useMasterBalance??!1};if(J.price!==void 0)Q.price=J.price;if(J.quantity!==void 0)Q.quantity=J.quantity;return await this.makeAuthenticatedRequest(b$.orders.replace($),{method:"PUT",body:JSON.stringify(Q)})}async batchCreate($){F$(Am,{orders:$});let J={orders:$.map((Q)=>({trading_pair_id:Q.tradingPairId,order_type:Q.orderType,side:Q.side,price:Q.price,quantity:Q.quantity,trading_mode:Q.tradingMode||"SPOT",slippage_tolerance_bps:Q.slippageTolerance!==void 0?Math.round(Q.slippageTolerance*1e4):void 0,use_master_balance:Q.useMasterBalance,expiration_date:Q.expirationDate,time_in_force:Q.timeInForce,margin_account_id:Q.marginAccountId,position_side:Q.positionSide,leverage:Q.leverage,reduce_only:Q.reduceOnly}))};return this.makeAuthenticatedRequest(b$.orders.batchCreate(),{method:"POST",body:JSON.stringify(J)})}async batchReplace($){F$(Im,{orders:$});let J={orders:$.map((Q)=>({order_id:Q.orderId,price:Q.price,quantity:Q.quantity,use_master_balance:Q.useMasterBalance}))};return this.makeAuthenticatedRequest(b$.orders.batchReplace(),{method:"POST",body:JSON.stringify(J)})}async getPaginatedOrders($){if($)F$(Nm,$);let{page:J=1,page_size:Q=10,status:Y,trading_pair_id:X,trading_mode:G,margin_account_id:W}=$||{},D=J>0?J:1,U=Q>0?Q:10,V=Math.min(U,100),O=new URLSearchParams;if(O.append("page",D.toString()),O.append("page_size",V.toString()),Y)O.append("status",Y);if(X)O.append("trading_pair_id",X);if(G)O.append("trading_mode",G);if(W)O.append("margin_account_id",W);let M=`/api/v1/orders?${O.toString()}`;return await this.makeAuthenticatedRequest(M,{method:"GET"})}async getOrder($){return await this.makeAuthenticatedRequest(b$.orders.get($),{method:"GET"})}}var EF=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[],name:"ECDSAInvalidSignature",type:"error"},{inputs:[{internalType:"uint256",name:"length",type:"uint256"}],name:"ECDSAInvalidSignatureLength",type:"error"},{inputs:[{internalType:"bytes32",name:"s",type:"bytes32"}],name:"ECDSAInvalidSignatureS",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"EnforcedPause",type:"error"},{inputs:[],name:"ExpectedPause",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"balance",type:"uint256"},{internalType:"uint256",name:"needed",type:"uint256"}],name:"ERC20InsufficientBalance",type:"error"},{inputs:[],name:"InsufficientBalance",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidSeed",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidTimestamp",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[],name:"TransferFailed",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newFeeCollector",type:"address"}],name:"FeeCollectorChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newSettlementContract",type:"address"}],name:"SettlementContractChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"maker",type:"address"},{indexed:!0,internalType:"address",name:"taker",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fee",type:"uint256"}],name:"SettlementTransfer",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Withdrawal",type:"event"},{inputs:[],name:"DEBUGGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"FEE_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"SETTLEMENT_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPGRADER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"seed",type:"bytes"}],name:"decodeSeed",outputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"seed",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"seed",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"depositNative",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"feeCollector",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getChainID",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_admin",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_newFeeCollector",type:"address"}],name:"setFeeCollector",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_settlementContract",type:"address"}],name:"setSettlementContract",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"settlementContract",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"maker",type:"address"},{internalType:"address",name:"taker",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"fee",type:"uint256"}],name:"transferOnSettlement",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"seed",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"seed",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"withdrawNative",outputs:[],stateMutability:"nonpayable",type:"function"}];var HD={vault:EF};class xz extends x4{publicClient;chain;applicationsAPI;profileAPI;walletClient;constructor($,J,Q,Y,X,G){super(G);this.publicClient=$,this.chain=Q,this.walletClient=J,this.applicationsAPI=Y,this.profileAPI=X}setWalletClient($){this.walletClient=$}async getVaultAddress(){return(await this.applicationsAPI.getApplicationConfig()).vaultContractAddress}async resolveAsset($){let J;try{J=(await this.profileAPI.getUserBalanceByAssetId($)).token}catch(Y){if(Y instanceof f6){if(Y.statusCode===404)throw new D8(`Asset ID '${$}' does not exist`,{revertReason:"ASSET_NOT_FOUND",cause:Y});throw new D8(`Failed to resolve asset ID '${$}': ${Y.retryable?"Network error occurred":"API request failed"}`,{revertReason:Y.retryable?"NETWORK_ERROR":"API_ERROR",cause:Y})}throw new D8(`Failed to resolve asset ID '${$}': Unexpected error`,{revertReason:"UNKNOWN_ERROR",cause:Y instanceof Error?Y:void 0})}return{tokenAddress:J,isNativeToken:J===X1}}async approve($,J,Q=!0){if(!this.walletClient)throw new b4("Wallet client not set. Connect a wallet first.","walletClient");F$(mm,{assetId:$,amount:J,autoWait:Q});let Y=await this.getVaultAddress(),{tokenAddress:X}=await this.resolveAsset($),G=this.walletClient.account;if(!G)throw new b4("No account available in wallet client","account");let W=G.getNonce?await G.getNonce():0n,D=await this.walletClient.writeContract({address:X,abi:R3,functionName:"approve",args:[Y,J],chain:this.chain,account:G}),U={nonce:W,hash:D,status:"pending"};return await this.waitForTransaction(U,Q)}async deposit($,J,Q=!0){if(!this.walletClient)throw new b4("Wallet client not set. Connect a wallet first.","walletClient");F$(lm,{assetId:$,amount:J,autoWait:Q});let Y=await this.getVaultAddress(),{tokenAddress:X,isNativeToken:G}=await this.resolveAsset($);if(!G){if(await this.needsApproval($,J))throw new D8(`Approval required before deposit. Please invoke approve() first for asset ${$} (token address: ${X}).`,{revertReason:"APPROVAL_REQUIRED"})}let{seed:W,signature:D}=await this.getDepositSignature($,J),U=this.walletClient.account;if(!U)throw new b4("No account available in wallet client","account");let V;if(G)V=await this.walletClient.writeContract({address:Y,abi:HD.vault,functionName:"depositNative",args:[W,D],account:U,chain:this.chain,value:J});else V=await this.walletClient.writeContract({address:Y,abi:HD.vault,functionName:"deposit",args:[X,J,W,D],account:U,chain:this.chain});let O=U.getNonce?await U.getNonce():0n,M={hash:V,status:"pending",nonce:O};return await this.waitForTransaction(M,Q)}async withdraw($,J,Q=!0){if(!this.walletClient)throw new b4("Wallet client not set. Connect a wallet first.","walletClient");F$(nm,{assetId:$,amount:J,autoWait:Q});let Y=await this.getVaultAddress(),{tokenAddress:X,isNativeToken:G}=await this.resolveAsset($),{seed:W,signature:D}=await this.getWithdrawSignature($,J),U=this.walletClient.account;if(!U)throw new b4("No account available in wallet client","account");let V;if(G)V=await this.walletClient.writeContract({address:Y,abi:HD.vault,functionName:"withdrawNative",args:[J,W,D],account:U,chain:this.chain});else V=await this.walletClient.writeContract({address:Y,abi:HD.vault,functionName:"withdraw",args:[X,J,W,D],account:U,chain:this.chain});let O=U.getNonce?await U.getNonce():0n,M={hash:V,status:"pending",nonce:O};return await this.waitForTransaction(M,Q)}async getBalance($){throw new f6("getBalance() is deprecated and no longer supported. Please use profileAPI.getUserBalances() or profileAPI.getUserBalanceByAssetId() instead for balance data.",{statusCode:410})}async getAllowance($){if(!this.walletClient)throw new b4("Wallet client not set. Connect a wallet first.","walletClient");let J=await this.getVaultAddress(),Y=(await this.walletClient.getAddresses())[0];if(!Y)throw new b4("No account found in wallet client.","walletClient");let{tokenAddress:X}=await this.resolveAsset($);return await this.publicClient.readContract({address:X,abi:R3,functionName:"allowance",args:[Y,J]})}async needsApproval($,J){return await this.getAllowance($)<J}async getDepositSignature($,J){let Q=await this.makeAuthenticatedRequest("/api/v1/deposit/signature",{method:"POST",body:JSON.stringify({asset_id:$,amount:J.toString()})});return{seed:Q.seed,signature:Q.signature}}async getWithdrawSignature($,J){let Q=await this.makeAuthenticatedRequest("/api/v1/withdraw/signature",{method:"POST",body:JSON.stringify({asset_id:$,amount:J.toString()})});return{seed:Q.seed,signature:Q.signature}}async waitForTransaction($,J=!0,Q={}){if(!J)return $;let{confirmations:Y=1,timeout:X=60000}=Q;try{let G=await this.publicClient.waitForTransactionReceipt({hash:$.hash,confirmations:Y,timeout:X});return{...$,status:G.status==="success"?"confirmed":"failed",receipt:G}}catch{return{...$,status:"failed"}}}}class fz extends x4{chain;walletClient;constructor($,J,Q){super(Q);this.chain=J,this.walletClient=$}setWalletClient($){this.walletClient=$}async authenticate($){if(!this.walletClient)throw new b4("Wallet client not set. Connect a wallet first.","walletClient");let J=this.walletClient.account;if(!J)throw new b4("No account available in wallet client","account");let Q=await this.createChallenge(J.address,$),Y=await this.signChallenge(Q.message);return await this.verifySignature(J.address,Y,Q.nonce,$)}async signChallenge($){if(!this.walletClient)throw new b4("Wallet client not set. Connect a wallet first.","walletClient");let J=this.walletClient.account;if(!J)throw new b4("No account available in wallet client","account");return await this.walletClient.signMessage({account:J,message:$})}async createChallenge($,J){let Q=await this.makePublicRequest("/api/v1/auth/challenge",{method:"POST",body:JSON.stringify({address:$,client_id:J,chain_id:this.chain.id})});return{nonce:Q.nonce,message:Q.message,expiresAt:Q.expires_at}}async verifySignature($,J,Q,Y){let X=await this.makePublicRequest("/api/v1/auth/verify",{method:"POST",body:JSON.stringify({address:$,signature:J,nonce:Q,client_id:Y,chain_id:this.chain.id})});return{accessToken:X.access_token,refreshToken:X.refresh_token,expiresAt:X.expires_at,user:{id:X.user.id,address:X.user.address,username:X.user.username}}}async authenticateBackend($){let J=await this.makePublicRequest("/api/v1/auth/backend",{method:"POST",body:JSON.stringify({secret_key:$,chain_id:this.chain.id})});return{accessToken:J.access_token,expiresAt:J.expires_at,application:{id:J.application.id,name:J.application.name,clientId:J.application.client_id}}}async refreshToken($){let J=await this.makePublicRequest("/api/v1/auth/refresh",{method:"POST",body:JSON.stringify({refresh_token:$})});return{accessToken:J.access_token,expiresAt:J.expires_at}}async revokeToken(){await this.makeAuthenticatedRequest("/api/v1/auth/revoke",{method:"POST"})}}class PF{auth;applications;fees;vault;trading;market;marginAccounts;positions;profile;orderbook;trades;ws;walletClient;publicClient;authState;network;chain;propagateAccessToken($){this.auth.setAccessToken($),this.applications.setAccessToken($),this.fees.setAccessToken($),this.vault.setAccessToken($),this.trading.setAccessToken($),this.market.setAccessToken($),this.marginAccounts.setAccessToken($),this.positions.setAccessToken($),this.profile.setAccessToken($),this.orderbook.setAccessToken($),this.trades.setAccessToken($),this.ws.setToken($)}constructor($){let J=["mainnet","development","staging","local"];if(!$.network||!J.includes($.network))throw new b4(`network must be one of: ${J.join(", ")}. Got: ${$.network}`,"network");if(this.network=$.network,!$.seiRpcUrl)throw new b4("seiRpcUrl is required","seiRpcUrl");try{new URL($.seiRpcUrl)}catch(W){throw new b4(`seiRpcUrl must be a valid URL, got: ${$.seiRpcUrl}`,"seiRpcUrl")}let Q=aL(this.network),Y=this.network==="mainnet"?MD:zD;this.chain=Y;let X=OD($.seiRpcUrl);this.publicClient=OF({chain:Y,transport:X});let G=WW(this.network);if($.walletClient){if($.walletClient.chain?.id!==Y.id)throw new b4(`Wallet client chain mismatch. Expected ${Y.id}, got ${$.walletClient.chain?.id}`,"walletClient");this.walletClient=$.walletClient}this.applications=new jz(G),this.market=new Rz(G),this.marginAccounts=new vz(G),this.positions=new Cz(G),this.auth=new fz(this.walletClient,this.chain,G),this.fees=new Pz(G),this.profile=new SF(G),this.vault=new xz(this.publicClient,this.walletClient,this.chain,this.applications,this.profile,G),this.trading=new kz(G),this.orderbook=new Tz(G),this.trades=new _F(G),this.ws=dL(Q),this.ws.connect().catch(console.error)}async login($,J){let Q=await this.auth.authenticate($);if(this.authState={accessToken:Q.accessToken,refreshToken:Q.refreshToken,expiresAt:Q.expiresAt,user:Q.user},this.propagateAccessToken(this.authState.accessToken),J?.connectWebSocket)await this.ws.connect();return this.authState}getAuthState(){return this.authState}setAuthState($){this.authState=$,this.propagateAccessToken($.accessToken)}async logout(){if(this.authState?.refreshToken)try{await this.auth.revokeToken()}catch($){console.warn("Failed to revoke token on logout:",$)}this.authState=void 0,this.propagateAccessToken(""),this.ws.disconnect()}async refreshAuth(){if(!this.authState?.refreshToken)throw new f6("No refresh token available",{endpoint:"auth/refresh",statusCode:dm.StatusCodes.UNAUTHORIZED});try{let $=await this.auth.refreshToken(this.authState.refreshToken);return this.authState={...this.authState,accessToken:$.accessToken,expiresAt:$.expiresAt},this.propagateAccessToken(this.authState.accessToken),this.authState}catch($){throw this.authState=void 0,$}}isAuthenticated(){return!!this.authState}isConnected(){return!!this.walletClient&&!!this.publicClient}setWalletClient($){if($.chain?.id!==this.chain.id)throw new b4(`Wallet client chain mismatch. Expected ${this.chain.id}, got ${$.chain?.id}`,"walletClient");this.walletClient=$,this.auth.setWalletClient($),this.vault.setWalletClient($)}getAccountAddress(){if(!this.walletClient)throw new GW("Wallet client not set","walletClient");if(this.walletClient.account)return this.walletClient.account.address;throw new GW("No account available","account")}getNetwork(){return this.network}getChainId(){return this.chain.id}async waitForTransaction($,J,Q){return this.publicClient.waitForTransactionReceipt({hash:$,confirmations:J,timeout:Q})}}function vF($){return new PF($)}N5();w$();u0();g1();function pm($){if(typeof $==="string"){if(!X4($,{strict:!1}))throw new j4({address:$});return{address:$,type:"json-rpc"}}if(!X4($.address,{strict:!1}))throw new j4({address:$.address});return{address:$.address,nonceManager:$.nonceManager,sign:$.sign,signAuthorization:$.signAuthorization,signMessage:$.signMessage,signTransaction:$.signTransaction,signTypedData:$.signTypedData,source:"custom",type:"local"}}N5();$6();w$();var RF=!1;async function e0({hash:$,privateKey:J,to:Q="object"}){let{r:Y,s:X,recovery:G}=B1.sign($.slice(2),J.slice(2),{lowS:!0,extraEntropy:T4(RF,{strict:!1})?o4(RF):RF}),W={r:y(Y,{size:32}),s:y(X,{size:32}),v:G?28n:27n,yParity:G};return(()=>{if(Q==="bytes"||Q==="hex")return Oz({...W,to:Q});return W})()}async function im($){let{chainId:J,nonce:Q,privateKey:Y,to:X="object"}=$,G=$.contractAddress??$.address,W=await e0({hash:lM({address:G,chainId:J,nonce:Q}),privateKey:Y,to:X});if(X==="object")return{address:G,chainId:J,nonce:Q,...W};return W}async function cm({message:$,privateKey:J}){return await e0({hash:P5($),privateKey:J,to:"hex"})}b1();u1();w$();function om($){if(!$||$.length===0)return[];let J=[];for(let Q of $){let{chainId:Y,nonce:X,...G}=Q,W=Q.address;J.push([Y?P4(Y):"0x",W,X?P4(X):"0x",...f5({},G)])}return J}w$();pB();u0();x$();ZW();DX();g1();x1();rQ();e4();function rm($){let{authorizationList:J}=$;if(J)for(let Q of J){let{chainId:Y}=Q,X=Q.address;if(!X4(X))throw new j4({address:X});if(Y<0)throw new _Y({chainId:Y})}bz($)}function tm($){let{blobVersionedHashes:J}=$;if(J){if(J.length===0)throw new eW;for(let Q of J){let Y=t$(Q),X=C4(y1(Q,0,1));if(Y!==32)throw new vZ({hash:Q,size:Y});if(X!==iM)throw new RZ({hash:Q,version:X})}}bz($)}function bz($){let{chainId:J,maxPriorityFeePerGas:Q,maxFeePerGas:Y,to:X}=$;if(J<=0)throw new _Y({chainId:J});if(X&&!X4(X))throw new j4({address:X});if(Y&&Y>V5)throw new q0({maxFeePerGas:Y});if(Q&&Y&&Q>Y)throw new oJ({maxFeePerGas:Y,maxPriorityFeePerGas:Q})}function am($){let{chainId:J,maxPriorityFeePerGas:Q,gasPrice:Y,maxFeePerGas:X,to:G}=$;if(J<=0)throw new _Y({chainId:J});if(G&&!X4(G))throw new j4({address:G});if(Q||X)throw new R("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(Y&&Y>V5)throw new q0({maxFeePerGas:Y})}function sm($){let{chainId:J,maxPriorityFeePerGas:Q,gasPrice:Y,maxFeePerGas:X,to:G}=$;if(G&&!X4(G))throw new j4({address:G});if(typeof J<"u"&&J<=0)throw new _Y({chainId:J});if(Q||X)throw new R("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(Y&&Y>V5)throw new q0({maxFeePerGas:Y})}u0();u1();g1();function wD($){if(!$||$.length===0)return[];let J=[];for(let Q=0;Q<$.length;Q++){let{address:Y,storageKeys:X}=$[Q];for(let G=0;G<X.length;G++)if(X[G].length-2!==64)throw new VB({storageKey:X[G]});if(!X4(Y,{strict:!1}))throw new j4({address:Y});J.push([Y,X])}return J}function em($,J){let Q=oM($);if(Q==="eip1559")return QY$($,J);if(Q==="eip2930")return XY$($,J);if(Q==="eip4844")return JY$($,J);if(Q==="eip7702")return $Y$($,J);return YY$($,J)}function $Y$($,J){let{authorizationList:Q,chainId:Y,gas:X,nonce:G,to:W,value:D,maxFeePerGas:U,maxPriorityFeePerGas:V,accessList:O,data:M}=$;rm($);let N=wD(O),q=om(Q);return B6(["0x04",sJ([y(Y),G?y(G):"0x",V?y(V):"0x",U?y(U):"0x",X?y(X):"0x",W??"0x",D?y(D):"0x",M??"0x",N,q,...f5($,J)])])}function JY$($,J){let{chainId:Q,gas:Y,nonce:X,to:G,value:W,maxFeePerBlobGas:D,maxFeePerGas:U,maxPriorityFeePerGas:V,accessList:O,data:M}=$;tm($);let{blobVersionedHashes:N,sidecars:q}=$;if($.blobs&&(typeof N>"u"||typeof q>"u")){let B=typeof $.blobs[0]==="string"?$.blobs:$.blobs.map((v)=>a$(v)),F=$.kzg,S=A5({blobs:B,kzg:F});if(typeof N>"u")N=pM({commitments:S});if(typeof q>"u"){let v=I5({blobs:B,commitments:S,kzg:F});q=cM({blobs:B,commitments:S,proofs:v})}}let w=wD(O),I=[y(Q),X?y(X):"0x",V?y(V):"0x",U?y(U):"0x",Y?y(Y):"0x",G??"0x",W?y(W):"0x",M??"0x",w,D?y(D):"0x",N??[],...f5($,J)],Z=[],L=[],_=[];if(q)for(let B=0;B<q.length;B++){let{blob:F,commitment:S,proof:v}=q[B];Z.push(F),L.push(S),_.push(v)}return B6(["0x03",q?sJ([I,Z,L,_]):sJ(I)])}function QY$($,J){let{chainId:Q,gas:Y,nonce:X,to:G,value:W,maxFeePerGas:D,maxPriorityFeePerGas:U,accessList:V,data:O}=$;bz($);let M=wD(V),N=[y(Q),X?y(X):"0x",U?y(U):"0x",D?y(D):"0x",Y?y(Y):"0x",G??"0x",W?y(W):"0x",O??"0x",M,...f5($,J)];return B6(["0x02",sJ(N)])}function XY$($,J){let{chainId:Q,gas:Y,data:X,nonce:G,to:W,value:D,accessList:U,gasPrice:V}=$;am($);let O=wD(U),M=[y(Q),G?y(G):"0x",V?y(V):"0x",Y?y(Y):"0x",W??"0x",D?y(D):"0x",X??"0x",O,...f5($,J)];return B6(["0x01",sJ(M)])}function YY$($,J){let{chainId:Q=0,gas:Y,data:X,nonce:G,to:W,value:D,gasPrice:U}=$;sm($);let V=[G?y(G):"0x",U?y(U):"0x",Y?y(Y):"0x",W??"0x",D?y(D):"0x",X??"0x"];if(J){let O=(()=>{if(J.v>=35n){if((J.v-35n)/2n>0)return J.v;return 27n+(J.v===35n?0n:1n)}if(Q>0)return BigInt(Q*2)+BigInt(35n+J.v-27n);let q=27n+(J.v===27n?0n:1n);if(J.v!==q)throw new UB({v:J.v});return q})(),M=s4(J.r),N=s4(J.s);V=[...V,y(O),M==="0x00"?"0x":M,N==="0x00"?"0x":N]}else if(Q>0)V=[...V,y(Q),"0x","0x"];return sJ(V)}function f5($,J){let Q=J??$,{v:Y,yParity:X}=Q;if(typeof Q.r>"u")return[];if(typeof Q.s>"u")return[];if(typeof Y>"u"&&typeof X>"u")return[];let G=s4(Q.r),W=s4(Q.s);return[(()=>{if(typeof X==="number")return X?y(1):"0x";if(Y===0n)return"0x";if(Y===1n)return y(1);return Y===27n?"0x":y(1)})(),G==="0x00"?"0x":G,W==="0x00"?"0x":W]}async function $l($){let{privateKey:J,transaction:Q,serializer:Y=em}=$,X=(()=>{if(Q.type==="eip4844")return{...Q,sidecars:!1};return Q})(),G=await e0({hash:U4(await Y(X)),privateKey:J});return await Y(Q,G)}async function Jl($){let{privateKey:J,...Q}=$;return await e0({hash:Nz(Q),privateKey:J,to:"hex"})}function TF($,J={}){let{nonceManager:Q}=J,Y=P4(B1.getPublicKey($.slice(2),!1)),X=fM(Y);return{...pm({address:X,nonceManager:Q,async sign({hash:W}){return e0({hash:W,privateKey:$,to:"hex"})},async signAuthorization(W){return im({...W,privateKey:$})},async signMessage({message:W}){return cm({message:W,privateKey:$})},async signTransaction(W,{serializer:D}={}){return $l({privateKey:$,transaction:W,serializer:D})},async signTypedData(W){return Jl({...W,privateKey:$})}}),publicKey:Y,source:"privateKey"}}var CF=null;var GY$={privateKeyToAccount:TF,createWalletClient:wF,http:OD,createMonacoSDK:vF,sei:MD,seiTestnet:zD};function WY$($,J=GY$){let Q=$.network==="mainnet"?J.sei:J.seiTestnet,Y;if($.privateKey){let X=J.privateKeyToAccount($.privateKey);Y=J.createWalletClient({account:X,chain:Q,transport:J.http($.seiRpcUrl)})}return J.createMonacoSDK({walletClient:Y,network:$.network,seiRpcUrl:$.seiRpcUrl})}function Y1($){if(!CF){let J=$??mQ();CF=WY$(J)}return CF}async function l$($){let J=Y1($);if(!J.isAuthenticated()){let Q=$??mQ();await J.login(Q.clientId),console.error(`Authenticated as ${J.getAccountAddress()}`)}return J}function I$($){return{content:[{type:"text",text:JSON.stringify($,null,2)}]}}function I0($){return{content:[{type:"text",text:$}]}}function Ql($,J){if(J.network==="mainnet")return;$.registerTool("request_faucet",{description:"Request test funds from the faucet for all active trading pairs. Only available on non-mainnet networks (development, staging, local).",inputSchema:{}},async()=>{let Q=mQ(),Y=await l$(),G=Y.getAuthState()?.accessToken;if(!G)return I0("No access token available. Please authenticate first.");let W=WW(Q.network),D=Y.getAccountAddress();if(W.includes("localhost"))return I0("Faucet is not available for localhost.");let U=new AbortController,V=setTimeout(()=>U.abort(),30000);try{let O=await fetch(`${W}/api/v1/faucet/mint`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${G}`},body:JSON.stringify({address:D}),signal:U.signal});if(clearTimeout(V),O.ok)return I0(`Faucet request successful. Test funds have been minted to ${D} on the ${Q.network} network.`);let M=await O.text().catch(()=>"Unknown error");return I0(`Faucet request failed (${O.status}): ${M}`)}catch(O){if(clearTimeout(V),O instanceof Error&&O.name==="AbortError")return I0("Faucet request timed out after 30 seconds.");return I0(`Faucet error: ${O}`)}})}function Xl($,J){Ql($,J)}function Yl($){$.registerTool("simulate_fees",{description:"Simulate the fees for an order before placing it. Returns Monaco protocol fees, application fees, and total amounts.",inputSchema:A.object({trading_pair_id:A.string().describe("Trading pair UUID"),side:A.enum(["BUY","SELL"]).describe("Order side"),price:A.string().describe("Price per unit as a decimal string"),quantity:A.string().describe("Quantity to trade as a decimal string")})},async({trading_pair_id:J,side:Q,price:Y,quantity:X})=>{let W=await(await l$()).fees.simulateFees({trading_pair_id:J,side:Q,price:Y,quantity:X});return I$(W)})}function Gl($){Yl($)}function Wl($){$.registerTool("get_candlesticks",{description:"Get OHLCV candlestick data for a trading pair. Useful for charting and price analysis.",inputSchema:A.object({trading_pair_id:A.string().describe("Trading pair UUID"),interval:A.enum(["1m","5m","15m","1h","4h","1d"]).describe("Candlestick interval"),start_time:A.number().optional().describe("Start time as Unix timestamp (seconds)"),end_time:A.number().optional().describe("End time as Unix timestamp (seconds)"),limit:A.number().optional().describe("Max number of candlesticks to return")})},async({trading_pair_id:J,interval:Q,start_time:Y,end_time:X,limit:G})=>{let D=await Y1().market.getCandlesticks(J,Q,{startTime:Y,endTime:X,limit:G});return I$(D)})}function Dl($){$.registerTool("get_market_metadata",{description:"Get metadata for a specific trading pair including tick size, min order size, and trading rules.",inputSchema:A.object({trading_pair_id:A.string().describe("Trading pair UUID")})},async({trading_pair_id:J})=>{let Y=await Y1().market.getMarketMetadata(J);return I$(Y)})}function Ul($){$.registerTool("get_trading_pair_by_symbol",{description:"Look up a specific trading pair by its symbol (e.g. 'BTC/USDC'). Returns the pair's full details including its UUID.",inputSchema:A.object({symbol:A.string().describe("Trading pair symbol (e.g. 'BTC/USDC')")})},async({symbol:J})=>{let Y=await Y1().market.getTradingPairBySymbol(J);if(!Y)return I0(`Trading pair '${J}' not found.`);return I$(Y)})}function Kl($){$.registerTool("get_trading_pairs",{description:"Get a paginated list of trading pairs available on Monaco. Returns pair IDs, symbols, base/quote tokens, and status.",inputSchema:A.object({page:A.number().optional().describe("Page number (starts from 1)"),limit:A.number().optional().describe("Number of items per page (max 100)"),market_type:A.string().optional().describe("Filter by market type"),base_token:A.string().optional().describe("Filter by base token"),quote_token:A.string().optional().describe("Filter by quote token"),is_active:A.boolean().optional().describe("Filter by active status")})},async(J)=>{let Y=await Y1().market.getPaginatedTradingPairs(J);return I$(Y)})}function Vl($){Kl($),Ul($),Wl($),Dl($)}function Ol($){$.registerTool("get_orderbook",{description:"Get the current orderbook snapshot for a trading pair. Shows bids, asks, best bid/ask, and volumes.",inputSchema:A.object({trading_pair_id:A.string().describe("Trading pair UUID"),depth:A.number().optional().describe("Number of price levels to return (max 100, default 10)"),trading_mode:A.enum(["SPOT"]).optional().describe("Trading mode (default: SPOT)"),magnitude:A.number().optional().describe("Price grouping magnitude (e.g. 0.01, 0.1, 1, 10, 100)"),denomination:A.enum(["BASE","QUOTE"]).optional().describe("Quantity denomination: BASE or QUOTE")})},async({trading_pair_id:J,depth:Q,trading_mode:Y,magnitude:X,denomination:G})=>{let D=await Y1().orderbook.getOrderbook(J,{depth:Q,tradingMode:Y,magnitude:X,denomination:G});return I$(D)})}function Ml($){Ol($)}function zl($){$.registerTool("get_balance_by_asset",{description:"Get the authenticated user's balance for a specific asset by its UUID.",inputSchema:A.object({asset_id:A.string().describe("The asset UUID")})},async({asset_id:J})=>{let Y=await(await l$()).profile.getUserBalanceByAssetId(J);return I$(Y)})}function Nl($){$.registerTool("get_balances",{description:"Get the authenticated user's token balances with pagination.",inputSchema:A.object({limit:A.number().optional().describe("Number of items to return (default: 20)"),offset:A.number().optional().describe("Number of items to skip (default: 0)")})},async({limit:J,offset:Q})=>{let X=await(await l$()).profile.getUserBalances({limit:J,offset:Q});return I$(X)})}function ql($){$.registerTool("get_movements",{description:"Get the authenticated user's ledger movements (transaction history) with pagination.",inputSchema:A.object({page:A.number().int().min(1).optional().describe("Page number (starts from 1, default: 1)"),limit:A.number().int().min(1).max(100).optional().describe("Items per page (default: 20, max: 100)"),entry_type:A.enum(["CREDIT","DEBIT","LOCK","UNLOCK","FEE"]).optional().describe("Filter by entry type (e.g. CREDIT, DEBIT, LOCK, UNLOCK, FEE)"),transaction_type:A.enum(["DEPOSIT","WITHDRAWAL","TRADE","FEE","FUNDING","LIQUIDATION","INTEREST","REWARD"]).optional().describe("Filter by transaction type (e.g. DEPOSIT, WITHDRAWAL, TRADE, FEE, FUNDING, LIQUIDATION, INTEREST, REWARD)"),asset_id:A.string().uuid().optional().describe("Filter by asset ID (UUID)")})},async({page:J,limit:Q,entry_type:Y,transaction_type:X,asset_id:G})=>{let D=await(await l$()).profile.getPaginatedUserMovements({page:J,limit:Q,entry_type:Y,transaction_type:X,asset_id:G});return I$(D)})}function Hl($){$.registerTool("get_profile",{description:"Get the authenticated user's profile including address, username, account type, and withdrawal status. Use get_balances, get_movements, and get_orders for detailed account data."},async()=>{let Q=await(await l$()).profile.getProfile();return I$(Q)})}function wl($){Hl($),Nl($),zl($),ql($)}var DY$="https://docs.0xmonaco.com/mcp",UY$="SearchMonacoDocs",gz=null;async function Al($,J,Q){let Y=await fetch(DY$,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json, text/event-stream",...gz?{"Mcp-Session-Id":gz}:{}},body:JSON.stringify({jsonrpc:"2.0",id:Q,method:$,params:J})});if(!Y.ok)throw Error(`Mintlify MCP error: ${Y.status}`);let X=Y.headers.get("mcp-session-id");if(X)gz=X;let W=(await Y.text()).split(`
118
+ - `)}`);this.name="ValidationError",this.issues=$.issues}getErrors(){let $={};for(let J of this.issues){let Q=J.path.join(".");$[Q||"root"]=J.message}return $}}function F$($,J){let Q=$.safeParse(J);if(!Q.success)throw new Dm(Q.error);return Q.data}var C5=A.enum(["BUY","SELL"],{message:'Order side must be "BUY" or "SELL"'}),Sz=A.enum(["SPOT","MARGIN"],{message:'Trading mode must be "SPOT" or "MARGIN"'}),ND=A.enum(["LONG","SHORT","NONE"],{message:'Position side must be "LONG", "SHORT", or "NONE"'}),Um=A.enum(["GTC","IOC","FOK"],{message:'Time in force must be "GTC", "IOC", or "FOK"'}),ZF=A.enum(["GTC","IOC"],{message:'Conditional order time in force must be "GTC" or "IOC"'}),z4=A.string().trim().min(1,"Value cannot be empty").regex(/^\d+(\.\d+)?$/,"Value must be a positive decimal number (e.g., '1.5', '100')").refine(($)=>Number.parseFloat($)>0,{message:"Value must be greater than 0"}),f$=A.uuid({message:"Must be a valid UUID (e.g., '123e4567-e89b-12d3-a456-426614174000')"}),qD=A.iso.datetime({message:"Must be a valid ISO 8601 date string (e.g., '2024-12-31T23:59:59Z')"}),Km=A.number().min(0,"Slippage tolerance must be at least 0 (no slippage)").max(1,"Slippage tolerance cannot exceed 1 (100%)").optional(),Vm=A.object({tradingPairId:f$,side:C5,quantity:z4,price:z4,options:A.object({tradingMode:Sz.optional(),useMasterBalance:A.boolean().optional(),expirationDate:qD.optional(),timeInForce:Um.optional(),marginAccountId:f$.optional(),positionSide:ND.optional(),leverage:z4.optional(),reduceOnly:A.boolean().optional()}).optional()}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.marginAccountId!==void 0,{message:"marginAccountId is required for MARGIN orders",path:["options","marginAccountId"]}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.positionSide!==void 0,{message:"positionSide is required for MARGIN orders",path:["options","positionSide"]}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.leverage!==void 0,{message:"leverage is required for MARGIN orders",path:["options","leverage"]}),Om=A.object({tradingPairId:f$,side:C5,quantity:z4,options:A.object({tradingMode:Sz.optional(),slippageTolerance:Km,marginAccountId:f$.optional(),positionSide:ND.optional(),leverage:z4.optional(),reduceOnly:A.boolean().optional()}).optional()}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.marginAccountId!==void 0,{message:"marginAccountId is required for MARGIN orders",path:["options","marginAccountId"]}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.positionSide!==void 0,{message:"positionSide is required for MARGIN orders",path:["options","positionSide"]}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.leverage!==void 0,{message:"leverage is required for MARGIN orders",path:["options","leverage"]}),Mm=A.object({orderId:f$}),zm=A.object({orderId:f$,newOrder:A.object({price:z4.optional(),quantity:z4.optional(),useMasterBalance:A.boolean().optional()})}),Nm=A.object({status:A.enum(BF).optional(),trading_pair_id:f$.optional(),trading_mode:Sz.optional(),margin_account_id:f$.optional(),page:A.number().int().min(1,"Page must be at least 1").optional(),page_size:A.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),k5=A.enum(["LIMIT","MARKET"],{message:'Order type must be "LIMIT" or "MARKET"'}),u9$=A.enum(["STOP_LOSS","TAKE_PROFIT"],{message:'conditionType must be "STOP_LOSS" or "TAKE_PROFIT"'}),m9$=A.enum(["MARK_PRICE"],{message:'triggerSource must be "MARK_PRICE"'}),l9$=A.enum(["ACTIVE","TRIGGERING","TRIGGERED","CANCELLED","EXPIRED","FAILED"],{message:"Invalid conditional order state"}),n9$=A.enum(["LONG","SHORT"],{message:'Position side must be "LONG" or "SHORT"'}),_z=A.number().int().min(0,"Slippage tolerance must be at least 0 bps").max(1e4,"Slippage tolerance cannot exceed 10000 bps"),qm=A.object({tradingPairId:f$,marginAccountId:f$,conditionType:u9$,triggerPrice:z4,triggerSource:m9$.optional(),side:C5,positionSide:n9$,orderType:k5,limitPrice:z4.optional(),quantity:z4.optional(),reduceOnly:A.boolean().optional(),timeInForce:ZF.optional(),slippageToleranceBps:_z.optional(),expiresAt:qD.optional()}).refine(($)=>$.orderType!=="LIMIT"||$.limitPrice!==void 0,{message:"limitPrice is required for LIMIT conditional orders",path:["limitPrice"]}).refine(($)=>$.orderType!=="MARKET"||$.limitPrice===void 0,{message:"limitPrice must not be provided for MARKET conditional orders",path:["limitPrice"]}).refine(($)=>$.orderType!=="MARKET"||$.timeInForce===void 0,{message:"timeInForce is only allowed for LIMIT conditional orders",path:["timeInForce"]}).refine(($)=>$.orderType!=="LIMIT"||$.slippageToleranceBps===void 0,{message:"slippageToleranceBps is only allowed for MARKET conditional orders",path:["slippageToleranceBps"]}),Hm=A.object({conditionalOrderId:f$}),wm=A.object({margin_account_id:f$.optional(),trading_pair_id:f$.optional(),state:l9$.optional(),page:A.number().int().min(1,"Page must be at least 1").optional(),page_size:A.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),d9$=A.object({tradingPairId:f$,orderType:k5,side:C5,price:z4.optional(),quantity:z4,tradingMode:Sz.optional(),slippageTolerance:Km,useMasterBalance:A.boolean().optional(),expirationDate:qD.optional(),timeInForce:Um.optional(),marginAccountId:f$.optional(),positionSide:ND.optional(),leverage:z4.optional(),reduceOnly:A.boolean().optional()}).refine(($)=>$.orderType!=="LIMIT"||$.price!==void 0,{message:"Price is required for LIMIT orders",path:["price"]}).refine(($)=>$.orderType!=="MARKET"||$.price===void 0,{message:"Price must not be provided for MARKET orders",path:["price"]}).refine(($)=>$.tradingMode!=="MARGIN"||$.marginAccountId!==void 0,{message:"marginAccountId is required for MARGIN orders",path:["marginAccountId"]}).refine(($)=>$.tradingMode!=="MARGIN"||$.positionSide!==void 0,{message:"positionSide is required for MARGIN orders",path:["positionSide"]}).refine(($)=>$.tradingMode!=="MARGIN"||$.leverage!==void 0,{message:"leverage is required for MARGIN orders",path:["leverage"]}),Am=A.object({orders:A.array(d9$).min(1,"At least one order is required")}),p9$=A.object({orderId:f$,price:z4.optional(),quantity:z4.optional(),useMasterBalance:A.boolean().optional()}).refine(($)=>$.price!==void 0||$.quantity!==void 0,{message:"At least one of price or quantity must be provided"}),Im=A.object({orders:A.array(p9$).min(1,"At least one order is required")});var Lm=A.object({page:A.number().int().min(1,"Page must be at least 1").optional(),page_size:A.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),Bm=Lm.extend({state:A.string().trim().min(1,"State cannot be empty").optional()}),Zm=A.object({label:A.string().trim().min(1,"Label cannot be empty").optional(),collateralAsset:A.string().trim().min(1,"Collateral asset cannot be empty").optional()}).optional(),Fm=A.object({marginAccountId:f$}),jm=A.object({asset:A.string().trim().min(1,"Asset cannot be empty").optional()}).optional(),FF=A.object({marginAccountId:f$,request:A.object({asset:A.string().trim().min(1,"Asset cannot be empty"),amount:z4})}),Sm=Lm.extend({marginAccountId:f$,movement_type:A.string().trim().min(1,"Movement type cannot be empty").optional()}),_m=A.object({marginAccountId:f$,request:A.object({tradingPairId:f$,side:C5,positionSide:ND,orderType:k5,price:z4.optional(),quantity:z4,leverage:z4,reduceOnly:A.boolean().optional()})}).refine(($)=>$.request.orderType!=="LIMIT"||$.request.price!==void 0,{message:"price is required for LIMIT risk simulations",path:["request","price"]}).refine(($)=>$.request.orderType!=="MARKET"||$.request.price===void 0,{message:"price must not be provided for MARKET risk simulations",path:["request","price"]});var Em=A.enum(["1m","5m","15m","30m","1h","4h","1d","1w","1M"],{message:'Interval must be one of: "1m", "5m", "15m", "30m", "1h", "4h", "1d", "1w", "1M"'}),i9$=31536000000,c9$=946684800000,Ez=A.number().int().positive({message:"Timestamp must be a positive integer (milliseconds since epoch)"}).min(c9$,{message:"Timestamp must be at least Jan 1, 2000 (946684800000 ms). Did you pass seconds instead of milliseconds?"}).max(Number.MAX_SAFE_INTEGER,{message:"Timestamp must not exceed JavaScript's maximum safe integer"}).refine(($)=>$<=Date.now()+i9$,{message:"Timestamp must not be unreasonably far in the future (max 1 year ahead)"}),VH4=A.object({tradingPairId:f$,interval:Em,startTime:Ez,endTime:Ez}).refine(($)=>$.startTime<$.endTime,{message:"startTime must be less than endTime",path:["endTime"]}),OH4=A.string().min(1,"Trading pair symbol cannot be empty").regex(/^[A-Za-z0-9]{1,10}\/[A-Za-z0-9]{1,10}$/,{message:'Trading pair symbol must be in format "BASE/QUOTE" (e.g., "BTC/USDT", "ETH/USD")'}),o9$=A.number().int().positive({message:"Limit must be a positive integer"}).max(500,{message:"Limit cannot exceed 500 bars per request"}).optional(),Pm=A.object({tradingPairId:f$,interval:Em,startTime:Ez.optional(),endTime:Ez.optional(),limit:o9$}).refine(($)=>{if($.startTime!==void 0&&$.endTime!==void 0)return $.startTime<$.endTime;return!0},{message:"startTime must be less than endTime",path:["endTime"]});var MH4=A.object({tradingPairId:f$}),zH4=A.object({query:A.string().min(1,"Search query cannot be empty").optional(),page_size:A.number().int().min(1).max(100).optional(),page:A.number().int().min(1).optional()}),eJ=A.object({tradingPairId:f$});var Rm=A.object({page:A.number().int().min(1,"Page must be at least 1").optional(),page_size:A.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),r9$=A.enum(["OPEN","CLOSED","LIQUIDATING"],{message:'Position status must be "OPEN", "CLOSED", or "LIQUIDATING"'}),t9$=A.enum(["MARKET","LIMIT","IOC"],{message:'Close type must be "MARKET", "LIMIT", or "IOC"'}),x5=A.object({positionId:f$}),Tm=Rm.extend({margin_account_id:f$.optional(),trading_pair_id:f$.optional(),status:r9$.optional()}),Cm=x5,km=x5.extend({request:A.object({closeType:t9$,limitPrice:z4.optional(),slippageToleranceBps:_z.optional(),quantity:z4.optional()})}).refine(($)=>$.request.closeType!=="LIMIT"||$.request.limitPrice!==void 0,{message:"limitPrice is required for LIMIT close requests",path:["request","limitPrice"]}).refine(($)=>$.request.closeType==="LIMIT"||$.request.limitPrice===void 0,{message:"limitPrice is only allowed for LIMIT close requests",path:["request","limitPrice"]}),xm=x5,fm=x5.extend({request:A.object({amount:z4,asset:A.string().trim().min(1,"Asset cannot be empty")})}),bm=x5.extend({request:A.object({amount:z4})}),vm=A.object({triggerPrice:z4,orderType:k5,limitPrice:z4.optional(),quantity:z4.optional(),timeInForce:ZF.optional(),slippageToleranceBps:_z.optional(),expiresAt:qD.optional()}).refine(($)=>$.orderType!=="LIMIT"||$.limitPrice!==void 0,{message:"limitPrice is required for LIMIT TP/SL legs",path:["limitPrice"]}).refine(($)=>$.orderType!=="MARKET"||$.limitPrice===void 0,{message:"limitPrice must not be provided for MARKET TP/SL legs",path:["limitPrice"]}).refine(($)=>$.orderType!=="MARKET"||$.timeInForce===void 0,{message:"timeInForce is only allowed for LIMIT TP/SL legs",path:["timeInForce"]}).refine(($)=>$.orderType!=="LIMIT"||$.slippageToleranceBps===void 0,{message:"slippageToleranceBps is only allowed for MARKET TP/SL legs",path:["slippageToleranceBps"]}),gm=x5.extend({request:A.object({takeProfit:vm.optional(),stopLoss:vm.optional()}).refine(($)=>$.takeProfit!==void 0||$.stopLoss!==void 0,{message:"At least one of takeProfit or stopLoss is required"})}),ym=Rm.extend({position_id:f$.optional(),margin_account_id:f$.optional(),trading_pair_id:f$.optional()});var a9$=A.enum(["CREDIT","DEBIT","LOCK","UNLOCK","FEE"],{message:'Entry type must be "CREDIT", "DEBIT", "LOCK", "UNLOCK", or "FEE"'}),s9$=A.enum(["DEPOSIT","WITHDRAWAL","TRADE","FEE","FUNDING","LIQUIDATION","INTEREST","REWARD"],{message:'Transaction type must be "DEPOSIT", "WITHDRAWAL", "TRADE", "FEE", "FUNDING", "LIQUIDATION", "INTEREST", or "REWARD"'}),hm=A.object({page:A.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),page_size:A.number().int("Page size must be an integer").min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional(),entry_type:a9$.optional(),transaction_type:s9$.optional(),asset_id:f$.optional()}),um=A.object({page:A.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),page_size:A.number().int("Page size must be an integer").min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional(),trading_pair_id:f$.optional()});var FH4=A.string().regex(/^0x[a-fA-F0-9]{40}$/,{message:"Must be a valid Ethereum address (e.g., '0x1234...5678')"}),jF=A.union([A.string().regex(/^\d+$/,"Must be a positive integer string").refine(($)=>BigInt($)>0n,{message:"Amount must be greater than 0"}),A.bigint().refine(($)=>$>0n,{message:"Amount must be greater than 0"})]),mm=A.object({assetId:f$,amount:jF,autoWait:A.boolean().optional()}),lm=A.object({assetId:f$,amount:jF,autoWait:A.boolean().optional()}),nm=A.object({assetId:f$,amount:jF,autoWait:A.boolean().optional()}),jH4=A.object({assetId:f$});class Pz extends x4{async simulateFees($){let J=F$(LF,$),Q=new URLSearchParams;if(Q.append("trading_pair_id",J.trading_pair_id),Q.append("side",J.side),Q.append("price",J.price),Q.append("quantity",J.quantity),J.order_type!==void 0)Q.append("order_type",J.order_type);if(J.slippage_tolerance_bps!==void 0)Q.append("slippage_tolerance_bps",String(J.slippage_tolerance_bps));let Y=`/api/v1/fees/simulate?${Q.toString()}`;return await this.makeAuthenticatedRequest(Y,{method:"GET"})}}function N4($){return encodeURIComponent($)}function Z1($,J){if(!J)return $;let Q=new URLSearchParams;for(let[X,G]of Object.entries(J))if(G!==void 0)Q.set(X,String(G));let Y=Q.toString();return Y?`${$}?${Y}`:$}var b$={orders:{create:()=>"/api/v1/orders",list:($)=>Z1("/api/v1/orders",$),get:($)=>`/api/v1/orders/${N4($)}`,replace:($)=>`/api/v1/orders/${N4($)}`,cancel:()=>"/api/v1/orders/cancel",batchCancel:()=>"/api/v1/orders/batch-cancel",batchCancelAll:()=>"/api/v1/orders/batch-cancel-all",batchCancelAllByPair:($)=>`/api/v1/orders/batch-cancel-all/${N4($)}`,batchCreate:()=>"/api/v1/orders/batch-create",batchReplace:()=>"/api/v1/orders/batch-replace",createConditional:()=>"/api/v1/orders/conditional",listConditional:($)=>Z1("/api/v1/orders/conditional",$),cancelConditional:($)=>`/api/v1/orders/conditional/${N4($)}`},market:{listTradingPairs:($)=>Z1("/api/v1/market/pairs",$),getTradingPair:($)=>`/api/v1/market/pairs/${N4($)}`,getCandles:($,J,Q)=>Z1(`/api/v1/market/pairs/charts/candlestick/${N4($)}/${N4(J)}`,Q),getMarketMetadata:($)=>`/api/v1/market/pairs/${N4($)}/metadata`,getPerpMarketConfig:($)=>`/api/v1/market/pairs/${N4($)}/perp/config`,getPerpMarketSummary:($)=>`/api/v1/market/pairs/${N4($)}/perp/summary`,getMarkPrice:($)=>`/api/v1/market/pairs/${N4($)}/mark-price`,getIndexPrice:($)=>`/api/v1/market/pairs/${N4($)}/index-price`,getFundingState:($)=>`/api/v1/market/pairs/${N4($)}/funding`,listFundingHistory:($,J)=>Z1(`/api/v1/market/pairs/${N4($)}/funding/history`,J),getOpenInterest:($)=>`/api/v1/market/pairs/${N4($)}/open-interest`},orderbook:{get:($,J)=>Z1(`/api/v1/orderbook/${N4($)}`,J)},trades:{publicByPair:($,J)=>Z1(`/api/v1/trades/${N4($)}`,J),user:($)=>Z1("/api/v1/accounts/trades",$)},positions:{list:($)=>Z1("/api/v1/positions",$),get:($)=>`/api/v1/positions/${N4($)}`,close:($)=>`/api/v1/positions/${N4($)}/close`,risk:($)=>`/api/v1/positions/${N4($)}/risk`,addMargin:($)=>`/api/v1/positions/${N4($)}/margin/add`,reduceMargin:($)=>`/api/v1/positions/${N4($)}/margin/reduce`,attachTpSl:($)=>`/api/v1/positions/${N4($)}/tp-sl`,history:($)=>Z1("/api/v1/positions/history",$)},marginAccounts:{list:($)=>Z1("/api/v1/margin/accounts",$),create:()=>"/api/v1/margin/accounts",summary:($)=>`/api/v1/margin/accounts/${N4($)}`,availableCollateral:($)=>Z1("/api/v1/margin/collateral/available",$),transferIn:($)=>`/api/v1/margin/accounts/${N4($)}/collateral/transfer-in`,transferOut:($)=>`/api/v1/margin/accounts/${N4($)}/collateral/transfer-out`,movements:($,J)=>Z1(`/api/v1/margin/accounts/${N4($)}/movements`,J),simulateOrderRisk:($)=>`/api/v1/margin/accounts/${N4($)}/simulate-order-risk`},streams:{orderbook:()=>"/api/v1/streaming/orderbook",trades:()=>"/api/v1/streaming/trades",perpMarketSummaries:()=>"/api/v1/streaming/perp-market-summaries",markPrices:()=>"/api/v1/streaming/mark-prices",privateTrades:()=>"/api/v1/streaming/private-trades",orders:()=>"/api/v1/streaming/orders",positions:()=>"/api/v1/streaming/positions",marginAccount:()=>"/api/v1/streaming/margin-account",funding:()=>"/api/v1/streaming/funding",liquidationAlerts:()=>"/api/v1/streaming/liquidation-alerts"}};class vz extends x4{async listMarginAccounts($){if($)F$(Bm,$);return await this.makeAuthenticatedRequest(b$.marginAccounts.list($))}async createMarginAccount($){return F$(Zm,$),await this.makeAuthenticatedRequest(b$.marginAccounts.create(),{method:"POST",body:JSON.stringify({label:$?.label,collateral_asset:$?.collateralAsset})})}async getMarginAccountSummary($){return F$(Fm,{marginAccountId:$}),await this.makeAuthenticatedRequest(b$.marginAccounts.summary($))}async getAvailableCollateral($){return F$(jm,$),await this.makeAuthenticatedRequest(b$.marginAccounts.availableCollateral($))}async transferCollateralToMarginAccount($,J){return F$(FF,{marginAccountId:$,request:J}),await this.makeAuthenticatedRequest(b$.marginAccounts.transferIn($),{method:"POST",body:JSON.stringify({asset:J.asset,amount:J.amount})})}async transferCollateralFromMarginAccount($,J){return F$(FF,{marginAccountId:$,request:J}),await this.makeAuthenticatedRequest(b$.marginAccounts.transferOut($),{method:"POST",body:JSON.stringify({asset:J.asset,amount:J.amount})})}async getMarginAccountMovements($,J){return F$(Sm,{marginAccountId:$,...J}),await this.makeAuthenticatedRequest(b$.marginAccounts.movements($,J))}async simulateOrderRisk($,J){return F$(_m,{marginAccountId:$,request:J}),await this.makeAuthenticatedRequest(b$.marginAccounts.simulateOrderRisk($),{method:"POST",body:JSON.stringify({trading_pair_id:J.tradingPairId,side:J.side,position_side:J.positionSide,order_type:J.orderType,price:J.price,quantity:J.quantity,leverage:J.leverage,reduce_only:J.reduceOnly})})}}class Rz extends x4{async getPaginatedTradingPairs($){let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.page_size!==void 0)J.append("page_size",$.page_size.toString());if($?.market_type)J.append("market_type",$.market_type);if($?.base_token)J.append("base_token",$.base_token);if($?.quote_token)J.append("quote_token",$.quote_token);if($?.is_active!==void 0)J.append("is_active",$.is_active.toString());let Q=J.toString(),Y=Q?`/api/v1/market/pairs?${Q}`:"/api/v1/market/pairs";return await this.makePublicRequest(Y)}async getTradingPairBySymbol($){return(await this.getPaginatedTradingPairs({page_size:100})).trading_pairs.find((Q)=>Q.symbol===$)}async getCandlesticks($,J,Q){F$(Pm,{tradingPairId:$,interval:J,startTime:Q?.startTime,endTime:Q?.endTime,limit:Q?.limit});let Y=new URLSearchParams;if(Q?.startTime!==void 0)Y.append("start_time",Q.startTime.toString());if(Q?.endTime!==void 0)Y.append("end_time",Q.endTime.toString());if(Q?.limit!==void 0)Y.append("limit",Q.limit.toString());let X=Y.toString(),G=X?`/api/v1/market/pairs/charts/candlestick/${encodeURIComponent($)}/${J}?${X}`:`/api/v1/market/pairs/charts/candlestick/${encodeURIComponent($)}/${J}`;return(await this.makePublicRequest(G)).data||[]}async getMarketMetadata($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getMarketMetadata($))}async getPerpMarketConfig($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getPerpMarketConfig($))}async getPerpMarketSummary($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getPerpMarketSummary($))}async getMarkPrice($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getMarkPrice($))}async getIndexPrice($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getIndexPrice($))}async getFundingState($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getFundingState($))}async listFundingHistory($,J){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.listFundingHistory($,J))}async getOpenInterest($){return F$(eJ,{tradingPairId:$}),await this.makePublicRequest(b$.market.getOpenInterest($))}}class Tz extends x4{async getOrderbook($,J={}){let{depth:Q=10,tradingMode:Y,magnitude:X,denomination:G}=J,W=new URLSearchParams;if(W.set("levels",String(Q)),Y)W.set("trading_mode",Y);if(X!==void 0)W.set("magnitude",String(X));if(G)W.set("denomination",G.toLowerCase());let D=await this.makePublicRequest(`/api/v1/orderbook/${encodeURIComponent($)}?${W.toString()}`);return{tradingPairId:D.symbol,tradingMode:D.trading_mode,bids:D.data.bids.map((U)=>({price:U.price,quantity:U.quantity,orderCount:U.order_count})),asks:D.data.asks.map((U)=>({price:U.price,quantity:U.quantity,orderCount:U.order_count})),bestBid:D.data.best_bid,bestAsk:D.data.best_ask,bidVolume:D.data.bid_volume,askVolume:D.data.ask_volume,baseDecimals:D.base_decimals,quoteDecimals:D.quote_decimals,timestamp:D.timestamp,sequence:D.sequence_number}}}class Cz extends x4{async listPositions($){if($)F$(Tm,$);return await this.makeAuthenticatedRequest(b$.positions.list($))}async getPosition($){return F$(Cm,{positionId:$}),await this.makeAuthenticatedRequest(b$.positions.get($))}async closePosition($,J){return F$(km,{positionId:$,request:J}),await this.makeAuthenticatedRequest(b$.positions.close($),{method:"POST",body:JSON.stringify({position_id:$,close_type:J.closeType,limit_price:J.limitPrice,slippage_tolerance_bps:J.slippageToleranceBps,quantity:J.quantity})})}async getPositionRisk($){return F$(xm,{positionId:$}),await this.makeAuthenticatedRequest(b$.positions.risk($))}async addPositionMargin($,J){return F$(fm,{positionId:$,request:J}),await this.makeAuthenticatedRequest(b$.positions.addMargin($),{method:"POST",body:JSON.stringify({position_id:$,amount:J.amount,asset:J.asset})})}async reducePositionMargin($,J){return F$(bm,{positionId:$,request:J}),await this.makeAuthenticatedRequest(b$.positions.reduceMargin($),{method:"POST",body:JSON.stringify({position_id:$,amount:J.amount})})}async attachPositionTpSl($,J){return F$(gm,{positionId:$,request:J}),await this.makeAuthenticatedRequest(b$.positions.attachTpSl($),{method:"POST",body:JSON.stringify({take_profit:J.takeProfit?{trigger_price:J.takeProfit.triggerPrice,order_type:J.takeProfit.orderType,limit_price:J.takeProfit.limitPrice,quantity:J.takeProfit.quantity,time_in_force:J.takeProfit.timeInForce,slippage_tolerance_bps:J.takeProfit.slippageToleranceBps,expires_at:J.takeProfit.expiresAt}:void 0,stop_loss:J.stopLoss?{trigger_price:J.stopLoss.triggerPrice,order_type:J.stopLoss.orderType,limit_price:J.stopLoss.limitPrice,quantity:J.stopLoss.quantity,time_in_force:J.stopLoss.timeInForce,slippage_tolerance_bps:J.stopLoss.slippageToleranceBps,expires_at:J.stopLoss.expiresAt}:void 0})})}async listPositionHistory($){if($)F$(ym,$);return await this.makeAuthenticatedRequest(b$.positions.history($))}}class SF extends x4{async getProfile(){return await this.makeAuthenticatedRequest("/api/v1/accounts/me")}async getPaginatedUserMovements($){if($)F$(hm,$);let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.page_size!==void 0)J.append("page_size",$.page_size.toString());if($?.entry_type!==void 0)J.append("entry_type",$.entry_type);if($?.transaction_type!==void 0)J.append("transaction_type",$.transaction_type);if($?.asset_id!==void 0)J.append("asset_id",$.asset_id);let Q=J.toString(),Y=Q?`/api/v1/accounts/movements?${Q}`:"/api/v1/accounts/movements";return await this.makeAuthenticatedRequest(Y)}async getUserBalances($){let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.page_size!==void 0)J.append("page_size",$.page_size.toString());let Q=J.toString(),Y=Q?`/api/v1/accounts/balances?${Q}`:"/api/v1/accounts/balances";return await this.makeAuthenticatedRequest(Y)}async getUserBalanceByAssetId($){if(!$||$.trim()==="")throw new f6("assetId is required and cannot be empty",{endpoint:"/api/v1/accounts/balances/{asset_id}"});let J=`/api/v1/accounts/balances/${$}`;return await this.makeAuthenticatedRequest(J)}async getPortfolioStats($){let J=new URLSearchParams({period:$});return await this.makeAuthenticatedRequest(`/api/v1/accounts/me/portfolio?${J}`)}async getPortfolioChart($,J){let Q=new URLSearchParams({period:$,metric:J});return await this.makeAuthenticatedRequest(`/api/v1/accounts/me/portfolio/chart?${Q}`)}async getUserTrades($){if($)F$(um,$);let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.page_size!==void 0)J.append("page_size",$.page_size.toString());if($?.trading_pair_id!==void 0)J.append("trading_pair_id",$.trading_pair_id);let Q=J.toString(),Y=Q?`/api/v1/accounts/trades?${Q}`:"/api/v1/accounts/trades";return await this.makeAuthenticatedRequest(Y)}}function e9$($){return{eventType:"trade",tradingPairId:$.trading_pair_id,tradingMode:$.trading_mode.toUpperCase(),data:{tradeId:$.data.trade_id,price:$.data.price,quantity:$.data.quantity,makerSide:$.data.maker_side.toUpperCase(),executedAt:$.data.executed_at}}}class _F extends x4{async getTrades($,J={}){let{page:Q=1}=J,Y=J.page_size!=null&&J.page_size>0?Math.min(J.page_size,100):25,X=new URLSearchParams;if(Q>1)X.set("page",String(Q));return X.set("page_size",String(Y)),(await this.makePublicRequest(`/api/v1/trades/${encodeURIComponent($)}?${X.toString()}`)).trades.map(e9$)}}class kz extends x4{async placeLimitOrder($,J,Q,Y,X){F$(Vm,{tradingPairId:$,side:J,quantity:Q,price:Y,options:X});let G={trading_pair_id:$,order_type:"LIMIT",side:J,price:Y,quantity:Q,trading_mode:X?.tradingMode||"SPOT",use_master_balance:X?.useMasterBalance,expiration_date:X?.expirationDate,time_in_force:X?.timeInForce,margin_account_id:X?.marginAccountId,position_side:X?.positionSide,leverage:X?.leverage,reduce_only:X?.reduceOnly};return await this.makeAuthenticatedRequest(b$.orders.create(),{method:"POST",body:JSON.stringify(G)})}async placeMarketOrder($,J,Q,Y){F$(Om,{tradingPairId:$,side:J,quantity:Q,options:Y});let X={trading_pair_id:$,order_type:"MARKET",side:J,slippage_tolerance_bps:Y?.slippageTolerance!==void 0?Math.round(Y.slippageTolerance*1e4):void 0,price:null,quantity:Q,trading_mode:Y?.tradingMode||"SPOT",margin_account_id:Y?.marginAccountId,position_side:Y?.positionSide,leverage:Y?.leverage,reduce_only:Y?.reduceOnly};return await this.makeAuthenticatedRequest(b$.orders.create(),{method:"POST",body:JSON.stringify(X)})}async cancelOrder($){F$(Mm,{orderId:$});let J={order_id:$};return await this.makeAuthenticatedRequest(b$.orders.cancel(),{method:"POST",body:JSON.stringify(J)})}async createConditionalOrder($){F$(qm,$);let J={trading_pair_id:$.tradingPairId,margin_account_id:$.marginAccountId,condition_type:$.conditionType,trigger_price:$.triggerPrice,trigger_source:$.triggerSource??"MARK_PRICE",side:$.side,position_side:$.positionSide,order_type:$.orderType,limit_price:$.limitPrice,quantity:$.quantity,reduce_only:$.reduceOnly??!0,time_in_force:$.timeInForce,slippage_tolerance_bps:$.slippageToleranceBps,expires_at:$.expiresAt};return await this.makeAuthenticatedRequest(b$.orders.createConditional(),{method:"POST",body:JSON.stringify(J)})}async cancelConditionalOrder($){return F$(Hm,{conditionalOrderId:$}),await this.makeAuthenticatedRequest(b$.orders.cancelConditional($),{method:"DELETE"})}async listConditionalOrders($){if($)F$(wm,$);let{page:J=1,page_size:Q=20,margin_account_id:Y,trading_pair_id:X,state:G}=$||{};return await this.makeAuthenticatedRequest(b$.orders.listConditional({page:J,page_size:Math.min(Math.max(Q,1),100),margin_account_id:Y,trading_pair_id:X,state:G}),{method:"GET"})}async batchCancel($){if(!$||$.length===0)throw Error("orderIds is required and must not be empty");return this.makeAuthenticatedRequest(b$.orders.batchCancel(),{method:"POST",body:JSON.stringify({order_ids:$})})}async batchCancelAll($){let J=$?b$.orders.batchCancelAllByPair($):b$.orders.batchCancelAll();return this.makeAuthenticatedRequest(J,{method:"POST"})}async replaceOrder($,J){F$(zm,{orderId:$,newOrder:J});let Q={use_master_balance:J.useMasterBalance??!1};if(J.price!==void 0)Q.price=J.price;if(J.quantity!==void 0)Q.quantity=J.quantity;return await this.makeAuthenticatedRequest(b$.orders.replace($),{method:"PUT",body:JSON.stringify(Q)})}async batchCreate($){F$(Am,{orders:$});let J={orders:$.map((Q)=>({trading_pair_id:Q.tradingPairId,order_type:Q.orderType,side:Q.side,price:Q.price,quantity:Q.quantity,trading_mode:Q.tradingMode||"SPOT",slippage_tolerance_bps:Q.slippageTolerance!==void 0?Math.round(Q.slippageTolerance*1e4):void 0,use_master_balance:Q.useMasterBalance,expiration_date:Q.expirationDate,time_in_force:Q.timeInForce,margin_account_id:Q.marginAccountId,position_side:Q.positionSide,leverage:Q.leverage,reduce_only:Q.reduceOnly}))};return this.makeAuthenticatedRequest(b$.orders.batchCreate(),{method:"POST",body:JSON.stringify(J)})}async batchReplace($){F$(Im,{orders:$});let J={orders:$.map((Q)=>({order_id:Q.orderId,price:Q.price,quantity:Q.quantity,use_master_balance:Q.useMasterBalance}))};return this.makeAuthenticatedRequest(b$.orders.batchReplace(),{method:"POST",body:JSON.stringify(J)})}async getPaginatedOrders($){if($)F$(Nm,$);let{page:J=1,page_size:Q=10,status:Y,trading_pair_id:X,trading_mode:G,margin_account_id:W}=$||{},D=J>0?J:1,U=Q>0?Q:10,V=Math.min(U,100),O=new URLSearchParams;if(O.append("page",D.toString()),O.append("page_size",V.toString()),Y)O.append("status",Y);if(X)O.append("trading_pair_id",X);if(G)O.append("trading_mode",G);if(W)O.append("margin_account_id",W);let M=`/api/v1/orders?${O.toString()}`;return await this.makeAuthenticatedRequest(M,{method:"GET"})}async getOrder($){return await this.makeAuthenticatedRequest(b$.orders.get($),{method:"GET"})}}var EF=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[],name:"ECDSAInvalidSignature",type:"error"},{inputs:[{internalType:"uint256",name:"length",type:"uint256"}],name:"ECDSAInvalidSignatureLength",type:"error"},{inputs:[{internalType:"bytes32",name:"s",type:"bytes32"}],name:"ECDSAInvalidSignatureS",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"EnforcedPause",type:"error"},{inputs:[],name:"ExpectedPause",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"balance",type:"uint256"},{internalType:"uint256",name:"needed",type:"uint256"}],name:"ERC20InsufficientBalance",type:"error"},{inputs:[],name:"InsufficientBalance",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidSeed",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidTimestamp",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[],name:"TransferFailed",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newFeeCollector",type:"address"}],name:"FeeCollectorChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newSettlementContract",type:"address"}],name:"SettlementContractChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"maker",type:"address"},{indexed:!0,internalType:"address",name:"taker",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fee",type:"uint256"}],name:"SettlementTransfer",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Withdrawal",type:"event"},{inputs:[],name:"DEBUGGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"FEE_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"SETTLEMENT_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPGRADER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"seed",type:"bytes"}],name:"decodeSeed",outputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"seed",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"seed",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"depositNative",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"feeCollector",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getChainID",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_admin",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_newFeeCollector",type:"address"}],name:"setFeeCollector",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_settlementContract",type:"address"}],name:"setSettlementContract",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"settlementContract",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"maker",type:"address"},{internalType:"address",name:"taker",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"fee",type:"uint256"}],name:"transferOnSettlement",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"seed",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"seed",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"withdrawNative",outputs:[],stateMutability:"nonpayable",type:"function"}];var HD={vault:EF};class xz extends x4{publicClient;chain;applicationsAPI;profileAPI;walletClient;constructor($,J,Q,Y,X,G){super(G);this.publicClient=$,this.chain=Q,this.walletClient=J,this.applicationsAPI=Y,this.profileAPI=X}setWalletClient($){this.walletClient=$}async getVaultAddress(){return(await this.applicationsAPI.getApplicationConfig()).vaultContractAddress}async resolveAsset($){let J;try{J=(await this.profileAPI.getUserBalanceByAssetId($)).token}catch(Y){if(Y instanceof f6){if(Y.statusCode===404)throw new D8(`Asset ID '${$}' does not exist`,{revertReason:"ASSET_NOT_FOUND",cause:Y});throw new D8(`Failed to resolve asset ID '${$}': ${Y.retryable?"Network error occurred":"API request failed"}`,{revertReason:Y.retryable?"NETWORK_ERROR":"API_ERROR",cause:Y})}throw new D8(`Failed to resolve asset ID '${$}': Unexpected error`,{revertReason:"UNKNOWN_ERROR",cause:Y instanceof Error?Y:void 0})}return{tokenAddress:J,isNativeToken:J===X1}}async approve($,J,Q=!0){if(!this.walletClient)throw new b4("Wallet client not set. Connect a wallet first.","walletClient");F$(mm,{assetId:$,amount:J,autoWait:Q});let Y=await this.getVaultAddress(),{tokenAddress:X}=await this.resolveAsset($),G=this.walletClient.account;if(!G)throw new b4("No account available in wallet client","account");let W=G.getNonce?await G.getNonce():0n,D=await this.walletClient.writeContract({address:X,abi:R3,functionName:"approve",args:[Y,J],chain:this.chain,account:G}),U={nonce:W,hash:D,status:"pending"};return await this.waitForTransaction(U,Q)}async deposit($,J,Q=!0){if(!this.walletClient)throw new b4("Wallet client not set. Connect a wallet first.","walletClient");F$(lm,{assetId:$,amount:J,autoWait:Q});let Y=await this.getVaultAddress(),{tokenAddress:X,isNativeToken:G}=await this.resolveAsset($);if(!G){if(await this.needsApproval($,J))throw new D8(`Approval required before deposit. Please invoke approve() first for asset ${$} (token address: ${X}).`,{revertReason:"APPROVAL_REQUIRED"})}let{seed:W,signature:D}=await this.getDepositSignature($,J),U=this.walletClient.account;if(!U)throw new b4("No account available in wallet client","account");let V;if(G)V=await this.walletClient.writeContract({address:Y,abi:HD.vault,functionName:"depositNative",args:[W,D],account:U,chain:this.chain,value:J});else V=await this.walletClient.writeContract({address:Y,abi:HD.vault,functionName:"deposit",args:[X,J,W,D],account:U,chain:this.chain});let O=U.getNonce?await U.getNonce():0n,M={hash:V,status:"pending",nonce:O};return await this.waitForTransaction(M,Q)}async withdraw($,J,Q=!0){if(!this.walletClient)throw new b4("Wallet client not set. Connect a wallet first.","walletClient");F$(nm,{assetId:$,amount:J,autoWait:Q});let Y=await this.getVaultAddress(),{tokenAddress:X,isNativeToken:G}=await this.resolveAsset($),{seed:W,signature:D}=await this.getWithdrawSignature($,J),U=this.walletClient.account;if(!U)throw new b4("No account available in wallet client","account");let V;if(G)V=await this.walletClient.writeContract({address:Y,abi:HD.vault,functionName:"withdrawNative",args:[J,W,D],account:U,chain:this.chain});else V=await this.walletClient.writeContract({address:Y,abi:HD.vault,functionName:"withdraw",args:[X,J,W,D],account:U,chain:this.chain});let O=U.getNonce?await U.getNonce():0n,M={hash:V,status:"pending",nonce:O};return await this.waitForTransaction(M,Q)}async getBalance($){throw new f6("getBalance() is deprecated and no longer supported. Please use profileAPI.getUserBalances() or profileAPI.getUserBalanceByAssetId() instead for balance data.",{statusCode:410})}async getAllowance($){if(!this.walletClient)throw new b4("Wallet client not set. Connect a wallet first.","walletClient");let J=await this.getVaultAddress(),Y=(await this.walletClient.getAddresses())[0];if(!Y)throw new b4("No account found in wallet client.","walletClient");let{tokenAddress:X}=await this.resolveAsset($);return await this.publicClient.readContract({address:X,abi:R3,functionName:"allowance",args:[Y,J]})}async needsApproval($,J){return await this.getAllowance($)<J}async getDepositSignature($,J){let Q=await this.makeAuthenticatedRequest("/api/v1/deposit/signature",{method:"POST",body:JSON.stringify({asset_id:$,amount:J.toString()})});return{seed:Q.seed,signature:Q.signature}}async getWithdrawSignature($,J){let Q=await this.makeAuthenticatedRequest("/api/v1/withdraw/signature",{method:"POST",body:JSON.stringify({asset_id:$,amount:J.toString()})});return{seed:Q.seed,signature:Q.signature}}async waitForTransaction($,J=!0,Q={}){if(!J)return $;let{confirmations:Y=1,timeout:X=60000}=Q;try{let G=await this.publicClient.waitForTransactionReceipt({hash:$.hash,confirmations:Y,timeout:X});return{...$,status:G.status==="success"?"confirmed":"failed",receipt:G}}catch{return{...$,status:"failed"}}}}class fz extends x4{chain;walletClient;constructor($,J,Q){super(Q);this.chain=J,this.walletClient=$}setWalletClient($){this.walletClient=$}async authenticate($){if(!this.walletClient)throw new b4("Wallet client not set. Connect a wallet first.","walletClient");let J=this.walletClient.account;if(!J)throw new b4("No account available in wallet client","account");let Q=await this.createChallenge(J.address,$),Y=await this.signChallenge(Q.message);return await this.verifySignature(J.address,Y,Q.nonce,$)}async signChallenge($){if(!this.walletClient)throw new b4("Wallet client not set. Connect a wallet first.","walletClient");let J=this.walletClient.account;if(!J)throw new b4("No account available in wallet client","account");return await this.walletClient.signMessage({account:J,message:$})}async createChallenge($,J){let Q=await this.makePublicRequest("/api/v1/auth/challenge",{method:"POST",body:JSON.stringify({address:$,client_id:J,chain_id:this.chain.id})});return{nonce:Q.nonce,message:Q.message,expiresAt:Q.expires_at}}async verifySignature($,J,Q,Y){let X=await this.makePublicRequest("/api/v1/auth/verify",{method:"POST",body:JSON.stringify({address:$,signature:J,nonce:Q,client_id:Y,chain_id:this.chain.id})});return{accessToken:X.access_token,refreshToken:X.refresh_token,expiresAt:X.expires_at,user:{id:X.user.id,address:X.user.address,username:X.user.username}}}async authenticateBackend($){let J=await this.makePublicRequest("/api/v1/auth/backend",{method:"POST",body:JSON.stringify({secret_key:$,chain_id:this.chain.id})});return{accessToken:J.access_token,expiresAt:J.expires_at,application:{id:J.application.id,name:J.application.name,clientId:J.application.client_id}}}async refreshToken($){let J=await this.makePublicRequest("/api/v1/auth/refresh",{method:"POST",body:JSON.stringify({refresh_token:$})});return{accessToken:J.access_token,expiresAt:J.expires_at}}async revokeToken(){await this.makeAuthenticatedRequest("/api/v1/auth/revoke",{method:"POST"})}}class PF{auth;applications;fees;vault;trading;market;marginAccounts;positions;profile;orderbook;trades;ws;walletClient;publicClient;authState;network;chain;propagateAccessToken($){this.auth.setAccessToken($),this.applications.setAccessToken($),this.fees.setAccessToken($),this.vault.setAccessToken($),this.trading.setAccessToken($),this.market.setAccessToken($),this.marginAccounts.setAccessToken($),this.positions.setAccessToken($),this.profile.setAccessToken($),this.orderbook.setAccessToken($),this.trades.setAccessToken($),this.ws.setToken($)}constructor($){let J=["mainnet","development","staging","local"];if(!$.network||!J.includes($.network))throw new b4(`network must be one of: ${J.join(", ")}. Got: ${$.network}`,"network");if(this.network=$.network,!$.seiRpcUrl)throw new b4("seiRpcUrl is required","seiRpcUrl");try{new URL($.seiRpcUrl)}catch(W){throw new b4(`seiRpcUrl must be a valid URL, got: ${$.seiRpcUrl}`,"seiRpcUrl")}let Q=aL(this.network),Y=this.network==="mainnet"?MD:zD;this.chain=Y;let X=OD($.seiRpcUrl);this.publicClient=OF({chain:Y,transport:X});let G=WW(this.network);if($.walletClient){if($.walletClient.chain?.id!==Y.id)throw new b4(`Wallet client chain mismatch. Expected ${Y.id}, got ${$.walletClient.chain?.id}`,"walletClient");this.walletClient=$.walletClient}this.applications=new jz(G),this.market=new Rz(G),this.marginAccounts=new vz(G),this.positions=new Cz(G),this.auth=new fz(this.walletClient,this.chain,G),this.fees=new Pz(G),this.profile=new SF(G),this.vault=new xz(this.publicClient,this.walletClient,this.chain,this.applications,this.profile,G),this.trading=new kz(G),this.orderbook=new Tz(G),this.trades=new _F(G),this.ws=dL(Q),this.ws.connect().catch(console.error)}async login($,J){let Q=await this.auth.authenticate($);if(this.authState={accessToken:Q.accessToken,refreshToken:Q.refreshToken,expiresAt:Q.expiresAt,user:Q.user},this.propagateAccessToken(this.authState.accessToken),J?.connectWebSocket)await this.ws.connect();return this.authState}getAuthState(){return this.authState}setAuthState($){this.authState=$,this.propagateAccessToken($.accessToken)}async logout(){if(this.authState?.refreshToken)try{await this.auth.revokeToken()}catch($){console.warn("Failed to revoke token on logout:",$)}this.authState=void 0,this.propagateAccessToken(""),this.ws.disconnect()}async refreshAuth(){if(!this.authState?.refreshToken)throw new f6("No refresh token available",{endpoint:"auth/refresh",statusCode:dm.StatusCodes.UNAUTHORIZED});try{let $=await this.auth.refreshToken(this.authState.refreshToken);return this.authState={...this.authState,accessToken:$.accessToken,expiresAt:$.expiresAt},this.propagateAccessToken(this.authState.accessToken),this.authState}catch($){throw this.authState=void 0,$}}isAuthenticated(){return!!this.authState}isConnected(){return!!this.walletClient&&!!this.publicClient}setWalletClient($){if($.chain?.id!==this.chain.id)throw new b4(`Wallet client chain mismatch. Expected ${this.chain.id}, got ${$.chain?.id}`,"walletClient");this.walletClient=$,this.auth.setWalletClient($),this.vault.setWalletClient($)}getAccountAddress(){if(!this.walletClient)throw new GW("Wallet client not set","walletClient");if(this.walletClient.account)return this.walletClient.account.address;throw new GW("No account available","account")}getNetwork(){return this.network}getChainId(){return this.chain.id}async waitForTransaction($,J,Q){return this.publicClient.waitForTransactionReceipt({hash:$,confirmations:J,timeout:Q})}}function vF($){return new PF($)}N5();w$();u0();g1();function pm($){if(typeof $==="string"){if(!X4($,{strict:!1}))throw new j4({address:$});return{address:$,type:"json-rpc"}}if(!X4($.address,{strict:!1}))throw new j4({address:$.address});return{address:$.address,nonceManager:$.nonceManager,sign:$.sign,signAuthorization:$.signAuthorization,signMessage:$.signMessage,signTransaction:$.signTransaction,signTypedData:$.signTypedData,source:"custom",type:"local"}}N5();$6();w$();var RF=!1;async function e0({hash:$,privateKey:J,to:Q="object"}){let{r:Y,s:X,recovery:G}=B1.sign($.slice(2),J.slice(2),{lowS:!0,extraEntropy:T4(RF,{strict:!1})?o4(RF):RF}),W={r:y(Y,{size:32}),s:y(X,{size:32}),v:G?28n:27n,yParity:G};return(()=>{if(Q==="bytes"||Q==="hex")return Oz({...W,to:Q});return W})()}async function im($){let{chainId:J,nonce:Q,privateKey:Y,to:X="object"}=$,G=$.contractAddress??$.address,W=await e0({hash:lM({address:G,chainId:J,nonce:Q}),privateKey:Y,to:X});if(X==="object")return{address:G,chainId:J,nonce:Q,...W};return W}async function cm({message:$,privateKey:J}){return await e0({hash:P5($),privateKey:J,to:"hex"})}b1();u1();w$();function om($){if(!$||$.length===0)return[];let J=[];for(let Q of $){let{chainId:Y,nonce:X,...G}=Q,W=Q.address;J.push([Y?P4(Y):"0x",W,X?P4(X):"0x",...f5({},G)])}return J}w$();pB();u0();x$();ZW();DX();g1();x1();rQ();e4();function rm($){let{authorizationList:J}=$;if(J)for(let Q of J){let{chainId:Y}=Q,X=Q.address;if(!X4(X))throw new j4({address:X});if(Y<0)throw new _Y({chainId:Y})}bz($)}function tm($){let{blobVersionedHashes:J}=$;if(J){if(J.length===0)throw new eW;for(let Q of J){let Y=t$(Q),X=C4(y1(Q,0,1));if(Y!==32)throw new vZ({hash:Q,size:Y});if(X!==iM)throw new RZ({hash:Q,version:X})}}bz($)}function bz($){let{chainId:J,maxPriorityFeePerGas:Q,maxFeePerGas:Y,to:X}=$;if(J<=0)throw new _Y({chainId:J});if(X&&!X4(X))throw new j4({address:X});if(Y&&Y>V5)throw new q0({maxFeePerGas:Y});if(Q&&Y&&Q>Y)throw new oJ({maxFeePerGas:Y,maxPriorityFeePerGas:Q})}function am($){let{chainId:J,maxPriorityFeePerGas:Q,gasPrice:Y,maxFeePerGas:X,to:G}=$;if(J<=0)throw new _Y({chainId:J});if(G&&!X4(G))throw new j4({address:G});if(Q||X)throw new R("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(Y&&Y>V5)throw new q0({maxFeePerGas:Y})}function sm($){let{chainId:J,maxPriorityFeePerGas:Q,gasPrice:Y,maxFeePerGas:X,to:G}=$;if(G&&!X4(G))throw new j4({address:G});if(typeof J<"u"&&J<=0)throw new _Y({chainId:J});if(Q||X)throw new R("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(Y&&Y>V5)throw new q0({maxFeePerGas:Y})}u0();u1();g1();function wD($){if(!$||$.length===0)return[];let J=[];for(let Q=0;Q<$.length;Q++){let{address:Y,storageKeys:X}=$[Q];for(let G=0;G<X.length;G++)if(X[G].length-2!==64)throw new VB({storageKey:X[G]});if(!X4(Y,{strict:!1}))throw new j4({address:Y});J.push([Y,X])}return J}function em($,J){let Q=oM($);if(Q==="eip1559")return QY$($,J);if(Q==="eip2930")return XY$($,J);if(Q==="eip4844")return JY$($,J);if(Q==="eip7702")return $Y$($,J);return YY$($,J)}function $Y$($,J){let{authorizationList:Q,chainId:Y,gas:X,nonce:G,to:W,value:D,maxFeePerGas:U,maxPriorityFeePerGas:V,accessList:O,data:M}=$;rm($);let N=wD(O),q=om(Q);return B6(["0x04",sJ([y(Y),G?y(G):"0x",V?y(V):"0x",U?y(U):"0x",X?y(X):"0x",W??"0x",D?y(D):"0x",M??"0x",N,q,...f5($,J)])])}function JY$($,J){let{chainId:Q,gas:Y,nonce:X,to:G,value:W,maxFeePerBlobGas:D,maxFeePerGas:U,maxPriorityFeePerGas:V,accessList:O,data:M}=$;tm($);let{blobVersionedHashes:N,sidecars:q}=$;if($.blobs&&(typeof N>"u"||typeof q>"u")){let B=typeof $.blobs[0]==="string"?$.blobs:$.blobs.map((v)=>a$(v)),F=$.kzg,S=A5({blobs:B,kzg:F});if(typeof N>"u")N=pM({commitments:S});if(typeof q>"u"){let v=I5({blobs:B,commitments:S,kzg:F});q=cM({blobs:B,commitments:S,proofs:v})}}let w=wD(O),I=[y(Q),X?y(X):"0x",V?y(V):"0x",U?y(U):"0x",Y?y(Y):"0x",G??"0x",W?y(W):"0x",M??"0x",w,D?y(D):"0x",N??[],...f5($,J)],Z=[],L=[],_=[];if(q)for(let B=0;B<q.length;B++){let{blob:F,commitment:S,proof:v}=q[B];Z.push(F),L.push(S),_.push(v)}return B6(["0x03",q?sJ([I,Z,L,_]):sJ(I)])}function QY$($,J){let{chainId:Q,gas:Y,nonce:X,to:G,value:W,maxFeePerGas:D,maxPriorityFeePerGas:U,accessList:V,data:O}=$;bz($);let M=wD(V),N=[y(Q),X?y(X):"0x",U?y(U):"0x",D?y(D):"0x",Y?y(Y):"0x",G??"0x",W?y(W):"0x",O??"0x",M,...f5($,J)];return B6(["0x02",sJ(N)])}function XY$($,J){let{chainId:Q,gas:Y,data:X,nonce:G,to:W,value:D,accessList:U,gasPrice:V}=$;am($);let O=wD(U),M=[y(Q),G?y(G):"0x",V?y(V):"0x",Y?y(Y):"0x",W??"0x",D?y(D):"0x",X??"0x",O,...f5($,J)];return B6(["0x01",sJ(M)])}function YY$($,J){let{chainId:Q=0,gas:Y,data:X,nonce:G,to:W,value:D,gasPrice:U}=$;sm($);let V=[G?y(G):"0x",U?y(U):"0x",Y?y(Y):"0x",W??"0x",D?y(D):"0x",X??"0x"];if(J){let O=(()=>{if(J.v>=35n){if((J.v-35n)/2n>0)return J.v;return 27n+(J.v===35n?0n:1n)}if(Q>0)return BigInt(Q*2)+BigInt(35n+J.v-27n);let q=27n+(J.v===27n?0n:1n);if(J.v!==q)throw new UB({v:J.v});return q})(),M=s4(J.r),N=s4(J.s);V=[...V,y(O),M==="0x00"?"0x":M,N==="0x00"?"0x":N]}else if(Q>0)V=[...V,y(Q),"0x","0x"];return sJ(V)}function f5($,J){let Q=J??$,{v:Y,yParity:X}=Q;if(typeof Q.r>"u")return[];if(typeof Q.s>"u")return[];if(typeof Y>"u"&&typeof X>"u")return[];let G=s4(Q.r),W=s4(Q.s);return[(()=>{if(typeof X==="number")return X?y(1):"0x";if(Y===0n)return"0x";if(Y===1n)return y(1);return Y===27n?"0x":y(1)})(),G==="0x00"?"0x":G,W==="0x00"?"0x":W]}async function $l($){let{privateKey:J,transaction:Q,serializer:Y=em}=$,X=(()=>{if(Q.type==="eip4844")return{...Q,sidecars:!1};return Q})(),G=await e0({hash:U4(await Y(X)),privateKey:J});return await Y(Q,G)}async function Jl($){let{privateKey:J,...Q}=$;return await e0({hash:Nz(Q),privateKey:J,to:"hex"})}function TF($,J={}){let{nonceManager:Q}=J,Y=P4(B1.getPublicKey($.slice(2),!1)),X=fM(Y);return{...pm({address:X,nonceManager:Q,async sign({hash:W}){return e0({hash:W,privateKey:$,to:"hex"})},async signAuthorization(W){return im({...W,privateKey:$})},async signMessage({message:W}){return cm({message:W,privateKey:$})},async signTransaction(W,{serializer:D}={}){return $l({privateKey:$,transaction:W,serializer:D})},async signTypedData(W){return Jl({...W,privateKey:$})}}),publicKey:Y,source:"privateKey"}}var CF=null;var GY$={privateKeyToAccount:TF,createWalletClient:wF,http:OD,createMonacoSDK:vF,sei:MD,seiTestnet:zD};function WY$($,J=GY$){let Q=$.network==="mainnet"?J.sei:J.seiTestnet,Y;if($.privateKey){let X=J.privateKeyToAccount($.privateKey);Y=J.createWalletClient({account:X,chain:Q,transport:J.http($.seiRpcUrl)})}return J.createMonacoSDK({walletClient:Y,network:$.network,seiRpcUrl:$.seiRpcUrl})}function Y1($){if(!CF){let J=$??mQ();CF=WY$(J)}return CF}async function l$($){let J=Y1($);if(!J.isAuthenticated()){let Q=$??mQ();await J.login(Q.clientId),console.error(`Authenticated as ${J.getAccountAddress()}`)}return J}function I$($){return{content:[{type:"text",text:JSON.stringify($,null,2)}]}}function I0($){return{content:[{type:"text",text:$}]}}function Ql($,J){if(J.network==="mainnet")return;$.registerTool("request_faucet",{description:"Request test funds from the faucet for all active trading pairs. Only available on non-mainnet networks (development, staging, local).",inputSchema:{}},async()=>{let Q=mQ(),Y=await l$(),G=Y.getAuthState()?.accessToken;if(!G)return I0("No access token available. Please authenticate first.");let W=WW(Q.network),D=Y.getAccountAddress();if(W.includes("localhost"))return I0("Faucet is not available for localhost.");let U=new AbortController,V=setTimeout(()=>U.abort(),30000);try{let O=await fetch(`${W}/api/v1/faucet/mint`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${G}`},body:JSON.stringify({address:D}),signal:U.signal});if(clearTimeout(V),O.ok)return I0(`Faucet request successful. Test funds have been minted to ${D} on the ${Q.network} network.`);let M=await O.text().catch(()=>"Unknown error");return I0(`Faucet request failed (${O.status}): ${M}`)}catch(O){if(clearTimeout(V),O instanceof Error&&O.name==="AbortError")return I0("Faucet request timed out after 30 seconds.");return I0(`Faucet error: ${O}`)}})}function Xl($,J){Ql($,J)}function Yl($){$.registerTool("simulate_fees",{description:"Simulate the fees for an order before placing it. Returns Monaco protocol fees, application fees, and total amounts.",inputSchema:A.object({trading_pair_id:A.string().describe("Trading pair UUID"),side:A.enum(["BUY","SELL"]).describe("Order side"),price:A.string().describe("Price per unit as a decimal string"),quantity:A.string().describe("Quantity to trade as a decimal string")})},async({trading_pair_id:J,side:Q,price:Y,quantity:X})=>{let W=await(await l$()).fees.simulateFees({trading_pair_id:J,side:Q,price:Y,quantity:X});return I$(W)})}function Gl($){Yl($)}function Wl($){$.registerTool("get_candlesticks",{description:"Get OHLCV candlestick data for a trading pair. Useful for charting and price analysis.",inputSchema:A.object({trading_pair_id:A.string().describe("Trading pair UUID"),interval:A.enum(["1m","5m","15m","1h","4h","1d"]).describe("Candlestick interval"),start_time:A.number().optional().describe("Start time as Unix timestamp (seconds)"),end_time:A.number().optional().describe("End time as Unix timestamp (seconds)"),limit:A.number().optional().describe("Max number of candlesticks to return")})},async({trading_pair_id:J,interval:Q,start_time:Y,end_time:X,limit:G})=>{let D=await Y1().market.getCandlesticks(J,Q,{startTime:Y,endTime:X,limit:G});return I$(D)})}function Dl($){$.registerTool("get_market_metadata",{description:"Get metadata for a specific trading pair including tick size, min order size, and trading rules.",inputSchema:A.object({trading_pair_id:A.string().describe("Trading pair UUID")})},async({trading_pair_id:J})=>{let Y=await Y1().market.getMarketMetadata(J);return I$(Y)})}function Ul($){$.registerTool("get_trading_pair_by_symbol",{description:"Look up a specific trading pair by its symbol (e.g. 'BTC/USDC'). Returns the pair's full details including its UUID.",inputSchema:A.object({symbol:A.string().describe("Trading pair symbol (e.g. 'BTC/USDC')")})},async({symbol:J})=>{let Y=await Y1().market.getTradingPairBySymbol(J);if(!Y)return I0(`Trading pair '${J}' not found.`);return I$(Y)})}function Kl($){$.registerTool("get_trading_pairs",{description:"Get a paginated list of trading pairs available on Monaco. Returns pair IDs, symbols, base/quote tokens, and status.",inputSchema:A.object({page:A.number().optional().describe("Page number (starts from 1)"),limit:A.number().optional().describe("Number of items per page (max 100)"),market_type:A.string().optional().describe("Filter by market type"),base_token:A.string().optional().describe("Filter by base token"),quote_token:A.string().optional().describe("Filter by quote token"),is_active:A.boolean().optional().describe("Filter by active status")})},async(J)=>{let Y=await Y1().market.getPaginatedTradingPairs(J);return I$(Y)})}function Vl($){Kl($),Ul($),Wl($),Dl($)}function Ol($){$.registerTool("get_orderbook",{description:"Get the current orderbook snapshot for a trading pair. Shows bids, asks, best bid/ask, and volumes.",inputSchema:A.object({trading_pair_id:A.string().describe("Trading pair UUID"),depth:A.number().optional().describe("Number of price levels to return (max 100, default 10)"),trading_mode:A.enum(["SPOT"]).optional().describe("Trading mode (default: SPOT)"),magnitude:A.number().optional().describe("Price grouping magnitude (e.g. 0.01, 0.1, 1, 10, 100)"),denomination:A.enum(["BASE","QUOTE"]).optional().describe("Quantity denomination: BASE or QUOTE")})},async({trading_pair_id:J,depth:Q,trading_mode:Y,magnitude:X,denomination:G})=>{let D=await Y1().orderbook.getOrderbook(J,{depth:Q,tradingMode:Y,magnitude:X,denomination:G});return I$(D)})}function Ml($){Ol($)}function zl($){$.registerTool("get_balance_by_asset",{description:"Get the authenticated user's balance for a specific asset by its UUID.",inputSchema:A.object({asset_id:A.string().describe("The asset UUID")})},async({asset_id:J})=>{let Y=await(await l$()).profile.getUserBalanceByAssetId(J);return I$(Y)})}function Nl($){$.registerTool("get_balances",{description:"Get the authenticated user's token balances with pagination.",inputSchema:A.object({limit:A.number().optional().describe("Number of items to return (default: 20)"),offset:A.number().optional().describe("Number of items to skip (default: 0)")})},async({limit:J,offset:Q})=>{let X=await(await l$()).profile.getUserBalances({limit:J,offset:Q});return I$(X)})}function ql($){$.registerTool("get_movements",{description:"Get the authenticated user's ledger movements (transaction history) with pagination.",inputSchema:A.object({page:A.number().int().min(1).optional().describe("Page number (starts from 1, default: 1)"),limit:A.number().int().min(1).max(100).optional().describe("Items per page (default: 20, max: 100)"),entry_type:A.enum(["CREDIT","DEBIT","LOCK","UNLOCK","FEE"]).optional().describe("Filter by entry type (e.g. CREDIT, DEBIT, LOCK, UNLOCK, FEE)"),transaction_type:A.enum(["DEPOSIT","WITHDRAWAL","TRADE","FEE","FUNDING","LIQUIDATION","INTEREST","REWARD"]).optional().describe("Filter by transaction type (e.g. DEPOSIT, WITHDRAWAL, TRADE, FEE, FUNDING, LIQUIDATION, INTEREST, REWARD)"),asset_id:A.string().uuid().optional().describe("Filter by asset ID (UUID)")})},async({page:J,limit:Q,entry_type:Y,transaction_type:X,asset_id:G})=>{let D=await(await l$()).profile.getPaginatedUserMovements({page:J,limit:Q,entry_type:Y,transaction_type:X,asset_id:G});return I$(D)})}function Hl($){$.registerTool("get_profile",{description:"Get the authenticated user's profile including address, username, account type, and withdrawal status. Use get_balances, get_movements, and get_orders for detailed account data."},async()=>{let Q=await(await l$()).profile.getProfile();return I$(Q)})}function wl($){Hl($),Nl($),zl($),ql($)}var DY$="https://docs.0xmonaco.com/mcp",UY$="SearchMonacoDocs",gz=null;async function Al($,J,Q){let Y=await fetch(DY$,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json, text/event-stream",...gz?{"Mcp-Session-Id":gz}:{}},body:JSON.stringify({jsonrpc:"2.0",id:Q,method:$,params:J})});if(!Y.ok)throw Error(`Mintlify MCP error: ${Y.status}`);let X=Y.headers.get("mcp-session-id");if(X)gz=X;let W=(await Y.text()).split(`
119
119
  `).find((D)=>D.startsWith("data: "));if(!W)throw Error("No data in Mintlify MCP response");return JSON.parse(W.slice(6))}async function KY$(){if(gz)return;await Al("initialize",{protocolVersion:"2025-03-26",capabilities:{},clientInfo:{name:"monaco-mcp-server",version:B3.version}},0)}async function VY$($){return await KY$(),(await Al("tools/call",{name:UY$,arguments:{query:$}},1))?.result}function Il($){$.registerTool("search_docs",{description:"Search the Monaco documentation for information about the protocol, SDK, trading, and development guides.",inputSchema:A.object({query:A.string().describe("The search query")})},async({query:J})=>{try{let Q=await VY$(J);if(Q?.content&&Array.isArray(Q.content))return{content:Q.content};return I$(Q)}catch(Q){return I0(`Search failed: ${Q instanceof Error?Q.message:String(Q)}`)}})}function Ll($){Il($)}function Bl($){$.registerTool("get_trades",{description:"Get historical trades for a trading pair. Returns recent trades sorted by execution time (newest first).",inputSchema:A.object({trading_pair_id:A.string().describe("Trading pair UUID"),page:A.number().optional().describe("Page number (starts from 1, default: 1)"),page_size:A.number().optional().describe("Max number of records to return (default: 25, max: 100)")})},async({trading_pair_id:J,page:Q,page_size:Y})=>{let G=await Y1().trades.getTrades(J,{page:Q,page_size:Y});return I$(G)})}function Zl($){Bl($)}function Fl($){$.registerTool("batch_cancel_all_orders",{description:"Cancel all active orders, optionally filtered to a specific trading pair.",inputSchema:A.object({trading_pair_id:A.string().optional().describe("Optional trading pair UUID to limit cancellation to")})},async({trading_pair_id:J})=>{let Y=await(await l$()).trading.batchCancelAll(J);return I$(Y)})}function jl($){$.registerTool("batch_cancel_orders",{description:"Cancel multiple orders by their IDs in a single request.",inputSchema:A.object({order_ids:A.array(A.string()).describe("Array of order IDs to cancel")})},async({order_ids:J})=>{let Y=await(await l$()).trading.batchCancel(J);return I$(Y)})}function Sl($){$.registerTool("cancel_order",{description:"Cancel an open order by its ID.",inputSchema:A.object({order_id:A.string().describe("The order ID to cancel")})},async({order_id:J})=>{let Y=await(await l$()).trading.cancelOrder(J);return I$(Y)})}function _l($){$.registerTool("get_order",{description:"Get detailed information about a specific order by its ID.",inputSchema:A.object({order_id:A.string().describe("The order ID to look up")})},async({order_id:J})=>{let Y=await(await l$()).trading.getOrder(J);return I$(Y)})}var OY$=A.object({trading_pair_id:A.string().trim().min(1,"Trading pair ID is required and cannot be empty"),side:A.enum(["BUY","SELL"],{message:"Order side is required and must be either 'BUY' or 'SELL'"}),price:A.string().trim().min(1,"Price is required and cannot be empty").refine(($)=>!Number.isNaN(Number($)),"Price must be a valid number").refine(($)=>Number($)>0,"Price must be greater than 0"),quantity:A.string().trim().min(1,"Quantity is required and cannot be empty").refine(($)=>!Number.isNaN(Number($)),"Quantity must be a valid number").refine(($)=>Number($)>0,"Quantity must be greater than 0"),order_type:A.enum(["LIMIT","MARKET"]).optional(),slippage_tolerance_bps:A.number().int().min(0,"Slippage tolerance must be between 0 and 1000 bps").max(1000,"Slippage tolerance must be between 0 and 1000 bps").optional()}).superRefine(($,J)=>{if($.slippage_tolerance_bps!==void 0&&$.order_type!=="MARKET")J.addIssue({code:A.ZodIssueCode.custom,message:"slippage_tolerance_bps is only valid when order_type is MARKET",path:["slippage_tolerance_bps"]})}),MY$=A.object({application_name:A.string().nullable().optional(),application_taker_fee:A.string(),application_taker_fee_bps:A.number(),buy_order_lock_amount:A.string().nullable().optional(),maker_total_receipt:A.string(),monaco_maker_rebate:A.string(),monaco_maker_rebate_bps:A.number(),monaco_taker_fee:A.string(),monaco_taker_fee_bps:A.number(),notional:A.string(),taker_total_payment:A.string(),total_taker_fees:A.string(),max_quantity:A.string().nullable(),max_quantity_raw:A.string().nullable(),slippage_tolerance_bps:A.number().nullable()});var AD=["SUBMITTED","PARTIALLY_FILLED","FILLED","SETTLED_ON_CHAIN","SETTLED","CANCELLED","REJECTED","EXPIRED"];var b5=A.enum(["BUY","SELL"],{message:'Order side must be "BUY" or "SELL"'}),yz=A.enum(["SPOT","MARGIN"],{message:'Trading mode must be "SPOT" or "MARGIN"'}),ID=A.enum(["LONG","SHORT","NONE"],{message:'Position side must be "LONG", "SHORT", or "NONE"'}),El=A.enum(["GTC","IOC","FOK"],{message:'Time in force must be "GTC", "IOC", or "FOK"'}),kF=A.enum(["GTC","IOC"],{message:'Conditional order time in force must be "GTC" or "IOC"'}),q4=A.string().trim().min(1,"Value cannot be empty").regex(/^\d+(\.\d+)?$/,"Value must be a positive decimal number (e.g., '1.5', '100')").refine(($)=>Number.parseFloat($)>0,{message:"Value must be greater than 0"}),g$=A.uuid({message:"Must be a valid UUID (e.g., '123e4567-e89b-12d3-a456-426614174000')"}),LD=A.iso.datetime({message:"Must be a valid ISO 8601 date string (e.g., '2024-12-31T23:59:59Z')"}),Pl=A.number().min(0,"Slippage tolerance must be at least 0 (no slippage)").max(1,"Slippage tolerance cannot exceed 1 (100%)").optional(),KZ4=A.object({tradingPairId:g$,side:b5,quantity:q4,price:q4,options:A.object({tradingMode:yz.optional(),useMasterBalance:A.boolean().optional(),expirationDate:LD.optional(),timeInForce:El.optional(),marginAccountId:g$.optional(),positionSide:ID.optional(),leverage:q4.optional(),reduceOnly:A.boolean().optional()}).optional()}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.marginAccountId!==void 0,{message:"marginAccountId is required for MARGIN orders",path:["options","marginAccountId"]}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.positionSide!==void 0,{message:"positionSide is required for MARGIN orders",path:["options","positionSide"]}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.leverage!==void 0,{message:"leverage is required for MARGIN orders",path:["options","leverage"]}),VZ4=A.object({tradingPairId:g$,side:b5,quantity:q4,options:A.object({tradingMode:yz.optional(),slippageTolerance:Pl,marginAccountId:g$.optional(),positionSide:ID.optional(),leverage:q4.optional(),reduceOnly:A.boolean().optional()}).optional()}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.marginAccountId!==void 0,{message:"marginAccountId is required for MARGIN orders",path:["options","marginAccountId"]}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.positionSide!==void 0,{message:"positionSide is required for MARGIN orders",path:["options","positionSide"]}).refine(($)=>$.options?.tradingMode!=="MARGIN"||$.options.leverage!==void 0,{message:"leverage is required for MARGIN orders",path:["options","leverage"]}),OZ4=A.object({orderId:g$}),MZ4=A.object({orderId:g$,newOrder:A.object({price:q4.optional(),quantity:q4.optional(),useMasterBalance:A.boolean().optional()})}),zZ4=A.object({status:A.enum(AD).optional(),trading_pair_id:g$.optional(),trading_mode:yz.optional(),margin_account_id:g$.optional(),page:A.number().int().min(1,"Page must be at least 1").optional(),page_size:A.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),g5=A.enum(["LIMIT","MARKET"],{message:'Order type must be "LIMIT" or "MARKET"'}),zY$=A.enum(["STOP_LOSS","TAKE_PROFIT"],{message:'conditionType must be "STOP_LOSS" or "TAKE_PROFIT"'}),NY$=A.enum(["MARK_PRICE"],{message:'triggerSource must be "MARK_PRICE"'}),qY$=A.enum(["ACTIVE","TRIGGERING","TRIGGERED","CANCELLED","EXPIRED","FAILED"],{message:"Invalid conditional order state"}),HY$=A.enum(["LONG","SHORT"],{message:'Position side must be "LONG" or "SHORT"'}),hz=A.number().int().min(0,"Slippage tolerance must be at least 0 bps").max(1e4,"Slippage tolerance cannot exceed 10000 bps"),NZ4=A.object({tradingPairId:g$,marginAccountId:g$,conditionType:zY$,triggerPrice:q4,triggerSource:NY$.optional(),side:b5,positionSide:HY$,orderType:g5,limitPrice:q4.optional(),quantity:q4.optional(),reduceOnly:A.boolean().optional(),timeInForce:kF.optional(),slippageToleranceBps:hz.optional(),expiresAt:LD.optional()}).refine(($)=>$.orderType!=="LIMIT"||$.limitPrice!==void 0,{message:"limitPrice is required for LIMIT conditional orders",path:["limitPrice"]}).refine(($)=>$.orderType!=="MARKET"||$.limitPrice===void 0,{message:"limitPrice must not be provided for MARKET conditional orders",path:["limitPrice"]}).refine(($)=>$.orderType!=="MARKET"||$.timeInForce===void 0,{message:"timeInForce is only allowed for LIMIT conditional orders",path:["timeInForce"]}).refine(($)=>$.orderType!=="LIMIT"||$.slippageToleranceBps===void 0,{message:"slippageToleranceBps is only allowed for MARKET conditional orders",path:["slippageToleranceBps"]}),qZ4=A.object({conditionalOrderId:g$}),HZ4=A.object({margin_account_id:g$.optional(),trading_pair_id:g$.optional(),state:qY$.optional(),page:A.number().int().min(1,"Page must be at least 1").optional(),page_size:A.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),wY$=A.object({tradingPairId:g$,orderType:g5,side:b5,price:q4.optional(),quantity:q4,tradingMode:yz.optional(),slippageTolerance:Pl,useMasterBalance:A.boolean().optional(),expirationDate:LD.optional(),timeInForce:El.optional(),marginAccountId:g$.optional(),positionSide:ID.optional(),leverage:q4.optional(),reduceOnly:A.boolean().optional()}).refine(($)=>$.orderType!=="LIMIT"||$.price!==void 0,{message:"Price is required for LIMIT orders",path:["price"]}).refine(($)=>$.orderType!=="MARKET"||$.price===void 0,{message:"Price must not be provided for MARKET orders",path:["price"]}).refine(($)=>$.tradingMode!=="MARGIN"||$.marginAccountId!==void 0,{message:"marginAccountId is required for MARGIN orders",path:["marginAccountId"]}).refine(($)=>$.tradingMode!=="MARGIN"||$.positionSide!==void 0,{message:"positionSide is required for MARGIN orders",path:["positionSide"]}).refine(($)=>$.tradingMode!=="MARGIN"||$.leverage!==void 0,{message:"leverage is required for MARGIN orders",path:["leverage"]}),wZ4=A.object({orders:A.array(wY$).min(1,"At least one order is required")}),AY$=A.object({orderId:g$,price:q4.optional(),quantity:q4.optional(),useMasterBalance:A.boolean().optional()}).refine(($)=>$.price!==void 0||$.quantity!==void 0,{message:"At least one of price or quantity must be provided"}),AZ4=A.object({orders:A.array(AY$).min(1,"At least one order is required")});var vl=A.object({page:A.number().int().min(1,"Page must be at least 1").optional(),page_size:A.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),ZZ4=vl.extend({state:A.string().trim().min(1,"State cannot be empty").optional()}),FZ4=A.object({label:A.string().trim().min(1,"Label cannot be empty").optional(),collateralAsset:A.string().trim().min(1,"Collateral asset cannot be empty").optional()}).optional(),jZ4=A.object({marginAccountId:g$}),SZ4=A.object({asset:A.string().trim().min(1,"Asset cannot be empty").optional()}).optional(),_Z4=A.object({marginAccountId:g$,request:A.object({asset:A.string().trim().min(1,"Asset cannot be empty"),amount:q4})}),EZ4=vl.extend({marginAccountId:g$,movement_type:A.string().trim().min(1,"Movement type cannot be empty").optional()}),PZ4=A.object({marginAccountId:g$,request:A.object({tradingPairId:g$,side:b5,positionSide:ID,orderType:g5,price:q4.optional(),quantity:q4,leverage:q4,reduceOnly:A.boolean().optional()})}).refine(($)=>$.request.orderType!=="LIMIT"||$.request.price!==void 0,{message:"price is required for LIMIT risk simulations",path:["request","price"]}).refine(($)=>$.request.orderType!=="MARKET"||$.request.price===void 0,{message:"price must not be provided for MARKET risk simulations",path:["request","price"]});var Rl=A.enum(["1m","5m","15m","30m","1h","4h","1d","1w","1M"],{message:'Interval must be one of: "1m", "5m", "15m", "30m", "1h", "4h", "1d", "1w", "1M"'}),IY$=31536000000,LY$=946684800000,uz=A.number().int().positive({message:"Timestamp must be a positive integer (milliseconds since epoch)"}).min(LY$,{message:"Timestamp must be at least Jan 1, 2000 (946684800000 ms). Did you pass seconds instead of milliseconds?"}).max(Number.MAX_SAFE_INTEGER,{message:"Timestamp must not exceed JavaScript's maximum safe integer"}).refine(($)=>$<=Date.now()+IY$,{message:"Timestamp must not be unreasonably far in the future (max 1 year ahead)"}),CZ4=A.object({tradingPairId:g$,interval:Rl,startTime:uz,endTime:uz}).refine(($)=>$.startTime<$.endTime,{message:"startTime must be less than endTime",path:["endTime"]}),kZ4=A.string().min(1,"Trading pair symbol cannot be empty").regex(/^[A-Za-z0-9]{1,10}\/[A-Za-z0-9]{1,10}$/,{message:'Trading pair symbol must be in format "BASE/QUOTE" (e.g., "BTC/USDT", "ETH/USD")'}),BY$=A.number().int().positive({message:"Limit must be a positive integer"}).max(500,{message:"Limit cannot exceed 500 bars per request"}).optional(),xZ4=A.object({tradingPairId:g$,interval:Rl,startTime:uz.optional(),endTime:uz.optional(),limit:BY$}).refine(($)=>{if($.startTime!==void 0&&$.endTime!==void 0)return $.startTime<$.endTime;return!0},{message:"startTime must be less than endTime",path:["endTime"]});var fZ4=A.object({tradingPairId:g$}),bZ4=A.object({query:A.string().min(1,"Search query cannot be empty").optional(),page_size:A.number().int().min(1).max(100).optional(),page:A.number().int().min(1).optional()}),gZ4=A.object({tradingPairId:g$});var Cl=A.object({page:A.number().int().min(1,"Page must be at least 1").optional(),page_size:A.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),ZY$=A.enum(["OPEN","CLOSED","LIQUIDATING"],{message:'Position status must be "OPEN", "CLOSED", or "LIQUIDATING"'}),FY$=A.enum(["MARKET","LIMIT","IOC"],{message:'Close type must be "MARKET", "LIMIT", or "IOC"'}),mz=A.object({positionId:g$}),mZ4=Cl.extend({margin_account_id:g$.optional(),trading_pair_id:g$.optional(),status:ZY$.optional()});var lZ4=mz.extend({request:A.object({closeType:FY$,limitPrice:q4.optional(),slippageToleranceBps:hz.optional(),quantity:q4.optional()})}).refine(($)=>$.request.closeType!=="LIMIT"||$.request.limitPrice!==void 0,{message:"limitPrice is required for LIMIT close requests",path:["request","limitPrice"]}).refine(($)=>$.request.closeType==="LIMIT"||$.request.limitPrice===void 0,{message:"limitPrice is only allowed for LIMIT close requests",path:["request","limitPrice"]});var nZ4=mz.extend({request:A.object({amount:q4,asset:A.string().trim().min(1,"Asset cannot be empty")})}),dZ4=mz.extend({request:A.object({amount:q4})}),Tl=A.object({triggerPrice:q4,orderType:g5,limitPrice:q4.optional(),quantity:q4.optional(),timeInForce:kF.optional(),slippageToleranceBps:hz.optional(),expiresAt:LD.optional()}).refine(($)=>$.orderType!=="LIMIT"||$.limitPrice!==void 0,{message:"limitPrice is required for LIMIT TP/SL legs",path:["limitPrice"]}).refine(($)=>$.orderType!=="MARKET"||$.limitPrice===void 0,{message:"limitPrice must not be provided for MARKET TP/SL legs",path:["limitPrice"]}).refine(($)=>$.orderType!=="MARKET"||$.timeInForce===void 0,{message:"timeInForce is only allowed for LIMIT TP/SL legs",path:["timeInForce"]}).refine(($)=>$.orderType!=="LIMIT"||$.slippageToleranceBps===void 0,{message:"slippageToleranceBps is only allowed for MARKET TP/SL legs",path:["slippageToleranceBps"]}),pZ4=mz.extend({request:A.object({takeProfit:Tl.optional(),stopLoss:Tl.optional()}).refine(($)=>$.takeProfit!==void 0||$.stopLoss!==void 0,{message:"At least one of takeProfit or stopLoss is required"})}),iZ4=Cl.extend({position_id:g$.optional(),margin_account_id:g$.optional(),trading_pair_id:g$.optional()});var jY$=A.enum(["CREDIT","DEBIT","LOCK","UNLOCK","FEE"],{message:'Entry type must be "CREDIT", "DEBIT", "LOCK", "UNLOCK", or "FEE"'}),SY$=A.enum(["DEPOSIT","WITHDRAWAL","TRADE","FEE","FUNDING","LIQUIDATION","INTEREST","REWARD"],{message:'Transaction type must be "DEPOSIT", "WITHDRAWAL", "TRADE", "FEE", "FUNDING", "LIQUIDATION", "INTEREST", or "REWARD"'}),tZ4=A.object({page:A.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),page_size:A.number().int("Page size must be an integer").min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional(),entry_type:jY$.optional(),transaction_type:SY$.optional(),asset_id:g$.optional()}),aZ4=A.object({page:A.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),page_size:A.number().int("Page size must be an integer").min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional(),trading_pair_id:g$.optional()});var JF4=A.string().regex(/^0x[a-fA-F0-9]{40}$/,{message:"Must be a valid Ethereum address (e.g., '0x1234...5678')"}),xF=A.union([A.string().regex(/^\d+$/,"Must be a positive integer string").refine(($)=>BigInt($)>0n,{message:"Amount must be greater than 0"}),A.bigint().refine(($)=>$>0n,{message:"Amount must be greater than 0"})]),QF4=A.object({assetId:g$,amount:xF,autoWait:A.boolean().optional()}),XF4=A.object({assetId:g$,amount:xF,autoWait:A.boolean().optional()}),YF4=A.object({assetId:g$,amount:xF,autoWait:A.boolean().optional()}),GF4=A.object({assetId:g$});function kl($){$.registerTool("get_orders",{description:"Get a paginated list of orders with optional filters by status and trading pair.",inputSchema:A.object({status:A.enum(AD).optional().describe("Filter by order status (e.g. SUBMITTED, FILLED, CANCELLED)"),trading_pair_id:A.string().optional().describe("Filter by trading pair UUID"),page:A.number().optional().describe("Page number (default: 1)"),page_size:A.number().optional().describe("Orders per page (default: 10, max: 100)")})},async({status:J,trading_pair_id:Q,page:Y,page_size:X})=>{let W=await(await l$()).trading.getPaginatedOrders({status:J,trading_pair_id:Q,page:Y,page_size:X});return I$(W)})}function xl($){$.registerTool("place_limit_order",{description:"Place a limit order on Monaco. Limit orders execute only when the market reaches the specified price.",inputSchema:A.object({trading_pair_id:A.string().describe("Trading pair UUID"),side:A.enum(["BUY","SELL"]).describe("Order side"),quantity:A.string().describe("Order quantity as a decimal string"),price:A.string().describe("Limit price as a decimal string"),trading_mode:A.enum(["SPOT"]).optional().describe("Trading mode (default: SPOT)"),time_in_force:A.enum(["GTC","IOC","FOK"]).optional().describe("Time in force (default: GTC)"),expiration_date:A.string().optional().describe("Expiration date for GTC orders (ISO 8601)")})},async({trading_pair_id:J,side:Q,quantity:Y,price:X,trading_mode:G,time_in_force:W,expiration_date:D})=>{let V=await(await l$()).trading.placeLimitOrder(J,Q,Y,X,{tradingMode:G,timeInForce:W,expirationDate:D});return I$(V)})}function fl($){$.registerTool("place_market_order",{description:"Place a market order on Monaco. Market orders execute immediately at the current market price.",inputSchema:A.object({trading_pair_id:A.string().describe("Trading pair UUID"),side:A.enum(["BUY","SELL"]).describe("Order side"),quantity:A.string().describe("Order quantity as a decimal string"),trading_mode:A.enum(["SPOT"]).optional().describe("Trading mode (default: SPOT)"),slippage_tolerance:A.number().optional().describe("Slippage tolerance as decimal (e.g. 0.01 for 1%)")})},async({trading_pair_id:J,side:Q,quantity:Y,trading_mode:X,slippage_tolerance:G})=>{let D=await(await l$()).trading.placeMarketOrder(J,Q,Y,{tradingMode:X,slippageTolerance:G});return I$(D)})}function bl($){$.registerTool("replace_order",{description:"Replace an existing order with new price and/or quantity. The order must be open.",inputSchema:A.object({order_id:A.string().describe("The order ID to replace"),price:A.string().optional().describe("New price as a decimal string"),quantity:A.string().optional().describe("New quantity as a decimal string")})},async({order_id:J,price:Q,quantity:Y})=>{let G=await(await l$()).trading.replaceOrder(J,{price:Q,quantity:Y});return I$(G)})}function gl($){xl($),fl($),Sl($),jl($),Fl($),bl($),kl($),_l($)}function yl($){$.registerTool("vault_get_allowance",{description:"Check the current token allowance granted to the Monaco vault for a specific asset.",inputSchema:A.object({asset_id:A.string().describe("The asset UUID to check allowance for")})},async({asset_id:J})=>{let Y=await(await l$()).vault.getAllowance(J);return I$({asset_id:J,allowance:Y.toString()})})}function hl($){$.registerTool("vault_approve",{description:"Approve the Monaco vault contract to spend tokens on your behalf. Required before depositing ERC20 tokens.",inputSchema:A.object({asset_id:A.string().describe("The asset UUID to approve"),amount:A.string().regex(/^\d+$/,"Must be a non-negative integer string").describe("Max amount to approve as a raw integer string (e.g. '1000000' for 1 USDC with 6 decimals)")})},async({asset_id:J,amount:Q})=>{let X=await(await l$()).vault.approve(J,BigInt(Q));return I$({hash:X.hash,status:X.status})})}function ul($){$.registerTool("vault_deposit",{description:"Deposit tokens into the Monaco vault. Requires prior approval for ERC20 tokens (use vault_approve first).",inputSchema:A.object({asset_id:A.string().describe("The asset UUID to deposit"),amount:A.string().regex(/^\d+$/,"Must be a non-negative integer string").describe("Amount to deposit as a raw integer string (e.g. '1000000' for 1 USDC with 6 decimals)")})},async({asset_id:J,amount:Q})=>{let X=await(await l$()).vault.deposit(J,BigInt(Q));return I$({hash:X.hash,status:X.status})})}function ml($){$.registerTool("vault_needs_approval",{description:"Check if approval is needed before depositing a specific amount of tokens.",inputSchema:A.object({asset_id:A.string().describe("The asset UUID to check"),amount:A.string().regex(/^\d+$/,"Must be a non-negative integer string").describe("Amount to check as a raw integer string")})},async({asset_id:J,amount:Q})=>{let X=await(await l$()).vault.needsApproval(J,BigInt(Q));return I$({asset_id:J,amount:Q,needs_approval:X})})}function ll($){$.registerTool("vault_withdraw",{description:"Withdraw tokens from the Monaco vault back to your wallet.",inputSchema:A.object({asset_id:A.string().describe("The asset UUID to withdraw"),amount:A.string().regex(/^\d+$/,"Must be a non-negative integer string").describe("Amount to withdraw as a raw integer string (e.g. '1000000' for 1 USDC with 6 decimals)")})},async({asset_id:J,amount:Q})=>{let X=await(await l$()).vault.withdraw(J,BigInt(Q));return I$({hash:X.hash,status:X.status})})}function nl($){hl($),ul($),ll($),yl($),ml($)}function dl($,J){if(Ll($),Vl($),Ml($),Zl($),J.authenticated)gl($),wl($),Gl($),nl($),Xl($,{network:J.network})}if(!globalThis.fetch)globalThis.fetch=XU,globalThis.Headers=P6,globalThis.Request=OJ,globalThis.Response=G6;if(!globalThis.WebSocket)globalThis.WebSocket=dN.default;async function _Y$(){let $=mQ(),J=$.privateKey!==null,Q=new mL({name:"monaco-mcp-server",version:B3.version});dl(Q,{authenticated:J,network:$.network});let Y=new nL;await Q.connect(Y),console.error(J?"Monaco MCP server running on stdio":"Monaco MCP server running on stdio (public-only mode — set MONACO_PRIVATE_KEY and MONACO_CLIENT_ID for full access)")}_Y$().catch(($)=>{console.error("Fatal error:",$),process.exit(1)});