@0xmonaco/mcp-server 0.6.0 → 0.6.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.
- package/dist/bin.js +4 -4
- 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 L3($,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===e.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]})??L4(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===e.ZodString&&$.keyType._def.checks?.length){let{type:Y,...X}=I3($.keyType._def,J);return{...Q,propertyNames:X}}else if($.keyType?._def.typeName===e.ZodEnum)return{...Q,propertyNames:{enum:$.keyType._def.values}};else if($.keyType?._def.typeName===e.ZodBranded&&$.keyType._def.type._def.typeName===e.ZodString&&$.keyType._def.type._def.checks?.length){let{type:Y,...X}=A3($.keyType._def,J);return{...Q,propertyNames:X}}return Q}function rv($,J){if(J.mapStrategy==="record")return L3($,J);let Q=B$($.keyType._def,{...J,currentPath:[...J.currentPath,"items","items","0"]})||L4(J),Y=B$($.valueType._def,{...J,currentPath:[...J.currentPath,"items","items","1"]})||L4(J);return{type:"array",maxItems:125,items:{type:"array",items:[Q,Y],minItems:2,maxItems:2}}}function tv($){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 av($){return $.target==="openAi"?void 0:{not:L4({...$,currentPath:[...$.currentPath,"not"]})}}function sv($){return $.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var L7={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function $R($,J){if(J.target==="openApi3")return ev($,J);let Q=$.options instanceof Map?Array.from($.options.values()):$.options;if(Q.every((Y)=>(Y._def.typeName in L7)&&(!Y._def.checks||!Y._def.checks.length))){let Y=Q.reduce((X,G)=>{let W=L7[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 ev($,J)}var ev=($,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 JR($,J){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes($.innerType._def.typeName)&&(!$.innerType._def.checks||!$.innerType._def.checks.length)){if(J.target==="openApi3")return{type:L7[$.innerType._def.typeName],nullable:!0};return{type:[L7[$.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 QR($,J){let Q={type:"number"};if(!$.checks)return Q;for(let Y of $.checks)switch(Y.kind){case"int":Q.type="integer",e2(Q,"type",Y.message,J);break;case"min":if(J.target==="jsonSchema7")if(Y.inclusive)l$(Q,"minimum",Y.value,Y.message,J);else l$(Q,"exclusiveMinimum",Y.value,Y.message,J);else{if(!Y.inclusive)Q.exclusiveMinimum=!0;l$(Q,"minimum",Y.value,Y.message,J)}break;case"max":if(J.target==="jsonSchema7")if(Y.inclusive)l$(Q,"maximum",Y.value,Y.message,J);else l$(Q,"exclusiveMaximum",Y.value,Y.message,J);else{if(!Y.inclusive)Q.exclusiveMaximum=!0;l$(Q,"maximum",Y.value,Y.message,J)}break;case"multipleOf":l$(Q,"multipleOf",Y.value,Y.message,J);break}return Q}function XR($,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=vt(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=St($,J);if(W!==void 0)Y.additionalProperties=W;return Y}function St($,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 vt($){try{return $.isOptional()}catch{return!0}}var YR=($,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:L4(J)},Q]}:L4(J)};var GR=($,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 WR($,J){return B$($.type._def,J)}function DR($,J){let Y={type:"array",uniqueItems:!0,items:B$($.valueType._def,{...J,currentPath:[...J.currentPath,"items"]})};if($.minSize)l$(Y,"minItems",$.minSize.value,$.minSize.message,J);if($.maxSize)l$(Y,"maxItems",$.maxSize.value,$.maxSize.message,J);return Y}function UR($,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 KR($){return{not:L4($)}}function VR($){return L4($)}var OR=($,J)=>{return B$($.innerType._def,J)};var NR=($,J,Q)=>{switch(J){case e.ZodString:return I3($,Q);case e.ZodNumber:return QR($,Q);case e.ZodObject:return XR($,Q);case e.ZodBigInt:return uv($,Q);case e.ZodBoolean:return mv();case e.ZodDate:return $A($,Q);case e.ZodUndefined:return KR(Q);case e.ZodNull:return sv(Q);case e.ZodArray:return hv($,Q);case e.ZodUnion:case e.ZodDiscriminatedUnion:return $R($,Q);case e.ZodIntersection:return cv($,Q);case e.ZodTuple:return UR($,Q);case e.ZodRecord:return L3($,Q);case e.ZodLiteral:return iv($,Q);case e.ZodEnum:return nv($);case e.ZodNativeEnum:return tv($);case e.ZodNullable:return JR($,Q);case e.ZodOptional:return YR($,Q);case e.ZodMap:return rv($,Q);case e.ZodSet:return DR($,Q);case e.ZodLazy:return()=>$.getter()._def;case e.ZodPromise:return WR($,Q);case e.ZodNaN:case e.ZodNever:return av(Q);case e.ZodEffects:return pv($,Q);case e.ZodAny:return L4(Q);case e.ZodUnknown:return VR(Q);case e.ZodDefault:return dv($,Q);case e.ZodBranded:return A3($,Q);case e.ZodReadonly:return OR($,Q);case e.ZodCatch:return lv($,Q);case e.ZodPipeline:return GR($,Q);case e.ZodFunction:case e.ZodVoid:case e.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!==bv)return D}if(Y&&!Q){let D=Rt(Y,J);if(D!==void 0)return D}let X={def:$,path:J.currentPath,jsonSchema:void 0};J.seen.set($,X);let G=NR($,$.typeName,J),W=typeof G==="function"?B$(G(),J):G;if(W)Tt($,J,W);if(J.postProcess){let D=J.postProcess(W,$,J);return X.jsonSchema=W,D}return X.jsonSchema=W,W}var Rt=($,J)=>{switch(J.$refStrategy){case"root":return{$ref:$.path.join("/")};case"relative":return{$ref:w3(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`),L4(J);return J.$refStrategy==="seen"?L4(J):void 0}}},Tt=($,J,Q)=>{if($.description){if(Q.description=$.description,J.markdownDescription)Q.markdownDescription=$.description}return Q};var XA=($,J)=>{let Q=yv(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)??L4(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)??L4(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 Pt($){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 YA($,J){if(j0($))return nX($,{target:Pt(J?.target),io:J?.pipeStrategy??"input"});return XA($,{strictUnions:J?.strictUnions??!0,pipeStrategy:J?.pipeStrategy??"input"})}function GA($){let Q=EQ($)?.method;if(!Q)throw Error("Schema is missing a method literal");let Y=AV(Q);if(typeof Y!=="string")throw Error("Schema method literal must be a string");return Y}function WA($,J){let Q=jQ($,J);if(!Q.success)throw Q.error;return Q.data}var Ct=60000;class DA{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(eV,(J)=>{this._oncancel(J)}),this.setNotificationHandler(J3,(J)=>{this._onprogress(J)}),this.setRequestHandler($3,(J)=>({})),this._taskStore=$?.taskStore,this._taskMessageQueue=$?.taskMessageQueue,this._taskStore)this.setRequestHandler(Q3,async(J,Q)=>{let Y=await this._taskStore.getTask(J.params.taskId,Q.sessionId);if(!Y)throw new z$(q$.InvalidParams,"Failed to retrieve task: Task not found");return{...Y}}),this.setRequestHandler(Y3,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,N=new z$(O.error.code,O.error.message,O.error.data);V(N)}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$(q$.InvalidParams,`Task not found: ${X}`);if(!vQ(G.status))return await this._waitForTaskUpdate(X,Q.signal),await Y();if(vQ(G.status)){let W=await this._taskStore.getTaskResult(X,Q.sessionId);return this._clearTaskQueue(X),{...W,_meta:{...W._meta,[SQ]:{taskId:X}}}}return await Y()};return await Y()}),this.setRequestHandler(G3,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$(q$.InvalidParams,`Failed to list tasks: ${Y instanceof Error?Y.message:String(Y)}`)}}),this.setRequestHandler(D3,async(J,Q)=>{try{let Y=await this._taskStore.getTask(J.params.taskId,Q.sessionId);if(!Y)throw new z$(q$.InvalidParams,`Task not found: ${J.params.taskId}`);if(vQ(Y.status))throw new z$(q$.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$(q$.InvalidParams,`Task not found after cancellation: ${J.params.taskId}`);return{_meta:{},...X}}catch(Y){if(Y instanceof z$)throw Y;throw new z$(q$.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(q$.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),N7(X)||Fv(X))this._onresponse(X);else if(y2(X))this._onrequest(X,G);else if(Zv(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(q$.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?.[SQ]?.taskId;if(Q===void 0){let V={jsonrpc:"2.0",id:$.id,error:{code:q$.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=Iv($.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,N)=>{if(G.signal.aborted)throw new z$(q$.ConnectionClosed,"Request was cancelled");let M={...N,relatedRequestId:$.id};if(X&&!M.relatedTask)M.relatedTask={taskId:X};let H=M.relatedTask?.taskId??X;if(H&&D)await D.updateTaskStatus(H,"input_required");return await this.request(V,O,M)},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:q$.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),N7($))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(N7($)&&$.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(N7($))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$(q$.InternalError,String(G))}}return}let X;try{let G=await this.request($,i9,Q);if(G.task)X=G.task.taskId,yield{type:"taskCreated",task:G.task};else throw new z$(q$.InternalError,"Task creation did not return a task");while(!0){let W=await this.getTask({taskId:X},Q);if(yield{type:"taskStatus",task:W},vQ(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$(q$.InternalError,`Task ${X} failed`)};else if(W.status==="cancelled")yield{type:"error",error:new z$(q$.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$(q$.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=(I)=>{V(I)};if(!this._transport){O(Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{if(this.assertCapabilityForMethod($.method),W)this.assertTaskCapability($.method)}catch(I){O(I);return}Q?.signal?.throwIfAborted();let N=this._requestMessageId++,M={...$,jsonrpc:"2.0",id:N};if(Q?.onprogress)this._progressHandlers.set(N,Q.onprogress),M.params={...$.params,_meta:{...$.params?._meta||{},progressToken:N}};if(W)M.params={...M.params,task:W};if(D)M.params={...M.params,_meta:{...M.params?._meta||{},[SQ]:D}};let H=(I)=>{this._responseHandlers.delete(N),this._progressHandlers.delete(N),this._cleanupTimeout(N),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:N,reason:String(I)}},{relatedRequestId:Y,resumptionToken:X,onresumptiontoken:G}).catch((L)=>this._onerror(Error(`Failed to send cancellation: ${L}`)));let _=I instanceof z$?I:new z$(q$.RequestTimeout,String(I));V(_)};this._responseHandlers.set(N,(I)=>{if(Q?.signal?.aborted)return;if(I instanceof Error)return V(I);try{let _=jQ(J,I.result);if(!_.success)V(_.error);else U(_.data)}catch(_){V(_)}}),Q?.signal?.addEventListener("abort",()=>{H(Q?.signal?.reason)});let w=Q?.timeout??Ct,A=()=>H(z$.fromError(q$.RequestTimeout,"Request timed out",{timeout:w}));this._setupTimeout(N,w,Q?.maxTotalTimeout,A,Q?.resetTimeoutOnProgress??!1);let Z=D?.taskId;if(Z){let I=(_)=>{let L=this._responseHandlers.get(N);if(L)L(_);else this._onerror(Error(`Response handler missing for side-channeled request ${N}`))};this._requestResolvers.set(N,I),this._enqueueTaskMessage(Z,{type:"request",message:M,timestamp:Date.now()}).catch((_)=>{this._cleanupTimeout(N),V(_)})}else this._transport.send(M,{relatedRequestId:Y,resumptionToken:X,onresumptiontoken:G}).catch((I)=>{this._cleanupTimeout(N),V(I)})})}async getTask($,J){return this.request({method:"tasks/get",params:$},X3,J)}async getTaskResult($,J,Q){return this.request({method:"tasks/result",params:$},J,Q)}async listTasks($,J){return this.request({method:"tasks/list",params:$},W3,J)}async cancelTask($,J){return this.request({method:"tasks/cancel",params:$},_v,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||{},[SQ]: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||{},[SQ]: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||{},[SQ]:J.relatedTask}}};await this._transport.send(G,J)}setRequestHandler($,J){let Q=GA($);this.assertRequestHandlerCapability(Q),this._requestHandlers.set(Q,(Y,X)=>{let G=WA($,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=GA($);this._notificationHandlers.set(Q,(Y)=>{let X=WA($,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"&&y2(Y.message)){let X=Y.message.id,G=this._requestResolvers.get(X);if(G)G(new z$(q$.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$(q$.InvalidRequest,"Request cancelled"));return}let G=setTimeout(Y,Q);J.addEventListener("abort",()=>{clearTimeout(G),X(new z$(q$.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$(q$.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=w7.parse({method:"notifications/tasks/status",params:W});if(await this.notification(D),vQ(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$(q$.InvalidParams,`Task "${Y}" not found - it may have been cleaned up`);if(vQ(W.status))throw new z$(q$.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=w7.parse({method:"notifications/tasks/status",params:D});if(await this.notification(U),vQ(D.status))this._cleanupTaskProgressHandler(Y)}},listTasks:(Y)=>{return Q.listTasks(Y,J)}}}}function zR($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function MR($,J){let Q={...$};for(let Y in J){let X=Y,G=J[X];if(G===void 0)continue;let W=Q[X];if(zR(W)&&zR(G))Q[X]={...W,...G};else Q[X]=G}return Q}var nk=L0(JI(),1),ck=L0(pk(),1);function m1$(){let $=new nk.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return ck.default($),$}class OI{constructor($){this._ajv=$??m1$()}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 NI{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 ik($,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 ok($,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 zI extends DA{constructor($,J){super(J);if(this._serverInfo=$,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(I7.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 OI,this.setRequestHandler(m2,(Q)=>this._oninitialize(Q)),this.setNotificationHandler(l2,()=>this.oninitialized?.()),this._capabilities.logging)this.setRequestHandler(r2,async(Q,Y)=>{let X=Y.sessionId||Y.requestInfo?.headers["mcp-session-id"]||void 0,{level:G}=Q.params,W=I7.safeParse(G);if(W.success)this._loggingLevels.set(X,W.data);return{}})}get experimental(){if(!this._experimental)this._experimental={tasks:new NI(this)};return this._experimental}registerCapabilities($){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=MR(this._capabilities,$)}setRequestHandler($,J){let Y=EQ($)?.method;if(!Y)throw Error("Schema is missing a method literal");let X;if(j0(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=jQ(r9,D);if(!V.success){let H=V.error instanceof Error?V.error.message:String(V.error);throw new z$(q$.InvalidParams,`Invalid tools/call request: ${H}`)}let{params:O}=V.data,N=await Promise.resolve(J(D,U));if(O.task){let H=jQ(i9,N);if(!H.success){let w=H.error instanceof Error?H.error.message:String(H.error);throw new z$(q$.InvalidParams,`Invalid task creation result: ${w}`)}return H.data}let M=jQ(M3,N);if(!M.success){let H=M.error instanceof Error?M.error.message:String(M.error);throw new z$(q$.InvalidParams,`Invalid tools/call result: ${H}`)}return M.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($){ok(this._clientCapabilities?.tasks?.requests,$,"Client")}assertTaskHandlerCapability($){if(!this._capabilities)return;ik(this._capabilities.tasks?.requests,$,"Server")}async _oninitialize($){let J=$.params.protocolVersion;return this._clientCapabilities=$.params.capabilities,this._clientVersion=$.params.clientInfo,{protocolVersion:qv.includes(J)?J:b2,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"},sV)}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:$},a2,J);return this.request({method:"sampling/createMessage",params:$},t2,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},H3,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},H3,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$(q$.InvalidParams,`Elicitation response content does not match requested schema: ${W.errorMessage}`)}catch(G){if(G instanceof z$)throw G;throw new z$(q$.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:$},s2,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 tk=Symbol.for("mcp.completable");function MI($){return!!$&&typeof $==="object"&&tk in $}function ak($){return $[tk]?.complete}var rk;(function($){$.Completable="McpCompletable"})(rk||(rk={}));var l1$=/^[A-Za-z0-9._-]{1,128}$/;function d1$($){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(!l1$.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 p1$($,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 HI($){let J=d1$($);return p1$($,J.warnings),J.isValid}class qI{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 AI{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 zI($,J)}get experimental(){if(!this._experimental)this._experimental={tasks:new qI(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(bQ(z3)),this.server.assertCanSetRequestHandler(bQ(r9)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(z3,()=>({tools:Object.entries(this._registeredTools).filter(([,$])=>$.enabled).map(([$,J])=>{let Q={name:$,title:J.title,description:J.description,inputSchema:(()=>{let Y=b9(J.inputSchema);return Y?YA(Y,{strictUnions:!0,pipeStrategy:"input"}):n1$})(),annotations:J.annotations,execution:J.execution,_meta:J._meta};if(J.outputSchema){let Y=b9(J.outputSchema);if(Y)Q.outputSchema=YA(Y,{strictUnions:!0,pipeStrategy:"output"})}return Q})})),this.server.setRequestHandler(r9,async($,J)=>{try{let Q=this._registeredTools[$.params.name];if(!Q)throw new z$(q$.InvalidParams,`Tool ${$.params.name} not found`);if(!Q.enabled)throw new z$(q$.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$(q$.InternalError,`Tool ${$.params.name} has taskSupport '${X}' but was not registered with registerToolTask`);if(X==="required"&&!Y)throw new z$(q$.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===q$.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=b9($.inputSchema)??$.inputSchema,G=await qV(X,J);if(!G.success){let W="error"in G?G.error:"Unknown error",D=wV(W);throw new z$(q$.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$(q$.InvalidParams,`Output validation error: Tool ${Q} has an output schema but no structured content was provided`);let Y=b9($.outputSchema),X=await qV(Y,J.structuredContent);if(!X.success){let G="error"in X?X.error:"Unknown error",W=wV(G);throw new z$(q$.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((N)=>setTimeout(N,V));let O=await Q.taskStore.getTask(D);if(!O)throw new z$(q$.InternalError,`Task ${D} not found during polling`);U=O}return await Q.taskStore.getTaskResult(D)}setCompletionRequestHandler(){if(this._completionHandlerInitialized)return;this.server.assertCanSetRequestHandler(bQ(q3)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(q3,async($)=>{switch($.params.ref.type){case"ref/prompt":return Cv($),this.handlePromptCompletion($,$.params.ref);case"ref/resource":return kv($),this.handleResourceCompletion($,$.params.ref);default:throw new z$(q$.InvalidParams,`Invalid completion reference: ${$.params.ref}`)}}),this._completionHandlerInitialized=!0}async handlePromptCompletion($,J){let Q=this._registeredPrompts[J.name];if(!Q)throw new z$(q$.InvalidParams,`Prompt ${J.name} not found`);if(!Q.enabled)throw new z$(q$.InvalidParams,`Prompt ${J.name} disabled`);if(!Q.argsSchema)return p7;let X=EQ(Q.argsSchema)?.[$.params.argument.name];if(!MI(X))return p7;let G=ak(X);if(!G)return p7;let W=await G($.params.argument.value,$.params.context);return ek(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 p7;throw new z$(q$.InvalidParams,`Resource template ${$.params.ref.uri} not found`)}let Y=Q.resourceTemplate.completeCallback($.params.argument.name);if(!Y)return p7;let X=await Y($.params.argument.value,$.params.context);return ek(X)}setResourceRequestHandlers(){if(this._resourceHandlersInitialized)return;this.server.assertCanSetRequestHandler(bQ(U3)),this.server.assertCanSetRequestHandler(bQ(K3)),this.server.assertCanSetRequestHandler(bQ(V3)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(U3,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(K3,async()=>{return{resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([J,Q])=>({name:J,uriTemplate:Q.resourceTemplate.uriTemplate.toString(),...Q.metadata}))}}),this.server.setRequestHandler(V3,async($,J)=>{let Q=new URL($.params.uri),Y=this._registeredResources[Q.toString()];if(Y){if(!Y.enabled)throw new z$(q$.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$(q$.InvalidParams,`Resource ${Q} not found`)}),this._resourceHandlersInitialized=!0}setPromptRequestHandlers(){if(this._promptHandlersInitialized)return;this.server.assertCanSetRequestHandler(bQ(O3)),this.server.assertCanSetRequestHandler(bQ(N3)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(O3,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,$])=>$.enabled).map(([$,J])=>{return{name:$,title:J.title,description:J.description,arguments:J.argsSchema?i1$(J.argsSchema):void 0}})})),this.server.setRequestHandler(N3,async($,J)=>{let Q=this._registeredPrompts[$.params.name];if(!Q)throw new z$(q$.InvalidParams,`Prompt ${$.params.name} not found`);if(!Q.enabled)throw new z$(q$.InvalidParams,`Prompt ${$.params.name} disabled`);if(Q.argsSchema){let Y=b9(Q.argsSchema),X=await qV(Y,$.params.arguments);if(!X.success){let D="error"in X?X.error:"Unknown error",U=wV(D);throw new z$(q$.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:cX(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=cX(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 n9?D._def?.innerType:D;return MI(U)}))this.setCompletionRequestHandler()}return G}_createRegisteredTool($,J,Q,Y,X,G,W,D,U){HI($);let V={title:J,description:Q,inputSchema:sk(Y),outputSchema:sk(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")HI(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=cX(O.paramsSchema);if(typeof O.outputSchema<"u")V.outputSchema=cX(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(wI(D)){if(Y=J.shift(),J.length>1&&typeof J[0]==="object"&&J[0]!==null&&!wI(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 n1$={type:"object",properties:{}};function $x($){return $!==null&&typeof $==="object"&&"parse"in $&&typeof $.parse==="function"&&"safeParse"in $&&typeof $.safeParse==="function"}function c1$($){return"_def"in $||"_zod"in $||$x($)}function wI($){if(typeof $!=="object"||$===null)return!1;if(c1$($))return!1;if(Object.keys($).length===0)return!0;return Object.values($).some($x)}function sk($){if(!$)return;if(wI($))return cX($);return $}function i1$($){let J=EQ($);if(!J)return[];return Object.entries(J).map(([Q,Y])=>{let X=XS(Y),G=YS(Y);return{name:Q,description:X,required:!G}})}function bQ($){let Q=EQ($)?.method;if(!Q)throw Error("Schema is missing a method literal");let Y=AV(Q);if(typeof Y==="string")return Y;throw Error("Schema method literal must be a string")}function ek($){return{completion:{values:$.slice(0,100),total:$.length,hasMore:$.length>100}}}var p7={completion:{values:[],hasMore:!1}};import Qx from"node:process";class II{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),o1$(J)}clear(){this._buffer=void 0}}function o1$($){return jv.parse(JSON.parse($))}function Jx($){return JSON.stringify($)+`
|
|
112
|
-
`}class LI{constructor($=Qx.stdin,J=Qx.stdout){this._stdin=$,this._stdout=J,this._readBuffer=new II,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=Jx($);if(this._stdout.write(Q))J();else this._stdout.once("drain",J)})}}var GO={name:"@0xmonaco/mcp-server",version:"0.6.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 t1$={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 ZJ(){let $=process.env.MONACO_PRIVATE_KEY||null;if($&&!$.startsWith("0x"))throw Error("MONACO_PRIVATE_KEY must start with '0x'.");let J=process.env.MONACO_CLIENT_ID||null;if($&&!J)throw Error("MONACO_CLIENT_ID is required when MONACO_PRIVATE_KEY is set.");let Q=["mainnet","development","staging","local"],Y=process.env.MONACO_NETWORK||"mainnet";if(!Q.includes(Y))throw Error(`MONACO_NETWORK must be one of: ${Q.join(", ")}. Got: "${Y}".`);let X=Y,G=process.env.MONACO_RPC_URL||t1$[X];return{privateKey:$,clientId:J,network:X,seiRpcUrl:G}}function a1$($){return $.replace(/_([a-z])/g,(J,Q)=>Q.toUpperCase())}function n7($){if($===null||$===void 0)return $;if(typeof $!=="object")return $;if(Array.isArray($))return $.map((Q)=>n7(Q));let J={};for(let[Q,Y]of Object.entries($))J[a1$(Q)]=typeof Y==="object"&&Y!==null?n7(Y):Y;return J}var c7=[0.0001,0.001,0.01,0.1,1,10,100,1000,1e4];var s1$=1e4,e1$=15000,$J$=30000;function BI($,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"}},N=()=>{let d=new URL($);if(Y)d.searchParams.set("token",Y);return d.toString()},M=()=>{if(W)clearInterval(W),W=null},H=()=>{M(),W=setInterval(()=>{if(Q?.readyState===WebSocket.OPEN)Q.send(JSON.stringify({type:"Ping"}))},e1$)},w=()=>{if(G)clearTimeout(G),G=null},A=()=>{if(!D||X>=U){console.error("WebSocket: Max reconnect attempts reached");return}X++;let d=Math.min(1000*2**X,$J$);G=setTimeout(()=>L(),d)},Z=(d)=>{if(Q?.readyState===WebSocket.OPEN)Q.send(JSON.stringify(d))},I=()=>{let d=Array.from(V.keys());if(d.length>0)Z({type:"Subscribe",channels:d})},_=(d)=>{if(d.type!=="Event"||!d.channel)return;for(let[X$,C]of V)if(d.channel===X$||d.channel.startsWith(`${X$}:`)){for(let u of C)u(d.data);return}},L=()=>{return new Promise((d,X$)=>{if(Q?.readyState===WebSocket.CONNECTING||Q?.readyState===WebSocket.OPEN){d();return}try{Q=new WebSocket(N());let C=setTimeout(()=>{if(Q?.readyState===WebSocket.CONNECTING)Q.close(),X$(Error("WebSocket connection timeout"))},s1$);Q.onopen=()=>{clearTimeout(C),X=0,H(),I(),J.onStatusChange?.("connected"),d()},Q.onmessage=(u)=>{try{let h=JSON.parse(u.data);if(h.type==="Pong")return;_(h)}catch(h){console.warn("WebSocket: Failed to parse message",h)}},Q.onclose=(u)=>{if(clearTimeout(C),M(),J.onStatusChange?.("disconnected"),D&&u.code!==1000)A()},Q.onerror=()=>clearTimeout(C)}catch(C){J.onStatusChange?.("disconnected"),X$(C)}})},F=()=>{D=!1,w(),M(),V.clear(),Q?.close(1000,"Client disconnect"),Q=null,J.onStatusChange?.("disconnected")},E=(d,X$)=>{let C=!V.has(d);if(!V.has(d))V.set(d,new Set);if(V.get(d)?.add(X$),C&&Q?.readyState===WebSocket.OPEN)Z({type:"Subscribe",channels:[d]});return()=>{let u=V.get(d);if(u){if(u.delete(X$),u.size===0){if(V.delete(d),Q?.readyState===WebSocket.OPEN)Z({type:"Unsubscribe",channels:[d]})}}}};return{connect:L,disconnect:F,isConnected:()=>Q?.readyState===WebSocket.OPEN,getStatus:O,setToken:(d)=>{if(Y=d,Q?.readyState===WebSocket.OPEN||Q?.readyState===WebSocket.CONNECTING)Q.close(1000,"Token updated, reconnecting."),Q=null;L().catch((X$)=>{console.warn("WebSocket: Failed to reconnect after token update:",X$)})},orders:(d,X$,C)=>{let u=`orders:${d}:${X$}`;return E(u,(h)=>{try{let p=h,Q$={orderId:p.order_id,eventType:p.event_type,timestamp:p.timestamp,data:n7(p.data)};C(Q$)}catch(p){console.error("WebSocket: Error processing order event",p)}})},orderbook:(d,X$,C,u,h)=>{if(!d||!X$||C===void 0||!u)throw Error(`orderbook subscription requires all params: tradingPairId="${d}", tradingMode="${X$}", magnitude=${C} (valid: ${c7.join(", ")}), quotationMode="${u}" (valid: "BASE", "QUOTE")`);if(!c7.includes(C))throw Error(`Invalid magnitude: ${C}. Must be one of: ${c7.join(", ")}`);let p=`orderbook:${d}:${X$}:${C}:${u.toLowerCase()}`;return E(p,(Q$)=>{try{let V$=Q$,f$=V$.data,t$={tradingPairId:V$.pair,tradingMode:V$.trading_mode,bids:(f$?.bids||[]).map((S4)=>({price:S4.price,quantity:S4.quantity,orderCount:S4.order_count||0})),asks:(f$?.asks||[]).map((S4)=>({price:S4.price,quantity:S4.quantity,orderCount:S4.order_count||0})),bestBid:f$?.best_bid,bestAsk:f$?.best_ask,bidVolume:f$?.bid_volume||void 0,askVolume:f$?.ask_volume||void 0,priceChange:f$?.price_change?{side:f$.price_change.side,oldPrice:f$.price_change.old_price,newPrice:f$.price_change.new_price,levelRemoved:f$.price_change.level_removed||!1,levelAdded:f$.price_change.level_added||!1}:void 0,baseDecimals:V$.base_decimals||0,quoteDecimals:V$.quote_decimals||0,timestamp:V$.timestamp||new Date().toISOString(),sequence:V$.sequence_number||0};h(t$)}catch(V$){console.error("WebSocket: Error processing orderbook event",V$)}})},ohlcv:(d,X$,C,u)=>{let h=`ohlcv:${d}:${X$}:${C}`;return E(h,(p)=>{try{let Q$=p,V$=Q$.data,f$={tradingPairId:Q$.pair,tradingMode:Q$.trading_mode,interval:Q$.interval,candlestick:{T:V$.period_start||0,t:V$.period_end||0,o:V$.open||"0",h:V$.high||"0",l:V$.low||"0",c:V$.close||"0",v:V$.volume||"0",s:Q$.pair,i:Q$.interval,n:V$.trades_count||0}};u(f$)}catch(Q$){console.error("WebSocket: Error processing OHLCV event",Q$)}})},trades:(d,X$)=>{let C=`trades:${d}`;return E(C,(u)=>{try{let h=u,p=h.data,Q$={eventType:"trade",tradingPairId:h.pair_id,tradingMode:h.trading_mode.toUpperCase(),data:{tradeId:p.trade_id,price:p.price,quantity:p.quantity,makerSide:p.maker_side.toUpperCase(),executedAt:p.executed_at}};X$(Q$)}catch(h){console.error("WebSocket: Error processing trade event",h)}})},movements:(d)=>{return E("movements",(C)=>{try{let u=C,h=u.data,p={eventType:"movement",userId:u.user_id,data:{id:h.id,entryType:h.entry_type,transactionType:h.transaction_type,tokenAddress:h.token_address,amount:String(h.amount),amountRaw:h.amount_raw,balanceBefore:h.balance_before!=null?String(h.balance_before):void 0,balanceAfter:h.balance_after!=null?String(h.balance_after):void 0,lockedBefore:h.locked_before!=null?String(h.locked_before):void 0,lockedAfter:h.locked_after!=null?String(h.locked_after):void 0,referenceId:h.reference_id,referenceType:h.reference_type,description:h.description,txHash:h.tx_hash,createdAt:h.created_at,decimals:h.decimals}};d(p)}catch(u){console.error("WebSocket: Error processing movement event",u)}})},userOrders:(d)=>{return E("orders",(C)=>{try{let u=C,h={orderId:u.order_id,eventType:u.event_type,timestamp:u.timestamp,data:n7(u.data)};d(h)}catch(u){console.error("WebSocket: Error processing user order event",u)}})},balances:(d)=>{return E("balances",(C)=>{try{let u=C,h=u.data,p={eventType:"balance_update",userId:u.user_id,data:{tokenAddress:h.token_address,tokenSymbol:h.token_symbol,available:h.available,availableRaw:h.available_raw,locked:h.locked,lockedRaw:h.locked_raw,total:h.total,totalRaw:h.total_raw,reason:h.reason,referenceId:h.reference_id,updatedAt:h.updated_at}};d(p)}catch(u){console.error("WebSocket: Error processing balance event",u)}})}}}var gQ=L0(DO(),1),Mf=["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 DY($,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)=>DY(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(Mf.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]=DY(G,J,Q+1)}return Y}if(typeof $==="string"){if($.length>1000)return`${$.substring(0,1000)}... [truncated]`;return $}return $}class UY 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 R4 extends UY{code="INVALID_CONFIG";field;value;constructor($,J,Q,Y){let X=J?`Check the '${J}' configuration parameter. ${HJ$(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(Mf.some((Y)=>J.includes(Y.toLowerCase())))$="[REDACTED]";else $=DY(this.value)}else $=DY(this.value);return{...super.toJSON(),field:this.field,value:$}}}function HJ$($){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 i7 extends UY{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 P6 extends UY{code="API_ERROR";endpoint;statusCode;responseBody;requestBody;requestId;retryAfter;constructor($,J){let{suggestion:Q,retryable:Y}=qJ$(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:DY(this.responseBody),requestBody:DY(this.requestBody),requestId:this.requestId,retryAfter:this.retryAfter}}}function qJ$($,J,Q){if(!$)return{suggestion:"Network request failed. Check your internet connection and try again.",retryable:!0};if($===gQ.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($===gQ.StatusCodes.FORBIDDEN)return{suggestion:"Access denied. Ensure your application has the required permissions and your client ID is valid.",retryable:!1};if($===gQ.StatusCodes.NOT_FOUND)return{suggestion:"Resource not found. Check that the ID or identifier is correct and the resource exists.",retryable:!1};if($===gQ.StatusCodes.CONFLICT)return{suggestion:"Resource conflict. The resource may have been modified. Refresh and try again.",retryable:!0};if($===gQ.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($===gQ.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($>=gQ.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 $8 extends UY{code="CONTRACT_ERROR";revertReason;transactionHash;contractAddress;constructor($,J){let Q=wJ$(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 wJ$($){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 AJ$={local:"http://localhost:8080",development:"https://develop.apimonaco.xyz",staging:"https://staging.apimonaco.xyz",mainnet:"https://api.monaco.xyz"},IJ$={local:"ws://localhost:8085/ws",development:"wss://develop.apimonaco.xyz/ws",staging:"wss://staging.apimonaco.xyz/ws",mainnet:"wss://api.monaco.xyz/ws"};function o7($){return AJ$[$]}function vI($){return IJ$[$]}var Qm=L0(DO(),1);var UO=256,KO;function VO($=11){if(!KO||UO+$>512){KO="",UO=0;for(let J=0;J<256;J++)KO+=(256+Math.random()*256|0).toString(16).substring(1)}return KO.substring(UO,UO+++$)}function OO($){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),N=$.pollingInterval??O,M=$.cacheTime??N,H=$.account?E$($.account):void 0,{config:w,request:A,value:Z}=$.transport({account:H,chain:Q,pollingInterval:N}),I={...w,...Z},_={account:H,batch:J,cacheTime:M,ccipRead:Y,chain:Q,dataSuffix:X,key:G,name:W,pollingInterval:N,request:A,transport:I,type:D,uid:VO(),...U?{experimental_blockTag:U}:{}};function L(F){return(E)=>{let R=E(F);for(let y in _)delete R[y];let k={...F,...R};return Object.assign(k,{extend:L(k)})}}return Object.assign(_,{extend:L(_)})}FJ();iQ();z0();K8();w$();P$();oQ();function ZY($){if(!($ instanceof T))return!1;let J=$.walk((Q)=>Q instanceof BY);if(!(J instanceof BY))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}qW();a4();w$();P0();function sO($){if($.length!==66)return null;if($.indexOf("[")!==0)return null;if($.indexOf("]")!==65)return null;let J=`0x${$.slice(1,65)}`;if(!j4(J))return null;return J}function wW($){let J=new Uint8Array(32).fill(0);if(!$)return c$(J);let Q=$.split(".");for(let Y=Q.length-1;Y>=0;Y-=1){let X=sO(Q[Y]),G=X?T0(X):X4(W1(Q[Y]),"bytes");J=X4(M4([J,G]),"bytes")}return c$(J)}a4();function cb($){return`[${$.slice(2)}]`}a4();w$();P0();function ib($){let J=new Uint8Array(32).fill(0);if(!$)return c$(J);return sO($)||X4(W1($))}function FY($){let J=$.replace(/^\.|\.$/gm,"");if(J.length===0)return new Uint8Array(1);let Q=new Uint8Array(W1(J).byteLength+2),Y=0,X=J.split(".");for(let G=0;G<X.length;G++){let W=W1(X[G]);if(W.byteLength>255)W=W1(cb(ib(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 n($,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)}iQ();z0();f4();P$();oQ();z8();dY();var ZQ$=3;function M0($,{abi:J,address:Q,args:Y,docsPath:X,functionName:G,sender:W}){let D=$ instanceof xJ?$:$ instanceof T?$.walk((w)=>("data"in w))||$.walk():{},{code:U,data:V,details:O,message:N,shortMessage:M}=D,H=(()=>{if($ instanceof Y1)return new pL({functionName:G});if([ZQ$,bJ.code].includes(U)&&(V||O||N||M)||U===b0.code&&O==="execution reverted"&&V)return new BY({abi:J,data:typeof V==="object"?V.data:V,functionName:G,message:D instanceof N8?O:M??N});return $})();return new HW(H,{abi:J,args:Y,contractAddress:Q,docsPath:X,functionName:G,sender:W})}X5();async function h4($,J){let{abi:Q,address:Y,args:X,functionName:G,...W}=J,D=w4({abi:Q,args:X,functionName:G});try{let{data:U}=await n($,p1,"call")({...W,data:D,to:Y});return t6({abi:Q,args:X,functionName:G,data:U||"0x"})}catch(U){throw M0(U,{abi:Q,address:Y,args:X,docsPath:"/docs/contract/readContract",functionName:G})}}async function kg($,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 x0({blockNumber:Q,chain:U,contract:"ensUniversalResolver"})})(),O=U?.ensTlds;if(O&&!O.some((M)=>G.endsWith(M)))return null;let N=(()=>{if(X!=null)return[wW(G),BigInt(X)];return[wW(G)]})();try{let M=w4({abi:TI,functionName:"addr",args:N}),H={address:V,abi:zO,functionName:"resolveWithGateways",args:[B4(FY(G)),M,W??[fJ]],blockNumber:Q,blockTag:Y},A=await n($,h4,"readContract")(H);if(A[0]==="0x")return null;let Z=t6({abi:TI,args:N,functionName:"addr",data:A[0]});if(Z==="0x")return null;if(r4(Z)==="0x00")return null;return Z}catch(M){if(D)throw M;if(ZY(M))return null;throw M}}P$();class _B extends T{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 B8 extends T{constructor({reason:$}){super(`ENS NFT avatar URI is invalid. ${$}`,{name:"EnsAvatarInvalidNftUriError"})}}class PW extends T{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 SB extends T{constructor({namespace:$}){super(`ENS NFT avatar namespace "${$}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}}var nQ$=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,cQ$=/^(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>\/.*)?$/,iQ$=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,oQ$=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function rQ$($){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 xg($,J){if(!$)return J;if($.endsWith("/"))return $.slice(0,-1);return $}function vB({uri:$,gatewayUrls:J}){let Q=iQ$.test($);if(Q)return{uri:$,isOnChain:!0,isEncoded:Q};let Y=xg(J?.ipfs,"https://ipfs.io"),X=xg(J?.arweave,"https://arweave.net"),G=$.match(nQ$),{protocol:W,subpath:D,target:U,subtarget:V=""}=G?.groups||{},O=W==="ipns:/"||D==="ipns/",N=W==="ipfs:/"||D==="ipfs/"||cQ$.test($);if($.startsWith("http")&&!O&&!N){let H=$;if(J?.arweave)H=$.replace(/https:\/\/arweave.net/g,J?.arweave);return{uri:H,isOnChain:!1,isEncoded:!1}}if((O||N)&&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 M=$.replace(oQ$,"");if(M.startsWith("<svg"))M=`data:image/svg+xml;base64,${btoa(M)}`;if(M.startsWith("data:")||M.startsWith("{"))return{uri:M,isOnChain:!0,isEncoded:!1};throw new PW({uri:$})}function RB($){if(typeof $!=="object"||!("image"in $)&&!("image_url"in $)&&!("image_data"in $))throw new _B({data:$});return $.image||$.image_url||$.image_data}async function fg({gatewayUrls:$,uri:J}){try{let Q=await fetch(J).then((X)=>X.json());return await zN({gatewayUrls:$,uri:RB(Q)})}catch{throw new PW({uri:J})}}async function zN({gatewayUrls:$,uri:J}){let{uri:Q,isOnChain:Y}=vB({uri:J,gatewayUrls:$});if(Y)return Q;if(await rQ$(Q))return Q;throw new PW({uri:J})}function bg($){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 B8({reason:"Only EIP-155 supported"});if(!W)throw new B8({reason:"Chain ID not found"});if(!U)throw new B8({reason:"Contract address not found"});if(!X)throw new B8({reason:"Token ID not found"});if(!D)throw new B8({reason:"ERC namespace not found"});return{chainID:Number.parseInt(W,10),namespace:D.toLowerCase(),contractAddress:U,tokenID:X}}async function gg($,{nft:J}){if(J.namespace==="erc721")return h4($,{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 h4($,{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 SB({namespace:J.namespace})}async function yg($,{gatewayUrls:J,record:Q}){if(/eip155:/i.test(Q))return tQ$($,{gatewayUrls:J,record:Q});return zN({uri:Q,gatewayUrls:J})}async function tQ$($,{gatewayUrls:J,record:Q}){let Y=bg(Q),X=await gg($,{nft:Y}),{uri:G,isOnChain:W,isEncoded:D}=vB({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 zN({uri:RB(O),gatewayUrls:J})}let U=Y.tokenID;if(Y.namespace==="erc1155")U=U.replace("0x","").padStart(64,"0");return fg({gatewayUrls:J,uri:G.replace(/(?:0x)?{id}/,U)})}FJ();iQ();z0();K8();w$();qW();async function MN($,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 x0({blockNumber:Q,chain:U,contract:"ensUniversalResolver"})})(),O=U?.ensTlds;if(O&&!O.some((N)=>G.endsWith(N)))return null;try{let N={address:V,abi:zO,args:[B4(FY(G)),w4({abi:RI,functionName:"text",args:[wW(G),X]}),W??[fJ]],functionName:"resolveWithGateways",blockNumber:Q,blockTag:Y},H=await n($,h4,"readContract")(N);if(H[0]==="0x")return null;let w=t6({abi:RI,functionName:"text",data:H[0]});return w===""?null:w}catch(N){if(D)throw N;if(ZY(N))return null;throw N}}async function hg($,{blockNumber:J,blockTag:Q,assetGatewayUrls:Y,name:X,gatewayUrls:G,strict:W,universalResolverAddress:D}){let U=await n($,MN,"getEnsText")({blockNumber:J,blockTag:Q,key:"avatar",name:X,universalResolverAddress:D,gatewayUrls:G,strict:W});if(!U)return null;try{return await yg($,{record:U,gatewayUrls:Y})}catch{return null}}FJ();K8();qW();async function ug($,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 x0({blockNumber:Y,chain:U,contract:"ensUniversalResolver"})})();try{let O={address:V,abi:qf,args:[Q,G,W??[fJ]],functionName:"reverseWithGateways",blockNumber:Y,blockTag:X},N=n($,h4,"readContract"),[M]=await N(O);return M||null}catch(O){if(D)throw O;if(ZY(O))return null;throw O}}K8();w$();async function mg($,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 x0({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 n($,h4,"readContract")({address:W,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[B4(FY(X))],blockNumber:Q,blockTag:Y});return U}X5();w$();IB();pJ();d1();async function HN($,J){let{account:Q=$.account,blockNumber:Y,blockTag:X="latest",blobs:G,data:W,gas:D,gasPrice:U,maxFeePerBlobGas:V,maxFeePerGas:O,maxPriorityFeePerGas:N,to:M,value:H,...w}=J,A=Q?E$(Q):void 0;try{e4(J);let I=(typeof Y==="bigint"?g(Y):void 0)||X,_=$.chain?.formatters?.transactionRequest?.format,F=(_||A6)({...y0(w,{format:_}),account:A,blobs:G,data:W,gas:D,gasPrice:U,maxFeePerBlobGas:V,maxFeePerGas:O,maxPriorityFeePerGas:N,to:M,value:H},"createAccessList"),E=await $.request({method:"eth_createAccessList",params:[F,I]});return{accessList:E.accessList,gasUsed:BigInt(E.gasUsed)}}catch(Z){throw VN(Z,{...J,account:A,chain:$.chain})}}function XX($,{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 lg($){let J=XX($,{method:"eth_newBlockFilter"}),Q=await $.request({method:"eth_newBlockFilter"});return{id:Q,request:J(Q),type:"block"}}f4();P$();class TB extends T{constructor($){super(`Filter type "${$}" is not supported.`,{name:"FilterTypeNotSupportedError"})}}a4();P0();KW();TJ();jJ();cQ();var dg="/docs/contract/encodeEventTopics";function n1($){let{abi:J,eventName:Q,args:Y}=$,X=J[0];if(Q){let U=r6({abi:J,name:Q});if(!U)throw new wO(Q,{docsPath:dg});X=U}if(X.type!=="event")throw new wO(void 0,{docsPath:dg});let G=d4(X),W=nQ(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,N)=>{if(Array.isArray(V[N]))return V[N].map((M,H)=>pg({param:O,value:V[N][H]}));return typeof V[N]<"u"&&V[N]!==null?pg({param:O,value:V[N]}):null})??[]}return[W,...D]}function pg({param:$,value:J}){if($.type==="string"||$.type==="bytes")return X4(T0(J));if($.type==="tuple"||$.type.match(/^(.*)\[(\d+)?\]$/))throw new TB($.type);return C6([$],[J])}w$();async function qN($,J){let{address:Q,abi:Y,args:X,eventName:G,fromBlock:W,strict:D,toBlock:U}=J,V=XX($,{method:"eth_newFilter"}),O=G?n1({abi:Y,args:X,eventName:G}):void 0,N=await $.request({method:"eth_newFilter",params:[{address:Q,fromBlock:typeof W==="bigint"?g(W):W,toBlock:typeof U==="bigint"?g(U):U,topics:O}]});return{abi:Y,args:X,eventName:G,id:N,request:V(N),strict:Boolean(D),type:"event"}}w$();async function wN($,{address:J,args:Q,event:Y,events:X,fromBlock:G,strict:W,toBlock:D}={}){let U=X??(Y?[Y]:void 0),V=XX($,{method:"eth_newFilter"}),O=[];if(U){if(O=[U.flatMap((H)=>n1({abi:[H],eventName:H.name,args:Q}))],Y)O=O[0]}let N=await $.request({method:"eth_newFilter",params:[{address:J,fromBlock:typeof G==="bigint"?g(G):G,toBlock:typeof D==="bigint"?g(D):D,...O.length?{topics:O}:{}}]});return{abi:U,args:Q,eventName:Y?Y.name:void 0,fromBlock:G,id:N,request:V(N),strict:Boolean(W),toBlock:D,type:"event"}}async function AN($){let J=XX($,{method:"eth_newPendingTransactionFilter"}),Q=await $.request({method:"eth_newPendingTransactionFilter"});return{id:Q,request:J(Q),type:"transaction"}}z0();P$();lQ();P0();function IN($){let J=X4(`0x${$.substring(4)}`).substring(26);return RJ(`0x${J}`)}R0();t4();w$();async function Sy({hash:$,signature:J}){let Q=j4($)?$:B4($),{secp256k1:Y}=await Promise.resolve().then(() => (W5(),Ey));return`0x${(()=>{if(typeof J==="object"&&"r"in J&&"s"in J){let{r:V,s:O,v:N,yParity:M}=J,H=Number(M??N),w=_y(H);return new Y.Signature(T4(V),T4(O)).addRecoveryBit(w)}let W=j4(J)?J:B4(J);if(n$(W)!==65)throw Error("invalid signature length");let D=E4(`0x${W.slice(130)}`),U=_y(D);return Y.Signature.fromCompact(W.substring(2,130)).addRecoveryBit(U)})().recoverPublicKey(Q.substring(2)).toHex(!1)}`}function _y($){if($===0||$===1)return $;if($===27)return 0;if($===28)return 1;throw Error("Invalid yParityOrV value")}async function EN({hash:$,signature:J}){return IN(await Sy({hash:$,signature:J}))}a4();w$();P$();PO();a4();w$();function iJ($,J="hex"){let Q=vy($),Y=VY(new Uint8Array(Q.length));if(Q.encode(Y),J==="hex")return c$(Y.bytes);return Y.bytes}function vy($){if(Array.isArray($))return jX$($.map((J)=>vy(J)));return EX$($)}function jX$($){let J=$.reduce((X,G)=>X+G.length,0),Q=Ry(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 EX$($){let J=typeof $==="string"?p4($):$,Q=Ry(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 Ry($){if($<256)return 1;if($<65536)return 2;if($<16777216)return 3;if($<4294967296)return 4;throw new T("Length is too large.")}P0();function _N($){let{chainId:J,nonce:Q,to:Y}=$,X=$.contractAddress??$.address,G=X4(w6(["0x05",iJ([J?g(J):"0x",X,Q?g(Q):"0x"])]));if(Y==="bytes")return p4(G);return G}async function UX($){let{authorization:J,signature:Q}=$;return EN({hash:_N(J),signature:Q??J})}w$();aO();LY();P$();f0();class $Z extends T{constructor($,{account:J,docsPath:Q,chain:Y,data:X,gas:G,gasPrice:W,maxFeePerGas:D,maxPriorityFeePerGas:U,nonce:V,to:O,value:N}){let M=V8({from:J?.address,to:O,value:typeof N<"u"&&`${IY(N)} ${Y?.nativeCurrency?.symbol||"ETH"}`,data:X,gas:G,gasPrice:typeof W<"u"&&`${n4(W)} gwei`,maxFeePerGas:typeof D<"u"&&`${n4(D)} gwei`,maxPriorityFeePerGas:typeof U<"u"&&`${n4(U)} gwei`,nonce:V});super($.shortMessage,{cause:$,docsPath:Q,metaMessages:[...$.metaMessages?[...$.metaMessages," "]:[],"Estimate Gas Arguments:",M].filter(Boolean),name:"EstimateGasExecutionError"});Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=$}}JX();TW();function Ty($,{docsPath:J,...Q}){let Y=(()=>{let X=QX($,Q);if(X instanceof O1)return $;return X})();return new $Z(Y,{docsPath:J,...Q})}pJ();NN();d1();LY();P$();class hW extends T{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}}class j8 extends T{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}}class JZ extends T{constructor({maxPriorityFeePerGas:$}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${n4($)} gwei).`,{name:"MaxFeePerGasTooLowError"})}}t4();P$();class uW extends T{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$();t4();var QZ={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function D5($,J){let Q={...$,blockHash:$.blockHash?$.blockHash:null,blockNumber:$.blockNumber?BigInt($.blockNumber):null,chainId:$.chainId?E4($.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?E4($.nonce):void 0,to:$.to?$.to:null,transactionIndex:$.transactionIndex?Number($.transactionIndex):null,type:$.type?QZ[$.type]:void 0,typeHex:$.type?$.type:void 0,value:$.value?BigInt($.value):void 0,v:$.v?BigInt($.v):void 0};if($.authorizationList)Q.authorizationList=_X$($.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 _X$($){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 SN($,J){let Q=($.transactions??[]).map((Y)=>{if(typeof Y==="string")return Y;return D5(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 $6($,{blockHash:J,blockNumber:Q,blockTag:Y=$.experimental_blockTag??"latest",includeTransactions:X}={}){let G=X??!1,W=Q!==void 0?g(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 uW({blockHash:J,blockNumber:Q});return($.chain?.formatters?.block?.format||SN)(D,"getBlock")}async function U5($){let J=await $.request({method:"eth_gasPrice"});return BigInt(J)}async function Py($,J){return XZ($,J)}async function XZ($,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 n($,$6,"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 T4(W)}catch{let[G,W]=await Promise.all([Q?Promise.resolve(Q):n($,$6,"getBlock")({}),n($,U5,"getGasPrice")({})]);if(typeof G.baseFeePerGas!=="bigint")throw new j8;let D=W-G.baseFeePerGas;if(D<0n)return 0n;return D}}async function Cy($,J){return vN($,J)}async function vN($,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 hW;let U=10**(W.toString().split(".")[1]?.length??0),V=(M)=>M*BigInt(Math.ceil(W*U))/BigInt(U),O=Q?Q:await n($,$6,"getBlock")({});if(typeof Y?.fees?.estimateFeesPerGas==="function"){let M=await Y.fees.estimateFeesPerGas({block:Q,client:$,multiply:V,request:X,type:G});if(M!==null)return M}if(G==="eip1559"){if(typeof O.baseFeePerGas!=="bigint")throw new j8;let M=typeof X?.maxPriorityFeePerGas==="bigint"?X.maxPriorityFeePerGas:await XZ($,{block:O,chain:Y,request:X}),H=V(O.baseFeePerGas);return{maxFeePerGas:X?.maxFeePerGas??H+M,maxPriorityFeePerGas:M}}return{gasPrice:X?.gasPrice??V(await n($,U5,"getGasPrice")({}))}}t4();w$();async function K5($,{address:J,blockTag:Q="latest",blockNumber:Y}){let X=await $.request({method:"eth_getTransactionCount",params:[J,typeof Y==="bigint"?g(Y):Q]},{dedupe:Boolean(Y)});return E4(X)}a4();w$();function V5($){let{kzg:J}=$,Q=$.to??(typeof $.blobs[0]==="string"?"hex":"bytes"),Y=typeof $.blobs[0]==="string"?$.blobs.map((G)=>p4(G)):$.blobs,X=[];for(let G of Y)X.push(Uint8Array.from(J.blobToKzgCommitment(G)));return Q==="bytes"?X:X.map((G)=>c$(G))}a4();w$();function O5($){let{kzg:J}=$,Q=$.to??(typeof $.blobs[0]==="string"?"hex":"bytes"),Y=typeof $.blobs[0]==="string"?$.blobs.map((W)=>p4(W)):$.blobs,X=typeof $.commitments[0]==="string"?$.commitments.map((W)=>p4(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)=>c$(W))}w$();kB();var ky=Z8;a4();w$();function xy($,J){let Q=J||"hex",Y=ky(j4($,{strict:!1})?T0($):$);if(Q==="bytes")return Y;return B4(Y)}function fy($){let{commitment:J,version:Q=1}=$,Y=$.to??(typeof J==="string"?"hex":"bytes"),X=xy(J,"bytes");return X.set([Q],0),Y==="bytes"?X:c$(X)}function RN($){let{commitments:J,version:Q}=$,Y=$.to??(typeof J[0]==="string"?"hex":"bytes"),X=[];for(let G of J)X.push(fy({commitment:G,to:Y,version:Q}));return X}var by=32,gy=4096,yy=131072,YZ=761855;var TN=1;P$();class GZ extends T{constructor({maxSize:$,size:J}){super("Blob size is too large.",{metaMessages:[`Max: ${$} bytes`,`Given: ${J} bytes`],name:"BlobSizeTooLargeError"})}}class mW extends T{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class WZ extends T{constructor({hash:$,size:J}){super(`Versioned hash "${$}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${J}`],name:"InvalidVersionedHashSizeError"})}}class DZ extends T{constructor({hash:$,version:J}){super(`Versioned hash "${$}" version is invalid.`,{metaMessages:[`Expected: ${TN}`,`Received: ${J}`],name:"InvalidVersionedHashVersionError"})}}PO();R0();a4();w$();function hy($){let J=$.to??(typeof $.data==="string"?"hex":"bytes"),Q=typeof $.data==="string"?p4($.data):$.data,Y=n$(Q);if(!Y)throw new mW;if(Y>YZ)throw new GZ({maxSize:YZ,size:Y});let X=[],G=!0,W=0;while(G){let D=VY(new Uint8Array(yy)),U=0;while(U<gy){let V=Q.slice(W,W+(by-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)=>c$(D.bytes))}function PN($){let{data:J,kzg:Q,to:Y}=$,X=$.blobs??hy({data:J,to:Y}),G=$.commitments??V5({blobs:X,kzg:Q,to:Y}),W=$.proofs??O5({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}D8();d1();f0();function CN($){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 uL({transaction:$})}JX();f0();TW();function KX($,{docsPath:J,...Q}){let Y=(()=>{let X=QX($,Q);if(X instanceof O1)return $;return X})();return new lL(Y,{docsPath:J,...Q})}pJ();d1();t4();async function L6($){let J=await $.request({method:"eth_chainId"},{dedupe:!0});return E4(J)}async function N5($,J){let{account:Q=$.account,accessList:Y,authorizationList:X,chain:G=$.chain,blobVersionedHashes:W,blobs:D,data:U,gas:V,gasPrice:O,maxFeePerBlobGas:N,maxFeePerGas:M,maxPriorityFeePerGas:H,nonce:w,nonceManager:A,to:Z,type:I,value:_,...L}=J,F=await(async()=>{if(!Q)return w;if(!A)return w;if(typeof w<"u")return w;let y=E$(Q),i=G?G.id:await n($,L6,"getChainId")({});return await A.consume({address:y.address,chainId:i,client:$})})();e4(J);let E=G?.formatters?.transactionRequest?.format,k=(E||A6)({...y0(L,{format:E}),account:Q?E$(Q):void 0,accessList:Y,authorizationList:X,blobs:D,blobVersionedHashes:W,data:U,gas:V,gasPrice:O,maxFeePerBlobGas:N,maxFeePerGas:M,maxPriorityFeePerGas:H,nonce:F,to:Z,type:I,value:_},"fillTransaction");try{let y=await $.request({method:"eth_fillTransaction",params:[k]}),b=(G?.formatters?.transaction?.format||D5)(y.tx);if(delete b.blockHash,delete b.blockNumber,delete b.r,delete b.s,delete b.transactionIndex,delete b.v,delete b.yParity,b.data=b.input,b.gas)b.gas=J.gas??b.gas;if(b.gasPrice)b.gasPrice=J.gasPrice??b.gasPrice;if(b.maxFeePerBlobGas)b.maxFeePerBlobGas=J.maxFeePerBlobGas??b.maxFeePerBlobGas;if(b.maxFeePerGas)b.maxFeePerGas=J.maxFeePerGas??b.maxFeePerGas;if(b.maxPriorityFeePerGas)b.maxPriorityFeePerGas=J.maxPriorityFeePerGas??b.maxPriorityFeePerGas;if(b.nonce)b.nonce=J.nonce??b.nonce;let J$=await(async()=>{if(typeof G?.fees?.baseFeeMultiplier==="function"){let C=await n($,$6,"getBlock")({});return G.fees.baseFeeMultiplier({block:C,client:$,request:J})}return G?.fees?.baseFeeMultiplier??1.2})();if(J$<1)throw new hW;let d=10**(J$.toString().split(".")[1]?.length??0),X$=(C)=>C*BigInt(Math.ceil(J$*d))/BigInt(d);if(b.maxFeePerGas&&!J.maxFeePerGas)b.maxFeePerGas=X$(b.maxFeePerGas);if(b.gasPrice&&!J.gasPrice)b.gasPrice=X$(b.gasPrice);return{raw:y.raw,transaction:{from:k.from,...b}}}catch(y){throw KX(y,{...J,chain:$.chain})}}var lW=["blobVersionedHashes","chainId","fees","gas","nonce","type"],uy=new Map,UZ=new O0(128);async function c1($,J){let Q=J;Q.account??=$.account,Q.parameters??=lW;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 n($,L6,"getChainId")({}),U}let O=Y?E$(Y):Y,N=Q.nonce;if(W.includes("nonce")&&typeof N>"u"&&O&&G){let F=await V();N=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"}),N??=Q.nonce;let H=(()=>{if((W.includes("blobVersionedHashes")||W.includes("sidecars"))&&Q.kzg&&Q.blobs)return!1;if(UZ.get($.uid)===!1)return!1;if(!["fees","gas"].some((E)=>W.includes(E)))return!1;if(W.includes("chainId")&&typeof Q.chainId!=="number")return!0;if(W.includes("nonce")&&typeof N!=="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 n($,N5,"fillTransaction")({...Q,nonce:N}).then((F)=>{let{chainId:E,from:R,gas:k,gasPrice:y,nonce:i,maxFeePerBlobGas:b,maxFeePerGas:J$,maxPriorityFeePerGas:r,type:d,...X$}=F.transaction;return UZ.set($.uid,!0),{...Q,...R?{from:R}:{},...d?{type:d}:{},...typeof E<"u"?{chainId:E}:{},...typeof k<"u"?{gas:k}:{},...typeof y<"u"?{gasPrice:y}:{},...typeof i<"u"?{nonce:i}:{},...typeof b<"u"?{maxFeePerBlobGas:b}:{},...typeof J$<"u"?{maxFeePerGas:J$}:{},...typeof r<"u"?{maxPriorityFeePerGas:r}:{},..."nonceKey"in X$&&typeof X$.nonceKey<"u"?{nonceKey:X$.nonceKey}:{}}}).catch((F)=>{let E=F;if(E.name!=="TransactionExecutionError")return Q;if(E.walk?.((k)=>{let y=k;return y.name==="MethodNotFoundRpcError"||y.name==="MethodNotSupportedRpcError"}))UZ.set($.uid,!1);return Q}):Q;N??=H.nonce,Q={...H,...O?{from:O?.address}:{},...N?{nonce:N}:{}};let{blobs:w,gas:A,kzg:Z,type:I}=Q;if(D?.fn&&D.runAt?.includes("beforeFillParameters"))Q=await D.fn({...Q,chain:X},{phase:"beforeFillParameters"});let _;async function L(){if(_)return _;return _=await n($,$6,"getBlock")({blockTag:"latest"}),_}if(W.includes("nonce")&&typeof N>"u"&&O&&!G)Q.nonce=await n($,K5,"getTransactionCount")({address:O.address,blockTag:"pending"});if((W.includes("blobVersionedHashes")||W.includes("sidecars"))&&w&&Z){let F=V5({blobs:w,kzg:Z});if(W.includes("blobVersionedHashes")){let E=RN({commitments:F,to:"hex"});Q.blobVersionedHashes=E}if(W.includes("sidecars")){let E=O5({blobs:w,commitments:F,kzg:Z}),R=PN({blobs:w,commitments:F,proofs:E,to:"hex"});Q.sidecars=R}}if(W.includes("chainId"))Q.chainId=await V();if((W.includes("fees")||W.includes("type"))&&typeof I>"u")try{Q.type=CN(Q)}catch{let F=uy.get($.uid);if(typeof F>"u")F=typeof(await L())?.baseFeePerGas==="bigint",uy.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 L(),{maxFeePerGas:E,maxPriorityFeePerGas:R}=await vN($,{block:F,chain:X,request:Q});if(typeof Q.maxPriorityFeePerGas>"u"&&Q.maxFeePerGas&&Q.maxFeePerGas<R)throw new JZ({maxPriorityFeePerGas:R});Q.maxPriorityFeePerGas=R,Q.maxFeePerGas=E}}else{if(typeof Q.maxFeePerGas<"u"||typeof Q.maxPriorityFeePerGas<"u")throw new j8;if(typeof Q.gasPrice>"u"){let F=await L(),{gasPrice:E}=await vN($,{block:F,chain:X,request:Q,type:"legacy"});Q.gasPrice=E}}if(W.includes("gas")&&typeof A>"u")Q.gas=await n($,z5,"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 e4(Q),delete Q.parameters,Q}async function z5($,J){let{account:Q=$.account,prepare:Y=!0}=J,X=Q?E$(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 UX({authorization:J.authorizationList[0]}).catch(()=>{throw new T("`to` is required. Could not infer from `authorizationList`")});return})(),{accessList:D,authorizationList:U,blobs:V,blobVersionedHashes:O,blockNumber:N,blockTag:M,data:H,gas:w,gasPrice:A,maxFeePerBlobGas:Z,maxFeePerGas:I,maxPriorityFeePerGas:_,nonce:L,value:F,stateOverride:E,...R}=Y?await c1($,{...J,parameters:G,to:W}):J;if(w&&J.gas!==w)return w;let y=(typeof N==="bigint"?g(N):void 0)||M,i=J5(E);e4(J);let b=$.chain?.formatters?.transactionRequest?.format,r=(b||A6)({...y0(R,{format:b}),account:X,accessList:D,authorizationList:U,blobs:V,blobVersionedHashes:O,data:H,gasPrice:A,maxFeePerBlobGas:Z,maxFeePerGas:I,maxPriorityFeePerGas:_,nonce:L,to:W,value:F},"estimateGas");return BigInt(await $.request({method:"eth_estimateGas",params:i?[r,y??$.experimental_blockTag??"latest",i]:y?[r,y]:[r]}))}catch(W){throw Ty(W,{...J,account:X,chain:$.chain})}}async function my($,J){let{abi:Q,address:Y,args:X,functionName:G,dataSuffix:W=typeof $.dataSuffix==="string"?$.dataSuffix:$.dataSuffix?.value,...D}=J,U=w4({abi:Q,args:X,functionName:G});try{return await n($,z5,"estimateGas")({data:`${U}${W?W.replace("0x",""):""}`,to:Y,...D})}catch(V){let O=D.account?E$(D.account):void 0;throw M0(V,{abi:Q,address:Y,args:X,docsPath:"/docs/contract/estimateContractGas",functionName:G,sender:O?.address})}}w$();async function ly($,{address:J,blockNumber:Q,blockTag:Y=$.experimental_blockTag??"latest"}){let X=typeof Q==="bigint"?g(Q):void 0,G=await $.request({method:"eth_getBalance",params:[J,X||Y]});return BigInt(G)}async function dy($){let J=await $.request({method:"eth_blobBaseFee"});return BigInt(J)}var SX$=new Map,vX$=new Map;function py($){let J=(X,G)=>({clear:()=>G.delete(X),get:()=>G.get(X),set:(W)=>G.set(X,W)}),Q=J($,SX$),Y=J($,vX$);return{clear:()=>{Q.clear(),Y.clear()},promise:Q,response:Y}}async function ny($,{cacheKey:J,cacheTime:Q=Number.POSITIVE_INFINITY}){let Y=py(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 RX$=($)=>`blockNumber.${$}`;async function i1($,{cacheTime:J=$.cacheTime}={}){let Q=await ny(()=>$.request({method:"eth_blockNumber"}),{cacheKey:RX$($.uid),cacheTime:J});return BigInt(Q)}t4();w$();async function cy($,{blockHash:J,blockNumber:Q,blockTag:Y="latest"}={}){let X=Q!==void 0?g(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 E4(G)}w$();async function dW($,{address:J,blockNumber:Q,blockTag:Y="latest"}){let X=Q!==void 0?g(Q):void 0,G=await $.request({method:"eth_getCode",params:[J,X||Y]},{dedupe:Boolean(X)});if(G==="0x")return;return G}cQ();L8();a4();P0();KW();f4();XL();R0();KW();GW();jJ();var iy="/docs/contract/decodeEventLog";function E8($){let{abi:J,data:Q,strict:Y,topics:X}=$,G=Y??!0,[W,...D]=X;if(!W)throw new uI({docsPath:iy});let U=J.find((I)=>I.type==="event"&&W===nQ(d4(I)));if(!(U&&("name"in U))||U.type!=="event")throw new mI(W,{docsPath:iy});let{name:V,inputs:O}=U,N=O?.some((I)=>!(("name"in I)&&I.name)),M=N?[]:{},H=O.map((I,_)=>[I,_]).filter(([I])=>("indexed"in I)&&I.indexed),w=[];for(let I=0;I<H.length;I++){let[_,L]=H[I],F=D[I];if(!F){if(G)throw new J8({abiItem:U,param:_});w.push([_,L]);continue}M[N?L:_.name||L]=TX$({param:_,value:F})}let A=O.filter((I)=>!(("indexed"in I)&&I.indexed)),Z=G?A:[...w.map(([I])=>I),...A];if(Z.length>0){if(Q&&Q!=="0x")try{let I=PJ(Z,Q);if(I){let _=0;if(!G)for(let[L,F]of w)M[N?F:L.name||F]=I[_++];if(N){for(let L=0;L<O.length;L++)if(M[L]===void 0&&_<I.length)M[L]=I[_++]}else for(let L=0;L<A.length;L++)M[A[L].name]=I[_++]}}catch(I){if(G){if(I instanceof a7||I instanceof XW)throw new hQ({abiItem:U,data:Q,params:Z,size:n$(Q)});throw I}}else if(G)throw new hQ({abiItem:U,data:"0x",params:Z,size:0})}return{eventName:V,args:Object.values(M).length>0?M:void 0}}function TX$({param:$,value:J}){if($.type==="string"||$.type==="bytes"||$.type==="tuple"||$.type.match(/^(.*)\[(\d+)?\]$/))return J;return(PJ([$],J)||[])[0]}function M5($){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:nQ(D)}));return Y.map((D)=>{let U=W.filter((N)=>D.topics[0]===N.selector);if(U.length===0)return null;let V,O;for(let N of U)try{V=E8({...D,abi:[N.abi],strict:!0}),O=N;break}catch{}if(!V&&!X){O=U[0];try{V=E8({data:D.data,topics:D.topics,abi:[O.abi],strict:!1})}catch{let N=O.abi.inputs?.some((M)=>!(("name"in M)&&M.name));return{...D,args:N?[]:{},eventName:O.abi.name}}}if(!V||!O)return null;if(G&&!G.includes(V.eventName))return null;if(!PX$({args:V.args,inputs:O.abi.inputs,matchArgs:Q}))return null;return{...V,...D}}).filter(Boolean)}function PX$($){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 h0(W,D);if(G.type==="string"||G.type==="bytes")return X4(T0(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 B6($,{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 H5($,{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),N=[];if(O){if(N=[O.flatMap((A)=>n1({abi:[A],eventName:A.name,args:W?void 0:D}))],G)N=N[0]}let M;if(Q)M=await $.request({method:"eth_getLogs",params:[{address:J,topics:N,blockHash:Q}]});else M=await $.request({method:"eth_getLogs",params:[{address:J,topics:N,fromBlock:typeof Y==="bigint"?g(Y):Y,toBlock:typeof X==="bigint"?g(X):X}]});let H=M.map((w)=>B6(w));if(!O)return H;return M5({abi:O,args:D,logs:H,strict:V})}async function kN($,J){let{abi:Q,address:Y,args:X,blockHash:G,eventName:W,fromBlock:D,toBlock:U,strict:V}=J,O=W?r6({abi:Q,name:W}):void 0,N=!O?Q.filter((M)=>M.type==="event"):void 0;return n($,H5,"getLogs")({address:Y,args:X,blockHash:G,event:O,events:N,fromBlock:D,toBlock:U,strict:V})}P$();class KZ extends T{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 oy($,J){let{address:Q,factory:Y,factoryData:X}=J;try{let[G,W,D,U,V,O,N]=await n($,h4,"readContract")({abi:CX$,address:Q,functionName:"eip712Domain",factory:Y,factoryData:X});return{domain:{name:W,version:D,chainId:Number(U),verifyingContract:V,salt:O},extensions:N,fields:G}}catch(G){let W=G;if(W.name==="ContractFunctionExecutionError"&&W.cause.name==="ContractFunctionZeroDataError")throw new KZ({address:Q});throw W}}var CX$=[{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 ry($){return{baseFeePerGas:$.baseFeePerGas.map((J)=>BigInt(J)),gasUsedRatio:$.gasUsedRatio,oldestBlock:BigInt($.oldestBlock),reward:$.reward?.map((J)=>J.map((Q)=>BigInt(Q)))}}async function ty($,{blockCount:J,blockNumber:Q,blockTag:Y="latest",rewardPercentiles:X}){let G=typeof Q==="bigint"?g(Q):void 0,W=await $.request({method:"eth_feeHistory",params:[g(J),G||Y,X]},{dedupe:Boolean(G)});return ry(W)}async function VX($,{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)=>B6(G));if(!("abi"in J)||!J.abi)return X;return M5({abi:J.abi,logs:X,strict:Q})}async function ay($,{filter:J}){let Q=J.strict??!1,X=(await J.request({method:"eth_getFilterLogs",params:[J.id]})).map((G)=>B6(G));if(!J.abi)return X;return M5({abi:J.abi,logs:X,strict:Q})}w$();t4();w$();function kX$($){return $.map((J)=>({...J,value:BigInt(J.value)}))}function sy($){return{...$,balance:$.balance?BigInt($.balance):void 0,nonce:$.nonce?E4($.nonce):void 0,storageProof:$.storageProof?kX$($.storageProof):void 0}}async function ey($,{address:J,blockNumber:Q,blockTag:Y,storageKeys:X}){let G=Y??"latest",W=Q!==void 0?g(Q):void 0,D=await $.request({method:"eth_getProof",params:[J,X,W||G]});return sy(D)}w$();async function $h($,{address:J,blockNumber:Q,blockTag:Y="latest",slot:X}){let G=Q!==void 0?g(Q):void 0;return await $.request({method:"eth_getStorageAt",params:[J,X,G||Y]})}f0();w$();async function q5($,{blockHash:J,blockNumber:Q,blockTag:Y,hash:X,index:G,sender:W,nonce:D}){let U=Y||"latest",V=Q!==void 0?g(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,g(G)]},{dedupe:!0});else if((V||U)&&typeof G==="number")O=await $.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[V||U,g(G)]},{dedupe:Boolean(V)});else if(W&&typeof D==="number")O=await $.request({method:"eth_getTransactionBySenderAndNonce",params:[W,g(D)]},{dedupe:!0});if(!O)throw new OW({blockHash:J,blockNumber:Q,blockTag:U,hash:X,index:G});return($.chain?.formatters?.transaction?.format||D5)(O,"getTransaction")}async function Jh($,{hash:J,transactionReceipt:Q}){let[Y,X]=await Promise.all([n($,i1,"getBlockNumber")({}),J?n($,q5,"getTransaction")({hash:J}):void 0]),G=Q?.blockNumber||X?.blockNumber;if(!G)return 0n;return Y-G+1n}f0();t4();var VZ={"0x0":"reverted","0x1":"success"};function xN($,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)=>B6(Y)):null,to:$.to?$.to:null,transactionIndex:$.transactionIndex?E4($.transactionIndex):null,status:$.status?VZ[$.status]:null,type:$.type?QZ[$.type]||$.type:null};if($.blobGasPrice)Q.blobGasPrice=BigInt($.blobGasPrice);if($.blobGasUsed)Q.blobGasUsed=BigInt($.blobGasUsed);return Q}async function w5($,{hash:J}){let Q=await $.request({method:"eth_getTransactionReceipt",params:[J]},{dedupe:!0});if(!Q)throw new NW({hash:J});return($.chain?.formatters?.transactionReceipt?.format||xN)(Q,"getTransactionReceipt")}FJ();f4();P$();oQ();iQ();z0();K8();async function Qh($,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:N=J.deployless??!1}=typeof $.batch?.multicall==="object"?$.batch.multicall:{},M=(()=>{if(J.multicallAddress)return J.multicallAddress;if(N)return null;if($.chain)return x0({blockNumber:G,chain:$.chain,contract:"multicall3"});throw Error("client chain not configured. multicallAddress is required.")})(),H=[[]],w=0,A=0;for(let _=0;_<V.length;_++){let{abi:L,address:F,args:E,functionName:R}=V[_];try{let k=w4({abi:L,args:E,functionName:R});if(A+=(k.length-2)/2,O>0&&A>O&&H[w].length>0)w++,A=(k.length-2)/2,H[w]=[];H[w]=[...H[w],{allowFailure:!0,callData:k,target:F}]}catch(k){let y=M0(k,{abi:L,address:F,args:E,docsPath:"/docs/contract/multicall",functionName:R,sender:Q});if(!X)throw y;H[w]=[...H[w],{allowFailure:!0,callData:"0x",target:F}]}}let Z=await Promise.allSettled(H.map((_)=>n($,h4,"readContract")({...M===null?{code:eY}:{address:M},abi:yQ,account:Q,args:[_],authorizationList:Y,blockNumber:G,blockOverrides:W,blockTag:D,functionName:"aggregate3",stateOverride:U}))),I=[];for(let _=0;_<Z.length;_++){let L=Z[_];if(L.status==="rejected"){if(!X)throw L.reason;for(let E=0;E<H[_].length;E++)I.push({status:"failure",error:L.reason,result:void 0});continue}let F=L.value;for(let E=0;E<F.length;E++){let{returnData:R,success:k}=F[E],{callData:y}=H[_][E],{abi:i,address:b,functionName:J$,args:r}=V[I.length];try{if(y==="0x")throw new Y1;if(!k)throw new xJ({data:R});let d=t6({abi:i,args:r,data:R,functionName:J$});I.push(X?{result:d,status:"success"}:d)}catch(d){let X$=M0(d,{abi:i,address:b,args:r,docsPath:"/docs/contract/multicall",functionName:J$});if(!X)throw X$;I.push({error:X$,result:void 0,status:"failure"})}}}if(I.length!==V.length)throw new T("multicall results mismatch");return I}wB();f4();oQ();JX();iQ();z0();w$();TW();pJ();NN();d1();async function pW($,J){let{blockNumber:Q,blockTag:Y=$.experimental_blockTag??"latest",blocks:X,returnFullTransactions:G,traceTransfers:W,validation:D}=J;try{let U=[];for(let M of X){let H=M.blockOverrides?DN(M.blockOverrides):void 0,w=M.calls.map((Z)=>{let I=Z,_=I.account?E$(I.account):void 0,L=I.abi?w4(I):I.data,F={...I,account:_,data:I.dataSuffix?M4([L||"0x",I.dataSuffix]):L,from:I.from??_?.address};return e4(F),A6(F)}),A=M.stateOverrides?J5(M.stateOverrides):void 0;U.push({blockOverrides:H,calls:w,stateOverrides:A})}let O=(typeof Q==="bigint"?g(Q):void 0)||Y;return(await $.request({method:"eth_simulateV1",params:[{blockStateCalls:U,returnFullTransactions:G,traceTransfers:W,validation:D},O]})).map((M,H)=>({...SN(M),calls:M.calls.map((w,A)=>{let{abi:Z,args:I,functionName:_,to:L}=X[H].calls[A],F=w.error?.data??w.returnData,E=BigInt(w.gasUsed),R=w.logs?.map((b)=>B6(b)),k=w.status==="0x1"?"success":"failure",y=Z&&k==="success"&&F!=="0x"?t6({abi:Z,data:F,functionName:_}):null,i=(()=>{if(k==="success")return;let b;if(F==="0x")b=new Y1;else if(F)b=new xJ({data:F});if(!b)return;return M0(b,{abi:Z??[],address:L??"0x",args:I,functionName:_??"<unknown>"})})();return{data:F,gasUsed:E,logs:R,status:k,...k==="success"?{result:y}:{error:i}}})}))}catch(U){let V=U,O=QX(V,{});if(O instanceof O1)throw V;throw O}}UW();s6();eI();sQ();s4();function _8($,J={}){let{as:Q=typeof $==="string"?"Hex":"Bytes"}=J,Y=RO(Ng($));if(Q==="Bytes")return Y;return b4(Y)}s4();sQ();class NZ 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 xX$={checksum:new NZ(8192)},fN=xX$.checksum;s6();sQ();s6();s4();function Xh($,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 zZ({prefix:Y,cause:new Uh});return}if(Q===!0||typeof X==="bigint"&&typeof G>"u"){if(Y!==3&&Y!==2)throw new zZ({prefix:Y,cause:new Dh});return}throw new Wh({publicKey:$})}function Yh($){let J=(()=>{if(BW($))return Gh($);if(Ag($))return bX$($);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 Xh(J),J}function bX$($){return Gh(b4($))}function Gh($){if($.length!==132&&$.length!==130&&$.length!==68)throw new Kh({publicKey:$});if($.length===130){let Y=BigInt(F4($,0,32)),X=BigInt(F4($,32,64));return{prefix:4,x:Y,y:X}}if($.length===132){let Y=Number(F4($,0,1)),X=BigInt(F4($,1,33)),G=BigInt(F4($,33,65));return{prefix:Y,x:X,y:G}}let J=Number(F4($,0,1)),Q=BigInt(F4($,1,33));return{prefix:J,x:Q}}function MZ($,J={}){Xh($);let{prefix:Q,x:Y,y:X}=$,{includePrefix:G=!0}=J;return _4(G?r$(Q,{size:1}):"0x",r$(Y,{size:32}),typeof X==="bigint"?r$(X,{size:32}):"0x")}class Wh extends U${constructor({publicKey:$}){super(`Value \`${eQ($)}\` 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 zZ extends U${constructor({prefix:$,cause:J}){super(`Prefix "${$}" is invalid.`,{cause:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidPrefixError"})}}class Dh extends U${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 Uh extends U${constructor(){super("Prefix must be 4 for uncompressed public keys.");Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidUncompressedPrefixError"})}}class Kh extends U${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 ${Z4(aY($))} bytes.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"})}}var gX$=/^0x[a-fA-F0-9]{40}$/;function S8($,J={}){let{strict:Q=!0}=J;if(!gX$.test($))throw new HZ({address:$,cause:new Nh});if(Q){if($.toLowerCase()===$)return;if(bN($)!==$)throw new HZ({address:$,cause:new zh})}}function bN($){if(fN.has($))return fN.get($);S8($,{strict:!1});let J=$.substring(2).toLowerCase(),Q=_8(zg(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 fN.set($,X),X}function yX$($,J={}){let{checksum:Q=!1}=J;if(S8($),Q)return bN($);return $}function Oh($,J={}){let Q=_8(`0x${MZ($).slice(4)}`).substring(26);return yX$(`0x${Q}`,J)}function gN($,J={}){let{strict:Q=!0}=J??{};try{return S8($,{strict:Q}),!0}catch{return!1}}class HZ extends U${constructor({address:$,cause:J}){super(`Address "${$}" is invalid.`,{cause:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class Nh extends U${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 zh extends U${constructor(){super("Address does not match its checksum counterpart.");Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}s6();function uN($){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 U$("Unable to normalize signature.");return X}function hN($,J){let Q=typeof $,Y=J.type;switch(Y){case"address":return gN($,{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 hN(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)=>hN(X,{...J,type:Y.replace(/(\[[0-9]{0,}\])$/,"")}));return!1}}}function qZ($,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 qZ(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 gN(Q[Y],{strict:!1});if(W.includes("address")&&W.includes("bytes"))return gN(Q[Y],{strict:!1});return!1})())return W}return}function mN($,J={}){let{prepare:Q=!0}=J,Y=(()=>{if(Array.isArray($))return dO($);if(typeof $==="string")return dO($);return $})();return{...Y,...Q?{hash:A5(Y)}:{}}}function nW($,J,Q){let{args:Y=[],prepare:X=!0}=Q??{},G=BW(J,{strict:!1}),W=$.filter((V)=>{if(G){if(V.type==="function"||V.type==="error")return wZ(V)===F4(J,0,4);if(V.type==="event")return A5(V)===J;return!1}return"name"in V&&V.name===J});if(W.length===0)throw new v8({name:J});if(W.length===1)return{...W[0],...X?{hash:A5(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:A5(V)}:{}};continue}if(!V.inputs)continue;if(V.inputs.length===0)continue;if(V.inputs.length!==Y.length)continue;if(Y.every((N,M)=>{let H="inputs"in V&&V.inputs[M];if(!H)return!1;return hN(N,H)})){if(D&&"inputs"in D&&D.inputs){let N=qZ(V.inputs,D.inputs,Y);if(N)throw new Mh({abiItem:V,type:N[0]},{abiItem:D,type:N[1]})}D=V}}let U=(()=>{if(D)return D;let[V,...O]=W;return{...V,overloads:O}})();if(!U)throw new v8({name:J});return{...U,...X?{hash:A5(U)}:{}}}function wZ(...$){let J=(()=>{if(Array.isArray($[0])){let[Q,Y]=$;return nW(Q,Y)}return $[0]})();return F4(A5(J),0,4)}function uX$(...$){let J=(()=>{if(Array.isArray($[0])){let[Y,X]=$;return nW(Y,X)}return $[0]})(),Q=(()=>{if(typeof J==="string")return J;return U8(J)})();return uN(Q)}function A5(...$){let J=(()=>{if(Array.isArray($[0])){let[Q,Y]=$;return nW(Q,Y)}return $[0]})();if(typeof J!=="string"&&"hash"in J&&J.hash)return J.hash;return _8(sY(uX$(J)))}class Mh extends U${constructor($,J){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${$.type}\` in \`${uN(U8($.abiItem))}\`, and`,`\`${J.type}\` in \`${uN(U8(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 v8 extends U${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"})}}UW();sQ();s6();s4();sQ();s6();s4();var qh=/^(.*)\[([0-9]*)\]$/,wh=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,lN=/^(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)?$/,_P$=2n**(8n-1n)-1n,SP$=2n**(16n-1n)-1n,vP$=2n**(24n-1n)-1n,RP$=2n**(32n-1n)-1n,TP$=2n**(40n-1n)-1n,PP$=2n**(48n-1n)-1n,CP$=2n**(56n-1n)-1n,kP$=2n**(64n-1n)-1n,xP$=2n**(72n-1n)-1n,fP$=2n**(80n-1n)-1n,bP$=2n**(88n-1n)-1n,gP$=2n**(96n-1n)-1n,yP$=2n**(104n-1n)-1n,hP$=2n**(112n-1n)-1n,uP$=2n**(120n-1n)-1n,mP$=2n**(128n-1n)-1n,lP$=2n**(136n-1n)-1n,dP$=2n**(144n-1n)-1n,pP$=2n**(152n-1n)-1n,nP$=2n**(160n-1n)-1n,cP$=2n**(168n-1n)-1n,iP$=2n**(176n-1n)-1n,oP$=2n**(184n-1n)-1n,rP$=2n**(192n-1n)-1n,tP$=2n**(200n-1n)-1n,aP$=2n**(208n-1n)-1n,sP$=2n**(216n-1n)-1n,eP$=2n**(224n-1n)-1n,$C$=2n**(232n-1n)-1n,JC$=2n**(240n-1n)-1n,QC$=2n**(248n-1n)-1n,XC$=2n**(256n-1n)-1n,YC$=-(2n**(8n-1n)),GC$=-(2n**(16n-1n)),WC$=-(2n**(24n-1n)),DC$=-(2n**(32n-1n)),UC$=-(2n**(40n-1n)),KC$=-(2n**(48n-1n)),VC$=-(2n**(56n-1n)),OC$=-(2n**(64n-1n)),NC$=-(2n**(72n-1n)),zC$=-(2n**(80n-1n)),MC$=-(2n**(88n-1n)),HC$=-(2n**(96n-1n)),qC$=-(2n**(104n-1n)),wC$=-(2n**(112n-1n)),AC$=-(2n**(120n-1n)),IC$=-(2n**(128n-1n)),LC$=-(2n**(136n-1n)),BC$=-(2n**(144n-1n)),ZC$=-(2n**(152n-1n)),FC$=-(2n**(160n-1n)),jC$=-(2n**(168n-1n)),EC$=-(2n**(176n-1n)),_C$=-(2n**(184n-1n)),SC$=-(2n**(192n-1n)),vC$=-(2n**(200n-1n)),RC$=-(2n**(208n-1n)),TC$=-(2n**(216n-1n)),PC$=-(2n**(224n-1n)),CC$=-(2n**(232n-1n)),kC$=-(2n**(240n-1n)),xC$=-(2n**(248n-1n)),fC$=-(2n**(256n-1n)),bC$=2n**8n-1n,gC$=2n**16n-1n,yC$=2n**24n-1n,hC$=2n**32n-1n,uC$=2n**40n-1n,mC$=2n**48n-1n,lC$=2n**56n-1n,dC$=2n**64n-1n,pC$=2n**72n-1n,nC$=2n**80n-1n,cC$=2n**88n-1n,iC$=2n**96n-1n,oC$=2n**104n-1n,rC$=2n**112n-1n,tC$=2n**120n-1n,aC$=2n**128n-1n,sC$=2n**136n-1n,eC$=2n**144n-1n,$k$=2n**152n-1n,Jk$=2n**160n-1n,Qk$=2n**168n-1n,Xk$=2n**176n-1n,Yk$=2n**184n-1n,Gk$=2n**192n-1n,Wk$=2n**200n-1n,Dk$=2n**208n-1n,Uk$=2n**216n-1n,Kk$=2n**224n-1n,Vk$=2n**232n-1n,Ok$=2n**240n-1n,Nk$=2n**248n-1n,AZ=2n**256n-1n;function R8($,J,Q){let{checksumAddress:Y,staticPosition:X}=Q,G=BZ(J.type);if(G){let[W,D]=G;return lX$($,{...J,type:D},{checksumAddress:Y,length:W,staticPosition:X})}if(J.type==="tuple")return cX$($,J,{checksumAddress:Y,staticPosition:X});if(J.type==="address")return mX$($,{checksum:Y});if(J.type==="bool")return dX$($);if(J.type.startsWith("bytes"))return pX$($,J,{staticPosition:X});if(J.type.startsWith("uint")||J.type.startsWith("int"))return nX$($,J);if(J.type==="string")return iX$($,{staticPosition:X});throw new iW(J.type)}var Ih=32,IZ=32;function mX$($,J={}){let{checksum:Q=!1}=J,Y=$.readBytes(32);return[((G)=>Q?bN(G):G)(b4(Mg(Y,-20))),32]}function lX$($,J,Q){let{checksumAddress:Y,length:X,staticPosition:G}=Q;if(!X){let U=m1($.readBytes(IZ)),V=G+U,O=V+Ih;$.setPosition(V);let N=m1($.readBytes(Ih)),M=cW(J),H=0,w=[];for(let A=0;A<N;++A){$.setPosition(O+(M?A*32:H));let[Z,I]=R8($,J,{checksumAddress:Y,staticPosition:O});H+=I,w.push(Z)}return $.setPosition(G+32),[w,32]}if(cW(J)){let U=m1($.readBytes(IZ)),V=G+U,O=[];for(let N=0;N<X;++N){$.setPosition(V+N*32);let[M]=R8($,J,{checksumAddress:Y,staticPosition:V});O.push(M)}return $.setPosition(G+32),[O,32]}let W=0,D=[];for(let U=0;U<X;++U){let[V,O]=R8($,J,{checksumAddress:Y,staticPosition:G+W});W+=O,D.push(V)}return[D,W]}function dX$($){return[qg($.readBytes(32),{size:32}),32]}function pX$($,J,{staticPosition:Q}){let[Y,X]=J.type.split("bytes");if(!X){let W=m1($.readBytes(32));$.setPosition(Q+W);let D=m1($.readBytes(32));if(D===0)return $.setPosition(Q+32),["0x",32];let U=$.readBytes(D);return $.setPosition(Q+32),[b4(U),32]}return[b4($.readBytes(Number.parseInt(X,10),32)),32]}function nX$($,J){let Q=J.type.startsWith("int"),Y=Number.parseInt(J.type.split("int")[1]||"256",10),X=$.readBytes(32);return[Y>48?Hg(X,{signed:Q}):m1(X,{signed:Q}),32]}function cX$($,J,Q){let{checksumAddress:Y,staticPosition:X}=Q,G=J.components.length===0||J.components.some(({name:U})=>!U),W=G?[]:{},D=0;if(cW(J)){let U=m1($.readBytes(IZ)),V=X+U;for(let O=0;O<J.components.length;++O){let N=J.components[O];$.setPosition(V+D);let[M,H]=R8($,N,{checksumAddress:Y,staticPosition:V});D+=H,W[G?O:N?.name]=M}return $.setPosition(X+32),[W,32]}for(let U=0;U<J.components.length;++U){let V=J.components[U],[O,N]=R8($,V,{checksumAddress:Y,staticPosition:X});W[G?U:V?.name]=O,D+=N}return[W,D]}function iX$($,{staticPosition:J}){let Q=m1($.readBytes(32)),Y=J+Q;$.setPosition(Y);let X=m1($.readBytes(32));if(X===0)return $.setPosition(J+32),["",32];let G=$.readBytes(X,32),W=wg(NB(G));return $.setPosition(J+32),[W,32]}function Lh({checksumAddress:$,parameters:J,values:Q}){let Y=[];for(let X=0;X<J.length;X++)Y.push(LZ({checksumAddress:$,parameter:J[X],value:Q[X]}));return Y}function LZ({checksumAddress:$=!1,parameter:J,value:Q}){let Y=J,X=BZ(Y.type);if(X){let[G,W]=X;return rX$(Q,{checksumAddress:$,length:G,parameter:{...Y,type:W}})}if(Y.type==="tuple")return $8$(Q,{checksumAddress:$,parameter:Y});if(Y.type==="address")return oX$(Q,{checksum:$});if(Y.type==="bool")return aX$(Q);if(Y.type.startsWith("uint")||Y.type.startsWith("int")){let G=Y.type.startsWith("int"),[,,W="256"]=lN.exec(Y.type)??[];return sX$(Q,{signed:G,size:Number(W)})}if(Y.type.startsWith("bytes"))return tX$(Q,{type:Y.type});if(Y.type==="string")return eX$(Q);throw new iW(Y.type)}function dN($){let J=0;for(let G=0;G<$.length;G++){let{dynamic:W,encoded:D}=$[G];if(W)J+=32;else J+=Z4(D)}let Q=[],Y=[],X=0;for(let G=0;G<$.length;G++){let{dynamic:W,encoded:D}=$[G];if(W)Q.push(r$(J+X,{size:32})),Y.push(D),X+=Z4(D);else Q.push(D)}return _4(...Q,...Y)}function oX$($,J){let{checksum:Q=!1}=J;return S8($,{strict:Q}),{dynamic:!1,encoded:lJ($.toLowerCase())}}function rX$($,J){let{checksumAddress:Q,length:Y,parameter:X}=J,G=Y===null;if(!Array.isArray($))throw new FZ($);if(!G&&$.length!==Y)throw new ZZ({expectedLength:Y,givenLength:$.length,type:`${X.type}[${Y}]`});let W=!1,D=[];for(let U=0;U<$.length;U++){let V=LZ({checksumAddress:Q,parameter:X,value:$[U]});if(V.dynamic)W=!0;D.push(V)}if(G||W){let U=dN(D);if(G){let V=r$(D.length,{size:32});return{dynamic:!0,encoded:D.length>0?_4(V,U):V}}if(W)return{dynamic:!0,encoded:U}}return{dynamic:!1,encoded:_4(...D.map(({encoded:U})=>U))}}function tX$($,{type:J}){let[,Q]=J.split("bytes"),Y=Z4($);if(!Q){let X=$;if(Y%32!==0)X=l1(X,Math.ceil(($.length-2)/2/32)*32);return{dynamic:!0,encoded:_4(lJ(r$(Y,{size:32})),X)}}if(Y!==Number.parseInt(Q,10))throw new pN({expectedSize:Number.parseInt(Q,10),value:$});return{dynamic:!1,encoded:l1($)}}function aX$($){if(typeof $!=="boolean")throw new U$(`Invalid boolean value: "${$}" (type: ${typeof $}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:lJ(GN($))}}function sX$($,{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 WN({max:Y.toString(),min:X.toString(),signed:J,size:Q/8,value:$.toString()})}return{dynamic:!1,encoded:r$($,{size:32,signed:J})}}function eX$($){let J=sY($),Q=Math.ceil(Z4(J)/32),Y=[];for(let X=0;X<Q;X++)Y.push(l1(F4(J,X*32,(X+1)*32)));return{dynamic:!0,encoded:_4(l1(r$(Z4(J),{size:32})),...Y)}}function $8$($,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=LZ({checksumAddress:Q,parameter:D,value:$[U]});if(G.push(V),V.dynamic)X=!0}return{dynamic:X,encoded:X?dN(G):_4(...G.map(({encoded:W})=>W))}}function BZ($){let J=$.match(/^(.*)\[(\d+)?\]$/);return J?[J[2]?Number(J[2]):null,J[1]]:void 0}function cW($){let{type:J}=$;if(J==="string")return!0;if(J==="bytes")return!0;if(J.endsWith("[]"))return!0;if(J==="tuple")return $.components?.some(cW);let Q=BZ($.type);if(Q&&cW({...$,type:Q[1]}))return!0;return!1}s6();var Q8$={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 Zh({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition($){if($<0||$>this.bytes.length-1)throw new Bh({length:this.bytes.length,position:$})},decrementPosition($){if($<0)throw new jZ({offset:$});let J=this.position-$;this.assertPosition(J),this.position=J},getReadCount($){return this.positionReadCount.get($||this.position)||0},incrementPosition($){if($<0)throw new jZ({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 nN($,{recursiveReadLimit:J=8192}={}){let Q=Object.create(Q8$);return Q.bytes=$,Q.dataView=new DataView($.buffer,$.byteOffset,$.byteLength),Q.positionReadCount=new Map,Q.recursiveReadLimit=J,Q}class jZ extends U${constructor({offset:$}){super(`Offset \`${$}\` cannot be negative.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class Bh extends U${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 Zh extends U${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 I5($,J,Q={}){let{as:Y="Array",checksumAddress:X=!1}=Q,G=typeof J==="string"?tY(J):J,W=nN(G);if(g0(G)===0&&$.length>0)throw new Eh;if(g0(G)&&g0(G)<32)throw new jh({data:typeof J==="string"?J:b4(J),parameters:$,size:g0(G)});let D=0,U=Y==="Array"?[]:{};for(let V=0;V<$.length;++V){let O=$[V];W.setPosition(D);let[N,M]=R8(W,O,{checksumAddress:X,staticPosition:0});if(D+=M,Y==="Array")U.push(N);else U[O.name??V]=N}return U}function OX($,J,Q){let{checksumAddress:Y=!1}=Q??{};if($.length!==J.length)throw new _Z({expectedLength:$.length,givenLength:J.length});let X=Lh({checksumAddress:Y,parameters:$,values:J}),G=dN(X);if(G.length===0)return"0x";return G}function EZ($,J){if($.length!==J.length)throw new _Z({expectedLength:$.length,givenLength:J.length});let Q=[];for(let Y=0;Y<$.length;Y++){let X=$[Y],G=J[Y];Q.push(EZ.encode(X,G))}return _4(...Q)}(function($){function J(Q,Y,X=!1){if(Q==="address"){let U=Y;return S8(U),lJ(U.toLowerCase(),X?32:0)}if(Q==="string")return sY(Y);if(Q==="bytes")return Y;if(Q==="bool")return lJ(GN(Y),X?32:1);let G=Q.match(lN);if(G){let[U,V,O="256"]=G,N=Number.parseInt(O,10)/8;return r$(Y,{size:X?32:N,signed:V==="int"})}let W=Q.match(wh);if(W){let[U,V]=W;if(Number.parseInt(V,10)!==(Y.length-2)/2)throw new pN({expectedSize:Number.parseInt(V,10),value:Y});return l1(Y,X?32:0)}let D=Q.match(qh);if(D&&Array.isArray(Y)){let[U,V]=D,O=[];for(let N=0;N<Y.length;N++)O.push(J(V,Y[N],!0));if(O.length===0)return"0x";return _4(...O)}throw new iW(Q)}$.encode=J})(EZ||(EZ={}));function rW($){if(Array.isArray($)&&typeof $[0]==="string")return pO($);if(typeof $==="string")return pO($);return $}class jh extends U${constructor({data:$,parameters:J,size:Q}){super(`Data size of ${Q} bytes is too small for given parameters.`,{metaMessages:[`Params: (${CJ(J)})`,`Data: ${$} (${Q} bytes)`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}}class Eh extends U${constructor(){super('Cannot decode zero data ("0x") with ABI parameters.');Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"})}}class ZZ extends U${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 pN extends U${constructor({expectedSize:$,value:J}){super(`Size of bytes "${J}" (bytes${Z4(J)}) does not match expected size (bytes${$}).`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class _Z extends U${constructor({expectedLength:$,givenLength:J}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${$}`,`Given length (values): ${J}`].join(`
|
|
112
|
+
`}class LI{constructor($=Qx.stdin,J=Qx.stdout){this._stdin=$,this._stdout=J,this._readBuffer=new II,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=Jx($);if(this._stdout.write(Q))J();else this._stdout.once("drain",J)})}}var GO={name:"@0xmonaco/mcp-server",version:"0.6.1",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 t1$={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 ZJ(){let $=process.env.MONACO_PRIVATE_KEY||null;if($&&!$.startsWith("0x"))throw Error("MONACO_PRIVATE_KEY must start with '0x'.");let J=process.env.MONACO_CLIENT_ID||null;if($&&!J)throw Error("MONACO_CLIENT_ID is required when MONACO_PRIVATE_KEY is set.");let Q=["mainnet","development","staging","local"],Y=process.env.MONACO_NETWORK||"mainnet";if(!Q.includes(Y))throw Error(`MONACO_NETWORK must be one of: ${Q.join(", ")}. Got: "${Y}".`);let X=Y,G=process.env.MONACO_RPC_URL||t1$[X];return{privateKey:$,clientId:J,network:X,seiRpcUrl:G}}function a1$($){return $.replace(/_([a-z])/g,(J,Q)=>Q.toUpperCase())}function n7($){if($===null||$===void 0)return $;if(typeof $!=="object")return $;if(Array.isArray($))return $.map((Q)=>n7(Q));let J={};for(let[Q,Y]of Object.entries($))J[a1$(Q)]=typeof Y==="object"&&Y!==null?n7(Y):Y;return J}var c7=[0.0001,0.001,0.01,0.1,1,10,100,1000,1e4];var s1$=1e4,e1$=15000,$J$=30000;function BI($,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"}},N=()=>{let d=new URL($);if(Y)d.searchParams.set("token",Y);return d.toString()},M=()=>{if(W)clearInterval(W),W=null},H=()=>{M(),W=setInterval(()=>{if(Q?.readyState===WebSocket.OPEN)Q.send(JSON.stringify({type:"Ping"}))},e1$)},w=()=>{if(G)clearTimeout(G),G=null},A=()=>{if(!D||X>=U){console.error("WebSocket: Max reconnect attempts reached");return}X++;let d=Math.min(1000*2**X,$J$);G=setTimeout(()=>L(),d)},Z=(d)=>{if(Q?.readyState===WebSocket.OPEN)Q.send(JSON.stringify(d))},I=()=>{let d=Array.from(V.keys());if(d.length>0)Z({type:"Subscribe",channels:d})},_=(d)=>{if(d.type!=="Event"||!d.channel)return;for(let[X$,C]of V)if(d.channel===X$||d.channel.startsWith(`${X$}:`)){for(let u of C)u(d.data);return}},L=()=>{return new Promise((d,X$)=>{if(Q?.readyState===WebSocket.CONNECTING||Q?.readyState===WebSocket.OPEN){d();return}try{Q=new WebSocket(N());let C=setTimeout(()=>{if(Q?.readyState===WebSocket.CONNECTING)Q.close(),X$(Error("WebSocket connection timeout"))},s1$);Q.onopen=()=>{clearTimeout(C),X=0,H(),I(),J.onStatusChange?.("connected"),d()},Q.onmessage=(u)=>{try{let h=JSON.parse(u.data);if(h.type==="Pong")return;_(h)}catch(h){console.warn("WebSocket: Failed to parse message",h)}},Q.onclose=(u)=>{if(clearTimeout(C),M(),J.onStatusChange?.("disconnected"),D&&u.code!==1000)A()},Q.onerror=()=>clearTimeout(C)}catch(C){J.onStatusChange?.("disconnected"),X$(C)}})},F=()=>{D=!1,w(),M(),V.clear(),Q?.close(1000,"Client disconnect"),Q=null,J.onStatusChange?.("disconnected")},E=(d,X$)=>{let C=!V.has(d);if(!V.has(d))V.set(d,new Set);if(V.get(d)?.add(X$),C&&Q?.readyState===WebSocket.OPEN)Z({type:"Subscribe",channels:[d]});return()=>{let u=V.get(d);if(u){if(u.delete(X$),u.size===0){if(V.delete(d),Q?.readyState===WebSocket.OPEN)Z({type:"Unsubscribe",channels:[d]})}}}};return{connect:L,disconnect:F,isConnected:()=>Q?.readyState===WebSocket.OPEN,getStatus:O,setToken:(d)=>{if(Y=d,Q?.readyState===WebSocket.OPEN||Q?.readyState===WebSocket.CONNECTING)Q.close(1000,"Token updated, reconnecting."),Q=null;L().catch((X$)=>{console.warn("WebSocket: Failed to reconnect after token update:",X$)})},orders:(d,X$,C)=>{let u=`orders:${d}:${X$}`;return E(u,(h)=>{try{let p=h,Q$={orderId:p.order_id,eventType:p.event_type,timestamp:p.timestamp,data:n7(p.data)};C(Q$)}catch(p){console.error("WebSocket: Error processing order event",p)}})},orderbook:(d,X$,C,u,h)=>{if(!d||!X$||C===void 0||!u)throw Error(`orderbook subscription requires all params: tradingPairId="${d}", tradingMode="${X$}", magnitude=${C} (valid: ${c7.join(", ")}), quotationMode="${u}" (valid: "BASE", "QUOTE")`);if(!c7.includes(C))throw Error(`Invalid magnitude: ${C}. Must be one of: ${c7.join(", ")}`);let p=`orderbook:${d}:${X$}:${C}:${u.toLowerCase()}`;return E(p,(Q$)=>{try{let V$=Q$,f$=V$.data,t$={tradingPairId:V$.pair,tradingMode:V$.trading_mode,bids:(f$?.bids||[]).map((S4)=>({price:S4.price,quantity:S4.quantity,orderCount:S4.order_count||0})),asks:(f$?.asks||[]).map((S4)=>({price:S4.price,quantity:S4.quantity,orderCount:S4.order_count||0})),bestBid:f$?.best_bid,bestAsk:f$?.best_ask,bidVolume:f$?.bid_volume||void 0,askVolume:f$?.ask_volume||void 0,priceChange:f$?.price_change?{side:f$.price_change.side,oldPrice:f$.price_change.old_price,newPrice:f$.price_change.new_price,levelRemoved:f$.price_change.level_removed||!1,levelAdded:f$.price_change.level_added||!1}:void 0,baseDecimals:V$.base_decimals||0,quoteDecimals:V$.quote_decimals||0,timestamp:V$.timestamp||new Date().toISOString(),sequence:V$.sequence_number||0};h(t$)}catch(V$){console.error("WebSocket: Error processing orderbook event",V$)}})},ohlcv:(d,X$,C,u)=>{let h=`ohlcv:${d}:${X$}:${C}`;return E(h,(p)=>{try{let Q$=p,V$=Q$.data,f$={tradingPairId:Q$.pair,tradingMode:Q$.trading_mode,interval:Q$.interval,candlestick:{T:V$.period_start||0,t:V$.period_end||0,o:V$.open||"0",h:V$.high||"0",l:V$.low||"0",c:V$.close||"0",v:V$.volume||"0",s:Q$.pair,i:Q$.interval,n:V$.trades_count||0}};u(f$)}catch(Q$){console.error("WebSocket: Error processing OHLCV event",Q$)}})},trades:(d,X$)=>{let C=`trades:${d}`;return E(C,(u)=>{try{let h=u,p=h.data,Q$={eventType:"trade",tradingPairId:h.pair_id,tradingMode:h.trading_mode.toUpperCase(),data:{tradeId:p.trade_id,price:p.price,quantity:p.quantity,makerSide:p.maker_side.toUpperCase(),executedAt:p.executed_at}};X$(Q$)}catch(h){console.error("WebSocket: Error processing trade event",h)}})},movements:(d)=>{return E("movements",(C)=>{try{let u=C,h=u.data,p={eventType:"movement",userId:u.user_id,data:{id:h.id,entryType:h.entry_type,transactionType:h.transaction_type,tokenAddress:h.token_address,amount:String(h.amount),amountRaw:h.amount_raw,balanceBefore:h.balance_before!=null?String(h.balance_before):void 0,balanceAfter:h.balance_after!=null?String(h.balance_after):void 0,lockedBefore:h.locked_before!=null?String(h.locked_before):void 0,lockedAfter:h.locked_after!=null?String(h.locked_after):void 0,referenceId:h.reference_id,referenceType:h.reference_type,description:h.description,txHash:h.tx_hash,createdAt:h.created_at,decimals:h.decimals}};d(p)}catch(u){console.error("WebSocket: Error processing movement event",u)}})},userOrders:(d)=>{return E("orders",(C)=>{try{let u=C,h={orderId:u.order_id,eventType:u.event_type,timestamp:u.timestamp,data:n7(u.data)};d(h)}catch(u){console.error("WebSocket: Error processing user order event",u)}})},balances:(d)=>{return E("balances",(C)=>{try{let u=C,h=u.data,p={eventType:"balance_update",userId:u.user_id,data:{tokenAddress:h.token_address,tokenSymbol:h.token_symbol,available:h.available,availableRaw:h.available_raw,locked:h.locked,lockedRaw:h.locked_raw,total:h.total,totalRaw:h.total_raw,reason:h.reason,referenceId:h.reference_id,updatedAt:h.updated_at}};d(p)}catch(u){console.error("WebSocket: Error processing balance event",u)}})}}}var gQ=L0(DO(),1),Mf=["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 DY($,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)=>DY(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(Mf.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]=DY(G,J,Q+1)}return Y}if(typeof $==="string"){if($.length>1000)return`${$.substring(0,1000)}... [truncated]`;return $}return $}class UY 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 R4 extends UY{code="INVALID_CONFIG";field;value;constructor($,J,Q,Y){let X=J?`Check the '${J}' configuration parameter. ${HJ$(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(Mf.some((Y)=>J.includes(Y.toLowerCase())))$="[REDACTED]";else $=DY(this.value)}else $=DY(this.value);return{...super.toJSON(),field:this.field,value:$}}}function HJ$($){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 i7 extends UY{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 P6 extends UY{code="API_ERROR";endpoint;statusCode;responseBody;requestBody;requestId;retryAfter;constructor($,J){let{suggestion:Q,retryable:Y}=qJ$(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:DY(this.responseBody),requestBody:DY(this.requestBody),requestId:this.requestId,retryAfter:this.retryAfter}}}function qJ$($,J,Q){if(!$)return{suggestion:"Network request failed. Check your internet connection and try again.",retryable:!0};if($===gQ.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($===gQ.StatusCodes.FORBIDDEN)return{suggestion:"Access denied. Ensure your application has the required permissions and your client ID is valid.",retryable:!1};if($===gQ.StatusCodes.NOT_FOUND)return{suggestion:"Resource not found. Check that the ID or identifier is correct and the resource exists.",retryable:!1};if($===gQ.StatusCodes.CONFLICT)return{suggestion:"Resource conflict. The resource may have been modified. Refresh and try again.",retryable:!0};if($===gQ.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($===gQ.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($>=gQ.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 $8 extends UY{code="CONTRACT_ERROR";revertReason;transactionHash;contractAddress;constructor($,J){let Q=wJ$(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 wJ$($){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 AJ$={local:"http://localhost:8080",development:"https://develop.apimonaco.xyz",staging:"https://staging.apimonaco.xyz",mainnet:"https://api.monaco.xyz"},IJ$={local:"ws://localhost:8085/ws",development:"wss://develop.apimonaco.xyz/ws",staging:"wss://staging.apimonaco.xyz/ws",mainnet:"wss://api.monaco.xyz/ws"};function o7($){return AJ$[$]}function vI($){return IJ$[$]}var Qm=L0(DO(),1);var UO=256,KO;function VO($=11){if(!KO||UO+$>512){KO="",UO=0;for(let J=0;J<256;J++)KO+=(256+Math.random()*256|0).toString(16).substring(1)}return KO.substring(UO,UO+++$)}function OO($){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),N=$.pollingInterval??O,M=$.cacheTime??N,H=$.account?E$($.account):void 0,{config:w,request:A,value:Z}=$.transport({account:H,chain:Q,pollingInterval:N}),I={...w,...Z},_={account:H,batch:J,cacheTime:M,ccipRead:Y,chain:Q,dataSuffix:X,key:G,name:W,pollingInterval:N,request:A,transport:I,type:D,uid:VO(),...U?{experimental_blockTag:U}:{}};function L(F){return(E)=>{let R=E(F);for(let y in _)delete R[y];let k={...F,...R};return Object.assign(k,{extend:L(k)})}}return Object.assign(_,{extend:L(_)})}FJ();iQ();z0();K8();w$();P$();oQ();function ZY($){if(!($ instanceof T))return!1;let J=$.walk((Q)=>Q instanceof BY);if(!(J instanceof BY))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}qW();a4();w$();P0();function sO($){if($.length!==66)return null;if($.indexOf("[")!==0)return null;if($.indexOf("]")!==65)return null;let J=`0x${$.slice(1,65)}`;if(!j4(J))return null;return J}function wW($){let J=new Uint8Array(32).fill(0);if(!$)return c$(J);let Q=$.split(".");for(let Y=Q.length-1;Y>=0;Y-=1){let X=sO(Q[Y]),G=X?T0(X):X4(W1(Q[Y]),"bytes");J=X4(M4([J,G]),"bytes")}return c$(J)}a4();function cb($){return`[${$.slice(2)}]`}a4();w$();P0();function ib($){let J=new Uint8Array(32).fill(0);if(!$)return c$(J);return sO($)||X4(W1($))}function FY($){let J=$.replace(/^\.|\.$/gm,"");if(J.length===0)return new Uint8Array(1);let Q=new Uint8Array(W1(J).byteLength+2),Y=0,X=J.split(".");for(let G=0;G<X.length;G++){let W=W1(X[G]);if(W.byteLength>255)W=W1(cb(ib(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 n($,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)}iQ();z0();f4();P$();oQ();z8();dY();var ZQ$=3;function M0($,{abi:J,address:Q,args:Y,docsPath:X,functionName:G,sender:W}){let D=$ instanceof xJ?$:$ instanceof T?$.walk((w)=>("data"in w))||$.walk():{},{code:U,data:V,details:O,message:N,shortMessage:M}=D,H=(()=>{if($ instanceof Y1)return new pL({functionName:G});if([ZQ$,bJ.code].includes(U)&&(V||O||N||M)||U===b0.code&&O==="execution reverted"&&V)return new BY({abi:J,data:typeof V==="object"?V.data:V,functionName:G,message:D instanceof N8?O:M??N});return $})();return new HW(H,{abi:J,args:Y,contractAddress:Q,docsPath:X,functionName:G,sender:W})}X5();async function h4($,J){let{abi:Q,address:Y,args:X,functionName:G,...W}=J,D=w4({abi:Q,args:X,functionName:G});try{let{data:U}=await n($,p1,"call")({...W,data:D,to:Y});return t6({abi:Q,args:X,functionName:G,data:U||"0x"})}catch(U){throw M0(U,{abi:Q,address:Y,args:X,docsPath:"/docs/contract/readContract",functionName:G})}}async function kg($,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 x0({blockNumber:Q,chain:U,contract:"ensUniversalResolver"})})(),O=U?.ensTlds;if(O&&!O.some((M)=>G.endsWith(M)))return null;let N=(()=>{if(X!=null)return[wW(G),BigInt(X)];return[wW(G)]})();try{let M=w4({abi:TI,functionName:"addr",args:N}),H={address:V,abi:zO,functionName:"resolveWithGateways",args:[B4(FY(G)),M,W??[fJ]],blockNumber:Q,blockTag:Y},A=await n($,h4,"readContract")(H);if(A[0]==="0x")return null;let Z=t6({abi:TI,args:N,functionName:"addr",data:A[0]});if(Z==="0x")return null;if(r4(Z)==="0x00")return null;return Z}catch(M){if(D)throw M;if(ZY(M))return null;throw M}}P$();class _B extends T{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 B8 extends T{constructor({reason:$}){super(`ENS NFT avatar URI is invalid. ${$}`,{name:"EnsAvatarInvalidNftUriError"})}}class PW extends T{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 SB extends T{constructor({namespace:$}){super(`ENS NFT avatar namespace "${$}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}}var nQ$=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,cQ$=/^(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>\/.*)?$/,iQ$=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,oQ$=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function rQ$($){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 xg($,J){if(!$)return J;if($.endsWith("/"))return $.slice(0,-1);return $}function vB({uri:$,gatewayUrls:J}){let Q=iQ$.test($);if(Q)return{uri:$,isOnChain:!0,isEncoded:Q};let Y=xg(J?.ipfs,"https://ipfs.io"),X=xg(J?.arweave,"https://arweave.net"),G=$.match(nQ$),{protocol:W,subpath:D,target:U,subtarget:V=""}=G?.groups||{},O=W==="ipns:/"||D==="ipns/",N=W==="ipfs:/"||D==="ipfs/"||cQ$.test($);if($.startsWith("http")&&!O&&!N){let H=$;if(J?.arweave)H=$.replace(/https:\/\/arweave.net/g,J?.arweave);return{uri:H,isOnChain:!1,isEncoded:!1}}if((O||N)&&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 M=$.replace(oQ$,"");if(M.startsWith("<svg"))M=`data:image/svg+xml;base64,${btoa(M)}`;if(M.startsWith("data:")||M.startsWith("{"))return{uri:M,isOnChain:!0,isEncoded:!1};throw new PW({uri:$})}function RB($){if(typeof $!=="object"||!("image"in $)&&!("image_url"in $)&&!("image_data"in $))throw new _B({data:$});return $.image||$.image_url||$.image_data}async function fg({gatewayUrls:$,uri:J}){try{let Q=await fetch(J).then((X)=>X.json());return await zN({gatewayUrls:$,uri:RB(Q)})}catch{throw new PW({uri:J})}}async function zN({gatewayUrls:$,uri:J}){let{uri:Q,isOnChain:Y}=vB({uri:J,gatewayUrls:$});if(Y)return Q;if(await rQ$(Q))return Q;throw new PW({uri:J})}function bg($){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 B8({reason:"Only EIP-155 supported"});if(!W)throw new B8({reason:"Chain ID not found"});if(!U)throw new B8({reason:"Contract address not found"});if(!X)throw new B8({reason:"Token ID not found"});if(!D)throw new B8({reason:"ERC namespace not found"});return{chainID:Number.parseInt(W,10),namespace:D.toLowerCase(),contractAddress:U,tokenID:X}}async function gg($,{nft:J}){if(J.namespace==="erc721")return h4($,{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 h4($,{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 SB({namespace:J.namespace})}async function yg($,{gatewayUrls:J,record:Q}){if(/eip155:/i.test(Q))return tQ$($,{gatewayUrls:J,record:Q});return zN({uri:Q,gatewayUrls:J})}async function tQ$($,{gatewayUrls:J,record:Q}){let Y=bg(Q),X=await gg($,{nft:Y}),{uri:G,isOnChain:W,isEncoded:D}=vB({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 zN({uri:RB(O),gatewayUrls:J})}let U=Y.tokenID;if(Y.namespace==="erc1155")U=U.replace("0x","").padStart(64,"0");return fg({gatewayUrls:J,uri:G.replace(/(?:0x)?{id}/,U)})}FJ();iQ();z0();K8();w$();qW();async function MN($,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 x0({blockNumber:Q,chain:U,contract:"ensUniversalResolver"})})(),O=U?.ensTlds;if(O&&!O.some((N)=>G.endsWith(N)))return null;try{let N={address:V,abi:zO,args:[B4(FY(G)),w4({abi:RI,functionName:"text",args:[wW(G),X]}),W??[fJ]],functionName:"resolveWithGateways",blockNumber:Q,blockTag:Y},H=await n($,h4,"readContract")(N);if(H[0]==="0x")return null;let w=t6({abi:RI,functionName:"text",data:H[0]});return w===""?null:w}catch(N){if(D)throw N;if(ZY(N))return null;throw N}}async function hg($,{blockNumber:J,blockTag:Q,assetGatewayUrls:Y,name:X,gatewayUrls:G,strict:W,universalResolverAddress:D}){let U=await n($,MN,"getEnsText")({blockNumber:J,blockTag:Q,key:"avatar",name:X,universalResolverAddress:D,gatewayUrls:G,strict:W});if(!U)return null;try{return await yg($,{record:U,gatewayUrls:Y})}catch{return null}}FJ();K8();qW();async function ug($,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 x0({blockNumber:Y,chain:U,contract:"ensUniversalResolver"})})();try{let O={address:V,abi:qf,args:[Q,G,W??[fJ]],functionName:"reverseWithGateways",blockNumber:Y,blockTag:X},N=n($,h4,"readContract"),[M]=await N(O);return M||null}catch(O){if(D)throw O;if(ZY(O))return null;throw O}}K8();w$();async function mg($,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 x0({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 n($,h4,"readContract")({address:W,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[B4(FY(X))],blockNumber:Q,blockTag:Y});return U}X5();w$();IB();pJ();d1();async function HN($,J){let{account:Q=$.account,blockNumber:Y,blockTag:X="latest",blobs:G,data:W,gas:D,gasPrice:U,maxFeePerBlobGas:V,maxFeePerGas:O,maxPriorityFeePerGas:N,to:M,value:H,...w}=J,A=Q?E$(Q):void 0;try{e4(J);let I=(typeof Y==="bigint"?g(Y):void 0)||X,_=$.chain?.formatters?.transactionRequest?.format,F=(_||A6)({...y0(w,{format:_}),account:A,blobs:G,data:W,gas:D,gasPrice:U,maxFeePerBlobGas:V,maxFeePerGas:O,maxPriorityFeePerGas:N,to:M,value:H},"createAccessList"),E=await $.request({method:"eth_createAccessList",params:[F,I]});return{accessList:E.accessList,gasUsed:BigInt(E.gasUsed)}}catch(Z){throw VN(Z,{...J,account:A,chain:$.chain})}}function XX($,{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 lg($){let J=XX($,{method:"eth_newBlockFilter"}),Q=await $.request({method:"eth_newBlockFilter"});return{id:Q,request:J(Q),type:"block"}}f4();P$();class TB extends T{constructor($){super(`Filter type "${$}" is not supported.`,{name:"FilterTypeNotSupportedError"})}}a4();P0();KW();TJ();jJ();cQ();var dg="/docs/contract/encodeEventTopics";function n1($){let{abi:J,eventName:Q,args:Y}=$,X=J[0];if(Q){let U=r6({abi:J,name:Q});if(!U)throw new wO(Q,{docsPath:dg});X=U}if(X.type!=="event")throw new wO(void 0,{docsPath:dg});let G=d4(X),W=nQ(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,N)=>{if(Array.isArray(V[N]))return V[N].map((M,H)=>pg({param:O,value:V[N][H]}));return typeof V[N]<"u"&&V[N]!==null?pg({param:O,value:V[N]}):null})??[]}return[W,...D]}function pg({param:$,value:J}){if($.type==="string"||$.type==="bytes")return X4(T0(J));if($.type==="tuple"||$.type.match(/^(.*)\[(\d+)?\]$/))throw new TB($.type);return C6([$],[J])}w$();async function qN($,J){let{address:Q,abi:Y,args:X,eventName:G,fromBlock:W,strict:D,toBlock:U}=J,V=XX($,{method:"eth_newFilter"}),O=G?n1({abi:Y,args:X,eventName:G}):void 0,N=await $.request({method:"eth_newFilter",params:[{address:Q,fromBlock:typeof W==="bigint"?g(W):W,toBlock:typeof U==="bigint"?g(U):U,topics:O}]});return{abi:Y,args:X,eventName:G,id:N,request:V(N),strict:Boolean(D),type:"event"}}w$();async function wN($,{address:J,args:Q,event:Y,events:X,fromBlock:G,strict:W,toBlock:D}={}){let U=X??(Y?[Y]:void 0),V=XX($,{method:"eth_newFilter"}),O=[];if(U){if(O=[U.flatMap((H)=>n1({abi:[H],eventName:H.name,args:Q}))],Y)O=O[0]}let N=await $.request({method:"eth_newFilter",params:[{address:J,fromBlock:typeof G==="bigint"?g(G):G,toBlock:typeof D==="bigint"?g(D):D,...O.length?{topics:O}:{}}]});return{abi:U,args:Q,eventName:Y?Y.name:void 0,fromBlock:G,id:N,request:V(N),strict:Boolean(W),toBlock:D,type:"event"}}async function AN($){let J=XX($,{method:"eth_newPendingTransactionFilter"}),Q=await $.request({method:"eth_newPendingTransactionFilter"});return{id:Q,request:J(Q),type:"transaction"}}z0();P$();lQ();P0();function IN($){let J=X4(`0x${$.substring(4)}`).substring(26);return RJ(`0x${J}`)}R0();t4();w$();async function Sy({hash:$,signature:J}){let Q=j4($)?$:B4($),{secp256k1:Y}=await Promise.resolve().then(() => (W5(),Ey));return`0x${(()=>{if(typeof J==="object"&&"r"in J&&"s"in J){let{r:V,s:O,v:N,yParity:M}=J,H=Number(M??N),w=_y(H);return new Y.Signature(T4(V),T4(O)).addRecoveryBit(w)}let W=j4(J)?J:B4(J);if(n$(W)!==65)throw Error("invalid signature length");let D=E4(`0x${W.slice(130)}`),U=_y(D);return Y.Signature.fromCompact(W.substring(2,130)).addRecoveryBit(U)})().recoverPublicKey(Q.substring(2)).toHex(!1)}`}function _y($){if($===0||$===1)return $;if($===27)return 0;if($===28)return 1;throw Error("Invalid yParityOrV value")}async function EN({hash:$,signature:J}){return IN(await Sy({hash:$,signature:J}))}a4();w$();P$();PO();a4();w$();function iJ($,J="hex"){let Q=vy($),Y=VY(new Uint8Array(Q.length));if(Q.encode(Y),J==="hex")return c$(Y.bytes);return Y.bytes}function vy($){if(Array.isArray($))return jX$($.map((J)=>vy(J)));return EX$($)}function jX$($){let J=$.reduce((X,G)=>X+G.length,0),Q=Ry(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 EX$($){let J=typeof $==="string"?p4($):$,Q=Ry(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 Ry($){if($<256)return 1;if($<65536)return 2;if($<16777216)return 3;if($<4294967296)return 4;throw new T("Length is too large.")}P0();function _N($){let{chainId:J,nonce:Q,to:Y}=$,X=$.contractAddress??$.address,G=X4(w6(["0x05",iJ([J?g(J):"0x",X,Q?g(Q):"0x"])]));if(Y==="bytes")return p4(G);return G}async function UX($){let{authorization:J,signature:Q}=$;return EN({hash:_N(J),signature:Q??J})}w$();aO();LY();P$();f0();class $Z extends T{constructor($,{account:J,docsPath:Q,chain:Y,data:X,gas:G,gasPrice:W,maxFeePerGas:D,maxPriorityFeePerGas:U,nonce:V,to:O,value:N}){let M=V8({from:J?.address,to:O,value:typeof N<"u"&&`${IY(N)} ${Y?.nativeCurrency?.symbol||"ETH"}`,data:X,gas:G,gasPrice:typeof W<"u"&&`${n4(W)} gwei`,maxFeePerGas:typeof D<"u"&&`${n4(D)} gwei`,maxPriorityFeePerGas:typeof U<"u"&&`${n4(U)} gwei`,nonce:V});super($.shortMessage,{cause:$,docsPath:Q,metaMessages:[...$.metaMessages?[...$.metaMessages," "]:[],"Estimate Gas Arguments:",M].filter(Boolean),name:"EstimateGasExecutionError"});Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=$}}JX();TW();function Ty($,{docsPath:J,...Q}){let Y=(()=>{let X=QX($,Q);if(X instanceof O1)return $;return X})();return new $Z(Y,{docsPath:J,...Q})}pJ();NN();d1();LY();P$();class hW extends T{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}}class j8 extends T{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}}class JZ extends T{constructor({maxPriorityFeePerGas:$}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${n4($)} gwei).`,{name:"MaxFeePerGasTooLowError"})}}t4();P$();class uW extends T{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$();t4();var QZ={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function D5($,J){let Q={...$,blockHash:$.blockHash?$.blockHash:null,blockNumber:$.blockNumber?BigInt($.blockNumber):null,chainId:$.chainId?E4($.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?E4($.nonce):void 0,to:$.to?$.to:null,transactionIndex:$.transactionIndex?Number($.transactionIndex):null,type:$.type?QZ[$.type]:void 0,typeHex:$.type?$.type:void 0,value:$.value?BigInt($.value):void 0,v:$.v?BigInt($.v):void 0};if($.authorizationList)Q.authorizationList=_X$($.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 _X$($){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 SN($,J){let Q=($.transactions??[]).map((Y)=>{if(typeof Y==="string")return Y;return D5(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 $6($,{blockHash:J,blockNumber:Q,blockTag:Y=$.experimental_blockTag??"latest",includeTransactions:X}={}){let G=X??!1,W=Q!==void 0?g(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 uW({blockHash:J,blockNumber:Q});return($.chain?.formatters?.block?.format||SN)(D,"getBlock")}async function U5($){let J=await $.request({method:"eth_gasPrice"});return BigInt(J)}async function Py($,J){return XZ($,J)}async function XZ($,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 n($,$6,"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 T4(W)}catch{let[G,W]=await Promise.all([Q?Promise.resolve(Q):n($,$6,"getBlock")({}),n($,U5,"getGasPrice")({})]);if(typeof G.baseFeePerGas!=="bigint")throw new j8;let D=W-G.baseFeePerGas;if(D<0n)return 0n;return D}}async function Cy($,J){return vN($,J)}async function vN($,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 hW;let U=10**(W.toString().split(".")[1]?.length??0),V=(M)=>M*BigInt(Math.ceil(W*U))/BigInt(U),O=Q?Q:await n($,$6,"getBlock")({});if(typeof Y?.fees?.estimateFeesPerGas==="function"){let M=await Y.fees.estimateFeesPerGas({block:Q,client:$,multiply:V,request:X,type:G});if(M!==null)return M}if(G==="eip1559"){if(typeof O.baseFeePerGas!=="bigint")throw new j8;let M=typeof X?.maxPriorityFeePerGas==="bigint"?X.maxPriorityFeePerGas:await XZ($,{block:O,chain:Y,request:X}),H=V(O.baseFeePerGas);return{maxFeePerGas:X?.maxFeePerGas??H+M,maxPriorityFeePerGas:M}}return{gasPrice:X?.gasPrice??V(await n($,U5,"getGasPrice")({}))}}t4();w$();async function K5($,{address:J,blockTag:Q="latest",blockNumber:Y}){let X=await $.request({method:"eth_getTransactionCount",params:[J,typeof Y==="bigint"?g(Y):Q]},{dedupe:Boolean(Y)});return E4(X)}a4();w$();function V5($){let{kzg:J}=$,Q=$.to??(typeof $.blobs[0]==="string"?"hex":"bytes"),Y=typeof $.blobs[0]==="string"?$.blobs.map((G)=>p4(G)):$.blobs,X=[];for(let G of Y)X.push(Uint8Array.from(J.blobToKzgCommitment(G)));return Q==="bytes"?X:X.map((G)=>c$(G))}a4();w$();function O5($){let{kzg:J}=$,Q=$.to??(typeof $.blobs[0]==="string"?"hex":"bytes"),Y=typeof $.blobs[0]==="string"?$.blobs.map((W)=>p4(W)):$.blobs,X=typeof $.commitments[0]==="string"?$.commitments.map((W)=>p4(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)=>c$(W))}w$();kB();var ky=Z8;a4();w$();function xy($,J){let Q=J||"hex",Y=ky(j4($,{strict:!1})?T0($):$);if(Q==="bytes")return Y;return B4(Y)}function fy($){let{commitment:J,version:Q=1}=$,Y=$.to??(typeof J==="string"?"hex":"bytes"),X=xy(J,"bytes");return X.set([Q],0),Y==="bytes"?X:c$(X)}function RN($){let{commitments:J,version:Q}=$,Y=$.to??(typeof J[0]==="string"?"hex":"bytes"),X=[];for(let G of J)X.push(fy({commitment:G,to:Y,version:Q}));return X}var by=32,gy=4096,yy=131072,YZ=761855;var TN=1;P$();class GZ extends T{constructor({maxSize:$,size:J}){super("Blob size is too large.",{metaMessages:[`Max: ${$} bytes`,`Given: ${J} bytes`],name:"BlobSizeTooLargeError"})}}class mW extends T{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class WZ extends T{constructor({hash:$,size:J}){super(`Versioned hash "${$}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${J}`],name:"InvalidVersionedHashSizeError"})}}class DZ extends T{constructor({hash:$,version:J}){super(`Versioned hash "${$}" version is invalid.`,{metaMessages:[`Expected: ${TN}`,`Received: ${J}`],name:"InvalidVersionedHashVersionError"})}}PO();R0();a4();w$();function hy($){let J=$.to??(typeof $.data==="string"?"hex":"bytes"),Q=typeof $.data==="string"?p4($.data):$.data,Y=n$(Q);if(!Y)throw new mW;if(Y>YZ)throw new GZ({maxSize:YZ,size:Y});let X=[],G=!0,W=0;while(G){let D=VY(new Uint8Array(yy)),U=0;while(U<gy){let V=Q.slice(W,W+(by-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)=>c$(D.bytes))}function PN($){let{data:J,kzg:Q,to:Y}=$,X=$.blobs??hy({data:J,to:Y}),G=$.commitments??V5({blobs:X,kzg:Q,to:Y}),W=$.proofs??O5({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}D8();d1();f0();function CN($){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 uL({transaction:$})}JX();f0();TW();function KX($,{docsPath:J,...Q}){let Y=(()=>{let X=QX($,Q);if(X instanceof O1)return $;return X})();return new lL(Y,{docsPath:J,...Q})}pJ();d1();t4();async function L6($){let J=await $.request({method:"eth_chainId"},{dedupe:!0});return E4(J)}async function N5($,J){let{account:Q=$.account,accessList:Y,authorizationList:X,chain:G=$.chain,blobVersionedHashes:W,blobs:D,data:U,gas:V,gasPrice:O,maxFeePerBlobGas:N,maxFeePerGas:M,maxPriorityFeePerGas:H,nonce:w,nonceManager:A,to:Z,type:I,value:_,...L}=J,F=await(async()=>{if(!Q)return w;if(!A)return w;if(typeof w<"u")return w;let y=E$(Q),i=G?G.id:await n($,L6,"getChainId")({});return await A.consume({address:y.address,chainId:i,client:$})})();e4(J);let E=G?.formatters?.transactionRequest?.format,k=(E||A6)({...y0(L,{format:E}),account:Q?E$(Q):void 0,accessList:Y,authorizationList:X,blobs:D,blobVersionedHashes:W,data:U,gas:V,gasPrice:O,maxFeePerBlobGas:N,maxFeePerGas:M,maxPriorityFeePerGas:H,nonce:F,to:Z,type:I,value:_},"fillTransaction");try{let y=await $.request({method:"eth_fillTransaction",params:[k]}),b=(G?.formatters?.transaction?.format||D5)(y.tx);if(delete b.blockHash,delete b.blockNumber,delete b.r,delete b.s,delete b.transactionIndex,delete b.v,delete b.yParity,b.data=b.input,b.gas)b.gas=J.gas??b.gas;if(b.gasPrice)b.gasPrice=J.gasPrice??b.gasPrice;if(b.maxFeePerBlobGas)b.maxFeePerBlobGas=J.maxFeePerBlobGas??b.maxFeePerBlobGas;if(b.maxFeePerGas)b.maxFeePerGas=J.maxFeePerGas??b.maxFeePerGas;if(b.maxPriorityFeePerGas)b.maxPriorityFeePerGas=J.maxPriorityFeePerGas??b.maxPriorityFeePerGas;if(b.nonce)b.nonce=J.nonce??b.nonce;let J$=await(async()=>{if(typeof G?.fees?.baseFeeMultiplier==="function"){let C=await n($,$6,"getBlock")({});return G.fees.baseFeeMultiplier({block:C,client:$,request:J})}return G?.fees?.baseFeeMultiplier??1.2})();if(J$<1)throw new hW;let d=10**(J$.toString().split(".")[1]?.length??0),X$=(C)=>C*BigInt(Math.ceil(J$*d))/BigInt(d);if(b.maxFeePerGas&&!J.maxFeePerGas)b.maxFeePerGas=X$(b.maxFeePerGas);if(b.gasPrice&&!J.gasPrice)b.gasPrice=X$(b.gasPrice);return{raw:y.raw,transaction:{from:k.from,...b}}}catch(y){throw KX(y,{...J,chain:$.chain})}}var lW=["blobVersionedHashes","chainId","fees","gas","nonce","type"],uy=new Map,UZ=new O0(128);async function c1($,J){let Q=J;Q.account??=$.account,Q.parameters??=lW;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 n($,L6,"getChainId")({}),U}let O=Y?E$(Y):Y,N=Q.nonce;if(W.includes("nonce")&&typeof N>"u"&&O&&G){let F=await V();N=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"}),N??=Q.nonce;let H=(()=>{if((W.includes("blobVersionedHashes")||W.includes("sidecars"))&&Q.kzg&&Q.blobs)return!1;if(UZ.get($.uid)===!1)return!1;if(!["fees","gas"].some((E)=>W.includes(E)))return!1;if(W.includes("chainId")&&typeof Q.chainId!=="number")return!0;if(W.includes("nonce")&&typeof N!=="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 n($,N5,"fillTransaction")({...Q,nonce:N}).then((F)=>{let{chainId:E,from:R,gas:k,gasPrice:y,nonce:i,maxFeePerBlobGas:b,maxFeePerGas:J$,maxPriorityFeePerGas:r,type:d,...X$}=F.transaction;return UZ.set($.uid,!0),{...Q,...R?{from:R}:{},...d?{type:d}:{},...typeof E<"u"?{chainId:E}:{},...typeof k<"u"?{gas:k}:{},...typeof y<"u"?{gasPrice:y}:{},...typeof i<"u"?{nonce:i}:{},...typeof b<"u"?{maxFeePerBlobGas:b}:{},...typeof J$<"u"?{maxFeePerGas:J$}:{},...typeof r<"u"?{maxPriorityFeePerGas:r}:{},..."nonceKey"in X$&&typeof X$.nonceKey<"u"?{nonceKey:X$.nonceKey}:{}}}).catch((F)=>{let E=F;if(E.name!=="TransactionExecutionError")return Q;if(E.walk?.((k)=>{let y=k;return y.name==="MethodNotFoundRpcError"||y.name==="MethodNotSupportedRpcError"}))UZ.set($.uid,!1);return Q}):Q;N??=H.nonce,Q={...H,...O?{from:O?.address}:{},...N?{nonce:N}:{}};let{blobs:w,gas:A,kzg:Z,type:I}=Q;if(D?.fn&&D.runAt?.includes("beforeFillParameters"))Q=await D.fn({...Q,chain:X},{phase:"beforeFillParameters"});let _;async function L(){if(_)return _;return _=await n($,$6,"getBlock")({blockTag:"latest"}),_}if(W.includes("nonce")&&typeof N>"u"&&O&&!G)Q.nonce=await n($,K5,"getTransactionCount")({address:O.address,blockTag:"pending"});if((W.includes("blobVersionedHashes")||W.includes("sidecars"))&&w&&Z){let F=V5({blobs:w,kzg:Z});if(W.includes("blobVersionedHashes")){let E=RN({commitments:F,to:"hex"});Q.blobVersionedHashes=E}if(W.includes("sidecars")){let E=O5({blobs:w,commitments:F,kzg:Z}),R=PN({blobs:w,commitments:F,proofs:E,to:"hex"});Q.sidecars=R}}if(W.includes("chainId"))Q.chainId=await V();if((W.includes("fees")||W.includes("type"))&&typeof I>"u")try{Q.type=CN(Q)}catch{let F=uy.get($.uid);if(typeof F>"u")F=typeof(await L())?.baseFeePerGas==="bigint",uy.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 L(),{maxFeePerGas:E,maxPriorityFeePerGas:R}=await vN($,{block:F,chain:X,request:Q});if(typeof Q.maxPriorityFeePerGas>"u"&&Q.maxFeePerGas&&Q.maxFeePerGas<R)throw new JZ({maxPriorityFeePerGas:R});Q.maxPriorityFeePerGas=R,Q.maxFeePerGas=E}}else{if(typeof Q.maxFeePerGas<"u"||typeof Q.maxPriorityFeePerGas<"u")throw new j8;if(typeof Q.gasPrice>"u"){let F=await L(),{gasPrice:E}=await vN($,{block:F,chain:X,request:Q,type:"legacy"});Q.gasPrice=E}}if(W.includes("gas")&&typeof A>"u")Q.gas=await n($,z5,"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 e4(Q),delete Q.parameters,Q}async function z5($,J){let{account:Q=$.account,prepare:Y=!0}=J,X=Q?E$(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 UX({authorization:J.authorizationList[0]}).catch(()=>{throw new T("`to` is required. Could not infer from `authorizationList`")});return})(),{accessList:D,authorizationList:U,blobs:V,blobVersionedHashes:O,blockNumber:N,blockTag:M,data:H,gas:w,gasPrice:A,maxFeePerBlobGas:Z,maxFeePerGas:I,maxPriorityFeePerGas:_,nonce:L,value:F,stateOverride:E,...R}=Y?await c1($,{...J,parameters:G,to:W}):J;if(w&&J.gas!==w)return w;let y=(typeof N==="bigint"?g(N):void 0)||M,i=J5(E);e4(J);let b=$.chain?.formatters?.transactionRequest?.format,r=(b||A6)({...y0(R,{format:b}),account:X,accessList:D,authorizationList:U,blobs:V,blobVersionedHashes:O,data:H,gasPrice:A,maxFeePerBlobGas:Z,maxFeePerGas:I,maxPriorityFeePerGas:_,nonce:L,to:W,value:F},"estimateGas");return BigInt(await $.request({method:"eth_estimateGas",params:i?[r,y??$.experimental_blockTag??"latest",i]:y?[r,y]:[r]}))}catch(W){throw Ty(W,{...J,account:X,chain:$.chain})}}async function my($,J){let{abi:Q,address:Y,args:X,functionName:G,dataSuffix:W=typeof $.dataSuffix==="string"?$.dataSuffix:$.dataSuffix?.value,...D}=J,U=w4({abi:Q,args:X,functionName:G});try{return await n($,z5,"estimateGas")({data:`${U}${W?W.replace("0x",""):""}`,to:Y,...D})}catch(V){let O=D.account?E$(D.account):void 0;throw M0(V,{abi:Q,address:Y,args:X,docsPath:"/docs/contract/estimateContractGas",functionName:G,sender:O?.address})}}w$();async function ly($,{address:J,blockNumber:Q,blockTag:Y=$.experimental_blockTag??"latest"}){let X=typeof Q==="bigint"?g(Q):void 0,G=await $.request({method:"eth_getBalance",params:[J,X||Y]});return BigInt(G)}async function dy($){let J=await $.request({method:"eth_blobBaseFee"});return BigInt(J)}var SX$=new Map,vX$=new Map;function py($){let J=(X,G)=>({clear:()=>G.delete(X),get:()=>G.get(X),set:(W)=>G.set(X,W)}),Q=J($,SX$),Y=J($,vX$);return{clear:()=>{Q.clear(),Y.clear()},promise:Q,response:Y}}async function ny($,{cacheKey:J,cacheTime:Q=Number.POSITIVE_INFINITY}){let Y=py(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 RX$=($)=>`blockNumber.${$}`;async function i1($,{cacheTime:J=$.cacheTime}={}){let Q=await ny(()=>$.request({method:"eth_blockNumber"}),{cacheKey:RX$($.uid),cacheTime:J});return BigInt(Q)}t4();w$();async function cy($,{blockHash:J,blockNumber:Q,blockTag:Y="latest"}={}){let X=Q!==void 0?g(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 E4(G)}w$();async function dW($,{address:J,blockNumber:Q,blockTag:Y="latest"}){let X=Q!==void 0?g(Q):void 0,G=await $.request({method:"eth_getCode",params:[J,X||Y]},{dedupe:Boolean(X)});if(G==="0x")return;return G}cQ();L8();a4();P0();KW();f4();XL();R0();KW();GW();jJ();var iy="/docs/contract/decodeEventLog";function E8($){let{abi:J,data:Q,strict:Y,topics:X}=$,G=Y??!0,[W,...D]=X;if(!W)throw new uI({docsPath:iy});let U=J.find((I)=>I.type==="event"&&W===nQ(d4(I)));if(!(U&&("name"in U))||U.type!=="event")throw new mI(W,{docsPath:iy});let{name:V,inputs:O}=U,N=O?.some((I)=>!(("name"in I)&&I.name)),M=N?[]:{},H=O.map((I,_)=>[I,_]).filter(([I])=>("indexed"in I)&&I.indexed),w=[];for(let I=0;I<H.length;I++){let[_,L]=H[I],F=D[I];if(!F){if(G)throw new J8({abiItem:U,param:_});w.push([_,L]);continue}M[N?L:_.name||L]=TX$({param:_,value:F})}let A=O.filter((I)=>!(("indexed"in I)&&I.indexed)),Z=G?A:[...w.map(([I])=>I),...A];if(Z.length>0){if(Q&&Q!=="0x")try{let I=PJ(Z,Q);if(I){let _=0;if(!G)for(let[L,F]of w)M[N?F:L.name||F]=I[_++];if(N){for(let L=0;L<O.length;L++)if(M[L]===void 0&&_<I.length)M[L]=I[_++]}else for(let L=0;L<A.length;L++)M[A[L].name]=I[_++]}}catch(I){if(G){if(I instanceof a7||I instanceof XW)throw new hQ({abiItem:U,data:Q,params:Z,size:n$(Q)});throw I}}else if(G)throw new hQ({abiItem:U,data:"0x",params:Z,size:0})}return{eventName:V,args:Object.values(M).length>0?M:void 0}}function TX$({param:$,value:J}){if($.type==="string"||$.type==="bytes"||$.type==="tuple"||$.type.match(/^(.*)\[(\d+)?\]$/))return J;return(PJ([$],J)||[])[0]}function M5($){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:nQ(D)}));return Y.map((D)=>{let U=W.filter((N)=>D.topics[0]===N.selector);if(U.length===0)return null;let V,O;for(let N of U)try{V=E8({...D,abi:[N.abi],strict:!0}),O=N;break}catch{}if(!V&&!X){O=U[0];try{V=E8({data:D.data,topics:D.topics,abi:[O.abi],strict:!1})}catch{let N=O.abi.inputs?.some((M)=>!(("name"in M)&&M.name));return{...D,args:N?[]:{},eventName:O.abi.name}}}if(!V||!O)return null;if(G&&!G.includes(V.eventName))return null;if(!PX$({args:V.args,inputs:O.abi.inputs,matchArgs:Q}))return null;return{...V,...D}}).filter(Boolean)}function PX$($){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 h0(W,D);if(G.type==="string"||G.type==="bytes")return X4(T0(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 B6($,{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 H5($,{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),N=[];if(O){if(N=[O.flatMap((A)=>n1({abi:[A],eventName:A.name,args:W?void 0:D}))],G)N=N[0]}let M;if(Q)M=await $.request({method:"eth_getLogs",params:[{address:J,topics:N,blockHash:Q}]});else M=await $.request({method:"eth_getLogs",params:[{address:J,topics:N,fromBlock:typeof Y==="bigint"?g(Y):Y,toBlock:typeof X==="bigint"?g(X):X}]});let H=M.map((w)=>B6(w));if(!O)return H;return M5({abi:O,args:D,logs:H,strict:V})}async function kN($,J){let{abi:Q,address:Y,args:X,blockHash:G,eventName:W,fromBlock:D,toBlock:U,strict:V}=J,O=W?r6({abi:Q,name:W}):void 0,N=!O?Q.filter((M)=>M.type==="event"):void 0;return n($,H5,"getLogs")({address:Y,args:X,blockHash:G,event:O,events:N,fromBlock:D,toBlock:U,strict:V})}P$();class KZ extends T{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 oy($,J){let{address:Q,factory:Y,factoryData:X}=J;try{let[G,W,D,U,V,O,N]=await n($,h4,"readContract")({abi:CX$,address:Q,functionName:"eip712Domain",factory:Y,factoryData:X});return{domain:{name:W,version:D,chainId:Number(U),verifyingContract:V,salt:O},extensions:N,fields:G}}catch(G){let W=G;if(W.name==="ContractFunctionExecutionError"&&W.cause.name==="ContractFunctionZeroDataError")throw new KZ({address:Q});throw W}}var CX$=[{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 ry($){return{baseFeePerGas:$.baseFeePerGas.map((J)=>BigInt(J)),gasUsedRatio:$.gasUsedRatio,oldestBlock:BigInt($.oldestBlock),reward:$.reward?.map((J)=>J.map((Q)=>BigInt(Q)))}}async function ty($,{blockCount:J,blockNumber:Q,blockTag:Y="latest",rewardPercentiles:X}){let G=typeof Q==="bigint"?g(Q):void 0,W=await $.request({method:"eth_feeHistory",params:[g(J),G||Y,X]},{dedupe:Boolean(G)});return ry(W)}async function VX($,{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)=>B6(G));if(!("abi"in J)||!J.abi)return X;return M5({abi:J.abi,logs:X,strict:Q})}async function ay($,{filter:J}){let Q=J.strict??!1,X=(await J.request({method:"eth_getFilterLogs",params:[J.id]})).map((G)=>B6(G));if(!J.abi)return X;return M5({abi:J.abi,logs:X,strict:Q})}w$();t4();w$();function kX$($){return $.map((J)=>({...J,value:BigInt(J.value)}))}function sy($){return{...$,balance:$.balance?BigInt($.balance):void 0,nonce:$.nonce?E4($.nonce):void 0,storageProof:$.storageProof?kX$($.storageProof):void 0}}async function ey($,{address:J,blockNumber:Q,blockTag:Y,storageKeys:X}){let G=Y??"latest",W=Q!==void 0?g(Q):void 0,D=await $.request({method:"eth_getProof",params:[J,X,W||G]});return sy(D)}w$();async function $h($,{address:J,blockNumber:Q,blockTag:Y="latest",slot:X}){let G=Q!==void 0?g(Q):void 0;return await $.request({method:"eth_getStorageAt",params:[J,X,G||Y]})}f0();w$();async function q5($,{blockHash:J,blockNumber:Q,blockTag:Y,hash:X,index:G,sender:W,nonce:D}){let U=Y||"latest",V=Q!==void 0?g(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,g(G)]},{dedupe:!0});else if((V||U)&&typeof G==="number")O=await $.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[V||U,g(G)]},{dedupe:Boolean(V)});else if(W&&typeof D==="number")O=await $.request({method:"eth_getTransactionBySenderAndNonce",params:[W,g(D)]},{dedupe:!0});if(!O)throw new OW({blockHash:J,blockNumber:Q,blockTag:U,hash:X,index:G});return($.chain?.formatters?.transaction?.format||D5)(O,"getTransaction")}async function Jh($,{hash:J,transactionReceipt:Q}){let[Y,X]=await Promise.all([n($,i1,"getBlockNumber")({}),J?n($,q5,"getTransaction")({hash:J}):void 0]),G=Q?.blockNumber||X?.blockNumber;if(!G)return 0n;return Y-G+1n}f0();t4();var VZ={"0x0":"reverted","0x1":"success"};function xN($,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)=>B6(Y)):null,to:$.to?$.to:null,transactionIndex:$.transactionIndex?E4($.transactionIndex):null,status:$.status?VZ[$.status]:null,type:$.type?QZ[$.type]||$.type:null};if($.blobGasPrice)Q.blobGasPrice=BigInt($.blobGasPrice);if($.blobGasUsed)Q.blobGasUsed=BigInt($.blobGasUsed);return Q}async function w5($,{hash:J}){let Q=await $.request({method:"eth_getTransactionReceipt",params:[J]},{dedupe:!0});if(!Q)throw new NW({hash:J});return($.chain?.formatters?.transactionReceipt?.format||xN)(Q,"getTransactionReceipt")}FJ();f4();P$();oQ();iQ();z0();K8();async function Qh($,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:N=J.deployless??!1}=typeof $.batch?.multicall==="object"?$.batch.multicall:{},M=(()=>{if(J.multicallAddress)return J.multicallAddress;if(N)return null;if($.chain)return x0({blockNumber:G,chain:$.chain,contract:"multicall3"});throw Error("client chain not configured. multicallAddress is required.")})(),H=[[]],w=0,A=0;for(let _=0;_<V.length;_++){let{abi:L,address:F,args:E,functionName:R}=V[_];try{let k=w4({abi:L,args:E,functionName:R});if(A+=(k.length-2)/2,O>0&&A>O&&H[w].length>0)w++,A=(k.length-2)/2,H[w]=[];H[w]=[...H[w],{allowFailure:!0,callData:k,target:F}]}catch(k){let y=M0(k,{abi:L,address:F,args:E,docsPath:"/docs/contract/multicall",functionName:R,sender:Q});if(!X)throw y;H[w]=[...H[w],{allowFailure:!0,callData:"0x",target:F}]}}let Z=await Promise.allSettled(H.map((_)=>n($,h4,"readContract")({...M===null?{code:eY}:{address:M},abi:yQ,account:Q,args:[_],authorizationList:Y,blockNumber:G,blockOverrides:W,blockTag:D,functionName:"aggregate3",stateOverride:U}))),I=[];for(let _=0;_<Z.length;_++){let L=Z[_];if(L.status==="rejected"){if(!X)throw L.reason;for(let E=0;E<H[_].length;E++)I.push({status:"failure",error:L.reason,result:void 0});continue}let F=L.value;for(let E=0;E<F.length;E++){let{returnData:R,success:k}=F[E],{callData:y}=H[_][E],{abi:i,address:b,functionName:J$,args:r}=V[I.length];try{if(y==="0x")throw new Y1;if(!k)throw new xJ({data:R});let d=t6({abi:i,args:r,data:R,functionName:J$});I.push(X?{result:d,status:"success"}:d)}catch(d){let X$=M0(d,{abi:i,address:b,args:r,docsPath:"/docs/contract/multicall",functionName:J$});if(!X)throw X$;I.push({error:X$,result:void 0,status:"failure"})}}}if(I.length!==V.length)throw new T("multicall results mismatch");return I}wB();f4();oQ();JX();iQ();z0();w$();TW();pJ();NN();d1();async function pW($,J){let{blockNumber:Q,blockTag:Y=$.experimental_blockTag??"latest",blocks:X,returnFullTransactions:G,traceTransfers:W,validation:D}=J;try{let U=[];for(let M of X){let H=M.blockOverrides?DN(M.blockOverrides):void 0,w=M.calls.map((Z)=>{let I=Z,_=I.account?E$(I.account):void 0,L=I.abi?w4(I):I.data,F={...I,account:_,data:I.dataSuffix?M4([L||"0x",I.dataSuffix]):L,from:I.from??_?.address};return e4(F),A6(F)}),A=M.stateOverrides?J5(M.stateOverrides):void 0;U.push({blockOverrides:H,calls:w,stateOverrides:A})}let O=(typeof Q==="bigint"?g(Q):void 0)||Y;return(await $.request({method:"eth_simulateV1",params:[{blockStateCalls:U,returnFullTransactions:G,traceTransfers:W,validation:D},O]})).map((M,H)=>({...SN(M),calls:M.calls.map((w,A)=>{let{abi:Z,args:I,functionName:_,to:L}=X[H].calls[A],F=w.error?.data??w.returnData,E=BigInt(w.gasUsed),R=w.logs?.map((b)=>B6(b)),k=w.status==="0x1"?"success":"failure",y=Z&&k==="success"&&F!=="0x"?t6({abi:Z,data:F,functionName:_}):null,i=(()=>{if(k==="success")return;let b;if(F==="0x")b=new Y1;else if(F)b=new xJ({data:F});if(!b)return;return M0(b,{abi:Z??[],address:L??"0x",args:I,functionName:_??"<unknown>"})})();return{data:F,gasUsed:E,logs:R,status:k,...k==="success"?{result:y}:{error:i}}})}))}catch(U){let V=U,O=QX(V,{});if(O instanceof O1)throw V;throw O}}UW();s6();eI();sQ();s4();function _8($,J={}){let{as:Q=typeof $==="string"?"Hex":"Bytes"}=J,Y=RO(Ng($));if(Q==="Bytes")return Y;return b4(Y)}s4();sQ();class NZ 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 xX$={checksum:new NZ(8192)},fN=xX$.checksum;s6();sQ();s6();s4();function Xh($,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 zZ({prefix:Y,cause:new Uh});return}if(Q===!0||typeof X==="bigint"&&typeof G>"u"){if(Y!==3&&Y!==2)throw new zZ({prefix:Y,cause:new Dh});return}throw new Wh({publicKey:$})}function Yh($){let J=(()=>{if(BW($))return Gh($);if(Ag($))return bX$($);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 Xh(J),J}function bX$($){return Gh(b4($))}function Gh($){if($.length!==132&&$.length!==130&&$.length!==68)throw new Kh({publicKey:$});if($.length===130){let Y=BigInt(F4($,0,32)),X=BigInt(F4($,32,64));return{prefix:4,x:Y,y:X}}if($.length===132){let Y=Number(F4($,0,1)),X=BigInt(F4($,1,33)),G=BigInt(F4($,33,65));return{prefix:Y,x:X,y:G}}let J=Number(F4($,0,1)),Q=BigInt(F4($,1,33));return{prefix:J,x:Q}}function MZ($,J={}){Xh($);let{prefix:Q,x:Y,y:X}=$,{includePrefix:G=!0}=J;return _4(G?r$(Q,{size:1}):"0x",r$(Y,{size:32}),typeof X==="bigint"?r$(X,{size:32}):"0x")}class Wh extends U${constructor({publicKey:$}){super(`Value \`${eQ($)}\` 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 zZ extends U${constructor({prefix:$,cause:J}){super(`Prefix "${$}" is invalid.`,{cause:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidPrefixError"})}}class Dh extends U${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 Uh extends U${constructor(){super("Prefix must be 4 for uncompressed public keys.");Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidUncompressedPrefixError"})}}class Kh extends U${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 ${Z4(aY($))} bytes.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"})}}var gX$=/^0x[a-fA-F0-9]{40}$/;function S8($,J={}){let{strict:Q=!0}=J;if(!gX$.test($))throw new HZ({address:$,cause:new Nh});if(Q){if($.toLowerCase()===$)return;if(bN($)!==$)throw new HZ({address:$,cause:new zh})}}function bN($){if(fN.has($))return fN.get($);S8($,{strict:!1});let J=$.substring(2).toLowerCase(),Q=_8(zg(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 fN.set($,X),X}function yX$($,J={}){let{checksum:Q=!1}=J;if(S8($),Q)return bN($);return $}function Oh($,J={}){let Q=_8(`0x${MZ($).slice(4)}`).substring(26);return yX$(`0x${Q}`,J)}function gN($,J={}){let{strict:Q=!0}=J??{};try{return S8($,{strict:Q}),!0}catch{return!1}}class HZ extends U${constructor({address:$,cause:J}){super(`Address "${$}" is invalid.`,{cause:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class Nh extends U${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 zh extends U${constructor(){super("Address does not match its checksum counterpart.");Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}s6();function uN($){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 U$("Unable to normalize signature.");return X}function hN($,J){let Q=typeof $,Y=J.type;switch(Y){case"address":return gN($,{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 hN(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)=>hN(X,{...J,type:Y.replace(/(\[[0-9]{0,}\])$/,"")}));return!1}}}function qZ($,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 qZ(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 gN(Q[Y],{strict:!1});if(W.includes("address")&&W.includes("bytes"))return gN(Q[Y],{strict:!1});return!1})())return W}return}function mN($,J={}){let{prepare:Q=!0}=J,Y=(()=>{if(Array.isArray($))return dO($);if(typeof $==="string")return dO($);return $})();return{...Y,...Q?{hash:A5(Y)}:{}}}function nW($,J,Q){let{args:Y=[],prepare:X=!0}=Q??{},G=BW(J,{strict:!1}),W=$.filter((V)=>{if(G){if(V.type==="function"||V.type==="error")return wZ(V)===F4(J,0,4);if(V.type==="event")return A5(V)===J;return!1}return"name"in V&&V.name===J});if(W.length===0)throw new v8({name:J});if(W.length===1)return{...W[0],...X?{hash:A5(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:A5(V)}:{}};continue}if(!V.inputs)continue;if(V.inputs.length===0)continue;if(V.inputs.length!==Y.length)continue;if(Y.every((N,M)=>{let H="inputs"in V&&V.inputs[M];if(!H)return!1;return hN(N,H)})){if(D&&"inputs"in D&&D.inputs){let N=qZ(V.inputs,D.inputs,Y);if(N)throw new Mh({abiItem:V,type:N[0]},{abiItem:D,type:N[1]})}D=V}}let U=(()=>{if(D)return D;let[V,...O]=W;return{...V,overloads:O}})();if(!U)throw new v8({name:J});return{...U,...X?{hash:A5(U)}:{}}}function wZ(...$){let J=(()=>{if(Array.isArray($[0])){let[Q,Y]=$;return nW(Q,Y)}return $[0]})();return F4(A5(J),0,4)}function uX$(...$){let J=(()=>{if(Array.isArray($[0])){let[Y,X]=$;return nW(Y,X)}return $[0]})(),Q=(()=>{if(typeof J==="string")return J;return U8(J)})();return uN(Q)}function A5(...$){let J=(()=>{if(Array.isArray($[0])){let[Q,Y]=$;return nW(Q,Y)}return $[0]})();if(typeof J!=="string"&&"hash"in J&&J.hash)return J.hash;return _8(sY(uX$(J)))}class Mh extends U${constructor($,J){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${$.type}\` in \`${uN(U8($.abiItem))}\`, and`,`\`${J.type}\` in \`${uN(U8(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 v8 extends U${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"})}}UW();sQ();s6();s4();sQ();s6();s4();var qh=/^(.*)\[([0-9]*)\]$/,wh=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,lN=/^(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)?$/,_P$=2n**(8n-1n)-1n,SP$=2n**(16n-1n)-1n,vP$=2n**(24n-1n)-1n,RP$=2n**(32n-1n)-1n,TP$=2n**(40n-1n)-1n,PP$=2n**(48n-1n)-1n,CP$=2n**(56n-1n)-1n,kP$=2n**(64n-1n)-1n,xP$=2n**(72n-1n)-1n,fP$=2n**(80n-1n)-1n,bP$=2n**(88n-1n)-1n,gP$=2n**(96n-1n)-1n,yP$=2n**(104n-1n)-1n,hP$=2n**(112n-1n)-1n,uP$=2n**(120n-1n)-1n,mP$=2n**(128n-1n)-1n,lP$=2n**(136n-1n)-1n,dP$=2n**(144n-1n)-1n,pP$=2n**(152n-1n)-1n,nP$=2n**(160n-1n)-1n,cP$=2n**(168n-1n)-1n,iP$=2n**(176n-1n)-1n,oP$=2n**(184n-1n)-1n,rP$=2n**(192n-1n)-1n,tP$=2n**(200n-1n)-1n,aP$=2n**(208n-1n)-1n,sP$=2n**(216n-1n)-1n,eP$=2n**(224n-1n)-1n,$C$=2n**(232n-1n)-1n,JC$=2n**(240n-1n)-1n,QC$=2n**(248n-1n)-1n,XC$=2n**(256n-1n)-1n,YC$=-(2n**(8n-1n)),GC$=-(2n**(16n-1n)),WC$=-(2n**(24n-1n)),DC$=-(2n**(32n-1n)),UC$=-(2n**(40n-1n)),KC$=-(2n**(48n-1n)),VC$=-(2n**(56n-1n)),OC$=-(2n**(64n-1n)),NC$=-(2n**(72n-1n)),zC$=-(2n**(80n-1n)),MC$=-(2n**(88n-1n)),HC$=-(2n**(96n-1n)),qC$=-(2n**(104n-1n)),wC$=-(2n**(112n-1n)),AC$=-(2n**(120n-1n)),IC$=-(2n**(128n-1n)),LC$=-(2n**(136n-1n)),BC$=-(2n**(144n-1n)),ZC$=-(2n**(152n-1n)),FC$=-(2n**(160n-1n)),jC$=-(2n**(168n-1n)),EC$=-(2n**(176n-1n)),_C$=-(2n**(184n-1n)),SC$=-(2n**(192n-1n)),vC$=-(2n**(200n-1n)),RC$=-(2n**(208n-1n)),TC$=-(2n**(216n-1n)),PC$=-(2n**(224n-1n)),CC$=-(2n**(232n-1n)),kC$=-(2n**(240n-1n)),xC$=-(2n**(248n-1n)),fC$=-(2n**(256n-1n)),bC$=2n**8n-1n,gC$=2n**16n-1n,yC$=2n**24n-1n,hC$=2n**32n-1n,uC$=2n**40n-1n,mC$=2n**48n-1n,lC$=2n**56n-1n,dC$=2n**64n-1n,pC$=2n**72n-1n,nC$=2n**80n-1n,cC$=2n**88n-1n,iC$=2n**96n-1n,oC$=2n**104n-1n,rC$=2n**112n-1n,tC$=2n**120n-1n,aC$=2n**128n-1n,sC$=2n**136n-1n,eC$=2n**144n-1n,$k$=2n**152n-1n,Jk$=2n**160n-1n,Qk$=2n**168n-1n,Xk$=2n**176n-1n,Yk$=2n**184n-1n,Gk$=2n**192n-1n,Wk$=2n**200n-1n,Dk$=2n**208n-1n,Uk$=2n**216n-1n,Kk$=2n**224n-1n,Vk$=2n**232n-1n,Ok$=2n**240n-1n,Nk$=2n**248n-1n,AZ=2n**256n-1n;function R8($,J,Q){let{checksumAddress:Y,staticPosition:X}=Q,G=BZ(J.type);if(G){let[W,D]=G;return lX$($,{...J,type:D},{checksumAddress:Y,length:W,staticPosition:X})}if(J.type==="tuple")return cX$($,J,{checksumAddress:Y,staticPosition:X});if(J.type==="address")return mX$($,{checksum:Y});if(J.type==="bool")return dX$($);if(J.type.startsWith("bytes"))return pX$($,J,{staticPosition:X});if(J.type.startsWith("uint")||J.type.startsWith("int"))return nX$($,J);if(J.type==="string")return iX$($,{staticPosition:X});throw new iW(J.type)}var Ih=32,IZ=32;function mX$($,J={}){let{checksum:Q=!1}=J,Y=$.readBytes(32);return[((G)=>Q?bN(G):G)(b4(Mg(Y,-20))),32]}function lX$($,J,Q){let{checksumAddress:Y,length:X,staticPosition:G}=Q;if(!X){let U=m1($.readBytes(IZ)),V=G+U,O=V+Ih;$.setPosition(V);let N=m1($.readBytes(Ih)),M=cW(J),H=0,w=[];for(let A=0;A<N;++A){$.setPosition(O+(M?A*32:H));let[Z,I]=R8($,J,{checksumAddress:Y,staticPosition:O});H+=I,w.push(Z)}return $.setPosition(G+32),[w,32]}if(cW(J)){let U=m1($.readBytes(IZ)),V=G+U,O=[];for(let N=0;N<X;++N){$.setPosition(V+N*32);let[M]=R8($,J,{checksumAddress:Y,staticPosition:V});O.push(M)}return $.setPosition(G+32),[O,32]}let W=0,D=[];for(let U=0;U<X;++U){let[V,O]=R8($,J,{checksumAddress:Y,staticPosition:G+W});W+=O,D.push(V)}return[D,W]}function dX$($){return[qg($.readBytes(32),{size:32}),32]}function pX$($,J,{staticPosition:Q}){let[Y,X]=J.type.split("bytes");if(!X){let W=m1($.readBytes(32));$.setPosition(Q+W);let D=m1($.readBytes(32));if(D===0)return $.setPosition(Q+32),["0x",32];let U=$.readBytes(D);return $.setPosition(Q+32),[b4(U),32]}return[b4($.readBytes(Number.parseInt(X,10),32)),32]}function nX$($,J){let Q=J.type.startsWith("int"),Y=Number.parseInt(J.type.split("int")[1]||"256",10),X=$.readBytes(32);return[Y>48?Hg(X,{signed:Q}):m1(X,{signed:Q}),32]}function cX$($,J,Q){let{checksumAddress:Y,staticPosition:X}=Q,G=J.components.length===0||J.components.some(({name:U})=>!U),W=G?[]:{},D=0;if(cW(J)){let U=m1($.readBytes(IZ)),V=X+U;for(let O=0;O<J.components.length;++O){let N=J.components[O];$.setPosition(V+D);let[M,H]=R8($,N,{checksumAddress:Y,staticPosition:V});D+=H,W[G?O:N?.name]=M}return $.setPosition(X+32),[W,32]}for(let U=0;U<J.components.length;++U){let V=J.components[U],[O,N]=R8($,V,{checksumAddress:Y,staticPosition:X});W[G?U:V?.name]=O,D+=N}return[W,D]}function iX$($,{staticPosition:J}){let Q=m1($.readBytes(32)),Y=J+Q;$.setPosition(Y);let X=m1($.readBytes(32));if(X===0)return $.setPosition(J+32),["",32];let G=$.readBytes(X,32),W=wg(NB(G));return $.setPosition(J+32),[W,32]}function Lh({checksumAddress:$,parameters:J,values:Q}){let Y=[];for(let X=0;X<J.length;X++)Y.push(LZ({checksumAddress:$,parameter:J[X],value:Q[X]}));return Y}function LZ({checksumAddress:$=!1,parameter:J,value:Q}){let Y=J,X=BZ(Y.type);if(X){let[G,W]=X;return rX$(Q,{checksumAddress:$,length:G,parameter:{...Y,type:W}})}if(Y.type==="tuple")return $8$(Q,{checksumAddress:$,parameter:Y});if(Y.type==="address")return oX$(Q,{checksum:$});if(Y.type==="bool")return aX$(Q);if(Y.type.startsWith("uint")||Y.type.startsWith("int")){let G=Y.type.startsWith("int"),[,,W="256"]=lN.exec(Y.type)??[];return sX$(Q,{signed:G,size:Number(W)})}if(Y.type.startsWith("bytes"))return tX$(Q,{type:Y.type});if(Y.type==="string")return eX$(Q);throw new iW(Y.type)}function dN($){let J=0;for(let G=0;G<$.length;G++){let{dynamic:W,encoded:D}=$[G];if(W)J+=32;else J+=Z4(D)}let Q=[],Y=[],X=0;for(let G=0;G<$.length;G++){let{dynamic:W,encoded:D}=$[G];if(W)Q.push(r$(J+X,{size:32})),Y.push(D),X+=Z4(D);else Q.push(D)}return _4(...Q,...Y)}function oX$($,J){let{checksum:Q=!1}=J;return S8($,{strict:Q}),{dynamic:!1,encoded:lJ($.toLowerCase())}}function rX$($,J){let{checksumAddress:Q,length:Y,parameter:X}=J,G=Y===null;if(!Array.isArray($))throw new FZ($);if(!G&&$.length!==Y)throw new ZZ({expectedLength:Y,givenLength:$.length,type:`${X.type}[${Y}]`});let W=!1,D=[];for(let U=0;U<$.length;U++){let V=LZ({checksumAddress:Q,parameter:X,value:$[U]});if(V.dynamic)W=!0;D.push(V)}if(G||W){let U=dN(D);if(G){let V=r$(D.length,{size:32});return{dynamic:!0,encoded:D.length>0?_4(V,U):V}}if(W)return{dynamic:!0,encoded:U}}return{dynamic:!1,encoded:_4(...D.map(({encoded:U})=>U))}}function tX$($,{type:J}){let[,Q]=J.split("bytes"),Y=Z4($);if(!Q){let X=$;if(Y%32!==0)X=l1(X,Math.ceil(($.length-2)/2/32)*32);return{dynamic:!0,encoded:_4(lJ(r$(Y,{size:32})),X)}}if(Y!==Number.parseInt(Q,10))throw new pN({expectedSize:Number.parseInt(Q,10),value:$});return{dynamic:!1,encoded:l1($)}}function aX$($){if(typeof $!=="boolean")throw new U$(`Invalid boolean value: "${$}" (type: ${typeof $}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:lJ(GN($))}}function sX$($,{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 WN({max:Y.toString(),min:X.toString(),signed:J,size:Q/8,value:$.toString()})}return{dynamic:!1,encoded:r$($,{size:32,signed:J})}}function eX$($){let J=sY($),Q=Math.ceil(Z4(J)/32),Y=[];for(let X=0;X<Q;X++)Y.push(l1(F4(J,X*32,(X+1)*32)));return{dynamic:!0,encoded:_4(l1(r$(Z4(J),{size:32})),...Y)}}function $8$($,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=LZ({checksumAddress:Q,parameter:D,value:$[U]});if(G.push(V),V.dynamic)X=!0}return{dynamic:X,encoded:X?dN(G):_4(...G.map(({encoded:W})=>W))}}function BZ($){let J=$.match(/^(.*)\[(\d+)?\]$/);return J?[J[2]?Number(J[2]):null,J[1]]:void 0}function cW($){let{type:J}=$;if(J==="string")return!0;if(J==="bytes")return!0;if(J.endsWith("[]"))return!0;if(J==="tuple")return $.components?.some(cW);let Q=BZ($.type);if(Q&&cW({...$,type:Q[1]}))return!0;return!1}s6();var Q8$={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 Zh({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition($){if($<0||$>this.bytes.length-1)throw new Bh({length:this.bytes.length,position:$})},decrementPosition($){if($<0)throw new jZ({offset:$});let J=this.position-$;this.assertPosition(J),this.position=J},getReadCount($){return this.positionReadCount.get($||this.position)||0},incrementPosition($){if($<0)throw new jZ({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 nN($,{recursiveReadLimit:J=8192}={}){let Q=Object.create(Q8$);return Q.bytes=$,Q.dataView=new DataView($.buffer,$.byteOffset,$.byteLength),Q.positionReadCount=new Map,Q.recursiveReadLimit=J,Q}class jZ extends U${constructor({offset:$}){super(`Offset \`${$}\` cannot be negative.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class Bh extends U${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 Zh extends U${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 I5($,J,Q={}){let{as:Y="Array",checksumAddress:X=!1}=Q,G=typeof J==="string"?tY(J):J,W=nN(G);if(g0(G)===0&&$.length>0)throw new Eh;if(g0(G)&&g0(G)<32)throw new jh({data:typeof J==="string"?J:b4(J),parameters:$,size:g0(G)});let D=0,U=Y==="Array"?[]:{};for(let V=0;V<$.length;++V){let O=$[V];W.setPosition(D);let[N,M]=R8(W,O,{checksumAddress:X,staticPosition:0});if(D+=M,Y==="Array")U.push(N);else U[O.name??V]=N}return U}function OX($,J,Q){let{checksumAddress:Y=!1}=Q??{};if($.length!==J.length)throw new _Z({expectedLength:$.length,givenLength:J.length});let X=Lh({checksumAddress:Y,parameters:$,values:J}),G=dN(X);if(G.length===0)return"0x";return G}function EZ($,J){if($.length!==J.length)throw new _Z({expectedLength:$.length,givenLength:J.length});let Q=[];for(let Y=0;Y<$.length;Y++){let X=$[Y],G=J[Y];Q.push(EZ.encode(X,G))}return _4(...Q)}(function($){function J(Q,Y,X=!1){if(Q==="address"){let U=Y;return S8(U),lJ(U.toLowerCase(),X?32:0)}if(Q==="string")return sY(Y);if(Q==="bytes")return Y;if(Q==="bool")return lJ(GN(Y),X?32:1);let G=Q.match(lN);if(G){let[U,V,O="256"]=G,N=Number.parseInt(O,10)/8;return r$(Y,{size:X?32:N,signed:V==="int"})}let W=Q.match(wh);if(W){let[U,V]=W;if(Number.parseInt(V,10)!==(Y.length-2)/2)throw new pN({expectedSize:Number.parseInt(V,10),value:Y});return l1(Y,X?32:0)}let D=Q.match(qh);if(D&&Array.isArray(Y)){let[U,V]=D,O=[];for(let N=0;N<Y.length;N++)O.push(J(V,Y[N],!0));if(O.length===0)return"0x";return _4(...O)}throw new iW(Q)}$.encode=J})(EZ||(EZ={}));function rW($){if(Array.isArray($)&&typeof $[0]==="string")return pO($);if(typeof $==="string")return pO($);return $}class jh extends U${constructor({data:$,parameters:J,size:Q}){super(`Data size of ${Q} bytes is too small for given parameters.`,{metaMessages:[`Params: (${CJ(J)})`,`Data: ${$} (${Q} bytes)`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}}class Eh extends U${constructor(){super('Cannot decode zero data ("0x") with ABI parameters.');Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"})}}class ZZ extends U${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 pN extends U${constructor({expectedSize:$,value:J}){super(`Size of bytes "${J}" (bytes${Z4(J)}) does not match expected size (bytes${$}).`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class _Z extends U${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 FZ extends U${constructor($){super(`Value \`${$}\` is not a valid array.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"})}}class iW extends U${constructor($){super(`Type \`${$}\` is not a valid ABI Type.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}}s4();function _h(...$){let[J,Q]=(()=>{if(Array.isArray($[0])){let[G,W]=$;return[X8$(G),W]}return $})(),{bytecode:Y,args:X}=Q;return _4(Y,J.inputs?.length&&X?.length?OX(J.inputs,X):"0x")}function Sh($){return mN($)}function X8$($){let J=$.find((Q)=>Q.type==="constructor");if(!J)throw new v8({name:"constructor"});return J}s4();function Rh(...$){let[J,Q=[]]=(()=>{if(Array.isArray($[0])){let[V,O,N]=$;return[vh(V,O,{args:N}),N]}let[D,U]=$;return[D,U]})(),{overloads:Y}=J,X=Y?vh([J,...Y],J.name,{args:Q}):J,G=G8$(X),W=Q.length>0?OX(X.inputs,Q):void 0;return W?_4(G,W):G}function T8($,J={}){return mN($,J)}function vh($,J,Q){let Y=nW($,J,Q);if(Y.type!=="function")throw new v8({name:J,type:"function"});return Y}function G8$($){return wZ($)}var SZ="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",e6="0x0000000000000000000000000000000000000000";P$();z0();var D8$="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function Th($,J){let{blockNumber:Q,blockTag:Y,calls:X,stateOverrides:G,traceAssetChanges:W,traceTransfers:D,validation:U}=J,V=J.account?E$(J.account):void 0;if(W&&!V)throw new T("`account` is required when `traceAssetChanges` is true");let O=V?_h(Sh("constructor(bytes, bytes)"),{bytecode:UN,args:[D8$,Rh(T8("function getBalance(address)"),[V.address])]}):void 0,N=W?await Promise.all(J.calls.map(async(p)=>{if(!p.data&&!p.abi)return;let{accessList:Q$}=await HN($,{account:V.address,...p,data:p.abi?w4(p):p.data});return Q$.map(({address:V$,storageKeys:f$})=>f$.length>0?V$:null)})).then((p)=>p.flat().filter(Boolean)):[],M=await pW($,{blockNumber:Q,blockTag:Y,blocks:[...W?[{calls:[{data:O}],stateOverrides:G},{calls:N.map((p,Q$)=>({abi:[T8("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[V.address],to:p,from:e6,nonce:Q$})),stateOverrides:[{address:e6,nonce:0}]}]:[],{calls:[...X,{}].map((p)=>({...p,from:V?.address})),stateOverrides:G},...W?[{calls:[{data:O}]},{calls:N.map((p,Q$)=>({abi:[T8("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[V.address],to:p,from:e6,nonce:Q$})),stateOverrides:[{address:e6,nonce:0}]},{calls:N.map((p,Q$)=>({to:p,abi:[T8("function decimals() returns (uint256)")],functionName:"decimals",from:e6,nonce:Q$})),stateOverrides:[{address:e6,nonce:0}]},{calls:N.map((p,Q$)=>({to:p,abi:[T8("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:e6,nonce:Q$})),stateOverrides:[{address:e6,nonce:0}]},{calls:N.map((p,Q$)=>({to:p,abi:[T8("function symbol() returns (string)")],functionName:"symbol",from:e6,nonce:Q$})),stateOverrides:[{address:e6,nonce:0}]}]:[]],traceTransfers:D,validation:U}),H=W?M[2]:M[0],[w,A,,Z,I,_,L,F]=W?M:[],{calls:E,...R}=H,k=E.slice(0,-1)??[],y=w?.calls??[],i=A?.calls??[],b=[...y,...i].map((p)=>p.status==="success"?T4(p.data):null),J$=Z?.calls??[],r=I?.calls??[],d=[...J$,...r].map((p)=>p.status==="success"?T4(p.data):null),X$=(_?.calls??[]).map((p)=>p.status==="success"?p.result:null),C=(F?.calls??[]).map((p)=>p.status==="success"?p.result:null),u=(L?.calls??[]).map((p)=>p.status==="success"?p.result:null),h=[];for(let[p,Q$]of d.entries()){let V$=b[p];if(typeof Q$!=="bigint")continue;if(typeof V$!=="bigint")continue;let f$=X$[p-1],t$=C[p-1],S4=u[p-1],A4=(()=>{if(p===0)return{address:SZ,decimals:18,symbol:"ETH"};return{address:N[p-1],decimals:S4||f$?Number(f$??1):void 0,symbol:t$??void 0}})();if(h.some((e$)=>e$.token.address===A4.address))continue;h.push({token:A4,value:{pre:V$,post:Q$,diff:Q$-V$}})}return{assetChanges:h,block:R,results:k}}iQ();z0();X5();async function Ph($,J){let{abi:Q,address:Y,args:X,functionName:G,dataSuffix:W=typeof $.dataSuffix==="string"?$.dataSuffix:$.dataSuffix?.value,...D}=J,U=D.account?E$(D.account):$.account,V=w4({abi:Q,args:X,functionName:G});try{let{data:O}=await n($,p1,"call")({batch:!1,data:`${V}${W?W.replace("0x",""):""}`,to:Y,...D,account:U}),N=t6({abi:Q,args:X,functionName:G,data:O||"0x"}),M=Q.filter((H)=>("name"in H)&&H.name===J.functionName);return{result:N,request:{abi:M,address:Y,args:X,dataSuffix:W,functionName:G,...D,account:U}}}catch(O){throw M0(O,{abi:Q,address:Y,args:X,docsPath:"/docs/contract/simulateContract",functionName:G,sender:U?.address})}}async function NX($,{filter:J}){return J.request({method:"eth_uninstallFilter",params:[J.id]})}var tW={};y6(tW,{wrap:()=>O8$,validate:()=>N8$,unwrap:()=>Ch,universalSignatureValidatorBytecode:()=>U8$,universalSignatureValidatorAbi:()=>K8$,magicBytes:()=>vZ,from:()=>V8$,assert:()=>RZ,InvalidWrappedSignatureError:()=>TZ});s6();s4();var vZ="0x6492649264926492649264926492649264926492649264926492649264926492",U8$="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",K8$=[{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 RZ($){if(F4($,-32)!==vZ)throw new TZ($)}function V8$($){if(typeof $==="string")return Ch($);return $}function Ch($){RZ($);let[J,Q,Y]=I5(rW("address, bytes, bytes"),$);return{data:Q,signature:Y,to:J}}function O8$($){let{data:J,signature:Q,to:Y}=$;return _4(OX(rW("address, bytes, bytes"),[Y,J,Q]),vZ)}function N8$($){try{return RZ($),!0}catch{return!1}}class TZ extends U${constructor($){super(`Value \`${$}\` is an invalid ERC-6492 wrapped signature.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"})}}var aW={};y6(aW,{wrap:()=>S8$,validate:()=>v8$,unwrap:()=>ch,suffixParameters:()=>bZ,magicBytes:()=>fZ,from:()=>_8$,assert:()=>oN,InvalidWrappedSignatureError:()=>gZ});s4();sQ();s6();s4();function z8$($,J){let{as:Q}=J,Y=xh($),X=nN(new Uint8Array(Y.length));if(Y.encode(X),Q==="Hex")return b4(X.bytes);return X.bytes}function kh($,J={}){let{as:Q="Hex"}=J;return z8$($,{as:Q})}function xh($){if(Array.isArray($))return M8$($.map((J)=>xh(J)));return H8$($)}function M8$($){let J=$.reduce((X,G)=>X+G.length,0),Q=fh(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 H8$($){let J=typeof $==="string"?tY($):$,Q=fh(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 fh($){if($<=255)return 1;if($<=65535)return 2;if($<=16777215)return 3;if($<=4294967295)return 4;throw new U$("Length is too large.")}s6();s4();function PZ($,J={}){let{recovered:Q}=J;if(typeof $.r>"u")throw new cN({signature:$});if(typeof $.s>"u")throw new cN({signature:$});if(Q&&typeof $.yParity>"u")throw new cN({signature:$});if($.r<0n||$.r>AZ)throw new hh({value:$.r});if($.s<0n||$.s>AZ)throw new uh({value:$.s});if(typeof $.yParity==="number"&&$.yParity!==0&&$.yParity!==1)throw new iN({value:$.yParity})}function w8$($){return bh(b4($))}function bh($){if($.length!==130&&$.length!==132)throw new yh({signature:$});let J=BigInt(F4($,0,32)),Q=BigInt(F4($,32,64)),Y=(()=>{let X=Number(`0x${$.slice(130)}`);if(Number.isNaN(X))return;try{return xZ(X)}catch{throw new iN({value:X})}})();if(typeof Y>"u")return{r:J,s:Q};return{r:J,s:Q,yParity:Y}}function CZ($){if(typeof $.r>"u")return;if(typeof $.s>"u")return;return kZ($)}function kZ($){let J=(()=>{if(typeof $==="string")return bh($);if($ instanceof Uint8Array)return w8$($);if(typeof $.r==="string")return I8$($);if($.v)return A8$($);return{r:$.r,s:$.s,...typeof $.yParity<"u"?{yParity:$.yParity}:{}}})();return PZ(J),J}function A8$($){return{r:$.r,s:$.s,yParity:xZ($.v)}}function I8$($){let J=(()=>{let Q=$.v?Number($.v):void 0,Y=$.yParity?Number($.yParity):void 0;if(typeof Q==="number"&&typeof Y!=="number")Y=xZ(Q);if(typeof Y!=="number")throw new iN({value:$.yParity});return Y})();return{r:BigInt($.r),s:BigInt($.s),yParity:J}}function gh($){let{r:J,s:Q,yParity:Y}=$;return[Y?"0x01":"0x",J===0n?"0x":qB(r$(J)),Q===0n?"0x":qB(r$(Q))]}function xZ($){if($===0||$===27)return 0;if($===1||$===28)return 1;if($>=35)return $%2===0?1:0;throw new mh({value:$})}class yh extends U${constructor({signature:$}){super(`Value \`${$}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Z4(aY($))} bytes.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class cN extends U${constructor({signature:$}){super(`Signature \`${eQ($)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}}class hh extends U${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 uh extends U${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 iN extends U${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 mh extends U${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 dh($,J={}){if(typeof $.chainId==="string")return L8$($);return{...$,...J.signature}}function L8$($){let{address:J,chainId:Q,nonce:Y}=$,X=CZ($);return{address:J,chainId:Number(Q),nonce:BigInt(Y),...X}}function ph($){return B8$($,{presign:!0})}function B8$($,J={}){let{presign:Q}=J;return _8(_4("0x05",kh(Z8$(Q?{address:$.address,chainId:$.chainId,nonce:$.nonce}:$))))}function Z8$($){let{address:J,chainId:Q,nonce:Y}=$,X=CZ($);return[Q?r$(Q):"0x",J,Y?r$(Y):"0x",...X?gh(X):[]]}s6();s4();W5();s4();function nh($){return Oh(j8$($))}function j8$($){let{payload:J,signature:Q}=$,{r:Y,s:X,yParity:G}=Q,D=new w0.Signature(BigInt(Y),BigInt(X)).addRecoveryBit(G).recoverPublicKey(aY(J).substring(2));return Yh(D)}var fZ="0x8010801080108010801080108010801080108010801080108010801080108010",bZ=rW("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function oN($){if(typeof $==="string"){if(F4($,-32)!==fZ)throw new gZ($)}else PZ($.authorization)}function _8$($){if(typeof $==="string")return ch($);return $}function ch($){oN($);let J=YN(F4($,-64,-32)),Q=F4($,-J-64,-64),Y=F4($,0,-J-64),[X,G,W]=I5(bZ,Q);return{authorization:dh({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 S8$($){let{data:J,signature:Q}=$;oN($);let Y=nh({payload:ph($.authorization),signature:kZ($.authorization)}),X=OX(bZ,[{...$.authorization,delegation:$.authorization.address,chainId:BigInt($.authorization.chainId)},$.to??Y,J??"0x"]),G=r$(Z4(X),{size:32});return _4(Q,X,G,fZ)}function v8$($){try{return oN($),!0}catch{return!1}}class gZ extends U${constructor($){super(`Value \`${$}\` is an invalid ERC-8010 wrapped signature.`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc8010.InvalidWrappedSignatureError"})}}FJ();oQ();KN();z0();lQ();L8();lQ();L8();async function ih({address:$,authorization:J,signature:Q}){return h0(KY($),await UX({authorization:J,signature:Q}))}t4();w$();W5();t4();a4();function rN({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 w0.Signature(T4($),T4(J)).toCompactHex()}${G===0?"1b":"1c"}`;if(Q==="hex")return W;return p4(W)}X5();async function MX($,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(j4(U))return U;if(typeof U==="object"&&"r"in U&&"s"in U)return rN(U);return c$(U)})();try{if(aW.validate(D))return await R8$($,{...J,multicallAddress:W,signature:D});return await T8$($,{...J,verifierAddress:G,signature:D})}catch(U){try{if(h0(KY(Q),await EN({hash:X,signature:D})))return!0}catch{}if(U instanceof zX)return!1;throw U}}async function R8$($,J){let{address:Q,blockNumber:Y,blockTag:X,hash:G,multicallAddress:W}=J,{authorization:D,data:U,signature:V,to:O}=aW.unwrap(J.signature);if(await dW($,{address:Q,blockNumber:Y,blockTag:X})===w6(["0xef0100",D.address]))return await P8$($,{address:Q,blockNumber:Y,blockTag:X,hash:G,signature:V});let M={address:D.address,chainId:Number(D.chainId),nonce:Number(D.nonce),r:g(D.r,{size:32}),s:g(D.s,{size:32}),yParity:D.yParity};if(!await ih({address:Q,authorization:M}))throw new zX;let w=await n($,h4,"readContract")({...W?{address:W}:{code:eY},authorizationList:[M],abi:yQ,blockNumber:Y,blockTag:"pending",functionName:"aggregate3",args:[[...U?[{allowFailure:!0,target:O??Q,callData:U}]:[],{allowFailure:!0,target:Q,callData:w4({abi:PI,functionName:"isValidSignature",args:[G,V]})}]]});if(w[w.length-1]?.returnData?.startsWith("0x1626ba7e"))return!0;throw new zX}async function T8$($,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(tW.validate(W))return W;return tW.wrap({data:X,signature:W,to:Y})})(),O=D?{to:D,data:w4({abi:r7,functionName:"isValidSig",args:[Q,G,V]}),...U}:{data:I8({abi:r7,args:[Q,G,V],bytecode:Eg}),...U},{data:N}=await n($,p1,"call")(O).catch((M)=>{if(M instanceof MW)throw new zX;throw M});if(tI(N??"0x0"))return!0;throw new zX}async function P8$($,J){let{address:Q,blockNumber:Y,blockTag:X,hash:G,signature:W}=J;if((await n($,h4,"readContract")({address:Q,abi:PI,args:[G,W],blockNumber:Y,blockTag:X,functionName:"isValidSignature"}).catch((U)=>{if(U instanceof HW)throw new zX;throw U})).startsWith("0x1626ba7e"))return!0;throw new zX}class zX extends Error{}P0();var oh=`\x19Ethereum Signed Message:
|
|
114
114
|
`;R0();w$();function rh($){let J=(()=>{if(typeof $==="string")return G1($);if(typeof $.raw==="string")return $.raw;return c$($.raw)})(),Q=G1(`${oh}${n$(J)}`);return M4([Q,J])}function L5($,J){return X4(rh($),J)}async function th($,{address:J,message:Q,factory:Y,factoryData:X,signature:G,...W}){let D=L5(Q);return n($,MX,"verifyHash")({address:J,factory:Y,factoryData:X,hash:D,signature:G,...W})}TJ();w$();P0();f4();f1();P$();class yZ extends T{constructor({domain:$}){super(`Invalid domain "${m$($)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class hZ extends T{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 uZ extends T{constructor({type:$}){super(`Struct type "${$}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}C0();R0();w$();GL();function ah($){let{domain:J,message:Q,primaryType:Y,types:X}=$,G=(U,V)=>{let O={...V};for(let N of U){let{name:M,type:H}=N;if(H==="address")O[M]=O[M].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 m$({domain:W,message:D,primaryType:Y,types:X})}function tN($){let{domain:J,message:Q,primaryType:Y,types:X}=$,G=(W,D)=>{for(let U of W){let{name:V,type:O}=U,N=D[V],M=O.match(kO);if(M&&(typeof N==="number"||typeof N==="bigint")){let[A,Z,I]=M;g(N,{signed:Z==="int",size:Number.parseInt(I,10)/8})}if(O==="address"&&typeof N==="string"&&!s$(N))throw new q4({address:N});let H=O.match(lf);if(H){let[A,Z]=H;if(Z&&n$(N)!==Number.parseInt(Z,10))throw new pI({expectedSize:Number.parseInt(Z,10),givenSize:n$(N)})}let w=X[O];if(w)C8$(O),G(w,N)}};if(X.EIP712Domain&&J){if(typeof J!=="object")throw new yZ({domain:J});G(X.EIP712Domain,J)}if(Y!=="EIP712Domain")if(X[Y])G(X[Y],Q);else throw new hZ({primaryType:Y,types:X})}function aN({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 C8$($){if($==="address"||$==="bool"||$==="string"||$.startsWith("bytes")||$.startsWith("uint")||$.startsWith("int"))throw new uZ({type:$})}function sN($){let{domain:J={},message:Q,primaryType:Y}=$,X={EIP712Domain:aN({domain:J}),...$.types};tN({domain:J,message:Q,primaryType:Y,types:X});let G=["0x1901"];if(J)G.push(k8$({domain:J,types:X}));if(Y!=="EIP712Domain")G.push(sh({data:Q,primaryType:Y,types:X}));return X4(M4(G))}function k8$({domain:$,types:J}){return sh({data:$,primaryType:"EIP712Domain",types:J})}function sh({data:$,primaryType:J,types:Q}){let Y=eh({data:$,primaryType:J,types:Q});return X4(Y)}function eh({data:$,primaryType:J,types:Q}){let Y=[{type:"bytes32"}],X=[x8$({primaryType:J,types:Q})];for(let G of Q[J]){let[W,D]=Ju({types:Q,name:G.name,type:G.type,value:$[G.name]});Y.push(W),X.push(D)}return C6(Y,X)}function x8$({primaryType:$,types:J}){let Q=B4(f8$({primaryType:$,types:J}));return X4(Q)}function f8$({primaryType:$,types:J}){let Q="",Y=$u({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 $u({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])$u({primaryType:G.type,types:J},Q);return Q}function Ju({types:$,name:J,type:Q,value:Y}){if($[Q]!==void 0)return[{type:"bytes32"},X4(eh({data:Y,primaryType:Q,types:$}))];if(Q==="bytes")return[{type:"bytes32"},X4(Y)];if(Q==="string")return[{type:"bytes32"},X4(B4(Y))];if(Q.lastIndexOf("]")===Q.length-1){let X=Q.slice(0,Q.lastIndexOf("[")),G=Y.map((W)=>Ju({name:J,type:X,types:$,value:W}));return[{type:"bytes32"},X4(C6(G.map(([W])=>W),G.map(([,W])=>W)))]}return[{type:Q},Y]}async function Qu($,J){let{address:Q,factory:Y,factoryData:X,signature:G,message:W,primaryType:D,types:U,domain:V,...O}=J,N=sN({message:W,primaryType:D,types:U,domain:V});return n($,MX,"verifyHash")({address:Q,factory:Y,factoryData:X,hash:N,signature:G,...O})}f0();var mZ=new Map,Xu=new Map,b8$=0;function Z6($,J,Q){let Y=++b8$,X=()=>mZ.get($)||[],G=()=>{let O=X();mZ.set($,O.filter((N)=>N.id!==Y))},W=()=>{let O=X();if(!O.some((M)=>M.id===Y))return;let N=Xu.get($);if(O.length===1&&N){let M=N();if(M instanceof Promise)M.catch(()=>{})}G()},D=X();if(mZ.set($,[...D,{id:Y,fns:J}]),D&&D.length>0)return W;let U={};for(let O in J)U[O]=(...N)=>{let M=X();if(M.length===0)return;for(let H of M)H.fns[O]?.(...N)};let V=Q(U);if(typeof V==="function")Xu.set($,V);return W}async function sW($){return new Promise((J)=>setTimeout(J,$))}function P8($,{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 sW(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()})}t4();function u0($,{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 sW(U);let V=async()=>{if(!X)return;await $({unpoll:G}),await sW(Y),V()};V()})(),G}function eN($,{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 N=m$(["watchBlockNumber",$.uid,J,Q,W]);return Z6(N,{onBlockNumber:Y,onError:X},(M)=>u0(async()=>{try{let H=await n($,i1,"getBlockNumber")({cacheTime:0});if(U!==void 0){if(H===U)return;if(H-U>1&&Q)for(let w=U+1n;w<H;w++)M.onBlockNumber(w,U),U=w}if(U===void 0||H>U)M.onBlockNumber(H,U),U=H}catch(H){M.onError?.(H)}},{emitOnBegin:J,interval:W}))})():(()=>{let N=m$(["watchBlockNumber",$.uid,J,Q]);return Z6(N,{onBlockNumber:Y,onError:X},(M)=>{let H=!0,w=()=>H=!1;return(async()=>{try{let A=(()=>{if($.transport.type==="fallback"){let I=$.transport.transports.find((_)=>_.config.type==="webSocket"||_.config.type==="ipc");if(!I)return $.transport;return I.value}return $.transport})(),{unsubscribe:Z}=await A.subscribe({params:["newHeads"],onData(I){if(!H)return;let _=T4(I.result?.number);M.onBlockNumber(_,U),U=_},onError(I){M.onError?.(I)}});if(w=Z,!H)w()}catch(A){X?.(A)}})(),()=>w()})})()}async function $z($,J){let{checkReplacement:Q=!0,confirmations:Y=1,hash:X,onReplaced:G,retryCount:W=6,retryDelay:D=({count:E})=>~~(1<<E)*200,timeout:U=180000}=J,V=m$(["waitForTransactionReceipt",$.uid,X]),O=(()=>{if(J.pollingInterval)return J.pollingInterval;if($.chain?.experimental_preconfirmationTime)return $.chain.experimental_preconfirmationTime;return $.pollingInterval})(),N,M,H,w=!1,A,Z,{promise:I,resolve:_,reject:L}=$5(),F=U?setTimeout(()=>{Z?.(),A?.(),L(new dL({hash:X}))},U):void 0;return A=Z6(V,{onReplaced:G,resolve:_,reject:L},async(E)=>{if(H=await n($,w5,"getTransactionReceipt")({hash:X}).catch(()=>{return}),H&&Y<=1){clearTimeout(F),E.resolve(H),A?.();return}Z=n($,eN,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:O,async onBlockNumber(R){let k=(i)=>{clearTimeout(F),Z?.(),i(),A?.()},y=R;if(w)return;try{if(H){if(Y>1&&(!H.blockNumber||y-H.blockNumber+1n<Y))return;k(()=>E.resolve(H));return}if(Q&&!N)w=!0,await P8(async()=>{if(N=await n($,q5,"getTransaction")({hash:X}),N.blockNumber)y=N.blockNumber},{delay:D,retryCount:W}),w=!1;if(H=await n($,w5,"getTransactionReceipt")({hash:X}),Y>1&&(!H.blockNumber||y-H.blockNumber+1n<Y))return;k(()=>E.resolve(H))}catch(i){if(i instanceof OW||i instanceof NW){if(!N){w=!1;return}try{M=N,w=!0;let b=await P8(()=>n($,$6,"getBlock")({blockNumber:y,includeTransactions:!0}),{delay:D,retryCount:W,shouldRetry:({error:d})=>d instanceof uW});w=!1;let J$=b.transactions.find(({from:d,nonce:X$})=>d===M.from&&X$===M.nonce);if(!J$)return;if(H=await n($,w5,"getTransactionReceipt")({hash:J$.hash}),Y>1&&(!H.blockNumber||y-H.blockNumber+1n<Y))return;let r="replaced";if(J$.to===M.to&&J$.value===M.value&&J$.input===M.input)r="repriced";else if(J$.from===J$.to&&J$.value===0n)r="cancelled";k(()=>{E.onReplaced?.({reason:r,replacedTransaction:M,transaction:J$,transactionReceipt:H}),E.resolve(H)})}catch(b){k(()=>E.reject(b))}}else k(()=>E.reject(i))}}})}),I}function Yu($,{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,N;return V?(()=>{let w=m$(["watchBlocks",$.uid,J,Q,Y,O,U]);return Z6(w,{onBlock:X,onError:G},(A)=>u0(async()=>{try{let Z=await n($,$6,"getBlock")({blockTag:J,includeTransactions:O});if(Z.number!==null&&N?.number!=null){if(Z.number===N.number)return;if(Z.number-N.number>1&&Q)for(let I=N?.number+1n;I<Z.number;I++){let _=await n($,$6,"getBlock")({blockNumber:I,includeTransactions:O});A.onBlock(_,N),N=_}}if(N?.number==null||J==="pending"&&Z?.number==null||Z.number!==null&&Z.number>N.number)A.onBlock(Z,N),N=Z}catch(Z){A.onError?.(Z)}},{emitOnBegin:Y,interval:U}))})():(()=>{let w=!0,A=!0,Z=()=>w=!1;return(async()=>{try{if(Y)n($,$6,"getBlock")({blockTag:J,includeTransactions:O}).then((L)=>{if(!w)return;if(!A)return;X(L,void 0),A=!1}).catch(G);let I=(()=>{if($.transport.type==="fallback"){let L=$.transport.transports.find((F)=>F.config.type==="webSocket"||F.config.type==="ipc");if(!L)return $.transport;return L.value}return $.transport})(),{unsubscribe:_}=await I.subscribe({params:["newHeads"],async onData(L){if(!w)return;let F=await n($,$6,"getBlock")({blockNumber:L.result?.number,includeTransactions:O}).catch(()=>{});if(!w)return;X(F,N),A=!1,N=F},onError(L){G?.(L)}});if(Z=_,!w)Z()}catch(I){G?.(I)}})(),()=>Z()})()}f4();dY();function Gu($,J){let{abi:Q,address:Y,args:X,batch:G=!0,eventName:W,fromBlock:D,onError:U,onLogs:V,poll:O,pollingInterval:N=$.pollingInterval,strict:M}=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=M??!1,I=m$(["watchContractEvent",Y,X,G,$.uid,W,N,Z,D]);return Z6(I,{onLogs:V,onError:U},(_)=>{let L;if(D!==void 0)L=D-1n;let F,E=!1,R=u0(async()=>{if(!E){try{F=await n($,qN,"createContractEventFilter")({abi:Q,address:Y,args:X,eventName:W,strict:Z,fromBlock:D})}catch{}E=!0;return}try{let k;if(F)k=await n($,VX,"getFilterChanges")({filter:F});else{let y=await n($,i1,"getBlockNumber")({});if(L&&L<y)k=await n($,kN,"getContractEvents")({abi:Q,address:Y,args:X,eventName:W,fromBlock:L+1n,toBlock:y,strict:Z});else k=[];L=y}if(k.length===0)return;if(G)_.onLogs(k);else for(let y of k)_.onLogs([y])}catch(k){if(F&&k instanceof b0)E=!1;_.onError?.(k)}},{emitOnBegin:!0,interval:N});return async()=>{if(F)await n($,NX,"uninstallFilter")({filter:F});R()}})})():(()=>{let Z=M??!1,I=m$(["watchContractEvent",Y,X,G,$.uid,W,N,Z]),_=!0,L=()=>_=!1;return Z6(I,{onLogs:V,onError:U},(F)=>{return(async()=>{try{let E=(()=>{if($.transport.type==="fallback"){let y=$.transport.transports.find((i)=>i.config.type==="webSocket"||i.config.type==="ipc");if(!y)return $.transport;return y.value}return $.transport})(),R=W?n1({abi:Q,eventName:W,args:X}):[],{unsubscribe:k}=await E.subscribe({params:["logs",{address:Y,topics:R}],onData(y){if(!_)return;let i=y.result;try{let{eventName:b,args:J$}=E8({abi:Q,data:i.data,topics:i.topics,strict:M}),r=B6(i,{args:J$,eventName:b});F.onLogs([r])}catch(b){let J$,r;if(b instanceof hQ||b instanceof J8){if(M)return;J$=b.abiItem.name,r=b.abiItem.inputs?.some((X$)=>!(("name"in X$)&&X$.name))}let d=B6(i,{args:r?[]:{},eventName:J$});F.onLogs([d])}},onError(y){F.onError?.(y)}});if(L=k,!_)L()}catch(E){U?.(E)}})(),()=>L()})})()}f4();dY();function Wu($,{address:J,args:Q,batch:Y=!0,event:X,events:G,fromBlock:W,onError:D,onLogs:U,poll:V,pollingInterval:O=$.pollingInterval,strict:N}){let M=(()=>{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})(),H=N??!1;return M?(()=>{let Z=m$(["watchEvent",J,Q,Y,$.uid,X,O,W]);return Z6(Z,{onLogs:U,onError:D},(I)=>{let _;if(W!==void 0)_=W-1n;let L,F=!1,E=u0(async()=>{if(!F){try{L=await n($,wN,"createEventFilter")({address:J,args:Q,event:X,events:G,strict:H,fromBlock:W})}catch{}F=!0;return}try{let R;if(L)R=await n($,VX,"getFilterChanges")({filter:L});else{let k=await n($,i1,"getBlockNumber")({});if(_&&_!==k)R=await n($,H5,"getLogs")({address:J,args:Q,event:X,events:G,fromBlock:_+1n,toBlock:k});else R=[];_=k}if(R.length===0)return;if(Y)I.onLogs(R);else for(let k of R)I.onLogs([k])}catch(R){if(L&&R instanceof b0)F=!1;I.onError?.(R)}},{emitOnBegin:!0,interval:O});return async()=>{if(L)await n($,NX,"uninstallFilter")({filter:L});E()}})})():(()=>{let Z=!0,I=()=>Z=!1;return(async()=>{try{let _=(()=>{if($.transport.type==="fallback"){let R=$.transport.transports.find((k)=>k.config.type==="webSocket"||k.config.type==="ipc");if(!R)return $.transport;return R.value}return $.transport})(),L=G??(X?[X]:void 0),F=[];if(L){if(F=[L.flatMap((k)=>n1({abi:[k],eventName:k.name,args:Q}))],X)F=F[0]}let{unsubscribe:E}=await _.subscribe({params:["logs",{address:J,topics:F}],onData(R){if(!Z)return;let k=R.result;try{let{eventName:y,args:i}=E8({abi:L??[],data:k.data,topics:k.topics,strict:H}),b=B6(k,{args:i,eventName:y});U([b])}catch(y){let i,b;if(y instanceof hQ||y instanceof J8){if(N)return;i=y.abiItem.name,b=y.abiItem.inputs?.some((r)=>!(("name"in r)&&r.name))}let J$=B6(k,{args:b?[]:{},eventName:i});U([J$])}},onError(R){D?.(R)}});if(I=E,!Z)I()}catch(_){D?.(_)}})(),()=>I()})()}function Du($,{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=m$(["watchPendingTransactions",$.uid,J,G]);return Z6(V,{onTransactions:Y,onError:Q},(O)=>{let N,M=u0(async()=>{try{if(!N)try{N=await n($,AN,"createPendingTransactionFilter")({});return}catch(w){throw M(),w}let H=await n($,VX,"getFilterChanges")({filter:N});if(H.length===0)return;if(J)O.onTransactions(H);else for(let w of H)O.onTransactions([w])}catch(H){O.onError?.(H)}},{emitOnBegin:!0,interval:G});return async()=>{if(N)await n($,NX,"uninstallFilter")({filter:N});M()}})})():(()=>{let V=!0,O=()=>V=!1;return(async()=>{try{let{unsubscribe:N}=await $.transport.subscribe({params:["newPendingTransactions"],onData(M){if(!V)return;let H=M.result;Y([H])},onError(M){Q?.(M)}});if(O=N,!V)O()}catch(N){Q?.(N)}})(),()=>O()})()}function Uu($){let{scheme:J,statement:Q,...Y}=$.match(g8$)?.groups??{},{chainId:X,expirationTime:G,issuedAt:W,notBefore:D,requestId:U,...V}=$.match(y8$)?.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 g8$=/^(?:(?<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)?/,y8$=/(?: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>.+))?/;C0();L8();function Ku($){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(!s$(Y.address,{strict:!1}))return!1;if(J&&!h0(Y.address,J))return!1}catch{return!1}return!0}async function Vu($,J){let{address:Q,domain:Y,message:X,nonce:G,scheme:W,signature:D,time:U=new Date,...V}=J,O=Uu(X);if(!O.address)return!1;if(!Ku({address:Q,domain:Y,message:O,nonce:G,scheme:W,time:U}))return!1;let M=L5(X);return MX($,{address:O.address,hash:M,signature:D,...V})}async function B5($,{serializedTransaction:J}){return $.request({method:"eth_sendRawTransaction",params:[J]},{retryCount:0})}f0();async function Z5($,{serializedTransaction:J,throwOnReceiptRevert:Q,timeout:Y}){let X=await $.request({method:"eth_sendRawTransactionSync",params:Y?[J,g(Y)]:[J]},{retryCount:0}),W=($.chain?.formatters?.transactionReceipt?.format||xN)(X);if(W.status==="reverted"&&Q)throw new zW({receipt:W});return W}function Ou($){return{call:(J)=>p1($,J),createAccessList:(J)=>HN($,J),createBlockFilter:()=>lg($),createContractEventFilter:(J)=>qN($,J),createEventFilter:(J)=>wN($,J),createPendingTransactionFilter:()=>AN($),estimateContractGas:(J)=>my($,J),estimateGas:(J)=>z5($,J),getBalance:(J)=>ly($,J),getBlobBaseFee:()=>dy($),getBlock:(J)=>$6($,J),getBlockNumber:(J)=>i1($,J),getBlockTransactionCount:(J)=>cy($,J),getBytecode:(J)=>dW($,J),getChainId:()=>L6($),getCode:(J)=>dW($,J),getContractEvents:(J)=>kN($,J),getEip712Domain:(J)=>oy($,J),getEnsAddress:(J)=>kg($,J),getEnsAvatar:(J)=>hg($,J),getEnsName:(J)=>ug($,J),getEnsResolver:(J)=>mg($,J),getEnsText:(J)=>MN($,J),getFeeHistory:(J)=>ty($,J),estimateFeesPerGas:(J)=>Cy($,J),getFilterChanges:(J)=>VX($,J),getFilterLogs:(J)=>ay($,J),getGasPrice:()=>U5($),getLogs:(J)=>H5($,J),getProof:(J)=>ey($,J),estimateMaxPriorityFeePerGas:(J)=>Py($,J),fillTransaction:(J)=>N5($,J),getStorageAt:(J)=>$h($,J),getTransaction:(J)=>q5($,J),getTransactionConfirmations:(J)=>Jh($,J),getTransactionCount:(J)=>K5($,J),getTransactionReceipt:(J)=>w5($,J),multicall:(J)=>Qh($,J),prepareTransactionRequest:(J)=>c1($,J),readContract:(J)=>h4($,J),sendRawTransaction:(J)=>B5($,J),sendRawTransactionSync:(J)=>Z5($,J),simulate:(J)=>pW($,J),simulateBlocks:(J)=>pW($,J),simulateCalls:(J)=>Th($,J),simulateContract:(J)=>Ph($,J),verifyHash:(J)=>MX($,J),verifyMessage:(J)=>th($,J),verifySiweMessage:(J)=>Vu($,J),verifyTypedData:(J)=>Qu($,J),uninstallFilter:(J)=>NX($,J),waitForTransactionReceipt:(J)=>$z($,J),watchBlocks:(J)=>Yu($,J),watchBlockNumber:(J)=>eN($,J),watchContractEvent:(J)=>Gu($,J),watchEvent:(J)=>Wu($,J),watchPendingTransactions:(J)=>Du($,J)}}function lZ($){let{key:J="public",name:Q="Public Client"}=$;return OO({...$,key:J,name:Q,type:"publicClient"}).extend(Ou)}w$();async function Nu($,{chain:J}){let{id:Q,name:Y,nativeCurrency:X,rpcUrls:G,blockExplorers:W}=J;await $.request({method:"wallet_addEthereumChain",params:[{chainId:g(Q),chainName:Y,nativeCurrency:X,rpcUrls:G.default.http,blockExplorerUrls:W?Object.values(W).map(({url:D})=>D):void 0}]},{dedupe:!0,retryCount:0})}KN();P$();class z6 extends T{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
|
-
`),{docsPath:$,docsSlug:"account",name:"AccountNotFoundError"})}}class z1 extends T{constructor({docsPath:$,metaMessages:J,type:Q}){super(`Account type "${Q}" is not supported.`,{docsPath:$,metaMessages:J,name:"AccountTypeNotSupportedError"})}}P$();VW();function F5({chain:$,currentChainId:J}){if(!$)throw new CL;if(J!==$.id)throw new PL({chain:$,currentChainId:J})}pJ();D8();d1();var dZ=new O0(128);async function HX($,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:N,maxFeePerBlobGas:M,maxFeePerGas:H,maxPriorityFeePerGas:w,nonce:A,type:Z,value:I,..._}=J;if(typeof Q>"u")throw new z6({docsPath:"/docs/actions/wallet/sendTransaction"});let L=Q?E$(Q):null;try{e4(J);let F=await(async()=>{if(J.to)return J.to;if(J.to===null)return;if(W&&W.length>0)return await UX({authorization:W[0]}).catch(()=>{throw new T("`to` is required. Could not infer from `authorizationList`.")});return})();if(L?.type==="json-rpc"||L===null){let E;if(X!==null){if(E=await n($,L6,"getChainId")({}),Y)F5({currentChainId:E,chain:X})}let R=$.chain?.formatters?.transactionRequest?.format,y=(R||A6)({...y0(_,{format:R}),accessList:G,account:L,authorizationList:W,blobs:D,chainId:E,data:U?M4([U,V??"0x"]):U,gas:O,gasPrice:N,maxFeePerBlobGas:M,maxFeePerGas:H,maxPriorityFeePerGas:w,nonce:A,to:F,type:Z,value:I},"sendTransaction"),i=dZ.get($.uid),b=i?"wallet_sendTransaction":"eth_sendTransaction";try{return await $.request({method:b,params:[y]},{retryCount:0})}catch(J$){if(i===!1)throw J$;let r=J$;if(r.name==="InvalidInputRpcError"||r.name==="InvalidParamsRpcError"||r.name==="MethodNotFoundRpcError"||r.name==="MethodNotSupportedRpcError")return await $.request({method:"wallet_sendTransaction",params:[y]},{retryCount:0}).then((d)=>{return dZ.set($.uid,!0),d}).catch((d)=>{let X$=d;if(X$.name==="MethodNotFoundRpcError"||X$.name==="MethodNotSupportedRpcError")throw dZ.set($.uid,!1),r;throw X$});throw r}}if(L?.type==="local"){let E=await n($,c1,"prepareTransactionRequest")({account:L,accessList:G,authorizationList:W,blobs:D,chain:X,data:U?M4([U,V??"0x"]):U,gas:O,gasPrice:N,maxFeePerBlobGas:M,maxFeePerGas:H,maxPriorityFeePerGas:w,nonce:A,nonceManager:L.nonceManager,parameters:[...lW,"sidecars"],type:Z,value:I,..._,to:F}),R=X?.serializers?.transaction,k=await L.signTransaction(E,{serializer:R});return await n($,B5,"sendRawTransaction")({serializedTransaction:k})}if(L?.type==="smart")throw new z1({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"});throw new z1({docsPath:"/docs/actions/wallet/sendTransaction",type:L?.type})}catch(F){if(F instanceof z1)throw F;throw KX(F,{...J,account:L,chain:J.chain||void 0})}}function zu($,J){let{abi:Q,args:Y,bytecode:X,...G}=J,W=I8({abi:Q,args:Y,bytecode:X});return HX($,{...G,...G.authorizationList?{to:null}:{},data:W})}lQ();async function Mu($){if($.account?.type==="local")return[$.account.address];return(await $.request({method:"eth_accounts"},{dedupe:!0})).map((Q)=>RJ(Q))}dQ();t4();P$();dY();z0();t4();w$();var pZ="0x5792579257925792579257925792579257925792579257925792579257925792",nZ=g(0,{size:32});async function Jz($,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?E$(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 N=J.calls.map((M)=>{let H=M,w=H.abi?w4({abi:H.abi,functionName:H.functionName,args:H.args}):H.data;return{data:H.dataSuffix&&w?M4([w,H.dataSuffix]):w,to:H.to,value:H.value?g(H.value):void 0}});try{let M=await $.request({method:"wallet_sendCalls",params:[{atomicRequired:W,calls:N,capabilities:O,chainId:g(Y.id),from:V?.address,id:D,version:U}]},{retryCount:0});if(typeof M==="string")return{id:M};return M}catch(M){let H=M;if(X&&(H.name==="MethodNotFoundRpcError"||H.name==="MethodNotSupportedRpcError"||H.name==="UnknownRpcError"||H.details.toLowerCase().includes("does not exist / is not available")||H.details.toLowerCase().includes("missing or invalid. request()")||H.details.toLowerCase().includes("did not match any variant of untagged enum")||H.details.toLowerCase().includes("account upgraded to unsupported contract")||H.details.toLowerCase().includes("eip-7702 not supported")||H.details.toLowerCase().includes("unsupported wc_ method")||H.details.toLowerCase().includes("feature toggled misconfigured")||H.details.toLowerCase().includes("jsonrpcengine: response has no error or result for request"))){if(O){if(Object.values(O).some((_)=>!_.optional))throw new tQ(new T("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&&N.length>1)throw new aQ(new T("`forceAtomic` is not supported on fallback to `eth_sendTransaction`.",{details:"`forceAtomic` is not supported on fallback to `eth_sendTransaction`."}));let w=[];for(let I of N){let _=HX($,{account:V,chain:Y,data:I.data,to:I.to,value:I.value?T4(I.value):void 0});if(w.push(_),G>0)await new Promise((L)=>setTimeout(L,G))}let A=await Promise.allSettled(w);if(A.every((I)=>I.status==="rejected"))throw A[0].reason;let Z=A.map((I)=>{if(I.status==="fulfilled")return I.value;return nZ});return{id:M4([...Z,g(Y.id,{size:32}),pZ])}}throw KX(M,{...J,account:V,chain:J.chain})}}async function Qz($,J){async function Q(O){if(O.endsWith(pZ.slice(2))){let M=r4(CO(O,-64,-32)),H=CO(O,0,-64).slice(2).match(/.{1,64}/g),w=await Promise.all(H.map((Z)=>nZ.slice(2)!==Z?$.request({method:"eth_getTransactionReceipt",params:[`0x${Z}`]},{dedupe:!0}):void 0)),A=(()=>{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:E4(M),receipts:w.filter(Boolean),status:A,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?E4(X):void 0,receipts:G?.map((O)=>({...O,blockNumber:T4(O.blockNumber),gasUsed:T4(O.gasUsed),status:VZ[O.status]}))??[],statusCode:V,status:U,version:W}}w$();async function Hu($,J={}){let{account:Q=$.account,chainId:Y}=J,X=Q?E$(Q):void 0,G=Y?[X?.address,[g(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,N]of Object.entries(V)){if(O==="addSubAccount")O="unstable_addSubAccount";D[Number(U)][O]=N}}return typeof Y==="number"?D[Y]:D}async function qu($){return await $.request({method:"wallet_getPermissions"},{dedupe:!0})}L8();async function Xz($,J){let{account:Q=$.account,chainId:Y,nonce:X}=J;if(!Q)throw new z6({docsPath:"/docs/eip7702/prepareAuthorization"});let G=E$(Q),W=(()=>{if(!J.executor)return;if(J.executor==="self")return J.executor;return E$(J.executor)})(),D={address:J.contractAddress??J.address,chainId:Y,nonce:X};if(typeof D.chainId>"u")D.chainId=$.chain?.id??await n($,L6,"getChainId")({});if(typeof D.nonce>"u"){if(D.nonce=await n($,K5,"getTransactionCount")({address:G.address,blockTag:"pending"}),W==="self"||W?.address&&h0(W.address,G.address))D.nonce+=1}return D}lQ();async function wu($){return(await $.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map((Q)=>KY(Q))}async function Au($,J){return $.request({method:"wallet_requestPermissions",params:[J]},{retryCount:0})}P$();P$();class cZ extends T{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 Yz($,J){let{id:Q,pollingInterval:Y=$.pollingInterval,status:X=({statusCode:A})=>A===200||A>=300,retryCount:G=4,retryDelay:W=({count:A})=>~~(1<<A)*200,timeout:D=60000,throwOnFailure:U=!1}=J,V=m$(["waitForCallsStatus",$.uid,Q]),{promise:O,resolve:N,reject:M}=$5(),H,w=Z6(V,{resolve:N,reject:M},(A)=>{let Z=u0(async()=>{let I=(_)=>{clearTimeout(H),Z(),_(),w()};try{let _=await P8(async()=>{let L=await n($,Qz,"getCallsStatus")({id:Q});if(U&&L.status==="failure")throw new cZ(L);return L},{retryCount:G,delay:W});if(!X(_))return;I(()=>A.resolve(_))}catch(_){I(()=>A.reject(_))}},{interval:Y,emitOnBegin:!0});return Z});return H=D?setTimeout(()=>{w(),clearTimeout(H),M(new Iu({id:Q}))},D):void 0,await O}class Iu extends T{constructor({id:$}){super(`Timed out while waiting for call bundle with id "${$}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}}async function Lu($,J){let{chain:Q=$.chain}=J,Y=J.timeout??Math.max((Q?.blockTime??0)*3,5000),X=await n($,Jz,"sendCalls")(J);return await n($,Yz,"waitForCallsStatus")({...J,id:X.id,timeout:Y})}P$();f0();pJ();D8();d1();var iZ=new O0(128);async function Gz($,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:N,maxFeePerBlobGas:M,maxFeePerGas:H,maxPriorityFeePerGas:w,nonce:A,pollingInterval:Z,throwOnReceiptRevert:I,type:_,value:L,...F}=J,E=J.timeout??Math.max((X?.blockTime??0)*3,5000);if(typeof Q>"u")throw new z6({docsPath:"/docs/actions/wallet/sendTransactionSync"});let R=Q?E$(Q):null;try{e4(J);let k=await(async()=>{if(J.to)return J.to;if(J.to===null)return;if(W&&W.length>0)return await UX({authorization:W[0]}).catch(()=>{throw new T("`to` is required. Could not infer from `authorizationList`.")});return})();if(R?.type==="json-rpc"||R===null){let y;if(X!==null){if(y=await n($,L6,"getChainId")({}),Y)F5({currentChainId:y,chain:X})}let i=$.chain?.formatters?.transactionRequest?.format,J$=(i||A6)({...y0(F,{format:i}),accessList:G,account:R,authorizationList:W,blobs:D,chainId:y,data:U?M4([U,V??"0x"]):U,gas:O,gasPrice:N,maxFeePerBlobGas:M,maxFeePerGas:H,maxPriorityFeePerGas:w,nonce:A,to:k,type:_,value:L},"sendTransaction"),r=iZ.get($.uid),d=r?"wallet_sendTransaction":"eth_sendTransaction",X$=await(async()=>{try{return await $.request({method:d,params:[J$]},{retryCount:0})}catch(u){if(r===!1)throw u;let h=u;if(h.name==="InvalidInputRpcError"||h.name==="InvalidParamsRpcError"||h.name==="MethodNotFoundRpcError"||h.name==="MethodNotSupportedRpcError")return await $.request({method:"wallet_sendTransaction",params:[J$]},{retryCount:0}).then((p)=>{return iZ.set($.uid,!0),p}).catch((p)=>{let Q$=p;if(Q$.name==="MethodNotFoundRpcError"||Q$.name==="MethodNotSupportedRpcError")throw iZ.set($.uid,!1),h;throw Q$});throw h}})(),C=await n($,$z,"waitForTransactionReceipt")({checkReplacement:!1,hash:X$,pollingInterval:Z,timeout:E});if(I&&C.status==="reverted")throw new zW({receipt:C});return C}if(R?.type==="local"){let y=await n($,c1,"prepareTransactionRequest")({account:R,accessList:G,authorizationList:W,blobs:D,chain:X,data:U?M4([U,V??"0x"]):U,gas:O,gasPrice:N,maxFeePerBlobGas:M,maxFeePerGas:H,maxPriorityFeePerGas:w,nonce:A,nonceManager:R.nonceManager,parameters:[...lW,"sidecars"],type:_,value:L,...F,to:k}),i=X?.serializers?.transaction,b=await R.signTransaction(y,{serializer:i});return await n($,Z5,"sendRawTransactionSync")({serializedTransaction:b,throwOnReceiptRevert:I,timeout:J.timeout})}if(R?.type==="smart")throw new z1({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"});throw new z1({docsPath:"/docs/actions/wallet/sendTransactionSync",type:R?.type})}catch(k){if(k instanceof z1)throw k;throw KX(k,{...J,account:R,chain:J.chain||void 0})}}async function Bu($,J){let{id:Q}=J;await $.request({method:"wallet_showCallsStatus",params:[Q]});return}async function Zu($,J){let{account:Q=$.account}=J;if(!Q)throw new z6({docsPath:"/docs/eip7702/signAuthorization"});let Y=E$(Q);if(!Y.signAuthorization)throw new z1({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:Y.type});let X=await Xz($,J);return Y.signAuthorization(X)}w$();async function Fu($,{account:J=$.account,message:Q}){if(!J)throw new z6({docsPath:"/docs/actions/wallet/signMessage"});let Y=E$(J);if(Y.signMessage)return Y.signMessage({message:Q});let X=(()=>{if(typeof Q==="string")return G1(Q);if(Q.raw instanceof Uint8Array)return B4(Q.raw);return Q.raw})();return $.request({method:"personal_sign",params:[X,Y.address]},{retryCount:0})}w$();pJ();d1();async function ju($,J){let{account:Q=$.account,chain:Y=$.chain,...X}=J;if(!Q)throw new z6({docsPath:"/docs/actions/wallet/signTransaction"});let G=E$(Q);e4({account:G,...J});let W=await n($,L6,"getChainId")({});if(Y!==null)F5({currentChainId:W,chain:Y});let U=(Y?.formatters||$.chain?.formatters)?.transactionRequest?.format||A6;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:g(W),from:G.address}]},{retryCount:0})}async function Eu($,J){let{account:Q=$.account,domain:Y,message:X,primaryType:G}=J;if(!Q)throw new z6({docsPath:"/docs/actions/wallet/signTypedData"});let W=E$(Q),D={EIP712Domain:aN({domain:Y}),...J.types};if(tN({domain:Y,message:X,primaryType:G,types:D}),W.signTypedData)return W.signTypedData({domain:Y,message:X,primaryType:G,types:D});let U=ah({domain:Y,message:X,primaryType:G,types:D});return $.request({method:"eth_signTypedData_v4",params:[W.address,U]},{retryCount:0})}w$();async function _u($,{id:J}){await $.request({method:"wallet_switchEthereumChain",params:[{chainId:g(J)}]},{retryCount:0})}async function Su($,J){return await $.request({method:"wallet_watchAsset",params:J},{retryCount:0})}z0();async function C8($,J){return C8.internal($,HX,"sendTransaction",J)}(function($){async function J(Q,Y,X,G){let{abi:W,account:D=Q.account,address:U,args:V,functionName:O,...N}=G;if(typeof D>"u")throw new z6({docsPath:"/docs/contract/writeContract"});let M=D?E$(D):null,H=w4({abi:W,args:V,functionName:O});try{return await n(Q,Y,X)({data:H,to:U,account:M,...N})}catch(w){throw M0(w,{abi:W,address:U,args:V,docsPath:"/docs/contract/writeContract",functionName:O,sender:M?.address})}}$.internal=J})(C8||(C8={}));async function vu($,J){return C8.internal($,Gz,"sendTransactionSync",J)}function Ru($){return{addChain:(J)=>Nu($,J),deployContract:(J)=>zu($,J),fillTransaction:(J)=>N5($,J),getAddresses:()=>Mu($),getCallsStatus:(J)=>Qz($,J),getCapabilities:(J)=>Hu($,J),getChainId:()=>L6($),getPermissions:()=>qu($),prepareAuthorization:(J)=>Xz($,J),prepareTransactionRequest:(J)=>c1($,J),requestAddresses:()=>wu($),requestPermissions:(J)=>Au($,J),sendCalls:(J)=>Jz($,J),sendCallsSync:(J)=>Lu($,J),sendRawTransaction:(J)=>B5($,J),sendRawTransactionSync:(J)=>Z5($,J),sendTransaction:(J)=>HX($,J),sendTransactionSync:(J)=>Gz($,J),showCallsStatus:(J)=>Bu($,J),signAuthorization:(J)=>Zu($,J),signMessage:(J)=>Fu($,J),signTransaction:(J)=>ju($,J),signTypedData:(J)=>Eu($,J),switchChain:(J)=>_u($,J),waitForCallsStatus:(J)=>Yz($,J),watchAsset:(J)=>Su($,J),writeContract:(J)=>C8($,J),writeContractSync:(J)=>vu($,J)}}function oZ($){let{key:J="wallet",name:Q="Wallet Client",transport:Y}=$;return OO({...$,key:J,name:Q,transport:Y,type:"walletClient"}).extend(Ru)}z8();P$();class rZ extends T{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}}BB();z8();function Tu($,{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 h8$(){return{current:0,take(){return this.current++},reset(){this.current=0}}}var tZ=h8$();function Pu($,J={}){let{url:Q,headers:Y}=u8$($);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:N,method:M,signal:H}=O;try{let w=await Tu(async({signal:Z})=>{let I={...O,body:Array.isArray(G)?m$(G.map((E)=>({jsonrpc:"2.0",id:E.id??tZ.take(),...E}))):m$({jsonrpc:"2.0",id:G.id??tZ.take(),...G}),headers:{...Y,"Content-Type":"application/json",...N},method:M||"POST",signal:H||(V>0?Z:null)},_=new Request(Q,I),L=await D?.(_,I)??{...I,url:Q};return await W(L.url??Q,L)},{errorInstance:new eO({body:G,url:Q}),timeout:V,signal:!0});if(U)await U(w);let A;if(w.headers.get("Content-Type")?.startsWith("application/json"))A=await w.json();else{A=await w.text();try{A=JSON.parse(A||"{}")}catch(Z){if(w.ok)throw Z;A={error:A}}}if(!w.ok)throw new K1({body:G,details:m$(A.error)||w.statusText,headers:w.headers,status:w.status,url:Q});return A}catch(w){if(w instanceof K1)throw w;if(w instanceof eO)throw w;throw new K1({body:G,cause:w,url:Q})}}}}function u8$($){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:$}}}P$();z8();dY();w$();D8();var Wz=new O0(8192);function Cu($,{enabled:J=!0,id:Q}){if(!J||!Q)return $();if(Wz.get(Q))return Wz.get(Q);let Y=$().finally(()=>Wz.delete(Q));return Wz.set(Q,Y),Y}function ku($,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 rQ(Error("method not supported"),{method:V});if(G?.include&&!G.include.includes(V))throw new rQ(Error("method not supported"),{method:V});let O=X?G1(`${U}.${m$(Q)}`):void 0;return Cu(()=>P8(async()=>{try{return await $(Q)}catch(N){let M=N;switch(M.code){case jY.code:throw new jY(M);case EY.code:throw new EY(M);case _Y.code:throw new _Y(M,{method:Q.method});case SY.code:throw new SY(M);case bJ.code:throw new bJ(M);case b0.code:throw new b0(M);case vY.code:throw new vY(M);case RY.code:throw new RY(M);case TY.code:throw new TY(M);case rQ.code:throw new rQ(M,{method:Q.method});case M8.code:throw new M8(M);case PY.code:throw new PY(M);case H8.code:throw new H8(M);case CY.code:throw new CY(M);case kY.code:throw new kY(M);case xY.code:throw new xY(M);case fY.code:throw new fY(M);case bY.code:throw new bY(M);case tQ.code:throw new tQ(M);case gY.code:throw new gY(M);case yY.code:throw new yY(M);case hY.code:throw new hY(M);case uY.code:throw new uY(M);case mY.code:throw new mY(M);case aQ.code:throw new aQ(M);case 5000:throw new H8(M);case lY.code:throw new lY(M);default:if(N instanceof T)throw N;throw new tL(M)}}},{delay:({count:N,error:M})=>{if(M&&M instanceof K1){let H=M?.headers?.get("Retry-After");if(H?.match(/\d/))return Number.parseInt(H,10)*1000}return~~(1<<N)*W},retryCount:D,shouldRetry:({error:N})=>m8$(N)}),{enabled:X,id:O})}}function m8$($){if("code"in $&&typeof $.code==="number"){if($.code===-1)return!0;if($.code===M8.code)return!0;if($.code===bJ.code)return!0;return!1}if($ instanceof K1&&$.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 xu({key:$,methods:J,name:Q,request:Y,retryCount:X=3,retryDelay:G=150,timeout:W,type:D},U){let V=VO();return{config:{key:$,methods:J,name:Q,request:Y,retryCount:X,retryDelay:G,timeout:W,type:D},request:ku(Y,{methods:J,retryCount:X,retryDelay:G,uid:V}),value:U}}function eW($,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:N}=J;return({chain:M,retryCount:H,timeout:w})=>{let{batchSize:A=1000,wait:Z=0}=typeof Q==="object"?Q:{},I=J.retryCount??H,_=w??J.timeout??1e4,L=$||M?.rpcUrls.default.http[0];if(!L)throw new rZ;let F=Pu(L,{fetchFn:Y,fetchOptions:X,onRequest:U,onResponse:V,timeout:_});return xu({key:G,methods:W,name:D,async request({method:E,params:R}){let k={method:E,params:R},{schedule:y}=ON({id:L,wait:Z,shouldSplitBatch(r){return r.length>A},fn:(r)=>F.request({body:r}),sort:(r,d)=>r.id-d.id}),i=async(r)=>Q?y(r):[await F.request({body:r})],[{error:b,result:J$}]=await i(k);if(N)return{error:b,result:J$};if(b)throw new N8({body:k,error:b,url:L});return J$},retryCount:I,retryDelay:O,timeout:_,type:"http"},{fetchOptions:X,url:L})}}FJ();function Dz($){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 $D=Dz({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 JD=Dz({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 fu=L0(DO(),1);class c4{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 P6(`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:N,retryAfter:M}=this.extractResponseMetadata(X.headers);throw new P6(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:N,retryAfter:M})}throw new P6(`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:N}=this.extractResponseMetadata(X.headers);throw new P6(V,{endpoint:$,statusCode:X.status,responseBody:G,requestBody:Y,requestId:O,retryAfter:N})}return G}async makeAuthenticatedRequest($,J={}){if(!this.accessToken)throw new P6("Access token not set. Call setAccessToken() first.",{endpoint:`${this.apiUrl}${$}`,statusCode:fu.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 Uz extends c4{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 aZ=B.object({trading_pair_id:B.string().trim().min(1,"Trading pair ID is required and cannot be empty"),side:B.enum(["BUY","SELL"],{message:"Order side is required and must be either 'BUY' or 'SELL'"}),price:B.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:B.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")}),l8$=B.object({application_name:B.string().nullable().optional(),application_taker_fee:B.string(),application_taker_fee_bps:B.number(),buy_order_lock_amount:B.string().nullable().optional(),maker_total_receipt:B.string(),monaco_maker_rebate:B.string(),monaco_maker_rebate_bps:B.number(),monaco_taker_fee:B.string(),monaco_taker_fee_bps:B.number(),notional:B.string(),taker_total_payment:B.string(),total_taker_fees:B.string()});var sZ=["SUBMITTED","PARTIALLY_FILLED","FILLED","SETTLED_ON_CHAIN","SETTLED","CANCELLED","REJECTED","EXPIRED"];class bu extends Error{issues;constructor($){let J=$.issues.map((Q)=>{let Y=Q.path.join(".");return`${Y?`${Y}: `:""}${Q.message}`});super(`Validation failed:
|
|
116
|
+
`),{docsPath:$,docsSlug:"account",name:"AccountNotFoundError"})}}class z1 extends T{constructor({docsPath:$,metaMessages:J,type:Q}){super(`Account type "${Q}" is not supported.`,{docsPath:$,metaMessages:J,name:"AccountTypeNotSupportedError"})}}P$();VW();function F5({chain:$,currentChainId:J}){if(!$)throw new CL;if(J!==$.id)throw new PL({chain:$,currentChainId:J})}pJ();D8();d1();var dZ=new O0(128);async function HX($,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:N,maxFeePerBlobGas:M,maxFeePerGas:H,maxPriorityFeePerGas:w,nonce:A,type:Z,value:I,..._}=J;if(typeof Q>"u")throw new z6({docsPath:"/docs/actions/wallet/sendTransaction"});let L=Q?E$(Q):null;try{e4(J);let F=await(async()=>{if(J.to)return J.to;if(J.to===null)return;if(W&&W.length>0)return await UX({authorization:W[0]}).catch(()=>{throw new T("`to` is required. Could not infer from `authorizationList`.")});return})();if(L?.type==="json-rpc"||L===null){let E;if(X!==null){if(E=await n($,L6,"getChainId")({}),Y)F5({currentChainId:E,chain:X})}let R=$.chain?.formatters?.transactionRequest?.format,y=(R||A6)({...y0(_,{format:R}),accessList:G,account:L,authorizationList:W,blobs:D,chainId:E,data:U?M4([U,V??"0x"]):U,gas:O,gasPrice:N,maxFeePerBlobGas:M,maxFeePerGas:H,maxPriorityFeePerGas:w,nonce:A,to:F,type:Z,value:I},"sendTransaction"),i=dZ.get($.uid),b=i?"wallet_sendTransaction":"eth_sendTransaction";try{return await $.request({method:b,params:[y]},{retryCount:0})}catch(J$){if(i===!1)throw J$;let r=J$;if(r.name==="InvalidInputRpcError"||r.name==="InvalidParamsRpcError"||r.name==="MethodNotFoundRpcError"||r.name==="MethodNotSupportedRpcError")return await $.request({method:"wallet_sendTransaction",params:[y]},{retryCount:0}).then((d)=>{return dZ.set($.uid,!0),d}).catch((d)=>{let X$=d;if(X$.name==="MethodNotFoundRpcError"||X$.name==="MethodNotSupportedRpcError")throw dZ.set($.uid,!1),r;throw X$});throw r}}if(L?.type==="local"){let E=await n($,c1,"prepareTransactionRequest")({account:L,accessList:G,authorizationList:W,blobs:D,chain:X,data:U?M4([U,V??"0x"]):U,gas:O,gasPrice:N,maxFeePerBlobGas:M,maxFeePerGas:H,maxPriorityFeePerGas:w,nonce:A,nonceManager:L.nonceManager,parameters:[...lW,"sidecars"],type:Z,value:I,..._,to:F}),R=X?.serializers?.transaction,k=await L.signTransaction(E,{serializer:R});return await n($,B5,"sendRawTransaction")({serializedTransaction:k})}if(L?.type==="smart")throw new z1({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"});throw new z1({docsPath:"/docs/actions/wallet/sendTransaction",type:L?.type})}catch(F){if(F instanceof z1)throw F;throw KX(F,{...J,account:L,chain:J.chain||void 0})}}function zu($,J){let{abi:Q,args:Y,bytecode:X,...G}=J,W=I8({abi:Q,args:Y,bytecode:X});return HX($,{...G,...G.authorizationList?{to:null}:{},data:W})}lQ();async function Mu($){if($.account?.type==="local")return[$.account.address];return(await $.request({method:"eth_accounts"},{dedupe:!0})).map((Q)=>RJ(Q))}dQ();t4();P$();dY();z0();t4();w$();var pZ="0x5792579257925792579257925792579257925792579257925792579257925792",nZ=g(0,{size:32});async function Jz($,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?E$(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 N=J.calls.map((M)=>{let H=M,w=H.abi?w4({abi:H.abi,functionName:H.functionName,args:H.args}):H.data;return{data:H.dataSuffix&&w?M4([w,H.dataSuffix]):w,to:H.to,value:H.value?g(H.value):void 0}});try{let M=await $.request({method:"wallet_sendCalls",params:[{atomicRequired:W,calls:N,capabilities:O,chainId:g(Y.id),from:V?.address,id:D,version:U}]},{retryCount:0});if(typeof M==="string")return{id:M};return M}catch(M){let H=M;if(X&&(H.name==="MethodNotFoundRpcError"||H.name==="MethodNotSupportedRpcError"||H.name==="UnknownRpcError"||H.details.toLowerCase().includes("does not exist / is not available")||H.details.toLowerCase().includes("missing or invalid. request()")||H.details.toLowerCase().includes("did not match any variant of untagged enum")||H.details.toLowerCase().includes("account upgraded to unsupported contract")||H.details.toLowerCase().includes("eip-7702 not supported")||H.details.toLowerCase().includes("unsupported wc_ method")||H.details.toLowerCase().includes("feature toggled misconfigured")||H.details.toLowerCase().includes("jsonrpcengine: response has no error or result for request"))){if(O){if(Object.values(O).some((_)=>!_.optional))throw new tQ(new T("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&&N.length>1)throw new aQ(new T("`forceAtomic` is not supported on fallback to `eth_sendTransaction`.",{details:"`forceAtomic` is not supported on fallback to `eth_sendTransaction`."}));let w=[];for(let I of N){let _=HX($,{account:V,chain:Y,data:I.data,to:I.to,value:I.value?T4(I.value):void 0});if(w.push(_),G>0)await new Promise((L)=>setTimeout(L,G))}let A=await Promise.allSettled(w);if(A.every((I)=>I.status==="rejected"))throw A[0].reason;let Z=A.map((I)=>{if(I.status==="fulfilled")return I.value;return nZ});return{id:M4([...Z,g(Y.id,{size:32}),pZ])}}throw KX(M,{...J,account:V,chain:J.chain})}}async function Qz($,J){async function Q(O){if(O.endsWith(pZ.slice(2))){let M=r4(CO(O,-64,-32)),H=CO(O,0,-64).slice(2).match(/.{1,64}/g),w=await Promise.all(H.map((Z)=>nZ.slice(2)!==Z?$.request({method:"eth_getTransactionReceipt",params:[`0x${Z}`]},{dedupe:!0}):void 0)),A=(()=>{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:E4(M),receipts:w.filter(Boolean),status:A,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?E4(X):void 0,receipts:G?.map((O)=>({...O,blockNumber:T4(O.blockNumber),gasUsed:T4(O.gasUsed),status:VZ[O.status]}))??[],statusCode:V,status:U,version:W}}w$();async function Hu($,J={}){let{account:Q=$.account,chainId:Y}=J,X=Q?E$(Q):void 0,G=Y?[X?.address,[g(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,N]of Object.entries(V)){if(O==="addSubAccount")O="unstable_addSubAccount";D[Number(U)][O]=N}}return typeof Y==="number"?D[Y]:D}async function qu($){return await $.request({method:"wallet_getPermissions"},{dedupe:!0})}L8();async function Xz($,J){let{account:Q=$.account,chainId:Y,nonce:X}=J;if(!Q)throw new z6({docsPath:"/docs/eip7702/prepareAuthorization"});let G=E$(Q),W=(()=>{if(!J.executor)return;if(J.executor==="self")return J.executor;return E$(J.executor)})(),D={address:J.contractAddress??J.address,chainId:Y,nonce:X};if(typeof D.chainId>"u")D.chainId=$.chain?.id??await n($,L6,"getChainId")({});if(typeof D.nonce>"u"){if(D.nonce=await n($,K5,"getTransactionCount")({address:G.address,blockTag:"pending"}),W==="self"||W?.address&&h0(W.address,G.address))D.nonce+=1}return D}lQ();async function wu($){return(await $.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map((Q)=>KY(Q))}async function Au($,J){return $.request({method:"wallet_requestPermissions",params:[J]},{retryCount:0})}P$();P$();class cZ extends T{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 Yz($,J){let{id:Q,pollingInterval:Y=$.pollingInterval,status:X=({statusCode:A})=>A===200||A>=300,retryCount:G=4,retryDelay:W=({count:A})=>~~(1<<A)*200,timeout:D=60000,throwOnFailure:U=!1}=J,V=m$(["waitForCallsStatus",$.uid,Q]),{promise:O,resolve:N,reject:M}=$5(),H,w=Z6(V,{resolve:N,reject:M},(A)=>{let Z=u0(async()=>{let I=(_)=>{clearTimeout(H),Z(),_(),w()};try{let _=await P8(async()=>{let L=await n($,Qz,"getCallsStatus")({id:Q});if(U&&L.status==="failure")throw new cZ(L);return L},{retryCount:G,delay:W});if(!X(_))return;I(()=>A.resolve(_))}catch(_){I(()=>A.reject(_))}},{interval:Y,emitOnBegin:!0});return Z});return H=D?setTimeout(()=>{w(),clearTimeout(H),M(new Iu({id:Q}))},D):void 0,await O}class Iu extends T{constructor({id:$}){super(`Timed out while waiting for call bundle with id "${$}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}}async function Lu($,J){let{chain:Q=$.chain}=J,Y=J.timeout??Math.max((Q?.blockTime??0)*3,5000),X=await n($,Jz,"sendCalls")(J);return await n($,Yz,"waitForCallsStatus")({...J,id:X.id,timeout:Y})}P$();f0();pJ();D8();d1();var iZ=new O0(128);async function Gz($,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:N,maxFeePerBlobGas:M,maxFeePerGas:H,maxPriorityFeePerGas:w,nonce:A,pollingInterval:Z,throwOnReceiptRevert:I,type:_,value:L,...F}=J,E=J.timeout??Math.max((X?.blockTime??0)*3,5000);if(typeof Q>"u")throw new z6({docsPath:"/docs/actions/wallet/sendTransactionSync"});let R=Q?E$(Q):null;try{e4(J);let k=await(async()=>{if(J.to)return J.to;if(J.to===null)return;if(W&&W.length>0)return await UX({authorization:W[0]}).catch(()=>{throw new T("`to` is required. Could not infer from `authorizationList`.")});return})();if(R?.type==="json-rpc"||R===null){let y;if(X!==null){if(y=await n($,L6,"getChainId")({}),Y)F5({currentChainId:y,chain:X})}let i=$.chain?.formatters?.transactionRequest?.format,J$=(i||A6)({...y0(F,{format:i}),accessList:G,account:R,authorizationList:W,blobs:D,chainId:y,data:U?M4([U,V??"0x"]):U,gas:O,gasPrice:N,maxFeePerBlobGas:M,maxFeePerGas:H,maxPriorityFeePerGas:w,nonce:A,to:k,type:_,value:L},"sendTransaction"),r=iZ.get($.uid),d=r?"wallet_sendTransaction":"eth_sendTransaction",X$=await(async()=>{try{return await $.request({method:d,params:[J$]},{retryCount:0})}catch(u){if(r===!1)throw u;let h=u;if(h.name==="InvalidInputRpcError"||h.name==="InvalidParamsRpcError"||h.name==="MethodNotFoundRpcError"||h.name==="MethodNotSupportedRpcError")return await $.request({method:"wallet_sendTransaction",params:[J$]},{retryCount:0}).then((p)=>{return iZ.set($.uid,!0),p}).catch((p)=>{let Q$=p;if(Q$.name==="MethodNotFoundRpcError"||Q$.name==="MethodNotSupportedRpcError")throw iZ.set($.uid,!1),h;throw Q$});throw h}})(),C=await n($,$z,"waitForTransactionReceipt")({checkReplacement:!1,hash:X$,pollingInterval:Z,timeout:E});if(I&&C.status==="reverted")throw new zW({receipt:C});return C}if(R?.type==="local"){let y=await n($,c1,"prepareTransactionRequest")({account:R,accessList:G,authorizationList:W,blobs:D,chain:X,data:U?M4([U,V??"0x"]):U,gas:O,gasPrice:N,maxFeePerBlobGas:M,maxFeePerGas:H,maxPriorityFeePerGas:w,nonce:A,nonceManager:R.nonceManager,parameters:[...lW,"sidecars"],type:_,value:L,...F,to:k}),i=X?.serializers?.transaction,b=await R.signTransaction(y,{serializer:i});return await n($,Z5,"sendRawTransactionSync")({serializedTransaction:b,throwOnReceiptRevert:I,timeout:J.timeout})}if(R?.type==="smart")throw new z1({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"});throw new z1({docsPath:"/docs/actions/wallet/sendTransactionSync",type:R?.type})}catch(k){if(k instanceof z1)throw k;throw KX(k,{...J,account:R,chain:J.chain||void 0})}}async function Bu($,J){let{id:Q}=J;await $.request({method:"wallet_showCallsStatus",params:[Q]});return}async function Zu($,J){let{account:Q=$.account}=J;if(!Q)throw new z6({docsPath:"/docs/eip7702/signAuthorization"});let Y=E$(Q);if(!Y.signAuthorization)throw new z1({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:Y.type});let X=await Xz($,J);return Y.signAuthorization(X)}w$();async function Fu($,{account:J=$.account,message:Q}){if(!J)throw new z6({docsPath:"/docs/actions/wallet/signMessage"});let Y=E$(J);if(Y.signMessage)return Y.signMessage({message:Q});let X=(()=>{if(typeof Q==="string")return G1(Q);if(Q.raw instanceof Uint8Array)return B4(Q.raw);return Q.raw})();return $.request({method:"personal_sign",params:[X,Y.address]},{retryCount:0})}w$();pJ();d1();async function ju($,J){let{account:Q=$.account,chain:Y=$.chain,...X}=J;if(!Q)throw new z6({docsPath:"/docs/actions/wallet/signTransaction"});let G=E$(Q);e4({account:G,...J});let W=await n($,L6,"getChainId")({});if(Y!==null)F5({currentChainId:W,chain:Y});let U=(Y?.formatters||$.chain?.formatters)?.transactionRequest?.format||A6;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:g(W),from:G.address}]},{retryCount:0})}async function Eu($,J){let{account:Q=$.account,domain:Y,message:X,primaryType:G}=J;if(!Q)throw new z6({docsPath:"/docs/actions/wallet/signTypedData"});let W=E$(Q),D={EIP712Domain:aN({domain:Y}),...J.types};if(tN({domain:Y,message:X,primaryType:G,types:D}),W.signTypedData)return W.signTypedData({domain:Y,message:X,primaryType:G,types:D});let U=ah({domain:Y,message:X,primaryType:G,types:D});return $.request({method:"eth_signTypedData_v4",params:[W.address,U]},{retryCount:0})}w$();async function _u($,{id:J}){await $.request({method:"wallet_switchEthereumChain",params:[{chainId:g(J)}]},{retryCount:0})}async function Su($,J){return await $.request({method:"wallet_watchAsset",params:J},{retryCount:0})}z0();async function C8($,J){return C8.internal($,HX,"sendTransaction",J)}(function($){async function J(Q,Y,X,G){let{abi:W,account:D=Q.account,address:U,args:V,functionName:O,...N}=G;if(typeof D>"u")throw new z6({docsPath:"/docs/contract/writeContract"});let M=D?E$(D):null,H=w4({abi:W,args:V,functionName:O});try{return await n(Q,Y,X)({data:H,to:U,account:M,...N})}catch(w){throw M0(w,{abi:W,address:U,args:V,docsPath:"/docs/contract/writeContract",functionName:O,sender:M?.address})}}$.internal=J})(C8||(C8={}));async function vu($,J){return C8.internal($,Gz,"sendTransactionSync",J)}function Ru($){return{addChain:(J)=>Nu($,J),deployContract:(J)=>zu($,J),fillTransaction:(J)=>N5($,J),getAddresses:()=>Mu($),getCallsStatus:(J)=>Qz($,J),getCapabilities:(J)=>Hu($,J),getChainId:()=>L6($),getPermissions:()=>qu($),prepareAuthorization:(J)=>Xz($,J),prepareTransactionRequest:(J)=>c1($,J),requestAddresses:()=>wu($),requestPermissions:(J)=>Au($,J),sendCalls:(J)=>Jz($,J),sendCallsSync:(J)=>Lu($,J),sendRawTransaction:(J)=>B5($,J),sendRawTransactionSync:(J)=>Z5($,J),sendTransaction:(J)=>HX($,J),sendTransactionSync:(J)=>Gz($,J),showCallsStatus:(J)=>Bu($,J),signAuthorization:(J)=>Zu($,J),signMessage:(J)=>Fu($,J),signTransaction:(J)=>ju($,J),signTypedData:(J)=>Eu($,J),switchChain:(J)=>_u($,J),waitForCallsStatus:(J)=>Yz($,J),watchAsset:(J)=>Su($,J),writeContract:(J)=>C8($,J),writeContractSync:(J)=>vu($,J)}}function oZ($){let{key:J="wallet",name:Q="Wallet Client",transport:Y}=$;return OO({...$,key:J,name:Q,transport:Y,type:"walletClient"}).extend(Ru)}z8();P$();class rZ extends T{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}}BB();z8();function Tu($,{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 h8$(){return{current:0,take(){return this.current++},reset(){this.current=0}}}var tZ=h8$();function Pu($,J={}){let{url:Q,headers:Y}=u8$($);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:N,method:M,signal:H}=O;try{let w=await Tu(async({signal:Z})=>{let I={...O,body:Array.isArray(G)?m$(G.map((E)=>({jsonrpc:"2.0",id:E.id??tZ.take(),...E}))):m$({jsonrpc:"2.0",id:G.id??tZ.take(),...G}),headers:{...Y,"Content-Type":"application/json",...N},method:M||"POST",signal:H||(V>0?Z:null)},_=new Request(Q,I),L=await D?.(_,I)??{...I,url:Q};return await W(L.url??Q,L)},{errorInstance:new eO({body:G,url:Q}),timeout:V,signal:!0});if(U)await U(w);let A;if(w.headers.get("Content-Type")?.startsWith("application/json"))A=await w.json();else{A=await w.text();try{A=JSON.parse(A||"{}")}catch(Z){if(w.ok)throw Z;A={error:A}}}if(!w.ok)throw new K1({body:G,details:m$(A.error)||w.statusText,headers:w.headers,status:w.status,url:Q});return A}catch(w){if(w instanceof K1)throw w;if(w instanceof eO)throw w;throw new K1({body:G,cause:w,url:Q})}}}}function u8$($){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:$}}}P$();z8();dY();w$();D8();var Wz=new O0(8192);function Cu($,{enabled:J=!0,id:Q}){if(!J||!Q)return $();if(Wz.get(Q))return Wz.get(Q);let Y=$().finally(()=>Wz.delete(Q));return Wz.set(Q,Y),Y}function ku($,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 rQ(Error("method not supported"),{method:V});if(G?.include&&!G.include.includes(V))throw new rQ(Error("method not supported"),{method:V});let O=X?G1(`${U}.${m$(Q)}`):void 0;return Cu(()=>P8(async()=>{try{return await $(Q)}catch(N){let M=N;switch(M.code){case jY.code:throw new jY(M);case EY.code:throw new EY(M);case _Y.code:throw new _Y(M,{method:Q.method});case SY.code:throw new SY(M);case bJ.code:throw new bJ(M);case b0.code:throw new b0(M);case vY.code:throw new vY(M);case RY.code:throw new RY(M);case TY.code:throw new TY(M);case rQ.code:throw new rQ(M,{method:Q.method});case M8.code:throw new M8(M);case PY.code:throw new PY(M);case H8.code:throw new H8(M);case CY.code:throw new CY(M);case kY.code:throw new kY(M);case xY.code:throw new xY(M);case fY.code:throw new fY(M);case bY.code:throw new bY(M);case tQ.code:throw new tQ(M);case gY.code:throw new gY(M);case yY.code:throw new yY(M);case hY.code:throw new hY(M);case uY.code:throw new uY(M);case mY.code:throw new mY(M);case aQ.code:throw new aQ(M);case 5000:throw new H8(M);case lY.code:throw new lY(M);default:if(N instanceof T)throw N;throw new tL(M)}}},{delay:({count:N,error:M})=>{if(M&&M instanceof K1){let H=M?.headers?.get("Retry-After");if(H?.match(/\d/))return Number.parseInt(H,10)*1000}return~~(1<<N)*W},retryCount:D,shouldRetry:({error:N})=>m8$(N)}),{enabled:X,id:O})}}function m8$($){if("code"in $&&typeof $.code==="number"){if($.code===-1)return!0;if($.code===M8.code)return!0;if($.code===bJ.code)return!0;return!1}if($ instanceof K1&&$.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 xu({key:$,methods:J,name:Q,request:Y,retryCount:X=3,retryDelay:G=150,timeout:W,type:D},U){let V=VO();return{config:{key:$,methods:J,name:Q,request:Y,retryCount:X,retryDelay:G,timeout:W,type:D},request:ku(Y,{methods:J,retryCount:X,retryDelay:G,uid:V}),value:U}}function eW($,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:N}=J;return({chain:M,retryCount:H,timeout:w})=>{let{batchSize:A=1000,wait:Z=0}=typeof Q==="object"?Q:{},I=J.retryCount??H,_=w??J.timeout??1e4,L=$||M?.rpcUrls.default.http[0];if(!L)throw new rZ;let F=Pu(L,{fetchFn:Y,fetchOptions:X,onRequest:U,onResponse:V,timeout:_});return xu({key:G,methods:W,name:D,async request({method:E,params:R}){let k={method:E,params:R},{schedule:y}=ON({id:L,wait:Z,shouldSplitBatch(r){return r.length>A},fn:(r)=>F.request({body:r}),sort:(r,d)=>r.id-d.id}),i=async(r)=>Q?y(r):[await F.request({body:r})],[{error:b,result:J$}]=await i(k);if(N)return{error:b,result:J$};if(b)throw new N8({body:k,error:b,url:L});return J$},retryCount:I,retryDelay:O,timeout:_,type:"http"},{fetchOptions:X,url:L})}}FJ();function Dz($){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 $D=Dz({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 JD=Dz({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 fu=L0(DO(),1);class c4{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 P6(`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:N,retryAfter:M}=this.extractResponseMetadata(X.headers);throw new P6(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:N,retryAfter:M})}throw new P6(`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:N}=this.extractResponseMetadata(X.headers);throw new P6(V,{endpoint:$,statusCode:X.status,responseBody:G,requestBody:Y,requestId:O,retryAfter:N})}return G}async makeAuthenticatedRequest($,J={}){if(!this.accessToken)throw new P6("Access token not set. Call setAccessToken() first.",{endpoint:`${this.apiUrl}${$}`,statusCode:fu.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 Uz extends c4{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 aZ=B.object({trading_pair_id:B.string().trim().min(1,"Trading pair ID is required and cannot be empty"),side:B.enum(["BUY","SELL"],{message:"Order side is required and must be either 'BUY' or 'SELL'"}),price:B.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:B.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:B.enum(["LIMIT","MARKET"]).optional(),slippage_tolerance_bps:B.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:B.ZodIssueCode.custom,message:"slippage_tolerance_bps is only valid when order_type is MARKET",path:["slippage_tolerance_bps"]})}),l8$=B.object({application_name:B.string().nullable().optional(),application_taker_fee:B.string(),application_taker_fee_bps:B.number(),buy_order_lock_amount:B.string().nullable().optional(),maker_total_receipt:B.string(),monaco_maker_rebate:B.string(),monaco_maker_rebate_bps:B.number(),monaco_taker_fee:B.string(),monaco_taker_fee_bps:B.number(),notional:B.string(),taker_total_payment:B.string(),total_taker_fees:B.string(),max_quantity:B.string().nullable(),max_quantity_raw:B.string().nullable(),slippage_tolerance_bps:B.number().nullable()});var sZ=["SUBMITTED","PARTIALLY_FILLED","FILLED","SETTLED_ON_CHAIN","SETTLED","CANCELLED","REJECTED","EXPIRED"];class bu 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 u4($,J){let Q=$.safeParse(J);if(!Q.success)throw new bu(Q.error);return Q.data}var eZ=B.enum(["BUY","SELL"],{message:'Order side must be "BUY" or "SELL"'}),gu=B.enum(["SPOT","MARGIN"],{message:'Trading mode must be "SPOT" or "MARGIN"'}),yu=B.enum(["GTC","IOC","FOK"],{message:'Time in force must be "GTC", "IOC", or "FOK"'}),oJ=B.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"}),m4=B.uuid({message:"Must be a valid UUID (e.g., '123e4567-e89b-12d3-a456-426614174000')"}),hu=B.iso.datetime({message:"Must be a valid ISO 8601 date string (e.g., '2024-12-31T23:59:59Z')"}),uu=B.number().min(0,"Slippage tolerance must be at least 0 (no slippage)").max(1,"Slippage tolerance cannot exceed 1 (100%)").optional(),mu=B.object({tradingPairId:m4,side:eZ,quantity:oJ,price:oJ,options:B.object({tradingMode:gu.optional(),useMasterBalance:B.boolean().optional(),expirationDate:hu.optional(),timeInForce:yu.optional()}).optional()}),lu=B.object({tradingPairId:m4,side:eZ,quantity:oJ,options:B.object({tradingMode:gu.optional(),slippageTolerance:uu}).optional()}),du=B.object({orderId:m4}),pu=B.object({orderId:m4,newOrder:B.object({price:oJ.optional(),quantity:oJ.optional(),useMasterBalance:B.boolean().optional()})}),nu=B.object({status:B.enum(sZ).optional(),trading_pair:m4.optional(),page:B.number().int().min(1,"Page must be at least 1").optional(),page_size:B.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),d8$=B.enum(["LIMIT","MARKET"],{message:'Order type must be "LIMIT" or "MARKET"'}),p8$=B.object({tradingPairId:m4,orderType:d8$,side:eZ,price:oJ.optional(),quantity:oJ,tradingMode:B.enum(["SPOT"]).optional(),slippageTolerance:uu,useMasterBalance:B.boolean().optional(),expirationDate:hu.optional(),timeInForce:yu.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"]}),cu=B.object({orders:B.array(p8$).min(1,"At least one order is required")}),n8$=B.object({orderId:m4,price:oJ.optional(),quantity:oJ.optional(),useMasterBalance:B.boolean().optional()}).refine(($)=>$.price!==void 0||$.quantity!==void 0,{message:"At least one of price or quantity must be provided"}),iu=B.object({orders:B.array(n8$).min(1,"At least one order is required")});var ou=B.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"'}),c8$=31536000000,i8$=946684800000,Kz=B.number().int().positive({message:"Timestamp must be a positive integer (milliseconds since epoch)"}).min(i8$,{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()+c8$,{message:"Timestamp must not be unreasonably far in the future (max 1 year ahead)"}),sM4=B.object({tradingPairId:m4,interval:ou,startTime:Kz,endTime:Kz}).refine(($)=>$.startTime<$.endTime,{message:"startTime must be less than endTime",path:["endTime"]}),eM4=B.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")'}),o8$=B.number().int().positive({message:"Limit must be a positive integer"}).max(500,{message:"Limit cannot exceed 500 bars per request"}).optional(),ru=B.object({tradingPairId:m4,interval:ou,startTime:Kz.optional(),endTime:Kz.optional(),limit:o8$}).refine(($)=>{if($.startTime!==void 0&&$.endTime!==void 0)return $.startTime<$.endTime;return!0},{message:"startTime must be less than endTime",path:["endTime"]});var $H4=B.object({tradingPairId:m4}),JH4=B.object({query:B.string().min(1,"Search query cannot be empty").optional(),limit:B.number().int().min(1).max(100).optional(),offset:B.number().int().min(0).optional()}),tu=B.object({tradingPairId:m4});var r8$=B.enum(["CREDIT","DEBIT","LOCK","UNLOCK","FEE"],{message:'Entry type must be "CREDIT", "DEBIT", "LOCK", "UNLOCK", or "FEE"'}),t8$=B.enum(["DEPOSIT","WITHDRAWAL","TRADE","FEE","FUNDING","LIQUIDATION","INTEREST","REWARD"],{message:'Transaction type must be "DEPOSIT", "WITHDRAWAL", "TRADE", "FEE", "FUNDING", "LIQUIDATION", "INTEREST", or "REWARD"'}),au=B.object({page:B.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),limit:B.number().int("Limit must be an integer").min(1,"Limit must be at least 1").max(100,"Limit cannot exceed 100").optional(),entry_type:r8$.optional(),transaction_type:t8$.optional(),asset_id:m4.optional()}),su=B.object({page:B.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),limit:B.number().int("Limit must be an integer").min(1,"Limit must be at least 1").max(100,"Limit cannot exceed 100").optional(),trading_pair_id:m4.optional()});var UH4=B.string().regex(/^0x[a-fA-F0-9]{40}$/,{message:"Must be a valid Ethereum address (e.g., '0x1234...5678')"}),$F=B.union([B.string().regex(/^\d+$/,"Must be a positive integer string").refine(($)=>BigInt($)>0n,{message:"Amount must be greater than 0"}),B.bigint().refine(($)=>$>0n,{message:"Amount must be greater than 0"})]),eu=B.object({assetId:m4,amount:$F,autoWait:B.boolean().optional()}),$m=B.object({assetId:m4,amount:$F,autoWait:B.boolean().optional()}),Jm=B.object({assetId:m4,amount:$F,autoWait:B.boolean().optional()}),KH4=B.object({assetId:m4});class Vz extends c4{async simulateFees($){let J=u4(aZ,$),Q=new URLSearchParams;Q.append("trading_pair_id",J.trading_pair_id),Q.append("side",J.side),Q.append("price",J.price),Q.append("quantity",J.quantity);let Y=`/api/v1/fees/simulate?${Q.toString()}`;return await this.makeAuthenticatedRequest(Y,{method:"GET"})}}class Oz extends c4{async getPaginatedTradingPairs($){let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.limit!==void 0)J.append("limit",$.limit.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({limit:100})).data.data.find((Q)=>Q.symbol===$)}async getCandlesticks($,J,Q){u4(ru,{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($){u4(tu,{tradingPairId:$});let J=`/api/v1/market/pairs/${$}/metadata`;return await this.makePublicRequest(J)}}class Nz extends c4{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.pair,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 JF extends c4{async getProfile(){return await this.makeAuthenticatedRequest("/api/v1/accounts/me")}async getPaginatedUserMovements($){if($)u4(au,$);let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.limit!==void 0)J.append("limit",$.limit.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($?.limit!==void 0)J.append("limit",$.limit.toString());if($?.offset!==void 0)J.append("offset",$.offset.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 P6("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($)u4(su,$);let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.limit!==void 0)J.append("limit",$.limit.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 a8$($){return{eventType:"trade",tradingPairId:$.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 QF extends c4{async getTrades($,J={}){let{skip:Q=0}=J,Y=J.limit!=null&&J.limit>0?Math.min(J.limit,100):25,X=new URLSearchParams;if(Q>0)X.set("skip",String(Q));return X.set("limit",String(Y)),(await this.makePublicRequest(`/api/v1/trades/${encodeURIComponent($)}?${X.toString()}`)).data.trades.map(a8$)}}class zz extends c4{async placeLimitOrder($,J,Q,Y,X){u4(mu,{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};return await this.makeAuthenticatedRequest("/api/v1/orders",{method:"POST",body:JSON.stringify(G)})}async placeMarketOrder($,J,Q,Y){u4(lu,{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"};return await this.makeAuthenticatedRequest("/api/v1/orders",{method:"POST",body:JSON.stringify(X)})}async cancelOrder($){u4(du,{orderId:$});let J={order_id:$};return await this.makeAuthenticatedRequest("/api/v1/orders/cancel",{method:"POST",body:JSON.stringify(J)})}async batchCancel($){if(!$||$.length===0)throw Error("orderIds is required and must not be empty");return this.makeAuthenticatedRequest("/api/v1/orders/batch-cancel",{method:"POST",body:JSON.stringify({order_ids:$})})}async batchCancelAll($){let J=$?`/api/v1/orders/batch-cancel-all/${$}`:"/api/v1/orders/batch-cancel-all";return this.makeAuthenticatedRequest(J,{method:"POST"})}async replaceOrder($,J){u4(pu,{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(`/api/v1/orders/${$}`,{method:"PUT",body:JSON.stringify(Q)})}async batchCreate($){u4(cu,{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}))};return this.makeAuthenticatedRequest("/api/v1/orders/batch-create",{method:"POST",body:JSON.stringify(J)})}async batchReplace($){u4(iu,{orders:$});let J={orders:$.map((Q)=>({order_id:Q.orderId,price:Q.price,quantity:Q.quantity,use_master_balance:Q.useMasterBalance}))};return this.makeAuthenticatedRequest("/api/v1/orders/batch-replace",{method:"POST",body:JSON.stringify(J)})}async getPaginatedOrders($){if($)u4(nu,$);let{page:J=1,page_size:Q=10,status:Y,trading_pair:X}=$||{},G=J>0?J:1,W=Q>0?Q:10,D=Math.min(W,100),U=new URLSearchParams;if(U.append("page",G.toString()),U.append("page_size",D.toString()),Y)U.append("status",Y);if(X)U.append("trading_pair",X);let V=`/api/v1/orders?${U.toString()}`;return await this.makeAuthenticatedRequest(V,{method:"GET"})}async getOrder($){return await this.makeAuthenticatedRequest(`/api/v1/orders/${$}`,{method:"GET"})}}var XF=[{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 QD={vault:XF};class Mz extends c4{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 P6){if(Y.statusCode===404)throw new $8(`Asset ID '${$}' does not exist`,{revertReason:"ASSET_NOT_FOUND",cause:Y});throw new $8(`Failed to resolve asset ID '${$}': ${Y.retryable?"Network error occurred":"API request failed"}`,{revertReason:Y.retryable?"NETWORK_ERROR":"API_ERROR",cause:Y})}throw new $8(`Failed to resolve asset ID '${$}': Unexpected error`,{revertReason:"UNKNOWN_ERROR",cause:Y instanceof Error?Y:void 0})}return{tokenAddress:J,isNativeToken:J===e6}}async approve($,J,Q=!0){if(!this.walletClient)throw new R4("Wallet client not set. Connect a wallet first.","walletClient");u4(eu,{assetId:$,amount:J,autoWait:Q});let Y=await this.getVaultAddress(),{tokenAddress:X}=await this.resolveAsset($),G=this.walletClient.account;if(!G)throw new R4("No account available in wallet client","account");let W=G.getNonce?await G.getNonce():0n,D=await this.walletClient.writeContract({address:X,abi:MO,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 R4("Wallet client not set. Connect a wallet first.","walletClient");u4($m,{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 $8(`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 R4("No account available in wallet client","account");let V;if(G)V=await this.walletClient.writeContract({address:Y,abi:QD.vault,functionName:"depositNative",args:[W,D],account:U,chain:this.chain,value:J});else V=await this.walletClient.writeContract({address:Y,abi:QD.vault,functionName:"deposit",args:[X,J,W,D],account:U,chain:this.chain});let O=U.getNonce?await U.getNonce():0n,N={hash:V,status:"pending",nonce:O};return await this.waitForTransaction(N,Q)}async withdraw($,J,Q=!0){if(!this.walletClient)throw new R4("Wallet client not set. Connect a wallet first.","walletClient");u4(Jm,{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 R4("No account available in wallet client","account");let V;if(G)V=await this.walletClient.writeContract({address:Y,abi:QD.vault,functionName:"withdrawNative",args:[J,W,D],account:U,chain:this.chain});else V=await this.walletClient.writeContract({address:Y,abi:QD.vault,functionName:"withdraw",args:[X,J,W,D],account:U,chain:this.chain});let O=U.getNonce?await U.getNonce():0n,N={hash:V,status:"pending",nonce:O};return await this.waitForTransaction(N,Q)}async getBalance($){throw new P6("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 R4("Wallet client not set. Connect a wallet first.","walletClient");let J=await this.getVaultAddress(),Y=(await this.walletClient.getAddresses())[0];if(!Y)throw new R4("No account found in wallet client.","walletClient");let{tokenAddress:X}=await this.resolveAsset($);return await this.publicClient.readContract({address:X,abi:MO,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 Hz extends c4{chain;walletClient;constructor($,J,Q){super(Q);this.chain=J,this.walletClient=$}setWalletClient($){this.walletClient=$}async authenticate($){if(!this.walletClient)throw new R4("Wallet client not set. Connect a wallet first.","walletClient");let J=this.walletClient.account;if(!J)throw new R4("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 R4("Wallet client not set. Connect a wallet first.","walletClient");let J=this.walletClient.account;if(!J)throw new R4("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",body:JSON.stringify({refresh_token:$})})}}class YF{auth;applications;fees;vault;trading;market;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.profile.setAccessToken($),this.ws.setToken($)}constructor($){let J=["mainnet","development","staging","local"];if(!$.network||!J.includes($.network))throw new R4(`network must be one of: ${J.join(", ")}. Got: ${$.network}`,"network");if(this.network=$.network,!$.seiRpcUrl)throw new R4("seiRpcUrl is required","seiRpcUrl");try{new URL($.seiRpcUrl)}catch(W){throw new R4(`seiRpcUrl must be a valid URL, got: ${$.seiRpcUrl}`,"seiRpcUrl")}let Q=vI(this.network),Y=this.network==="mainnet"?$D:JD;this.chain=Y;let X=eW($.seiRpcUrl);this.publicClient=lZ({chain:Y,transport:X});let G=o7(this.network);if($.walletClient){if($.walletClient.chain?.id!==Y.id)throw new R4(`Wallet client chain mismatch. Expected ${Y.id}, got ${$.walletClient.chain?.id}`,"walletClient");this.walletClient=$.walletClient}this.applications=new Uz(G),this.market=new Oz(G),this.auth=new Hz(this.walletClient,this.chain,G),this.fees=new Vz(G),this.profile=new JF(G),this.vault=new Mz(this.publicClient,this.walletClient,this.chain,this.applications,this.profile,G),this.trading=new zz(G),this.orderbook=new Nz(G),this.trades=new QF(G),this.ws=BI(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(this.authState.refreshToken)}catch($){console.warn("Failed to revoke token on logout:",$)}if(this.ws.isConnected())this.ws.disconnect();this.authState=void 0}async refreshAuth(){if(!this.authState?.refreshToken)throw new P6("No refresh token available",{endpoint:"auth/refresh",statusCode:Qm.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 R4(`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 i7("Wallet client not set","walletClient");if(this.walletClient.account)return this.walletClient.account.address;throw new i7("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 GF($){return new YF($)}W5();w$();f1();C0();function Xm($){if(typeof $==="string"){if(!s$($,{strict:!1}))throw new q4({address:$});return{address:$,type:"json-rpc"}}if(!s$($.address,{strict:!1}))throw new q4({address:$.address});return{address:$.address,nonceManager:$.nonceManager,sign:$.sign,signAuthorization:$.signAuthorization,signMessage:$.signMessage,signTransaction:$.signTransaction,signTypedData:$.signTypedData,source:"custom",type:"local"}}W5();a4();w$();var WF=!1;async function o1({hash:$,privateKey:J,to:Q="object"}){let{r:Y,s:X,recovery:G}=w0.sign($.slice(2),J.slice(2),{lowS:!0,extraEntropy:j4(WF,{strict:!1})?p4(WF):WF}),W={r:g(Y,{size:32}),s:g(X,{size:32}),v:G?28n:27n,yParity:G};return(()=>{if(Q==="bytes"||Q==="hex")return rN({...W,to:Q});return W})()}async function Ym($){let{chainId:J,nonce:Q,privateKey:Y,to:X="object"}=$,G=$.contractAddress??$.address,W=await o1({hash:_N({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 Gm({message:$,privateKey:J}){return await o1({hash:L5($),privateKey:J,to:"hex"})}P0();f0();w$();function Wm($){if(!$||$.length===0)return[];let J=[];for(let Q of $){let{chainId:Y,nonce:X,...G}=Q,W=Q.address;J.push([Y?B4(Y):"0x",W,X?B4(X):"0x",...j5({},G)])}return J}w$();ZB();f1();P$();VW();JX();C0();R0();dQ();t4();function Dm($){let{authorizationList:J}=$;if(J)for(let Q of J){let{chainId:Y}=Q,X=Q.address;if(!s$(X))throw new q4({address:X});if(Y<0)throw new AY({chainId:Y})}qz($)}function Um($){let{blobVersionedHashes:J}=$;if(J){if(J.length===0)throw new mW;for(let Q of J){let Y=n$(Q),X=E4(k0(Q,0,1));if(Y!==32)throw new WZ({hash:Q,size:Y});if(X!==TN)throw new DZ({hash:Q,version:X})}}qz($)}function qz($){let{chainId:J,maxPriorityFeePerGas:Q,maxFeePerGas:Y,to:X}=$;if(J<=0)throw new AY({chainId:J});if(X&&!s$(X))throw new q4({address:X});if(Y&&Y>Q5)throw new V1({maxFeePerGas:Y});if(Q&&Y&&Q>Y)throw new dJ({maxFeePerGas:Y,maxPriorityFeePerGas:Q})}function Km($){let{chainId:J,maxPriorityFeePerGas:Q,gasPrice:Y,maxFeePerGas:X,to:G}=$;if(J<=0)throw new AY({chainId:J});if(G&&!s$(G))throw new q4({address:G});if(Q||X)throw new T("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(Y&&Y>Q5)throw new V1({maxFeePerGas:Y})}function Vm($){let{chainId:J,maxPriorityFeePerGas:Q,gasPrice:Y,maxFeePerGas:X,to:G}=$;if(G&&!s$(G))throw new q4({address:G});if(typeof J<"u"&&J<=0)throw new AY({chainId:J});if(Q||X)throw new T("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(Y&&Y>Q5)throw new V1({maxFeePerGas:Y})}f1();f0();C0();function XD($){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 mL({storageKey:X[G]});if(!s$(Y,{strict:!1}))throw new q4({address:Y});J.push([Y,X])}return J}function Om($,J){let Q=CN($);if(Q==="eip1559")return $9$($,J);if(Q==="eip2930")return J9$($,J);if(Q==="eip4844")return e8$($,J);if(Q==="eip7702")return s8$($,J);return Q9$($,J)}function s8$($,J){let{authorizationList:Q,chainId:Y,gas:X,nonce:G,to:W,value:D,maxFeePerGas:U,maxPriorityFeePerGas:V,accessList:O,data:N}=$;Dm($);let M=XD(O),H=Wm(Q);return w6(["0x04",iJ([g(Y),G?g(G):"0x",V?g(V):"0x",U?g(U):"0x",X?g(X):"0x",W??"0x",D?g(D):"0x",N??"0x",M,H,...j5($,J)])])}function e8$($,J){let{chainId:Q,gas:Y,nonce:X,to:G,value:W,maxFeePerBlobGas:D,maxFeePerGas:U,maxPriorityFeePerGas:V,accessList:O,data:N}=$;Um($);let{blobVersionedHashes:M,sidecars:H}=$;if($.blobs&&(typeof M>"u"||typeof H>"u")){let L=typeof $.blobs[0]==="string"?$.blobs:$.blobs.map((R)=>c$(R)),F=$.kzg,E=V5({blobs:L,kzg:F});if(typeof M>"u")M=RN({commitments:E});if(typeof H>"u"){let R=O5({blobs:L,commitments:E,kzg:F});H=PN({blobs:L,commitments:E,proofs:R})}}let w=XD(O),A=[g(Q),X?g(X):"0x",V?g(V):"0x",U?g(U):"0x",Y?g(Y):"0x",G??"0x",W?g(W):"0x",N??"0x",w,D?g(D):"0x",M??[],...j5($,J)],Z=[],I=[],_=[];if(H)for(let L=0;L<H.length;L++){let{blob:F,commitment:E,proof:R}=H[L];Z.push(F),I.push(E),_.push(R)}return w6(["0x03",H?iJ([A,Z,I,_]):iJ(A)])}function $9$($,J){let{chainId:Q,gas:Y,nonce:X,to:G,value:W,maxFeePerGas:D,maxPriorityFeePerGas:U,accessList:V,data:O}=$;qz($);let N=XD(V),M=[g(Q),X?g(X):"0x",U?g(U):"0x",D?g(D):"0x",Y?g(Y):"0x",G??"0x",W?g(W):"0x",O??"0x",N,...j5($,J)];return w6(["0x02",iJ(M)])}function J9$($,J){let{chainId:Q,gas:Y,data:X,nonce:G,to:W,value:D,accessList:U,gasPrice:V}=$;Km($);let O=XD(U),N=[g(Q),G?g(G):"0x",V?g(V):"0x",Y?g(Y):"0x",W??"0x",D?g(D):"0x",X??"0x",O,...j5($,J)];return w6(["0x01",iJ(N)])}function Q9$($,J){let{chainId:Q=0,gas:Y,data:X,nonce:G,to:W,value:D,gasPrice:U}=$;Vm($);let V=[G?g(G):"0x",U?g(U):"0x",Y?g(Y):"0x",W??"0x",D?g(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 H=27n+(J.v===27n?0n:1n);if(J.v!==H)throw new hL({v:J.v});return H})(),N=r4(J.r),M=r4(J.s);V=[...V,g(O),N==="0x00"?"0x":N,M==="0x00"?"0x":M]}else if(Q>0)V=[...V,g(Q),"0x","0x"];return iJ(V)}function j5($,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=r4(Q.r),W=r4(Q.s);return[(()=>{if(typeof X==="number")return X?g(1):"0x";if(Y===0n)return"0x";if(Y===1n)return g(1);return Y===27n?"0x":g(1)})(),G==="0x00"?"0x":G,W==="0x00"?"0x":W]}async function Nm($){let{privateKey:J,transaction:Q,serializer:Y=Om}=$,X=(()=>{if(Q.type==="eip4844")return{...Q,sidecars:!1};return Q})(),G=await o1({hash:X4(await Y(X)),privateKey:J});return await Y(Q,G)}async function zm($){let{privateKey:J,...Q}=$;return await o1({hash:sN(Q),privateKey:J,to:"hex"})}function DF($,J={}){let{nonceManager:Q}=J,Y=B4(w0.getPublicKey($.slice(2),!1)),X=IN(Y);return{...Xm({address:X,nonceManager:Q,async sign({hash:W}){return o1({hash:W,privateKey:$,to:"hex"})},async signAuthorization(W){return Ym({...W,privateKey:$})},async signMessage({message:W}){return Gm({message:W,privateKey:$})},async signTransaction(W,{serializer:D}={}){return Nm({privateKey:$,transaction:W,serializer:D})},async signTypedData(W){return zm({...W,privateKey:$})}}),publicKey:Y,source:"privateKey"}}var UF=null;function $0(){if(!UF){let $=ZJ(),J=$.network==="mainnet"?$D:JD,Q;if($.privateKey){let X=DF($.privateKey);Q=oZ({account:X,chain:J,transport:eW($.seiRpcUrl)})}let Y=GF({walletClient:Q,network:$.network,seiRpcUrl:$.seiRpcUrl});return UF=Y,Y}return UF}async function g$(){let $=$0();if(!$.isAuthenticated()){let J=ZJ();await $.login(J.clientId),console.error(`Authenticated as ${$.getAccountAddress()}`)}return $}function I$($){return{content:[{type:"text",text:JSON.stringify($,null,2)}]}}function M1($){return{content:[{type:"text",text:$}]}}function Mm($){if(ZJ().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 J=ZJ(),Q=await g$(),X=Q.getAuthState()?.accessToken;if(!X)return M1("No access token available. Please authenticate first.");let G=o7(J.network),W=Q.getAccountAddress();if(G.includes("localhost"))return M1("Faucet is not available for localhost.");let D=new AbortController,U=setTimeout(()=>D.abort(),30000);try{let V=await fetch(`${G}/api/v1/faucet/mint`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${X}`},body:JSON.stringify({address:W}),signal:D.signal});if(clearTimeout(U),V.ok)return M1(`Faucet request successful. Test funds have been minted to ${W} on the ${J.network} network.`);let O=await V.text().catch(()=>"Unknown error");return M1(`Faucet request failed (${V.status}): ${O}`)}catch(V){if(clearTimeout(U),V instanceof Error&&V.name==="AbortError")return M1("Faucet request timed out after 30 seconds.");return M1(`Faucet error: ${V}`)}})}function Hm($){Mm($)}function qm($){$.registerTool("simulate_fees",{description:"Simulate the fees for an order before placing it. Returns Monaco protocol fees, application fees, and total amounts.",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID"),side:B.enum(["BUY","SELL"]).describe("Order side"),price:B.string().describe("Price per unit as a decimal string"),quantity:B.string().describe("Quantity to trade as a decimal string")})},async({trading_pair_id:J,side:Q,price:Y,quantity:X})=>{let W=await(await g$()).fees.simulateFees({trading_pair_id:J,side:Q,price:Y,quantity:X});return I$(W)})}function wm($){qm($)}function Am($){$.registerTool("get_candlesticks",{description:"Get OHLCV candlestick data for a trading pair. Useful for charting and price analysis.",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID"),interval:B.enum(["1m","5m","15m","1h","4h","1d"]).describe("Candlestick interval"),start_time:B.number().optional().describe("Start time as Unix timestamp (seconds)"),end_time:B.number().optional().describe("End time as Unix timestamp (seconds)"),limit:B.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 $0().market.getCandlesticks(J,Q,{startTime:Y,endTime:X,limit:G});return I$(D)})}function Im($){$.registerTool("get_market_metadata",{description:"Get metadata for a specific trading pair including tick size, min order size, and trading rules.",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID")})},async({trading_pair_id:J})=>{let Y=await $0().market.getMarketMetadata(J);return I$(Y)})}function Lm($){$.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:B.object({symbol:B.string().describe("Trading pair symbol (e.g. 'BTC/USDC')")})},async({symbol:J})=>{let Y=await $0().market.getTradingPairBySymbol(J);if(!Y)return M1(`Trading pair '${J}' not found.`);return I$(Y)})}function Bm($){$.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:B.object({page:B.number().optional().describe("Page number (starts from 1)"),limit:B.number().optional().describe("Number of items per page (max 100)"),market_type:B.string().optional().describe("Filter by market type"),base_token:B.string().optional().describe("Filter by base token"),quote_token:B.string().optional().describe("Filter by quote token"),is_active:B.boolean().optional().describe("Filter by active status")})},async(J)=>{let Y=await $0().market.getPaginatedTradingPairs(J);return I$(Y)})}function Zm($){Bm($),Lm($),Am($),Im($)}function Fm($){$.registerTool("get_orderbook",{description:"Get the current orderbook snapshot for a trading pair. Shows bids, asks, best bid/ask, and volumes.",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID"),depth:B.number().optional().describe("Number of price levels to return (max 100, default 10)"),trading_mode:B.enum(["SPOT"]).optional().describe("Trading mode (default: SPOT)"),magnitude:B.number().optional().describe("Price grouping magnitude (e.g. 0.01, 0.1, 1, 10, 100)"),denomination:B.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 $0().orderbook.getOrderbook(J,{depth:Q,tradingMode:Y,magnitude:X,denomination:G});return I$(D)})}function jm($){Fm($)}function Em($){$.registerTool("get_balance_by_asset",{description:"Get the authenticated user's balance for a specific asset by its UUID.",inputSchema:B.object({asset_id:B.string().describe("The asset UUID")})},async({asset_id:J})=>{let Y=await(await g$()).profile.getUserBalanceByAssetId(J);return I$(Y)})}function _m($){$.registerTool("get_balances",{description:"Get the authenticated user's token balances with pagination.",inputSchema:B.object({limit:B.number().optional().describe("Number of items to return (default: 20)"),offset:B.number().optional().describe("Number of items to skip (default: 0)")})},async({limit:J,offset:Q})=>{let X=await(await g$()).profile.getUserBalances({limit:J,offset:Q});return I$(X)})}function Sm($){$.registerTool("get_movements",{description:"Get the authenticated user's ledger movements (transaction history) with pagination.",inputSchema:B.object({page:B.number().int().min(1).optional().describe("Page number (starts from 1, default: 1)"),limit:B.number().int().min(1).max(100).optional().describe("Items per page (default: 20, max: 100)"),entry_type:B.enum(["CREDIT","DEBIT","LOCK","UNLOCK","FEE"]).optional().describe("Filter by entry type (e.g. CREDIT, DEBIT, LOCK, UNLOCK, FEE)"),transaction_type:B.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:B.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 g$()).profile.getPaginatedUserMovements({page:J,limit:Q,entry_type:Y,transaction_type:X,asset_id:G});return I$(D)})}function vm($){$.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 g$()).profile.getProfile();return I$(Q)})}function Rm($){vm($),_m($),Em($),Sm($)}var X9$="https://docs.0xmonaco.com/mcp",Y9$="SearchMonacoDocs",wz=null;async function Tm($,J,Q){let Y=await fetch(X9$,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json, text/event-stream",...wz?{"Mcp-Session-Id":wz}:{}},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)wz=X;let W=(await Y.text()).split(`
|
|
119
|
-
`).find((D)=>D.startsWith("data: "));if(!W)throw Error("No data in Mintlify MCP response");return JSON.parse(W.slice(6))}async function G9$(){if(wz)return;await Tm("initialize",{protocolVersion:"2025-03-26",capabilities:{},clientInfo:{name:"monaco-mcp-server",version:GO.version}},0)}async function W9$($){return await G9$(),(await Tm("tools/call",{name:Y9$,arguments:{query:$}},1))?.result}function Pm($){$.registerTool("search_docs",{description:"Search the Monaco documentation for information about the protocol, SDK, trading, and development guides.",inputSchema:B.object({query:B.string().describe("The search query")})},async({query:J})=>{try{let Q=await W9$(J);if(Q?.content&&Array.isArray(Q.content))return{content:Q.content};return I$(Q)}catch(Q){return M1(`Search failed: ${Q instanceof Error?Q.message:String(Q)}`)}})}function Cm($){Pm($)}function km($){$.registerTool("get_trades",{description:"Get historical trades for a trading pair. Returns recent trades sorted by execution time (newest first).",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID"),skip:B.number().optional().describe("Number of records to skip (default: 0)"),limit:B.number().optional().describe("Max number of records to return (default: 25, max: 100)")})},async({trading_pair_id:J,skip:Q,limit:Y})=>{let G=await $0().trades.getTrades(J,{skip:Q,limit:Y});return I$(G)})}function xm($){km($)}function fm($){$.registerTool("batch_cancel_all_orders",{description:"Cancel all active orders, optionally filtered to a specific trading pair.",inputSchema:B.object({trading_pair_id:B.string().optional().describe("Optional trading pair UUID to limit cancellation to")})},async({trading_pair_id:J})=>{let Y=await(await g$()).trading.batchCancelAll(J);return I$(Y)})}function bm($){$.registerTool("batch_cancel_orders",{description:"Cancel multiple orders by their IDs in a single request.",inputSchema:B.object({order_ids:B.array(B.string()).describe("Array of order IDs to cancel")})},async({order_ids:J})=>{let Y=await(await g$()).trading.batchCancel(J);return I$(Y)})}function gm($){$.registerTool("cancel_order",{description:"Cancel an open order by its ID.",inputSchema:B.object({order_id:B.string().describe("The order ID to cancel")})},async({order_id:J})=>{let Y=await(await g$()).trading.cancelOrder(J);return I$(Y)})}function ym($){$.registerTool("get_order",{description:"Get detailed information about a specific order by its ID.",inputSchema:B.object({order_id:B.string().describe("The order ID to look up")})},async({order_id:J})=>{let Y=await(await g$()).trading.getOrder(J);return I$(Y)})}var D9$=B.object({trading_pair_id:B.string().trim().min(1,"Trading pair ID is required and cannot be empty"),side:B.enum(["BUY","SELL"],{message:"Order side is required and must be either 'BUY' or 'SELL'"}),price:B.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:B.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")}),U9$=B.object({application_name:B.string().nullable().optional(),application_taker_fee:B.string(),application_taker_fee_bps:B.number(),buy_order_lock_amount:B.string().nullable().optional(),maker_total_receipt:B.string(),monaco_maker_rebate:B.string(),monaco_maker_rebate_bps:B.number(),monaco_taker_fee:B.string(),monaco_taker_fee_bps:B.number(),notional:B.string(),taker_total_payment:B.string(),total_taker_fees:B.string()});var YD=["SUBMITTED","PARTIALLY_FILLED","FILLED","SETTLED_ON_CHAIN","SETTLED","CANCELLED","REJECTED","EXPIRED"];var KF=B.enum(["BUY","SELL"],{message:'Order side must be "BUY" or "SELL"'}),hm=B.enum(["SPOT","MARGIN"],{message:'Trading mode must be "SPOT" or "MARGIN"'}),um=B.enum(["GTC","IOC","FOK"],{message:'Time in force must be "GTC", "IOC", or "FOK"'}),rJ=B.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"}),l4=B.uuid({message:"Must be a valid UUID (e.g., '123e4567-e89b-12d3-a456-426614174000')"}),mm=B.iso.datetime({message:"Must be a valid ISO 8601 date string (e.g., '2024-12-31T23:59:59Z')"}),lm=B.number().min(0,"Slippage tolerance must be at least 0 (no slippage)").max(1,"Slippage tolerance cannot exceed 1 (100%)").optional(),wL4=B.object({tradingPairId:l4,side:KF,quantity:rJ,price:rJ,options:B.object({tradingMode:hm.optional(),useMasterBalance:B.boolean().optional(),expirationDate:mm.optional(),timeInForce:um.optional()}).optional()}),AL4=B.object({tradingPairId:l4,side:KF,quantity:rJ,options:B.object({tradingMode:hm.optional(),slippageTolerance:lm}).optional()}),IL4=B.object({orderId:l4}),LL4=B.object({orderId:l4,newOrder:B.object({price:rJ.optional(),quantity:rJ.optional(),useMasterBalance:B.boolean().optional()})}),BL4=B.object({status:B.enum(YD).optional(),trading_pair:l4.optional(),page:B.number().int().min(1,"Page must be at least 1").optional(),page_size:B.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),K9$=B.enum(["LIMIT","MARKET"],{message:'Order type must be "LIMIT" or "MARKET"'}),V9$=B.object({tradingPairId:l4,orderType:K9$,side:KF,price:rJ.optional(),quantity:rJ,tradingMode:B.enum(["SPOT"]).optional(),slippageTolerance:lm,useMasterBalance:B.boolean().optional(),expirationDate:mm.optional(),timeInForce:um.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"]}),ZL4=B.object({orders:B.array(V9$).min(1,"At least one order is required")}),O9$=B.object({orderId:l4,price:rJ.optional(),quantity:rJ.optional(),useMasterBalance:B.boolean().optional()}).refine(($)=>$.price!==void 0||$.quantity!==void 0,{message:"At least one of price or quantity must be provided"}),FL4=B.object({orders:B.array(O9$).min(1,"At least one order is required")});var dm=B.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"'}),N9$=31536000000,z9$=946684800000,Az=B.number().int().positive({message:"Timestamp must be a positive integer (milliseconds since epoch)"}).min(z9$,{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()+N9$,{message:"Timestamp must not be unreasonably far in the future (max 1 year ahead)"}),SL4=B.object({tradingPairId:l4,interval:dm,startTime:Az,endTime:Az}).refine(($)=>$.startTime<$.endTime,{message:"startTime must be less than endTime",path:["endTime"]}),vL4=B.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")'}),M9$=B.number().int().positive({message:"Limit must be a positive integer"}).max(500,{message:"Limit cannot exceed 500 bars per request"}).optional(),RL4=B.object({tradingPairId:l4,interval:dm,startTime:Az.optional(),endTime:Az.optional(),limit:M9$}).refine(($)=>{if($.startTime!==void 0&&$.endTime!==void 0)return $.startTime<$.endTime;return!0},{message:"startTime must be less than endTime",path:["endTime"]});var TL4=B.object({tradingPairId:l4}),PL4=B.object({query:B.string().min(1,"Search query cannot be empty").optional(),limit:B.number().int().min(1).max(100).optional(),offset:B.number().int().min(0).optional()}),CL4=B.object({tradingPairId:l4});var H9$=B.enum(["CREDIT","DEBIT","LOCK","UNLOCK","FEE"],{message:'Entry type must be "CREDIT", "DEBIT", "LOCK", "UNLOCK", or "FEE"'}),q9$=B.enum(["DEPOSIT","WITHDRAWAL","TRADE","FEE","FUNDING","LIQUIDATION","INTEREST","REWARD"],{message:'Transaction type must be "DEPOSIT", "WITHDRAWAL", "TRADE", "FEE", "FUNDING", "LIQUIDATION", "INTEREST", or "REWARD"'}),bL4=B.object({page:B.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),limit:B.number().int("Limit must be an integer").min(1,"Limit must be at least 1").max(100,"Limit cannot exceed 100").optional(),entry_type:H9$.optional(),transaction_type:q9$.optional(),asset_id:l4.optional()}),gL4=B.object({page:B.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),limit:B.number().int("Limit must be an integer").min(1,"Limit must be at least 1").max(100,"Limit cannot exceed 100").optional(),trading_pair_id:l4.optional()});var mL4=B.string().regex(/^0x[a-fA-F0-9]{40}$/,{message:"Must be a valid Ethereum address (e.g., '0x1234...5678')"}),VF=B.union([B.string().regex(/^\d+$/,"Must be a positive integer string").refine(($)=>BigInt($)>0n,{message:"Amount must be greater than 0"}),B.bigint().refine(($)=>$>0n,{message:"Amount must be greater than 0"})]),lL4=B.object({assetId:l4,amount:VF,autoWait:B.boolean().optional()}),dL4=B.object({assetId:l4,amount:VF,autoWait:B.boolean().optional()}),pL4=B.object({assetId:l4,amount:VF,autoWait:B.boolean().optional()}),nL4=B.object({assetId:l4});function pm($){$.registerTool("get_orders",{description:"Get a paginated list of orders with optional filters by status and trading pair.",inputSchema:B.object({status:B.enum(YD).optional().describe("Filter by order status (e.g. SUBMITTED, FILLED, CANCELLED)"),trading_pair:B.string().optional().describe("Filter by trading pair UUID"),page:B.number().optional().describe("Page number (default: 1)"),page_size:B.number().optional().describe("Orders per page (default: 10, max: 100)")})},async({status:J,trading_pair:Q,page:Y,page_size:X})=>{let W=await(await g$()).trading.getPaginatedOrders({status:J,trading_pair:Q,page:Y,page_size:X});return I$(W)})}function nm($){$.registerTool("place_limit_order",{description:"Place a limit order on Monaco. Limit orders execute only when the market reaches the specified price.",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID"),side:B.enum(["BUY","SELL"]).describe("Order side"),quantity:B.string().describe("Order quantity as a decimal string"),price:B.string().describe("Limit price as a decimal string"),trading_mode:B.enum(["SPOT"]).optional().describe("Trading mode (default: SPOT)"),time_in_force:B.enum(["GTC","IOC","FOK"]).optional().describe("Time in force (default: GTC)"),expiration_date:B.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 g$()).trading.placeLimitOrder(J,Q,Y,X,{tradingMode:G,timeInForce:W,expirationDate:D});return I$(V)})}function cm($){$.registerTool("place_market_order",{description:"Place a market order on Monaco. Market orders execute immediately at the current market price.",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID"),side:B.enum(["BUY","SELL"]).describe("Order side"),quantity:B.string().describe("Order quantity as a decimal string"),trading_mode:B.enum(["SPOT"]).optional().describe("Trading mode (default: SPOT)"),slippage_tolerance:B.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 g$()).trading.placeMarketOrder(J,Q,Y,{tradingMode:X,slippageTolerance:G});return I$(D)})}function im($){$.registerTool("replace_order",{description:"Replace an existing order with new price and/or quantity. The order must be open.",inputSchema:B.object({order_id:B.string().describe("The order ID to replace"),price:B.string().optional().describe("New price as a decimal string"),quantity:B.string().optional().describe("New quantity as a decimal string")})},async({order_id:J,price:Q,quantity:Y})=>{let G=await(await g$()).trading.replaceOrder(J,{price:Q,quantity:Y});return I$(G)})}function om($){nm($),cm($),gm($),bm($),fm($),im($),pm($),ym($)}function rm($){$.registerTool("vault_get_allowance",{description:"Check the current token allowance granted to the Monaco vault for a specific asset.",inputSchema:B.object({asset_id:B.string().describe("The asset UUID to check allowance for")})},async({asset_id:J})=>{let Y=await(await g$()).vault.getAllowance(J);return I$({asset_id:J,allowance:Y.toString()})})}function tm($){$.registerTool("vault_approve",{description:"Approve the Monaco vault contract to spend tokens on your behalf. Required before depositing ERC20 tokens.",inputSchema:B.object({asset_id:B.string().describe("The asset UUID to approve"),amount:B.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 g$()).vault.approve(J,BigInt(Q));return I$({hash:X.hash,status:X.status})})}function am($){$.registerTool("vault_deposit",{description:"Deposit tokens into the Monaco vault. Requires prior approval for ERC20 tokens (use vault_approve first).",inputSchema:B.object({asset_id:B.string().describe("The asset UUID to deposit"),amount:B.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 g$()).vault.deposit(J,BigInt(Q));return I$({hash:X.hash,status:X.status})})}function sm($){$.registerTool("vault_needs_approval",{description:"Check if approval is needed before depositing a specific amount of tokens.",inputSchema:B.object({asset_id:B.string().describe("The asset UUID to check"),amount:B.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 g$()).vault.needsApproval(J,BigInt(Q));return I$({asset_id:J,amount:Q,needs_approval:X})})}function em($){$.registerTool("vault_withdraw",{description:"Withdraw tokens from the Monaco vault back to your wallet.",inputSchema:B.object({asset_id:B.string().describe("The asset UUID to withdraw"),amount:B.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 g$()).vault.withdraw(J,BigInt(Q));return I$({hash:X.hash,status:X.status})})}function $l($){tm($),am($),em($),rm($),sm($)}function Jl($,J){if(Cm($),Zm($),jm($),xm($),J.authenticated)om($),Rm($),wm($),$l($),Hm($)}if(!globalThis.fetch)globalThis.fetch=mD,globalThis.Headers=j6,globalThis.Request=WJ,globalThis.Response=Q6;if(!globalThis.WebSocket)globalThis.WebSocket=BM.default;async function w9$(){let J=ZJ().privateKey!==null,Q=new AI({name:"monaco-mcp-server",version:GO.version});Jl(Q,{authenticated:J});let Y=new LI;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)")}w9$().catch(($)=>{console.error("Fatal error:",$),process.exit(1)});
|
|
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 u4($,J){let Q=$.safeParse(J);if(!Q.success)throw new bu(Q.error);return Q.data}var eZ=B.enum(["BUY","SELL"],{message:'Order side must be "BUY" or "SELL"'}),gu=B.enum(["SPOT","MARGIN"],{message:'Trading mode must be "SPOT" or "MARGIN"'}),yu=B.enum(["GTC","IOC","FOK"],{message:'Time in force must be "GTC", "IOC", or "FOK"'}),oJ=B.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"}),m4=B.uuid({message:"Must be a valid UUID (e.g., '123e4567-e89b-12d3-a456-426614174000')"}),hu=B.iso.datetime({message:"Must be a valid ISO 8601 date string (e.g., '2024-12-31T23:59:59Z')"}),uu=B.number().min(0,"Slippage tolerance must be at least 0 (no slippage)").max(1,"Slippage tolerance cannot exceed 1 (100%)").optional(),mu=B.object({tradingPairId:m4,side:eZ,quantity:oJ,price:oJ,options:B.object({tradingMode:gu.optional(),useMasterBalance:B.boolean().optional(),expirationDate:hu.optional(),timeInForce:yu.optional()}).optional()}),lu=B.object({tradingPairId:m4,side:eZ,quantity:oJ,options:B.object({tradingMode:gu.optional(),slippageTolerance:uu}).optional()}),du=B.object({orderId:m4}),pu=B.object({orderId:m4,newOrder:B.object({price:oJ.optional(),quantity:oJ.optional(),useMasterBalance:B.boolean().optional()})}),nu=B.object({status:B.enum(sZ).optional(),trading_pair:m4.optional(),page:B.number().int().min(1,"Page must be at least 1").optional(),page_size:B.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),d8$=B.enum(["LIMIT","MARKET"],{message:'Order type must be "LIMIT" or "MARKET"'}),p8$=B.object({tradingPairId:m4,orderType:d8$,side:eZ,price:oJ.optional(),quantity:oJ,tradingMode:B.enum(["SPOT"]).optional(),slippageTolerance:uu,useMasterBalance:B.boolean().optional(),expirationDate:hu.optional(),timeInForce:yu.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"]}),cu=B.object({orders:B.array(p8$).min(1,"At least one order is required")}),n8$=B.object({orderId:m4,price:oJ.optional(),quantity:oJ.optional(),useMasterBalance:B.boolean().optional()}).refine(($)=>$.price!==void 0||$.quantity!==void 0,{message:"At least one of price or quantity must be provided"}),iu=B.object({orders:B.array(n8$).min(1,"At least one order is required")});var ou=B.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"'}),c8$=31536000000,i8$=946684800000,Kz=B.number().int().positive({message:"Timestamp must be a positive integer (milliseconds since epoch)"}).min(i8$,{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()+c8$,{message:"Timestamp must not be unreasonably far in the future (max 1 year ahead)"}),sM4=B.object({tradingPairId:m4,interval:ou,startTime:Kz,endTime:Kz}).refine(($)=>$.startTime<$.endTime,{message:"startTime must be less than endTime",path:["endTime"]}),eM4=B.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")'}),o8$=B.number().int().positive({message:"Limit must be a positive integer"}).max(500,{message:"Limit cannot exceed 500 bars per request"}).optional(),ru=B.object({tradingPairId:m4,interval:ou,startTime:Kz.optional(),endTime:Kz.optional(),limit:o8$}).refine(($)=>{if($.startTime!==void 0&&$.endTime!==void 0)return $.startTime<$.endTime;return!0},{message:"startTime must be less than endTime",path:["endTime"]});var $H4=B.object({tradingPairId:m4}),JH4=B.object({query:B.string().min(1,"Search query cannot be empty").optional(),limit:B.number().int().min(1).max(100).optional(),offset:B.number().int().min(0).optional()}),tu=B.object({tradingPairId:m4});var r8$=B.enum(["CREDIT","DEBIT","LOCK","UNLOCK","FEE"],{message:'Entry type must be "CREDIT", "DEBIT", "LOCK", "UNLOCK", or "FEE"'}),t8$=B.enum(["DEPOSIT","WITHDRAWAL","TRADE","FEE","FUNDING","LIQUIDATION","INTEREST","REWARD"],{message:'Transaction type must be "DEPOSIT", "WITHDRAWAL", "TRADE", "FEE", "FUNDING", "LIQUIDATION", "INTEREST", or "REWARD"'}),au=B.object({page:B.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),limit:B.number().int("Limit must be an integer").min(1,"Limit must be at least 1").max(100,"Limit cannot exceed 100").optional(),entry_type:r8$.optional(),transaction_type:t8$.optional(),asset_id:m4.optional()}),su=B.object({page:B.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),limit:B.number().int("Limit must be an integer").min(1,"Limit must be at least 1").max(100,"Limit cannot exceed 100").optional(),trading_pair_id:m4.optional()});var UH4=B.string().regex(/^0x[a-fA-F0-9]{40}$/,{message:"Must be a valid Ethereum address (e.g., '0x1234...5678')"}),$F=B.union([B.string().regex(/^\d+$/,"Must be a positive integer string").refine(($)=>BigInt($)>0n,{message:"Amount must be greater than 0"}),B.bigint().refine(($)=>$>0n,{message:"Amount must be greater than 0"})]),eu=B.object({assetId:m4,amount:$F,autoWait:B.boolean().optional()}),$m=B.object({assetId:m4,amount:$F,autoWait:B.boolean().optional()}),Jm=B.object({assetId:m4,amount:$F,autoWait:B.boolean().optional()}),KH4=B.object({assetId:m4});class Vz extends c4{async simulateFees($){let J=u4(aZ,$),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"})}}class Oz extends c4{async getPaginatedTradingPairs($){let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.limit!==void 0)J.append("limit",$.limit.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({limit:100})).data.data.find((Q)=>Q.symbol===$)}async getCandlesticks($,J,Q){u4(ru,{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($){u4(tu,{tradingPairId:$});let J=`/api/v1/market/pairs/${$}/metadata`;return await this.makePublicRequest(J)}}class Nz extends c4{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.pair,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 JF extends c4{async getProfile(){return await this.makeAuthenticatedRequest("/api/v1/accounts/me")}async getPaginatedUserMovements($){if($)u4(au,$);let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.limit!==void 0)J.append("limit",$.limit.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($?.limit!==void 0)J.append("limit",$.limit.toString());if($?.offset!==void 0)J.append("offset",$.offset.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 P6("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($)u4(su,$);let J=new URLSearchParams;if($?.page!==void 0)J.append("page",$.page.toString());if($?.limit!==void 0)J.append("limit",$.limit.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 a8$($){return{eventType:"trade",tradingPairId:$.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 QF extends c4{async getTrades($,J={}){let{skip:Q=0}=J,Y=J.limit!=null&&J.limit>0?Math.min(J.limit,100):25,X=new URLSearchParams;if(Q>0)X.set("skip",String(Q));return X.set("limit",String(Y)),(await this.makePublicRequest(`/api/v1/trades/${encodeURIComponent($)}?${X.toString()}`)).data.trades.map(a8$)}}class zz extends c4{async placeLimitOrder($,J,Q,Y,X){u4(mu,{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};return await this.makeAuthenticatedRequest("/api/v1/orders",{method:"POST",body:JSON.stringify(G)})}async placeMarketOrder($,J,Q,Y){u4(lu,{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"};return await this.makeAuthenticatedRequest("/api/v1/orders",{method:"POST",body:JSON.stringify(X)})}async cancelOrder($){u4(du,{orderId:$});let J={order_id:$};return await this.makeAuthenticatedRequest("/api/v1/orders/cancel",{method:"POST",body:JSON.stringify(J)})}async batchCancel($){if(!$||$.length===0)throw Error("orderIds is required and must not be empty");return this.makeAuthenticatedRequest("/api/v1/orders/batch-cancel",{method:"POST",body:JSON.stringify({order_ids:$})})}async batchCancelAll($){let J=$?`/api/v1/orders/batch-cancel-all/${$}`:"/api/v1/orders/batch-cancel-all";return this.makeAuthenticatedRequest(J,{method:"POST"})}async replaceOrder($,J){u4(pu,{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(`/api/v1/orders/${$}`,{method:"PUT",body:JSON.stringify(Q)})}async batchCreate($){u4(cu,{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}))};return this.makeAuthenticatedRequest("/api/v1/orders/batch-create",{method:"POST",body:JSON.stringify(J)})}async batchReplace($){u4(iu,{orders:$});let J={orders:$.map((Q)=>({order_id:Q.orderId,price:Q.price,quantity:Q.quantity,use_master_balance:Q.useMasterBalance}))};return this.makeAuthenticatedRequest("/api/v1/orders/batch-replace",{method:"POST",body:JSON.stringify(J)})}async getPaginatedOrders($){if($)u4(nu,$);let{page:J=1,page_size:Q=10,status:Y,trading_pair:X}=$||{},G=J>0?J:1,W=Q>0?Q:10,D=Math.min(W,100),U=new URLSearchParams;if(U.append("page",G.toString()),U.append("page_size",D.toString()),Y)U.append("status",Y);if(X)U.append("trading_pair",X);let V=`/api/v1/orders?${U.toString()}`;return await this.makeAuthenticatedRequest(V,{method:"GET"})}async getOrder($){return await this.makeAuthenticatedRequest(`/api/v1/orders/${$}`,{method:"GET"})}}var XF=[{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 QD={vault:XF};class Mz extends c4{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 P6){if(Y.statusCode===404)throw new $8(`Asset ID '${$}' does not exist`,{revertReason:"ASSET_NOT_FOUND",cause:Y});throw new $8(`Failed to resolve asset ID '${$}': ${Y.retryable?"Network error occurred":"API request failed"}`,{revertReason:Y.retryable?"NETWORK_ERROR":"API_ERROR",cause:Y})}throw new $8(`Failed to resolve asset ID '${$}': Unexpected error`,{revertReason:"UNKNOWN_ERROR",cause:Y instanceof Error?Y:void 0})}return{tokenAddress:J,isNativeToken:J===e6}}async approve($,J,Q=!0){if(!this.walletClient)throw new R4("Wallet client not set. Connect a wallet first.","walletClient");u4(eu,{assetId:$,amount:J,autoWait:Q});let Y=await this.getVaultAddress(),{tokenAddress:X}=await this.resolveAsset($),G=this.walletClient.account;if(!G)throw new R4("No account available in wallet client","account");let W=G.getNonce?await G.getNonce():0n,D=await this.walletClient.writeContract({address:X,abi:MO,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 R4("Wallet client not set. Connect a wallet first.","walletClient");u4($m,{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 $8(`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 R4("No account available in wallet client","account");let V;if(G)V=await this.walletClient.writeContract({address:Y,abi:QD.vault,functionName:"depositNative",args:[W,D],account:U,chain:this.chain,value:J});else V=await this.walletClient.writeContract({address:Y,abi:QD.vault,functionName:"deposit",args:[X,J,W,D],account:U,chain:this.chain});let O=U.getNonce?await U.getNonce():0n,N={hash:V,status:"pending",nonce:O};return await this.waitForTransaction(N,Q)}async withdraw($,J,Q=!0){if(!this.walletClient)throw new R4("Wallet client not set. Connect a wallet first.","walletClient");u4(Jm,{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 R4("No account available in wallet client","account");let V;if(G)V=await this.walletClient.writeContract({address:Y,abi:QD.vault,functionName:"withdrawNative",args:[J,W,D],account:U,chain:this.chain});else V=await this.walletClient.writeContract({address:Y,abi:QD.vault,functionName:"withdraw",args:[X,J,W,D],account:U,chain:this.chain});let O=U.getNonce?await U.getNonce():0n,N={hash:V,status:"pending",nonce:O};return await this.waitForTransaction(N,Q)}async getBalance($){throw new P6("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 R4("Wallet client not set. Connect a wallet first.","walletClient");let J=await this.getVaultAddress(),Y=(await this.walletClient.getAddresses())[0];if(!Y)throw new R4("No account found in wallet client.","walletClient");let{tokenAddress:X}=await this.resolveAsset($);return await this.publicClient.readContract({address:X,abi:MO,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 Hz extends c4{chain;walletClient;constructor($,J,Q){super(Q);this.chain=J,this.walletClient=$}setWalletClient($){this.walletClient=$}async authenticate($){if(!this.walletClient)throw new R4("Wallet client not set. Connect a wallet first.","walletClient");let J=this.walletClient.account;if(!J)throw new R4("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 R4("Wallet client not set. Connect a wallet first.","walletClient");let J=this.walletClient.account;if(!J)throw new R4("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",body:JSON.stringify({refresh_token:$})})}}class YF{auth;applications;fees;vault;trading;market;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.profile.setAccessToken($),this.ws.setToken($)}constructor($){let J=["mainnet","development","staging","local"];if(!$.network||!J.includes($.network))throw new R4(`network must be one of: ${J.join(", ")}. Got: ${$.network}`,"network");if(this.network=$.network,!$.seiRpcUrl)throw new R4("seiRpcUrl is required","seiRpcUrl");try{new URL($.seiRpcUrl)}catch(W){throw new R4(`seiRpcUrl must be a valid URL, got: ${$.seiRpcUrl}`,"seiRpcUrl")}let Q=vI(this.network),Y=this.network==="mainnet"?$D:JD;this.chain=Y;let X=eW($.seiRpcUrl);this.publicClient=lZ({chain:Y,transport:X});let G=o7(this.network);if($.walletClient){if($.walletClient.chain?.id!==Y.id)throw new R4(`Wallet client chain mismatch. Expected ${Y.id}, got ${$.walletClient.chain?.id}`,"walletClient");this.walletClient=$.walletClient}this.applications=new Uz(G),this.market=new Oz(G),this.auth=new Hz(this.walletClient,this.chain,G),this.fees=new Vz(G),this.profile=new JF(G),this.vault=new Mz(this.publicClient,this.walletClient,this.chain,this.applications,this.profile,G),this.trading=new zz(G),this.orderbook=new Nz(G),this.trades=new QF(G),this.ws=BI(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(this.authState.refreshToken)}catch($){console.warn("Failed to revoke token on logout:",$)}if(this.ws.isConnected())this.ws.disconnect();this.authState=void 0}async refreshAuth(){if(!this.authState?.refreshToken)throw new P6("No refresh token available",{endpoint:"auth/refresh",statusCode:Qm.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 R4(`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 i7("Wallet client not set","walletClient");if(this.walletClient.account)return this.walletClient.account.address;throw new i7("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 GF($){return new YF($)}W5();w$();f1();C0();function Xm($){if(typeof $==="string"){if(!s$($,{strict:!1}))throw new q4({address:$});return{address:$,type:"json-rpc"}}if(!s$($.address,{strict:!1}))throw new q4({address:$.address});return{address:$.address,nonceManager:$.nonceManager,sign:$.sign,signAuthorization:$.signAuthorization,signMessage:$.signMessage,signTransaction:$.signTransaction,signTypedData:$.signTypedData,source:"custom",type:"local"}}W5();a4();w$();var WF=!1;async function o1({hash:$,privateKey:J,to:Q="object"}){let{r:Y,s:X,recovery:G}=w0.sign($.slice(2),J.slice(2),{lowS:!0,extraEntropy:j4(WF,{strict:!1})?p4(WF):WF}),W={r:g(Y,{size:32}),s:g(X,{size:32}),v:G?28n:27n,yParity:G};return(()=>{if(Q==="bytes"||Q==="hex")return rN({...W,to:Q});return W})()}async function Ym($){let{chainId:J,nonce:Q,privateKey:Y,to:X="object"}=$,G=$.contractAddress??$.address,W=await o1({hash:_N({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 Gm({message:$,privateKey:J}){return await o1({hash:L5($),privateKey:J,to:"hex"})}P0();f0();w$();function Wm($){if(!$||$.length===0)return[];let J=[];for(let Q of $){let{chainId:Y,nonce:X,...G}=Q,W=Q.address;J.push([Y?B4(Y):"0x",W,X?B4(X):"0x",...j5({},G)])}return J}w$();ZB();f1();P$();VW();JX();C0();R0();dQ();t4();function Dm($){let{authorizationList:J}=$;if(J)for(let Q of J){let{chainId:Y}=Q,X=Q.address;if(!s$(X))throw new q4({address:X});if(Y<0)throw new AY({chainId:Y})}qz($)}function Um($){let{blobVersionedHashes:J}=$;if(J){if(J.length===0)throw new mW;for(let Q of J){let Y=n$(Q),X=E4(k0(Q,0,1));if(Y!==32)throw new WZ({hash:Q,size:Y});if(X!==TN)throw new DZ({hash:Q,version:X})}}qz($)}function qz($){let{chainId:J,maxPriorityFeePerGas:Q,maxFeePerGas:Y,to:X}=$;if(J<=0)throw new AY({chainId:J});if(X&&!s$(X))throw new q4({address:X});if(Y&&Y>Q5)throw new V1({maxFeePerGas:Y});if(Q&&Y&&Q>Y)throw new dJ({maxFeePerGas:Y,maxPriorityFeePerGas:Q})}function Km($){let{chainId:J,maxPriorityFeePerGas:Q,gasPrice:Y,maxFeePerGas:X,to:G}=$;if(J<=0)throw new AY({chainId:J});if(G&&!s$(G))throw new q4({address:G});if(Q||X)throw new T("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(Y&&Y>Q5)throw new V1({maxFeePerGas:Y})}function Vm($){let{chainId:J,maxPriorityFeePerGas:Q,gasPrice:Y,maxFeePerGas:X,to:G}=$;if(G&&!s$(G))throw new q4({address:G});if(typeof J<"u"&&J<=0)throw new AY({chainId:J});if(Q||X)throw new T("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(Y&&Y>Q5)throw new V1({maxFeePerGas:Y})}f1();f0();C0();function XD($){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 mL({storageKey:X[G]});if(!s$(Y,{strict:!1}))throw new q4({address:Y});J.push([Y,X])}return J}function Om($,J){let Q=CN($);if(Q==="eip1559")return $9$($,J);if(Q==="eip2930")return J9$($,J);if(Q==="eip4844")return e8$($,J);if(Q==="eip7702")return s8$($,J);return Q9$($,J)}function s8$($,J){let{authorizationList:Q,chainId:Y,gas:X,nonce:G,to:W,value:D,maxFeePerGas:U,maxPriorityFeePerGas:V,accessList:O,data:N}=$;Dm($);let M=XD(O),H=Wm(Q);return w6(["0x04",iJ([g(Y),G?g(G):"0x",V?g(V):"0x",U?g(U):"0x",X?g(X):"0x",W??"0x",D?g(D):"0x",N??"0x",M,H,...j5($,J)])])}function e8$($,J){let{chainId:Q,gas:Y,nonce:X,to:G,value:W,maxFeePerBlobGas:D,maxFeePerGas:U,maxPriorityFeePerGas:V,accessList:O,data:N}=$;Um($);let{blobVersionedHashes:M,sidecars:H}=$;if($.blobs&&(typeof M>"u"||typeof H>"u")){let L=typeof $.blobs[0]==="string"?$.blobs:$.blobs.map((R)=>c$(R)),F=$.kzg,E=V5({blobs:L,kzg:F});if(typeof M>"u")M=RN({commitments:E});if(typeof H>"u"){let R=O5({blobs:L,commitments:E,kzg:F});H=PN({blobs:L,commitments:E,proofs:R})}}let w=XD(O),A=[g(Q),X?g(X):"0x",V?g(V):"0x",U?g(U):"0x",Y?g(Y):"0x",G??"0x",W?g(W):"0x",N??"0x",w,D?g(D):"0x",M??[],...j5($,J)],Z=[],I=[],_=[];if(H)for(let L=0;L<H.length;L++){let{blob:F,commitment:E,proof:R}=H[L];Z.push(F),I.push(E),_.push(R)}return w6(["0x03",H?iJ([A,Z,I,_]):iJ(A)])}function $9$($,J){let{chainId:Q,gas:Y,nonce:X,to:G,value:W,maxFeePerGas:D,maxPriorityFeePerGas:U,accessList:V,data:O}=$;qz($);let N=XD(V),M=[g(Q),X?g(X):"0x",U?g(U):"0x",D?g(D):"0x",Y?g(Y):"0x",G??"0x",W?g(W):"0x",O??"0x",N,...j5($,J)];return w6(["0x02",iJ(M)])}function J9$($,J){let{chainId:Q,gas:Y,data:X,nonce:G,to:W,value:D,accessList:U,gasPrice:V}=$;Km($);let O=XD(U),N=[g(Q),G?g(G):"0x",V?g(V):"0x",Y?g(Y):"0x",W??"0x",D?g(D):"0x",X??"0x",O,...j5($,J)];return w6(["0x01",iJ(N)])}function Q9$($,J){let{chainId:Q=0,gas:Y,data:X,nonce:G,to:W,value:D,gasPrice:U}=$;Vm($);let V=[G?g(G):"0x",U?g(U):"0x",Y?g(Y):"0x",W??"0x",D?g(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 H=27n+(J.v===27n?0n:1n);if(J.v!==H)throw new hL({v:J.v});return H})(),N=r4(J.r),M=r4(J.s);V=[...V,g(O),N==="0x00"?"0x":N,M==="0x00"?"0x":M]}else if(Q>0)V=[...V,g(Q),"0x","0x"];return iJ(V)}function j5($,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=r4(Q.r),W=r4(Q.s);return[(()=>{if(typeof X==="number")return X?g(1):"0x";if(Y===0n)return"0x";if(Y===1n)return g(1);return Y===27n?"0x":g(1)})(),G==="0x00"?"0x":G,W==="0x00"?"0x":W]}async function Nm($){let{privateKey:J,transaction:Q,serializer:Y=Om}=$,X=(()=>{if(Q.type==="eip4844")return{...Q,sidecars:!1};return Q})(),G=await o1({hash:X4(await Y(X)),privateKey:J});return await Y(Q,G)}async function zm($){let{privateKey:J,...Q}=$;return await o1({hash:sN(Q),privateKey:J,to:"hex"})}function DF($,J={}){let{nonceManager:Q}=J,Y=B4(w0.getPublicKey($.slice(2),!1)),X=IN(Y);return{...Xm({address:X,nonceManager:Q,async sign({hash:W}){return o1({hash:W,privateKey:$,to:"hex"})},async signAuthorization(W){return Ym({...W,privateKey:$})},async signMessage({message:W}){return Gm({message:W,privateKey:$})},async signTransaction(W,{serializer:D}={}){return Nm({privateKey:$,transaction:W,serializer:D})},async signTypedData(W){return zm({...W,privateKey:$})}}),publicKey:Y,source:"privateKey"}}var UF=null;function $0(){if(!UF){let $=ZJ(),J=$.network==="mainnet"?$D:JD,Q;if($.privateKey){let X=DF($.privateKey);Q=oZ({account:X,chain:J,transport:eW($.seiRpcUrl)})}let Y=GF({walletClient:Q,network:$.network,seiRpcUrl:$.seiRpcUrl});return UF=Y,Y}return UF}async function g$(){let $=$0();if(!$.isAuthenticated()){let J=ZJ();await $.login(J.clientId),console.error(`Authenticated as ${$.getAccountAddress()}`)}return $}function I$($){return{content:[{type:"text",text:JSON.stringify($,null,2)}]}}function M1($){return{content:[{type:"text",text:$}]}}function Mm($){if(ZJ().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 J=ZJ(),Q=await g$(),X=Q.getAuthState()?.accessToken;if(!X)return M1("No access token available. Please authenticate first.");let G=o7(J.network),W=Q.getAccountAddress();if(G.includes("localhost"))return M1("Faucet is not available for localhost.");let D=new AbortController,U=setTimeout(()=>D.abort(),30000);try{let V=await fetch(`${G}/api/v1/faucet/mint`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${X}`},body:JSON.stringify({address:W}),signal:D.signal});if(clearTimeout(U),V.ok)return M1(`Faucet request successful. Test funds have been minted to ${W} on the ${J.network} network.`);let O=await V.text().catch(()=>"Unknown error");return M1(`Faucet request failed (${V.status}): ${O}`)}catch(V){if(clearTimeout(U),V instanceof Error&&V.name==="AbortError")return M1("Faucet request timed out after 30 seconds.");return M1(`Faucet error: ${V}`)}})}function Hm($){Mm($)}function qm($){$.registerTool("simulate_fees",{description:"Simulate the fees for an order before placing it. Returns Monaco protocol fees, application fees, and total amounts.",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID"),side:B.enum(["BUY","SELL"]).describe("Order side"),price:B.string().describe("Price per unit as a decimal string"),quantity:B.string().describe("Quantity to trade as a decimal string")})},async({trading_pair_id:J,side:Q,price:Y,quantity:X})=>{let W=await(await g$()).fees.simulateFees({trading_pair_id:J,side:Q,price:Y,quantity:X});return I$(W)})}function wm($){qm($)}function Am($){$.registerTool("get_candlesticks",{description:"Get OHLCV candlestick data for a trading pair. Useful for charting and price analysis.",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID"),interval:B.enum(["1m","5m","15m","1h","4h","1d"]).describe("Candlestick interval"),start_time:B.number().optional().describe("Start time as Unix timestamp (seconds)"),end_time:B.number().optional().describe("End time as Unix timestamp (seconds)"),limit:B.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 $0().market.getCandlesticks(J,Q,{startTime:Y,endTime:X,limit:G});return I$(D)})}function Im($){$.registerTool("get_market_metadata",{description:"Get metadata for a specific trading pair including tick size, min order size, and trading rules.",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID")})},async({trading_pair_id:J})=>{let Y=await $0().market.getMarketMetadata(J);return I$(Y)})}function Lm($){$.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:B.object({symbol:B.string().describe("Trading pair symbol (e.g. 'BTC/USDC')")})},async({symbol:J})=>{let Y=await $0().market.getTradingPairBySymbol(J);if(!Y)return M1(`Trading pair '${J}' not found.`);return I$(Y)})}function Bm($){$.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:B.object({page:B.number().optional().describe("Page number (starts from 1)"),limit:B.number().optional().describe("Number of items per page (max 100)"),market_type:B.string().optional().describe("Filter by market type"),base_token:B.string().optional().describe("Filter by base token"),quote_token:B.string().optional().describe("Filter by quote token"),is_active:B.boolean().optional().describe("Filter by active status")})},async(J)=>{let Y=await $0().market.getPaginatedTradingPairs(J);return I$(Y)})}function Zm($){Bm($),Lm($),Am($),Im($)}function Fm($){$.registerTool("get_orderbook",{description:"Get the current orderbook snapshot for a trading pair. Shows bids, asks, best bid/ask, and volumes.",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID"),depth:B.number().optional().describe("Number of price levels to return (max 100, default 10)"),trading_mode:B.enum(["SPOT"]).optional().describe("Trading mode (default: SPOT)"),magnitude:B.number().optional().describe("Price grouping magnitude (e.g. 0.01, 0.1, 1, 10, 100)"),denomination:B.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 $0().orderbook.getOrderbook(J,{depth:Q,tradingMode:Y,magnitude:X,denomination:G});return I$(D)})}function jm($){Fm($)}function Em($){$.registerTool("get_balance_by_asset",{description:"Get the authenticated user's balance for a specific asset by its UUID.",inputSchema:B.object({asset_id:B.string().describe("The asset UUID")})},async({asset_id:J})=>{let Y=await(await g$()).profile.getUserBalanceByAssetId(J);return I$(Y)})}function _m($){$.registerTool("get_balances",{description:"Get the authenticated user's token balances with pagination.",inputSchema:B.object({limit:B.number().optional().describe("Number of items to return (default: 20)"),offset:B.number().optional().describe("Number of items to skip (default: 0)")})},async({limit:J,offset:Q})=>{let X=await(await g$()).profile.getUserBalances({limit:J,offset:Q});return I$(X)})}function Sm($){$.registerTool("get_movements",{description:"Get the authenticated user's ledger movements (transaction history) with pagination.",inputSchema:B.object({page:B.number().int().min(1).optional().describe("Page number (starts from 1, default: 1)"),limit:B.number().int().min(1).max(100).optional().describe("Items per page (default: 20, max: 100)"),entry_type:B.enum(["CREDIT","DEBIT","LOCK","UNLOCK","FEE"]).optional().describe("Filter by entry type (e.g. CREDIT, DEBIT, LOCK, UNLOCK, FEE)"),transaction_type:B.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:B.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 g$()).profile.getPaginatedUserMovements({page:J,limit:Q,entry_type:Y,transaction_type:X,asset_id:G});return I$(D)})}function vm($){$.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 g$()).profile.getProfile();return I$(Q)})}function Rm($){vm($),_m($),Em($),Sm($)}var X9$="https://docs.0xmonaco.com/mcp",Y9$="SearchMonacoDocs",wz=null;async function Tm($,J,Q){let Y=await fetch(X9$,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json, text/event-stream",...wz?{"Mcp-Session-Id":wz}:{}},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)wz=X;let W=(await Y.text()).split(`
|
|
119
|
+
`).find((D)=>D.startsWith("data: "));if(!W)throw Error("No data in Mintlify MCP response");return JSON.parse(W.slice(6))}async function G9$(){if(wz)return;await Tm("initialize",{protocolVersion:"2025-03-26",capabilities:{},clientInfo:{name:"monaco-mcp-server",version:GO.version}},0)}async function W9$($){return await G9$(),(await Tm("tools/call",{name:Y9$,arguments:{query:$}},1))?.result}function Pm($){$.registerTool("search_docs",{description:"Search the Monaco documentation for information about the protocol, SDK, trading, and development guides.",inputSchema:B.object({query:B.string().describe("The search query")})},async({query:J})=>{try{let Q=await W9$(J);if(Q?.content&&Array.isArray(Q.content))return{content:Q.content};return I$(Q)}catch(Q){return M1(`Search failed: ${Q instanceof Error?Q.message:String(Q)}`)}})}function Cm($){Pm($)}function km($){$.registerTool("get_trades",{description:"Get historical trades for a trading pair. Returns recent trades sorted by execution time (newest first).",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID"),skip:B.number().optional().describe("Number of records to skip (default: 0)"),limit:B.number().optional().describe("Max number of records to return (default: 25, max: 100)")})},async({trading_pair_id:J,skip:Q,limit:Y})=>{let G=await $0().trades.getTrades(J,{skip:Q,limit:Y});return I$(G)})}function xm($){km($)}function fm($){$.registerTool("batch_cancel_all_orders",{description:"Cancel all active orders, optionally filtered to a specific trading pair.",inputSchema:B.object({trading_pair_id:B.string().optional().describe("Optional trading pair UUID to limit cancellation to")})},async({trading_pair_id:J})=>{let Y=await(await g$()).trading.batchCancelAll(J);return I$(Y)})}function bm($){$.registerTool("batch_cancel_orders",{description:"Cancel multiple orders by their IDs in a single request.",inputSchema:B.object({order_ids:B.array(B.string()).describe("Array of order IDs to cancel")})},async({order_ids:J})=>{let Y=await(await g$()).trading.batchCancel(J);return I$(Y)})}function gm($){$.registerTool("cancel_order",{description:"Cancel an open order by its ID.",inputSchema:B.object({order_id:B.string().describe("The order ID to cancel")})},async({order_id:J})=>{let Y=await(await g$()).trading.cancelOrder(J);return I$(Y)})}function ym($){$.registerTool("get_order",{description:"Get detailed information about a specific order by its ID.",inputSchema:B.object({order_id:B.string().describe("The order ID to look up")})},async({order_id:J})=>{let Y=await(await g$()).trading.getOrder(J);return I$(Y)})}var D9$=B.object({trading_pair_id:B.string().trim().min(1,"Trading pair ID is required and cannot be empty"),side:B.enum(["BUY","SELL"],{message:"Order side is required and must be either 'BUY' or 'SELL'"}),price:B.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:B.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:B.enum(["LIMIT","MARKET"]).optional(),slippage_tolerance_bps:B.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:B.ZodIssueCode.custom,message:"slippage_tolerance_bps is only valid when order_type is MARKET",path:["slippage_tolerance_bps"]})}),U9$=B.object({application_name:B.string().nullable().optional(),application_taker_fee:B.string(),application_taker_fee_bps:B.number(),buy_order_lock_amount:B.string().nullable().optional(),maker_total_receipt:B.string(),monaco_maker_rebate:B.string(),monaco_maker_rebate_bps:B.number(),monaco_taker_fee:B.string(),monaco_taker_fee_bps:B.number(),notional:B.string(),taker_total_payment:B.string(),total_taker_fees:B.string(),max_quantity:B.string().nullable(),max_quantity_raw:B.string().nullable(),slippage_tolerance_bps:B.number().nullable()});var YD=["SUBMITTED","PARTIALLY_FILLED","FILLED","SETTLED_ON_CHAIN","SETTLED","CANCELLED","REJECTED","EXPIRED"];var KF=B.enum(["BUY","SELL"],{message:'Order side must be "BUY" or "SELL"'}),hm=B.enum(["SPOT","MARGIN"],{message:'Trading mode must be "SPOT" or "MARGIN"'}),um=B.enum(["GTC","IOC","FOK"],{message:'Time in force must be "GTC", "IOC", or "FOK"'}),rJ=B.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"}),l4=B.uuid({message:"Must be a valid UUID (e.g., '123e4567-e89b-12d3-a456-426614174000')"}),mm=B.iso.datetime({message:"Must be a valid ISO 8601 date string (e.g., '2024-12-31T23:59:59Z')"}),lm=B.number().min(0,"Slippage tolerance must be at least 0 (no slippage)").max(1,"Slippage tolerance cannot exceed 1 (100%)").optional(),wL4=B.object({tradingPairId:l4,side:KF,quantity:rJ,price:rJ,options:B.object({tradingMode:hm.optional(),useMasterBalance:B.boolean().optional(),expirationDate:mm.optional(),timeInForce:um.optional()}).optional()}),AL4=B.object({tradingPairId:l4,side:KF,quantity:rJ,options:B.object({tradingMode:hm.optional(),slippageTolerance:lm}).optional()}),IL4=B.object({orderId:l4}),LL4=B.object({orderId:l4,newOrder:B.object({price:rJ.optional(),quantity:rJ.optional(),useMasterBalance:B.boolean().optional()})}),BL4=B.object({status:B.enum(YD).optional(),trading_pair:l4.optional(),page:B.number().int().min(1,"Page must be at least 1").optional(),page_size:B.number().int().min(1,"Page size must be at least 1").max(100,"Page size cannot exceed 100").optional()}),K9$=B.enum(["LIMIT","MARKET"],{message:'Order type must be "LIMIT" or "MARKET"'}),V9$=B.object({tradingPairId:l4,orderType:K9$,side:KF,price:rJ.optional(),quantity:rJ,tradingMode:B.enum(["SPOT"]).optional(),slippageTolerance:lm,useMasterBalance:B.boolean().optional(),expirationDate:mm.optional(),timeInForce:um.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"]}),ZL4=B.object({orders:B.array(V9$).min(1,"At least one order is required")}),O9$=B.object({orderId:l4,price:rJ.optional(),quantity:rJ.optional(),useMasterBalance:B.boolean().optional()}).refine(($)=>$.price!==void 0||$.quantity!==void 0,{message:"At least one of price or quantity must be provided"}),FL4=B.object({orders:B.array(O9$).min(1,"At least one order is required")});var dm=B.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"'}),N9$=31536000000,z9$=946684800000,Az=B.number().int().positive({message:"Timestamp must be a positive integer (milliseconds since epoch)"}).min(z9$,{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()+N9$,{message:"Timestamp must not be unreasonably far in the future (max 1 year ahead)"}),SL4=B.object({tradingPairId:l4,interval:dm,startTime:Az,endTime:Az}).refine(($)=>$.startTime<$.endTime,{message:"startTime must be less than endTime",path:["endTime"]}),vL4=B.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")'}),M9$=B.number().int().positive({message:"Limit must be a positive integer"}).max(500,{message:"Limit cannot exceed 500 bars per request"}).optional(),RL4=B.object({tradingPairId:l4,interval:dm,startTime:Az.optional(),endTime:Az.optional(),limit:M9$}).refine(($)=>{if($.startTime!==void 0&&$.endTime!==void 0)return $.startTime<$.endTime;return!0},{message:"startTime must be less than endTime",path:["endTime"]});var TL4=B.object({tradingPairId:l4}),PL4=B.object({query:B.string().min(1,"Search query cannot be empty").optional(),limit:B.number().int().min(1).max(100).optional(),offset:B.number().int().min(0).optional()}),CL4=B.object({tradingPairId:l4});var H9$=B.enum(["CREDIT","DEBIT","LOCK","UNLOCK","FEE"],{message:'Entry type must be "CREDIT", "DEBIT", "LOCK", "UNLOCK", or "FEE"'}),q9$=B.enum(["DEPOSIT","WITHDRAWAL","TRADE","FEE","FUNDING","LIQUIDATION","INTEREST","REWARD"],{message:'Transaction type must be "DEPOSIT", "WITHDRAWAL", "TRADE", "FEE", "FUNDING", "LIQUIDATION", "INTEREST", or "REWARD"'}),bL4=B.object({page:B.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),limit:B.number().int("Limit must be an integer").min(1,"Limit must be at least 1").max(100,"Limit cannot exceed 100").optional(),entry_type:H9$.optional(),transaction_type:q9$.optional(),asset_id:l4.optional()}),gL4=B.object({page:B.number().int("Page must be an integer").min(1,"Page must be at least 1").optional(),limit:B.number().int("Limit must be an integer").min(1,"Limit must be at least 1").max(100,"Limit cannot exceed 100").optional(),trading_pair_id:l4.optional()});var mL4=B.string().regex(/^0x[a-fA-F0-9]{40}$/,{message:"Must be a valid Ethereum address (e.g., '0x1234...5678')"}),VF=B.union([B.string().regex(/^\d+$/,"Must be a positive integer string").refine(($)=>BigInt($)>0n,{message:"Amount must be greater than 0"}),B.bigint().refine(($)=>$>0n,{message:"Amount must be greater than 0"})]),lL4=B.object({assetId:l4,amount:VF,autoWait:B.boolean().optional()}),dL4=B.object({assetId:l4,amount:VF,autoWait:B.boolean().optional()}),pL4=B.object({assetId:l4,amount:VF,autoWait:B.boolean().optional()}),nL4=B.object({assetId:l4});function pm($){$.registerTool("get_orders",{description:"Get a paginated list of orders with optional filters by status and trading pair.",inputSchema:B.object({status:B.enum(YD).optional().describe("Filter by order status (e.g. SUBMITTED, FILLED, CANCELLED)"),trading_pair:B.string().optional().describe("Filter by trading pair UUID"),page:B.number().optional().describe("Page number (default: 1)"),page_size:B.number().optional().describe("Orders per page (default: 10, max: 100)")})},async({status:J,trading_pair:Q,page:Y,page_size:X})=>{let W=await(await g$()).trading.getPaginatedOrders({status:J,trading_pair:Q,page:Y,page_size:X});return I$(W)})}function nm($){$.registerTool("place_limit_order",{description:"Place a limit order on Monaco. Limit orders execute only when the market reaches the specified price.",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID"),side:B.enum(["BUY","SELL"]).describe("Order side"),quantity:B.string().describe("Order quantity as a decimal string"),price:B.string().describe("Limit price as a decimal string"),trading_mode:B.enum(["SPOT"]).optional().describe("Trading mode (default: SPOT)"),time_in_force:B.enum(["GTC","IOC","FOK"]).optional().describe("Time in force (default: GTC)"),expiration_date:B.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 g$()).trading.placeLimitOrder(J,Q,Y,X,{tradingMode:G,timeInForce:W,expirationDate:D});return I$(V)})}function cm($){$.registerTool("place_market_order",{description:"Place a market order on Monaco. Market orders execute immediately at the current market price.",inputSchema:B.object({trading_pair_id:B.string().describe("Trading pair UUID"),side:B.enum(["BUY","SELL"]).describe("Order side"),quantity:B.string().describe("Order quantity as a decimal string"),trading_mode:B.enum(["SPOT"]).optional().describe("Trading mode (default: SPOT)"),slippage_tolerance:B.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 g$()).trading.placeMarketOrder(J,Q,Y,{tradingMode:X,slippageTolerance:G});return I$(D)})}function im($){$.registerTool("replace_order",{description:"Replace an existing order with new price and/or quantity. The order must be open.",inputSchema:B.object({order_id:B.string().describe("The order ID to replace"),price:B.string().optional().describe("New price as a decimal string"),quantity:B.string().optional().describe("New quantity as a decimal string")})},async({order_id:J,price:Q,quantity:Y})=>{let G=await(await g$()).trading.replaceOrder(J,{price:Q,quantity:Y});return I$(G)})}function om($){nm($),cm($),gm($),bm($),fm($),im($),pm($),ym($)}function rm($){$.registerTool("vault_get_allowance",{description:"Check the current token allowance granted to the Monaco vault for a specific asset.",inputSchema:B.object({asset_id:B.string().describe("The asset UUID to check allowance for")})},async({asset_id:J})=>{let Y=await(await g$()).vault.getAllowance(J);return I$({asset_id:J,allowance:Y.toString()})})}function tm($){$.registerTool("vault_approve",{description:"Approve the Monaco vault contract to spend tokens on your behalf. Required before depositing ERC20 tokens.",inputSchema:B.object({asset_id:B.string().describe("The asset UUID to approve"),amount:B.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 g$()).vault.approve(J,BigInt(Q));return I$({hash:X.hash,status:X.status})})}function am($){$.registerTool("vault_deposit",{description:"Deposit tokens into the Monaco vault. Requires prior approval for ERC20 tokens (use vault_approve first).",inputSchema:B.object({asset_id:B.string().describe("The asset UUID to deposit"),amount:B.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 g$()).vault.deposit(J,BigInt(Q));return I$({hash:X.hash,status:X.status})})}function sm($){$.registerTool("vault_needs_approval",{description:"Check if approval is needed before depositing a specific amount of tokens.",inputSchema:B.object({asset_id:B.string().describe("The asset UUID to check"),amount:B.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 g$()).vault.needsApproval(J,BigInt(Q));return I$({asset_id:J,amount:Q,needs_approval:X})})}function em($){$.registerTool("vault_withdraw",{description:"Withdraw tokens from the Monaco vault back to your wallet.",inputSchema:B.object({asset_id:B.string().describe("The asset UUID to withdraw"),amount:B.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 g$()).vault.withdraw(J,BigInt(Q));return I$({hash:X.hash,status:X.status})})}function $l($){tm($),am($),em($),rm($),sm($)}function Jl($,J){if(Cm($),Zm($),jm($),xm($),J.authenticated)om($),Rm($),wm($),$l($),Hm($)}if(!globalThis.fetch)globalThis.fetch=mD,globalThis.Headers=j6,globalThis.Request=WJ,globalThis.Response=Q6;if(!globalThis.WebSocket)globalThis.WebSocket=BM.default;async function w9$(){let J=ZJ().privateKey!==null,Q=new AI({name:"monaco-mcp-server",version:GO.version});Jl(Q,{authenticated:J});let Y=new LI;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)")}w9$().catch(($)=>{console.error("Fatal error:",$),process.exit(1)});
|