phala 1.1.11 → 1.1.12-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +139 -138
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,134 +1,134 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'module';const require = createRequire(import.meta.url);
3
- var yS=Object.create;var $f=Object.defineProperty;var bS=Object.getOwnPropertyDescriptor;var xS=Object.getOwnPropertyNames;var vS=Object.getPrototypeOf,wS=Object.prototype.hasOwnProperty;var Dn=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var P=(e,t)=>()=>(e&&(t=e(e=0)),t);var Yt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Rf=(e,t)=>{for(var r in t)$f(e,r,{get:t[r],enumerable:!0})},CS=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of xS(t))!wS.call(e,o)&&o!==r&&$f(e,o,{get:()=>t[o],enumerable:!(n=bS(t,o))||n.enumerable});return e};var vi=(e,t,r)=>(r=e!=null?yS(vS(e)):{},CS(t||!e||!e.__esModule?$f(r,"default",{value:e,enumerable:!0}):r,e));var dh=Yt((XR,fh)=>{var ds=1e3,gs=ds*60,hs=gs*60,Po=hs*24,$S=Po*7,RS=Po*365.25;fh.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return MS(e);if(r==="number"&&isFinite(e))return t.long?NS(e):FS(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function MS(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*RS;case"weeks":case"week":case"w":return r*$S;case"days":case"day":case"d":return r*Po;case"hours":case"hour":case"hrs":case"hr":case"h":return r*hs;case"minutes":case"minute":case"mins":case"min":case"m":return r*gs;case"seconds":case"second":case"secs":case"sec":case"s":return r*ds;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function FS(e){var t=Math.abs(e);return t>=Po?Math.round(e/Po)+"d":t>=hs?Math.round(e/hs)+"h":t>=gs?Math.round(e/gs)+"m":t>=ds?Math.round(e/ds)+"s":e+"ms"}function NS(e){var t=Math.abs(e);return t>=Po?am(e,t,Po,"day"):t>=hs?am(e,t,hs,"hour"):t>=gs?am(e,t,gs,"minute"):t>=ds?am(e,t,ds,"second"):e+" ms"}function am(e,t,r,n){var o=t>=r*1.5;return Math.round(e/r)+" "+n+(o?"s":"")}});var Lf=Yt((QR,gh)=>{function LS(e){r.debug=r,r.default=r,r.coerce=c,r.disable=a,r.enable=o,r.enabled=i,r.humanize=dh(),r.destroy=m,Object.keys(e).forEach(u=>{r[u]=e[u]}),r.names=[],r.skips=[],r.formatters={};function t(u){let p=0;for(let l=0;l<u.length;l++)p=(p<<5)-p+u.charCodeAt(l),p|=0;return r.colors[Math.abs(p)%r.colors.length]}r.selectColor=t;function r(u){let p,l=null,d,g;function h(...y){if(!h.enabled)return;let b=h,x=Number(new Date),v=x-(p||x);b.diff=v,b.prev=p,b.curr=x,p=x,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let S=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(_,I)=>{if(_==="%%")return"%";S++;let R=r.formatters[I];if(typeof R=="function"){let N=y[S];_=R.call(b,N),y.splice(S,1),S--}return _}),r.formatArgs.call(b,y),(b.log||r.log).apply(b,y)}return h.namespace=u,h.useColors=r.useColors(),h.color=r.selectColor(u),h.extend=n,h.destroy=r.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>l!==null?l:(d!==r.namespaces&&(d=r.namespaces,g=r.enabled(u)),g),set:y=>{l=y}}),typeof r.init=="function"&&r.init(h),h}function n(u,p){let l=r(this.namespace+(typeof p>"u"?":":p)+u);return l.log=this.log,l}function o(u){r.save(u),r.namespaces=u,r.names=[],r.skips=[];let p=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let l of p)l[0]==="-"?r.skips.push(l.slice(1)):r.names.push(l)}function s(u,p){let l=0,d=0,g=-1,h=0;for(;l<u.length;)if(d<p.length&&(p[d]===u[l]||p[d]==="*"))p[d]==="*"?(g=d,h=l,d++):(l++,d++);else if(g!==-1)d=g+1,h++,l=h;else return!1;for(;d<p.length&&p[d]==="*";)d++;return d===p.length}function a(){let u=[...r.names,...r.skips.map(p=>"-"+p)].join(",");return r.enable(""),u}function i(u){for(let p of r.skips)if(s(u,p))return!1;for(let p of r.names)if(s(u,p))return!0;return!1}function c(u){return u instanceof Error?u.stack||u.message:u}function m(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}gh.exports=LS});var hh=Yt((Et,im)=>{Et.formatArgs=DS;Et.save=US;Et.load=zS;Et.useColors=BS;Et.storage=OS();Et.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Et.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function BS(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function DS(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+im.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(r++,o==="%c"&&(n=r))}),e.splice(n,0,t)}Et.log=console.debug||console.log||(()=>{});function US(e){try{e?Et.storage.setItem("debug",e):Et.storage.removeItem("debug")}catch{}}function zS(){let e;try{e=Et.storage.getItem("debug")||Et.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function OS(){try{return localStorage}catch{}}im.exports=Lf()(Et);var{formatters:jS}=im.exports;jS.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var bh=Yt((Je,mm)=>{var HS=Dn("tty"),cm=Dn("util");Je.init=ZS;Je.log=KS;Je.formatArgs=GS;Je.save=WS;Je.load=JS;Je.useColors=VS;Je.destroy=cm.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Je.colors=[6,2,3,4,5,1];try{let e=Dn("supports-color");e&&(e.stderr||e).level>=2&&(Je.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Je.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(o,s)=>s.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function VS(){return"colors"in Je.inspectOpts?!!Je.inspectOpts.colors:HS.isatty(process.stderr.fd)}function GS(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,o="\x1B[3"+(n<8?n:"8;5;"+n),s=` ${o};1m${t} \x1B[0m`;e[0]=s+e[0].split(`
3
+ var wS=Object.create;var $f=Object.defineProperty;var CS=Object.getOwnPropertyDescriptor;var SS=Object.getOwnPropertyNames;var kS=Object.getPrototypeOf,ES=Object.prototype.hasOwnProperty;var Un=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var P=(e,t)=>()=>(e&&(t=e(e=0)),t);var Yt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Rf=(e,t)=>{for(var r in t)$f(e,r,{get:t[r],enumerable:!0})},_S=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of SS(t))!ES.call(e,o)&&o!==r&&$f(e,o,{get:()=>t[o],enumerable:!(n=CS(t,o))||n.enumerable});return e};var vi=(e,t,r)=>(r=e!=null?wS(kS(e)):{},_S(t||!e||!e.__esModule?$f(r,"default",{value:e,enumerable:!0}):r,e));var gh=Yt((sM,dh)=>{var gs=1e3,hs=gs*60,ys=hs*60,Ao=ys*24,NS=Ao*7,LS=Ao*365.25;dh.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return BS(e);if(r==="number"&&isFinite(e))return t.long?US(e):DS(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function BS(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*LS;case"weeks":case"week":case"w":return r*NS;case"days":case"day":case"d":return r*Ao;case"hours":case"hour":case"hrs":case"hr":case"h":return r*ys;case"minutes":case"minute":case"mins":case"min":case"m":return r*hs;case"seconds":case"second":case"secs":case"sec":case"s":return r*gs;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function DS(e){var t=Math.abs(e);return t>=Ao?Math.round(e/Ao)+"d":t>=ys?Math.round(e/ys)+"h":t>=hs?Math.round(e/hs)+"m":t>=gs?Math.round(e/gs)+"s":e+"ms"}function US(e){var t=Math.abs(e);return t>=Ao?am(e,t,Ao,"day"):t>=ys?am(e,t,ys,"hour"):t>=hs?am(e,t,hs,"minute"):t>=gs?am(e,t,gs,"second"):e+" ms"}function am(e,t,r,n){var o=t>=r*1.5;return Math.round(e/r)+" "+n+(o?"s":"")}});var Lf=Yt((aM,hh)=>{function zS(e){r.debug=r,r.default=r,r.coerce=c,r.disable=a,r.enable=o,r.enabled=i,r.humanize=gh(),r.destroy=m,Object.keys(e).forEach(u=>{r[u]=e[u]}),r.names=[],r.skips=[],r.formatters={};function t(u){let p=0;for(let f=0;f<u.length;f++)p=(p<<5)-p+u.charCodeAt(f),p|=0;return r.colors[Math.abs(p)%r.colors.length]}r.selectColor=t;function r(u){let p,f=null,d,g;function h(...y){if(!h.enabled)return;let b=h,x=Number(new Date),v=x-(p||x);b.diff=v,b.prev=p,b.curr=x,p=x,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let S=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(_,I)=>{if(_==="%%")return"%";S++;let R=r.formatters[I];if(typeof R=="function"){let N=y[S];_=R.call(b,N),y.splice(S,1),S--}return _}),r.formatArgs.call(b,y),(b.log||r.log).apply(b,y)}return h.namespace=u,h.useColors=r.useColors(),h.color=r.selectColor(u),h.extend=n,h.destroy=r.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(d!==r.namespaces&&(d=r.namespaces,g=r.enabled(u)),g),set:y=>{f=y}}),typeof r.init=="function"&&r.init(h),h}function n(u,p){let f=r(this.namespace+(typeof p>"u"?":":p)+u);return f.log=this.log,f}function o(u){r.save(u),r.namespaces=u,r.names=[],r.skips=[];let p=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let f of p)f[0]==="-"?r.skips.push(f.slice(1)):r.names.push(f)}function s(u,p){let f=0,d=0,g=-1,h=0;for(;f<u.length;)if(d<p.length&&(p[d]===u[f]||p[d]==="*"))p[d]==="*"?(g=d,h=f,d++):(f++,d++);else if(g!==-1)d=g+1,h++,f=h;else return!1;for(;d<p.length&&p[d]==="*";)d++;return d===p.length}function a(){let u=[...r.names,...r.skips.map(p=>"-"+p)].join(",");return r.enable(""),u}function i(u){for(let p of r.skips)if(s(u,p))return!1;for(let p of r.names)if(s(u,p))return!0;return!1}function c(u){return u instanceof Error?u.stack||u.message:u}function m(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}hh.exports=zS});var yh=Yt((Et,im)=>{Et.formatArgs=jS;Et.save=HS;Et.load=VS;Et.useColors=OS;Et.storage=GS();Et.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Et.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function OS(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function jS(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+im.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(r++,o==="%c"&&(n=r))}),e.splice(n,0,t)}Et.log=console.debug||console.log||(()=>{});function HS(e){try{e?Et.storage.setItem("debug",e):Et.storage.removeItem("debug")}catch{}}function VS(){let e;try{e=Et.storage.getItem("debug")||Et.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function GS(){try{return localStorage}catch{}}im.exports=Lf()(Et);var{formatters:qS}=im.exports;qS.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var xh=Yt((Je,mm)=>{var KS=Un("tty"),cm=Un("util");Je.init=ek;Je.log=YS;Je.formatArgs=JS;Je.save=XS;Je.load=QS;Je.useColors=WS;Je.destroy=cm.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Je.colors=[6,2,3,4,5,1];try{let e=Un("supports-color");e&&(e.stderr||e).level>=2&&(Je.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Je.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(o,s)=>s.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function WS(){return"colors"in Je.inspectOpts?!!Je.inspectOpts.colors:KS.isatty(process.stderr.fd)}function JS(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,o="\x1B[3"+(n<8?n:"8;5;"+n),s=` ${o};1m${t} \x1B[0m`;e[0]=s+e[0].split(`
4
4
  `).join(`
5
- `+s),e.push(o+"m+"+mm.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=qS()+t+" "+e[0]}function qS(){return Je.inspectOpts.hideDate?"":new Date().toISOString()+" "}function KS(...e){return process.stderr.write(cm.formatWithOptions(Je.inspectOpts,...e)+`
6
- `)}function WS(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function JS(){return process.env.DEBUG}function ZS(e){e.inspectOpts={};let t=Object.keys(Je.inspectOpts);for(let r=0;r<t.length;r++)e.inspectOpts[t[r]]=Je.inspectOpts[t[r]]}mm.exports=Lf()(Je);var{formatters:yh}=mm.exports;yh.o=function(e){return this.inspectOpts.colors=this.useColors,cm.inspect(e,this.inspectOpts).split(`
7
- `).map(t=>t.trim()).join(" ")};yh.O=function(e){return this.inspectOpts.colors=this.useColors,cm.inspect(e,this.inspectOpts)}});var xh=Yt((eM,Bf)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?Bf.exports=hh():Bf.exports=bh()});var Df,wh=P(()=>{Df="2.38.6"});function Ch(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?Ch(e.cause,t):t?null:e}var Uf,w,K=P(()=>{wh();Uf={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${Df}`},w=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,s=Uf.getDocsUrl?.({...r,docsPath:o}),a=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...s?[`Docs: ${s}`]:[],...n?[`Details: ${n}`]:[],...Uf.version?[`Version: ${Uf.version}`]:[]].join(`
8
- `);super(a,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=o,this.metaMessages=r.metaMessages,this.name=r.name??this.name,this.shortMessage=t,this.version=Df}walk(t){return Ch(this,t)}}});var ys,um,pm,lm,Si=P(()=>{K();ys=class extends w{constructor({max:t,min:r,signed:n,size:o,value:s}){super(`Number "${s}" is not in safe ${o?`${o*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${t?`(${r} to ${t})`:`(above ${r})`}`,{name:"IntegerOutOfRangeError"})}},um=class extends w{constructor(t){super(`Bytes value "${t}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}},pm=class extends w{constructor(t){super(`Hex value "${t}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:"InvalidHexBooleanError"})}},lm=class extends w{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed ${r} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}});function xe(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}var Ut=P(()=>{});function ne(e){return xe(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var Xt=P(()=>{Ut()});function Ze(e,{dir:t="left"}={}){let r=typeof e=="string"?e.replace("0x",""):e,n=0;for(let o=0;o<r.length-1&&r[t==="left"?o:r.length-o-1].toString()==="0";o++)n++;return r=t==="left"?r.slice(n):r.slice(0,r.length-n),typeof e=="string"?(r.length===1&&t==="right"&&(r=`${r}0`),`0x${r.length%2===1?`0${r}`:r}`):r}var To=P(()=>{});var ki,Ei,_i,fm=P(()=>{K();ki=class extends w{constructor({offset:t,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}},Ei=class extends w{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${t}) exceeds padding size (${r}).`,{name:"SizeExceedsPaddingSizeError"})}},_i=class extends w{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} is expected to be ${r} ${n} long, but is ${t} ${n} long.`,{name:"InvalidBytesLengthError"})}}});function zn(e,{dir:t,size:r=32}={}){return typeof e=="string"?mn(e,{dir:t,size:r}):YS(e,{dir:t,size:r})}function mn(e,{dir:t,size:r=32}={}){if(r===null)return e;let n=e.replace("0x","");if(n.length>r*2)throw new Ei({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function YS(e,{dir:t,size:r=32}={}){if(r===null)return e;if(e.length>r)throw new Ei({size:e.length,targetSize:r,type:"bytes"});let n=new Uint8Array(r);for(let o=0;o<r;o++){let s=t==="right";n[s?o:r-o-1]=e[s?o:e.length-o-1]}return n}var dm=P(()=>{fm()});function ye(e,t={}){return typeof e=="number"||typeof e=="bigint"?k(e,t):typeof e=="string"?xr(e,t):typeof e=="boolean"?gm(e,t):oe(e,t)}function gm(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?(_t(r,{size:t.size}),zn(r,{size:t.size})):r}function oe(e,t={}){let r="";for(let o=0;o<e.length;o++)r+=XS[e[o]];let n=`0x${r}`;return typeof t.size=="number"?(_t(n,{size:t.size}),zn(n,{dir:"right",size:t.size})):n}function k(e,t={}){let{signed:r,size:n}=t,o=BigInt(e),s;n?r?s=(1n<<BigInt(n)*8n-1n)-1n:s=2n**(BigInt(n)*8n)-1n:typeof e=="number"&&(s=BigInt(Number.MAX_SAFE_INTEGER));let a=typeof s=="bigint"&&r?-s-1n:0;if(s&&o>s||o<a){let c=typeof e=="bigint"?"n":"";throw new ys({max:s?`${s}${c}`:void 0,min:`${a}${c}`,signed:r,size:n,value:`${e}${c}`})}let i=`0x${(r&&o<0?(1n<<BigInt(n*8))+BigInt(o):o).toString(16)}`;return n?zn(i,{size:n}):i}function xr(e,t={}){let r=QS.encode(e);return oe(r,t)}var XS,QS,D=P(()=>{Si();dm();Ge();XS=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));QS=new TextEncoder});function Qt(e,t={}){return typeof e=="number"||typeof e=="bigint"?rk(e,t):typeof e=="boolean"?tk(e,t):xe(e)?qe(e,t):vr(e,t)}function tk(e,t={}){let r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?(_t(r,{size:t.size}),zn(r,{size:t.size})):r}function Sh(e){if(e>=un.zero&&e<=un.nine)return e-un.zero;if(e>=un.A&&e<=un.F)return e-(un.A-10);if(e>=un.a&&e<=un.f)return e-(un.a-10)}function qe(e,t={}){let r=e;t.size&&(_t(r,{size:t.size}),r=zn(r,{dir:"right",size:t.size}));let n=r.slice(2);n.length%2&&(n=`0${n}`);let o=n.length/2,s=new Uint8Array(o);for(let a=0,i=0;a<o;a++){let c=Sh(n.charCodeAt(i++)),m=Sh(n.charCodeAt(i++));if(c===void 0||m===void 0)throw new w(`Invalid byte sequence ("${n[i-2]}${n[i-1]}" in "${n}").`);s[a]=c*16+m}return s}function rk(e,t){let r=k(e,t);return qe(r)}function vr(e,t={}){let r=ek.encode(e);return typeof t.size=="number"?(_t(r,{size:t.size}),zn(r,{dir:"right",size:t.size})):r}var ek,un,Ye=P(()=>{K();Ut();dm();Ge();D();ek=new TextEncoder;un={zero:48,nine:57,A:65,F:70,a:97,f:102}});function _t(e,{size:t}){if(ne(e)>t)throw new lm({givenSize:ne(e),maxSize:t})}function be(e,t={}){let{signed:r}=t;t.size&&_t(e,{size:t.size});let n=BigInt(e);if(!r)return n;let o=(e.length-2)/2,s=(1n<<BigInt(o)*8n-1n)-1n;return n<=s?n:n-BigInt(`0x${"f".padStart(o*2,"f")}`)-1n}function zf(e,t={}){let r=e;if(t.size&&(_t(r,{size:t.size}),r=Ze(r)),Ze(r)==="0x00")return!1;if(Ze(r)==="0x01")return!0;throw new pm(r)}function Ae(e,t={}){return Number(be(e,t))}var Ge=P(()=>{Si();Xt();To()});function bs(e,t){return({exclude:r,format:n})=>({exclude:r,format:(o,s)=>{let a=t(o,s);if(r)for(let i of r)delete a[i];return{...a,...n(o,s)}},type:e})}var hm=P(()=>{});function It(e,t){let r={};return typeof e.authorizationList<"u"&&(r.authorizationList=sk(e.authorizationList)),typeof e.accessList<"u"&&(r.accessList=e.accessList),typeof e.blobVersionedHashes<"u"&&(r.blobVersionedHashes=e.blobVersionedHashes),typeof e.blobs<"u"&&(typeof e.blobs[0]!="string"?r.blobs=e.blobs.map(n=>oe(n)):r.blobs=e.blobs),typeof e.data<"u"&&(r.data=e.data),e.account&&(r.from=e.account.address),typeof e.from<"u"&&(r.from=e.from),typeof e.gas<"u"&&(r.gas=k(e.gas)),typeof e.gasPrice<"u"&&(r.gasPrice=k(e.gasPrice)),typeof e.maxFeePerBlobGas<"u"&&(r.maxFeePerBlobGas=k(e.maxFeePerBlobGas)),typeof e.maxFeePerGas<"u"&&(r.maxFeePerGas=k(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(r.maxPriorityFeePerGas=k(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(r.nonce=k(e.nonce)),typeof e.to<"u"&&(r.to=e.to),typeof e.type<"u"&&(r.type=ok[e.type]),typeof e.value<"u"&&(r.value=k(e.value)),r}function sk(e){return e.map(t=>({address:t.address,r:t.r?k(BigInt(t.r)):t.r,s:t.s?k(BigInt(t.s)):t.s,chainId:k(t.chainId),nonce:k(t.nonce),...typeof t.yParity<"u"?{yParity:k(t.yParity)}:{},...typeof t.v<"u"&&typeof t.yParity>"u"?{v:k(t.v)}:{}}))}var ok,On=P(()=>{D();ok={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"}});var GM,qM,KM,WM,JM,ZM,YM,XM,QM,eF,tF,rF,nF,oF,sF,aF,iF,cF,mF,uF,pF,lF,fF,dF,gF,hF,yF,bF,xF,vF,wF,CF,SF,kF,EF,_F,IF,PF,AF,TF,$F,RF,MF,FF,NF,LF,BF,DF,UF,zF,OF,jF,HF,VF,GF,qF,KF,WF,JF,ZF,YF,XF,QF,eN,tN,rN,nN,oN,sN,aN,iN,cN,mN,uN,pN,lN,fN,dN,gN,hN,yN,bN,xN,vN,wN,CN,SN,kN,EN,_N,IN,PN,AN,TN,$N,xs,Hf=P(()=>{GM=2n**(8n-1n)-1n,qM=2n**(16n-1n)-1n,KM=2n**(24n-1n)-1n,WM=2n**(32n-1n)-1n,JM=2n**(40n-1n)-1n,ZM=2n**(48n-1n)-1n,YM=2n**(56n-1n)-1n,XM=2n**(64n-1n)-1n,QM=2n**(72n-1n)-1n,eF=2n**(80n-1n)-1n,tF=2n**(88n-1n)-1n,rF=2n**(96n-1n)-1n,nF=2n**(104n-1n)-1n,oF=2n**(112n-1n)-1n,sF=2n**(120n-1n)-1n,aF=2n**(128n-1n)-1n,iF=2n**(136n-1n)-1n,cF=2n**(144n-1n)-1n,mF=2n**(152n-1n)-1n,uF=2n**(160n-1n)-1n,pF=2n**(168n-1n)-1n,lF=2n**(176n-1n)-1n,fF=2n**(184n-1n)-1n,dF=2n**(192n-1n)-1n,gF=2n**(200n-1n)-1n,hF=2n**(208n-1n)-1n,yF=2n**(216n-1n)-1n,bF=2n**(224n-1n)-1n,xF=2n**(232n-1n)-1n,vF=2n**(240n-1n)-1n,wF=2n**(248n-1n)-1n,CF=2n**(256n-1n)-1n,SF=-(2n**(8n-1n)),kF=-(2n**(16n-1n)),EF=-(2n**(24n-1n)),_F=-(2n**(32n-1n)),IF=-(2n**(40n-1n)),PF=-(2n**(48n-1n)),AF=-(2n**(56n-1n)),TF=-(2n**(64n-1n)),$F=-(2n**(72n-1n)),RF=-(2n**(80n-1n)),MF=-(2n**(88n-1n)),FF=-(2n**(96n-1n)),NF=-(2n**(104n-1n)),LF=-(2n**(112n-1n)),BF=-(2n**(120n-1n)),DF=-(2n**(128n-1n)),UF=-(2n**(136n-1n)),zF=-(2n**(144n-1n)),OF=-(2n**(152n-1n)),jF=-(2n**(160n-1n)),HF=-(2n**(168n-1n)),VF=-(2n**(176n-1n)),GF=-(2n**(184n-1n)),qF=-(2n**(192n-1n)),KF=-(2n**(200n-1n)),WF=-(2n**(208n-1n)),JF=-(2n**(216n-1n)),ZF=-(2n**(224n-1n)),YF=-(2n**(232n-1n)),XF=-(2n**(240n-1n)),QF=-(2n**(248n-1n)),eN=-(2n**(256n-1n)),tN=2n**8n-1n,rN=2n**16n-1n,nN=2n**24n-1n,oN=2n**32n-1n,sN=2n**40n-1n,aN=2n**48n-1n,iN=2n**56n-1n,cN=2n**64n-1n,mN=2n**72n-1n,uN=2n**80n-1n,pN=2n**88n-1n,lN=2n**96n-1n,fN=2n**104n-1n,dN=2n**112n-1n,gN=2n**120n-1n,hN=2n**128n-1n,yN=2n**136n-1n,bN=2n**144n-1n,xN=2n**152n-1n,vN=2n**160n-1n,wN=2n**168n-1n,CN=2n**176n-1n,SN=2n**184n-1n,kN=2n**192n-1n,EN=2n**200n-1n,_N=2n**208n-1n,IN=2n**216n-1n,PN=2n**224n-1n,AN=2n**232n-1n,TN=2n**240n-1n,$N=2n**248n-1n,xs=2n**256n-1n});function Oe(e){return typeof e[0]=="string"?Xe(e):ak(e)}function ak(e){let t=0;for(let o of e)t+=o.length;let r=new Uint8Array(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}function Xe(e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}var yt=P(()=>{});var Ai,vs,ym,Vf=P(()=>{K();Ai=class extends w{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}},vs=class extends w{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}},ym=class extends w{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}});function ws(e,{recursiveReadLimit:t=8192}={}){let r=Object.create(ik);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}var ik,bm=P(()=>{Vf();ik={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 ym({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new vs({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Ai({offset:e});let t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new Ai({offset:e});let t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){let r=t??this.position;return this.assertPosition(r+e-1),this.bytes.subarray(r,r+e)},inspectUint8(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){let t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){let t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){let t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();let r=this.inspectBytes(e);return this.position+=t??e,r},readUint8(){this.assertReadLimit(),this._touch();let e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();let e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();let e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();let e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){let t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}}});var xm,Ah,vm=P(()=>{xm={gwei:9,wei:18},Ah={ether:-9,wei:9}});function wm(e,t){let r=e.toString(),n=r.startsWith("-");n&&(r=r.slice(1)),r=r.padStart(t,"0");let[o,s]=[r.slice(0,r.length-t),r.slice(r.length-t)];return s=s.replace(/(0+)$/,""),`${n?"-":""}${o||"0"}${s?`.${s}`:""}`}var Gf=P(()=>{});function Cs(e,t="wei"){return wm(e,xm[t])}var Cm=P(()=>{vm();Gf()});function Ke(e,t="wei"){return wm(e,Ah[t])}var Ss=P(()=>{vm();Gf()});function Ro(e){let t=Object.entries(e).map(([n,o])=>o===void 0||o===!1?null:[n,o]).filter(Boolean),r=t.reduce((n,[o])=>Math.max(n,o.length),0);return t.map(([n,o])=>` ${`${n}:`.padEnd(r+1)} ${o}`).join(`
9
- `)}var Sm,km,Em,_m,Im,ks,Es,_s,Pm,zt=P(()=>{Cm();Ss();K();Sm=class extends w{constructor(){super(["Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.","Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others."].join(`
10
- `),{name:"FeeConflictError"})}},km=class extends w{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}},Em=class extends w{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Ro(t),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}},_m=class extends w{constructor({storageKey:t}){super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}},Im=class extends w{constructor(t,{account:r,docsPath:n,chain:o,data:s,gas:a,gasPrice:i,maxFeePerGas:c,maxPriorityFeePerGas:m,nonce:u,to:p,value:l}){let d=Ro({chain:o&&`${o?.name} (id: ${o?.id})`,from:r?.address,to:p,value:typeof l<"u"&&`${Cs(l)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:s,gas:a,gasPrice:typeof i<"u"&&`${Ke(i)} gwei`,maxFeePerGas:typeof c<"u"&&`${Ke(c)} gwei`,maxPriorityFeePerGas:typeof m<"u"&&`${Ke(m)} gwei`,nonce:u});super(t.shortMessage,{cause:t,docsPath:n,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Request Arguments:",d].filter(Boolean),name:"TransactionExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}},ks=class extends w{constructor({blockHash:t,blockNumber:r,blockTag:n,hash:o,index:s}){let a="Transaction";n&&s!==void 0&&(a=`Transaction at block time "${n}" at index "${s}"`),t&&s!==void 0&&(a=`Transaction at block hash "${t}" at index "${s}"`),r&&s!==void 0&&(a=`Transaction at block number "${r}" at index "${s}"`),o&&(a=`Transaction with hash "${o}"`),super(`${a} could not be found.`,{name:"TransactionNotFoundError"})}},Es=class extends w{constructor({hash:t}){super(`Transaction receipt with hash "${t}" could not be found. The Transaction may not be processed on a block yet.`,{name:"TransactionReceiptNotFoundError"})}},_s=class extends w{constructor({receipt:t}){super(`Transaction with hash "${t.transactionHash}" reverted.`,{metaMessages:['The receipt marked the transaction as "reverted". This could mean that the function on the contract you are trying to call threw an error.'," ","You can attempt to extract the revert reason by:","- calling the `simulateContract` or `simulateCalls` Action with the `abi` and `functionName` of the contract","- using the `call` Action with raw `data`"],name:"TransactionReceiptRevertedError"}),Object.defineProperty(this,"receipt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.receipt=t}},Pm=class extends w{constructor({hash:t}){super(`Timed out while waiting for transaction with hash "${t}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}});function uk(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function qf(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Mo(e,...t){if(!uk(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function $s(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Am(e,t){Mo(e);let r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function $h(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function jn(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Tm(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Cr(e,t){return e<<32-t|e>>>t}function lk(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function fk(e){for(let t=0;t<e.length;t++)e[t]=lk(e[t]);return e}function dk(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Ti(e){return typeof e=="string"&&(e=dk(e)),Mo(e),e}function $m(e){let t=n=>e().update(Ti(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}var pk,Kf,Ts,Rm=P(()=>{pk=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;Kf=pk?e=>e:fk;Ts=class{}});function hk(e,t=!1){return t?{h:Number(e&Fm),l:Number(e>>Fh&Fm)}:{h:Number(e>>Fh&Fm)|0,l:Number(e&Fm)|0}}function Nh(e,t=!1){let r=e.length,n=new Uint32Array(r),o=new Uint32Array(r);for(let s=0;s<r;s++){let{h:a,l:i}=hk(e[s],t);[n[s],o[s]]=[a,i]}return[n,o]}var Fm,Fh,Lh,Bh,Dh,Uh,zh=P(()=>{Fm=BigInt(4294967295),Fh=BigInt(32);Lh=(e,t,r)=>e<<r|t>>>32-r,Bh=(e,t,r)=>t<<r|e>>>32-r,Dh=(e,t,r)=>t<<r-32|e>>>64-r,Uh=(e,t,r)=>e<<r-32|t>>>64-r});var de,Sr=P(()=>{K();de=class extends w{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}});var Fo,Om,jm,$i,No,Ri=P(()=>{K();Fo=class extends w{constructor({blockNumber:t,chain:r,contract:n}){super(`Chain "${r.name}" does not support contract "${n.name}".`,{metaMessages:["This could be due to any of the following:",...t&&n.blockCreated&&n.blockCreated>t?[`- The contract "${n.name}" was not deployed until block ${n.blockCreated} (current block ${t}).`]:[`- The chain does not have the contract "${n.name}" configured.`]],name:"ChainDoesNotSupportContract"})}},Om=class extends w{constructor({chain:t,currentChainId:r}){super(`The current chain of the wallet (id: ${r}) does not match the target chain for the transaction (id: ${t.id} \u2013 ${t.name}).`,{metaMessages:[`Current Chain ID: ${r}`,`Expected Chain ID: ${t.id} \u2013 ${t.name}`],name:"ChainMismatchError"})}},jm=class extends w{constructor(){super(["No chain was provided to the request.","Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join(`
11
- `),{name:"ChainNotFoundError"})}},$i=class extends w{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}},No=class extends w{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}});var ln,er,Ms,Fs,Ns,Ls,Bs,Ds,Us,zs,Nr,tr,Vn=P(()=>{Ss();K();ln=class extends w{constructor({cause:t,message:r}={}){let n=r?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${n?`with reason: ${n}`:"for an unknown reason"}.`,{cause:t,name:"ExecutionRevertedError"})}};Object.defineProperty(ln,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(ln,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});er=class extends w{constructor({cause:t,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${Ke(r)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}};Object.defineProperty(er,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});Ms=class extends w{constructor({cause:t,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${Ke(r)}`:""} gwei) cannot be lower than the block base fee.`,{cause:t,name:"FeeCapTooLowError"})}};Object.defineProperty(Ms,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});Fs=class extends w{constructor({cause:t,nonce:r}={}){super(`Nonce provided for the transaction ${r?`(${r}) `:""}is higher than the next one expected.`,{cause:t,name:"NonceTooHighError"})}};Object.defineProperty(Fs,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});Ns=class extends w{constructor({cause:t,nonce:r}={}){super([`Nonce provided for the transaction ${r?`(${r}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
12
- `),{cause:t,name:"NonceTooLowError"})}};Object.defineProperty(Ns,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});Ls=class extends w{constructor({cause:t,nonce:r}={}){super(`Nonce provided for the transaction ${r?`(${r}) `:""}exceeds the maximum allowed nonce.`,{cause:t,name:"NonceMaxValueError"})}};Object.defineProperty(Ls,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});Bs=class extends w{constructor({cause:t}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
13
- `),{cause:t,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}};Object.defineProperty(Bs,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});Ds=class extends w{constructor({cause:t,gas:r}={}){super(`The amount of gas ${r?`(${r}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:t,name:"IntrinsicGasTooHighError"})}};Object.defineProperty(Ds,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});Us=class extends w{constructor({cause:t,gas:r}={}){super(`The amount of gas ${r?`(${r}) `:""}provided for the transaction is too low.`,{cause:t,name:"IntrinsicGasTooLowError"})}};Object.defineProperty(Us,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});zs=class extends w{constructor({cause:t}){super("The transaction type is not supported for this chain.",{cause:t,name:"TransactionTypeNotSupportedError"})}};Object.defineProperty(zs,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});Nr=class extends w{constructor({cause:t,maxPriorityFeePerGas:r,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${r?` = ${Ke(r)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${Ke(n)} gwei`:""}).`].join(`
14
- `),{cause:t,name:"TipAboveFeeCapError"})}};Object.defineProperty(Nr,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});tr=class extends w{constructor({cause:t}){super(`An error occurred while executing: ${t?.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}});var rr,Os=P(()=>{rr=class extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){let r=super.get(t);return super.has(t)&&r!==void 0&&(this.delete(t),super.set(t,r)),r}set(t,r){if(super.set(t,r),this.maxSize&&this.size>this.maxSize){let n=this.keys().next().value;n&&this.delete(n)}return this}}});function Ik(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let a=0;a<10;a++)r[a]=e[a]^e[a+10]^e[a+20]^e[a+30]^e[a+40];for(let a=0;a<10;a+=2){let i=(a+8)%10,c=(a+2)%10,m=r[c],u=r[c+1],p=qh(m,u,1)^r[i],l=Kh(m,u,1)^r[i+1];for(let d=0;d<50;d+=10)e[a+d]^=p,e[a+d+1]^=l}let o=e[2],s=e[3];for(let a=0;a<24;a++){let i=Jh[a],c=qh(o,s,i),m=Kh(o,s,i),u=Wh[a];o=e[u],s=e[u+1],e[u]=c,e[u+1]=m}for(let a=0;a<50;a+=10){for(let i=0;i<10;i++)r[i]=e[a+i];for(let i=0;i<10;i++)e[a+i]^=~r[(i+2)%10]&r[(i+4)%10]}e[0]^=Ek[n],e[1]^=_k[n]}jn(r)}var vk,Mi,wk,Ck,Sk,kk,Wh,Jh,Zh,Yh,Ek,_k,qh,Kh,Wf,Pk,Hm,Jf=P(()=>{zh();Rm();vk=BigInt(0),Mi=BigInt(1),wk=BigInt(2),Ck=BigInt(7),Sk=BigInt(256),kk=BigInt(113),Wh=[],Jh=[],Zh=[];for(let e=0,t=Mi,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],Wh.push(2*(5*n+r)),Jh.push((e+1)*(e+2)/2%64);let o=vk;for(let s=0;s<7;s++)t=(t<<Mi^(t>>Ck)*kk)%Sk,t&wk&&(o^=Mi<<(Mi<<BigInt(s))-Mi);Zh.push(o)}Yh=Nh(Zh,!0),Ek=Yh[0],_k=Yh[1],qh=(e,t,r)=>r>32?Dh(e,t,r):Lh(e,t,r),Kh=(e,t,r)=>r>32?Uh(e,t,r):Bh(e,t,r);Wf=class e extends Ts{constructor(t,r,n,o=!1,s=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=o,this.rounds=s,qf(n),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=$h(this.state)}clone(){return this._cloneInto()}keccak(){Kf(this.state32),Ik(this.state32,this.rounds),Kf(this.state32),this.posOut=0,this.pos=0}update(t){$s(this),t=Ti(t),Mo(t);let{blockLen:r,state:n}=this,o=t.length;for(let s=0;s<o;){let a=Math.min(r-this.pos,o-s);for(let i=0;i<a;i++)n[this.pos++]^=t[s++];this.pos===r&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:t,suffix:r,pos:n,blockLen:o}=this;t[n]^=r,(r&128)!==0&&n===o-1&&this.keccak(),t[o-1]^=128,this.keccak()}writeInto(t){$s(this,!1),Mo(t),this.finish();let r=this.state,{blockLen:n}=this;for(let o=0,s=t.length;o<s;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,s-o);t.set(r.subarray(this.posOut,this.posOut+a),o),this.posOut+=a,o+=a}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return qf(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Am(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,jn(this.state)}_cloneInto(t){let{blockLen:r,suffix:n,outputLen:o,rounds:s,enableXOF:a}=this;return t||(t=new e(r,n,o,a,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=o,t.enableXOF=a,t.destroyed=this.destroyed,t}},Pk=(e,t,r)=>$m(()=>new Wf(t,e,r)),Hm=Pk(1,136,256/8)});function ge(e,t){let r=t||"hex",n=Hm(xe(e,{strict:!1})?Qt(e):e);return r==="bytes"?n:ye(n)}var nr=P(()=>{Jf();Ut();Ye();D()});function fn(e,t){if(Zf.has(`${e}.${t}`))return Zf.get(`${e}.${t}`);let r=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),n=ge(vr(r),"bytes"),o=(t?r.substring(`${t}0x`.length):r).split("");for(let a=0;a<40;a+=2)n[a>>1]>>4>=8&&o[a]&&(o[a]=o[a].toUpperCase()),(n[a>>1]&15)>=8&&o[a+1]&&(o[a+1]=o[a+1].toUpperCase());let s=`0x${o.join("")}`;return Zf.set(`${e}.${t}`,s),s}function js(e,t){if(!ie(e,{strict:!1}))throw new de({address:e});return fn(e,t)}var Zf,Gn=P(()=>{Sr();Ye();nr();Os();Ot();Zf=new rr(8192)});function ie(e,t){let{strict:r=!0}=t??{},n=`${e}.${r}`;if(Yf.has(n))return Yf.get(n);let o=Ak.test(e)?e.toLowerCase()===e?!0:r?fn(e)===e:!0:!1;return Yf.set(n,o),o}var Ak,Yf,Ot=P(()=>{Os();Gn();Ak=/^0x[a-fA-F0-9]{40}$/,Yf=new rr(8192)});function or(e,t,r,{strict:n}={}){return xe(e,{strict:!1})?Vm(e,t,r,{strict:n}):Xf(e,t,r,{strict:n})}function Xh(e,t){if(typeof t=="number"&&t>0&&t>ne(e)-1)throw new ki({offset:t,position:"start",size:ne(e)})}function Qh(e,t,r){if(typeof t=="number"&&typeof r=="number"&&ne(e)!==r-t)throw new ki({offset:r,position:"end",size:ne(e)})}function Xf(e,t,r,{strict:n}={}){Xh(e,t);let o=e.slice(t,r);return n&&Qh(o,t,r),o}function Vm(e,t,r,{strict:n}={}){Xh(e,t);let o=`0x${e.replace("0x","").slice((t??0)*2,(r??e.length)*2)}`;return n&&Qh(o,t,r),o}var qn=P(()=>{fm();Ut();Xt()});function sr({blockNumber:e,chain:t,contract:r}){let n=t?.contracts?.[r];if(!n)throw new Fo({chain:t,contract:{name:r}});if(e&&n.blockCreated&&n.blockCreated>e)throw new Fo({blockNumber:e,chain:t,contract:{name:r,blockCreated:n.blockCreated}});return n.address}var Lo=P(()=>{Ri()});function W(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}var Re=P(()=>{});var iy,Jm,cy,Zm=P(()=>{iy={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},Jm={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},cy={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"}});function We(e,{includeName:t=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new Ym(e.type);return`${e.name}(${Bi(e.inputs,{includeName:t})})`}function Bi(e,{includeName:t=!1}={}){return e?e.map(r=>zk(r,{includeName:t})).join(t?", ":","):""}function zk(e,{includeName:t}){return e.type.startsWith("tuple")?`(${Bi(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}var dn=P(()=>{Me()});var Xm,Di,Vs,ir,Qm,eu,tu,ru,Ui,Gs,nu,qs,zi,kr,Ks,ou,su,au,Er,Lr,iu,cu,Ws,Ym,Me=P(()=>{dn();Xt();K();Xm=class extends w{constructor({docsPath:t}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(`
5
+ `+s),e.push(o+"m+"+mm.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=ZS()+t+" "+e[0]}function ZS(){return Je.inspectOpts.hideDate?"":new Date().toISOString()+" "}function YS(...e){return process.stderr.write(cm.formatWithOptions(Je.inspectOpts,...e)+`
6
+ `)}function XS(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function QS(){return process.env.DEBUG}function ek(e){e.inspectOpts={};let t=Object.keys(Je.inspectOpts);for(let r=0;r<t.length;r++)e.inspectOpts[t[r]]=Je.inspectOpts[t[r]]}mm.exports=Lf()(Je);var{formatters:bh}=mm.exports;bh.o=function(e){return this.inspectOpts.colors=this.useColors,cm.inspect(e,this.inspectOpts).split(`
7
+ `).map(t=>t.trim()).join(" ")};bh.O=function(e){return this.inspectOpts.colors=this.useColors,cm.inspect(e,this.inspectOpts)}});var vh=Yt((iM,Bf)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?Bf.exports=yh():Bf.exports=xh()});var Df,Ch=P(()=>{Df="2.38.6"});function Sh(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?Sh(e.cause,t):t?null:e}var Uf,w,K=P(()=>{Ch();Uf={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${Df}`},w=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,s=Uf.getDocsUrl?.({...r,docsPath:o}),a=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...s?[`Docs: ${s}`]:[],...n?[`Details: ${n}`]:[],...Uf.version?[`Version: ${Uf.version}`]:[]].join(`
8
+ `);super(a,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=o,this.metaMessages=r.metaMessages,this.name=r.name??this.name,this.shortMessage=t,this.version=Df}walk(t){return Sh(this,t)}}});var bs,um,pm,lm,Si=P(()=>{K();bs=class extends w{constructor({max:t,min:r,signed:n,size:o,value:s}){super(`Number "${s}" is not in safe ${o?`${o*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${t?`(${r} to ${t})`:`(above ${r})`}`,{name:"IntegerOutOfRangeError"})}},um=class extends w{constructor(t){super(`Bytes value "${t}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}},pm=class extends w{constructor(t){super(`Hex value "${t}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:"InvalidHexBooleanError"})}},lm=class extends w{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed ${r} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}});function xe(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}var Ut=P(()=>{});function ne(e){return xe(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var Xt=P(()=>{Ut()});function Ze(e,{dir:t="left"}={}){let r=typeof e=="string"?e.replace("0x",""):e,n=0;for(let o=0;o<r.length-1&&r[t==="left"?o:r.length-o-1].toString()==="0";o++)n++;return r=t==="left"?r.slice(n):r.slice(0,r.length-n),typeof e=="string"?(r.length===1&&t==="right"&&(r=`${r}0`),`0x${r.length%2===1?`0${r}`:r}`):r}var $o=P(()=>{});var ki,Ei,_i,fm=P(()=>{K();ki=class extends w{constructor({offset:t,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}},Ei=class extends w{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${t}) exceeds padding size (${r}).`,{name:"SizeExceedsPaddingSizeError"})}},_i=class extends w{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} is expected to be ${r} ${n} long, but is ${t} ${n} long.`,{name:"InvalidBytesLengthError"})}}});function On(e,{dir:t,size:r=32}={}){return typeof e=="string"?mn(e,{dir:t,size:r}):tk(e,{dir:t,size:r})}function mn(e,{dir:t,size:r=32}={}){if(r===null)return e;let n=e.replace("0x","");if(n.length>r*2)throw new Ei({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function tk(e,{dir:t,size:r=32}={}){if(r===null)return e;if(e.length>r)throw new Ei({size:e.length,targetSize:r,type:"bytes"});let n=new Uint8Array(r);for(let o=0;o<r;o++){let s=t==="right";n[s?o:r-o-1]=e[s?o:e.length-o-1]}return n}var dm=P(()=>{fm()});function ye(e,t={}){return typeof e=="number"||typeof e=="bigint"?E(e,t):typeof e=="string"?xr(e,t):typeof e=="boolean"?gm(e,t):oe(e,t)}function gm(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?(_t(r,{size:t.size}),On(r,{size:t.size})):r}function oe(e,t={}){let r="";for(let o=0;o<e.length;o++)r+=rk[e[o]];let n=`0x${r}`;return typeof t.size=="number"?(_t(n,{size:t.size}),On(n,{dir:"right",size:t.size})):n}function E(e,t={}){let{signed:r,size:n}=t,o=BigInt(e),s;n?r?s=(1n<<BigInt(n)*8n-1n)-1n:s=2n**(BigInt(n)*8n)-1n:typeof e=="number"&&(s=BigInt(Number.MAX_SAFE_INTEGER));let a=typeof s=="bigint"&&r?-s-1n:0;if(s&&o>s||o<a){let c=typeof e=="bigint"?"n":"";throw new bs({max:s?`${s}${c}`:void 0,min:`${a}${c}`,signed:r,size:n,value:`${e}${c}`})}let i=`0x${(r&&o<0?(1n<<BigInt(n*8))+BigInt(o):o).toString(16)}`;return n?On(i,{size:n}):i}function xr(e,t={}){let r=nk.encode(e);return oe(r,t)}var rk,nk,D=P(()=>{Si();dm();Ge();rk=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));nk=new TextEncoder});function Qt(e,t={}){return typeof e=="number"||typeof e=="bigint"?ak(e,t):typeof e=="boolean"?sk(e,t):xe(e)?qe(e,t):vr(e,t)}function sk(e,t={}){let r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?(_t(r,{size:t.size}),On(r,{size:t.size})):r}function kh(e){if(e>=un.zero&&e<=un.nine)return e-un.zero;if(e>=un.A&&e<=un.F)return e-(un.A-10);if(e>=un.a&&e<=un.f)return e-(un.a-10)}function qe(e,t={}){let r=e;t.size&&(_t(r,{size:t.size}),r=On(r,{dir:"right",size:t.size}));let n=r.slice(2);n.length%2&&(n=`0${n}`);let o=n.length/2,s=new Uint8Array(o);for(let a=0,i=0;a<o;a++){let c=kh(n.charCodeAt(i++)),m=kh(n.charCodeAt(i++));if(c===void 0||m===void 0)throw new w(`Invalid byte sequence ("${n[i-2]}${n[i-1]}" in "${n}").`);s[a]=c*16+m}return s}function ak(e,t){let r=E(e,t);return qe(r)}function vr(e,t={}){let r=ok.encode(e);return typeof t.size=="number"?(_t(r,{size:t.size}),On(r,{dir:"right",size:t.size})):r}var ok,un,Ye=P(()=>{K();Ut();dm();Ge();D();ok=new TextEncoder;un={zero:48,nine:57,A:65,F:70,a:97,f:102}});function _t(e,{size:t}){if(ne(e)>t)throw new lm({givenSize:ne(e),maxSize:t})}function be(e,t={}){let{signed:r}=t;t.size&&_t(e,{size:t.size});let n=BigInt(e);if(!r)return n;let o=(e.length-2)/2,s=(1n<<BigInt(o)*8n-1n)-1n;return n<=s?n:n-BigInt(`0x${"f".padStart(o*2,"f")}`)-1n}function zf(e,t={}){let r=e;if(t.size&&(_t(r,{size:t.size}),r=Ze(r)),Ze(r)==="0x00")return!1;if(Ze(r)==="0x01")return!0;throw new pm(r)}function Ae(e,t={}){return Number(be(e,t))}var Ge=P(()=>{Si();Xt();$o()});function xs(e,t){return({exclude:r,format:n})=>({exclude:r,format:(o,s)=>{let a=t(o,s);if(r)for(let i of r)delete a[i];return{...a,...n(o,s)}},type:e})}var hm=P(()=>{});function It(e,t){let r={};return typeof e.authorizationList<"u"&&(r.authorizationList=mk(e.authorizationList)),typeof e.accessList<"u"&&(r.accessList=e.accessList),typeof e.blobVersionedHashes<"u"&&(r.blobVersionedHashes=e.blobVersionedHashes),typeof e.blobs<"u"&&(typeof e.blobs[0]!="string"?r.blobs=e.blobs.map(n=>oe(n)):r.blobs=e.blobs),typeof e.data<"u"&&(r.data=e.data),e.account&&(r.from=e.account.address),typeof e.from<"u"&&(r.from=e.from),typeof e.gas<"u"&&(r.gas=E(e.gas)),typeof e.gasPrice<"u"&&(r.gasPrice=E(e.gasPrice)),typeof e.maxFeePerBlobGas<"u"&&(r.maxFeePerBlobGas=E(e.maxFeePerBlobGas)),typeof e.maxFeePerGas<"u"&&(r.maxFeePerGas=E(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(r.maxPriorityFeePerGas=E(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(r.nonce=E(e.nonce)),typeof e.to<"u"&&(r.to=e.to),typeof e.type<"u"&&(r.type=ck[e.type]),typeof e.value<"u"&&(r.value=E(e.value)),r}function mk(e){return e.map(t=>({address:t.address,r:t.r?E(BigInt(t.r)):t.r,s:t.s?E(BigInt(t.s)):t.s,chainId:E(t.chainId),nonce:E(t.nonce),...typeof t.yParity<"u"?{yParity:E(t.yParity)}:{},...typeof t.v<"u"&&typeof t.yParity>"u"?{v:E(t.v)}:{}}))}var ck,jn=P(()=>{D();ck={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"}});var XM,QM,eF,tF,rF,nF,oF,sF,aF,iF,cF,mF,uF,pF,lF,fF,dF,gF,hF,yF,bF,xF,vF,wF,CF,SF,kF,EF,_F,IF,PF,AF,TF,$F,RF,MF,FF,NF,LF,BF,DF,UF,zF,OF,jF,HF,VF,GF,qF,KF,WF,JF,ZF,YF,XF,QF,eN,tN,rN,nN,oN,sN,aN,iN,cN,mN,uN,pN,lN,fN,dN,gN,hN,yN,bN,xN,vN,wN,CN,SN,kN,EN,_N,IN,PN,AN,TN,$N,RN,MN,FN,NN,LN,BN,DN,vs,Hf=P(()=>{XM=2n**(8n-1n)-1n,QM=2n**(16n-1n)-1n,eF=2n**(24n-1n)-1n,tF=2n**(32n-1n)-1n,rF=2n**(40n-1n)-1n,nF=2n**(48n-1n)-1n,oF=2n**(56n-1n)-1n,sF=2n**(64n-1n)-1n,aF=2n**(72n-1n)-1n,iF=2n**(80n-1n)-1n,cF=2n**(88n-1n)-1n,mF=2n**(96n-1n)-1n,uF=2n**(104n-1n)-1n,pF=2n**(112n-1n)-1n,lF=2n**(120n-1n)-1n,fF=2n**(128n-1n)-1n,dF=2n**(136n-1n)-1n,gF=2n**(144n-1n)-1n,hF=2n**(152n-1n)-1n,yF=2n**(160n-1n)-1n,bF=2n**(168n-1n)-1n,xF=2n**(176n-1n)-1n,vF=2n**(184n-1n)-1n,wF=2n**(192n-1n)-1n,CF=2n**(200n-1n)-1n,SF=2n**(208n-1n)-1n,kF=2n**(216n-1n)-1n,EF=2n**(224n-1n)-1n,_F=2n**(232n-1n)-1n,IF=2n**(240n-1n)-1n,PF=2n**(248n-1n)-1n,AF=2n**(256n-1n)-1n,TF=-(2n**(8n-1n)),$F=-(2n**(16n-1n)),RF=-(2n**(24n-1n)),MF=-(2n**(32n-1n)),FF=-(2n**(40n-1n)),NF=-(2n**(48n-1n)),LF=-(2n**(56n-1n)),BF=-(2n**(64n-1n)),DF=-(2n**(72n-1n)),UF=-(2n**(80n-1n)),zF=-(2n**(88n-1n)),OF=-(2n**(96n-1n)),jF=-(2n**(104n-1n)),HF=-(2n**(112n-1n)),VF=-(2n**(120n-1n)),GF=-(2n**(128n-1n)),qF=-(2n**(136n-1n)),KF=-(2n**(144n-1n)),WF=-(2n**(152n-1n)),JF=-(2n**(160n-1n)),ZF=-(2n**(168n-1n)),YF=-(2n**(176n-1n)),XF=-(2n**(184n-1n)),QF=-(2n**(192n-1n)),eN=-(2n**(200n-1n)),tN=-(2n**(208n-1n)),rN=-(2n**(216n-1n)),nN=-(2n**(224n-1n)),oN=-(2n**(232n-1n)),sN=-(2n**(240n-1n)),aN=-(2n**(248n-1n)),iN=-(2n**(256n-1n)),cN=2n**8n-1n,mN=2n**16n-1n,uN=2n**24n-1n,pN=2n**32n-1n,lN=2n**40n-1n,fN=2n**48n-1n,dN=2n**56n-1n,gN=2n**64n-1n,hN=2n**72n-1n,yN=2n**80n-1n,bN=2n**88n-1n,xN=2n**96n-1n,vN=2n**104n-1n,wN=2n**112n-1n,CN=2n**120n-1n,SN=2n**128n-1n,kN=2n**136n-1n,EN=2n**144n-1n,_N=2n**152n-1n,IN=2n**160n-1n,PN=2n**168n-1n,AN=2n**176n-1n,TN=2n**184n-1n,$N=2n**192n-1n,RN=2n**200n-1n,MN=2n**208n-1n,FN=2n**216n-1n,NN=2n**224n-1n,LN=2n**232n-1n,BN=2n**240n-1n,DN=2n**248n-1n,vs=2n**256n-1n});function Oe(e){return typeof e[0]=="string"?Xe(e):uk(e)}function uk(e){let t=0;for(let o of e)t+=o.length;let r=new Uint8Array(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}function Xe(e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}var yt=P(()=>{});var Ai,ws,ym,Vf=P(()=>{K();Ai=class extends w{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}},ws=class extends w{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}},ym=class extends w{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}});function Cs(e,{recursiveReadLimit:t=8192}={}){let r=Object.create(pk);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}var pk,bm=P(()=>{Vf();pk={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 ym({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new ws({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Ai({offset:e});let t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new Ai({offset:e});let t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){let r=t??this.position;return this.assertPosition(r+e-1),this.bytes.subarray(r,r+e)},inspectUint8(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){let t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){let t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){let t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();let r=this.inspectBytes(e);return this.position+=t??e,r},readUint8(){this.assertReadLimit(),this._touch();let e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();let e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();let e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();let e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){let t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}}});var xm,Th,vm=P(()=>{xm={gwei:9,wei:18},Th={ether:-9,wei:9}});function wm(e,t){let r=e.toString(),n=r.startsWith("-");n&&(r=r.slice(1)),r=r.padStart(t,"0");let[o,s]=[r.slice(0,r.length-t),r.slice(r.length-t)];return s=s.replace(/(0+)$/,""),`${n?"-":""}${o||"0"}${s?`.${s}`:""}`}var Gf=P(()=>{});function Ss(e,t="wei"){return wm(e,xm[t])}var Cm=P(()=>{vm();Gf()});function Ke(e,t="wei"){return wm(e,Th[t])}var ks=P(()=>{vm();Gf()});function Mo(e){let t=Object.entries(e).map(([n,o])=>o===void 0||o===!1?null:[n,o]).filter(Boolean),r=t.reduce((n,[o])=>Math.max(n,o.length),0);return t.map(([n,o])=>` ${`${n}:`.padEnd(r+1)} ${o}`).join(`
9
+ `)}var Sm,km,Em,_m,Im,Es,_s,Is,Pm,zt=P(()=>{Cm();ks();K();Sm=class extends w{constructor(){super(["Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.","Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others."].join(`
10
+ `),{name:"FeeConflictError"})}},km=class extends w{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}},Em=class extends w{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Mo(t),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}},_m=class extends w{constructor({storageKey:t}){super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}},Im=class extends w{constructor(t,{account:r,docsPath:n,chain:o,data:s,gas:a,gasPrice:i,maxFeePerGas:c,maxPriorityFeePerGas:m,nonce:u,to:p,value:f}){let d=Mo({chain:o&&`${o?.name} (id: ${o?.id})`,from:r?.address,to:p,value:typeof f<"u"&&`${Ss(f)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:s,gas:a,gasPrice:typeof i<"u"&&`${Ke(i)} gwei`,maxFeePerGas:typeof c<"u"&&`${Ke(c)} gwei`,maxPriorityFeePerGas:typeof m<"u"&&`${Ke(m)} gwei`,nonce:u});super(t.shortMessage,{cause:t,docsPath:n,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Request Arguments:",d].filter(Boolean),name:"TransactionExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}},Es=class extends w{constructor({blockHash:t,blockNumber:r,blockTag:n,hash:o,index:s}){let a="Transaction";n&&s!==void 0&&(a=`Transaction at block time "${n}" at index "${s}"`),t&&s!==void 0&&(a=`Transaction at block hash "${t}" at index "${s}"`),r&&s!==void 0&&(a=`Transaction at block number "${r}" at index "${s}"`),o&&(a=`Transaction with hash "${o}"`),super(`${a} could not be found.`,{name:"TransactionNotFoundError"})}},_s=class extends w{constructor({hash:t}){super(`Transaction receipt with hash "${t}" could not be found. The Transaction may not be processed on a block yet.`,{name:"TransactionReceiptNotFoundError"})}},Is=class extends w{constructor({receipt:t}){super(`Transaction with hash "${t.transactionHash}" reverted.`,{metaMessages:['The receipt marked the transaction as "reverted". This could mean that the function on the contract you are trying to call threw an error.'," ","You can attempt to extract the revert reason by:","- calling the `simulateContract` or `simulateCalls` Action with the `abi` and `functionName` of the contract","- using the `call` Action with raw `data`"],name:"TransactionReceiptRevertedError"}),Object.defineProperty(this,"receipt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.receipt=t}},Pm=class extends w{constructor({hash:t}){super(`Timed out while waiting for transaction with hash "${t}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}});function dk(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function qf(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Fo(e,...t){if(!dk(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Rs(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Am(e,t){Fo(e);let r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function Rh(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Hn(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Tm(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Cr(e,t){return e<<32-t|e>>>t}function hk(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function yk(e){for(let t=0;t<e.length;t++)e[t]=hk(e[t]);return e}function bk(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Ti(e){return typeof e=="string"&&(e=bk(e)),Fo(e),e}function $m(e){let t=n=>e().update(Ti(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}var gk,Kf,$s,Rm=P(()=>{gk=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;Kf=gk?e=>e:yk;$s=class{}});function vk(e,t=!1){return t?{h:Number(e&Fm),l:Number(e>>Nh&Fm)}:{h:Number(e>>Nh&Fm)|0,l:Number(e&Fm)|0}}function Lh(e,t=!1){let r=e.length,n=new Uint32Array(r),o=new Uint32Array(r);for(let s=0;s<r;s++){let{h:a,l:i}=vk(e[s],t);[n[s],o[s]]=[a,i]}return[n,o]}var Fm,Nh,Bh,Dh,Uh,zh,Oh=P(()=>{Fm=BigInt(4294967295),Nh=BigInt(32);Bh=(e,t,r)=>e<<r|t>>>32-r,Dh=(e,t,r)=>t<<r|e>>>32-r,Uh=(e,t,r)=>t<<r-32|e>>>64-r,zh=(e,t,r)=>e<<r-32|t>>>64-r});var de,Sr=P(()=>{K();de=class extends w{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}});var No,Om,jm,$i,Lo,Ri=P(()=>{K();No=class extends w{constructor({blockNumber:t,chain:r,contract:n}){super(`Chain "${r.name}" does not support contract "${n.name}".`,{metaMessages:["This could be due to any of the following:",...t&&n.blockCreated&&n.blockCreated>t?[`- The contract "${n.name}" was not deployed until block ${n.blockCreated} (current block ${t}).`]:[`- The chain does not have the contract "${n.name}" configured.`]],name:"ChainDoesNotSupportContract"})}},Om=class extends w{constructor({chain:t,currentChainId:r}){super(`The current chain of the wallet (id: ${r}) does not match the target chain for the transaction (id: ${t.id} \u2013 ${t.name}).`,{metaMessages:[`Current Chain ID: ${r}`,`Expected Chain ID: ${t.id} \u2013 ${t.name}`],name:"ChainMismatchError"})}},jm=class extends w{constructor(){super(["No chain was provided to the request.","Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join(`
11
+ `),{name:"ChainNotFoundError"})}},$i=class extends w{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}},Lo=class extends w{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}});var ln,er,Fs,Ns,Ls,Bs,Ds,Us,zs,Os,Nr,tr,Gn=P(()=>{ks();K();ln=class extends w{constructor({cause:t,message:r}={}){let n=r?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${n?`with reason: ${n}`:"for an unknown reason"}.`,{cause:t,name:"ExecutionRevertedError"})}};Object.defineProperty(ln,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(ln,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});er=class extends w{constructor({cause:t,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${Ke(r)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}};Object.defineProperty(er,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});Fs=class extends w{constructor({cause:t,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${Ke(r)}`:""} gwei) cannot be lower than the block base fee.`,{cause:t,name:"FeeCapTooLowError"})}};Object.defineProperty(Fs,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});Ns=class extends w{constructor({cause:t,nonce:r}={}){super(`Nonce provided for the transaction ${r?`(${r}) `:""}is higher than the next one expected.`,{cause:t,name:"NonceTooHighError"})}};Object.defineProperty(Ns,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});Ls=class extends w{constructor({cause:t,nonce:r}={}){super([`Nonce provided for the transaction ${r?`(${r}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
12
+ `),{cause:t,name:"NonceTooLowError"})}};Object.defineProperty(Ls,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});Bs=class extends w{constructor({cause:t,nonce:r}={}){super(`Nonce provided for the transaction ${r?`(${r}) `:""}exceeds the maximum allowed nonce.`,{cause:t,name:"NonceMaxValueError"})}};Object.defineProperty(Bs,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});Ds=class extends w{constructor({cause:t}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
13
+ `),{cause:t,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}};Object.defineProperty(Ds,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});Us=class extends w{constructor({cause:t,gas:r}={}){super(`The amount of gas ${r?`(${r}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:t,name:"IntrinsicGasTooHighError"})}};Object.defineProperty(Us,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});zs=class extends w{constructor({cause:t,gas:r}={}){super(`The amount of gas ${r?`(${r}) `:""}provided for the transaction is too low.`,{cause:t,name:"IntrinsicGasTooLowError"})}};Object.defineProperty(zs,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});Os=class extends w{constructor({cause:t}){super("The transaction type is not supported for this chain.",{cause:t,name:"TransactionTypeNotSupportedError"})}};Object.defineProperty(Os,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});Nr=class extends w{constructor({cause:t,maxPriorityFeePerGas:r,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${r?` = ${Ke(r)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${Ke(n)} gwei`:""}).`].join(`
14
+ `),{cause:t,name:"TipAboveFeeCapError"})}};Object.defineProperty(Nr,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});tr=class extends w{constructor({cause:t}){super(`An error occurred while executing: ${t?.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}});var rr,js=P(()=>{rr=class extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){let r=super.get(t);return super.has(t)&&r!==void 0&&(this.delete(t),super.set(t,r)),r}set(t,r){if(super.set(t,r),this.maxSize&&this.size>this.maxSize){let n=this.keys().next().value;n&&this.delete(n)}return this}}});function $k(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let a=0;a<10;a++)r[a]=e[a]^e[a+10]^e[a+20]^e[a+30]^e[a+40];for(let a=0;a<10;a+=2){let i=(a+8)%10,c=(a+2)%10,m=r[c],u=r[c+1],p=Kh(m,u,1)^r[i],f=Wh(m,u,1)^r[i+1];for(let d=0;d<50;d+=10)e[a+d]^=p,e[a+d+1]^=f}let o=e[2],s=e[3];for(let a=0;a<24;a++){let i=Zh[a],c=Kh(o,s,i),m=Wh(o,s,i),u=Jh[a];o=e[u],s=e[u+1],e[u]=c,e[u+1]=m}for(let a=0;a<50;a+=10){for(let i=0;i<10;i++)r[i]=e[a+i];for(let i=0;i<10;i++)e[a+i]^=~r[(i+2)%10]&r[(i+4)%10]}e[0]^=Ak[n],e[1]^=Tk[n]}Hn(r)}var kk,Mi,Ek,_k,Ik,Pk,Jh,Zh,Yh,Xh,Ak,Tk,Kh,Wh,Wf,Rk,Hm,Jf=P(()=>{Oh();Rm();kk=BigInt(0),Mi=BigInt(1),Ek=BigInt(2),_k=BigInt(7),Ik=BigInt(256),Pk=BigInt(113),Jh=[],Zh=[],Yh=[];for(let e=0,t=Mi,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],Jh.push(2*(5*n+r)),Zh.push((e+1)*(e+2)/2%64);let o=kk;for(let s=0;s<7;s++)t=(t<<Mi^(t>>_k)*Pk)%Ik,t&Ek&&(o^=Mi<<(Mi<<BigInt(s))-Mi);Yh.push(o)}Xh=Lh(Yh,!0),Ak=Xh[0],Tk=Xh[1],Kh=(e,t,r)=>r>32?Uh(e,t,r):Bh(e,t,r),Wh=(e,t,r)=>r>32?zh(e,t,r):Dh(e,t,r);Wf=class e extends $s{constructor(t,r,n,o=!1,s=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=o,this.rounds=s,qf(n),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Rh(this.state)}clone(){return this._cloneInto()}keccak(){Kf(this.state32),$k(this.state32,this.rounds),Kf(this.state32),this.posOut=0,this.pos=0}update(t){Rs(this),t=Ti(t),Fo(t);let{blockLen:r,state:n}=this,o=t.length;for(let s=0;s<o;){let a=Math.min(r-this.pos,o-s);for(let i=0;i<a;i++)n[this.pos++]^=t[s++];this.pos===r&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:t,suffix:r,pos:n,blockLen:o}=this;t[n]^=r,(r&128)!==0&&n===o-1&&this.keccak(),t[o-1]^=128,this.keccak()}writeInto(t){Rs(this,!1),Fo(t),this.finish();let r=this.state,{blockLen:n}=this;for(let o=0,s=t.length;o<s;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,s-o);t.set(r.subarray(this.posOut,this.posOut+a),o),this.posOut+=a,o+=a}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return qf(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Am(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,Hn(this.state)}_cloneInto(t){let{blockLen:r,suffix:n,outputLen:o,rounds:s,enableXOF:a}=this;return t||(t=new e(r,n,o,a,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=o,t.enableXOF=a,t.destroyed=this.destroyed,t}},Rk=(e,t,r)=>$m(()=>new Wf(t,e,r)),Hm=Rk(1,136,256/8)});function ge(e,t){let r=t||"hex",n=Hm(xe(e,{strict:!1})?Qt(e):e);return r==="bytes"?n:ye(n)}var nr=P(()=>{Jf();Ut();Ye();D()});function fn(e,t){if(Zf.has(`${e}.${t}`))return Zf.get(`${e}.${t}`);let r=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),n=ge(vr(r),"bytes"),o=(t?r.substring(`${t}0x`.length):r).split("");for(let a=0;a<40;a+=2)n[a>>1]>>4>=8&&o[a]&&(o[a]=o[a].toUpperCase()),(n[a>>1]&15)>=8&&o[a+1]&&(o[a+1]=o[a+1].toUpperCase());let s=`0x${o.join("")}`;return Zf.set(`${e}.${t}`,s),s}function Hs(e,t){if(!ie(e,{strict:!1}))throw new de({address:e});return fn(e,t)}var Zf,qn=P(()=>{Sr();Ye();nr();js();Ot();Zf=new rr(8192)});function ie(e,t){let{strict:r=!0}=t??{},n=`${e}.${r}`;if(Yf.has(n))return Yf.get(n);let o=Mk.test(e)?e.toLowerCase()===e?!0:r?fn(e)===e:!0:!1;return Yf.set(n,o),o}var Mk,Yf,Ot=P(()=>{js();qn();Mk=/^0x[a-fA-F0-9]{40}$/,Yf=new rr(8192)});function or(e,t,r,{strict:n}={}){return xe(e,{strict:!1})?Vm(e,t,r,{strict:n}):Xf(e,t,r,{strict:n})}function Qh(e,t){if(typeof t=="number"&&t>0&&t>ne(e)-1)throw new ki({offset:t,position:"start",size:ne(e)})}function ey(e,t,r){if(typeof t=="number"&&typeof r=="number"&&ne(e)!==r-t)throw new ki({offset:r,position:"end",size:ne(e)})}function Xf(e,t,r,{strict:n}={}){Qh(e,t);let o=e.slice(t,r);return n&&ey(o,t,r),o}function Vm(e,t,r,{strict:n}={}){Qh(e,t);let o=`0x${e.replace("0x","").slice((t??0)*2,(r??e.length)*2)}`;return n&&ey(o,t,r),o}var Kn=P(()=>{fm();Ut();Xt()});function sr({blockNumber:e,chain:t,contract:r}){let n=t?.contracts?.[r];if(!n)throw new No({chain:t,contract:{name:r}});if(e&&n.blockCreated&&n.blockCreated>e)throw new No({blockNumber:e,chain:t,contract:{name:r,blockCreated:n.blockCreated}});return n.address}var Bo=P(()=>{Ri()});function W(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}var Re=P(()=>{});var cy,Jm,my,Zm=P(()=>{cy={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},Jm={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},my={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"}});function We(e,{includeName:t=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new Ym(e.type);return`${e.name}(${Bi(e.inputs,{includeName:t})})`}function Bi(e,{includeName:t=!1}={}){return e?e.map(r=>Vk(r,{includeName:t})).join(t?", ":","):""}function Vk(e,{includeName:t}){return e.type.startsWith("tuple")?`(${Bi(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}var dn=P(()=>{Me()});var Xm,Di,Gs,ir,Qm,eu,tu,ru,Ui,qs,nu,Ks,zi,kr,Ws,ou,su,au,Er,Lr,iu,cu,Js,Ym,Me=P(()=>{dn();Xt();K();Xm=class extends w{constructor({docsPath:t}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(`
15
15
  `),{docsPath:t,name:"AbiConstructorNotFoundError"})}},Di=class extends w{constructor({docsPath:t}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(`
16
- `),{docsPath:t,name:"AbiConstructorParamsNotFoundError"})}},Vs=class extends w{constructor({data:t,params:r,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join(`
16
+ `),{docsPath:t,name:"AbiConstructorParamsNotFoundError"})}},Gs=class extends w{constructor({data:t,params:r,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join(`
17
17
  `),{metaMessages:[`Params: (${Bi(r,{includeName:!0})})`,`Data: ${t} (${n} bytes)`],name:"AbiDecodingDataSizeTooSmallError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t,this.params=r,this.size=n}},ir=class extends w{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}},Qm=class extends w{constructor({expectedLength:t,givenLength:r,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${t}`,`Given length: ${r}`].join(`
18
18
  `),{name:"AbiEncodingArrayLengthMismatchError"})}},eu=class extends w{constructor({expectedSize:t,value:r}){super(`Size of bytes "${r}" (bytes${ne(r)}) does not match expected size (bytes${t}).`,{name:"AbiEncodingBytesSizeMismatchError"})}},tu=class extends w{constructor({expectedLength:t,givenLength:r}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${t}`,`Given length (values): ${r}`].join(`
19
19
  `),{name:"AbiEncodingLengthMismatchError"})}},ru=class extends w{constructor(t,{docsPath:r}){super([`Arguments (\`args\`) were provided to "${t}", but "${t}" on the ABI does not contain any parameters (\`inputs\`).`,"Cannot encode error result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the inputs exist on it."].join(`
20
20
  `),{docsPath:r,name:"AbiErrorInputsNotFoundError"})}},Ui=class extends w{constructor(t,{docsPath:r}={}){super([`Error ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it."].join(`
21
- `),{docsPath:r,name:"AbiErrorNotFoundError"})}},Gs=class extends w{constructor(t,{docsPath:r}){super([`Encoded error signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${t}.`].join(`
22
- `),{docsPath:r,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=t}},nu=class extends w{constructor({docsPath:t}){super("Cannot extract event signature from empty topics.",{docsPath:t,name:"AbiEventSignatureEmptyTopicsError"})}},qs=class extends w{constructor(t,{docsPath:r}){super([`Encoded event signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${t}.`].join(`
21
+ `),{docsPath:r,name:"AbiErrorNotFoundError"})}},qs=class extends w{constructor(t,{docsPath:r}){super([`Encoded error signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${t}.`].join(`
22
+ `),{docsPath:r,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=t}},nu=class extends w{constructor({docsPath:t}){super("Cannot extract event signature from empty topics.",{docsPath:t,name:"AbiEventSignatureEmptyTopicsError"})}},Ks=class extends w{constructor(t,{docsPath:r}){super([`Encoded event signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${t}.`].join(`
23
23
  `),{docsPath:r,name:"AbiEventSignatureNotFoundError"})}},zi=class extends w{constructor(t,{docsPath:r}={}){super([`Event ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it."].join(`
24
24
  `),{docsPath:r,name:"AbiEventNotFoundError"})}},kr=class extends w{constructor(t,{docsPath:r}={}){super([`Function ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(`
25
- `),{docsPath:r,name:"AbiFunctionNotFoundError"})}},Ks=class extends w{constructor(t,{docsPath:r}){super([`Function "${t}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(`
25
+ `),{docsPath:r,name:"AbiFunctionNotFoundError"})}},Ws=class extends w{constructor(t,{docsPath:r}){super([`Function "${t}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(`
26
26
  `),{docsPath:r,name:"AbiFunctionOutputsNotFoundError"})}},ou=class extends w{constructor(t,{docsPath:r}){super([`Encoded function signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${t}.`].join(`
27
27
  `),{docsPath:r,name:"AbiFunctionSignatureNotFoundError"})}},su=class extends w{constructor(t,r){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${t.type}\` in \`${We(t.abiItem)}\`, and`,`\`${r.type}\` in \`${We(r.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}},au=class extends w{constructor({expectedSize:t,givenSize:r}){super(`Expected bytes${t}, got bytes${r}.`,{name:"BytesSizeMismatchError"})}},Er=class extends w{constructor({abiItem:t,data:r,params:n,size:o}){super([`Data size of ${o} bytes is too small for non-indexed event parameters.`].join(`
28
28
  `),{metaMessages:[`Params: (${Bi(n,{includeName:!0})})`,`Data: ${r} (${o} bytes)`],name:"DecodeLogDataMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=t,this.data=r,this.params=n,this.size=o}},Lr=class extends w{constructor({abiItem:t,param:r}){super([`Expected a topic for indexed event parameter${r.name?` "${r.name}"`:""} on event "${We(t,{includeName:!0})}".`].join(`
29
29
  `),{name:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=t}},iu=class extends w{constructor(t,{docsPath:r}){super([`Type "${t}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
30
30
  `),{docsPath:r,name:"InvalidAbiEncodingType"})}},cu=class extends w{constructor(t,{docsPath:r}){super([`Type "${t}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(`
31
- `),{docsPath:r,name:"InvalidAbiDecodingType"})}},Ws=class extends w{constructor(t){super([`Value "${t}" is not a valid array.`].join(`
31
+ `),{docsPath:r,name:"InvalidAbiDecodingType"})}},Js=class extends w{constructor(t){super([`Value "${t}" is not a valid array.`].join(`
32
32
  `),{name:"InvalidArrayError"})}},Ym=class extends w{constructor(t){super([`"${t}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
33
- `),{name:"InvalidDefinitionTypeError"})}}});function my(e){return Ok(e)}var Ok,uy=P(()=>{Ye();nr();Ok=e=>ge(Qt(e))});var py,ly=P(()=>{py="1.1.0"});var De,Js=P(()=>{ly();De=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,s=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...o?[`Docs: https://abitype.dev${o}`]:[],...n?[`Details: ${n}`]:[],`Version: abitype@${py}`].join(`
34
- `);super(s),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),r.cause&&(this.cause=r.cause),this.details=n,this.docsPath=o,this.metaMessages=r.metaMessages,this.shortMessage=t}}});function jt(e,t){return e.exec(t)?.groups}var ed,td,mu,Oi=P(()=>{ed=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,td=/^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)?$/,mu=/^\(.+?\).*?$/});function uu(e){let t=e.type;if(fy.test(e.type)&&"components"in e){t="(";let r=e.components.length;for(let o=0;o<r;o++){let s=e.components[o];t+=uu(s),o<r-1&&(t+=", ")}let n=jt(fy,e.type);return t+=`)${n?.array??""}`,uu({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}var fy,dy=P(()=>{Oi();fy=/^tuple(?<array>(\[(\d*)\])*)$/});function gn(e){let t="",r=e.length;for(let n=0;n<r;n++){let o=e[n];t+=uu(o),n!==r-1&&(t+=", ")}return t}var rd=P(()=>{dy()});function Bo(e){return e.type==="function"?`function ${e.name}(${gn(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${gn(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${gn(e.inputs)})`:e.type==="error"?`error ${e.name}(${gn(e.inputs)})`:e.type==="constructor"?`constructor(${gn(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}var gy=P(()=>{rd()});function yy(e){return hy.test(e)}function by(e){return jt(hy,e)}function vy(e){return xy.test(e)}function wy(e){return jt(xy,e)}function Sy(e){return Cy.test(e)}function ky(e){return jt(Cy,e)}function Kn(e){return Ey.test(e)}function _y(e){return jt(Ey,e)}function Py(e){return Iy.test(e)}function Ay(e){return jt(Iy,e)}function $y(e){return Ty.test(e)}function Ry(e){return jt(Ty,e)}function My(e){return jk.test(e)}var hy,xy,Cy,Ey,Iy,Ty,jk,nd,Fy,pu,Zs=P(()=>{Oi();hy=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;xy=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;Cy=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;Ey=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;Iy=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;Ty=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;jk=/^receive\(\) external payable$/;nd=new Set(["memory","indexed","storage","calldata"]),Fy=new Set(["indexed"]),pu=new Set(["calldata","memory","storage"])});var lu,fu,du,gu=P(()=>{Js();lu=class extends De{constructor({signature:t}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(t,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"})}},fu=class extends De{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}},du=class extends De{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}});var hu,yu,bu,xu,vu,wu,Cu=P(()=>{Js();hu=class extends De{constructor({params:t}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(t,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"})}},yu=class extends De{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},bu=class extends De{constructor({param:t,name:r}){super("Invalid ABI parameter.",{details:t,metaMessages:[`"${r}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}},xu=class extends De{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}},vu=class extends De{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}},wu=class extends De{constructor({abiParameter:t}){super("Invalid ABI parameter.",{details:JSON.stringify(t,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}});var Br,Su,ku,od=P(()=>{Js();Br=class extends De{constructor({signature:t,type:r}){super(`Invalid ${r} signature.`,{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}},Su=class extends De{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},ku=class extends De{constructor({signature:t}){super("Invalid struct signature.",{details:t,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}});var Eu,Ny=P(()=>{Js();Eu=class extends De{constructor({type:t}){super("Circular reference detected.",{metaMessages:[`Struct "${t}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}});var _u,Ly=P(()=>{Js();_u=class extends De{constructor({current:t,depth:r}){super("Unbalanced parentheses.",{metaMessages:[`"${t.trim()}" has too many ${r>0?"opening":"closing"} parentheses.`],details:`Depth "${r}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}});function By(e,t,r){let n="";if(r)for(let o of Object.entries(r)){if(!o)continue;let s="";for(let a of o[1])s+=`[${a.type}${a.name?`:${a.name}`:""}]`;n+=`(${o[0]}{${s}})`}return t?`${t}:${e}${n}`:e}var Iu,Dy=P(()=>{Iu=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]])});function ji(e,t={}){if(Sy(e))return Hk(e,t);if(vy(e))return Vk(e,t);if(yy(e))return Gk(e,t);if(Py(e))return qk(e,t);if($y(e))return Kk(e);if(My(e))return{type:"receive",stateMutability:"payable"};throw new Su({signature:e})}function Hk(e,t={}){let r=ky(e);if(!r)throw new Br({signature:e,type:"function"});let n=Pt(r.parameters),o=[],s=n.length;for(let i=0;i<s;i++)o.push(_r(n[i],{modifiers:pu,structs:t,type:"function"}));let a=[];if(r.returns){let i=Pt(r.returns),c=i.length;for(let m=0;m<c;m++)a.push(_r(i[m],{modifiers:pu,structs:t,type:"function"}))}return{name:r.name,type:"function",stateMutability:r.stateMutability??"nonpayable",inputs:o,outputs:a}}function Vk(e,t={}){let r=wy(e);if(!r)throw new Br({signature:e,type:"event"});let n=Pt(r.parameters),o=[],s=n.length;for(let a=0;a<s;a++)o.push(_r(n[a],{modifiers:Fy,structs:t,type:"event"}));return{name:r.name,type:"event",inputs:o}}function Gk(e,t={}){let r=by(e);if(!r)throw new Br({signature:e,type:"error"});let n=Pt(r.parameters),o=[],s=n.length;for(let a=0;a<s;a++)o.push(_r(n[a],{structs:t,type:"error"}));return{name:r.name,type:"error",inputs:o}}function qk(e,t={}){let r=Ay(e);if(!r)throw new Br({signature:e,type:"constructor"});let n=Pt(r.parameters),o=[],s=n.length;for(let a=0;a<s;a++)o.push(_r(n[a],{structs:t,type:"constructor"}));return{type:"constructor",stateMutability:r.stateMutability??"nonpayable",inputs:o}}function Kk(e){let t=Ry(e);if(!t)throw new Br({signature:e,type:"fallback"});return{type:"fallback",stateMutability:t.stateMutability??"nonpayable"}}function _r(e,t){let r=By(e,t?.type,t?.structs);if(Iu.has(r))return Iu.get(r);let n=mu.test(e),o=jt(n?Jk:Wk,e);if(!o)throw new yu({param:e});if(o.name&&Xk(o.name))throw new bu({param:e,name:o.name});let s=o.name?{name:o.name}:{},a=o.modifier==="indexed"?{indexed:!0}:{},i=t?.structs??{},c,m={};if(n){c="tuple";let p=Pt(o.type),l=[],d=p.length;for(let g=0;g<d;g++)l.push(_r(p[g],{structs:i}));m={components:l}}else if(o.type in i)c="tuple",m={components:i[o.type]};else if(Zk.test(o.type))c=`${o.type}256`;else if(o.type==="address payable")c="address";else if(c=o.type,t?.type!=="struct"&&!sd(c))throw new du({type:c});if(o.modifier){if(!t?.modifiers?.has?.(o.modifier))throw new xu({param:e,type:t?.type,modifier:o.modifier});if(pu.has(o.modifier)&&!Qk(c,!!o.array))throw new vu({param:e,type:t?.type,modifier:o.modifier})}let u={type:`${c}${o.array??""}`,...s,...a,...m};return Iu.set(r,u),u}function Pt(e,t=[],r="",n=0){let o=e.trim().length;for(let s=0;s<o;s++){let a=e[s],i=e.slice(s+1);switch(a){case",":return n===0?Pt(i,[...t,r.trim()]):Pt(i,t,`${r}${a}`,n);case"(":return Pt(i,t,`${r}${a}`,n+1);case")":return Pt(i,t,`${r}${a}`,n-1);default:return Pt(i,t,`${r}${a}`,n)}}if(r==="")return t;if(n!==0)throw new _u({current:r,depth:n});return t.push(r.trim()),t}function sd(e){return e==="address"||e==="bool"||e==="function"||e==="string"||ed.test(e)||td.test(e)}function Xk(e){return e==="address"||e==="bool"||e==="function"||e==="string"||e==="tuple"||ed.test(e)||td.test(e)||Yk.test(e)}function Qk(e,t){return t||e==="bytes"||e==="string"||e==="tuple"}var Wk,Jk,Zk,Yk,Ys=P(()=>{Oi();gu();Cu();od();Ly();Dy();Zs();Wk=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Jk=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Zk=/^u?int$/;Yk=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/});function Xs(e){let t={},r=e.length;for(let a=0;a<r;a++){let i=e[a];if(!Kn(i))continue;let c=_y(i);if(!c)throw new Br({signature:i,type:"struct"});let m=c.properties.split(";"),u=[],p=m.length;for(let l=0;l<p;l++){let g=m[l].trim();if(!g)continue;let h=_r(g,{type:"struct"});u.push(h)}if(!u.length)throw new ku({signature:i});t[c.name]=u}let n={},o=Object.entries(t),s=o.length;for(let a=0;a<s;a++){let[i,c]=o[a];n[i]=Uy(c,t)}return n}function Uy(e,t,r=new Set){let n=[],o=e.length;for(let s=0;s<o;s++){let a=e[s];if(mu.test(a.type))n.push(a);else{let c=jt(eE,a.type);if(!c?.type)throw new wu({abiParameter:a});let{array:m,type:u}=c;if(u in t){if(r.has(u))throw new Eu({type:u});n.push({...a,type:`tuple${m??""}`,components:Uy(t[u]??[],t,new Set([...r,u]))})}else if(sd(u))n.push(a);else throw new fu({type:u})}}return n}var eE,Pu=P(()=>{Oi();gu();Cu();od();Ny();Zs();Ys();eE=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/});function Au(e){let t=Xs(e),r=[],n=e.length;for(let o=0;o<n;o++){let s=e[o];Kn(s)||r.push(ji(s,t))}return r}var zy=P(()=>{Zs();Pu();Ys()});function Tu(e){let t;if(typeof e=="string")t=ji(e);else{let r=Xs(e),n=e.length;for(let o=0;o<n;o++){let s=e[o];if(!Kn(s)){t=ji(s,r);break}}}if(!t)throw new lu({signature:e});return t}var Oy=P(()=>{gu();Zs();Pu();Ys()});function $u(e){let t=[];if(typeof e=="string"){let r=Pt(e),n=r.length;for(let o=0;o<n;o++)t.push(_r(r[o],{modifiers:nd}))}else{let r=Xs(e),n=e.length;for(let o=0;o<n;o++){let s=e[o];if(Kn(s))continue;let a=Pt(s),i=a.length;for(let c=0;c<i;c++)t.push(_r(a[c],{modifiers:nd,structs:r}))}}if(t.length===0)throw new hu({params:e});return t}var jy=P(()=>{Cu();Zs();Pu();Ys();Ys()});var Hi=P(()=>{gy();rd();zy();Oy();jy()});function Vy(e){let t=!0,r="",n=0,o="",s=!1;for(let a=0;a<e.length;a++){let i=e[a];if(["(",")",","].includes(i)&&(t=!0),i==="("&&n++,i===")"&&n--,!!t){if(n===0){if(i===" "&&["event","function",""].includes(o))o="";else if(o+=i,i===")"){s=!0;break}continue}if(i===" "){e[a-1]!==","&&r!==","&&r!==",("&&(r="",t=!1);continue}o+=i,r+=i}}if(!s)throw new w("Unable to normalize signature.");return o}var Gy=P(()=>{K()});var qy,Ky=P(()=>{Hi();Gy();qy=e=>{let t=typeof e=="string"?e:Bo(e);return Vy(t)}});function Ru(e){return my(qy(e))}var ad=P(()=>{uy();Ky()});var Dr,Qs=P(()=>{qn();ad();Dr=e=>or(Ru(e),0,4)});function Wy(e,t={}){typeof t.size<"u"&&_t(e,{size:t.size});let r=oe(e,t);return be(r,t)}function Jy(e,t={}){let r=e;if(typeof t.size<"u"&&(_t(r,{size:t.size}),r=Ze(r)),r.length>1||r[0]>1)throw new um(r);return!!r[0]}function Ur(e,t={}){typeof t.size<"u"&&_t(e,{size:t.size});let r=oe(e,t);return Ae(r,t)}function Zy(e,t={}){let r=e;return typeof t.size<"u"&&(_t(r,{size:t.size}),r=Ze(r,{dir:"right"})),new TextDecoder().decode(r)}var Yy=P(()=>{Si();To();Ge();D()});var Xy,Mu,id=P(()=>{Xy=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Mu=/^(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)?$/});function bt(e,t){if(e.length!==t.length)throw new tu({expectedLength:e.length,givenLength:t.length});let r=tE({params:e,values:t}),n=md(r);return n.length===0?"0x":n}function tE({params:e,values:t}){let r=[];for(let n=0;n<e.length;n++)r.push(cd({param:e[n],value:t[n]}));return r}function cd({param:e,value:t}){let r=Fu(e.type);if(r){let[n,o]=r;return nE(t,{length:n,param:{...e,type:o}})}if(e.type==="tuple")return cE(t,{param:e});if(e.type==="address")return rE(t);if(e.type==="bool")return sE(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){let n=e.type.startsWith("int"),[,,o="256"]=Mu.exec(e.type)??[];return aE(t,{signed:n,size:Number(o)})}if(e.type.startsWith("bytes"))return oE(t,{param:e});if(e.type==="string")return iE(t);throw new iu(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function md(e){let t=0;for(let s=0;s<e.length;s++){let{dynamic:a,encoded:i}=e[s];a?t+=32:t+=ne(i)}let r=[],n=[],o=0;for(let s=0;s<e.length;s++){let{dynamic:a,encoded:i}=e[s];a?(r.push(k(t+o,{size:32})),n.push(i),o+=ne(i)):r.push(i)}return Oe([...r,...n])}function rE(e){if(!ie(e))throw new de({address:e});return{dynamic:!1,encoded:mn(e.toLowerCase())}}function nE(e,{length:t,param:r}){let n=t===null;if(!Array.isArray(e))throw new Ws(e);if(!n&&e.length!==t)throw new Qm({expectedLength:t,givenLength:e.length,type:`${r.type}[${t}]`});let o=!1,s=[];for(let a=0;a<e.length;a++){let i=cd({param:r,value:e[a]});i.dynamic&&(o=!0),s.push(i)}if(n||o){let a=md(s);if(n){let i=k(s.length,{size:32});return{dynamic:!0,encoded:s.length>0?Oe([i,a]):i}}if(o)return{dynamic:!0,encoded:a}}return{dynamic:!1,encoded:Oe(s.map(({encoded:a})=>a))}}function oE(e,{param:t}){let[,r]=t.type.split("bytes"),n=ne(e);if(!r){let o=e;return n%32!==0&&(o=mn(o,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:Oe([mn(k(n,{size:32})),o])}}if(n!==Number.parseInt(r,10))throw new eu({expectedSize:Number.parseInt(r,10),value:e});return{dynamic:!1,encoded:mn(e,{dir:"right"})}}function sE(e){if(typeof e!="boolean")throw new w(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:mn(gm(e))}}function aE(e,{signed:t,size:r=256}){if(typeof r=="number"){let n=2n**(BigInt(r)-(t?1n:0n))-1n,o=t?-n-1n:0n;if(e>n||e<o)throw new ys({max:n.toString(),min:o.toString(),signed:t,size:r/8,value:e.toString()})}return{dynamic:!1,encoded:k(e,{size:32,signed:t})}}function iE(e){let t=xr(e),r=Math.ceil(ne(t)/32),n=[];for(let o=0;o<r;o++)n.push(mn(or(t,o*32,(o+1)*32),{dir:"right"}));return{dynamic:!0,encoded:Oe([mn(k(ne(t),{size:32})),...n])}}function cE(e,{param:t}){let r=!1,n=[];for(let o=0;o<t.components.length;o++){let s=t.components[o],a=Array.isArray(e)?o:s.name,i=cd({param:s,value:e[a]});n.push(i),i.dynamic&&(r=!0)}return{dynamic:r,encoded:r?md(n):Oe(n.map(({encoded:o})=>o))}}function Fu(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}var hn=P(()=>{Me();Sr();K();Si();Ot();yt();dm();Xt();qn();D();id()});function yn(e,t){let r=typeof t=="string"?qe(t):t,n=ws(r);if(ne(r)===0&&e.length>0)throw new ir;if(ne(t)&&ne(t)<32)throw new Vs({data:typeof t=="string"?t:oe(t),params:e,size:ne(t)});let o=0,s=[];for(let a=0;a<e.length;++a){let i=e[a];n.setPosition(o);let[c,m]=ea(n,i,{staticPosition:0});o+=m,s.push(c)}return s}function ea(e,t,{staticPosition:r}){let n=Fu(t.type);if(n){let[o,s]=n;return uE(e,{...t,type:s},{length:o,staticPosition:r})}if(t.type==="tuple")return dE(e,t,{staticPosition:r});if(t.type==="address")return mE(e);if(t.type==="bool")return pE(e);if(t.type.startsWith("bytes"))return lE(e,t,{staticPosition:r});if(t.type.startsWith("uint")||t.type.startsWith("int"))return fE(e,t);if(t.type==="string")return gE(e,{staticPosition:r});throw new cu(t.type,{docsPath:"/docs/contract/decodeAbiParameters"})}function mE(e){let t=e.readBytes(32);return[fn(oe(Xf(t,-20))),32]}function uE(e,t,{length:r,staticPosition:n}){if(!r){let a=Ur(e.readBytes(ud)),i=n+a,c=i+Qy;e.setPosition(i);let m=Ur(e.readBytes(Qy)),u=Vi(t),p=0,l=[];for(let d=0;d<m;++d){e.setPosition(c+(u?d*32:p));let[g,h]=ea(e,t,{staticPosition:c});p+=h,l.push(g)}return e.setPosition(n+32),[l,32]}if(Vi(t)){let a=Ur(e.readBytes(ud)),i=n+a,c=[];for(let m=0;m<r;++m){e.setPosition(i+m*32);let[u]=ea(e,t,{staticPosition:i});c.push(u)}return e.setPosition(n+32),[c,32]}let o=0,s=[];for(let a=0;a<r;++a){let[i,c]=ea(e,t,{staticPosition:n+o});o+=c,s.push(i)}return[s,o]}function pE(e){return[Jy(e.readBytes(32),{size:32}),32]}function lE(e,t,{staticPosition:r}){let[n,o]=t.type.split("bytes");if(!o){let a=Ur(e.readBytes(32));e.setPosition(r+a);let i=Ur(e.readBytes(32));if(i===0)return e.setPosition(r+32),["0x",32];let c=e.readBytes(i);return e.setPosition(r+32),[oe(c),32]}return[oe(e.readBytes(Number.parseInt(o,10),32)),32]}function fE(e,t){let r=t.type.startsWith("int"),n=Number.parseInt(t.type.split("int")[1]||"256",10),o=e.readBytes(32);return[n>48?Wy(o,{signed:r}):Ur(o,{signed:r}),32]}function dE(e,t,{staticPosition:r}){let n=t.components.length===0||t.components.some(({name:a})=>!a),o=n?[]:{},s=0;if(Vi(t)){let a=Ur(e.readBytes(ud)),i=r+a;for(let c=0;c<t.components.length;++c){let m=t.components[c];e.setPosition(i+s);let[u,p]=ea(e,m,{staticPosition:i});s+=p,o[n?c:m?.name]=u}return e.setPosition(r+32),[o,32]}for(let a=0;a<t.components.length;++a){let i=t.components[a],[c,m]=ea(e,i,{staticPosition:r});o[n?a:i?.name]=c,s+=m}return[o,s]}function gE(e,{staticPosition:t}){let r=Ur(e.readBytes(32)),n=t+r;e.setPosition(n);let o=Ur(e.readBytes(32));if(o===0)return e.setPosition(t+32),["",32];let s=e.readBytes(o,32),a=Zy(Ze(s));return e.setPosition(t+32),[a,32]}function Vi(e){let{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return e.components?.some(Vi);let r=Fu(e.type);return!!(r&&Vi({...e,type:r[1]}))}var Qy,ud,Gi=P(()=>{Me();Gn();bm();Xt();qn();To();Yy();Ye();D();hn();Qy=32,ud=32});function Nu(e){let{abi:t,data:r}=e,n=or(r,0,4);if(n==="0x")throw new ir;let s=[...t||[],Jm,cy].find(a=>a.type==="error"&&n===Dr(We(a)));if(!s)throw new Gs(n,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:s,args:"inputs"in s&&s.inputs&&s.inputs.length>0?yn(s.inputs,or(r,4)):void 0,errorName:s.name}}var pd=P(()=>{Zm();Me();qn();Qs();Gi();dn()});var ee,it=P(()=>{ee=(e,t,r)=>JSON.stringify(e,(n,o)=>{let s=typeof o=="bigint"?o.toString():o;return typeof t=="function"?t(n,s):s},r)});function ld({abiItem:e,args:t,includeFunctionName:r=!0,includeName:n=!1}){if("name"in e&&"inputs"in e&&e.inputs)return`${r?e.name:""}(${e.inputs.map((o,s)=>`${n&&o.name?`${o.name}: `:""}${typeof t[s]=="object"?ee(t[s]):t[s]}`).join(", ")})`}var eb=P(()=>{it()});var Wn,qi=P(()=>{ad();Wn=Ru});function At(e){let{abi:t,args:r=[],name:n}=e,o=xe(n,{strict:!1}),s=t.filter(i=>o?i.type==="function"?Dr(i)===n:i.type==="event"?Wn(i)===n:!1:"name"in i&&i.name===n);if(s.length===0)return;if(s.length===1)return s[0];let a;for(let i of s){if(!("inputs"in i))continue;if(!r||r.length===0){if(!i.inputs||i.inputs.length===0)return i;continue}if(!i.inputs||i.inputs.length===0||i.inputs.length!==r.length)continue;if(r.every((m,u)=>{let p="inputs"in i&&i.inputs[u];return p?fd(m,p):!1})){if(a&&"inputs"in a&&a.inputs){let m=tb(i.inputs,a.inputs,r);if(m)throw new su({abiItem:i,type:m[0]},{abiItem:a,type:m[1]})}a=i}}return a||s[0]}function fd(e,t){let r=typeof e,n=t.type;switch(n){case"address":return ie(e,{strict:!1});case"bool":return r==="boolean";case"function":return r==="string";case"string":return r==="string";default:return n==="tuple"&&"components"in t?Object.values(t.components).every((o,s)=>fd(Object.values(e)[s],o)):/^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(n)?r==="number"||r==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?r==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(e)&&e.every(o=>fd(o,{...t,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function tb(e,t,r){for(let n in e){let o=e[n],s=t[n];if(o.type==="tuple"&&s.type==="tuple"&&"components"in o&&"components"in s)return tb(o.components,s.components,r[n]);let a=[o.type,s.type];if(a.includes("address")&&a.includes("bytes20")?!0:a.includes("address")&&a.includes("string")?ie(r[n],{strict:!1}):a.includes("address")&&a.includes("bytes")?ie(r[n],{strict:!1}):!1)return a}}var Jn=P(()=>{Me();Ut();Ot();qi();Qs()});function rb(e){return e.reduce((t,{slot:r,value:n})=>`${t} ${r}: ${n}
35
- `,"")}function nb(e){return e.reduce((t,{address:r,...n})=>{let o=`${t} ${r}:
33
+ `),{name:"InvalidDefinitionTypeError"})}}});function uy(e){return Gk(e)}var Gk,py=P(()=>{Ye();nr();Gk=e=>ge(Qt(e))});var ly,fy=P(()=>{ly="1.1.0"});var De,Zs=P(()=>{fy();De=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,s=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...o?[`Docs: https://abitype.dev${o}`]:[],...n?[`Details: ${n}`]:[],`Version: abitype@${ly}`].join(`
34
+ `);super(s),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),r.cause&&(this.cause=r.cause),this.details=n,this.docsPath=o,this.metaMessages=r.metaMessages,this.shortMessage=t}}});function jt(e,t){return e.exec(t)?.groups}var ed,td,mu,Oi=P(()=>{ed=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,td=/^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)?$/,mu=/^\(.+?\).*?$/});function uu(e){let t=e.type;if(dy.test(e.type)&&"components"in e){t="(";let r=e.components.length;for(let o=0;o<r;o++){let s=e.components[o];t+=uu(s),o<r-1&&(t+=", ")}let n=jt(dy,e.type);return t+=`)${n?.array??""}`,uu({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}var dy,gy=P(()=>{Oi();dy=/^tuple(?<array>(\[(\d*)\])*)$/});function gn(e){let t="",r=e.length;for(let n=0;n<r;n++){let o=e[n];t+=uu(o),n!==r-1&&(t+=", ")}return t}var rd=P(()=>{gy()});function Do(e){return e.type==="function"?`function ${e.name}(${gn(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${gn(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${gn(e.inputs)})`:e.type==="error"?`error ${e.name}(${gn(e.inputs)})`:e.type==="constructor"?`constructor(${gn(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}var hy=P(()=>{rd()});function by(e){return yy.test(e)}function xy(e){return jt(yy,e)}function wy(e){return vy.test(e)}function Cy(e){return jt(vy,e)}function ky(e){return Sy.test(e)}function Ey(e){return jt(Sy,e)}function Wn(e){return _y.test(e)}function Iy(e){return jt(_y,e)}function Ay(e){return Py.test(e)}function Ty(e){return jt(Py,e)}function Ry(e){return $y.test(e)}function My(e){return jt($y,e)}function Fy(e){return qk.test(e)}var yy,vy,Sy,_y,Py,$y,qk,nd,Ny,pu,Ys=P(()=>{Oi();yy=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;vy=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;Sy=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;_y=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;Py=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;$y=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;qk=/^receive\(\) external payable$/;nd=new Set(["memory","indexed","storage","calldata"]),Ny=new Set(["indexed"]),pu=new Set(["calldata","memory","storage"])});var lu,fu,du,gu=P(()=>{Zs();lu=class extends De{constructor({signature:t}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(t,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"})}},fu=class extends De{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}},du=class extends De{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}});var hu,yu,bu,xu,vu,wu,Cu=P(()=>{Zs();hu=class extends De{constructor({params:t}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(t,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"})}},yu=class extends De{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},bu=class extends De{constructor({param:t,name:r}){super("Invalid ABI parameter.",{details:t,metaMessages:[`"${r}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}},xu=class extends De{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}},vu=class extends De{constructor({param:t,type:r,modifier:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${n}" not allowed${r?` in "${r}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}},wu=class extends De{constructor({abiParameter:t}){super("Invalid ABI parameter.",{details:JSON.stringify(t,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}});var Br,Su,ku,od=P(()=>{Zs();Br=class extends De{constructor({signature:t,type:r}){super(`Invalid ${r} signature.`,{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}},Su=class extends De{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},ku=class extends De{constructor({signature:t}){super("Invalid struct signature.",{details:t,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}});var Eu,Ly=P(()=>{Zs();Eu=class extends De{constructor({type:t}){super("Circular reference detected.",{metaMessages:[`Struct "${t}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}});var _u,By=P(()=>{Zs();_u=class extends De{constructor({current:t,depth:r}){super("Unbalanced parentheses.",{metaMessages:[`"${t.trim()}" has too many ${r>0?"opening":"closing"} parentheses.`],details:`Depth "${r}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}});function Dy(e,t,r){let n="";if(r)for(let o of Object.entries(r)){if(!o)continue;let s="";for(let a of o[1])s+=`[${a.type}${a.name?`:${a.name}`:""}]`;n+=`(${o[0]}{${s}})`}return t?`${t}:${e}${n}`:e}var Iu,Uy=P(()=>{Iu=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]])});function ji(e,t={}){if(ky(e))return Kk(e,t);if(wy(e))return Wk(e,t);if(by(e))return Jk(e,t);if(Ay(e))return Zk(e,t);if(Ry(e))return Yk(e);if(Fy(e))return{type:"receive",stateMutability:"payable"};throw new Su({signature:e})}function Kk(e,t={}){let r=Ey(e);if(!r)throw new Br({signature:e,type:"function"});let n=Pt(r.parameters),o=[],s=n.length;for(let i=0;i<s;i++)o.push(_r(n[i],{modifiers:pu,structs:t,type:"function"}));let a=[];if(r.returns){let i=Pt(r.returns),c=i.length;for(let m=0;m<c;m++)a.push(_r(i[m],{modifiers:pu,structs:t,type:"function"}))}return{name:r.name,type:"function",stateMutability:r.stateMutability??"nonpayable",inputs:o,outputs:a}}function Wk(e,t={}){let r=Cy(e);if(!r)throw new Br({signature:e,type:"event"});let n=Pt(r.parameters),o=[],s=n.length;for(let a=0;a<s;a++)o.push(_r(n[a],{modifiers:Ny,structs:t,type:"event"}));return{name:r.name,type:"event",inputs:o}}function Jk(e,t={}){let r=xy(e);if(!r)throw new Br({signature:e,type:"error"});let n=Pt(r.parameters),o=[],s=n.length;for(let a=0;a<s;a++)o.push(_r(n[a],{structs:t,type:"error"}));return{name:r.name,type:"error",inputs:o}}function Zk(e,t={}){let r=Ty(e);if(!r)throw new Br({signature:e,type:"constructor"});let n=Pt(r.parameters),o=[],s=n.length;for(let a=0;a<s;a++)o.push(_r(n[a],{structs:t,type:"constructor"}));return{type:"constructor",stateMutability:r.stateMutability??"nonpayable",inputs:o}}function Yk(e){let t=My(e);if(!t)throw new Br({signature:e,type:"fallback"});return{type:"fallback",stateMutability:t.stateMutability??"nonpayable"}}function _r(e,t){let r=Dy(e,t?.type,t?.structs);if(Iu.has(r))return Iu.get(r);let n=mu.test(e),o=jt(n?Qk:Xk,e);if(!o)throw new yu({param:e});if(o.name&&rE(o.name))throw new bu({param:e,name:o.name});let s=o.name?{name:o.name}:{},a=o.modifier==="indexed"?{indexed:!0}:{},i=t?.structs??{},c,m={};if(n){c="tuple";let p=Pt(o.type),f=[],d=p.length;for(let g=0;g<d;g++)f.push(_r(p[g],{structs:i}));m={components:f}}else if(o.type in i)c="tuple",m={components:i[o.type]};else if(eE.test(o.type))c=`${o.type}256`;else if(o.type==="address payable")c="address";else if(c=o.type,t?.type!=="struct"&&!sd(c))throw new du({type:c});if(o.modifier){if(!t?.modifiers?.has?.(o.modifier))throw new xu({param:e,type:t?.type,modifier:o.modifier});if(pu.has(o.modifier)&&!nE(c,!!o.array))throw new vu({param:e,type:t?.type,modifier:o.modifier})}let u={type:`${c}${o.array??""}`,...s,...a,...m};return Iu.set(r,u),u}function Pt(e,t=[],r="",n=0){let o=e.trim().length;for(let s=0;s<o;s++){let a=e[s],i=e.slice(s+1);switch(a){case",":return n===0?Pt(i,[...t,r.trim()]):Pt(i,t,`${r}${a}`,n);case"(":return Pt(i,t,`${r}${a}`,n+1);case")":return Pt(i,t,`${r}${a}`,n-1);default:return Pt(i,t,`${r}${a}`,n)}}if(r==="")return t;if(n!==0)throw new _u({current:r,depth:n});return t.push(r.trim()),t}function sd(e){return e==="address"||e==="bool"||e==="function"||e==="string"||ed.test(e)||td.test(e)}function rE(e){return e==="address"||e==="bool"||e==="function"||e==="string"||e==="tuple"||ed.test(e)||td.test(e)||tE.test(e)}function nE(e,t){return t||e==="bytes"||e==="string"||e==="tuple"}var Xk,Qk,eE,tE,Xs=P(()=>{Oi();gu();Cu();od();By();Uy();Ys();Xk=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Qk=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,eE=/^u?int$/;tE=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/});function Qs(e){let t={},r=e.length;for(let a=0;a<r;a++){let i=e[a];if(!Wn(i))continue;let c=Iy(i);if(!c)throw new Br({signature:i,type:"struct"});let m=c.properties.split(";"),u=[],p=m.length;for(let f=0;f<p;f++){let g=m[f].trim();if(!g)continue;let h=_r(g,{type:"struct"});u.push(h)}if(!u.length)throw new ku({signature:i});t[c.name]=u}let n={},o=Object.entries(t),s=o.length;for(let a=0;a<s;a++){let[i,c]=o[a];n[i]=zy(c,t)}return n}function zy(e,t,r=new Set){let n=[],o=e.length;for(let s=0;s<o;s++){let a=e[s];if(mu.test(a.type))n.push(a);else{let c=jt(oE,a.type);if(!c?.type)throw new wu({abiParameter:a});let{array:m,type:u}=c;if(u in t){if(r.has(u))throw new Eu({type:u});n.push({...a,type:`tuple${m??""}`,components:zy(t[u]??[],t,new Set([...r,u]))})}else if(sd(u))n.push(a);else throw new fu({type:u})}}return n}var oE,Pu=P(()=>{Oi();gu();Cu();od();Ly();Ys();Xs();oE=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/});function Au(e){let t=Qs(e),r=[],n=e.length;for(let o=0;o<n;o++){let s=e[o];Wn(s)||r.push(ji(s,t))}return r}var Oy=P(()=>{Ys();Pu();Xs()});function Tu(e){let t;if(typeof e=="string")t=ji(e);else{let r=Qs(e),n=e.length;for(let o=0;o<n;o++){let s=e[o];if(!Wn(s)){t=ji(s,r);break}}}if(!t)throw new lu({signature:e});return t}var jy=P(()=>{gu();Ys();Pu();Xs()});function $u(e){let t=[];if(typeof e=="string"){let r=Pt(e),n=r.length;for(let o=0;o<n;o++)t.push(_r(r[o],{modifiers:nd}))}else{let r=Qs(e),n=e.length;for(let o=0;o<n;o++){let s=e[o];if(Wn(s))continue;let a=Pt(s),i=a.length;for(let c=0;c<i;c++)t.push(_r(a[c],{modifiers:nd,structs:r}))}}if(t.length===0)throw new hu({params:e});return t}var Hy=P(()=>{Cu();Ys();Pu();Xs();Xs()});var Hi=P(()=>{hy();rd();Oy();jy();Hy()});function Gy(e){let t=!0,r="",n=0,o="",s=!1;for(let a=0;a<e.length;a++){let i=e[a];if(["(",")",","].includes(i)&&(t=!0),i==="("&&n++,i===")"&&n--,!!t){if(n===0){if(i===" "&&["event","function",""].includes(o))o="";else if(o+=i,i===")"){s=!0;break}continue}if(i===" "){e[a-1]!==","&&r!==","&&r!==",("&&(r="",t=!1);continue}o+=i,r+=i}}if(!s)throw new w("Unable to normalize signature.");return o}var qy=P(()=>{K()});var Ky,Wy=P(()=>{Hi();qy();Ky=e=>{let t=typeof e=="string"?e:Do(e);return Gy(t)}});function Ru(e){return uy(Ky(e))}var ad=P(()=>{py();Wy()});var Dr,ea=P(()=>{Kn();ad();Dr=e=>or(Ru(e),0,4)});function Jy(e,t={}){typeof t.size<"u"&&_t(e,{size:t.size});let r=oe(e,t);return be(r,t)}function Zy(e,t={}){let r=e;if(typeof t.size<"u"&&(_t(r,{size:t.size}),r=Ze(r)),r.length>1||r[0]>1)throw new um(r);return!!r[0]}function Ur(e,t={}){typeof t.size<"u"&&_t(e,{size:t.size});let r=oe(e,t);return Ae(r,t)}function Yy(e,t={}){let r=e;return typeof t.size<"u"&&(_t(r,{size:t.size}),r=Ze(r,{dir:"right"})),new TextDecoder().decode(r)}var Xy=P(()=>{Si();$o();Ge();D()});var Qy,Mu,id=P(()=>{Qy=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Mu=/^(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)?$/});function bt(e,t){if(e.length!==t.length)throw new tu({expectedLength:e.length,givenLength:t.length});let r=sE({params:e,values:t}),n=md(r);return n.length===0?"0x":n}function sE({params:e,values:t}){let r=[];for(let n=0;n<e.length;n++)r.push(cd({param:e[n],value:t[n]}));return r}function cd({param:e,value:t}){let r=Fu(e.type);if(r){let[n,o]=r;return iE(t,{length:n,param:{...e,type:o}})}if(e.type==="tuple")return lE(t,{param:e});if(e.type==="address")return aE(t);if(e.type==="bool")return mE(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){let n=e.type.startsWith("int"),[,,o="256"]=Mu.exec(e.type)??[];return uE(t,{signed:n,size:Number(o)})}if(e.type.startsWith("bytes"))return cE(t,{param:e});if(e.type==="string")return pE(t);throw new iu(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function md(e){let t=0;for(let s=0;s<e.length;s++){let{dynamic:a,encoded:i}=e[s];a?t+=32:t+=ne(i)}let r=[],n=[],o=0;for(let s=0;s<e.length;s++){let{dynamic:a,encoded:i}=e[s];a?(r.push(E(t+o,{size:32})),n.push(i),o+=ne(i)):r.push(i)}return Oe([...r,...n])}function aE(e){if(!ie(e))throw new de({address:e});return{dynamic:!1,encoded:mn(e.toLowerCase())}}function iE(e,{length:t,param:r}){let n=t===null;if(!Array.isArray(e))throw new Js(e);if(!n&&e.length!==t)throw new Qm({expectedLength:t,givenLength:e.length,type:`${r.type}[${t}]`});let o=!1,s=[];for(let a=0;a<e.length;a++){let i=cd({param:r,value:e[a]});i.dynamic&&(o=!0),s.push(i)}if(n||o){let a=md(s);if(n){let i=E(s.length,{size:32});return{dynamic:!0,encoded:s.length>0?Oe([i,a]):i}}if(o)return{dynamic:!0,encoded:a}}return{dynamic:!1,encoded:Oe(s.map(({encoded:a})=>a))}}function cE(e,{param:t}){let[,r]=t.type.split("bytes"),n=ne(e);if(!r){let o=e;return n%32!==0&&(o=mn(o,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:Oe([mn(E(n,{size:32})),o])}}if(n!==Number.parseInt(r,10))throw new eu({expectedSize:Number.parseInt(r,10),value:e});return{dynamic:!1,encoded:mn(e,{dir:"right"})}}function mE(e){if(typeof e!="boolean")throw new w(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:mn(gm(e))}}function uE(e,{signed:t,size:r=256}){if(typeof r=="number"){let n=2n**(BigInt(r)-(t?1n:0n))-1n,o=t?-n-1n:0n;if(e>n||e<o)throw new bs({max:n.toString(),min:o.toString(),signed:t,size:r/8,value:e.toString()})}return{dynamic:!1,encoded:E(e,{size:32,signed:t})}}function pE(e){let t=xr(e),r=Math.ceil(ne(t)/32),n=[];for(let o=0;o<r;o++)n.push(mn(or(t,o*32,(o+1)*32),{dir:"right"}));return{dynamic:!0,encoded:Oe([mn(E(ne(t),{size:32})),...n])}}function lE(e,{param:t}){let r=!1,n=[];for(let o=0;o<t.components.length;o++){let s=t.components[o],a=Array.isArray(e)?o:s.name,i=cd({param:s,value:e[a]});n.push(i),i.dynamic&&(r=!0)}return{dynamic:r,encoded:r?md(n):Oe(n.map(({encoded:o})=>o))}}function Fu(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}var hn=P(()=>{Me();Sr();K();Si();Ot();yt();dm();Xt();Kn();D();id()});function yn(e,t){let r=typeof t=="string"?qe(t):t,n=Cs(r);if(ne(r)===0&&e.length>0)throw new ir;if(ne(t)&&ne(t)<32)throw new Gs({data:typeof t=="string"?t:oe(t),params:e,size:ne(t)});let o=0,s=[];for(let a=0;a<e.length;++a){let i=e[a];n.setPosition(o);let[c,m]=ta(n,i,{staticPosition:0});o+=m,s.push(c)}return s}function ta(e,t,{staticPosition:r}){let n=Fu(t.type);if(n){let[o,s]=n;return dE(e,{...t,type:s},{length:o,staticPosition:r})}if(t.type==="tuple")return bE(e,t,{staticPosition:r});if(t.type==="address")return fE(e);if(t.type==="bool")return gE(e);if(t.type.startsWith("bytes"))return hE(e,t,{staticPosition:r});if(t.type.startsWith("uint")||t.type.startsWith("int"))return yE(e,t);if(t.type==="string")return xE(e,{staticPosition:r});throw new cu(t.type,{docsPath:"/docs/contract/decodeAbiParameters"})}function fE(e){let t=e.readBytes(32);return[fn(oe(Xf(t,-20))),32]}function dE(e,t,{length:r,staticPosition:n}){if(!r){let a=Ur(e.readBytes(ud)),i=n+a,c=i+eb;e.setPosition(i);let m=Ur(e.readBytes(eb)),u=Vi(t),p=0,f=[];for(let d=0;d<m;++d){e.setPosition(c+(u?d*32:p));let[g,h]=ta(e,t,{staticPosition:c});p+=h,f.push(g)}return e.setPosition(n+32),[f,32]}if(Vi(t)){let a=Ur(e.readBytes(ud)),i=n+a,c=[];for(let m=0;m<r;++m){e.setPosition(i+m*32);let[u]=ta(e,t,{staticPosition:i});c.push(u)}return e.setPosition(n+32),[c,32]}let o=0,s=[];for(let a=0;a<r;++a){let[i,c]=ta(e,t,{staticPosition:n+o});o+=c,s.push(i)}return[s,o]}function gE(e){return[Zy(e.readBytes(32),{size:32}),32]}function hE(e,t,{staticPosition:r}){let[n,o]=t.type.split("bytes");if(!o){let a=Ur(e.readBytes(32));e.setPosition(r+a);let i=Ur(e.readBytes(32));if(i===0)return e.setPosition(r+32),["0x",32];let c=e.readBytes(i);return e.setPosition(r+32),[oe(c),32]}return[oe(e.readBytes(Number.parseInt(o,10),32)),32]}function yE(e,t){let r=t.type.startsWith("int"),n=Number.parseInt(t.type.split("int")[1]||"256",10),o=e.readBytes(32);return[n>48?Jy(o,{signed:r}):Ur(o,{signed:r}),32]}function bE(e,t,{staticPosition:r}){let n=t.components.length===0||t.components.some(({name:a})=>!a),o=n?[]:{},s=0;if(Vi(t)){let a=Ur(e.readBytes(ud)),i=r+a;for(let c=0;c<t.components.length;++c){let m=t.components[c];e.setPosition(i+s);let[u,p]=ta(e,m,{staticPosition:i});s+=p,o[n?c:m?.name]=u}return e.setPosition(r+32),[o,32]}for(let a=0;a<t.components.length;++a){let i=t.components[a],[c,m]=ta(e,i,{staticPosition:r});o[n?a:i?.name]=c,s+=m}return[o,s]}function xE(e,{staticPosition:t}){let r=Ur(e.readBytes(32)),n=t+r;e.setPosition(n);let o=Ur(e.readBytes(32));if(o===0)return e.setPosition(t+32),["",32];let s=e.readBytes(o,32),a=Yy(Ze(s));return e.setPosition(t+32),[a,32]}function Vi(e){let{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return e.components?.some(Vi);let r=Fu(e.type);return!!(r&&Vi({...e,type:r[1]}))}var eb,ud,Gi=P(()=>{Me();qn();bm();Xt();Kn();$o();Xy();Ye();D();hn();eb=32,ud=32});function Nu(e){let{abi:t,data:r}=e,n=or(r,0,4);if(n==="0x")throw new ir;let s=[...t||[],Jm,my].find(a=>a.type==="error"&&n===Dr(We(a)));if(!s)throw new qs(n,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:s,args:"inputs"in s&&s.inputs&&s.inputs.length>0?yn(s.inputs,or(r,4)):void 0,errorName:s.name}}var pd=P(()=>{Zm();Me();Kn();ea();Gi();dn()});var ee,it=P(()=>{ee=(e,t,r)=>JSON.stringify(e,(n,o)=>{let s=typeof o=="bigint"?o.toString():o;return typeof t=="function"?t(n,s):s},r)});function ld({abiItem:e,args:t,includeFunctionName:r=!0,includeName:n=!1}){if("name"in e&&"inputs"in e&&e.inputs)return`${r?e.name:""}(${e.inputs.map((o,s)=>`${n&&o.name?`${o.name}: `:""}${typeof t[s]=="object"?ee(t[s]):t[s]}`).join(", ")})`}var tb=P(()=>{it()});var Jn,qi=P(()=>{ad();Jn=Ru});function At(e){let{abi:t,args:r=[],name:n}=e,o=xe(n,{strict:!1}),s=t.filter(i=>o?i.type==="function"?Dr(i)===n:i.type==="event"?Jn(i)===n:!1:"name"in i&&i.name===n);if(s.length===0)return;if(s.length===1)return s[0];let a;for(let i of s){if(!("inputs"in i))continue;if(!r||r.length===0){if(!i.inputs||i.inputs.length===0)return i;continue}if(!i.inputs||i.inputs.length===0||i.inputs.length!==r.length)continue;if(r.every((m,u)=>{let p="inputs"in i&&i.inputs[u];return p?fd(m,p):!1})){if(a&&"inputs"in a&&a.inputs){let m=rb(i.inputs,a.inputs,r);if(m)throw new su({abiItem:i,type:m[0]},{abiItem:a,type:m[1]})}a=i}}return a||s[0]}function fd(e,t){let r=typeof e,n=t.type;switch(n){case"address":return ie(e,{strict:!1});case"bool":return r==="boolean";case"function":return r==="string";case"string":return r==="string";default:return n==="tuple"&&"components"in t?Object.values(t.components).every((o,s)=>fd(Object.values(e)[s],o)):/^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(n)?r==="number"||r==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?r==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(e)&&e.every(o=>fd(o,{...t,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function rb(e,t,r){for(let n in e){let o=e[n],s=t[n];if(o.type==="tuple"&&s.type==="tuple"&&"components"in o&&"components"in s)return rb(o.components,s.components,r[n]);let a=[o.type,s.type];if(a.includes("address")&&a.includes("bytes20")?!0:a.includes("address")&&a.includes("string")?ie(r[n],{strict:!1}):a.includes("address")&&a.includes("bytes")?ie(r[n],{strict:!1}):!1)return a}}var Zn=P(()=>{Me();Ut();Ot();qi();ea()});function nb(e){return e.reduce((t,{slot:r,value:n})=>`${t} ${r}: ${n}
35
+ `,"")}function ob(e){return e.reduce((t,{address:r,...n})=>{let o=`${t} ${r}:
36
36
  `;return n.nonce&&(o+=` nonce: ${n.nonce}
37
37
  `),n.balance&&(o+=` balance: ${n.balance}
38
38
  `),n.code&&(o+=` code: ${n.code}
39
39
  `),n.state&&(o+=` state:
40
- `,o+=rb(n.state)),n.stateDiff&&(o+=` stateDiff:
41
- `,o+=rb(n.stateDiff)),o},` State Override:
42
- `).slice(0,-1)}var Lu,Bu,dd=P(()=>{K();Lu=class extends w{constructor({address:t}){super(`State for account "${t}" is set multiple times.`,{name:"AccountStateConflictError"})}},Bu=class extends w{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}});var ob,Do,Du=P(()=>{ob=e=>e,Do=e=>e});var ta,ra,Uo,Uu,zu,zr,Zn=P(()=>{Re();Zm();pd();dn();eb();Jn();Cm();Ss();Me();K();dd();zt();Du();ta=class extends w{constructor(t,{account:r,docsPath:n,chain:o,data:s,gas:a,gasPrice:i,maxFeePerGas:c,maxPriorityFeePerGas:m,nonce:u,to:p,value:l,stateOverride:d}){let g=r?W(r):void 0,h=Ro({from:g?.address,to:p,value:typeof l<"u"&&`${Cs(l)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:s,gas:a,gasPrice:typeof i<"u"&&`${Ke(i)} gwei`,maxFeePerGas:typeof c<"u"&&`${Ke(c)} gwei`,maxPriorityFeePerGas:typeof m<"u"&&`${Ke(m)} gwei`,nonce:u});d&&(h+=`
43
- ${nb(d)}`),super(t.shortMessage,{cause:t,docsPath:n,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Raw Call Arguments:",h].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}},ra=class extends w{constructor(t,{abi:r,args:n,contractAddress:o,docsPath:s,functionName:a,sender:i}){let c=At({abi:r,args:n,name:a}),m=c?ld({abiItem:c,args:n,includeFunctionName:!1,includeName:!1}):void 0,u=c?We(c,{includeName:!0}):void 0,p=Ro({address:o&&ob(o),function:u,args:m&&m!=="()"&&`${[...Array(a?.length??0).keys()].map(()=>" ").join("")}${m}`,sender:i});super(t.shortMessage||`An unknown error occurred while executing the contract function "${a}".`,{cause:t,docsPath:s,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],p&&"Contract Call:",p].filter(Boolean),name:"ContractFunctionExecutionError"}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=r,this.args=n,this.cause=t,this.contractAddress=o,this.functionName=a,this.sender=i}},Uo=class extends w{constructor({abi:t,data:r,functionName:n,message:o}){let s,a,i,c;if(r&&r!=="0x")try{a=Nu({abi:t,data:r});let{abiItem:u,errorName:p,args:l}=a;if(p==="Error")c=l[0];else if(p==="Panic"){let[d]=l;c=iy[d]}else{let d=u?We(u,{includeName:!0}):void 0,g=u&&l?ld({abiItem:u,args:l,includeFunctionName:!1,includeName:!1}):void 0;i=[d?`Error: ${d}`:"",g&&g!=="()"?` ${[...Array(p?.length??0).keys()].map(()=>" ").join("")}${g}`:""]}}catch(u){s=u}else o&&(c=o);let m;s instanceof Gs&&(m=s.signature,i=[`Unable to decode signature "${m}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${m}.`]),super(c&&c!=="execution reverted"||m?[`The contract function "${n}" reverted with the following ${m?"signature":"reason"}:`,c||m].join(`
44
- `):`The contract function "${n}" reverted.`,{cause:s,metaMessages:i,name:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=a,this.raw=r,this.reason=c,this.signature=m}},Uu=class extends w{constructor({functionName:t}){super(`The contract function "${t}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${t}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}},zu=class extends w{constructor({factory:t}){super(`Deployment for counterfactual contract call failed${t?` for factory "${t}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}},zr=class extends w{constructor({data:t,message:r}){super(r||"",{name:"RawContractError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t}}});var cr,Yn,Ki,zo=P(()=>{it();K();Du();cr=class extends w{constructor({body:t,cause:r,details:n,headers:o,status:s,url:a}){super("HTTP request failed.",{cause:r,details:n,metaMessages:[s&&`Status: ${s}`,`URL: ${Do(a)}`,t&&`Request body: ${ee(t)}`].filter(Boolean),name:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=t,this.headers=o,this.status=s,this.url=a}},Yn=class extends w{constructor({body:t,error:r,url:n}){super("RPC Request failed.",{cause:r,details:r.message,metaMessages:[`URL: ${Do(n)}`,`Request body: ${ee(t)}`],name:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=r.code,this.data=r.data}},Ki=class extends w{constructor({body:t,url:r}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${Do(r)}`,`Request body: ${ee(t)}`],name:"TimeoutError"})}}});var hE,ct,xt,na,oa,sa,aa,bn,Or,ia,ca,ma,Xn,Oo,ua,jo,pa,la,fa,da,ga,Qn,ha,ya,ba,xa,va,eo,Ou,wa=P(()=>{K();zo();hE=-1,ct=class extends w{constructor(t,{code:r,docsPath:n,metaMessages:o,name:s,shortMessage:a}){super(a,{cause:t,docsPath:n,metaMessages:o||t?.metaMessages,name:s||"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=s||t.name,this.code=t instanceof Yn?t.code:r??hE}},xt=class extends ct{constructor(t,r){super(t,r),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=r.data}},na=class e extends ct{constructor(t){super(t,{code:e.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}};Object.defineProperty(na,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});oa=class e extends ct{constructor(t){super(t,{code:e.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}};Object.defineProperty(oa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});sa=class e extends ct{constructor(t,{method:r}={}){super(t,{code:e.code,name:"MethodNotFoundRpcError",shortMessage:`The method${r?` "${r}"`:""} does not exist / is not available.`})}};Object.defineProperty(sa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});aa=class e extends ct{constructor(t){super(t,{code:e.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(`
45
- `)})}};Object.defineProperty(aa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});bn=class e extends ct{constructor(t){super(t,{code:e.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}};Object.defineProperty(bn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});Or=class e extends ct{constructor(t){super(t,{code:e.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(`
46
- `)})}};Object.defineProperty(Or,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});ia=class e extends ct{constructor(t){super(t,{code:e.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}};Object.defineProperty(ia,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});ca=class e extends ct{constructor(t){super(t,{code:e.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}};Object.defineProperty(ca,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});ma=class e extends ct{constructor(t){super(t,{code:e.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}};Object.defineProperty(ma,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});Xn=class e extends ct{constructor(t,{method:r}={}){super(t,{code:e.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${r?` "${r}"`:""} is not supported.`})}};Object.defineProperty(Xn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});Oo=class e extends ct{constructor(t){super(t,{code:e.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}};Object.defineProperty(Oo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});ua=class e extends ct{constructor(t){super(t,{code:e.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}};Object.defineProperty(ua,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});jo=class e extends xt{constructor(t){super(t,{code:e.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}};Object.defineProperty(jo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});pa=class e extends xt{constructor(t){super(t,{code:e.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}};Object.defineProperty(pa,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});la=class e extends xt{constructor(t,{method:r}={}){super(t,{code:e.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${r?` " ${r}"`:""}.`})}};Object.defineProperty(la,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});fa=class e extends xt{constructor(t){super(t,{code:e.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}};Object.defineProperty(fa,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});da=class e extends xt{constructor(t){super(t,{code:e.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}};Object.defineProperty(da,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});ga=class e extends xt{constructor(t){super(t,{code:e.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}};Object.defineProperty(ga,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});Qn=class e extends xt{constructor(t){super(t,{code:e.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}};Object.defineProperty(Qn,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});ha=class e extends xt{constructor(t){super(t,{code:e.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}};Object.defineProperty(ha,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});ya=class e extends xt{constructor(t){super(t,{code:e.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}};Object.defineProperty(ya,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});ba=class e extends xt{constructor(t){super(t,{code:e.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}};Object.defineProperty(ba,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});xa=class e extends xt{constructor(t){super(t,{code:e.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}};Object.defineProperty(xa,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});va=class e extends xt{constructor(t){super(t,{code:e.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}};Object.defineProperty(va,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});eo=class e extends xt{constructor(t){super(t,{code:e.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}};Object.defineProperty(eo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});Ou=class extends ct{constructor(t){super(t,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}});function to(e,t){let r=(e.details||"").toLowerCase(),n=e instanceof w?e.walk(o=>o?.code===ln.code):e;return n instanceof w?new ln({cause:e,message:n.details}):ln.nodeMessage.test(r)?new ln({cause:e,message:e.details}):er.nodeMessage.test(r)?new er({cause:e,maxFeePerGas:t?.maxFeePerGas}):Ms.nodeMessage.test(r)?new Ms({cause:e,maxFeePerGas:t?.maxFeePerGas}):Fs.nodeMessage.test(r)?new Fs({cause:e,nonce:t?.nonce}):Ns.nodeMessage.test(r)?new Ns({cause:e,nonce:t?.nonce}):Ls.nodeMessage.test(r)?new Ls({cause:e,nonce:t?.nonce}):Bs.nodeMessage.test(r)?new Bs({cause:e}):Ds.nodeMessage.test(r)?new Ds({cause:e,gas:t?.gas}):Us.nodeMessage.test(r)?new Us({cause:e,gas:t?.gas}):zs.nodeMessage.test(r)?new zs({cause:e}):Nr.nodeMessage.test(r)?new Nr({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new tr({cause:e})}var Wi=P(()=>{K();Vn()});function ju(e,{docsPath:t,...r}){let n=(()=>{let o=to(e,r);return o instanceof tr?e:o})();return new ta(n,{docsPath:t,...r})}var gd=P(()=>{Zn();Vn();Wi()});function jr(e,{format:t}){if(!t)return{};let r={};function n(s){let a=Object.keys(s);for(let i of a)i in e&&(r[i]=e[i]),s[i]&&typeof s[i]=="object"&&!Array.isArray(s[i])&&n(s[i])}let o=t(e||{});return n(o),r}var Ca=P(()=>{});function mt(e){let{account:t,gasPrice:r,maxFeePerGas:n,maxPriorityFeePerGas:o,to:s}=e,a=t?W(t):void 0;if(a&&!ie(a.address))throw new de({address:a.address});if(s&&!ie(s))throw new de({address:s});if(typeof r<"u"&&(typeof n<"u"||typeof o<"u"))throw new Sm;if(n&&n>xs)throw new er({maxFeePerGas:n});if(o&&n&&o>n)throw new Nr({maxFeePerGas:n,maxPriorityFeePerGas:o})}var xn=P(()=>{Re();Hf();Sr();Vn();zt();Ot()});function cb(e){let{abi:t,args:r,functionName:n}=e,o=t[0];if(n){let s=At({abi:t,args:r,name:n});if(!s)throw new kr(n,{docsPath:ib});o=s}if(o.type!=="function")throw new kr(void 0,{docsPath:ib});return{abi:[o],functionName:Dr(We(o))}}var ib,mb=P(()=>{Me();Qs();dn();Jn();ib="/docs/contract/encodeFunctionData"});function ke(e){let{args:t}=e,{abi:r,functionName:n}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:cb(e),o=r[0],s=n,a="inputs"in o&&o.inputs?bt(o.inputs,t??[]):void 0;return Xe([s,a??"0x"])}var Ht=P(()=>{yt();hn();mb()});function fb(e){if(!(!e||e.length===0))return e.reduce((t,{slot:r,value:n})=>{if(r.length!==66)throw new _i({size:r.length,targetSize:66,type:"hex"});if(n.length!==66)throw new _i({size:n.length,targetSize:66,type:"hex"});return t[r]=n,t},{})}function bE(e){let{balance:t,nonce:r,state:n,stateDiff:o,code:s}=e,a={};if(s!==void 0&&(a.code=s),t!==void 0&&(a.balance=k(t)),r!==void 0&&(a.nonce=k(r)),n!==void 0&&(a.state=fb(n)),o!==void 0){if(a.state)throw new Bu;a.stateDiff=fb(o)}return a}function Sa(e){if(!e)return;let t={};for(let{address:r,...n}of e){if(!ie(r,{strict:!1}))throw new de({address:r});if(t[r])throw new Lu({address:r});t[r]=bE(n)}return t}var Zu=P(()=>{Sr();fm();dd();Ot();D()});function mr(e,t){if(!ie(e,{strict:!1}))throw new de({address:e});if(!ie(t,{strict:!1}))throw new de({address:t});return e.toLowerCase()===t.toLowerCase()}var Ho=P(()=>{Sr();Ot()});function $t(e){let{abi:t,args:r,functionName:n,data:o}=e,s=t[0];if(n){let i=At({abi:t,args:r,name:n});if(!i)throw new kr(n,{docsPath:yd});s=i}if(s.type!=="function")throw new kr(void 0,{docsPath:yd});if(!s.outputs)throw new Ks(s.name,{docsPath:yd});let a=yn(s.outputs,o);if(a&&a.length>1)return a;if(a&&a.length===1)return a[0]}var yd,so=P(()=>{Me();Gi();Jn();yd="/docs/contract/decodeFunctionResult"});var xb,vb=P(()=>{xb="0.1.1"});function wb(){return xb}var Cb=P(()=>{vb()});function Sb(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause?Sb(e.cause,t):t?null:e}var B,Rt=P(()=>{Cb();B=class e extends Error{constructor(t,r={}){let n=(()=>{if(r.cause instanceof e){if(r.cause.details)return r.cause.details;if(r.cause.shortMessage)return r.cause.shortMessage}return r.cause&&"details"in r.cause&&typeof r.cause.details=="string"?r.cause.details:r.cause?.message?r.cause.message:r.details})(),o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,a=`https://oxlib.sh${o??""}`,i=[t||"An error occurred.",...r.metaMessages?["",...r.metaMessages]:[],...n||o?["",n?`Details: ${n}`:void 0,o?`See: ${a}`:void 0]:[]].filter(c=>typeof c=="string").join(`
47
- `);super(i,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${wb()}`}),this.cause=r.cause,this.details=n,this.docs=a,this.docsPath=o,this.shortMessage=t}walk(t){return Sb(this,t)}}});function Ta(e,t){if(ur(e)>t)throw new tp({givenSize:ur(e),maxSize:t})}function kb(e,t){if(typeof t=="number"&&t>0&&t>ur(e)-1)throw new Zi({offset:t,position:"start",size:ur(e)})}function Eb(e,t,r){if(typeof t=="number"&&typeof r=="number"&&ur(e)!==r-t)throw new Zi({offset:r,position:"end",size:ur(e)})}function bd(e){if(e>=vn.zero&&e<=vn.nine)return e-vn.zero;if(e>=vn.A&&e<=vn.F)return e-(vn.A-10);if(e>=vn.a&&e<=vn.f)return e-(vn.a-10)}function _b(e,t={}){let{dir:r,size:n=32}=t;if(n===0)return e;if(e.length>n)throw new rp({size:e.length,targetSize:n,type:"Bytes"});let o=new Uint8Array(n);for(let s=0;s<n;s++){let a=r==="right";o[a?s:n-s-1]=e[a?s:e.length-s-1]}return o}function xd(e,t={}){let{dir:r="left"}=t,n=e,o=0;for(let s=0;s<n.length-1&&n[r==="left"?s:n.length-s-1].toString()==="0";s++)o++;return n=r==="left"?n.slice(o):n.slice(0,n.length-o),n}var vn,Ib=P(()=>{ao();vn={zero:48,nine:57,A:65,F:70,a:97,f:102}});function $a(e,t){if(Ie(e)>t)throw new np({givenSize:Ie(e),maxSize:t})}function Pb(e,t){if(typeof t=="number"&&t>0&&t>Ie(e)-1)throw new Yi({offset:t,position:"start",size:Ie(e)})}function Ab(e,t,r){if(typeof t=="number"&&typeof r=="number"&&Ie(e)!==r-t)throw new Yi({offset:r,position:"end",size:Ie(e)})}function vd(e,t={}){let{dir:r,size:n=32}=t;if(n===0)return e;let o=e.replace("0x","");if(o.length>n*2)throw new op({size:Math.ceil(o.length/2),targetSize:n,type:"Hex"});return`0x${o[r==="right"?"padEnd":"padStart"](n*2,"0")}`}function Tb(e,t={}){let{dir:r="left"}=t,n=e.replace("0x",""),o=0;for(let s=0;s<n.length-1&&n[r==="left"?s:n.length-s-1].toString()==="0";s++)o++;return n=r==="left"?n.slice(o):n.slice(0,n.length-o),n==="0"?"0x":r==="right"&&n.length%2===1?`0x${n}0`:`0x${n}`}var wd=P(()=>{et()});function io(e,t,r){return JSON.stringify(e,(n,o)=>typeof t=="function"?t(n,o):typeof o=="bigint"?o.toString()+CE:o,r)}var CE,Xi=P(()=>{CE="#__bigint"});import{equalBytes as zH}from"@noble/curves/abstract/utils";function EE(e){if(!(e instanceof Uint8Array)){if(!e)throw new Ra(e);if(typeof e!="object")throw new Ra(e);if(!("BYTES_PER_ELEMENT"in e))throw new Ra(e);if(e.BYTES_PER_ELEMENT!==1||e.constructor.name!=="Uint8Array")throw new Ra(e)}}function Rb(e){return e instanceof Uint8Array?e:typeof e=="string"?Ma(e):_E(e)}function _E(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function Ma(e,t={}){let{size:r}=t,n=e;r&&($a(e,r),n=qr(e,r));let o=n.slice(2);o.length%2&&(o=`0${o}`);let s=o.length/2,a=new Uint8Array(s);for(let i=0,c=0;i<s;i++){let m=bd(o.charCodeAt(c++)),u=bd(o.charCodeAt(c++));if(m===void 0||u===void 0)throw new B(`Invalid byte sequence ("${o[c-2]}${o[c-1]}" in "${o}").`);a[i]=m*16+u}return a}function Mb(e,t={}){let{size:r}=t,n=kE.encode(e);return typeof r=="number"?(Ta(n,r),IE(n,r)):n}function IE(e,t){return _b(e,{dir:"right",size:t})}function ur(e){return e.length}function Fb(e,t,r,n={}){let{strict:o}=n;kb(e,t);let s=e.slice(t,r);return o&&Eb(s,t,r),s}function Nb(e,t={}){let{size:r}=t;typeof r<"u"&&Ta(e,r);let n=Ue(e,t);return kd(n,t)}function Lb(e,t={}){let{size:r}=t,n=e;if(typeof r<"u"&&(Ta(n,r),n=Sd(n)),n.length>1||n[0]>1)throw new Cd(n);return!!n[0]}function Gr(e,t={}){let{size:r}=t;typeof r<"u"&&Ta(e,r);let n=Ue(e,t);return ap(n,t)}function Bb(e,t={}){let{size:r}=t,n=e;return typeof r<"u"&&(Ta(n,r),n=PE(n)),SE.decode(n)}function Sd(e){return xd(e,{dir:"left"})}function PE(e){return xd(e,{dir:"right"})}function Db(e){try{return EE(e),!0}catch{return!1}}var SE,kE,Cd,Ra,tp,Zi,rp,ao=P(()=>{Rt();et();Ib();wd();Xi();SE=new TextDecoder,kE=new TextEncoder;Cd=class extends B{constructor(t){super(`Bytes value \`${t}\` is not a valid boolean.`,{metaMessages:["The bytes array must contain a single byte of either a `0` or `1` value."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesBooleanError"})}},Ra=class extends B{constructor(t){super(`Value \`${typeof t=="object"?io(t):t}\` of type \`${typeof t}\` is an invalid Bytes value.`,{metaMessages:["Bytes values must be of type `Bytes`."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesTypeError"})}},tp=class extends B{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed \`${r}\` bytes. Given size: \`${t}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}},Zi=class extends B{constructor({offset:t,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset \`${t}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SliceOffsetOutOfBoundsError"})}},rp=class extends B{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${t}\`) exceeds padding size (\`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}}});import{equalBytes as jH}from"@noble/curves/abstract/utils";function $E(e,t={}){let{strict:r=!1}=t;if(!e)throw new ip(e);if(typeof e!="string")throw new ip(e);if(r&&!/^0x[0-9a-fA-F]*$/.test(e))throw new cp(e);if(!e.startsWith("0x"))throw new cp(e)}function Te(...e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}function Fa(e){return e instanceof Uint8Array?Ue(e):Array.isArray(e)?Ue(new Uint8Array(e)):e}function mp(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?($a(r,t.size),wn(r,t.size)):r}function Ue(e,t={}){let r="";for(let o=0;o<e.length;o++)r+=TE[e[o]];let n=`0x${r}`;return typeof t.size=="number"?($a(n,t.size),qr(n,t.size)):n}function me(e,t={}){let{signed:r,size:n}=t,o=BigInt(e),s;n?r?s=(1n<<BigInt(n)*8n-1n)-1n:s=2n**(BigInt(n)*8n)-1n:typeof e=="number"&&(s=BigInt(Number.MAX_SAFE_INTEGER));let a=typeof s=="bigint"&&r?-s-1n:0;if(s&&o>s||o<a){let m=typeof e=="bigint"?"n":"";throw new Qi({max:s?`${s}${m}`:void 0,min:`${a}${m}`,signed:r,size:n,value:`${e}${m}`})}let c=`0x${(r&&o<0?(1n<<BigInt(n*8))+BigInt(o):o).toString(16)}`;return n?wn(c,n):c}function Na(e,t={}){return Ue(AE.encode(e),t)}function wn(e,t){return vd(e,{dir:"left",size:t})}function qr(e,t){return vd(e,{dir:"right",size:t})}function Pe(e,t,r,n={}){let{strict:o}=n;Pb(e,t);let s=`0x${e.replace("0x","").slice((t??0)*2,(r??e.length)*2)}`;return o&&Ab(s,t,r),s}function Ie(e){return Math.ceil((e.length-2)/2)}function Ed(e){return Tb(e,{dir:"left"})}function kd(e,t={}){let{signed:r}=t;t.size&&$a(e,t.size);let n=BigInt(e);if(!r)return n;let o=(e.length-2)/2,s=(1n<<BigInt(o)*8n)-1n,a=s>>1n;return n<=a?n:n-s-1n}function ap(e,t={}){let{signed:r,size:n}=t;return Number(!r&&!n?e:kd(e,t))}function ec(e,t={}){let{strict:r=!1}=t;try{return $E(e,{strict:r}),!0}catch{return!1}}var AE,TE,Qi,ip,cp,np,Yi,op,et=P(()=>{Rt();wd();Xi();AE=new TextEncoder,TE=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));Qi=class extends B{constructor({max:t,min:r,signed:n,size:o,value:s}){super(`Number \`${s}\` is not in safe${o?` ${o*8}-bit`:""}${n?" signed":" unsigned"} integer range ${t?`(\`${r}\` to \`${t}\`)`:`(above \`${r}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}},ip=class extends B{constructor(t){super(`Value \`${typeof t=="object"?io(t):t}\` of type \`${typeof t}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}},cp=class extends B{constructor(t){super(`Value \`${t}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}},np=class extends B{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed \`${r}\` bytes. Given size: \`${t}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}},Yi=class extends B{constructor({offset:t,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset \`${t}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}},op=class extends B{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${t}\`) exceeds padding size (\`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}});function Ub(e){return{address:e.address,amount:me(e.amount),index:me(e.index),validatorIndex:me(e.validatorIndex)}}var zb=P(()=>{et()});function up(e){return{...typeof e.baseFeePerGas=="bigint"&&{baseFeePerGas:me(e.baseFeePerGas)},...typeof e.blobBaseFee=="bigint"&&{blobBaseFee:me(e.blobBaseFee)},...typeof e.feeRecipient=="string"&&{feeRecipient:e.feeRecipient},...typeof e.gasLimit=="bigint"&&{gasLimit:me(e.gasLimit)},...typeof e.number=="bigint"&&{number:me(e.number)},...typeof e.prevRandao=="bigint"&&{prevRandao:me(e.prevRandao)},...typeof e.time=="bigint"&&{time:me(e.time)},...e.withdrawals&&{withdrawals:e.withdrawals.map(Ub)}}}var _d=P(()=>{et();zb()});var Go,pp,jb,lp,Hb,Id,Pd,Ad,Td,co=P(()=>{Go=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],pp=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],jb=[{inputs:[{name:"dns",type:"bytes"}],name:"DNSDecodingFailed",type:"error"},{inputs:[{name:"ens",type:"string"}],name:"DNSEncodingFailed",type:"error"},{inputs:[],name:"EmptyAddress",type:"error"},{inputs:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"HttpError",type:"error"},{inputs:[],name:"InvalidBatchGatewayResponse",type:"error"},{inputs:[{name:"errorData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{name:"name",type:"bytes"},{name:"resolver",type:"address"}],name:"ResolverNotContract",type:"error"},{inputs:[{name:"name",type:"bytes"}],name:"ResolverNotFound",type:"error"},{inputs:[{name:"primary",type:"string"},{name:"primaryAddress",type:"bytes"}],name:"ReverseAddressMismatch",type:"error"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"}],name:"UnsupportedResolverProfile",type:"error"}],lp=[...jb,{name:"resolveWithGateways",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],Hb=[...jb,{name:"reverseWithGateways",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"uint256",name:"coinType"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolver"},{type:"address",name:"reverseResolver"}]}],Id=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],Pd=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],Ad=[{name:"isValidSignature",type:"function",stateMutability:"view",inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],outputs:[{name:"",type:"bytes4"}]}],Td=[{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"}]});var Vb,Gb=P(()=>{Vb="0x82ad56cb"});var fp,qb,Kb,La,tc=P(()=>{fp="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",qb="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",Kb="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",La="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033"});function qo(e){let{abi:t,args:r,bytecode:n}=e;if(!r||r.length===0)return n;let o=t.find(a=>"type"in a&&a.type==="constructor");if(!o)throw new Xm({docsPath:$d});if(!("inputs"in o))throw new Di({docsPath:$d});if(!o.inputs||o.inputs.length===0)throw new Di({docsPath:$d});let s=bt(o.inputs,r);return Xe([n,s])}var $d,dp=P(()=>{Me();yt();hn();$d="/docs/contract/encodeDeployData"});function Ba(){let e=()=>{},t=()=>{};return{promise:new Promise((n,o)=>{e=n,t=o}),resolve:e,reject:t}}var gp=P(()=>{});function hp({fn:e,id:t,shouldSplitBatch:r,wait:n=0,sort:o}){let s=async()=>{let u=c();a();let p=u.map(({args:l})=>l);p.length!==0&&e(p).then(l=>{o&&Array.isArray(l)&&l.sort(o);for(let d=0;d<u.length;d++){let{resolve:g}=u[d];g?.([l[d],l])}}).catch(l=>{for(let d=0;d<u.length;d++){let{reject:g}=u[d];g?.(l)}})},a=()=>Rd.delete(t),i=()=>c().map(({args:u})=>u),c=()=>Rd.get(t)||[],m=u=>Rd.set(t,[...c(),u]);return{flush:a,async schedule(u){let{promise:p,resolve:l,reject:d}=Ba();return r?.([...i(),u])&&s(),c().length>0?(m({args:u,resolve:l,reject:d}),p):(m({args:u,resolve:l,reject:d}),setTimeout(s,n),p)}}}var Rd,Md=P(()=>{gp();Rd=new Map});var yp,bp,xp,Wb=P(()=>{it();K();Du();yp=class extends w{constructor({callbackSelector:t,cause:r,data:n,extraData:o,sender:s,urls:a}){super(r.shortMessage||"An error occurred while fetching for an offchain result.",{cause:r,metaMessages:[...r.metaMessages||[],r.metaMessages?.length?"":[],"Offchain Gateway Call:",a&&[" Gateway URL(s):",...a.map(i=>` ${Do(i)}`)],` Sender: ${s}`,` Data: ${n}`,` Callback selector: ${t}`,` Extra data: ${o}`].flat(),name:"OffchainLookupError"})}},bp=class extends w{constructor({result:t,url:r}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${Do(r)}`,`Response: ${ee(t)}`],name:"OffchainLookupResponseMalformedError"})}},xp=class extends w{constructor({sender:t,to:r}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${r}`,`OffchainLookup sender address: ${t}`],name:"OffchainLookupSenderMismatchError"})}}});function Jb(e){let{abi:t,data:r}=e,n=or(r,0,4),o=t.find(s=>s.type==="function"&&n===Dr(We(s)));if(!o)throw new ou(n,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:o.name,args:"inputs"in o&&o.inputs&&o.inputs.length>0?yn(o.inputs,or(r,4)):void 0}}var Zb=P(()=>{Me();qn();Qs();Gi();dn()});function Nd(e){let{abi:t,errorName:r,args:n}=e,o=t[0];if(r){let c=At({abi:t,args:n,name:r});if(!c)throw new Ui(r,{docsPath:Fd});o=c}if(o.type!=="error")throw new Ui(void 0,{docsPath:Fd});let s=We(o),a=Dr(s),i="0x";if(n&&n.length>0){if(!o.inputs)throw new ru(o.name,{docsPath:Fd});i=bt(o.inputs,n)}return Xe([a,i])}var Fd,Yb=P(()=>{Me();yt();Qs();hn();dn();Jn();Fd="/docs/contract/encodeErrorResult"});function Xb(e){let{abi:t,functionName:r,result:n}=e,o=t[0];if(r){let a=At({abi:t,name:r});if(!a)throw new kr(r,{docsPath:Ld});o=a}if(o.type!=="function")throw new kr(void 0,{docsPath:Ld});if(!o.outputs)throw new Ks(o.name,{docsPath:Ld});let s=(()=>{if(o.outputs.length===0)return[];if(o.outputs.length===1)return[n];if(Array.isArray(n))return n;throw new Ws(n)})();return bt(o.outputs,s)}var Ld,Qb=P(()=>{Me();hn();Jn();Ld="/docs/contract/encodeFunctionResult"});async function Bd(e){let{data:t,ccipRequest:r}=e,{args:[n]}=Jb({abi:pp,data:t}),o=[],s=[];return await Promise.all(n.map(async(a,i)=>{try{s[i]=a.urls.includes(Cn)?await Bd({data:a.data,ccipRequest:r}):await r(a),o[i]=!1}catch(c){o[i]=!0,s[i]=ME(c)}})),Xb({abi:pp,functionName:"query",result:[o,s]})}function ME(e){return e.name==="HttpRequestError"&&e.status?Nd({abi:pp,errorName:"HttpError",args:[e.status,e.shortMessage]}):Nd({abi:[Jm],errorName:"Error",args:["shortMessage"in e?e.shortMessage:e.message]})}var Cn,rc=P(()=>{co();Zm();Zb();Yb();Qb();Cn="x-batch-gateway:true"});var rx={};Rf(rx,{ccipRequest:()=>tx,offchainLookup:()=>NE,offchainLookupAbiItem:()=>ex,offchainLookupSignature:()=>FE});async function NE(e,{blockNumber:t,blockTag:r,data:n,to:o}){let{args:s}=Nu({data:n,abi:[ex]}),[a,i,c,m,u]=s,{ccipRead:p}=e,l=p&&typeof p?.request=="function"?p.request:tx;try{if(!mr(o,a))throw new xp({sender:a,to:o});let d=i.includes(Cn)?await Bd({data:c,ccipRequest:l}):await l({data:c,sender:a,urls:i}),{data:g}=await Kr(e,{blockNumber:t,blockTag:r,data:Oe([m,bt([{type:"bytes"},{type:"bytes"}],[d,u])]),to:o});return g}catch(d){throw new yp({callbackSelector:m,cause:d,data:n,extraData:u,sender:a,urls:i})}}async function tx({data:e,sender:t,urls:r}){let n=new Error("An unknown error occurred.");for(let o=0;o<r.length;o++){let s=r[o],a=s.includes("{data}")?"GET":"POST",i=a==="POST"?{data:e,sender:t}:void 0,c=a==="POST"?{"Content-Type":"application/json"}:{};try{let m=await fetch(s.replace("{sender}",t.toLowerCase()).replace("{data}",e),{body:JSON.stringify(i),headers:c,method:a}),u;if(m.headers.get("Content-Type")?.startsWith("application/json")?u=(await m.json()).data:u=await m.text(),!m.ok){n=new cr({body:i,details:u?.error?ee(u.error):m.statusText,headers:m.headers,status:m.status,url:s});continue}if(!xe(u)){n=new bp({result:u,url:s});continue}return u}catch(m){n=new cr({body:i,details:m.message,url:s})}}throw n}var FE,ex,nx=P(()=>{Da();Wb();zo();pd();hn();Ho();yt();Ut();rc();it();FE="0x556f1830",ex={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]}});async function Kr(e,t){let{account:r=e.account,authorizationList:n,batch:o=!!e.batch?.multicall,blockNumber:s,blockTag:a=e.experimental_blockTag??"latest",accessList:i,blobs:c,blockOverrides:m,code:u,data:p,factory:l,factoryData:d,gas:g,gasPrice:h,maxFeePerBlobGas:y,maxFeePerGas:b,maxPriorityFeePerGas:x,nonce:v,to:S,value:E,stateOverride:_,...I}=t,R=r?W(r):void 0;if(u&&(l||d))throw new w("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(u&&S)throw new w("Cannot provide both `code` & `to` as parameters.");let N=u&&p,L=l&&d&&S&&p,O=N||L,j=N?ox({code:u,data:p}):L?DE({data:p,factory:l,factoryData:d,to:S}):p;try{mt(t);let fe=(typeof s=="bigint"?k(s):void 0)||a,Se=m?up(m):void 0,Z=Sa(_),Ve=e.chain?.formatters?.transactionRequest?.format,Be=(Ve||It)({...jr(I,{format:Ve}),accessList:i,account:R,authorizationList:n,blobs:c,data:j,gas:g,gasPrice:h,maxFeePerBlobGas:y,maxFeePerGas:b,maxPriorityFeePerGas:x,nonce:v,to:O?void 0:S,value:E},"call");if(o&&LE({request:Be})&&!Z&&!Se)try{return await BE(e,{...Be,blockNumber:s,blockTag:a})}catch(ve){if(!(ve instanceof $i)&&!(ve instanceof Fo))throw ve}let Fr=(()=>{let ve=[Be,fe];return Z&&Se?[...ve,Z,Se]:Z?[...ve,Z]:Se?[...ve,{},Se]:ve})(),Ln=await e.request({method:"eth_call",params:Fr});return Ln==="0x"?{data:void 0}:{data:Ln}}catch(q){let fe=UE(q),{offchainLookup:Se,offchainLookupSignature:Z}=await Promise.resolve().then(()=>(nx(),rx));if(e.ccipRead!==!1&&fe?.slice(0,10)===Z&&S)return{data:await Se(e,{data:fe,to:S})};throw O&&fe?.slice(0,10)==="0x101bb98d"?new zu({factory:l}):ju(q,{...t,account:R,chain:e.chain})}}function LE({request:e}){let{data:t,to:r,...n}=e;return!(!t||t.startsWith(Vb)||!r||Object.values(n).filter(o=>typeof o<"u").length>0)}async function BE(e,t){let{batchSize:r=1024,deployless:n=!1,wait:o=0}=typeof e.batch?.multicall=="object"?e.batch.multicall:{},{blockNumber:s,blockTag:a=e.experimental_blockTag??"latest",data:i,to:c}=t,m=(()=>{if(n)return null;if(t.multicallAddress)return t.multicallAddress;if(e.chain)return sr({blockNumber:s,chain:e.chain,contract:"multicall3"});throw new $i})(),p=(typeof s=="bigint"?k(s):void 0)||a,{schedule:l}=hp({id:`${e.uid}.${p}`,wait:o,shouldSplitBatch(h){return h.reduce((b,{data:x})=>b+(x.length-2),0)>r*2},fn:async h=>{let y=h.map(v=>({allowFailure:!0,callData:v.data,target:v.to})),b=ke({abi:Go,args:[y],functionName:"aggregate3"}),x=await e.request({method:"eth_call",params:[{...m===null?{data:ox({code:La,data:b})}:{to:m,data:b}},p]});return $t({abi:Go,args:[y],functionName:"aggregate3",data:x||"0x"})}}),[{returnData:d,success:g}]=await l({data:i,to:c});if(!g)throw new zr({data:d});return d==="0x"?{data:void 0}:{data:d}}function ox(e){let{code:t,data:r}=e;return qo({abi:Au(["constructor(bytes, bytes)"]),bytecode:fp,args:[t,r]})}function DE(e){let{data:t,factory:r,factoryData:n,to:o}=e;return qo({abi:Au(["constructor(address, bytes, address, bytes)"]),bytecode:qb,args:[o,t,r,n]})}function UE(e){if(!(e instanceof w))return;let t=e.walk();return typeof t?.data=="object"?t.data?.data:t.data}var Da=P(()=>{Hi();_d();Re();co();Gb();tc();K();Ri();Zn();so();dp();Ht();Lo();D();gd();Ca();On();Md();Zu();xn()});var P0=Yt(bc=>{"use strict";var cI=bc&&bc.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(bc,"__esModule",{value:!0});bc.encryptEnvVars=pI;var _0=Dn("@noble/curves/ed25519"),I0=cI(Dn("crypto"));function mI(e){var t,r;return e=e.startsWith("0x")?e.slice(2):e,new Uint8Array((r=(t=e.match(/.{1,2}/g))===null||t===void 0?void 0:t.map(n=>parseInt(n,16)))!==null&&r!==void 0?r:[])}function uI(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}async function pI(e,t){let r=JSON.stringify({env:e}),n=_0.x25519.utils.randomPrivateKey(),o=_0.x25519.getPublicKey(n),s=mI(t),a=_0.x25519.getSharedSecret(n,s),i=await I0.default.subtle.importKey("raw",a,{name:"AES-GCM",length:256},!0,["encrypt"]),c=I0.default.getRandomValues(new Uint8Array(12)),m=await I0.default.subtle.encrypt({name:"AES-GCM",iv:c},i,new TextEncoder().encode(r)),u=new Uint8Array(o.length+c.length+m.byteLength);return u.set(o),u.set(c,o.length),u.set(new Uint8Array(m),o.length+c.length),uI(u)}});var ev=Yt(xc=>{"use strict";var lI=xc&&xc.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xc,"__esModule",{value:!0});xc.getComposeHash=hI;var fI=lI(Dn("crypto"));function A0(e){return e==null?e:Array.isArray(e)?e.map(A0):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,r)=>{let n=e[r];return t[r]=A0(n),t},{}):e}function dI(e){let t={...e};return t.runner==="bash"&&"docker_compose_file"in t?delete t.docker_compose_file:t.runner==="docker-compose"&&"bash_script"in t&&delete t.bash_script,"pre_launch_script"in t&&!t.pre_launch_script&&delete t.pre_launch_script,t}function gI(e){let t=A0(e);return JSON.stringify(t,(r,n)=>typeof n=="number"&&(isNaN(n)||!isFinite(n))?null:n)}function hI(e,t=!1){t&&(e=dI(e));let r=gI(e);return fI.default.createHash("sha256").update(r,"utf8").digest("hex")}});var Cv=Yt(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.toBig=G.shrSL=G.shrSH=G.rotrSL=G.rotrSH=G.rotrBL=G.rotrBH=G.rotr32L=G.rotr32H=G.rotlSL=G.rotlSH=G.rotlBL=G.rotlBH=G.add5L=G.add5H=G.add4L=G.add4H=G.add3L=G.add3H=void 0;G.add=gv;G.fromBig=$0;G.split=tv;var yl=BigInt(2**32-1),T0=BigInt(32);function $0(e,t=!1){return t?{h:Number(e&yl),l:Number(e>>T0&yl)}:{h:Number(e>>T0&yl)|0,l:Number(e&yl)|0}}function tv(e,t=!1){let r=e.length,n=new Uint32Array(r),o=new Uint32Array(r);for(let s=0;s<r;s++){let{h:a,l:i}=$0(e[s],t);[n[s],o[s]]=[a,i]}return[n,o]}var rv=(e,t)=>BigInt(e>>>0)<<T0|BigInt(t>>>0);G.toBig=rv;var nv=(e,t,r)=>e>>>r;G.shrSH=nv;var ov=(e,t,r)=>e<<32-r|t>>>r;G.shrSL=ov;var sv=(e,t,r)=>e>>>r|t<<32-r;G.rotrSH=sv;var av=(e,t,r)=>e<<32-r|t>>>r;G.rotrSL=av;var iv=(e,t,r)=>e<<64-r|t>>>r-32;G.rotrBH=iv;var cv=(e,t,r)=>e>>>r-32|t<<64-r;G.rotrBL=cv;var mv=(e,t)=>t;G.rotr32H=mv;var uv=(e,t)=>e;G.rotr32L=uv;var pv=(e,t,r)=>e<<r|t>>>32-r;G.rotlSH=pv;var lv=(e,t,r)=>t<<r|e>>>32-r;G.rotlSL=lv;var fv=(e,t,r)=>t<<r-32|e>>>64-r;G.rotlBH=fv;var dv=(e,t,r)=>e<<r-32|t>>>64-r;G.rotlBL=dv;function gv(e,t,r,n){let o=(t>>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:o|0}}var hv=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0);G.add3L=hv;var yv=(e,t,r,n)=>t+r+n+(e/2**32|0)|0;G.add3H=yv;var bv=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0);G.add4L=bv;var xv=(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0;G.add4H=xv;var vv=(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0);G.add5L=vv;var wv=(e,t,r,n,o,s)=>t+r+n+o+s+(e/2**32|0)|0;G.add5H=wv;var yI={fromBig:$0,split:tv,toBig:rv,shrSH:nv,shrSL:ov,rotrSH:sv,rotrSL:av,rotrBH:iv,rotrBL:cv,rotr32H:mv,rotr32L:uv,rotlSH:pv,rotlSL:lv,rotlBH:fv,rotlBL:dv,add:gv,add3L:hv,add3H:yv,add4L:bv,add4H:xv,add5H:wv,add5L:vv};G.default=yI});var Sv=Yt(bl=>{"use strict";Object.defineProperty(bl,"__esModule",{value:!0});bl.crypto=void 0;var yo=Dn("crypto");bl.crypto=yo&&typeof yo=="object"&&"webcrypto"in yo?yo.webcrypto:yo&&typeof yo=="object"&&"randomBytes"in yo?yo:void 0});var $v=Yt(z=>{"use strict";Object.defineProperty(z,"__esModule",{value:!0});z.wrapXOFConstructorWithOpts=z.wrapConstructorWithOpts=z.wrapConstructor=z.Hash=z.nextTick=z.swap32IfBE=z.byteSwapIfBE=z.swap8IfBE=z.isLE=void 0;z.isBytes=Ev;z.anumber=R0;z.abytes=Xa;z.ahash=bI;z.aexists=xI;z.aoutput=vI;z.u8=wI;z.u32=CI;z.clean=SI;z.createView=kI;z.rotr=EI;z.rotl=_I;z.byteSwap=F0;z.byteSwap32=_v;z.bytesToHex=PI;z.hexToBytes=AI;z.asyncLoop=$I;z.utf8ToBytes=N0;z.bytesToUtf8=RI;z.toBytes=xl;z.kdfInputToBytes=MI;z.concatBytes=FI;z.checkOpts=NI;z.createHasher=Pv;z.createOptHasher=Av;z.createXOFer=Tv;z.randomBytes=LI;var Ya=Sv();function Ev(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function R0(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Xa(e,...t){if(!Ev(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function bI(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");R0(e.outputLen),R0(e.blockLen)}function xI(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function vI(e,t){Xa(e);let r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function wI(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function CI(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function SI(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function kI(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function EI(e,t){return e<<32-t|e>>>t}function _I(e,t){return e<<t|e>>>32-t>>>0}z.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function F0(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}z.swap8IfBE=z.isLE?e=>e:e=>F0(e);z.byteSwapIfBE=z.swap8IfBE;function _v(e){for(let t=0;t<e.length;t++)e[t]=F0(e[t]);return e}z.swap32IfBE=z.isLE?e=>e:_v;var Iv=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",II=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function PI(e){if(Xa(e),Iv)return e.toHex();let t="";for(let r=0;r<e.length;r++)t+=II[e[r]];return t}var En={_0:48,_9:57,A:65,F:70,a:97,f:102};function kv(e){if(e>=En._0&&e<=En._9)return e-En._0;if(e>=En.A&&e<=En.F)return e-(En.A-10);if(e>=En.a&&e<=En.f)return e-(En.a-10)}function AI(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Iv)return Uint8Array.fromHex(e);let t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let o=0,s=0;o<r;o++,s+=2){let a=kv(e.charCodeAt(s)),i=kv(e.charCodeAt(s+1));if(a===void 0||i===void 0){let c=e[s]+e[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=a*16+i}return n}var TI=async()=>{};z.nextTick=TI;async function $I(e,t,r){let n=Date.now();for(let o=0;o<e;o++){r(o);let s=Date.now()-n;s>=0&&s<t||(await(0,z.nextTick)(),n+=s)}}function N0(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function RI(e){return new TextDecoder().decode(e)}function xl(e){return typeof e=="string"&&(e=N0(e)),Xa(e),e}function MI(e){return typeof e=="string"&&(e=N0(e)),Xa(e),e}function FI(...e){let t=0;for(let n=0;n<e.length;n++){let o=e[n];Xa(o),t+=o.length}let r=new Uint8Array(t);for(let n=0,o=0;n<e.length;n++){let s=e[n];r.set(s,o),o+=s.length}return r}function NI(e,t){if(t!==void 0&&{}.toString.call(t)!=="[object Object]")throw new Error("options should be object or undefined");return Object.assign(e,t)}var M0=class{};z.Hash=M0;function Pv(e){let t=n=>e().update(xl(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Av(e){let t=(n,o)=>e(o).update(xl(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}function Tv(e){let t=(n,o)=>e(o).update(xl(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}z.wrapConstructor=Pv;z.wrapConstructorWithOpts=Av;z.wrapXOFConstructorWithOpts=Tv;function LI(e=32){if(Ya.crypto&&typeof Ya.crypto.getRandomValues=="function")return Ya.crypto.getRandomValues(new Uint8Array(e));if(Ya.crypto&&typeof Ya.crypto.randomBytes=="function")return Uint8Array.from(Ya.crypto.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}});var zv=Yt(Ee=>{"use strict";Object.defineProperty(Ee,"__esModule",{value:!0});Ee.shake256=Ee.shake128=Ee.keccak_512=Ee.keccak_384=Ee.keccak_256=Ee.keccak_224=Ee.sha3_512=Ee.sha3_384=Ee.sha3_256=Ee.sha3_224=Ee.Keccak=void 0;Ee.keccakP=Dv;var wc=Cv(),lt=$v(),BI=BigInt(0),vc=BigInt(1),DI=BigInt(2),UI=BigInt(7),zI=BigInt(256),OI=BigInt(113),Fv=[],Nv=[],Lv=[];for(let e=0,t=vc,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],Fv.push(2*(5*n+r)),Nv.push((e+1)*(e+2)/2%64);let o=BI;for(let s=0;s<7;s++)t=(t<<vc^(t>>UI)*OI)%zI,t&DI&&(o^=vc<<(vc<<BigInt(s))-vc);Lv.push(o)}var Bv=(0,wc.split)(Lv,!0),jI=Bv[0],HI=Bv[1],Rv=(e,t,r)=>r>32?(0,wc.rotlBH)(e,t,r):(0,wc.rotlSH)(e,t,r),Mv=(e,t,r)=>r>32?(0,wc.rotlBL)(e,t,r):(0,wc.rotlSL)(e,t,r);function Dv(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let a=0;a<10;a++)r[a]=e[a]^e[a+10]^e[a+20]^e[a+30]^e[a+40];for(let a=0;a<10;a+=2){let i=(a+8)%10,c=(a+2)%10,m=r[c],u=r[c+1],p=Rv(m,u,1)^r[i],l=Mv(m,u,1)^r[i+1];for(let d=0;d<50;d+=10)e[a+d]^=p,e[a+d+1]^=l}let o=e[2],s=e[3];for(let a=0;a<24;a++){let i=Nv[a],c=Rv(o,s,i),m=Mv(o,s,i),u=Fv[a];o=e[u],s=e[u+1],e[u]=c,e[u+1]=m}for(let a=0;a<50;a+=10){for(let i=0;i<10;i++)r[i]=e[a+i];for(let i=0;i<10;i++)e[a+i]^=~r[(i+2)%10]&r[(i+4)%10]}e[0]^=jI[n],e[1]^=HI[n]}(0,lt.clean)(r)}var Cc=class e extends lt.Hash{constructor(t,r,n,o=!1,s=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=o,this.rounds=s,(0,lt.anumber)(n),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=(0,lt.u32)(this.state)}clone(){return this._cloneInto()}keccak(){(0,lt.swap32IfBE)(this.state32),Dv(this.state32,this.rounds),(0,lt.swap32IfBE)(this.state32),this.posOut=0,this.pos=0}update(t){(0,lt.aexists)(this),t=(0,lt.toBytes)(t),(0,lt.abytes)(t);let{blockLen:r,state:n}=this,o=t.length;for(let s=0;s<o;){let a=Math.min(r-this.pos,o-s);for(let i=0;i<a;i++)n[this.pos++]^=t[s++];this.pos===r&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:t,suffix:r,pos:n,blockLen:o}=this;t[n]^=r,(r&128)!==0&&n===o-1&&this.keccak(),t[o-1]^=128,this.keccak()}writeInto(t){(0,lt.aexists)(this,!1),(0,lt.abytes)(t),this.finish();let r=this.state,{blockLen:n}=this;for(let o=0,s=t.length;o<s;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,s-o);t.set(r.subarray(this.posOut,this.posOut+a),o),this.posOut+=a,o+=a}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return(0,lt.anumber)(t),this.xofInto(new Uint8Array(t))}digestInto(t){if((0,lt.aoutput)(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,(0,lt.clean)(this.state)}_cloneInto(t){let{blockLen:r,suffix:n,outputLen:o,rounds:s,enableXOF:a}=this;return t||(t=new e(r,n,o,a,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=o,t.enableXOF=a,t.destroyed=this.destroyed,t}};Ee.Keccak=Cc;var bo=(e,t,r)=>(0,lt.createHasher)(()=>new Cc(t,e,r));Ee.sha3_224=bo(6,144,224/8);Ee.sha3_256=bo(6,136,256/8);Ee.sha3_384=bo(6,104,384/8);Ee.sha3_512=bo(6,72,512/8);Ee.keccak_224=bo(1,144,224/8);Ee.keccak_256=bo(1,136,256/8);Ee.keccak_384=bo(1,104,384/8);Ee.keccak_512=bo(1,72,512/8);var Uv=(e,t,r)=>(0,lt.createXOFer)((n={})=>new Cc(t,e,n.dkLen===void 0?r:n.dkLen,!0));Ee.shake128=Uv(31,168,128/8);Ee.shake256=Uv(31,136,256/8)});var Ov=Yt(L0=>{"use strict";Object.defineProperty(L0,"__esModule",{value:!0});L0.verifyEnvEncryptPublicKey=qI;var VI=zv(),GI=Dn("@noble/curves/secp256k1");function qI(e,t,r){if(t.length!==65)return null;let n=Buffer.from("dstack-env-encrypt-pubkey","utf8"),o=r;r.startsWith("0x")&&(o=r.slice(2));let s=Buffer.from(o,"hex"),a=Buffer.from(":","utf8"),i=Buffer.concat([n,a,s,Buffer.from(e)]),c=(0,VI.keccak_256)(i);try{let m=t.slice(0,32),u=t.slice(32,64),p=t[64],l=new Uint8Array(64);l.set(m,0),l.set(u,32);let d=GI.secp256k1.Signature.fromCompact(l).addRecoveryBit(p).recoverPublicKey(c);return"0x"+Buffer.from(d.toRawBytes(!0)).toString("hex")}catch(m){return console.error("signature verification failed:",m),null}}});import{readFileSync as _R}from"fs";import{dirname as IR,join as PR}from"path";import{fileURLToPath as AR}from"url";import{ZodError as P3}from"zod";import pi from"chalk";function rm(e){return e.split(/[\s-]+/).filter(Boolean).map((t,r)=>r===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("")}function ah(e){return e===void 0?[]:Array.isArray(e)?[...e]:[e]}function ih(e,t){let r={};for(let i of t.flagConfig.descriptors.values()){let c=t.flags[i.canonicalKey];c!==void 0&&(r[i.target]=c)}for(let i of t.flagConfig.negatedLookup.values())i.negatedKey&&t.flags[i.negatedKey]&&(r[i.target]=!1);t.passThrough.length>0&&(r["--"]=t.passThrough);let n={},o=e.arguments??[],s=[...t.positionals],a=0;for(let i of o){let c=i.target??rm(i.name);if(i.variadic){n[c]=s.slice(a),a=s.length;break}s[a]!==void 0&&(n[c]=s[a]),a+=1}return{options:r,positionals:n,raw:{flags:t.flags,positionals:t.positionals}}}import _S from"arg";var SS={name:"help",shorthand:"h",description:"Show help information for the current command",type:"boolean",target:"help"},kS={name:"version",shorthand:"v",description:"Show CLI version",type:"boolean",target:"version"},re={name:"interactive",shorthand:"i",description:"Enable interactive mode",type:"boolean",target:"interactive",group:"basic"},ch={name:"api-token",description:"API token used for authentication",type:"string",target:"apiToken",aliases:["api-key"],argumentName:"token",group:"basic"},br={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json",group:"basic"},Io=[SS,kS,ch,br],Un=[ch],he={name:"cvm_id",description:"CVM identifier (UUID, app_id, instance_id, or name)",required:!1,target:"cvmId"},fs={name:"cvm-id",description:"CVM identifier (UUID, app_id, instance_id, or name)",type:"string",target:"cvmId"},mh={name:"uuid",description:"[DEPRECATED] Use --cvm-id instead. CVM UUID.",type:"string",target:"cvmId",deprecated:!0,group:"deprecated"};import uh from"arg";function ph(e){let t={},r=new Map,n=new Map;if(!e)return{spec:t,descriptors:r,negatedLookup:n};for(let o of e){let s=`--${o.name}`,a=o.target??rm(o.name),i=ES(o.type);r.set(s,{option:o,canonicalKey:s,target:a,negatedKey:o.negatedName?`--${o.negatedName}`:void 0}),t[s]=i,o.shorthand&&(t[`-${o.shorthand}`]=s);for(let c of ah(o.aliases))t[`--${c}`]=s;if(o.negatedName){let c=`--${o.negatedName}`;if(o.type!=="boolean")throw new Error(`Negated option is only supported for boolean types: ${o.name}`);t[c]=uh.flag(()=>!0),n.set(c,{option:o,canonicalKey:s,target:a,negatedKey:c})}}return{spec:t,descriptors:r,negatedLookup:n}}function ES(e){switch(e){case"string":return(t="")=>t;case"number":return(t,r)=>{let n=Number(t);if(Number.isNaN(n))throw new Error(`Invalid value for ${r}: expected a number.`);return n};case"boolean":return uh.flag(()=>!0);case"string[]":return(t,r,n)=>{let o=Array.isArray(n)?[...n]:[];if(t==="")throw new Error(`Option ${r} expects a value.`);return o.push(t),o};case"number[]":return(t,r,n)=>{let o=Array.isArray(n)?[...n]:[],s=Number(t);if(Number.isNaN(s))throw new Error(`Invalid value for ${r}: expected a number.`);return o.push(s),o};default:throw new Error(`Unsupported option type: ${e}`)}}function IS(e){let t=e.indexOf("--");return t===-1?[[...e],[]]:[e.slice(0,t),e.slice(t+1)]}function wi(e,t,r={}){let n=[...Io,...t?[...t]:[]],o=ph(n),{permissive:s=!1,stopAtPositional:a=!1}=r,[i,c]=IS(e),m=_S(o.spec,{argv:i,permissive:s,stopAtPositional:a}),{_:u,...p}=m;return{positionals:u??[],flags:p,flagConfig:o,passThrough:c}}function nm(e){return e==="unstable"?" [UNSTABLE]":e==="deprecated"?" [DEPRECATED]":""}function sm(e){let{registry:t,executableName:r}=e,n=[];n.push(`Usage: ${r} <command> [options]`),n.push("");let o=t.getChildren(),s=c=>{switch(c){case"deploy":return"Deploy:";case"manage":return"Manage:";case"cvm-ops":return"CVM operations:";case"profile":return"Profile / auth:";case"advanced":return"Advanced:";case"deprecated":return"Deprecated:"}},a=["deploy","manage","cvm-ops","profile","advanced","deprecated"],i=c=>{let m=c.command?.meta??c.group?.meta;if(m?.category)return m.category;let u=c.name??"";return m?.stability==="deprecated"?"deprecated":u==="nodes"||u==="deploy"?"deploy":u==="apps"||u==="cvms"||u==="link"||u==="simulator"?"manage":u==="ssh"||u==="cp"||u==="ps"||u==="logs"?"cvm-ops":u==="login"||u==="logout"||u==="switch"||u==="status"?"profile":u==="api"||u==="self"?"advanced":u==="auth"||u==="config"||u==="docker"?"deprecated":"advanced"};for(let c of a){let m=o.filter(u=>i(u)===c).sort((u,p)=>(u.name??"").localeCompare(p.name??""));if(m.length!==0){n.push(s(c));for(let u of m){let p=u.command?.meta??u.group?.meta,l=(p?.description??"").split(`
48
- `)[0],d=p?.stability,g=d?nm(d):"",h=u.name??"",y=p?.aliases,b=y?.length?`${h} (${y.join(", ")})`:h;n.push(` ${b.padEnd(18)}${l}${g}`.trimEnd())}n.push("")}}n.push(""),n.push("Global options:");for(let c of Io){let m=om(c),u=Math.max(24,m.length+2);n.push(` ${m.padEnd(u)}${c.description??""}`.trimEnd())}return n.join(`
49
- `)}function lh(e){let{registry:t,executableName:r,groupPath:n}=e,o=t.getNode(n);if(!o?.group)return sm({registry:t,executableName:r});let s=[],a=n.join(" "),i=`${r} ${a}`;s.push(`Usage: ${i} <command> [options]`),s.push(""),o.group.meta.description&&(s.push(o.group.meta.description),s.push(""));let c=t.getChildren(n);if(c.length>0){s.push("Available commands:");for(let m of c){let u=m.command?.meta??m.group?.meta,p=(u?.description??"").split(`
50
- `)[0],l=u?.stability,d=l?nm(l):"",g=m.name??"",h=u?.aliases,y=h?.length?`${g} (${h.join(", ")})`:g;s.push(` ${y.padEnd(18)}${p}${d}`.trimEnd())}s.push("")}s.push("Global options:");for(let m of Io){let u=om(m),p=Math.max(24,u.length+2);s.push(` ${u.padEnd(p)}${m.description??""}`.trimEnd())}return s.join(`
51
- `)}function Mf(e){let{executableName:t,definition:r,registry:n}=e,o=PS({executableName:t,definition:r}),s=nm(r.meta.stability),a=[o,"",`${r.meta.description}${s}`],i=r.meta.arguments??[];if(i.length>0){a.push(""),a.push("Arguments:");for(let g of i){let h=TS(g);a.push(` ${h.padEnd(18)}${g.description??""}`.trimEnd())}}let c=[...r.meta.options??[]],m=Io.filter(g=>!g.hidden),u=c.filter(g=>!g.hidden),p=new Set(Io.map(g=>g.name)),l=u.filter(g=>!p.has(g.name));if(m.length>0){let g=new Set(l.map(h=>h.shorthand).filter(h=>typeof h=="string"&&h.length>0));a.push(""),a.push("Global options:");for(let h of m){let y=!h.shorthand||!g.has(h.shorthand),b=om(h,{includeShorthand:y}),x=Math.max(24,b.length+2);a.push(` ${b.padEnd(x)}${h.description??""}`.trimEnd())}}if(l.length>0){let g=x=>x.group==="deprecated"||x.deprecated?!0:(x.description??"").includes("[DEPRECATED]"),h=x=>x.group?x.group:g(x)?"deprecated":"basic",y={basic:[],advanced:[],deprecated:[]};for(let x of l)y[h(x)].push(x);let b=(x,v)=>{if(v.length!==0){a.push(""),a.push(x);for(let S of v){let E=om(S),_=Math.max(24,E.length+2);a.push(` ${E.padEnd(_)}${S.description??""}`.trimEnd())}}};b("Basic options:",y.basic),b("Advanced options:",y.advanced),b("Deprecated options:",y.deprecated)}if(r.meta.passThrough&&(a.push(""),a.push("Pass-through (after --):"),a.push(` ${r.meta.passThrough.description}`),r.meta.passThrough.examples&&r.meta.passThrough.examples.length>0)){a.push(""),a.push(" Examples:");for(let g of r.meta.passThrough.examples)a.push(` ${g}`)}if(r.meta.examples&&r.meta.examples.length>0){a.push(""),a.push("Examples:");for(let g of r.meta.examples)a.push(` # ${g.name}`),a.push(` ${g.value}`)}let d=n.getChildren(r.path);if(d.length>0){a.push(""),a.push("Subcommands:");for(let g of d){let h=g.command?.meta??g.group?.meta,y=(h?.description??"").split(`
52
- `)[0],b=h?.stability,x=b?nm(b):"",v=g.name??"",S=h?.aliases,E=S?.length?`${v} (${S.join(", ")})`:v;a.push(` ${E.padEnd(18)}${y}${x}`.trimEnd())}}return a.join(`
53
- `)}function PS({executableName:e,definition:t}){let r=[e,...t.path],o=(t.meta.arguments??[]).map(m=>AS(m)).join(" "),a=(t.meta.options?.length??0)>0?" [options]":"",i=o?` ${o}`:"",c=t.meta.passThrough?" [--] [...]":"";return`Usage: ${r.join(" ")}${a}${i}${c}`}function AS(e){let t=`<${e.name}>`;return e.variadic?`${t}...`:e.required===!1?`[${t}]`:t}function TS(e){return e.variadic?`<${e.name}...>`:e.required===!1?`<${e.name}>?`:`<${e.name}>`}function om(e,{includeShorthand:t=!0}={}){let r=[];t&&e.shorthand&&r.push(`-${e.shorthand}`);let n=`--${e.name}`;if(e.argumentName?n+=` ${e.argumentName.toUpperCase()}`:e.type!=="boolean"&&(n+=" <value>"),r.push(n),e.aliases&&e.aliases.length>0)for(let o of e.aliases){let s=`--${o}`;e.argumentName?s+=` ${e.argumentName.toUpperCase()}`:e.type!=="boolean"&&(s+=" <value>"),r.push(s)}return e.type==="boolean"&&e.negatedName&&r.push(`--${e.negatedName}`),r.join(", ")}var Ff=!1;function Ci(e){Ff=e}function we(){return Ff}function Nf(){return!Ff}import a3 from"path";import $l from"fs-extra";import Tw from"@iarna/toml";import{z as Rr}from"zod";var Wv=vi(xh(),1);import{ofetch as KI}from"ofetch";function vh(e){return{all:e=e||new Map,on:function(t,r){var n=e.get(t);n?n.push(r):e.set(t,[r])},off:function(t,r){var n=e.get(t);n&&(r?n.splice(n.indexOf(r)>>>0,1):e.set(t,[]))},emit:function(t,r){var n=e.get(t);n&&n.slice().map(function(o){o(r)}),(n=e.get("*"))&&n.slice().map(function(o){o(t,r)})}}}import{z as tt}from"zod";import{z as _e}from"zod";import{z as xo}from"zod";import{z as X}from"zod";import{z as vo}from"zod";function Ao(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}hm();Ge();hm();var Of={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function $o(e,t){let r={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?Ae(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?Ae(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?Of[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(r.authorizationList=nk(e.authorizationList)),r.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof r.v=="bigint"){if(r.v===0n||r.v===27n)return 0;if(r.v===1n||r.v===28n)return 1;if(r.v>=35n)return r.v%2n===0n?1:0}})(),r.type==="legacy"&&(delete r.accessList,delete r.maxFeePerBlobGas,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.yParity),r.type==="eip2930"&&(delete r.maxFeePerBlobGas,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas),r.type==="eip1559"&&delete r.maxFeePerBlobGas,r}var kh=bs("transaction",$o);function nk(e){return e.map(t=>({address:t.address,chainId:Number(t.chainId),nonce:Number(t.nonce),r:t.r,s:t.s,yParity:Number(t.yParity)}))}function Ii(e,t){let r=(e.transactions??[]).map(n=>typeof n=="string"?n:$o(n));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:r,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}var Eh=bs("block",Ii);function at(e,{args:t,eventName:r}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...r?{args:t,eventName:r}:{}}}Ge();hm();var jf={"0x0":"reverted","0x1":"success"};function Pi(e,t){let r={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(n=>at(n)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Ae(e.transactionIndex):null,status:e.status?jf[e.status]:null,type:e.type?Of[e.type]||e.type:null};return e.blobGasPrice&&(r.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(r.blobGasUsed=BigInt(e.blobGasUsed)),r}var _h=bs("transactionReceipt",Pi);K();bm();Ye();D();function wr(e,t="hex"){let r=Ih(e),n=ws(new Uint8Array(r.length));return r.encode(n),t==="hex"?oe(n.bytes):n.bytes}function Ih(e){return Array.isArray(e)?ck(e.map(t=>Ih(t))):mk(e)}function ck(e){let t=e.reduce((o,s)=>o+s.length,0),r=Ph(t);return{length:t<=55?1+t:1+r+t,encode(o){t<=55?o.pushByte(192+t):(o.pushByte(247+r),r===1?o.pushUint8(t):r===2?o.pushUint16(t):r===3?o.pushUint24(t):o.pushUint32(t));for(let{encode:s}of e)s(o)}}}function mk(e){let t=typeof e=="string"?qe(e):e,r=Ph(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+r+t.length,encode(o){t.length===1&&t[0]<128?o.pushBytes(t):t.length<=55?(o.pushByte(128+t.length),o.pushBytes(t)):(o.pushByte(183+r),r===1?o.pushUint8(t.length):r===2?o.pushUint16(t.length):r===3?o.pushUint24(t.length):o.pushUint32(t.length),o.pushBytes(t))}}}function Ph(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new w("Length is too large.")}zt();D();function Th(e){if(!e||e.length===0)return[];let t=[];for(let r of e){let{chainId:n,nonce:o,...s}=r,a=r.address;t.push([n?ye(n):"0x",a,o?ye(o):"0x",...Is({},s)])}return t}Ye();D();function Ps(e){let{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(s=>qe(s)):e.blobs,o=[];for(let s of n)o.push(Uint8Array.from(t.blobToKzgCommitment(s)));return r==="bytes"?o:o.map(s=>oe(s))}Ye();D();function As(e){let{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(a=>qe(a)):e.blobs,o=typeof e.commitments[0]=="string"?e.commitments.map(a=>qe(a)):e.commitments,s=[];for(let a=0;a<n.length;a++){let i=n[a],c=o[a];s.push(Uint8Array.from(t.computeBlobKzgProof(i,c)))}return r==="bytes"?s:s.map(a=>oe(a))}D();Rm();function gk(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let o=BigInt(32),s=BigInt(4294967295),a=Number(r>>o&s),i=Number(r&s),c=n?4:0,m=n?0:4;e.setUint32(t+c,a,n),e.setUint32(t+m,i,n)}function Rh(e,t,r){return e&t^~e&r}function Mh(e,t,r){return e&t^e&r^t&r}var Mm=class extends Ts{constructor(t,r,n,o){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=Tm(this.buffer)}update(t){$s(this),t=Ti(t),Mo(t);let{view:r,buffer:n,blockLen:o}=this,s=t.length;for(let a=0;a<s;){let i=Math.min(o-this.pos,s-a);if(i===o){let c=Tm(t);for(;o<=s-a;a+=o)this.process(c,a);continue}n.set(t.subarray(a,a+i),this.pos),this.pos+=i,a+=i,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){$s(this),Am(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:s}=this,{pos:a}=this;r[a++]=128,jn(this.buffer.subarray(a)),this.padOffset>o-a&&(this.process(n,0),a=0);for(let p=a;p<o;p++)r[p]=0;gk(n,o-8,BigInt(this.length*8),s),this.process(n,0);let i=Tm(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let m=c/4,u=this.get();if(m>u.length)throw new Error("_sha2: outputLen bigger than state");for(let p=0;p<m;p++)i.setUint32(4*p,u[p],s)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:o,finished:s,destroyed:a,pos:i}=this;return t.destroyed=a,t.finished=s,t.length=o,t.pos=i,o%r&&t.buffer.set(n),t}clone(){return this._cloneInto()}},pn=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);Rm();var yk=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Hn=new Uint32Array(64),Nm=class extends Mm{constructor(t=32){super(64,t,8,!1),this.A=pn[0]|0,this.B=pn[1]|0,this.C=pn[2]|0,this.D=pn[3]|0,this.E=pn[4]|0,this.F=pn[5]|0,this.G=pn[6]|0,this.H=pn[7]|0}get(){let{A:t,B:r,C:n,D:o,E:s,F:a,G:i,H:c}=this;return[t,r,n,o,s,a,i,c]}set(t,r,n,o,s,a,i,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=a|0,this.G=i|0,this.H=c|0}process(t,r){for(let p=0;p<16;p++,r+=4)Hn[p]=t.getUint32(r,!1);for(let p=16;p<64;p++){let l=Hn[p-15],d=Hn[p-2],g=Cr(l,7)^Cr(l,18)^l>>>3,h=Cr(d,17)^Cr(d,19)^d>>>10;Hn[p]=h+Hn[p-7]+g+Hn[p-16]|0}let{A:n,B:o,C:s,D:a,E:i,F:c,G:m,H:u}=this;for(let p=0;p<64;p++){let l=Cr(i,6)^Cr(i,11)^Cr(i,25),d=u+l+Rh(i,c,m)+yk[p]+Hn[p]|0,h=(Cr(n,2)^Cr(n,13)^Cr(n,22))+Mh(n,o,s)|0;u=m,m=c,c=i,i=a+d|0,a=s,s=o,o=n,n=d+h|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,a=a+this.D|0,i=i+this.E|0,c=c+this.F|0,m=m+this.G|0,u=u+this.H|0,this.set(n,o,s,a,i,c,m,u)}roundClean(){jn(Hn)}destroy(){this.set(0,0,0,0,0,0,0,0),jn(this.buffer)}};var Oh=$m(()=>new Nm);var jh=Oh;Ut();Ye();D();function Hh(e,t){let r=t||"hex",n=jh(xe(e,{strict:!1})?Qt(e):e);return r==="bytes"?n:ye(n)}function Vh(e){let{commitment:t,version:r=1}=e,n=e.to??(typeof t=="string"?"hex":"bytes"),o=Hh(t,"bytes");return o.set([r],0),n==="bytes"?o:oe(o)}function Lm(e){let{commitments:t,version:r}=e,n=e.to??(typeof t[0]=="string"?"hex":"bytes"),o=[];for(let s of t)o.push(Vh({commitment:s,to:n,version:r}));return o}K();var Bm=class extends w{constructor({maxSize:t,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}},Rs=class extends w{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}},Dm=class extends w{constructor({hash:t,size:r}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}},Um=class extends w{constructor({hash:t,version:r}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${1}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}};bm();Xt();Ye();D();function Gh(e){let t=e.to??(typeof e.data=="string"?"hex":"bytes"),r=typeof e.data=="string"?qe(e.data):e.data,n=ne(r);if(!n)throw new Rs;if(n>761855)throw new Bm({maxSize:761855,size:n});let o=[],s=!0,a=0;for(;s;){let i=ws(new Uint8Array(131072)),c=0;for(;c<4096;){let m=r.slice(a,a+31);if(i.pushByte(0),i.pushBytes(m),m.length<31){i.pushByte(128),s=!1;break}c++,a+=31}o.push(i)}return t==="bytes"?o.map(i=>i.bytes):o.map(i=>oe(i.bytes))}function zm(e){let{data:t,kzg:r,to:n}=e,o=e.blobs??Gh({data:t,to:n}),s=e.commitments??Ps({blobs:o,kzg:r,to:n}),a=e.proofs??As({blobs:o,commitments:s,kzg:r,to:n}),i=[];for(let c=0;c<o.length;c++)i.push({blob:o[c],commitment:s[c],proof:a[c]});return i}yt();To();D();Hf();Sr();K();Ri();Vn();Ot();Xt();qn();Ge();function ey(e){let{authorizationList:t}=e;if(t)for(let r of t){let{chainId:n}=r,o=r.address;if(!ie(o))throw new de({address:o});if(n<0)throw new No({chainId:n})}Gm(e)}function ty(e){let{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Rs;for(let r of t){let n=ne(r),o=Ae(or(r,0,1));if(n!==32)throw new Dm({hash:r,size:n});if(o!==1)throw new Um({hash:r,version:o})}}Gm(e)}function Gm(e){let{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:n,to:o}=e;if(t<=0)throw new No({chainId:t});if(o&&!ie(o))throw new de({address:o});if(n&&n>xs)throw new er({maxFeePerGas:n});if(r&&n&&r>n)throw new Nr({maxFeePerGas:n,maxPriorityFeePerGas:r})}function ry(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s}=e;if(t<=0)throw new No({chainId:t});if(s&&!ie(s))throw new de({address:s});if(r||o)throw new w("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>xs)throw new er({maxFeePerGas:n})}function ny(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s}=e;if(s&&!ie(s))throw new de({address:s});if(typeof t<"u"&&t<=0)throw new No({chainId:t});if(r||o)throw new w("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>xs)throw new er({maxFeePerGas:n})}zt();function qm(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new Em({transaction:e})}Sr();zt();Ot();function Fi(e){if(!e||e.length===0)return[];let t=[];for(let r=0;r<e.length;r++){let{address:n,storageKeys:o}=e[r];for(let s=0;s<o.length;s++)if(o[s].length-2!==64)throw new _m({storageKey:o[s]});if(!ie(n,{strict:!1}))throw new de({address:n});t.push([n,o])}return t}function Km(e,t){let r=qm(e);return r==="eip1559"?Rk(e,t):r==="eip2930"?Mk(e,t):r==="eip4844"?$k(e,t):r==="eip7702"?Tk(e,t):Fk(e,t)}function Tk(e,t){let{authorizationList:r,chainId:n,gas:o,nonce:s,to:a,value:i,maxFeePerGas:c,maxPriorityFeePerGas:m,accessList:u,data:p}=e;ey(e);let l=Fi(u),d=Th(r);return Xe(["0x04",wr([k(n),s?k(s):"0x",m?k(m):"0x",c?k(c):"0x",o?k(o):"0x",a??"0x",i?k(i):"0x",p??"0x",l,d,...Is(e,t)])])}function $k(e,t){let{chainId:r,gas:n,nonce:o,to:s,value:a,maxFeePerBlobGas:i,maxFeePerGas:c,maxPriorityFeePerGas:m,accessList:u,data:p}=e;ty(e);let l=e.blobVersionedHashes,d=e.sidecars;if(e.blobs&&(typeof l>"u"||typeof d>"u")){let v=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(_=>oe(_)),S=e.kzg,E=Ps({blobs:v,kzg:S});if(typeof l>"u"&&(l=Lm({commitments:E})),typeof d>"u"){let _=As({blobs:v,commitments:E,kzg:S});d=zm({blobs:v,commitments:E,proofs:_})}}let g=Fi(u),h=[k(r),o?k(o):"0x",m?k(m):"0x",c?k(c):"0x",n?k(n):"0x",s??"0x",a?k(a):"0x",p??"0x",g,i?k(i):"0x",l??[],...Is(e,t)],y=[],b=[],x=[];if(d)for(let v=0;v<d.length;v++){let{blob:S,commitment:E,proof:_}=d[v];y.push(S),b.push(E),x.push(_)}return Xe(["0x03",d?wr([h,y,b,x]):wr(h)])}function Rk(e,t){let{chainId:r,gas:n,nonce:o,to:s,value:a,maxFeePerGas:i,maxPriorityFeePerGas:c,accessList:m,data:u}=e;Gm(e);let p=Fi(m),l=[k(r),o?k(o):"0x",c?k(c):"0x",i?k(i):"0x",n?k(n):"0x",s??"0x",a?k(a):"0x",u??"0x",p,...Is(e,t)];return Xe(["0x02",wr(l)])}function Mk(e,t){let{chainId:r,gas:n,data:o,nonce:s,to:a,value:i,accessList:c,gasPrice:m}=e;ry(e);let u=Fi(c),p=[k(r),s?k(s):"0x",m?k(m):"0x",n?k(n):"0x",a??"0x",i?k(i):"0x",o??"0x",u,...Is(e,t)];return Xe(["0x01",wr(p)])}function Fk(e,t){let{chainId:r=0,gas:n,data:o,nonce:s,to:a,value:i,gasPrice:c}=e;ny(e);let m=[s?k(s):"0x",c?k(c):"0x",n?k(n):"0x",a??"0x",i?k(i):"0x",o??"0x"];if(t){let u=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(r>0)return BigInt(r*2)+BigInt(35n+t.v-27n);let d=27n+(t.v===27n?0n:1n);if(t.v!==d)throw new km({v:t.v});return d})(),p=Ze(t.r),l=Ze(t.s);m=[...m,k(u),p==="0x00"?"0x":p,l==="0x00"?"0x":l]}else r>0&&(m=[...m,k(r),"0x","0x"]);return wr(m)}function Is(e,t){let r=t??e,{v:n,yParity:o}=r;if(typeof r.r>"u")return[];if(typeof r.s>"u")return[];if(typeof n>"u"&&typeof o>"u")return[];let s=Ze(r.r),a=Ze(r.s);return[typeof o=="number"?o?k(1):"0x":n===0n?"0x":n===1n?k(1):n===27n?"0x":k(1),s==="0x00"?"0x":s,a==="0x00"?"0x":a]}var oy={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};Ge();var sy={block:Eh({format(e){return{transactions:e.transactions?.map(r=>{if(typeof r=="string")return r;let n=$o(r);return n.typeHex==="0x7e"&&(n.isSystemTx=r.isSystemTx,n.mint=r.mint?be(r.mint):void 0,n.sourceHash=r.sourceHash,n.type="deposit"),n}),stateRoot:e.stateRoot}}}),transaction:kh({format(e){let t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?be(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:_h({format(e){return{l1GasPrice:e.l1GasPrice?be(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?be(e.l1GasUsed):null,l1Fee:e.l1Fee?be(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};Sr();Ot();yt();D();function Nk(e,t){return Bk(e)?Lk(e):Km(e,t)}var ay={transaction:Nk};function Lk(e){Dk(e);let{sourceHash:t,data:r,from:n,gas:o,isSystemTx:s,mint:a,to:i,value:c}=e,m=[t,n,i??"0x",a?ye(a):"0x",c?ye(c):"0x",o?ye(o):"0x",s?"0x1":"0x",r??"0x"];return Xe(["0x7e",wr(m)])}function Bk(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function Dk(e){let{from:t,to:r}=e;if(t&&!ie(t))throw new de({address:t});if(r&&!ie(r))throw new de({address:r})}var Qf={blockTime:2e3,contracts:oy,formatters:sy,serializers:ay};var Wm=Ao({id:31337,name:"Anvil",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["http://127.0.0.1:8545"],webSocket:["ws://127.0.0.1:8545"]}}});var Ni=1,Li=Ao({...Qf,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...Qf.contracts,disputeGameFactory:{[Ni]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[Ni]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[Ni]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[Ni]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:Ni}),Uk=Ao({...Li,experimental_preconfirmationTime:200,rpcUrls:{default:{http:["https://mainnet-preconf.base.org"]}}});Ri();function Hs({chain:e,currentChainId:t}){if(!e)throw new jm;if(t!==e.id)throw new Om({chain:e,currentChainId:t})}K();var Qe=class extends w{constructor({docsPath:t}={}){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(`
54
- `),{docsPath:t,docsSlug:"account",name:"AccountNotFoundError"})}},ar=class extends w{constructor({docsPath:t,metaMessages:r,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:t,metaMessages:r,name:"AccountTypeNotSupportedError"})}};var Hu=Ao({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12e3,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}});import{z as Le}from"zod";import{z as Ct}from"zod";import{z as $}from"zod";import{z as M}from"zod";import{z as ei}from"zod";import{z as ti}from"zod";import{z as Y}from"zod";import{z as ft}from"zod";import{z as te}from"zod";import oP from"crypto";import{z as Qr}from"zod";import{z as Ar}from"zod";import{z as ot}from"zod";import{z as Ft}from"zod";import{z as Nt}from"zod";import{z as FP}from"zod";import{z as Hv}from"zod";import{z as en}from"zod";import{z as ai}from"zod";import{z as rs}from"zod";import{z as Ce}from"zod";import{z as sA}from"zod";import{z as cA}from"zod";import{z as pe}from"zod";import{z as Yr}from"zod";import{z as CA}from"zod";import{z as Ne}from"zod";import{z as V}from"zod";import{z as oi}from"zod";import{z as U0}from"zod";import{z as dt}from"zod";import{z as fw}from"zod";import{z as Zr}from"zod";import{z as Mt}from"zod";import{z as wo}from"zod";import{z as z0}from"zod";import{z as j0}from"zod";import{z as ts}from"zod";import{z as U}from"zod";import{z as ce}from"zod";import{z as se}from"zod";import{z as He}from"zod";function T(e,t,r){let n=e[t.name];if(typeof n=="function")return n;let o=e[r];return typeof o=="function"?o:s=>t(e,s)}Me();K();var Vu=class extends w{constructor(t){super(`Filter type "${t}" is not supported.`,{name:"FilterTypeNotSupportedError"})}};Ye();nr();qi();hn();dn();Jn();var sb="/docs/contract/encodeEventTopics";function Hr(e){let{abi:t,eventName:r,args:n}=e,o=t[0];if(r){let c=At({abi:t,name:r});if(!c)throw new zi(r,{docsPath:sb});o=c}if(o.type!=="event")throw new zi(void 0,{docsPath:sb});let s=We(o),a=Wn(s),i=[];if(n&&"inputs"in o){let c=o.inputs?.filter(u=>"indexed"in u&&u.indexed),m=Array.isArray(n)?n:Object.values(n).length>0?c?.map(u=>n[u.name])??[]:[];m.length>0&&(i=c?.map((u,p)=>Array.isArray(m[p])?m[p].map((l,d)=>ab({param:u,value:m[p][d]})):typeof m[p]<"u"&&m[p]!==null?ab({param:u,value:m[p]}):null)??[])}return[a,...i]}function ab({param:e,value:t}){if(e.type==="string"||e.type==="bytes")return ge(Qt(t));if(e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/))throw new Vu(e.type);return bt([e],[t])}D();function ro(e,{method:t}){let r={};return e.transport.type==="fallback"&&e.transport.onResponse?.(({method:n,response:o,status:s,transport:a})=>{s==="success"&&t===n&&(r[o]=a.request)}),(n=>r[n]||e.request)}async function Gu(e,t){let{address:r,abi:n,args:o,eventName:s,fromBlock:a,strict:i,toBlock:c}=t,m=ro(e,{method:"eth_newFilter"}),u=s?Hr({abi:n,args:o,eventName:s}):void 0,p=await e.request({method:"eth_newFilter",params:[{address:r,fromBlock:typeof a=="bigint"?k(a):a,toBlock:typeof c=="bigint"?k(c):c,topics:u}]});return{abi:n,args:o,eventName:s,id:p,request:m(p),strict:!!i,type:"event"}}Re();Ht();Me();K();Zn();zo();wa();var yE=3;function Vt(e,{abi:t,address:r,args:n,docsPath:o,functionName:s,sender:a}){let i=e instanceof zr?e:e instanceof w?e.walk(g=>"data"in g)||e.walk():{},{code:c,data:m,details:u,message:p,shortMessage:l}=i,d=e instanceof ir?new Uu({functionName:s}):[yE,bn.code].includes(c)&&(m||u||p||l)?new Uo({abi:t,data:typeof m=="object"?m.data:m,functionName:s,message:i instanceof Yn?u:l??p}):e;return new ra(d,{abi:t,args:n,contractAddress:r,docsPath:o,functionName:s,sender:a})}Re();K();Gn();nr();function qu(e){let t=ge(`0x${e.substring(4)}`).substring(26);return fn(`0x${t}`)}Ut();Xt();Ge();D();async function pb({hash:e,signature:t}){let r=xe(e)?e:ye(e),{secp256k1:n}=await import("@noble/curves/secp256k1");return`0x${(()=>{if(typeof t=="object"&&"r"in t&&"s"in t){let{r:m,s:u,v:p,yParity:l}=t,d=Number(l??p),g=ub(d);return new n.Signature(be(m),be(u)).addRecoveryBit(g)}let a=xe(t)?t:ye(t);if(ne(a)!==65)throw new Error("invalid signature length");let i=Ae(`0x${a.slice(130)}`),c=ub(i);return n.Signature.fromCompact(a.substring(2,130)).addRecoveryBit(c)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}function ub(e){if(e===0||e===1)return e;if(e===27)return 0;if(e===28)return 1;throw new Error("Invalid yParityOrV value")}async function Ku({hash:e,signature:t}){return qu(await pb({hash:e,signature:t}))}yt();Ye();D();nr();function Wu(e){let{chainId:t,nonce:r,to:n}=e,o=e.contractAddress??e.address,s=ge(Xe(["0x05",wr([t?k(t):"0x",o,r?k(r):"0x"])]));return n==="bytes"?qe(s):s}async function no(e){let{authorization:t,signature:r}=e;return Ku({hash:Wu(t),signature:r??t})}D();Cm();Ss();K();zt();var Ju=class extends w{constructor(t,{account:r,docsPath:n,chain:o,data:s,gas:a,gasPrice:i,maxFeePerGas:c,maxPriorityFeePerGas:m,nonce:u,to:p,value:l}){let d=Ro({from:r?.address,to:p,value:typeof l<"u"&&`${Cs(l)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:s,gas:a,gasPrice:typeof i<"u"&&`${Ke(i)} gwei`,maxFeePerGas:typeof c<"u"&&`${Ke(c)} gwei`,maxPriorityFeePerGas:typeof m<"u"&&`${Ke(m)} gwei`,nonce:u});super(t.shortMessage,{cause:t,docsPath:n,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Estimate Gas Arguments:",d].filter(Boolean),name:"EstimateGasExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}};Vn();Wi();function lb(e,{docsPath:t,...r}){let n=(()=>{let o=to(e,r);return o instanceof tr?e:o})();return new Ju(n,{docsPath:t,...r})}Ca();On();Zu();xn();Re();Ss();K();var Yu=class extends w{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}},oo=class extends w{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}},Xu=class extends w{constructor({maxPriorityFeePerGas:t}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${Ke(t)} gwei).`,{name:"MaxFeePerGasTooLowError"})}};Ge();K();var ka=class extends w{constructor({blockHash:t,blockNumber:r}){let n="Block";t&&(n=`Block at hash "${t}"`),r&&(n=`Block at number "${r}"`),super(`${n} could not be found.`,{name:"BlockNotFoundError"})}};D();async function ut(e,{blockHash:t,blockNumber:r,blockTag:n=e.experimental_blockTag??"latest",includeTransactions:o}={}){let s=o??!1,a=r!==void 0?k(r):void 0,i=null;if(t?i=await e.request({method:"eth_getBlockByHash",params:[t,s]},{dedupe:!0}):i=await e.request({method:"eth_getBlockByNumber",params:[a||n,s]},{dedupe:!!a}),!i)throw new ka({blockHash:t,blockNumber:r});return(e.chain?.formatters?.block?.format||Ii)(i,"getBlock")}async function Ea(e){let t=await e.request({method:"eth_gasPrice"});return BigInt(t)}async function db(e,t){return hd(e,t)}async function hd(e,t){let{block:r,chain:n=e.chain,request:o}=t||{};try{let s=n?.fees?.maxPriorityFeePerGas??n?.fees?.defaultPriorityFee;if(typeof s=="function"){let i=r||await T(e,ut,"getBlock")({}),c=await s({block:i,client:e,request:o});if(c===null)throw new Error;return c}if(typeof s<"u")return s;let a=await e.request({method:"eth_maxPriorityFeePerGas"});return be(a)}catch{let[s,a]=await Promise.all([r?Promise.resolve(r):T(e,ut,"getBlock")({}),T(e,Ea,"getGasPrice")({})]);if(typeof s.baseFeePerGas!="bigint")throw new oo;let i=a-s.baseFeePerGas;return i<0n?0n:i}}async function gb(e,t){return Qu(e,t)}async function Qu(e,t){let{block:r,chain:n=e.chain,request:o,type:s="eip1559"}=t||{},a=await(async()=>typeof n?.fees?.baseFeeMultiplier=="function"?n.fees.baseFeeMultiplier({block:r,client:e,request:o}):n?.fees?.baseFeeMultiplier??1.2)();if(a<1)throw new Yu;let c=10**(a.toString().split(".")[1]?.length??0),m=l=>l*BigInt(Math.ceil(a*c))/BigInt(c),u=r||await T(e,ut,"getBlock")({});if(typeof n?.fees?.estimateFeesPerGas=="function"){let l=await n.fees.estimateFeesPerGas({block:r,client:e,multiply:m,request:o,type:s});if(l!==null)return l}if(s==="eip1559"){if(typeof u.baseFeePerGas!="bigint")throw new oo;let l=typeof o?.maxPriorityFeePerGas=="bigint"?o.maxPriorityFeePerGas:await hd(e,{block:u,chain:n,request:o}),d=m(u.baseFeePerGas);return{maxFeePerGas:o?.maxFeePerGas??d+l,maxPriorityFeePerGas:l}}return{gasPrice:o?.gasPrice??m(await T(e,Ea,"getGasPrice")({}))}}Ge();D();async function _a(e,{address:t,blockTag:r="latest",blockNumber:n}){let o=await e.request({method:"eth_getTransactionCount",params:[t,typeof n=="bigint"?k(n):r]},{dedupe:!!n});return Ae(o)}xn();Ge();async function Tt(e){let t=await e.request({method:"eth_chainId"},{dedupe:!0});return Ae(t)}var Ji=["blobVersionedHashes","chainId","fees","gas","nonce","type"],hb=new Map;async function Vr(e,t){let{account:r=e.account,blobs:n,chain:o,gas:s,kzg:a,nonce:i,nonceManager:c,parameters:m=Ji,type:u}=t,p=r&&W(r),l={...t,...p?{from:p?.address}:{}},d;async function g(){return d||(d=await T(e,ut,"getBlock")({blockTag:"latest"}),d)}let h;async function y(){return h||(o?o.id:typeof t.chainId<"u"?t.chainId:(h=await T(e,Tt,"getChainId")({}),h))}if(m.includes("nonce")&&typeof i>"u"&&p)if(c){let b=await y();l.nonce=await c.consume({address:p.address,chainId:b,client:e})}else l.nonce=await T(e,_a,"getTransactionCount")({address:p.address,blockTag:"pending"});if((m.includes("blobVersionedHashes")||m.includes("sidecars"))&&n&&a){let b=Ps({blobs:n,kzg:a});if(m.includes("blobVersionedHashes")){let x=Lm({commitments:b,to:"hex"});l.blobVersionedHashes=x}if(m.includes("sidecars")){let x=As({blobs:n,commitments:b,kzg:a}),v=zm({blobs:n,commitments:b,proofs:x,to:"hex"});l.sidecars=v}}if(m.includes("chainId")&&(l.chainId=await y()),(m.includes("fees")||m.includes("type"))&&typeof u>"u")try{l.type=qm(l)}catch{let b=hb.get(e.uid);typeof b>"u"&&(b=typeof(await g())?.baseFeePerGas=="bigint",hb.set(e.uid,b)),l.type=b?"eip1559":"legacy"}if(m.includes("fees"))if(l.type!=="legacy"&&l.type!=="eip2930"){if(typeof l.maxFeePerGas>"u"||typeof l.maxPriorityFeePerGas>"u"){let b=await g(),{maxFeePerGas:x,maxPriorityFeePerGas:v}=await Qu(e,{block:b,chain:o,request:l});if(typeof t.maxPriorityFeePerGas>"u"&&t.maxFeePerGas&&t.maxFeePerGas<v)throw new Xu({maxPriorityFeePerGas:v});l.maxPriorityFeePerGas=v,l.maxFeePerGas=x}}else{if(typeof t.maxFeePerGas<"u"||typeof t.maxPriorityFeePerGas<"u")throw new oo;if(typeof t.gasPrice>"u"){let b=await g(),{gasPrice:x}=await Qu(e,{block:b,chain:o,request:l,type:"legacy"});l.gasPrice=x}}return m.includes("gas")&&typeof s>"u"&&(l.gas=await T(e,Ia,"estimateGas")({...l,account:p,prepare:p?.type==="local"?[]:["blobVersionedHashes"]})),mt(l),delete l.parameters,l}async function Ia(e,t){let{account:r=e.account,prepare:n=!0}=t,o=r?W(r):void 0,s=(()=>{if(Array.isArray(n))return n;if(o?.type!=="local")return["blobVersionedHashes"]})();try{let{accessList:a,authorizationList:i,blobs:c,blobVersionedHashes:m,blockNumber:u,blockTag:p,data:l,gas:d,gasPrice:g,maxFeePerBlobGas:h,maxFeePerGas:y,maxPriorityFeePerGas:b,nonce:x,value:v,stateOverride:S,...E}=n?await Vr(e,{...t,parameters:s}):t,I=(typeof u=="bigint"?k(u):void 0)||p,R=Sa(S),N=await(async()=>{if(E.to)return E.to;if(i&&i.length>0)return await no({authorization:i[0]}).catch(()=>{throw new w("`to` is required. Could not infer from `authorizationList`")})})();mt(t);let L=e.chain?.formatters?.transactionRequest?.format,j=(L||It)({...jr(E,{format:L}),account:o,accessList:a,authorizationList:i,blobs:c,blobVersionedHashes:m,data:l,gas:d,gasPrice:g,maxFeePerBlobGas:h,maxFeePerGas:y,maxPriorityFeePerGas:b,nonce:x,to:N,value:v},"estimateGas");return BigInt(await e.request({method:"eth_estimateGas",params:R?[j,I??e.experimental_blockTag??"latest",R]:I?[j,I]:[j]}))}catch(a){throw lb(a,{...t,account:o,chain:e.chain})}}async function yb(e,t){let{abi:r,address:n,args:o,functionName:s,dataSuffix:a,...i}=t,c=ke({abi:r,args:o,functionName:s});try{return await T(e,Ia,"estimateGas")({data:`${c}${a?a.replace("0x",""):""}`,to:n,...i})}catch(m){let u=i.account?W(i.account):void 0;throw Vt(m,{abi:r,address:n,args:o,docsPath:"/docs/contract/estimateContractGas",functionName:s,sender:u?.address})}}Jn();Me();Ho();Ye();nr();qi();Me();Vf();Xt();qi();Gi();dn();var bb="/docs/contract/decodeEventLog";function Pa(e){let{abi:t,data:r,strict:n,topics:o}=e,s=n??!0,[a,...i]=o;if(!a)throw new nu({docsPath:bb});let c=t.find(h=>h.type==="event"&&a===Wn(We(h)));if(!(c&&"name"in c)||c.type!=="event")throw new qs(a,{docsPath:bb});let{name:m,inputs:u}=c,p=u?.some(h=>!("name"in h&&h.name)),l=p?[]:{},d=u.map((h,y)=>[h,y]).filter(([h])=>"indexed"in h&&h.indexed);for(let h=0;h<d.length;h++){let[y,b]=d[h],x=i[h];if(!x)throw new Lr({abiItem:c,param:y});l[p?b:y.name||b]=xE({param:y,value:x})}let g=u.filter(h=>!("indexed"in h&&h.indexed));if(g.length>0){if(r&&r!=="0x")try{let h=yn(g,r);if(h)if(p)for(let y=0;y<u.length;y++)l[y]=l[y]??h.shift();else for(let y=0;y<g.length;y++)l[g[y].name]=h[y]}catch(h){if(s)throw h instanceof Vs||h instanceof vs?new Er({abiItem:c,data:r,params:g,size:ne(r)}):h}else if(s)throw new Er({abiItem:c,data:"0x",params:g,size:0})}return{eventName:m,args:Object.values(l).length>0?l:void 0}}function xE({param:e,value:t}){return e.type==="string"||e.type==="bytes"||e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/)?t:(yn([e],t)||[])[0]}function Ir(e){let{abi:t,args:r,logs:n,strict:o=!0}=e,s=(()=>{if(e.eventName)return Array.isArray(e.eventName)?e.eventName:[e.eventName]})();return n.map(a=>{try{let i=t.find(m=>m.type==="event"&&a.topics[0]===Wn(m));if(!i)return null;let c=Pa({...a,abi:[i],strict:o});return s&&!s.includes(c.eventName)||!vE({args:c.args,inputs:i.inputs,matchArgs:r})?null:{...c,...a}}catch(i){let c,m;if(i instanceof qs)return null;if(i instanceof Er||i instanceof Lr){if(o)return null;c=i.abiItem.name,m=i.abiItem.inputs?.some(u=>!("name"in u&&u.name))}return{...a,args:m?[]:{},eventName:c}}}).filter(Boolean)}function vE(e){let{args:t,inputs:r,matchArgs:n}=e;if(!n)return!0;if(!t)return!1;function o(s,a,i){try{return s.type==="address"?mr(a,i):s.type==="string"||s.type==="bytes"?ge(Qt(a))===i:a===i}catch{return!1}}return Array.isArray(t)&&Array.isArray(n)?n.every((s,a)=>{if(s==null)return!0;let i=r[a];return i?(Array.isArray(s)?s:[s]).some(m=>o(i,m,t[a])):!1}):typeof t=="object"&&!Array.isArray(t)&&typeof n=="object"&&!Array.isArray(n)?Object.entries(n).every(([s,a])=>{if(a==null)return!0;let i=r.find(m=>m.name===s);return i?(Array.isArray(a)?a:[a]).some(m=>o(i,m,t[s])):!1}):!1}D();async function Aa(e,{address:t,blockHash:r,fromBlock:n,toBlock:o,event:s,events:a,args:i,strict:c}={}){let m=c??!1,u=a??(s?[s]:void 0),p=[];u&&(p=[u.flatMap(h=>Hr({abi:[h],eventName:h.name,args:a?void 0:i}))],s&&(p=p[0]));let l;r?l=await e.request({method:"eth_getLogs",params:[{address:t,topics:p,blockHash:r}]}):l=await e.request({method:"eth_getLogs",params:[{address:t,topics:p,fromBlock:typeof n=="bigint"?k(n):n,toBlock:typeof o=="bigint"?k(o):o}]});let d=l.map(g=>at(g));return u?Ir({abi:u,args:i,logs:d,strict:m}):d}async function ep(e,t){let{abi:r,address:n,args:o,blockHash:s,eventName:a,fromBlock:i,toBlock:c,strict:m}=t,u=a?At({abi:r,name:a}):void 0,p=u?void 0:r.filter(l=>l.type==="event");return T(e,Aa,"getLogs")({address:n,args:o,blockHash:s,event:u,events:p,fromBlock:i,toBlock:c,strict:m})}so();Ht();Da();async function je(e,t){let{abi:r,address:n,args:o,functionName:s,...a}=t,i=ke({abi:r,args:o,functionName:s});try{let{data:c}=await T(e,Kr,"call")({...a,data:i,to:n});return $t({abi:r,args:o,functionName:s,data:c||"0x"})}catch(c){throw Vt(c,{abi:r,address:n,args:o,docsPath:"/docs/contract/readContract",functionName:s})}}Re();so();Ht();Da();async function sx(e,t){let{abi:r,address:n,args:o,dataSuffix:s,functionName:a,...i}=t,c=i.account?W(i.account):e.account,m=ke({abi:r,args:o,functionName:a});try{let{data:u}=await T(e,Kr,"call")({batch:!1,data:`${m}${s?s.replace("0x",""):""}`,to:n,...i,account:c}),p=$t({abi:r,args:o,functionName:a,data:u||"0x"}),l=r.filter(d=>"name"in d&&d.name===t.functionName);return{result:p,request:{abi:l,address:n,args:o,dataSuffix:s,functionName:a,...i,account:c}}}catch(u){throw Vt(u,{abi:r,address:n,args:o,docsPath:"/docs/contract/simulateContract",functionName:a,sender:c?.address})}}Me();wa();var Dd=new Map,ax=new Map,zE=0;function pt(e,t,r){let n=++zE,o=()=>Dd.get(e)||[],s=()=>{let u=o();Dd.set(e,u.filter(p=>p.id!==n))},a=()=>{let u=o();if(!u.some(l=>l.id===n))return;let p=ax.get(e);if(u.length===1&&p){let l=p();l instanceof Promise&&l.catch(()=>{})}s()},i=o();if(Dd.set(e,[...i,{id:n,fns:t}]),i&&i.length>0)return a;let c={};for(let u in t)c[u]=((...p)=>{let l=o();if(l.length!==0)for(let d of l)d.fns[u]?.(...p)});let m=r(c);return typeof m=="function"&&ax.set(e,m),a}async function nc(e){return new Promise(t=>setTimeout(t,e))}function pr(e,{emitOnBegin:t,initialWaitTime:r,interval:n}){let o=!0,s=()=>o=!1;return(async()=>{let i;t&&(i=await e({unpoll:s}));let c=await r?.(i)??n;await nc(c);let m=async()=>{o&&(await e({unpoll:s}),await nc(n),m())};m()})(),s}it();var OE=new Map,jE=new Map;function ix(e){let t=(o,s)=>({clear:()=>s.delete(o),get:()=>s.get(o),set:a=>s.set(o,a)}),r=t(e,OE),n=t(e,jE);return{clear:()=>{r.clear(),n.clear()},promise:r,response:n}}async function cx(e,{cacheKey:t,cacheTime:r=Number.POSITIVE_INFINITY}){let n=ix(t),o=n.response.get();if(o&&r>0&&Date.now()-o.created.getTime()<r)return o.data;let s=n.promise.get();s||(s=e(),n.promise.set(s));try{let a=await s;return n.response.set({created:new Date,data:a}),a}finally{n.promise.clear()}}var HE=e=>`blockNumber.${e}`;async function Wr(e,{cacheTime:t=e.cacheTime}={}){let r=await cx(()=>e.request({method:"eth_blockNumber"}),{cacheKey:HE(e.uid),cacheTime:t});return BigInt(r)}async function mo(e,{filter:t}){let r="strict"in t&&t.strict,n=await t.request({method:"eth_getFilterChanges",params:[t.id]});if(typeof n[0]=="string")return n;let o=n.map(s=>at(s));return!("abi"in t)||!t.abi?o:Ir({abi:t.abi,logs:o,strict:r})}async function uo(e,{filter:t}){return t.request({method:"eth_uninstallFilter",params:[t.id]})}function mx(e,t){let{abi:r,address:n,args:o,batch:s=!0,eventName:a,fromBlock:i,onError:c,onLogs:m,poll:u,pollingInterval:p=e.pollingInterval,strict:l}=t;return(typeof u<"u"?u:typeof i=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")))?(()=>{let y=l??!1,b=ee(["watchContractEvent",n,o,s,e.uid,a,p,y,i]);return pt(b,{onLogs:m,onError:c},x=>{let v;i!==void 0&&(v=i-1n);let S,E=!1,_=pr(async()=>{if(!E){try{S=await T(e,Gu,"createContractEventFilter")({abi:r,address:n,args:o,eventName:a,strict:y,fromBlock:i})}catch{}E=!0;return}try{let I;if(S)I=await T(e,mo,"getFilterChanges")({filter:S});else{let R=await T(e,Wr,"getBlockNumber")({});v&&v<R?I=await T(e,ep,"getContractEvents")({abi:r,address:n,args:o,eventName:a,fromBlock:v+1n,toBlock:R,strict:y}):I=[],v=R}if(I.length===0)return;if(s)x.onLogs(I);else for(let R of I)x.onLogs([R])}catch(I){S&&I instanceof Or&&(E=!1),x.onError?.(I)}},{emitOnBegin:!0,interval:p});return async()=>{S&&await T(e,uo,"uninstallFilter")({filter:S}),_()}})})():(()=>{let y=l??!1,b=ee(["watchContractEvent",n,o,s,e.uid,a,p,y]),x=!0,v=()=>x=!1;return pt(b,{onLogs:m,onError:c},S=>((async()=>{try{let E=(()=>{if(e.transport.type==="fallback"){let R=e.transport.transports.find(N=>N.config.type==="webSocket"||N.config.type==="ipc");return R?R.value:e.transport}return e.transport})(),_=a?Hr({abi:r,eventName:a,args:o}):[],{unsubscribe:I}=await E.subscribe({params:["logs",{address:n,topics:_}],onData(R){if(!x)return;let N=R.result;try{let{eventName:L,args:O}=Pa({abi:r,data:N.data,topics:N.topics,strict:l}),j=at(N,{args:O,eventName:L});S.onLogs([j])}catch(L){let O,j;if(L instanceof Er||L instanceof Lr){if(l)return;O=L.abiItem.name,j=L.abiItem.inputs?.some(fe=>!("name"in fe&&fe.name))}let q=at(N,{args:j?[]:{},eventName:O});S.onLogs([q])}},onError(R){S.onError?.(R)}});v=I,x||v()}catch(E){c?.(E)}})(),()=>v()))})()}Re();Ht();Re();K();Vn();zt();Wi();function Ua(e,{docsPath:t,...r}){let n=(()=>{let o=to(e,r);return o instanceof tr?e:o})();return new Im(n,{docsPath:t,...r})}Ca();On();Os();xn();async function za(e,{serializedTransaction:t}){return e.request({method:"eth_sendRawTransaction",params:[t]},{retryCount:0})}var Ud=new rr(128);async function po(e,t){let{account:r=e.account,chain:n=e.chain,accessList:o,authorizationList:s,blobs:a,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:l,nonce:d,type:g,value:h,...y}=t;if(typeof r>"u")throw new Qe({docsPath:"/docs/actions/wallet/sendTransaction"});let b=r?W(r):null;try{mt(t);let x=await(async()=>{if(t.to)return t.to;if(t.to!==null&&s&&s.length>0)return await no({authorization:s[0]}).catch(()=>{throw new w("`to` is required. Could not infer from `authorizationList`.")})})();if(b?.type==="json-rpc"||b===null){let v;n!==null&&(v=await T(e,Tt,"getChainId")({}),Hs({currentChainId:v,chain:n}));let S=e.chain?.formatters?.transactionRequest?.format,_=(S||It)({...jr(y,{format:S}),accessList:o,account:b,authorizationList:s,blobs:a,chainId:v,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:l,nonce:d,to:x,type:g,value:h},"sendTransaction"),I=Ud.get(e.uid),R=I?"wallet_sendTransaction":"eth_sendTransaction";try{return await e.request({method:R,params:[_]},{retryCount:0})}catch(N){if(I===!1)throw N;let L=N;if(L.name==="InvalidInputRpcError"||L.name==="InvalidParamsRpcError"||L.name==="MethodNotFoundRpcError"||L.name==="MethodNotSupportedRpcError")return await e.request({method:"wallet_sendTransaction",params:[_]},{retryCount:0}).then(O=>(Ud.set(e.uid,!0),O)).catch(O=>{let j=O;throw j.name==="MethodNotFoundRpcError"||j.name==="MethodNotSupportedRpcError"?(Ud.set(e.uid,!1),L):j});throw L}}if(b?.type==="local"){let v=await T(e,Vr,"prepareTransactionRequest")({account:b,accessList:o,authorizationList:s,blobs:a,chain:n,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:l,nonce:d,nonceManager:b.nonceManager,parameters:[...Ji,"sidecars"],type:g,value:h,...y,to:x}),S=n?.serializers?.transaction,E=await b.signTransaction(v,{serializer:S});return await T(e,za,"sendRawTransaction")({serializedTransaction:E})}throw b?.type==="smart"?new ar({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new ar({docsPath:"/docs/actions/wallet/sendTransaction",type:b?.type})}catch(x){throw x instanceof ar?x:Ua(x,{...t,account:b,chain:t.chain||void 0})}}async function Ko(e,t){return Ko.internal(e,po,"sendTransaction",t)}(function(e){async function t(r,n,o,s){let{abi:a,account:i=r.account,address:c,args:m,dataSuffix:u,functionName:p,...l}=s;if(typeof i>"u")throw new Qe({docsPath:"/docs/contract/writeContract"});let d=i?W(i):null,g=ke({abi:a,args:m,functionName:p});try{return await T(r,n,o)({data:`${g}${u?u.replace("0x",""):""}`,to:c,account:d,...l})}catch(h){throw Vt(h,{abi:a,address:c,args:m,docsPath:"/docs/contract/writeContract",functionName:p,sender:d?.address})}}e.internal=t})(Ko||(Ko={}));K();K();var vp=class extends w{constructor(t){super(`Call bundle failed with status: ${t.statusCode}`,{name:"BundleFailedError"}),Object.defineProperty(this,"result",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.result=t}};gp();function Wo(e,{delay:t=100,retryCount:r=2,shouldRetry:n=()=>!0}={}){return new Promise((o,s)=>{let a=async({count:i=0}={})=>{let c=async({error:m})=>{let u=typeof t=="function"?t({count:i,error:m}):t;u&&await nc(u),a({count:i+1})};try{let m=await e();o(m)}catch(m){if(i<r&&await n({count:i,error:m}))return c({error:m});s(m)}};a()})}it();qn();To();Ge();Re();K();wa();Ht();yt();Ge();D();var zd="0x5792579257925792579257925792579257925792579257925792579257925792",Od=k(0,{size:32});async function wp(e,t){let{account:r=e.account,capabilities:n,chain:o=e.chain,experimental_fallback:s,experimental_fallbackDelay:a=32,forceAtomic:i=!1,id:c,version:m="2.0.0"}=t,u=r?W(r):null,p=t.calls.map(l=>{let d=l,g=d.abi?ke({abi:d.abi,functionName:d.functionName,args:d.args}):d.data;return{data:d.dataSuffix&&g?Oe([g,d.dataSuffix]):g,to:d.to,value:d.value?k(d.value):void 0}});try{let l=await e.request({method:"wallet_sendCalls",params:[{atomicRequired:i,calls:p,capabilities:n,chainId:k(o.id),from:u?.address,id:c,version:m}]},{retryCount:0});return typeof l=="string"?{id:l}:l}catch(l){let d=l;if(s&&(d.name==="MethodNotFoundRpcError"||d.name==="MethodNotSupportedRpcError"||d.name==="UnknownRpcError"||d.details.toLowerCase().includes("does not exist / is not available")||d.details.toLowerCase().includes("missing or invalid. request()")||d.details.toLowerCase().includes("did not match any variant of untagged enum")||d.details.toLowerCase().includes("account upgraded to unsupported contract")||d.details.toLowerCase().includes("eip-7702 not supported")||d.details.toLowerCase().includes("unsupported wc_ method")||d.details.toLowerCase().includes("feature toggled misconfigured")||d.details.toLowerCase().includes("jsonrpcengine: response has no error or result for request"))){if(n&&Object.values(n).some(x=>!x.optional)){let x="non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.";throw new Qn(new w(x,{details:x}))}if(i&&p.length>1){let b="`forceAtomic` is not supported on fallback to `eth_sendTransaction`.";throw new eo(new w(b,{details:b}))}let g=[];for(let b of p){let x=po(e,{account:u,chain:o,data:b.data,to:b.to,value:b.value?be(b.value):void 0});g.push(x),a>0&&await new Promise(v=>setTimeout(v,a))}let h=await Promise.allSettled(g);if(h.every(b=>b.status==="rejected"))throw h[0].reason;let y=h.map(b=>b.status==="fulfilled"?b.value:Od);return{id:Oe([...y,k(o.id,{size:32}),zd])}}throw Ua(l,{...t,account:u,chain:t.chain})}}async function Cp(e,t){async function r(u){if(u.endsWith(zd.slice(2))){let l=Ze(Vm(u,-64,-32)),d=Vm(u,0,-64).slice(2).match(/.{1,64}/g),g=await Promise.all(d.map(y=>Od.slice(2)!==y?e.request({method:"eth_getTransactionReceipt",params:[`0x${y}`]},{dedupe:!0}):void 0)),h=g.some(y=>y===null)?100:g.every(y=>y?.status==="0x1")?200:g.every(y=>y?.status==="0x0")?500:600;return{atomic:!1,chainId:Ae(l),receipts:g.filter(Boolean),status:h,version:"2.0.0"}}return e.request({method:"wallet_getCallsStatus",params:[u]})}let{atomic:n=!1,chainId:o,receipts:s,version:a="2.0.0",...i}=await r(t.id),[c,m]=(()=>{let u=i.status;return u>=100&&u<200?["pending",u]:u>=200&&u<300?["success",u]:u>=300&&u<700?["failure",u]:u==="CONFIRMED"?["success",200]:u==="PENDING"?["pending",100]:[void 0,u]})();return{...i,atomic:n,chainId:o?Ae(o):void 0,receipts:s?.map(u=>({...u,blockNumber:be(u.blockNumber),gasUsed:be(u.gasUsed),status:jf[u.status]}))??[],statusCode:m,status:c,version:a}}async function Sp(e,t){let{id:r,pollingInterval:n=e.pollingInterval,status:o=({statusCode:h})=>h===200||h>=300,retryCount:s=4,retryDelay:a=({count:h})=>~~(1<<h)*200,timeout:i=6e4,throwOnFailure:c=!1}=t,m=ee(["waitForCallsStatus",e.uid,r]),{promise:u,resolve:p,reject:l}=Ba(),d,g=pt(m,{resolve:p,reject:l},h=>{let y=pr(async()=>{let b=x=>{clearTimeout(d),y(),x(),g()};try{let x=await Wo(async()=>{let v=await T(e,Cp,"getCallsStatus")({id:r});if(c&&v.status==="failure")throw new vp(v);return v},{retryCount:s,delay:a});if(!o(x))return;b(()=>h.resolve(x))}catch(x){b(()=>h.reject(x))}},{interval:n,emitOnBegin:!0});return y});return d=i?setTimeout(()=>{g(),clearTimeout(d),l(new jd({id:r}))},i):void 0,await u}var jd=class extends w{constructor({id:t}){super(`Timed out while waiting for call bundle with id "${t}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}};Re();var kp=256,Ep;function _p(e=11){if(!Ep||kp+e>256*2){Ep="",kp=0;for(let t=0;t<256;t++)Ep+=(256+Math.random()*256|0).toString(16).substring(1)}return Ep.substring(kp,kp+++e)}function Ip(e){let{batch:t,chain:r,ccipRead:n,key:o="base",name:s="Base Client",type:a="base"}=e,i=e.experimental_blockTag??(typeof r?.experimental_preconfirmationTime=="number"?"pending":void 0),c=r?.blockTime??12e3,m=Math.min(Math.max(Math.floor(c/2),500),4e3),u=e.pollingInterval??m,p=e.cacheTime??u,l=e.account?W(e.account):void 0,{config:d,request:g,value:h}=e.transport({chain:r,pollingInterval:u}),y={...d,...h},b={account:l,batch:t,cacheTime:p,ccipRead:n,chain:r,key:o,name:s,pollingInterval:u,request:g,transport:y,type:a,uid:_p(),...i?{experimental_blockTag:i}:{}};function x(v){return S=>{let E=S(v);for(let I in b)delete E[I];let _={...v,...E};return Object.assign(_,{extend:x(_)})}}return Object.assign(b,{extend:x(b)})}co();so();Ht();Lo();To();D();K();Zn();function Oa(e){if(!(e instanceof w))return!1;let t=e.walk(r=>r instanceof Uo);return t instanceof Uo?t.data?.errorName==="HttpError"||t.data?.errorName==="ResolverError"||t.data?.errorName==="ResolverNotContract"||t.data?.errorName==="ResolverNotFound"||t.data?.errorName==="ReverseAddressMismatch"||t.data?.errorName==="UnsupportedResolverProfile":!1}rc();yt();Ye();D();nr();Ut();function Pp(e){if(e.length!==66||e.indexOf("[")!==0||e.indexOf("]")!==65)return null;let t=`0x${e.slice(1,65)}`;return xe(t)?t:null}function oc(e){let t=new Uint8Array(32).fill(0);if(!e)return oe(t);let r=e.split(".");for(let n=r.length-1;n>=0;n-=1){let o=Pp(r[n]),s=o?Qt(o):ge(vr(r[n]),"bytes");t=ge(Oe([t,s]),"bytes")}return oe(t)}Ye();function ux(e){return`[${e.slice(2)}]`}Ye();D();nr();function px(e){let t=new Uint8Array(32).fill(0);return e?Pp(e)||ge(vr(e)):oe(t)}function ja(e){let t=e.replace(/^\.|\.$/gm,"");if(t.length===0)return new Uint8Array(1);let r=new Uint8Array(vr(t).byteLength+2),n=0,o=t.split(".");for(let s=0;s<o.length;s++){let a=vr(o[s]);a.byteLength>255&&(a=vr(ux(px(o[s])))),r[n]=a.length,r.set(a,n+1),n+=a.length+1}return r.byteLength!==n+1?r.slice(0,n+1):r}async function lx(e,t){let{blockNumber:r,blockTag:n,coinType:o,name:s,gatewayUrls:a,strict:i}=t,{chain:c}=e,m=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return sr({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),u=c?.ensTlds;if(u&&!u.some(l=>s.endsWith(l)))return null;let p=o!=null?[oc(s),BigInt(o)]:[oc(s)];try{let l=ke({abi:Pd,functionName:"addr",args:p}),d={address:m,abi:lp,functionName:"resolveWithGateways",args:[ye(ja(s)),l,a??[Cn]],blockNumber:r,blockTag:n},h=await T(e,je,"readContract")(d);if(h[0]==="0x")return null;let y=$t({abi:Pd,args:p,functionName:"addr",data:h[0]});return y==="0x"||Ze(y)==="0x00"?null:y}catch(l){if(i)throw l;if(Oa(l))return null;throw l}}K();var Ap=class extends w{constructor({data:t}){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(t)}`],name:"EnsAvatarInvalidMetadataError"})}},lo=class extends w{constructor({reason:t}){super(`ENS NFT avatar URI is invalid. ${t}`,{name:"EnsAvatarInvalidNftUriError"})}},Ha=class extends w{constructor({uri:t}){super(`Unable to resolve ENS avatar URI "${t}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}},Tp=class extends w{constructor({namespace:t}){super(`ENS NFT avatar namespace "${t}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}};var VE=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,GE=/^(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>\/.*)?$/,qE=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,KE=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function WE(e){try{let t=await fetch(e,{method:"HEAD"});return t.status===200?t.headers.get("content-type")?.startsWith("image/"):!1}catch(t){return typeof t=="object"&&typeof t.response<"u"||!Object.hasOwn(globalThis,"Image")?!1:new Promise(r=>{let n=new Image;n.onload=()=>{r(!0)},n.onerror=()=>{r(!1)},n.src=e})}}function fx(e,t){return e?e.endsWith("/")?e.slice(0,-1):e:t}function Hd({uri:e,gatewayUrls:t}){let r=qE.test(e);if(r)return{uri:e,isOnChain:!0,isEncoded:r};let n=fx(t?.ipfs,"https://ipfs.io"),o=fx(t?.arweave,"https://arweave.net"),s=e.match(VE),{protocol:a,subpath:i,target:c,subtarget:m=""}=s?.groups||{},u=a==="ipns:/"||i==="ipns/",p=a==="ipfs:/"||i==="ipfs/"||GE.test(e);if(e.startsWith("http")&&!u&&!p){let d=e;return t?.arweave&&(d=e.replace(/https:\/\/arweave.net/g,t?.arweave)),{uri:d,isOnChain:!1,isEncoded:!1}}if((u||p)&&c)return{uri:`${n}/${u?"ipns":"ipfs"}/${c}${m}`,isOnChain:!1,isEncoded:!1};if(a==="ar:/"&&c)return{uri:`${o}/${c}${m||""}`,isOnChain:!1,isEncoded:!1};let l=e.replace(KE,"");if(l.startsWith("<svg")&&(l=`data:image/svg+xml;base64,${btoa(l)}`),l.startsWith("data:")||l.startsWith("{"))return{uri:l,isOnChain:!0,isEncoded:!1};throw new Ha({uri:e})}function Vd(e){if(typeof e!="object"||!("image"in e)&&!("image_url"in e)&&!("image_data"in e))throw new Ap({data:e});return e.image||e.image_url||e.image_data}async function dx({gatewayUrls:e,uri:t}){try{let r=await fetch(t).then(o=>o.json());return await $p({gatewayUrls:e,uri:Vd(r)})}catch{throw new Ha({uri:t})}}async function $p({gatewayUrls:e,uri:t}){let{uri:r,isOnChain:n}=Hd({uri:t,gatewayUrls:e});if(n||await WE(r))return r;throw new Ha({uri:t})}function gx(e){let t=e;t.startsWith("did:nft:")&&(t=t.replace("did:nft:","").replace(/_/g,"/"));let[r,n,o]=t.split("/"),[s,a]=r.split(":"),[i,c]=n.split(":");if(!s||s.toLowerCase()!=="eip155")throw new lo({reason:"Only EIP-155 supported"});if(!a)throw new lo({reason:"Chain ID not found"});if(!c)throw new lo({reason:"Contract address not found"});if(!o)throw new lo({reason:"Token ID not found"});if(!i)throw new lo({reason:"ERC namespace not found"});return{chainID:Number.parseInt(a,10),namespace:i.toLowerCase(),contractAddress:c,tokenID:o}}async function hx(e,{nft:t}){if(t.namespace==="erc721")return je(e,{address:t.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(t.tokenID)]});if(t.namespace==="erc1155")return je(e,{address:t.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(t.tokenID)]});throw new Tp({namespace:t.namespace})}async function yx(e,{gatewayUrls:t,record:r}){return/eip155:/i.test(r)?JE(e,{gatewayUrls:t,record:r}):$p({uri:r,gatewayUrls:t})}async function JE(e,{gatewayUrls:t,record:r}){let n=gx(r),o=await hx(e,{nft:n}),{uri:s,isOnChain:a,isEncoded:i}=Hd({uri:o,gatewayUrls:t});if(a&&(s.includes("data:application/json;base64,")||s.startsWith("{"))){let m=i?atob(s.replace("data:application/json;base64,","")):s,u=JSON.parse(m);return $p({uri:Vd(u),gatewayUrls:t})}let c=n.tokenID;return n.namespace==="erc1155"&&(c=c.replace("0x","").padStart(64,"0")),dx({gatewayUrls:t,uri:s.replace(/(?:0x)?{id}/,c)})}co();so();Ht();Lo();D();rc();async function Rp(e,t){let{blockNumber:r,blockTag:n,key:o,name:s,gatewayUrls:a,strict:i}=t,{chain:c}=e,m=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return sr({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),u=c?.ensTlds;if(u&&!u.some(p=>s.endsWith(p)))return null;try{let p={address:m,abi:lp,args:[ye(ja(s)),ke({abi:Id,functionName:"text",args:[oc(s),o]}),a??[Cn]],functionName:"resolveWithGateways",blockNumber:r,blockTag:n},d=await T(e,je,"readContract")(p);if(d[0]==="0x")return null;let g=$t({abi:Id,functionName:"text",data:d[0]});return g===""?null:g}catch(p){if(i)throw p;if(Oa(p))return null;throw p}}async function bx(e,{blockNumber:t,blockTag:r,assetGatewayUrls:n,name:o,gatewayUrls:s,strict:a,universalResolverAddress:i}){let c=await T(e,Rp,"getEnsText")({blockNumber:t,blockTag:r,key:"avatar",name:o,universalResolverAddress:i,gatewayUrls:s,strict:a});if(!c)return null;try{return await yx(e,{record:c,gatewayUrls:n})}catch{return null}}co();Lo();rc();async function xx(e,t){let{address:r,blockNumber:n,blockTag:o,coinType:s=60n,gatewayUrls:a,strict:i}=t,{chain:c}=e,m=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return sr({blockNumber:n,chain:c,contract:"ensUniversalResolver"})})();try{let u={address:m,abi:Hb,args:[r,s,a??[Cn]],functionName:"reverseWithGateways",blockNumber:n,blockTag:o},p=T(e,je,"readContract"),[l]=await p(u);return l||null}catch(u){if(i)throw u;if(Oa(u))return null;throw u}}Lo();D();async function vx(e,t){let{blockNumber:r,blockTag:n,name:o}=t,{chain:s}=e,a=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!s)throw new Error("client chain not configured. universalResolverAddress is required.");return sr({blockNumber:r,chain:s,contract:"ensUniversalResolver"})})(),i=s?.ensTlds;if(i&&!i.some(m=>o.endsWith(m)))throw new Error(`${o} is not a valid ENS TLD (${i?.join(", ")}) for chain "${s.name}" (id: ${s.id}).`);let[c]=await T(e,je,"readContract")({address:a,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[ye(ja(o))],blockNumber:r,blockTag:n});return c}Da();Re();D();gd();Ca();On();xn();async function Mp(e,t){let{account:r=e.account,blockNumber:n,blockTag:o="latest",blobs:s,data:a,gas:i,gasPrice:c,maxFeePerBlobGas:m,maxFeePerGas:u,maxPriorityFeePerGas:p,to:l,value:d,...g}=t,h=r?W(r):void 0;try{mt(t);let b=(typeof n=="bigint"?k(n):void 0)||o,x=e.chain?.formatters?.transactionRequest?.format,S=(x||It)({...jr(g,{format:x}),account:h,blobs:s,data:a,gas:i,gasPrice:c,maxFeePerBlobGas:m,maxFeePerGas:u,maxPriorityFeePerGas:p,to:l,value:d},"createAccessList"),E=await e.request({method:"eth_createAccessList",params:[S,b]});return{accessList:E.accessList,gasUsed:BigInt(E.gasUsed)}}catch(y){throw ju(y,{...t,account:h,chain:e.chain})}}async function wx(e){let t=ro(e,{method:"eth_newBlockFilter"}),r=await e.request({method:"eth_newBlockFilter"});return{id:r,request:t(r),type:"block"}}D();async function Fp(e,{address:t,args:r,event:n,events:o,fromBlock:s,strict:a,toBlock:i}={}){let c=o??(n?[n]:void 0),m=ro(e,{method:"eth_newFilter"}),u=[];c&&(u=[c.flatMap(d=>Hr({abi:[d],eventName:d.name,args:r}))],n&&(u=u[0]));let p=await e.request({method:"eth_newFilter",params:[{address:t,fromBlock:typeof s=="bigint"?k(s):s,toBlock:typeof i=="bigint"?k(i):i,...u.length?{topics:u}:{}}]});return{abi:c,args:r,eventName:n?n.name:void 0,fromBlock:s,id:p,request:m(p),strict:!!a,toBlock:i,type:"event"}}async function Np(e){let t=ro(e,{method:"eth_newPendingTransactionFilter"}),r=await e.request({method:"eth_newPendingTransactionFilter"});return{id:r,request:t(r),type:"transaction"}}D();async function Cx(e,{address:t,blockNumber:r,blockTag:n=e.experimental_blockTag??"latest"}){let o=typeof r=="bigint"?k(r):void 0,s=await e.request({method:"eth_getBalance",params:[t,o||n]});return BigInt(s)}async function Sx(e){let t=await e.request({method:"eth_blobBaseFee"});return BigInt(t)}Ge();D();async function kx(e,{blockHash:t,blockNumber:r,blockTag:n="latest"}={}){let o=r!==void 0?k(r):void 0,s;return t?s=await e.request({method:"eth_getBlockTransactionCountByHash",params:[t]},{dedupe:!0}):s=await e.request({method:"eth_getBlockTransactionCountByNumber",params:[o||n]},{dedupe:!!o}),Ae(s)}D();async function sc(e,{address:t,blockNumber:r,blockTag:n="latest"}){let o=r!==void 0?k(r):void 0,s=await e.request({method:"eth_getCode",params:[t,o||n]},{dedupe:!!o});if(s!=="0x")return s}K();var Lp=class extends w{constructor({address:t}){super(`No EIP-712 domain found on contract "${t}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${t}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}};async function Ex(e,t){let{address:r,factory:n,factoryData:o}=t;try{let[s,a,i,c,m,u,p]=await T(e,je,"readContract")({abi:ZE,address:r,functionName:"eip712Domain",factory:n,factoryData:o});return{domain:{name:a,version:i,chainId:Number(c),verifyingContract:m,salt:u},extensions:p,fields:s}}catch(s){let a=s;throw a.name==="ContractFunctionExecutionError"&&a.cause.name==="ContractFunctionZeroDataError"?new Lp({address:r}):a}}var ZE=[{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"}];D();function _x(e){return{baseFeePerGas:e.baseFeePerGas.map(t=>BigInt(t)),gasUsedRatio:e.gasUsedRatio,oldestBlock:BigInt(e.oldestBlock),reward:e.reward?.map(t=>t.map(r=>BigInt(r)))}}async function Ix(e,{blockCount:t,blockNumber:r,blockTag:n="latest",rewardPercentiles:o}){let s=typeof r=="bigint"?k(r):void 0,a=await e.request({method:"eth_feeHistory",params:[k(t),s||n,o]},{dedupe:!!s});return _x(a)}async function Px(e,{filter:t}){let r=t.strict??!1,o=(await t.request({method:"eth_getFilterLogs",params:[t.id]})).map(s=>at(s));return t.abi?Ir({abi:t.abi,logs:o,strict:r}):o}D();Gn();Ho();async function Ax({address:e,authorization:t,signature:r}){return mr(js(e),await no({authorization:t,signature:r}))}K();zo();wa();D();Os();var Bp=new rr(8192);function Tx(e,{enabled:t=!0,id:r}){if(!t||!r)return e();if(Bp.get(r))return Bp.get(r);let n=e().finally(()=>Bp.delete(r));return Bp.set(r,n),n}it();function $x(e,t={}){return async(r,n={})=>{let{dedupe:o=!1,methods:s,retryDelay:a=150,retryCount:i=3,uid:c}={...t,...n},{method:m}=r;if(s?.exclude?.includes(m))throw new Xn(new Error("method not supported"),{method:m});if(s?.include&&!s.include.includes(m))throw new Xn(new Error("method not supported"),{method:m});let u=o?xr(`${c}.${ee(r)}`):void 0;return Tx(()=>Wo(async()=>{try{return await e(r)}catch(p){let l=p;switch(l.code){case na.code:throw new na(l);case oa.code:throw new oa(l);case sa.code:throw new sa(l,{method:r.method});case aa.code:throw new aa(l);case bn.code:throw new bn(l);case Or.code:throw new Or(l);case ia.code:throw new ia(l);case ca.code:throw new ca(l);case ma.code:throw new ma(l);case Xn.code:throw new Xn(l,{method:r.method});case Oo.code:throw new Oo(l);case ua.code:throw new ua(l);case jo.code:throw new jo(l);case pa.code:throw new pa(l);case la.code:throw new la(l);case fa.code:throw new fa(l);case da.code:throw new da(l);case ga.code:throw new ga(l);case Qn.code:throw new Qn(l);case ha.code:throw new ha(l);case ya.code:throw new ya(l);case ba.code:throw new ba(l);case xa.code:throw new xa(l);case va.code:throw new va(l);case eo.code:throw new eo(l);case 5e3:throw new jo(l);default:throw p instanceof w?p:new Ou(l)}}},{delay:({count:p,error:l})=>{if(l&&l instanceof cr){let d=l?.headers?.get("Retry-After");if(d?.match(/\d/))return Number.parseInt(d,10)*1e3}return~~(1<<p)*a},retryCount:i,shouldRetry:({error:p})=>YE(p)}),{enabled:o,id:u})}}function YE(e){return"code"in e&&typeof e.code=="number"?e.code===-1||e.code===Oo.code||e.code===bn.code:e instanceof cr&&e.status?e.status===403||e.status===408||e.status===413||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504:!0}Ge();D();zo();function Rx(e,{errorInstance:t=new Error("timed out"),timeout:r,signal:n}){return new Promise((o,s)=>{(async()=>{let a;try{let i=new AbortController;r>0&&(a=setTimeout(()=>{n?i.abort():s(t)},r)),o(await e({signal:i?.signal||null}))}catch(i){i?.name==="AbortError"&&s(t),s(i)}finally{clearTimeout(a)}})()})}it();function XE(){return{current:0,take(){return this.current++},reset(){this.current=0}}}var Gd=XE();function Mx(e,t={}){return{async request(r){let{body:n,fetchFn:o=t.fetchFn??fetch,onRequest:s=t.onRequest,onResponse:a=t.onResponse,timeout:i=t.timeout??1e4}=r,c={...t.fetchOptions??{},...r.fetchOptions??{}},{headers:m,method:u,signal:p}=c;try{let l=await Rx(async({signal:g})=>{let h={...c,body:Array.isArray(n)?ee(n.map(v=>({jsonrpc:"2.0",id:v.id??Gd.take(),...v}))):ee({jsonrpc:"2.0",id:n.id??Gd.take(),...n}),headers:{"Content-Type":"application/json",...m},method:u||"POST",signal:p||(i>0?g:null)},y=new Request(e,h),b=await s?.(y,h)??{...h,url:e};return await o(b.url??e,b)},{errorInstance:new Ki({body:n,url:e}),timeout:i,signal:!0});a&&await a(l);let d;if(l.headers.get("Content-Type")?.startsWith("application/json"))d=await l.json();else{d=await l.text();try{d=JSON.parse(d||"{}")}catch(g){if(l.ok)throw g;d={error:d}}}if(!l.ok)throw new cr({body:n,details:ee(d.error)||l.statusText,headers:l.headers,status:l.status,url:e});return d}catch(l){throw l instanceof cr||l instanceof Ki?l:new cr({body:n,cause:l,url:e})}}}}nr();var Fx=`Ethereum Signed Message:
55
- `;yt();Xt();D();function Nx(e){let t=typeof e=="string"?xr(e):typeof e.raw=="string"?e.raw:oe(e.raw),r=xr(`${Fx}${ne(t)}`);return Oe([r,t])}function Va(e,t){return ge(Nx(e),t)}hn();yt();D();nr();Me();Sr();it();K();var Dp=class extends w{constructor({domain:t}){super(`Invalid domain "${ee(t)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}},Up=class extends w{constructor({primaryType:t,types:r}){super(`Invalid primary type \`${t}\` must be one of \`${JSON.stringify(Object.keys(r))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}},zp=class extends w{constructor({type:t}){super(`Struct type "${t}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}};Ot();Xt();D();id();it();function Lx(e){let{domain:t,message:r,primaryType:n,types:o}=e,s=(c,m)=>{let u={...m};for(let p of c){let{name:l,type:d}=p;d==="address"&&(u[l]=u[l].toLowerCase())}return u},a=o.EIP712Domain?t?s(o.EIP712Domain,t):{}:{},i=(()=>{if(n!=="EIP712Domain")return s(o[n],r)})();return ee({domain:a,message:i,primaryType:n,types:o})}function Op(e){let{domain:t,message:r,primaryType:n,types:o}=e,s=(a,i)=>{for(let c of a){let{name:m,type:u}=c,p=i[m],l=u.match(Mu);if(l&&(typeof p=="number"||typeof p=="bigint")){let[h,y,b]=l;k(p,{signed:y==="int",size:Number.parseInt(b,10)/8})}if(u==="address"&&typeof p=="string"&&!ie(p))throw new de({address:p});let d=u.match(Xy);if(d){let[h,y]=d;if(y&&ne(p)!==Number.parseInt(y,10))throw new au({expectedSize:Number.parseInt(y,10),givenSize:ne(p)})}let g=o[u];g&&(QE(u),s(g,p))}};if(o.EIP712Domain&&t){if(typeof t!="object")throw new Dp({domain:t});s(o.EIP712Domain,t)}if(n!=="EIP712Domain")if(o[n])s(o[n],r);else throw new Up({primaryType:n,types:o})}function jp({domain:e}){return[typeof e?.name=="string"&&{name:"name",type:"string"},e?.version&&{name:"version",type:"string"},(typeof e?.chainId=="number"||typeof e?.chainId=="bigint")&&{name:"chainId",type:"uint256"},e?.verifyingContract&&{name:"verifyingContract",type:"address"},e?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function QE(e){if(e==="address"||e==="bool"||e==="string"||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new zp({type:e})}function Hp(e){let{domain:t={},message:r,primaryType:n}=e,o={EIP712Domain:jp({domain:t}),...e.types};Op({domain:t,message:r,primaryType:n,types:o});let s=["0x1901"];return t&&s.push(e_({domain:t,types:o})),n!=="EIP712Domain"&&s.push(Bx({data:r,primaryType:n,types:o})),ge(Oe(s))}function e_({domain:e,types:t}){return Bx({data:e,primaryType:"EIP712Domain",types:t})}function Bx({data:e,primaryType:t,types:r}){let n=Dx({data:e,primaryType:t,types:r});return ge(n)}function Dx({data:e,primaryType:t,types:r}){let n=[{type:"bytes32"}],o=[t_({primaryType:t,types:r})];for(let s of r[t]){let[a,i]=zx({types:r,name:s.name,type:s.type,value:e[s.name]});n.push(a),o.push(i)}return bt(n,o)}function t_({primaryType:e,types:t}){let r=ye(r_({primaryType:e,types:t}));return ge(r)}function r_({primaryType:e,types:t}){let r="",n=Ux({primaryType:e,types:t});n.delete(e);let o=[e,...Array.from(n).sort()];for(let s of o)r+=`${s}(${t[s].map(({name:a,type:i})=>`${i} ${a}`).join(",")})`;return r}function Ux({primaryType:e,types:t},r=new Set){let o=e.match(/^\w*/u)?.[0];if(r.has(o)||t[o]===void 0)return r;r.add(o);for(let s of t[o])Ux({primaryType:s.type,types:t},r);return r}function zx({types:e,name:t,type:r,value:n}){if(e[r]!==void 0)return[{type:"bytes32"},ge(Dx({data:n,primaryType:r,types:e}))];if(r==="bytes")return n=`0x${(n.length%2?"0":"")+n.slice(2)}`,[{type:"bytes32"},ge(n)];if(r==="string")return[{type:"bytes32"},ge(ye(n))];if(r.lastIndexOf("]")===r.length-1){let o=r.slice(0,r.lastIndexOf("[")),s=n.map(a=>zx({name:t,type:o,types:e,value:a}));return[{type:"bytes32"},ge(bt(s.map(([a])=>a),s.map(([,a])=>a)))]}return[{type:r},n]}var lc={};Rf(lc,{InvalidWrappedSignatureError:()=>ol,assert:()=>sl,from:()=>D_,magicBytes:()=>y0,suffixParameters:()=>b0,unwrap:()=>i1,validate:()=>z_,wrap:()=>U_});Hi();ao();var Vp=class extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){let r=super.get(t);return super.has(t)&&r!==void 0&&(this.delete(t),super.set(t,r)),r}set(t,r){if(super.set(t,r),this.maxSize&&this.size>this.maxSize){let n=this.keys().next().value;n&&this.delete(n)}return this}};var n_={checksum:new Vp(8192)},Gp=n_.checksum;Rt();Jf();ao();et();function Jo(e,t={}){let{as:r=typeof e=="string"?"Hex":"Bytes"}=t,n=Hm(Rb(e));return r==="Bytes"?n:Ue(n)}ao();Rt();et();Xi();function Ox(e,t={}){let{compressed:r}=t,{prefix:n,x:o,y:s}=e;if(r===!1||typeof o=="bigint"&&typeof s=="bigint"){if(n!==4)throw new qp({prefix:n,cause:new Jd});return}if(r===!0||typeof o=="bigint"&&typeof s>"u"){if(n!==3&&n!==2)throw new qp({prefix:n,cause:new Wd});return}throw new Kd({publicKey:e})}function jx(e){let t=(()=>{if(ec(e))return Hx(e);if(Db(e))return s_(e);let{prefix:r,x:n,y:o}=e;return typeof n=="bigint"&&typeof o=="bigint"?{prefix:r??4,x:n,y:o}:{prefix:r,x:n}})();return Ox(t),t}function s_(e){return Hx(Ue(e))}function Hx(e){if(e.length!==132&&e.length!==130&&e.length!==68)throw new Zd({publicKey:e});if(e.length===130){let n=BigInt(Pe(e,0,32)),o=BigInt(Pe(e,32,64));return{prefix:4,x:n,y:o}}if(e.length===132){let n=Number(Pe(e,0,1)),o=BigInt(Pe(e,1,33)),s=BigInt(Pe(e,33,65));return{prefix:n,x:o,y:s}}let t=Number(Pe(e,0,1)),r=BigInt(Pe(e,1,33));return{prefix:t,x:r}}function Yd(e,t={}){Ox(e);let{prefix:r,x:n,y:o}=e,{includePrefix:s=!0}=t;return Te(s?me(r,{size:1}):"0x",me(n,{size:32}),typeof o=="bigint"?me(o,{size:32}):"0x")}var Kd=class extends B{constructor({publicKey:t}){super(`Value \`${io(t)}\` 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"})}},qp=class extends B{constructor({prefix:t,cause:r}){super(`Prefix "${t}" is invalid.`,{cause:r}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidPrefixError"})}},Wd=class extends B{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"})}},Jd=class extends B{constructor(){super("Prefix must be 4 for uncompressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidUncompressedPrefixError"})}},Zd=class extends B{constructor({publicKey:t}){super(`Value \`${t}\` is an invalid public key size.`,{metaMessages:["Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).",`Received ${Ie(Fa(t))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"})}};var a_=/^0x[a-fA-F0-9]{40}$/;function Zo(e,t={}){let{strict:r=!0}=t;if(!a_.test(e))throw new Kp({address:e,cause:new Xd});if(r){if(e.toLowerCase()===e)return;if(Wp(e)!==e)throw new Kp({address:e,cause:new Qd})}}function Wp(e){if(Gp.has(e))return Gp.get(e);Zo(e,{strict:!1});let t=e.substring(2).toLowerCase(),r=Jo(Mb(t),{as:"Bytes"}),n=t.split("");for(let s=0;s<40;s+=2)r[s>>1]>>4>=8&&n[s]&&(n[s]=n[s].toUpperCase()),(r[s>>1]&15)>=8&&n[s+1]&&(n[s+1]=n[s+1].toUpperCase());let o=`0x${n.join("")}`;return Gp.set(e,o),o}function i_(e,t={}){let{checksum:r=!1}=t;return Zo(e),r?Wp(e):e}function Gx(e,t={}){let r=Jo(`0x${Yd(e).slice(4)}`).substring(26);return i_(`0x${r}`,t)}function Jp(e,t={}){let{strict:r=!0}=t??{};try{return Zo(e,{strict:r}),!0}catch{return!1}}var Kp=class extends B{constructor({address:t,cause:r}){super(`Address "${t}" is invalid.`,{cause:r}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}},Xd=class extends B{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"})}},Qd=class extends B{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}};ao();Rt();et();ao();Rt();et();var qx=/^(.*)\[([0-9]*)\]$/,Kx=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Yp=/^(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)?$/,VJ=2n**(8n-1n)-1n,GJ=2n**(16n-1n)-1n,qJ=2n**(24n-1n)-1n,KJ=2n**(32n-1n)-1n,WJ=2n**(40n-1n)-1n,JJ=2n**(48n-1n)-1n,ZJ=2n**(56n-1n)-1n,YJ=2n**(64n-1n)-1n,XJ=2n**(72n-1n)-1n,QJ=2n**(80n-1n)-1n,eZ=2n**(88n-1n)-1n,tZ=2n**(96n-1n)-1n,rZ=2n**(104n-1n)-1n,nZ=2n**(112n-1n)-1n,oZ=2n**(120n-1n)-1n,sZ=2n**(128n-1n)-1n,aZ=2n**(136n-1n)-1n,iZ=2n**(144n-1n)-1n,cZ=2n**(152n-1n)-1n,mZ=2n**(160n-1n)-1n,uZ=2n**(168n-1n)-1n,pZ=2n**(176n-1n)-1n,lZ=2n**(184n-1n)-1n,fZ=2n**(192n-1n)-1n,dZ=2n**(200n-1n)-1n,gZ=2n**(208n-1n)-1n,hZ=2n**(216n-1n)-1n,yZ=2n**(224n-1n)-1n,bZ=2n**(232n-1n)-1n,xZ=2n**(240n-1n)-1n,vZ=2n**(248n-1n)-1n,wZ=2n**(256n-1n)-1n,CZ=-(2n**(8n-1n)),SZ=-(2n**(16n-1n)),kZ=-(2n**(24n-1n)),EZ=-(2n**(32n-1n)),_Z=-(2n**(40n-1n)),IZ=-(2n**(48n-1n)),PZ=-(2n**(56n-1n)),AZ=-(2n**(64n-1n)),TZ=-(2n**(72n-1n)),$Z=-(2n**(80n-1n)),RZ=-(2n**(88n-1n)),MZ=-(2n**(96n-1n)),FZ=-(2n**(104n-1n)),NZ=-(2n**(112n-1n)),LZ=-(2n**(120n-1n)),BZ=-(2n**(128n-1n)),DZ=-(2n**(136n-1n)),UZ=-(2n**(144n-1n)),zZ=-(2n**(152n-1n)),OZ=-(2n**(160n-1n)),jZ=-(2n**(168n-1n)),HZ=-(2n**(176n-1n)),VZ=-(2n**(184n-1n)),GZ=-(2n**(192n-1n)),qZ=-(2n**(200n-1n)),KZ=-(2n**(208n-1n)),WZ=-(2n**(216n-1n)),JZ=-(2n**(224n-1n)),ZZ=-(2n**(232n-1n)),YZ=-(2n**(240n-1n)),XZ=-(2n**(248n-1n)),QZ=-(2n**(256n-1n)),eY=2n**8n-1n,tY=2n**16n-1n,rY=2n**24n-1n,nY=2n**32n-1n,oY=2n**40n-1n,sY=2n**48n-1n,aY=2n**56n-1n,iY=2n**64n-1n,cY=2n**72n-1n,mY=2n**80n-1n,uY=2n**88n-1n,pY=2n**96n-1n,lY=2n**104n-1n,fY=2n**112n-1n,dY=2n**120n-1n,gY=2n**128n-1n,hY=2n**136n-1n,yY=2n**144n-1n,bY=2n**152n-1n,xY=2n**160n-1n,vY=2n**168n-1n,wY=2n**176n-1n,CY=2n**184n-1n,SY=2n**192n-1n,kY=2n**200n-1n,EY=2n**208n-1n,_Y=2n**216n-1n,IY=2n**224n-1n,PY=2n**232n-1n,AY=2n**240n-1n,TY=2n**248n-1n,e0=2n**256n-1n;function Yo(e,t,r){let{checksumAddress:n,staticPosition:o}=r,s=n0(t.type);if(s){let[a,i]=s;return m_(e,{...t,type:i},{checksumAddress:n,length:a,staticPosition:o})}if(t.type==="tuple")return f_(e,t,{checksumAddress:n,staticPosition:o});if(t.type==="address")return c_(e,{checksum:n});if(t.type==="bool")return u_(e);if(t.type.startsWith("bytes"))return p_(e,t,{staticPosition:o});if(t.type.startsWith("uint")||t.type.startsWith("int"))return l_(e,t);if(t.type==="string")return d_(e,{staticPosition:o});throw new Ga(t.type)}var Jx=32,t0=32;function c_(e,t={}){let{checksum:r=!1}=t,n=e.readBytes(32);return[(s=>r?Wp(s):s)(Ue(Fb(n,-20))),32]}function m_(e,t,r){let{checksumAddress:n,length:o,staticPosition:s}=r;if(!o){let c=Gr(e.readBytes(t0)),m=s+c,u=m+Jx;e.setPosition(m);let p=Gr(e.readBytes(Jx)),l=ac(t),d=0,g=[];for(let h=0;h<p;++h){e.setPosition(u+(l?h*32:d));let[y,b]=Yo(e,t,{checksumAddress:n,staticPosition:u});d+=b,g.push(y)}return e.setPosition(s+32),[g,32]}if(ac(t)){let c=Gr(e.readBytes(t0)),m=s+c,u=[];for(let p=0;p<o;++p){e.setPosition(m+p*32);let[l]=Yo(e,t,{checksumAddress:n,staticPosition:m});u.push(l)}return e.setPosition(s+32),[u,32]}let a=0,i=[];for(let c=0;c<o;++c){let[m,u]=Yo(e,t,{checksumAddress:n,staticPosition:s+a});a+=u,i.push(m)}return[i,a]}function u_(e){return[Lb(e.readBytes(32),{size:32}),32]}function p_(e,t,{staticPosition:r}){let[n,o]=t.type.split("bytes");if(!o){let a=Gr(e.readBytes(32));e.setPosition(r+a);let i=Gr(e.readBytes(32));if(i===0)return e.setPosition(r+32),["0x",32];let c=e.readBytes(i);return e.setPosition(r+32),[Ue(c),32]}return[Ue(e.readBytes(Number.parseInt(o,10),32)),32]}function l_(e,t){let r=t.type.startsWith("int"),n=Number.parseInt(t.type.split("int")[1]||"256",10),o=e.readBytes(32);return[n>48?Nb(o,{signed:r}):Gr(o,{signed:r}),32]}function f_(e,t,r){let{checksumAddress:n,staticPosition:o}=r,s=t.components.length===0||t.components.some(({name:c})=>!c),a=s?[]:{},i=0;if(ac(t)){let c=Gr(e.readBytes(t0)),m=o+c;for(let u=0;u<t.components.length;++u){let p=t.components[u];e.setPosition(m+i);let[l,d]=Yo(e,p,{checksumAddress:n,staticPosition:m});i+=d,a[s?u:p?.name]=l}return e.setPosition(o+32),[a,32]}for(let c=0;c<t.components.length;++c){let m=t.components[c],[u,p]=Yo(e,m,{checksumAddress:n,staticPosition:o});a[s?c:m?.name]=u,i+=p}return[a,i]}function d_(e,{staticPosition:t}){let r=Gr(e.readBytes(32)),n=t+r;e.setPosition(n);let o=Gr(e.readBytes(32));if(o===0)return e.setPosition(t+32),["",32];let s=e.readBytes(o,32),a=Bb(Sd(s));return e.setPosition(t+32),[a,32]}function Zx({checksumAddress:e,parameters:t,values:r}){let n=[];for(let o=0;o<t.length;o++)n.push(r0({checksumAddress:e,parameter:t[o],value:r[o]}));return n}function r0({checksumAddress:e=!1,parameter:t,value:r}){let n=t,o=n0(n.type);if(o){let[s,a]=o;return h_(r,{checksumAddress:e,length:s,parameter:{...n,type:a}})}if(n.type==="tuple")return w_(r,{checksumAddress:e,parameter:n});if(n.type==="address")return g_(r,{checksum:e});if(n.type==="bool")return b_(r);if(n.type.startsWith("uint")||n.type.startsWith("int")){let s=n.type.startsWith("int"),[,,a="256"]=Yp.exec(n.type)??[];return x_(r,{signed:s,size:Number(a)})}if(n.type.startsWith("bytes"))return y_(r,{type:n.type});if(n.type==="string")return v_(r);throw new Ga(n.type)}function Xp(e){let t=0;for(let s=0;s<e.length;s++){let{dynamic:a,encoded:i}=e[s];a?t+=32:t+=Ie(i)}let r=[],n=[],o=0;for(let s=0;s<e.length;s++){let{dynamic:a,encoded:i}=e[s];a?(r.push(me(t+o,{size:32})),n.push(i),o+=Ie(i)):r.push(i)}return Te(...r,...n)}function g_(e,t){let{checksum:r=!1}=t;return Zo(e,{strict:r}),{dynamic:!1,encoded:wn(e.toLowerCase())}}function h_(e,t){let{checksumAddress:r,length:n,parameter:o}=t,s=n===null;if(!Array.isArray(e))throw new el(e);if(!s&&e.length!==n)throw new Qp({expectedLength:n,givenLength:e.length,type:`${o.type}[${n}]`});let a=!1,i=[];for(let c=0;c<e.length;c++){let m=r0({checksumAddress:r,parameter:o,value:e[c]});m.dynamic&&(a=!0),i.push(m)}if(s||a){let c=Xp(i);if(s){let m=me(i.length,{size:32});return{dynamic:!0,encoded:i.length>0?Te(m,c):m}}if(a)return{dynamic:!0,encoded:c}}return{dynamic:!1,encoded:Te(...i.map(({encoded:c})=>c))}}function y_(e,{type:t}){let[,r]=t.split("bytes"),n=Ie(e);if(!r){let o=e;return n%32!==0&&(o=qr(o,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:Te(wn(me(n,{size:32})),o)}}if(n!==Number.parseInt(r,10))throw new ic({expectedSize:Number.parseInt(r,10),value:e});return{dynamic:!1,encoded:qr(e)}}function b_(e){if(typeof e!="boolean")throw new B(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:wn(mp(e))}}function x_(e,{signed:t,size:r}){if(typeof r=="number"){let n=2n**(BigInt(r)-(t?1n:0n))-1n,o=t?-n-1n:0n;if(e>n||e<o)throw new Qi({max:n.toString(),min:o.toString(),signed:t,size:r/8,value:e.toString()})}return{dynamic:!1,encoded:me(e,{size:32,signed:t})}}function v_(e){let t=Na(e),r=Math.ceil(Ie(t)/32),n=[];for(let o=0;o<r;o++)n.push(qr(Pe(t,o*32,(o+1)*32)));return{dynamic:!0,encoded:Te(qr(me(Ie(t),{size:32})),...n)}}function w_(e,t){let{checksumAddress:r,parameter:n}=t,o=!1,s=[];for(let a=0;a<n.components.length;a++){let i=n.components[a],c=Array.isArray(e)?a:i.name,m=r0({checksumAddress:r,parameter:i,value:e[c]});s.push(m),m.dynamic&&(o=!0)}return{dynamic:o,encoded:o?Xp(s):Te(...s.map(({encoded:a})=>a))}}function n0(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}function ac(e){let{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return e.components?.some(ac);let r=n0(e.type);return!!(r&&ac({...e,type:r[1]}))}Rt();var S_={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 s0({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new o0({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new tl({offset:e});let t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new tl({offset:e});let t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){let r=t??this.position;return this.assertPosition(r+e-1),this.bytes.subarray(r,r+e)},inspectUint8(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){let t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){let t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){let t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();let r=this.inspectBytes(e);return this.position+=t??e,r},readUint8(){this.assertReadLimit(),this._touch();let e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();let e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();let e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();let e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){let t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function rl(e,{recursiveReadLimit:t=8192}={}){let r=Object.create(S_);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}var tl=class extends B{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}},o0=class extends B{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}},s0=class extends B{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}};function qa(e,t,r={}){let{as:n="Array",checksumAddress:o=!1}=r,s=typeof t=="string"?Ma(t):t,a=rl(s);if(ur(s)===0&&e.length>0)throw new c0;if(ur(s)&&ur(s)<32)throw new i0({data:typeof t=="string"?t:Ue(t),parameters:e,size:ur(s)});let i=0,c=n==="Array"?[]:{};for(let m=0;m<e.length;++m){let u=e[m];a.setPosition(i);let[p,l]=Yo(a,u,{checksumAddress:o,staticPosition:0});i+=l,n==="Array"?c.push(p):c[u.name??m]=p}return c}function fo(e,t,r){let{checksumAddress:n=!1}=r??{};if(e.length!==t.length)throw new nl({expectedLength:e.length,givenLength:t.length});let o=Zx({checksumAddress:n,parameters:e,values:t}),s=Xp(o);return s.length===0?"0x":s}function a0(e,t){if(e.length!==t.length)throw new nl({expectedLength:e.length,givenLength:t.length});let r=[];for(let n=0;n<e.length;n++){let o=e[n],s=t[n];r.push(a0.encode(o,s))}return Te(...r)}(function(e){function t(r,n,o=!1){if(r==="address"){let c=n;return Zo(c),wn(c.toLowerCase(),o?32:0)}if(r==="string")return Na(n);if(r==="bytes")return n;if(r==="bool")return wn(mp(n),o?32:1);let s=r.match(Yp);if(s){let[c,m,u="256"]=s,p=Number.parseInt(u,10)/8;return me(n,{size:o?32:p,signed:m==="int"})}let a=r.match(Kx);if(a){let[c,m]=a;if(Number.parseInt(m,10)!==(n.length-2)/2)throw new ic({expectedSize:Number.parseInt(m,10),value:n});return qr(n,o?32:0)}let i=r.match(qx);if(i&&Array.isArray(n)){let[c,m]=i,u=[];for(let p=0;p<n.length;p++)u.push(t(m,n[p],!0));return u.length===0?"0x":Te(...u)}throw new Ga(r)}e.encode=t})(a0||(a0={}));function mc(e){return Array.isArray(e)&&typeof e[0]=="string"?$u(e):typeof e=="string"?$u(e):e}var i0=class extends B{constructor({data:t,parameters:r,size:n}){super(`Data size of ${n} bytes is too small for given parameters.`,{metaMessages:[`Params: (${gn(r)})`,`Data: ${t} (${n} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}},c0=class extends B{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.'),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"})}},Qp=class extends B{constructor({expectedLength:t,givenLength:r,type:n}){super(`Array length mismatch for type \`${n}\`. Expected: \`${t}\`. Given: \`${r}\`.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"})}},ic=class extends B{constructor({expectedSize:t,value:r}){super(`Size of bytes "${r}" (bytes${Ie(r)}) does not match expected size (bytes${t}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}},nl=class extends B{constructor({expectedLength:t,givenLength:r}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${t}`,`Given length (values): ${r}`].join(`
56
- `)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}},el=class extends B{constructor(t){super(`Value \`${t}\` is not a valid array.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"})}},Ga=class extends B{constructor(t){super(`Type \`${t}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}};et();ao();Rt();et();function k_(e,t){let{as:r}=t,n=Qx(e),o=rl(new Uint8Array(n.length));return n.encode(o),r==="Hex"?Ue(o.bytes):o.bytes}function Xx(e,t={}){let{as:r="Hex"}=t;return k_(e,{as:r})}function Qx(e){return Array.isArray(e)?E_(e.map(t=>Qx(t))):__(e)}function E_(e){let t=e.reduce((o,s)=>o+s.length,0),r=e1(t);return{length:t<=55?1+t:1+r+t,encode(o){t<=55?o.pushByte(192+t):(o.pushByte(247+r),r===1?o.pushUint8(t):r===2?o.pushUint16(t):r===3?o.pushUint24(t):o.pushUint32(t));for(let{encode:s}of e)s(o)}}}function __(e){let t=typeof e=="string"?Ma(e):e,r=e1(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+r+t.length,encode(o){t.length===1&&t[0]<128?o.pushBytes(t):t.length<=55?(o.pushByte(128+t.length),o.pushBytes(t)):(o.pushByte(183+r),r===1?o.pushUint8(t.length):r===2?o.pushUint16(t.length):r===3?o.pushUint24(t.length):o.pushUint32(t.length),o.pushBytes(t))}}}function e1(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new B("Length is too large.")}import{secp256k1 as FY}from"@noble/curves/secp256k1";Rt();et();Xi();function f0(e,t={}){let{recovered:r}=t;if(typeof e.r>"u")throw new uc({signature:e});if(typeof e.s>"u")throw new uc({signature:e});if(r&&typeof e.yParity>"u")throw new uc({signature:e});if(e.r<0n||e.r>e0)throw new u0({value:e.r});if(e.s<0n||e.s>e0)throw new p0({value:e.s});if(typeof e.yParity=="number"&&e.yParity!==0&&e.yParity!==1)throw new pc({value:e.yParity})}function P_(e){return t1(Ue(e))}function t1(e){if(e.length!==130&&e.length!==132)throw new m0({signature:e});let t=BigInt(Pe(e,0,32)),r=BigInt(Pe(e,32,64)),n=(()=>{let o=+`0x${e.slice(130)}`;if(!Number.isNaN(o))try{return h0(o)}catch{throw new pc({value:o})}})();return typeof n>"u"?{r:t,s:r}:{r:t,s:r,yParity:n}}function d0(e){if(!(typeof e.r>"u")&&!(typeof e.s>"u"))return g0(e)}function g0(e){let t=typeof e=="string"?t1(e):e instanceof Uint8Array?P_(e):typeof e.r=="string"?T_(e):e.v?A_(e):{r:e.r,s:e.s,...typeof e.yParity<"u"?{yParity:e.yParity}:{}};return f0(t),t}function A_(e){return{r:e.r,s:e.s,yParity:h0(e.v)}}function T_(e){let t=(()=>{let r=e.v?Number(e.v):void 0,n=e.yParity?Number(e.yParity):void 0;if(typeof r=="number"&&typeof n!="number"&&(n=h0(r)),typeof n!="number")throw new pc({value:e.yParity});return n})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:t}}function r1(e){let{r:t,s:r,yParity:n}=e;return[n?"0x01":"0x",t===0n?"0x":Ed(me(t)),r===0n?"0x":Ed(me(r))]}function h0(e){if(e===0||e===27)return 0;if(e===1||e===28)return 1;if(e>=35)return e%2===0?1:0;throw new l0({value:e})}var m0=class extends B{constructor({signature:t}){super(`Value \`${t}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Ie(Fa(t))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}},uc=class extends B{constructor({signature:t}){super(`Signature \`${io(t)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}},u0=class extends B{constructor({value:t}){super(`Value \`${t}\` 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"})}},p0=class extends B{constructor({value:t}){super(`Value \`${t}\` 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"})}},pc=class extends B{constructor({value:t}){super(`Value \`${t}\` 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"})}},l0=class extends B{constructor({value:t}){super(`Value \`${t}\` 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 o1(e,t={}){return typeof e.chainId=="string"?$_(e):{...e,...t.signature}}function $_(e){let{address:t,chainId:r,nonce:n}=e,o=d0(e);return{address:t,chainId:Number(r),nonce:BigInt(n),...o}}function s1(e){return R_(e,{presign:!0})}function R_(e,t={}){let{presign:r}=t;return Jo(Te("0x05",Xx(M_(r?{address:e.address,chainId:e.chainId,nonce:e.nonce}:e))))}function M_(e){let{address:t,chainId:r,nonce:n}=e,o=d0(e);return[r?me(r):"0x",t,n?me(n):"0x",...o?r1(o):[]]}Rt();et();import{secp256k1 as N_}from"@noble/curves/secp256k1";et();function a1(e){return Gx(L_(e))}function L_(e){let{payload:t,signature:r}=e,{r:n,s:o,yParity:s}=r,i=new N_.Signature(BigInt(n),BigInt(o)).addRecoveryBit(s).recoverPublicKey(Fa(t).substring(2));return jx(i)}var y0="0x8010801080108010801080108010801080108010801080108010801080108010",b0=mc("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function sl(e){if(typeof e=="string"){if(Pe(e,-32)!==y0)throw new ol(e)}else f0(e.authorization)}function D_(e){return typeof e=="string"?i1(e):e}function i1(e){sl(e);let t=ap(Pe(e,-64,-32)),r=Pe(e,-t-64,-64),n=Pe(e,0,-t-64),[o,s,a]=qa(b0,r);return{authorization:o1({address:o.delegation,chainId:Number(o.chainId),nonce:o.nonce,yParity:o.yParity,r:o.r,s:o.s}),signature:n,...a&&a!=="0x"?{data:a,to:s}:{}}}function U_(e){let{data:t,signature:r}=e;sl(e);let n=a1({payload:s1(e.authorization),signature:g0(e.authorization)}),o=fo(b0,[{...e.authorization,delegation:e.authorization.address,chainId:BigInt(e.authorization.chainId)},e.to??n,t??"0x"]),s=me(Ie(o),{size:32});return Te(r,o,s,y0)}function z_(e){try{return sl(e),!0}catch{return!1}}var ol=class extends B{constructor(t){super(`Value \`${t}\` is an invalid ERC-8010 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc8010.InvalidWrappedSignatureError"})}};vm();K();var al=class extends w{constructor({value:t}){super(`Number \`${t}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}};function c1(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new al({value:e});let[r,n="0"]=e.split("."),o=r.startsWith("-");if(o&&(r=r.slice(1)),n=n.replace(/(0+)$/,""),t===0)Math.round(+`.${n}`)===1&&(r=`${BigInt(r)+1n}`),n="";else if(n.length>t){let[s,a,i]=[n.slice(0,t-1),n.slice(t-1,t),n.slice(t)],c=Math.round(+`${a}.${i}`);c>9?n=`${BigInt(s)+BigInt(1)}0`.padStart(s.length+1,"0"):n=`${s}${c}`,n.length>t&&(n=n.slice(1),r=`${BigInt(r)+1n}`),n=n.slice(0,t)}else n=n.padEnd(t,"0");return BigInt(`${o?"-":""}${r}${n}`)}function Xo(e,t="wei"){return c1(e,xm[t])}function O_(e){return e.map(t=>({...t,value:BigInt(t.value)}))}function m1(e){return{...e,balance:e.balance?BigInt(e.balance):void 0,nonce:e.nonce?Ae(e.nonce):void 0,storageProof:e.storageProof?O_(e.storageProof):void 0}}async function u1(e,{address:t,blockNumber:r,blockTag:n,storageKeys:o}){let s=n??"latest",a=r!==void 0?k(r):void 0,i=await e.request({method:"eth_getProof",params:[t,o,a||s]});return m1(i)}D();async function p1(e,{address:t,blockNumber:r,blockTag:n="latest",slot:o}){let s=r!==void 0?k(r):void 0;return await e.request({method:"eth_getStorageAt",params:[t,o,s||n]})}zt();D();async function Ka(e,{blockHash:t,blockNumber:r,blockTag:n,hash:o,index:s}){let a=n||"latest",i=r!==void 0?k(r):void 0,c=null;if(o?c=await e.request({method:"eth_getTransactionByHash",params:[o]},{dedupe:!0}):t?c=await e.request({method:"eth_getTransactionByBlockHashAndIndex",params:[t,k(s)]},{dedupe:!0}):(i||a)&&(c=await e.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[i||a,k(s)]},{dedupe:!!i})),!c)throw new ks({blockHash:t,blockNumber:r,blockTag:a,hash:o,index:s});return(e.chain?.formatters?.transaction?.format||$o)(c,"getTransaction")}async function l1(e,{hash:t,transactionReceipt:r}){let[n,o]=await Promise.all([T(e,Wr,"getBlockNumber")({}),t?T(e,Ka,"getTransaction")({hash:t}):void 0]),s=r?.blockNumber||o?.blockNumber;return s?n-s+1n:0n}zt();async function Wa(e,{hash:t}){let r=await e.request({method:"eth_getTransactionReceipt",params:[t]},{dedupe:!0});if(!r)throw new Es({hash:t});return(e.chain?.formatters?.transactionReceipt?.format||Pi)(r,"getTransactionReceipt")}co();tc();Me();K();Zn();so();Ht();Lo();async function f1(e,t){let{account:r,authorizationList:n,allowFailure:o=!0,blockNumber:s,blockOverrides:a,blockTag:i,stateOverride:c}=t,m=t.contracts,{batchSize:u=t.batchSize??1024,deployless:p=t.deployless??!1}=typeof e.batch?.multicall=="object"?e.batch.multicall:{},l=(()=>{if(t.multicallAddress)return t.multicallAddress;if(p)return null;if(e.chain)return sr({blockNumber:s,chain:e.chain,contract:"multicall3"});throw new Error("client chain not configured. multicallAddress is required.")})(),d=[[]],g=0,h=0;for(let x=0;x<m.length;x++){let{abi:v,address:S,args:E,functionName:_}=m[x];try{let I=ke({abi:v,args:E,functionName:_});h+=(I.length-2)/2,u>0&&h>u&&d[g].length>0&&(g++,h=(I.length-2)/2,d[g]=[]),d[g]=[...d[g],{allowFailure:!0,callData:I,target:S}]}catch(I){let R=Vt(I,{abi:v,address:S,args:E,docsPath:"/docs/contract/multicall",functionName:_,sender:r});if(!o)throw R;d[g]=[...d[g],{allowFailure:!0,callData:"0x",target:S}]}}let y=await Promise.allSettled(d.map(x=>T(e,je,"readContract")({...l===null?{code:La}:{address:l},abi:Go,account:r,args:[x],authorizationList:n,blockNumber:s,blockOverrides:a,blockTag:i,functionName:"aggregate3",stateOverride:c}))),b=[];for(let x=0;x<y.length;x++){let v=y[x];if(v.status==="rejected"){if(!o)throw v.reason;for(let E=0;E<d[x].length;E++)b.push({status:"failure",error:v.reason,result:void 0});continue}let S=v.value;for(let E=0;E<S.length;E++){let{returnData:_,success:I}=S[E],{callData:R}=d[x][E],{abi:N,address:L,functionName:O,args:j}=m[b.length];try{if(R==="0x")throw new ir;if(!I)throw new zr({data:_});let q=$t({abi:N,args:j,data:_,functionName:O});b.push(o?{result:q,status:"success"}:q)}catch(q){let fe=Vt(q,{abi:N,address:L,args:j,docsPath:"/docs/contract/multicall",functionName:O});if(!o)throw fe;b.push({error:fe,result:void 0,status:"failure"})}}}if(b.length!==m.length)throw new w("multicall results mismatch");return b}_d();Re();Me();Zn();Vn();so();Ht();yt();D();Wi();On();Zu();xn();async function fc(e,t){let{blockNumber:r,blockTag:n=e.experimental_blockTag??"latest",blocks:o,returnFullTransactions:s,traceTransfers:a,validation:i}=t;try{let c=[];for(let l of o){let d=l.blockOverrides?up(l.blockOverrides):void 0,g=l.calls.map(y=>{let b=y,x=b.account?W(b.account):void 0,v=b.abi?ke(b):b.data,S={...b,account:x,data:b.dataSuffix?Oe([v||"0x",b.dataSuffix]):v,from:b.from??x?.address};return mt(S),It(S)}),h=l.stateOverrides?Sa(l.stateOverrides):void 0;c.push({blockOverrides:d,calls:g,stateOverrides:h})}let u=(typeof r=="bigint"?k(r):void 0)||n;return(await e.request({method:"eth_simulateV1",params:[{blockStateCalls:c,returnFullTransactions:s,traceTransfers:a,validation:i},u]})).map((l,d)=>({...Ii(l),calls:l.calls.map((g,h)=>{let{abi:y,args:b,functionName:x,to:v}=o[d].calls[h],S=g.error?.data??g.returnData,E=BigInt(g.gasUsed),_=g.logs?.map(L=>at(L)),I=g.status==="0x1"?"success":"failure",R=y&&I==="success"&&S!=="0x"?$t({abi:y,data:S,functionName:x}):null,N=(()=>{if(I==="success")return;let L;if(g.error?.data==="0x"?L=new ir:g.error&&(L=new zr(g.error)),!!L)return Vt(L,{abi:y??[],address:v??"0x",args:b,functionName:x??"<unknown>"})})();return{data:S,gasUsed:E,logs:_,status:I,...I==="success"?{result:R}:{error:N}}})}))}catch(c){let m=c,u=to(m,{});throw u instanceof tr?m:u}}Hi();Rt();et();Rt();function cl(e){let t=!0,r="",n=0,o="",s=!1;for(let a=0;a<e.length;a++){let i=e[a];if(["(",")",","].includes(i)&&(t=!0),i==="("&&n++,i===")"&&n--,!!t){if(n===0){if(i===" "&&["event","function","error",""].includes(o))o="";else if(o+=i,i===")"){s=!0;break}continue}if(i===" "){e[a-1]!==","&&r!==","&&r!==",("&&(r="",t=!1);continue}o+=i,r+=i}}if(!s)throw new B("Unable to normalize signature.");return o}function il(e,t){let r=typeof e,n=t.type;switch(n){case"address":return Jp(e,{strict:!1});case"bool":return r==="boolean";case"function":return r==="string";case"string":return r==="string";default:return n==="tuple"&&"components"in t?Object.values(t.components).every((o,s)=>il(Object.values(e)[s],o)):/^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(n)?r==="number"||r==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?r==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(e)&&e.every(o=>il(o,{...t,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function x0(e,t,r){for(let n in e){let o=e[n],s=t[n];if(o.type==="tuple"&&s.type==="tuple"&&"components"in o&&"components"in s)return x0(o.components,s.components,r[n]);let a=[o.type,s.type];if(a.includes("address")&&a.includes("bytes20")?!0:a.includes("address")&&a.includes("string")?Jp(r[n],{strict:!1}):a.includes("address")&&a.includes("bytes")?Jp(r[n],{strict:!1}):!1)return a}}function ml(e,t={}){let{prepare:r=!0}=t,n=Array.isArray(e)?Tu(e):typeof e=="string"?Tu(e):e;return{...n,...r?{hash:Ja(n)}:{}}}function dc(e,t,r){let{args:n=[],prepare:o=!0}=r??{},s=ec(t,{strict:!1}),a=e.filter(m=>s?m.type==="function"||m.type==="error"?w0(m)===Pe(t,0,4):m.type==="event"?Ja(m)===t:!1:"name"in m&&m.name===t);if(a.length===0)throw new go({name:t});if(a.length===1)return{...a[0],...o?{hash:Ja(a[0])}:{}};let i;for(let m of a){if(!("inputs"in m))continue;if(!n||n.length===0){if(!m.inputs||m.inputs.length===0)return{...m,...o?{hash:Ja(m)}:{}};continue}if(!m.inputs||m.inputs.length===0||m.inputs.length!==n.length)continue;if(n.every((p,l)=>{let d="inputs"in m&&m.inputs[l];return d?il(p,d):!1})){if(i&&"inputs"in i&&i.inputs){let p=x0(m.inputs,i.inputs,n);if(p)throw new v0({abiItem:m,type:p[0]},{abiItem:i,type:p[1]})}i=m}}let c=(()=>{if(i)return i;let[m,...u]=a;return{...m,overloads:u}})();if(!c)throw new go({name:t});return{...c,...o?{hash:Ja(c)}:{}}}function w0(...e){let t=(()=>{if(Array.isArray(e[0])){let[r,n]=e;return dc(r,n)}return e[0]})();return Pe(Ja(t),0,4)}function H_(...e){let t=(()=>{if(Array.isArray(e[0])){let[n,o]=e;return dc(n,o)}return e[0]})(),r=typeof t=="string"?t:Bo(t);return cl(r)}function Ja(...e){let t=(()=>{if(Array.isArray(e[0])){let[r,n]=e;return dc(r,n)}return e[0]})();return typeof t!="string"&&"hash"in t&&t.hash?t.hash:Jo(Na(H_(t)))}var v0=class extends B{constructor(t,r){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${t.type}\` in \`${cl(Bo(t.abiItem))}\`, and`,`\`${r.type}\` in \`${cl(Bo(r.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"})}},go=class extends B{constructor({name:t,data:r,type:n="item"}){let o=t?` with name "${t}"`:r?` with data "${r}"`:"";super(`ABI ${n}${o} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}};et();function g1(...e){let[t,r]=(()=>{if(Array.isArray(e[0])){let[s,a]=e;return[V_(s),a]}return e})(),{bytecode:n,args:o}=r;return Te(n,t.inputs?.length&&o?.length?fo(t.inputs,o):"0x")}function h1(e){return ml(e)}function V_(e){let t=e.find(r=>r.type==="constructor");if(!t)throw new go({name:"constructor"});return t}et();function b1(...e){let[t,r=[]]=(()=>{if(Array.isArray(e[0])){let[m,u,p]=e;return[y1(m,u,{args:p}),p]}let[i,c]=e;return[i,c]})(),{overloads:n}=t,o=n?y1([t,...n],t.name,{args:r}):t,s=q_(o),a=r.length>0?fo(o.inputs,r):void 0;return a?Te(s,a):s}function Qo(e,t={}){return ml(e,t)}function y1(e,t,r){let n=dc(e,t,r);if(n.type!=="function")throw new go({name:t,type:"function"});return n}function q_(e){return w0(e)}Re();var x1="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Pr="0x0000000000000000000000000000000000000000";tc();K();Ht();var W_="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function v1(e,t){let{blockNumber:r,blockTag:n,calls:o,stateOverrides:s,traceAssetChanges:a,traceTransfers:i,validation:c}=t,m=t.account?W(t.account):void 0;if(a&&!m)throw new w("`account` is required when `traceAssetChanges` is true");let u=m?g1(h1("constructor(bytes, bytes)"),{bytecode:fp,args:[W_,b1(Qo("function getBalance(address)"),[m.address])]}):void 0,p=a?await Promise.all(t.calls.map(async H=>{if(!H.data&&!H.abi)return;let{accessList:Be}=await Mp(e,{account:m.address,...H,data:H.abi?ke(H):H.data});return Be.map(({address:Fr,storageKeys:Ln})=>Ln.length>0?Fr:null)})).then(H=>H.flat().filter(Boolean)):[],l=await fc(e,{blockNumber:r,blockTag:n,blocks:[...a?[{calls:[{data:u}],stateOverrides:s},{calls:p.map((H,Be)=>({abi:[Qo("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[m.address],to:H,from:Pr,nonce:Be})),stateOverrides:[{address:Pr,nonce:0}]}]:[],{calls:[...o,{}].map(H=>({...H,from:m?.address})),stateOverrides:s},...a?[{calls:[{data:u}]},{calls:p.map((H,Be)=>({abi:[Qo("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[m.address],to:H,from:Pr,nonce:Be})),stateOverrides:[{address:Pr,nonce:0}]},{calls:p.map((H,Be)=>({to:H,abi:[Qo("function decimals() returns (uint256)")],functionName:"decimals",from:Pr,nonce:Be})),stateOverrides:[{address:Pr,nonce:0}]},{calls:p.map((H,Be)=>({to:H,abi:[Qo("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Pr,nonce:Be})),stateOverrides:[{address:Pr,nonce:0}]},{calls:p.map((H,Be)=>({to:H,abi:[Qo("function symbol() returns (string)")],functionName:"symbol",from:Pr,nonce:Be})),stateOverrides:[{address:Pr,nonce:0}]}]:[]],traceTransfers:i,validation:c}),d=a?l[2]:l[0],[g,h,,y,b,x,v,S]=a?l:[],{calls:E,..._}=d,I=E.slice(0,-1)??[],R=g?.calls??[],N=h?.calls??[],L=[...R,...N].map(H=>H.status==="success"?be(H.data):null),O=y?.calls??[],j=b?.calls??[],q=[...O,...j].map(H=>H.status==="success"?be(H.data):null),fe=(x?.calls??[]).map(H=>H.status==="success"?H.result:null),Se=(S?.calls??[]).map(H=>H.status==="success"?H.result:null),Z=(v?.calls??[]).map(H=>H.status==="success"?H.result:null),Ve=[];for(let[H,Be]of q.entries()){let Fr=L[H];if(typeof Be!="bigint"||typeof Fr!="bigint")continue;let Ln=fe[H-1],ve=Se[H-1],Bn=Z[H-1],yr=H===0?{address:x1,decimals:18,symbol:"ETH"}:{address:p[H-1],decimals:Bn||Ln?Number(Ln??1):void 0,symbol:ve??void 0};Ve.some(Tf=>Tf.token.address===yr.address)||Ve.push({token:yr,value:{pre:Fr,post:Be,diff:Be-Fr}})}return{assetChanges:Ve,block:_,results:I}}var gc={};Rf(gc,{InvalidWrappedSignatureError:()=>ul,assert:()=>S0,from:()=>Y_,magicBytes:()=>C0,universalSignatureValidatorAbi:()=>Z_,universalSignatureValidatorBytecode:()=>J_,unwrap:()=>w1,validate:()=>Q_,wrap:()=>X_});Rt();et();var C0="0x6492649264926492649264926492649264926492649264926492649264926492",J_="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",Z_=[{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 S0(e){if(Pe(e,-32)!==C0)throw new ul(e)}function Y_(e){return typeof e=="string"?w1(e):e}function w1(e){S0(e);let[t,r,n]=qa(mc("address, bytes, bytes"),e);return{data:r,signature:n,to:t}}function X_(e){let{data:t,signature:r,to:n}=e;return Te(fo(mc("address, bytes, bytes"),[n,t,r]),C0)}function Q_(e){try{return S0(e),!0}catch{return!1}}var ul=class extends B{constructor(t){super(`Value \`${t}\` is an invalid ERC-6492 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"})}};co();tc();Zn();dp();Ht();Gn();Ho();yt();Ut();Ge();D();Ge();Ye();import{secp256k1 as eI}from"@noble/curves/secp256k1";function pl({r:e,s:t,to:r="hex",v:n,yParity:o}){let s=(()=>{if(o===0||o===1)return o;if(n&&(n===27n||n===28n||n>=35n))return n%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),a=`0x${new eI.Signature(be(e),be(t)).toCompactHex()}${s===0?"1b":"1c"}`;return r==="hex"?a:qe(a)}Da();async function ho(e,t){let{address:r,hash:n,erc6492VerifierAddress:o=t.universalSignatureVerifierAddress??e.chain?.contracts?.erc6492Verifier?.address,multicallAddress:s=t.multicallAddress??e.chain?.contracts?.multicall3?.address}=t,a=(()=>{let i=t.signature;return xe(i)?i:typeof i=="object"&&"r"in i&&"s"in i?pl(i):oe(i)})();try{return lc.validate(a)?await tI(e,{...t,multicallAddress:s,signature:a}):await rI(e,{...t,verifierAddress:o,signature:a})}catch(i){try{if(mr(js(r),await Ku({hash:n,signature:a})))return!0}catch{}if(i instanceof Sn)return!1;throw i}}async function tI(e,t){let{address:r,blockNumber:n,blockTag:o,hash:s,multicallAddress:a}=t,{authorization:i,data:c,signature:m,to:u}=lc.unwrap(t.signature);if(await sc(e,{address:r,blockNumber:n,blockTag:o})===Xe(["0xef0100",i.address]))return await nI(e,{address:r,blockNumber:n,blockTag:o,hash:s,signature:m});let l={address:i.address,chainId:Number(i.chainId),nonce:Number(i.nonce),r:k(i.r,{size:32}),s:k(i.s,{size:32}),yParity:i.yParity};if(!await Ax({address:r,authorization:l}))throw new Sn;let g=await T(e,je,"readContract")({...a?{address:a}:{code:La},authorizationList:[l],abi:Go,blockNumber:n,blockTag:"pending",functionName:"aggregate3",args:[[...c?[{allowFailure:!0,target:u??r,callData:c}]:[],{allowFailure:!0,target:r,callData:ke({abi:Ad,functionName:"isValidSignature",args:[s,m]})}]]});if(g[g.length-1]?.returnData?.startsWith("0x1626ba7e"))return!0;throw new Sn}async function rI(e,t){let{address:r,factory:n,factoryData:o,hash:s,signature:a,verifierAddress:i,...c}=t,m=await(async()=>!n&&!o||gc.validate(a)?a:gc.wrap({data:o,signature:a,to:n}))(),u=i?{to:i,data:ke({abi:Td,functionName:"isValidSig",args:[r,s,m]}),...c}:{data:qo({abi:Td,args:[r,s,m],bytecode:Kb}),...c},{data:p}=await T(e,Kr,"call")(u).catch(l=>{throw l instanceof ta?new Sn:l});if(zf(p??"0x0"))return!0;throw new Sn}async function nI(e,t){let{address:r,blockNumber:n,blockTag:o,hash:s,signature:a}=t;if((await T(e,je,"readContract")({address:r,abi:Ad,args:[s,a],blockNumber:n,blockTag:o,functionName:"isValidSignature"}).catch(c=>{throw c instanceof ra?new Sn:c})).startsWith("0x1626ba7e"))return!0;throw new Sn}var Sn=class extends Error{};async function C1(e,{address:t,message:r,factory:n,factoryData:o,signature:s,...a}){let i=Va(r);return ho(e,{address:t,factory:n,factoryData:o,hash:i,signature:s,...a})}async function S1(e,t){let{address:r,factory:n,factoryData:o,signature:s,message:a,primaryType:i,types:c,domain:m,...u}=t,p=Hp({message:a,primaryType:i,types:c,domain:m});return ho(e,{address:r,factory:n,factoryData:o,hash:p,signature:s,...u})}zt();gp();it();Ge();it();function ll(e,{emitOnBegin:t=!1,emitMissed:r=!1,onBlockNumber:n,onError:o,poll:s,pollingInterval:a=e.pollingInterval}){let i=typeof s<"u"?s:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")),c;return i?(()=>{let p=ee(["watchBlockNumber",e.uid,t,r,a]);return pt(p,{onBlockNumber:n,onError:o},l=>pr(async()=>{try{let d=await T(e,Wr,"getBlockNumber")({cacheTime:0});if(c!==void 0){if(d===c)return;if(d-c>1&&r)for(let g=c+1n;g<d;g++)l.onBlockNumber(g,c),c=g}(c===void 0||d>c)&&(l.onBlockNumber(d,c),c=d)}catch(d){l.onError?.(d)}},{emitOnBegin:t,interval:a}))})():(()=>{let p=ee(["watchBlockNumber",e.uid,t,r]);return pt(p,{onBlockNumber:n,onError:o},l=>{let d=!0,g=()=>d=!1;return(async()=>{try{let h=(()=>{if(e.transport.type==="fallback"){let b=e.transport.transports.find(x=>x.config.type==="webSocket"||x.config.type==="ipc");return b?b.value:e.transport}return e.transport})(),{unsubscribe:y}=await h.subscribe({params:["newHeads"],onData(b){if(!d)return;let x=be(b.result?.number);l.onBlockNumber(x,c),c=x},onError(b){l.onError?.(b)}});g=y,d||g()}catch(h){o?.(h)}})(),()=>g()})})()}async function fl(e,t){let{checkReplacement:r=!0,confirmations:n=1,hash:o,onReplaced:s,retryCount:a=6,retryDelay:i=({count:E})=>~~(1<<E)*200,timeout:c=18e4}=t,m=ee(["waitForTransactionReceipt",e.uid,o]),u=t.pollingInterval?t.pollingInterval:e.chain?.experimental_preconfirmationTime?e.chain.experimental_preconfirmationTime:e.pollingInterval,p,l,d,g=!1,h,y,{promise:b,resolve:x,reject:v}=Ba(),S=c?setTimeout(()=>{y?.(),h?.(),v(new Pm({hash:o}))},c):void 0;return h=pt(m,{onReplaced:s,resolve:x,reject:v},async E=>{if(d=await T(e,Wa,"getTransactionReceipt")({hash:o}).catch(()=>{}),d&&n<=1){clearTimeout(S),E.resolve(d),h?.();return}y=T(e,ll,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:u,async onBlockNumber(_){let I=N=>{clearTimeout(S),y?.(),N(),h?.()},R=_;if(!g)try{if(d){if(n>1&&(!d.blockNumber||R-d.blockNumber+1n<n))return;I(()=>E.resolve(d));return}if(r&&!p&&(g=!0,await Wo(async()=>{p=await T(e,Ka,"getTransaction")({hash:o}),p.blockNumber&&(R=p.blockNumber)},{delay:i,retryCount:a}),g=!1),d=await T(e,Wa,"getTransactionReceipt")({hash:o}),n>1&&(!d.blockNumber||R-d.blockNumber+1n<n))return;I(()=>E.resolve(d))}catch(N){if(N instanceof ks||N instanceof Es){if(!p){g=!1;return}try{l=p,g=!0;let L=await Wo(()=>T(e,ut,"getBlock")({blockNumber:R,includeTransactions:!0}),{delay:i,retryCount:a,shouldRetry:({error:q})=>q instanceof ka});g=!1;let O=L.transactions.find(({from:q,nonce:fe})=>q===l.from&&fe===l.nonce);if(!O||(d=await T(e,Wa,"getTransactionReceipt")({hash:O.hash}),n>1&&(!d.blockNumber||R-d.blockNumber+1n<n)))return;let j="replaced";O.to===l.to&&O.value===l.value&&O.input===l.input?j="repriced":O.from===O.to&&O.value===0n&&(j="cancelled"),I(()=>{E.onReplaced?.({reason:j,replacedTransaction:l,transaction:O,transactionReceipt:d}),E.resolve(d)})}catch(L){I(()=>E.reject(L))}}else I(()=>E.reject(N))}}})}),b}it();function k1(e,{blockTag:t=e.experimental_blockTag??"latest",emitMissed:r=!1,emitOnBegin:n=!1,onBlock:o,onError:s,includeTransactions:a,poll:i,pollingInterval:c=e.pollingInterval}){let m=typeof i<"u"?i:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")),u=a??!1,p;return m?(()=>{let g=ee(["watchBlocks",e.uid,t,r,n,u,c]);return pt(g,{onBlock:o,onError:s},h=>pr(async()=>{try{let y=await T(e,ut,"getBlock")({blockTag:t,includeTransactions:u});if(y.number!==null&&p?.number!=null){if(y.number===p.number)return;if(y.number-p.number>1&&r)for(let b=p?.number+1n;b<y.number;b++){let x=await T(e,ut,"getBlock")({blockNumber:b,includeTransactions:u});h.onBlock(x,p),p=x}}(p?.number==null||t==="pending"&&y?.number==null||y.number!==null&&y.number>p.number)&&(h.onBlock(y,p),p=y)}catch(y){h.onError?.(y)}},{emitOnBegin:n,interval:c}))})():(()=>{let g=!0,h=!0,y=()=>g=!1;return(async()=>{try{n&&T(e,ut,"getBlock")({blockTag:t,includeTransactions:u}).then(v=>{g&&h&&(o(v,void 0),h=!1)}).catch(s);let b=(()=>{if(e.transport.type==="fallback"){let v=e.transport.transports.find(S=>S.config.type==="webSocket"||S.config.type==="ipc");return v?v.value:e.transport}return e.transport})(),{unsubscribe:x}=await b.subscribe({params:["newHeads"],async onData(v){if(!g)return;let S=await T(e,ut,"getBlock")({blockNumber:v.result?.number,includeTransactions:u}).catch(()=>{});g&&(o(S,p),h=!1,p=S)},onError(v){s?.(v)}});y=x,g||y()}catch(b){s?.(b)}})(),()=>y()})()}Me();wa();it();function E1(e,{address:t,args:r,batch:n=!0,event:o,events:s,fromBlock:a,onError:i,onLogs:c,poll:m,pollingInterval:u=e.pollingInterval,strict:p}){let l=typeof m<"u"?m:typeof a=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")),d=p??!1;return l?(()=>{let y=ee(["watchEvent",t,r,n,e.uid,o,u,a]);return pt(y,{onLogs:c,onError:i},b=>{let x;a!==void 0&&(x=a-1n);let v,S=!1,E=pr(async()=>{if(!S){try{v=await T(e,Fp,"createEventFilter")({address:t,args:r,event:o,events:s,strict:d,fromBlock:a})}catch{}S=!0;return}try{let _;if(v)_=await T(e,mo,"getFilterChanges")({filter:v});else{let I=await T(e,Wr,"getBlockNumber")({});x&&x!==I?_=await T(e,Aa,"getLogs")({address:t,args:r,event:o,events:s,fromBlock:x+1n,toBlock:I}):_=[],x=I}if(_.length===0)return;if(n)b.onLogs(_);else for(let I of _)b.onLogs([I])}catch(_){v&&_ instanceof Or&&(S=!1),b.onError?.(_)}},{emitOnBegin:!0,interval:u});return async()=>{v&&await T(e,uo,"uninstallFilter")({filter:v}),E()}})})():(()=>{let y=!0,b=()=>y=!1;return(async()=>{try{let x=(()=>{if(e.transport.type==="fallback"){let _=e.transport.transports.find(I=>I.config.type==="webSocket"||I.config.type==="ipc");return _?_.value:e.transport}return e.transport})(),v=s??(o?[o]:void 0),S=[];v&&(S=[v.flatMap(I=>Hr({abi:[I],eventName:I.name,args:r}))],o&&(S=S[0]));let{unsubscribe:E}=await x.subscribe({params:["logs",{address:t,topics:S}],onData(_){if(!y)return;let I=_.result;try{let{eventName:R,args:N}=Pa({abi:v??[],data:I.data,topics:I.topics,strict:d}),L=at(I,{args:N,eventName:R});c([L])}catch(R){let N,L;if(R instanceof Er||R instanceof Lr){if(p)return;N=R.abiItem.name,L=R.abiItem.inputs?.some(j=>!("name"in j&&j.name))}let O=at(I,{args:L?[]:{},eventName:N});c([O])}},onError(_){i?.(_)}});b=E,y||b()}catch(x){i?.(x)}})(),()=>b()})()}it();function _1(e,{batch:t=!0,onError:r,onTransactions:n,poll:o,pollingInterval:s=e.pollingInterval}){return(typeof o<"u"?o:e.transport.type!=="webSocket"&&e.transport.type!=="ipc")?(()=>{let m=ee(["watchPendingTransactions",e.uid,t,s]);return pt(m,{onTransactions:n,onError:r},u=>{let p,l=pr(async()=>{try{if(!p)try{p=await T(e,Np,"createPendingTransactionFilter")({});return}catch(g){throw l(),g}let d=await T(e,mo,"getFilterChanges")({filter:p});if(d.length===0)return;if(t)u.onTransactions(d);else for(let g of d)u.onTransactions([g])}catch(d){u.onError?.(d)}},{emitOnBegin:!0,interval:s});return async()=>{p&&await T(e,uo,"uninstallFilter")({filter:p}),l()}})})():(()=>{let m=!0,u=()=>m=!1;return(async()=>{try{let{unsubscribe:p}=await e.transport.subscribe({params:["newPendingTransactions"],onData(l){if(!m)return;let d=l.result;n([d])},onError(l){r?.(l)}});u=p,m||u()}catch(p){r?.(p)}})(),()=>u()})()}function I1(e){let{scheme:t,statement:r,...n}=e.match(oI)?.groups??{},{chainId:o,expirationTime:s,issuedAt:a,notBefore:i,requestId:c,...m}=e.match(sI)?.groups??{},u=e.split("Resources:")[1]?.split(`
57
- - `).slice(1);return{...n,...m,...o?{chainId:Number(o)}:{},...s?{expirationTime:new Date(s)}:{},...a?{issuedAt:new Date(a)}:{},...i?{notBefore:new Date(i)}:{},...c?{requestId:c}:{},...u?{resources:u}:{},...t?{scheme:t}:{},...r?{statement:r}:{}}}var oI=/^(?:(?<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)?/,sI=/(?: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>.+))?/;Ot();Ho();function P1(e){let{address:t,domain:r,message:n,nonce:o,scheme:s,time:a=new Date}=e;if(r&&n.domain!==r||o&&n.nonce!==o||s&&n.scheme!==s||n.expirationTime&&a>=n.expirationTime||n.notBefore&&a<n.notBefore)return!1;try{if(!n.address||!ie(n.address,{strict:!1})||t&&!mr(n.address,t))return!1}catch{return!1}return!0}async function A1(e,t){let{address:r,domain:n,message:o,nonce:s,scheme:a,signature:i,time:c=new Date,...m}=t,u=I1(o);if(!u.address||!P1({address:r,domain:n,message:u,nonce:s,scheme:a,time:c}))return!1;let l=Va(o);return ho(e,{address:u.address,hash:l,signature:i,...m})}zt();async function Za(e,{serializedTransaction:t,throwOnReceiptRevert:r,timeout:n}){let o=await e.request({method:"eth_sendRawTransactionSync",params:n?[t,k(n)]:[t]},{retryCount:0}),a=(e.chain?.formatters?.transactionReceipt?.format||Pi)(o);if(a.status==="reverted"&&r)throw new _s({receipt:a});return a}function T1(e){return{call:t=>Kr(e,t),createAccessList:t=>Mp(e,t),createBlockFilter:()=>wx(e),createContractEventFilter:t=>Gu(e,t),createEventFilter:t=>Fp(e,t),createPendingTransactionFilter:()=>Np(e),estimateContractGas:t=>yb(e,t),estimateGas:t=>Ia(e,t),getBalance:t=>Cx(e,t),getBlobBaseFee:()=>Sx(e),getBlock:t=>ut(e,t),getBlockNumber:t=>Wr(e,t),getBlockTransactionCount:t=>kx(e,t),getBytecode:t=>sc(e,t),getChainId:()=>Tt(e),getCode:t=>sc(e,t),getContractEvents:t=>ep(e,t),getEip712Domain:t=>Ex(e,t),getEnsAddress:t=>lx(e,t),getEnsAvatar:t=>bx(e,t),getEnsName:t=>xx(e,t),getEnsResolver:t=>vx(e,t),getEnsText:t=>Rp(e,t),getFeeHistory:t=>Ix(e,t),estimateFeesPerGas:t=>gb(e,t),getFilterChanges:t=>mo(e,t),getFilterLogs:t=>Px(e,t),getGasPrice:()=>Ea(e),getLogs:t=>Aa(e,t),getProof:t=>u1(e,t),estimateMaxPriorityFeePerGas:t=>db(e,t),getStorageAt:t=>p1(e,t),getTransaction:t=>Ka(e,t),getTransactionConfirmations:t=>l1(e,t),getTransactionCount:t=>_a(e,t),getTransactionReceipt:t=>Wa(e,t),multicall:t=>f1(e,t),prepareTransactionRequest:t=>Vr(e,t),readContract:t=>je(e,t),sendRawTransaction:t=>za(e,t),sendRawTransactionSync:t=>Za(e,t),simulate:t=>fc(e,t),simulateBlocks:t=>fc(e,t),simulateCalls:t=>v1(e,t),simulateContract:t=>sx(e,t),verifyHash:t=>ho(e,t),verifyMessage:t=>C1(e,t),verifySiweMessage:t=>A1(e,t),verifyTypedData:t=>S1(e,t),uninstallFilter:t=>uo(e,t),waitForTransactionReceipt:t=>fl(e,t),watchBlocks:t=>k1(e,t),watchBlockNumber:t=>ll(e,t),watchContractEvent:t=>mx(e,t),watchEvent:t=>E1(e,t),watchPendingTransactions:t=>_1(e,t)}}function es(e){let{key:t="public",name:r="Public Client"}=e;return Ip({...e,key:t,name:r,type:"publicClient"}).extend(T1)}D();async function $1(e,{chain:t}){let{id:r,name:n,nativeCurrency:o,rpcUrls:s,blockExplorers:a}=t;await e.request({method:"wallet_addEthereumChain",params:[{chainId:k(r),chainName:n,nativeCurrency:o,rpcUrls:s.default.http,blockExplorerUrls:a?Object.values(a).map(({url:i})=>i):void 0}]},{dedupe:!0,retryCount:0})}dp();function R1(e,t){let{abi:r,args:n,bytecode:o,...s}=t,a=qo({abi:r,args:n,bytecode:o});return po(e,{...s,...s.authorizationList?{to:null}:{},data:a})}Gn();async function M1(e){return e.account?.type==="local"?[e.account.address]:(await e.request({method:"eth_accounts"},{dedupe:!0})).map(r=>fn(r))}Re();D();async function F1(e,t={}){let{account:r=e.account,chainId:n}=t,o=r?W(r):void 0,s=n?[o?.address,[k(n)]]:[o?.address],a=await e.request({method:"wallet_getCapabilities",params:s}),i={};for(let[c,m]of Object.entries(a)){i[Number(c)]={};for(let[u,p]of Object.entries(m))u==="addSubAccount"&&(u="unstable_addSubAccount"),i[Number(c)][u]=p}return typeof n=="number"?i[n]:i}async function N1(e){return await e.request({method:"wallet_getPermissions"},{dedupe:!0})}Re();Ho();async function dl(e,t){let{account:r=e.account,chainId:n,nonce:o}=t;if(!r)throw new Qe({docsPath:"/docs/eip7702/prepareAuthorization"});let s=W(r),a=(()=>{if(t.executor)return t.executor==="self"?t.executor:W(t.executor)})(),i={address:t.contractAddress??t.address,chainId:n,nonce:o};return typeof i.chainId>"u"&&(i.chainId=e.chain?.id??await T(e,Tt,"getChainId")({})),typeof i.nonce>"u"&&(i.nonce=await T(e,_a,"getTransactionCount")({address:s.address,blockTag:"pending"}),(a==="self"||a?.address&&mr(a.address,s.address))&&(i.nonce+=1)),i}Gn();async function L1(e){return(await e.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map(r=>js(r))}async function B1(e,t){return e.request({method:"wallet_requestPermissions",params:[t]},{retryCount:0})}async function D1(e,t){let{chain:r=e.chain}=t,n=t.timeout??Math.max((r?.blockTime??0)*3,5e3),o=await wp(e,t);return await Sp(e,{...t,id:o.id,timeout:n})}Re();K();zt();Ca();On();Os();xn();var k0=new rr(128);async function gl(e,t){let{account:r=e.account,chain:n=e.chain,accessList:o,authorizationList:s,blobs:a,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:l,nonce:d,pollingInterval:g,throwOnReceiptRevert:h,type:y,value:b,...x}=t,v=t.timeout??Math.max((n?.blockTime??0)*3,5e3);if(typeof r>"u")throw new Qe({docsPath:"/docs/actions/wallet/sendTransactionSync"});let S=r?W(r):null;try{mt(t);let E=await(async()=>{if(t.to)return t.to;if(t.to!==null&&s&&s.length>0)return await no({authorization:s[0]}).catch(()=>{throw new w("`to` is required. Could not infer from `authorizationList`.")})})();if(S?.type==="json-rpc"||S===null){let _;n!==null&&(_=await T(e,Tt,"getChainId")({}),Hs({currentChainId:_,chain:n}));let I=e.chain?.formatters?.transactionRequest?.format,N=(I||It)({...jr(x,{format:I}),accessList:o,account:S,authorizationList:s,blobs:a,chainId:_,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:l,nonce:d,to:E,type:y,value:b},"sendTransaction"),L=k0.get(e.uid),O=L?"wallet_sendTransaction":"eth_sendTransaction",j=await(async()=>{try{return await e.request({method:O,params:[N]},{retryCount:0})}catch(fe){if(L===!1)throw fe;let Se=fe;if(Se.name==="InvalidInputRpcError"||Se.name==="InvalidParamsRpcError"||Se.name==="MethodNotFoundRpcError"||Se.name==="MethodNotSupportedRpcError")return await e.request({method:"wallet_sendTransaction",params:[N]},{retryCount:0}).then(Z=>(k0.set(e.uid,!0),Z)).catch(Z=>{let Ve=Z;throw Ve.name==="MethodNotFoundRpcError"||Ve.name==="MethodNotSupportedRpcError"?(k0.set(e.uid,!1),Se):Ve});throw Se}})(),q=await T(e,fl,"waitForTransactionReceipt")({checkReplacement:!1,hash:j,pollingInterval:g,timeout:v});if(h&&q.status==="reverted")throw new _s({receipt:q});return q}if(S?.type==="local"){let _=await T(e,Vr,"prepareTransactionRequest")({account:S,accessList:o,authorizationList:s,blobs:a,chain:n,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:l,nonce:d,nonceManager:S.nonceManager,parameters:[...Ji,"sidecars"],type:y,value:b,...x,to:E}),I=n?.serializers?.transaction,R=await S.signTransaction(_,{serializer:I});return await T(e,Za,"sendRawTransactionSync")({serializedTransaction:R,throwOnReceiptRevert:h})}throw S?.type==="smart"?new ar({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new ar({docsPath:"/docs/actions/wallet/sendTransactionSync",type:S?.type})}catch(E){throw E instanceof ar?E:Ua(E,{...t,account:S,chain:t.chain||void 0})}}async function U1(e,t){let{id:r}=t;await e.request({method:"wallet_showCallsStatus",params:[r]})}Re();async function z1(e,t){let{account:r=e.account}=t;if(!r)throw new Qe({docsPath:"/docs/eip7702/signAuthorization"});let n=W(r);if(!n.signAuthorization)throw new ar({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:n.type});let o=await dl(e,t);return n.signAuthorization(o)}Re();D();async function O1(e,{account:t=e.account,message:r}){if(!t)throw new Qe({docsPath:"/docs/actions/wallet/signMessage"});let n=W(t);if(n.signMessage)return n.signMessage({message:r});let o=typeof r=="string"?xr(r):r.raw instanceof Uint8Array?ye(r.raw):r.raw;return e.request({method:"personal_sign",params:[o,n.address]},{retryCount:0})}Re();D();On();xn();async function j1(e,t){let{account:r=e.account,chain:n=e.chain,...o}=t;if(!r)throw new Qe({docsPath:"/docs/actions/wallet/signTransaction"});let s=W(r);mt({account:s,...t});let a=await T(e,Tt,"getChainId")({});n!==null&&Hs({currentChainId:a,chain:n});let c=(n?.formatters||e.chain?.formatters)?.transactionRequest?.format||It;return s.signTransaction?s.signTransaction({...o,chainId:a},{serializer:e.chain?.serializers?.transaction}):await e.request({method:"eth_signTransaction",params:[{...c({...o,account:s},"signTransaction"),chainId:k(a),from:s.address}]},{retryCount:0})}Re();async function H1(e,t){let{account:r=e.account,domain:n,message:o,primaryType:s}=t;if(!r)throw new Qe({docsPath:"/docs/actions/wallet/signTypedData"});let a=W(r),i={EIP712Domain:jp({domain:n}),...t.types};if(Op({domain:n,message:o,primaryType:s,types:i}),a.signTypedData)return a.signTypedData({domain:n,message:o,primaryType:s,types:i});let c=Lx({domain:n,message:o,primaryType:s,types:i});return e.request({method:"eth_signTypedData_v4",params:[a.address,c]},{retryCount:0})}D();async function V1(e,{id:t}){await e.request({method:"wallet_switchEthereumChain",params:[{chainId:k(t)}]},{retryCount:0})}async function G1(e,t){return await e.request({method:"wallet_watchAsset",params:t},{retryCount:0})}async function q1(e,t){return Ko.internal(e,gl,"sendTransactionSync",t)}function K1(e){return{addChain:t=>$1(e,t),deployContract:t=>R1(e,t),getAddresses:()=>M1(e),getCallsStatus:t=>Cp(e,t),getCapabilities:t=>F1(e,t),getChainId:()=>Tt(e),getPermissions:()=>N1(e),prepareAuthorization:t=>dl(e,t),prepareTransactionRequest:t=>Vr(e,t),requestAddresses:()=>L1(e),requestPermissions:t=>B1(e,t),sendCalls:t=>wp(e,t),sendCallsSync:t=>D1(e,t),sendRawTransaction:t=>za(e,t),sendRawTransactionSync:t=>Za(e,t),sendTransaction:t=>po(e,t),sendTransactionSync:t=>gl(e,t),showCallsStatus:t=>U1(e,t),signAuthorization:t=>z1(e,t),signMessage:t=>O1(e,t),signTransaction:t=>j1(e,t),signTypedData:t=>H1(e,t),switchChain:t=>V1(e,t),waitForCallsStatus:t=>Sp(e,t),watchAsset:t=>G1(e,t),writeContract:t=>Ko(e,t),writeContractSync:t=>q1(e,t)}}function hc(e){let{key:t="wallet",name:r="Wallet Client",transport:n}=e;return Ip({...e,key:t,name:r,transport:n,type:"walletClient"}).extend(K1)}function W1({key:e,methods:t,name:r,request:n,retryCount:o=3,retryDelay:s=150,timeout:a,type:i},c){let m=_p();return{config:{key:e,methods:t,name:r,request:n,retryCount:o,retryDelay:s,timeout:a,type:i},request:$x(n,{methods:t,retryCount:o,retryDelay:s,uid:m}),value:c}}zo();K();var hl=class extends w{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}};Md();function kn(e,t={}){let{batch:r,fetchFn:n,fetchOptions:o,key:s="http",methods:a,name:i="HTTP JSON-RPC",onFetchRequest:c,onFetchResponse:m,retryDelay:u,raw:p}=t;return({chain:l,retryCount:d,timeout:g})=>{let{batchSize:h=1e3,wait:y=0}=typeof r=="object"?r:{},b=t.retryCount??d,x=g??t.timeout??1e4,v=e||l?.rpcUrls.default.http[0];if(!v)throw new hl;let S=Mx(v,{fetchFn:n,fetchOptions:o,onRequest:c,onResponse:m,timeout:x});return W1({key:s,methods:a,name:i,async request({method:E,params:_}){let I={method:E,params:_},{schedule:R}=hp({id:v,wait:y,shouldSplitBatch(j){return j.length>h},fn:j=>S.request({body:j}),sort:(j,q)=>j.id-q.id}),N=async j=>r?R(j):[await S.request({body:j})],[{error:L,result:O}]=await N(I);if(p)return{error:L,result:O};if(L)throw new Yn({body:I,error:L,url:v});return O},retryCount:b,retryDelay:u,timeout:x,type:"http"},{fetchOptions:o,url:v})}}Ut();D();import{secp256k1 as iI}from"@noble/curves/secp256k1";Sr();Ot();function J1(e){if(typeof e=="string"){if(!ie(e,{strict:!1}))throw new de({address:e});return{address:e,type:"json-rpc"}}if(!ie(e.address,{strict:!1}))throw new de({address:e.address});return{address:e.address,nonceManager:e.nonceManager,sign:e.sign,signAuthorization:e.signAuthorization,signMessage:e.signMessage,signTransaction:e.signTransaction,signTypedData:e.signTypedData,source:"custom",type:"local"}}Ut();Ye();D();import{secp256k1 as aI}from"@noble/curves/secp256k1";var E0=!1;async function Jr({hash:e,privateKey:t,to:r="object"}){let{r:n,s:o,recovery:s}=aI.sign(e.slice(2),t.slice(2),{lowS:!0,extraEntropy:xe(E0,{strict:!1})?qe(E0):E0}),a={r:k(n,{size:32}),s:k(o,{size:32}),v:s?28n:27n,yParity:s};return r==="bytes"||r==="hex"?pl({...a,to:r}):a}async function Z1(e){let{chainId:t,nonce:r,privateKey:n,to:o="object"}=e,s=e.contractAddress??e.address,a=await Jr({hash:Wu({address:s,chainId:t,nonce:r}),privateKey:n,to:o});return o==="object"?{address:s,chainId:t,nonce:r,...a}:a}async function Y1({message:e,privateKey:t}){return await Jr({hash:Va(e),privateKey:t,to:"hex"})}nr();async function X1(e){let{privateKey:t,transaction:r,serializer:n=Km}=e,o=r.type==="eip4844"?{...r,sidecars:!1}:r,s=await Jr({hash:ge(await n(o)),privateKey:t});return await n(r,s)}async function Q1(e){let{privateKey:t,...r}=e;return await Jr({hash:Hp(r),privateKey:t,to:"hex"})}function yc(e,t={}){let{nonceManager:r}=t,n=ye(iI.getPublicKey(e.slice(2),!1)),o=qu(n);return{...J1({address:o,nonceManager:r,async sign({hash:a}){return Jr({hash:a,privateKey:e,to:"hex"})},async signAuthorization(a){return Z1({...a,privateKey:e})},async signMessage({message:a}){return Y1({message:a,privateKey:e})},async signTransaction(a,{serializer:i}={}){return X1({privateKey:e,transaction:a,serializer:i})},async signTypedData(a){return Q1({...a,privateKey:e})}}),publicKey:n,source:"privateKey"}}var Hse=vi(P0(),1);import{z as Fe}from"zod";var dr=vi(P0(),1),t3=vi(ev(),1),r3=vi(Ov(),1);import{z as ri}from"zod";import{z as $r}from"zod";import{z as zT}from"zod";import{z as ni}from"zod";import{z as Tr}from"zod";import{z as nt}from"zod";import{z as wt}from"zod";import{z as Sc}from"zod";import{z as qt}from"zod";import{z as qv}from"zod";import{z as Kv}from"zod";import{z as wl}from"zod";import{z as Cl}from"zod";import{z as vt}from"zod";var WI=tt.object({detail:tt.union([tt.string(),tt.array(tt.object({msg:tt.string(),type:tt.string().optional(),ctx:tt.record(tt.unknown()).optional(),loc:tt.array(tt.union([tt.string(),tt.number()])).optional(),input:tt.unknown().optional()}).passthrough()),tt.record(tt.unknown())]).optional(),type:tt.string().optional(),code:tt.string().optional()}),tn=class extends Error{constructor(e,t){super(e),this.name=this.constructor.name,this.status=t.status,this.statusText=t.statusText,this.detail=t.detail,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},B0=class Sl extends tn{constructor(t,r){super(t,{status:r?.status??0,statusText:r?.statusText??"Unknown Error",detail:r?.detail||t}),this.name="RequestError",this.isRequestError=!0,this.data=r?.data,this.request=r?.request,this.response=r?.response,this.code=r?.code,this.type=r?.type}static fromFetchError(t){let r=WI.safeParse(t.data);return r.success?new Sl(t.message,{status:t.status??void 0,statusText:t.statusText??void 0,data:t.data,request:t.request??void 0,response:t.response??void 0,detail:r.data.detail,code:r.data.code??void 0,type:r.data.type??void 0}):new Sl(t.message,{status:t.status??void 0,statusText:t.statusText??void 0,data:t.data,request:t.request??void 0,response:t.response??void 0,detail:t.data?.detail||"Unknown API error",code:t.status?.toString()??void 0})}static fromError(t,r){return new Sl(t.message,{request:r??void 0,detail:t.message})}},JI=class extends tn{constructor(e,t){super(e,t),this.isValidationError=!0,this.validationErrors=t.validationErrors}},ZI=class extends tn{constructor(){super(...arguments),this.isAuthError=!0}},_l=class extends tn{constructor(){super(...arguments),this.isBusinessError=!0}},YI=class extends tn{constructor(){super(...arguments),this.isServerError=!0}},XI=class extends tn{constructor(){super(...arguments),this.isUnknownError=!0}};function QI(e){if(!e||!Array.isArray(e))return"unknown";let t=e.filter(r=>typeof r=="string"?!["body","query","path","header"].includes(r):!0);return t.length>0?t.join("."):"unknown"}function Jv(e){if(!Array.isArray(e))return{errors:[],message:typeof e=="string"?e:"Validation error"};let t=e.map((o,s)=>{let a=QI(o.loc),i=a;return a==="unknown"&&o.type&&(i=o.type==="missing"?"required field":o.type),{field:i,message:o.msg,type:o.type,context:o.ctx}}),r=t.length,n=r===1?`Validation failed: ${t[0].message}`:`Validation failed (${r} issue${r>1?"s":""})`;return{errors:t,message:n}}function e8(e){return e===422?"validation":e===401||e===403?"auth":e>=400&&e<500?"business":e>=500?"server":"unknown"}function t8(e,t,r){if(e===422&&Array.isArray(t)){let{message:n}=Jv(t);return n}if(typeof t=="string")return t;if(t&&typeof t=="object"&&"message"in t){let n=t.message;if(typeof n=="string")return n}return r}function r8(e){let t=e.status??0,r=e.statusText??"Unknown Error",n=e.detail,o=n8(n);if(o)return new Ec(o.message,{status:t,statusText:r,detail:n,errorCode:o.error_code,structuredDetails:o.details,suggestions:o.suggestions,links:o.links});let s=e8(t),a=t8(t,n,e.message),i={status:t,statusText:r,detail:n};if(s==="validation"&&Array.isArray(n)){let{errors:c}=Jv(n);return new JI(a,{...i,validationErrors:c})}return s==="auth"?new ZI(a,i):s==="business"?new _l(a,i):s==="server"?new YI(a,i):new XI(a,i)}var Ec=class extends _l{constructor(e,t){super(e,t),this.isResourceError=!0,this.errorCode=t.errorCode,this.structuredDetails=t.structuredDetails,this.suggestions=t.suggestions,this.links=t.links}};function n8(e){if(!e||typeof e!="object")return null;let t=e;return t.error_code&&typeof t.error_code=="string"&&t.message&&typeof t.message=="string"?{error_code:t.error_code,message:t.message,details:t.details,suggestions:t.suggestions,links:t.links}:null}function Il(e,t){let{showErrorCode:r=!0,showSuggestions:n=!0,showLinks:o=!0}=t??{},s=[];return r&&e.errorCode?s.push(`Error [${e.errorCode}]: ${e.message}`):s.push(e.message),e.structuredDetails&&e.structuredDetails.length>0&&(s.push(""),s.push("Details:"),e.structuredDetails.forEach(a=>{a.message?s.push(` - ${a.message}`):a.field&&a.value!==void 0&&s.push(` - ${a.field}: ${a.value}`)})),n&&e.suggestions&&e.suggestions.length>0&&(s.push(""),s.push("Suggestions:"),e.suggestions.forEach(a=>{s.push(` - ${a}`)})),o&&e.links&&e.links.length>0&&(s.push(""),s.push("Learn more:"),e.links.forEach(a=>{s.push(` - ${a.label}: ${a.url}`)})),s.join(`
58
- `)}var H0=["2025-10-28","2026-01-21"],o8="2026-01-21",Qa=(0,Wv.default)("phala::api-client");function s8(e){return Object.entries(e).map(([t,r])=>` -H "${t}: ${r}"`).join(`
59
- `)}function a8(e){return e?` -d '${(typeof e=="string"?e:JSON.stringify(e,null,2)).replace(/'/g,"\\'")}'`:""}function jv(e,t,r,n){let o=[];r.forEach((i,c)=>{o.push(`${c}: ${i}`)});let s=o.join(`
40
+ `,o+=nb(n.state)),n.stateDiff&&(o+=` stateDiff:
41
+ `,o+=nb(n.stateDiff)),o},` State Override:
42
+ `).slice(0,-1)}var Lu,Bu,dd=P(()=>{K();Lu=class extends w{constructor({address:t}){super(`State for account "${t}" is set multiple times.`,{name:"AccountStateConflictError"})}},Bu=class extends w{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}});var sb,Uo,Du=P(()=>{sb=e=>e,Uo=e=>e});var ra,na,zo,Uu,zu,zr,Yn=P(()=>{Re();Zm();pd();dn();tb();Zn();Cm();ks();Me();K();dd();zt();Du();ra=class extends w{constructor(t,{account:r,docsPath:n,chain:o,data:s,gas:a,gasPrice:i,maxFeePerGas:c,maxPriorityFeePerGas:m,nonce:u,to:p,value:f,stateOverride:d}){let g=r?W(r):void 0,h=Mo({from:g?.address,to:p,value:typeof f<"u"&&`${Ss(f)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:s,gas:a,gasPrice:typeof i<"u"&&`${Ke(i)} gwei`,maxFeePerGas:typeof c<"u"&&`${Ke(c)} gwei`,maxPriorityFeePerGas:typeof m<"u"&&`${Ke(m)} gwei`,nonce:u});d&&(h+=`
43
+ ${ob(d)}`),super(t.shortMessage,{cause:t,docsPath:n,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Raw Call Arguments:",h].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}},na=class extends w{constructor(t,{abi:r,args:n,contractAddress:o,docsPath:s,functionName:a,sender:i}){let c=At({abi:r,args:n,name:a}),m=c?ld({abiItem:c,args:n,includeFunctionName:!1,includeName:!1}):void 0,u=c?We(c,{includeName:!0}):void 0,p=Mo({address:o&&sb(o),function:u,args:m&&m!=="()"&&`${[...Array(a?.length??0).keys()].map(()=>" ").join("")}${m}`,sender:i});super(t.shortMessage||`An unknown error occurred while executing the contract function "${a}".`,{cause:t,docsPath:s,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],p&&"Contract Call:",p].filter(Boolean),name:"ContractFunctionExecutionError"}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=r,this.args=n,this.cause=t,this.contractAddress=o,this.functionName=a,this.sender=i}},zo=class extends w{constructor({abi:t,data:r,functionName:n,message:o}){let s,a,i,c;if(r&&r!=="0x")try{a=Nu({abi:t,data:r});let{abiItem:u,errorName:p,args:f}=a;if(p==="Error")c=f[0];else if(p==="Panic"){let[d]=f;c=cy[d]}else{let d=u?We(u,{includeName:!0}):void 0,g=u&&f?ld({abiItem:u,args:f,includeFunctionName:!1,includeName:!1}):void 0;i=[d?`Error: ${d}`:"",g&&g!=="()"?` ${[...Array(p?.length??0).keys()].map(()=>" ").join("")}${g}`:""]}}catch(u){s=u}else o&&(c=o);let m;s instanceof qs&&(m=s.signature,i=[`Unable to decode signature "${m}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${m}.`]),super(c&&c!=="execution reverted"||m?[`The contract function "${n}" reverted with the following ${m?"signature":"reason"}:`,c||m].join(`
44
+ `):`The contract function "${n}" reverted.`,{cause:s,metaMessages:i,name:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=a,this.raw=r,this.reason=c,this.signature=m}},Uu=class extends w{constructor({functionName:t}){super(`The contract function "${t}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${t}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}},zu=class extends w{constructor({factory:t}){super(`Deployment for counterfactual contract call failed${t?` for factory "${t}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}},zr=class extends w{constructor({data:t,message:r}){super(r||"",{name:"RawContractError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t}}});var cr,Xn,Ki,Oo=P(()=>{it();K();Du();cr=class extends w{constructor({body:t,cause:r,details:n,headers:o,status:s,url:a}){super("HTTP request failed.",{cause:r,details:n,metaMessages:[s&&`Status: ${s}`,`URL: ${Uo(a)}`,t&&`Request body: ${ee(t)}`].filter(Boolean),name:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=t,this.headers=o,this.status=s,this.url=a}},Xn=class extends w{constructor({body:t,error:r,url:n}){super("RPC Request failed.",{cause:r,details:r.message,metaMessages:[`URL: ${Uo(n)}`,`Request body: ${ee(t)}`],name:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=r.code,this.data=r.data}},Ki=class extends w{constructor({body:t,url:r}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${Uo(r)}`,`Request body: ${ee(t)}`],name:"TimeoutError"})}}});var vE,ct,xt,oa,sa,aa,ia,bn,Or,ca,ma,ua,Qn,jo,pa,Ho,la,fa,da,ga,ha,eo,ya,ba,xa,va,wa,to,Ou,Ca=P(()=>{K();Oo();vE=-1,ct=class extends w{constructor(t,{code:r,docsPath:n,metaMessages:o,name:s,shortMessage:a}){super(a,{cause:t,docsPath:n,metaMessages:o||t?.metaMessages,name:s||"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=s||t.name,this.code=t instanceof Xn?t.code:r??vE}},xt=class extends ct{constructor(t,r){super(t,r),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=r.data}},oa=class e extends ct{constructor(t){super(t,{code:e.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}};Object.defineProperty(oa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});sa=class e extends ct{constructor(t){super(t,{code:e.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}};Object.defineProperty(sa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});aa=class e extends ct{constructor(t,{method:r}={}){super(t,{code:e.code,name:"MethodNotFoundRpcError",shortMessage:`The method${r?` "${r}"`:""} does not exist / is not available.`})}};Object.defineProperty(aa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});ia=class e extends ct{constructor(t){super(t,{code:e.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(`
45
+ `)})}};Object.defineProperty(ia,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});bn=class e extends ct{constructor(t){super(t,{code:e.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}};Object.defineProperty(bn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});Or=class e extends ct{constructor(t){super(t,{code:e.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(`
46
+ `)})}};Object.defineProperty(Or,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});ca=class e extends ct{constructor(t){super(t,{code:e.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}};Object.defineProperty(ca,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});ma=class e extends ct{constructor(t){super(t,{code:e.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}};Object.defineProperty(ma,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});ua=class e extends ct{constructor(t){super(t,{code:e.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}};Object.defineProperty(ua,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});Qn=class e extends ct{constructor(t,{method:r}={}){super(t,{code:e.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${r?` "${r}"`:""} is not supported.`})}};Object.defineProperty(Qn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});jo=class e extends ct{constructor(t){super(t,{code:e.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}};Object.defineProperty(jo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});pa=class e extends ct{constructor(t){super(t,{code:e.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}};Object.defineProperty(pa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});Ho=class e extends xt{constructor(t){super(t,{code:e.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}};Object.defineProperty(Ho,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});la=class e extends xt{constructor(t){super(t,{code:e.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}};Object.defineProperty(la,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});fa=class e extends xt{constructor(t,{method:r}={}){super(t,{code:e.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${r?` " ${r}"`:""}.`})}};Object.defineProperty(fa,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});da=class e extends xt{constructor(t){super(t,{code:e.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}};Object.defineProperty(da,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});ga=class e extends xt{constructor(t){super(t,{code:e.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}};Object.defineProperty(ga,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});ha=class e extends xt{constructor(t){super(t,{code:e.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}};Object.defineProperty(ha,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});eo=class e extends xt{constructor(t){super(t,{code:e.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}};Object.defineProperty(eo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});ya=class e extends xt{constructor(t){super(t,{code:e.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}};Object.defineProperty(ya,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});ba=class e extends xt{constructor(t){super(t,{code:e.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}};Object.defineProperty(ba,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});xa=class e extends xt{constructor(t){super(t,{code:e.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}};Object.defineProperty(xa,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});va=class e extends xt{constructor(t){super(t,{code:e.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}};Object.defineProperty(va,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});wa=class e extends xt{constructor(t){super(t,{code:e.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}};Object.defineProperty(wa,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});to=class e extends xt{constructor(t){super(t,{code:e.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}};Object.defineProperty(to,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});Ou=class extends ct{constructor(t){super(t,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}});function ro(e,t){let r=(e.details||"").toLowerCase(),n=e instanceof w?e.walk(o=>o?.code===ln.code):e;return n instanceof w?new ln({cause:e,message:n.details}):ln.nodeMessage.test(r)?new ln({cause:e,message:e.details}):er.nodeMessage.test(r)?new er({cause:e,maxFeePerGas:t?.maxFeePerGas}):Fs.nodeMessage.test(r)?new Fs({cause:e,maxFeePerGas:t?.maxFeePerGas}):Ns.nodeMessage.test(r)?new Ns({cause:e,nonce:t?.nonce}):Ls.nodeMessage.test(r)?new Ls({cause:e,nonce:t?.nonce}):Bs.nodeMessage.test(r)?new Bs({cause:e,nonce:t?.nonce}):Ds.nodeMessage.test(r)?new Ds({cause:e}):Us.nodeMessage.test(r)?new Us({cause:e,gas:t?.gas}):zs.nodeMessage.test(r)?new zs({cause:e,gas:t?.gas}):Os.nodeMessage.test(r)?new Os({cause:e}):Nr.nodeMessage.test(r)?new Nr({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new tr({cause:e})}var Wi=P(()=>{K();Gn()});function ju(e,{docsPath:t,...r}){let n=(()=>{let o=ro(e,r);return o instanceof tr?e:o})();return new ra(n,{docsPath:t,...r})}var gd=P(()=>{Yn();Gn();Wi()});function jr(e,{format:t}){if(!t)return{};let r={};function n(s){let a=Object.keys(s);for(let i of a)i in e&&(r[i]=e[i]),s[i]&&typeof s[i]=="object"&&!Array.isArray(s[i])&&n(s[i])}let o=t(e||{});return n(o),r}var Sa=P(()=>{});function mt(e){let{account:t,gasPrice:r,maxFeePerGas:n,maxPriorityFeePerGas:o,to:s}=e,a=t?W(t):void 0;if(a&&!ie(a.address))throw new de({address:a.address});if(s&&!ie(s))throw new de({address:s});if(typeof r<"u"&&(typeof n<"u"||typeof o<"u"))throw new Sm;if(n&&n>vs)throw new er({maxFeePerGas:n});if(o&&n&&o>n)throw new Nr({maxFeePerGas:n,maxPriorityFeePerGas:o})}var xn=P(()=>{Re();Hf();Sr();Gn();zt();Ot()});function mb(e){let{abi:t,args:r,functionName:n}=e,o=t[0];if(n){let s=At({abi:t,args:r,name:n});if(!s)throw new kr(n,{docsPath:cb});o=s}if(o.type!=="function")throw new kr(void 0,{docsPath:cb});return{abi:[o],functionName:Dr(We(o))}}var cb,ub=P(()=>{Me();ea();dn();Zn();cb="/docs/contract/encodeFunctionData"});function ke(e){let{args:t}=e,{abi:r,functionName:n}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:mb(e),o=r[0],s=n,a="inputs"in o&&o.inputs?bt(o.inputs,t??[]):void 0;return Xe([s,a??"0x"])}var Ht=P(()=>{yt();hn();ub()});function db(e){if(!(!e||e.length===0))return e.reduce((t,{slot:r,value:n})=>{if(r.length!==66)throw new _i({size:r.length,targetSize:66,type:"hex"});if(n.length!==66)throw new _i({size:n.length,targetSize:66,type:"hex"});return t[r]=n,t},{})}function CE(e){let{balance:t,nonce:r,state:n,stateDiff:o,code:s}=e,a={};if(s!==void 0&&(a.code=s),t!==void 0&&(a.balance=E(t)),r!==void 0&&(a.nonce=E(r)),n!==void 0&&(a.state=db(n)),o!==void 0){if(a.state)throw new Bu;a.stateDiff=db(o)}return a}function ka(e){if(!e)return;let t={};for(let{address:r,...n}of e){if(!ie(r,{strict:!1}))throw new de({address:r});if(t[r])throw new Lu({address:r});t[r]=CE(n)}return t}var Zu=P(()=>{Sr();fm();dd();Ot();D()});function mr(e,t){if(!ie(e,{strict:!1}))throw new de({address:e});if(!ie(t,{strict:!1}))throw new de({address:t});return e.toLowerCase()===t.toLowerCase()}var Vo=P(()=>{Sr();Ot()});function $t(e){let{abi:t,args:r,functionName:n,data:o}=e,s=t[0];if(n){let i=At({abi:t,args:r,name:n});if(!i)throw new kr(n,{docsPath:yd});s=i}if(s.type!=="function")throw new kr(void 0,{docsPath:yd});if(!s.outputs)throw new Ws(s.name,{docsPath:yd});let a=yn(s.outputs,o);if(a&&a.length>1)return a;if(a&&a.length===1)return a[0]}var yd,ao=P(()=>{Me();Gi();Zn();yd="/docs/contract/decodeFunctionResult"});var vb,wb=P(()=>{vb="0.1.1"});function Cb(){return vb}var Sb=P(()=>{wb()});function kb(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause?kb(e.cause,t):t?null:e}var B,Rt=P(()=>{Sb();B=class e extends Error{constructor(t,r={}){let n=(()=>{if(r.cause instanceof e){if(r.cause.details)return r.cause.details;if(r.cause.shortMessage)return r.cause.shortMessage}return r.cause&&"details"in r.cause&&typeof r.cause.details=="string"?r.cause.details:r.cause?.message?r.cause.message:r.details})(),o=r.cause instanceof e&&r.cause.docsPath||r.docsPath,a=`https://oxlib.sh${o??""}`,i=[t||"An error occurred.",...r.metaMessages?["",...r.metaMessages]:[],...n||o?["",n?`Details: ${n}`:void 0,o?`See: ${a}`:void 0]:[]].filter(c=>typeof c=="string").join(`
47
+ `);super(i,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${Cb()}`}),this.cause=r.cause,this.details=n,this.docs=a,this.docsPath=o,this.shortMessage=t}walk(t){return kb(this,t)}}});function $a(e,t){if(ur(e)>t)throw new tp({givenSize:ur(e),maxSize:t})}function Eb(e,t){if(typeof t=="number"&&t>0&&t>ur(e)-1)throw new Zi({offset:t,position:"start",size:ur(e)})}function _b(e,t,r){if(typeof t=="number"&&typeof r=="number"&&ur(e)!==r-t)throw new Zi({offset:r,position:"end",size:ur(e)})}function bd(e){if(e>=vn.zero&&e<=vn.nine)return e-vn.zero;if(e>=vn.A&&e<=vn.F)return e-(vn.A-10);if(e>=vn.a&&e<=vn.f)return e-(vn.a-10)}function Ib(e,t={}){let{dir:r,size:n=32}=t;if(n===0)return e;if(e.length>n)throw new rp({size:e.length,targetSize:n,type:"Bytes"});let o=new Uint8Array(n);for(let s=0;s<n;s++){let a=r==="right";o[a?s:n-s-1]=e[a?s:e.length-s-1]}return o}function xd(e,t={}){let{dir:r="left"}=t,n=e,o=0;for(let s=0;s<n.length-1&&n[r==="left"?s:n.length-s-1].toString()==="0";s++)o++;return n=r==="left"?n.slice(o):n.slice(0,n.length-o),n}var vn,Pb=P(()=>{io();vn={zero:48,nine:57,A:65,F:70,a:97,f:102}});function Ra(e,t){if(Ie(e)>t)throw new np({givenSize:Ie(e),maxSize:t})}function Ab(e,t){if(typeof t=="number"&&t>0&&t>Ie(e)-1)throw new Yi({offset:t,position:"start",size:Ie(e)})}function Tb(e,t,r){if(typeof t=="number"&&typeof r=="number"&&Ie(e)!==r-t)throw new Yi({offset:r,position:"end",size:Ie(e)})}function vd(e,t={}){let{dir:r,size:n=32}=t;if(n===0)return e;let o=e.replace("0x","");if(o.length>n*2)throw new op({size:Math.ceil(o.length/2),targetSize:n,type:"Hex"});return`0x${o[r==="right"?"padEnd":"padStart"](n*2,"0")}`}function $b(e,t={}){let{dir:r="left"}=t,n=e.replace("0x",""),o=0;for(let s=0;s<n.length-1&&n[r==="left"?s:n.length-s-1].toString()==="0";s++)o++;return n=r==="left"?n.slice(o):n.slice(0,n.length-o),n==="0"?"0x":r==="right"&&n.length%2===1?`0x${n}0`:`0x${n}`}var wd=P(()=>{et()});function co(e,t,r){return JSON.stringify(e,(n,o)=>typeof t=="function"?t(n,o):typeof o=="bigint"?o.toString()+_E:o,r)}var _E,Xi=P(()=>{_E="#__bigint"});import{equalBytes as KH}from"@noble/curves/abstract/utils";function AE(e){if(!(e instanceof Uint8Array)){if(!e)throw new Ma(e);if(typeof e!="object")throw new Ma(e);if(!("BYTES_PER_ELEMENT"in e))throw new Ma(e);if(e.BYTES_PER_ELEMENT!==1||e.constructor.name!=="Uint8Array")throw new Ma(e)}}function Mb(e){return e instanceof Uint8Array?e:typeof e=="string"?Fa(e):TE(e)}function TE(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function Fa(e,t={}){let{size:r}=t,n=e;r&&(Ra(e,r),n=qr(e,r));let o=n.slice(2);o.length%2&&(o=`0${o}`);let s=o.length/2,a=new Uint8Array(s);for(let i=0,c=0;i<s;i++){let m=bd(o.charCodeAt(c++)),u=bd(o.charCodeAt(c++));if(m===void 0||u===void 0)throw new B(`Invalid byte sequence ("${o[c-2]}${o[c-1]}" in "${o}").`);a[i]=m*16+u}return a}function Fb(e,t={}){let{size:r}=t,n=PE.encode(e);return typeof r=="number"?($a(n,r),$E(n,r)):n}function $E(e,t){return Ib(e,{dir:"right",size:t})}function ur(e){return e.length}function Nb(e,t,r,n={}){let{strict:o}=n;Eb(e,t);let s=e.slice(t,r);return o&&_b(s,t,r),s}function Lb(e,t={}){let{size:r}=t;typeof r<"u"&&$a(e,r);let n=Ue(e,t);return kd(n,t)}function Bb(e,t={}){let{size:r}=t,n=e;if(typeof r<"u"&&($a(n,r),n=Sd(n)),n.length>1||n[0]>1)throw new Cd(n);return!!n[0]}function Gr(e,t={}){let{size:r}=t;typeof r<"u"&&$a(e,r);let n=Ue(e,t);return ap(n,t)}function Db(e,t={}){let{size:r}=t,n=e;return typeof r<"u"&&($a(n,r),n=RE(n)),IE.decode(n)}function Sd(e){return xd(e,{dir:"left"})}function RE(e){return xd(e,{dir:"right"})}function Ub(e){try{return AE(e),!0}catch{return!1}}var IE,PE,Cd,Ma,tp,Zi,rp,io=P(()=>{Rt();et();Pb();wd();Xi();IE=new TextDecoder,PE=new TextEncoder;Cd=class extends B{constructor(t){super(`Bytes value \`${t}\` is not a valid boolean.`,{metaMessages:["The bytes array must contain a single byte of either a `0` or `1` value."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesBooleanError"})}},Ma=class extends B{constructor(t){super(`Value \`${typeof t=="object"?co(t):t}\` of type \`${typeof t}\` is an invalid Bytes value.`,{metaMessages:["Bytes values must be of type `Bytes`."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesTypeError"})}},tp=class extends B{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed \`${r}\` bytes. Given size: \`${t}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}},Zi=class extends B{constructor({offset:t,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset \`${t}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SliceOffsetOutOfBoundsError"})}},rp=class extends B{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${t}\`) exceeds padding size (\`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}}});import{equalBytes as JH}from"@noble/curves/abstract/utils";function NE(e,t={}){let{strict:r=!1}=t;if(!e)throw new ip(e);if(typeof e!="string")throw new ip(e);if(r&&!/^0x[0-9a-fA-F]*$/.test(e))throw new cp(e);if(!e.startsWith("0x"))throw new cp(e)}function Te(...e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}function Na(e){return e instanceof Uint8Array?Ue(e):Array.isArray(e)?Ue(new Uint8Array(e)):e}function mp(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?(Ra(r,t.size),wn(r,t.size)):r}function Ue(e,t={}){let r="";for(let o=0;o<e.length;o++)r+=FE[e[o]];let n=`0x${r}`;return typeof t.size=="number"?(Ra(n,t.size),qr(n,t.size)):n}function me(e,t={}){let{signed:r,size:n}=t,o=BigInt(e),s;n?r?s=(1n<<BigInt(n)*8n-1n)-1n:s=2n**(BigInt(n)*8n)-1n:typeof e=="number"&&(s=BigInt(Number.MAX_SAFE_INTEGER));let a=typeof s=="bigint"&&r?-s-1n:0;if(s&&o>s||o<a){let m=typeof e=="bigint"?"n":"";throw new Qi({max:s?`${s}${m}`:void 0,min:`${a}${m}`,signed:r,size:n,value:`${e}${m}`})}let c=`0x${(r&&o<0?(1n<<BigInt(n*8))+BigInt(o):o).toString(16)}`;return n?wn(c,n):c}function La(e,t={}){return Ue(ME.encode(e),t)}function wn(e,t){return vd(e,{dir:"left",size:t})}function qr(e,t){return vd(e,{dir:"right",size:t})}function Pe(e,t,r,n={}){let{strict:o}=n;Ab(e,t);let s=`0x${e.replace("0x","").slice((t??0)*2,(r??e.length)*2)}`;return o&&Tb(s,t,r),s}function Ie(e){return Math.ceil((e.length-2)/2)}function Ed(e){return $b(e,{dir:"left"})}function kd(e,t={}){let{signed:r}=t;t.size&&Ra(e,t.size);let n=BigInt(e);if(!r)return n;let o=(e.length-2)/2,s=(1n<<BigInt(o)*8n)-1n,a=s>>1n;return n<=a?n:n-s-1n}function ap(e,t={}){let{signed:r,size:n}=t;return Number(!r&&!n?e:kd(e,t))}function ec(e,t={}){let{strict:r=!1}=t;try{return NE(e,{strict:r}),!0}catch{return!1}}var ME,FE,Qi,ip,cp,np,Yi,op,et=P(()=>{Rt();wd();Xi();ME=new TextEncoder,FE=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));Qi=class extends B{constructor({max:t,min:r,signed:n,size:o,value:s}){super(`Number \`${s}\` is not in safe${o?` ${o*8}-bit`:""}${n?" signed":" unsigned"} integer range ${t?`(\`${r}\` to \`${t}\`)`:`(above \`${r}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}},ip=class extends B{constructor(t){super(`Value \`${typeof t=="object"?co(t):t}\` of type \`${typeof t}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}},cp=class extends B{constructor(t){super(`Value \`${t}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}},np=class extends B{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed \`${r}\` bytes. Given size: \`${t}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}},Yi=class extends B{constructor({offset:t,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset \`${t}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}},op=class extends B{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${t}\`) exceeds padding size (\`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}});function zb(e){return{address:e.address,amount:me(e.amount),index:me(e.index),validatorIndex:me(e.validatorIndex)}}var Ob=P(()=>{et()});function up(e){return{...typeof e.baseFeePerGas=="bigint"&&{baseFeePerGas:me(e.baseFeePerGas)},...typeof e.blobBaseFee=="bigint"&&{blobBaseFee:me(e.blobBaseFee)},...typeof e.feeRecipient=="string"&&{feeRecipient:e.feeRecipient},...typeof e.gasLimit=="bigint"&&{gasLimit:me(e.gasLimit)},...typeof e.number=="bigint"&&{number:me(e.number)},...typeof e.prevRandao=="bigint"&&{prevRandao:me(e.prevRandao)},...typeof e.time=="bigint"&&{time:me(e.time)},...e.withdrawals&&{withdrawals:e.withdrawals.map(zb)}}}var _d=P(()=>{et();Ob()});var qo,pp,Hb,lp,Vb,Id,Pd,Ad,Td,mo=P(()=>{qo=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],pp=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],Hb=[{inputs:[{name:"dns",type:"bytes"}],name:"DNSDecodingFailed",type:"error"},{inputs:[{name:"ens",type:"string"}],name:"DNSEncodingFailed",type:"error"},{inputs:[],name:"EmptyAddress",type:"error"},{inputs:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"HttpError",type:"error"},{inputs:[],name:"InvalidBatchGatewayResponse",type:"error"},{inputs:[{name:"errorData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{name:"name",type:"bytes"},{name:"resolver",type:"address"}],name:"ResolverNotContract",type:"error"},{inputs:[{name:"name",type:"bytes"}],name:"ResolverNotFound",type:"error"},{inputs:[{name:"primary",type:"string"},{name:"primaryAddress",type:"bytes"}],name:"ReverseAddressMismatch",type:"error"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"}],name:"UnsupportedResolverProfile",type:"error"}],lp=[...Hb,{name:"resolveWithGateways",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],Vb=[...Hb,{name:"reverseWithGateways",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"uint256",name:"coinType"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolver"},{type:"address",name:"reverseResolver"}]}],Id=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],Pd=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],Ad=[{name:"isValidSignature",type:"function",stateMutability:"view",inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],outputs:[{name:"",type:"bytes4"}]}],Td=[{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"}]});var Gb,qb=P(()=>{Gb="0x82ad56cb"});var fp,Kb,Wb,Ba,tc=P(()=>{fp="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",Kb="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",Wb="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",Ba="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033"});function Ko(e){let{abi:t,args:r,bytecode:n}=e;if(!r||r.length===0)return n;let o=t.find(a=>"type"in a&&a.type==="constructor");if(!o)throw new Xm({docsPath:$d});if(!("inputs"in o))throw new Di({docsPath:$d});if(!o.inputs||o.inputs.length===0)throw new Di({docsPath:$d});let s=bt(o.inputs,r);return Xe([n,s])}var $d,dp=P(()=>{Me();yt();hn();$d="/docs/contract/encodeDeployData"});function Da(){let e=()=>{},t=()=>{};return{promise:new Promise((n,o)=>{e=n,t=o}),resolve:e,reject:t}}var gp=P(()=>{});function hp({fn:e,id:t,shouldSplitBatch:r,wait:n=0,sort:o}){let s=async()=>{let u=c();a();let p=u.map(({args:f})=>f);p.length!==0&&e(p).then(f=>{o&&Array.isArray(f)&&f.sort(o);for(let d=0;d<u.length;d++){let{resolve:g}=u[d];g?.([f[d],f])}}).catch(f=>{for(let d=0;d<u.length;d++){let{reject:g}=u[d];g?.(f)}})},a=()=>Rd.delete(t),i=()=>c().map(({args:u})=>u),c=()=>Rd.get(t)||[],m=u=>Rd.set(t,[...c(),u]);return{flush:a,async schedule(u){let{promise:p,resolve:f,reject:d}=Da();return r?.([...i(),u])&&s(),c().length>0?(m({args:u,resolve:f,reject:d}),p):(m({args:u,resolve:f,reject:d}),setTimeout(s,n),p)}}}var Rd,Md=P(()=>{gp();Rd=new Map});var yp,bp,xp,Jb=P(()=>{it();K();Du();yp=class extends w{constructor({callbackSelector:t,cause:r,data:n,extraData:o,sender:s,urls:a}){super(r.shortMessage||"An error occurred while fetching for an offchain result.",{cause:r,metaMessages:[...r.metaMessages||[],r.metaMessages?.length?"":[],"Offchain Gateway Call:",a&&[" Gateway URL(s):",...a.map(i=>` ${Uo(i)}`)],` Sender: ${s}`,` Data: ${n}`,` Callback selector: ${t}`,` Extra data: ${o}`].flat(),name:"OffchainLookupError"})}},bp=class extends w{constructor({result:t,url:r}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${Uo(r)}`,`Response: ${ee(t)}`],name:"OffchainLookupResponseMalformedError"})}},xp=class extends w{constructor({sender:t,to:r}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${r}`,`OffchainLookup sender address: ${t}`],name:"OffchainLookupSenderMismatchError"})}}});function Zb(e){let{abi:t,data:r}=e,n=or(r,0,4),o=t.find(s=>s.type==="function"&&n===Dr(We(s)));if(!o)throw new ou(n,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:o.name,args:"inputs"in o&&o.inputs&&o.inputs.length>0?yn(o.inputs,or(r,4)):void 0}}var Yb=P(()=>{Me();Kn();ea();Gi();dn()});function Nd(e){let{abi:t,errorName:r,args:n}=e,o=t[0];if(r){let c=At({abi:t,args:n,name:r});if(!c)throw new Ui(r,{docsPath:Fd});o=c}if(o.type!=="error")throw new Ui(void 0,{docsPath:Fd});let s=We(o),a=Dr(s),i="0x";if(n&&n.length>0){if(!o.inputs)throw new ru(o.name,{docsPath:Fd});i=bt(o.inputs,n)}return Xe([a,i])}var Fd,Xb=P(()=>{Me();yt();ea();hn();dn();Zn();Fd="/docs/contract/encodeErrorResult"});function Qb(e){let{abi:t,functionName:r,result:n}=e,o=t[0];if(r){let a=At({abi:t,name:r});if(!a)throw new kr(r,{docsPath:Ld});o=a}if(o.type!=="function")throw new kr(void 0,{docsPath:Ld});if(!o.outputs)throw new Ws(o.name,{docsPath:Ld});let s=(()=>{if(o.outputs.length===0)return[];if(o.outputs.length===1)return[n];if(Array.isArray(n))return n;throw new Js(n)})();return bt(o.outputs,s)}var Ld,ex=P(()=>{Me();hn();Zn();Ld="/docs/contract/encodeFunctionResult"});async function Bd(e){let{data:t,ccipRequest:r}=e,{args:[n]}=Zb({abi:pp,data:t}),o=[],s=[];return await Promise.all(n.map(async(a,i)=>{try{s[i]=a.urls.includes(Cn)?await Bd({data:a.data,ccipRequest:r}):await r(a),o[i]=!1}catch(c){o[i]=!0,s[i]=BE(c)}})),Qb({abi:pp,functionName:"query",result:[o,s]})}function BE(e){return e.name==="HttpRequestError"&&e.status?Nd({abi:pp,errorName:"HttpError",args:[e.status,e.shortMessage]}):Nd({abi:[Jm],errorName:"Error",args:["shortMessage"in e?e.shortMessage:e.message]})}var Cn,rc=P(()=>{mo();Zm();Yb();Xb();ex();Cn="x-batch-gateway:true"});var nx={};Rf(nx,{ccipRequest:()=>rx,offchainLookup:()=>UE,offchainLookupAbiItem:()=>tx,offchainLookupSignature:()=>DE});async function UE(e,{blockNumber:t,blockTag:r,data:n,to:o}){let{args:s}=Nu({data:n,abi:[tx]}),[a,i,c,m,u]=s,{ccipRead:p}=e,f=p&&typeof p?.request=="function"?p.request:rx;try{if(!mr(o,a))throw new xp({sender:a,to:o});let d=i.includes(Cn)?await Bd({data:c,ccipRequest:f}):await f({data:c,sender:a,urls:i}),{data:g}=await Kr(e,{blockNumber:t,blockTag:r,data:Oe([m,bt([{type:"bytes"},{type:"bytes"}],[d,u])]),to:o});return g}catch(d){throw new yp({callbackSelector:m,cause:d,data:n,extraData:u,sender:a,urls:i})}}async function rx({data:e,sender:t,urls:r}){let n=new Error("An unknown error occurred.");for(let o=0;o<r.length;o++){let s=r[o],a=s.includes("{data}")?"GET":"POST",i=a==="POST"?{data:e,sender:t}:void 0,c=a==="POST"?{"Content-Type":"application/json"}:{};try{let m=await fetch(s.replace("{sender}",t.toLowerCase()).replace("{data}",e),{body:JSON.stringify(i),headers:c,method:a}),u;if(m.headers.get("Content-Type")?.startsWith("application/json")?u=(await m.json()).data:u=await m.text(),!m.ok){n=new cr({body:i,details:u?.error?ee(u.error):m.statusText,headers:m.headers,status:m.status,url:s});continue}if(!xe(u)){n=new bp({result:u,url:s});continue}return u}catch(m){n=new cr({body:i,details:m.message,url:s})}}throw n}var DE,tx,ox=P(()=>{Ua();Jb();Oo();pd();hn();Vo();yt();Ut();rc();it();DE="0x556f1830",tx={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]}});async function Kr(e,t){let{account:r=e.account,authorizationList:n,batch:o=!!e.batch?.multicall,blockNumber:s,blockTag:a=e.experimental_blockTag??"latest",accessList:i,blobs:c,blockOverrides:m,code:u,data:p,factory:f,factoryData:d,gas:g,gasPrice:h,maxFeePerBlobGas:y,maxFeePerGas:b,maxPriorityFeePerGas:x,nonce:v,to:S,value:k,stateOverride:_,...I}=t,R=r?W(r):void 0;if(u&&(f||d))throw new w("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(u&&S)throw new w("Cannot provide both `code` & `to` as parameters.");let N=u&&p,L=f&&d&&S&&p,O=N||L,j=N?sx({code:u,data:p}):L?jE({data:p,factory:f,factoryData:d,to:S}):p;try{mt(t);let pe=(typeof s=="bigint"?E(s):void 0)||a,Se=m?up(m):void 0,Z=ka(_),Ve=e.chain?.formatters?.transactionRequest?.format,Be=(Ve||It)({...jr(I,{format:Ve}),accessList:i,account:R,authorizationList:n,blobs:c,data:j,gas:g,gasPrice:h,maxFeePerBlobGas:y,maxFeePerGas:b,maxPriorityFeePerGas:x,nonce:v,to:O?void 0:S,value:k},"call");if(o&&zE({request:Be})&&!Z&&!Se)try{return await OE(e,{...Be,blockNumber:s,blockTag:a})}catch(ve){if(!(ve instanceof $i)&&!(ve instanceof No))throw ve}let Fr=(()=>{let ve=[Be,pe];return Z&&Se?[...ve,Z,Se]:Z?[...ve,Z]:Se?[...ve,{},Se]:ve})(),Bn=await e.request({method:"eth_call",params:Fr});return Bn==="0x"?{data:void 0}:{data:Bn}}catch(G){let pe=HE(G),{offchainLookup:Se,offchainLookupSignature:Z}=await Promise.resolve().then(()=>(ox(),nx));if(e.ccipRead!==!1&&pe?.slice(0,10)===Z&&S)return{data:await Se(e,{data:pe,to:S})};throw O&&pe?.slice(0,10)==="0x101bb98d"?new zu({factory:f}):ju(G,{...t,account:R,chain:e.chain})}}function zE({request:e}){let{data:t,to:r,...n}=e;return!(!t||t.startsWith(Gb)||!r||Object.values(n).filter(o=>typeof o<"u").length>0)}async function OE(e,t){let{batchSize:r=1024,deployless:n=!1,wait:o=0}=typeof e.batch?.multicall=="object"?e.batch.multicall:{},{blockNumber:s,blockTag:a=e.experimental_blockTag??"latest",data:i,to:c}=t,m=(()=>{if(n)return null;if(t.multicallAddress)return t.multicallAddress;if(e.chain)return sr({blockNumber:s,chain:e.chain,contract:"multicall3"});throw new $i})(),p=(typeof s=="bigint"?E(s):void 0)||a,{schedule:f}=hp({id:`${e.uid}.${p}`,wait:o,shouldSplitBatch(h){return h.reduce((b,{data:x})=>b+(x.length-2),0)>r*2},fn:async h=>{let y=h.map(v=>({allowFailure:!0,callData:v.data,target:v.to})),b=ke({abi:qo,args:[y],functionName:"aggregate3"}),x=await e.request({method:"eth_call",params:[{...m===null?{data:sx({code:Ba,data:b})}:{to:m,data:b}},p]});return $t({abi:qo,args:[y],functionName:"aggregate3",data:x||"0x"})}}),[{returnData:d,success:g}]=await f({data:i,to:c});if(!g)throw new zr({data:d});return d==="0x"?{data:void 0}:{data:d}}function sx(e){let{code:t,data:r}=e;return Ko({abi:Au(["constructor(bytes, bytes)"]),bytecode:fp,args:[t,r]})}function jE(e){let{data:t,factory:r,factoryData:n,to:o}=e;return Ko({abi:Au(["constructor(address, bytes, address, bytes)"]),bytecode:Kb,args:[o,t,r,n]})}function HE(e){if(!(e instanceof w))return;let t=e.walk();return typeof t?.data=="object"?t.data?.data:t.data}var Ua=P(()=>{Hi();_d();Re();mo();qb();tc();K();Ri();Yn();ao();dp();Ht();Bo();D();gd();Sa();jn();Md();Zu();xn()});var P0=Yt(bc=>{"use strict";var lI=bc&&bc.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(bc,"__esModule",{value:!0});bc.encryptEnvVars=gI;var _0=Un("@noble/curves/ed25519"),I0=lI(Un("crypto"));function fI(e){var t,r;return e=e.startsWith("0x")?e.slice(2):e,new Uint8Array((r=(t=e.match(/.{1,2}/g))===null||t===void 0?void 0:t.map(n=>parseInt(n,16)))!==null&&r!==void 0?r:[])}function dI(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}async function gI(e,t){let r=JSON.stringify({env:e}),n=_0.x25519.utils.randomPrivateKey(),o=_0.x25519.getPublicKey(n),s=fI(t),a=_0.x25519.getSharedSecret(n,s),i=await I0.default.subtle.importKey("raw",a,{name:"AES-GCM",length:256},!0,["encrypt"]),c=I0.default.getRandomValues(new Uint8Array(12)),m=await I0.default.subtle.encrypt({name:"AES-GCM",iv:c},i,new TextEncoder().encode(r)),u=new Uint8Array(o.length+c.length+m.byteLength);return u.set(o),u.set(c,o.length),u.set(new Uint8Array(m),o.length+c.length),dI(u)}});var tv=Yt(xc=>{"use strict";var hI=xc&&xc.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xc,"__esModule",{value:!0});xc.getComposeHash=vI;var yI=hI(Un("crypto"));function A0(e){return e==null?e:Array.isArray(e)?e.map(A0):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,r)=>{let n=e[r];return t[r]=A0(n),t},{}):e}function bI(e){let t={...e};return t.runner==="bash"&&"docker_compose_file"in t?delete t.docker_compose_file:t.runner==="docker-compose"&&"bash_script"in t&&delete t.bash_script,"pre_launch_script"in t&&!t.pre_launch_script&&delete t.pre_launch_script,t}function xI(e){let t=A0(e);return JSON.stringify(t,(r,n)=>typeof n=="number"&&(isNaN(n)||!isFinite(n))?null:n)}function vI(e,t=!1){t&&(e=bI(e));let r=xI(e);return yI.default.createHash("sha256").update(r,"utf8").digest("hex")}});var Sv=Yt(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0});q.toBig=q.shrSL=q.shrSH=q.rotrSL=q.rotrSH=q.rotrBL=q.rotrBH=q.rotr32L=q.rotr32H=q.rotlSL=q.rotlSH=q.rotlBL=q.rotlBH=q.add5L=q.add5H=q.add4L=q.add4H=q.add3L=q.add3H=void 0;q.add=hv;q.fromBig=$0;q.split=rv;var yl=BigInt(2**32-1),T0=BigInt(32);function $0(e,t=!1){return t?{h:Number(e&yl),l:Number(e>>T0&yl)}:{h:Number(e>>T0&yl)|0,l:Number(e&yl)|0}}function rv(e,t=!1){let r=e.length,n=new Uint32Array(r),o=new Uint32Array(r);for(let s=0;s<r;s++){let{h:a,l:i}=$0(e[s],t);[n[s],o[s]]=[a,i]}return[n,o]}var nv=(e,t)=>BigInt(e>>>0)<<T0|BigInt(t>>>0);q.toBig=nv;var ov=(e,t,r)=>e>>>r;q.shrSH=ov;var sv=(e,t,r)=>e<<32-r|t>>>r;q.shrSL=sv;var av=(e,t,r)=>e>>>r|t<<32-r;q.rotrSH=av;var iv=(e,t,r)=>e<<32-r|t>>>r;q.rotrSL=iv;var cv=(e,t,r)=>e<<64-r|t>>>r-32;q.rotrBH=cv;var mv=(e,t,r)=>e>>>r-32|t<<64-r;q.rotrBL=mv;var uv=(e,t)=>t;q.rotr32H=uv;var pv=(e,t)=>e;q.rotr32L=pv;var lv=(e,t,r)=>e<<r|t>>>32-r;q.rotlSH=lv;var fv=(e,t,r)=>t<<r|e>>>32-r;q.rotlSL=fv;var dv=(e,t,r)=>t<<r-32|e>>>64-r;q.rotlBH=dv;var gv=(e,t,r)=>e<<r-32|t>>>64-r;q.rotlBL=gv;function hv(e,t,r,n){let o=(t>>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:o|0}}var yv=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0);q.add3L=yv;var bv=(e,t,r,n)=>t+r+n+(e/2**32|0)|0;q.add3H=bv;var xv=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0);q.add4L=xv;var vv=(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0;q.add4H=vv;var wv=(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0);q.add5L=wv;var Cv=(e,t,r,n,o,s)=>t+r+n+o+s+(e/2**32|0)|0;q.add5H=Cv;var wI={fromBig:$0,split:rv,toBig:nv,shrSH:ov,shrSL:sv,rotrSH:av,rotrSL:iv,rotrBH:cv,rotrBL:mv,rotr32H:uv,rotr32L:pv,rotlSH:lv,rotlSL:fv,rotlBH:dv,rotlBL:gv,add:hv,add3L:yv,add3H:bv,add4L:xv,add4H:vv,add5H:Cv,add5L:wv};q.default=wI});var kv=Yt(bl=>{"use strict";Object.defineProperty(bl,"__esModule",{value:!0});bl.crypto=void 0;var bo=Un("crypto");bl.crypto=bo&&typeof bo=="object"&&"webcrypto"in bo?bo.webcrypto:bo&&typeof bo=="object"&&"randomBytes"in bo?bo:void 0});var Rv=Yt(z=>{"use strict";Object.defineProperty(z,"__esModule",{value:!0});z.wrapXOFConstructorWithOpts=z.wrapConstructorWithOpts=z.wrapConstructor=z.Hash=z.nextTick=z.swap32IfBE=z.byteSwapIfBE=z.swap8IfBE=z.isLE=void 0;z.isBytes=_v;z.anumber=R0;z.abytes=Qa;z.ahash=CI;z.aexists=SI;z.aoutput=kI;z.u8=EI;z.u32=_I;z.clean=II;z.createView=PI;z.rotr=AI;z.rotl=TI;z.byteSwap=F0;z.byteSwap32=Iv;z.bytesToHex=RI;z.hexToBytes=MI;z.asyncLoop=NI;z.utf8ToBytes=N0;z.bytesToUtf8=LI;z.toBytes=xl;z.kdfInputToBytes=BI;z.concatBytes=DI;z.checkOpts=UI;z.createHasher=Av;z.createOptHasher=Tv;z.createXOFer=$v;z.randomBytes=zI;var Xa=kv();function _v(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function R0(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Qa(e,...t){if(!_v(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function CI(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");R0(e.outputLen),R0(e.blockLen)}function SI(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function kI(e,t){Qa(e);let r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function EI(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function _I(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function II(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function PI(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function AI(e,t){return e<<32-t|e>>>t}function TI(e,t){return e<<t|e>>>32-t>>>0}z.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function F0(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}z.swap8IfBE=z.isLE?e=>e:e=>F0(e);z.byteSwapIfBE=z.swap8IfBE;function Iv(e){for(let t=0;t<e.length;t++)e[t]=F0(e[t]);return e}z.swap32IfBE=z.isLE?e=>e:Iv;var Pv=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",$I=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function RI(e){if(Qa(e),Pv)return e.toHex();let t="";for(let r=0;r<e.length;r++)t+=$I[e[r]];return t}var En={_0:48,_9:57,A:65,F:70,a:97,f:102};function Ev(e){if(e>=En._0&&e<=En._9)return e-En._0;if(e>=En.A&&e<=En.F)return e-(En.A-10);if(e>=En.a&&e<=En.f)return e-(En.a-10)}function MI(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Pv)return Uint8Array.fromHex(e);let t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let o=0,s=0;o<r;o++,s+=2){let a=Ev(e.charCodeAt(s)),i=Ev(e.charCodeAt(s+1));if(a===void 0||i===void 0){let c=e[s]+e[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=a*16+i}return n}var FI=async()=>{};z.nextTick=FI;async function NI(e,t,r){let n=Date.now();for(let o=0;o<e;o++){r(o);let s=Date.now()-n;s>=0&&s<t||(await(0,z.nextTick)(),n+=s)}}function N0(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function LI(e){return new TextDecoder().decode(e)}function xl(e){return typeof e=="string"&&(e=N0(e)),Qa(e),e}function BI(e){return typeof e=="string"&&(e=N0(e)),Qa(e),e}function DI(...e){let t=0;for(let n=0;n<e.length;n++){let o=e[n];Qa(o),t+=o.length}let r=new Uint8Array(t);for(let n=0,o=0;n<e.length;n++){let s=e[n];r.set(s,o),o+=s.length}return r}function UI(e,t){if(t!==void 0&&{}.toString.call(t)!=="[object Object]")throw new Error("options should be object or undefined");return Object.assign(e,t)}var M0=class{};z.Hash=M0;function Av(e){let t=n=>e().update(xl(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Tv(e){let t=(n,o)=>e(o).update(xl(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}function $v(e){let t=(n,o)=>e(o).update(xl(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}z.wrapConstructor=Av;z.wrapConstructorWithOpts=Tv;z.wrapXOFConstructorWithOpts=$v;function zI(e=32){if(Xa.crypto&&typeof Xa.crypto.getRandomValues=="function")return Xa.crypto.getRandomValues(new Uint8Array(e));if(Xa.crypto&&typeof Xa.crypto.randomBytes=="function")return Uint8Array.from(Xa.crypto.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}});var Ov=Yt(Ee=>{"use strict";Object.defineProperty(Ee,"__esModule",{value:!0});Ee.shake256=Ee.shake128=Ee.keccak_512=Ee.keccak_384=Ee.keccak_256=Ee.keccak_224=Ee.sha3_512=Ee.sha3_384=Ee.sha3_256=Ee.sha3_224=Ee.Keccak=void 0;Ee.keccakP=Uv;var wc=Sv(),lt=Rv(),OI=BigInt(0),vc=BigInt(1),jI=BigInt(2),HI=BigInt(7),VI=BigInt(256),GI=BigInt(113),Nv=[],Lv=[],Bv=[];for(let e=0,t=vc,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],Nv.push(2*(5*n+r)),Lv.push((e+1)*(e+2)/2%64);let o=OI;for(let s=0;s<7;s++)t=(t<<vc^(t>>HI)*GI)%VI,t&jI&&(o^=vc<<(vc<<BigInt(s))-vc);Bv.push(o)}var Dv=(0,wc.split)(Bv,!0),qI=Dv[0],KI=Dv[1],Mv=(e,t,r)=>r>32?(0,wc.rotlBH)(e,t,r):(0,wc.rotlSH)(e,t,r),Fv=(e,t,r)=>r>32?(0,wc.rotlBL)(e,t,r):(0,wc.rotlSL)(e,t,r);function Uv(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let a=0;a<10;a++)r[a]=e[a]^e[a+10]^e[a+20]^e[a+30]^e[a+40];for(let a=0;a<10;a+=2){let i=(a+8)%10,c=(a+2)%10,m=r[c],u=r[c+1],p=Mv(m,u,1)^r[i],f=Fv(m,u,1)^r[i+1];for(let d=0;d<50;d+=10)e[a+d]^=p,e[a+d+1]^=f}let o=e[2],s=e[3];for(let a=0;a<24;a++){let i=Lv[a],c=Mv(o,s,i),m=Fv(o,s,i),u=Nv[a];o=e[u],s=e[u+1],e[u]=c,e[u+1]=m}for(let a=0;a<50;a+=10){for(let i=0;i<10;i++)r[i]=e[a+i];for(let i=0;i<10;i++)e[a+i]^=~r[(i+2)%10]&r[(i+4)%10]}e[0]^=qI[n],e[1]^=KI[n]}(0,lt.clean)(r)}var Cc=class e extends lt.Hash{constructor(t,r,n,o=!1,s=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=o,this.rounds=s,(0,lt.anumber)(n),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=(0,lt.u32)(this.state)}clone(){return this._cloneInto()}keccak(){(0,lt.swap32IfBE)(this.state32),Uv(this.state32,this.rounds),(0,lt.swap32IfBE)(this.state32),this.posOut=0,this.pos=0}update(t){(0,lt.aexists)(this),t=(0,lt.toBytes)(t),(0,lt.abytes)(t);let{blockLen:r,state:n}=this,o=t.length;for(let s=0;s<o;){let a=Math.min(r-this.pos,o-s);for(let i=0;i<a;i++)n[this.pos++]^=t[s++];this.pos===r&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:t,suffix:r,pos:n,blockLen:o}=this;t[n]^=r,(r&128)!==0&&n===o-1&&this.keccak(),t[o-1]^=128,this.keccak()}writeInto(t){(0,lt.aexists)(this,!1),(0,lt.abytes)(t),this.finish();let r=this.state,{blockLen:n}=this;for(let o=0,s=t.length;o<s;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,s-o);t.set(r.subarray(this.posOut,this.posOut+a),o),this.posOut+=a,o+=a}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return(0,lt.anumber)(t),this.xofInto(new Uint8Array(t))}digestInto(t){if((0,lt.aoutput)(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,(0,lt.clean)(this.state)}_cloneInto(t){let{blockLen:r,suffix:n,outputLen:o,rounds:s,enableXOF:a}=this;return t||(t=new e(r,n,o,a,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=o,t.enableXOF=a,t.destroyed=this.destroyed,t}};Ee.Keccak=Cc;var xo=(e,t,r)=>(0,lt.createHasher)(()=>new Cc(t,e,r));Ee.sha3_224=xo(6,144,224/8);Ee.sha3_256=xo(6,136,256/8);Ee.sha3_384=xo(6,104,384/8);Ee.sha3_512=xo(6,72,512/8);Ee.keccak_224=xo(1,144,224/8);Ee.keccak_256=xo(1,136,256/8);Ee.keccak_384=xo(1,104,384/8);Ee.keccak_512=xo(1,72,512/8);var zv=(e,t,r)=>(0,lt.createXOFer)((n={})=>new Cc(t,e,n.dkLen===void 0?r:n.dkLen,!0));Ee.shake128=zv(31,168,128/8);Ee.shake256=zv(31,136,256/8)});var jv=Yt(L0=>{"use strict";Object.defineProperty(L0,"__esModule",{value:!0});L0.verifyEnvEncryptPublicKey=ZI;var WI=Ov(),JI=Un("@noble/curves/secp256k1");function ZI(e,t,r){if(t.length!==65)return null;let n=Buffer.from("dstack-env-encrypt-pubkey","utf8"),o=r;r.startsWith("0x")&&(o=r.slice(2));let s=Buffer.from(o,"hex"),a=Buffer.from(":","utf8"),i=Buffer.concat([n,a,s,Buffer.from(e)]),c=(0,WI.keccak_256)(i);try{let m=t.slice(0,32),u=t.slice(32,64),p=t[64],f=new Uint8Array(64);f.set(m,0),f.set(u,32);let d=JI.secp256k1.Signature.fromCompact(f).addRecoveryBit(p).recoverPublicKey(c);return"0x"+Buffer.from(d.toRawBytes(!0)).toString("hex")}catch(m){return console.error("signature verification failed:",m),null}}});import{readFileSync as MR}from"fs";import{dirname as FR,join as NR}from"path";import{fileURLToPath as LR}from"url";import{ZodError as M3}from"zod";import pi from"chalk";function rm(e){return e.split(/[\s-]+/).filter(Boolean).map((t,r)=>r===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("")}function ih(e){return e===void 0?[]:Array.isArray(e)?[...e]:[e]}function ch(e,t){let r={};for(let i of t.flagConfig.descriptors.values()){let c=t.flags[i.canonicalKey];c!==void 0&&(r[i.target]=c)}for(let i of t.flagConfig.negatedLookup.values())i.negatedKey&&t.flags[i.negatedKey]&&(r[i.target]=!1);t.passThrough.length>0&&(r["--"]=t.passThrough);let n={},o=e.arguments??[],s=[...t.positionals],a=0;for(let i of o){let c=i.target??rm(i.name);if(i.variadic){n[c]=s.slice(a),a=s.length;break}s[a]!==void 0&&(n[c]=s[a]),a+=1}return{options:r,positionals:n,raw:{flags:t.flags,positionals:t.positionals}}}import TS from"arg";var IS={name:"help",shorthand:"h",description:"Show help information for the current command",type:"boolean",target:"help"},PS={name:"version",shorthand:"v",description:"Show CLI version",type:"boolean",target:"version"},re={name:"interactive",shorthand:"i",description:"Enable interactive mode",type:"boolean",target:"interactive",group:"basic"},mh={name:"api-token",description:"API token used for authentication",type:"string",target:"apiToken",aliases:["api-key"],argumentName:"token",group:"basic"},br={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json",group:"basic"},Po=[IS,PS,mh,br],zn=[mh],he={name:"cvm_id",description:"CVM identifier (UUID, app_id, instance_id, or name)",required:!1,target:"cvmId"},ds={name:"cvm-id",description:"CVM identifier (UUID, app_id, instance_id, or name)",type:"string",target:"cvmId"},uh={name:"uuid",description:"[DEPRECATED] Use --cvm-id instead. CVM UUID.",type:"string",target:"cvmId",deprecated:!0,group:"deprecated"};import ph from"arg";function lh(e){let t={},r=new Map,n=new Map;if(!e)return{spec:t,descriptors:r,negatedLookup:n};for(let o of e){let s=`--${o.name}`,a=o.target??rm(o.name),i=AS(o.type);r.set(s,{option:o,canonicalKey:s,target:a,negatedKey:o.negatedName?`--${o.negatedName}`:void 0}),t[s]=i,o.shorthand&&(t[`-${o.shorthand}`]=s);for(let c of ih(o.aliases))t[`--${c}`]=s;if(o.negatedName){let c=`--${o.negatedName}`;if(o.type!=="boolean")throw new Error(`Negated option is only supported for boolean types: ${o.name}`);t[c]=ph.flag(()=>!0),n.set(c,{option:o,canonicalKey:s,target:a,negatedKey:c})}}return{spec:t,descriptors:r,negatedLookup:n}}function AS(e){switch(e){case"string":return(t="")=>t;case"number":return(t,r)=>{let n=Number(t);if(Number.isNaN(n))throw new Error(`Invalid value for ${r}: expected a number.`);return n};case"boolean":return ph.flag(()=>!0);case"string[]":return(t,r,n)=>{let o=Array.isArray(n)?[...n]:[];if(t==="")throw new Error(`Option ${r} expects a value.`);return o.push(t),o};case"number[]":return(t,r,n)=>{let o=Array.isArray(n)?[...n]:[],s=Number(t);if(Number.isNaN(s))throw new Error(`Invalid value for ${r}: expected a number.`);return o.push(s),o};default:throw new Error(`Unsupported option type: ${e}`)}}function $S(e){let t=e.indexOf("--");return t===-1?[[...e],[]]:[e.slice(0,t),e.slice(t+1)]}function wi(e,t,r={}){let n=[...Po,...t?[...t]:[]],o=lh(n),{permissive:s=!1,stopAtPositional:a=!1}=r,[i,c]=$S(e),m=TS(o.spec,{argv:i,permissive:s,stopAtPositional:a}),{_:u,...p}=m;return{positionals:u??[],flags:p,flagConfig:o,passThrough:c}}function nm(e){return e==="unstable"?" [UNSTABLE]":e==="deprecated"?" [DEPRECATED]":""}function sm(e){let{registry:t,executableName:r}=e,n=[];n.push(`Usage: ${r} <command> [options]`),n.push("");let o=t.getChildren(),s=c=>{switch(c){case"deploy":return"Deploy:";case"manage":return"Manage:";case"cvm-ops":return"CVM operations:";case"profile":return"Profile / auth:";case"advanced":return"Advanced:";case"deprecated":return"Deprecated:"}},a=["deploy","manage","cvm-ops","profile","advanced","deprecated"],i=c=>{let m=c.command?.meta??c.group?.meta;if(m?.category)return m.category;let u=c.name??"";return m?.stability==="deprecated"?"deprecated":u==="nodes"||u==="deploy"?"deploy":u==="apps"||u==="cvms"||u==="link"||u==="simulator"?"manage":u==="ssh"||u==="cp"||u==="ps"||u==="logs"?"cvm-ops":u==="login"||u==="logout"||u==="switch"||u==="status"?"profile":u==="api"||u==="self"?"advanced":u==="auth"||u==="config"||u==="docker"?"deprecated":"advanced"};for(let c of a){let m=o.filter(u=>i(u)===c).sort((u,p)=>(u.name??"").localeCompare(p.name??""));if(m.length!==0){n.push(s(c));for(let u of m){let p=u.command?.meta??u.group?.meta,f=(p?.description??"").split(`
48
+ `)[0],d=p?.stability,g=d?nm(d):"",h=u.name??"",y=p?.aliases,b=y?.length?`${h} (${y.join(", ")})`:h;n.push(` ${b.padEnd(18)}${f}${g}`.trimEnd())}n.push("")}}n.push(""),n.push("Global options:");for(let c of Po){let m=om(c),u=Math.max(24,m.length+2);n.push(` ${m.padEnd(u)}${c.description??""}`.trimEnd())}return n.join(`
49
+ `)}function fh(e){let{registry:t,executableName:r,groupPath:n}=e,o=t.getNode(n);if(!o?.group)return sm({registry:t,executableName:r});let s=[],a=n.join(" "),i=`${r} ${a}`;s.push(`Usage: ${i} <command> [options]`),s.push(""),o.group.meta.description&&(s.push(o.group.meta.description),s.push(""));let c=t.getChildren(n);if(c.length>0){s.push("Available commands:");for(let m of c){let u=m.command?.meta??m.group?.meta,p=(u?.description??"").split(`
50
+ `)[0],f=u?.stability,d=f?nm(f):"",g=m.name??"",h=u?.aliases,y=h?.length?`${g} (${h.join(", ")})`:g;s.push(` ${y.padEnd(18)}${p}${d}`.trimEnd())}s.push("")}s.push("Global options:");for(let m of Po){let u=om(m),p=Math.max(24,u.length+2);s.push(` ${u.padEnd(p)}${m.description??""}`.trimEnd())}return s.join(`
51
+ `)}function Mf(e){let{executableName:t,definition:r,registry:n}=e,o=RS({executableName:t,definition:r}),s=nm(r.meta.stability),a=[o,"",`${r.meta.description}${s}`],i=r.meta.arguments??[];if(i.length>0){a.push(""),a.push("Arguments:");for(let g of i){let h=FS(g);a.push(` ${h.padEnd(18)}${g.description??""}`.trimEnd())}}let c=[...r.meta.options??[]],m=Po.filter(g=>!g.hidden),u=c.filter(g=>!g.hidden),p=new Set(Po.map(g=>g.name)),f=u.filter(g=>!p.has(g.name));if(m.length>0){let g=new Set(f.map(h=>h.shorthand).filter(h=>typeof h=="string"&&h.length>0));a.push(""),a.push("Global options:");for(let h of m){let y=!h.shorthand||!g.has(h.shorthand),b=om(h,{includeShorthand:y}),x=Math.max(24,b.length+2);a.push(` ${b.padEnd(x)}${h.description??""}`.trimEnd())}}if(f.length>0){let g=x=>x.group==="deprecated"||x.deprecated?!0:(x.description??"").includes("[DEPRECATED]"),h=x=>x.group?x.group:g(x)?"deprecated":"basic",y={basic:[],advanced:[],deprecated:[]};for(let x of f)y[h(x)].push(x);let b=(x,v)=>{if(v.length!==0){a.push(""),a.push(x);for(let S of v){let k=om(S),_=Math.max(24,k.length+2);a.push(` ${k.padEnd(_)}${S.description??""}`.trimEnd())}}};b("Basic options:",y.basic),b("Advanced options:",y.advanced),b("Deprecated options:",y.deprecated)}if(r.meta.passThrough&&(a.push(""),a.push("Pass-through (after --):"),a.push(` ${r.meta.passThrough.description}`),r.meta.passThrough.examples&&r.meta.passThrough.examples.length>0)){a.push(""),a.push(" Examples:");for(let g of r.meta.passThrough.examples)a.push(` ${g}`)}if(r.meta.examples&&r.meta.examples.length>0){a.push(""),a.push("Examples:");for(let g of r.meta.examples)a.push(` # ${g.name}`),a.push(` ${g.value}`)}let d=n.getChildren(r.path);if(d.length>0){a.push(""),a.push("Subcommands:");for(let g of d){let h=g.command?.meta??g.group?.meta,y=(h?.description??"").split(`
52
+ `)[0],b=h?.stability,x=b?nm(b):"",v=g.name??"",S=h?.aliases,k=S?.length?`${v} (${S.join(", ")})`:v;a.push(` ${k.padEnd(18)}${y}${x}`.trimEnd())}}return a.join(`
53
+ `)}function RS({executableName:e,definition:t}){let r=[e,...t.path],o=(t.meta.arguments??[]).map(m=>MS(m)).join(" "),a=(t.meta.options?.length??0)>0?" [options]":"",i=o?` ${o}`:"",c=t.meta.passThrough?" [--] [...]":"";return`Usage: ${r.join(" ")}${a}${i}${c}`}function MS(e){let t=`<${e.name}>`;return e.variadic?`${t}...`:e.required===!1?`[${t}]`:t}function FS(e){return e.variadic?`<${e.name}...>`:e.required===!1?`<${e.name}>?`:`<${e.name}>`}function om(e,{includeShorthand:t=!0}={}){let r=[];t&&e.shorthand&&r.push(`-${e.shorthand}`);let n=`--${e.name}`;if(e.argumentName?n+=` ${e.argumentName.toUpperCase()}`:e.type!=="boolean"&&(n+=" <value>"),r.push(n),e.aliases&&e.aliases.length>0)for(let o of e.aliases){let s=`--${o}`;e.argumentName?s+=` ${e.argumentName.toUpperCase()}`:e.type!=="boolean"&&(s+=" <value>"),r.push(s)}return e.type==="boolean"&&e.negatedName&&r.push(`--${e.negatedName}`),r.join(", ")}var Ff=!1;function Ci(e){Ff=e}function we(){return Ff}function Nf(){return!Ff}import u3 from"path";import $l from"fs-extra";import $w from"@iarna/toml";import{z as Rr}from"zod";var Jv=vi(vh(),1);import{ofetch as YI}from"ofetch";function wh(e){return{all:e=e||new Map,on:function(t,r){var n=e.get(t);n?n.push(r):e.set(t,[r])},off:function(t,r){var n=e.get(t);n&&(r?n.splice(n.indexOf(r)>>>0,1):e.set(t,[]))},emit:function(t,r){var n=e.get(t);n&&n.slice().map(function(o){o(r)}),(n=e.get("*"))&&n.slice().map(function(o){o(t,r)})}}}import{z as tt}from"zod";import{z as _e}from"zod";import{z as vo}from"zod";import{z as X}from"zod";import{z as wo}from"zod";function To(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}hm();Ge();hm();var Of={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function Ro(e,t){let r={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?Ae(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?Ae(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?Of[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(r.authorizationList=ik(e.authorizationList)),r.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof r.v=="bigint"){if(r.v===0n||r.v===27n)return 0;if(r.v===1n||r.v===28n)return 1;if(r.v>=35n)return r.v%2n===0n?1:0}})(),r.type==="legacy"&&(delete r.accessList,delete r.maxFeePerBlobGas,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.yParity),r.type==="eip2930"&&(delete r.maxFeePerBlobGas,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas),r.type==="eip1559"&&delete r.maxFeePerBlobGas,r}var Eh=xs("transaction",Ro);function ik(e){return e.map(t=>({address:t.address,chainId:Number(t.chainId),nonce:Number(t.nonce),r:t.r,s:t.s,yParity:Number(t.yParity)}))}function Ii(e,t){let r=(e.transactions??[]).map(n=>typeof n=="string"?n:Ro(n));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:r,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}var _h=xs("block",Ii);function at(e,{args:t,eventName:r}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...r?{args:t,eventName:r}:{}}}Ge();hm();var jf={"0x0":"reverted","0x1":"success"};function Pi(e,t){let r={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(n=>at(n)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Ae(e.transactionIndex):null,status:e.status?jf[e.status]:null,type:e.type?Of[e.type]||e.type:null};return e.blobGasPrice&&(r.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(r.blobGasUsed=BigInt(e.blobGasUsed)),r}var Ih=xs("transactionReceipt",Pi);K();bm();Ye();D();function wr(e,t="hex"){let r=Ph(e),n=Cs(new Uint8Array(r.length));return r.encode(n),t==="hex"?oe(n.bytes):n.bytes}function Ph(e){return Array.isArray(e)?lk(e.map(t=>Ph(t))):fk(e)}function lk(e){let t=e.reduce((o,s)=>o+s.length,0),r=Ah(t);return{length:t<=55?1+t:1+r+t,encode(o){t<=55?o.pushByte(192+t):(o.pushByte(247+r),r===1?o.pushUint8(t):r===2?o.pushUint16(t):r===3?o.pushUint24(t):o.pushUint32(t));for(let{encode:s}of e)s(o)}}}function fk(e){let t=typeof e=="string"?qe(e):e,r=Ah(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+r+t.length,encode(o){t.length===1&&t[0]<128?o.pushBytes(t):t.length<=55?(o.pushByte(128+t.length),o.pushBytes(t)):(o.pushByte(183+r),r===1?o.pushUint8(t.length):r===2?o.pushUint16(t.length):r===3?o.pushUint24(t.length):o.pushUint32(t.length),o.pushBytes(t))}}}function Ah(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new w("Length is too large.")}zt();D();function $h(e){if(!e||e.length===0)return[];let t=[];for(let r of e){let{chainId:n,nonce:o,...s}=r,a=r.address;t.push([n?ye(n):"0x",a,o?ye(o):"0x",...Ps({},s)])}return t}Ye();D();function As(e){let{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(s=>qe(s)):e.blobs,o=[];for(let s of n)o.push(Uint8Array.from(t.blobToKzgCommitment(s)));return r==="bytes"?o:o.map(s=>oe(s))}Ye();D();function Ts(e){let{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(a=>qe(a)):e.blobs,o=typeof e.commitments[0]=="string"?e.commitments.map(a=>qe(a)):e.commitments,s=[];for(let a=0;a<n.length;a++){let i=n[a],c=o[a];s.push(Uint8Array.from(t.computeBlobKzgProof(i,c)))}return r==="bytes"?s:s.map(a=>oe(a))}D();Rm();function xk(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let o=BigInt(32),s=BigInt(4294967295),a=Number(r>>o&s),i=Number(r&s),c=n?4:0,m=n?0:4;e.setUint32(t+c,a,n),e.setUint32(t+m,i,n)}function Mh(e,t,r){return e&t^~e&r}function Fh(e,t,r){return e&t^e&r^t&r}var Mm=class extends $s{constructor(t,r,n,o){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=Tm(this.buffer)}update(t){Rs(this),t=Ti(t),Fo(t);let{view:r,buffer:n,blockLen:o}=this,s=t.length;for(let a=0;a<s;){let i=Math.min(o-this.pos,s-a);if(i===o){let c=Tm(t);for(;o<=s-a;a+=o)this.process(c,a);continue}n.set(t.subarray(a,a+i),this.pos),this.pos+=i,a+=i,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Rs(this),Am(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:s}=this,{pos:a}=this;r[a++]=128,Hn(this.buffer.subarray(a)),this.padOffset>o-a&&(this.process(n,0),a=0);for(let p=a;p<o;p++)r[p]=0;xk(n,o-8,BigInt(this.length*8),s),this.process(n,0);let i=Tm(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let m=c/4,u=this.get();if(m>u.length)throw new Error("_sha2: outputLen bigger than state");for(let p=0;p<m;p++)i.setUint32(4*p,u[p],s)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:o,finished:s,destroyed:a,pos:i}=this;return t.destroyed=a,t.finished=s,t.length=o,t.pos=i,o%r&&t.buffer.set(n),t}clone(){return this._cloneInto()}},pn=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);Rm();var wk=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Vn=new Uint32Array(64),Nm=class extends Mm{constructor(t=32){super(64,t,8,!1),this.A=pn[0]|0,this.B=pn[1]|0,this.C=pn[2]|0,this.D=pn[3]|0,this.E=pn[4]|0,this.F=pn[5]|0,this.G=pn[6]|0,this.H=pn[7]|0}get(){let{A:t,B:r,C:n,D:o,E:s,F:a,G:i,H:c}=this;return[t,r,n,o,s,a,i,c]}set(t,r,n,o,s,a,i,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=a|0,this.G=i|0,this.H=c|0}process(t,r){for(let p=0;p<16;p++,r+=4)Vn[p]=t.getUint32(r,!1);for(let p=16;p<64;p++){let f=Vn[p-15],d=Vn[p-2],g=Cr(f,7)^Cr(f,18)^f>>>3,h=Cr(d,17)^Cr(d,19)^d>>>10;Vn[p]=h+Vn[p-7]+g+Vn[p-16]|0}let{A:n,B:o,C:s,D:a,E:i,F:c,G:m,H:u}=this;for(let p=0;p<64;p++){let f=Cr(i,6)^Cr(i,11)^Cr(i,25),d=u+f+Mh(i,c,m)+wk[p]+Vn[p]|0,h=(Cr(n,2)^Cr(n,13)^Cr(n,22))+Fh(n,o,s)|0;u=m,m=c,c=i,i=a+d|0,a=s,s=o,o=n,n=d+h|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,a=a+this.D|0,i=i+this.E|0,c=c+this.F|0,m=m+this.G|0,u=u+this.H|0,this.set(n,o,s,a,i,c,m,u)}roundClean(){Hn(Vn)}destroy(){this.set(0,0,0,0,0,0,0,0),Hn(this.buffer)}};var jh=$m(()=>new Nm);var Hh=jh;Ut();Ye();D();function Vh(e,t){let r=t||"hex",n=Hh(xe(e,{strict:!1})?Qt(e):e);return r==="bytes"?n:ye(n)}function Gh(e){let{commitment:t,version:r=1}=e,n=e.to??(typeof t=="string"?"hex":"bytes"),o=Vh(t,"bytes");return o.set([r],0),n==="bytes"?o:oe(o)}function Lm(e){let{commitments:t,version:r}=e,n=e.to??(typeof t[0]=="string"?"hex":"bytes"),o=[];for(let s of t)o.push(Gh({commitment:s,to:n,version:r}));return o}K();var Bm=class extends w{constructor({maxSize:t,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}},Ms=class extends w{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}},Dm=class extends w{constructor({hash:t,size:r}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}},Um=class extends w{constructor({hash:t,version:r}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${1}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}};bm();Xt();Ye();D();function qh(e){let t=e.to??(typeof e.data=="string"?"hex":"bytes"),r=typeof e.data=="string"?qe(e.data):e.data,n=ne(r);if(!n)throw new Ms;if(n>761855)throw new Bm({maxSize:761855,size:n});let o=[],s=!0,a=0;for(;s;){let i=Cs(new Uint8Array(131072)),c=0;for(;c<4096;){let m=r.slice(a,a+31);if(i.pushByte(0),i.pushBytes(m),m.length<31){i.pushByte(128),s=!1;break}c++,a+=31}o.push(i)}return t==="bytes"?o.map(i=>i.bytes):o.map(i=>oe(i.bytes))}function zm(e){let{data:t,kzg:r,to:n}=e,o=e.blobs??qh({data:t,to:n}),s=e.commitments??As({blobs:o,kzg:r,to:n}),a=e.proofs??Ts({blobs:o,commitments:s,kzg:r,to:n}),i=[];for(let c=0;c<o.length;c++)i.push({blob:o[c],commitment:s[c],proof:a[c]});return i}yt();$o();D();Hf();Sr();K();Ri();Gn();Ot();Xt();Kn();Ge();function ty(e){let{authorizationList:t}=e;if(t)for(let r of t){let{chainId:n}=r,o=r.address;if(!ie(o))throw new de({address:o});if(n<0)throw new Lo({chainId:n})}Gm(e)}function ry(e){let{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Ms;for(let r of t){let n=ne(r),o=Ae(or(r,0,1));if(n!==32)throw new Dm({hash:r,size:n});if(o!==1)throw new Um({hash:r,version:o})}}Gm(e)}function Gm(e){let{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:n,to:o}=e;if(t<=0)throw new Lo({chainId:t});if(o&&!ie(o))throw new de({address:o});if(n&&n>vs)throw new er({maxFeePerGas:n});if(r&&n&&r>n)throw new Nr({maxFeePerGas:n,maxPriorityFeePerGas:r})}function ny(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s}=e;if(t<=0)throw new Lo({chainId:t});if(s&&!ie(s))throw new de({address:s});if(r||o)throw new w("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>vs)throw new er({maxFeePerGas:n})}function oy(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s}=e;if(s&&!ie(s))throw new de({address:s});if(typeof t<"u"&&t<=0)throw new Lo({chainId:t});if(r||o)throw new w("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>vs)throw new er({maxFeePerGas:n})}zt();function qm(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new Em({transaction:e})}Sr();zt();Ot();function Fi(e){if(!e||e.length===0)return[];let t=[];for(let r=0;r<e.length;r++){let{address:n,storageKeys:o}=e[r];for(let s=0;s<o.length;s++)if(o[s].length-2!==64)throw new _m({storageKey:o[s]});if(!ie(n,{strict:!1}))throw new de({address:n});t.push([n,o])}return t}function Km(e,t){let r=qm(e);return r==="eip1559"?Lk(e,t):r==="eip2930"?Bk(e,t):r==="eip4844"?Nk(e,t):r==="eip7702"?Fk(e,t):Dk(e,t)}function Fk(e,t){let{authorizationList:r,chainId:n,gas:o,nonce:s,to:a,value:i,maxFeePerGas:c,maxPriorityFeePerGas:m,accessList:u,data:p}=e;ty(e);let f=Fi(u),d=$h(r);return Xe(["0x04",wr([E(n),s?E(s):"0x",m?E(m):"0x",c?E(c):"0x",o?E(o):"0x",a??"0x",i?E(i):"0x",p??"0x",f,d,...Ps(e,t)])])}function Nk(e,t){let{chainId:r,gas:n,nonce:o,to:s,value:a,maxFeePerBlobGas:i,maxFeePerGas:c,maxPriorityFeePerGas:m,accessList:u,data:p}=e;ry(e);let f=e.blobVersionedHashes,d=e.sidecars;if(e.blobs&&(typeof f>"u"||typeof d>"u")){let v=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(_=>oe(_)),S=e.kzg,k=As({blobs:v,kzg:S});if(typeof f>"u"&&(f=Lm({commitments:k})),typeof d>"u"){let _=Ts({blobs:v,commitments:k,kzg:S});d=zm({blobs:v,commitments:k,proofs:_})}}let g=Fi(u),h=[E(r),o?E(o):"0x",m?E(m):"0x",c?E(c):"0x",n?E(n):"0x",s??"0x",a?E(a):"0x",p??"0x",g,i?E(i):"0x",f??[],...Ps(e,t)],y=[],b=[],x=[];if(d)for(let v=0;v<d.length;v++){let{blob:S,commitment:k,proof:_}=d[v];y.push(S),b.push(k),x.push(_)}return Xe(["0x03",d?wr([h,y,b,x]):wr(h)])}function Lk(e,t){let{chainId:r,gas:n,nonce:o,to:s,value:a,maxFeePerGas:i,maxPriorityFeePerGas:c,accessList:m,data:u}=e;Gm(e);let p=Fi(m),f=[E(r),o?E(o):"0x",c?E(c):"0x",i?E(i):"0x",n?E(n):"0x",s??"0x",a?E(a):"0x",u??"0x",p,...Ps(e,t)];return Xe(["0x02",wr(f)])}function Bk(e,t){let{chainId:r,gas:n,data:o,nonce:s,to:a,value:i,accessList:c,gasPrice:m}=e;ny(e);let u=Fi(c),p=[E(r),s?E(s):"0x",m?E(m):"0x",n?E(n):"0x",a??"0x",i?E(i):"0x",o??"0x",u,...Ps(e,t)];return Xe(["0x01",wr(p)])}function Dk(e,t){let{chainId:r=0,gas:n,data:o,nonce:s,to:a,value:i,gasPrice:c}=e;oy(e);let m=[s?E(s):"0x",c?E(c):"0x",n?E(n):"0x",a??"0x",i?E(i):"0x",o??"0x"];if(t){let u=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(r>0)return BigInt(r*2)+BigInt(35n+t.v-27n);let d=27n+(t.v===27n?0n:1n);if(t.v!==d)throw new km({v:t.v});return d})(),p=Ze(t.r),f=Ze(t.s);m=[...m,E(u),p==="0x00"?"0x":p,f==="0x00"?"0x":f]}else r>0&&(m=[...m,E(r),"0x","0x"]);return wr(m)}function Ps(e,t){let r=t??e,{v:n,yParity:o}=r;if(typeof r.r>"u")return[];if(typeof r.s>"u")return[];if(typeof n>"u"&&typeof o>"u")return[];let s=Ze(r.r),a=Ze(r.s);return[typeof o=="number"?o?E(1):"0x":n===0n?"0x":n===1n?E(1):n===27n?"0x":E(1),s==="0x00"?"0x":s,a==="0x00"?"0x":a]}var sy={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};Ge();var ay={block:_h({format(e){return{transactions:e.transactions?.map(r=>{if(typeof r=="string")return r;let n=Ro(r);return n.typeHex==="0x7e"&&(n.isSystemTx=r.isSystemTx,n.mint=r.mint?be(r.mint):void 0,n.sourceHash=r.sourceHash,n.type="deposit"),n}),stateRoot:e.stateRoot}}}),transaction:Eh({format(e){let t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?be(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:Ih({format(e){return{l1GasPrice:e.l1GasPrice?be(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?be(e.l1GasUsed):null,l1Fee:e.l1Fee?be(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};Sr();Ot();yt();D();function Uk(e,t){return Ok(e)?zk(e):Km(e,t)}var iy={transaction:Uk};function zk(e){jk(e);let{sourceHash:t,data:r,from:n,gas:o,isSystemTx:s,mint:a,to:i,value:c}=e,m=[t,n,i??"0x",a?ye(a):"0x",c?ye(c):"0x",o?ye(o):"0x",s?"0x1":"0x",r??"0x"];return Xe(["0x7e",wr(m)])}function Ok(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function jk(e){let{from:t,to:r}=e;if(t&&!ie(t))throw new de({address:t});if(r&&!ie(r))throw new de({address:r})}var Qf={blockTime:2e3,contracts:sy,formatters:ay,serializers:iy};var Wm=To({id:31337,name:"Anvil",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["http://127.0.0.1:8545"],webSocket:["ws://127.0.0.1:8545"]}}});var Ni=1,Li=To({...Qf,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...Qf.contracts,disputeGameFactory:{[Ni]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[Ni]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[Ni]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[Ni]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:Ni}),Hk=To({...Li,experimental_preconfirmationTime:200,rpcUrls:{default:{http:["https://mainnet-preconf.base.org"]}}});Ri();function Vs({chain:e,currentChainId:t}){if(!e)throw new jm;if(t!==e.id)throw new Om({chain:e,currentChainId:t})}K();var Qe=class extends w{constructor({docsPath:t}={}){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(`
54
+ `),{docsPath:t,docsSlug:"account",name:"AccountNotFoundError"})}},ar=class extends w{constructor({docsPath:t,metaMessages:r,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:t,metaMessages:r,name:"AccountTypeNotSupportedError"})}};var Hu=To({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12e3,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}});import{z as Le}from"zod";import{z as Ct}from"zod";import{z as $}from"zod";import{z as M}from"zod";import{z as ti}from"zod";import{z as ri}from"zod";import{z as Y}from"zod";import{z as ft}from"zod";import{z as te}from"zod";import cP from"crypto";import{z as Qr}from"zod";import{z as Ar}from"zod";import{z as ot}from"zod";import{z as Ft}from"zod";import{z as Nt}from"zod";import{z as DP}from"zod";import{z as Vv}from"zod";import{z as en}from"zod";import{z as ii}from"zod";import{z as ns}from"zod";import{z as Ce}from"zod";import{z as mA}from"zod";import{z as lA}from"zod";import{z as le}from"zod";import{z as Yr}from"zod";import{z as _A}from"zod";import{z as Ne}from"zod";import{z as V}from"zod";import{z as si}from"zod";import{z as U0}from"zod";import{z as dt}from"zod";import{z as dw}from"zod";import{z as Zr}from"zod";import{z as Mt}from"zod";import{z as Co}from"zod";import{z as z0}from"zod";import{z as j0}from"zod";import{z as rs}from"zod";import{z as U}from"zod";import{z as ce}from"zod";import{z as se}from"zod";import{z as He}from"zod";function T(e,t,r){let n=e[t.name];if(typeof n=="function")return n;let o=e[r];return typeof o=="function"?o:s=>t(e,s)}Me();K();var Vu=class extends w{constructor(t){super(`Filter type "${t}" is not supported.`,{name:"FilterTypeNotSupportedError"})}};Ye();nr();qi();hn();dn();Zn();var ab="/docs/contract/encodeEventTopics";function Hr(e){let{abi:t,eventName:r,args:n}=e,o=t[0];if(r){let c=At({abi:t,name:r});if(!c)throw new zi(r,{docsPath:ab});o=c}if(o.type!=="event")throw new zi(void 0,{docsPath:ab});let s=We(o),a=Jn(s),i=[];if(n&&"inputs"in o){let c=o.inputs?.filter(u=>"indexed"in u&&u.indexed),m=Array.isArray(n)?n:Object.values(n).length>0?c?.map(u=>n[u.name])??[]:[];m.length>0&&(i=c?.map((u,p)=>Array.isArray(m[p])?m[p].map((f,d)=>ib({param:u,value:m[p][d]})):typeof m[p]<"u"&&m[p]!==null?ib({param:u,value:m[p]}):null)??[])}return[a,...i]}function ib({param:e,value:t}){if(e.type==="string"||e.type==="bytes")return ge(Qt(t));if(e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/))throw new Vu(e.type);return bt([e],[t])}D();function no(e,{method:t}){let r={};return e.transport.type==="fallback"&&e.transport.onResponse?.(({method:n,response:o,status:s,transport:a})=>{s==="success"&&t===n&&(r[o]=a.request)}),(n=>r[n]||e.request)}async function Gu(e,t){let{address:r,abi:n,args:o,eventName:s,fromBlock:a,strict:i,toBlock:c}=t,m=no(e,{method:"eth_newFilter"}),u=s?Hr({abi:n,args:o,eventName:s}):void 0,p=await e.request({method:"eth_newFilter",params:[{address:r,fromBlock:typeof a=="bigint"?E(a):a,toBlock:typeof c=="bigint"?E(c):c,topics:u}]});return{abi:n,args:o,eventName:s,id:p,request:m(p),strict:!!i,type:"event"}}Re();Ht();Me();K();Yn();Oo();Ca();var wE=3;function Vt(e,{abi:t,address:r,args:n,docsPath:o,functionName:s,sender:a}){let i=e instanceof zr?e:e instanceof w?e.walk(g=>"data"in g)||e.walk():{},{code:c,data:m,details:u,message:p,shortMessage:f}=i,d=e instanceof ir?new Uu({functionName:s}):[wE,bn.code].includes(c)&&(m||u||p||f)?new zo({abi:t,data:typeof m=="object"?m.data:m,functionName:s,message:i instanceof Xn?u:f??p}):e;return new na(d,{abi:t,args:n,contractAddress:r,docsPath:o,functionName:s,sender:a})}Re();K();qn();nr();function qu(e){let t=ge(`0x${e.substring(4)}`).substring(26);return fn(`0x${t}`)}Ut();Xt();Ge();D();async function lb({hash:e,signature:t}){let r=xe(e)?e:ye(e),{secp256k1:n}=await import("@noble/curves/secp256k1");return`0x${(()=>{if(typeof t=="object"&&"r"in t&&"s"in t){let{r:m,s:u,v:p,yParity:f}=t,d=Number(f??p),g=pb(d);return new n.Signature(be(m),be(u)).addRecoveryBit(g)}let a=xe(t)?t:ye(t);if(ne(a)!==65)throw new Error("invalid signature length");let i=Ae(`0x${a.slice(130)}`),c=pb(i);return n.Signature.fromCompact(a.substring(2,130)).addRecoveryBit(c)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}function pb(e){if(e===0||e===1)return e;if(e===27)return 0;if(e===28)return 1;throw new Error("Invalid yParityOrV value")}async function Ku({hash:e,signature:t}){return qu(await lb({hash:e,signature:t}))}yt();Ye();D();nr();function Wu(e){let{chainId:t,nonce:r,to:n}=e,o=e.contractAddress??e.address,s=ge(Xe(["0x05",wr([t?E(t):"0x",o,r?E(r):"0x"])]));return n==="bytes"?qe(s):s}async function oo(e){let{authorization:t,signature:r}=e;return Ku({hash:Wu(t),signature:r??t})}D();Cm();ks();K();zt();var Ju=class extends w{constructor(t,{account:r,docsPath:n,chain:o,data:s,gas:a,gasPrice:i,maxFeePerGas:c,maxPriorityFeePerGas:m,nonce:u,to:p,value:f}){let d=Mo({from:r?.address,to:p,value:typeof f<"u"&&`${Ss(f)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:s,gas:a,gasPrice:typeof i<"u"&&`${Ke(i)} gwei`,maxFeePerGas:typeof c<"u"&&`${Ke(c)} gwei`,maxPriorityFeePerGas:typeof m<"u"&&`${Ke(m)} gwei`,nonce:u});super(t.shortMessage,{cause:t,docsPath:n,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Estimate Gas Arguments:",d].filter(Boolean),name:"EstimateGasExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}};Gn();Wi();function fb(e,{docsPath:t,...r}){let n=(()=>{let o=ro(e,r);return o instanceof tr?e:o})();return new Ju(n,{docsPath:t,...r})}Sa();jn();Zu();xn();Re();ks();K();var Yu=class extends w{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}},so=class extends w{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}},Xu=class extends w{constructor({maxPriorityFeePerGas:t}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${Ke(t)} gwei).`,{name:"MaxFeePerGasTooLowError"})}};Ge();K();var Ea=class extends w{constructor({blockHash:t,blockNumber:r}){let n="Block";t&&(n=`Block at hash "${t}"`),r&&(n=`Block at number "${r}"`),super(`${n} could not be found.`,{name:"BlockNotFoundError"})}};D();async function ut(e,{blockHash:t,blockNumber:r,blockTag:n=e.experimental_blockTag??"latest",includeTransactions:o}={}){let s=o??!1,a=r!==void 0?E(r):void 0,i=null;if(t?i=await e.request({method:"eth_getBlockByHash",params:[t,s]},{dedupe:!0}):i=await e.request({method:"eth_getBlockByNumber",params:[a||n,s]},{dedupe:!!a}),!i)throw new Ea({blockHash:t,blockNumber:r});return(e.chain?.formatters?.block?.format||Ii)(i,"getBlock")}async function _a(e){let t=await e.request({method:"eth_gasPrice"});return BigInt(t)}async function gb(e,t){return hd(e,t)}async function hd(e,t){let{block:r,chain:n=e.chain,request:o}=t||{};try{let s=n?.fees?.maxPriorityFeePerGas??n?.fees?.defaultPriorityFee;if(typeof s=="function"){let i=r||await T(e,ut,"getBlock")({}),c=await s({block:i,client:e,request:o});if(c===null)throw new Error;return c}if(typeof s<"u")return s;let a=await e.request({method:"eth_maxPriorityFeePerGas"});return be(a)}catch{let[s,a]=await Promise.all([r?Promise.resolve(r):T(e,ut,"getBlock")({}),T(e,_a,"getGasPrice")({})]);if(typeof s.baseFeePerGas!="bigint")throw new so;let i=a-s.baseFeePerGas;return i<0n?0n:i}}async function hb(e,t){return Qu(e,t)}async function Qu(e,t){let{block:r,chain:n=e.chain,request:o,type:s="eip1559"}=t||{},a=await(async()=>typeof n?.fees?.baseFeeMultiplier=="function"?n.fees.baseFeeMultiplier({block:r,client:e,request:o}):n?.fees?.baseFeeMultiplier??1.2)();if(a<1)throw new Yu;let c=10**(a.toString().split(".")[1]?.length??0),m=f=>f*BigInt(Math.ceil(a*c))/BigInt(c),u=r||await T(e,ut,"getBlock")({});if(typeof n?.fees?.estimateFeesPerGas=="function"){let f=await n.fees.estimateFeesPerGas({block:r,client:e,multiply:m,request:o,type:s});if(f!==null)return f}if(s==="eip1559"){if(typeof u.baseFeePerGas!="bigint")throw new so;let f=typeof o?.maxPriorityFeePerGas=="bigint"?o.maxPriorityFeePerGas:await hd(e,{block:u,chain:n,request:o}),d=m(u.baseFeePerGas);return{maxFeePerGas:o?.maxFeePerGas??d+f,maxPriorityFeePerGas:f}}return{gasPrice:o?.gasPrice??m(await T(e,_a,"getGasPrice")({}))}}Ge();D();async function Ia(e,{address:t,blockTag:r="latest",blockNumber:n}){let o=await e.request({method:"eth_getTransactionCount",params:[t,typeof n=="bigint"?E(n):r]},{dedupe:!!n});return Ae(o)}xn();Ge();async function Tt(e){let t=await e.request({method:"eth_chainId"},{dedupe:!0});return Ae(t)}var Ji=["blobVersionedHashes","chainId","fees","gas","nonce","type"],yb=new Map;async function Vr(e,t){let{account:r=e.account,blobs:n,chain:o,gas:s,kzg:a,nonce:i,nonceManager:c,parameters:m=Ji,type:u}=t,p=r&&W(r),f={...t,...p?{from:p?.address}:{}},d;async function g(){return d||(d=await T(e,ut,"getBlock")({blockTag:"latest"}),d)}let h;async function y(){return h||(o?o.id:typeof t.chainId<"u"?t.chainId:(h=await T(e,Tt,"getChainId")({}),h))}if(m.includes("nonce")&&typeof i>"u"&&p)if(c){let b=await y();f.nonce=await c.consume({address:p.address,chainId:b,client:e})}else f.nonce=await T(e,Ia,"getTransactionCount")({address:p.address,blockTag:"pending"});if((m.includes("blobVersionedHashes")||m.includes("sidecars"))&&n&&a){let b=As({blobs:n,kzg:a});if(m.includes("blobVersionedHashes")){let x=Lm({commitments:b,to:"hex"});f.blobVersionedHashes=x}if(m.includes("sidecars")){let x=Ts({blobs:n,commitments:b,kzg:a}),v=zm({blobs:n,commitments:b,proofs:x,to:"hex"});f.sidecars=v}}if(m.includes("chainId")&&(f.chainId=await y()),(m.includes("fees")||m.includes("type"))&&typeof u>"u")try{f.type=qm(f)}catch{let b=yb.get(e.uid);typeof b>"u"&&(b=typeof(await g())?.baseFeePerGas=="bigint",yb.set(e.uid,b)),f.type=b?"eip1559":"legacy"}if(m.includes("fees"))if(f.type!=="legacy"&&f.type!=="eip2930"){if(typeof f.maxFeePerGas>"u"||typeof f.maxPriorityFeePerGas>"u"){let b=await g(),{maxFeePerGas:x,maxPriorityFeePerGas:v}=await Qu(e,{block:b,chain:o,request:f});if(typeof t.maxPriorityFeePerGas>"u"&&t.maxFeePerGas&&t.maxFeePerGas<v)throw new Xu({maxPriorityFeePerGas:v});f.maxPriorityFeePerGas=v,f.maxFeePerGas=x}}else{if(typeof t.maxFeePerGas<"u"||typeof t.maxPriorityFeePerGas<"u")throw new so;if(typeof t.gasPrice>"u"){let b=await g(),{gasPrice:x}=await Qu(e,{block:b,chain:o,request:f,type:"legacy"});f.gasPrice=x}}return m.includes("gas")&&typeof s>"u"&&(f.gas=await T(e,Pa,"estimateGas")({...f,account:p,prepare:p?.type==="local"?[]:["blobVersionedHashes"]})),mt(f),delete f.parameters,f}async function Pa(e,t){let{account:r=e.account,prepare:n=!0}=t,o=r?W(r):void 0,s=(()=>{if(Array.isArray(n))return n;if(o?.type!=="local")return["blobVersionedHashes"]})();try{let{accessList:a,authorizationList:i,blobs:c,blobVersionedHashes:m,blockNumber:u,blockTag:p,data:f,gas:d,gasPrice:g,maxFeePerBlobGas:h,maxFeePerGas:y,maxPriorityFeePerGas:b,nonce:x,value:v,stateOverride:S,...k}=n?await Vr(e,{...t,parameters:s}):t,I=(typeof u=="bigint"?E(u):void 0)||p,R=ka(S),N=await(async()=>{if(k.to)return k.to;if(i&&i.length>0)return await oo({authorization:i[0]}).catch(()=>{throw new w("`to` is required. Could not infer from `authorizationList`")})})();mt(t);let L=e.chain?.formatters?.transactionRequest?.format,j=(L||It)({...jr(k,{format:L}),account:o,accessList:a,authorizationList:i,blobs:c,blobVersionedHashes:m,data:f,gas:d,gasPrice:g,maxFeePerBlobGas:h,maxFeePerGas:y,maxPriorityFeePerGas:b,nonce:x,to:N,value:v},"estimateGas");return BigInt(await e.request({method:"eth_estimateGas",params:R?[j,I??e.experimental_blockTag??"latest",R]:I?[j,I]:[j]}))}catch(a){throw fb(a,{...t,account:o,chain:e.chain})}}async function bb(e,t){let{abi:r,address:n,args:o,functionName:s,dataSuffix:a,...i}=t,c=ke({abi:r,args:o,functionName:s});try{return await T(e,Pa,"estimateGas")({data:`${c}${a?a.replace("0x",""):""}`,to:n,...i})}catch(m){let u=i.account?W(i.account):void 0;throw Vt(m,{abi:r,address:n,args:o,docsPath:"/docs/contract/estimateContractGas",functionName:s,sender:u?.address})}}Zn();Me();Vo();Ye();nr();qi();Me();Vf();Xt();qi();Gi();dn();var xb="/docs/contract/decodeEventLog";function Aa(e){let{abi:t,data:r,strict:n,topics:o}=e,s=n??!0,[a,...i]=o;if(!a)throw new nu({docsPath:xb});let c=t.find(h=>h.type==="event"&&a===Jn(We(h)));if(!(c&&"name"in c)||c.type!=="event")throw new Ks(a,{docsPath:xb});let{name:m,inputs:u}=c,p=u?.some(h=>!("name"in h&&h.name)),f=p?[]:{},d=u.map((h,y)=>[h,y]).filter(([h])=>"indexed"in h&&h.indexed);for(let h=0;h<d.length;h++){let[y,b]=d[h],x=i[h];if(!x)throw new Lr({abiItem:c,param:y});f[p?b:y.name||b]=SE({param:y,value:x})}let g=u.filter(h=>!("indexed"in h&&h.indexed));if(g.length>0){if(r&&r!=="0x")try{let h=yn(g,r);if(h)if(p)for(let y=0;y<u.length;y++)f[y]=f[y]??h.shift();else for(let y=0;y<g.length;y++)f[g[y].name]=h[y]}catch(h){if(s)throw h instanceof Gs||h instanceof ws?new Er({abiItem:c,data:r,params:g,size:ne(r)}):h}else if(s)throw new Er({abiItem:c,data:"0x",params:g,size:0})}return{eventName:m,args:Object.values(f).length>0?f:void 0}}function SE({param:e,value:t}){return e.type==="string"||e.type==="bytes"||e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/)?t:(yn([e],t)||[])[0]}function Ir(e){let{abi:t,args:r,logs:n,strict:o=!0}=e,s=(()=>{if(e.eventName)return Array.isArray(e.eventName)?e.eventName:[e.eventName]})();return n.map(a=>{try{let i=t.find(m=>m.type==="event"&&a.topics[0]===Jn(m));if(!i)return null;let c=Aa({...a,abi:[i],strict:o});return s&&!s.includes(c.eventName)||!kE({args:c.args,inputs:i.inputs,matchArgs:r})?null:{...c,...a}}catch(i){let c,m;if(i instanceof Ks)return null;if(i instanceof Er||i instanceof Lr){if(o)return null;c=i.abiItem.name,m=i.abiItem.inputs?.some(u=>!("name"in u&&u.name))}return{...a,args:m?[]:{},eventName:c}}}).filter(Boolean)}function kE(e){let{args:t,inputs:r,matchArgs:n}=e;if(!n)return!0;if(!t)return!1;function o(s,a,i){try{return s.type==="address"?mr(a,i):s.type==="string"||s.type==="bytes"?ge(Qt(a))===i:a===i}catch{return!1}}return Array.isArray(t)&&Array.isArray(n)?n.every((s,a)=>{if(s==null)return!0;let i=r[a];return i?(Array.isArray(s)?s:[s]).some(m=>o(i,m,t[a])):!1}):typeof t=="object"&&!Array.isArray(t)&&typeof n=="object"&&!Array.isArray(n)?Object.entries(n).every(([s,a])=>{if(a==null)return!0;let i=r.find(m=>m.name===s);return i?(Array.isArray(a)?a:[a]).some(m=>o(i,m,t[s])):!1}):!1}D();async function Ta(e,{address:t,blockHash:r,fromBlock:n,toBlock:o,event:s,events:a,args:i,strict:c}={}){let m=c??!1,u=a??(s?[s]:void 0),p=[];u&&(p=[u.flatMap(h=>Hr({abi:[h],eventName:h.name,args:a?void 0:i}))],s&&(p=p[0]));let f;r?f=await e.request({method:"eth_getLogs",params:[{address:t,topics:p,blockHash:r}]}):f=await e.request({method:"eth_getLogs",params:[{address:t,topics:p,fromBlock:typeof n=="bigint"?E(n):n,toBlock:typeof o=="bigint"?E(o):o}]});let d=f.map(g=>at(g));return u?Ir({abi:u,args:i,logs:d,strict:m}):d}async function ep(e,t){let{abi:r,address:n,args:o,blockHash:s,eventName:a,fromBlock:i,toBlock:c,strict:m}=t,u=a?At({abi:r,name:a}):void 0,p=u?void 0:r.filter(f=>f.type==="event");return T(e,Ta,"getLogs")({address:n,args:o,blockHash:s,event:u,events:p,fromBlock:i,toBlock:c,strict:m})}ao();Ht();Ua();async function je(e,t){let{abi:r,address:n,args:o,functionName:s,...a}=t,i=ke({abi:r,args:o,functionName:s});try{let{data:c}=await T(e,Kr,"call")({...a,data:i,to:n});return $t({abi:r,args:o,functionName:s,data:c||"0x"})}catch(c){throw Vt(c,{abi:r,address:n,args:o,docsPath:"/docs/contract/readContract",functionName:s})}}Re();ao();Ht();Ua();async function ax(e,t){let{abi:r,address:n,args:o,dataSuffix:s,functionName:a,...i}=t,c=i.account?W(i.account):e.account,m=ke({abi:r,args:o,functionName:a});try{let{data:u}=await T(e,Kr,"call")({batch:!1,data:`${m}${s?s.replace("0x",""):""}`,to:n,...i,account:c}),p=$t({abi:r,args:o,functionName:a,data:u||"0x"}),f=r.filter(d=>"name"in d&&d.name===t.functionName);return{result:p,request:{abi:f,address:n,args:o,dataSuffix:s,functionName:a,...i,account:c}}}catch(u){throw Vt(u,{abi:r,address:n,args:o,docsPath:"/docs/contract/simulateContract",functionName:a,sender:c?.address})}}Me();Ca();var Dd=new Map,ix=new Map,VE=0;function pt(e,t,r){let n=++VE,o=()=>Dd.get(e)||[],s=()=>{let u=o();Dd.set(e,u.filter(p=>p.id!==n))},a=()=>{let u=o();if(!u.some(f=>f.id===n))return;let p=ix.get(e);if(u.length===1&&p){let f=p();f instanceof Promise&&f.catch(()=>{})}s()},i=o();if(Dd.set(e,[...i,{id:n,fns:t}]),i&&i.length>0)return a;let c={};for(let u in t)c[u]=((...p)=>{let f=o();if(f.length!==0)for(let d of f)d.fns[u]?.(...p)});let m=r(c);return typeof m=="function"&&ix.set(e,m),a}async function nc(e){return new Promise(t=>setTimeout(t,e))}function pr(e,{emitOnBegin:t,initialWaitTime:r,interval:n}){let o=!0,s=()=>o=!1;return(async()=>{let i;t&&(i=await e({unpoll:s}));let c=await r?.(i)??n;await nc(c);let m=async()=>{o&&(await e({unpoll:s}),await nc(n),m())};m()})(),s}it();var GE=new Map,qE=new Map;function cx(e){let t=(o,s)=>({clear:()=>s.delete(o),get:()=>s.get(o),set:a=>s.set(o,a)}),r=t(e,GE),n=t(e,qE);return{clear:()=>{r.clear(),n.clear()},promise:r,response:n}}async function mx(e,{cacheKey:t,cacheTime:r=Number.POSITIVE_INFINITY}){let n=cx(t),o=n.response.get();if(o&&r>0&&Date.now()-o.created.getTime()<r)return o.data;let s=n.promise.get();s||(s=e(),n.promise.set(s));try{let a=await s;return n.response.set({created:new Date,data:a}),a}finally{n.promise.clear()}}var KE=e=>`blockNumber.${e}`;async function Wr(e,{cacheTime:t=e.cacheTime}={}){let r=await mx(()=>e.request({method:"eth_blockNumber"}),{cacheKey:KE(e.uid),cacheTime:t});return BigInt(r)}async function uo(e,{filter:t}){let r="strict"in t&&t.strict,n=await t.request({method:"eth_getFilterChanges",params:[t.id]});if(typeof n[0]=="string")return n;let o=n.map(s=>at(s));return!("abi"in t)||!t.abi?o:Ir({abi:t.abi,logs:o,strict:r})}async function po(e,{filter:t}){return t.request({method:"eth_uninstallFilter",params:[t.id]})}function ux(e,t){let{abi:r,address:n,args:o,batch:s=!0,eventName:a,fromBlock:i,onError:c,onLogs:m,poll:u,pollingInterval:p=e.pollingInterval,strict:f}=t;return(typeof u<"u"?u:typeof i=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")))?(()=>{let y=f??!1,b=ee(["watchContractEvent",n,o,s,e.uid,a,p,y,i]);return pt(b,{onLogs:m,onError:c},x=>{let v;i!==void 0&&(v=i-1n);let S,k=!1,_=pr(async()=>{if(!k){try{S=await T(e,Gu,"createContractEventFilter")({abi:r,address:n,args:o,eventName:a,strict:y,fromBlock:i})}catch{}k=!0;return}try{let I;if(S)I=await T(e,uo,"getFilterChanges")({filter:S});else{let R=await T(e,Wr,"getBlockNumber")({});v&&v<R?I=await T(e,ep,"getContractEvents")({abi:r,address:n,args:o,eventName:a,fromBlock:v+1n,toBlock:R,strict:y}):I=[],v=R}if(I.length===0)return;if(s)x.onLogs(I);else for(let R of I)x.onLogs([R])}catch(I){S&&I instanceof Or&&(k=!1),x.onError?.(I)}},{emitOnBegin:!0,interval:p});return async()=>{S&&await T(e,po,"uninstallFilter")({filter:S}),_()}})})():(()=>{let y=f??!1,b=ee(["watchContractEvent",n,o,s,e.uid,a,p,y]),x=!0,v=()=>x=!1;return pt(b,{onLogs:m,onError:c},S=>((async()=>{try{let k=(()=>{if(e.transport.type==="fallback"){let R=e.transport.transports.find(N=>N.config.type==="webSocket"||N.config.type==="ipc");return R?R.value:e.transport}return e.transport})(),_=a?Hr({abi:r,eventName:a,args:o}):[],{unsubscribe:I}=await k.subscribe({params:["logs",{address:n,topics:_}],onData(R){if(!x)return;let N=R.result;try{let{eventName:L,args:O}=Aa({abi:r,data:N.data,topics:N.topics,strict:f}),j=at(N,{args:O,eventName:L});S.onLogs([j])}catch(L){let O,j;if(L instanceof Er||L instanceof Lr){if(f)return;O=L.abiItem.name,j=L.abiItem.inputs?.some(pe=>!("name"in pe&&pe.name))}let G=at(N,{args:j?[]:{},eventName:O});S.onLogs([G])}},onError(R){S.onError?.(R)}});v=I,x||v()}catch(k){c?.(k)}})(),()=>v()))})()}Re();Ht();Re();K();Gn();zt();Wi();function za(e,{docsPath:t,...r}){let n=(()=>{let o=ro(e,r);return o instanceof tr?e:o})();return new Im(n,{docsPath:t,...r})}Sa();jn();js();xn();async function Oa(e,{serializedTransaction:t}){return e.request({method:"eth_sendRawTransaction",params:[t]},{retryCount:0})}var Ud=new rr(128);async function lo(e,t){let{account:r=e.account,chain:n=e.chain,accessList:o,authorizationList:s,blobs:a,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:f,nonce:d,type:g,value:h,...y}=t;if(typeof r>"u")throw new Qe({docsPath:"/docs/actions/wallet/sendTransaction"});let b=r?W(r):null;try{mt(t);let x=await(async()=>{if(t.to)return t.to;if(t.to!==null&&s&&s.length>0)return await oo({authorization:s[0]}).catch(()=>{throw new w("`to` is required. Could not infer from `authorizationList`.")})})();if(b?.type==="json-rpc"||b===null){let v;n!==null&&(v=await T(e,Tt,"getChainId")({}),Vs({currentChainId:v,chain:n}));let S=e.chain?.formatters?.transactionRequest?.format,_=(S||It)({...jr(y,{format:S}),accessList:o,account:b,authorizationList:s,blobs:a,chainId:v,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:f,nonce:d,to:x,type:g,value:h},"sendTransaction"),I=Ud.get(e.uid),R=I?"wallet_sendTransaction":"eth_sendTransaction";try{return await e.request({method:R,params:[_]},{retryCount:0})}catch(N){if(I===!1)throw N;let L=N;if(L.name==="InvalidInputRpcError"||L.name==="InvalidParamsRpcError"||L.name==="MethodNotFoundRpcError"||L.name==="MethodNotSupportedRpcError")return await e.request({method:"wallet_sendTransaction",params:[_]},{retryCount:0}).then(O=>(Ud.set(e.uid,!0),O)).catch(O=>{let j=O;throw j.name==="MethodNotFoundRpcError"||j.name==="MethodNotSupportedRpcError"?(Ud.set(e.uid,!1),L):j});throw L}}if(b?.type==="local"){let v=await T(e,Vr,"prepareTransactionRequest")({account:b,accessList:o,authorizationList:s,blobs:a,chain:n,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:f,nonce:d,nonceManager:b.nonceManager,parameters:[...Ji,"sidecars"],type:g,value:h,...y,to:x}),S=n?.serializers?.transaction,k=await b.signTransaction(v,{serializer:S});return await T(e,Oa,"sendRawTransaction")({serializedTransaction:k})}throw b?.type==="smart"?new ar({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new ar({docsPath:"/docs/actions/wallet/sendTransaction",type:b?.type})}catch(x){throw x instanceof ar?x:za(x,{...t,account:b,chain:t.chain||void 0})}}async function Wo(e,t){return Wo.internal(e,lo,"sendTransaction",t)}(function(e){async function t(r,n,o,s){let{abi:a,account:i=r.account,address:c,args:m,dataSuffix:u,functionName:p,...f}=s;if(typeof i>"u")throw new Qe({docsPath:"/docs/contract/writeContract"});let d=i?W(i):null,g=ke({abi:a,args:m,functionName:p});try{return await T(r,n,o)({data:`${g}${u?u.replace("0x",""):""}`,to:c,account:d,...f})}catch(h){throw Vt(h,{abi:a,address:c,args:m,docsPath:"/docs/contract/writeContract",functionName:p,sender:d?.address})}}e.internal=t})(Wo||(Wo={}));K();K();var vp=class extends w{constructor(t){super(`Call bundle failed with status: ${t.statusCode}`,{name:"BundleFailedError"}),Object.defineProperty(this,"result",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.result=t}};gp();function Jo(e,{delay:t=100,retryCount:r=2,shouldRetry:n=()=>!0}={}){return new Promise((o,s)=>{let a=async({count:i=0}={})=>{let c=async({error:m})=>{let u=typeof t=="function"?t({count:i,error:m}):t;u&&await nc(u),a({count:i+1})};try{let m=await e();o(m)}catch(m){if(i<r&&await n({count:i,error:m}))return c({error:m});s(m)}};a()})}it();Kn();$o();Ge();Re();K();Ca();Ht();yt();Ge();D();var zd="0x5792579257925792579257925792579257925792579257925792579257925792",Od=E(0,{size:32});async function wp(e,t){let{account:r=e.account,capabilities:n,chain:o=e.chain,experimental_fallback:s,experimental_fallbackDelay:a=32,forceAtomic:i=!1,id:c,version:m="2.0.0"}=t,u=r?W(r):null,p=t.calls.map(f=>{let d=f,g=d.abi?ke({abi:d.abi,functionName:d.functionName,args:d.args}):d.data;return{data:d.dataSuffix&&g?Oe([g,d.dataSuffix]):g,to:d.to,value:d.value?E(d.value):void 0}});try{let f=await e.request({method:"wallet_sendCalls",params:[{atomicRequired:i,calls:p,capabilities:n,chainId:E(o.id),from:u?.address,id:c,version:m}]},{retryCount:0});return typeof f=="string"?{id:f}:f}catch(f){let d=f;if(s&&(d.name==="MethodNotFoundRpcError"||d.name==="MethodNotSupportedRpcError"||d.name==="UnknownRpcError"||d.details.toLowerCase().includes("does not exist / is not available")||d.details.toLowerCase().includes("missing or invalid. request()")||d.details.toLowerCase().includes("did not match any variant of untagged enum")||d.details.toLowerCase().includes("account upgraded to unsupported contract")||d.details.toLowerCase().includes("eip-7702 not supported")||d.details.toLowerCase().includes("unsupported wc_ method")||d.details.toLowerCase().includes("feature toggled misconfigured")||d.details.toLowerCase().includes("jsonrpcengine: response has no error or result for request"))){if(n&&Object.values(n).some(x=>!x.optional)){let x="non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.";throw new eo(new w(x,{details:x}))}if(i&&p.length>1){let b="`forceAtomic` is not supported on fallback to `eth_sendTransaction`.";throw new to(new w(b,{details:b}))}let g=[];for(let b of p){let x=lo(e,{account:u,chain:o,data:b.data,to:b.to,value:b.value?be(b.value):void 0});g.push(x),a>0&&await new Promise(v=>setTimeout(v,a))}let h=await Promise.allSettled(g);if(h.every(b=>b.status==="rejected"))throw h[0].reason;let y=h.map(b=>b.status==="fulfilled"?b.value:Od);return{id:Oe([...y,E(o.id,{size:32}),zd])}}throw za(f,{...t,account:u,chain:t.chain})}}async function Cp(e,t){async function r(u){if(u.endsWith(zd.slice(2))){let f=Ze(Vm(u,-64,-32)),d=Vm(u,0,-64).slice(2).match(/.{1,64}/g),g=await Promise.all(d.map(y=>Od.slice(2)!==y?e.request({method:"eth_getTransactionReceipt",params:[`0x${y}`]},{dedupe:!0}):void 0)),h=g.some(y=>y===null)?100:g.every(y=>y?.status==="0x1")?200:g.every(y=>y?.status==="0x0")?500:600;return{atomic:!1,chainId:Ae(f),receipts:g.filter(Boolean),status:h,version:"2.0.0"}}return e.request({method:"wallet_getCallsStatus",params:[u]})}let{atomic:n=!1,chainId:o,receipts:s,version:a="2.0.0",...i}=await r(t.id),[c,m]=(()=>{let u=i.status;return u>=100&&u<200?["pending",u]:u>=200&&u<300?["success",u]:u>=300&&u<700?["failure",u]:u==="CONFIRMED"?["success",200]:u==="PENDING"?["pending",100]:[void 0,u]})();return{...i,atomic:n,chainId:o?Ae(o):void 0,receipts:s?.map(u=>({...u,blockNumber:be(u.blockNumber),gasUsed:be(u.gasUsed),status:jf[u.status]}))??[],statusCode:m,status:c,version:a}}async function Sp(e,t){let{id:r,pollingInterval:n=e.pollingInterval,status:o=({statusCode:h})=>h===200||h>=300,retryCount:s=4,retryDelay:a=({count:h})=>~~(1<<h)*200,timeout:i=6e4,throwOnFailure:c=!1}=t,m=ee(["waitForCallsStatus",e.uid,r]),{promise:u,resolve:p,reject:f}=Da(),d,g=pt(m,{resolve:p,reject:f},h=>{let y=pr(async()=>{let b=x=>{clearTimeout(d),y(),x(),g()};try{let x=await Jo(async()=>{let v=await T(e,Cp,"getCallsStatus")({id:r});if(c&&v.status==="failure")throw new vp(v);return v},{retryCount:s,delay:a});if(!o(x))return;b(()=>h.resolve(x))}catch(x){b(()=>h.reject(x))}},{interval:n,emitOnBegin:!0});return y});return d=i?setTimeout(()=>{g(),clearTimeout(d),f(new jd({id:r}))},i):void 0,await u}var jd=class extends w{constructor({id:t}){super(`Timed out while waiting for call bundle with id "${t}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}};Re();var kp=256,Ep;function _p(e=11){if(!Ep||kp+e>256*2){Ep="",kp=0;for(let t=0;t<256;t++)Ep+=(256+Math.random()*256|0).toString(16).substring(1)}return Ep.substring(kp,kp+++e)}function Ip(e){let{batch:t,chain:r,ccipRead:n,key:o="base",name:s="Base Client",type:a="base"}=e,i=e.experimental_blockTag??(typeof r?.experimental_preconfirmationTime=="number"?"pending":void 0),c=r?.blockTime??12e3,m=Math.min(Math.max(Math.floor(c/2),500),4e3),u=e.pollingInterval??m,p=e.cacheTime??u,f=e.account?W(e.account):void 0,{config:d,request:g,value:h}=e.transport({chain:r,pollingInterval:u}),y={...d,...h},b={account:f,batch:t,cacheTime:p,ccipRead:n,chain:r,key:o,name:s,pollingInterval:u,request:g,transport:y,type:a,uid:_p(),...i?{experimental_blockTag:i}:{}};function x(v){return S=>{let k=S(v);for(let I in b)delete k[I];let _={...v,...k};return Object.assign(_,{extend:x(_)})}}return Object.assign(b,{extend:x(b)})}mo();ao();Ht();Bo();$o();D();K();Yn();function ja(e){if(!(e instanceof w))return!1;let t=e.walk(r=>r instanceof zo);return t instanceof zo?t.data?.errorName==="HttpError"||t.data?.errorName==="ResolverError"||t.data?.errorName==="ResolverNotContract"||t.data?.errorName==="ResolverNotFound"||t.data?.errorName==="ReverseAddressMismatch"||t.data?.errorName==="UnsupportedResolverProfile":!1}rc();yt();Ye();D();nr();Ut();function Pp(e){if(e.length!==66||e.indexOf("[")!==0||e.indexOf("]")!==65)return null;let t=`0x${e.slice(1,65)}`;return xe(t)?t:null}function oc(e){let t=new Uint8Array(32).fill(0);if(!e)return oe(t);let r=e.split(".");for(let n=r.length-1;n>=0;n-=1){let o=Pp(r[n]),s=o?Qt(o):ge(vr(r[n]),"bytes");t=ge(Oe([t,s]),"bytes")}return oe(t)}Ye();function px(e){return`[${e.slice(2)}]`}Ye();D();nr();function lx(e){let t=new Uint8Array(32).fill(0);return e?Pp(e)||ge(vr(e)):oe(t)}function Ha(e){let t=e.replace(/^\.|\.$/gm,"");if(t.length===0)return new Uint8Array(1);let r=new Uint8Array(vr(t).byteLength+2),n=0,o=t.split(".");for(let s=0;s<o.length;s++){let a=vr(o[s]);a.byteLength>255&&(a=vr(px(lx(o[s])))),r[n]=a.length,r.set(a,n+1),n+=a.length+1}return r.byteLength!==n+1?r.slice(0,n+1):r}async function fx(e,t){let{blockNumber:r,blockTag:n,coinType:o,name:s,gatewayUrls:a,strict:i}=t,{chain:c}=e,m=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return sr({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),u=c?.ensTlds;if(u&&!u.some(f=>s.endsWith(f)))return null;let p=o!=null?[oc(s),BigInt(o)]:[oc(s)];try{let f=ke({abi:Pd,functionName:"addr",args:p}),d={address:m,abi:lp,functionName:"resolveWithGateways",args:[ye(Ha(s)),f,a??[Cn]],blockNumber:r,blockTag:n},h=await T(e,je,"readContract")(d);if(h[0]==="0x")return null;let y=$t({abi:Pd,args:p,functionName:"addr",data:h[0]});return y==="0x"||Ze(y)==="0x00"?null:y}catch(f){if(i)throw f;if(ja(f))return null;throw f}}K();var Ap=class extends w{constructor({data:t}){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(t)}`],name:"EnsAvatarInvalidMetadataError"})}},fo=class extends w{constructor({reason:t}){super(`ENS NFT avatar URI is invalid. ${t}`,{name:"EnsAvatarInvalidNftUriError"})}},Va=class extends w{constructor({uri:t}){super(`Unable to resolve ENS avatar URI "${t}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}},Tp=class extends w{constructor({namespace:t}){super(`ENS NFT avatar namespace "${t}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}};var WE=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,JE=/^(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>\/.*)?$/,ZE=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,YE=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function XE(e){try{let t=await fetch(e,{method:"HEAD"});return t.status===200?t.headers.get("content-type")?.startsWith("image/"):!1}catch(t){return typeof t=="object"&&typeof t.response<"u"||!Object.hasOwn(globalThis,"Image")?!1:new Promise(r=>{let n=new Image;n.onload=()=>{r(!0)},n.onerror=()=>{r(!1)},n.src=e})}}function dx(e,t){return e?e.endsWith("/")?e.slice(0,-1):e:t}function Hd({uri:e,gatewayUrls:t}){let r=ZE.test(e);if(r)return{uri:e,isOnChain:!0,isEncoded:r};let n=dx(t?.ipfs,"https://ipfs.io"),o=dx(t?.arweave,"https://arweave.net"),s=e.match(WE),{protocol:a,subpath:i,target:c,subtarget:m=""}=s?.groups||{},u=a==="ipns:/"||i==="ipns/",p=a==="ipfs:/"||i==="ipfs/"||JE.test(e);if(e.startsWith("http")&&!u&&!p){let d=e;return t?.arweave&&(d=e.replace(/https:\/\/arweave.net/g,t?.arweave)),{uri:d,isOnChain:!1,isEncoded:!1}}if((u||p)&&c)return{uri:`${n}/${u?"ipns":"ipfs"}/${c}${m}`,isOnChain:!1,isEncoded:!1};if(a==="ar:/"&&c)return{uri:`${o}/${c}${m||""}`,isOnChain:!1,isEncoded:!1};let f=e.replace(YE,"");if(f.startsWith("<svg")&&(f=`data:image/svg+xml;base64,${btoa(f)}`),f.startsWith("data:")||f.startsWith("{"))return{uri:f,isOnChain:!0,isEncoded:!1};throw new Va({uri:e})}function Vd(e){if(typeof e!="object"||!("image"in e)&&!("image_url"in e)&&!("image_data"in e))throw new Ap({data:e});return e.image||e.image_url||e.image_data}async function gx({gatewayUrls:e,uri:t}){try{let r=await fetch(t).then(o=>o.json());return await $p({gatewayUrls:e,uri:Vd(r)})}catch{throw new Va({uri:t})}}async function $p({gatewayUrls:e,uri:t}){let{uri:r,isOnChain:n}=Hd({uri:t,gatewayUrls:e});if(n||await XE(r))return r;throw new Va({uri:t})}function hx(e){let t=e;t.startsWith("did:nft:")&&(t=t.replace("did:nft:","").replace(/_/g,"/"));let[r,n,o]=t.split("/"),[s,a]=r.split(":"),[i,c]=n.split(":");if(!s||s.toLowerCase()!=="eip155")throw new fo({reason:"Only EIP-155 supported"});if(!a)throw new fo({reason:"Chain ID not found"});if(!c)throw new fo({reason:"Contract address not found"});if(!o)throw new fo({reason:"Token ID not found"});if(!i)throw new fo({reason:"ERC namespace not found"});return{chainID:Number.parseInt(a,10),namespace:i.toLowerCase(),contractAddress:c,tokenID:o}}async function yx(e,{nft:t}){if(t.namespace==="erc721")return je(e,{address:t.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(t.tokenID)]});if(t.namespace==="erc1155")return je(e,{address:t.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(t.tokenID)]});throw new Tp({namespace:t.namespace})}async function bx(e,{gatewayUrls:t,record:r}){return/eip155:/i.test(r)?QE(e,{gatewayUrls:t,record:r}):$p({uri:r,gatewayUrls:t})}async function QE(e,{gatewayUrls:t,record:r}){let n=hx(r),o=await yx(e,{nft:n}),{uri:s,isOnChain:a,isEncoded:i}=Hd({uri:o,gatewayUrls:t});if(a&&(s.includes("data:application/json;base64,")||s.startsWith("{"))){let m=i?atob(s.replace("data:application/json;base64,","")):s,u=JSON.parse(m);return $p({uri:Vd(u),gatewayUrls:t})}let c=n.tokenID;return n.namespace==="erc1155"&&(c=c.replace("0x","").padStart(64,"0")),gx({gatewayUrls:t,uri:s.replace(/(?:0x)?{id}/,c)})}mo();ao();Ht();Bo();D();rc();async function Rp(e,t){let{blockNumber:r,blockTag:n,key:o,name:s,gatewayUrls:a,strict:i}=t,{chain:c}=e,m=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return sr({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),u=c?.ensTlds;if(u&&!u.some(p=>s.endsWith(p)))return null;try{let p={address:m,abi:lp,args:[ye(Ha(s)),ke({abi:Id,functionName:"text",args:[oc(s),o]}),a??[Cn]],functionName:"resolveWithGateways",blockNumber:r,blockTag:n},d=await T(e,je,"readContract")(p);if(d[0]==="0x")return null;let g=$t({abi:Id,functionName:"text",data:d[0]});return g===""?null:g}catch(p){if(i)throw p;if(ja(p))return null;throw p}}async function xx(e,{blockNumber:t,blockTag:r,assetGatewayUrls:n,name:o,gatewayUrls:s,strict:a,universalResolverAddress:i}){let c=await T(e,Rp,"getEnsText")({blockNumber:t,blockTag:r,key:"avatar",name:o,universalResolverAddress:i,gatewayUrls:s,strict:a});if(!c)return null;try{return await bx(e,{record:c,gatewayUrls:n})}catch{return null}}mo();Bo();rc();async function vx(e,t){let{address:r,blockNumber:n,blockTag:o,coinType:s=60n,gatewayUrls:a,strict:i}=t,{chain:c}=e,m=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!c)throw new Error("client chain not configured. universalResolverAddress is required.");return sr({blockNumber:n,chain:c,contract:"ensUniversalResolver"})})();try{let u={address:m,abi:Vb,args:[r,s,a??[Cn]],functionName:"reverseWithGateways",blockNumber:n,blockTag:o},p=T(e,je,"readContract"),[f]=await p(u);return f||null}catch(u){if(i)throw u;if(ja(u))return null;throw u}}Bo();D();async function wx(e,t){let{blockNumber:r,blockTag:n,name:o}=t,{chain:s}=e,a=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!s)throw new Error("client chain not configured. universalResolverAddress is required.");return sr({blockNumber:r,chain:s,contract:"ensUniversalResolver"})})(),i=s?.ensTlds;if(i&&!i.some(m=>o.endsWith(m)))throw new Error(`${o} is not a valid ENS TLD (${i?.join(", ")}) for chain "${s.name}" (id: ${s.id}).`);let[c]=await T(e,je,"readContract")({address:a,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[ye(Ha(o))],blockNumber:r,blockTag:n});return c}Ua();Re();D();gd();Sa();jn();xn();async function Mp(e,t){let{account:r=e.account,blockNumber:n,blockTag:o="latest",blobs:s,data:a,gas:i,gasPrice:c,maxFeePerBlobGas:m,maxFeePerGas:u,maxPriorityFeePerGas:p,to:f,value:d,...g}=t,h=r?W(r):void 0;try{mt(t);let b=(typeof n=="bigint"?E(n):void 0)||o,x=e.chain?.formatters?.transactionRequest?.format,S=(x||It)({...jr(g,{format:x}),account:h,blobs:s,data:a,gas:i,gasPrice:c,maxFeePerBlobGas:m,maxFeePerGas:u,maxPriorityFeePerGas:p,to:f,value:d},"createAccessList"),k=await e.request({method:"eth_createAccessList",params:[S,b]});return{accessList:k.accessList,gasUsed:BigInt(k.gasUsed)}}catch(y){throw ju(y,{...t,account:h,chain:e.chain})}}async function Cx(e){let t=no(e,{method:"eth_newBlockFilter"}),r=await e.request({method:"eth_newBlockFilter"});return{id:r,request:t(r),type:"block"}}D();async function Fp(e,{address:t,args:r,event:n,events:o,fromBlock:s,strict:a,toBlock:i}={}){let c=o??(n?[n]:void 0),m=no(e,{method:"eth_newFilter"}),u=[];c&&(u=[c.flatMap(d=>Hr({abi:[d],eventName:d.name,args:r}))],n&&(u=u[0]));let p=await e.request({method:"eth_newFilter",params:[{address:t,fromBlock:typeof s=="bigint"?E(s):s,toBlock:typeof i=="bigint"?E(i):i,...u.length?{topics:u}:{}}]});return{abi:c,args:r,eventName:n?n.name:void 0,fromBlock:s,id:p,request:m(p),strict:!!a,toBlock:i,type:"event"}}async function Np(e){let t=no(e,{method:"eth_newPendingTransactionFilter"}),r=await e.request({method:"eth_newPendingTransactionFilter"});return{id:r,request:t(r),type:"transaction"}}D();async function Sx(e,{address:t,blockNumber:r,blockTag:n=e.experimental_blockTag??"latest"}){let o=typeof r=="bigint"?E(r):void 0,s=await e.request({method:"eth_getBalance",params:[t,o||n]});return BigInt(s)}async function kx(e){let t=await e.request({method:"eth_blobBaseFee"});return BigInt(t)}Ge();D();async function Ex(e,{blockHash:t,blockNumber:r,blockTag:n="latest"}={}){let o=r!==void 0?E(r):void 0,s;return t?s=await e.request({method:"eth_getBlockTransactionCountByHash",params:[t]},{dedupe:!0}):s=await e.request({method:"eth_getBlockTransactionCountByNumber",params:[o||n]},{dedupe:!!o}),Ae(s)}D();async function sc(e,{address:t,blockNumber:r,blockTag:n="latest"}){let o=r!==void 0?E(r):void 0,s=await e.request({method:"eth_getCode",params:[t,o||n]},{dedupe:!!o});if(s!=="0x")return s}K();var Lp=class extends w{constructor({address:t}){super(`No EIP-712 domain found on contract "${t}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${t}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}};async function _x(e,t){let{address:r,factory:n,factoryData:o}=t;try{let[s,a,i,c,m,u,p]=await T(e,je,"readContract")({abi:e_,address:r,functionName:"eip712Domain",factory:n,factoryData:o});return{domain:{name:a,version:i,chainId:Number(c),verifyingContract:m,salt:u},extensions:p,fields:s}}catch(s){let a=s;throw a.name==="ContractFunctionExecutionError"&&a.cause.name==="ContractFunctionZeroDataError"?new Lp({address:r}):a}}var e_=[{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"}];D();function Ix(e){return{baseFeePerGas:e.baseFeePerGas.map(t=>BigInt(t)),gasUsedRatio:e.gasUsedRatio,oldestBlock:BigInt(e.oldestBlock),reward:e.reward?.map(t=>t.map(r=>BigInt(r)))}}async function Px(e,{blockCount:t,blockNumber:r,blockTag:n="latest",rewardPercentiles:o}){let s=typeof r=="bigint"?E(r):void 0,a=await e.request({method:"eth_feeHistory",params:[E(t),s||n,o]},{dedupe:!!s});return Ix(a)}async function Ax(e,{filter:t}){let r=t.strict??!1,o=(await t.request({method:"eth_getFilterLogs",params:[t.id]})).map(s=>at(s));return t.abi?Ir({abi:t.abi,logs:o,strict:r}):o}D();qn();Vo();async function Tx({address:e,authorization:t,signature:r}){return mr(Hs(e),await oo({authorization:t,signature:r}))}K();Oo();Ca();D();js();var Bp=new rr(8192);function $x(e,{enabled:t=!0,id:r}){if(!t||!r)return e();if(Bp.get(r))return Bp.get(r);let n=e().finally(()=>Bp.delete(r));return Bp.set(r,n),n}it();function Rx(e,t={}){return async(r,n={})=>{let{dedupe:o=!1,methods:s,retryDelay:a=150,retryCount:i=3,uid:c}={...t,...n},{method:m}=r;if(s?.exclude?.includes(m))throw new Qn(new Error("method not supported"),{method:m});if(s?.include&&!s.include.includes(m))throw new Qn(new Error("method not supported"),{method:m});let u=o?xr(`${c}.${ee(r)}`):void 0;return $x(()=>Jo(async()=>{try{return await e(r)}catch(p){let f=p;switch(f.code){case oa.code:throw new oa(f);case sa.code:throw new sa(f);case aa.code:throw new aa(f,{method:r.method});case ia.code:throw new ia(f);case bn.code:throw new bn(f);case Or.code:throw new Or(f);case ca.code:throw new ca(f);case ma.code:throw new ma(f);case ua.code:throw new ua(f);case Qn.code:throw new Qn(f,{method:r.method});case jo.code:throw new jo(f);case pa.code:throw new pa(f);case Ho.code:throw new Ho(f);case la.code:throw new la(f);case fa.code:throw new fa(f);case da.code:throw new da(f);case ga.code:throw new ga(f);case ha.code:throw new ha(f);case eo.code:throw new eo(f);case ya.code:throw new ya(f);case ba.code:throw new ba(f);case xa.code:throw new xa(f);case va.code:throw new va(f);case wa.code:throw new wa(f);case to.code:throw new to(f);case 5e3:throw new Ho(f);default:throw p instanceof w?p:new Ou(f)}}},{delay:({count:p,error:f})=>{if(f&&f instanceof cr){let d=f?.headers?.get("Retry-After");if(d?.match(/\d/))return Number.parseInt(d,10)*1e3}return~~(1<<p)*a},retryCount:i,shouldRetry:({error:p})=>t_(p)}),{enabled:o,id:u})}}function t_(e){return"code"in e&&typeof e.code=="number"?e.code===-1||e.code===jo.code||e.code===bn.code:e instanceof cr&&e.status?e.status===403||e.status===408||e.status===413||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504:!0}Ge();D();Oo();function Mx(e,{errorInstance:t=new Error("timed out"),timeout:r,signal:n}){return new Promise((o,s)=>{(async()=>{let a;try{let i=new AbortController;r>0&&(a=setTimeout(()=>{n?i.abort():s(t)},r)),o(await e({signal:i?.signal||null}))}catch(i){i?.name==="AbortError"&&s(t),s(i)}finally{clearTimeout(a)}})()})}it();function r_(){return{current:0,take(){return this.current++},reset(){this.current=0}}}var Gd=r_();function Fx(e,t={}){return{async request(r){let{body:n,fetchFn:o=t.fetchFn??fetch,onRequest:s=t.onRequest,onResponse:a=t.onResponse,timeout:i=t.timeout??1e4}=r,c={...t.fetchOptions??{},...r.fetchOptions??{}},{headers:m,method:u,signal:p}=c;try{let f=await Mx(async({signal:g})=>{let h={...c,body:Array.isArray(n)?ee(n.map(v=>({jsonrpc:"2.0",id:v.id??Gd.take(),...v}))):ee({jsonrpc:"2.0",id:n.id??Gd.take(),...n}),headers:{"Content-Type":"application/json",...m},method:u||"POST",signal:p||(i>0?g:null)},y=new Request(e,h),b=await s?.(y,h)??{...h,url:e};return await o(b.url??e,b)},{errorInstance:new Ki({body:n,url:e}),timeout:i,signal:!0});a&&await a(f);let d;if(f.headers.get("Content-Type")?.startsWith("application/json"))d=await f.json();else{d=await f.text();try{d=JSON.parse(d||"{}")}catch(g){if(f.ok)throw g;d={error:d}}}if(!f.ok)throw new cr({body:n,details:ee(d.error)||f.statusText,headers:f.headers,status:f.status,url:e});return d}catch(f){throw f instanceof cr||f instanceof Ki?f:new cr({body:n,cause:f,url:e})}}}}nr();var Nx=`Ethereum Signed Message:
55
+ `;yt();Xt();D();function Lx(e){let t=typeof e=="string"?xr(e):typeof e.raw=="string"?e.raw:oe(e.raw),r=xr(`${Nx}${ne(t)}`);return Oe([r,t])}function Ga(e,t){return ge(Lx(e),t)}hn();yt();D();nr();Me();Sr();it();K();var Dp=class extends w{constructor({domain:t}){super(`Invalid domain "${ee(t)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}},Up=class extends w{constructor({primaryType:t,types:r}){super(`Invalid primary type \`${t}\` must be one of \`${JSON.stringify(Object.keys(r))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}},zp=class extends w{constructor({type:t}){super(`Struct type "${t}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}};Ot();Xt();D();id();it();function Bx(e){let{domain:t,message:r,primaryType:n,types:o}=e,s=(c,m)=>{let u={...m};for(let p of c){let{name:f,type:d}=p;d==="address"&&(u[f]=u[f].toLowerCase())}return u},a=o.EIP712Domain?t?s(o.EIP712Domain,t):{}:{},i=(()=>{if(n!=="EIP712Domain")return s(o[n],r)})();return ee({domain:a,message:i,primaryType:n,types:o})}function Op(e){let{domain:t,message:r,primaryType:n,types:o}=e,s=(a,i)=>{for(let c of a){let{name:m,type:u}=c,p=i[m],f=u.match(Mu);if(f&&(typeof p=="number"||typeof p=="bigint")){let[h,y,b]=f;E(p,{signed:y==="int",size:Number.parseInt(b,10)/8})}if(u==="address"&&typeof p=="string"&&!ie(p))throw new de({address:p});let d=u.match(Qy);if(d){let[h,y]=d;if(y&&ne(p)!==Number.parseInt(y,10))throw new au({expectedSize:Number.parseInt(y,10),givenSize:ne(p)})}let g=o[u];g&&(n_(u),s(g,p))}};if(o.EIP712Domain&&t){if(typeof t!="object")throw new Dp({domain:t});s(o.EIP712Domain,t)}if(n!=="EIP712Domain")if(o[n])s(o[n],r);else throw new Up({primaryType:n,types:o})}function jp({domain:e}){return[typeof e?.name=="string"&&{name:"name",type:"string"},e?.version&&{name:"version",type:"string"},(typeof e?.chainId=="number"||typeof e?.chainId=="bigint")&&{name:"chainId",type:"uint256"},e?.verifyingContract&&{name:"verifyingContract",type:"address"},e?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function n_(e){if(e==="address"||e==="bool"||e==="string"||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new zp({type:e})}function Hp(e){let{domain:t={},message:r,primaryType:n}=e,o={EIP712Domain:jp({domain:t}),...e.types};Op({domain:t,message:r,primaryType:n,types:o});let s=["0x1901"];return t&&s.push(o_({domain:t,types:o})),n!=="EIP712Domain"&&s.push(Dx({data:r,primaryType:n,types:o})),ge(Oe(s))}function o_({domain:e,types:t}){return Dx({data:e,primaryType:"EIP712Domain",types:t})}function Dx({data:e,primaryType:t,types:r}){let n=Ux({data:e,primaryType:t,types:r});return ge(n)}function Ux({data:e,primaryType:t,types:r}){let n=[{type:"bytes32"}],o=[s_({primaryType:t,types:r})];for(let s of r[t]){let[a,i]=Ox({types:r,name:s.name,type:s.type,value:e[s.name]});n.push(a),o.push(i)}return bt(n,o)}function s_({primaryType:e,types:t}){let r=ye(a_({primaryType:e,types:t}));return ge(r)}function a_({primaryType:e,types:t}){let r="",n=zx({primaryType:e,types:t});n.delete(e);let o=[e,...Array.from(n).sort()];for(let s of o)r+=`${s}(${t[s].map(({name:a,type:i})=>`${i} ${a}`).join(",")})`;return r}function zx({primaryType:e,types:t},r=new Set){let o=e.match(/^\w*/u)?.[0];if(r.has(o)||t[o]===void 0)return r;r.add(o);for(let s of t[o])zx({primaryType:s.type,types:t},r);return r}function Ox({types:e,name:t,type:r,value:n}){if(e[r]!==void 0)return[{type:"bytes32"},ge(Ux({data:n,primaryType:r,types:e}))];if(r==="bytes")return n=`0x${(n.length%2?"0":"")+n.slice(2)}`,[{type:"bytes32"},ge(n)];if(r==="string")return[{type:"bytes32"},ge(ye(n))];if(r.lastIndexOf("]")===r.length-1){let o=r.slice(0,r.lastIndexOf("[")),s=n.map(a=>Ox({name:t,type:o,types:e,value:a}));return[{type:"bytes32"},ge(bt(s.map(([a])=>a),s.map(([,a])=>a)))]}return[{type:r},n]}var lc={};Rf(lc,{InvalidWrappedSignatureError:()=>ol,assert:()=>sl,from:()=>j_,magicBytes:()=>y0,suffixParameters:()=>b0,unwrap:()=>c1,validate:()=>V_,wrap:()=>H_});Hi();io();var Vp=class extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){let r=super.get(t);return super.has(t)&&r!==void 0&&(this.delete(t),super.set(t,r)),r}set(t,r){if(super.set(t,r),this.maxSize&&this.size>this.maxSize){let n=this.keys().next().value;n&&this.delete(n)}return this}};var i_={checksum:new Vp(8192)},Gp=i_.checksum;Rt();Jf();io();et();function Zo(e,t={}){let{as:r=typeof e=="string"?"Hex":"Bytes"}=t,n=Hm(Mb(e));return r==="Bytes"?n:Ue(n)}io();Rt();et();Xi();function jx(e,t={}){let{compressed:r}=t,{prefix:n,x:o,y:s}=e;if(r===!1||typeof o=="bigint"&&typeof s=="bigint"){if(n!==4)throw new qp({prefix:n,cause:new Jd});return}if(r===!0||typeof o=="bigint"&&typeof s>"u"){if(n!==3&&n!==2)throw new qp({prefix:n,cause:new Wd});return}throw new Kd({publicKey:e})}function Hx(e){let t=(()=>{if(ec(e))return Vx(e);if(Ub(e))return m_(e);let{prefix:r,x:n,y:o}=e;return typeof n=="bigint"&&typeof o=="bigint"?{prefix:r??4,x:n,y:o}:{prefix:r,x:n}})();return jx(t),t}function m_(e){return Vx(Ue(e))}function Vx(e){if(e.length!==132&&e.length!==130&&e.length!==68)throw new Zd({publicKey:e});if(e.length===130){let n=BigInt(Pe(e,0,32)),o=BigInt(Pe(e,32,64));return{prefix:4,x:n,y:o}}if(e.length===132){let n=Number(Pe(e,0,1)),o=BigInt(Pe(e,1,33)),s=BigInt(Pe(e,33,65));return{prefix:n,x:o,y:s}}let t=Number(Pe(e,0,1)),r=BigInt(Pe(e,1,33));return{prefix:t,x:r}}function Yd(e,t={}){jx(e);let{prefix:r,x:n,y:o}=e,{includePrefix:s=!0}=t;return Te(s?me(r,{size:1}):"0x",me(n,{size:32}),typeof o=="bigint"?me(o,{size:32}):"0x")}var Kd=class extends B{constructor({publicKey:t}){super(`Value \`${co(t)}\` 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"})}},qp=class extends B{constructor({prefix:t,cause:r}){super(`Prefix "${t}" is invalid.`,{cause:r}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidPrefixError"})}},Wd=class extends B{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"})}},Jd=class extends B{constructor(){super("Prefix must be 4 for uncompressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidUncompressedPrefixError"})}},Zd=class extends B{constructor({publicKey:t}){super(`Value \`${t}\` is an invalid public key size.`,{metaMessages:["Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).",`Received ${Ie(Na(t))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"})}};var u_=/^0x[a-fA-F0-9]{40}$/;function Yo(e,t={}){let{strict:r=!0}=t;if(!u_.test(e))throw new Kp({address:e,cause:new Xd});if(r){if(e.toLowerCase()===e)return;if(Wp(e)!==e)throw new Kp({address:e,cause:new Qd})}}function Wp(e){if(Gp.has(e))return Gp.get(e);Yo(e,{strict:!1});let t=e.substring(2).toLowerCase(),r=Zo(Fb(t),{as:"Bytes"}),n=t.split("");for(let s=0;s<40;s+=2)r[s>>1]>>4>=8&&n[s]&&(n[s]=n[s].toUpperCase()),(r[s>>1]&15)>=8&&n[s+1]&&(n[s+1]=n[s+1].toUpperCase());let o=`0x${n.join("")}`;return Gp.set(e,o),o}function p_(e,t={}){let{checksum:r=!1}=t;return Yo(e),r?Wp(e):e}function qx(e,t={}){let r=Zo(`0x${Yd(e).slice(4)}`).substring(26);return p_(`0x${r}`,t)}function Jp(e,t={}){let{strict:r=!0}=t??{};try{return Yo(e,{strict:r}),!0}catch{return!1}}var Kp=class extends B{constructor({address:t,cause:r}){super(`Address "${t}" is invalid.`,{cause:r}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}},Xd=class extends B{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"})}},Qd=class extends B{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}};io();Rt();et();io();Rt();et();var Kx=/^(.*)\[([0-9]*)\]$/,Wx=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Yp=/^(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)?$/,YJ=2n**(8n-1n)-1n,XJ=2n**(16n-1n)-1n,QJ=2n**(24n-1n)-1n,eZ=2n**(32n-1n)-1n,tZ=2n**(40n-1n)-1n,rZ=2n**(48n-1n)-1n,nZ=2n**(56n-1n)-1n,oZ=2n**(64n-1n)-1n,sZ=2n**(72n-1n)-1n,aZ=2n**(80n-1n)-1n,iZ=2n**(88n-1n)-1n,cZ=2n**(96n-1n)-1n,mZ=2n**(104n-1n)-1n,uZ=2n**(112n-1n)-1n,pZ=2n**(120n-1n)-1n,lZ=2n**(128n-1n)-1n,fZ=2n**(136n-1n)-1n,dZ=2n**(144n-1n)-1n,gZ=2n**(152n-1n)-1n,hZ=2n**(160n-1n)-1n,yZ=2n**(168n-1n)-1n,bZ=2n**(176n-1n)-1n,xZ=2n**(184n-1n)-1n,vZ=2n**(192n-1n)-1n,wZ=2n**(200n-1n)-1n,CZ=2n**(208n-1n)-1n,SZ=2n**(216n-1n)-1n,kZ=2n**(224n-1n)-1n,EZ=2n**(232n-1n)-1n,_Z=2n**(240n-1n)-1n,IZ=2n**(248n-1n)-1n,PZ=2n**(256n-1n)-1n,AZ=-(2n**(8n-1n)),TZ=-(2n**(16n-1n)),$Z=-(2n**(24n-1n)),RZ=-(2n**(32n-1n)),MZ=-(2n**(40n-1n)),FZ=-(2n**(48n-1n)),NZ=-(2n**(56n-1n)),LZ=-(2n**(64n-1n)),BZ=-(2n**(72n-1n)),DZ=-(2n**(80n-1n)),UZ=-(2n**(88n-1n)),zZ=-(2n**(96n-1n)),OZ=-(2n**(104n-1n)),jZ=-(2n**(112n-1n)),HZ=-(2n**(120n-1n)),VZ=-(2n**(128n-1n)),GZ=-(2n**(136n-1n)),qZ=-(2n**(144n-1n)),KZ=-(2n**(152n-1n)),WZ=-(2n**(160n-1n)),JZ=-(2n**(168n-1n)),ZZ=-(2n**(176n-1n)),YZ=-(2n**(184n-1n)),XZ=-(2n**(192n-1n)),QZ=-(2n**(200n-1n)),eY=-(2n**(208n-1n)),tY=-(2n**(216n-1n)),rY=-(2n**(224n-1n)),nY=-(2n**(232n-1n)),oY=-(2n**(240n-1n)),sY=-(2n**(248n-1n)),aY=-(2n**(256n-1n)),iY=2n**8n-1n,cY=2n**16n-1n,mY=2n**24n-1n,uY=2n**32n-1n,pY=2n**40n-1n,lY=2n**48n-1n,fY=2n**56n-1n,dY=2n**64n-1n,gY=2n**72n-1n,hY=2n**80n-1n,yY=2n**88n-1n,bY=2n**96n-1n,xY=2n**104n-1n,vY=2n**112n-1n,wY=2n**120n-1n,CY=2n**128n-1n,SY=2n**136n-1n,kY=2n**144n-1n,EY=2n**152n-1n,_Y=2n**160n-1n,IY=2n**168n-1n,PY=2n**176n-1n,AY=2n**184n-1n,TY=2n**192n-1n,$Y=2n**200n-1n,RY=2n**208n-1n,MY=2n**216n-1n,FY=2n**224n-1n,NY=2n**232n-1n,LY=2n**240n-1n,BY=2n**248n-1n,e0=2n**256n-1n;function Xo(e,t,r){let{checksumAddress:n,staticPosition:o}=r,s=n0(t.type);if(s){let[a,i]=s;return f_(e,{...t,type:i},{checksumAddress:n,length:a,staticPosition:o})}if(t.type==="tuple")return y_(e,t,{checksumAddress:n,staticPosition:o});if(t.type==="address")return l_(e,{checksum:n});if(t.type==="bool")return d_(e);if(t.type.startsWith("bytes"))return g_(e,t,{staticPosition:o});if(t.type.startsWith("uint")||t.type.startsWith("int"))return h_(e,t);if(t.type==="string")return b_(e,{staticPosition:o});throw new qa(t.type)}var Zx=32,t0=32;function l_(e,t={}){let{checksum:r=!1}=t,n=e.readBytes(32);return[(s=>r?Wp(s):s)(Ue(Nb(n,-20))),32]}function f_(e,t,r){let{checksumAddress:n,length:o,staticPosition:s}=r;if(!o){let c=Gr(e.readBytes(t0)),m=s+c,u=m+Zx;e.setPosition(m);let p=Gr(e.readBytes(Zx)),f=ac(t),d=0,g=[];for(let h=0;h<p;++h){e.setPosition(u+(f?h*32:d));let[y,b]=Xo(e,t,{checksumAddress:n,staticPosition:u});d+=b,g.push(y)}return e.setPosition(s+32),[g,32]}if(ac(t)){let c=Gr(e.readBytes(t0)),m=s+c,u=[];for(let p=0;p<o;++p){e.setPosition(m+p*32);let[f]=Xo(e,t,{checksumAddress:n,staticPosition:m});u.push(f)}return e.setPosition(s+32),[u,32]}let a=0,i=[];for(let c=0;c<o;++c){let[m,u]=Xo(e,t,{checksumAddress:n,staticPosition:s+a});a+=u,i.push(m)}return[i,a]}function d_(e){return[Bb(e.readBytes(32),{size:32}),32]}function g_(e,t,{staticPosition:r}){let[n,o]=t.type.split("bytes");if(!o){let a=Gr(e.readBytes(32));e.setPosition(r+a);let i=Gr(e.readBytes(32));if(i===0)return e.setPosition(r+32),["0x",32];let c=e.readBytes(i);return e.setPosition(r+32),[Ue(c),32]}return[Ue(e.readBytes(Number.parseInt(o,10),32)),32]}function h_(e,t){let r=t.type.startsWith("int"),n=Number.parseInt(t.type.split("int")[1]||"256",10),o=e.readBytes(32);return[n>48?Lb(o,{signed:r}):Gr(o,{signed:r}),32]}function y_(e,t,r){let{checksumAddress:n,staticPosition:o}=r,s=t.components.length===0||t.components.some(({name:c})=>!c),a=s?[]:{},i=0;if(ac(t)){let c=Gr(e.readBytes(t0)),m=o+c;for(let u=0;u<t.components.length;++u){let p=t.components[u];e.setPosition(m+i);let[f,d]=Xo(e,p,{checksumAddress:n,staticPosition:m});i+=d,a[s?u:p?.name]=f}return e.setPosition(o+32),[a,32]}for(let c=0;c<t.components.length;++c){let m=t.components[c],[u,p]=Xo(e,m,{checksumAddress:n,staticPosition:o});a[s?c:m?.name]=u,i+=p}return[a,i]}function b_(e,{staticPosition:t}){let r=Gr(e.readBytes(32)),n=t+r;e.setPosition(n);let o=Gr(e.readBytes(32));if(o===0)return e.setPosition(t+32),["",32];let s=e.readBytes(o,32),a=Db(Sd(s));return e.setPosition(t+32),[a,32]}function Yx({checksumAddress:e,parameters:t,values:r}){let n=[];for(let o=0;o<t.length;o++)n.push(r0({checksumAddress:e,parameter:t[o],value:r[o]}));return n}function r0({checksumAddress:e=!1,parameter:t,value:r}){let n=t,o=n0(n.type);if(o){let[s,a]=o;return v_(r,{checksumAddress:e,length:s,parameter:{...n,type:a}})}if(n.type==="tuple")return E_(r,{checksumAddress:e,parameter:n});if(n.type==="address")return x_(r,{checksum:e});if(n.type==="bool")return C_(r);if(n.type.startsWith("uint")||n.type.startsWith("int")){let s=n.type.startsWith("int"),[,,a="256"]=Yp.exec(n.type)??[];return S_(r,{signed:s,size:Number(a)})}if(n.type.startsWith("bytes"))return w_(r,{type:n.type});if(n.type==="string")return k_(r);throw new qa(n.type)}function Xp(e){let t=0;for(let s=0;s<e.length;s++){let{dynamic:a,encoded:i}=e[s];a?t+=32:t+=Ie(i)}let r=[],n=[],o=0;for(let s=0;s<e.length;s++){let{dynamic:a,encoded:i}=e[s];a?(r.push(me(t+o,{size:32})),n.push(i),o+=Ie(i)):r.push(i)}return Te(...r,...n)}function x_(e,t){let{checksum:r=!1}=t;return Yo(e,{strict:r}),{dynamic:!1,encoded:wn(e.toLowerCase())}}function v_(e,t){let{checksumAddress:r,length:n,parameter:o}=t,s=n===null;if(!Array.isArray(e))throw new el(e);if(!s&&e.length!==n)throw new Qp({expectedLength:n,givenLength:e.length,type:`${o.type}[${n}]`});let a=!1,i=[];for(let c=0;c<e.length;c++){let m=r0({checksumAddress:r,parameter:o,value:e[c]});m.dynamic&&(a=!0),i.push(m)}if(s||a){let c=Xp(i);if(s){let m=me(i.length,{size:32});return{dynamic:!0,encoded:i.length>0?Te(m,c):m}}if(a)return{dynamic:!0,encoded:c}}return{dynamic:!1,encoded:Te(...i.map(({encoded:c})=>c))}}function w_(e,{type:t}){let[,r]=t.split("bytes"),n=Ie(e);if(!r){let o=e;return n%32!==0&&(o=qr(o,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:Te(wn(me(n,{size:32})),o)}}if(n!==Number.parseInt(r,10))throw new ic({expectedSize:Number.parseInt(r,10),value:e});return{dynamic:!1,encoded:qr(e)}}function C_(e){if(typeof e!="boolean")throw new B(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:wn(mp(e))}}function S_(e,{signed:t,size:r}){if(typeof r=="number"){let n=2n**(BigInt(r)-(t?1n:0n))-1n,o=t?-n-1n:0n;if(e>n||e<o)throw new Qi({max:n.toString(),min:o.toString(),signed:t,size:r/8,value:e.toString()})}return{dynamic:!1,encoded:me(e,{size:32,signed:t})}}function k_(e){let t=La(e),r=Math.ceil(Ie(t)/32),n=[];for(let o=0;o<r;o++)n.push(qr(Pe(t,o*32,(o+1)*32)));return{dynamic:!0,encoded:Te(qr(me(Ie(t),{size:32})),...n)}}function E_(e,t){let{checksumAddress:r,parameter:n}=t,o=!1,s=[];for(let a=0;a<n.components.length;a++){let i=n.components[a],c=Array.isArray(e)?a:i.name,m=r0({checksumAddress:r,parameter:i,value:e[c]});s.push(m),m.dynamic&&(o=!0)}return{dynamic:o,encoded:o?Xp(s):Te(...s.map(({encoded:a})=>a))}}function n0(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}function ac(e){let{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return e.components?.some(ac);let r=n0(e.type);return!!(r&&ac({...e,type:r[1]}))}Rt();var I_={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 s0({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new o0({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new tl({offset:e});let t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new tl({offset:e});let t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){let r=t??this.position;return this.assertPosition(r+e-1),this.bytes.subarray(r,r+e)},inspectUint8(e){let t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){let t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){let t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){let t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();let r=this.inspectBytes(e);return this.position+=t??e,r},readUint8(){this.assertReadLimit(),this._touch();let e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();let e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();let e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();let e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){let t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function rl(e,{recursiveReadLimit:t=8192}={}){let r=Object.create(I_);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}var tl=class extends B{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}},o0=class extends B{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}},s0=class extends B{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}};function Ka(e,t,r={}){let{as:n="Array",checksumAddress:o=!1}=r,s=typeof t=="string"?Fa(t):t,a=rl(s);if(ur(s)===0&&e.length>0)throw new c0;if(ur(s)&&ur(s)<32)throw new i0({data:typeof t=="string"?t:Ue(t),parameters:e,size:ur(s)});let i=0,c=n==="Array"?[]:{};for(let m=0;m<e.length;++m){let u=e[m];a.setPosition(i);let[p,f]=Xo(a,u,{checksumAddress:o,staticPosition:0});i+=f,n==="Array"?c.push(p):c[u.name??m]=p}return c}function go(e,t,r){let{checksumAddress:n=!1}=r??{};if(e.length!==t.length)throw new nl({expectedLength:e.length,givenLength:t.length});let o=Yx({checksumAddress:n,parameters:e,values:t}),s=Xp(o);return s.length===0?"0x":s}function a0(e,t){if(e.length!==t.length)throw new nl({expectedLength:e.length,givenLength:t.length});let r=[];for(let n=0;n<e.length;n++){let o=e[n],s=t[n];r.push(a0.encode(o,s))}return Te(...r)}(function(e){function t(r,n,o=!1){if(r==="address"){let c=n;return Yo(c),wn(c.toLowerCase(),o?32:0)}if(r==="string")return La(n);if(r==="bytes")return n;if(r==="bool")return wn(mp(n),o?32:1);let s=r.match(Yp);if(s){let[c,m,u="256"]=s,p=Number.parseInt(u,10)/8;return me(n,{size:o?32:p,signed:m==="int"})}let a=r.match(Wx);if(a){let[c,m]=a;if(Number.parseInt(m,10)!==(n.length-2)/2)throw new ic({expectedSize:Number.parseInt(m,10),value:n});return qr(n,o?32:0)}let i=r.match(Kx);if(i&&Array.isArray(n)){let[c,m]=i,u=[];for(let p=0;p<n.length;p++)u.push(t(m,n[p],!0));return u.length===0?"0x":Te(...u)}throw new qa(r)}e.encode=t})(a0||(a0={}));function mc(e){return Array.isArray(e)&&typeof e[0]=="string"?$u(e):typeof e=="string"?$u(e):e}var i0=class extends B{constructor({data:t,parameters:r,size:n}){super(`Data size of ${n} bytes is too small for given parameters.`,{metaMessages:[`Params: (${gn(r)})`,`Data: ${t} (${n} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}},c0=class extends B{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.'),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"})}},Qp=class extends B{constructor({expectedLength:t,givenLength:r,type:n}){super(`Array length mismatch for type \`${n}\`. Expected: \`${t}\`. Given: \`${r}\`.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"})}},ic=class extends B{constructor({expectedSize:t,value:r}){super(`Size of bytes "${r}" (bytes${Ie(r)}) does not match expected size (bytes${t}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}},nl=class extends B{constructor({expectedLength:t,givenLength:r}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${t}`,`Given length (values): ${r}`].join(`
56
+ `)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}},el=class extends B{constructor(t){super(`Value \`${t}\` is not a valid array.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"})}},qa=class extends B{constructor(t){super(`Type \`${t}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}};et();io();Rt();et();function P_(e,t){let{as:r}=t,n=e1(e),o=rl(new Uint8Array(n.length));return n.encode(o),r==="Hex"?Ue(o.bytes):o.bytes}function Qx(e,t={}){let{as:r="Hex"}=t;return P_(e,{as:r})}function e1(e){return Array.isArray(e)?A_(e.map(t=>e1(t))):T_(e)}function A_(e){let t=e.reduce((o,s)=>o+s.length,0),r=t1(t);return{length:t<=55?1+t:1+r+t,encode(o){t<=55?o.pushByte(192+t):(o.pushByte(247+r),r===1?o.pushUint8(t):r===2?o.pushUint16(t):r===3?o.pushUint24(t):o.pushUint32(t));for(let{encode:s}of e)s(o)}}}function T_(e){let t=typeof e=="string"?Fa(e):e,r=t1(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+r+t.length,encode(o){t.length===1&&t[0]<128?o.pushBytes(t):t.length<=55?(o.pushByte(128+t.length),o.pushBytes(t)):(o.pushByte(183+r),r===1?o.pushUint8(t.length):r===2?o.pushUint16(t.length):r===3?o.pushUint24(t.length):o.pushUint32(t.length),o.pushBytes(t))}}}function t1(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new B("Length is too large.")}import{secp256k1 as OY}from"@noble/curves/secp256k1";Rt();et();Xi();function f0(e,t={}){let{recovered:r}=t;if(typeof e.r>"u")throw new uc({signature:e});if(typeof e.s>"u")throw new uc({signature:e});if(r&&typeof e.yParity>"u")throw new uc({signature:e});if(e.r<0n||e.r>e0)throw new u0({value:e.r});if(e.s<0n||e.s>e0)throw new p0({value:e.s});if(typeof e.yParity=="number"&&e.yParity!==0&&e.yParity!==1)throw new pc({value:e.yParity})}function R_(e){return r1(Ue(e))}function r1(e){if(e.length!==130&&e.length!==132)throw new m0({signature:e});let t=BigInt(Pe(e,0,32)),r=BigInt(Pe(e,32,64)),n=(()=>{let o=+`0x${e.slice(130)}`;if(!Number.isNaN(o))try{return h0(o)}catch{throw new pc({value:o})}})();return typeof n>"u"?{r:t,s:r}:{r:t,s:r,yParity:n}}function d0(e){if(!(typeof e.r>"u")&&!(typeof e.s>"u"))return g0(e)}function g0(e){let t=typeof e=="string"?r1(e):e instanceof Uint8Array?R_(e):typeof e.r=="string"?F_(e):e.v?M_(e):{r:e.r,s:e.s,...typeof e.yParity<"u"?{yParity:e.yParity}:{}};return f0(t),t}function M_(e){return{r:e.r,s:e.s,yParity:h0(e.v)}}function F_(e){let t=(()=>{let r=e.v?Number(e.v):void 0,n=e.yParity?Number(e.yParity):void 0;if(typeof r=="number"&&typeof n!="number"&&(n=h0(r)),typeof n!="number")throw new pc({value:e.yParity});return n})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:t}}function n1(e){let{r:t,s:r,yParity:n}=e;return[n?"0x01":"0x",t===0n?"0x":Ed(me(t)),r===0n?"0x":Ed(me(r))]}function h0(e){if(e===0||e===27)return 0;if(e===1||e===28)return 1;if(e>=35)return e%2===0?1:0;throw new l0({value:e})}var m0=class extends B{constructor({signature:t}){super(`Value \`${t}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Ie(Na(t))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}},uc=class extends B{constructor({signature:t}){super(`Signature \`${co(t)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}},u0=class extends B{constructor({value:t}){super(`Value \`${t}\` 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"})}},p0=class extends B{constructor({value:t}){super(`Value \`${t}\` 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"})}},pc=class extends B{constructor({value:t}){super(`Value \`${t}\` 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"})}},l0=class extends B{constructor({value:t}){super(`Value \`${t}\` 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 s1(e,t={}){return typeof e.chainId=="string"?N_(e):{...e,...t.signature}}function N_(e){let{address:t,chainId:r,nonce:n}=e,o=d0(e);return{address:t,chainId:Number(r),nonce:BigInt(n),...o}}function a1(e){return L_(e,{presign:!0})}function L_(e,t={}){let{presign:r}=t;return Zo(Te("0x05",Qx(B_(r?{address:e.address,chainId:e.chainId,nonce:e.nonce}:e))))}function B_(e){let{address:t,chainId:r,nonce:n}=e,o=d0(e);return[r?me(r):"0x",t,n?me(n):"0x",...o?n1(o):[]]}Rt();et();import{secp256k1 as U_}from"@noble/curves/secp256k1";et();function i1(e){return qx(z_(e))}function z_(e){let{payload:t,signature:r}=e,{r:n,s:o,yParity:s}=r,i=new U_.Signature(BigInt(n),BigInt(o)).addRecoveryBit(s).recoverPublicKey(Na(t).substring(2));return Hx(i)}var y0="0x8010801080108010801080108010801080108010801080108010801080108010",b0=mc("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function sl(e){if(typeof e=="string"){if(Pe(e,-32)!==y0)throw new ol(e)}else f0(e.authorization)}function j_(e){return typeof e=="string"?c1(e):e}function c1(e){sl(e);let t=ap(Pe(e,-64,-32)),r=Pe(e,-t-64,-64),n=Pe(e,0,-t-64),[o,s,a]=Ka(b0,r);return{authorization:s1({address:o.delegation,chainId:Number(o.chainId),nonce:o.nonce,yParity:o.yParity,r:o.r,s:o.s}),signature:n,...a&&a!=="0x"?{data:a,to:s}:{}}}function H_(e){let{data:t,signature:r}=e;sl(e);let n=i1({payload:a1(e.authorization),signature:g0(e.authorization)}),o=go(b0,[{...e.authorization,delegation:e.authorization.address,chainId:BigInt(e.authorization.chainId)},e.to??n,t??"0x"]),s=me(Ie(o),{size:32});return Te(r,o,s,y0)}function V_(e){try{return sl(e),!0}catch{return!1}}var ol=class extends B{constructor(t){super(`Value \`${t}\` is an invalid ERC-8010 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc8010.InvalidWrappedSignatureError"})}};vm();K();var al=class extends w{constructor({value:t}){super(`Number \`${t}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}};function m1(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new al({value:e});let[r,n="0"]=e.split("."),o=r.startsWith("-");if(o&&(r=r.slice(1)),n=n.replace(/(0+)$/,""),t===0)Math.round(+`.${n}`)===1&&(r=`${BigInt(r)+1n}`),n="";else if(n.length>t){let[s,a,i]=[n.slice(0,t-1),n.slice(t-1,t),n.slice(t)],c=Math.round(+`${a}.${i}`);c>9?n=`${BigInt(s)+BigInt(1)}0`.padStart(s.length+1,"0"):n=`${s}${c}`,n.length>t&&(n=n.slice(1),r=`${BigInt(r)+1n}`),n=n.slice(0,t)}else n=n.padEnd(t,"0");return BigInt(`${o?"-":""}${r}${n}`)}function Qo(e,t="wei"){return m1(e,xm[t])}function G_(e){return e.map(t=>({...t,value:BigInt(t.value)}))}function u1(e){return{...e,balance:e.balance?BigInt(e.balance):void 0,nonce:e.nonce?Ae(e.nonce):void 0,storageProof:e.storageProof?G_(e.storageProof):void 0}}async function p1(e,{address:t,blockNumber:r,blockTag:n,storageKeys:o}){let s=n??"latest",a=r!==void 0?E(r):void 0,i=await e.request({method:"eth_getProof",params:[t,o,a||s]});return u1(i)}D();async function l1(e,{address:t,blockNumber:r,blockTag:n="latest",slot:o}){let s=r!==void 0?E(r):void 0;return await e.request({method:"eth_getStorageAt",params:[t,o,s||n]})}zt();D();async function Wa(e,{blockHash:t,blockNumber:r,blockTag:n,hash:o,index:s}){let a=n||"latest",i=r!==void 0?E(r):void 0,c=null;if(o?c=await e.request({method:"eth_getTransactionByHash",params:[o]},{dedupe:!0}):t?c=await e.request({method:"eth_getTransactionByBlockHashAndIndex",params:[t,E(s)]},{dedupe:!0}):(i||a)&&(c=await e.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[i||a,E(s)]},{dedupe:!!i})),!c)throw new Es({blockHash:t,blockNumber:r,blockTag:a,hash:o,index:s});return(e.chain?.formatters?.transaction?.format||Ro)(c,"getTransaction")}async function f1(e,{hash:t,transactionReceipt:r}){let[n,o]=await Promise.all([T(e,Wr,"getBlockNumber")({}),t?T(e,Wa,"getTransaction")({hash:t}):void 0]),s=r?.blockNumber||o?.blockNumber;return s?n-s+1n:0n}zt();async function Ja(e,{hash:t}){let r=await e.request({method:"eth_getTransactionReceipt",params:[t]},{dedupe:!0});if(!r)throw new _s({hash:t});return(e.chain?.formatters?.transactionReceipt?.format||Pi)(r,"getTransactionReceipt")}mo();tc();Me();K();Yn();ao();Ht();Bo();async function d1(e,t){let{account:r,authorizationList:n,allowFailure:o=!0,blockNumber:s,blockOverrides:a,blockTag:i,stateOverride:c}=t,m=t.contracts,{batchSize:u=t.batchSize??1024,deployless:p=t.deployless??!1}=typeof e.batch?.multicall=="object"?e.batch.multicall:{},f=(()=>{if(t.multicallAddress)return t.multicallAddress;if(p)return null;if(e.chain)return sr({blockNumber:s,chain:e.chain,contract:"multicall3"});throw new Error("client chain not configured. multicallAddress is required.")})(),d=[[]],g=0,h=0;for(let x=0;x<m.length;x++){let{abi:v,address:S,args:k,functionName:_}=m[x];try{let I=ke({abi:v,args:k,functionName:_});h+=(I.length-2)/2,u>0&&h>u&&d[g].length>0&&(g++,h=(I.length-2)/2,d[g]=[]),d[g]=[...d[g],{allowFailure:!0,callData:I,target:S}]}catch(I){let R=Vt(I,{abi:v,address:S,args:k,docsPath:"/docs/contract/multicall",functionName:_,sender:r});if(!o)throw R;d[g]=[...d[g],{allowFailure:!0,callData:"0x",target:S}]}}let y=await Promise.allSettled(d.map(x=>T(e,je,"readContract")({...f===null?{code:Ba}:{address:f},abi:qo,account:r,args:[x],authorizationList:n,blockNumber:s,blockOverrides:a,blockTag:i,functionName:"aggregate3",stateOverride:c}))),b=[];for(let x=0;x<y.length;x++){let v=y[x];if(v.status==="rejected"){if(!o)throw v.reason;for(let k=0;k<d[x].length;k++)b.push({status:"failure",error:v.reason,result:void 0});continue}let S=v.value;for(let k=0;k<S.length;k++){let{returnData:_,success:I}=S[k],{callData:R}=d[x][k],{abi:N,address:L,functionName:O,args:j}=m[b.length];try{if(R==="0x")throw new ir;if(!I)throw new zr({data:_});let G=$t({abi:N,args:j,data:_,functionName:O});b.push(o?{result:G,status:"success"}:G)}catch(G){let pe=Vt(G,{abi:N,address:L,args:j,docsPath:"/docs/contract/multicall",functionName:O});if(!o)throw pe;b.push({error:pe,result:void 0,status:"failure"})}}}if(b.length!==m.length)throw new w("multicall results mismatch");return b}_d();Re();Me();Yn();Gn();ao();Ht();yt();D();Wi();jn();Zu();xn();async function fc(e,t){let{blockNumber:r,blockTag:n=e.experimental_blockTag??"latest",blocks:o,returnFullTransactions:s,traceTransfers:a,validation:i}=t;try{let c=[];for(let f of o){let d=f.blockOverrides?up(f.blockOverrides):void 0,g=f.calls.map(y=>{let b=y,x=b.account?W(b.account):void 0,v=b.abi?ke(b):b.data,S={...b,account:x,data:b.dataSuffix?Oe([v||"0x",b.dataSuffix]):v,from:b.from??x?.address};return mt(S),It(S)}),h=f.stateOverrides?ka(f.stateOverrides):void 0;c.push({blockOverrides:d,calls:g,stateOverrides:h})}let u=(typeof r=="bigint"?E(r):void 0)||n;return(await e.request({method:"eth_simulateV1",params:[{blockStateCalls:c,returnFullTransactions:s,traceTransfers:a,validation:i},u]})).map((f,d)=>({...Ii(f),calls:f.calls.map((g,h)=>{let{abi:y,args:b,functionName:x,to:v}=o[d].calls[h],S=g.error?.data??g.returnData,k=BigInt(g.gasUsed),_=g.logs?.map(L=>at(L)),I=g.status==="0x1"?"success":"failure",R=y&&I==="success"&&S!=="0x"?$t({abi:y,data:S,functionName:x}):null,N=(()=>{if(I==="success")return;let L;if(g.error?.data==="0x"?L=new ir:g.error&&(L=new zr(g.error)),!!L)return Vt(L,{abi:y??[],address:v??"0x",args:b,functionName:x??"<unknown>"})})();return{data:S,gasUsed:k,logs:_,status:I,...I==="success"?{result:R}:{error:N}}})}))}catch(c){let m=c,u=ro(m,{});throw u instanceof tr?m:u}}Hi();Rt();et();Rt();function cl(e){let t=!0,r="",n=0,o="",s=!1;for(let a=0;a<e.length;a++){let i=e[a];if(["(",")",","].includes(i)&&(t=!0),i==="("&&n++,i===")"&&n--,!!t){if(n===0){if(i===" "&&["event","function","error",""].includes(o))o="";else if(o+=i,i===")"){s=!0;break}continue}if(i===" "){e[a-1]!==","&&r!==","&&r!==",("&&(r="",t=!1);continue}o+=i,r+=i}}if(!s)throw new B("Unable to normalize signature.");return o}function il(e,t){let r=typeof e,n=t.type;switch(n){case"address":return Jp(e,{strict:!1});case"bool":return r==="boolean";case"function":return r==="string";case"string":return r==="string";default:return n==="tuple"&&"components"in t?Object.values(t.components).every((o,s)=>il(Object.values(e)[s],o)):/^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(n)?r==="number"||r==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?r==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(e)&&e.every(o=>il(o,{...t,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function x0(e,t,r){for(let n in e){let o=e[n],s=t[n];if(o.type==="tuple"&&s.type==="tuple"&&"components"in o&&"components"in s)return x0(o.components,s.components,r[n]);let a=[o.type,s.type];if(a.includes("address")&&a.includes("bytes20")?!0:a.includes("address")&&a.includes("string")?Jp(r[n],{strict:!1}):a.includes("address")&&a.includes("bytes")?Jp(r[n],{strict:!1}):!1)return a}}function ml(e,t={}){let{prepare:r=!0}=t,n=Array.isArray(e)?Tu(e):typeof e=="string"?Tu(e):e;return{...n,...r?{hash:Za(n)}:{}}}function dc(e,t,r){let{args:n=[],prepare:o=!0}=r??{},s=ec(t,{strict:!1}),a=e.filter(m=>s?m.type==="function"||m.type==="error"?w0(m)===Pe(t,0,4):m.type==="event"?Za(m)===t:!1:"name"in m&&m.name===t);if(a.length===0)throw new ho({name:t});if(a.length===1)return{...a[0],...o?{hash:Za(a[0])}:{}};let i;for(let m of a){if(!("inputs"in m))continue;if(!n||n.length===0){if(!m.inputs||m.inputs.length===0)return{...m,...o?{hash:Za(m)}:{}};continue}if(!m.inputs||m.inputs.length===0||m.inputs.length!==n.length)continue;if(n.every((p,f)=>{let d="inputs"in m&&m.inputs[f];return d?il(p,d):!1})){if(i&&"inputs"in i&&i.inputs){let p=x0(m.inputs,i.inputs,n);if(p)throw new v0({abiItem:m,type:p[0]},{abiItem:i,type:p[1]})}i=m}}let c=(()=>{if(i)return i;let[m,...u]=a;return{...m,overloads:u}})();if(!c)throw new ho({name:t});return{...c,...o?{hash:Za(c)}:{}}}function w0(...e){let t=(()=>{if(Array.isArray(e[0])){let[r,n]=e;return dc(r,n)}return e[0]})();return Pe(Za(t),0,4)}function K_(...e){let t=(()=>{if(Array.isArray(e[0])){let[n,o]=e;return dc(n,o)}return e[0]})(),r=typeof t=="string"?t:Do(t);return cl(r)}function Za(...e){let t=(()=>{if(Array.isArray(e[0])){let[r,n]=e;return dc(r,n)}return e[0]})();return typeof t!="string"&&"hash"in t&&t.hash?t.hash:Zo(La(K_(t)))}var v0=class extends B{constructor(t,r){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${t.type}\` in \`${cl(Do(t.abiItem))}\`, and`,`\`${r.type}\` in \`${cl(Do(r.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"})}},ho=class extends B{constructor({name:t,data:r,type:n="item"}){let o=t?` with name "${t}"`:r?` with data "${r}"`:"";super(`ABI ${n}${o} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}};et();function h1(...e){let[t,r]=(()=>{if(Array.isArray(e[0])){let[s,a]=e;return[W_(s),a]}return e})(),{bytecode:n,args:o}=r;return Te(n,t.inputs?.length&&o?.length?go(t.inputs,o):"0x")}function y1(e){return ml(e)}function W_(e){let t=e.find(r=>r.type==="constructor");if(!t)throw new ho({name:"constructor"});return t}et();function x1(...e){let[t,r=[]]=(()=>{if(Array.isArray(e[0])){let[m,u,p]=e;return[b1(m,u,{args:p}),p]}let[i,c]=e;return[i,c]})(),{overloads:n}=t,o=n?b1([t,...n],t.name,{args:r}):t,s=Z_(o),a=r.length>0?go(o.inputs,r):void 0;return a?Te(s,a):s}function es(e,t={}){return ml(e,t)}function b1(e,t,r){let n=dc(e,t,r);if(n.type!=="function")throw new ho({name:t,type:"function"});return n}function Z_(e){return w0(e)}Re();var v1="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Pr="0x0000000000000000000000000000000000000000";tc();K();Ht();var X_="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function w1(e,t){let{blockNumber:r,blockTag:n,calls:o,stateOverrides:s,traceAssetChanges:a,traceTransfers:i,validation:c}=t,m=t.account?W(t.account):void 0;if(a&&!m)throw new w("`account` is required when `traceAssetChanges` is true");let u=m?h1(y1("constructor(bytes, bytes)"),{bytecode:fp,args:[X_,x1(es("function getBalance(address)"),[m.address])]}):void 0,p=a?await Promise.all(t.calls.map(async H=>{if(!H.data&&!H.abi)return;let{accessList:Be}=await Mp(e,{account:m.address,...H,data:H.abi?ke(H):H.data});return Be.map(({address:Fr,storageKeys:Bn})=>Bn.length>0?Fr:null)})).then(H=>H.flat().filter(Boolean)):[],f=await fc(e,{blockNumber:r,blockTag:n,blocks:[...a?[{calls:[{data:u}],stateOverrides:s},{calls:p.map((H,Be)=>({abi:[es("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[m.address],to:H,from:Pr,nonce:Be})),stateOverrides:[{address:Pr,nonce:0}]}]:[],{calls:[...o,{}].map(H=>({...H,from:m?.address})),stateOverrides:s},...a?[{calls:[{data:u}]},{calls:p.map((H,Be)=>({abi:[es("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[m.address],to:H,from:Pr,nonce:Be})),stateOverrides:[{address:Pr,nonce:0}]},{calls:p.map((H,Be)=>({to:H,abi:[es("function decimals() returns (uint256)")],functionName:"decimals",from:Pr,nonce:Be})),stateOverrides:[{address:Pr,nonce:0}]},{calls:p.map((H,Be)=>({to:H,abi:[es("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Pr,nonce:Be})),stateOverrides:[{address:Pr,nonce:0}]},{calls:p.map((H,Be)=>({to:H,abi:[es("function symbol() returns (string)")],functionName:"symbol",from:Pr,nonce:Be})),stateOverrides:[{address:Pr,nonce:0}]}]:[]],traceTransfers:i,validation:c}),d=a?f[2]:f[0],[g,h,,y,b,x,v,S]=a?f:[],{calls:k,..._}=d,I=k.slice(0,-1)??[],R=g?.calls??[],N=h?.calls??[],L=[...R,...N].map(H=>H.status==="success"?be(H.data):null),O=y?.calls??[],j=b?.calls??[],G=[...O,...j].map(H=>H.status==="success"?be(H.data):null),pe=(x?.calls??[]).map(H=>H.status==="success"?H.result:null),Se=(S?.calls??[]).map(H=>H.status==="success"?H.result:null),Z=(v?.calls??[]).map(H=>H.status==="success"?H.result:null),Ve=[];for(let[H,Be]of G.entries()){let Fr=L[H];if(typeof Be!="bigint"||typeof Fr!="bigint")continue;let Bn=pe[H-1],ve=Se[H-1],Dn=Z[H-1],yr=H===0?{address:v1,decimals:18,symbol:"ETH"}:{address:p[H-1],decimals:Dn||Bn?Number(Bn??1):void 0,symbol:ve??void 0};Ve.some(Tf=>Tf.token.address===yr.address)||Ve.push({token:yr,value:{pre:Fr,post:Be,diff:Be-Fr}})}return{assetChanges:Ve,block:_,results:I}}var gc={};Rf(gc,{InvalidWrappedSignatureError:()=>ul,assert:()=>S0,from:()=>tI,magicBytes:()=>C0,universalSignatureValidatorAbi:()=>eI,universalSignatureValidatorBytecode:()=>Q_,unwrap:()=>C1,validate:()=>nI,wrap:()=>rI});Rt();et();var C0="0x6492649264926492649264926492649264926492649264926492649264926492",Q_="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",eI=[{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 S0(e){if(Pe(e,-32)!==C0)throw new ul(e)}function tI(e){return typeof e=="string"?C1(e):e}function C1(e){S0(e);let[t,r,n]=Ka(mc("address, bytes, bytes"),e);return{data:r,signature:n,to:t}}function rI(e){let{data:t,signature:r,to:n}=e;return Te(go(mc("address, bytes, bytes"),[n,t,r]),C0)}function nI(e){try{return S0(e),!0}catch{return!1}}var ul=class extends B{constructor(t){super(`Value \`${t}\` is an invalid ERC-6492 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"})}};mo();tc();Yn();dp();Ht();qn();Vo();yt();Ut();Ge();D();Ge();Ye();import{secp256k1 as oI}from"@noble/curves/secp256k1";function pl({r:e,s:t,to:r="hex",v:n,yParity:o}){let s=(()=>{if(o===0||o===1)return o;if(n&&(n===27n||n===28n||n>=35n))return n%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),a=`0x${new oI.Signature(be(e),be(t)).toCompactHex()}${s===0?"1b":"1c"}`;return r==="hex"?a:qe(a)}Ua();async function yo(e,t){let{address:r,hash:n,erc6492VerifierAddress:o=t.universalSignatureVerifierAddress??e.chain?.contracts?.erc6492Verifier?.address,multicallAddress:s=t.multicallAddress??e.chain?.contracts?.multicall3?.address}=t,a=(()=>{let i=t.signature;return xe(i)?i:typeof i=="object"&&"r"in i&&"s"in i?pl(i):oe(i)})();try{return lc.validate(a)?await sI(e,{...t,multicallAddress:s,signature:a}):await aI(e,{...t,verifierAddress:o,signature:a})}catch(i){try{if(mr(Hs(r),await Ku({hash:n,signature:a})))return!0}catch{}if(i instanceof Sn)return!1;throw i}}async function sI(e,t){let{address:r,blockNumber:n,blockTag:o,hash:s,multicallAddress:a}=t,{authorization:i,data:c,signature:m,to:u}=lc.unwrap(t.signature);if(await sc(e,{address:r,blockNumber:n,blockTag:o})===Xe(["0xef0100",i.address]))return await iI(e,{address:r,blockNumber:n,blockTag:o,hash:s,signature:m});let f={address:i.address,chainId:Number(i.chainId),nonce:Number(i.nonce),r:E(i.r,{size:32}),s:E(i.s,{size:32}),yParity:i.yParity};if(!await Tx({address:r,authorization:f}))throw new Sn;let g=await T(e,je,"readContract")({...a?{address:a}:{code:Ba},authorizationList:[f],abi:qo,blockNumber:n,blockTag:"pending",functionName:"aggregate3",args:[[...c?[{allowFailure:!0,target:u??r,callData:c}]:[],{allowFailure:!0,target:r,callData:ke({abi:Ad,functionName:"isValidSignature",args:[s,m]})}]]});if(g[g.length-1]?.returnData?.startsWith("0x1626ba7e"))return!0;throw new Sn}async function aI(e,t){let{address:r,factory:n,factoryData:o,hash:s,signature:a,verifierAddress:i,...c}=t,m=await(async()=>!n&&!o||gc.validate(a)?a:gc.wrap({data:o,signature:a,to:n}))(),u=i?{to:i,data:ke({abi:Td,functionName:"isValidSig",args:[r,s,m]}),...c}:{data:Ko({abi:Td,args:[r,s,m],bytecode:Wb}),...c},{data:p}=await T(e,Kr,"call")(u).catch(f=>{throw f instanceof ra?new Sn:f});if(zf(p??"0x0"))return!0;throw new Sn}async function iI(e,t){let{address:r,blockNumber:n,blockTag:o,hash:s,signature:a}=t;if((await T(e,je,"readContract")({address:r,abi:Ad,args:[s,a],blockNumber:n,blockTag:o,functionName:"isValidSignature"}).catch(c=>{throw c instanceof na?new Sn:c})).startsWith("0x1626ba7e"))return!0;throw new Sn}var Sn=class extends Error{};async function S1(e,{address:t,message:r,factory:n,factoryData:o,signature:s,...a}){let i=Ga(r);return yo(e,{address:t,factory:n,factoryData:o,hash:i,signature:s,...a})}async function k1(e,t){let{address:r,factory:n,factoryData:o,signature:s,message:a,primaryType:i,types:c,domain:m,...u}=t,p=Hp({message:a,primaryType:i,types:c,domain:m});return yo(e,{address:r,factory:n,factoryData:o,hash:p,signature:s,...u})}zt();gp();it();Ge();it();function ll(e,{emitOnBegin:t=!1,emitMissed:r=!1,onBlockNumber:n,onError:o,poll:s,pollingInterval:a=e.pollingInterval}){let i=typeof s<"u"?s:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")),c;return i?(()=>{let p=ee(["watchBlockNumber",e.uid,t,r,a]);return pt(p,{onBlockNumber:n,onError:o},f=>pr(async()=>{try{let d=await T(e,Wr,"getBlockNumber")({cacheTime:0});if(c!==void 0){if(d===c)return;if(d-c>1&&r)for(let g=c+1n;g<d;g++)f.onBlockNumber(g,c),c=g}(c===void 0||d>c)&&(f.onBlockNumber(d,c),c=d)}catch(d){f.onError?.(d)}},{emitOnBegin:t,interval:a}))})():(()=>{let p=ee(["watchBlockNumber",e.uid,t,r]);return pt(p,{onBlockNumber:n,onError:o},f=>{let d=!0,g=()=>d=!1;return(async()=>{try{let h=(()=>{if(e.transport.type==="fallback"){let b=e.transport.transports.find(x=>x.config.type==="webSocket"||x.config.type==="ipc");return b?b.value:e.transport}return e.transport})(),{unsubscribe:y}=await h.subscribe({params:["newHeads"],onData(b){if(!d)return;let x=be(b.result?.number);f.onBlockNumber(x,c),c=x},onError(b){f.onError?.(b)}});g=y,d||g()}catch(h){o?.(h)}})(),()=>g()})})()}async function fl(e,t){let{checkReplacement:r=!0,confirmations:n=1,hash:o,onReplaced:s,retryCount:a=6,retryDelay:i=({count:k})=>~~(1<<k)*200,timeout:c=18e4}=t,m=ee(["waitForTransactionReceipt",e.uid,o]),u=t.pollingInterval?t.pollingInterval:e.chain?.experimental_preconfirmationTime?e.chain.experimental_preconfirmationTime:e.pollingInterval,p,f,d,g=!1,h,y,{promise:b,resolve:x,reject:v}=Da(),S=c?setTimeout(()=>{y?.(),h?.(),v(new Pm({hash:o}))},c):void 0;return h=pt(m,{onReplaced:s,resolve:x,reject:v},async k=>{if(d=await T(e,Ja,"getTransactionReceipt")({hash:o}).catch(()=>{}),d&&n<=1){clearTimeout(S),k.resolve(d),h?.();return}y=T(e,ll,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:u,async onBlockNumber(_){let I=N=>{clearTimeout(S),y?.(),N(),h?.()},R=_;if(!g)try{if(d){if(n>1&&(!d.blockNumber||R-d.blockNumber+1n<n))return;I(()=>k.resolve(d));return}if(r&&!p&&(g=!0,await Jo(async()=>{p=await T(e,Wa,"getTransaction")({hash:o}),p.blockNumber&&(R=p.blockNumber)},{delay:i,retryCount:a}),g=!1),d=await T(e,Ja,"getTransactionReceipt")({hash:o}),n>1&&(!d.blockNumber||R-d.blockNumber+1n<n))return;I(()=>k.resolve(d))}catch(N){if(N instanceof Es||N instanceof _s){if(!p){g=!1;return}try{f=p,g=!0;let L=await Jo(()=>T(e,ut,"getBlock")({blockNumber:R,includeTransactions:!0}),{delay:i,retryCount:a,shouldRetry:({error:G})=>G instanceof Ea});g=!1;let O=L.transactions.find(({from:G,nonce:pe})=>G===f.from&&pe===f.nonce);if(!O||(d=await T(e,Ja,"getTransactionReceipt")({hash:O.hash}),n>1&&(!d.blockNumber||R-d.blockNumber+1n<n)))return;let j="replaced";O.to===f.to&&O.value===f.value&&O.input===f.input?j="repriced":O.from===O.to&&O.value===0n&&(j="cancelled"),I(()=>{k.onReplaced?.({reason:j,replacedTransaction:f,transaction:O,transactionReceipt:d}),k.resolve(d)})}catch(L){I(()=>k.reject(L))}}else I(()=>k.reject(N))}}})}),b}it();function E1(e,{blockTag:t=e.experimental_blockTag??"latest",emitMissed:r=!1,emitOnBegin:n=!1,onBlock:o,onError:s,includeTransactions:a,poll:i,pollingInterval:c=e.pollingInterval}){let m=typeof i<"u"?i:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")),u=a??!1,p;return m?(()=>{let g=ee(["watchBlocks",e.uid,t,r,n,u,c]);return pt(g,{onBlock:o,onError:s},h=>pr(async()=>{try{let y=await T(e,ut,"getBlock")({blockTag:t,includeTransactions:u});if(y.number!==null&&p?.number!=null){if(y.number===p.number)return;if(y.number-p.number>1&&r)for(let b=p?.number+1n;b<y.number;b++){let x=await T(e,ut,"getBlock")({blockNumber:b,includeTransactions:u});h.onBlock(x,p),p=x}}(p?.number==null||t==="pending"&&y?.number==null||y.number!==null&&y.number>p.number)&&(h.onBlock(y,p),p=y)}catch(y){h.onError?.(y)}},{emitOnBegin:n,interval:c}))})():(()=>{let g=!0,h=!0,y=()=>g=!1;return(async()=>{try{n&&T(e,ut,"getBlock")({blockTag:t,includeTransactions:u}).then(v=>{g&&h&&(o(v,void 0),h=!1)}).catch(s);let b=(()=>{if(e.transport.type==="fallback"){let v=e.transport.transports.find(S=>S.config.type==="webSocket"||S.config.type==="ipc");return v?v.value:e.transport}return e.transport})(),{unsubscribe:x}=await b.subscribe({params:["newHeads"],async onData(v){if(!g)return;let S=await T(e,ut,"getBlock")({blockNumber:v.result?.number,includeTransactions:u}).catch(()=>{});g&&(o(S,p),h=!1,p=S)},onError(v){s?.(v)}});y=x,g||y()}catch(b){s?.(b)}})(),()=>y()})()}Me();Ca();it();function _1(e,{address:t,args:r,batch:n=!0,event:o,events:s,fromBlock:a,onError:i,onLogs:c,poll:m,pollingInterval:u=e.pollingInterval,strict:p}){let f=typeof m<"u"?m:typeof a=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")),d=p??!1;return f?(()=>{let y=ee(["watchEvent",t,r,n,e.uid,o,u,a]);return pt(y,{onLogs:c,onError:i},b=>{let x;a!==void 0&&(x=a-1n);let v,S=!1,k=pr(async()=>{if(!S){try{v=await T(e,Fp,"createEventFilter")({address:t,args:r,event:o,events:s,strict:d,fromBlock:a})}catch{}S=!0;return}try{let _;if(v)_=await T(e,uo,"getFilterChanges")({filter:v});else{let I=await T(e,Wr,"getBlockNumber")({});x&&x!==I?_=await T(e,Ta,"getLogs")({address:t,args:r,event:o,events:s,fromBlock:x+1n,toBlock:I}):_=[],x=I}if(_.length===0)return;if(n)b.onLogs(_);else for(let I of _)b.onLogs([I])}catch(_){v&&_ instanceof Or&&(S=!1),b.onError?.(_)}},{emitOnBegin:!0,interval:u});return async()=>{v&&await T(e,po,"uninstallFilter")({filter:v}),k()}})})():(()=>{let y=!0,b=()=>y=!1;return(async()=>{try{let x=(()=>{if(e.transport.type==="fallback"){let _=e.transport.transports.find(I=>I.config.type==="webSocket"||I.config.type==="ipc");return _?_.value:e.transport}return e.transport})(),v=s??(o?[o]:void 0),S=[];v&&(S=[v.flatMap(I=>Hr({abi:[I],eventName:I.name,args:r}))],o&&(S=S[0]));let{unsubscribe:k}=await x.subscribe({params:["logs",{address:t,topics:S}],onData(_){if(!y)return;let I=_.result;try{let{eventName:R,args:N}=Aa({abi:v??[],data:I.data,topics:I.topics,strict:d}),L=at(I,{args:N,eventName:R});c([L])}catch(R){let N,L;if(R instanceof Er||R instanceof Lr){if(p)return;N=R.abiItem.name,L=R.abiItem.inputs?.some(j=>!("name"in j&&j.name))}let O=at(I,{args:L?[]:{},eventName:N});c([O])}},onError(_){i?.(_)}});b=k,y||b()}catch(x){i?.(x)}})(),()=>b()})()}it();function I1(e,{batch:t=!0,onError:r,onTransactions:n,poll:o,pollingInterval:s=e.pollingInterval}){return(typeof o<"u"?o:e.transport.type!=="webSocket"&&e.transport.type!=="ipc")?(()=>{let m=ee(["watchPendingTransactions",e.uid,t,s]);return pt(m,{onTransactions:n,onError:r},u=>{let p,f=pr(async()=>{try{if(!p)try{p=await T(e,Np,"createPendingTransactionFilter")({});return}catch(g){throw f(),g}let d=await T(e,uo,"getFilterChanges")({filter:p});if(d.length===0)return;if(t)u.onTransactions(d);else for(let g of d)u.onTransactions([g])}catch(d){u.onError?.(d)}},{emitOnBegin:!0,interval:s});return async()=>{p&&await T(e,po,"uninstallFilter")({filter:p}),f()}})})():(()=>{let m=!0,u=()=>m=!1;return(async()=>{try{let{unsubscribe:p}=await e.transport.subscribe({params:["newPendingTransactions"],onData(f){if(!m)return;let d=f.result;n([d])},onError(f){r?.(f)}});u=p,m||u()}catch(p){r?.(p)}})(),()=>u()})()}function P1(e){let{scheme:t,statement:r,...n}=e.match(cI)?.groups??{},{chainId:o,expirationTime:s,issuedAt:a,notBefore:i,requestId:c,...m}=e.match(mI)?.groups??{},u=e.split("Resources:")[1]?.split(`
57
+ - `).slice(1);return{...n,...m,...o?{chainId:Number(o)}:{},...s?{expirationTime:new Date(s)}:{},...a?{issuedAt:new Date(a)}:{},...i?{notBefore:new Date(i)}:{},...c?{requestId:c}:{},...u?{resources:u}:{},...t?{scheme:t}:{},...r?{statement:r}:{}}}var cI=/^(?:(?<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)?/,mI=/(?: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>.+))?/;Ot();Vo();function A1(e){let{address:t,domain:r,message:n,nonce:o,scheme:s,time:a=new Date}=e;if(r&&n.domain!==r||o&&n.nonce!==o||s&&n.scheme!==s||n.expirationTime&&a>=n.expirationTime||n.notBefore&&a<n.notBefore)return!1;try{if(!n.address||!ie(n.address,{strict:!1})||t&&!mr(n.address,t))return!1}catch{return!1}return!0}async function T1(e,t){let{address:r,domain:n,message:o,nonce:s,scheme:a,signature:i,time:c=new Date,...m}=t,u=P1(o);if(!u.address||!A1({address:r,domain:n,message:u,nonce:s,scheme:a,time:c}))return!1;let f=Ga(o);return yo(e,{address:u.address,hash:f,signature:i,...m})}zt();async function Ya(e,{serializedTransaction:t,throwOnReceiptRevert:r,timeout:n}){let o=await e.request({method:"eth_sendRawTransactionSync",params:n?[t,E(n)]:[t]},{retryCount:0}),a=(e.chain?.formatters?.transactionReceipt?.format||Pi)(o);if(a.status==="reverted"&&r)throw new Is({receipt:a});return a}function $1(e){return{call:t=>Kr(e,t),createAccessList:t=>Mp(e,t),createBlockFilter:()=>Cx(e),createContractEventFilter:t=>Gu(e,t),createEventFilter:t=>Fp(e,t),createPendingTransactionFilter:()=>Np(e),estimateContractGas:t=>bb(e,t),estimateGas:t=>Pa(e,t),getBalance:t=>Sx(e,t),getBlobBaseFee:()=>kx(e),getBlock:t=>ut(e,t),getBlockNumber:t=>Wr(e,t),getBlockTransactionCount:t=>Ex(e,t),getBytecode:t=>sc(e,t),getChainId:()=>Tt(e),getCode:t=>sc(e,t),getContractEvents:t=>ep(e,t),getEip712Domain:t=>_x(e,t),getEnsAddress:t=>fx(e,t),getEnsAvatar:t=>xx(e,t),getEnsName:t=>vx(e,t),getEnsResolver:t=>wx(e,t),getEnsText:t=>Rp(e,t),getFeeHistory:t=>Px(e,t),estimateFeesPerGas:t=>hb(e,t),getFilterChanges:t=>uo(e,t),getFilterLogs:t=>Ax(e,t),getGasPrice:()=>_a(e),getLogs:t=>Ta(e,t),getProof:t=>p1(e,t),estimateMaxPriorityFeePerGas:t=>gb(e,t),getStorageAt:t=>l1(e,t),getTransaction:t=>Wa(e,t),getTransactionConfirmations:t=>f1(e,t),getTransactionCount:t=>Ia(e,t),getTransactionReceipt:t=>Ja(e,t),multicall:t=>d1(e,t),prepareTransactionRequest:t=>Vr(e,t),readContract:t=>je(e,t),sendRawTransaction:t=>Oa(e,t),sendRawTransactionSync:t=>Ya(e,t),simulate:t=>fc(e,t),simulateBlocks:t=>fc(e,t),simulateCalls:t=>w1(e,t),simulateContract:t=>ax(e,t),verifyHash:t=>yo(e,t),verifyMessage:t=>S1(e,t),verifySiweMessage:t=>T1(e,t),verifyTypedData:t=>k1(e,t),uninstallFilter:t=>po(e,t),waitForTransactionReceipt:t=>fl(e,t),watchBlocks:t=>E1(e,t),watchBlockNumber:t=>ll(e,t),watchContractEvent:t=>ux(e,t),watchEvent:t=>_1(e,t),watchPendingTransactions:t=>I1(e,t)}}function ts(e){let{key:t="public",name:r="Public Client"}=e;return Ip({...e,key:t,name:r,type:"publicClient"}).extend($1)}D();async function R1(e,{chain:t}){let{id:r,name:n,nativeCurrency:o,rpcUrls:s,blockExplorers:a}=t;await e.request({method:"wallet_addEthereumChain",params:[{chainId:E(r),chainName:n,nativeCurrency:o,rpcUrls:s.default.http,blockExplorerUrls:a?Object.values(a).map(({url:i})=>i):void 0}]},{dedupe:!0,retryCount:0})}dp();function M1(e,t){let{abi:r,args:n,bytecode:o,...s}=t,a=Ko({abi:r,args:n,bytecode:o});return lo(e,{...s,...s.authorizationList?{to:null}:{},data:a})}qn();async function F1(e){return e.account?.type==="local"?[e.account.address]:(await e.request({method:"eth_accounts"},{dedupe:!0})).map(r=>fn(r))}Re();D();async function N1(e,t={}){let{account:r=e.account,chainId:n}=t,o=r?W(r):void 0,s=n?[o?.address,[E(n)]]:[o?.address],a=await e.request({method:"wallet_getCapabilities",params:s}),i={};for(let[c,m]of Object.entries(a)){i[Number(c)]={};for(let[u,p]of Object.entries(m))u==="addSubAccount"&&(u="unstable_addSubAccount"),i[Number(c)][u]=p}return typeof n=="number"?i[n]:i}async function L1(e){return await e.request({method:"wallet_getPermissions"},{dedupe:!0})}Re();Vo();async function dl(e,t){let{account:r=e.account,chainId:n,nonce:o}=t;if(!r)throw new Qe({docsPath:"/docs/eip7702/prepareAuthorization"});let s=W(r),a=(()=>{if(t.executor)return t.executor==="self"?t.executor:W(t.executor)})(),i={address:t.contractAddress??t.address,chainId:n,nonce:o};return typeof i.chainId>"u"&&(i.chainId=e.chain?.id??await T(e,Tt,"getChainId")({})),typeof i.nonce>"u"&&(i.nonce=await T(e,Ia,"getTransactionCount")({address:s.address,blockTag:"pending"}),(a==="self"||a?.address&&mr(a.address,s.address))&&(i.nonce+=1)),i}qn();async function B1(e){return(await e.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map(r=>Hs(r))}async function D1(e,t){return e.request({method:"wallet_requestPermissions",params:[t]},{retryCount:0})}async function U1(e,t){let{chain:r=e.chain}=t,n=t.timeout??Math.max((r?.blockTime??0)*3,5e3),o=await wp(e,t);return await Sp(e,{...t,id:o.id,timeout:n})}Re();K();zt();Sa();jn();js();xn();var k0=new rr(128);async function gl(e,t){let{account:r=e.account,chain:n=e.chain,accessList:o,authorizationList:s,blobs:a,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:f,nonce:d,pollingInterval:g,throwOnReceiptRevert:h,type:y,value:b,...x}=t,v=t.timeout??Math.max((n?.blockTime??0)*3,5e3);if(typeof r>"u")throw new Qe({docsPath:"/docs/actions/wallet/sendTransactionSync"});let S=r?W(r):null;try{mt(t);let k=await(async()=>{if(t.to)return t.to;if(t.to!==null&&s&&s.length>0)return await oo({authorization:s[0]}).catch(()=>{throw new w("`to` is required. Could not infer from `authorizationList`.")})})();if(S?.type==="json-rpc"||S===null){let _;n!==null&&(_=await T(e,Tt,"getChainId")({}),Vs({currentChainId:_,chain:n}));let I=e.chain?.formatters?.transactionRequest?.format,N=(I||It)({...jr(x,{format:I}),accessList:o,account:S,authorizationList:s,blobs:a,chainId:_,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:f,nonce:d,to:k,type:y,value:b},"sendTransaction"),L=k0.get(e.uid),O=L?"wallet_sendTransaction":"eth_sendTransaction",j=await(async()=>{try{return await e.request({method:O,params:[N]},{retryCount:0})}catch(pe){if(L===!1)throw pe;let Se=pe;if(Se.name==="InvalidInputRpcError"||Se.name==="InvalidParamsRpcError"||Se.name==="MethodNotFoundRpcError"||Se.name==="MethodNotSupportedRpcError")return await e.request({method:"wallet_sendTransaction",params:[N]},{retryCount:0}).then(Z=>(k0.set(e.uid,!0),Z)).catch(Z=>{let Ve=Z;throw Ve.name==="MethodNotFoundRpcError"||Ve.name==="MethodNotSupportedRpcError"?(k0.set(e.uid,!1),Se):Ve});throw Se}})(),G=await T(e,fl,"waitForTransactionReceipt")({checkReplacement:!1,hash:j,pollingInterval:g,timeout:v});if(h&&G.status==="reverted")throw new Is({receipt:G});return G}if(S?.type==="local"){let _=await T(e,Vr,"prepareTransactionRequest")({account:S,accessList:o,authorizationList:s,blobs:a,chain:n,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:f,nonce:d,nonceManager:S.nonceManager,parameters:[...Ji,"sidecars"],type:y,value:b,...x,to:k}),I=n?.serializers?.transaction,R=await S.signTransaction(_,{serializer:I});return await T(e,Ya,"sendRawTransactionSync")({serializedTransaction:R,throwOnReceiptRevert:h})}throw S?.type==="smart"?new ar({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new ar({docsPath:"/docs/actions/wallet/sendTransactionSync",type:S?.type})}catch(k){throw k instanceof ar?k:za(k,{...t,account:S,chain:t.chain||void 0})}}async function z1(e,t){let{id:r}=t;await e.request({method:"wallet_showCallsStatus",params:[r]})}Re();async function O1(e,t){let{account:r=e.account}=t;if(!r)throw new Qe({docsPath:"/docs/eip7702/signAuthorization"});let n=W(r);if(!n.signAuthorization)throw new ar({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:n.type});let o=await dl(e,t);return n.signAuthorization(o)}Re();D();async function j1(e,{account:t=e.account,message:r}){if(!t)throw new Qe({docsPath:"/docs/actions/wallet/signMessage"});let n=W(t);if(n.signMessage)return n.signMessage({message:r});let o=typeof r=="string"?xr(r):r.raw instanceof Uint8Array?ye(r.raw):r.raw;return e.request({method:"personal_sign",params:[o,n.address]},{retryCount:0})}Re();D();jn();xn();async function H1(e,t){let{account:r=e.account,chain:n=e.chain,...o}=t;if(!r)throw new Qe({docsPath:"/docs/actions/wallet/signTransaction"});let s=W(r);mt({account:s,...t});let a=await T(e,Tt,"getChainId")({});n!==null&&Vs({currentChainId:a,chain:n});let c=(n?.formatters||e.chain?.formatters)?.transactionRequest?.format||It;return s.signTransaction?s.signTransaction({...o,chainId:a},{serializer:e.chain?.serializers?.transaction}):await e.request({method:"eth_signTransaction",params:[{...c({...o,account:s},"signTransaction"),chainId:E(a),from:s.address}]},{retryCount:0})}Re();async function V1(e,t){let{account:r=e.account,domain:n,message:o,primaryType:s}=t;if(!r)throw new Qe({docsPath:"/docs/actions/wallet/signTypedData"});let a=W(r),i={EIP712Domain:jp({domain:n}),...t.types};if(Op({domain:n,message:o,primaryType:s,types:i}),a.signTypedData)return a.signTypedData({domain:n,message:o,primaryType:s,types:i});let c=Bx({domain:n,message:o,primaryType:s,types:i});return e.request({method:"eth_signTypedData_v4",params:[a.address,c]},{retryCount:0})}D();async function G1(e,{id:t}){await e.request({method:"wallet_switchEthereumChain",params:[{chainId:E(t)}]},{retryCount:0})}async function q1(e,t){return await e.request({method:"wallet_watchAsset",params:t},{retryCount:0})}async function K1(e,t){return Wo.internal(e,gl,"sendTransactionSync",t)}function W1(e){return{addChain:t=>R1(e,t),deployContract:t=>M1(e,t),getAddresses:()=>F1(e),getCallsStatus:t=>Cp(e,t),getCapabilities:t=>N1(e,t),getChainId:()=>Tt(e),getPermissions:()=>L1(e),prepareAuthorization:t=>dl(e,t),prepareTransactionRequest:t=>Vr(e,t),requestAddresses:()=>B1(e),requestPermissions:t=>D1(e,t),sendCalls:t=>wp(e,t),sendCallsSync:t=>U1(e,t),sendRawTransaction:t=>Oa(e,t),sendRawTransactionSync:t=>Ya(e,t),sendTransaction:t=>lo(e,t),sendTransactionSync:t=>gl(e,t),showCallsStatus:t=>z1(e,t),signAuthorization:t=>O1(e,t),signMessage:t=>j1(e,t),signTransaction:t=>H1(e,t),signTypedData:t=>V1(e,t),switchChain:t=>G1(e,t),waitForCallsStatus:t=>Sp(e,t),watchAsset:t=>q1(e,t),writeContract:t=>Wo(e,t),writeContractSync:t=>K1(e,t)}}function hc(e){let{key:t="wallet",name:r="Wallet Client",transport:n}=e;return Ip({...e,key:t,name:r,transport:n,type:"walletClient"}).extend(W1)}function J1({key:e,methods:t,name:r,request:n,retryCount:o=3,retryDelay:s=150,timeout:a,type:i},c){let m=_p();return{config:{key:e,methods:t,name:r,request:n,retryCount:o,retryDelay:s,timeout:a,type:i},request:Rx(n,{methods:t,retryCount:o,retryDelay:s,uid:m}),value:c}}Oo();K();var hl=class extends w{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}};Md();function kn(e,t={}){let{batch:r,fetchFn:n,fetchOptions:o,key:s="http",methods:a,name:i="HTTP JSON-RPC",onFetchRequest:c,onFetchResponse:m,retryDelay:u,raw:p}=t;return({chain:f,retryCount:d,timeout:g})=>{let{batchSize:h=1e3,wait:y=0}=typeof r=="object"?r:{},b=t.retryCount??d,x=g??t.timeout??1e4,v=e||f?.rpcUrls.default.http[0];if(!v)throw new hl;let S=Fx(v,{fetchFn:n,fetchOptions:o,onRequest:c,onResponse:m,timeout:x});return J1({key:s,methods:a,name:i,async request({method:k,params:_}){let I={method:k,params:_},{schedule:R}=hp({id:v,wait:y,shouldSplitBatch(j){return j.length>h},fn:j=>S.request({body:j}),sort:(j,G)=>j.id-G.id}),N=async j=>r?R(j):[await S.request({body:j})],[{error:L,result:O}]=await N(I);if(p)return{error:L,result:O};if(L)throw new Xn({body:I,error:L,url:v});return O},retryCount:b,retryDelay:u,timeout:x,type:"http"},{fetchOptions:o,url:v})}}Ut();D();import{secp256k1 as pI}from"@noble/curves/secp256k1";Sr();Ot();function Z1(e){if(typeof e=="string"){if(!ie(e,{strict:!1}))throw new de({address:e});return{address:e,type:"json-rpc"}}if(!ie(e.address,{strict:!1}))throw new de({address:e.address});return{address:e.address,nonceManager:e.nonceManager,sign:e.sign,signAuthorization:e.signAuthorization,signMessage:e.signMessage,signTransaction:e.signTransaction,signTypedData:e.signTypedData,source:"custom",type:"local"}}Ut();Ye();D();import{secp256k1 as uI}from"@noble/curves/secp256k1";var E0=!1;async function Jr({hash:e,privateKey:t,to:r="object"}){let{r:n,s:o,recovery:s}=uI.sign(e.slice(2),t.slice(2),{lowS:!0,extraEntropy:xe(E0,{strict:!1})?qe(E0):E0}),a={r:E(n,{size:32}),s:E(o,{size:32}),v:s?28n:27n,yParity:s};return r==="bytes"||r==="hex"?pl({...a,to:r}):a}async function Y1(e){let{chainId:t,nonce:r,privateKey:n,to:o="object"}=e,s=e.contractAddress??e.address,a=await Jr({hash:Wu({address:s,chainId:t,nonce:r}),privateKey:n,to:o});return o==="object"?{address:s,chainId:t,nonce:r,...a}:a}async function X1({message:e,privateKey:t}){return await Jr({hash:Ga(e),privateKey:t,to:"hex"})}nr();async function Q1(e){let{privateKey:t,transaction:r,serializer:n=Km}=e,o=r.type==="eip4844"?{...r,sidecars:!1}:r,s=await Jr({hash:ge(await n(o)),privateKey:t});return await n(r,s)}async function ev(e){let{privateKey:t,...r}=e;return await Jr({hash:Hp(r),privateKey:t,to:"hex"})}function yc(e,t={}){let{nonceManager:r}=t,n=ye(pI.getPublicKey(e.slice(2),!1)),o=qu(n);return{...Z1({address:o,nonceManager:r,async sign({hash:a}){return Jr({hash:a,privateKey:e,to:"hex"})},async signAuthorization(a){return Y1({...a,privateKey:e})},async signMessage({message:a}){return X1({message:a,privateKey:e})},async signTransaction(a,{serializer:i}={}){return Q1({privateKey:e,transaction:a,serializer:i})},async signTypedData(a){return ev({...a,privateKey:e})}}),publicKey:n,source:"privateKey"}}var Zse=vi(P0(),1);import{z as Fe}from"zod";var dr=vi(P0(),1),s3=vi(tv(),1),a3=vi(jv(),1);import{z as ni}from"zod";import{z as $r}from"zod";import{z as VT}from"zod";import{z as oi}from"zod";import{z as Tr}from"zod";import{z as nt}from"zod";import{z as wt}from"zod";import{z as Sc}from"zod";import{z as qt}from"zod";import{z as Kv}from"zod";import{z as Wv}from"zod";import{z as wl}from"zod";import{z as Cl}from"zod";import{z as vt}from"zod";var XI=tt.object({detail:tt.union([tt.string(),tt.array(tt.object({msg:tt.string(),type:tt.string().optional(),ctx:tt.record(tt.unknown()).optional(),loc:tt.array(tt.union([tt.string(),tt.number()])).optional(),input:tt.unknown().optional()}).passthrough()),tt.record(tt.unknown())]).optional(),type:tt.string().optional(),code:tt.string().optional()}),tn=class extends Error{constructor(e,t){super(e),this.name=this.constructor.name,this.status=t.status,this.statusText=t.statusText,this.detail=t.detail,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},B0=class Sl extends tn{constructor(t,r){super(t,{status:r?.status??0,statusText:r?.statusText??"Unknown Error",detail:r?.detail||t}),this.name="RequestError",this.isRequestError=!0,this.data=r?.data,this.request=r?.request,this.response=r?.response,this.code=r?.code,this.type=r?.type}static fromFetchError(t){let r=XI.safeParse(t.data);return r.success?new Sl(t.message,{status:t.status??void 0,statusText:t.statusText??void 0,data:t.data,request:t.request??void 0,response:t.response??void 0,detail:r.data.detail,code:r.data.code??void 0,type:r.data.type??void 0}):new Sl(t.message,{status:t.status??void 0,statusText:t.statusText??void 0,data:t.data,request:t.request??void 0,response:t.response??void 0,detail:t.data?.detail||"Unknown API error",code:t.status?.toString()??void 0})}static fromError(t,r){return new Sl(t.message,{request:r??void 0,detail:t.message})}},QI=class extends tn{constructor(e,t){super(e,t),this.isValidationError=!0,this.validationErrors=t.validationErrors}},e8=class extends tn{constructor(){super(...arguments),this.isAuthError=!0}},_l=class extends tn{constructor(){super(...arguments),this.isBusinessError=!0}},t8=class extends tn{constructor(){super(...arguments),this.isServerError=!0}},r8=class extends tn{constructor(){super(...arguments),this.isUnknownError=!0}};function n8(e){if(!e||!Array.isArray(e))return"unknown";let t=e.filter(r=>typeof r=="string"?!["body","query","path","header"].includes(r):!0);return t.length>0?t.join("."):"unknown"}function Zv(e){if(!Array.isArray(e))return{errors:[],message:typeof e=="string"?e:"Validation error"};let t=e.map((o,s)=>{let a=n8(o.loc),i=a;return a==="unknown"&&o.type&&(i=o.type==="missing"?"required field":o.type),{field:i,message:o.msg,type:o.type,context:o.ctx}}),r=t.length,n=r===1?`Validation failed: ${t[0].message}`:`Validation failed (${r} issue${r>1?"s":""})`;return{errors:t,message:n}}function o8(e){return e===422?"validation":e===401||e===403?"auth":e>=400&&e<500?"business":e>=500?"server":"unknown"}function s8(e,t,r){if(e===422&&Array.isArray(t)){let{message:n}=Zv(t);return n}if(typeof t=="string")return t;if(t&&typeof t=="object"&&"message"in t){let n=t.message;if(typeof n=="string")return n}return r}function a8(e){let t=e.status??0,r=e.statusText??"Unknown Error",n=e.detail,o=i8(n);if(o)return new Ec(o.message,{status:t,statusText:r,detail:n,errorCode:o.error_code,structuredDetails:o.details,suggestions:o.suggestions,links:o.links});let s=o8(t),a=s8(t,n,e.message),i={status:t,statusText:r,detail:n};if(s==="validation"&&Array.isArray(n)){let{errors:c}=Zv(n);return new QI(a,{...i,validationErrors:c})}return s==="auth"?new e8(a,i):s==="business"?new _l(a,i):s==="server"?new t8(a,i):new r8(a,i)}var Ec=class extends _l{constructor(e,t){super(e,t),this.isResourceError=!0,this.errorCode=t.errorCode,this.structuredDetails=t.structuredDetails,this.suggestions=t.suggestions,this.links=t.links}};function i8(e){if(!e||typeof e!="object")return null;let t=e;return t.error_code&&typeof t.error_code=="string"&&t.message&&typeof t.message=="string"?{error_code:t.error_code,message:t.message,details:t.details,suggestions:t.suggestions,links:t.links}:null}function Il(e,t){let{showErrorCode:r=!0,showSuggestions:n=!0,showLinks:o=!0}=t??{},s=[];return r&&e.errorCode?s.push(`Error [${e.errorCode}]: ${e.message}`):s.push(e.message),e.structuredDetails&&e.structuredDetails.length>0&&(s.push(""),s.push("Details:"),e.structuredDetails.forEach(a=>{a.message?s.push(` - ${a.message}`):a.field&&a.value!==void 0&&s.push(` - ${a.field}: ${a.value}`)})),n&&e.suggestions&&e.suggestions.length>0&&(s.push(""),s.push("Suggestions:"),e.suggestions.forEach(a=>{s.push(` - ${a}`)})),o&&e.links&&e.links.length>0&&(s.push(""),s.push("Learn more:"),e.links.forEach(a=>{s.push(` - ${a.label}: ${a.url}`)})),s.join(`
58
+ `)}var H0=["2025-10-28","2026-01-21"],c8="2026-01-21",ei=(0,Jv.default)("phala::api-client");function m8(e){return Object.entries(e).map(([t,r])=>` -H "${t}: ${r}"`).join(`
59
+ `)}function u8(e){return e?` -d '${(typeof e=="string"?e:JSON.stringify(e,null,2)).replace(/'/g,"\\'")}'`:""}function Hv(e,t,r,n){let o=[];r.forEach((i,c)=>{o.push(`${c}: ${i}`)});let s=o.join(`
60
60
  `),a=typeof n=="string"?n:JSON.stringify(n,null,2);return[`< HTTP/1.1 ${e} ${t}`,s?`< ${s.replace(/\n/g,`
61
61
  < `)}`:"","",a].filter(Boolean).join(`
62
- `)}var i8=class Zv{constructor(t={}){this.emitter=vh();let r=t.apiKey||process?.env?.PHALA_CLOUD_API_KEY,n=t.baseURL||process?.env?.PHALA_CLOUD_API_PREFIX||"https://cloud-api.phala.com/api/v1",o=t.version&&H0.includes(t.version)?t.version:o8;this.config={...t,apiKey:r,baseURL:n,version:o};let{apiKey:s,baseURL:a,timeout:i,headers:c,useCookieAuth:m,onResponseError:u,...p}=this.config,l={"X-Phala-Version":o,"Content-Type":"application/json"};c&&typeof c=="object"&&Object.entries(c).forEach(([d,g])=>{typeof g=="string"&&(l[d]=g)}),!m&&s&&(l["X-API-Key"]=s),this.fetchInstance=KI.create({baseURL:a,timeout:i||3e4,headers:l,...m?{credentials:"include"}:{},...p,onRequest({request:d,options:g}){if(Qa.enabled){let h=g.method||"GET",y=typeof d=="string"?d:d.url,b=y.startsWith("http")?y:`${a}${y}`,x={};g.headers&&typeof g.headers=="object"&&Object.entries(g.headers).forEach(([S,E])=>{typeof E=="string"&&(x[S]=E)});let v=[`> curl -X ${h} "${b}"`,s8(x),g.body?a8(g.body):""].filter(Boolean).join(`
63
- `);Qa(`
62
+ `)}var p8=class Yv{constructor(t={}){this.emitter=wh();let r=t.apiKey||process?.env?.PHALA_CLOUD_API_KEY,n=t.baseURL||process?.env?.PHALA_CLOUD_API_PREFIX||"https://cloud-api.phala.com/api/v1",o=t.version&&H0.includes(t.version)?t.version:c8;this.config={...t,apiKey:r,baseURL:n,version:o};let{apiKey:s,baseURL:a,timeout:i,headers:c,useCookieAuth:m,onResponseError:u,...p}=this.config,f={"X-Phala-Version":o,"Content-Type":"application/json"};c&&typeof c=="object"&&Object.entries(c).forEach(([d,g])=>{typeof g=="string"&&(f[d]=g)}),!m&&s&&(f["X-API-Key"]=s),this.fetchInstance=YI.create({baseURL:a,timeout:i||3e4,headers:f,...m?{credentials:"include"}:{},...p,onRequest({request:d,options:g}){if(ei.enabled){let h=g.method||"GET",y=typeof d=="string"?d:d.url,b=y.startsWith("http")?y:`${a}${y}`,x={};g.headers&&typeof g.headers=="object"&&Object.entries(g.headers).forEach(([S,k])=>{typeof k=="string"&&(x[S]=k)});let v=[`> curl -X ${h} "${b}"`,m8(x),g.body?u8(g.body):""].filter(Boolean).join(`
63
+ `);ei(`
64
64
  === REQUEST ===
65
65
  %s
66
- `,v)}},onResponse({request:d,response:g,options:h}){if(Qa.enabled){let y=h.method||"GET",b=typeof d=="string"?d:d.url;Qa(`
66
+ `,v)}},onResponse({request:d,response:g,options:h}){if(ei.enabled){let y=h.method||"GET",b=typeof d=="string"?d:d.url;ei(`
67
67
  === RESPONSE [%s %s] (%dms) ===
68
68
  %s
69
- `,y,b,g.headers.get("x-response-time")||"?",jv(g.status,g.statusText,g.headers,g._data))}},onResponseError:({request:d,response:g,options:h})=>{if(Qa.enabled){console.warn(`HTTP ${g.status}: ${g.url}`);let y=h.method||"GET",b=typeof d=="string"?d:d.url;Qa(`
69
+ `,y,b,g.headers.get("x-response-time")||"?",Hv(g.status,g.statusText,g.headers,g._data))}},onResponseError:({request:d,response:g,options:h})=>{if(ei.enabled){console.warn(`HTTP ${g.status}: ${g.url}`);let y=h.method||"GET",b=typeof d=="string"?d:d.url;ei(`
70
70
  === ERROR RESPONSE [%s %s] ===
71
71
  %s
72
- `,y,b,jv(g.status,g.statusText,g.headers,g._data))}u&&u({request:d,response:g,options:h})}})}get raw(){return this.fetchInstance}on(t,r){this.emitter.on(t,r)}off(t,r){this.emitter.off(t,r)}once(t,r){let n=o=>{r(o),this.emitter.off(t,n)};this.emitter.on(t,n)}async request(t,r){try{let n=r?.method||"GET";return await this.fetchInstance(t,{...r,method:n})}catch(n){let o=this.convertToRequestError(n);throw this.emitError(o)}}async requestFull(t,r){try{let n=r?.method||"GET",o=await this.fetchInstance.raw(t,{...r,method:n,ignoreResponseError:!0});return{status:o.status,statusText:o.statusText,headers:o.headers,data:o._data,ok:o.ok}}catch(n){let o=this.convertToRequestError(n);throw this.emitError(o)}}async get(t,r){try{return await this.fetchInstance(t,{...r,method:"GET"})}catch(n){let o=this.convertToRequestError(n);throw this.emitError(o)}}async post(t,r,n){try{return await this.fetchInstance(t,{...n,method:"POST",body:r})}catch(o){let s=this.convertToRequestError(o);throw this.emitError(s)}}async put(t,r,n){try{return await this.fetchInstance(t,{...n,method:"PUT",body:r})}catch(o){let s=this.convertToRequestError(o);throw this.emitError(s)}}async patch(t,r,n){try{return await this.fetchInstance(t,{...n,method:"PATCH",body:r})}catch(o){let s=this.convertToRequestError(o);throw this.emitError(s)}}async delete(t,r){try{return await this.fetchInstance(t,{...r,method:"DELETE"})}catch(n){let o=this.convertToRequestError(n);throw this.emitError(o)}}convertToRequestError(t){return t&&typeof t=="object"&&"data"in t?B0.fromFetchError(t):t instanceof Error?B0.fromError(t):new B0("Unknown error occurred",{detail:"Unknown error occurred"})}emitError(t){let r=r8(t);return this.emitter.emit("error",r),r}async safeRequest(t){try{return{success:!0,data:await t()}}catch(r){if(r instanceof tn)return{success:!1,error:r};let n=this.convertToRequestError(r);return this.emitError(n),{success:!1,error:n}}}async safeGet(t,r){return this.safeRequest(()=>this.get(t,r))}async safePost(t,r,n){return this.safeRequest(()=>this.post(t,r,n))}async safePut(t,r,n){return this.safeRequest(()=>this.put(t,r,n))}async safePatch(t,r,n){return this.safeRequest(()=>this.patch(t,r,n))}async safeDelete(t,r){return this.safeRequest(()=>this.delete(t,r))}async safeRequestMethod(t,r){return this.safeRequest(()=>this.request(t,r))}async safeRequestFull(t,r){return this.safeRequest(()=>this.requestFull(t,r))}withVersion(t){return new Zv({...this.config,version:t})}extend(t){let r=typeof t=="function"?t(this):t,n=Object.create(this);for(let[o,s]of Object.entries(r))typeof s=="function"&&(n[o]=(...a)=>s(this,...a));return n}};function c8(e={}){return new i8(e)}var m8=_e.object({username:_e.string(),email:_e.string(),role:_e.enum(["admin","user"]),avatar:_e.string(),email_verified:_e.boolean(),totp_enabled:_e.boolean(),has_backup_codes:_e.boolean(),flag_has_password:_e.boolean()}).passthrough(),u8=_e.object({id:_e.string(),name:_e.string(),slug:_e.string().nullable(),tier:_e.string(),role:_e.string(),avatar:_e.string().nullable().optional()}).passthrough(),p8=_e.object({balance:_e.string().or(_e.number()),granted_balance:_e.string().or(_e.number()),is_post_paid:_e.boolean(),outstanding_amount:_e.string().or(_e.number()).nullable()}).passthrough(),l8=_e.object({user:m8,workspace:u8,credits:p8}).passthrough(),f8=xo.object({username:xo.string(),email:xo.string(),credits:xo.number(),granted_credits:xo.number(),avatar:xo.string(),team_name:xo.string(),team_tier:xo.string()}).passthrough();function d8(e){return e==="2025-10-28"?f8:l8}async function Yv(e,t){let r=await e.get("/auth/me");return t?.schema===!1?r:(t?.schema||d8(e.config.version)).parse(r)}async function gt(e,t){try{return{success:!0,data:await Yv(e,t)}}catch(r){return r&&typeof r=="object"&&("status"in r||"issues"in r)?{success:!1,error:r}:{success:!1,error:{name:"Error",message:r instanceof Error?r.message:String(r)}}}}var g8={[Hu.id]:Hu,[Li.id]:Li,[Wm.id]:Wm},h8=vo.object({id:vo.string(),slug:vo.string().nullable(),url:vo.string(),version:vo.string(),chain_id:vo.number().nullable(),kms_contract_address:vo.string().nullable().transform(e=>e),gateway_app_id:vo.string().nullable().transform(e=>e)}).passthrough(),rn=h8.transform(e=>{if(e.chain_id!=null){let t=g8[e.chain_id];if(t)return{...e,chain:t}}return e});function Xv(e){if(e?.schema!==void 0&&e?.schema!==!1&&(typeof e.schema!="object"||e.schema===null||!("parse"in e.schema)||typeof e.schema.parse!="function"))throw new Error("Invalid schema: must be a Zod schema object, false, or undefined")}function Qv(e){if(e?.schema!==void 0&&e?.schema!==!1&&(typeof e.schema!="object"||e.schema===null||!("parse"in e.schema)||typeof e.schema.parse!="function"))return{success:!1,error:{name:"ZodError",message:"Invalid schema: must be a Zod schema object, false, or undefined",issues:[{code:"invalid_type",expected:"object",received:typeof e.schema,path:["schema"],message:"Invalid schema: must be a Zod schema object, false, or undefined"}]}}}function ew(e,t){function r(a,i){return n(a,i)}async function n(a,i){Xv(i);let c=await t(a);return i?.schema===!1?c:(i?.schema||e).parse(c)}function o(a,i){return s(a,i)}async function s(a,i){let c=Qv(i);if(c)return c;let m=await(async()=>{try{return{success:!0,data:await t(a)}}catch(p){return p&&typeof p=="object"&&"status"in p?{success:!1,error:p}:p&&typeof p=="object"&&"issues"in p?{success:!1,error:p}:{success:!1,error:{name:"Error",message:p instanceof Error?p.message:String(p)}}}})();return m.success?i?.schema===!1?{success:!0,data:m.data}:(i?.schema||e).safeParse(m.data):m}return{action:r,safeAction:o}}function J(e,t){function r(a,...i){let[c,m]=i;return n(a,c,m)}async function n(a,i,c){Xv(c);let m=await t(a,i);return c?.schema===!1?m:(c?.schema||e).parse(m)}function o(a,...i){let[c,m]=i;return s(a,c,m)}async function s(a,i,c){let m=Qv(c);if(m)return m;let u=await(async()=>{try{return{success:!0,data:await t(a,i)}}catch(l){return l&&typeof l=="object"&&"status"in l?{success:!1,error:l}:l&&typeof l=="object"&&"issues"in l?{success:!1,error:l}:{success:!1,error:{name:"Error",message:l instanceof Error?l.message:String(l)}}}})();return u.success?c?.schema===!1?{success:!0,data:u.data}:(c?.schema||e).safeParse(u.data):u}return{action:r,safeAction:o}}var y8=X.object({name:X.string(),is_dev:X.boolean(),version:X.union([X.tuple([X.number(),X.number(),X.number()]),X.tuple([X.number(),X.number(),X.number(),X.number()])]),os_image_hash:X.string().nullable().optional()}).passthrough(),b8=X.object({teepod_id:X.number(),name:X.string(),listed:X.boolean(),resource_score:X.number(),remaining_vcpu:X.number(),remaining_memory:X.number(),remaining_cvm_slots:X.number(),images:X.array(y8),support_onchain_kms:X.boolean().optional(),fmspc:X.string().nullable().optional(),device_id:X.string().nullable().optional(),region_identifier:X.string().nullable().optional(),default_kms:X.string().nullable().optional(),kms_list:X.array(X.string()).default([])}).passthrough(),x8=X.object({max_instances:X.number().nullable().optional(),max_vcpu:X.number().nullable().optional(),max_memory:X.number().nullable().optional(),max_disk:X.number().nullable().optional()}).passthrough(),v8=X.object({tier:X.string(),capacity:x8,nodes:X.array(b8),kms_list:X.array(rn)}).passthrough(),{action:w8,safeAction:V0}=ew(v8,async e=>await e.get("/teepods/available")),tw=Le.object({id:Le.string(),name:Le.string(),description:Le.string(),vcpu:Le.number(),memory_mb:Le.number(),hourly_rate:Le.string(),requires_gpu:Le.boolean(),default_disk_size_gb:Le.number().default(20),family:Le.string().nullable()}).passthrough(),C8=Le.object({name:Le.string(),items:Le.array(tw),total:Le.number()}).strict(),S8=Le.object({result:Le.array(C8)}).strict(),k8=Le.object({items:Le.array(tw),total:Le.number(),family:Le.string()}).strict(),E8=Le.object({family:Le.string()}).strict(),{action:G0,safeAction:_8}=J(S8,async e=>await e.get("/instance-types")),{action:q0,safeAction:I8}=J(k8,async(e,t)=>{let r=E8.parse(t);return await e.get(`/instance-types/${r.family}`)}),rw=Ct.object({id:Ct.string(),name:Ct.string(),slug:Ct.string().nullable(),tier:Ct.string(),role:Ct.string(),is_default:Ct.boolean(),created_at:Ct.string(),confidential_models_enabled:Ct.boolean().optional()}).passthrough(),P8=Ct.object({has_more:Ct.boolean(),next_cursor:Ct.string().nullable(),total:Ct.number().nullable()}).passthrough(),A8=Ct.object({data:Ct.array(rw),pagination:P8}).passthrough(),{action:T8,safeAction:$8}=J(A8,async(e,t)=>{let r=new URLSearchParams;t?.cursor&&r.append("cursor",t.cursor),t?.limit&&r.append("limit",t.limit.toString());let n=r.toString()?`/workspaces?${r.toString()}`:"/workspaces";return await e.get(n)}),{action:R8,safeAction:M8}=J(rw,async(e,t)=>await e.get(`/workspaces/${t}`)),F8=$.object({id:$.string(),name:$.string(),status:$.string(),uptime:$.string(),app_url:$.string().nullable(),app_id:$.string(),instance_id:$.string().nullable(),configuration:$.any().optional(),exited_at:$.string().nullable(),boot_progress:$.string().nullable(),boot_error:$.string().nullable(),shutdown_progress:$.string().nullable(),image_version:$.string().nullable()}),N8=$.object({id:$.number(),username:$.string()}),nw=$.object({id:$.number(),name:$.string(),region_identifier:$.string().nullable().optional()}),K0=$.object({vcpu:$.number(),memory:$.number(),disk_size:$.number(),gpu_count:$.number().default(0)}),W0=$.object({app:$.string(),instance:$.string()}),L8=$.object({hosted:F8,name:$.string(),managed_user:N8.nullable(),node:nw.nullable(),listed:$.boolean().default(!1),status:$.string(),in_progress:$.boolean().default(!1),dapp_dashboard_url:$.string().nullable(),syslog_endpoint:$.string().nullable(),allow_upgrade:$.boolean().default(!1),project_id:$.string().nullable(),project_type:$.string().nullable(),billing_period:$.string().nullable(),kms_info:rn.nullable(),vcpu:$.number().nullable(),memory:$.number().nullable(),disk_size:$.number().nullable(),gateway_domain:$.string().nullable(),public_urls:$.array(W0),machine_info:K0.nullable().optional(),updated_at:$.string().nullable().optional()}),ow=$.object({id:$.number(),name:$.string(),status:$.string(),in_progress:$.boolean().optional().default(!1),teepod_id:$.number().nullable(),teepod:nw.optional().nullable(),app_id:$.string(),vm_uuid:$.string().nullable(),instance_id:$.string().nullable(),vcpu:$.number(),memory:$.number(),disk_size:$.number(),base_image:$.string().nullable(),encrypted_env_pubkey:$.string().nullable(),listed:$.boolean().optional().default(!1),project_id:$.string().optional().nullable(),project_type:$.string().optional().nullable(),instance_type:$.string().optional().nullable(),public_sysinfo:$.boolean().optional().default(!1),public_logs:$.boolean().optional().default(!1),dapp_dashboard_url:$.string().optional().nullable(),syslog_endpoint:$.string().optional().nullable(),kms_info:rn.optional().nullable(),contract_address:$.string().optional().nullable(),deployer_address:$.string().optional().nullable(),scheduled_delete_at:$.string().optional().nullable(),public_urls:$.array(W0).optional().default([]),gateway_domain:$.string().optional().nullable(),machine_info:K0.optional().nullable(),updated_at:$.string().optional().nullable()}),B8=$.object({items:$.array(L8),total:$.number(),page:$.number(),page_size:$.number(),pages:$.number()}),D8=M.enum(["skip","hourly","monthly"]),U8=M.enum(["phala","ethereum","base","legacy"]),J0=M.object({object_type:M.literal("user"),id:M.string().nullable().optional(),username:M.string().nullable().optional(),avatar_url:M.string().nullable().optional()}),Z0=M.object({object_type:M.literal("workspace"),id:M.string(),name:M.string(),slug:M.string().nullable().optional(),avatar_url:M.string().nullable().optional()}),z8=M.object({instance_type:M.string().nullable().optional(),vcpu:M.number().int().nullable().optional(),memory_in_gb:M.number().nullable().optional(),disk_in_gb:M.number().int().nullable().optional(),gpus:M.number().int().nullable().optional(),compute_billing_price:M.string().nullable().optional(),billing_period:D8.nullable().optional()}),O8=M.object({name:M.string().nullable().optional(),version:M.string().nullable().optional(),is_dev:M.boolean().nullable().optional(),os_image_hash:M.string().nullable().optional()}),j8=M.object({chain_id:M.number().int().nullable().optional(),dstack_kms_address:M.string().nullable().optional(),dstack_app_address:M.string().nullable().optional(),deployer_address:M.string().nullable().optional(),rpc_endpoint:M.string().nullable().optional(),encrypted_env_pubkey:M.string().nullable().optional()}),H8=M.object({target:M.string().nullable().optional(),started_at:M.string().nullable().optional(),correlation_id:M.string().nullable().optional()}),V8=M.object({base_domain:M.string().nullable().optional(),cname:M.string().nullable().optional()}),sw=M.object({object_type:M.literal("node"),id:M.number().int().nullable().optional(),name:M.string().nullable().optional(),region:M.string().nullable().optional(),device_id:M.string().nullable().optional(),ppid:M.string().nullable().optional(),status:M.string().nullable().optional(),version:M.string().nullable().optional()});var kl=M.object({id:M.string(),name:M.string(),app_id:M.string().nullable().optional(),vm_uuid:M.string().nullable().optional(),instance_id:M.string().nullable().optional(),resource:z8,node_info:sw.nullable().optional(),os:O8.nullable().optional(),kms_type:U8.nullable().optional(),kms_info:j8.nullable().optional(),status:M.string(),progress:H8.nullable().optional(),compose_hash:M.string().nullable().optional(),gateway:V8,services:M.array(M.record(M.any())).optional().default([]),endpoints:M.array(W0).nullable().optional(),public_logs:M.boolean().optional(),public_sysinfo:M.boolean().optional(),public_tcbinfo:M.boolean().optional(),gateway_enabled:M.boolean().optional(),secure_time:M.boolean().optional(),listed:M.boolean().optional().default(!1),storage_fs:M.string().optional(),workspace:Z0.nullable().optional(),creator:J0.nullable().optional()}),G8=kl.extend({compose_file:M.union([M.record(M.any()),M.string()]).nullable().optional()}),q8=M.object({items:M.array(kl),total:M.number(),page:M.number(),page_size:M.number(),pages:M.number()});function ii(e){return typeof e!="string"||e.length<5||e.length>63?!1:/^[a-zA-Z](?!.*--)([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(e)}function aw(e){if(typeof e!="string")return vl();let t=e;return t=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),t=t.replace(/_/g,"-"),t=t.replace(/[^a-z0-9\s-]/gi,"-").replace(/\s+/g,"-"),t=t.replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),t.length===0||(/^\d/.test(t)&&(t=`dstack-app-${t}`),t.length<5&&(t=`dstack-app-${t}`),t=t.slice(0,63).replace(/-+$/,""),t.length===0)||!ii(t)?vl():t}function vl(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,6);return`dstack-app-${e}-${t}`}var lr=ei.object({id:ei.string().optional(),uuid:ei.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i,"Invalid UUID format").optional(),app_id:ei.string().optional(),instance_id:ei.string().optional(),name:ei.string().refine(ii,{message:"Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens"}).optional()}),nn=e=>e.refine(t=>{let r=t;return!!(r.id||r.uuid||r.app_id||r.instance_id||r.name)},{message:"One of id, uuid, app_id, instance_id, or name must be provided"}),K8=nn(lr),Q=K8.transform(e=>{let t;if(e.id)t=e.id;else if(e.uuid)t=e.uuid;else if(e.app_id)t=e.app_id;else if(e.instance_id)t=e.instance_id;else{if(e.name)return{cvmId:e.name};throw new Error("No valid identifier provided")}let r=/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i,n=/^[0-9a-f]{40}$/i,o;return r.test(t)?o=t.replace(/-/g,""):n.test(t)?o=`app_${t}`:o=t,{cvmId:o}}),W8=Q;function J8(e){return e==="2025-10-28"?ow:G8}async function iw(e,t){let{cvmId:r}=W8.parse(t),n=await e.get(`/cvms/${r}`);return J8(e.config.version).parse(n)}async function $e(e,t){try{return{success:!0,data:await iw(e,t)}}catch(r){return r&&typeof r=="object"&&("status"in r||"issues"in r)?{success:!1,error:r}:{success:!1,error:{name:"Error",message:r instanceof Error?r.message:String(r)}}}}var Z8=ti.object({page:ti.number().int().min(1).optional(),page_size:ti.number().int().min(1).optional(),node_id:ti.number().int().min(1).optional(),teepod_id:ti.number().int().min(1).optional(),user_id:ti.string().optional()}).strict();function Y8(e){return e==="2025-10-28"?B8:q8}async function cw(e,t){let r=Z8.parse(t??{}),n=await e.get("/cvms/paginated",{params:r});return Y8(e.config.version).parse(n)}async function _c(e,t){try{return{success:!0,data:await cw(e,t)}}catch(r){return r&&typeof r=="object"&&("status"in r||"issues"in r)?{success:!1,error:r}:{success:!1,error:{name:"Error",message:r instanceof Error?r.message:String(r)}}}}var kc=200*1024;function mw(e,t,r){let n=new TextEncoder,o=e?n.encode(e).byteLength:0,s=t?n.encode(t).byteLength:0,a=o+s;if(a>kc){let i=kc/1024,c=Math.ceil(a/1024);r.addIssue({code:ft.ZodIssueCode.custom,message:`Combined size of docker_compose_file and pre_launch_script must not exceed ${i}KB (current: ${c}KB)`})}}var uw=ft.object({allowed_envs:ft.array(ft.string()).optional(),docker_compose_file:ft.string(),features:ft.array(ft.string()).optional(),name:ft.string().optional(),manifest_version:ft.number().optional(),kms_enabled:ft.boolean().optional(),public_logs:ft.boolean().optional(),public_sysinfo:ft.boolean().optional(),tproxy_enabled:ft.boolean().optional(),pre_launch_script:ft.string().optional(),env_pubkey:ft.string().optional(),salt:ft.string().optional().nullable()}).passthrough().superRefine((e,t)=>{mw(e.docker_compose_file,e.pre_launch_script,t)}),X8=Y.object({app_id:Y.string().nullable().optional(),app_env_encrypt_pubkey:Y.string().nullable().optional(),compose_hash:Y.string(),kms_info:rn.nullable().optional(),fmspc:Y.string().nullable().optional(),device_id:Y.string().nullable().optional(),os_image_hash:Y.string().nullable().optional(),instance_type:Y.string().nullable().optional(),teepod_id:Y.number().nullable().optional(),node_id:Y.number().nullable().optional(),kms_id:Y.string().nullable().optional()}).passthrough().transform(e=>{if("teepod_id"in e&&e.teepod_id!==void 0){let{teepod_id:t,...r}=e;return{...r,node_id:t}}return e}),D0="Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens",Q8=Y.object({node_id:Y.number().optional(),teepod_id:Y.number().optional(),region:Y.string().optional(),name:Y.string().min(5,D0).max(63,D0).refine(e=>ii(e),D0),instance_type:Y.string().optional(),image:Y.string().optional(),vcpu:Y.number().optional(),memory:Y.number().optional(),disk_size:Y.number().optional(),compose_file:Y.object({allowed_envs:Y.array(Y.string()).optional(),pre_launch_script:Y.string().optional(),docker_compose_file:Y.string().optional(),name:Y.string().optional().default(""),kms_enabled:Y.boolean().optional(),public_logs:Y.boolean().optional(),public_sysinfo:Y.boolean().optional(),gateway_enabled:Y.boolean().optional(),tproxy_enabled:Y.boolean().optional()}).superRefine((e,t)=>{mw(e.docker_compose_file,e.pre_launch_script,t)}),listed:Y.boolean().optional(),kms_id:Y.string().optional(),kms:Y.enum(["PHALA","ETHEREUM","BASE"]).optional(),kms_contract:Y.string().optional(),env_keys:Y.array(Y.string()).optional(),nonce:Y.number().optional(),app_id:Y.string().optional()}).passthrough().transform(e=>!e.instance_type&&!e.vcpu&&!e.memory?{...e,instance_type:"tdx.small"}:e);function eP(e){if(!e.compose_file)return e;let t={...e.compose_file};return typeof t.gateway_enabled=="boolean"&&typeof t.tproxy_enabled=="boolean"?delete t.tproxy_enabled:typeof t.tproxy_enabled=="boolean"&&typeof t.gateway_enabled>"u"&&(t.gateway_enabled=t.tproxy_enabled,delete t.tproxy_enabled,(typeof window<"u"?window.console:globalThis.console)&&console.warn("[phala/cloud] tproxy_enabled is deprecated, please use gateway_enabled instead. See docs for migration.")),{...e,compose_file:t}}var{action:tP,safeAction:Y0}=J(X8,async(e,t)=>{let r=Q8.parse(t),n=eP(r),o={...n};return typeof n.node_id=="number"?(o={...n,teepod_id:n.node_id},delete o.node_id):typeof n.teepod_id=="number"&&console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead."),await e.post("/cvms/provision",o)}),rP=te.object({id:te.number(),name:te.string(),status:te.string(),teepod_id:te.number(),teepod:te.object({id:te.number(),name:te.string()}).nullable(),user_id:te.number().nullable(),app_id:te.string().nullable(),vm_uuid:te.string().nullable(),instance_id:te.string().nullable(),app_url:te.string().nullable().default(null),base_image:te.string().nullable(),vcpu:te.number(),memory:te.number(),disk_size:te.number(),manifest_version:te.number().nullable().default(2),version:te.string().nullable().default("1.0.0"),runner:te.string().nullable().default("docker-compose"),docker_compose_file:te.string().nullable(),features:te.array(te.string()).nullable().default(["kms","tproxy-net"]),created_at:te.string(),encrypted_env_pubkey:te.string().nullable().optional(),app_auth_contract_address:te.string().nullable().optional(),deployer_address:te.string().nullable().optional()}).passthrough(),sse=te.object({encrypted_env:te.string().optional().nullable(),app_id:te.string(),compose_hash:te.string(),kms_id:te.string().optional(),contract_address:te.string().optional(),deployer_address:te.string().optional(),env_keys:te.array(te.string()).optional().nullable()}).passthrough(),{action:nP,safeAction:Pl}=J(rP,async(e,t)=>await e.post("/cvms",t));function O0(e){return e==null?e:Array.isArray(e)?e.map(O0):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,r)=>{let n=e[r];return t[r]=O0(n),t},{}):e}function pw(e){let t={...e};return t.runner==="bash"&&"docker_compose_file"in t?delete t.docker_compose_file:t.runner==="docker-compose"&&"bash_script"in t&&delete t.bash_script,"pre_launch_script"in t&&!t.pre_launch_script&&delete t.pre_launch_script,t}function lw(e){let t=O0(e),r=JSON.stringify(t,null,4);return r=r.replace(/": /g,'":'),r}function sP(e){let t=pw(e),r=lw(t);return oP.createHash("sha256").update(r,"utf8").digest("hex")}function aP(e){let t=e;return{...e,getHash:()=>sP(t),toString:()=>lw(pw(t))}}var iP=uw.transform(e=>aP(e)),cP=Q,{action:mP,safeAction:Ic}=J(iP,async(e,t)=>{let{cvmId:r}=cP.parse(t);return await e.get(`/cvms/${r}/compose_file`)}),uP=Qr.object({id:Qr.string().optional(),uuid:Qr.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),app_id:Qr.string().refine(e=>!e.startsWith("app_")&&e.length===40,"app_id should be 40 characters without prefix").transform(e=>e.startsWith("app_")?e:`app_${e}`).optional(),instance_id:Qr.string().refine(e=>!e.startsWith("instance_")&&e.length===40,"instance_id should be 40 characters without prefix").transform(e=>e.startsWith("instance_")?e:`instance_${e}`).optional(),app_compose:uw,update_env_vars:Qr.boolean().optional().nullable()}).refine(e=>!!(e.id||e.uuid||e.app_id||e.instance_id),"One of id, uuid, app_id, or instance_id must be provided").transform(e=>({cvmId:e.id||e.uuid||e.app_id||e.instance_id,request:{...e.app_compose,update_env_vars:e.update_env_vars},_raw:e})),pP=Qr.object({app_id:Qr.string().nullable(),device_id:Qr.string().nullable(),compose_hash:Qr.string(),kms_info:rn.nullable().optional()}).passthrough(),{action:lP,safeAction:X0}=J(pP,async(e,t)=>{let r=uP.parse(t);return await e.post(`/cvms/${r.cvmId}/compose_file/provision`,r.request)}),fP=Ar.object({id:Ar.string().optional(),uuid:Ar.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),app_id:Ar.string().refine(e=>!e.startsWith("app_")&&e.length===40,"app_id should be 40 characters without prefix").transform(e=>e.startsWith("app_")?e:`app_${e}`).optional(),instance_id:Ar.string().refine(e=>!e.startsWith("instance_")&&e.length===40,"instance_id should be 40 characters without prefix").transform(e=>e.startsWith("instance_")?e:`instance_${e}`).optional(),compose_hash:Ar.string().min(1,"Compose hash is required"),encrypted_env:Ar.string().optional(),env_keys:Ar.array(Ar.string()).optional(),update_env_vars:Ar.boolean().optional().nullable()}).refine(e=>!!(e.id||e.uuid||e.app_id||e.instance_id),"One of id, uuid, app_id, or instance_id must be provided").transform(e=>({cvmId:e.id||e.uuid||e.app_id||e.instance_id,compose_hash:e.compose_hash,encrypted_env:e.encrypted_env,env_keys:e.env_keys,update_env_vars:e.update_env_vars??void 0,_raw:e})),dP=Ar.any().transform(()=>{}),{action:gP,safeAction:Q0}=J(dP,async(e,t)=>{let r=fP.parse(t);return await e.patch(`/cvms/${r.cvmId}/compose_file`,{compose_hash:r.compose_hash,encrypted_env:r.encrypted_env,env_keys:r.env_keys,update_env_vars:r.update_env_vars})}),hP=nn(lr.extend({encrypted_env:ot.string().describe("Encrypted environment variables (hex string)"),env_keys:ot.array(ot.string()).optional().describe("List of allowed environment variable keys"),compose_hash:ot.string().optional().describe("Compose hash for verification (Phase 2, required when env_keys changes)"),transaction_hash:ot.string().optional().describe("On-chain transaction hash for verification (Phase 2, required when env_keys changes)")})).transform(e=>{let{cvmId:t}=Q.parse(e);return{cvmId:t,request:{encrypted_env:e.encrypted_env,env_keys:e.env_keys,compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),yP=ot.object({status:ot.literal("in_progress"),message:ot.string(),correlation_id:ot.string(),allowed_envs_changed:ot.boolean()}),bP=ot.object({status:ot.literal("precondition_required"),message:ot.string(),compose_hash:ot.string(),app_id:ot.string(),device_id:ot.string(),kms_info:rn}),xP=ot.union([yP,bP]),{action:vP,safeAction:wP}=J(xP,async(e,t)=>{let r=hP.parse(t);try{return await e.patch(`/cvms/${r.cvmId}/envs`,r.request)}catch(n){if(n instanceof tn&&n.status===465){let o=n.detail;if(o&&typeof o=="object"){let s=o;return{status:"precondition_required",message:s.message||"Compose hash verification required",compose_hash:s.compose_hash,app_id:s.app_id,device_id:s.device_id,kms_info:s.kms_info}}}throw n}}),CP=nn(lr.extend({docker_compose_file:Ft.string().describe("Docker Compose YAML content"),compose_hash:Ft.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:Ft.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=Q.parse(e);return{cvmId:t,request:{docker_compose_file:e.docker_compose_file,compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),SP=Ft.object({status:Ft.literal("in_progress"),message:Ft.string(),correlation_id:Ft.string()}),kP=Ft.object({status:Ft.literal("precondition_required"),message:Ft.string(),compose_hash:Ft.string(),app_id:Ft.string(),device_id:Ft.string(),kms_info:rn}),EP=Ft.union([SP,kP]),{action:_P,safeAction:IP}=J(EP,async(e,t)=>{let r=CP.parse(t),n={"Content-Type":"text/yaml"};r.request.compose_hash&&(n["X-Compose-Hash"]=r.request.compose_hash),r.request.transaction_hash&&(n["X-Transaction-Hash"]=r.request.transaction_hash);try{return await e.patch(`/cvms/${r.cvmId}/docker-compose`,r.request.docker_compose_file,{headers:n})}catch(o){if(o instanceof tn&&o.status===465){let s=o.detail;if(s&&typeof s=="object"){let a=s;return{status:"precondition_required",message:a.message||"Compose hash verification required",compose_hash:a.compose_hash,app_id:a.app_id,device_id:a.device_id,kms_info:a.kms_info}}}throw o}}),PP=nn(lr.extend({pre_launch_script:Nt.string().describe("Pre-launch script content (shell script)"),compose_hash:Nt.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:Nt.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=Q.parse(e);return{cvmId:t,request:{pre_launch_script:e.pre_launch_script,compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),AP=Nt.object({status:Nt.literal("in_progress"),message:Nt.string(),correlation_id:Nt.string()}),TP=Nt.object({status:Nt.literal("precondition_required"),message:Nt.string(),compose_hash:Nt.string(),app_id:Nt.string(),device_id:Nt.string(),kms_info:rn}),$P=Nt.union([AP,TP]),{action:RP,safeAction:MP}=J($P,async(e,t)=>{let r=PP.parse(t),n={"Content-Type":"text/plain"};r.request.compose_hash&&(n["X-Compose-Hash"]=r.request.compose_hash),r.request.transaction_hash&&(n["X-Transaction-Hash"]=r.request.transaction_hash);try{return await e.patch(`/cvms/${r.cvmId}/pre-launch-script`,r.request.pre_launch_script,{headers:n})}catch(o){if(o instanceof tn&&o.status===465){let s=o.detail;if(s&&typeof s=="object"){let a=s;return{status:"precondition_required",message:a.message||"Compose hash verification required",compose_hash:a.compose_hash,app_id:a.app_id,device_id:a.device_id,kms_info:a.kms_info}}}throw o}}),NP=Q,{action:LP,safeAction:BP}=J(FP.string(),async(e,t)=>{let{cvmId:r}=NP.parse(t);return await e.get(`/cvms/${r}/pre-launch-script`)}),DP=Hv.object({kms_id:Hv.string().min(1,"KMS ID is required")}),{action:UP,safeAction:zP}=J(rn,async(e,t)=>{let r=DP.parse(t);return await e.get(`/kms/${r.kms_id}`)}),OP=en.object({page:en.number().int().min(1).optional(),page_size:en.number().int().min(1).optional(),is_onchain:en.boolean().optional()}).strict(),jP=en.object({items:en.array(rn),total:en.number(),page:en.number(),page_size:en.number(),pages:en.number()}).strict(),{action:HP,safeAction:VP}=J(jP,async(e,t)=>{let r=OP.parse(t??{});return await e.get("/kms",{params:r})}),GP=ai.object({kms:ai.string().min(1,"KMS ID or slug is required"),app_id:ai.string().refine(e=>e.length===40||e.startsWith("0x")&&e.length===42,"App ID must be exactly 40 characters or 42 characters with 0x prefix")}).strict(),qP=ai.object({public_key:ai.string(),signature:ai.string()}).strict(),{action:KP,safeAction:Al}=J(qP,async(e,t)=>{let r=GP.parse(t);return await e.get(`/kms/${r.kms}/pubkey/${r.app_id}`)}),WP=rs.object({counts:rs.number().int().min(1).max(20).optional().default(1)}).strict(),JP=rs.object({app_ids:rs.array(rs.object({app_id:rs.string(),nonce:rs.number().int().min(0)}))}).strict(),{action:ZP,safeAction:YP}=J(JP,async(e,t)=>{let r=WP.parse(t??{}),n=new URLSearchParams;return n.append("counts",r.counts.toString()),await e.get(`/kms/phala/next_app_id?${n.toString()}`)}),Pc=Ce.object({id:Ce.number(),name:Ce.string(),status:Ce.string(),teepod_id:Ce.number(),teepod:Ce.object({id:Ce.number(),name:Ce.string(),region_identifier:Ce.string().nullable().optional()}).optional().nullable(),user_id:Ce.number().optional().nullable(),app_id:Ce.string(),vm_uuid:Ce.string().nullable(),instance_id:Ce.string().nullable(),app_url:Ce.string().optional().nullable(),base_image:Ce.string().optional().nullable(),vcpu:Ce.number(),memory:Ce.number(),disk_size:Ce.number(),manifest_version:Ce.number().optional().nullable(),version:Ce.string().optional().nullable(),runner:Ce.string().optional().nullable(),docker_compose_file:Ce.string().optional().nullable(),features:Ce.array(Ce.string()).optional().nullable(),created_at:Ce.string(),encrypted_env_pubkey:Ce.string().nullable()}),XP=Q,{action:QP,safeAction:eg}=J(Pc,async(e,t)=>{let{cvmId:r}=XP.parse(t);return await e.post(`/cvms/${r}/start`)}),eA=Q,{action:tA,safeAction:tg}=J(Pc,async(e,t)=>{let{cvmId:r}=eA.parse(t);return await e.post(`/cvms/${r}/stop`)}),rA=Q,{action:nA,safeAction:oA}=J(Pc,async(e,t)=>{let{cvmId:r}=rA.parse(t);return await e.post(`/cvms/${r}/shutdown`)}),aA=nn(lr.extend({force:sA.boolean().optional()})),{action:iA,safeAction:rg}=J(Pc,async(e,t)=>{let r=aA.parse(t),{cvmId:n}=Q.parse(r),{force:o=!1}=r;return await e.post(`/cvms/${n}/restart`,{force:o})}),mA=Q,{action:uA,safeAction:ng}=J(cA.void(),async(e,t)=>{let{cvmId:r}=mA.parse(t);await e.delete(`/cvms/${r}`)}),pA=pe.object({name:pe.string(),mount_point:pe.string(),total_size:pe.number(),free_size:pe.number()}),lA=pe.object({os_name:pe.string(),os_version:pe.string(),kernel_version:pe.string(),cpu_model:pe.string(),num_cpus:pe.number(),total_memory:pe.number(),available_memory:pe.number(),used_memory:pe.number(),free_memory:pe.number(),total_swap:pe.number(),used_swap:pe.number(),free_swap:pe.number(),uptime:pe.number(),loadavg_one:pe.number(),loadavg_five:pe.number(),loadavg_fifteen:pe.number(),disks:pe.array(pA)}),fA=pe.object({is_online:pe.boolean(),is_public:pe.boolean().default(!1),error:pe.string().nullable(),sysinfo:lA.nullable(),status:pe.string().nullable(),in_progress:pe.boolean().default(!1),boot_progress:pe.string().nullable(),boot_error:pe.string().nullable()}),dA=Q,{action:gA,safeAction:hA}=J(fA,async(e,t)=>{let{cvmId:r}=dA.parse(t);return await e.get(`/cvms/${r}/stats`)}),yA=Yr.object({app:Yr.string(),instance:Yr.string()}),bA=Yr.object({is_online:Yr.boolean(),is_public:Yr.boolean().default(!0),error:Yr.string().nullable(),internal_ip:Yr.string().nullable(),latest_handshake:Yr.string().nullable(),public_urls:Yr.array(yA).nullable()}),xA=Q,{action:vA,safeAction:wA}=J(bA,async(e,t)=>{let{cvmId:r}=xA.parse(t);return await e.get(`/cvms/${r}/network`)}),SA=Q,{action:kA,safeAction:EA}=J(CA.string(),async(e,t)=>{let{cvmId:r}=SA.parse(t);return await e.get(`/cvms/${r}/docker-compose.yml`)}),_A=Ne.object({id:Ne.string(),names:Ne.array(Ne.string()),image:Ne.string(),image_id:Ne.string(),command:Ne.string().nullable().optional(),created:Ne.number(),state:Ne.string(),status:Ne.string(),log_endpoint:Ne.string().nullable()}),IA=Ne.object({is_online:Ne.boolean(),is_public:Ne.boolean().default(!0),error:Ne.string().nullable(),docker_compose_file:Ne.string().nullable(),manifest_version:Ne.number().nullable(),version:Ne.string().nullable(),runner:Ne.string().nullable(),features:Ne.array(Ne.string()).nullable(),containers:Ne.array(_A).nullable()}),PA=Q,{action:AA,safeAction:og}=J(IA,async(e,t)=>{let{cvmId:r}=PA.parse(t);return await e.get(`/cvms/${r}/composition`)}),TA=V.object({common_name:V.string().nullable(),organization:V.string().nullable(),country:V.string().nullable(),state:V.string().nullable(),locality:V.string().nullable()}),$A=V.object({common_name:V.string().nullable(),organization:V.string().nullable(),country:V.string().nullable()}),RA=V.object({subject:TA,issuer:$A,serial_number:V.string(),not_before:V.string(),not_after:V.string(),version:V.string(),fingerprint:V.string(),signature_algorithm:V.string(),sans:V.array(V.string()).nullable(),is_ca:V.boolean(),position_in_chain:V.number().nullable(),quote:V.string().nullable(),app_id:V.string().nullable().optional(),cert_usage:V.string().nullable().optional()}),MA=V.object({imr:V.number(),event_type:V.number(),digest:V.string(),event:V.string(),event_payload:V.string()}),FA=V.object({mrtd:V.string(),rootfs_hash:V.string().nullable().optional(),rtmr0:V.string(),rtmr1:V.string(),rtmr2:V.string(),rtmr3:V.string(),event_log:V.array(MA),app_compose:V.string()}),NA=V.object({name:V.string().nullable(),is_online:V.boolean(),is_public:V.boolean().default(!0),error:V.string().nullable(),app_certificates:V.array(RA).nullable(),tcb_info:FA.nullable(),compose_file:V.string().nullable()}),LA=Q,{action:BA,safeAction:DA}=J(NA,async(e,t)=>{let{cvmId:r}=LA.parse(t);return await e.get(`/cvms/${r}/attestation`)}),UA=nn(lr.extend({vcpu:oi.number().optional(),memory:oi.number().optional(),disk_size:oi.number().optional(),instance_type:oi.string().optional(),allow_restart:oi.boolean().optional()})),{action:zA,safeAction:OA}=J(oi.void(),async(e,t)=>{let r=UA.parse(t),{cvmId:n}=Q.parse(r),{...o}=r;await e.patch(`/cvms/${n}/resources`,o)}),jA=nn(lr.extend({public_sysinfo:U0.boolean(),public_logs:U0.boolean(),public_tcbinfo:U0.boolean().optional()})),{action:HA,safeAction:sg}=J(ow,async(e,t)=>{let r=jA.parse(t),{cvmId:n}=Q.parse(r),{public_sysinfo:o,public_logs:s,public_tcbinfo:a}=r;return await e.patch(`/cvms/${n}/visibility`,{public_sysinfo:o,public_logs:s,public_tcbinfo:a})}),Vv=dt.object({name:dt.string(),os_image_hash:dt.string().nullable(),is_current:dt.boolean()}),VA=dt.object({version:dt.union([dt.tuple([dt.number(),dt.number(),dt.number(),dt.number()]),dt.tuple([dt.number(),dt.number(),dt.number()])]),prod:Vv.nullable(),dev:Vv.nullable()}),GA=dt.array(VA),qA=Q,{action:KA,safeAction:WA}=J(GA,async(e,t)=>{let{cvmId:r}=qA.parse(t);return await e.get(`/cvms/${r}/available-os-images`)}),JA=nn(lr.extend({os_image_name:fw.string().min(1,"OS image name is required")})),{action:ZA,safeAction:YA}=J(fw.void(),async(e,t)=>{let r=JA.parse(t),{cvmId:n}=Q.parse(r),{os_image_name:o}=r;await e.patch(`/cvms/${n}/os-image`,{os_image_name:o})}),XA=Zr.object({id:Zr.string().optional(),instance_id:Zr.string().optional(),name:Zr.string(),status:Zr.string(),uptime:Zr.string().optional(),exited_at:Zr.string().optional(),boot_progress:Zr.string().optional(),boot_error:Zr.string().optional(),shutdown_progress:Zr.string().optional()}),QA=Q,{action:eT,safeAction:tT}=J(XA,async(e,t)=>{let{cvmId:r}=QA.parse(t);return await e.get(`/cvms/${r}/state`)}),dw=Mt.object({id:Mt.string(),user_id:Mt.string(),name:Mt.string(),public_key:Mt.string(),fingerprint:Mt.string(),key_type:Mt.string(),source:Mt.string(),key_metadata:Mt.record(Mt.unknown()).nullable().optional(),last_synced_at:Mt.string().nullable().optional(),created_at:Mt.string(),updated_at:Mt.string()}),rT=Mt.array(dw);async function gw(e){let t=await e.get("/user/ssh-keys");return rT.parse(t)}async function Ac(e){try{return{success:!0,data:await gw(e)}}catch(t){return t&&typeof t=="object"&&("status"in t||"issues"in t)?{success:!1,error:t}:{success:!1,error:{name:"Error",message:t instanceof Error?t.message:String(t)}}}}var nT=wo.object({github_username:wo.string().min(1)}),oT=wo.object({github_username:wo.string(),keys_added:wo.number().int(),keys_skipped:wo.number().int(),errors:wo.array(wo.string()).default([])}),{action:sT,safeAction:ag}=J(oT,async(e,t)=>{let{github_username:r}=nT.parse(t);return await e.post("/user/ssh-keys/github-profile",{github_username:r})}),aT=z0.object({name:z0.string().min(1),public_key:z0.string().min(1)}),{action:iT,safeAction:ig}=J(dw,async(e,t)=>{let{name:r,public_key:n}=aT.parse(t);return await e.post("/user/ssh-keys",{name:r,public_key:n})}),cT=j0.object({keyId:j0.string().min(1)}),{action:mT,safeAction:cg}=J(j0.void(),async(e,t)=>{let{keyId:r}=cT.parse(t);await e.delete(`/user/ssh-keys/${r}`)}),uT=ts.object({synced_count:ts.number().int(),keys_added:ts.number().int(),keys_updated:ts.number().int(),keys_removed:ts.number().int(),errors:ts.array(ts.string()).default([])}),{action:pT,safeAction:lT}=ew(uT,async e=>await e.post("/user/ssh-keys/github-sync",{}));function fr(e={}){let t=c8(e),r={getCurrentUser:Yv,safeGetCurrentUser:gt,getAvailableNodes:w8,safeGetAvailableNodes:V0,listAllInstanceTypeFamilies:G0,safeListAllInstanceTypeFamilies:_8,listFamilyInstanceTypes:q0,safeListFamilyInstanceTypes:I8,listWorkspaces:T8,safeListWorkspaces:$8,getWorkspace:R8,safeGetWorkspace:M8,getCvmInfo:iw,safeGetCvmInfo:$e,getCvmList:cw,safeGetCvmList:_c,provisionCvm:tP,safeProvisionCvm:Y0,commitCvmProvision:nP,safeCommitCvmProvision:Pl,getCvmComposeFile:mP,safeGetCvmComposeFile:Ic,provisionCvmComposeFileUpdate:lP,safeProvisionCvmComposeFileUpdate:X0,commitCvmComposeFileUpdate:gP,safeCommitCvmComposeFileUpdate:Q0,updateCvmEnvs:vP,safeUpdateCvmEnvs:wP,updateDockerCompose:_P,safeUpdateDockerCompose:IP,updatePreLaunchScript:RP,safeUpdatePreLaunchScript:MP,getCvmPreLaunchScript:LP,safeGetCvmPreLaunchScript:BP,startCvm:QP,safeStartCvm:eg,stopCvm:tA,safeStopCvm:tg,shutdownCvm:nA,safeShutdownCvm:oA,restartCvm:iA,safeRestartCvm:rg,deleteCvm:uA,safeDeleteCvm:ng,getCvmStats:gA,safeGetCvmStats:hA,getCvmNetwork:vA,safeGetCvmNetwork:wA,getCvmDockerCompose:kA,safeGetCvmDockerCompose:EA,getCvmContainersStats:AA,safeGetCvmContainersStats:og,getCvmAttestation:BA,safeGetCvmAttestation:DA,updateCvmResources:zA,safeUpdateCvmResources:OA,updateCvmVisibility:HA,safeUpdateCvmVisibility:sg,getAvailableOsImages:KA,safeGetAvailableOsImages:WA,updateOsImage:ZA,safeUpdateOsImage:YA,getKmsInfo:UP,safeGetKmsInfo:zP,getKmsList:HP,safeGetKmsList:VP,getAppEnvEncryptPubKey:KP,safeGetAppEnvEncryptPubKey:Al,nextAppIds:ZP,safeNextAppIds:YP,getCvmState:eT,safeGetCvmState:tT,listSshKeys:gw,safeListSshKeys:Ac,importGithubProfileSshKeys:sT,safeImportGithubProfileSshKeys:ag,createSshKey:iT,safeCreateSshKey:ig,deleteSshKey:mT,safeDeleteSshKey:cg,syncGithubSshKeys:pT,safeSyncGithubSshKeys:lT};return t.extend(r)}var Gv=U.object({vm_uuid:U.string().nullable(),app_id:U.string(),name:U.string().default(""),status:U.string(),vcpu:U.number().int(),memory:U.number().int(),disk_size:U.number().int(),teepod_id:U.number().int(),teepod_name:U.string(),region_identifier:U.string().nullable().optional(),kms_type:U.string().nullable().optional(),instance_type:U.string().nullable().optional(),listed:U.boolean().nullable().optional(),base_image:U.string().nullable().optional(),kms_slug:U.string().nullable().optional(),kms_id:U.string().nullable().optional(),instance_id:U.string().nullable().optional(),machine_info:K0.nullable().optional(),updated_at:U.string().nullable().optional()}),fT=U.object({display_name:U.string().nullable().optional(),avatar_url:U.string().nullable().optional(),description:U.string().nullable().optional(),custom_domain:U.string().nullable().optional()}),dT=U.object({id:U.string(),name:U.string(),app_id:U.string(),app_provision_type:U.string().nullable().optional(),app_icon_url:U.string().nullable().optional(),created_at:U.string(),kms_type:U.string(),profile:fT.nullable().optional(),current_cvm:Gv.nullable().optional(),cvms:U.array(Gv).default([]),cvm_count:U.number().int().default(0)}),gT=U.object({id:U.null().optional(),app_id:U.string(),name:U.null().optional(),app_provision_type:U.null().optional(),app_icon_url:U.null().optional(),created_at:U.null().optional(),kms_type:U.null().optional(),current_cvm:U.null().optional(),cvms:U.null().optional(),cvm_count:U.null().optional()}),hT=U.union([dT,gT]),yT=U.object({dstack_apps:U.array(hT),page:U.number().int(),page_size:U.number().int(),total:U.number().int(),total_pages:U.number().int()}),bT=ce.object({id:ce.string(),name:ce.string(),app_id:ce.string(),app_provision_type:ce.string().nullable().optional(),app_icon_url:ce.string().nullable().optional(),created_at:ce.string(),kms_type:ce.string(),profile:ce.object({display_name:ce.string().nullable().optional(),avatar_url:ce.string().nullable().optional(),description:ce.string().nullable().optional(),custom_domain:ce.string().nullable().optional()}).nullable().optional(),current_cvm:kl.nullable().optional(),cvms:ce.array(kl).default([]),cvm_count:ce.number().int().default(0)}),xT=ce.object({id:ce.null().optional(),app_id:ce.string(),name:ce.null().optional(),app_provision_type:ce.null().optional(),app_icon_url:ce.null().optional(),created_at:ce.null().optional(),kms_type:ce.null().optional(),current_cvm:ce.null().optional(),cvms:ce.null().optional(),cvm_count:ce.null().optional()}),vT=ce.union([bT,xT]),wT=ce.object({dstack_apps:ce.array(vT),page:ce.number().int(),page_size:ce.number().int(),total:ce.number().int(),total_pages:ce.number().int()}),hw=se.object({object_type:se.literal("cvm"),id:se.string().nullable().optional(),name:se.string().nullable().optional(),app_id:se.string().nullable().optional(),vm_uuid:se.string().nullable().optional()}),CT=se.object({revision_id:se.string(),app_id:se.string(),vm_uuid:se.string(),compose_hash:se.string(),created_at:se.string(),trace_id:se.string().nullable().optional(),operation_type:se.string(),triggered_by:J0.nullable().optional(),cvm:hw.nullable().optional(),workspace:Z0.nullable().optional()}),Dse=se.object({revision_id:se.string(),app_id:se.string(),vm_uuid:se.string(),compose_hash:se.string(),compose_file:se.union([se.record(se.any()),se.string()]).nullable().optional(),encrypted_env:se.string(),user_config:se.string(),created_at:se.string(),trace_id:se.string().nullable().optional(),operation_type:se.string(),triggered_by:J0.nullable().optional(),cvm:hw.nullable().optional(),workspace:Z0.nullable().optional()}),Use=se.object({revisions:se.array(CT),total:se.number().int(),page:se.number().int(),page_size:se.number().int(),total_pages:se.number().int()});function El(e){if(typeof e=="string"){if(e.startsWith("0x")&&xe(e))return e;if(xe(`0x${e}`))return`0x${e}`}throw new Error(`Invalid hex value: ${e}`)}var yw=class extends Error{constructor(e,t,r){super(e),this.code=t,this.details=r,this.name="NetworkError"}};var Xr=class extends Error{constructor(e,t,r){super(e),this.hash=t,this.details=r,this.name="TransactionError"}};async function ST(e,t){try{let r=await e.walletClient.getChainId();return{isCorrectNetwork:r===t,currentChainId:r}}catch(r){throw new yw(`Failed to check network status: ${r instanceof Error?r.message:"Unknown error"}`,"NETWORK_CHECK_FAILED",r)}}async function kT(e,t,r){try{let n=await e.getBalance({address:t});return{address:t,balance:n,sufficient:r?n>=r:!0,required:r}}catch(n){throw new yw(`Failed to check balance: ${n instanceof Error?n.message:"Unknown error"}`,"BALANCE_CHECK_FAILED",n)}}async function ET(e,t,r={}){let{timeout:n=6e4,pollingInterval:o=2e3,confirmations:s=1}=r,a=Date.now();return new Promise((i,c)=>{let m=async()=>{try{let u=await e.getTransactionReceipt({hash:t});if(u){if(s>1&&await e.getBlockNumber()-u.blockNumber+1n<BigInt(s)){if(Date.now()-a>=n){c(new Xr(`Transaction confirmation timeout after ${n}ms`,t));return}setTimeout(m,o);return}i(u)}else{if(Date.now()-a>=n){c(new Xr(`Transaction receipt timeout after ${n}ms`,t));return}setTimeout(m,o)}}catch(u){if(Date.now()-a>=n){c(new Xr(`Transaction receipt timeout after ${n}ms`,t,u));return}setTimeout(m,o)}};m()})}async function bw(e,t){let{targetChainId:r,minBalance:n,requiredAddress:o}=t,s=await ST(e,r),a=await kT(e.publicClient,e.address,n),i=o?e.address.toLowerCase()===o.toLowerCase():!0;return{networkValid:s.isCorrectNetwork,balanceValid:a.sufficient,addressValid:i,details:{currentChainId:s.currentChainId,balance:a.balance,address:e.address}}}function mg(){let e={state:"idle"},t,r,n=i=>{e={...e,...i}},o=()=>{t&&(clearTimeout(t),t=void 0),r&&(r.abort(),r=void 0),e={state:"idle"}},s=()=>{r&&r.abort(),t&&(clearTimeout(t),t=void 0),n({state:"error",aborted:!0,error:"Transaction aborted by user"})};return{get status(){return{...e}},get isIdle(){return e.state==="idle"},get isSubmitting(){return e.state==="submitting"},get isPending(){return e.state==="pending"},get isSuccess(){return e.state==="success"},get isError(){return e.state==="error"},get isTimeout(){return e.state==="timeout"},get isAborted(){return e.aborted===!0},get isComplete(){return["success","error","timeout"].includes(e.state)},abort:s,reset:o,execute:async(i,c,m,u={})=>{let{timeout:p=6e4,confirmations:l=1,onSubmitted:d,onConfirmed:g,onError:h,signal:y}=u;try{if(o(),r=new AbortController,y){if(y.aborted)throw new Xr("Operation was aborted before execution");y.addEventListener("abort",()=>{s()})}if(n({state:"submitting",startTime:Date.now(),error:void 0,hash:void 0,receipt:void 0,aborted:!1}),r.signal.aborted)throw new Xr("Transaction aborted");let b=await i(c,...m);if(r.signal.aborted)throw new Xr("Transaction aborted after submission",b);n({state:"pending",hash:b,submitTime:Date.now()}),d?.(b),p>0&&(t=setTimeout(()=>{e.state==="pending"&&!r?.signal.aborted&&n({state:"timeout",error:`Transaction timeout after ${p}ms`})},p));let x=await Promise.race([ET(c.publicClient,b,{timeout:p,confirmations:l}),new Promise((S,E)=>{r?.signal.addEventListener("abort",()=>{E(new Xr("Transaction aborted while waiting for receipt",b))})})]);t&&(clearTimeout(t),t=void 0);let v=x.status==="success";if(n({state:v?"success":"error",receipt:x,confirmTime:Date.now(),error:v?void 0:"Transaction failed on-chain"}),v)g?.(x);else{let S=new Xr("Transaction failed on-chain",b,x);throw h?.(S,b),S}return{hash:b,receipt:x,success:v}}catch(b){let x=b instanceof Xr?b:new Xr(`Transaction execution failed: ${b instanceof Error?b.message:"Unknown error"}`,e.hash,b);throw n({state:"error",error:x.message}),h?.(x,e.hash),x}}}}async function xw(e,t,r,n={},o={}){let{maxRetries:s=3,initialDelay:a=1e3,maxDelay:i=1e4,backoffFactor:c=2,retryCondition:m=()=>!0}=o,u,p=a;for(let l=0;l<=s;l++)try{return await mg().execute(e,t,r,n)}catch(d){if(u=d instanceof Error?d:new Error(String(d)),l===s||!m(u))break;await new Promise(g=>setTimeout(g,p)),p=Math.min(p*c,i)}throw u}var vw=[{inputs:[{name:"deployer",type:"address"},{name:"disableUpgrades",type:"bool"},{name:"allowAnyDevice",type:"bool"},{name:"deviceId",type:"bytes32"},{name:"composeHash",type:"bytes32"}],name:"deployAndRegisterApp",outputs:[{name:"",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"appId",type:"address",indexed:!0},{name:"deployer",type:"address",indexed:!0}],name:"AppDeployedViaFactory",type:"event",anonymous:!1},{inputs:[{name:"appId",type:"address",indexed:!1}],name:"AppRegistered",type:"event",anonymous:!1}],_T=He.object({chain:He.unknown().optional(),rpcUrl:He.string().optional(),kmsContractAddress:He.string(),privateKey:He.string().optional(),walletClient:He.unknown().optional(),publicClient:He.unknown().optional(),allowAnyDevice:He.boolean().optional().default(!1),deviceId:He.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),composeHash:He.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),disableUpgrades:He.boolean().optional().default(!1),skipPrerequisiteChecks:He.boolean().optional().default(!1),minBalance:He.string().optional()}).passthrough(),IT=_T.refine(e=>{let t=!!e.privateKey,r=!!e.walletClient;return t!==r},{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>{let t=!!e.publicClient,r=!!e.walletClient,n=!!e.chain;return t&&r?!0:n},{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),PT=He.object({appId:He.string(),appAuthAddress:He.string(),deployer:He.string(),transactionHash:He.string(),blockNumber:He.bigint().optional(),gasUsed:He.bigint().optional()}).passthrough();function AT(e,t,r){try{let n=Ir({abi:vw,eventName:"AppDeployedViaFactory",logs:e.logs,strict:!1});if(n.length===0)throw e.status==="reverted"?new Error(`Transaction failed: ${e.transactionHash}`):new Error(`Transaction ${e.transactionHash} has no AppDeployedViaFactory events. The deployment failed. Status: ${e.status}. Found ${e.logs.length} logs.`);let o=n[0];if(!o?.args)throw new Error("Event has no data");let{appId:s,deployer:a}=o.args;if(!s)throw new Error("Event missing appId");return{appId:s,appAuthAddress:s,deployer:t,transactionHash:e.transactionHash,blockNumber:e.blockNumber,gasUsed:e.gasUsed}}catch(n){throw n instanceof Error?n:new Error(`Parse failed: ${n}`)}}async function TT(e,t){let r=IT.parse(e),{chain:n,rpcUrl:o,kmsContractAddress:s,privateKey:a,walletClient:i,publicClient:c,allowAnyDevice:m=!1,deviceId:u="0000000000000000000000000000000000000000000000000000000000000000",composeHash:p="0000000000000000000000000000000000000000000000000000000000000000",disableUpgrades:l=!1,skipPrerequisiteChecks:d=!1,minBalance:g,timeout:h=12e4,retryOptions:y,signal:b,onTransactionStateChange:x,onTransactionSubmitted:v,onTransactionConfirmed:S}=r,E="0000000000000000000000000000000000000000000000000000000000000000",I=u!==E&&u!=="0x"+E?!1:m,R,N,L,O;if(a){let ve=yc(a);if(c){if(typeof c!="object"||!c)throw new Error("publicClient is invalid");R=c}else{if(!n)throw new Error("Chain required for publicClient");R=es({chain:n,transport:kn(o)})}if(!n)throw new Error("Chain required for walletClient");N=hc({account:ve,chain:n,transport:kn(o)}),L=ve.address,O=n.id}else if(i){if(typeof i!="object"||!i)throw new Error("walletClient is invalid");if(N=i,c){if(typeof c!="object"||!c)throw new Error("publicClient is invalid");R=c}else{if(!n)throw new Error("Chain required for publicClient");R=es({chain:n,transport:kn(o)})}if(!N.account?.address)throw new Error("WalletClient needs an account");L=N.account.address,n?O=n.id:O=await N.getChainId()}else throw new Error("Need privateKey or walletClient");let j={publicClient:R,walletClient:N,address:L,chainId:O},q=mg();if(x&&typeof x=="function"){let ve=()=>{x(q.status),q.isComplete||setTimeout(ve,100)};setTimeout(ve,10)}if(!d){let ve={targetChainId:O,minBalance:g?Xo(g):Xo("0.001")},Bn=await bw(j,ve);if(!Bn.networkValid)throw new Error(`Wrong network. Need chain ${ve.targetChainId}, got ${Bn.details.currentChainId}`);if(!Bn.balanceValid){let yr=Number(ve.minBalance)/1e18,Tf=Number(Bn.details.balance)/1e18;throw new Error(`Not enough ETH. Need ${yr}, have ${Tf.toFixed(6)}`)}}let fe=El(u),Se=El(p),Z=`0x${fe.slice(2).padEnd(64,"0")}`,Ve=`0x${Se.slice(2).padEnd(64,"0")}`,H=async ve=>{try{let yr=await ve.publicClient.getCode({address:s});if(!yr||yr==="0x")throw new Error(`No contract at ${s}`)}catch(yr){if(yr instanceof Error&&yr.message.includes("No contract at"))throw yr}let Bn={address:s,abi:vw,functionName:"deployAndRegisterApp",args:[ve.address,l,I,Z,Ve],account:ve.walletClient.account||ve.address,chain:n||null};return await ve.walletClient.writeContract(Bn)},Be=y?await xw(H,j,[],{timeout:h,confirmations:1,onSubmitted:v,onConfirmed:S,signal:b},y):await q.execute(H,j,[],{timeout:h,confirmations:1,onSubmitted:v,onConfirmed:S,signal:b}),Fr=AT(Be.receipt,L,s);return t?.schema===!1?Fr:(t?.schema||PT).parse(Fr)}async function ww(e,t){try{return{success:!0,data:await TT(e,t)}}catch(r){let n=r instanceof Error?r.message:"Unknown deployment error";return{success:!1,error:{isRequestError:!0,message:n,status:500,detail:n}}}}var Cw=[{inputs:[{name:"composeHash",type:"bytes32"}],name:"addComposeHash",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"composeHash",type:"bytes32",indexed:!1}],name:"ComposeHashAdded",type:"event",anonymous:!1}],$T=Fe.object({chain:Fe.unknown().optional(),rpcUrl:Fe.string().optional(),appId:Fe.string(),composeHash:Fe.string(),privateKey:Fe.string().optional(),walletClient:Fe.unknown().optional(),publicClient:Fe.unknown().optional(),skipPrerequisiteChecks:Fe.boolean().optional().default(!1),minBalance:Fe.string().optional(),timeout:Fe.number().optional().default(12e4),retryOptions:Fe.unknown().optional(),signal:Fe.unknown().optional(),onTransactionStateChange:Fe.function().optional(),onTransactionSubmitted:Fe.function().optional(),onTransactionConfirmed:Fe.function().optional()}).passthrough().refine(e=>{let t=!!e.privateKey,r=!!e.walletClient;return t!==r},{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>{let t=!!e.publicClient,r=!!e.walletClient,n=!!e.chain;return t&&r?!0:n},{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),RT=Fe.object({composeHash:Fe.string(),appId:Fe.string(),transactionHash:Fe.string(),blockNumber:Fe.bigint().optional(),gasUsed:Fe.bigint().optional()}).passthrough();function MT(e,t,r,n){console.log(e.logs);try{let o=Ir({abi:Cw,eventName:"ComposeHashAdded",logs:e.logs,strict:!1});if(o.length>0){let s=o[0];s?.args?.composeHash!==t&&console.warn(`Event compose hash (${s?.args?.composeHash}) does not match expected (${t})`)}return{composeHash:t,appAuthAddress:r,appId:n,transactionHash:e.transactionHash,blockNumber:e.blockNumber,gasUsed:e.gasUsed}}catch(o){return console.warn("Failed to parse ComposeHashAdded event, returning basic result:",o),{composeHash:t,appAuthAddress:r,appId:n,transactionHash:e.transactionHash,blockNumber:e.blockNumber,gasUsed:e.gasUsed}}}async function FT(e,t){let r=$T.parse(e),{chain:n,rpcUrl:o,appId:s,composeHash:a,privateKey:i,walletClient:c,publicClient:m,timeout:u=12e4,retryOptions:p,signal:l,onTransactionStateChange:d,onTransactionSubmitted:g,onTransactionConfirmed:h,skipPrerequisiteChecks:y=!1,minBalance:b}=r,x,v,S,E,_=s.startsWith("0x")?s:`0x${s}`;if(i){let q=yc(i);if(m)x=m;else{if(!n)throw new Error("Chain required when creating publicClient");x=es({chain:n,transport:kn(o)})}if(!n)throw new Error("Chain required when creating walletClient");v=hc({account:q,chain:n,transport:kn(o)}),S=q.address,E=n.id}else if(c){if(v=c,m)x=m;else{if(!n)throw new Error("Chain required when creating publicClient");x=es({chain:n,transport:kn(o)})}if(!v.account?.address)throw new Error("WalletClient must have an account with address");S=v.account.address,E=n?n.id:await v.getChainId()}else throw new Error("Either privateKey or walletClient must be provided");let I={publicClient:x,walletClient:v,address:S,chainId:E},R=mg();if(d&&typeof d=="function"){let q=()=>{d(R.status),R.isComplete||setTimeout(q,100)};setTimeout(q,10)}if(!y){let q={targetChainId:E,minBalance:b?Xo(b):Xo("0.001")},fe=await bw(I,q);if(!fe.networkValid)throw new Error(`Network mismatch: Expected chain ${q.targetChainId}, but wallet is on chain ${fe.details.currentChainId}`);if(!fe.balanceValid){let Se=Number(q.minBalance)/1e18,Z=Number(fe.details.balance)/1e18;throw new Error(`Insufficient balance: Required ${Se} ETH, but account has ${Z.toFixed(6)} ETH`)}}let N=async q=>await q.walletClient.writeContract({address:_,abi:Cw,functionName:"addComposeHash",args:[El(a)],account:q.walletClient.account||q.address,chain:n||null}),L=p?await xw(N,I,[],{timeout:u,confirmations:1,onSubmitted:g,onConfirmed:h,signal:l},p):await R.execute(N,I,[],{timeout:u,confirmations:1,onSubmitted:g,onConfirmed:h,signal:l}),O=MT(L.receipt,El(a),_,s);return t?.schema===!1?O:(t?.schema||RT).parse(O)}async function Sw(e,t){try{return{success:!0,data:await FT(e,t)}}catch(r){let n=r instanceof Error?r.message:"Unknown blockchain error";return{success:!1,error:{isRequestError:!0,message:n,status:500,detail:n}}}}var NT=sw;var LT=ri.object({items:ri.array(NT),total:ri.number(),page:ri.number(),page_size:ri.number(),pages:ri.number()}).passthrough(),{action:Zse,safeAction:kw}=J(LT,async(e,t)=>{let{teamSlug:r,page:n,pageSize:o}=t,s=new URLSearchParams;n!==void 0&&s.append("page",n.toString()),o!==void 0&&s.append("page_size",o.toString());let a=s.toString()?`/workspaces/${r}/nodes?${s.toString()}`:`/workspaces/${r}/nodes`;return await e.get(a)}),si=$r.object({limit:$r.number(),remaining:$r.number()}).passthrough(),BT=$r.object({vm_slots:si,vcpu:si,memory_mb:si,disk_gb:si}).passthrough(),DT=$r.object({gpus:si,in_use:$r.number(),misconfigured:$r.number()}).passthrough(),UT=$r.object({team_slug:$r.string(),tier:$r.string(),quotas:BT,reserved_nodes:si,reserved_gpu:DT,as_of:$r.string()}).passthrough(),{action:Xse,safeAction:Qse}=J(UT,async(e,t)=>await e.get(`/workspaces/${t.teamSlug}/quotas`)),OT=nn(lr.extend({node_id:zT.number().optional()})),{action:tae,safeAction:rae}=J(Pc,async(e,t)=>{let r=OT.parse(t),{cvmId:n}=Q.parse(r),{node_id:o}=r;return await e.post(`/cvms/${n}/replicas`,{node_id:o})}),oae=ni.object({target:ni.string().describe("Target status to wait for (e.g., 'running', 'stopped')"),interval:ni.number().min(5).max(30).default(5).describe("Polling interval in seconds"),timeout:ni.number().min(10).max(600).default(300).describe("Timeout per attempt in seconds"),maxRetries:ni.number().min(0).default(Number.POSITIVE_INFINITY).describe("Maximum number of retry attempts (Infinity for unlimited)"),retryDelay:ni.number().min(0).default(5e3).describe("Delay between retries in milliseconds")});var Ew=Tr.object({cvm_id:Tr.number().int(),identifier:Tr.string(),status:Tr.enum(["updated","unchanged","skipped","conflict","error"]),old_instance_id:Tr.string().nullable().optional(),new_instance_id:Tr.string().nullable().optional(),source:Tr.enum(["teepod_state","teepod_info","gateway","none"]),verified_with_gateway:Tr.boolean(),reason:Tr.string().nullable().optional()}),jT=nn(lr.extend({overwrite:Tr.boolean().optional(),dry_run:Tr.boolean().optional()})),{action:aae,safeAction:iae}=J(Ew,async(e,t)=>{let r=jT.parse(t),{cvmId:n}=Q.parse(r),{overwrite:o,dry_run:s}=r;return await e.patch(`/cvms/${n}/instance-id`,{overwrite:o,dry_run:s})}),HT=nt.object({cvm_ids:nt.array(nt.string()).optional(),running_only:nt.boolean().optional(),missing_only:nt.boolean().optional(),overwrite:nt.boolean().optional(),limit:nt.number().int().min(1).max(500).optional(),dry_run:nt.boolean().optional()}).strict(),VT=nt.object({total:nt.number().int(),scanned:nt.number().int(),updated:nt.number().int(),unchanged:nt.number().int(),skipped:nt.number().int(),conflicts:nt.number().int(),errors:nt.number().int(),items:nt.array(Ew)}),{action:mae,safeAction:uae}=J(VT,async(e,t)=>{let r=HT.parse(t);return await e.patch("/cvms/instance-ids",r)}),GT=wt.object({vm_uuid:wt.string(),status:wt.string(),uptime:wt.string().nullable().optional(),in_progress:wt.boolean(),boot_progress:wt.string().nullable().optional(),boot_error:wt.string().nullable().optional(),operation_type:wt.string().nullable().optional(),operation_started_at:wt.string().nullable().optional(),correlation_id:wt.string().nullable().optional()}),qT=wt.record(wt.string(),GT),KT=wt.object({vmUuids:wt.array(wt.string())}),{action:lae,safeAction:_w}=J(qT,async(e,t)=>{let{vmUuids:r}=KT.parse(t);return await e.post("/status/batch",{vm_uuids:r})}),WT=Sc.object({hostname:Sc.string().nullable().optional(),ssh_authorized_keys:Sc.array(Sc.string()).default([]),default_gateway_domain:Sc.string().nullable().optional()}),JT=Q,{action:dae,safeAction:Iw}=J(WT,async(e,t)=>{let{cvmId:r}=JT.parse(t);return await e.get(`/cvms/${r}/user_config`)}),ZT=qt.object({page:qt.number().int().min(1).optional(),page_size:qt.number().int().min(1).max(100).optional(),search:qt.string().optional(),status:qt.array(qt.string()).optional(),listed:qt.boolean().optional(),base_image:qt.string().optional(),instance_type:qt.string().optional(),kms_slug:qt.string().optional(),kms_type:qt.string().optional(),node:qt.string().optional(),region:qt.string().optional()}).strict();function YT(e){return e==="2025-10-28"?yT:wT}async function XT(e,t){let r=ZT.parse(t??{}),n=await e.get("/apps",{params:r});return YT(e.config.version).parse(n)}async function Pw(e,t){try{return{success:!0,data:await XT(e,t)}}catch(r){return r&&typeof r=="object"&&("status"in r||"issues"in r)?{success:!1,error:r}:{success:!1,error:{name:"Error",message:r instanceof Error?r.message:String(r)}}}}var yae=qv.object({appId:qv.string().min(1)}).strict();var xae=Kv.object({appId:Kv.string().min(1)}).strict();var wae=wl.object({appId:wl.string().min(1),page:wl.number().int().min(1).optional(),page_size:wl.number().int().min(1).max(1e3).optional()}).strict();var Sae=Cl.object({appId:Cl.string().min(1),revisionId:Cl.string().min(1),rawComposeFile:Cl.boolean().optional()}).strict();var Eae=vt.object({statuses:vt.array(vt.string()),image_versions:vt.array(vt.string()),instance_types:vt.array(vt.string()),kms_slugs:vt.array(vt.string()),kms_types:vt.array(vt.string()),regions:vt.array(vt.string()),nodes:vt.array(vt.string())});var QT=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function e3(e){let t={},r=e.toString();r=r.replace(/\r\n?/gm,`
73
- `);let n;for(;(n=QT.exec(r))!=null;){let o=n[1];if(!o)continue;let s=n[2]||"";s=s.trim();let a=s[0];s=s.replace(/^(['"`])([\s\S]*)\1$/gm,"$2"),a==='"'&&(s=s.replace(/\\n/g,`
74
- `),s=s.replace(/\\r/g,"\r")),t[o]=s}return t}function Tl(e){let t=e3(e),r=[];for(let[n,o]of Object.entries(t))r.push({key:n,value:o});return r}import St from"chalk";import n3 from"ora";function o3(e,t){let r=e.split(/\s+/),n=[],o="";for(let s of r){let a=o.length===0?s:`${o} ${s}`;a.length<=t?o=a:(o.length>0&&n.push(o),o=s)}return o.length>0&&n.push(o),n}function s3(e,t){if(e.length<=t)return[e];let r=[],n=0;for(;n<e.length;)r.push(e.slice(n,n+t)),n+=t;return r}function Aw(e,t){let r=[];for(let n of e.split(`
75
- `)){if(n.length<=t){r.push(n);continue}if(n.indexOf(" ")===-1){r.push(...s3(n,t));continue}let o=o3(n,t);r.push(...o)}if(r.length===0){let n=e.trim();r.push(n)}return r}var f={error:(e,...t)=>{we()||(process.stderr.write(`${St.red("\u2717")} ${St.red(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
72
+ `,y,b,Hv(g.status,g.statusText,g.headers,g._data))}u&&u({request:d,response:g,options:h})}})}get raw(){return this.fetchInstance}on(t,r){this.emitter.on(t,r)}off(t,r){this.emitter.off(t,r)}once(t,r){let n=o=>{r(o),this.emitter.off(t,n)};this.emitter.on(t,n)}async request(t,r){try{let n=r?.method||"GET";return await this.fetchInstance(t,{...r,method:n})}catch(n){let o=this.convertToRequestError(n);throw this.emitError(o)}}async requestFull(t,r){try{let n=r?.method||"GET",o=await this.fetchInstance.raw(t,{...r,method:n,ignoreResponseError:!0});return{status:o.status,statusText:o.statusText,headers:o.headers,data:o._data,ok:o.ok}}catch(n){let o=this.convertToRequestError(n);throw this.emitError(o)}}async get(t,r){try{return await this.fetchInstance(t,{...r,method:"GET"})}catch(n){let o=this.convertToRequestError(n);throw this.emitError(o)}}async post(t,r,n){try{return await this.fetchInstance(t,{...n,method:"POST",body:r})}catch(o){let s=this.convertToRequestError(o);throw this.emitError(s)}}async put(t,r,n){try{return await this.fetchInstance(t,{...n,method:"PUT",body:r})}catch(o){let s=this.convertToRequestError(o);throw this.emitError(s)}}async patch(t,r,n){try{return await this.fetchInstance(t,{...n,method:"PATCH",body:r})}catch(o){let s=this.convertToRequestError(o);throw this.emitError(s)}}async delete(t,r){try{return await this.fetchInstance(t,{...r,method:"DELETE"})}catch(n){let o=this.convertToRequestError(n);throw this.emitError(o)}}convertToRequestError(t){return t&&typeof t=="object"&&"data"in t?B0.fromFetchError(t):t instanceof Error?B0.fromError(t):new B0("Unknown error occurred",{detail:"Unknown error occurred"})}emitError(t){let r=a8(t);return this.emitter.emit("error",r),r}async safeRequest(t){try{return{success:!0,data:await t()}}catch(r){if(r instanceof tn)return{success:!1,error:r};let n=this.convertToRequestError(r);return this.emitError(n),{success:!1,error:n}}}async safeGet(t,r){return this.safeRequest(()=>this.get(t,r))}async safePost(t,r,n){return this.safeRequest(()=>this.post(t,r,n))}async safePut(t,r,n){return this.safeRequest(()=>this.put(t,r,n))}async safePatch(t,r,n){return this.safeRequest(()=>this.patch(t,r,n))}async safeDelete(t,r){return this.safeRequest(()=>this.delete(t,r))}async safeRequestMethod(t,r){return this.safeRequest(()=>this.request(t,r))}async safeRequestFull(t,r){return this.safeRequest(()=>this.requestFull(t,r))}withVersion(t){return new Yv({...this.config,version:t})}extend(t){let r=typeof t=="function"?t(this):t,n=Object.create(this);for(let[o,s]of Object.entries(r))typeof s=="function"&&(n[o]=(...a)=>s(this,...a));return n}};function l8(e={}){return new p8(e)}var f8=_e.object({username:_e.string(),email:_e.string(),role:_e.enum(["admin","user"]),avatar:_e.string(),email_verified:_e.boolean(),totp_enabled:_e.boolean(),has_backup_codes:_e.boolean(),flag_has_password:_e.boolean()}).passthrough(),d8=_e.object({id:_e.string(),name:_e.string(),slug:_e.string().nullable(),tier:_e.string(),role:_e.string(),avatar:_e.string().nullable().optional()}).passthrough(),g8=_e.object({balance:_e.string().or(_e.number()),granted_balance:_e.string().or(_e.number()),is_post_paid:_e.boolean(),outstanding_amount:_e.string().or(_e.number()).nullable()}).passthrough(),h8=_e.object({user:f8,workspace:d8,credits:g8}).passthrough(),y8=vo.object({username:vo.string(),email:vo.string(),credits:vo.number(),granted_credits:vo.number(),avatar:vo.string(),team_name:vo.string(),team_tier:vo.string()}).passthrough();function b8(e){return e==="2025-10-28"?y8:h8}async function Xv(e,t){let r=await e.get("/auth/me");return t?.schema===!1?r:(t?.schema||b8(e.config.version)).parse(r)}async function gt(e,t){try{return{success:!0,data:await Xv(e,t)}}catch(r){return r&&typeof r=="object"&&("status"in r||"issues"in r)?{success:!1,error:r}:{success:!1,error:{name:"Error",message:r instanceof Error?r.message:String(r)}}}}var x8={[Hu.id]:Hu,[Li.id]:Li,[Wm.id]:Wm},v8=wo.object({id:wo.string(),slug:wo.string().nullable(),url:wo.string(),version:wo.string(),chain_id:wo.number().nullable(),kms_contract_address:wo.string().nullable().transform(e=>e),gateway_app_id:wo.string().nullable().transform(e=>e)}).passthrough(),rn=v8.transform(e=>{if(e.chain_id!=null){let t=x8[e.chain_id];if(t)return{...e,chain:t}}return e});function Qv(e){if(e?.schema!==void 0&&e?.schema!==!1&&(typeof e.schema!="object"||e.schema===null||!("parse"in e.schema)||typeof e.schema.parse!="function"))throw new Error("Invalid schema: must be a Zod schema object, false, or undefined")}function ew(e){if(e?.schema!==void 0&&e?.schema!==!1&&(typeof e.schema!="object"||e.schema===null||!("parse"in e.schema)||typeof e.schema.parse!="function"))return{success:!1,error:{name:"ZodError",message:"Invalid schema: must be a Zod schema object, false, or undefined",issues:[{code:"invalid_type",expected:"object",received:typeof e.schema,path:["schema"],message:"Invalid schema: must be a Zod schema object, false, or undefined"}]}}}function tw(e,t){function r(a,i){return n(a,i)}async function n(a,i){Qv(i);let c=await t(a);return i?.schema===!1?c:(i?.schema||e).parse(c)}function o(a,i){return s(a,i)}async function s(a,i){let c=ew(i);if(c)return c;let m=await(async()=>{try{return{success:!0,data:await t(a)}}catch(p){return p&&typeof p=="object"&&"status"in p?{success:!1,error:p}:p&&typeof p=="object"&&"issues"in p?{success:!1,error:p}:{success:!1,error:{name:"Error",message:p instanceof Error?p.message:String(p)}}}})();return m.success?i?.schema===!1?{success:!0,data:m.data}:(i?.schema||e).safeParse(m.data):m}return{action:r,safeAction:o}}function J(e,t){function r(a,...i){let[c,m]=i;return n(a,c,m)}async function n(a,i,c){Qv(c);let m=await t(a,i);return c?.schema===!1?m:(c?.schema||e).parse(m)}function o(a,...i){let[c,m]=i;return s(a,c,m)}async function s(a,i,c){let m=ew(c);if(m)return m;let u=await(async()=>{try{return{success:!0,data:await t(a,i)}}catch(f){return f&&typeof f=="object"&&"status"in f?{success:!1,error:f}:f&&typeof f=="object"&&"issues"in f?{success:!1,error:f}:{success:!1,error:{name:"Error",message:f instanceof Error?f.message:String(f)}}}})();return u.success?c?.schema===!1?{success:!0,data:u.data}:(c?.schema||e).safeParse(u.data):u}return{action:r,safeAction:o}}var w8=X.object({name:X.string(),is_dev:X.boolean(),version:X.union([X.tuple([X.number(),X.number(),X.number()]),X.tuple([X.number(),X.number(),X.number(),X.number()])]),os_image_hash:X.string().nullable().optional()}).passthrough(),C8=X.object({teepod_id:X.number(),name:X.string(),listed:X.boolean(),resource_score:X.number(),remaining_vcpu:X.number(),remaining_memory:X.number(),remaining_cvm_slots:X.number(),images:X.array(w8),support_onchain_kms:X.boolean().optional(),fmspc:X.string().nullable().optional(),device_id:X.string().nullable().optional(),region_identifier:X.string().nullable().optional(),default_kms:X.string().nullable().optional(),kms_list:X.array(X.string()).default([])}).passthrough(),S8=X.object({max_instances:X.number().nullable().optional(),max_vcpu:X.number().nullable().optional(),max_memory:X.number().nullable().optional(),max_disk:X.number().nullable().optional()}).passthrough(),k8=X.object({tier:X.string(),capacity:S8,nodes:X.array(C8),kms_list:X.array(rn)}).passthrough(),{action:E8,safeAction:V0}=tw(k8,async e=>await e.get("/teepods/available")),rw=Le.object({id:Le.string(),name:Le.string(),description:Le.string(),vcpu:Le.number(),memory_mb:Le.number(),hourly_rate:Le.string(),requires_gpu:Le.boolean(),default_disk_size_gb:Le.number().default(20),family:Le.string().nullable()}).passthrough(),_8=Le.object({name:Le.string(),items:Le.array(rw),total:Le.number()}).strict(),I8=Le.object({result:Le.array(_8)}).strict(),P8=Le.object({items:Le.array(rw),total:Le.number(),family:Le.string()}).strict(),A8=Le.object({family:Le.string()}).strict(),{action:G0,safeAction:T8}=J(I8,async e=>await e.get("/instance-types")),{action:q0,safeAction:$8}=J(P8,async(e,t)=>{let r=A8.parse(t);return await e.get(`/instance-types/${r.family}`)}),nw=Ct.object({id:Ct.string(),name:Ct.string(),slug:Ct.string().nullable(),tier:Ct.string(),role:Ct.string(),is_default:Ct.boolean(),created_at:Ct.string(),confidential_models_enabled:Ct.boolean().optional()}).passthrough(),R8=Ct.object({has_more:Ct.boolean(),next_cursor:Ct.string().nullable(),total:Ct.number().nullable()}).passthrough(),M8=Ct.object({data:Ct.array(nw),pagination:R8}).passthrough(),{action:F8,safeAction:N8}=J(M8,async(e,t)=>{let r=new URLSearchParams;t?.cursor&&r.append("cursor",t.cursor),t?.limit&&r.append("limit",t.limit.toString());let n=r.toString()?`/workspaces?${r.toString()}`:"/workspaces";return await e.get(n)}),{action:L8,safeAction:B8}=J(nw,async(e,t)=>await e.get(`/workspaces/${t}`)),D8=$.object({id:$.string(),name:$.string(),status:$.string(),uptime:$.string(),app_url:$.string().nullable(),app_id:$.string(),instance_id:$.string().nullable(),configuration:$.any().optional(),exited_at:$.string().nullable(),boot_progress:$.string().nullable(),boot_error:$.string().nullable(),shutdown_progress:$.string().nullable(),image_version:$.string().nullable()}),U8=$.object({id:$.number(),username:$.string()}),ow=$.object({id:$.number(),name:$.string(),region_identifier:$.string().nullable().optional()}),K0=$.object({vcpu:$.number(),memory:$.number(),disk_size:$.number(),gpu_count:$.number().default(0)}),W0=$.object({app:$.string(),instance:$.string()}),z8=$.object({hosted:D8,name:$.string(),managed_user:U8.nullable(),node:ow.nullable(),listed:$.boolean().default(!1),status:$.string(),in_progress:$.boolean().default(!1),dapp_dashboard_url:$.string().nullable(),syslog_endpoint:$.string().nullable(),allow_upgrade:$.boolean().default(!1),project_id:$.string().nullable(),project_type:$.string().nullable(),billing_period:$.string().nullable(),kms_info:rn.nullable(),vcpu:$.number().nullable(),memory:$.number().nullable(),disk_size:$.number().nullable(),gateway_domain:$.string().nullable(),public_urls:$.array(W0),machine_info:K0.nullable().optional(),updated_at:$.string().nullable().optional()}),sw=$.object({id:$.number(),name:$.string(),status:$.string(),in_progress:$.boolean().optional().default(!1),teepod_id:$.number().nullable(),teepod:ow.optional().nullable(),app_id:$.string(),vm_uuid:$.string().nullable(),instance_id:$.string().nullable(),vcpu:$.number(),memory:$.number(),disk_size:$.number(),base_image:$.string().nullable(),encrypted_env_pubkey:$.string().nullable(),listed:$.boolean().optional().default(!1),project_id:$.string().optional().nullable(),project_type:$.string().optional().nullable(),instance_type:$.string().optional().nullable(),public_sysinfo:$.boolean().optional().default(!1),public_logs:$.boolean().optional().default(!1),dapp_dashboard_url:$.string().optional().nullable(),syslog_endpoint:$.string().optional().nullable(),kms_info:rn.optional().nullable(),contract_address:$.string().optional().nullable(),deployer_address:$.string().optional().nullable(),scheduled_delete_at:$.string().optional().nullable(),public_urls:$.array(W0).optional().default([]),gateway_domain:$.string().optional().nullable(),machine_info:K0.optional().nullable(),updated_at:$.string().optional().nullable()}),O8=$.object({items:$.array(z8),total:$.number(),page:$.number(),page_size:$.number(),pages:$.number()}),j8=M.enum(["skip","hourly","monthly"]),H8=M.enum(["phala","ethereum","base","legacy"]),J0=M.object({object_type:M.literal("user"),id:M.string().nullable().optional(),username:M.string().nullable().optional(),avatar_url:M.string().nullable().optional()}),Z0=M.object({object_type:M.literal("workspace"),id:M.string(),name:M.string(),slug:M.string().nullable().optional(),avatar_url:M.string().nullable().optional()}),V8=M.object({instance_type:M.string().nullable().optional(),vcpu:M.number().int().nullable().optional(),memory_in_gb:M.number().nullable().optional(),disk_in_gb:M.number().int().nullable().optional(),gpus:M.number().int().nullable().optional(),compute_billing_price:M.string().nullable().optional(),billing_period:j8.nullable().optional()}),G8=M.object({name:M.string().nullable().optional(),version:M.string().nullable().optional(),is_dev:M.boolean().nullable().optional(),os_image_hash:M.string().nullable().optional()}),q8=M.object({chain_id:M.number().int().nullable().optional(),dstack_kms_address:M.string().nullable().optional(),dstack_app_address:M.string().nullable().optional(),deployer_address:M.string().nullable().optional(),rpc_endpoint:M.string().nullable().optional(),encrypted_env_pubkey:M.string().nullable().optional()}),K8=M.object({target:M.string().nullable().optional(),started_at:M.string().nullable().optional(),correlation_id:M.string().nullable().optional()}),W8=M.object({base_domain:M.string().nullable().optional(),cname:M.string().nullable().optional()}),aw=M.object({object_type:M.literal("node"),id:M.number().int().nullable().optional(),name:M.string().nullable().optional(),region:M.string().nullable().optional(),device_id:M.string().nullable().optional(),ppid:M.string().nullable().optional(),status:M.string().nullable().optional(),version:M.string().nullable().optional()});var kl=M.object({id:M.string(),name:M.string(),app_id:M.string().nullable().optional(),vm_uuid:M.string().nullable().optional(),instance_id:M.string().nullable().optional(),resource:V8,node_info:aw.nullable().optional(),os:G8.nullable().optional(),kms_type:H8.nullable().optional(),kms_info:q8.nullable().optional(),status:M.string(),progress:K8.nullable().optional(),compose_hash:M.string().nullable().optional(),gateway:W8,services:M.array(M.record(M.any())).optional().default([]),endpoints:M.array(W0).nullable().optional(),public_logs:M.boolean().optional(),public_sysinfo:M.boolean().optional(),public_tcbinfo:M.boolean().optional(),gateway_enabled:M.boolean().optional(),secure_time:M.boolean().optional(),listed:M.boolean().optional().default(!1),storage_fs:M.string().optional(),workspace:Z0.nullable().optional(),creator:J0.nullable().optional()}),J8=kl.extend({compose_file:M.union([M.record(M.any()),M.string()]).nullable().optional()}),Z8=M.object({items:M.array(kl),total:M.number(),page:M.number(),page_size:M.number(),pages:M.number()});function ci(e){return typeof e!="string"||e.length<5||e.length>63?!1:/^[a-zA-Z](?!.*--)([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(e)}function iw(e){if(typeof e!="string")return vl();let t=e;return t=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),t=t.replace(/_/g,"-"),t=t.replace(/[^a-z0-9\s-]/gi,"-").replace(/\s+/g,"-"),t=t.replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),t.length===0||(/^\d/.test(t)&&(t=`dstack-app-${t}`),t.length<5&&(t=`dstack-app-${t}`),t=t.slice(0,63).replace(/-+$/,""),t.length===0)||!ci(t)?vl():t}function vl(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,6);return`dstack-app-${e}-${t}`}var lr=ti.object({id:ti.string().optional(),uuid:ti.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i,"Invalid UUID format").optional(),app_id:ti.string().optional(),instance_id:ti.string().optional(),name:ti.string().refine(ci,{message:"Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens"}).optional()}),nn=e=>e.refine(t=>{let r=t;return!!(r.id||r.uuid||r.app_id||r.instance_id||r.name)},{message:"One of id, uuid, app_id, instance_id, or name must be provided"}),Y8=nn(lr),Q=Y8.transform(e=>{let t;if(e.id)t=e.id;else if(e.uuid)t=e.uuid;else if(e.app_id)t=e.app_id;else if(e.instance_id)t=e.instance_id;else{if(e.name)return{cvmId:e.name};throw new Error("No valid identifier provided")}let r=/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i,n=/^[0-9a-f]{40}$/i,o;return r.test(t)?o=t.replace(/-/g,""):n.test(t)?o=`app_${t}`:o=t,{cvmId:o}}),X8=Q;function Q8(e){return e==="2025-10-28"?sw:J8}async function cw(e,t){let{cvmId:r}=X8.parse(t),n=await e.get(`/cvms/${r}`);return Q8(e.config.version).parse(n)}async function $e(e,t){try{return{success:!0,data:await cw(e,t)}}catch(r){return r&&typeof r=="object"&&("status"in r||"issues"in r)?{success:!1,error:r}:{success:!1,error:{name:"Error",message:r instanceof Error?r.message:String(r)}}}}var eP=ri.object({page:ri.number().int().min(1).optional(),page_size:ri.number().int().min(1).optional(),node_id:ri.number().int().min(1).optional(),teepod_id:ri.number().int().min(1).optional(),user_id:ri.string().optional()}).strict();function tP(e){return e==="2025-10-28"?O8:Z8}async function mw(e,t){let r=eP.parse(t??{}),n=await e.get("/cvms/paginated",{params:r});return tP(e.config.version).parse(n)}async function _c(e,t){try{return{success:!0,data:await mw(e,t)}}catch(r){return r&&typeof r=="object"&&("status"in r||"issues"in r)?{success:!1,error:r}:{success:!1,error:{name:"Error",message:r instanceof Error?r.message:String(r)}}}}var kc=200*1024;function uw(e,t,r){let n=new TextEncoder,o=e?n.encode(e).byteLength:0,s=t?n.encode(t).byteLength:0,a=o+s;if(a>kc){let i=kc/1024,c=Math.ceil(a/1024);r.addIssue({code:ft.ZodIssueCode.custom,message:`Combined size of docker_compose_file and pre_launch_script must not exceed ${i}KB (current: ${c}KB)`})}}var pw=ft.object({allowed_envs:ft.array(ft.string()).optional(),docker_compose_file:ft.string(),features:ft.array(ft.string()).optional(),name:ft.string().optional(),manifest_version:ft.number().optional(),kms_enabled:ft.boolean().optional(),public_logs:ft.boolean().optional(),public_sysinfo:ft.boolean().optional(),tproxy_enabled:ft.boolean().optional(),pre_launch_script:ft.string().optional(),env_pubkey:ft.string().optional(),salt:ft.string().optional().nullable()}).passthrough().superRefine((e,t)=>{uw(e.docker_compose_file,e.pre_launch_script,t)}),rP=Y.object({app_id:Y.string().nullable().optional(),app_env_encrypt_pubkey:Y.string().nullable().optional(),compose_hash:Y.string(),kms_info:rn.nullable().optional(),fmspc:Y.string().nullable().optional(),device_id:Y.string().nullable().optional(),os_image_hash:Y.string().nullable().optional(),instance_type:Y.string().nullable().optional(),teepod_id:Y.number().nullable().optional(),node_id:Y.number().nullable().optional(),kms_id:Y.string().nullable().optional()}).passthrough().transform(e=>{if("teepod_id"in e&&e.teepod_id!==void 0){let{teepod_id:t,...r}=e;return{...r,node_id:t}}return e}),D0="Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens",nP=Y.object({node_id:Y.number().optional(),teepod_id:Y.number().optional(),region:Y.string().optional(),name:Y.string().min(5,D0).max(63,D0).refine(e=>ci(e),D0),instance_type:Y.string().optional(),image:Y.string().optional(),vcpu:Y.number().optional(),memory:Y.number().optional(),disk_size:Y.number().optional(),compose_file:Y.object({allowed_envs:Y.array(Y.string()).optional(),pre_launch_script:Y.string().optional(),docker_compose_file:Y.string().optional(),name:Y.string().optional().default(""),kms_enabled:Y.boolean().optional(),public_logs:Y.boolean().optional(),public_sysinfo:Y.boolean().optional(),gateway_enabled:Y.boolean().optional(),tproxy_enabled:Y.boolean().optional()}).superRefine((e,t)=>{uw(e.docker_compose_file,e.pre_launch_script,t)}),listed:Y.boolean().optional(),kms_id:Y.string().optional(),kms:Y.enum(["PHALA","ETHEREUM","BASE"]).optional(),kms_contract:Y.string().optional(),env_keys:Y.array(Y.string()).optional(),nonce:Y.number().optional(),app_id:Y.string().optional()}).passthrough().transform(e=>!e.instance_type&&!e.vcpu&&!e.memory?{...e,instance_type:"tdx.small"}:e);function oP(e){if(!e.compose_file)return e;let t={...e.compose_file};return typeof t.gateway_enabled=="boolean"&&typeof t.tproxy_enabled=="boolean"?delete t.tproxy_enabled:typeof t.tproxy_enabled=="boolean"&&typeof t.gateway_enabled>"u"&&(t.gateway_enabled=t.tproxy_enabled,delete t.tproxy_enabled,(typeof window<"u"?window.console:globalThis.console)&&console.warn("[phala/cloud] tproxy_enabled is deprecated, please use gateway_enabled instead. See docs for migration.")),{...e,compose_file:t}}var{action:sP,safeAction:Y0}=J(rP,async(e,t)=>{let r=nP.parse(t),n=oP(r),o={...n};return typeof n.node_id=="number"?(o={...n,teepod_id:n.node_id},delete o.node_id):typeof n.teepod_id=="number"&&console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead."),await e.post("/cvms/provision",o)}),aP=te.object({id:te.number(),name:te.string(),status:te.string(),teepod_id:te.number(),teepod:te.object({id:te.number(),name:te.string()}).nullable(),user_id:te.number().nullable(),app_id:te.string().nullable(),vm_uuid:te.string().nullable(),instance_id:te.string().nullable(),app_url:te.string().nullable().default(null),base_image:te.string().nullable(),vcpu:te.number(),memory:te.number(),disk_size:te.number(),manifest_version:te.number().nullable().default(2),version:te.string().nullable().default("1.0.0"),runner:te.string().nullable().default("docker-compose"),docker_compose_file:te.string().nullable(),features:te.array(te.string()).nullable().default(["kms","tproxy-net"]),created_at:te.string(),encrypted_env_pubkey:te.string().nullable().optional(),app_auth_contract_address:te.string().nullable().optional(),deployer_address:te.string().nullable().optional()}).passthrough(),lse=te.object({encrypted_env:te.string().optional().nullable(),app_id:te.string(),compose_hash:te.string(),kms_id:te.string().optional(),contract_address:te.string().optional(),deployer_address:te.string().optional(),env_keys:te.array(te.string()).optional().nullable()}).passthrough(),{action:iP,safeAction:Pl}=J(aP,async(e,t)=>await e.post("/cvms",t));function O0(e){return e==null?e:Array.isArray(e)?e.map(O0):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,r)=>{let n=e[r];return t[r]=O0(n),t},{}):e}function lw(e){let t={...e};return t.runner==="bash"&&"docker_compose_file"in t?delete t.docker_compose_file:t.runner==="docker-compose"&&"bash_script"in t&&delete t.bash_script,"pre_launch_script"in t&&!t.pre_launch_script&&delete t.pre_launch_script,t}function fw(e){let t=O0(e),r=JSON.stringify(t,null,4);return r=r.replace(/": /g,'":'),r}function mP(e){let t=lw(e),r=fw(t);return cP.createHash("sha256").update(r,"utf8").digest("hex")}function uP(e){let t=e;return{...e,getHash:()=>mP(t),toString:()=>fw(lw(t))}}var pP=pw.transform(e=>uP(e)),lP=Q,{action:fP,safeAction:Ic}=J(pP,async(e,t)=>{let{cvmId:r}=lP.parse(t);return await e.get(`/cvms/${r}/compose_file`)}),dP=Qr.object({id:Qr.string().optional(),uuid:Qr.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),app_id:Qr.string().refine(e=>!e.startsWith("app_")&&e.length===40,"app_id should be 40 characters without prefix").transform(e=>e.startsWith("app_")?e:`app_${e}`).optional(),instance_id:Qr.string().refine(e=>!e.startsWith("instance_")&&e.length===40,"instance_id should be 40 characters without prefix").transform(e=>e.startsWith("instance_")?e:`instance_${e}`).optional(),app_compose:pw,update_env_vars:Qr.boolean().optional().nullable()}).refine(e=>!!(e.id||e.uuid||e.app_id||e.instance_id),"One of id, uuid, app_id, or instance_id must be provided").transform(e=>({cvmId:e.id||e.uuid||e.app_id||e.instance_id,request:{...e.app_compose,update_env_vars:e.update_env_vars},_raw:e})),gP=Qr.object({app_id:Qr.string().nullable(),device_id:Qr.string().nullable(),compose_hash:Qr.string(),kms_info:rn.nullable().optional()}).passthrough(),{action:hP,safeAction:X0}=J(gP,async(e,t)=>{let r=dP.parse(t);return await e.post(`/cvms/${r.cvmId}/compose_file/provision`,r.request)}),yP=Ar.object({id:Ar.string().optional(),uuid:Ar.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),app_id:Ar.string().refine(e=>!e.startsWith("app_")&&e.length===40,"app_id should be 40 characters without prefix").transform(e=>e.startsWith("app_")?e:`app_${e}`).optional(),instance_id:Ar.string().refine(e=>!e.startsWith("instance_")&&e.length===40,"instance_id should be 40 characters without prefix").transform(e=>e.startsWith("instance_")?e:`instance_${e}`).optional(),compose_hash:Ar.string().min(1,"Compose hash is required"),encrypted_env:Ar.string().optional(),env_keys:Ar.array(Ar.string()).optional(),update_env_vars:Ar.boolean().optional().nullable()}).refine(e=>!!(e.id||e.uuid||e.app_id||e.instance_id),"One of id, uuid, app_id, or instance_id must be provided").transform(e=>({cvmId:e.id||e.uuid||e.app_id||e.instance_id,compose_hash:e.compose_hash,encrypted_env:e.encrypted_env,env_keys:e.env_keys,update_env_vars:e.update_env_vars??void 0,_raw:e})),bP=Ar.any().transform(()=>{}),{action:xP,safeAction:Q0}=J(bP,async(e,t)=>{let r=yP.parse(t);return await e.patch(`/cvms/${r.cvmId}/compose_file`,{compose_hash:r.compose_hash,encrypted_env:r.encrypted_env,env_keys:r.env_keys,update_env_vars:r.update_env_vars})}),vP=nn(lr.extend({encrypted_env:ot.string().describe("Encrypted environment variables (hex string)"),env_keys:ot.array(ot.string()).optional().describe("List of allowed environment variable keys"),compose_hash:ot.string().optional().describe("Compose hash for verification (Phase 2, required when env_keys changes)"),transaction_hash:ot.string().optional().describe("On-chain transaction hash for verification (Phase 2, required when env_keys changes)")})).transform(e=>{let{cvmId:t}=Q.parse(e);return{cvmId:t,request:{encrypted_env:e.encrypted_env,env_keys:e.env_keys,compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),wP=ot.object({status:ot.literal("in_progress"),message:ot.string(),correlation_id:ot.string(),allowed_envs_changed:ot.boolean()}),CP=ot.object({status:ot.literal("precondition_required"),message:ot.string(),compose_hash:ot.string(),app_id:ot.string(),device_id:ot.string(),kms_info:rn}),SP=ot.union([wP,CP]),{action:kP,safeAction:EP}=J(SP,async(e,t)=>{let r=vP.parse(t);try{return await e.patch(`/cvms/${r.cvmId}/envs`,r.request)}catch(n){if(n instanceof tn&&n.status===465){let o=n.detail;if(o&&typeof o=="object"){let s=o;return{status:"precondition_required",message:s.message||"Compose hash verification required",compose_hash:s.compose_hash,app_id:s.app_id,device_id:s.device_id,kms_info:s.kms_info}}}throw n}}),_P=nn(lr.extend({docker_compose_file:Ft.string().describe("Docker Compose YAML content"),compose_hash:Ft.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:Ft.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=Q.parse(e);return{cvmId:t,request:{docker_compose_file:e.docker_compose_file,compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),IP=Ft.object({status:Ft.literal("in_progress"),message:Ft.string(),correlation_id:Ft.string()}),PP=Ft.object({status:Ft.literal("precondition_required"),message:Ft.string(),compose_hash:Ft.string(),app_id:Ft.string(),device_id:Ft.string(),kms_info:rn}),AP=Ft.union([IP,PP]),{action:TP,safeAction:$P}=J(AP,async(e,t)=>{let r=_P.parse(t),n={"Content-Type":"text/yaml"};r.request.compose_hash&&(n["X-Compose-Hash"]=r.request.compose_hash),r.request.transaction_hash&&(n["X-Transaction-Hash"]=r.request.transaction_hash);try{return await e.patch(`/cvms/${r.cvmId}/docker-compose`,r.request.docker_compose_file,{headers:n})}catch(o){if(o instanceof tn&&o.status===465){let s=o.detail;if(s&&typeof s=="object"){let a=s;return{status:"precondition_required",message:a.message||"Compose hash verification required",compose_hash:a.compose_hash,app_id:a.app_id,device_id:a.device_id,kms_info:a.kms_info}}}throw o}}),RP=nn(lr.extend({pre_launch_script:Nt.string().describe("Pre-launch script content (shell script)"),compose_hash:Nt.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:Nt.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=Q.parse(e);return{cvmId:t,request:{pre_launch_script:e.pre_launch_script,compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),MP=Nt.object({status:Nt.literal("in_progress"),message:Nt.string(),correlation_id:Nt.string()}),FP=Nt.object({status:Nt.literal("precondition_required"),message:Nt.string(),compose_hash:Nt.string(),app_id:Nt.string(),device_id:Nt.string(),kms_info:rn}),NP=Nt.union([MP,FP]),{action:LP,safeAction:BP}=J(NP,async(e,t)=>{let r=RP.parse(t),n={"Content-Type":"text/plain"};r.request.compose_hash&&(n["X-Compose-Hash"]=r.request.compose_hash),r.request.transaction_hash&&(n["X-Transaction-Hash"]=r.request.transaction_hash);try{return await e.patch(`/cvms/${r.cvmId}/pre-launch-script`,r.request.pre_launch_script,{headers:n})}catch(o){if(o instanceof tn&&o.status===465){let s=o.detail;if(s&&typeof s=="object"){let a=s;return{status:"precondition_required",message:a.message||"Compose hash verification required",compose_hash:a.compose_hash,app_id:a.app_id,device_id:a.device_id,kms_info:a.kms_info}}}throw o}}),UP=Q,{action:zP,safeAction:OP}=J(DP.string(),async(e,t)=>{let{cvmId:r}=UP.parse(t);return await e.get(`/cvms/${r}/pre-launch-script`)}),jP=Vv.object({kms_id:Vv.string().min(1,"KMS ID is required")}),{action:HP,safeAction:VP}=J(rn,async(e,t)=>{let r=jP.parse(t);return await e.get(`/kms/${r.kms_id}`)}),GP=en.object({page:en.number().int().min(1).optional(),page_size:en.number().int().min(1).optional(),is_onchain:en.boolean().optional()}).strict(),qP=en.object({items:en.array(rn),total:en.number(),page:en.number(),page_size:en.number(),pages:en.number()}).strict(),{action:KP,safeAction:WP}=J(qP,async(e,t)=>{let r=GP.parse(t??{});return await e.get("/kms",{params:r})}),JP=ii.object({kms:ii.string().min(1,"KMS ID or slug is required"),app_id:ii.string().refine(e=>e.length===40||e.startsWith("0x")&&e.length===42,"App ID must be exactly 40 characters or 42 characters with 0x prefix")}).strict(),ZP=ii.object({public_key:ii.string(),signature:ii.string()}).strict(),{action:YP,safeAction:Al}=J(ZP,async(e,t)=>{let r=JP.parse(t);return await e.get(`/kms/${r.kms}/pubkey/${r.app_id}`)}),XP=ns.object({counts:ns.number().int().min(1).max(20).optional().default(1)}).strict(),QP=ns.object({app_ids:ns.array(ns.object({app_id:ns.string(),nonce:ns.number().int().min(0)}))}).strict(),{action:eA,safeAction:tA}=J(QP,async(e,t)=>{let r=XP.parse(t??{}),n=new URLSearchParams;return n.append("counts",r.counts.toString()),await e.get(`/kms/phala/next_app_id?${n.toString()}`)}),Pc=Ce.object({id:Ce.number(),name:Ce.string(),status:Ce.string(),teepod_id:Ce.number(),teepod:Ce.object({id:Ce.number(),name:Ce.string(),region_identifier:Ce.string().nullable().optional()}).optional().nullable(),user_id:Ce.number().optional().nullable(),app_id:Ce.string(),vm_uuid:Ce.string().nullable(),instance_id:Ce.string().nullable(),app_url:Ce.string().optional().nullable(),base_image:Ce.string().optional().nullable(),vcpu:Ce.number(),memory:Ce.number(),disk_size:Ce.number(),manifest_version:Ce.number().optional().nullable(),version:Ce.string().optional().nullable(),runner:Ce.string().optional().nullable(),docker_compose_file:Ce.string().optional().nullable(),features:Ce.array(Ce.string()).optional().nullable(),created_at:Ce.string(),encrypted_env_pubkey:Ce.string().nullable()}),rA=Q,{action:nA,safeAction:eg}=J(Pc,async(e,t)=>{let{cvmId:r}=rA.parse(t);return await e.post(`/cvms/${r}/start`)}),oA=Q,{action:sA,safeAction:tg}=J(Pc,async(e,t)=>{let{cvmId:r}=oA.parse(t);return await e.post(`/cvms/${r}/stop`)}),aA=Q,{action:iA,safeAction:cA}=J(Pc,async(e,t)=>{let{cvmId:r}=aA.parse(t);return await e.post(`/cvms/${r}/shutdown`)}),uA=nn(lr.extend({force:mA.boolean().optional()})),{action:pA,safeAction:rg}=J(Pc,async(e,t)=>{let r=uA.parse(t),{cvmId:n}=Q.parse(r),{force:o=!1}=r;return await e.post(`/cvms/${n}/restart`,{force:o})}),fA=Q,{action:dA,safeAction:ng}=J(lA.void(),async(e,t)=>{let{cvmId:r}=fA.parse(t);await e.delete(`/cvms/${r}`)}),gA=le.object({name:le.string(),mount_point:le.string(),total_size:le.number(),free_size:le.number()}),hA=le.object({os_name:le.string(),os_version:le.string(),kernel_version:le.string(),cpu_model:le.string(),num_cpus:le.number(),total_memory:le.number(),available_memory:le.number(),used_memory:le.number(),free_memory:le.number(),total_swap:le.number(),used_swap:le.number(),free_swap:le.number(),uptime:le.number(),loadavg_one:le.number(),loadavg_five:le.number(),loadavg_fifteen:le.number(),disks:le.array(gA)}),yA=le.object({is_online:le.boolean(),is_public:le.boolean().default(!1),error:le.string().nullable(),sysinfo:hA.nullable(),status:le.string().nullable(),in_progress:le.boolean().default(!1),boot_progress:le.string().nullable(),boot_error:le.string().nullable()}),bA=Q,{action:xA,safeAction:vA}=J(yA,async(e,t)=>{let{cvmId:r}=bA.parse(t);return await e.get(`/cvms/${r}/stats`)}),wA=Yr.object({app:Yr.string(),instance:Yr.string()}),CA=Yr.object({is_online:Yr.boolean(),is_public:Yr.boolean().default(!0),error:Yr.string().nullable(),internal_ip:Yr.string().nullable(),latest_handshake:Yr.string().nullable(),public_urls:Yr.array(wA).nullable()}),SA=Q,{action:kA,safeAction:EA}=J(CA,async(e,t)=>{let{cvmId:r}=SA.parse(t);return await e.get(`/cvms/${r}/network`)}),IA=Q,{action:PA,safeAction:AA}=J(_A.string(),async(e,t)=>{let{cvmId:r}=IA.parse(t);return await e.get(`/cvms/${r}/docker-compose.yml`)}),TA=Ne.object({id:Ne.string(),names:Ne.array(Ne.string()),image:Ne.string(),image_id:Ne.string(),command:Ne.string().nullable().optional(),created:Ne.number(),state:Ne.string(),status:Ne.string(),log_endpoint:Ne.string().nullable()}),$A=Ne.object({is_online:Ne.boolean(),is_public:Ne.boolean().default(!0),error:Ne.string().nullable(),docker_compose_file:Ne.string().nullable(),manifest_version:Ne.number().nullable(),version:Ne.string().nullable(),runner:Ne.string().nullable(),features:Ne.array(Ne.string()).nullable(),containers:Ne.array(TA).nullable()}),RA=Q,{action:MA,safeAction:og}=J($A,async(e,t)=>{let{cvmId:r}=RA.parse(t);return await e.get(`/cvms/${r}/composition`)}),FA=V.object({common_name:V.string().nullable(),organization:V.string().nullable(),country:V.string().nullable(),state:V.string().nullable(),locality:V.string().nullable()}),NA=V.object({common_name:V.string().nullable(),organization:V.string().nullable(),country:V.string().nullable()}),LA=V.object({subject:FA,issuer:NA,serial_number:V.string(),not_before:V.string(),not_after:V.string(),version:V.string(),fingerprint:V.string(),signature_algorithm:V.string(),sans:V.array(V.string()).nullable(),is_ca:V.boolean(),position_in_chain:V.number().nullable(),quote:V.string().nullable(),app_id:V.string().nullable().optional(),cert_usage:V.string().nullable().optional()}),BA=V.object({imr:V.number(),event_type:V.number(),digest:V.string(),event:V.string(),event_payload:V.string()}),DA=V.object({mrtd:V.string(),rootfs_hash:V.string().nullable().optional(),rtmr0:V.string(),rtmr1:V.string(),rtmr2:V.string(),rtmr3:V.string(),event_log:V.array(BA),app_compose:V.string()}),UA=V.object({name:V.string().nullable(),is_online:V.boolean(),is_public:V.boolean().default(!0),error:V.string().nullable(),app_certificates:V.array(LA).nullable(),tcb_info:DA.nullable(),compose_file:V.string().nullable()}),zA=Q,{action:OA,safeAction:jA}=J(UA,async(e,t)=>{let{cvmId:r}=zA.parse(t);return await e.get(`/cvms/${r}/attestation`)}),HA=nn(lr.extend({vcpu:si.number().optional(),memory:si.number().optional(),disk_size:si.number().optional(),instance_type:si.string().optional(),allow_restart:si.boolean().optional()})),{action:VA,safeAction:GA}=J(si.void(),async(e,t)=>{let r=HA.parse(t),{cvmId:n}=Q.parse(r),{...o}=r;await e.patch(`/cvms/${n}/resources`,o)}),qA=nn(lr.extend({public_sysinfo:U0.boolean(),public_logs:U0.boolean(),public_tcbinfo:U0.boolean().optional()})),{action:KA,safeAction:sg}=J(sw,async(e,t)=>{let r=qA.parse(t),{cvmId:n}=Q.parse(r),{public_sysinfo:o,public_logs:s,public_tcbinfo:a}=r;return await e.patch(`/cvms/${n}/visibility`,{public_sysinfo:o,public_logs:s,public_tcbinfo:a})}),Gv=dt.object({name:dt.string(),os_image_hash:dt.string().nullable(),is_current:dt.boolean()}),WA=dt.object({version:dt.union([dt.tuple([dt.number(),dt.number(),dt.number(),dt.number()]),dt.tuple([dt.number(),dt.number(),dt.number()])]),prod:Gv.nullable(),dev:Gv.nullable()}),JA=dt.array(WA),ZA=Q,{action:YA,safeAction:XA}=J(JA,async(e,t)=>{let{cvmId:r}=ZA.parse(t);return await e.get(`/cvms/${r}/available-os-images`)}),QA=nn(lr.extend({os_image_name:dw.string().min(1,"OS image name is required")})),{action:eT,safeAction:tT}=J(dw.void(),async(e,t)=>{let r=QA.parse(t),{cvmId:n}=Q.parse(r),{os_image_name:o}=r;await e.patch(`/cvms/${n}/os-image`,{os_image_name:o})}),rT=Zr.object({id:Zr.string().optional(),instance_id:Zr.string().optional(),name:Zr.string(),status:Zr.string(),uptime:Zr.string().optional(),exited_at:Zr.string().optional(),boot_progress:Zr.string().optional(),boot_error:Zr.string().optional(),shutdown_progress:Zr.string().optional()}),nT=Q,{action:oT,safeAction:sT}=J(rT,async(e,t)=>{let{cvmId:r}=nT.parse(t);return await e.get(`/cvms/${r}/state`)}),gw=Mt.object({id:Mt.string(),user_id:Mt.string(),name:Mt.string(),public_key:Mt.string(),fingerprint:Mt.string(),key_type:Mt.string(),source:Mt.string(),key_metadata:Mt.record(Mt.unknown()).nullable().optional(),last_synced_at:Mt.string().nullable().optional(),created_at:Mt.string(),updated_at:Mt.string()}),aT=Mt.array(gw);async function hw(e){let t=await e.get("/user/ssh-keys");return aT.parse(t)}async function Ac(e){try{return{success:!0,data:await hw(e)}}catch(t){return t&&typeof t=="object"&&("status"in t||"issues"in t)?{success:!1,error:t}:{success:!1,error:{name:"Error",message:t instanceof Error?t.message:String(t)}}}}var iT=Co.object({github_username:Co.string().min(1)}),cT=Co.object({github_username:Co.string(),keys_added:Co.number().int(),keys_skipped:Co.number().int(),errors:Co.array(Co.string()).default([])}),{action:mT,safeAction:ag}=J(cT,async(e,t)=>{let{github_username:r}=iT.parse(t);return await e.post("/user/ssh-keys/github-profile",{github_username:r})}),uT=z0.object({name:z0.string().min(1),public_key:z0.string().min(1)}),{action:pT,safeAction:ig}=J(gw,async(e,t)=>{let{name:r,public_key:n}=uT.parse(t);return await e.post("/user/ssh-keys",{name:r,public_key:n})}),lT=j0.object({keyId:j0.string().min(1)}),{action:fT,safeAction:cg}=J(j0.void(),async(e,t)=>{let{keyId:r}=lT.parse(t);await e.delete(`/user/ssh-keys/${r}`)}),dT=rs.object({synced_count:rs.number().int(),keys_added:rs.number().int(),keys_updated:rs.number().int(),keys_removed:rs.number().int(),errors:rs.array(rs.string()).default([])}),{action:gT,safeAction:hT}=tw(dT,async e=>await e.post("/user/ssh-keys/github-sync",{}));function fr(e={}){let t=l8(e),r={getCurrentUser:Xv,safeGetCurrentUser:gt,getAvailableNodes:E8,safeGetAvailableNodes:V0,listAllInstanceTypeFamilies:G0,safeListAllInstanceTypeFamilies:T8,listFamilyInstanceTypes:q0,safeListFamilyInstanceTypes:$8,listWorkspaces:F8,safeListWorkspaces:N8,getWorkspace:L8,safeGetWorkspace:B8,getCvmInfo:cw,safeGetCvmInfo:$e,getCvmList:mw,safeGetCvmList:_c,provisionCvm:sP,safeProvisionCvm:Y0,commitCvmProvision:iP,safeCommitCvmProvision:Pl,getCvmComposeFile:fP,safeGetCvmComposeFile:Ic,provisionCvmComposeFileUpdate:hP,safeProvisionCvmComposeFileUpdate:X0,commitCvmComposeFileUpdate:xP,safeCommitCvmComposeFileUpdate:Q0,updateCvmEnvs:kP,safeUpdateCvmEnvs:EP,updateDockerCompose:TP,safeUpdateDockerCompose:$P,updatePreLaunchScript:LP,safeUpdatePreLaunchScript:BP,getCvmPreLaunchScript:zP,safeGetCvmPreLaunchScript:OP,startCvm:nA,safeStartCvm:eg,stopCvm:sA,safeStopCvm:tg,shutdownCvm:iA,safeShutdownCvm:cA,restartCvm:pA,safeRestartCvm:rg,deleteCvm:dA,safeDeleteCvm:ng,getCvmStats:xA,safeGetCvmStats:vA,getCvmNetwork:kA,safeGetCvmNetwork:EA,getCvmDockerCompose:PA,safeGetCvmDockerCompose:AA,getCvmContainersStats:MA,safeGetCvmContainersStats:og,getCvmAttestation:OA,safeGetCvmAttestation:jA,updateCvmResources:VA,safeUpdateCvmResources:GA,updateCvmVisibility:KA,safeUpdateCvmVisibility:sg,getAvailableOsImages:YA,safeGetAvailableOsImages:XA,updateOsImage:eT,safeUpdateOsImage:tT,getKmsInfo:HP,safeGetKmsInfo:VP,getKmsList:KP,safeGetKmsList:WP,getAppEnvEncryptPubKey:YP,safeGetAppEnvEncryptPubKey:Al,nextAppIds:eA,safeNextAppIds:tA,getCvmState:oT,safeGetCvmState:sT,listSshKeys:hw,safeListSshKeys:Ac,importGithubProfileSshKeys:mT,safeImportGithubProfileSshKeys:ag,createSshKey:pT,safeCreateSshKey:ig,deleteSshKey:fT,safeDeleteSshKey:cg,syncGithubSshKeys:gT,safeSyncGithubSshKeys:hT};return t.extend(r)}var qv=U.object({vm_uuid:U.string().nullable(),app_id:U.string(),name:U.string().default(""),status:U.string(),vcpu:U.number().int(),memory:U.number().int(),disk_size:U.number().int(),teepod_id:U.number().int(),teepod_name:U.string(),region_identifier:U.string().nullable().optional(),kms_type:U.string().nullable().optional(),instance_type:U.string().nullable().optional(),listed:U.boolean().nullable().optional(),base_image:U.string().nullable().optional(),kms_slug:U.string().nullable().optional(),kms_id:U.string().nullable().optional(),instance_id:U.string().nullable().optional(),machine_info:K0.nullable().optional(),updated_at:U.string().nullable().optional()}),yT=U.object({display_name:U.string().nullable().optional(),avatar_url:U.string().nullable().optional(),description:U.string().nullable().optional(),custom_domain:U.string().nullable().optional()}),bT=U.object({id:U.string(),name:U.string(),app_id:U.string(),app_provision_type:U.string().nullable().optional(),app_icon_url:U.string().nullable().optional(),created_at:U.string(),kms_type:U.string(),profile:yT.nullable().optional(),current_cvm:qv.nullable().optional(),cvms:U.array(qv).default([]),cvm_count:U.number().int().default(0)}),xT=U.object({id:U.null().optional(),app_id:U.string(),name:U.null().optional(),app_provision_type:U.null().optional(),app_icon_url:U.null().optional(),created_at:U.null().optional(),kms_type:U.null().optional(),current_cvm:U.null().optional(),cvms:U.null().optional(),cvm_count:U.null().optional()}),vT=U.union([bT,xT]),wT=U.object({dstack_apps:U.array(vT),page:U.number().int(),page_size:U.number().int(),total:U.number().int(),total_pages:U.number().int()}),CT=ce.object({id:ce.string(),name:ce.string(),app_id:ce.string(),app_provision_type:ce.string().nullable().optional(),app_icon_url:ce.string().nullable().optional(),created_at:ce.string(),kms_type:ce.string(),profile:ce.object({display_name:ce.string().nullable().optional(),avatar_url:ce.string().nullable().optional(),description:ce.string().nullable().optional(),custom_domain:ce.string().nullable().optional()}).nullable().optional(),current_cvm:kl.nullable().optional(),cvms:ce.array(kl).default([]),cvm_count:ce.number().int().default(0)}),ST=ce.object({id:ce.null().optional(),app_id:ce.string(),name:ce.null().optional(),app_provision_type:ce.null().optional(),app_icon_url:ce.null().optional(),created_at:ce.null().optional(),kms_type:ce.null().optional(),current_cvm:ce.null().optional(),cvms:ce.null().optional(),cvm_count:ce.null().optional()}),kT=ce.union([CT,ST]),ET=ce.object({dstack_apps:ce.array(kT),page:ce.number().int(),page_size:ce.number().int(),total:ce.number().int(),total_pages:ce.number().int()}),yw=se.object({object_type:se.literal("cvm"),id:se.string().nullable().optional(),name:se.string().nullable().optional(),app_id:se.string().nullable().optional(),vm_uuid:se.string().nullable().optional()}),_T=se.object({revision_id:se.string(),app_id:se.string(),vm_uuid:se.string(),compose_hash:se.string(),created_at:se.string(),trace_id:se.string().nullable().optional(),operation_type:se.string(),triggered_by:J0.nullable().optional(),cvm:yw.nullable().optional(),workspace:Z0.nullable().optional()}),Gse=se.object({revision_id:se.string(),app_id:se.string(),vm_uuid:se.string(),compose_hash:se.string(),compose_file:se.union([se.record(se.any()),se.string()]).nullable().optional(),encrypted_env:se.string(),user_config:se.string(),created_at:se.string(),trace_id:se.string().nullable().optional(),operation_type:se.string(),triggered_by:J0.nullable().optional(),cvm:yw.nullable().optional(),workspace:Z0.nullable().optional()}),qse=se.object({revisions:se.array(_T),total:se.number().int(),page:se.number().int(),page_size:se.number().int(),total_pages:se.number().int()});function El(e){if(typeof e=="string"){if(e.startsWith("0x")&&xe(e))return e;if(xe(`0x${e}`))return`0x${e}`}throw new Error(`Invalid hex value: ${e}`)}var bw=class extends Error{constructor(e,t,r){super(e),this.code=t,this.details=r,this.name="NetworkError"}};var Xr=class extends Error{constructor(e,t,r){super(e),this.hash=t,this.details=r,this.name="TransactionError"}};async function IT(e,t){try{let r=await e.walletClient.getChainId();return{isCorrectNetwork:r===t,currentChainId:r}}catch(r){throw new bw(`Failed to check network status: ${r instanceof Error?r.message:"Unknown error"}`,"NETWORK_CHECK_FAILED",r)}}async function PT(e,t,r){try{let n=await e.getBalance({address:t});return{address:t,balance:n,sufficient:r?n>=r:!0,required:r}}catch(n){throw new bw(`Failed to check balance: ${n instanceof Error?n.message:"Unknown error"}`,"BALANCE_CHECK_FAILED",n)}}async function AT(e,t,r={}){let{timeout:n=6e4,pollingInterval:o=2e3,confirmations:s=1}=r,a=Date.now();return new Promise((i,c)=>{let m=async()=>{try{let u=await e.getTransactionReceipt({hash:t});if(u){if(s>1&&await e.getBlockNumber()-u.blockNumber+1n<BigInt(s)){if(Date.now()-a>=n){c(new Xr(`Transaction confirmation timeout after ${n}ms`,t));return}setTimeout(m,o);return}i(u)}else{if(Date.now()-a>=n){c(new Xr(`Transaction receipt timeout after ${n}ms`,t));return}setTimeout(m,o)}}catch(u){if(Date.now()-a>=n){c(new Xr(`Transaction receipt timeout after ${n}ms`,t,u));return}setTimeout(m,o)}};m()})}async function xw(e,t){let{targetChainId:r,minBalance:n,requiredAddress:o}=t,s=await IT(e,r),a=await PT(e.publicClient,e.address,n),i=o?e.address.toLowerCase()===o.toLowerCase():!0;return{networkValid:s.isCorrectNetwork,balanceValid:a.sufficient,addressValid:i,details:{currentChainId:s.currentChainId,balance:a.balance,address:e.address}}}function mg(){let e={state:"idle"},t,r,n=i=>{e={...e,...i}},o=()=>{t&&(clearTimeout(t),t=void 0),r&&(r.abort(),r=void 0),e={state:"idle"}},s=()=>{r&&r.abort(),t&&(clearTimeout(t),t=void 0),n({state:"error",aborted:!0,error:"Transaction aborted by user"})};return{get status(){return{...e}},get isIdle(){return e.state==="idle"},get isSubmitting(){return e.state==="submitting"},get isPending(){return e.state==="pending"},get isSuccess(){return e.state==="success"},get isError(){return e.state==="error"},get isTimeout(){return e.state==="timeout"},get isAborted(){return e.aborted===!0},get isComplete(){return["success","error","timeout"].includes(e.state)},abort:s,reset:o,execute:async(i,c,m,u={})=>{let{timeout:p=6e4,confirmations:f=1,onSubmitted:d,onConfirmed:g,onError:h,signal:y}=u;try{if(o(),r=new AbortController,y){if(y.aborted)throw new Xr("Operation was aborted before execution");y.addEventListener("abort",()=>{s()})}if(n({state:"submitting",startTime:Date.now(),error:void 0,hash:void 0,receipt:void 0,aborted:!1}),r.signal.aborted)throw new Xr("Transaction aborted");let b=await i(c,...m);if(r.signal.aborted)throw new Xr("Transaction aborted after submission",b);n({state:"pending",hash:b,submitTime:Date.now()}),d?.(b),p>0&&(t=setTimeout(()=>{e.state==="pending"&&!r?.signal.aborted&&n({state:"timeout",error:`Transaction timeout after ${p}ms`})},p));let x=await Promise.race([AT(c.publicClient,b,{timeout:p,confirmations:f}),new Promise((S,k)=>{r?.signal.addEventListener("abort",()=>{k(new Xr("Transaction aborted while waiting for receipt",b))})})]);t&&(clearTimeout(t),t=void 0);let v=x.status==="success";if(n({state:v?"success":"error",receipt:x,confirmTime:Date.now(),error:v?void 0:"Transaction failed on-chain"}),v)g?.(x);else{let S=new Xr("Transaction failed on-chain",b,x);throw h?.(S,b),S}return{hash:b,receipt:x,success:v}}catch(b){let x=b instanceof Xr?b:new Xr(`Transaction execution failed: ${b instanceof Error?b.message:"Unknown error"}`,e.hash,b);throw n({state:"error",error:x.message}),h?.(x,e.hash),x}}}}async function vw(e,t,r,n={},o={}){let{maxRetries:s=3,initialDelay:a=1e3,maxDelay:i=1e4,backoffFactor:c=2,retryCondition:m=()=>!0}=o,u,p=a;for(let f=0;f<=s;f++)try{return await mg().execute(e,t,r,n)}catch(d){if(u=d instanceof Error?d:new Error(String(d)),f===s||!m(u))break;await new Promise(g=>setTimeout(g,p)),p=Math.min(p*c,i)}throw u}var ww=[{inputs:[{name:"deployer",type:"address"},{name:"disableUpgrades",type:"bool"},{name:"allowAnyDevice",type:"bool"},{name:"deviceId",type:"bytes32"},{name:"composeHash",type:"bytes32"}],name:"deployAndRegisterApp",outputs:[{name:"",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"appId",type:"address",indexed:!0},{name:"deployer",type:"address",indexed:!0}],name:"AppDeployedViaFactory",type:"event",anonymous:!1},{inputs:[{name:"appId",type:"address",indexed:!1}],name:"AppRegistered",type:"event",anonymous:!1}],TT=He.object({chain:He.unknown().optional(),rpcUrl:He.string().optional(),kmsContractAddress:He.string(),privateKey:He.string().optional(),walletClient:He.unknown().optional(),publicClient:He.unknown().optional(),allowAnyDevice:He.boolean().optional().default(!1),deviceId:He.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),composeHash:He.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),disableUpgrades:He.boolean().optional().default(!1),skipPrerequisiteChecks:He.boolean().optional().default(!1),minBalance:He.string().optional()}).passthrough(),$T=TT.refine(e=>{let t=!!e.privateKey,r=!!e.walletClient;return t!==r},{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>{let t=!!e.publicClient,r=!!e.walletClient,n=!!e.chain;return t&&r?!0:n},{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),RT=He.object({appId:He.string(),appAuthAddress:He.string(),deployer:He.string(),transactionHash:He.string(),blockNumber:He.bigint().optional(),gasUsed:He.bigint().optional()}).passthrough();function MT(e,t,r){try{let n=Ir({abi:ww,eventName:"AppDeployedViaFactory",logs:e.logs,strict:!1});if(n.length===0)throw e.status==="reverted"?new Error(`Transaction failed: ${e.transactionHash}`):new Error(`Transaction ${e.transactionHash} has no AppDeployedViaFactory events. The deployment failed. Status: ${e.status}. Found ${e.logs.length} logs.`);let o=n[0];if(!o?.args)throw new Error("Event has no data");let{appId:s,deployer:a}=o.args;if(!s)throw new Error("Event missing appId");return{appId:s,appAuthAddress:s,deployer:t,transactionHash:e.transactionHash,blockNumber:e.blockNumber,gasUsed:e.gasUsed}}catch(n){throw n instanceof Error?n:new Error(`Parse failed: ${n}`)}}async function FT(e,t){let r=$T.parse(e),{chain:n,rpcUrl:o,kmsContractAddress:s,privateKey:a,walletClient:i,publicClient:c,allowAnyDevice:m=!1,deviceId:u="0000000000000000000000000000000000000000000000000000000000000000",composeHash:p="0000000000000000000000000000000000000000000000000000000000000000",disableUpgrades:f=!1,skipPrerequisiteChecks:d=!1,minBalance:g,timeout:h=12e4,retryOptions:y,signal:b,onTransactionStateChange:x,onTransactionSubmitted:v,onTransactionConfirmed:S}=r,k="0000000000000000000000000000000000000000000000000000000000000000",I=u!==k&&u!=="0x"+k?!1:m,R,N,L,O;if(a){let ve=yc(a);if(c){if(typeof c!="object"||!c)throw new Error("publicClient is invalid");R=c}else{if(!n)throw new Error("Chain required for publicClient");R=ts({chain:n,transport:kn(o)})}if(!n)throw new Error("Chain required for walletClient");N=hc({account:ve,chain:n,transport:kn(o)}),L=ve.address,O=n.id}else if(i){if(typeof i!="object"||!i)throw new Error("walletClient is invalid");if(N=i,c){if(typeof c!="object"||!c)throw new Error("publicClient is invalid");R=c}else{if(!n)throw new Error("Chain required for publicClient");R=ts({chain:n,transport:kn(o)})}if(!N.account?.address)throw new Error("WalletClient needs an account");L=N.account.address,n?O=n.id:O=await N.getChainId()}else throw new Error("Need privateKey or walletClient");let j={publicClient:R,walletClient:N,address:L,chainId:O},G=mg();if(x&&typeof x=="function"){let ve=()=>{x(G.status),G.isComplete||setTimeout(ve,100)};setTimeout(ve,10)}if(!d){let ve={targetChainId:O,minBalance:g?Qo(g):Qo("0.001")},Dn=await xw(j,ve);if(!Dn.networkValid)throw new Error(`Wrong network. Need chain ${ve.targetChainId}, got ${Dn.details.currentChainId}`);if(!Dn.balanceValid){let yr=Number(ve.minBalance)/1e18,Tf=Number(Dn.details.balance)/1e18;throw new Error(`Not enough ETH. Need ${yr}, have ${Tf.toFixed(6)}`)}}let pe=El(u),Se=El(p),Z=`0x${pe.slice(2).padEnd(64,"0")}`,Ve=`0x${Se.slice(2).padEnd(64,"0")}`,H=async ve=>{try{let yr=await ve.publicClient.getCode({address:s});if(!yr||yr==="0x")throw new Error(`No contract at ${s}`)}catch(yr){if(yr instanceof Error&&yr.message.includes("No contract at"))throw yr}let Dn={address:s,abi:ww,functionName:"deployAndRegisterApp",args:[ve.address,f,I,Z,Ve],account:ve.walletClient.account||ve.address,chain:n||null};return await ve.walletClient.writeContract(Dn)},Be=y?await vw(H,j,[],{timeout:h,confirmations:1,onSubmitted:v,onConfirmed:S,signal:b},y):await G.execute(H,j,[],{timeout:h,confirmations:1,onSubmitted:v,onConfirmed:S,signal:b}),Fr=MT(Be.receipt,L,s);return t?.schema===!1?Fr:(t?.schema||RT).parse(Fr)}async function Cw(e,t){try{return{success:!0,data:await FT(e,t)}}catch(r){let n=r instanceof Error?r.message:"Unknown deployment error";return{success:!1,error:{isRequestError:!0,message:n,status:500,detail:n}}}}var Sw=[{inputs:[{name:"composeHash",type:"bytes32"}],name:"addComposeHash",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"composeHash",type:"bytes32",indexed:!1}],name:"ComposeHashAdded",type:"event",anonymous:!1}],NT=Fe.object({chain:Fe.unknown().optional(),rpcUrl:Fe.string().optional(),appId:Fe.string(),composeHash:Fe.string(),privateKey:Fe.string().optional(),walletClient:Fe.unknown().optional(),publicClient:Fe.unknown().optional(),skipPrerequisiteChecks:Fe.boolean().optional().default(!1),minBalance:Fe.string().optional(),timeout:Fe.number().optional().default(12e4),retryOptions:Fe.unknown().optional(),signal:Fe.unknown().optional(),onTransactionStateChange:Fe.function().optional(),onTransactionSubmitted:Fe.function().optional(),onTransactionConfirmed:Fe.function().optional()}).passthrough().refine(e=>{let t=!!e.privateKey,r=!!e.walletClient;return t!==r},{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>{let t=!!e.publicClient,r=!!e.walletClient,n=!!e.chain;return t&&r?!0:n},{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),LT=Fe.object({composeHash:Fe.string(),appId:Fe.string(),transactionHash:Fe.string(),blockNumber:Fe.bigint().optional(),gasUsed:Fe.bigint().optional()}).passthrough();function BT(e,t,r,n){console.log(e.logs);try{let o=Ir({abi:Sw,eventName:"ComposeHashAdded",logs:e.logs,strict:!1});if(o.length>0){let s=o[0];s?.args?.composeHash!==t&&console.warn(`Event compose hash (${s?.args?.composeHash}) does not match expected (${t})`)}return{composeHash:t,appAuthAddress:r,appId:n,transactionHash:e.transactionHash,blockNumber:e.blockNumber,gasUsed:e.gasUsed}}catch(o){return console.warn("Failed to parse ComposeHashAdded event, returning basic result:",o),{composeHash:t,appAuthAddress:r,appId:n,transactionHash:e.transactionHash,blockNumber:e.blockNumber,gasUsed:e.gasUsed}}}async function DT(e,t){let r=NT.parse(e),{chain:n,rpcUrl:o,appId:s,composeHash:a,privateKey:i,walletClient:c,publicClient:m,timeout:u=12e4,retryOptions:p,signal:f,onTransactionStateChange:d,onTransactionSubmitted:g,onTransactionConfirmed:h,skipPrerequisiteChecks:y=!1,minBalance:b}=r,x,v,S,k,_=s.startsWith("0x")?s:`0x${s}`;if(i){let G=yc(i);if(m)x=m;else{if(!n)throw new Error("Chain required when creating publicClient");x=ts({chain:n,transport:kn(o)})}if(!n)throw new Error("Chain required when creating walletClient");v=hc({account:G,chain:n,transport:kn(o)}),S=G.address,k=n.id}else if(c){if(v=c,m)x=m;else{if(!n)throw new Error("Chain required when creating publicClient");x=ts({chain:n,transport:kn(o)})}if(!v.account?.address)throw new Error("WalletClient must have an account with address");S=v.account.address,k=n?n.id:await v.getChainId()}else throw new Error("Either privateKey or walletClient must be provided");let I={publicClient:x,walletClient:v,address:S,chainId:k},R=mg();if(d&&typeof d=="function"){let G=()=>{d(R.status),R.isComplete||setTimeout(G,100)};setTimeout(G,10)}if(!y){let G={targetChainId:k,minBalance:b?Qo(b):Qo("0.001")},pe=await xw(I,G);if(!pe.networkValid)throw new Error(`Network mismatch: Expected chain ${G.targetChainId}, but wallet is on chain ${pe.details.currentChainId}`);if(!pe.balanceValid){let Se=Number(G.minBalance)/1e18,Z=Number(pe.details.balance)/1e18;throw new Error(`Insufficient balance: Required ${Se} ETH, but account has ${Z.toFixed(6)} ETH`)}}let N=async G=>await G.walletClient.writeContract({address:_,abi:Sw,functionName:"addComposeHash",args:[El(a)],account:G.walletClient.account||G.address,chain:n||null}),L=p?await vw(N,I,[],{timeout:u,confirmations:1,onSubmitted:g,onConfirmed:h,signal:f},p):await R.execute(N,I,[],{timeout:u,confirmations:1,onSubmitted:g,onConfirmed:h,signal:f}),O=BT(L.receipt,El(a),_,s);return t?.schema===!1?O:(t?.schema||LT).parse(O)}async function kw(e,t){try{return{success:!0,data:await DT(e,t)}}catch(r){let n=r instanceof Error?r.message:"Unknown blockchain error";return{success:!1,error:{isRequestError:!0,message:n,status:500,detail:n}}}}var UT=aw;var zT=ni.object({items:ni.array(UT),total:ni.number(),page:ni.number(),page_size:ni.number(),pages:ni.number()}).passthrough(),{action:nae,safeAction:Ew}=J(zT,async(e,t)=>{let{teamSlug:r,page:n,pageSize:o}=t,s=new URLSearchParams;n!==void 0&&s.append("page",n.toString()),o!==void 0&&s.append("page_size",o.toString());let a=s.toString()?`/workspaces/${r}/nodes?${s.toString()}`:`/workspaces/${r}/nodes`;return await e.get(a)}),ai=$r.object({limit:$r.number(),remaining:$r.number()}).passthrough(),OT=$r.object({vm_slots:ai,vcpu:ai,memory_mb:ai,disk_gb:ai}).passthrough(),jT=$r.object({gpus:ai,in_use:$r.number(),misconfigured:$r.number()}).passthrough(),HT=$r.object({team_slug:$r.string(),tier:$r.string(),quotas:OT,reserved_nodes:ai,reserved_gpu:jT,as_of:$r.string()}).passthrough(),{action:sae,safeAction:aae}=J(HT,async(e,t)=>await e.get(`/workspaces/${t.teamSlug}/quotas`)),GT=nn(lr.extend({node_id:VT.number().optional()})),{action:cae,safeAction:mae}=J(Pc,async(e,t)=>{let r=GT.parse(t),{cvmId:n}=Q.parse(r),{node_id:o}=r;return await e.post(`/cvms/${n}/replicas`,{node_id:o})}),pae=oi.object({target:oi.string().describe("Target status to wait for (e.g., 'running', 'stopped')"),interval:oi.number().min(5).max(30).default(5).describe("Polling interval in seconds"),timeout:oi.number().min(10).max(600).default(300).describe("Timeout per attempt in seconds"),maxRetries:oi.number().min(0).default(Number.POSITIVE_INFINITY).describe("Maximum number of retry attempts (Infinity for unlimited)"),retryDelay:oi.number().min(0).default(5e3).describe("Delay between retries in milliseconds")});var _w=Tr.object({cvm_id:Tr.number().int(),identifier:Tr.string(),status:Tr.enum(["updated","unchanged","skipped","conflict","error"]),old_instance_id:Tr.string().nullable().optional(),new_instance_id:Tr.string().nullable().optional(),source:Tr.enum(["teepod_state","teepod_info","gateway","none"]),verified_with_gateway:Tr.boolean(),reason:Tr.string().nullable().optional()}),qT=nn(lr.extend({overwrite:Tr.boolean().optional(),dry_run:Tr.boolean().optional()})),{action:fae,safeAction:dae}=J(_w,async(e,t)=>{let r=qT.parse(t),{cvmId:n}=Q.parse(r),{overwrite:o,dry_run:s}=r;return await e.patch(`/cvms/${n}/instance-id`,{overwrite:o,dry_run:s})}),KT=nt.object({cvm_ids:nt.array(nt.string()).optional(),running_only:nt.boolean().optional(),missing_only:nt.boolean().optional(),overwrite:nt.boolean().optional(),limit:nt.number().int().min(1).max(500).optional(),dry_run:nt.boolean().optional()}).strict(),WT=nt.object({total:nt.number().int(),scanned:nt.number().int(),updated:nt.number().int(),unchanged:nt.number().int(),skipped:nt.number().int(),conflicts:nt.number().int(),errors:nt.number().int(),items:nt.array(_w)}),{action:hae,safeAction:yae}=J(WT,async(e,t)=>{let r=KT.parse(t);return await e.patch("/cvms/instance-ids",r)}),JT=wt.object({vm_uuid:wt.string(),status:wt.string(),uptime:wt.string().nullable().optional(),in_progress:wt.boolean(),boot_progress:wt.string().nullable().optional(),boot_error:wt.string().nullable().optional(),operation_type:wt.string().nullable().optional(),operation_started_at:wt.string().nullable().optional(),correlation_id:wt.string().nullable().optional()}),ZT=wt.record(wt.string(),JT),YT=wt.object({vmUuids:wt.array(wt.string())}),{action:xae,safeAction:Iw}=J(ZT,async(e,t)=>{let{vmUuids:r}=YT.parse(t);return await e.post("/status/batch",{vm_uuids:r})}),XT=Sc.object({hostname:Sc.string().nullable().optional(),ssh_authorized_keys:Sc.array(Sc.string()).default([]),default_gateway_domain:Sc.string().nullable().optional()}),QT=Q,{action:wae,safeAction:Pw}=J(XT,async(e,t)=>{let{cvmId:r}=QT.parse(t);return await e.get(`/cvms/${r}/user_config`)}),e3=qt.object({page:qt.number().int().min(1).optional(),page_size:qt.number().int().min(1).max(100).optional(),search:qt.string().optional(),status:qt.array(qt.string()).optional(),listed:qt.boolean().optional(),base_image:qt.string().optional(),instance_type:qt.string().optional(),kms_slug:qt.string().optional(),kms_type:qt.string().optional(),node:qt.string().optional(),region:qt.string().optional()}).strict();function t3(e){return e==="2025-10-28"?wT:ET}async function r3(e,t){let r=e3.parse(t??{}),n=await e.get("/apps",{params:r});return t3(e.config.version).parse(n)}async function Aw(e,t){try{return{success:!0,data:await r3(e,t)}}catch(r){return r&&typeof r=="object"&&("status"in r||"issues"in r)?{success:!1,error:r}:{success:!1,error:{name:"Error",message:r instanceof Error?r.message:String(r)}}}}var kae=Kv.object({appId:Kv.string().min(1)}).strict();var _ae=Wv.object({appId:Wv.string().min(1)}).strict();var Pae=wl.object({appId:wl.string().min(1),page:wl.number().int().min(1).optional(),page_size:wl.number().int().min(1).max(1e3).optional()}).strict();var Tae=Cl.object({appId:Cl.string().min(1),revisionId:Cl.string().min(1),rawComposeFile:Cl.boolean().optional()}).strict();var Rae=vt.object({statuses:vt.array(vt.string()),image_versions:vt.array(vt.string()),instance_types:vt.array(vt.string()),kms_slugs:vt.array(vt.string()),kms_types:vt.array(vt.string()),regions:vt.array(vt.string()),nodes:vt.array(vt.string())});var n3=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function o3(e){let t={},r=e.toString();r=r.replace(/\r\n?/gm,`
73
+ `);let n;for(;(n=n3.exec(r))!=null;){let o=n[1];if(!o)continue;let s=n[2]||"";s=s.trim();let a=s[0];s=s.replace(/^(['"`])([\s\S]*)\1$/gm,"$2"),a==='"'&&(s=s.replace(/\\n/g,`
74
+ `),s=s.replace(/\\r/g,"\r")),t[o]=s}return t}function Tl(e){let t=o3(e),r=[];for(let[n,o]of Object.entries(t))r.push({key:n,value:o});return r}import St from"chalk";import i3 from"ora";function c3(e,t){let r=e.split(/\s+/),n=[],o="";for(let s of r){let a=o.length===0?s:`${o} ${s}`;a.length<=t?o=a:(o.length>0&&n.push(o),o=s)}return o.length>0&&n.push(o),n}function m3(e,t){if(e.length<=t)return[e];let r=[],n=0;for(;n<e.length;)r.push(e.slice(n,n+t)),n+=t;return r}function Tw(e,t){let r=[];for(let n of e.split(`
75
+ `)){if(n.length<=t){r.push(n);continue}if(n.indexOf(" ")===-1){r.push(...m3(n,t));continue}let o=c3(n,t);r.push(...o)}if(r.length===0){let n=e.trim();r.push(n)}return r}var l={error:(e,...t)=>{we()||(process.stderr.write(`${St.red("\u2717")} ${St.red(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
76
76
  `))},warn:(e,...t)=>{we()||(process.stderr.write(`${St.yellow("\u26A0")} ${St.yellow(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
77
77
  `))},info:(e,...t)=>{we()||(process.stderr.write(`${St.blue("\u2139")} ${St.blue(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
78
78
  `))},success:(e,...t)=>{we()||(process.stderr.write(`${St.green("\u2713")} ${St.green(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
79
79
  `))},debug:(e,...t)=>{we()||process.env.DEBUG&&(process.stderr.write(`${St.gray("\u{1F50D}")} ${St.gray(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
80
- `))},table:(e,t)=>{if(!we()){if(e.length===0){console.log(St.yellow("No data to display"));return}if(t){let r;typeof t[0]=="string"?r=t.map(a=>({key:a,header:a})):r=t;let n={};for(let a of r){let i=a.header||String(a.key);n[String(a.key)]=i.length}for(let a of e)for(let i of r){let c=String(typeof i.key=="string"&&!(i.key in a)?"":a[String(i.key)]??"");n[String(i.key)]=Math.max(n[String(i.key)],c.length)}let o=[];for(let a of r){let i=a.header||String(a.key);o.push(St.bold(i.padEnd(n[String(a.key)])))}console.log(o.join(" "));let s=[];for(let a of r)s.push("-".repeat(n[String(a.key)]));console.log(s.join(" "));for(let a of e){let i=[];for(let c of r){let m=String(typeof c.key=="string"&&!(c.key in a)?"":a[String(c.key)]??"");i.push(m.padEnd(n[String(c.key)]))}console.log(i.join(" "))}}else{let r=e[0],n=Object.keys(r),o={};for(let i of n)o[i]=i.length;for(let i of e)for(let c of n){let m=String(i[c]??"");o[c]=Math.max(o[c],m.length)}let s=[];for(let i of n)s.push(St.bold(i.padEnd(o[i])));console.log(s.join(" "));let a=[];for(let i of n)a.push("-".repeat(o[i]));console.log(a.join(" "));for(let i of e){let c=[];for(let m of n){let u=String(i[m]??"");c.push(u.padEnd(o[m]))}console.log(c.join(" "))}}}},keyValueTable:(e,t)=>{if(we())return;let{borderStyle:r="single",keyColor:n=St.blue,valueColor:o=St.white,maxWidth:s=process.stdout.columns||80}=t||{},i={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",cross:"\u253C",leftT:"\u251C",rightT:"\u2524"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",cross:"\u256C",leftT:"\u2560",rightT:"\u2563"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",cross:"\u253C",leftT:"\u251C",rightT:"\u2524"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",cross:"\u254B",leftT:"\u2523",rightT:"\u252B"},none:{topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",horizontal:"",vertical:"",cross:"",leftT:"",rightT:""}}[r],c=0,m=0;for(let[g,h]of Object.entries(e)){c=Math.max(c,g.length);let y=String(h??"");m=Math.max(m,y.length)}let u=4,p=1,l=s-u-p;if(c+m>l){let g=c/(c+m);c=Math.floor(l*g),m=l-c}let d=c+m+u+p;r!=="none"&&console.log(i.topLeft+i.horizontal.repeat(d-2)+i.topRight);for(let[g,h]of Object.entries(e)){let y=g,b=String(h??""),x=Aw(y,c),v=Aw(b,m),S=Math.max(x.length,v.length);for(;x.length<S;)x.push("");for(;v.length<S;)v.push("");for(let E=0;E<S;E++){let _=x[E].padEnd(c),I=v[E].padEnd(m);console.log(r!=="none"?`${i.vertical} ${n(_)} ${i.vertical} ${o(I)} ${i.vertical}`:`${n(_)} : ${o(I)}`)}}r!=="none"&&console.log(i.bottomLeft+i.horizontal.repeat(d-2)+i.bottomRight)},break:()=>{we()||process.stderr.write(`
81
- `)},startSpinner:e=>{if(we())return{stop:()=>{}};let t=n3(e).start();return{stop:(r=!0,n)=>{n&&(t.text=n),r?t.succeed():t.fail()}}},logDetailedError(e,t){if(we())return;let r=t?`[${t}] `:"",n=s=>s!==null&&typeof s=="object"&&"isRequestError"in s&&s.isRequestError===!0&&"status"in s&&"message"in s&&"data"in s,o=s=>s!==null&&typeof s=="object"&&"issues"in s&&Array.isArray(s.issues);if(n(e)){process.stderr.write(`${r}HTTP ${e.status}: ${e.message}
80
+ `))},table:(e,t)=>{if(!we()){if(e.length===0){console.log(St.yellow("No data to display"));return}if(t){let r;typeof t[0]=="string"?r=t.map(a=>({key:a,header:a})):r=t;let n={};for(let a of r){let i=a.header||String(a.key);n[String(a.key)]=i.length}for(let a of e)for(let i of r){let c=String(typeof i.key=="string"&&!(i.key in a)?"":a[String(i.key)]??"");n[String(i.key)]=Math.max(n[String(i.key)],c.length)}let o=[];for(let a of r){let i=a.header||String(a.key);o.push(St.bold(i.padEnd(n[String(a.key)])))}console.log(o.join(" "));let s=[];for(let a of r)s.push("-".repeat(n[String(a.key)]));console.log(s.join(" "));for(let a of e){let i=[];for(let c of r){let m=String(typeof c.key=="string"&&!(c.key in a)?"":a[String(c.key)]??"");i.push(m.padEnd(n[String(c.key)]))}console.log(i.join(" "))}}else{let r=e[0],n=Object.keys(r),o={};for(let i of n)o[i]=i.length;for(let i of e)for(let c of n){let m=String(i[c]??"");o[c]=Math.max(o[c],m.length)}let s=[];for(let i of n)s.push(St.bold(i.padEnd(o[i])));console.log(s.join(" "));let a=[];for(let i of n)a.push("-".repeat(o[i]));console.log(a.join(" "));for(let i of e){let c=[];for(let m of n){let u=String(i[m]??"");c.push(u.padEnd(o[m]))}console.log(c.join(" "))}}}},keyValueTable:(e,t)=>{if(we())return;let{borderStyle:r="single",keyColor:n=St.blue,valueColor:o=St.white,maxWidth:s=process.stdout.columns||80}=t||{},i={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",cross:"\u253C",leftT:"\u251C",rightT:"\u2524"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",cross:"\u256C",leftT:"\u2560",rightT:"\u2563"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",cross:"\u253C",leftT:"\u251C",rightT:"\u2524"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",cross:"\u254B",leftT:"\u2523",rightT:"\u252B"},none:{topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",horizontal:"",vertical:"",cross:"",leftT:"",rightT:""}}[r],c=0,m=0;for(let[g,h]of Object.entries(e)){c=Math.max(c,g.length);let y=String(h??"");m=Math.max(m,y.length)}let u=4,p=1,f=s-u-p;if(c+m>f){let g=c/(c+m);c=Math.floor(f*g),m=f-c}let d=c+m+u+p;r!=="none"&&console.log(i.topLeft+i.horizontal.repeat(d-2)+i.topRight);for(let[g,h]of Object.entries(e)){let y=g,b=String(h??""),x=Tw(y,c),v=Tw(b,m),S=Math.max(x.length,v.length);for(;x.length<S;)x.push("");for(;v.length<S;)v.push("");for(let k=0;k<S;k++){let _=x[k].padEnd(c),I=v[k].padEnd(m);console.log(r!=="none"?`${i.vertical} ${n(_)} ${i.vertical} ${o(I)} ${i.vertical}`:`${n(_)} : ${o(I)}`)}}r!=="none"&&console.log(i.bottomLeft+i.horizontal.repeat(d-2)+i.bottomRight)},break:()=>{we()||process.stderr.write(`
81
+ `)},startSpinner:e=>{if(we())return{stop:()=>{}};let t=i3(e).start();return{stop:(r=!0,n)=>{n&&(t.text=n),r?t.succeed():t.fail()}}},logDetailedError(e,t){if(we())return;let r=t?`[${t}] `:"",n=s=>s!==null&&typeof s=="object"&&"isRequestError"in s&&s.isRequestError===!0&&"status"in s&&"message"in s&&"data"in s,o=s=>s!==null&&typeof s=="object"&&"issues"in s&&Array.isArray(s.issues);if(n(e)){process.stderr.write(`${r}HTTP ${e.status}: ${e.message}
82
82
  `),e.data!==void 0&&e.data!==null&&process.stderr.write(`${JSON.stringify(e.data,null,2)}
83
83
  `);return}if(o(e)){process.stderr.write(`${r}Validation error: ${JSON.stringify(e.issues)}
84
84
  `);return}e instanceof Error?process.stderr.write(`${r}${e.message}
85
85
  `):process.stderr.write(`${r}${String(e)}
86
- `)}};var $w=lr.extend({profile:Rr.string().optional(),api_version:Rr.enum(H0).optional(),gateway_domain:Rr.string().optional(),gateway_port:Rr.number().int().positive().optional(),compose_file:Rr.string().optional(),env_file:Rr.string().optional(),public_logs:Rr.boolean().optional(),public_sysinfo:Rr.boolean().optional(),listed:Rr.boolean().optional()}),Tc="phala.toml";function ug(){return a3.join(process.cwd(),Tc)}function Rl(){return $l.existsSync(ug())}function i3(){let e=ug();if(!$l.existsSync(e))throw new Error(`Project configuration file not found: ${Tc}
87
- Run 'phala init' to create one.`);try{let t=$l.readFileSync(e,"utf8"),r=Tw.parse(t),n=$w.parse(r);if(n.id||n.uuid||n.app_id||n.instance_id||n.name){let{cvmId:o}=Q.parse(n);return{...n,cvm_id:o}}return n}catch(t){if(t instanceof Rr.ZodError){let r=t.issues.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
86
+ `)}};var Rw=lr.extend({profile:Rr.string().optional(),api_version:Rr.enum(H0).optional(),gateway_domain:Rr.string().optional(),gateway_port:Rr.number().int().positive().optional(),compose_file:Rr.string().optional(),env_file:Rr.string().optional(),public_logs:Rr.boolean().optional(),public_sysinfo:Rr.boolean().optional(),listed:Rr.boolean().optional()}),Tc="phala.toml";function ug(){return u3.join(process.cwd(),Tc)}function Rl(){return $l.existsSync(ug())}function p3(){let e=ug();if(!$l.existsSync(e))throw new Error(`Project configuration file not found: ${Tc}
87
+ Run 'phala init' to create one.`);try{let t=$l.readFileSync(e,"utf8"),r=$w.parse(t),n=Rw.parse(r);if(n.id||n.uuid||n.app_id||n.instance_id||n.name){let{cvmId:o}=Q.parse(n);return{...n,cvm_id:o}}return n}catch(t){if(t instanceof Rr.ZodError){let r=t.issues.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
88
88
  `);throw new Error(`Invalid project configuration:
89
- ${r}`)}throw new Error(`Failed to parse ${Tc}: ${t instanceof Error?t.message:String(t)}`)}}function Rw(e){let t=ug();try{let r=$w.parse(e),n=Tw.stringify(r);$l.writeFileSync(t,n,"utf8"),f.success(`Project configuration saved to ${Tc}`)}catch(r){if(r instanceof Rr.ZodError){let n=r.issues.map(o=>` - ${o.path.join(".")}: ${o.message}`).join(`
89
+ ${r}`)}throw new Error(`Failed to parse ${Tc}: ${t instanceof Error?t.message:String(t)}`)}}function Mw(e){let t=ug();try{let r=Rw.parse(e),n=$w.stringify(r);$l.writeFileSync(t,n,"utf8"),l.success(`Project configuration saved to ${Tc}`)}catch(r){if(r instanceof Rr.ZodError){let n=r.issues.map(o=>` - ${o.path.join(".")}: ${o.message}`).join(`
90
90
  `);throw new Error(`Invalid configuration:
91
- ${n}`)}throw new Error(`Failed to save ${Tc}: ${r instanceof Error?r.message:String(r)}`)}}function $c(){return Rl()?i3():{}}function Mw(e){if(!e)return;let{cvmId:t}=Q.parse({id:e});return t}import _n from"fs";import c3 from"os";import Fl from"path";var on="https://cloud-api.phala.com/api/v1";function Nl(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:Fl.join(c3.homedir(),".phala-cloud")}function Rc(){return Fl.join(Nl(),"credentials.json")}function pg(){return Fl.join(Nl(),"api-key")}function Fw(){return Fl.join(Nl(),"docker-credentials.json")}function Nw(){let e=Nl();_n.existsSync(e)||_n.mkdirSync(e,{recursive:!0})}function Ml(e){return typeof e=="string"&&e.trim().length>0}function Ll(e){let t=e.trim();return t.length===0?"default":t}function Lt(){try{let e=Rc();if(!_n.existsSync(e))return null;let t=_n.readFileSync(e,"utf8"),r=JSON.parse(t);if(!r||typeof r!="object")return null;let n=r;return n.schema_version!==1||!Ml(n.current_profile)||!n.profiles||typeof n.profiles!="object"?null:n}catch(e){return f.error("Failed to read credentials file:",e),null}}function lg(e){Nw(),_n.writeFileSync(Rc(),JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}function Lw(e){let t=Lt(),r=Ll(e.profile||e.projectProfile||t?.current_profile||"default"),n=e.env.PHALA_CLOUD_API_PREFIX,o=t?.profiles?.[r]?.api_prefix,s=(n&&n.trim().length>0?n:o&&o.trim().length>0?o:on)??on,a=n?"env":o?"file":"default";if(Ml(e.apiToken))return{apiKey:e.apiToken,baseURL:s,profileName:r,tokenSource:"flag",apiPrefixSource:a};if(Ml(e.env.PHALA_CLOUD_API_KEY))return{apiKey:e.env.PHALA_CLOUD_API_KEY,baseURL:s,profileName:r,tokenSource:"env",apiPrefixSource:a};let i=t?.profiles?.[r]?.token;return Ml(i)?{apiKey:i,baseURL:s,profileName:r,tokenSource:"file",apiPrefixSource:a}:{apiKey:null,baseURL:s,profileName:r,tokenSource:"none",apiPrefixSource:a}}function ci(e){let t=Ll(e.profileName),r=(e.apiPrefix||on).trim(),n=Lt(),s=e.setCurrent??!0?t:n?.current_profile||t,a=e.workspaceSlug?{name:e.workspaceName,slug:e.workspaceSlug}:{name:e.workspaceName},i={schema_version:1,current_profile:s,profiles:{...n?.profiles||{},[t]:{token:e.token,api_prefix:r.length>0?r:on,workspace:a,user:e.user,updated_at:new Date().toISOString()}}};lg(i)}function Bl(e){let t=Lt();if(!t)return;let r=Ll(e||t.current_profile),n={...t.profiles};delete n[r];let o=Object.keys(n);if(o.length===0){try{_n.unlinkSync(Rc())}catch(i){f.error("Failed to remove credentials file:",i)}return}let a={schema_version:1,current_profile:t.current_profile===r?o[0]:t.current_profile,profiles:n};lg(a)}function Mc(){let e=Lt();return e?Object.keys(e.profiles):[]}function fg(e){let t=Ll(e),r=Lt();if(!r)throw new Error("No credentials file found. Please login first.");if(!r.profiles[t])throw new Error(`Profile "${t}" not found`);r.current_profile!==t&&lg({...r,current_profile:t})}function ns(){let e=Lt();if(!e)return null;let t=e.current_profile,r=e.profiles[t];return r?{name:t,info:r}:null}async function dg(e){Nw();try{_n.writeFileSync(Fw(),JSON.stringify(e,null,2),{mode:384}),f.success("Docker information saved successfully.")}catch(t){throw f.error("Failed to save Docker information:",t),t}}async function In(){try{let e=Fw();if(_n.existsSync(e)){let t=_n.readFileSync(e,"utf8");return JSON.parse(t)}return null}catch(e){return f.error("Failed to read Docker credentials:",e),null}}var Bw="2026-01-21";function m3(){return{env:process.env,projectConfig:$c()}}function sn(e,t){let r=e??m3();return Lw({env:r.env,apiToken:t?.apiToken,profile:t?.profile,projectProfile:r.projectConfig.profile})}async function F(e,t){let r=sn(e,t);return fr({apiKey:r.apiKey??void 0,baseURL:r.baseURL,version:Bw})}async function Dl(e,t){let r=sn(e,t);return{client:await F(e,t),auth:r}}async function Ul(e,t){return fr({apiKey:e,baseURL:t?.baseURL,version:Bw})}import{z as C}from"zod";var u3=C.object({password:C.string(),registry:C.string().nullable(),username:C.string()}),oie=C.object({docker_compose_file:C.string(),docker_config:u3.optional().nullable(),features:C.array(C.string()),kms_enabled:C.boolean(),manifest_version:C.number(),name:C.string(),public_logs:C.boolean(),public_sysinfo:C.boolean(),runner:C.string().optional(),salt:C.string().nullable().optional(),tproxy_enabled:C.boolean(),version:C.string().optional()}).passthrough(),Dw=C.object({id:C.number(),name:C.string(),status:C.string(),teepod_id:C.number().nullable(),teepod:C.object({id:C.number(),name:C.string()}).nullable(),user_id:C.number().nullable(),app_id:C.string(),vm_uuid:C.string().nullable(),instance_id:C.string().nullable(),app_url:C.string().nullable(),base_image:C.string().nullable(),vcpu:C.number(),memory:C.number(),disk_size:C.number(),manifest_version:C.number().nullable(),version:C.string().nullable(),runner:C.string().nullable(),docker_compose_file:C.string().nullable(),features:C.array(C.string()).nullable(),created_at:C.string(),encrypted_env_pubkey:C.string().nullable()}),sie=C.object({key:C.string(),value:C.string()}),p3=C.object({is_online:C.boolean(),is_public:C.boolean(),error:C.string().nullable(),internal_ip:C.string(),latest_handshake:C.string(),public_urls:C.array(C.object({app:C.string(),instance:C.string()}))}),Uw=C.object({id:C.number(),name:C.string(),status:C.string(),teepod_id:C.number(),teepod:C.object({id:C.number(),name:C.string()}),user_id:C.number().nullable(),app_id:C.string(),vm_uuid:C.string().nullable(),instance_id:C.string().nullable(),app_url:C.string().nullable(),base_image:C.string().nullable(),vcpu:C.number(),memory:C.number(),disk_size:C.number(),manifest_version:C.number().nullable(),version:C.string().nullable(),runner:C.string().nullable(),docker_compose_file:C.string().nullable(),features:C.array(C.string()).nullable(),created_at:C.string(),encrypted_env_pubkey:C.string().nullable()}),zw=C.object({is_online:C.boolean(),is_public:C.boolean(),error:C.string().nullable(),app_certificates:C.array(C.object({subject:C.object({common_name:C.string().nullable(),organization:C.string().nullable(),country:C.string().nullable(),state:C.string().nullable().optional(),locality:C.string().nullable().optional()}),issuer:C.object({common_name:C.string().nullable(),organization:C.string().nullable(),country:C.string().nullable()}),serial_number:C.string(),not_before:C.string(),not_after:C.string(),version:C.string(),fingerprint:C.string(),signature_algorithm:C.string(),sans:C.string().nullable(),is_ca:C.boolean(),position_in_chain:C.number(),quote:C.string().nullable()})).nullable(),tcb_info:C.object({mrtd:C.string(),rootfs_hash:C.string(),rtmr0:C.string(),rtmr1:C.string(),rtmr2:C.string(),rtmr3:C.string(),event_log:C.array(C.object({imr:C.number(),event_type:C.number(),digest:C.string(),event:C.string(),event_payload:C.string()}))}).nullable(),compose_file:C.string().nullable()}),l3=C.object({name:C.string(),description:C.string().optional(),version:C.array(C.number()).optional(),is_dev:C.boolean().optional(),os_image_hash:C.string().nullable().optional(),rootfs_hash:C.string().optional(),shared_ro:C.boolean().optional(),cmdline:C.string().optional(),kernel:C.string().optional(),initrd:C.string().optional(),hda:C.string().nullable().optional(),rootfs:C.string().optional(),bios:C.string().optional()}),aie=C.object({teepod_id:C.number().nullable(),id:C.number().optional(),name:C.string(),listed:C.boolean().optional(),resource_score:C.number().optional(),remaining_vcpu:C.number().optional(),remaining_memory:C.number().optional(),remaining_cvm_slots:C.number().optional(),images:C.array(l3).optional(),region_identifier:C.string().optional(),dedicated_for_team_id:C.number().nullable().optional(),support_onchain_kms:C.boolean().optional(),fmspc:C.string().nullable().optional(),device_id:C.string().nullable().optional()});import f3 from"inquirer";async function Ow(e){let t=await F(),r=await Ic(t,{id:e});if(!r.success)throw new Error(r.error.message);return r.data}async function jw(){let e=f.startSpinner("Fetching available CVMs"),t=await F(),r=await _c(t);if(e.stop(!0),!r.success){f.error(`Failed to fetch CVMs: ${r.error.message}`);return}let{items:n}=r.data;if(n.length===0){f.info("No CVMs found for your account");return}let o=n.map(a=>({name:`${a.name} (${a.app_id??a.id}) - ${a.status}`,value:a.app_id??a.id})),{selectedCvm:s}=await f3.prompt([{type:"list",name:"selectedCvm",message:"Select a CVM:",choices:o}]);return s}async function Hw(e){let t=await F(),r=e.replace(/^app_/,""),n=await t.get(`cvms/app_${r}/attestation`);try{return zw.parse(n)}catch(o){return f.debug(`Validation error: ${o instanceof Error?o.message:String(o)}`),{is_online:!!n?.is_online,is_public:!!n?.is_public,error:typeof n?.error=="string"?n.error:null,app_certificates:Array.isArray(n?.app_certificates)?n.app_certificates:null,tcb_info:n?.tcb_info||null,compose_file:typeof n?.compose_file=="string"?n.compose_file:null}}}async function Vw(e,t){let r=await F(),n=e.replace(/^app_/,""),o=await r.post(`cvms/app_${n}/replicas`,t);return Uw.parse(o)}async function gg(e,t,r,n,o){let s=await F(),a=e.replace(/^app_/,""),i={};if(t!==void 0&&(i.vcpu=t),r!==void 0&&(i.memory=r),n!==void 0&&(i.disk_size=n),o!==void 0&&(i.allow_restart=o),Object.keys(i).length===0)throw new Error("At least one resource parameter must be provided");return await s.patch(`cvms/app_${a}/resources`,i),!0}async function Gw(e){return await(await F()).post("cvms/pubkey/from_cvm_configuration",e)}async function qw(e){let r=await(await F()).post("cvms/from_cvm_configuration",e);return Dw.parse(r)}async function Kw(e,t){let r=await F(),n=e.replace(/^app_/,"");return await r.put(`cvms/app_${n}/compose`,t)}async function Ww(e=!1){let t=await F(),r="teepods/available";return e&&(r+="?v03x_only=1"),await t.get(r)}function Co(e,t){let r=[];t.since&&r.push(`since=${encodeURIComponent(t.since)}`),t.until&&r.push(`until=${encodeURIComponent(t.until)}`),t.follow&&r.push("follow"),t.text&&r.push("text"),t.bare&&r.push("bare"),t.tail!==void 0&&(r.push(`tail=${t.tail}`),r.push(`lines=${t.tail}`)),t.timestamps&&r.push("timestamps"),(t.ansi??!0)&&r.push("ansi");let n=e.includes("?")?"&":"?";return e+n+r.join("&")}async function Jw(e,t){let r=e.body?.getReader();if(!r)throw new Error("No response body available for streaming");let n=new TextDecoder;for(;;){let{done:o,value:s}=await r.read();if(o)break;t(n.decode(s,{stream:!0}))}}function d3(e){return!e||/\s/.test(e)||e.length%4!==0?!1:/^[A-Za-z0-9+/]+={0,2}$/.test(e)}function g3(e){if(!d3(e))return e;try{return Buffer.from(e,"base64").toString("utf-8")}catch{return e}}function zl(e){let t=e.trim();if(!t)return null;try{let r=JSON.parse(t);return typeof r.message!="string"?null:{channel:r.channel==="stderr"?"stderr":"stdout",message:g3(r.message)}}catch{return null}}function h3(e){let t=e.split(/\r?\n/),r=[];for(let n of t){if(!n.trim())continue;let o=zl(n);if(o){r.push(o);continue}r.push({channel:"stdout",message:`${n}
92
- `})}return r}function y3(e){let t=e.split(/\r?\n/),r="";for(let n of t){let o=zl(n);if(o){r+=o.message;continue}n.trim()&&(r+=`${n}
93
- `)}return r}async function b3(e,t){let r=e.body?.getReader();if(!r)throw new Error("No response body available for streaming");let n=new TextDecoder,o="",s="unknown",a=i=>{let c=zl(i);if(c){t(c.message);return}i.trim()&&t(`${i}
91
+ ${n}`)}throw new Error(`Failed to save ${Tc}: ${r instanceof Error?r.message:String(r)}`)}}function $c(){return Rl()?p3():{}}function Fw(e){if(!e)return;let{cvmId:t}=Q.parse({id:e});return t}import _n from"fs";import l3 from"os";import Fl from"path";var on="https://cloud-api.phala.com/api/v1";function Nl(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:Fl.join(l3.homedir(),".phala-cloud")}function Rc(){return Fl.join(Nl(),"credentials.json")}function pg(){return Fl.join(Nl(),"api-key")}function Nw(){return Fl.join(Nl(),"docker-credentials.json")}function Lw(){let e=Nl();_n.existsSync(e)||_n.mkdirSync(e,{recursive:!0})}function Ml(e){return typeof e=="string"&&e.trim().length>0}function Ll(e){let t=e.trim();return t.length===0?"default":t}function Lt(){try{let e=Rc();if(!_n.existsSync(e))return null;let t=_n.readFileSync(e,"utf8"),r=JSON.parse(t);if(!r||typeof r!="object")return null;let n=r;return n.schema_version!==1||!Ml(n.current_profile)||!n.profiles||typeof n.profiles!="object"?null:n}catch(e){return l.error("Failed to read credentials file:",e),null}}function lg(e){Lw(),_n.writeFileSync(Rc(),JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}function Bw(e){let t=Lt(),r=Ll(e.profile||e.projectProfile||t?.current_profile||"default"),n=e.env.PHALA_CLOUD_API_PREFIX,o=t?.profiles?.[r]?.api_prefix,s=(n&&n.trim().length>0?n:o&&o.trim().length>0?o:on)??on,a=n?"env":o?"file":"default";if(Ml(e.apiToken))return{apiKey:e.apiToken,baseURL:s,profileName:r,tokenSource:"flag",apiPrefixSource:a};if(Ml(e.env.PHALA_CLOUD_API_KEY))return{apiKey:e.env.PHALA_CLOUD_API_KEY,baseURL:s,profileName:r,tokenSource:"env",apiPrefixSource:a};let i=t?.profiles?.[r]?.token;return Ml(i)?{apiKey:i,baseURL:s,profileName:r,tokenSource:"file",apiPrefixSource:a}:{apiKey:null,baseURL:s,profileName:r,tokenSource:"none",apiPrefixSource:a}}function mi(e){let t=Ll(e.profileName),r=(e.apiPrefix||on).trim(),n=Lt(),s=e.setCurrent??!0?t:n?.current_profile||t,a=e.workspaceSlug?{name:e.workspaceName,slug:e.workspaceSlug}:{name:e.workspaceName},i={schema_version:1,current_profile:s,profiles:{...n?.profiles||{},[t]:{token:e.token,api_prefix:r.length>0?r:on,workspace:a,user:e.user,updated_at:new Date().toISOString()}}};lg(i)}function Bl(e){let t=Lt();if(!t)return;let r=Ll(e||t.current_profile),n={...t.profiles};delete n[r];let o=Object.keys(n);if(o.length===0){try{_n.unlinkSync(Rc())}catch(i){l.error("Failed to remove credentials file:",i)}return}let a={schema_version:1,current_profile:t.current_profile===r?o[0]:t.current_profile,profiles:n};lg(a)}function Mc(){let e=Lt();return e?Object.keys(e.profiles):[]}function fg(e){let t=Ll(e),r=Lt();if(!r)throw new Error("No credentials file found. Please login first.");if(!r.profiles[t])throw new Error(`Profile "${t}" not found`);r.current_profile!==t&&lg({...r,current_profile:t})}function os(){let e=Lt();if(!e)return null;let t=e.current_profile,r=e.profiles[t];return r?{name:t,info:r}:null}async function dg(e){Lw();try{_n.writeFileSync(Nw(),JSON.stringify(e,null,2),{mode:384}),l.success("Docker information saved successfully.")}catch(t){throw l.error("Failed to save Docker information:",t),t}}async function In(){try{let e=Nw();if(_n.existsSync(e)){let t=_n.readFileSync(e,"utf8");return JSON.parse(t)}return null}catch(e){return l.error("Failed to read Docker credentials:",e),null}}var Dw="2026-01-21";function f3(){return{env:process.env,projectConfig:$c()}}function sn(e,t){let r=e??f3();return Bw({env:r.env,apiToken:t?.apiToken,profile:t?.profile,projectProfile:r.projectConfig.profile})}async function F(e,t){let r=sn(e,t);return fr({apiKey:r.apiKey??void 0,baseURL:r.baseURL,version:Dw})}async function Dl(e,t){let r=sn(e,t);return{client:await F(e,t),auth:r}}async function Ul(e,t){return fr({apiKey:e,baseURL:t?.baseURL,version:Dw})}import{z as C}from"zod";var d3=C.object({password:C.string(),registry:C.string().nullable(),username:C.string()}),pie=C.object({docker_compose_file:C.string(),docker_config:d3.optional().nullable(),features:C.array(C.string()),kms_enabled:C.boolean(),manifest_version:C.number(),name:C.string(),public_logs:C.boolean(),public_sysinfo:C.boolean(),runner:C.string().optional(),salt:C.string().nullable().optional(),tproxy_enabled:C.boolean(),version:C.string().optional()}).passthrough(),Uw=C.object({id:C.number(),name:C.string(),status:C.string(),teepod_id:C.number().nullable(),teepod:C.object({id:C.number(),name:C.string()}).nullable(),user_id:C.number().nullable(),app_id:C.string(),vm_uuid:C.string().nullable(),instance_id:C.string().nullable(),app_url:C.string().nullable(),base_image:C.string().nullable(),vcpu:C.number(),memory:C.number(),disk_size:C.number(),manifest_version:C.number().nullable(),version:C.string().nullable(),runner:C.string().nullable(),docker_compose_file:C.string().nullable(),features:C.array(C.string()).nullable(),created_at:C.string(),encrypted_env_pubkey:C.string().nullable()}),lie=C.object({key:C.string(),value:C.string()}),g3=C.object({is_online:C.boolean(),is_public:C.boolean(),error:C.string().nullable(),internal_ip:C.string(),latest_handshake:C.string(),public_urls:C.array(C.object({app:C.string(),instance:C.string()}))}),zw=C.object({id:C.number(),name:C.string(),status:C.string(),teepod_id:C.number(),teepod:C.object({id:C.number(),name:C.string()}),user_id:C.number().nullable(),app_id:C.string(),vm_uuid:C.string().nullable(),instance_id:C.string().nullable(),app_url:C.string().nullable(),base_image:C.string().nullable(),vcpu:C.number(),memory:C.number(),disk_size:C.number(),manifest_version:C.number().nullable(),version:C.string().nullable(),runner:C.string().nullable(),docker_compose_file:C.string().nullable(),features:C.array(C.string()).nullable(),created_at:C.string(),encrypted_env_pubkey:C.string().nullable()}),Ow=C.object({is_online:C.boolean(),is_public:C.boolean(),error:C.string().nullable(),app_certificates:C.array(C.object({subject:C.object({common_name:C.string().nullable(),organization:C.string().nullable(),country:C.string().nullable(),state:C.string().nullable().optional(),locality:C.string().nullable().optional()}),issuer:C.object({common_name:C.string().nullable(),organization:C.string().nullable(),country:C.string().nullable()}),serial_number:C.string(),not_before:C.string(),not_after:C.string(),version:C.string(),fingerprint:C.string(),signature_algorithm:C.string(),sans:C.string().nullable(),is_ca:C.boolean(),position_in_chain:C.number(),quote:C.string().nullable()})).nullable(),tcb_info:C.object({mrtd:C.string(),rootfs_hash:C.string(),rtmr0:C.string(),rtmr1:C.string(),rtmr2:C.string(),rtmr3:C.string(),event_log:C.array(C.object({imr:C.number(),event_type:C.number(),digest:C.string(),event:C.string(),event_payload:C.string()}))}).nullable(),compose_file:C.string().nullable()}),h3=C.object({name:C.string(),description:C.string().optional(),version:C.array(C.number()).optional(),is_dev:C.boolean().optional(),os_image_hash:C.string().nullable().optional(),rootfs_hash:C.string().optional(),shared_ro:C.boolean().optional(),cmdline:C.string().optional(),kernel:C.string().optional(),initrd:C.string().optional(),hda:C.string().nullable().optional(),rootfs:C.string().optional(),bios:C.string().optional()}),fie=C.object({teepod_id:C.number().nullable(),id:C.number().optional(),name:C.string(),listed:C.boolean().optional(),resource_score:C.number().optional(),remaining_vcpu:C.number().optional(),remaining_memory:C.number().optional(),remaining_cvm_slots:C.number().optional(),images:C.array(h3).optional(),region_identifier:C.string().optional(),dedicated_for_team_id:C.number().nullable().optional(),support_onchain_kms:C.boolean().optional(),fmspc:C.string().nullable().optional(),device_id:C.string().nullable().optional()});import y3 from"inquirer";async function jw(e){let t=await F(),r=await Ic(t,{id:e});if(!r.success)throw new Error(r.error.message);return r.data}async function Hw(){let e=l.startSpinner("Fetching available CVMs"),t=await F(),r=await _c(t);if(e.stop(!0),!r.success){l.error(`Failed to fetch CVMs: ${r.error.message}`);return}let{items:n}=r.data;if(n.length===0){l.info("No CVMs found for your account");return}let o=n.map(a=>({name:`${a.name} (${a.app_id??a.id}) - ${a.status}`,value:a.app_id??a.id})),{selectedCvm:s}=await y3.prompt([{type:"list",name:"selectedCvm",message:"Select a CVM:",choices:o}]);return s}async function Vw(e){let t=await F(),r=e.replace(/^app_/,""),n=await t.get(`cvms/app_${r}/attestation`);try{return Ow.parse(n)}catch(o){return l.debug(`Validation error: ${o instanceof Error?o.message:String(o)}`),{is_online:!!n?.is_online,is_public:!!n?.is_public,error:typeof n?.error=="string"?n.error:null,app_certificates:Array.isArray(n?.app_certificates)?n.app_certificates:null,tcb_info:n?.tcb_info||null,compose_file:typeof n?.compose_file=="string"?n.compose_file:null}}}async function Gw(e,t){let r=await F(),n=e.replace(/^app_/,""),o=await r.post(`cvms/app_${n}/replicas`,t);return zw.parse(o)}async function gg(e,t,r,n,o){let s=await F(),a=e.replace(/^app_/,""),i={};if(t!==void 0&&(i.vcpu=t),r!==void 0&&(i.memory=r),n!==void 0&&(i.disk_size=n),o!==void 0&&(i.allow_restart=o),Object.keys(i).length===0)throw new Error("At least one resource parameter must be provided");return await s.patch(`cvms/app_${a}/resources`,i),!0}async function qw(e){return await(await F()).post("cvms/pubkey/from_cvm_configuration",e)}async function Kw(e){let r=await(await F()).post("cvms/from_cvm_configuration",e);return Uw.parse(r)}async function Ww(e,t){let r=await F(),n=e.replace(/^app_/,"");return await r.put(`cvms/app_${n}/compose`,t)}async function Jw(e=!1){let t=await F(),r="teepods/available";return e&&(r+="?v03x_only=1"),await t.get(r)}function So(e,t){let r=[];t.since&&r.push(`since=${encodeURIComponent(t.since)}`),t.until&&r.push(`until=${encodeURIComponent(t.until)}`),t.follow&&r.push("follow"),t.text&&r.push("text"),t.bare&&r.push("bare"),t.tail!==void 0&&(r.push(`tail=${t.tail}`),r.push(`lines=${t.tail}`)),t.timestamps&&r.push("timestamps"),(t.ansi??!0)&&r.push("ansi");let n=e.includes("?")?"&":"?";return e+n+r.join("&")}async function Zw(e,t){let r=e.body?.getReader();if(!r)throw new Error("No response body available for streaming");let n=new TextDecoder;for(;;){let{done:o,value:s}=await r.read();if(o)break;t(n.decode(s,{stream:!0}))}}function b3(e){return!e||/\s/.test(e)||e.length%4!==0?!1:/^[A-Za-z0-9+/]+={0,2}$/.test(e)}function x3(e){if(!b3(e))return e;try{return Buffer.from(e,"base64").toString("utf-8")}catch{return e}}function zl(e){let t=e.trim();if(!t)return null;try{let r=JSON.parse(t);return typeof r.message!="string"?null:{channel:r.channel==="stderr"?"stderr":"stdout",message:x3(r.message)}}catch{return null}}function v3(e){let t=e.split(/\r?\n/),r=[];for(let n of t){if(!n.trim())continue;let o=zl(n);if(o){r.push(o);continue}r.push({channel:"stdout",message:`${n}
92
+ `})}return r}function w3(e){let t=e.split(/\r?\n/),r="";for(let n of t){let o=zl(n);if(o){r+=o.message;continue}n.trim()&&(r+=`${n}
93
+ `)}return r}async function C3(e,t){let r=e.body?.getReader();if(!r)throw new Error("No response body available for streaming");let n=new TextDecoder,o="",s="unknown",a=i=>{let c=zl(i);if(c){t(c.message);return}i.trim()&&t(`${i}
94
94
  `)};for(;;){let{done:i,value:c}=await r.read();if(i)break;let m=n.decode(c,{stream:!0});if(s==="raw"){t(m);continue}if(o+=m,s==="unknown")if(o.trimStart().startsWith("{"))s="structured";else{s="raw",t(o),o="";continue}let u=o.indexOf(`
95
95
  `);for(;u>=0;){let p=o.slice(0,u);o=o.slice(u+1),a(p),u=o.indexOf(`
96
- `)}}s==="structured"&&o.trim()?a(o):s==="raw"&&o&&t(o)}async function x3(e,t){let r=e.body?.getReader();if(!r)throw new Error("No response body available for streaming");let n=new TextDecoder,o="",s="unknown",a=i=>{let c=zl(i);if(c){t(c);return}i.trim()&&t({channel:"stdout",message:`${i}
96
+ `)}}s==="structured"&&o.trim()?a(o):s==="raw"&&o&&t(o)}async function S3(e,t){let r=e.body?.getReader();if(!r)throw new Error("No response body available for streaming");let n=new TextDecoder,o="",s="unknown",a=i=>{let c=zl(i);if(c){t(c);return}i.trim()&&t({channel:"stdout",message:`${i}
97
97
  `})};for(;;){let{done:i,value:c}=await r.read();if(i)break;let m=n.decode(c,{stream:!0});if(s==="raw"){t({channel:"stdout",message:m});continue}if(o+=m,s==="unknown")if(o.trimStart().startsWith("{"))s="structured";else{s="raw",t({channel:"stdout",message:o}),o="";continue}let u=o.indexOf(`
98
98
  `);for(;u>=0;){let p=o.slice(0,u);o=o.slice(u+1),a(p),u=o.indexOf(`
99
- `)}}s==="structured"&&o.trim()?a(o):s==="raw"&&o&&t({channel:"stdout",message:o})}async function hg(e,t){let n=await(await F()).get(`cvms/${e}`,{headers:{"X-Phala-Version":"2025-10-28"}});if(!n.syslog_endpoint)throw new Error(`No syslog endpoint available for CVM '${e}'`);return`${n.syslog_endpoint}&ch=${t}`}async function Zw(e){return hg(e,"serial")}async function Ol(e,t,r=!0){let o=await(await F()).get(`cvms/${e}/composition`);if(!o.containers?.length)throw new Error(`No containers found for CVM '${e}'`);let s=o.containers;if(t&&(s=s.filter(i=>i.names.some(m=>m===t||m===`/${t}`)?!0:r?i.id.startsWith(t):!1),!s.length))throw new Error(`Container '${t}' not found in CVM '${e}'`);let a=s.find(i=>i.log_endpoint);if(!a?.log_endpoint)throw new Error(`No log endpoints available for CVM '${e}'`);return a.log_endpoint}async function Yw(e,t={}){let r=await Zw(e),n=Co(r,t),o=await fetch(n);if(!o.ok)throw new Error(`Failed to fetch serial logs: ${o.status} ${o.statusText}`);return o.text()}async function Xw(e,t={}){let r=await Ol(e,t.container,t.matchContainerIdPrefix??!0),n=t.text??!0,o=t.bare??!0,s=Co(r,{...t,text:n,bare:o}),a=await fetch(s);if(!a.ok)throw new Error(`Failed to fetch container logs: ${a.status} ${a.statusText}`);let i=await a.text();return i.trimStart().startsWith("{")?y3(i):i}async function Qw(e,t={}){let r=await Ol(e,t.container,t.matchContainerIdPrefix??!0),n=Co(r,{...t,text:!1,bare:!1}),o=await fetch(n);if(!o.ok)throw new Error(`Failed to fetch container logs: ${o.status} ${o.statusText}`);let s=await o.text();return s.trimStart().startsWith("{")?h3(s):[{channel:"stdout",message:s}]}async function e6(e,t,r={},n){let o=await Ol(e,r.container,r.matchContainerIdPrefix??!0),s=Co(o,{...r,follow:!0,text:!1,bare:!1}),a=await fetch(s,{signal:n});if(!a.ok)throw new Error(`Failed to stream container logs: ${a.status} ${a.statusText}`);await x3(a,t)}async function t6(e,t,r={},n){let o=await Zw(e),s=Co(o,{...r,follow:!0}),a=await fetch(s,{signal:n});if(!a.ok)throw new Error(`Failed to stream serial logs: ${a.status} ${a.statusText}`);await Jw(a,t)}async function r6(e,t,r={},n){let o=await Ol(e,r.container,r.matchContainerIdPrefix??!0),s=r.text??!0,a=r.bare??!0,i=Co(o,{...r,follow:!0,text:s,bare:a}),c=await fetch(i,{signal:n});if(!c.ok)throw new Error(`Failed to stream container logs: ${c.status} ${c.statusText}`);await b3(c,t)}async function n6(e,t,r={}){let n=await hg(e,t),o=Co(n,r),s=await fetch(o);if(!s.ok)throw new Error(`Failed to fetch CVM ${t} logs: ${s.status} ${s.statusText}`);return s.text()}async function o6(e,t,r,n={},o){let s=await hg(e,t),a=Co(s,{...n,follow:!0}),i=await fetch(a,{signal:o});if(!i.ok)throw new Error(`Failed to stream CVM ${t} logs: ${i.status} ${i.statusText}`);await Jw(i,r)}async function s6(e){let t=await F(),r=e.replace(/^app_/,""),n=await $e(t,{app_id:r});if(!n.success)throw new Error(n.error.message);return n.data.status}import ui from"chalk";import ss from"semver";import Fc from"fs";import v3 from"os";import a6 from"path";var yg={};function i6(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:a6.join(v3.homedir(),".phala-cloud")}function jl(){return a6.join(i6(),"state.json")}function w3(){let e=i6();Fc.existsSync(e)||Fc.mkdirSync(e,{recursive:!0})}function Nc(){try{let e=jl();if(!Fc.existsSync(e))return yg;let t=Fc.readFileSync(e,"utf8"),r=JSON.parse(t);return!r||typeof r!="object"?yg:r}catch{return yg}}function os(e){w3();let t={...Nc(),...e};Fc.writeFileSync(jl(),JSON.stringify(t,null,2),{mode:384,encoding:"utf8"})}function mi(e){return Nc()[e]}function c6(e,t){os({[e]:t})}function m6(){return Nc()}function Hl(){return typeof process.versions.bun=="string"?"bun":"node"}function C3(e){let t=e.replace(/\\/g,"/");if(/[/\\]\.bun[/\\]/.test(t))return"bun";if(/pnpm/.test(t))return"pnpm";if(/[/\\]\.yarn[/\\]|yarn[/\\]global/.test(t))return"yarn"}function Lc(e,t){if(t==="bun")return"bun";let r=e.npm_config_user_agent;if(r){let s=(r.split(" ")[0]??"").split("/")[0];if(s==="pnpm")return"pnpm";if(s==="yarn")return"yarn";if(s==="npm")return"npm";if(s==="bun")return"bun"}let n=process.argv[1];if(n){let o=C3(n);if(o)return o}return"npm"}function Bc(e,t){switch(e){case"bun":return`bun add -g ${t}`;case"pnpm":return`pnpm add -g ${t}`;case"yarn":return`yarn global add ${t}`;default:return`npm i -g ${t}`}}function u6(e,t){switch(e){case"bun":return{command:"bun",args:["add","-g",t]};case"pnpm":return{command:"pnpm",args:["add","-g",t]};case"yarn":return{command:"yarn",args:["global","add",t]};default:return{command:"npm",args:["i","-g",t]}}}var S3=200,k3=1440*60*1e3;function Vl(e){return e?e==="1"||e.toLowerCase()==="true":!1}function p6(e){return typeof e=="string"&&e.trim().length>0}function E3(e){return e.startsWith("@")?e.replace("/","%2F"):e}function _3(e){let r=ss.parse(e)?.prerelease?.[0];return typeof r=="string"&&r.length>0?r:void 0}function f6(e,t,r){if(p6(t.PHALA_UPDATE_CHANNEL))return t.PHALA_UPDATE_CHANNEL;let n=r.get("updateCheckChannel");return p6(n)?n:_3(e)??"latest"}function I3(e){return e.replace(/[^a-zA-Z0-9_-]/g,"_")}function bg(e,t){return`${e}_${I3(t)}`}function l6(e,t){let r=e.get(t);if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"){let n=Number(r);return Number.isFinite(n)?n:void 0}}function d6(){return{get(e){return mi(e)},save(e){os(e)}}}function Gl(e){let{executableName:t,packageName:r,currentVersion:n,runtime:o,env:s,isJson:a,stderrIsTTY:i,configStore:c=d6()}=e;try{if(!i||a||Vl(s.CI)||Vl(s.PHALA_DISABLE_UPDATE_CHECK)||c.get("disableUpdateNotice")===!0)return null;let m=ss.valid(n);if(!m)return null;let u=f6(n,s,c),p=bg("updateCheckLatest",u),l=c.get(p)??(u==="latest"?c.get("updateCheckLatest"):void 0),d=typeof l=="string"?ss.valid(l):null;if(!d||!ss.gt(d,m))return null;let g=Lc(s,o),h=u==="latest"?`${r}@latest`:`${r}@${u}`,y=Bc(g,h);return{message:`${[ui.yellow(`Update available: v${m} -> v${d}${u==="latest"?"":` (${u})`}.`),ui.gray(`Update with: "${t} self update" (or "${y}").`),ui.gray(`Disable with: PHALA_DISABLE_UPDATE_CHECK=1 or "${t} config set disableUpdateNotice true".`)].join(`
99
+ `)}}s==="structured"&&o.trim()?a(o):s==="raw"&&o&&t({channel:"stdout",message:o})}async function hg(e,t){let n=await(await F()).get(`cvms/${e}`,{headers:{"X-Phala-Version":"2025-10-28"}});if(!n.syslog_endpoint)throw new Error(`No syslog endpoint available for CVM '${e}'`);return`${n.syslog_endpoint}&ch=${t}`}async function Yw(e){return hg(e,"serial")}async function Ol(e,t,r=!0){let o=await(await F()).get(`cvms/${e}/composition`);if(!o.containers?.length)throw new Error(`No containers found for CVM '${e}'`);let s=o.containers;if(t&&(s=s.filter(i=>i.names.some(m=>m===t||m===`/${t}`)?!0:r?i.id.startsWith(t):!1),!s.length))throw new Error(`Container '${t}' not found in CVM '${e}'`);let a=s.find(i=>i.log_endpoint);if(!a?.log_endpoint)throw new Error(`No log endpoints available for CVM '${e}'`);return a.log_endpoint}async function Xw(e,t={}){let r=await Yw(e),n=So(r,t),o=await fetch(n);if(!o.ok)throw new Error(`Failed to fetch serial logs: ${o.status} ${o.statusText}`);return o.text()}async function Qw(e,t={}){let r=await Ol(e,t.container,t.matchContainerIdPrefix??!0),n=t.text??!0,o=t.bare??!0,s=So(r,{...t,text:n,bare:o}),a=await fetch(s);if(!a.ok)throw new Error(`Failed to fetch container logs: ${a.status} ${a.statusText}`);let i=await a.text();return i.trimStart().startsWith("{")?w3(i):i}async function e6(e,t={}){let r=await Ol(e,t.container,t.matchContainerIdPrefix??!0),n=So(r,{...t,text:!1,bare:!1}),o=await fetch(n);if(!o.ok)throw new Error(`Failed to fetch container logs: ${o.status} ${o.statusText}`);let s=await o.text();return s.trimStart().startsWith("{")?v3(s):[{channel:"stdout",message:s}]}async function t6(e,t,r={},n){let o=await Ol(e,r.container,r.matchContainerIdPrefix??!0),s=So(o,{...r,follow:!0,text:!1,bare:!1}),a=await fetch(s,{signal:n});if(!a.ok)throw new Error(`Failed to stream container logs: ${a.status} ${a.statusText}`);await S3(a,t)}async function r6(e,t,r={},n){let o=await Yw(e),s=So(o,{...r,follow:!0}),a=await fetch(s,{signal:n});if(!a.ok)throw new Error(`Failed to stream serial logs: ${a.status} ${a.statusText}`);await Zw(a,t)}async function n6(e,t,r={},n){let o=await Ol(e,r.container,r.matchContainerIdPrefix??!0),s=r.text??!0,a=r.bare??!0,i=So(o,{...r,follow:!0,text:s,bare:a}),c=await fetch(i,{signal:n});if(!c.ok)throw new Error(`Failed to stream container logs: ${c.status} ${c.statusText}`);await C3(c,t)}async function o6(e,t,r={}){let n=await hg(e,t),o=So(n,r),s=await fetch(o);if(!s.ok)throw new Error(`Failed to fetch CVM ${t} logs: ${s.status} ${s.statusText}`);return s.text()}async function s6(e,t,r,n={},o){let s=await hg(e,t),a=So(s,{...n,follow:!0}),i=await fetch(a,{signal:o});if(!i.ok)throw new Error(`Failed to stream CVM ${t} logs: ${i.status} ${i.statusText}`);await Zw(i,r)}async function a6(e){let t=await F(),r=e.replace(/^app_/,""),n=await $e(t,{app_id:r});if(!n.success)throw new Error(n.error.message);return n.data.status}import ko from"chalk";import as from"semver";import Fc from"fs";import k3 from"os";import i6 from"path";var yg={};function c6(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:i6.join(k3.homedir(),".phala-cloud")}function jl(){return i6.join(c6(),"state.json")}function E3(){let e=c6();Fc.existsSync(e)||Fc.mkdirSync(e,{recursive:!0})}function Nc(){try{let e=jl();if(!Fc.existsSync(e))return yg;let t=Fc.readFileSync(e,"utf8"),r=JSON.parse(t);return!r||typeof r!="object"?yg:r}catch{return yg}}function ss(e){E3();let t={...Nc(),...e};Fc.writeFileSync(jl(),JSON.stringify(t,null,2),{mode:384,encoding:"utf8"})}function ui(e){return Nc()[e]}function m6(e,t){ss({[e]:t})}function u6(){return Nc()}function Hl(){return typeof process.versions.bun=="string"?"bun":"node"}function _3(e){let t=e.replace(/\\/g,"/");if(/[/\\]\.bun[/\\]/.test(t))return"bun";if(/pnpm/.test(t))return"pnpm";if(/[/\\]\.yarn[/\\]|yarn[/\\]global/.test(t))return"yarn"}function Lc(e,t){if(t==="bun")return"bun";let r=e.npm_config_user_agent;if(r){let s=(r.split(" ")[0]??"").split("/")[0];if(s==="pnpm")return"pnpm";if(s==="yarn")return"yarn";if(s==="npm")return"npm";if(s==="bun")return"bun"}let n=process.argv[1];if(n){let o=_3(n);if(o)return o}return"npm"}function Bc(e,t){switch(e){case"bun":return`bun add -g --no-cache ${t}`;case"pnpm":return`pnpm add -g ${t}`;case"yarn":return`yarn global add ${t}`;default:return`npm i -g ${t}`}}function p6(e,t){switch(e){case"bun":return{command:"bun",args:["add","-g","--no-cache",t]};case"pnpm":return{command:"pnpm",args:["add","-g",t]};case"yarn":return{command:"yarn",args:["global","add",t]};default:return{command:"npm",args:["i","-g",t]}}}var I3=200,P3=1440*60*1e3,A3="Phala-Network/phala-cloud",l6="cli-v";function g6(e,t){return`https://github.com/${A3}/compare/${l6}${e}...${l6}${t}`}function Vl(e){return e?e==="1"||e.toLowerCase()==="true":!1}function f6(e){return typeof e=="string"&&e.trim().length>0}function T3(e){return e.startsWith("@")?e.replace("/","%2F"):e}function $3(e){let r=as.parse(e)?.prerelease?.[0];return typeof r=="string"&&r.length>0?r:void 0}function h6(e,t,r){if(f6(t.PHALA_UPDATE_CHANNEL))return t.PHALA_UPDATE_CHANNEL;let n=r.get("updateCheckChannel");return f6(n)?n:$3(e)??"latest"}function R3(e){return e.replace(/[^a-zA-Z0-9_-]/g,"_")}function bg(e,t){return`${e}_${R3(t)}`}function d6(e,t){let r=e.get(t);if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"){let n=Number(r);return Number.isFinite(n)?n:void 0}}function y6(){return{get(e){return ui(e)},save(e){ss(e)}}}function Gl(e){let{executableName:t,packageName:r,currentVersion:n,runtime:o,env:s,isJson:a,stderrIsTTY:i,configStore:c=y6()}=e;try{if(!i||a||Vl(s.CI)||Vl(s.PHALA_DISABLE_UPDATE_CHECK)||c.get("disableUpdateNotice")===!0)return null;let m=as.valid(n);if(!m)return null;let u=h6(n,s,c),p=bg("updateCheckLatest",u),f=c.get(p)??(u==="latest"?c.get("updateCheckLatest"):void 0),d=typeof f=="string"?as.valid(f):null;if(!d||!as.gt(d,m))return null;let g=Lc(s,o),h=g==="bun"?`${r}@${d}`:u==="latest"?`${r}@latest`:`${r}@${u}`,y=Bc(g,h),b=g6(m,d);return{message:`${[ko.yellow(`Update available: v${m} -> v${d}${u==="latest"?"":` (${u})`}.`),ko.gray(b),ko.gray(`Update with: "${t} self update" (or "${y}").`),ko.gray(`Disable with: PHALA_DISABLE_UPDATE_CHECK=1 or "${t} config set disableUpdateNotice true".`)].join(`
100
100
  `)}
101
- `,currentVersion:m,latestVersion:d,packageName:r}}catch{return null}}async function ql(e){let{executableName:t,packageName:r,currentVersion:n,runtime:o,env:s,isJson:a,stderrIsTTY:i,now:c=Date.now(),timeoutMs:m=S3,ttlMs:u=k3,fetchImpl:p=fetch,configStore:l=d6()}=e;try{if(!i||a||Vl(s.CI)||Vl(s.PHALA_DISABLE_UPDATE_CHECK)||l.get("disableUpdateNotice")===!0)return null;let d=f6(n,s,l),g=bg("updateCheckLastAt",d),h=l6(l,g)??(d==="latest"?l6(l,"updateCheckLastAt"):void 0);if(h&&c-h<u)return Gl({executableName:t,packageName:r,currentVersion:n,runtime:o,env:s,isJson:a,stderrIsTTY:i,configStore:l});let b=`https://registry.npmjs.org/${E3(r)}`,x=new AbortController,v=setTimeout(()=>x.abort(),m);v.unref?.();let S,E=null;try{if(S=await p(b,{signal:x.signal,headers:{accept:"application/json"}}),!S.ok)return null;let _=await S.json();if(!_||typeof _!="object")return null;let I=_["dist-tags"];if(!I||typeof I!="object")return null;let R=I[d]??I.latest;if(typeof R!="string")return null;E=ss.valid(R);let N=ss.valid(n);if(!E||!N||!ss.gt(E,N))return null;let L=Lc(s,o),O=d==="latest"?`${r}@latest`:`${r}@${d}`,j=Bc(L,O);return{message:`${[ui.yellow(`Update available: v${N} -> v${E}${d==="latest"?"":` (${d})`}.`),ui.gray(`Update with: "${t} self update" (or "${j}").`),ui.gray(`Disable with: PHALA_DISABLE_UPDATE_CHECK=1 or "${t} config set disableUpdateNotice true".`)].join(`
101
+ `,currentVersion:m,latestVersion:d,packageName:r}}catch{return null}}async function ql(e){let{executableName:t,packageName:r,currentVersion:n,runtime:o,env:s,isJson:a,stderrIsTTY:i,now:c=Date.now(),timeoutMs:m=I3,ttlMs:u=P3,fetchImpl:p=fetch,configStore:f=y6()}=e;try{if(!i||a||Vl(s.CI)||Vl(s.PHALA_DISABLE_UPDATE_CHECK)||f.get("disableUpdateNotice")===!0)return null;let d=h6(n,s,f),g=bg("updateCheckLastAt",d),h=d6(f,g)??(d==="latest"?d6(f,"updateCheckLastAt"):void 0);if(h&&c-h<u)return Gl({executableName:t,packageName:r,currentVersion:n,runtime:o,env:s,isJson:a,stderrIsTTY:i,configStore:f});let b=`https://registry.npmjs.org/${T3(r)}`,x=new AbortController,v=setTimeout(()=>x.abort(),m);v.unref?.();let S,k=null;try{if(S=await p(b,{signal:x.signal,headers:{accept:"application/json"}}),!S.ok)return null;let _=await S.json();if(!_||typeof _!="object")return null;let I=_["dist-tags"];if(!I||typeof I!="object")return null;let R=I[d]??I.latest;if(typeof R!="string")return null;k=as.valid(R);let N=as.valid(n);if(!k||!N||!as.gt(k,N))return null;let L=Lc(s,o),O=L==="bun"?`${r}@${k}`:d==="latest"?`${r}@latest`:`${r}@${d}`,j=Bc(L,O),G=g6(N,k);return{message:`${[ko.yellow(`Update available: v${N} -> v${k}${d==="latest"?"":` (${d})`}.`),ko.gray(G),ko.gray(`Update with: "${t} self update" (or "${j}").`),ko.gray(`Disable with: PHALA_DISABLE_UPDATE_CHECK=1 or "${t} config set disableUpdateNotice true".`)].join(`
102
102
  `)}
103
- `,currentVersion:N,latestVersion:E,packageName:r}}finally{clearTimeout(v);let _=bg("updateCheckLatest",d);l.save({[g]:c,...E?{[_]:E}:{},...d==="latest"?{updateCheckLastAt:c,...E?{updateCheckLatest:E}:{}}:{}})}}catch{return null}}async function h6(e){let{registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,stdout:c,stderr:m,stdin:u,env:p,cwd:l}=e,d=T3(r);if((d.length>0?t.getNode(d):null)?.group){let v=r.slice(d.length),S=wi(v,void 0);if(S.flags["--help"]||S.positionals.length===0)return g6({registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:p,stdout:c,stderr:m,groupPath:d})}let h=t.resolveCommand(d);if(!h)return d.length>1&&t.getNode([d[0]])?.group?g6({registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:p,stdout:c,stderr:m,groupPath:[d[0]]}):A3({registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:p,stdout:c,stderr:m});let{definition:y,consumed:b}=h,x=r.slice(b.length);try{let v=wi(x,y.meta.options);if(Ci(v.flags["--json"]===!0),v.flags["--version"])return c.write(`${o}
103
+ `,currentVersion:N,latestVersion:k,packageName:r}}finally{clearTimeout(v);let _=bg("updateCheckLatest",d);f.save({[g]:c,...k?{[_]:k}:{},...d==="latest"?{updateCheckLastAt:c,...k?{updateCheckLatest:k}:{}}:{}})}}catch{return null}}async function x6(e){let{registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,stdout:c,stderr:m,stdin:u,env:p,cwd:f}=e,d=N3(r);if((d.length>0?t.getNode(d):null)?.group){let v=r.slice(d.length),S=wi(v,void 0);if(S.flags["--help"]||S.positionals.length===0)return b6({registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:p,stdout:c,stderr:m,groupPath:d})}let h=t.resolveCommand(d);if(!h)return d.length>1&&t.getNode([d[0]])?.group?b6({registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:p,stdout:c,stderr:m,groupPath:[d[0]]}):F3({registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:p,stdout:c,stderr:m});let{definition:y,consumed:b}=h,x=r.slice(b.length);try{let v=wi(x,y.meta.options);if(Ci(v.flags["--json"]===!0),v.flags["--version"])return c.write(`${o}
104
104
  `),0;if(v.flags["--help"])return c.write(`${Mf({executableName:n,definition:y,registry:t})}
105
- `),0;let E=!(y.path[0]==="self"&&y.path[1]==="update")?ql({executableName:n,packageName:s,currentVersion:a,runtime:i,env:p,isJson:v.flags["--json"]===!0,stderrIsTTY:m.isTTY===!0}):Promise.resolve(null);y.meta.stability==="deprecated"&&m.write(pi.yellow(`Warning: This command is deprecated and may be removed in a future version.
106
- `));let _=ih(y.meta,v),I={..._.options,..._.positionals,options:_.options,positionals:_.positionals,raw:_.raw},R,N="cvmId"in I?I.cvmId:void 0,L="interactive"in I&&I.interactive===!0;v.flags["--debug"]&&(console.log("[DISPATCHER DEBUG] 'cvmId' in mergedInput:","cvmId"in I),console.log("[DISPATCHER DEBUG] rawCvmId:",N),console.log("[DISPATCHER DEBUG] mergedInput keys:",Object.keys(I)));let O=[...y.meta.arguments??[],...y.meta.options??[]].some(Z=>Z.target==="cvmId"||Z.name==="cvm-id"||Z.name==="cvm_id");if(L&&O){let Z=await jw();Z&&(R={app_id:Z})}if(!R&&N&&typeof N=="string"&&(R={id:N}),!R){let Z=$c().cvm_id;Z&&(R={id:Z})}v.flags["--debug"]&&(console.log("[DISPATCHER DEBUG] final cvmId:",JSON.stringify(R)),console.log("[DISPATCHER DEBUG] cvmId type:",typeof R),console.log("[DISPATCHER DEBUG] cvmId is undefined:",R===void 0));let j={argv:x,rawFlags:v.flags,rawPositionals:v.positionals,cwd:l,env:p,stdout:c,stderr:m,stdin:u,projectConfig:$c(),cvmId:R,cli:{executableName:n,packageName:s,packageVersion:a,runtime:i},success(Z){if(we()){let Ve=typeof Z=="string"?{success:!0,message:Z}:{success:!0,...typeof Z=="object"&&Z!==null?Z:{data:Z}};c.write(`${JSON.stringify(Ve,null,2)}
105
+ `),0;let k=!(y.path[0]==="self"&&y.path[1]==="update")?ql({executableName:n,packageName:s,currentVersion:a,runtime:i,env:p,isJson:v.flags["--json"]===!0,stderrIsTTY:m.isTTY===!0}):Promise.resolve(null);y.meta.stability==="deprecated"&&m.write(pi.yellow(`Warning: This command is deprecated and may be removed in a future version.
106
+ `));let _=ch(y.meta,v),I={..._.options,..._.positionals,options:_.options,positionals:_.positionals,raw:_.raw},R,N="cvmId"in I?I.cvmId:void 0,L="interactive"in I&&I.interactive===!0;v.flags["--debug"]&&(console.log("[DISPATCHER DEBUG] 'cvmId' in mergedInput:","cvmId"in I),console.log("[DISPATCHER DEBUG] rawCvmId:",N),console.log("[DISPATCHER DEBUG] mergedInput keys:",Object.keys(I)));let O=[...y.meta.arguments??[],...y.meta.options??[]].some(Z=>Z.target==="cvmId"||Z.name==="cvm-id"||Z.name==="cvm_id");if(L&&O){let Z=await Hw();Z&&(R={app_id:Z})}if(!R&&N&&typeof N=="string"&&(R={id:N}),!R){let Z=$c().cvm_id;Z&&(R={id:Z})}v.flags["--debug"]&&(console.log("[DISPATCHER DEBUG] final cvmId:",JSON.stringify(R)),console.log("[DISPATCHER DEBUG] cvmId type:",typeof R),console.log("[DISPATCHER DEBUG] cvmId is undefined:",R===void 0));let j={argv:x,rawFlags:v.flags,rawPositionals:v.positionals,cwd:f,env:p,stdout:c,stderr:m,stdin:u,projectConfig:$c(),cvmId:R,cli:{executableName:n,packageName:s,packageVersion:a,runtime:i},success(Z){if(we()){let Ve=typeof Z=="string"?{success:!0,message:Z}:{success:!0,...typeof Z=="object"&&Z!==null?Z:{data:Z}};c.write(`${JSON.stringify(Ve,null,2)}
107
107
  `)}else typeof Z=="string"?c.write(`${pi.green("\u2713")} ${pi.green(Z)}
108
108
  `):(c.write(`${pi.green("\u2713")} Success
109
109
  `),c.write(`${JSON.stringify(Z,null,2)}
110
110
  `))},fail(Z,Ve){we()?c.write(`${JSON.stringify({success:!1,error:Z,...Ve&&{details:Ve}},null,2)}
111
111
  `):(m.write(`${pi.red("\u2717")} ${pi.red(Z)}
112
112
  `),Ve&&m.write(`${JSON.stringify(Ve,null,2)}
113
- `))}};v.flags["--debug"]&&console.log("[DISPATCHER DEBUG] context.cvmId after creation:",JSON.stringify(j.cvmId));let q=y.schema.parse(I);v.flags["--debug"]&&console.log("[DISPATCHER DEBUG] context.cvmId before handler:",JSON.stringify(j.cvmId));let fe=await y.run(q,j),Se=await E;return typeof fe=="number"?(fe===0&&Se&&!we()&&m.write(Se.message),fe):(Se&&!we()&&m.write(Se.message),0)}catch(v){if(v instanceof P3){let S=v.issues.some(_=>_.code==="invalid_type"&&_.received==="undefined"&&_.message==="Required"),E=x.some(_=>!_.startsWith("-"));return S&&!E?(c.write(`${Mf({executableName:n,definition:y,registry:t})}
114
- `),0):(m.write($3(v)),1)}if(xg(v))return m.write(`${v.message}
115
- `),1;throw v}}function A3(e){let{registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:c,stdout:m,stderr:u}=e;try{let p=wi(r,void 0);if(p.flags["--version"])return m.write(`${o}
113
+ `))}};v.flags["--debug"]&&console.log("[DISPATCHER DEBUG] context.cvmId after creation:",JSON.stringify(j.cvmId));let G=y.schema.parse(I);v.flags["--debug"]&&console.log("[DISPATCHER DEBUG] context.cvmId before handler:",JSON.stringify(j.cvmId));let pe=await y.run(G,j),Se=await k;return typeof pe=="number"?(pe===0&&Se&&!we()&&m.write(Se.message),pe):(Se&&!we()&&m.write(Se.message),0)}catch(v){if(v instanceof M3){let S=v.issues.some(_=>_.code==="invalid_type"&&_.received==="undefined"&&_.message==="Required"),k=x.some(_=>!_.startsWith("-"));return S&&!k?(c.write(`${Mf({executableName:n,definition:y,registry:t})}
114
+ `),0):(m.write(L3(v)),1)}if(xg(v))return m.write(`${v.message}
115
+ `),1;throw v}}function F3(e){let{registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:c,stdout:m,stderr:u}=e;try{let p=wi(r,void 0);if(p.flags["--version"])return m.write(`${o}
116
116
  `),0;if(p.flags["--help"])return m.write(`${sm({registry:t,executableName:n})}
117
117
  `),0;if(p.positionals.length===0){m.write(`${sm({registry:t,executableName:n})}
118
- `);let d=Gl({executableName:n,packageName:s,currentVersion:a,runtime:i,env:c,isJson:!1,stderrIsTTY:u.isTTY===!0});return d&&u.write(d.message),0}let l=p.positionals.join(" ");return u.write(`Unknown command "${l}". Run \`${n} --help\` for a list of commands.
118
+ `);let d=Gl({executableName:n,packageName:s,currentVersion:a,runtime:i,env:c,isJson:!1,stderrIsTTY:u.isTTY===!0});return d&&u.write(d.message),0}let f=p.positionals.join(" ");return u.write(`Unknown command "${f}". Run \`${n} --help\` for a list of commands.
119
119
  `),1}catch(p){if(xg(p))return u.write(`${p.message}
120
- `),1;throw p}}function g6(e){let{registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:c,stdout:m,stderr:u,groupPath:p}=e;try{let l=r.slice(p.length),d=wi(l,void 0);if(d.flags["--version"])return m.write(`${o}
121
- `),0;if(d.flags["--help"]||d.positionals.length===0){if(m.write(`${lh({registry:t,executableName:n,groupPath:p})}
120
+ `),1;throw p}}function b6(e){let{registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:c,stdout:m,stderr:u,groupPath:p}=e;try{let f=r.slice(p.length),d=wi(f,void 0);if(d.flags["--version"])return m.write(`${o}
121
+ `),0;if(d.flags["--help"]||d.positionals.length===0){if(m.write(`${fh({registry:t,executableName:n,groupPath:p})}
122
122
  `),!d.flags["--help"]){let y=Gl({executableName:n,packageName:s,currentVersion:a,runtime:i,env:c,isJson:!1,stderrIsTTY:u.isTTY===!0});y&&u.write(y.message)}return 0}let g=d.positionals.join(" "),h=p.join(" ");return u.write(`Unknown subcommand "${g}" for "${h}". Run \`${n} ${h} --help\` for a list of subcommands.
123
- `),1}catch(l){if(xg(l))return u.write(`${l.message}
124
- `),1;throw l}}function T3(e){let t=[];for(let r of e){if(r.startsWith("-"))break;t.push(r)}return t}function $3(e){let t=e.issues[0];return t?`Invalid value for "${t.path.length>0?t.path.join("."):"input"}": ${t.message}
123
+ `),1}catch(f){if(xg(f))return u.write(`${f.message}
124
+ `),1;throw f}}function N3(e){let t=[];for(let r of e){if(r.startsWith("-"))break;t.push(r)}return t}function L3(e){let t=e.issues[0];return t?`Invalid value for "${t.path.length>0?t.path.join("."):"input"}": ${t.message}
125
125
  `:`${e.message}
126
- `}function xg(e){return e instanceof Error&&Object.prototype.hasOwnProperty.call(e,"code")&&typeof e.code=="string"}import b6 from"crypto";import as from"fs";import li from"os";import x6 from"path";function R3(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:x6.join(li.homedir(),".phala-cloud")}function M3(){return x6.join(R3(),"config.json")}function y6(e){return/^[0-9a-fA-F]+$/.test(e)}function F3(e){let r=e.trim().split(":");if(r.length!==2)return!1;let[n,o]=r;return n.length===32&&y6(n)&&o.length>0&&y6(o)}function N3(){let e=[li.hostname(),li.platform(),li.arch(),li.cpus()[0]?.model||"",li.userInfo().username],t=b6.createHash("sha256");return t.update(e.join("|")),t.digest()}function L3(e){let t=N3(),r=e.trim().split(":");if(r.length!==2)throw new Error("Invalid legacy encrypted format");let n=Buffer.from(r[0],"hex"),o=r[1],s=b6.createDecipheriv("aes-256-cbc",t.slice(0,32),n),a=s.update(o,"hex","utf8");return a+=s.final("utf8"),a}function Dc(e){try{as.unlinkSync(e)}catch{}}function B3(e){let t={};for(let[r,n]of Object.entries(e))(r==="disableUpdateNotice"||r==="updateCheckChannel"||r==="updateCheckLastAt"||r==="updateCheckLatest"||r.startsWith("updateCheckLastAt_")||r.startsWith("updateCheckLatest_"))&&(t[r]=n);return t}function D3(){return async({token:e,baseURL:t})=>{let r=fr({apiKey:e,baseURL:t}),n=await gt(r);return n.success?{success:!0,data:{username:n.data.user.username,email:n.data.user.email,workspace_name:n.data.workspace.name,workspace_slug:n.data.workspace.slug||void 0}}:{success:!1}}}async function v6(e){await U3(e),await z3(e)}async function U3(e){let t=Rc();if(as.existsSync(t)){let i=pg();as.existsSync(i)&&Dc(i);return}let r=pg();if(!as.existsSync(r))return;let n=as.readFileSync(r,"utf8").trim();if(!n)return;let o;try{o=F3(n)?L3(n):n}catch{e.stderr.write(`Legacy credentials could not be migrated (possibly due to machine change). Please run 'phala login' again.
127
- `);return}let s=e.env.PHALA_CLOUD_API_PREFIX||on,a=e.fetchCurrentUser??D3();try{let i=await a({token:o,baseURL:s});if(!i.success){e.stderr.write(`Legacy credentials appear invalid or expired. Please run 'phala login' again.
128
- `);return}let c=i.data,m=c.workspace_name||"default",u=c.workspace_slug,p=u||"default";ci({profileName:p,token:o,apiPrefix:s,workspaceName:m,workspaceSlug:u,user:{username:c.username||"unknown",email:c.email},setCurrent:!0}),Dc(r),e.stderr.write(`Migrated legacy credentials into ${t} (profile: ${p}).
126
+ `}function xg(e){return e instanceof Error&&Object.prototype.hasOwnProperty.call(e,"code")&&typeof e.code=="string"}import w6 from"crypto";import is from"fs";import li from"os";import C6 from"path";function B3(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:C6.join(li.homedir(),".phala-cloud")}function D3(){return C6.join(B3(),"config.json")}function v6(e){return/^[0-9a-fA-F]+$/.test(e)}function U3(e){let r=e.trim().split(":");if(r.length!==2)return!1;let[n,o]=r;return n.length===32&&v6(n)&&o.length>0&&v6(o)}function z3(){let e=[li.hostname(),li.platform(),li.arch(),li.cpus()[0]?.model||"",li.userInfo().username],t=w6.createHash("sha256");return t.update(e.join("|")),t.digest()}function O3(e){let t=z3(),r=e.trim().split(":");if(r.length!==2)throw new Error("Invalid legacy encrypted format");let n=Buffer.from(r[0],"hex"),o=r[1],s=w6.createDecipheriv("aes-256-cbc",t.slice(0,32),n),a=s.update(o,"hex","utf8");return a+=s.final("utf8"),a}function Dc(e){try{is.unlinkSync(e)}catch{}}function j3(e){let t={};for(let[r,n]of Object.entries(e))(r==="disableUpdateNotice"||r==="updateCheckChannel"||r==="updateCheckLastAt"||r==="updateCheckLatest"||r.startsWith("updateCheckLastAt_")||r.startsWith("updateCheckLatest_"))&&(t[r]=n);return t}function H3(){return async({token:e,baseURL:t})=>{let r=fr({apiKey:e,baseURL:t}),n=await gt(r);return n.success?{success:!0,data:{username:n.data.user.username,email:n.data.user.email,workspace_name:n.data.workspace.name,workspace_slug:n.data.workspace.slug||void 0}}:{success:!1}}}async function S6(e){await V3(e),await G3(e)}async function V3(e){let t=Rc();if(is.existsSync(t)){let i=pg();is.existsSync(i)&&Dc(i);return}let r=pg();if(!is.existsSync(r))return;let n=is.readFileSync(r,"utf8").trim();if(!n)return;let o;try{o=U3(n)?O3(n):n}catch{e.stderr.write(`Legacy credentials could not be migrated (possibly due to machine change). Please run 'phala login' again.
127
+ `);return}let s=e.env.PHALA_CLOUD_API_PREFIX||on,a=e.fetchCurrentUser??H3();try{let i=await a({token:o,baseURL:s});if(!i.success){e.stderr.write(`Legacy credentials appear invalid or expired. Please run 'phala login' again.
128
+ `);return}let c=i.data,m=c.workspace_name||"default",u=c.workspace_slug,p=u||"default";mi({profileName:p,token:o,apiPrefix:s,workspaceName:m,workspaceSlug:u,user:{username:c.username||"unknown",email:c.email},setCurrent:!0}),Dc(r),e.stderr.write(`Migrated legacy credentials into ${t} (profile: ${p}).
129
129
  `)}catch{e.stderr.write(`Legacy credentials could not be migrated. Please run 'phala login' again.
130
- `)}}async function z3(e){let t=jl(),r=M3();if(as.existsSync(r))try{let n=as.readFileSync(r,"utf8"),o=JSON.parse(n);if(!o||typeof o!="object"){Dc(r);return}let s=B3(o);if(Object.keys(s).length>0){let a=Nc();os({...a,...s}),e.stderr.write(`Migrated legacy config into ${t}.
131
- `)}Dc(r)}catch{Dc(r)}}function w6(e){return{name:e,children:new Map,aliasMap:new Map}}var Kl=class{constructor(){this.root=w6(null)}registerGroup(t){let r=this.ensurePath(t.path);r.group=t;let n=this.getParentNode(t.path);if(n&&t.meta.aliases){let o=t.path[t.path.length-1];for(let s of t.meta.aliases)n.aliasMap.set(s,o)}}registerCommand(t){let r=this.ensurePath(t.path);r.command=t;let n=this.getParentNode(t.path);if(n&&t.meta.aliases){let o=t.path[t.path.length-1];for(let s of t.meta.aliases)n.aliasMap.set(s,o)}}resolveCommand(t){let r=this.root,n;for(let i=0;i<t.length;i+=1){let c=t[i],m=this.getChild(r,c);if(!m)break;r=m,r.command&&(n={node:r,depth:i+1})}if(!n)return;let o=t.slice(0,n.depth),s=t.slice(n.depth),a=n.node.command;return a?{definition:a,consumed:o,remaining:s}:null}getChildren(t=[]){let r=this.getNode(t);return r?[...r.children.values()]:[]}getNode(t){let r=this.root;for(let n of t){let o=this.getChild(r,n);if(!o)return;r=o}return r}ensurePath(t){let r=this.root;for(let n of t){let o=r.children.get(n);o||(o=w6(n),r.children.set(n,o)),r=o}return r}getParentNode(t){if(t.length!==0)return this.getNode(t.slice(0,-1))}getChild(t,r){let n=t.children.get(r);if(n)return n;let o=t.aliasMap.get(r);if(o)return t.children.get(o)}};import{readFileSync as vg}from"fs";import{dirname as H3,join as V3}from"path";import{fileURLToPath as G3}from"url";function A(e){return{path:e.path,meta:e.meta,schema:e.schema,run:e.handler}}import O3 from"@michaelhomer/jqjs";function C6(e,t){let n=[...O3.compile(t)(e)];return n.length===1?n[0]:n}function S6(e,t=2){return e==null?String(e):typeof e=="string"?e:JSON.stringify(e,null,t)}import{z as ht}from"zod";var j3=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"],k6={name:"api",category:"advanced",description:`Make an authenticated HTTP request to Phala Cloud API.
130
+ `)}}async function G3(e){let t=jl(),r=D3();if(is.existsSync(r))try{let n=is.readFileSync(r,"utf8"),o=JSON.parse(n);if(!o||typeof o!="object"){Dc(r);return}let s=j3(o);if(Object.keys(s).length>0){let a=Nc();ss({...a,...s}),e.stderr.write(`Migrated legacy config into ${t}.
131
+ `)}Dc(r)}catch{Dc(r)}}function k6(e){return{name:e,children:new Map,aliasMap:new Map}}var Kl=class{constructor(){this.root=k6(null)}registerGroup(t){let r=this.ensurePath(t.path);r.group=t;let n=this.getParentNode(t.path);if(n&&t.meta.aliases){let o=t.path[t.path.length-1];for(let s of t.meta.aliases)n.aliasMap.set(s,o)}}registerCommand(t){let r=this.ensurePath(t.path);r.command=t;let n=this.getParentNode(t.path);if(n&&t.meta.aliases){let o=t.path[t.path.length-1];for(let s of t.meta.aliases)n.aliasMap.set(s,o)}}resolveCommand(t){let r=this.root,n;for(let i=0;i<t.length;i+=1){let c=t[i],m=this.getChild(r,c);if(!m)break;r=m,r.command&&(n={node:r,depth:i+1})}if(!n)return;let o=t.slice(0,n.depth),s=t.slice(n.depth),a=n.node.command;return a?{definition:a,consumed:o,remaining:s}:null}getChildren(t=[]){let r=this.getNode(t);return r?[...r.children.values()]:[]}getNode(t){let r=this.root;for(let n of t){let o=this.getChild(r,n);if(!o)return;r=o}return r}ensurePath(t){let r=this.root;for(let n of t){let o=r.children.get(n);o||(o=k6(n),r.children.set(n,o)),r=o}return r}getParentNode(t){if(t.length!==0)return this.getNode(t.slice(0,-1))}getChild(t,r){let n=t.children.get(r);if(n)return n;let o=t.aliasMap.get(r);if(o)return t.children.get(o)}};import{readFileSync as vg}from"fs";import{dirname as W3,join as J3}from"path";import{fileURLToPath as Z3}from"url";function A(e){return{path:e.path,meta:e.meta,schema:e.schema,run:e.handler}}import q3 from"@michaelhomer/jqjs";function E6(e,t){let n=[...q3.compile(t)(e)];return n.length===1?n[0]:n}function _6(e,t=2){return e==null?String(e):typeof e=="string"?e:JSON.stringify(e,null,t)}import{z as ht}from"zod";var K3=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"],I6={name:"api",category:"advanced",description:`Make an authenticated HTTP request to Phala Cloud API.
132
132
 
133
133
  The endpoint should be an API path like "/cvms" or "/users/me".
134
134
 
@@ -151,15 +151,15 @@ Use -q to filter JSON output with jq syntax (built-in, no jq installation needed
151
151
  ENVIRONMENT VARIABLES
152
152
 
153
153
  PHALA_CLOUD_API_KEY Override the API key (useful for CI/CD)
154
- PHALA_CLOUD_API_PREFIX Override the API base URL`,stability:"unstable",arguments:[{name:"endpoint",description:"API endpoint path",required:!0}],options:[...Un,{name:"method",shorthand:"X",description:"HTTP method (default: GET)",type:"string",target:"method"},{name:"query",shorthand:"f",description:"Query parameter: key=value (use key=@file to read from file)",type:"string[]",target:"query"},{name:"field",shorthand:"F",description:"Body field: key=value (string) or key:=value (typed JSON). Supports @file",type:"string[]",target:"field"},{name:"header",shorthand:"H",description:"HTTP header: key:value",type:"string[]",target:"header"},{name:"data",shorthand:"d",description:"Request body data (cURL-style)",type:"string[]",target:"data"},{name:"input",description:'Read body from file (use "-" for stdin)',type:"string",target:"input"},{name:"include",shorthand:"i",description:"Print response headers",type:"boolean",target:"include"},{name:"jq",shorthand:"q",description:"Filter output with jq expression",type:"string",target:"jq"},{name:"silent",description:"Don't print response body",type:"boolean",target:"silent"}],examples:[{name:"List CVMs",value:"phala api /cvms"},{name:"Get CVM by app ID",value:"phala api /cvms/app_xxx"},{name:"Filter with jq",value:"phala api /cvms -q '.items[].name'"},{name:"GET with query params",value:"phala api /endpoint -f status=active -f page=2"},{name:"POST with body fields",value:"phala api /endpoint -X POST -F name=foo -F count:=10"},{name:"POST with cURL-style -d",value:`phala api /endpoint -X POST -d '{"foo":"bar"}'`},{name:"POST from file",value:"phala api /endpoint -X POST --input data.json"},{name:"Query params + body combined",value:"phala api /endpoint -X POST -f page=1 -F name=foo"},{name:"Body field from file",value:"phala api /endpoint -X POST -F config:=@settings.json"},{name:"Show response headers",value:"phala api /cvms -i"}]},E6=ht.object({endpoint:ht.string(),method:ht.enum(j3).default("GET").transform(e=>e.toUpperCase()),query:ht.array(ht.string()).optional(),field:ht.array(ht.string()).optional(),header:ht.array(ht.string()).optional(),data:ht.array(ht.string()).optional(),input:ht.string().optional(),include:ht.boolean().default(!1),jq:ht.string().optional(),silent:ht.boolean().default(!1),apiToken:ht.string().optional()});var q3=G3(import.meta.url),K3=H3(q3),W3=V3(K3,"../../../package.json"),_6="unknown";try{_6=JSON.parse(vg(W3,"utf-8")).version||"unknown"}catch{}function Wl(e){return e==="-"?vg(0,"utf-8"):vg(e,"utf-8")}function J3(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(/^-?\d+$/.test(e))return Number.parseInt(e,10);if(/^-?\d+\.\d+$/.test(e))return Number.parseFloat(e);if(e.startsWith("[")||e.startsWith("{"))try{return JSON.parse(e)}catch{}return e}function Z3(e){let t={};for(let r of e??[]){let n=r.indexOf("=");if(n>0){let o=r.slice(0,n),s=r.slice(n+1);s.startsWith("@")?t[o]=Wl(s.slice(1)):t[o]=s}}return t}function Y3(e){let t={};for(let r of e??[]){let n=r.indexOf(":=");if(n>0){let s=r.slice(0,n),a=r.slice(n+2);if(a.startsWith("@")){let i=a.slice(1),c=Wl(i);try{t[s]=JSON.parse(c)}catch{throw new Error(`Failed to parse JSON from file "${i}" for field "${s}"`)}}else t[s]=J3(a);continue}let o=r.indexOf("=");if(o>0){let s=r.slice(0,o),a=r.slice(o+1);a.startsWith("@")?t[s]=Wl(a.slice(1)):t[s]=a}}return t}function X3(e){let t={};for(let r of e??[]){let n=r.indexOf(":");if(n>0){let o=r.slice(0,n).trim(),s=r.slice(n+1).trim();t[o]=s}}return t}function Q3(e,t){let r=t.toLowerCase();return Object.keys(e).some(n=>n.toLowerCase()===r)}function e4(e){return!["GET","HEAD","OPTIONS"].includes(e)}function I6(e){let t=e.field&&e.field.length>0;if(e.input&&e.data&&e.data.length>0)throw new Error('"-d/--data" cannot be used with "--input"');if(t&&e.data&&e.data.length>0)throw new Error('"-d/--data" cannot be used with "-F/--field"');if(t&&e.input)throw new Error('"--input" cannot be used with "-F/--field"');if(e.input){let r=Wl(e.input);try{return{body:JSON.parse(r)}}catch{return{body:r}}}if(e.data&&e.data.length>0){let r=e.data.length===1?e.data[0]:e.data.join("&"),n=r.trim();if(n.startsWith("{")||n.startsWith("["))try{return{body:JSON.parse(n)}}catch{}return{body:r,defaultContentType:"application/x-www-form-urlencoded"}}if(t){let r=Y3(e.field);return Object.keys(r).length===0?{body:void 0}:{body:r}}return{body:void 0}}function t4(e,t){let{body:r}=I6(e),n=Z3(e.query),o=t;if(Object.keys(n).length>0){let s=new URLSearchParams;for(let[i,c]of Object.entries(n))s.append(i,c);let a=o.includes("?")?"&":"?";o=`${o}${a}${s.toString()}`}return{method:e.method,endpoint:o,body:r}}async function r4(e,t){let r=sn(t,{apiToken:e.apiToken});if(!r.apiKey)return t.stderr.write(`Error: Not authenticated. Run "phala login" first.
155
- `),1;let n=fr({apiKey:r.apiKey,baseURL:r.baseURL,headers:{"User-Agent":`phala-cli/${_6}`}}),o=X3(e.header),s=e.endpoint.startsWith("/")?e.endpoint:`/${e.endpoint}`,a=s.indexOf("?"),i=a>=0?`${s.slice(0,a)}?${new URLSearchParams(s.slice(a+1)).toString()}`:s;try{let{defaultContentType:c}=I6(e);c&&!Q3(o,"content-type")&&(o["Content-Type"]=c);let m=t4(e,i);if(m.body!==void 0&&!e4(m.method))return t.stderr.write(`Error: ${m.method} does not support a request body. Use -X POST (or PUT/PATCH) to send body data.
154
+ PHALA_CLOUD_API_PREFIX Override the API base URL`,stability:"unstable",arguments:[{name:"endpoint",description:"API endpoint path",required:!0}],options:[...zn,{name:"method",shorthand:"X",description:"HTTP method (default: GET)",type:"string",target:"method"},{name:"query",shorthand:"f",description:"Query parameter: key=value (use key=@file to read from file)",type:"string[]",target:"query"},{name:"field",shorthand:"F",description:"Body field: key=value (string) or key:=value (typed JSON). Supports @file",type:"string[]",target:"field"},{name:"header",shorthand:"H",description:"HTTP header: key:value",type:"string[]",target:"header"},{name:"data",shorthand:"d",description:"Request body data (cURL-style)",type:"string[]",target:"data"},{name:"input",description:'Read body from file (use "-" for stdin)',type:"string",target:"input"},{name:"include",shorthand:"i",description:"Print response headers",type:"boolean",target:"include"},{name:"jq",shorthand:"q",description:"Filter output with jq expression",type:"string",target:"jq"},{name:"silent",description:"Don't print response body",type:"boolean",target:"silent"}],examples:[{name:"List CVMs",value:"phala api /cvms"},{name:"Get CVM by app ID",value:"phala api /cvms/app_xxx"},{name:"Filter with jq",value:"phala api /cvms -q '.items[].name'"},{name:"GET with query params",value:"phala api /endpoint -f status=active -f page=2"},{name:"POST with body fields",value:"phala api /endpoint -X POST -F name=foo -F count:=10"},{name:"POST with cURL-style -d",value:`phala api /endpoint -X POST -d '{"foo":"bar"}'`},{name:"POST from file",value:"phala api /endpoint -X POST --input data.json"},{name:"Query params + body combined",value:"phala api /endpoint -X POST -f page=1 -F name=foo"},{name:"Body field from file",value:"phala api /endpoint -X POST -F config:=@settings.json"},{name:"Show response headers",value:"phala api /cvms -i"}]},P6=ht.object({endpoint:ht.string(),method:ht.enum(K3).default("GET").transform(e=>e.toUpperCase()),query:ht.array(ht.string()).optional(),field:ht.array(ht.string()).optional(),header:ht.array(ht.string()).optional(),data:ht.array(ht.string()).optional(),input:ht.string().optional(),include:ht.boolean().default(!1),jq:ht.string().optional(),silent:ht.boolean().default(!1),apiToken:ht.string().optional()});var Y3=Z3(import.meta.url),X3=W3(Y3),Q3=J3(X3,"../../../package.json"),A6="unknown";try{A6=JSON.parse(vg(Q3,"utf-8")).version||"unknown"}catch{}function Wl(e){return e==="-"?vg(0,"utf-8"):vg(e,"utf-8")}function e4(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(/^-?\d+$/.test(e))return Number.parseInt(e,10);if(/^-?\d+\.\d+$/.test(e))return Number.parseFloat(e);if(e.startsWith("[")||e.startsWith("{"))try{return JSON.parse(e)}catch{}return e}function t4(e){let t={};for(let r of e??[]){let n=r.indexOf("=");if(n>0){let o=r.slice(0,n),s=r.slice(n+1);s.startsWith("@")?t[o]=Wl(s.slice(1)):t[o]=s}}return t}function r4(e){let t={};for(let r of e??[]){let n=r.indexOf(":=");if(n>0){let s=r.slice(0,n),a=r.slice(n+2);if(a.startsWith("@")){let i=a.slice(1),c=Wl(i);try{t[s]=JSON.parse(c)}catch{throw new Error(`Failed to parse JSON from file "${i}" for field "${s}"`)}}else t[s]=e4(a);continue}let o=r.indexOf("=");if(o>0){let s=r.slice(0,o),a=r.slice(o+1);a.startsWith("@")?t[s]=Wl(a.slice(1)):t[s]=a}}return t}function n4(e){let t={};for(let r of e??[]){let n=r.indexOf(":");if(n>0){let o=r.slice(0,n).trim(),s=r.slice(n+1).trim();t[o]=s}}return t}function o4(e,t){let r=t.toLowerCase();return Object.keys(e).some(n=>n.toLowerCase()===r)}function s4(e){return!["GET","HEAD","OPTIONS"].includes(e)}function T6(e){let t=e.field&&e.field.length>0;if(e.input&&e.data&&e.data.length>0)throw new Error('"-d/--data" cannot be used with "--input"');if(t&&e.data&&e.data.length>0)throw new Error('"-d/--data" cannot be used with "-F/--field"');if(t&&e.input)throw new Error('"--input" cannot be used with "-F/--field"');if(e.input){let r=Wl(e.input);try{return{body:JSON.parse(r)}}catch{return{body:r}}}if(e.data&&e.data.length>0){let r=e.data.length===1?e.data[0]:e.data.join("&"),n=r.trim();if(n.startsWith("{")||n.startsWith("["))try{return{body:JSON.parse(n)}}catch{}return{body:r,defaultContentType:"application/x-www-form-urlencoded"}}if(t){let r=r4(e.field);return Object.keys(r).length===0?{body:void 0}:{body:r}}return{body:void 0}}function a4(e,t){let{body:r}=T6(e),n=t4(e.query),o=t;if(Object.keys(n).length>0){let s=new URLSearchParams;for(let[i,c]of Object.entries(n))s.append(i,c);let a=o.includes("?")?"&":"?";o=`${o}${a}${s.toString()}`}return{method:e.method,endpoint:o,body:r}}async function i4(e,t){let r=sn(t,{apiToken:e.apiToken});if(!r.apiKey)return t.stderr.write(`Error: Not authenticated. Run "phala login" first.
155
+ `),1;let n=fr({apiKey:r.apiKey,baseURL:r.baseURL,headers:{"User-Agent":`phala-cli/${A6}`}}),o=n4(e.header),s=e.endpoint.startsWith("/")?e.endpoint:`/${e.endpoint}`,a=s.indexOf("?"),i=a>=0?`${s.slice(0,a)}?${new URLSearchParams(s.slice(a+1)).toString()}`:s;try{let{defaultContentType:c}=T6(e);c&&!o4(o,"content-type")&&(o["Content-Type"]=c);let m=a4(e,i);if(m.body!==void 0&&!s4(m.method))return t.stderr.write(`Error: ${m.method} does not support a request body. Use -X POST (or PUT/PATCH) to send body data.
156
156
  `),1;let u=await n.requestFull(m.endpoint,{method:m.method,body:m.body,headers:o});if(e.include&&(t.stdout.write(`HTTP/1.1 ${u.status} ${u.statusText}
157
- `),u.headers.forEach((p,l)=>{t.stdout.write(`${l}: ${p}
157
+ `),u.headers.forEach((p,f)=>{t.stdout.write(`${f}: ${p}
158
158
  `)}),t.stdout.write(`
159
- `)),!e.silent&&u.data!==void 0){let p=u.data;if(e.jq)try{p=C6(p,e.jq)}catch(d){return t.stderr.write(`Error: jq filter failed: ${d.message}
160
- `),1}let l=S6(p);t.stdout.write(`${l}
159
+ `)),!e.silent&&u.data!==void 0){let p=u.data;if(e.jq)try{p=E6(p,e.jq)}catch(d){return t.stderr.write(`Error: jq filter failed: ${d.message}
160
+ `),1}let f=_6(p);t.stdout.write(`${f}
161
161
  `)}return u.ok?0:1}catch(c){let m=c;return t.stderr.write(`Error: ${m.message}
162
- `),1}}var P6=A({path:["api"],meta:k6,schema:E6,handler:r4});var A6={path:["auth"],meta:{name:"auth",category:"deprecated",description:"Authenticate with Phala Cloud",stability:"deprecated"}};import n4 from"prompts";var ze=process.env.CLOUD_URL||"https://cloud.phala.com";var Uc=1,zc=2048,is=40,wg="dstack-0.3.6",T6=`version: '3.8'
162
+ `),1}}var $6=A({path:["api"],meta:I6,schema:P6,handler:i4});var R6={path:["auth"],meta:{name:"auth",category:"deprecated",description:"Authenticate with Phala Cloud",stability:"deprecated"}};import c4 from"prompts";var ze=process.env.CLOUD_URL||"https://cloud.phala.com";var Uc=1,zc=2048,cs=40,wg="dstack-0.3.6",M6=`version: '3.8'
163
163
  services:
164
164
  postgres:
165
165
  image: ankane/pgvector:latest
@@ -204,7 +204,7 @@ networks:
204
204
  driver: bridge
205
205
 
206
206
  volumes:
207
- postgres-data:`,$6=`version: '3.8'
207
+ postgres-data:`,F6=`version: '3.8'
208
208
  services:
209
209
  app:
210
210
  image: {{imageName}}
@@ -215,37 +215,37 @@ services:
215
215
  {{#each envVars}} - {{{this}}}
216
216
  {{/each}}
217
217
  restart: always
218
- `;import{z as Jl}from"zod";var R6={name:"login",description:"Authenticate with Phala Cloud (use 'phala login' instead)",stability:"deprecated",arguments:[{name:"api-key",description:"API key (triggers device flow if omitted)",required:!1,target:"apiKey"}],options:[{name:"manual",description:"Enter API key manually",type:"boolean"},{name:"no-open",description:"Skip browser launch",type:"boolean"}]},M6=Jl.object({apiKey:Jl.string().min(1,"API key cannot be empty").optional(),manual:Jl.boolean().optional(),noOpen:Jl.boolean().optional()});async function Cg(e){let t=await Ul(e.apiKey,{baseURL:e.baseURL}),r=await gt(t);if(!r.success||!r.data?.user.username)throw new Error("Invalid API key");return{username:r.data.user.username,email:r.data.user.email,workspace_name:r.data.workspace.name,workspace_slug:r.data.workspace.slug||void 0}}async function o4(e){let t,r=await n4({type:"password",name:"apiKey",message:"Enter your API key:",validate:async n=>{if(!n||n.trim().length===0)return"API key cannot be empty";try{return t=await Cg({apiKey:n,baseURL:e.baseURL}),!0}catch(o){return o instanceof Error?o.message:"Invalid API key"}}});if(!r.apiKey)throw new Error("API key input cancelled");return t||(t=await Cg({apiKey:r.apiKey,baseURL:e.baseURL})),{apiKey:r.apiKey,user:t}}async function s4(e,t){f.warn('The "phala auth login" command is deprecated and will be removed in a future version.'),f.info('Please use "phala login" instead for a better experience.'),f.break();try{let r=t.env.PHALA_CLOUD_API_PREFIX||on,n=e.apiKey,o;if(n)o=await Cg({apiKey:n,baseURL:r});else{let c=await o4({baseURL:r});n=c.apiKey,o=c.user}if(!o)throw new Error("Failed to validate API key");let s=o.workspace_name||"default",a=o.workspace_slug,i=s;return ci({profileName:i,token:n,apiPrefix:r,workspaceName:s,workspaceSlug:a,user:{username:o.username,email:o.email},setCurrent:!0}),f.success(`Welcome ${o.username}! Credentials saved successfully (profile: ${i})`),f.break(),f.info(`Open in Web UI at ${ze}/dashboard/`),0}catch(r){return f.error("Failed to set API key"),f.logDetailedError(r),1}}var F6=A({path:["auth","login"],meta:R6,schema:M6,handler:s4});import{z as a4}from"zod";var N6={name:"logout",description:"Remove stored API key (use 'phala logout' instead)",stability:"deprecated"},L6=a4.object({});async function i4(e,t){f.warn('The "phala auth logout" command is deprecated and will be removed in a future version.'),f.info('Please use "phala logout" instead.'),f.break();try{let n=Lt()?.current_profile;return Bl(),f.success(n?`Credentials removed successfully (profile: ${n})`:"Credentials removed successfully"),0}catch(r){return f.error("Failed to remove credentials"),f.logDetailedError(r),1}}var B6=A({path:["auth","logout"],meta:N6,schema:L6,handler:i4});import{z as Zl}from"zod";var kt={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json"},Sg={name:"debug",shorthand:"d",description:"Enable debug output",type:"boolean",target:"debug"},D6={name:"status",category:"profile",description:"Check authentication status",stability:"stable",options:[...Un,kt,Sg],examples:[{name:"Show login status",value:"phala status"},{name:"Get status as JSON",value:"phala status --json"}]},Yl=Zl.object({json:Zl.boolean().default(!1),debug:Zl.boolean().default(!1),apiToken:Zl.string().optional()});async function kg(e,t){let r=e.debug||t.env.DEBUG?.toLowerCase()==="true",{client:n,auth:o}=await Dl(t,{apiToken:e.apiToken});if(!o.apiKey)return f.warn('Not authenticated. Please set an API key with "phala login"'),0;r&&(f.debug(`Using API key: ${o.apiKey.substring(0,5)}... (source=${o.tokenSource}, profile=${o.profileName})`),f.debug(`Using API prefix: ${o.baseURL} (source=${o.apiPrefixSource})`));try{let s=await gt(n);if(!s.success)return f.error("Failed to get user information"),s.error&&f.error(`Error: ${s.error.message}`),t.fail(s.error?.message||"Failed to get user information"),1;let a=s.data,i=o.baseURL,c=n.config.version;if(e.json)return t.success({apiUrl:i,apiVersion:c,username:a.user.username,team_name:a.workspace.name,profile:o.profileName}),0;if(t.stdout.write(`Integrated API: ${i}
218
+ `;import{z as Jl}from"zod";var N6={name:"login",description:"Authenticate with Phala Cloud (use 'phala login' instead)",stability:"deprecated",arguments:[{name:"api-key",description:"API key (triggers device flow if omitted)",required:!1,target:"apiKey"}],options:[{name:"manual",description:"Enter API key manually",type:"boolean"},{name:"no-open",description:"Skip browser launch",type:"boolean"}]},L6=Jl.object({apiKey:Jl.string().min(1,"API key cannot be empty").optional(),manual:Jl.boolean().optional(),noOpen:Jl.boolean().optional()});async function Cg(e){let t=await Ul(e.apiKey,{baseURL:e.baseURL}),r=await gt(t);if(!r.success||!r.data?.user.username)throw new Error("Invalid API key");return{username:r.data.user.username,email:r.data.user.email,workspace_name:r.data.workspace.name,workspace_slug:r.data.workspace.slug||void 0}}async function m4(e){let t,r=await c4({type:"password",name:"apiKey",message:"Enter your API key:",validate:async n=>{if(!n||n.trim().length===0)return"API key cannot be empty";try{return t=await Cg({apiKey:n,baseURL:e.baseURL}),!0}catch(o){return o instanceof Error?o.message:"Invalid API key"}}});if(!r.apiKey)throw new Error("API key input cancelled");return t||(t=await Cg({apiKey:r.apiKey,baseURL:e.baseURL})),{apiKey:r.apiKey,user:t}}async function u4(e,t){l.warn('The "phala auth login" command is deprecated and will be removed in a future version.'),l.info('Please use "phala login" instead for a better experience.'),l.break();try{let r=t.env.PHALA_CLOUD_API_PREFIX||on,n=e.apiKey,o;if(n)o=await Cg({apiKey:n,baseURL:r});else{let c=await m4({baseURL:r});n=c.apiKey,o=c.user}if(!o)throw new Error("Failed to validate API key");let s=o.workspace_name||"default",a=o.workspace_slug,i=s;return mi({profileName:i,token:n,apiPrefix:r,workspaceName:s,workspaceSlug:a,user:{username:o.username,email:o.email},setCurrent:!0}),l.success(`Welcome ${o.username}! Credentials saved successfully (profile: ${i})`),l.break(),l.info(`Open in Web UI at ${ze}/dashboard/`),0}catch(r){return l.error("Failed to set API key"),l.logDetailedError(r),1}}var B6=A({path:["auth","login"],meta:N6,schema:L6,handler:u4});import{z as p4}from"zod";var D6={name:"logout",description:"Remove stored API key (use 'phala logout' instead)",stability:"deprecated"},U6=p4.object({});async function l4(e,t){l.warn('The "phala auth logout" command is deprecated and will be removed in a future version.'),l.info('Please use "phala logout" instead.'),l.break();try{let n=Lt()?.current_profile;return Bl(),l.success(n?`Credentials removed successfully (profile: ${n})`:"Credentials removed successfully"),0}catch(r){return l.error("Failed to remove credentials"),l.logDetailedError(r),1}}var z6=A({path:["auth","logout"],meta:D6,schema:U6,handler:l4});import{z as Zl}from"zod";var kt={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json"},Sg={name:"debug",shorthand:"d",description:"Enable debug output",type:"boolean",target:"debug"},O6={name:"status",category:"profile",description:"Check authentication status",stability:"stable",options:[...zn,kt,Sg],examples:[{name:"Show login status",value:"phala status"},{name:"Get status as JSON",value:"phala status --json"}]},Yl=Zl.object({json:Zl.boolean().default(!1),debug:Zl.boolean().default(!1),apiToken:Zl.string().optional()});async function kg(e,t){let r=e.debug||t.env.DEBUG?.toLowerCase()==="true",{client:n,auth:o}=await Dl(t,{apiToken:e.apiToken});if(!o.apiKey)return l.warn('Not authenticated. Please set an API key with "phala login"'),0;r&&(l.debug(`Using API key: ${o.apiKey.substring(0,5)}... (source=${o.tokenSource}, profile=${o.profileName})`),l.debug(`Using API prefix: ${o.baseURL} (source=${o.apiPrefixSource})`));try{let s=await gt(n);if(!s.success)return l.error("Failed to get user information"),s.error&&l.error(`Error: ${s.error.message}`),t.fail(s.error?.message||"Failed to get user information"),1;let a=s.data,i=o.baseURL,c=n.config.version;if(e.json)return t.success({apiUrl:i,apiVersion:c,username:a.user.username,team_name:a.workspace.name,profile:o.profileName}),0;if(t.stdout.write(`Integrated API: ${i}
219
219
  `),t.stdout.write(`API Version: ${c}
220
220
  `),t.stdout.write(`Logged in as: ${a.user.username}
221
221
  `),t.stdout.write(`Current Workspace: ${a.workspace.name}
222
222
  `),t.stdout.write(`Current Profile: ${o.profileName}
223
223
  `),t.cli){let m=await ql({executableName:t.cli.executableName,packageName:t.cli.packageName,currentVersion:t.cli.packageVersion,runtime:t.cli.runtime,env:t.env,isJson:!1,stderrIsTTY:t.stderr.isTTY===!0,ttlMs:0,timeoutMs:5e3});m?t.stderr.write(`
224
224
  ${m.message}`):t.stdout.write(`CLI is up to date.
225
- `)}return 0}catch(s){return f.error("Authentication failed. Your API key may be invalid or expired."),f.info('Please set a new API key with "phala login"'),r&&f.logDetailedError(s),t.fail("Authentication failed. Your API key may be invalid or expired."),1}}var U6=A({path:["status"],meta:D6,schema:Yl,handler:kg});var z6={name:"status",description:"Check auth status (use 'phala status' instead)",stability:"deprecated",options:[...Un,kt,Sg]},O6=Yl;var j6=A({path:["auth","status"],meta:z6,schema:O6,handler:async(e,t)=>(e.json||(f.warn('The "phala auth status" command is deprecated and will be removed in a future version.'),f.info('Please use "phala status" instead.'),f.break()),kg(e,t))});var Eg={group:A6,commands:[F6,B6,j6]};var H6={path:["config"],meta:{name:"config",category:"deprecated",description:"Manage local CLI state",stability:"deprecated"}};import{z as V6}from"zod";var G6={name:"get",description:"Get a configuration value",stability:"stable",arguments:[{name:"key",description:"Configuration key",required:!0}]},q6=V6.object({key:V6.string()});async function c4(e,t){f.warn('The "phala config" commands are deprecated and will be removed in a future version.');try{let r=mi(e.key);return r===void 0?(t.stderr.write(`Configuration key '${e.key}' not found
225
+ `)}return 0}catch(s){return l.error("Authentication failed. Your API key may be invalid or expired."),l.info('Please set a new API key with "phala login"'),r&&l.logDetailedError(s),t.fail("Authentication failed. Your API key may be invalid or expired."),1}}var j6=A({path:["status"],meta:O6,schema:Yl,handler:kg});var H6={name:"status",description:"Check auth status (use 'phala status' instead)",stability:"deprecated",options:[...zn,kt,Sg]},V6=Yl;var G6=A({path:["auth","status"],meta:H6,schema:V6,handler:async(e,t)=>(e.json||(l.warn('The "phala auth status" command is deprecated and will be removed in a future version.'),l.info('Please use "phala status" instead.'),l.break()),kg(e,t))});var Eg={group:R6,commands:[B6,z6,G6]};var q6={path:["config"],meta:{name:"config",category:"deprecated",description:"Manage local CLI state",stability:"deprecated"}};import{z as K6}from"zod";var W6={name:"get",description:"Get a configuration value",stability:"stable",arguments:[{name:"key",description:"Configuration key",required:!0}]},J6=K6.object({key:K6.string()});async function f4(e,t){l.warn('The "phala config" commands are deprecated and will be removed in a future version.');try{let r=ui(e.key);return r===void 0?(t.stderr.write(`Configuration key '${e.key}' not found
226
226
  `),1):(t.stdout.write(`${e.key}: ${JSON.stringify(r)}
227
227
  `),0)}catch(r){return t.stderr.write(`Failed to get configuration value
228
- `),f.logDetailedError(r),1}}var K6=A({path:["config","get"],meta:G6,schema:q6,handler:c4});import{z as W6}from"zod";var J6={name:"list",aliases:["ls"],description:"List config values",stability:"stable",options:[{name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json"}]},Z6=W6.object({json:W6.boolean().default(!1)});async function m4(e,t){f.warn('The "phala config" commands are deprecated and will be removed in a future version.');try{let r=m6();if(e.json)return t.success(r),0;t.stdout.write(`Configuration values:
228
+ `),l.logDetailedError(r),1}}var Z6=A({path:["config","get"],meta:W6,schema:J6,handler:f4});import{z as Y6}from"zod";var X6={name:"list",aliases:["ls"],description:"List config values",stability:"stable",options:[{name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json"}]},Q6=Y6.object({json:Y6.boolean().default(!1)});async function d4(e,t){l.warn('The "phala config" commands are deprecated and will be removed in a future version.');try{let r=u6();if(e.json)return t.success(r),0;t.stdout.write(`Configuration values:
229
229
  `);for(let[n,o]of Object.entries(r))t.stdout.write(`${n}: ${JSON.stringify(o)}
230
- `);return 0}catch(r){return f.logDetailedError(r),t.fail("Failed to list configuration values"),1}}var Y6=A({path:["config","list"],meta:J6,schema:Z6,handler:m4});import{z as _g}from"zod";var X6={name:"set",description:"Set a configuration value",stability:"stable",arguments:[{name:"key",description:"Configuration key",required:!0},{name:"value",description:"Configuration value",required:!0}]},Q6=_g.object({key:_g.string(),value:_g.string()});async function u4(e,t){try{let r=e.value;if(e.value.startsWith("{")||e.value.startsWith("[")||e.value==="true"||e.value==="false"||!Number.isNaN(Number(e.value)))try{r=JSON.parse(e.value)}catch{}return f.warn('The "phala config" commands are deprecated and will be removed in a future version.'),c6(e.key,r),t.stdout.write(`Configuration value for '${e.key}' set successfully
230
+ `);return 0}catch(r){return l.logDetailedError(r),t.fail("Failed to list configuration values"),1}}var eC=A({path:["config","list"],meta:X6,schema:Q6,handler:d4});import{z as _g}from"zod";var tC={name:"set",description:"Set a configuration value",stability:"stable",arguments:[{name:"key",description:"Configuration key",required:!0},{name:"value",description:"Configuration value",required:!0}]},rC=_g.object({key:_g.string(),value:_g.string()});async function g4(e,t){try{let r=e.value;if(e.value.startsWith("{")||e.value.startsWith("[")||e.value==="true"||e.value==="false"||!Number.isNaN(Number(e.value)))try{r=JSON.parse(e.value)}catch{}return l.warn('The "phala config" commands are deprecated and will be removed in a future version.'),m6(e.key,r),t.stdout.write(`Configuration value for '${e.key}' set successfully
231
231
  `),0}catch(r){return t.stderr.write(`Failed to set configuration value
232
- `),f.logDetailedError(r),1}}var eC=A({path:["config","set"],meta:X6,schema:Q6,handler:u4});var Ig={group:H6,commands:[K6,Y6,eC]};var tC={path:["cvms"],meta:{name:"cvms",category:"manage",description:"Manage CVMs",stability:"unstable"}};import Ql from"chalk";import{z as Xl}from"zod";var rC={name:"attestation",description:"Get CVM attestation",stability:"unstable",arguments:[he],options:[kt,re],examples:[{name:"Show attestation summary",value:"phala cvms attestation"},{name:"Output full attestation JSON",value:"phala cvms attestation --json"}]},nC=Xl.object({cvmId:Xl.string().optional(),interactive:Xl.boolean().default(!1),json:Xl.boolean().default(!1)});async function p4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=await $e(r,t.cvmId);if(!n.success)return t.fail(n.error.message),1;let o=n.data;if(!o)return t.fail("CVM not found"),1;let s=o.app_id,a=f.startSpinner(`Fetching attestation information for CVM app_${s}...`);try{let i=await Hw(s);if(a.stop(!0),!i)return t.fail("No attestation information found"),1;if(e.json)return t.success(i),0;if(f.success("Attestation Summary:"),f.keyValueTable({Status:i.is_online?Ql.green("Online"):Ql.red("Offline"),"Public Access":i.is_public?Ql.green("Enabled"):Ql.yellow("Disabled"),Error:i.error||"None",Certificates:`${i.app_certificates?.length||0} found`},{borderStyle:"rounded"}),i.app_certificates?.length&&i.app_certificates.forEach((c,m)=>{f.break(),f.success(`Certificate #${m+1} (${c.position_in_chain===0?"End Entity":"CA"}):`),f.keyValueTable({Subject:`${c.subject.common_name||"Unknown"}${c.subject.organization?` (${c.subject.organization})`:""}`,Issuer:`${c.issuer.common_name||"Unknown"}${c.issuer.organization?` (${c.issuer.organization})`:""}`,"Serial Number":c.serial_number,Validity:`${new Date(c.not_before).toLocaleString()} to ${new Date(c.not_after).toLocaleString()}`,Fingerprint:c.fingerprint,"Signature Algorithm":c.signature_algorithm,"Is CA":c.is_ca?"Yes":"No","Position in Chain":c.position_in_chain},{borderStyle:"rounded"})}),i.tcb_info&&(f.break(),f.success("Trusted Computing Base (TCB) Information:"),f.keyValueTable({Mrtd:i.tcb_info.mrtd,"Rootfs Hash":i.tcb_info.rootfs_hash,Rtmr0:i.tcb_info.rtmr0,Rtmr1:i.tcb_info.rtmr1,Rtmr2:i.tcb_info.rtmr2,Rtmr3:i.tcb_info.rtmr3,"Event Log Entries":`${i.tcb_info.event_log.length} entries`},{borderStyle:"rounded"}),i.tcb_info.event_log?.length)){f.break(),f.success("Event Log (Showing entries to reproduce RTMR3):");let c=i.tcb_info.event_log.filter(m=>m.event).map(m=>({Event:m.event,IMR:m.imr.toString(),"Event Type":m.event_type.toString(),Payload:m.event_payload}));f.table(c,[{key:"Event",header:"Event"},{key:"IMR",header:"IMR"},{key:"Event Type",header:"Type"},{key:"Payload",header:"Payload"}]),i.tcb_info.event_log.length>c.length&&f.info("To see all full attestation data, use --json"),f.break(),f.success("To reproduce RTMR3, use the tool at https://rtmr3-calculator.vercel.app/")}return 0}catch(i){throw a.stop(!1),i}}catch(r){return f.logDetailedError(r),t.fail(`Failed to get attestation information: ${r instanceof Error?r.message:String(r)}`),1}}var oC=A({path:["cvms","attestation"],meta:rC,schema:nC,handler:p4});import lC from"fs";import h4 from"path";import Pg from"fs";import Ag from"path";import l4 from"inquirer";function Kt(e,t=process.cwd()){let r=Ag.resolve(t,e);if(!Pg.existsSync(r))throw new Error(`File not found at ${r}`);return!0}async function Pn(e,t,r="file",n=process.cwd()){return(await l4.prompt([{type:"input",name:r,message:e,default:t,validate:s=>{let a=Ag.resolve(n,s);return Pg.existsSync(a)?!0:`File not found at ${a}`}}]))[r]}function fi(e,t){for(let r of e){let n=Ag.join(process.cwd(),r);if(Pg.existsSync(n))return t?f.info(t.replace("{path}",n)):f.info(`File detected: ${n}`),r}}import*as sC from"fs";var Oc=(e,t)=>{let r={};if(e){for(let n of e)if(n.includes("=")){let[o,...s]=n.split("="),a=s.join("=");o&&(r[o]=a)}}if(t){let n=sC.readFileSync(t,"utf8");for(let o of n.split(`
233
- `)){if(!o.trim()||o.trim().startsWith("#"))continue;let s=-1,a=!1,i="";for(let h=0;h<o.length;h++)if((o[h]==='"'||o[h]==="'"||o[h]==="`")&&(h===0||o[h-1]!=="\\"))a&&o[h]===i?(a=!1,i=""):a||(a=!0,i=o[h]);else if(o[h]==="="&&!a){s=h;break}else if(o[h]==="#"&&!a)break;if(s===-1){o.trim().startsWith("#");continue}let c=o.substring(0,s).trim(),m=o.substring(s+1),u=!1,p="",l=-1;for(let h=0;h<m.length;h++)if((m[h]==='"'||m[h]==="'"||m[h]==="`")&&(h===0||m[h-1]!=="\\"))u&&m[h]===p?(u=!1,p=""):u||(u=!0,p=m[h]);else if(m[h]==="#"&&!u&&h>0&&m[h-1]===" "){l=h-1;break}else if(m[h]==="#"&&!u&&h===0){l=h;break}l!==-1&&(m=m.substring(0,l)),m===void 0&&(m="");let d=m.charAt(0),g=m.charAt(m.length-1);d==='"'&&g==='"'||d==="'"&&g==="'"||d==="`"&&g==="`"?(m=m.substring(1,m.length-1),d==='"'&&(m=m.replace(/\\\\n/g,`
234
- `))):m=m.trim(),c&&(r[c]=m)}}return Object.entries(r).map(([n,o])=>({key:n,value:o}))};import{execSync as An,spawn as f4}from"child_process";import*as ue from"fs";import*as Tg from"net";import*as an from"os";import*as gr from"path";var st={version:"0.5.3",baseUrl:"https://github.com/Dstack-TEE/dstack/releases/download/v0.5.3",installDir:gr.join(an.homedir(),".phala-cloud","simulator"),defaultLogPath:gr.join(an.homedir(),".phala-cloud","logs","dstack-simulator.log"),platforms:{darwin:{filename:"dstack-simulator-0.5.3-aarch64-apple-darwin.tgz",extractedFolder:"0.5.3",socketPath:gr.join(an.homedir(),".phala-cloud","simulator","0.5.3","dstack.sock")},linux:{filename:"dstack-simulator-0.5.3-x86_64-linux-musl.tgz",extractedFolder:"0.5.3",socketPath:gr.join(an.homedir(),".phala-cloud","simulator","0.5.3","dstack.sock")},win32:{filename:"dstack-simulator-0.5.3-x86_64-pc-windows-msvc.tgz",extractedFolder:"dstack-simulator-0.5.3-x86_64-pc-windows-msvc",socketPath:"127.0.0.1:8090"}}};function aC(){try{if(!ue.existsSync(st.installDir))return!1;let e=an.platform();if(!st.platforms[e])throw new Error(`Unsupported platform: ${e}`);let t=gr.join(st.installDir,st.platforms[e].extractedFolder);if(!ue.existsSync(t))return!1;let n=gr.join(t,e==="win32"?"dstack-simulator.exe":"dstack-simulator");return ue.existsSync(n)}catch(e){return f.error("Error checking if simulator is installed:",e),!1}}function jc(){let e=an.platform();if(!st.platforms[e])throw new Error(`Unsupported platform: ${e}. Only darwin, linux, and win32 are supported.`);return e}async function iC(e){let t=r=>{f.info(r),e&&e(r)};try{let r=jc(),n=st.platforms[r];if(r==="win32"){try{An("tar --version",{stdio:"ignore"})}catch{throw new Error("Windows 10 build 17063 or later is required (includes tar command). Please update your Windows version.")}throw new Error("Windows platform is currently not supported. Support will be added in a future release.")}ue.existsSync(st.installDir)||(f.info(`Creating installation directory at ${st.installDir}`),ue.mkdirSync(st.installDir,{recursive:!0})),process.chdir(st.installDir);let o=`${st.baseUrl}/${n.filename}`;f.info(`Downloading simulator from ${o}`),An(`wget ${o}`,{stdio:"inherit"});let s=gr.join(st.installDir,n.extractedFolder);ue.existsSync(s)||ue.mkdirSync(s,{recursive:!0}),f.info(`Extracting ${n.filename} to ${s}`);let a=`tar -xvf "${n.filename}" -C "${s}" --strip-components=1`;f.debug(`Running: ${a}`);try{An(a,{stdio:"inherit"}),ue.unlinkSync(n.filename)}catch(i){throw f.error(`Failed to extract ${n.filename}:`,i),new Error("Failed to extract simulator archive. Make sure you have sufficient permissions and disk space.")}f.success("Simulator installation completed successfully")}catch(r){throw f.error("Error installing simulator:",r),new Error(`Failed to install simulator: ${r}`)}}var $g=()=>gr.join(an.tmpdir(),"dstack-simulator.pid");function d4(e){return Buffer.byteLength(e,"utf8")>104}function ef(){try{let e=$g();if(ue.existsSync(e)){let t=Number.parseInt(ue.readFileSync(e,"utf-8").trim(),10);try{return process.kill(t,0),t}catch{ue.unlinkSync(e)}}return null}catch(e){return f.warn("Error checking simulator PID:",e),null}}function g4(e,t){try{let r=$g();t&&f.info(`Saving simulator PID ${e} to: ${r}`),ue.writeFileSync(r,e.toString(),"utf-8")}catch(r){f.warn("Failed to save simulator PID:",r)}}async function cC(e={}){try{let t=jc(),r=st.platforms[t],n=gr.join(st.installDir,r.extractedFolder),o=ef();if(o)throw new Error(`Simulator is already running with PID: ${o}`);if(t!=="win32"&&d4(r.socketPath))throw new Error(`Socket path is too long (${r.socketPath.length} chars, max 104): ${r.socketPath}`);if(t!=="win32"&&ue.existsSync(r.socketPath)){f.warn(`Removing existing socket file: ${r.socketPath}`);try{ue.unlinkSync(r.socketPath)}catch(m){f.warn(`Failed to remove existing socket file: ${m}`)}}process.chdir(n);let s=t==="win32"?"dstack-simulator.exe":"./dstack-simulator";e.verbose&&t!=="win32"&&f.info(`Using socket path: ${r.socketPath}`);let a={background:e.background??!0,logToFile:e.logToFile??!0,logFilePath:e.logFilePath??st.defaultLogPath};if(a.logToFile){let m=gr.dirname(a.logFilePath);ue.existsSync(m)||ue.mkdirSync(m,{recursive:!0}),e.verbose&&f.info(`Simulator logs will be written to: ${a.logFilePath}`)}e.verbose&&f.info(`Starting simulator with: ${s}`);let i=a.logToFile?["ignore",ue.openSync(a.logFilePath,"a"),ue.openSync(a.logFilePath,"a")]:"inherit",c=f4(s,[],{stdio:i,shell:t==="win32",detached:a.background});if(a.logToFile&&Array.isArray(i)&&(typeof i[1]=="number"&&ue.closeSync(i[1]),typeof i[2]=="number"&&ue.closeSync(i[2])),a.logToFile){let u=`
232
+ `),l.logDetailedError(r),1}}var nC=A({path:["config","set"],meta:tC,schema:rC,handler:g4});var Ig={group:q6,commands:[Z6,eC,nC]};var oC={path:["cvms"],meta:{name:"cvms",category:"manage",description:"Manage CVMs",stability:"unstable"}};import Ql from"chalk";import{z as Xl}from"zod";var sC={name:"attestation",description:"Get CVM attestation",stability:"unstable",arguments:[he],options:[kt,re],examples:[{name:"Show attestation summary",value:"phala cvms attestation"},{name:"Output full attestation JSON",value:"phala cvms attestation --json"}]},aC=Xl.object({cvmId:Xl.string().optional(),interactive:Xl.boolean().default(!1),json:Xl.boolean().default(!1)});async function h4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=await $e(r,t.cvmId);if(!n.success)return t.fail(n.error.message),1;let o=n.data;if(!o)return t.fail("CVM not found"),1;let s=o.app_id,a=l.startSpinner(`Fetching attestation information for CVM app_${s}...`);try{let i=await Vw(s);if(a.stop(!0),!i)return t.fail("No attestation information found"),1;if(e.json)return t.success(i),0;if(l.success("Attestation Summary:"),l.keyValueTable({Status:i.is_online?Ql.green("Online"):Ql.red("Offline"),"Public Access":i.is_public?Ql.green("Enabled"):Ql.yellow("Disabled"),Error:i.error||"None",Certificates:`${i.app_certificates?.length||0} found`},{borderStyle:"rounded"}),i.app_certificates?.length&&i.app_certificates.forEach((c,m)=>{l.break(),l.success(`Certificate #${m+1} (${c.position_in_chain===0?"End Entity":"CA"}):`),l.keyValueTable({Subject:`${c.subject.common_name||"Unknown"}${c.subject.organization?` (${c.subject.organization})`:""}`,Issuer:`${c.issuer.common_name||"Unknown"}${c.issuer.organization?` (${c.issuer.organization})`:""}`,"Serial Number":c.serial_number,Validity:`${new Date(c.not_before).toLocaleString()} to ${new Date(c.not_after).toLocaleString()}`,Fingerprint:c.fingerprint,"Signature Algorithm":c.signature_algorithm,"Is CA":c.is_ca?"Yes":"No","Position in Chain":c.position_in_chain},{borderStyle:"rounded"})}),i.tcb_info&&(l.break(),l.success("Trusted Computing Base (TCB) Information:"),l.keyValueTable({Mrtd:i.tcb_info.mrtd,"Rootfs Hash":i.tcb_info.rootfs_hash,Rtmr0:i.tcb_info.rtmr0,Rtmr1:i.tcb_info.rtmr1,Rtmr2:i.tcb_info.rtmr2,Rtmr3:i.tcb_info.rtmr3,"Event Log Entries":`${i.tcb_info.event_log.length} entries`},{borderStyle:"rounded"}),i.tcb_info.event_log?.length)){l.break(),l.success("Event Log (Showing entries to reproduce RTMR3):");let c=i.tcb_info.event_log.filter(m=>m.event).map(m=>({Event:m.event,IMR:m.imr.toString(),"Event Type":m.event_type.toString(),Payload:m.event_payload}));l.table(c,[{key:"Event",header:"Event"},{key:"IMR",header:"IMR"},{key:"Event Type",header:"Type"},{key:"Payload",header:"Payload"}]),i.tcb_info.event_log.length>c.length&&l.info("To see all full attestation data, use --json"),l.break(),l.success("To reproduce RTMR3, use the tool at https://rtmr3-calculator.vercel.app/")}return 0}catch(i){throw a.stop(!1),i}}catch(r){return l.logDetailedError(r),t.fail(`Failed to get attestation information: ${r instanceof Error?r.message:String(r)}`),1}}var iC=A({path:["cvms","attestation"],meta:sC,schema:aC,handler:h4});import gC from"fs";import w4 from"path";import Pg from"fs";import Ag from"path";import y4 from"inquirer";function Kt(e,t=process.cwd()){let r=Ag.resolve(t,e);if(!Pg.existsSync(r))throw new Error(`File not found at ${r}`);return!0}async function Pn(e,t,r="file",n=process.cwd()){return(await y4.prompt([{type:"input",name:r,message:e,default:t,validate:s=>{let a=Ag.resolve(n,s);return Pg.existsSync(a)?!0:`File not found at ${a}`}}]))[r]}function fi(e,t){for(let r of e){let n=Ag.join(process.cwd(),r);if(Pg.existsSync(n))return t?l.info(t.replace("{path}",n)):l.info(`File detected: ${n}`),r}}import*as cC from"fs";var Oc=(e,t)=>{let r={};if(e){for(let n of e)if(n.includes("=")){let[o,...s]=n.split("="),a=s.join("=");o&&(r[o]=a)}}if(t){let n=cC.readFileSync(t,"utf8");for(let o of n.split(`
233
+ `)){if(!o.trim()||o.trim().startsWith("#"))continue;let s=-1,a=!1,i="";for(let h=0;h<o.length;h++)if((o[h]==='"'||o[h]==="'"||o[h]==="`")&&(h===0||o[h-1]!=="\\"))a&&o[h]===i?(a=!1,i=""):a||(a=!0,i=o[h]);else if(o[h]==="="&&!a){s=h;break}else if(o[h]==="#"&&!a)break;if(s===-1){o.trim().startsWith("#");continue}let c=o.substring(0,s).trim(),m=o.substring(s+1),u=!1,p="",f=-1;for(let h=0;h<m.length;h++)if((m[h]==='"'||m[h]==="'"||m[h]==="`")&&(h===0||m[h-1]!=="\\"))u&&m[h]===p?(u=!1,p=""):u||(u=!0,p=m[h]);else if(m[h]==="#"&&!u&&h>0&&m[h-1]===" "){f=h-1;break}else if(m[h]==="#"&&!u&&h===0){f=h;break}f!==-1&&(m=m.substring(0,f)),m===void 0&&(m="");let d=m.charAt(0),g=m.charAt(m.length-1);d==='"'&&g==='"'||d==="'"&&g==="'"||d==="`"&&g==="`"?(m=m.substring(1,m.length-1),d==='"'&&(m=m.replace(/\\\\n/g,`
234
+ `))):m=m.trim(),c&&(r[c]=m)}}return Object.entries(r).map(([n,o])=>({key:n,value:o}))};import{execSync as An,spawn as b4}from"child_process";import*as ue from"fs";import*as Tg from"net";import*as an from"os";import*as gr from"path";var st={version:"0.5.3",baseUrl:"https://github.com/Dstack-TEE/dstack/releases/download/v0.5.3",installDir:gr.join(an.homedir(),".phala-cloud","simulator"),defaultLogPath:gr.join(an.homedir(),".phala-cloud","logs","dstack-simulator.log"),platforms:{darwin:{filename:"dstack-simulator-0.5.3-aarch64-apple-darwin.tgz",extractedFolder:"0.5.3",socketPath:gr.join(an.homedir(),".phala-cloud","simulator","0.5.3","dstack.sock")},linux:{filename:"dstack-simulator-0.5.3-x86_64-linux-musl.tgz",extractedFolder:"0.5.3",socketPath:gr.join(an.homedir(),".phala-cloud","simulator","0.5.3","dstack.sock")},win32:{filename:"dstack-simulator-0.5.3-x86_64-pc-windows-msvc.tgz",extractedFolder:"dstack-simulator-0.5.3-x86_64-pc-windows-msvc",socketPath:"127.0.0.1:8090"}}};function mC(){try{if(!ue.existsSync(st.installDir))return!1;let e=an.platform();if(!st.platforms[e])throw new Error(`Unsupported platform: ${e}`);let t=gr.join(st.installDir,st.platforms[e].extractedFolder);if(!ue.existsSync(t))return!1;let n=gr.join(t,e==="win32"?"dstack-simulator.exe":"dstack-simulator");return ue.existsSync(n)}catch(e){return l.error("Error checking if simulator is installed:",e),!1}}function jc(){let e=an.platform();if(!st.platforms[e])throw new Error(`Unsupported platform: ${e}. Only darwin, linux, and win32 are supported.`);return e}async function uC(e){let t=r=>{l.info(r),e&&e(r)};try{let r=jc(),n=st.platforms[r];if(r==="win32"){try{An("tar --version",{stdio:"ignore"})}catch{throw new Error("Windows 10 build 17063 or later is required (includes tar command). Please update your Windows version.")}throw new Error("Windows platform is currently not supported. Support will be added in a future release.")}ue.existsSync(st.installDir)||(l.info(`Creating installation directory at ${st.installDir}`),ue.mkdirSync(st.installDir,{recursive:!0})),process.chdir(st.installDir);let o=`${st.baseUrl}/${n.filename}`;l.info(`Downloading simulator from ${o}`),An(`wget ${o}`,{stdio:"inherit"});let s=gr.join(st.installDir,n.extractedFolder);ue.existsSync(s)||ue.mkdirSync(s,{recursive:!0}),l.info(`Extracting ${n.filename} to ${s}`);let a=`tar -xvf "${n.filename}" -C "${s}" --strip-components=1`;l.debug(`Running: ${a}`);try{An(a,{stdio:"inherit"}),ue.unlinkSync(n.filename)}catch(i){throw l.error(`Failed to extract ${n.filename}:`,i),new Error("Failed to extract simulator archive. Make sure you have sufficient permissions and disk space.")}l.success("Simulator installation completed successfully")}catch(r){throw l.error("Error installing simulator:",r),new Error(`Failed to install simulator: ${r}`)}}var $g=()=>gr.join(an.tmpdir(),"dstack-simulator.pid");function x4(e){return Buffer.byteLength(e,"utf8")>104}function ef(){try{let e=$g();if(ue.existsSync(e)){let t=Number.parseInt(ue.readFileSync(e,"utf-8").trim(),10);try{return process.kill(t,0),t}catch{ue.unlinkSync(e)}}return null}catch(e){return l.warn("Error checking simulator PID:",e),null}}function v4(e,t){try{let r=$g();t&&l.info(`Saving simulator PID ${e} to: ${r}`),ue.writeFileSync(r,e.toString(),"utf-8")}catch(r){l.warn("Failed to save simulator PID:",r)}}async function pC(e={}){try{let t=jc(),r=st.platforms[t],n=gr.join(st.installDir,r.extractedFolder),o=ef();if(o)throw new Error(`Simulator is already running with PID: ${o}`);if(t!=="win32"&&x4(r.socketPath))throw new Error(`Socket path is too long (${r.socketPath.length} chars, max 104): ${r.socketPath}`);if(t!=="win32"&&ue.existsSync(r.socketPath)){l.warn(`Removing existing socket file: ${r.socketPath}`);try{ue.unlinkSync(r.socketPath)}catch(m){l.warn(`Failed to remove existing socket file: ${m}`)}}process.chdir(n);let s=t==="win32"?"dstack-simulator.exe":"./dstack-simulator";e.verbose&&t!=="win32"&&l.info(`Using socket path: ${r.socketPath}`);let a={background:e.background??!0,logToFile:e.logToFile??!0,logFilePath:e.logFilePath??st.defaultLogPath};if(a.logToFile){let m=gr.dirname(a.logFilePath);ue.existsSync(m)||ue.mkdirSync(m,{recursive:!0}),e.verbose&&l.info(`Simulator logs will be written to: ${a.logFilePath}`)}e.verbose&&l.info(`Starting simulator with: ${s}`);let i=a.logToFile?["ignore",ue.openSync(a.logFilePath,"a"),ue.openSync(a.logFilePath,"a")]:"inherit",c=b4(s,[],{stdio:i,shell:t==="win32",detached:a.background});if(a.logToFile&&Array.isArray(i)&&(typeof i[1]=="number"&&ue.closeSync(i[1]),typeof i[2]=="number"&&ue.closeSync(i[2])),a.logToFile){let u=`
235
235
  === Simulator started at ${new Date().toISOString()} ===
236
236
  Command: ${s}
237
237
 
238
- `;ue.appendFileSync(a.logFilePath,u)}return c.pid&&g4(c.pid,e.verbose),a.background&&(c.unref(),e.verbose&&f.success("Simulator is running in the background")),await Mg(),c}catch(t){throw f.error("Error running simulator:",t),new Error(`Failed to run simulator: ${t}`)}}async function Hc(){try{let e=jc(),t=st.platforms[e];if(e==="darwin"||e==="linux"){let r=t.socketPath;return ue.existsSync(r)?new Promise(n=>{let o=Tg.createConnection({path:r}).on("connect",()=>{o.end(),n(!0)}).on("error",()=>{n(!1)});setTimeout(()=>{o.end(),n(!1)},1e3)}):!1}if(e==="win32"){let r="127.0.0.1";return new Promise(o=>{let s=Tg.createConnection({host:r,port:8090}).on("connect",()=>{s.end(),o(!0)}).on("error",()=>{o(!1)});setTimeout(()=>{s.end(),o(!1)},1e3)})}return!1}catch(e){return f.error("Error checking if simulator is running:",e),!1}}async function mC(){try{let e=ef();if(!await Hc()&&!e)return f.info("Simulator is not running"),!0;let r=jc(),n=!1;if(r==="win32")try{e?(f.info(`Stopping simulator process (PID: ${e})...`),process.kill(e,"SIGTERM")):An("taskkill /F /IM dstack-simulator.exe",{stdio:"ignore"}),n=!0}catch(s){if(s.code!=="ESRCH")return f.error("Failed to stop simulator:",s),!1;n=!0}else try{e?(f.info(`Stopping simulator process (PID: ${e})...`),process.kill(e,"SIGTERM")):An("pkill -f dstack-simulator",{stdio:"ignore"}),n=!0}catch(s){if(s.code!=="ESRCH")return f.error("Failed to stop simulator:",s),!1;n=!0}let o=$g();if(ue.existsSync(o))try{ue.unlinkSync(o)}catch(s){f.warn("Failed to remove PID file:",s)}return await cs(),n&&f.success("Simulator stopped successfully"),n}catch(e){return f.error("Error stopping simulator:",e),!1}}function Rg(){let e=jc(),t=st.platforms[e];return e==="win32"?"http://127.0.0.1:8090":`${t.socketPath||"/tmp/dstack.sock"}`}async function Mg(e){try{let t=Rg(),r=e||t;await An(`export DSTACK_SIMULATOR_ENDPOINT=${r}`);let n=r.replace(/dstack\.sock$/,"tappd.sock");return await An(`export TAPPD_SIMULATOR_ENDPOINT=${n}`),f.success("Setting environment for current process..."),f.success(` DSTACK_SIMULATOR_ENDPOINT=${r}`),f.success(` TAPPD_SIMULATOR_ENDPOINT=${n}`),r}catch(t){throw f.error("Error setting simulator endpoint environment variable:",t),new Error(`Failed to set simulator endpoint: ${t}`)}}async function cs(){try{return await An("unset DSTACK_SIMULATOR_ENDPOINT"),await An("unset TAPPD_SIMULATOR_ENDPOINT"),f.debug("Deleted simulator endpoint environment variables from current process"),!0}catch(e){return f.warn("Error while unsetting simulator endpoint environment variables:",e),!1}}import fC from"inquirer";import{z as Mr}from"zod";var uC={name:"create",description:'Create a new CVM (use "phala deploy" instead)',stability:"deprecated",options:[{name:"name",shorthand:"n",description:"Name of the CVM",type:"string",target:"name"},{name:"compose",shorthand:"c",description:"Path to Docker Compose file",type:"string",target:"compose"},{name:"vcpu",description:`Virtual CPUs (default: ${Uc})`,type:"string",target:"vcpu"},{name:"memory",description:`Memory in MB (default: ${zc})`,type:"string",target:"memory"},{name:"disk-size",description:`Disk size in GB (default: ${is})`,type:"string",target:"diskSize"},{name:"teepod-id",description:"TEEPod ID (auto-selected if omitted)",type:"string",target:"teepodId"},{name:"image",description:"dstack image version (uses default if omitted)",type:"string",target:"image"},{name:"env-file",shorthand:"e",description:"Path to environment file",type:"string",target:"envFile"},{name:"skip-env",description:"Skip env var prompt",type:"boolean",target:"skipEnv"},{name:"debug",description:"Enable debug output",type:"boolean",target:"debug"}],examples:[{name:"Create a CVM interactively",value:"phala cvms create"},{name:"Create using predefined values",value:"phala cvms create --name demo --compose ./docker-compose.yml"}]},pC=Mr.object({name:Mr.string().optional(),compose:Mr.string().optional(),vcpu:Mr.string().optional(),memory:Mr.string().optional(),diskSize:Mr.string().optional(),teepodId:Mr.string().optional(),image:Mr.string().optional(),envFile:Mr.string().optional(),skipEnv:Mr.boolean().default(!1),debug:Mr.boolean().default(!1)});async function y4(e){if(e)return e;let{value:t}=await fC.prompt([{type:"input",name:"value",message:"Enter a name for the CVM:",validate:r=>{let n=r.trim();return n?n.length>20?"CVM name must be less than 20 characters":n.length<3?"CVM name must be at least 3 characters":/^[a-zA-Z0-9_-]+$/.test(n)?!0:"CVM name must contain only letters, numbers, underscores, and hyphens":"CVM name is required"}}]);return t.trim()}async function b4(e){if(e)return e;let r=fi(["docker-compose.yml","docker-compose.yaml"],"Detected docker compose file: {path}");return await Pn("Enter the path to your Docker Compose file:",r,"file")}async function x4(e){if(e.envFile)return Oc([],e.envFile);if(e.skipEnv)return f.info("Skipping environment variable prompt"),[];let{shouldSkip:t}=await fC.prompt([{type:"confirm",name:"shouldSkip",message:"Do you want to skip environment variable prompt?",default:!0}]);if(t)return f.info("Skipping environment variable prompt"),[];let r=await Pn("Enter the path to your environment file:",".env","file");return Oc([],r)}function Fg(e,t){if(!e)return t;let r=Number(e);return Number.isFinite(r)?r:t}function v4(e,t){return!Number.isFinite(t)||t<=0?`Invalid ${e}: ${t}`:null}async function w4(e,t){if(!t.nodes.length)return;if(!e)return t.nodes[0];let r=Number(e);return t.nodes.find(n=>n.teepod_id===r)}function C4(e,t){let r=e.images??[];return t?r.find(n=>n.name===t):r.find(n=>n.name===wg)}async function S4(e,t){try{f.warn('\u26A0\uFE0F This command is deprecated. Please use "phala deploy" instead.'),f.warn("\u26A0\uFE0F This legacy API will be maintained but may have limited support.\\n");let r=await y4(e.name),n=await b4(e.compose),o=h4.resolve(n);if(!lC.existsSync(o))return f.error(`Docker Compose file not found: ${o}`),1;let s=lC.readFileSync(o,"utf8");await cs(),process.env.DSTACK_DOCKER_USERNAME&&process.env.DSTACK_DOCKER_PASSWORD?f.info("\u{1F510} Using private DockerHub registry credentials..."):process.env.DSTACK_AWS_ACCESS_KEY_ID&&process.env.DSTACK_AWS_SECRET_ACCESS_KEY&&process.env.DSTACK_AWS_REGION&&process.env.DSTACK_AWS_ECR_REGISTRY?f.info(`\u{1F510} Using private AWS ECR registry: ${process.env.DSTACK_AWS_ECR_REGISTRY}`):f.info("\u{1F510} Using public DockerHub registry...");let a=[];try{a=await x4(e)}catch(E){return f.error(`Failed to read environment file: ${E instanceof Error?E.message:String(E)}`),1}let i=Fg(e.vcpu,Uc),c=Fg(e.memory,zc),m=Fg(e.diskSize,is);for(let[E,_]of[["number of vCPUs",i],["memory",c],["disk size",m]]){let I=v4(E,_);if(I)return f.error(I),1}let u=f.startSpinner("Fetching available TEEPods"),p=await Ww(!0);u.stop(!0);let l=await w4(e.teepodId,p);if(!l)return f.error("Failed to find suitable TEEPod"),1;let d=C4(l,e.image);if(!d)return f.error(e.image?`Failed to find selected image: ${e.image}`:`Failed to find default image ${wg}`),1;let g={teepod_id:l.teepod_id,name:r,image:d.name,vcpu:i,memory:c,disk_size:m,compose_manifest:{docker_compose_file:s,docker_config:{url:"",username:"",password:""},features:["kms","tproxy-net"],kms_enabled:!0,manifest_version:2,name:r,public_logs:!0,public_sysinfo:!0,runner:"docker-compose",tproxy_enabled:!0},listed:!1},h=f.startSpinner("Getting public key from CVM"),y=await Gw(g);if(h.stop(!0),!y)return f.error("Failed to get public key from CVM"),1;let b=f.startSpinner("Encrypting environment variables"),x=await(0,dr.encryptEnvVars)(a,y.app_env_encrypt_pubkey);b.stop(!0),e.debug&&(f.debug("Public key:",y.app_env_encrypt_pubkey),f.debug("Encrypted environment variables:",x),f.debug("Environment variables:",JSON.stringify(a)));let v=f.startSpinner("Creating CVM"),S=await qw({...g,encrypted_env:x,app_env_encrypt_pubkey:y.app_env_encrypt_pubkey,app_id_salt:y.app_id_salt});return v.stop(!0),S?(f.success("CVM created successfully"),f.break(),f.keyValueTable({"CVM ID":S.id,Name:S.name,Status:S.status,"App ID":`app_${S.app_id}`,"App URL":S.app_url||`${ze}/dashboard/cvms/app_${S.app_id}`},{borderStyle:"rounded"}),f.info(""),f.success(`Your CVM is being created. You can check its status with:
239
- phala cvms get app_${S.app_id}`),0):(f.error("Failed to create CVM"),1)}catch(r){return f.error(`Failed to create CVM: ${r instanceof Error?r.message:String(r)}`),1}}var dC=A({path:["cvms","create"],meta:uC,schema:pC,handler:S4});import k4 from"inquirer";import{z as Vc}from"zod";var gC={name:"delete",description:"Delete a CVM",stability:"unstable",arguments:[he],options:[re,{name:"force",shorthand:"f",description:"Skip confirmation prompt",type:"boolean",target:"force"},{name:"yes",shorthand:"y",description:"Alias for --force (skip confirmation prompt)",type:"boolean",target:"yes"}],examples:[{name:"Delete a CVM interactively",value:"phala cvms delete"},{name:"Delete CVM by app_id",value:"phala cvms delete app_123 --force"},{name:"Delete CVM by UUID",value:"phala cvms delete 550e8400-e29b-41d4-a716-446655440000 -f"},{name:"Delete CVM by name",value:"phala cvms delete my-app --yes"}]},hC=Vc.object({cvmId:Vc.string().optional(),interactive:Vc.boolean().default(!1),force:Vc.boolean().default(!1),yes:Vc.boolean().default(!1)});async function E4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=await $e(r,t.cvmId);if(!n.success)return t.fail(n.error.message),1;let o=n.data;if(!o)return t.fail("CVM not found"),1;let s=o.name||`app_${o.app_id}`;if(!e.force&&!e.yes){let{confirm:c}=await k4.prompt([{type:"confirm",name:"confirm",message:`Are you sure you want to delete CVM "${s}"? This action cannot be undone.`,default:!1}]);if(!c)return f.info("Deletion cancelled"),0}let a=f.startSpinner(`Deleting CVM ${s}`),i=await ng(r,t.cvmId);return a.stop(!0),i.success?(f.success(`CVM ${s} deleted successfully`),0):(f.error(`Failed to delete CVM ${s}: ${i.error.message}`),1)}catch(r){return f.error("Failed to delete CVM"),f.logDetailedError(r),1}}var yC=A({path:["cvms","delete"],meta:gC,schema:hC,handler:E4});import Ng from"chalk";import{z as tf}from"zod";var bC={name:"get",description:"Get details of a CVM",stability:"unstable",arguments:[he],options:[kt,re],examples:[{name:"Get CVM interactively",value:"phala cvms get"},{name:"By app_id",value:"phala cvms get app_abc123"},{name:"By UUID",value:"phala cvms get 550e8400-e29b-41d4-a716-446655440000"},{name:"By name",value:"phala cvms get my-app"}]},xC=tf.object({cvmId:tf.string().optional(),json:tf.boolean().default(!1),interactive:tf.boolean().default(!1)});async function _4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=f.startSpinner("Fetching CVM details"),n=await F(),o=await $e(n,t.cvmId);if(r.stop(!0),!o.success)return t.fail(o.error.message),1;let s=o.data;if(!s)return t.fail("CVM not found"),1;if(e.json)return t.success(s),0;f.break();let a=s.status==="running"?Ng.green(s.status):s.status==="stopped"?Ng.red(s.status):Ng.yellow(s.status);return f.keyValueTable({Name:s.name,"App ID":`app_${s.app_id}`,Status:a,vCPU:s.resource.vcpu,Memory:s.resource.memory_in_gb!=null?`${s.resource.memory_in_gb} GB`:"N/A","Disk Size":s.resource.disk_in_gb!=null?`${s.resource.disk_in_gb} GB`:"N/A","Dstack Image":s.os?.name,"App URL":`${ze}/dashboard/cvms/app_${s.app_id}`}),0}catch(r){return f.logDetailedError(r),t.fail(`Failed to get CVM details: ${r instanceof Error?r.message:String(r)}`),1}}var vC=A({path:["cvms","get"],meta:bC,schema:xC,handler:_4});import nf from"chalk";function I4(e,t){if(t<=0)return[Array.from(e)];let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}async function rf(e,t){let r=await Pw(e,{page:t.page,page_size:t.pageSize,search:t.search,status:t.status,listed:t.listed,base_image:t.baseImage,instance_type:t.instanceType,kms_type:t.kmsType,node:t.node,region:t.region});if(!r.success)return{success:!1,error:{message:r.error.message}};let n=r.data,s=(n.dstack_apps??[]).filter(m=>m.current_cvm&&typeof m.current_cvm=="object"&&"vm_uuid"in m.current_cvm&&!!m.current_cvm.vm_uuid),a=s.map(m=>m.current_cvm?.vm_uuid).filter(m=>typeof m=="string"&&m.length>0),i={};for(let m of I4(a,100)){let u=await _w(e,{vmUuids:m});if(!u.success)return{success:!1,error:{message:u.error.message}};for(let[p,l]of Object.entries(u.data))i[p]={status:l.status,uptime:l.uptime,in_progress:l.in_progress}}let c=[];for(let m of s){let u=m.current_cvm;if(!u?.vm_uuid)continue;let p=i[u.vm_uuid],l=p?p.status:typeof u.status=="string"?u.status:"unknown";c.push({appId:m.app_id,cvmName:u.name,status:l,uptime:p?.uptime})}return{success:!0,data:{page:n.page,pageSize:n.page_size,total:n.total,totalPages:n.total_pages,items:c}}}function Wt(e,t){let r={};for(let o of e){r[o]=o.length;for(let s of t)r[o]=Math.max(r[o],(s[o]??"").length)}let n=o=>e.map(s=>(o[s]??"").padEnd(r[s])).join(" ");console.log(n(Object.fromEntries(e.map(o=>[o,o]))));for(let o of t)console.log(n(o))}import{z as Jt}from"zod";var wC={name:"list",aliases:["ls"],description:"List CVMs",stability:"unstable",options:[{name:"page",description:"Page number (1-based)",type:"number",target:"page",group:"basic"},{name:"page-size",description:"Number of items per page",type:"number",target:"pageSize",group:"basic"},{name:"search",description:"Search by name, app_id, vm_uuid, or instance_id",type:"string",target:"search",group:"basic"},{name:"status",description:"Filter by CVM status (can be specified multiple times)",type:"string[]",target:"status",group:"basic"},{name:"listed",description:"Filter by listed status",type:"boolean",target:"listed",negatedName:"no-listed",group:"basic"},{name:"base-image",description:"Filter by base image name",type:"string",target:"baseImage",group:"basic"},{name:"instance-type",description:"Filter by instance type",type:"string",target:"instanceType",group:"basic"},{name:"kms-type",description:"Filter by KMS type",type:"string",target:"kmsType",group:"basic"},{name:"node",description:"Filter by node name",type:"string",target:"node",group:"basic"},{name:"region",description:"Filter by region identifier",type:"string",target:"region",group:"basic"},br],examples:[{name:"List CVMs",value:"phala cvms ls"},{name:"Second page",value:"phala cvms ls --page 2"},{name:"Search by name",value:"phala cvms ls --search my-cvm"},{name:"Filter by status",value:"phala cvms ls --status running"},{name:"Output as JSON",value:"phala cvms ls --json"}]},CC=Jt.object({page:Jt.coerce.number().int().min(1).default(1),pageSize:Jt.coerce.number().int().min(1).max(100).default(50),search:Jt.string().optional(),status:Jt.array(Jt.string()).optional(),listed:Jt.boolean().optional(),baseImage:Jt.string().optional(),instanceType:Jt.string().optional(),kmsType:Jt.string().optional(),node:Jt.string().optional(),region:Jt.string().optional(),json:Jt.boolean().default(!1)});function P4(e){return e.toLowerCase().endsWith("ing")?nf.yellow(e):e==="running"?nf.green(e):e==="stopped"?nf.red(e):nf.yellow(e)}async function A4(e,t){try{let r=await F(),n=await rf(r,{page:e.page,pageSize:e.pageSize,search:e.search,status:e.status,listed:e.listed,baseImage:e.baseImage,instanceType:e.instanceType,kmsType:e.kmsType,node:e.node,region:e.region});if(n.success===!1)return t.fail(n.error.message),1;let o=n.data;if(e.json)return t.success(o),0;let s=["APP_ID","CVM","STATUS","UPTIME"],a=o.items.map(i=>({APP_ID:i.appId,CVM:i.cvmName,STATUS:P4(i.status),UPTIME:i.uptime??"-"}));return a.length===0?(f.info("No CVMs found"),0):(Wt(s,a),f.info(`Page ${o.page}/${o.totalPages} (total ${o.total})`),0)}catch(r){return f.logDetailedError(r),t.fail(`Failed to list CVMs: ${r instanceof Error?r.message:String(r)}`),1}}var SC=A({path:["cvms","list"],meta:wC,schema:CC,handler:A4});import{z as T4}from"zod";var kC={name:"list-nodes",description:"List worker nodes",stability:"unstable"},EC=T4.object({});async function $4(e,t){try{let r=await F(),n=await V0(r);if(!n.success)throw new Error(n.error.message);let{nodes:o,kms_list:s}=n.data;if(!o||o.length===0)return f.info("No available nodes found."),0;f.info("Available Nodes:");for(let a of o)if(f.info("----------------------------------------"),f.info(` ID: ${a.teepod_id}`),f.info(` Name: ${a.name}`),f.info(` Region: ${a.region_identifier}`),f.info(` FMSPC: ${a.fmspc||"N/A"}`),f.info(` Device ID: ${a.device_id||"N/A"}`),f.info(` Support Onchain KMS: ${a.support_onchain_kms}`),f.info(" Images:"),a.images&&a.images.length>0)for(let i of a.images)f.info(` - ${i.name}`),f.info(` Hash: ${i.os_image_hash||"N/A"}`);else f.info(" N/A");if(s&&s.length>0){f.info(`
240
- Available KMS Instances:`);for(let a of s)f.info("----------------------------------------"),f.info(` ID: ${a.id}`),f.info(` URL: ${a.url}`),f.info(` Version: ${a.version}`),f.info(` Chain ID: ${a.chain_id}`),f.info(` Contract Address: ${a.kms_contract_address}`),f.info(` Gateway App ID: ${a.gateway_app_id}`)}return 0}catch(r){return f.error("Failed to list available nodes"),f.logDetailedError(r),1}}var _C=A({path:["cvms","list-nodes"],meta:kC,schema:EC,handler:$4});async function Gc(e){try{let t=await F(),r=await $e(t,{id:e});if(r.success&&r.data.public_logs===!1)return f.warn("Logs are disabled for this CVM (public_logs=false)."),f.warn("To enable logs, run:"),f.warn(` phala deploy --cvm-id ${e} --public-logs`),!0}catch(t){f.debug?.(`Failed to check CVM info: ${t}`)}return!1}function of(e,t){return async function(n,o){if(!o.cvmId)return o.fail("No CVM ID provided. Use --interactive to select interactively."),1;let{cvmId:s}=Q.parse(o.cvmId),a=t(n),i=e.logType==="serial"?"serial":"container";try{if(n.follow){if(n.json)return o.fail("Cannot use --json with --follow"),1;f.info(`Streaming ${i} logs (press Ctrl+C to stop)...`),f.break();let m=new AbortController,u=!1,p=()=>{u=!0,m.abort()};process.on("SIGINT",p),process.on("SIGTERM",p);try{await e.streamLogs(s,l=>process.stdout.write(l),a,m.signal)}catch(l){if(l.name!=="AbortError")throw l}finally{process.removeListener("SIGINT",p),process.removeListener("SIGTERM",p)}return u&&(f.break(),f.info("Stopped streaming logs")),0}let c=await e.fetchLogs(s,a);return n.json?(o.success({logs:c,cvm_id:s}),0):(c.trim()?console.log(c):await Gc(s)||f.info("No logs available"),0)}catch(c){return o.fail(`Failed to fetch ${i} logs: ${c instanceof Error?c.message:String(c)}`),await Gc(s),1}}}import{z as So}from"zod";var IC={name:"logs",description:"Fetch container logs from a CVM",stability:"deprecated",arguments:[he],options:[{name:"tail",shorthand:"n",description:"Lines from end",type:"number",target:"tail"},{name:"follow",shorthand:"f",description:"Stream logs in real-time",type:"boolean",target:"follow"},{name:"timestamps",shorthand:"t",description:"Show timestamps",type:"boolean",target:"timestamps"},{name:"container",shorthand:"c",description:"Container name or ID (defaults to first)",type:"string",target:"container"},kt,re],examples:[{name:"Show container logs from a CVM",value:"phala cvms logs app_abc123"},{name:"Show last 100 lines of logs",value:"phala cvms logs app_abc123 --tail 100"},{name:"Follow logs in real-time",value:"phala cvms logs app_abc123 --follow"},{name:"Show logs from a specific container",value:"phala cvms logs app_abc123 --container my-service"},{name:"Show logs with timestamps",value:"phala cvms logs app_abc123 --timestamps"}]},PC=So.object({cvmId:So.string().optional(),tail:So.number().optional(),follow:So.boolean().default(!1),timestamps:So.boolean().default(!1),container:So.string().optional(),json:So.boolean().default(!1),interactive:So.boolean().default(!1)});var R4=of({logType:"container",fetchLogs:Xw,streamLogs:r6},e=>({tail:e.tail,timestamps:e.timestamps,container:e.container})),AC=A({path:["cvms","logs"],meta:IC,schema:PC,handler:R4});import RC from"fs";import M4 from"path";import{z as qc}from"zod";var TC={name:"replicate",description:"Create a replica of an existing CVM",stability:"unstable",arguments:[he],options:[{name:"teepod-id",description:"TEEPod ID for replica",type:"string",target:"teepodId"},{name:"env-file",shorthand:"e",description:"Path to environment file",type:"string",target:"envFile"},re],examples:[{name:"Replicate a CVM",value:"phala cvms replicate 1234 --teepod-id 5"}]},$C=qc.object({cvmId:qc.string().optional(),teepodId:qc.string().optional(),envFile:qc.string().optional(),interactive:qc.boolean().default(!1)});function F4(e){return RC.readFileSync(e,"utf-8").split(`
241
- `).filter(r=>r.trim()!==""&&!r.trim().startsWith("#")).map(r=>{let[n,...o]=r.split("=");return{key:n.trim(),value:o.join("=").trim()}})}async function N4(e,t){try{if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;let{cvmId:r}=Q.parse(t.cvmId),n;if(e.envFile){let a=M4.resolve(process.cwd(),e.envFile);if(!RC.existsSync(a))throw new Error(`Environment file not found: ${a}`);let i=F4(a),c=await Ow(r);f.info("Encrypting environment variables..."),n=await(0,dr.encryptEnvVars)(i,c.env_pubkey)}let o={};e.teepodId&&(o.teepod_id=Number.parseInt(e.teepodId,10)),n&&(o.encrypted_env=n);let s=await Vw(r,o);return f.success(`Successfully created replica of CVM UUID: ${r} with App ID: ${s.app_id}`),f.keyValueTable({"CVM UUID":s.vm_uuid.replace(/-/g,""),"App ID":s.app_id,Name:s.name,Status:s.status,TEEPod:`${s.teepod.name} (ID: ${s.teepod_id})`,vCPUs:s.vcpu,Memory:`${s.memory} MB`,"Disk Size":`${s.disk_size} GB`,"App URL":s.app_url||`${process.env.CLOUD_URL||"https://cloud.phala.com"}/dashboard/cvms/${s.vm_uuid.replace(/-/g,"")}`},{borderStyle:"rounded"}),f.success(`Your CVM replica is being created. You can check its status with:
242
- phala cvms get ${s.app_id}`),0}catch(r){return f.error("Failed to create CVM replica"),f.logDetailedError(r),1}}var MC=A({path:["cvms","replicate"],meta:TC,schema:$C,handler:N4});import ko from"chalk";import Dg from"inquirer";async function Tn(e,t={}){let{maxRetries:r=100,retryDelayMs:n=3e3,spinner:o,logRetries:s=!0}=t,a;for(let c=0;c<=r;c++)try{return await e()}catch(m){a=m;let u=m;if((u.message?.includes("409")||u.status===409||u.message?.includes("Conflict"))&&c<r)o&&o.stop(!0),s&&f.warn(`CVM is busy, retrying in ${n}ms... (attempt ${c+1}/${r})`),await new Promise(l=>setTimeout(l,n));else throw m}let i=a;throw new Error(`Failed after ${r} retries due to conflicts: ${i?.message||String(a)}`)}import{z as $n}from"zod";var FC={name:"resize",description:"Resize resources for a CVM",stability:"unstable",arguments:[he],options:[re,{name:"vcpu",shorthand:"v",description:"Virtual CPUs",type:"string",target:"vcpu"},{name:"memory",shorthand:"m",description:"Memory in MB",type:"string",target:"memory"},{name:"disk-size",shorthand:"d",description:"Disk size in GB",type:"string",target:"diskSize"},{name:"allow-restart",shorthand:"r",description:"Allow CVM restart",type:"string",target:"allowRestart"},{name:"yes",shorthand:"y",description:"Skip confirmation",type:"boolean",target:"yes"},{name:"json",description:"Output in JSON format",type:"boolean",target:"json"}],examples:[{name:"Resize CVM interactively",value:"phala cvms resize"},{name:"Resize without confirmation",value:"phala cvms resize app_123 --vcpu 4 --memory 4096 --disk-size 120 --yes"}]},NC=$n.object({cvmId:$n.string().optional(),interactive:$n.boolean().default(!1),vcpu:$n.string().optional(),memory:$n.string().optional(),diskSize:$n.string().optional(),allowRestart:$n.string().optional(),yes:$n.boolean().default(!1),json:$n.boolean().default(!1)});function Lg(e,t){if(e===void 0)return;let r=Number.parseInt(e,10);if(Number.isNaN(r)||r<0)throw new Error(`Please provide a valid non-negative number for ${t}`);return r}function L4(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(["true","1","yes","y"].includes(t))return!0;if(["false","0","no","n"].includes(t))return!1;throw new Error(`Invalid value for --allow-restart: ${e}`)}async function Bg(e,t){return(await Dg.prompt([{type:"input",name:"value",message:e,default:t,validate:n=>{let o=Number.parseInt(n,10);return Number.isNaN(o)||o<0?"Please enter a valid non-negative number":!0},filter:n=>Number.parseInt(n,10)}])).value}async function B4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=await $e(r,t.cvmId);if(!n.success)return t.fail(n.error.message),1;let o=n.data;if(!o)return t.fail("CVM not found"),1;let s=o.app_id,a,i,c,m;try{a=Lg(e.vcpu,"--vcpu"),i=Lg(e.memory,"--memory"),c=Lg(e.diskSize,"--disk-size"),m=L4(e.allowRestart)}catch(u){return f.error(u instanceof Error?u.message:String(u)),1}if(Nf()?(a===void 0&&(a=await Bg("Enter number of vCPUs:",o.resource.vcpu??void 0)),i===void 0&&(i=await Bg("Enter memory in MB:",o.resource.memory_in_gb?o.resource.memory_in_gb*1024:void 0)),c===void 0&&(c=await Bg("Enter disk size in GB:",o.resource.disk_in_gb??void 0)),m===void 0&&(m=(await Dg.prompt([{type:"confirm",name:"allowRestart",message:"Allow restart of the CVM if needed for resizing?",default:!1}])).allowRestart)):(a===void 0&&(a=o.resource.vcpu??void 0),i===void 0&&(i=o.resource.memory_in_gb?o.resource.memory_in_gb*1024:void 0),c===void 0&&(c=o.resource.disk_in_gb??void 0),m===void 0&&(m=!0)),Nf()){let u=o.resource.vcpu,p=o.resource.memory_in_gb?o.resource.memory_in_gb*1024:void 0,l=o.resource.disk_in_gb;if(f.keyValueTable({vCPUs:u!==a?`${ko.red(u)} -> ${ko.green(a)}`:u,Memory:p!==i?`${ko.red(p)} MB -> ${ko.green(i)} MB`:p,"Disk Size":l!==c?`${ko.red(l)} GB -> ${ko.green(c)} GB`:l,"Allow Restart":m?ko.green("Yes"):ko.red("No")}),!e.yes){let{confirm:g}=await Dg.prompt([{type:"confirm",name:"confirm",message:`Are you sure you want to resize CVM app_${s}?`,default:!1}]);if(!g)return f.info("Resize operation cancelled"),0}let d=f.startSpinner(`Resizing CVM with App ID app_${s}`);await Tn(()=>gg(s,a,i,c,m?1:0),{spinner:d}),d.stop(!0),f.break(),f.success(`Your CVM is being resized. You can check the dashboard for more details:
243
- ${ze}/dashboard/cvms/app_${s}`)}else await Tn(()=>gg(s,a,i,c,m?1:0)),t.success({app_id:s,vcpu:a,memory:i,disk_size:c,allow_restart:m});return 0}catch(r){return f.error("Failed to resize CVM"),f.logDetailedError(r),t.fail(r instanceof Error?r.message:String(r)),1}}var LC=A({path:["cvms","resize"],meta:FC,schema:NC,handler:B4});async function sf(e,t=3e5){let r=await F(),n=Date.now(),o=2e3;for(f.info("Waiting for CVM to be ready...");Date.now()-n<t;){try{let s=await $e(r,{uuid:e});if(!s.success)f.warn(`Failed to get CVM info: ${s.error.message}`);else{let a=s.data,i=a.status,c=a.in_progress,m=Math.floor((Date.now()-n)/1e3);if(f.info(` [${m}s] status=${i}, in_progress=${c}`),i==="running"&&!c){let u=Math.floor((Date.now()-n)/1e3);f.success(`CVM is ready (took ${u}s)`);return}}}catch(s){f.warn(`Error checking CVM status: ${s}`)}await new Promise(s=>setTimeout(s,o))}throw new Error(`Timeout waiting for CVM to be ready (${Math.floor(t/1e3)}s)`)}import{z as Ug}from"zod";var BC={name:"restart",description:"Restart a CVM",stability:"stable",arguments:[he],options:[re],examples:[{name:"By app_id",value:"phala cvms restart app_123"},{name:"By UUID",value:"phala cvms restart 550e8400-e29b-41d4-a716-446655440000"},{name:"By name",value:"phala cvms restart my-app"}]},DC=Ug.object({cvmId:Ug.string().optional(),interactive:Ug.boolean().default(!1)});async function D4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=await $e(r,t.cvmId);if(!n.success)return t.fail(n.error.message),1;let o=n.data;o.progress?.target&&(f.warn("CVM is currently in progress (updating/restarting). Waiting for operation to complete..."),await sf(o.vm_uuid,3e5));let s=f.startSpinner("Restarting CVM"),a=t.cvmId,i=await Tn(()=>rg(r,a),{spinner:s});if(s.stop(!0),!i.success)return f.error(`Failed to restart CVM: ${i.error.message}`),1;let c=i.data;return f.break(),f.keyValueTable({"CVM ID":c.id,Name:c.name,Status:c.status,"App ID":`app_${c.app_id}`,"App URL":c.app_url||`${ze}/dashboard/cvms/app_${c.app_id}`},{borderStyle:"rounded"}),f.break(),f.success(`Your CVM is being restarted. You can check the dashboard for more details:
244
- ${ze}/dashboard/cvms/app_${c.app_id}`),0}catch(r){return f.error("Failed to restart CVM"),f.logDetailedError(r),1}}var UC=A({path:["cvms","restart"],meta:BC,schema:DC,handler:D4});import{z as ms}from"zod";var zC={name:"serial-logs",description:"Fetch VM serial console logs from a CVM",stability:"deprecated",arguments:[he],options:[{name:"tail",shorthand:"n",description:"Lines from end",type:"number",target:"tail"},{name:"follow",shorthand:"f",description:"Stream logs in real-time",type:"boolean",target:"follow"},{name:"timestamps",shorthand:"t",description:"Show timestamps",type:"boolean",target:"timestamps"},kt,re],examples:[{name:"Show VM serial logs",value:"phala cvms serial-logs app_abc123"},{name:"Show last 100 lines of serial logs",value:"phala cvms serial-logs app_abc123 --tail 100"},{name:"Follow serial logs in real-time",value:"phala cvms serial-logs app_abc123 --follow"},{name:"Show serial logs with timestamps",value:"phala cvms serial-logs app_abc123 --timestamps"}]},OC=ms.object({cvmId:ms.string().optional(),tail:ms.number().optional(),follow:ms.boolean().default(!1),timestamps:ms.boolean().default(!1),json:ms.boolean().default(!1),interactive:ms.boolean().default(!1)});var U4=of({logType:"serial",fetchLogs:Yw,streamLogs:t6},e=>({tail:e.tail,timestamps:e.timestamps})),jC=A({path:["cvms","serial-logs"],meta:zC,schema:OC,handler:U4});import{z as zg}from"zod";var HC={name:"start",description:"Start a stopped CVM",stability:"stable",arguments:[he],options:[re],examples:[{name:"Start CVM by app_id",value:"phala cvms start app_123"},{name:"Start CVM by UUID",value:"phala cvms start 550e8400-e29b-41d4-a716-446655440000"},{name:"Start CVM by name",value:"phala cvms start my-app"}]},VC=zg.object({cvmId:zg.string().optional(),interactive:zg.boolean().default(!1)});async function z4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=f.startSpinner("Starting CVM"),o=t.cvmId,s=await Tn(()=>eg(r,o),{spinner:n});if(n.stop(!0),!s.success)return f.error(`Failed to start CVM: ${s.error.message}`),1;let a=s.data;return f.break(),f.keyValueTable({"CVM ID":a.id,Name:a.name,Status:a.status,"App ID":`app_${a.app_id}`},{borderStyle:"rounded"}),f.break(),f.success(`Your CVM is being started. You can check the dashboard for more details:
245
- ${ze}/dashboard/cvms/app_${a.app_id}`),0}catch(r){return f.error("Failed to start CVM"),f.logDetailedError(r),1}}var GC=A({path:["cvms","start"],meta:HC,schema:VC,handler:z4});import{z as Og}from"zod";var qC={name:"stop",description:"Stop a running CVM",stability:"stable",arguments:[he],options:[re],examples:[{name:"Stop CVM by app_id",value:"phala cvms stop app_123"},{name:"Stop CVM by UUID",value:"phala cvms stop 550e8400-e29b-41d4-a716-446655440000"},{name:"Stop CVM by name",value:"phala cvms stop my-app"}]},KC=Og.object({cvmId:Og.string().optional(),interactive:Og.boolean().default(!1)});async function O4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=f.startSpinner("Stopping CVM"),o=t.cvmId,s=await Tn(()=>tg(r,o),{spinner:n});if(n.stop(!0),!s.success)return f.error(`Failed to stop CVM: ${s.error.message}`),1;let a=s.data;return f.break(),f.keyValueTable({"CVM ID":a.id,Name:a.name,Status:a.status,"App ID":`app_${a.app_id}`},{borderStyle:"rounded"}),f.break(),f.success(`Your CVM is being stopped. You can check the dashboard for more details:
246
- ${ze}/dashboard/cvms/app_${a.app_id}`),0}catch(r){return f.error("Failed to stop CVM"),f.logDetailedError(r),1}}var WC=A({path:["cvms","stop"],meta:qC,schema:KC,handler:O4});import j4 from"fs";import{z as di}from"zod";var JC={name:"upgrade",description:'Upgrade a CVM to a new version (use "phala deploy" instead)',stability:"deprecated",arguments:[he],options:[re,{name:"compose",shorthand:"c",description:"Path to Docker Compose file",type:"string",target:"compose"},{name:"env-file",shorthand:"e",description:"Path to environment file",type:"string",target:"envFile"},{name:"debug",description:"Enable debug output",type:"boolean",target:"debug"}],examples:[{name:"Upgrade a CVM interactively",value:"phala cvms upgrade"},{name:"Upgrade using a compose file",value:"phala cvms upgrade app_123 --compose ./docker-compose.yml"}]},ZC=di.object({cvmId:di.string().optional(),interactive:di.boolean().default(!1),compose:di.string().optional(),envFile:di.string().optional(),debug:di.boolean().default(!1)});async function H4(e){if(e.compose)return e.compose;let r=fi(["docker-compose.yml","docker-compose.yaml"],"Detected docker compose file: {path}");return Pn("Enter the path to your Docker Compose file:",r,"file")}async function V4(e,t){try{if(f.warn('\u26A0\uFE0F This command is deprecated. Please use "phala deploy" instead.'),f.warn(`\u26A0\uFE0F This legacy API will be maintained but may have limited support.
247
- `),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;let r=await F(),n=await $e(r,t.cvmId);if(!n.success)return t.fail(n.error.message),1;let o=n.data;if(!o)return t.fail("CVM not found"),1;let s=o.app_id,a=o,i=await H4(e),c="";if(i)try{c=j4.readFileSync(i,"utf8")}catch(g){return f.error(`Failed to read Docker Compose file: ${g instanceof Error?g.message:String(g)}`),1}await cs(),process.env.DSTACK_DOCKER_USERNAME&&process.env.DSTACK_DOCKER_PASSWORD?f.info("\u{1F510} Using private DockerHub registry credentials..."):process.env.DSTACK_AWS_ACCESS_KEY_ID&&process.env.DSTACK_AWS_SECRET_ACCESS_KEY&&process.env.DSTACK_AWS_REGION&&process.env.DSTACK_AWS_ECR_REGISTRY?f.info(`\u{1F510} Using private AWS ECR registry: ${process.env.DSTACK_AWS_ECR_REGISTRY}`):f.info("\u{1F510} Using public DockerHub registry...");let m,u=[];if(e.envFile)try{let g=Oc([],e.envFile);m=await(0,dr.encryptEnvVars)(g,a.kms_info?.encrypted_env_pubkey),u=g.map(h=>h.key)}catch(g){return f.error(`Failed to read environment file: ${g instanceof Error?g.message:String(g)}`),1}let p={compose_manifest:{docker_compose_file:c,manifest_version:1,runner:"docker-compose",version:"1.0.0",features:["kms","tproxy-net"],name:`app_${s}`,allowed_envs:u},encrypted_env:m,allow_restart:!0,env_keys:u},l=f.startSpinner(`Upgrading CVM app_${s}`),d=await Kw(s,p);return d?(l.stop(!0),d.detail&&f.info(`Details: ${d.detail}`),f.break(),f.success(`Your CVM is being upgraded. You can check the dashboard for more details:
248
- ${ze}/dashboard/cvms/app_${s}`),0):(l.stop(!1),f.error("Failed to upgrade CVM"),1)}catch(r){return f.error(`Failed to upgrade CVM: ${r instanceof Error?r.message:String(r)}`),e.debug&&f.error("Full Error:",r),1}}var YC=A({path:["cvms","upgrade"],meta:JC,schema:ZC,handler:V4});var jg={group:tC,commands:[oC,dC,yC,vC,SC,_C,AC,MC,LC,UC,jC,GC,WC,YC]};import{z as le}from"zod";var XC={name:"deploy",category:"deploy",description:"Deploy new CVM or update existing one",stability:"stable",arguments:[],options:[fs,mh,re,{name:"debug",description:"Enable debug logging",type:"boolean",target:"debug",group:"advanced"},{name:"name",shorthand:"n",description:"CVM name (defaults to directory name)",type:"string",target:"name",group:"basic"},{name:"compose",shorthand:"c",description:"Path to Docker Compose file (default: docker-compose.yml)",type:"string",target:"compose",group:"basic"},{name:"instance-type",shorthand:"t",description:"Instance type (e.g., tdx.small, auto-selected if omitted)",type:"string",target:"instanceType",group:"basic"},{name:"vcpu",description:"Use --instance-type instead",type:"string",target:"vcpu",deprecated:!0,group:"deprecated"},{name:"memory",description:"Use --instance-type instead",type:"string",target:"memory",deprecated:!0,group:"deprecated"},{name:"disk-size",description:`Disk size with unit (e.g., 50G, default: ${is}GB)`,type:"string",target:"diskSize",group:"advanced"},{name:"image",description:"OS image version (auto-selected if omitted)",type:"string",target:"image",group:"advanced"},{name:"region",shorthand:"r",description:"Preferred region (e.g., us-west, auto-selected if omitted)",type:"string",target:"region",group:"basic"},{name:"node-id",description:"Node ID (auto-selected if omitted)",type:"string",target:"nodeId",group:"advanced"},{name:"env",shorthand:"e",description:"Environment variable (KEY=VALUE) or env file path (repeatable)",type:"string[]",target:"env",group:"basic"},{name:"env-file",description:"Use -e instead",type:"string",target:"envFile",deprecated:!0,group:"deprecated"},{name:"kms",description:"KMS type: phala (default), ethereum/eth, or base",type:"string",target:"kms",group:"basic"},{name:"kms-id",description:"Use --kms instead",type:"string",target:"kmsId",deprecated:!0,group:"deprecated"},{name:"custom-app-id",description:"Custom App ID (requires --nonce for PHALA KMS)",type:"string",target:"customAppId",group:"advanced"},{name:"nonce",description:"Nonce for deterministic app_id (requires --custom-app-id, PHALA KMS only)",type:"string",target:"nonce",group:"advanced"},{name:"pre-launch-script",description:"Path to pre-launch script",type:"string",target:"preLaunchScript",group:"advanced"},{name:"private-key",description:"Private key for signing transactions.",type:"string",target:"privateKey",group:"advanced"},{name:"rpc-url",description:"RPC URL for the blockchain.",type:"string",target:"rpcUrl",group:"advanced"},{name:"wait",description:"Wait for deployment/update completion",type:"boolean",target:"wait",group:"basic"},{name:"ssh-pubkey",description:"SSH public key path (default: ~/.ssh/id_rsa.pub)",type:"string",target:"sshPubkey",group:"basic"},{name:"dev-os",description:"Use dev OS image (requires SSH key)",type:"boolean",target:"devOs",negatedName:"no-dev-os",group:"basic"},{name:"public-logs",description:"Make CVM logs publicly accessible (default: true)",type:"boolean",target:"publicLogs",negatedName:"no-public-logs"},{name:"public-sysinfo",description:"Make CVM system info publicly accessible (default: true)",type:"boolean",target:"publicSysinfo",negatedName:"no-public-sysinfo"},{name:"listed",description:"List CVM on the public Trust Center (default: false)",type:"boolean",target:"listed",negatedName:"no-listed"}],examples:[{name:"Deploy new CVM",value:"phala deploy"},{name:"Deploy with environment variables",value:"phala deploy -e NODE_ENV=production -e DEBUG=true"},{name:"Deploy with env file",value:"phala deploy -e .env"},{name:"Deploy with specific instance type",value:"phala deploy --instance-type tdx.medium"},{name:"Deploy to specific region",value:"phala deploy --region us-west"},{name:"Deploy with Ethereum KMS",value:"phala deploy --kms ethereum --private-key <key> --rpc-url <url>"},{name:"Update existing CVM by ID",value:"phala deploy --cvm-id app_abc123"},{name:"Update CVM with new compose file and env",value:"phala deploy --cvm-id my-app --compose ./new-docker-compose.yml -e .env"},{name:"Update CVM and wait for completion",value:"phala deploy --cvm-id app_abc123 --wait"},{name:"Update CVM from phala.toml",value:"phala deploy"},{name:"Deploy with logs and sysinfo disabled",value:"phala deploy --no-public-logs --no-public-sysinfo"},{name:"Deploy and list on Trust Center",value:"phala deploy --listed"},{name:"Update existing CVM to disable logs",value:"phala deploy --cvm-id app_123 --no-public-logs"}]},QC=le.object({compose:le.string().optional(),json:le.boolean().default(!1),debug:le.boolean().default(!1),apiToken:le.string().optional(),name:le.string().optional(),instanceType:le.string().optional(),vcpu:le.string().optional(),memory:le.string().optional(),diskSize:le.string().optional(),image:le.string().optional(),region:le.string().optional(),nodeId:le.string().optional(),env:le.array(le.string()).optional(),envFile:le.string().optional(),interactive:le.boolean().default(!1),kms:le.enum(["phala","ethereum","eth","base"]).default("phala"),kmsId:le.string().optional(),cvmId:le.string().optional(),customAppId:le.string().optional(),nonce:le.string().optional(),preLaunchScript:le.string().optional(),privateKey:le.string().optional(),rpcUrl:le.string().optional(),wait:le.boolean().default(!1),sshPubkey:le.string().optional(),devOs:le.boolean().optional(),publicLogs:le.boolean().optional(),publicSysinfo:le.boolean().optional(),listed:le.boolean().optional()});import Rn from"path";import s5 from"os";function G4(e){let t=e.indexOf("=");if(t===-1)return!1;let r=e.substring(0,t);return r.includes("/")||r.includes("\\")?!1:/^[A-Za-z_][A-Za-z0-9_]*$/.test(r)}function e5(e){let t={files:[],keyValues:[]};for(let r of e)if(G4(r)){let n=r.indexOf("="),o=r.substring(0,n),s=r.substring(n+1);t.keyValues.push({key:o,value:s})}else t.files.push(r);return t}function t5(e){let t=new Map;for(let r of e)t.set(r.key,r.value);return Array.from(t.entries()).map(([r,n])=>({key:r,value:n}))}function r5(e,t="B"){if(!e||typeof e!="string")throw new Error("Invalid input: must be a non-empty string");let r=e.trim().match(/^(\d+(?:\.\d+)?)\s*([KkMmGgTt][Bb]?)?$/);if(!r)throw new Error(`Invalid format: ${e}. Expected format: <number>[unit] (e.g., 2G, 500MB, 1T)`);let n=Number.parseFloat(r[1]),o=(r[2]||t).toUpperCase().replace("B",""),s={K:1024,M:1024*1024,G:1024*1024*1024,T:1024*1024*1024*1024,"":1};if(!(o in s))throw new Error(`Unsupported unit: ${o}. Supported units: B, K/KB, M/MB, G/GB, T/TB`);return Math.round(n*s[o])}function n5(e){let t=r5(e,"MB"),r=Math.round(t/(1024*1024));if(r%1024!==0)throw new Error(`Memory must be a multiple of 1GB (1024MB). Got: ${r}MB`);return r}function o5(e){let t=r5(e,"GB"),r=Math.round(t/(1024*1024*1024));if(r%1!==0)throw new Error(`Disk size must be a multiple of 1GB. Got: ${r}GB`);return r}import af from"dedent";import hr from"fs-extra";import cf from"inquirer";function q4(e,t){if(e instanceof Ec)return t.json?{success:!1,error_code:e.errorCode,message:e.message,details:e.structuredDetails,suggestions:e.suggestions,links:e.links}:Il(e);if(e&&typeof e=="object"&&"response"in e){let o=e.response?.data?.detail;if(o&&typeof o=="object"&&"error_code"in o){let{error_code:s,message:a,details:i,suggestions:c,links:m}=o;if(t.json)return{success:!1,error_code:s,message:a,details:i,suggestions:c,links:m};let u=`
238
+ `;ue.appendFileSync(a.logFilePath,u)}return c.pid&&v4(c.pid,e.verbose),a.background&&(c.unref(),e.verbose&&l.success("Simulator is running in the background")),await Mg(),c}catch(t){throw l.error("Error running simulator:",t),new Error(`Failed to run simulator: ${t}`)}}async function Hc(){try{let e=jc(),t=st.platforms[e];if(e==="darwin"||e==="linux"){let r=t.socketPath;return ue.existsSync(r)?new Promise(n=>{let o=Tg.createConnection({path:r}).on("connect",()=>{o.end(),n(!0)}).on("error",()=>{n(!1)});setTimeout(()=>{o.end(),n(!1)},1e3)}):!1}if(e==="win32"){let r="127.0.0.1";return new Promise(o=>{let s=Tg.createConnection({host:r,port:8090}).on("connect",()=>{s.end(),o(!0)}).on("error",()=>{o(!1)});setTimeout(()=>{s.end(),o(!1)},1e3)})}return!1}catch(e){return l.error("Error checking if simulator is running:",e),!1}}async function lC(){try{let e=ef();if(!await Hc()&&!e)return l.info("Simulator is not running"),!0;let r=jc(),n=!1;if(r==="win32")try{e?(l.info(`Stopping simulator process (PID: ${e})...`),process.kill(e,"SIGTERM")):An("taskkill /F /IM dstack-simulator.exe",{stdio:"ignore"}),n=!0}catch(s){if(s.code!=="ESRCH")return l.error("Failed to stop simulator:",s),!1;n=!0}else try{e?(l.info(`Stopping simulator process (PID: ${e})...`),process.kill(e,"SIGTERM")):An("pkill -f dstack-simulator",{stdio:"ignore"}),n=!0}catch(s){if(s.code!=="ESRCH")return l.error("Failed to stop simulator:",s),!1;n=!0}let o=$g();if(ue.existsSync(o))try{ue.unlinkSync(o)}catch(s){l.warn("Failed to remove PID file:",s)}return await ms(),n&&l.success("Simulator stopped successfully"),n}catch(e){return l.error("Error stopping simulator:",e),!1}}function Rg(){let e=jc(),t=st.platforms[e];return e==="win32"?"http://127.0.0.1:8090":`${t.socketPath||"/tmp/dstack.sock"}`}async function Mg(e){try{let t=Rg(),r=e||t;await An(`export DSTACK_SIMULATOR_ENDPOINT=${r}`);let n=r.replace(/dstack\.sock$/,"tappd.sock");return await An(`export TAPPD_SIMULATOR_ENDPOINT=${n}`),l.success("Setting environment for current process..."),l.success(` DSTACK_SIMULATOR_ENDPOINT=${r}`),l.success(` TAPPD_SIMULATOR_ENDPOINT=${n}`),r}catch(t){throw l.error("Error setting simulator endpoint environment variable:",t),new Error(`Failed to set simulator endpoint: ${t}`)}}async function ms(){try{return await An("unset DSTACK_SIMULATOR_ENDPOINT"),await An("unset TAPPD_SIMULATOR_ENDPOINT"),l.debug("Deleted simulator endpoint environment variables from current process"),!0}catch(e){return l.warn("Error while unsetting simulator endpoint environment variables:",e),!1}}import hC from"inquirer";import{z as Mr}from"zod";var fC={name:"create",description:'Create a new CVM (use "phala deploy" instead)',stability:"deprecated",options:[{name:"name",shorthand:"n",description:"Name of the CVM",type:"string",target:"name"},{name:"compose",shorthand:"c",description:"Path to Docker Compose file",type:"string",target:"compose"},{name:"vcpu",description:`Virtual CPUs (default: ${Uc})`,type:"string",target:"vcpu"},{name:"memory",description:`Memory in MB (default: ${zc})`,type:"string",target:"memory"},{name:"disk-size",description:`Disk size in GB (default: ${cs})`,type:"string",target:"diskSize"},{name:"teepod-id",description:"TEEPod ID (auto-selected if omitted)",type:"string",target:"teepodId"},{name:"image",description:"dstack image version (uses default if omitted)",type:"string",target:"image"},{name:"env-file",shorthand:"e",description:"Path to environment file",type:"string",target:"envFile"},{name:"skip-env",description:"Skip env var prompt",type:"boolean",target:"skipEnv"},{name:"debug",description:"Enable debug output",type:"boolean",target:"debug"}],examples:[{name:"Create a CVM interactively",value:"phala cvms create"},{name:"Create using predefined values",value:"phala cvms create --name demo --compose ./docker-compose.yml"}]},dC=Mr.object({name:Mr.string().optional(),compose:Mr.string().optional(),vcpu:Mr.string().optional(),memory:Mr.string().optional(),diskSize:Mr.string().optional(),teepodId:Mr.string().optional(),image:Mr.string().optional(),envFile:Mr.string().optional(),skipEnv:Mr.boolean().default(!1),debug:Mr.boolean().default(!1)});async function C4(e){if(e)return e;let{value:t}=await hC.prompt([{type:"input",name:"value",message:"Enter a name for the CVM:",validate:r=>{let n=r.trim();return n?n.length>20?"CVM name must be less than 20 characters":n.length<3?"CVM name must be at least 3 characters":/^[a-zA-Z0-9_-]+$/.test(n)?!0:"CVM name must contain only letters, numbers, underscores, and hyphens":"CVM name is required"}}]);return t.trim()}async function S4(e){if(e)return e;let r=fi(["docker-compose.yml","docker-compose.yaml"],"Detected docker compose file: {path}");return await Pn("Enter the path to your Docker Compose file:",r,"file")}async function k4(e){if(e.envFile)return Oc([],e.envFile);if(e.skipEnv)return l.info("Skipping environment variable prompt"),[];let{shouldSkip:t}=await hC.prompt([{type:"confirm",name:"shouldSkip",message:"Do you want to skip environment variable prompt?",default:!0}]);if(t)return l.info("Skipping environment variable prompt"),[];let r=await Pn("Enter the path to your environment file:",".env","file");return Oc([],r)}function Fg(e,t){if(!e)return t;let r=Number(e);return Number.isFinite(r)?r:t}function E4(e,t){return!Number.isFinite(t)||t<=0?`Invalid ${e}: ${t}`:null}async function _4(e,t){if(!t.nodes.length)return;if(!e)return t.nodes[0];let r=Number(e);return t.nodes.find(n=>n.teepod_id===r)}function I4(e,t){let r=e.images??[];return t?r.find(n=>n.name===t):r.find(n=>n.name===wg)}async function P4(e,t){try{l.warn('\u26A0\uFE0F This command is deprecated. Please use "phala deploy" instead.'),l.warn("\u26A0\uFE0F This legacy API will be maintained but may have limited support.\\n");let r=await C4(e.name),n=await S4(e.compose),o=w4.resolve(n);if(!gC.existsSync(o))return l.error(`Docker Compose file not found: ${o}`),1;let s=gC.readFileSync(o,"utf8");await ms(),process.env.DSTACK_DOCKER_USERNAME&&process.env.DSTACK_DOCKER_PASSWORD?l.info("\u{1F510} Using private DockerHub registry credentials..."):process.env.DSTACK_AWS_ACCESS_KEY_ID&&process.env.DSTACK_AWS_SECRET_ACCESS_KEY&&process.env.DSTACK_AWS_REGION&&process.env.DSTACK_AWS_ECR_REGISTRY?l.info(`\u{1F510} Using private AWS ECR registry: ${process.env.DSTACK_AWS_ECR_REGISTRY}`):l.info("\u{1F510} Using public DockerHub registry...");let a=[];try{a=await k4(e)}catch(k){return l.error(`Failed to read environment file: ${k instanceof Error?k.message:String(k)}`),1}let i=Fg(e.vcpu,Uc),c=Fg(e.memory,zc),m=Fg(e.diskSize,cs);for(let[k,_]of[["number of vCPUs",i],["memory",c],["disk size",m]]){let I=E4(k,_);if(I)return l.error(I),1}let u=l.startSpinner("Fetching available TEEPods"),p=await Jw(!0);u.stop(!0);let f=await _4(e.teepodId,p);if(!f)return l.error("Failed to find suitable TEEPod"),1;let d=I4(f,e.image);if(!d)return l.error(e.image?`Failed to find selected image: ${e.image}`:`Failed to find default image ${wg}`),1;let g={teepod_id:f.teepod_id,name:r,image:d.name,vcpu:i,memory:c,disk_size:m,compose_manifest:{docker_compose_file:s,docker_config:{url:"",username:"",password:""},features:["kms","tproxy-net"],kms_enabled:!0,manifest_version:2,name:r,public_logs:!0,public_sysinfo:!0,runner:"docker-compose",tproxy_enabled:!0},listed:!1},h=l.startSpinner("Getting public key from CVM"),y=await qw(g);if(h.stop(!0),!y)return l.error("Failed to get public key from CVM"),1;let b=l.startSpinner("Encrypting environment variables"),x=await(0,dr.encryptEnvVars)(a,y.app_env_encrypt_pubkey);b.stop(!0),e.debug&&(l.debug("Public key:",y.app_env_encrypt_pubkey),l.debug("Encrypted environment variables:",x),l.debug("Environment variables:",JSON.stringify(a)));let v=l.startSpinner("Creating CVM"),S=await Kw({...g,encrypted_env:x,app_env_encrypt_pubkey:y.app_env_encrypt_pubkey,app_id_salt:y.app_id_salt});return v.stop(!0),S?(l.success("CVM created successfully"),l.break(),l.keyValueTable({"CVM ID":S.id,Name:S.name,Status:S.status,"App ID":`app_${S.app_id}`,"App URL":S.app_url||`${ze}/dashboard/cvms/app_${S.app_id}`},{borderStyle:"rounded"}),l.info(""),l.success(`Your CVM is being created. You can check its status with:
239
+ phala cvms get app_${S.app_id}`),0):(l.error("Failed to create CVM"),1)}catch(r){return l.error(`Failed to create CVM: ${r instanceof Error?r.message:String(r)}`),1}}var yC=A({path:["cvms","create"],meta:fC,schema:dC,handler:P4});import A4 from"inquirer";import{z as Vc}from"zod";var bC={name:"delete",description:"Delete a CVM",stability:"unstable",arguments:[he],options:[re,{name:"force",shorthand:"f",description:"Skip confirmation prompt",type:"boolean",target:"force"},{name:"yes",shorthand:"y",description:"Alias for --force (skip confirmation prompt)",type:"boolean",target:"yes"}],examples:[{name:"Delete a CVM interactively",value:"phala cvms delete"},{name:"Delete CVM by app_id",value:"phala cvms delete app_123 --force"},{name:"Delete CVM by UUID",value:"phala cvms delete 550e8400-e29b-41d4-a716-446655440000 -f"},{name:"Delete CVM by name",value:"phala cvms delete my-app --yes"}]},xC=Vc.object({cvmId:Vc.string().optional(),interactive:Vc.boolean().default(!1),force:Vc.boolean().default(!1),yes:Vc.boolean().default(!1)});async function T4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=await $e(r,t.cvmId);if(!n.success)return t.fail(n.error.message),1;let o=n.data;if(!o)return t.fail("CVM not found"),1;let s=o.name||`app_${o.app_id}`;if(!e.force&&!e.yes){let{confirm:c}=await A4.prompt([{type:"confirm",name:"confirm",message:`Are you sure you want to delete CVM "${s}"? This action cannot be undone.`,default:!1}]);if(!c)return l.info("Deletion cancelled"),0}let a=l.startSpinner(`Deleting CVM ${s}`),i=await ng(r,t.cvmId);return a.stop(!0),i.success?(l.success(`CVM ${s} deleted successfully`),0):(l.error(`Failed to delete CVM ${s}: ${i.error.message}`),1)}catch(r){return l.error("Failed to delete CVM"),l.logDetailedError(r),1}}var vC=A({path:["cvms","delete"],meta:bC,schema:xC,handler:T4});import Ng from"chalk";import{z as tf}from"zod";var wC={name:"get",description:"Get details of a CVM",stability:"unstable",arguments:[he],options:[kt,re],examples:[{name:"Get CVM interactively",value:"phala cvms get"},{name:"By app_id",value:"phala cvms get app_abc123"},{name:"By UUID",value:"phala cvms get 550e8400-e29b-41d4-a716-446655440000"},{name:"By name",value:"phala cvms get my-app"}]},CC=tf.object({cvmId:tf.string().optional(),json:tf.boolean().default(!1),interactive:tf.boolean().default(!1)});async function $4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=l.startSpinner("Fetching CVM details"),n=await F(),o=await $e(n,t.cvmId);if(r.stop(!0),!o.success)return t.fail(o.error.message),1;let s=o.data;if(!s)return t.fail("CVM not found"),1;if(e.json)return t.success(s),0;l.break();let a=s.status==="running"?Ng.green(s.status):s.status==="stopped"?Ng.red(s.status):Ng.yellow(s.status);return l.keyValueTable({Name:s.name,"App ID":`app_${s.app_id}`,Status:a,vCPU:s.resource.vcpu,Memory:s.resource.memory_in_gb!=null?`${s.resource.memory_in_gb} GB`:"N/A","Disk Size":s.resource.disk_in_gb!=null?`${s.resource.disk_in_gb} GB`:"N/A","Dstack Image":s.os?.name,"App URL":`${ze}/dashboard/cvms/app_${s.app_id}`}),0}catch(r){return l.logDetailedError(r),t.fail(`Failed to get CVM details: ${r instanceof Error?r.message:String(r)}`),1}}var SC=A({path:["cvms","get"],meta:wC,schema:CC,handler:$4});import nf from"chalk";function R4(e,t){if(t<=0)return[Array.from(e)];let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}async function rf(e,t){let r=await Aw(e,{page:t.page,page_size:t.pageSize,search:t.search,status:t.status,listed:t.listed,base_image:t.baseImage,instance_type:t.instanceType,kms_type:t.kmsType,node:t.node,region:t.region});if(!r.success)return{success:!1,error:{message:r.error.message}};let n=r.data,s=(n.dstack_apps??[]).filter(m=>m.current_cvm&&typeof m.current_cvm=="object"&&"vm_uuid"in m.current_cvm&&!!m.current_cvm.vm_uuid),a=s.map(m=>m.current_cvm?.vm_uuid).filter(m=>typeof m=="string"&&m.length>0),i={};for(let m of R4(a,100)){let u=await Iw(e,{vmUuids:m});if(!u.success)return{success:!1,error:{message:u.error.message}};for(let[p,f]of Object.entries(u.data))i[p]={status:f.status,uptime:f.uptime,in_progress:f.in_progress}}let c=[];for(let m of s){let u=m.current_cvm;if(!u?.vm_uuid)continue;let p=i[u.vm_uuid],f=p?p.status:typeof u.status=="string"?u.status:"unknown";c.push({appId:m.app_id,cvmName:u.name,status:f,uptime:p?.uptime})}return{success:!0,data:{page:n.page,pageSize:n.page_size,total:n.total,totalPages:n.total_pages,items:c}}}function Wt(e,t){let r={};for(let o of e){r[o]=o.length;for(let s of t)r[o]=Math.max(r[o],(s[o]??"").length)}let n=o=>e.map(s=>(o[s]??"").padEnd(r[s])).join(" ");console.log(n(Object.fromEntries(e.map(o=>[o,o]))));for(let o of t)console.log(n(o))}import{z as Jt}from"zod";var kC={name:"list",aliases:["ls"],description:"List CVMs",stability:"unstable",options:[{name:"page",description:"Page number (1-based)",type:"number",target:"page",group:"basic"},{name:"page-size",description:"Number of items per page",type:"number",target:"pageSize",group:"basic"},{name:"search",description:"Search by name, app_id, vm_uuid, or instance_id",type:"string",target:"search",group:"basic"},{name:"status",description:"Filter by CVM status (can be specified multiple times)",type:"string[]",target:"status",group:"basic"},{name:"listed",description:"Filter by listed status",type:"boolean",target:"listed",negatedName:"no-listed",group:"basic"},{name:"base-image",description:"Filter by base image name",type:"string",target:"baseImage",group:"basic"},{name:"instance-type",description:"Filter by instance type",type:"string",target:"instanceType",group:"basic"},{name:"kms-type",description:"Filter by KMS type",type:"string",target:"kmsType",group:"basic"},{name:"node",description:"Filter by node name",type:"string",target:"node",group:"basic"},{name:"region",description:"Filter by region identifier",type:"string",target:"region",group:"basic"},br],examples:[{name:"List CVMs",value:"phala cvms ls"},{name:"Second page",value:"phala cvms ls --page 2"},{name:"Search by name",value:"phala cvms ls --search my-cvm"},{name:"Filter by status",value:"phala cvms ls --status running"},{name:"Output as JSON",value:"phala cvms ls --json"}]},EC=Jt.object({page:Jt.coerce.number().int().min(1).default(1),pageSize:Jt.coerce.number().int().min(1).max(100).default(50),search:Jt.string().optional(),status:Jt.array(Jt.string()).optional(),listed:Jt.boolean().optional(),baseImage:Jt.string().optional(),instanceType:Jt.string().optional(),kmsType:Jt.string().optional(),node:Jt.string().optional(),region:Jt.string().optional(),json:Jt.boolean().default(!1)});function M4(e){return e.toLowerCase().endsWith("ing")?nf.yellow(e):e==="running"?nf.green(e):e==="stopped"?nf.red(e):nf.yellow(e)}async function F4(e,t){try{let r=await F(),n=await rf(r,{page:e.page,pageSize:e.pageSize,search:e.search,status:e.status,listed:e.listed,baseImage:e.baseImage,instanceType:e.instanceType,kmsType:e.kmsType,node:e.node,region:e.region});if(n.success===!1)return t.fail(n.error.message),1;let o=n.data;if(e.json)return t.success(o),0;let s=["APP_ID","CVM","STATUS","UPTIME"],a=o.items.map(i=>({APP_ID:i.appId,CVM:i.cvmName,STATUS:M4(i.status),UPTIME:i.uptime??"-"}));return a.length===0?(l.info("No CVMs found"),0):(Wt(s,a),l.info(`Page ${o.page}/${o.totalPages} (total ${o.total})`),0)}catch(r){return l.logDetailedError(r),t.fail(`Failed to list CVMs: ${r instanceof Error?r.message:String(r)}`),1}}var _C=A({path:["cvms","list"],meta:kC,schema:EC,handler:F4});import{z as N4}from"zod";var IC={name:"list-nodes",description:"List worker nodes",stability:"unstable"},PC=N4.object({});async function L4(e,t){try{let r=await F(),n=await V0(r);if(!n.success)throw new Error(n.error.message);let{nodes:o,kms_list:s}=n.data;if(!o||o.length===0)return l.info("No available nodes found."),0;l.info("Available Nodes:");for(let a of o)if(l.info("----------------------------------------"),l.info(` ID: ${a.teepod_id}`),l.info(` Name: ${a.name}`),l.info(` Region: ${a.region_identifier}`),l.info(` FMSPC: ${a.fmspc||"N/A"}`),l.info(` Device ID: ${a.device_id||"N/A"}`),l.info(` Support Onchain KMS: ${a.support_onchain_kms}`),l.info(" Images:"),a.images&&a.images.length>0)for(let i of a.images)l.info(` - ${i.name}`),l.info(` Hash: ${i.os_image_hash||"N/A"}`);else l.info(" N/A");if(s&&s.length>0){l.info(`
240
+ Available KMS Instances:`);for(let a of s)l.info("----------------------------------------"),l.info(` ID: ${a.id}`),l.info(` URL: ${a.url}`),l.info(` Version: ${a.version}`),l.info(` Chain ID: ${a.chain_id}`),l.info(` Contract Address: ${a.kms_contract_address}`),l.info(` Gateway App ID: ${a.gateway_app_id}`)}return 0}catch(r){return l.error("Failed to list available nodes"),l.logDetailedError(r),1}}var AC=A({path:["cvms","list-nodes"],meta:IC,schema:PC,handler:L4});async function Gc(e){try{let t=await F(),r=await $e(t,{id:e});if(r.success&&r.data.public_logs===!1)return l.warn("Logs are disabled for this CVM (public_logs=false)."),l.warn("To enable logs, run:"),l.warn(` phala deploy --cvm-id ${e} --public-logs`),!0}catch(t){l.debug?.(`Failed to check CVM info: ${t}`)}return!1}function of(e,t){return async function(n,o){if(!o.cvmId)return o.fail("No CVM ID provided. Use --interactive to select interactively."),1;let{cvmId:s}=Q.parse(o.cvmId),a=t(n),i=e.logType==="serial"?"serial":"container";try{if(n.follow){if(n.json)return o.fail("Cannot use --json with --follow"),1;l.info(`Streaming ${i} logs (press Ctrl+C to stop)...`),l.break();let m=new AbortController,u=!1,p=()=>{u=!0,m.abort()};process.on("SIGINT",p),process.on("SIGTERM",p);try{await e.streamLogs(s,f=>process.stdout.write(f),a,m.signal)}catch(f){if(f.name!=="AbortError")throw f}finally{process.removeListener("SIGINT",p),process.removeListener("SIGTERM",p)}return u&&(l.break(),l.info("Stopped streaming logs")),0}let c=await e.fetchLogs(s,a);return n.json?(o.success({logs:c,cvm_id:s}),0):(c.trim()?console.log(c):await Gc(s)||l.info("No logs available"),0)}catch(c){return o.fail(`Failed to fetch ${i} logs: ${c instanceof Error?c.message:String(c)}`),await Gc(s),1}}}import{z as Eo}from"zod";var TC={name:"logs",description:"Fetch container logs from a CVM",stability:"deprecated",arguments:[he],options:[{name:"tail",shorthand:"n",description:"Lines from end",type:"number",target:"tail"},{name:"follow",shorthand:"f",description:"Stream logs in real-time",type:"boolean",target:"follow"},{name:"timestamps",shorthand:"t",description:"Show timestamps",type:"boolean",target:"timestamps"},{name:"container",shorthand:"c",description:"Container name or ID (defaults to first)",type:"string",target:"container"},kt,re],examples:[{name:"Show container logs from a CVM",value:"phala cvms logs app_abc123"},{name:"Show last 100 lines of logs",value:"phala cvms logs app_abc123 --tail 100"},{name:"Follow logs in real-time",value:"phala cvms logs app_abc123 --follow"},{name:"Show logs from a specific container",value:"phala cvms logs app_abc123 --container my-service"},{name:"Show logs with timestamps",value:"phala cvms logs app_abc123 --timestamps"}]},$C=Eo.object({cvmId:Eo.string().optional(),tail:Eo.number().optional(),follow:Eo.boolean().default(!1),timestamps:Eo.boolean().default(!1),container:Eo.string().optional(),json:Eo.boolean().default(!1),interactive:Eo.boolean().default(!1)});var B4=of({logType:"container",fetchLogs:Qw,streamLogs:n6},e=>({tail:e.tail,timestamps:e.timestamps,container:e.container})),RC=A({path:["cvms","logs"],meta:TC,schema:$C,handler:B4});import NC from"fs";import D4 from"path";import{z as qc}from"zod";var MC={name:"replicate",description:"Create a replica of an existing CVM",stability:"unstable",arguments:[he],options:[{name:"teepod-id",description:"TEEPod ID for replica",type:"string",target:"teepodId"},{name:"env-file",shorthand:"e",description:"Path to environment file",type:"string",target:"envFile"},re],examples:[{name:"Replicate a CVM",value:"phala cvms replicate 1234 --teepod-id 5"}]},FC=qc.object({cvmId:qc.string().optional(),teepodId:qc.string().optional(),envFile:qc.string().optional(),interactive:qc.boolean().default(!1)});function U4(e){return NC.readFileSync(e,"utf-8").split(`
241
+ `).filter(r=>r.trim()!==""&&!r.trim().startsWith("#")).map(r=>{let[n,...o]=r.split("=");return{key:n.trim(),value:o.join("=").trim()}})}async function z4(e,t){try{if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;let{cvmId:r}=Q.parse(t.cvmId),n;if(e.envFile){let a=D4.resolve(process.cwd(),e.envFile);if(!NC.existsSync(a))throw new Error(`Environment file not found: ${a}`);let i=U4(a),c=await jw(r);l.info("Encrypting environment variables..."),n=await(0,dr.encryptEnvVars)(i,c.env_pubkey)}let o={};e.teepodId&&(o.teepod_id=Number.parseInt(e.teepodId,10)),n&&(o.encrypted_env=n);let s=await Gw(r,o);return l.success(`Successfully created replica of CVM UUID: ${r} with App ID: ${s.app_id}`),l.keyValueTable({"CVM UUID":s.vm_uuid.replace(/-/g,""),"App ID":s.app_id,Name:s.name,Status:s.status,TEEPod:`${s.teepod.name} (ID: ${s.teepod_id})`,vCPUs:s.vcpu,Memory:`${s.memory} MB`,"Disk Size":`${s.disk_size} GB`,"App URL":s.app_url||`${process.env.CLOUD_URL||"https://cloud.phala.com"}/dashboard/cvms/${s.vm_uuid.replace(/-/g,"")}`},{borderStyle:"rounded"}),l.success(`Your CVM replica is being created. You can check its status with:
242
+ phala cvms get ${s.app_id}`),0}catch(r){return l.error("Failed to create CVM replica"),l.logDetailedError(r),1}}var LC=A({path:["cvms","replicate"],meta:MC,schema:FC,handler:z4});import _o from"chalk";import Dg from"inquirer";async function Tn(e,t={}){let{maxRetries:r=100,retryDelayMs:n=3e3,spinner:o,logRetries:s=!0}=t,a;for(let c=0;c<=r;c++)try{return await e()}catch(m){a=m;let u=m;if((u.message?.includes("409")||u.status===409||u.message?.includes("Conflict"))&&c<r)o&&o.stop(!0),s&&l.warn(`CVM is busy, retrying in ${n}ms... (attempt ${c+1}/${r})`),await new Promise(f=>setTimeout(f,n));else throw m}let i=a;throw new Error(`Failed after ${r} retries due to conflicts: ${i?.message||String(a)}`)}import{z as $n}from"zod";var BC={name:"resize",description:"Resize resources for a CVM",stability:"unstable",arguments:[he],options:[re,{name:"vcpu",shorthand:"v",description:"Virtual CPUs",type:"string",target:"vcpu"},{name:"memory",shorthand:"m",description:"Memory in MB",type:"string",target:"memory"},{name:"disk-size",shorthand:"d",description:"Disk size in GB",type:"string",target:"diskSize"},{name:"allow-restart",shorthand:"r",description:"Allow CVM restart",type:"string",target:"allowRestart"},{name:"yes",shorthand:"y",description:"Skip confirmation",type:"boolean",target:"yes"},{name:"json",description:"Output in JSON format",type:"boolean",target:"json"}],examples:[{name:"Resize CVM interactively",value:"phala cvms resize"},{name:"Resize without confirmation",value:"phala cvms resize app_123 --vcpu 4 --memory 4096 --disk-size 120 --yes"}]},DC=$n.object({cvmId:$n.string().optional(),interactive:$n.boolean().default(!1),vcpu:$n.string().optional(),memory:$n.string().optional(),diskSize:$n.string().optional(),allowRestart:$n.string().optional(),yes:$n.boolean().default(!1),json:$n.boolean().default(!1)});function Lg(e,t){if(e===void 0)return;let r=Number.parseInt(e,10);if(Number.isNaN(r)||r<0)throw new Error(`Please provide a valid non-negative number for ${t}`);return r}function O4(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(["true","1","yes","y"].includes(t))return!0;if(["false","0","no","n"].includes(t))return!1;throw new Error(`Invalid value for --allow-restart: ${e}`)}async function Bg(e,t){return(await Dg.prompt([{type:"input",name:"value",message:e,default:t,validate:n=>{let o=Number.parseInt(n,10);return Number.isNaN(o)||o<0?"Please enter a valid non-negative number":!0},filter:n=>Number.parseInt(n,10)}])).value}async function j4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=await $e(r,t.cvmId);if(!n.success)return t.fail(n.error.message),1;let o=n.data;if(!o)return t.fail("CVM not found"),1;let s=o.app_id,a,i,c,m;try{a=Lg(e.vcpu,"--vcpu"),i=Lg(e.memory,"--memory"),c=Lg(e.diskSize,"--disk-size"),m=O4(e.allowRestart)}catch(u){return l.error(u instanceof Error?u.message:String(u)),1}if(Nf()?(a===void 0&&(a=await Bg("Enter number of vCPUs:",o.resource.vcpu??void 0)),i===void 0&&(i=await Bg("Enter memory in MB:",o.resource.memory_in_gb?o.resource.memory_in_gb*1024:void 0)),c===void 0&&(c=await Bg("Enter disk size in GB:",o.resource.disk_in_gb??void 0)),m===void 0&&(m=(await Dg.prompt([{type:"confirm",name:"allowRestart",message:"Allow restart of the CVM if needed for resizing?",default:!1}])).allowRestart)):(a===void 0&&(a=o.resource.vcpu??void 0),i===void 0&&(i=o.resource.memory_in_gb?o.resource.memory_in_gb*1024:void 0),c===void 0&&(c=o.resource.disk_in_gb??void 0),m===void 0&&(m=!0)),Nf()){let u=o.resource.vcpu,p=o.resource.memory_in_gb?o.resource.memory_in_gb*1024:void 0,f=o.resource.disk_in_gb;if(l.keyValueTable({vCPUs:u!==a?`${_o.red(u)} -> ${_o.green(a)}`:u,Memory:p!==i?`${_o.red(p)} MB -> ${_o.green(i)} MB`:p,"Disk Size":f!==c?`${_o.red(f)} GB -> ${_o.green(c)} GB`:f,"Allow Restart":m?_o.green("Yes"):_o.red("No")}),!e.yes){let{confirm:g}=await Dg.prompt([{type:"confirm",name:"confirm",message:`Are you sure you want to resize CVM app_${s}?`,default:!1}]);if(!g)return l.info("Resize operation cancelled"),0}let d=l.startSpinner(`Resizing CVM with App ID app_${s}`);await Tn(()=>gg(s,a,i,c,m?1:0),{spinner:d}),d.stop(!0),l.break(),l.success(`Your CVM is being resized. You can check the dashboard for more details:
243
+ ${ze}/dashboard/cvms/app_${s}`)}else await Tn(()=>gg(s,a,i,c,m?1:0)),t.success({app_id:s,vcpu:a,memory:i,disk_size:c,allow_restart:m});return 0}catch(r){return l.error("Failed to resize CVM"),l.logDetailedError(r),t.fail(r instanceof Error?r.message:String(r)),1}}var UC=A({path:["cvms","resize"],meta:BC,schema:DC,handler:j4});async function sf(e,t=3e5){let r=await F(),n=Date.now(),o=2e3;for(l.info("Waiting for CVM to be ready...");Date.now()-n<t;){try{let s=await $e(r,{id:e});if(!s.success)l.warn(`Failed to get CVM info: ${s.error.message}`);else{let a=s.data,i=a.status,c=a.in_progress,m=Math.floor((Date.now()-n)/1e3);if(l.info(` [${m}s] status=${i}, in_progress=${c}`),i==="running"&&!c){let u=Math.floor((Date.now()-n)/1e3);l.success(`CVM is ready (took ${u}s)`);return}}}catch(s){l.warn(`Error checking CVM status: ${s}`)}await new Promise(s=>setTimeout(s,o))}throw new Error(`Timeout waiting for CVM to be ready (${Math.floor(t/1e3)}s)`)}import{z as Ug}from"zod";var zC={name:"restart",description:"Restart a CVM",stability:"stable",arguments:[he],options:[re],examples:[{name:"By app_id",value:"phala cvms restart app_123"},{name:"By UUID",value:"phala cvms restart 550e8400-e29b-41d4-a716-446655440000"},{name:"By name",value:"phala cvms restart my-app"}]},OC=Ug.object({cvmId:Ug.string().optional(),interactive:Ug.boolean().default(!1)});async function H4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=await $e(r,t.cvmId);if(!n.success)return t.fail(n.error.message),1;let o=n.data;o.progress?.target&&(l.warn("CVM is currently in progress (updating/restarting). Waiting for operation to complete..."),await sf(o.vm_uuid,3e5));let s=l.startSpinner("Restarting CVM"),a=t.cvmId,i=await Tn(()=>rg(r,a),{spinner:s});if(s.stop(!0),!i.success)return l.error(`Failed to restart CVM: ${i.error.message}`),1;let c=i.data;return l.break(),l.keyValueTable({"CVM ID":c.id,Name:c.name,Status:c.status,"App ID":`app_${c.app_id}`,"App URL":c.app_url||`${ze}/dashboard/cvms/app_${c.app_id}`},{borderStyle:"rounded"}),l.break(),l.success(`Your CVM is being restarted. You can check the dashboard for more details:
244
+ ${ze}/dashboard/cvms/app_${c.app_id}`),0}catch(r){return l.error("Failed to restart CVM"),l.logDetailedError(r),1}}var jC=A({path:["cvms","restart"],meta:zC,schema:OC,handler:H4});import{z as us}from"zod";var HC={name:"serial-logs",description:"Fetch VM serial console logs from a CVM",stability:"deprecated",arguments:[he],options:[{name:"tail",shorthand:"n",description:"Lines from end",type:"number",target:"tail"},{name:"follow",shorthand:"f",description:"Stream logs in real-time",type:"boolean",target:"follow"},{name:"timestamps",shorthand:"t",description:"Show timestamps",type:"boolean",target:"timestamps"},kt,re],examples:[{name:"Show VM serial logs",value:"phala cvms serial-logs app_abc123"},{name:"Show last 100 lines of serial logs",value:"phala cvms serial-logs app_abc123 --tail 100"},{name:"Follow serial logs in real-time",value:"phala cvms serial-logs app_abc123 --follow"},{name:"Show serial logs with timestamps",value:"phala cvms serial-logs app_abc123 --timestamps"}]},VC=us.object({cvmId:us.string().optional(),tail:us.number().optional(),follow:us.boolean().default(!1),timestamps:us.boolean().default(!1),json:us.boolean().default(!1),interactive:us.boolean().default(!1)});var V4=of({logType:"serial",fetchLogs:Xw,streamLogs:r6},e=>({tail:e.tail,timestamps:e.timestamps})),GC=A({path:["cvms","serial-logs"],meta:HC,schema:VC,handler:V4});import{z as zg}from"zod";var qC={name:"start",description:"Start a stopped CVM",stability:"stable",arguments:[he],options:[re],examples:[{name:"Start CVM by app_id",value:"phala cvms start app_123"},{name:"Start CVM by UUID",value:"phala cvms start 550e8400-e29b-41d4-a716-446655440000"},{name:"Start CVM by name",value:"phala cvms start my-app"}]},KC=zg.object({cvmId:zg.string().optional(),interactive:zg.boolean().default(!1)});async function G4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=l.startSpinner("Starting CVM"),o=t.cvmId,s=await Tn(()=>eg(r,o),{spinner:n});if(n.stop(!0),!s.success)return l.error(`Failed to start CVM: ${s.error.message}`),1;let a=s.data;return l.break(),l.keyValueTable({"CVM ID":a.id,Name:a.name,Status:a.status,"App ID":`app_${a.app_id}`},{borderStyle:"rounded"}),l.break(),l.success(`Your CVM is being started. You can check the dashboard for more details:
245
+ ${ze}/dashboard/cvms/app_${a.app_id}`),0}catch(r){return l.error("Failed to start CVM"),l.logDetailedError(r),1}}var WC=A({path:["cvms","start"],meta:qC,schema:KC,handler:G4});import{z as Og}from"zod";var JC={name:"stop",description:"Stop a running CVM",stability:"stable",arguments:[he],options:[re],examples:[{name:"Stop CVM by app_id",value:"phala cvms stop app_123"},{name:"Stop CVM by UUID",value:"phala cvms stop 550e8400-e29b-41d4-a716-446655440000"},{name:"Stop CVM by name",value:"phala cvms stop my-app"}]},ZC=Og.object({cvmId:Og.string().optional(),interactive:Og.boolean().default(!1)});async function q4(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=l.startSpinner("Stopping CVM"),o=t.cvmId,s=await Tn(()=>tg(r,o),{spinner:n});if(n.stop(!0),!s.success)return l.error(`Failed to stop CVM: ${s.error.message}`),1;let a=s.data;return l.break(),l.keyValueTable({"CVM ID":a.id,Name:a.name,Status:a.status,"App ID":`app_${a.app_id}`},{borderStyle:"rounded"}),l.break(),l.success(`Your CVM is being stopped. You can check the dashboard for more details:
246
+ ${ze}/dashboard/cvms/app_${a.app_id}`),0}catch(r){return l.error("Failed to stop CVM"),l.logDetailedError(r),1}}var YC=A({path:["cvms","stop"],meta:JC,schema:ZC,handler:q4});import K4 from"fs";import{z as di}from"zod";var XC={name:"upgrade",description:'Upgrade a CVM to a new version (use "phala deploy" instead)',stability:"deprecated",arguments:[he],options:[re,{name:"compose",shorthand:"c",description:"Path to Docker Compose file",type:"string",target:"compose"},{name:"env-file",shorthand:"e",description:"Path to environment file",type:"string",target:"envFile"},{name:"debug",description:"Enable debug output",type:"boolean",target:"debug"}],examples:[{name:"Upgrade a CVM interactively",value:"phala cvms upgrade"},{name:"Upgrade using a compose file",value:"phala cvms upgrade app_123 --compose ./docker-compose.yml"}]},QC=di.object({cvmId:di.string().optional(),interactive:di.boolean().default(!1),compose:di.string().optional(),envFile:di.string().optional(),debug:di.boolean().default(!1)});async function W4(e){if(e.compose)return e.compose;let r=fi(["docker-compose.yml","docker-compose.yaml"],"Detected docker compose file: {path}");return Pn("Enter the path to your Docker Compose file:",r,"file")}async function J4(e,t){try{if(l.warn('\u26A0\uFE0F This command is deprecated. Please use "phala deploy" instead.'),l.warn(`\u26A0\uFE0F This legacy API will be maintained but may have limited support.
247
+ `),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;let r=await F(),n=await $e(r,t.cvmId);if(!n.success)return t.fail(n.error.message),1;let o=n.data;if(!o)return t.fail("CVM not found"),1;let s=o.app_id,a=o,i=await W4(e),c="";if(i)try{c=K4.readFileSync(i,"utf8")}catch(g){return l.error(`Failed to read Docker Compose file: ${g instanceof Error?g.message:String(g)}`),1}await ms(),process.env.DSTACK_DOCKER_USERNAME&&process.env.DSTACK_DOCKER_PASSWORD?l.info("\u{1F510} Using private DockerHub registry credentials..."):process.env.DSTACK_AWS_ACCESS_KEY_ID&&process.env.DSTACK_AWS_SECRET_ACCESS_KEY&&process.env.DSTACK_AWS_REGION&&process.env.DSTACK_AWS_ECR_REGISTRY?l.info(`\u{1F510} Using private AWS ECR registry: ${process.env.DSTACK_AWS_ECR_REGISTRY}`):l.info("\u{1F510} Using public DockerHub registry...");let m,u=[];if(e.envFile)try{let g=Oc([],e.envFile);m=await(0,dr.encryptEnvVars)(g,a.kms_info?.encrypted_env_pubkey),u=g.map(h=>h.key)}catch(g){return l.error(`Failed to read environment file: ${g instanceof Error?g.message:String(g)}`),1}let p={compose_manifest:{docker_compose_file:c,manifest_version:1,runner:"docker-compose",version:"1.0.0",features:["kms","tproxy-net"],name:`app_${s}`,allowed_envs:u},encrypted_env:m,allow_restart:!0,env_keys:u},f=l.startSpinner(`Upgrading CVM app_${s}`),d=await Ww(s,p);return d?(f.stop(!0),d.detail&&l.info(`Details: ${d.detail}`),l.break(),l.success(`Your CVM is being upgraded. You can check the dashboard for more details:
248
+ ${ze}/dashboard/cvms/app_${s}`),0):(f.stop(!1),l.error("Failed to upgrade CVM"),1)}catch(r){return l.error(`Failed to upgrade CVM: ${r instanceof Error?r.message:String(r)}`),e.debug&&l.error("Full Error:",r),1}}var e5=A({path:["cvms","upgrade"],meta:XC,schema:QC,handler:J4});var jg={group:oC,commands:[iC,yC,vC,SC,_C,AC,RC,LC,UC,jC,GC,WC,YC,e5]};import{z as fe}from"zod";var t5={name:"deploy",category:"deploy",description:"Deploy new CVM or update existing one",stability:"stable",arguments:[],options:[ds,uh,re,{name:"debug",description:"Enable debug logging",type:"boolean",target:"debug",group:"advanced"},{name:"name",shorthand:"n",description:"CVM name (defaults to directory name)",type:"string",target:"name",group:"basic"},{name:"compose",shorthand:"c",description:"Path to Docker Compose file (default: docker-compose.yml)",type:"string",target:"compose",group:"basic"},{name:"instance-type",shorthand:"t",description:"Instance type (e.g., tdx.small, auto-selected if omitted)",type:"string",target:"instanceType",group:"basic"},{name:"vcpu",description:"Use --instance-type instead",type:"string",target:"vcpu",deprecated:!0,group:"deprecated"},{name:"memory",description:"Use --instance-type instead",type:"string",target:"memory",deprecated:!0,group:"deprecated"},{name:"disk-size",description:`Disk size with unit (e.g., 50G, default: ${cs}GB)`,type:"string",target:"diskSize",group:"advanced"},{name:"image",description:"OS image version (auto-selected if omitted)",type:"string",target:"image",group:"advanced"},{name:"region",shorthand:"r",description:"Preferred region (e.g., us-west, auto-selected if omitted)",type:"string",target:"region",group:"basic"},{name:"node-id",description:"Node ID (auto-selected if omitted)",type:"string",target:"nodeId",group:"advanced"},{name:"env",shorthand:"e",description:"Environment variable (KEY=VALUE) or env file path (repeatable)",type:"string[]",target:"env",group:"basic"},{name:"env-file",description:"Use -e instead",type:"string",target:"envFile",deprecated:!0,group:"deprecated"},{name:"kms",description:"KMS type: phala (default), ethereum/eth, or base",type:"string",target:"kms",group:"basic"},{name:"kms-id",description:"Use --kms instead",type:"string",target:"kmsId",deprecated:!0,group:"deprecated"},{name:"custom-app-id",description:"Custom App ID (requires --nonce for PHALA KMS)",type:"string",target:"customAppId",group:"advanced"},{name:"nonce",description:"Nonce for deterministic app_id (requires --custom-app-id, PHALA KMS only)",type:"string",target:"nonce",group:"advanced"},{name:"pre-launch-script",description:"Path to pre-launch script",type:"string",target:"preLaunchScript",group:"advanced"},{name:"private-key",description:"Private key for signing transactions.",type:"string",target:"privateKey",group:"advanced"},{name:"rpc-url",description:"RPC URL for the blockchain.",type:"string",target:"rpcUrl",group:"advanced"},{name:"wait",description:"Wait for deployment/update completion",type:"boolean",target:"wait",group:"basic"},{name:"ssh-pubkey",description:"SSH public key path (default: ~/.ssh/id_rsa.pub)",type:"string",target:"sshPubkey",group:"basic"},{name:"dev-os",description:"Use dev OS image (requires SSH key)",type:"boolean",target:"devOs",negatedName:"no-dev-os",group:"basic"},{name:"public-logs",description:"Make CVM logs publicly accessible (default: true)",type:"boolean",target:"publicLogs",negatedName:"no-public-logs"},{name:"public-sysinfo",description:"Make CVM system info publicly accessible (default: true)",type:"boolean",target:"publicSysinfo",negatedName:"no-public-sysinfo"},{name:"listed",description:"List CVM on the public Trust Center (default: false)",type:"boolean",target:"listed",negatedName:"no-listed"}],examples:[{name:"Deploy new CVM",value:"phala deploy"},{name:"Deploy with environment variables",value:"phala deploy -e NODE_ENV=production -e DEBUG=true"},{name:"Deploy with env file",value:"phala deploy -e .env"},{name:"Deploy with specific instance type",value:"phala deploy --instance-type tdx.medium"},{name:"Deploy to specific region",value:"phala deploy --region us-west"},{name:"Deploy with Ethereum KMS",value:"phala deploy --kms ethereum --private-key <key> --rpc-url <url>"},{name:"Update existing CVM by ID",value:"phala deploy --cvm-id app_abc123"},{name:"Update CVM with new compose file and env",value:"phala deploy --cvm-id my-app --compose ./new-docker-compose.yml -e .env"},{name:"Update CVM and wait for completion",value:"phala deploy --cvm-id app_abc123 --wait"},{name:"Update CVM from phala.toml",value:"phala deploy"},{name:"Deploy with logs and sysinfo disabled",value:"phala deploy --no-public-logs --no-public-sysinfo"},{name:"Deploy and list on Trust Center",value:"phala deploy --listed"},{name:"Update existing CVM to disable logs",value:"phala deploy --cvm-id app_123 --no-public-logs"}]},r5=fe.object({compose:fe.string().optional(),json:fe.boolean().default(!1),debug:fe.boolean().default(!1),apiToken:fe.string().optional(),name:fe.string().optional(),instanceType:fe.string().optional(),vcpu:fe.string().optional(),memory:fe.string().optional(),diskSize:fe.string().optional(),image:fe.string().optional(),region:fe.string().optional(),nodeId:fe.string().optional(),env:fe.array(fe.string()).optional(),envFile:fe.string().optional(),interactive:fe.boolean().default(!1),kms:fe.enum(["phala","ethereum","eth","base"]).default("phala"),kmsId:fe.string().optional(),cvmId:fe.string().optional(),customAppId:fe.string().optional(),nonce:fe.string().optional(),preLaunchScript:fe.string().optional(),privateKey:fe.string().optional(),rpcUrl:fe.string().optional(),wait:fe.boolean().default(!1),sshPubkey:fe.string().optional(),devOs:fe.boolean().optional(),publicLogs:fe.boolean().optional(),publicSysinfo:fe.boolean().optional(),listed:fe.boolean().optional()});import Rn from"path";import c5 from"os";function Z4(e){let t=e.indexOf("=");if(t===-1)return!1;let r=e.substring(0,t);return r.includes("/")||r.includes("\\")?!1:/^[A-Za-z_][A-Za-z0-9_]*$/.test(r)}function n5(e){let t={files:[],keyValues:[]};for(let r of e)if(Z4(r)){let n=r.indexOf("="),o=r.substring(0,n),s=r.substring(n+1);t.keyValues.push({key:o,value:s})}else t.files.push(r);return t}function o5(e){let t=new Map;for(let r of e)t.set(r.key,r.value);return Array.from(t.entries()).map(([r,n])=>({key:r,value:n}))}function s5(e,t="B"){if(!e||typeof e!="string")throw new Error("Invalid input: must be a non-empty string");let r=e.trim().match(/^(\d+(?:\.\d+)?)\s*([KkMmGgTt][Bb]?)?$/);if(!r)throw new Error(`Invalid format: ${e}. Expected format: <number>[unit] (e.g., 2G, 500MB, 1T)`);let n=Number.parseFloat(r[1]),o=(r[2]||t).toUpperCase().replace("B",""),s={K:1024,M:1024*1024,G:1024*1024*1024,T:1024*1024*1024*1024,"":1};if(!(o in s))throw new Error(`Unsupported unit: ${o}. Supported units: B, K/KB, M/MB, G/GB, T/TB`);return Math.round(n*s[o])}function a5(e){let t=s5(e,"MB"),r=Math.round(t/(1024*1024));if(r%1024!==0)throw new Error(`Memory must be a multiple of 1GB (1024MB). Got: ${r}MB`);return r}function i5(e){let t=s5(e,"GB"),r=Math.round(t/(1024*1024*1024));if(r%1!==0)throw new Error(`Disk size must be a multiple of 1GB. Got: ${r}GB`);return r}import af from"dedent";import hr from"fs-extra";import cf from"inquirer";function Y4(e,t){if(e instanceof Ec)return t.json?{success:!1,error_code:e.errorCode,message:e.message,details:e.structuredDetails,suggestions:e.suggestions,links:e.links}:Il(e);if(e&&typeof e=="object"&&"response"in e){let o=e.response?.data?.detail;if(o&&typeof o=="object"&&"error_code"in o){let{error_code:s,message:a,details:i,suggestions:c,links:m}=o;if(t.json)return{success:!1,error_code:s,message:a,details:i,suggestions:c,links:m};let u=`
249
249
  Error [${s}]: ${a}
250
250
  `;if(i&&i.length>0){u+=`
251
251
  Details:
@@ -259,7 +259,7 @@ Learn more:
259
259
  `;for(let p of m)u+=` - ${p.label}: ${p.url}
260
260
  `}return u}}let r=e instanceof Error?e.message:String(e||"Unknown error");return t.json?{success:!1,error:r}:`
261
261
  Error: ${r}
262
- `}var a5="2025-10-28";async function K4({apiToken:e,interactive:t}){let r=sn(void 0,{apiToken:e});if(r.apiKey)return fr({apiKey:r.apiKey,baseURL:r.baseURL,version:a5});if(t){let{apiToken:n}=await cf.prompt([{type:"password",name:"apiToken",message:"Enter your API token:",validate:o=>o.trim()?!0:"API token is required"}]);return fr({apiKey:n,baseURL:r.baseURL,version:a5})}throw new Error("API token is required. Please run 'phala login' or set PHALA_CLOUD_API_KEY environment variable")}async function W4({dockerComposePath:e,interactive:t}){if(!e)if(t){let n=fi(["docker-compose.yml","docker-compose.yaml"],"Detected docker compose file: {path}");e=await Pn("Enter the path to your Docker Compose file:",n,"file")}else throw new Error(af(`
262
+ `}var m5="2025-10-28";async function X4({apiToken:e,interactive:t}){let r=sn(void 0,{apiToken:e});if(r.apiKey)return fr({apiKey:r.apiKey,baseURL:r.baseURL,version:m5});if(t){let{apiToken:n}=await cf.prompt([{type:"password",name:"apiToken",message:"Enter your API token:",validate:o=>o.trim()?!0:"API token is required"}]);return fr({apiKey:n,baseURL:r.baseURL,version:m5})}throw new Error("API token is required. Please run 'phala login' or set PHALA_CLOUD_API_KEY environment variable")}async function Q4({dockerComposePath:e,interactive:t}){if(!e)if(t){let n=fi(["docker-compose.yml","docker-compose.yaml"],"Detected docker compose file: {path}");e=await Pn("Enter the path to your Docker Compose file:",n,"file")}else throw new Error(af(`
263
263
  Docker Compose file is required.
264
264
 
265
265
  Usage examples:
@@ -275,7 +275,7 @@ Error: ${r}
275
275
  --rpc-url <url> RPC URL for the blockchain
276
276
 
277
277
  Run with --interactive for guided setup
278
- `));if(!hr.existsSync(e))throw new Error(`Docker compose file not found: ${e}`);return hr.readFileSync(e,"utf8")}var J4=async(e,t)=>{let r=e.privateKey||process.env.PRIVATE_KEY;if(t&&!e.privateKey)if(e.interactive)r=(await cf.prompt([{type:"password",name:"privateKey",message:"Enter your private key:",validate:o=>o.trim()?!0:"Private key is required"}])).privateKey;else throw new Error("When using on-chain KMS, either --private-key (or PRIVATE_KEY env) must be provided");return r};function i5(e){e.kmsId&&f.warn("--kms-id is deprecated. Use --kms instead.");let t=(e.kms??"phala").toLowerCase(),r;switch(t){case"eth":case"ethereum":r="ETHEREUM";break;case"base":r="BASE";break;default:r="PHALA";break}return{kmsType:r,deprecatedKmsId:e.kmsId}}var Z4=async e=>{let t=e.name;if(e.name){if(!ii(e.name))throw new Error(`Invalid CVM name: "${e.name}". Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens.`);return e.name}let r=Rn.basename(process.cwd()),n=aw(r);return e.interactive?t=(await cf.prompt([{type:"input",name:"name",message:"Enter a name for the CVM:",default:n,validate:s=>s.trim()?ii(s.trim())?!0:"Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens":"CVM name is required"}])).name:t=n,t},Y4=async e=>{let t=[];if(e.envFile&&typeof e.envFile=="string"){f.warn("--env-file is deprecated. Use -e <file> or -e KEY=VALUE instead.");try{let r=hr.readFileSync(e.envFile,{encoding:"utf8"});t.push(...Tl(r))}catch(r){throw new Error(`Error reading environment file ${e.envFile}: ${r instanceof Error?r.message:String(r)}`)}}if(e.env&&e.env.length>0){let r=e5(e.env);for(let n of r.files){let o=Rn.resolve(process.cwd(),n);if(!hr.existsSync(o))throw new Error(`Environment file not found: ${n}`);try{let s=hr.readFileSync(o,{encoding:"utf8"});t.push(...Tl(s))}catch(s){throw new Error(`Error reading environment file ${n}: ${s instanceof Error?s.message:String(s)}`)}}t.push(...r.keyValues)}if(e.interactive&&t.length===0&&!e.env&&!e.envFile){let{envPath:r}=await cf.prompt([{type:"input",name:"envPath",message:"Enter the path to your environment file (leave empty to skip):",default:"",validate:n=>{if(!n||n.trim()==="")return!0;let o=Rn.resolve(process.cwd(),n);return hr.existsSync(o)?!0:`File not found at ${o}`}}]);if(r.trim()){let n=Rn.resolve(process.cwd(),r.trim()),o=hr.readFileSync(n,{encoding:"utf8"});t.push(...Tl(o))}}if(t.length!==0)return t5(t)},X4=async e=>{let t=e.sshPubkey;if(!(e.devOs===!1&&!e.sshPubkey)){if(t){if(t.startsWith("~")&&(t=Rn.join(s5.homedir(),t.slice(1))),!hr.existsSync(t))throw new Error(`SSH public key file not found: ${t}`)}else{let r=s5.homedir(),n=[Rn.join(r,".ssh","id_rsa.pub"),Rn.join(r,".ssh","id_ed25519.pub"),Rn.join(r,".ssh","id_ecdsa.pub"),Rn.join(r,".ssh","id_dsa.pub")];for(let o of n)if(hr.existsSync(o)){t=o;break}if(!t){if(e.devOs)throw new Error(af(`
278
+ `));if(!hr.existsSync(e))throw new Error(`Docker compose file not found: ${e}`);return hr.readFileSync(e,"utf8")}var e$=async(e,t)=>{let r=e.privateKey||process.env.PRIVATE_KEY;if(t&&!e.privateKey)if(e.interactive)r=(await cf.prompt([{type:"password",name:"privateKey",message:"Enter your private key:",validate:o=>o.trim()?!0:"Private key is required"}])).privateKey;else throw new Error("When using on-chain KMS, either --private-key (or PRIVATE_KEY env) must be provided");return r};function u5(e){e.kmsId&&l.warn("--kms-id is deprecated. Use --kms instead.");let t=(e.kms??"phala").toLowerCase(),r;switch(t){case"eth":case"ethereum":r="ETHEREUM";break;case"base":r="BASE";break;default:r="PHALA";break}return{kmsType:r,deprecatedKmsId:e.kmsId}}var t$=async e=>{let t=e.name;if(e.name){if(!ci(e.name))throw new Error(`Invalid CVM name: "${e.name}". Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens.`);return e.name}let r=Rn.basename(process.cwd()),n=iw(r);return e.interactive?t=(await cf.prompt([{type:"input",name:"name",message:"Enter a name for the CVM:",default:n,validate:s=>s.trim()?ci(s.trim())?!0:"Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens":"CVM name is required"}])).name:t=n,t},r$=async e=>{let t=[];if(e.envFile&&typeof e.envFile=="string"){l.warn("--env-file is deprecated. Use -e <file> or -e KEY=VALUE instead.");try{let r=hr.readFileSync(e.envFile,{encoding:"utf8"});t.push(...Tl(r))}catch(r){throw new Error(`Error reading environment file ${e.envFile}: ${r instanceof Error?r.message:String(r)}`)}}if(e.env&&e.env.length>0){let r=n5(e.env);for(let n of r.files){let o=Rn.resolve(process.cwd(),n);if(!hr.existsSync(o))throw new Error(`Environment file not found: ${n}`);try{let s=hr.readFileSync(o,{encoding:"utf8"});t.push(...Tl(s))}catch(s){throw new Error(`Error reading environment file ${n}: ${s instanceof Error?s.message:String(s)}`)}}t.push(...r.keyValues)}if(e.interactive&&t.length===0&&!e.env&&!e.envFile){let{envPath:r}=await cf.prompt([{type:"input",name:"envPath",message:"Enter the path to your environment file (leave empty to skip):",default:"",validate:n=>{if(!n||n.trim()==="")return!0;let o=Rn.resolve(process.cwd(),n);return hr.existsSync(o)?!0:`File not found at ${o}`}}]);if(r.trim()){let n=Rn.resolve(process.cwd(),r.trim()),o=hr.readFileSync(n,{encoding:"utf8"});t.push(...Tl(o))}}if(t.length!==0)return o5(t)},n$=async e=>{let t=e.sshPubkey;if(!(e.devOs===!1&&!e.sshPubkey)){if(t){if(t.startsWith("~")&&(t=Rn.join(c5.homedir(),t.slice(1))),!hr.existsSync(t))throw new Error(`SSH public key file not found: ${t}`)}else{let r=c5.homedir(),n=[Rn.join(r,".ssh","id_rsa.pub"),Rn.join(r,".ssh","id_ed25519.pub"),Rn.join(r,".ssh","id_ecdsa.pub"),Rn.join(r,".ssh","id_dsa.pub")];for(let o of n)if(hr.existsSync(o)){t=o;break}if(!t){if(e.devOs)throw new Error(af(`
279
279
  SSH public key is required for dev images but not found.
280
280
 
281
281
  Searched for:
@@ -287,8 +287,8 @@ Error: ${r}
287
287
  Please either:
288
288
  1. Create an SSH key pair: ssh-keygen -t rsa
289
289
  2. Specify a different key file: --ssh-pubkey <path>
290
- `));return}}try{let r=hr.readFileSync(t,"utf8").trim();return f.info(`Using SSH public key from ${t}`),r}catch(r){throw new Error(`Failed to read SSH public key from ${t}: ${r instanceof Error?r.message:String(r)}`)}}};var Q4=(e,t)=>({publicLogs:e.publicLogs??t?.public_logs??!0,publicSysinfo:e.publicSysinfo??t?.public_sysinfo??!0,listed:e.listed??t?.listed??!1}),e$=(e,t,r,n,o,s,a)=>{let i={name:"",docker_compose_file:r,allowed_envs:n?.map(l=>l.key)||[],public_logs:o.publicLogs,public_sysinfo:o.publicSysinfo};a&&(i.pre_launch_script=a);let c={name:t,compose_file:i,listed:o.listed},{kmsType:m,deprecatedKmsId:u}=s??i5(e);e.instanceType&&(c.instance_type=e.instanceType),e.vcpu&&(c.vcpu=Number(e.vcpu)),e.memory&&(c.memory=n5(e.memory)),e.diskSize&&(c.disk_size=o5(e.diskSize)),e.nodeId&&(c.teepod_id=Number(e.nodeId)),e.region&&(c.region=e.region),e.image&&(c.image=e.image),c.kms=m,u&&(c.kms_id=u);let p=m==="ETHEREUM"||m==="BASE";if(e.devOs===!0?c.prefer_dev=!0:(e.devOs===!1||p)&&(c.prefer_dev=!1),e.customAppId&&(c.app_id=e.customAppId,m==="PHALA")){if(!e.nonce)throw new Error("--nonce is required when using --custom-app-id with PHALA KMS.");let l=Number(e.nonce);if(Number.isNaN(l))throw new Error(`Invalid nonce value: "${e.nonce}". Nonce must be a valid number.`);c.nonce=l}if(e.nonce&&!e.customAppId)throw new Error("--nonce requires --custom-app-id to be specified.");return c},t$=async(e,t,r,n,o,s,a,i)=>{let c=i5(e),m=await Z4(e),u=await X4(e),p=[...r||[]];u&&p.push({key:"DSTACK_AUTHORIZED_KEYS",value:u});let l=Q4(e,a),d=e$(e,m,t,p,l,c,i);o.write(`Provisioning CVM ${m}...
291
- `);let g=await Y0(n,d);if(!g.success){let S=q4(g.error,e);throw f.error("Error in provisioning CVM:",S),g.error}let h=g.data,y,b=h.kms_info;if(!h.app_id&&!!b?.chain_id&&!!b?.kms_contract_address){if(!b?.chain_id||!b?.chain)throw new Error("KMS chain info is missing from provision response. Please retry or contact support.");if(!b?.kms_contract_address)throw new Error("KMS contract address is missing from provision response. Please retry or contact support.");let S=await J4(e,b.chain_id),E=await ww({chain:b.chain,rpcUrl:e.rpcUrl,kmsContractAddress:b.kms_contract_address,privateKey:S,deviceId:h.device_id,composeHash:h.compose_hash});if(!E.success){f.logDetailedError(E,"Deploy App Auth");let O=typeof E=="object"&&E!==null?JSON.stringify(E):String(E);throw new Error(`Deployment contract failed: ${O}`)}let _=E.data,I=b.slug||b.id;if(!I)throw new Error("KMS reference (slug or id) is missing from provision response");let R=await Al(n,{app_id:_.appId,kms:I});if(!R.success)throw f.logDetailedError(R.error,"Get App Env Encrypt PubKey"),new Error(`Failed to get app env encrypt pubkey: ${R.error.message}`);let N=R.data,L=await(0,dr.encryptEnvVars)(p,N.public_key);y=await Pl(n,{app_id:_.appId,encrypted_env:L,compose_hash:h.compose_hash,kms_id:I,contract_address:_.appAuthAddress,deployer_address:_.deployer})}else{let S=p&&p.length>0?await(0,dr.encryptEnvVars)(p,h.app_env_encrypt_pubkey):void 0;y=await Pl(n,{app_id:h.app_id,encrypted_env:S,compose_hash:h.compose_hash,kms_id:c.deprecatedKmsId})}if(!y.success)throw f.logDetailedError(y.error,"Commit CVM Provision"),new Error(`Failed to commit CVM provision: ${y.error.message}`);let v=y.data;if(e?.json!==!1)o.write(`${JSON.stringify({success:!0,vm_uuid:v.vm_uuid,name:v.name,app_id:v.app_id,dashboard_url:`${ze}/dashboard/cvms/${v.vm_uuid}`},null,2)}
290
+ `));return}}try{let r=hr.readFileSync(t,"utf8").trim();return l.info(`Using SSH public key from ${t}`),r}catch(r){throw new Error(`Failed to read SSH public key from ${t}: ${r instanceof Error?r.message:String(r)}`)}}};var o$=(e,t)=>({publicLogs:e.publicLogs??t?.public_logs??!0,publicSysinfo:e.publicSysinfo??t?.public_sysinfo??!0,listed:e.listed??t?.listed??!1}),s$=(e,t,r,n,o,s,a)=>{let i={name:"",docker_compose_file:r,allowed_envs:n?.map(f=>f.key)||[],public_logs:o.publicLogs,public_sysinfo:o.publicSysinfo};a&&(i.pre_launch_script=a);let c={name:t,compose_file:i,listed:o.listed},{kmsType:m,deprecatedKmsId:u}=s??u5(e);e.instanceType&&(c.instance_type=e.instanceType),e.vcpu&&(c.vcpu=Number(e.vcpu)),e.memory&&(c.memory=a5(e.memory)),e.diskSize&&(c.disk_size=i5(e.diskSize)),e.nodeId&&(c.teepod_id=Number(e.nodeId)),e.region&&(c.region=e.region),e.image&&(c.image=e.image),c.kms=m,u&&(c.kms_id=u);let p=m==="ETHEREUM"||m==="BASE";if(e.devOs===!0?c.prefer_dev=!0:(e.devOs===!1||p)&&(c.prefer_dev=!1),e.customAppId&&(c.app_id=e.customAppId,m==="PHALA")){if(!e.nonce)throw new Error("--nonce is required when using --custom-app-id with PHALA KMS.");let f=Number(e.nonce);if(Number.isNaN(f))throw new Error(`Invalid nonce value: "${e.nonce}". Nonce must be a valid number.`);c.nonce=f}if(e.nonce&&!e.customAppId)throw new Error("--nonce requires --custom-app-id to be specified.");return c},a$=async(e,t,r,n,o,s,a,i)=>{let c=u5(e),m=await t$(e),u=await n$(e),p=[...r||[]];u&&p.push({key:"DSTACK_AUTHORIZED_KEYS",value:u});let f=o$(e,a),d=s$(e,m,t,p,f,c,i);o.write(`Provisioning CVM ${m}...
291
+ `);let g=await Y0(n,d);if(!g.success){let S=Y4(g.error,e);throw l.error("Error in provisioning CVM:",S),g.error}let h=g.data,y,b=h.kms_info;if(!h.app_id&&!!b?.chain_id&&!!b?.kms_contract_address){if(!b?.chain_id||!b?.chain)throw new Error("KMS chain info is missing from provision response. Please retry or contact support.");if(!b?.kms_contract_address)throw new Error("KMS contract address is missing from provision response. Please retry or contact support.");let S=await e$(e,b.chain_id),k=await Cw({chain:b.chain,rpcUrl:e.rpcUrl,kmsContractAddress:b.kms_contract_address,privateKey:S,deviceId:h.device_id,composeHash:h.compose_hash});if(!k.success){l.logDetailedError(k,"Deploy App Auth");let O=typeof k=="object"&&k!==null?JSON.stringify(k):String(k);throw new Error(`Deployment contract failed: ${O}`)}let _=k.data,I=b.slug||b.id;if(!I)throw new Error("KMS reference (slug or id) is missing from provision response");let R=await Al(n,{app_id:_.appId,kms:I});if(!R.success)throw l.logDetailedError(R.error,"Get App Env Encrypt PubKey"),new Error(`Failed to get app env encrypt pubkey: ${R.error.message}`);let N=R.data,L=await(0,dr.encryptEnvVars)(p,N.public_key);y=await Pl(n,{app_id:_.appId,encrypted_env:L,compose_hash:h.compose_hash,kms_id:I,contract_address:_.appAuthAddress,deployer_address:_.deployer})}else{let S=p&&p.length>0?await(0,dr.encryptEnvVars)(p,h.app_env_encrypt_pubkey):void 0;y=await Pl(n,{app_id:h.app_id,encrypted_env:S,compose_hash:h.compose_hash,kms_id:c.deprecatedKmsId})}if(!y.success)throw l.logDetailedError(y.error,"Commit CVM Provision"),new Error(`Failed to commit CVM provision: ${y.error.message}`);let v=y.data;if(e?.json!==!1)o.write(`${JSON.stringify({success:!0,vm_uuid:v.vm_uuid,name:v.name,app_id:v.app_id,dashboard_url:`${ze}/dashboard/cvms/${v.vm_uuid}`},null,2)}
292
292
  `);else{let S=af`
293
293
  CVM created successfully!
294
294
 
@@ -297,27 +297,27 @@ Error: ${r}
297
297
  App ID: ${v.app_id}
298
298
  Dashboard URL: ${ze}/dashboard/cvms/${v.vm_uuid}
299
299
  `;o.write(`${S}
300
- `)}},r$=async(e,t,r,n,o,s)=>{let[a,i]=await Promise.all([$e(n,{id:e.uuid}),Ic(n,{id:e.uuid})]);if(!a.success)throw f.logDetailedError(a.error,"Get CVM Info"),new Error(`Failed to get cvm info: ${a.error.message}`);if(!i.success)throw f.logDetailedError(i.error,"Get CVM Compose File"),new Error(`Failed to get cvm compose file: ${i.error.message}`);let c=a.data,m=i.data;m.docker_compose_file=t,s&&(m.pre_launch_script=s),r&&r.length>0&&(m.allowed_envs=r.map(y=>y.key)),f.info(`Preparing update for CVM ${e.uuid}...`);let u=await X0(n,{id:e.uuid,app_compose:m,update_env_vars:!!(r&&r.length>0)});if(!u.success)throw f.logDetailedError(u.error,"Provision CVM Compose File Update"),new Error(`Failed to provision cvm compose file: ${u.error.message}`);let p=u.data,l;if(c.kms_info?.chain_id){if(!e.privateKey)throw new Error("Private key is required for contract DstackApp");e.debug&&(console.log("[DEBUG] provision.compose_hash:",p.compose_hash),console.log("[DEBUG] cvm.app_id:",c.app_id));let y=await Sw({chain:c.kms_info?.chain,rpcUrl:e.rpcUrl,appId:c.app_id,composeHash:p.compose_hash,privateKey:e.privateKey});if(!y.success){f.logDetailedError(y,"Add Compose Hash");let b=typeof y=="object"&&y!==null?JSON.stringify(y):String(y);throw new Error(`Failed to add compose hash: ${b}`)}if(e.debug){let b=y.data;console.log("[DEBUG] addComposeHash.transactionHash:",b.transactionHash),console.log("[DEBUG] addComposeHash.composeHash:",b.composeHash)}if(r&&r.length>0){let b=c.kms_info?.slug||c.kms_info?.id;if(!b)throw new Error("KMS slug or id is required for decentralized KMS");let x=await Al(n,{app_id:c.app_id,kms:b});if(!x.success)throw f.logDetailedError(x.error,"Get App Env Encrypt PubKey"),new Error(`Failed to get app env encrypt pubkey: ${x.error.message}`);let v=x.data;l=await(0,dr.encryptEnvVars)(r,v.public_key)}}else if(r&&r.length>0){if(!c.encrypted_env_pubkey)throw new Error("CVM encrypted_env_pubkey is required for centralized KMS");l=await(0,dr.encryptEnvVars)(r,c.encrypted_env_pubkey)}let d={id:e.uuid,compose_hash:p.compose_hash,encrypted_env:l,env_keys:r?.length?r.map(y=>y.key):void 0,update_env_vars:r?.length?!0:void 0};e.debug&&console.log("[DEBUG] commit.compose_hash:",d.compose_hash);let g=await Q0(n,d);if(!g.success)throw f.logDetailedError(g.error,"Commit CVM Compose File Update"),new Error(`Failed to commit CVM compose file update: ${g.error.message}`);let h=e.publicLogs!==void 0||e.publicSysinfo!==void 0;if(e.wait||h){f.info("Waiting for update to complete...");try{await sf(e.uuid,3e5)}catch(y){throw f.logDetailedError(y,"Wait for CVM Ready"),new Error(`Wait failed: ${y instanceof Error?y.message:String(y)}`)}}if(h){let y=await sg(n,{id:e.uuid,public_logs:e.publicLogs??c.public_logs,public_sysinfo:e.publicSysinfo??c.public_sysinfo});y.success?f.info("CVM visibility settings updated"):"status"in y.error&&y.error.status===409?f.warn("Cannot update visibility while CVM operation is in progress. Please wait and try again."):f.warn(`Failed to update visibility: ${y.error.message}`)}e?.json!==!1?o.write(`${JSON.stringify({success:!0,vm_uuid:e.uuid,name:c.name,app_id:c.app_id,dashboard_url:`${ze}/dashboard/cvms/${e.uuid}`},null,2)}
300
+ `)}},i$=async(e,t,r,n,o,s)=>{let[a,i]=await Promise.all([$e(n,{id:e.uuid}),Ic(n,{id:e.uuid})]);if(!a.success)throw l.logDetailedError(a.error,"Get CVM Info"),new Error(`Failed to get cvm info: ${a.error.message}`);if(!i.success)throw l.logDetailedError(i.error,"Get CVM Compose File"),new Error(`Failed to get cvm compose file: ${i.error.message}`);let c=a.data,m=i.data;m.docker_compose_file=t,s&&(m.pre_launch_script=s),r&&r.length>0&&(m.allowed_envs=r.map(y=>y.key)),l.info(`Preparing update for CVM ${e.uuid}...`);let u=await X0(n,{id:e.uuid,app_compose:m,update_env_vars:!!(r&&r.length>0)});if(!u.success)throw l.logDetailedError(u.error,"Provision CVM Compose File Update"),new Error(`Failed to provision cvm compose file: ${u.error.message}`);let p=u.data,f;if(c.kms_info?.chain_id){if(!e.privateKey)throw new Error("Private key is required for contract DstackApp");e.debug&&(console.log("[DEBUG] provision.compose_hash:",p.compose_hash),console.log("[DEBUG] cvm.app_id:",c.app_id));let y=await kw({chain:c.kms_info?.chain,rpcUrl:e.rpcUrl,appId:c.app_id,composeHash:p.compose_hash,privateKey:e.privateKey});if(!y.success){l.logDetailedError(y,"Add Compose Hash");let b=typeof y=="object"&&y!==null?JSON.stringify(y):String(y);throw new Error(`Failed to add compose hash: ${b}`)}if(e.debug){let b=y.data;console.log("[DEBUG] addComposeHash.transactionHash:",b.transactionHash),console.log("[DEBUG] addComposeHash.composeHash:",b.composeHash)}if(r&&r.length>0){let b=c.kms_info?.slug||c.kms_info?.id;if(!b)throw new Error("KMS slug or id is required for decentralized KMS");let x=await Al(n,{app_id:c.app_id,kms:b});if(!x.success)throw l.logDetailedError(x.error,"Get App Env Encrypt PubKey"),new Error(`Failed to get app env encrypt pubkey: ${x.error.message}`);let v=x.data;f=await(0,dr.encryptEnvVars)(r,v.public_key)}}else if(r&&r.length>0){if(!c.encrypted_env_pubkey)throw new Error("CVM encrypted_env_pubkey is required for centralized KMS");f=await(0,dr.encryptEnvVars)(r,c.encrypted_env_pubkey)}let d={id:e.uuid,compose_hash:p.compose_hash,encrypted_env:f,env_keys:r?.length?r.map(y=>y.key):void 0,update_env_vars:r?.length?!0:void 0};e.debug&&console.log("[DEBUG] commit.compose_hash:",d.compose_hash);let g=await Q0(n,d);if(!g.success)throw l.logDetailedError(g.error,"Commit CVM Compose File Update"),new Error(`Failed to commit CVM compose file update: ${g.error.message}`);let h=e.publicLogs!==void 0||e.publicSysinfo!==void 0;if(e.wait||h){l.info("Waiting for update to complete...");try{await sf(e.uuid,3e5)}catch(y){throw l.logDetailedError(y,"Wait for CVM Ready"),new Error(`Wait failed: ${y instanceof Error?y.message:String(y)}`)}}if(h){let y=await sg(n,{id:e.uuid,public_logs:e.publicLogs??c.public_logs,public_sysinfo:e.publicSysinfo??c.public_sysinfo});y.success?l.info("CVM visibility settings updated"):"status"in y.error&&y.error.status===409?l.warn("Cannot update visibility while CVM operation is in progress. Please wait and try again."):l.warn(`Failed to update visibility: ${y.error.message}`)}e?.json!==!1?o.write(`${JSON.stringify({success:!0,vm_uuid:e.uuid,name:c.name,app_id:c.app_id,dashboard_url:`${ze}/dashboard/cvms/${e.uuid}`},null,2)}
301
301
  `):o.write(`CVM compose file updated successfully!
302
- `)};async function c5(e,t){try{let r=e.compose||t.projectConfig.compose_file,n=await K4({apiToken:e.apiToken,interactive:e.interactive}),o=await W4({dockerComposePath:r,interactive:e.interactive}),s;if(e.preLaunchScript){if(!hr.existsSync(e.preLaunchScript))throw new Error(`Pre-launch script file not found: ${e.preLaunchScript}`);s=hr.readFileSync(e.preLaunchScript,"utf8")}let a=Buffer.byteLength(o,"utf8"),i=s?Buffer.byteLength(s,"utf8"):0,c=a+i;if(c>kc){let d=kc/1024,g=Math.ceil(c/1024);throw new Error(`Combined size of docker compose file and pre-launch script is too large (${g}KB). Maximum allowed size is ${d}KB.`)}let m={...e,env:e.env&&e.env.length>0?e.env:t.projectConfig.env_file?[t.projectConfig.env_file]:void 0},u=await Y4(m);e.debug&&(console.log("[DEBUG] context.cvmId:",JSON.stringify(t.cvmId)),console.log("[DEBUG] input.cvmId:",e.cvmId));let p=t.cvmId?Q.parse(t.cvmId).cvmId:void 0;e.debug&&(console.log("[DEBUG] resolved uuid:",p),console.log("[DEBUG] isUpdate:",!!p)),!!p?await r$({...e,uuid:p},o,u,n,t.stdout,s):await t$(e,o,u??[],n,t.stdout,t.stderr,t.projectConfig,s)}catch(r){throw e.json!==!1?t.stderr.write(`${JSON.stringify({success:!1,error:r instanceof Error?r.message:String(r),stack:e.debug&&r instanceof Error?r.stack:void 0},null,2)}
302
+ `)};async function p5(e,t){try{let r=e.compose||t.projectConfig.compose_file,n=await X4({apiToken:e.apiToken,interactive:e.interactive}),o=await Q4({dockerComposePath:r,interactive:e.interactive}),s;if(e.preLaunchScript){if(!hr.existsSync(e.preLaunchScript))throw new Error(`Pre-launch script file not found: ${e.preLaunchScript}`);s=hr.readFileSync(e.preLaunchScript,"utf8")}let a=Buffer.byteLength(o,"utf8"),i=s?Buffer.byteLength(s,"utf8"):0,c=a+i;if(c>kc){let d=kc/1024,g=Math.ceil(c/1024);throw new Error(`Combined size of docker compose file and pre-launch script is too large (${g}KB). Maximum allowed size is ${d}KB.`)}let m={...e,env:e.env&&e.env.length>0?e.env:t.projectConfig.env_file?[t.projectConfig.env_file]:void 0},u=await r$(m);e.debug&&(console.log("[DEBUG] context.cvmId:",JSON.stringify(t.cvmId)),console.log("[DEBUG] input.cvmId:",e.cvmId));let p=t.cvmId?Q.parse(t.cvmId).cvmId:void 0;e.debug&&(console.log("[DEBUG] resolved uuid:",p),console.log("[DEBUG] isUpdate:",!!p)),!!p?await i$({...e,uuid:p},o,u,n,t.stdout,s):await a$(e,o,u??[],n,t.stdout,t.stderr,t.projectConfig,s)}catch(r){throw e.json!==!1?t.stderr.write(`${JSON.stringify({success:!1,error:r instanceof Error?r.message:String(r),stack:e.debug&&r instanceof Error?r.stack:void 0},null,2)}
303
303
  `):t.stderr.write(`${af`${r instanceof Error?r.message:String(r)}`}
304
- `),r}}async function n$(e,t){try{return await c5(e,t),0}catch{return 1}}var m5=A({path:["deploy"],meta:XC,schema:QC,handler:n$});import{z as P$}from"zod";var u5={path:["docker"],meta:{name:"docker",description:"Docker Hub login and image management",stability:"deprecated"}};import g$ from"fs";import v5 from"path";import w5 from"inquirer";import{exec as m$,spawn as u$}from"child_process";import Mn from"fs";import g5 from"os";import Kc from"path";import{promisify as p$}from"util";import{execa as l$}from"execa";import f$ from"handlebars";import{INVALID as o$,ParseStatus as s$,ZodIssueCode as gi,ZodParsedType as p5,ZodType as a$,addIssueToContext as hi,z as l5}from"zod";var i$="ZodDecimal",c$=/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/,f5=class e extends a${constructor(){super(...arguments);this.max=this.lte;this.min=this.gte}_parse(r){if(r.data!==null&&typeof r.data=="object"&&"toNumber"in r.data&&(r.data=r.data.toNumber()),this._def.coerce&&(r.data=Number(r.data)),this._getType(r)!==p5.number){let a=this._getOrReturnCtx(r);return hi(a,{code:gi.invalid_type,expected:p5.number,received:a.parsedType}),o$}let o,s=new s$;for(let a of this._def.checks)if(a.kind==="precision"){let i=r.data.toString().match(c$);Math.max((i[1]?i[1].length:0)-(i[2]?Number.parseInt(i[2],10):0),0)>a.value&&(o=this._getOrReturnCtx(r,o),hi(o,{code:gi.custom,message:a.message,params:{precision:a.value}}),s.dirty())}else a.kind==="wholeNumber"?r.data.toString().split(".")[0].length>a.value&&(o=this._getOrReturnCtx(r,o),hi(o,{code:gi.custom,message:a.message,params:{wholeNumber:a.value}}),s.dirty()):a.kind==="min"?(a.inclusive?r.data<a.value:r.data<=a.value)&&(o=this._getOrReturnCtx(r,o),hi(o,{code:gi.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),s.dirty()):a.kind==="max"?(a.inclusive?r.data>a.value:r.data>=a.value)&&(o=this._getOrReturnCtx(r,o),hi(o,{code:gi.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),s.dirty()):a.kind==="finite"&&(Number.isFinite(r.data)||(o=this._getOrReturnCtx(r,o),hi(o,{code:gi.not_finite,message:a.message}),s.dirty()));return{status:s.value,value:r.data}}static{this.create=r=>new e({checks:[],typeName:i$,coerce:r?.coerce??!1})}setLimit(r,n,o,s){return new e({...this._def,checks:[...this._def.checks,{kind:r,value:n,inclusive:o,message:s}]})}_addCheck(r){return new e({...this._def,checks:[...this._def.checks,r]})}lte(r,n){return this.setLimit("max",r,!0,n)}lt(r,n){return this.setLimit("max",r,!1,n)}gt(r,n){return this.setLimit("min",r,!1,n)}gte(r,n){return this.setLimit("min",r,!0,n)}precision(r,n){return this._addCheck({kind:"precision",value:r,message:n})}wholeNumber(r,n){return this._addCheck({kind:"wholeNumber",value:r,message:n})}get minValue(){let r=null;for(let n of this._def.checks)n.kind==="min"&&(r===null||n.value>r)&&(r=n.value);return r}get maxValue(){let r=null;for(let n of this._def.checks)n.kind==="max"&&(r===null||n.value<r)&&(r=n.value);return r}positive(r){return this._addCheck({kind:"min",value:0,inclusive:!1,message:r})}negative(r){return this._addCheck({kind:"max",value:0,inclusive:!1,message:r})}nonpositive(r){return this._addCheck({kind:"max",value:0,inclusive:!0,message:r})}nonnegative(r){return this._addCheck({kind:"min",value:0,inclusive:!0,message:r})}finite(r){return this._addCheck({kind:"finite",message:r})}safe(r){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:r})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:r})}get isFinite(){let r=null,n=null;for(let o of this._def.checks){if(o.kind==="finite")return!0;o.kind==="min"?(n===null||o.value>n)&&(n=o.value):o.kind==="max"&&(r===null||o.value<r)&&(r=o.value)}return Number.isFinite(n)&&Number.isFinite(r)}},d5=l5.object({template:l5.string().min(1,"Template cannot be empty")});var Wc=p$(m$),h5=".phala-cloud/logs",d$=".phala-cloud/compose",y5=10,Bt=class{constructor(t,r,n){this.image=t,this.username=r||"",this.registry=n||""}ensureLogsDir(){let t=Kc.resolve(h5);Mn.existsSync(t)||Mn.mkdirSync(t,{recursive:!0})}getLogFilePath(t,r){let n=new Date().toISOString().replace(/[:.]/g,"-");return Kc.resolve(h5,`${r||this.image}-${t}-${n}.log`)}getSystemArchitecture(){let t=g5.arch();switch(t){case"arm":case"arm64":return"arm64";case"x64":return"amd64";default:return t}}spawnProcess(t,r,n,o){return new Promise((s,a)=>{let i=u$(t,r);this.ensureLogsDir();let c=this.getLogFilePath(n,o),m=Mn.createWriteStream(c,{flags:"a"}),u=[],p=(l,d=!1)=>{let g=l.toString().split(`
305
- `);m.write(l);for(let h of g)if(h.trim()){u.push(h),u.length>y5&&u.shift(),console.clear(),console.log(`Latest ${y5} lines (full log at ${c}):`),console.log("-".repeat(50));for(let y of u)d?console.error(y):console.log(y)}};i.stdout.on("data",l=>p(l)),i.stderr.on("data",l=>p(l,!0)),i.on("close",l=>{m.end(),l===0?(console.log(`
306
- Operation completed. Full log available at: ${c}`),s()):a(new Error(`Process exited with code ${l}. Check log file: ${c}`))}),i.on("error",l=>{m.end(),a(l)})})}setCredentials(t,r){this.username=t,r&&(this.registry=r)}async buildImage(t,r){try{let n=this.getSystemArchitecture(),o=`${this.username}/${this.image}:${r}`,s=f.startSpinner(`Building Docker image ${this.username}/${this.image}:${r}`);Kt(t);let a=["build","-t",o,"-f",t];return n==="arm64"&&(console.log("Detected arm64 architecture, using --platform linux/amd64"),a.push("--platform","linux/amd64")),a.push("."),await this.spawnProcess("docker",a,"build",this.image),s.stop(!0,`Docker image ${o} built successfully`),!0}catch(n){return f.error(`Failed to build Docker image: ${n instanceof Error?n.message:String(n)}`),!1}}async pushImage(t){try{let r=f.startSpinner(`Pushing Docker image ${t} to Docker Hub`);if(!await In())throw r.stop(!1),new Error('Docker credentials not found. Please log in first with "phala docker login"');let o=t;return console.log(`Pushing image ${o} to Docker Hub...`),await this.spawnProcess("docker",["push",o],"push",t.replace(/.*\/+([\w-]+):.*$/g,"$1")),r.stop(!0,`Docker image ${o} pushed successfully`),!0}catch(r){return f.error(`Failed to push Docker image: ${r instanceof Error?r.message:String(r)}`),!1}}async login(t,r,n){try{let o=f.startSpinner(`Logging in to Docker Hub as ${t}`);if(await this.checkLogin())return o.stop(!0,"Already logged in to Docker Hub"),this.setCredentials(t,n),!0;if(!r)throw o.stop(!1),new Error("Password is required for Docker login");try{await l$("docker",["login",...n?[n]:[],"-u",t,"--password-stdin"],{input:r,timeout:1e4})}catch(a){throw a.timedOut?(o.stop(!1),new Error("Docker login timed out. Please check your credentials and try again.")):a}return o.stop(!0,"Logged in to Docker Hub successfully"),this.setCredentials(t,n),!0}catch(o){return f.error(`Failed to login to Docker Hub: ${o instanceof Error?o.message:String(o)}`),!1}}async checkLogin(){try{let t=g5.homedir(),r=Kc.join(t,".docker","config.json");if(!Mn.existsSync(r))return!1;let n=JSON.parse(Mn.readFileSync(r,"utf-8"));return!!(n?.auths&&Object.keys(n.auths).length>0)}catch(t){return f.debug(`Docker login check failed: ${t instanceof Error?t.message:String(t)}`),!1}}async buildComposeFile(t,r,n){if(!this.username)throw new Error("Docker Hub username is required for building compose file");let o=n==="eliza"?T6:$6,s=d5.parse({template:o}),a=Kc.resolve(d$);Mn.existsSync(a)||(f.info(`Creating directory: ${a}`),Mn.mkdirSync(a,{recursive:!0}));let i=[];r&&(i=Mn.readFileSync(r,"utf-8").split(`
307
- `).filter(d=>d&&!d.startsWith("#")).map(d=>{let g=d.indexOf("#");return g>0?d.substring(0,g).trim():d.trim()}).filter(d=>d.includes("=")).map(d=>{let[g,h]=d.split("=",2),y=g.trim();return(h?h.trim():"")===""?null:`${y}=${y}`}).filter(Boolean));let c=t,u=f$.compile(s.template,{noEscape:!0})({imageName:c,envVars:i.map(l=>l.replace(/=.*/,`=\${${l.split("=")[0]}}`))}),p=Kc.join(a,`${t.replace(/.*\/+([\w-]+):.*$/g,"$1")}-tee-compose.yaml`);return Mn.writeFileSync(p,u),f.success(`Backup of docker compose file created at: ${p}`),p}async runComposeLocally(t,r){try{let n=f.startSpinner(`Running Docker Compose file at ${t}`);Kt(t);let o=["-f",t,"up","-d"];return r&&(Kt(r),o.splice(2,0,"--env-file",r)),await Wc(`docker compose ${o.join(" ")}`),n.stop(!0,"Docker Compose file running successfully"),!0}catch(n){return f.error(`Failed to run Docker Compose file: ${n instanceof Error?n.message:String(n)}`),!1}}async runSimulator(t,r){try{f.info(`Running TEE simulator with image ${t}`),f.info("Pulling latest simulator image..."),await Wc(`docker pull ${t}`),f.info("Starting simulator in background...");let{stdout:n}=await Wc(`docker run -d --name tee-simulator --rm -p ${r}:${r} ${t}`),o=n.trim();return f.success(`TEE simulator running successfully. Container ID: ${o}`),f.break(),f.break(),f.info("Useful commands:"),f.info(`- View logs: docker logs -f ${o}`),f.info(`- Stop simulator: docker stop ${o}`),Mg(`http://localhost:${r}`),!0}catch(n){return f.error(`Failed to run TEE simulator: ${n instanceof Error?n.message:String(n)}`),!1}}async stopSimulator(){try{let t=f.startSpinner("Stopping TEE simulator...");return await Wc("docker stop tee-simulator"),await cs(),t.stop(!0,"TEE simulator stopped successfully"),!0}catch(t){return f.error(`Failed to stop TEE simulator: ${t instanceof Error?t.message:String(t)}`),!1}}static async listLocalImages(){try{let{stdout:t}=await Wc('docker images --format "{{.Repository}}:{{.Tag}}"'),n=(await In())?.username;return t.split(`
308
- `).filter(s=>s&&!s.includes("<none>")).filter(s=>s.includes(`${n}/`)).map(s=>({imageName:s}))}catch(t){return f.error(`Failed to list local Docker images: ${t instanceof Error?t.message:String(t)}`),[]}}};import{z as mf}from"zod";var b5={name:"build",description:"Build a Docker image",stability:"unstable",options:[{name:"image",shorthand:"i",description:"Image name",type:"string",target:"image"},{name:"tag",shorthand:"t",description:"Image tag",type:"string",target:"tag"},{name:"file",shorthand:"f",description:"Path to Dockerfile",type:"string",target:"file"}],examples:[{name:"Build docker image with prompts",value:"phala docker build"},{name:"Build docker image with options",value:"phala docker build --image myapp --tag latest"}]},x5=mf.object({image:mf.string().optional(),tag:mf.string().optional(),file:mf.string().default("Dockerfile")});async function h$(e,t){try{let r=await In();if(!r)return f.error('Docker information not found. Please login first with "phala docker login"'),1;let n=e.image;n||(n=(await w5.prompt([{type:"input",name:"image",message:"Enter the Docker image name:",validate:m=>m.trim()?!0:"Image name is required"}])).image);let o=e.tag;o||(o=(await w5.prompt([{type:"input",name:"tag",message:"Enter the Docker image tag:",default:"latest",validate:m=>m.trim()?!0:"Tag is required"}])).tag);let s=v5.resolve(process.cwd(),e.file);if(!g$.existsSync(s)){f.info(`Default Dockerfile not found at ${s}`);let c=await Pn("Enter the path to your Dockerfile:","Dockerfile","file");s=v5.resolve(process.cwd(),c)}return await new Bt(n,r.username,r.registry).buildImage(s,o)?(f.success(`Docker image ${r.username}/${n}:${o} built successfully`),0):(f.error("Failed to build Docker image"),1)}catch(r){return f.error("Failed to build Docker image"),f.logDetailedError(r),1}}var C5=A({path:["docker","build"],meta:b5,schema:x5,handler:h$});import Zc from"fs";import uf from"path";import Yc from"inquirer";import{z as Jc}from"zod";var S5={name:"generate",description:"Generate a Docker Compose file",stability:"unstable",options:[{name:"image",shorthand:"i",description:"Docker image name (e.g. phala/phala-cloud)",type:"string",target:"image"},{name:"env-file",shorthand:"e",description:"Path to env file",type:"string",target:"envFile"},{name:"output",shorthand:"o",description:"Output path for docker-compose.yml",type:"string",target:"output"},{name:"template",description:"Template for docker-compose.yml",type:"string",target:"template"}]},k5=Jc.object({image:Jc.string().optional(),envFile:Jc.string().optional(),output:Jc.string().optional(),template:Jc.string().optional()});async function y$(e){if(e)return e;let t=await Bt.listLocalImages();if(t.length===0)throw new Error('No local Docker images found. Please build an image first with "phala docker build"');let r=Array.from(new Set(t.map(o=>o.imageName))),{selectedImage:n}=await Yc.prompt([{type:"list",name:"selectedImage",message:"Select an image to use in the compose file:",choices:r}]);return n}async function b$(e){if(e)return Kt(e),e;let t=uf.join(process.cwd(),".env");if(Zc.existsSync(t)){let{useDefault:n}=await Yc.prompt([{type:"confirm",name:"useDefault",message:"Use .env file in current directory?",default:!0}]);if(n)return t}let{envPath:r}=await Yc.prompt([{type:"input",name:"envPath",message:"Enter path to environment variables file:",validate:n=>{try{return Kt(n),!0}catch{return`File not found: ${n}`}}}]);return r}async function x$(e){let t=e??uf.join(process.cwd(),"docker-compose.yml");if(Zc.existsSync(t)){let{confirmOverwrite:n}=await Yc.prompt([{type:"confirm",name:"confirmOverwrite",message:`File ${t} already exists. Overwrite?`,default:!1}]);if(!n){let{customPath:o}=await Yc.prompt([{type:"input",name:"customPath",message:"Enter alternative output path:",default:uf.join(process.cwd(),"docker-generated-compose.yml")}]);t=o}}let r=uf.dirname(t);return Zc.existsSync(r)||(f.info(`Creating directory: ${r}`),Zc.mkdirSync(r,{recursive:!0})),t}async function v$(e,t){try{let r=await In();if(!r||!r.username)throw new Error('Docker Hub username not found. Please login first with "phala docker login"');let n=await y$(e.image),o=await b$(e.envFile),s=await x$(e.output);o?f.info(`Generating Docker Compose file for ${n} using env file: ${o}`):f.info(`Generating Docker Compose file for ${n} without env file`);let i=await new Bt("",r.username,r.registry).buildComposeFile(n,o,e.template);return i!==s&&Zc.copyFileSync(i,s),f.success(`Docker Compose file generated successfully: ${s}`),0}catch(r){return f.error("Failed to generate Docker Compose file"),f.logDetailedError(r),1}}var E5=A({path:["docker","generate"],meta:S5,schema:k5,handler:v$});import P5 from"prompts";import{z as pf}from"zod";var _5={name:"login",description:"Login to Docker Hub",stability:"unstable",options:[{name:"username",shorthand:"u",description:"Docker Hub username",type:"string",target:"username"},{name:"password",shorthand:"p",description:"Docker Hub password",type:"string",target:"password"},{name:"registry",shorthand:"r",description:"Docker registry URL",type:"string",target:"registry"}]},I5=pf.object({username:pf.string().optional(),password:pf.string().optional(),registry:pf.string().optional()});async function w$(e,t){try{let r=e.username,n=e.password,o=e.registry;if(!r){f.info("First we need your Docker Hub username to check if you are already logged in.");let c=await P5({type:"text",name:"username",message:"Enter your Docker Hub username:",validate:m=>m.length>0?!0:"Username cannot be empty"});if(!c.username)return f.error("Username is required"),1;r=c.username}let s=new Bt("",r,o);if(await s.login(r))return f.success(`${r} is logged in to Docker Hub`),await dg({username:r,registry:o||null}),0;if(!n){let c=await P5({type:"password",name:"password",message:"Enter your Docker Hub password:",validate:m=>m.length>0?!0:"Password cannot be empty"});if(!c.password)return f.error("Password is required"),1;n=c.password}return await s.login(r,n,o)?(await dg({username:r,registry:o||null}),f.success("Logged in to Docker Hub successfully"),0):(f.error("Failed to login to Docker Hub"),1)}catch(r){return f.error("Failed to login to Docker Hub"),f.logDetailedError(r),1}}var A5=A({path:["docker","login"],meta:_5,schema:I5,handler:w$});import C$ from"inquirer";import{z as T5}from"zod";var $5={name:"push",description:"Push a Docker image to Docker Hub",stability:"unstable",options:[{name:"image",shorthand:"i",description:"Full image name (e.g. username/image:tag)",type:"string",target:"image"}]},R5=T5.object({image:T5.string().optional()});async function S$(e){if(e)return e;let t=await Bt.listLocalImages();if(t.length===0)throw new Error('No local Docker images found. Please build an image first with "phala docker build"');let r=Array.from(new Set(t.map(o=>o.imageName))),{selectedImage:n}=await C$.prompt([{type:"list",name:"selectedImage",message:"Select an image to push:",choices:r}]);return n}async function k$(e,t){try{let r=await In();if(!r)throw new Error('Docker information not found. Please login first with "phala docker login"');let n=await S$(e.image);return await new Bt("",r.username,r.registry).pushImage(n)?(f.success(`Docker image ${n} pushed successfully`),0):(f.error("Failed to push Docker image"),1)}catch(r){return f.error("Failed to push Docker image"),f.logDetailedError(r),1}}var M5=A({path:["docker","push"],meta:$5,schema:R5,handler:k$});import L5 from"fs";import B5 from"path";import ff from"inquirer";import{z as lf}from"zod";var F5={name:"run",description:"Run a Docker Compose setup",stability:"unstable",options:[{name:"compose",shorthand:"c",description:"Path to docker-compose.yml file",type:"string",target:"compose"},{name:"env-file",shorthand:"e",description:"Path to environment variables file",type:"string",target:"envFile"},{name:"skip-env",description:"Skip env file prompt",type:"boolean",target:"skipEnv"}]},N5=lf.object({compose:lf.string().optional(),envFile:lf.string().optional(),skipEnv:lf.boolean().default(!0)});async function E$(e){if(e)return Kt(e),e;let t=B5.join(process.cwd(),"docker-compose.yml");if(L5.existsSync(t)){let{useDefault:n}=await ff.prompt([{type:"confirm",name:"useDefault",message:"Use docker-compose.yml in current directory?",default:!0}]);if(n)return t}let{composePath:r}=await ff.prompt([{type:"input",name:"composePath",message:"Enter path to docker-compose.yml file:",validate:n=>{try{return Kt(n),!0}catch{return"File not found"}}}]);return r}async function _$(e,t){if(t)return e;if(e)return Kt(e),e;let r=B5.join(process.cwd(),".env");if(L5.existsSync(r)){let{useDefault:o}=await ff.prompt([{type:"confirm",name:"useDefault",message:"Use .env file in current directory?",default:!0}]);if(o)return r}let{envPath:n}=await ff.prompt([{type:"input",name:"envPath",message:"Enter path to environment variables file:",validate:o=>{try{return Kt(o),!0}catch{return`File not found: ${o}`}}}]);return n}async function I$(e,t){try{let r=await E$(e.compose),n=await _$(e.envFile,e.skipEnv),o=new Bt("");return n?(f.info(`Validating env file: ${n}`),Kt(n),f.info(`Running Docker Compose with compose file: ${r} and env file: ${n}`)):f.info(`Running Docker Compose with compose file: ${r} without env file`),await o.runComposeLocally(r,n)?(f.success("Docker Compose is running"),0):(f.error("Failed to run Docker Compose"),1)}catch(r){return f.error("Failed to run Docker Compose"),f.logDetailedError(r),1}}var D5=A({path:["docker","run"],meta:F5,schema:N5,handler:I$});var A$={name:"docker",description:"Docker Hub login and image management",stability:"deprecated"},T$=P$.object({});async function $$(e,t){return t.stdout.write(`Available docker subcommands: login, build, push, generate, run. Use 'phala docker <command> --help' for details.
309
- `),0}var R$=A({path:["docker"],meta:A$,schema:T$,handler:$$}),Hg={group:u5,commands:[R$,A5,C5,M5,E5,D5]};import qg from"path";import G5 from"fs-extra";import cn from"chalk";import Gg from"inquirer";import yi from"chalk";import M$ from"open";import F$ from"ora";import N$ from"prompts";import{z as us}from"zod";var U5={name:"login",category:"profile",description:"Authenticate with Phala Cloud",stability:"stable",arguments:[{name:"api-key",description:"API key (triggers device flow if omitted)",required:!1,target:"apiKey"}],options:[{name:"manual",description:"Enter API key manually",type:"boolean"},{name:"no-open",description:"Skip browser launch",type:"boolean",target:"noOpen"},{name:"profile",description:"Profile name (defaults to workspace slug)",type:"string",target:"profile"},{name:"print-token",description:"Print token to stdout without saving",type:"boolean",target:"printToken"},{name:"url",description:"Custom API endpoint URL",type:"string",target:"url"}]},z5=us.object({apiKey:us.string().min(1,"API key cannot be empty").optional(),manual:us.boolean().optional(),noOpen:us.boolean().optional(),profile:us.string().min(1).optional(),printToken:us.boolean().optional(),url:us.string().url().optional()});function O5(e){let{detail:t}=e;if(t&&typeof t=="object"&&!Array.isArray(t)){let r=t;if(r.error&&typeof r.error=="string"&&!r.error_code)return{error:r.error,error_description:typeof r.error_description=="string"?r.error_description:void 0}}return null}function Eo(e,t=""){e.write(`${t}
310
- `)}async function df(e){let t=await Ul(e.apiKey,{baseURL:e.baseURL}),r=await gt(t);if(!r.success||!r.data?.user.username)throw new Error("Invalid API key");return r.data}async function L$(e){let t,r=await N$({type:"password",name:"apiKey",message:"Enter your API key:",validate:async n=>{if(!n||n.trim().length===0)return"API key cannot be empty";try{return t=await df({apiKey:n,baseURL:e.baseURL}),!0}catch(o){return o instanceof Error?o.message:"Invalid API key"}}});if(!r.apiKey)throw new Error("API key input cancelled");return t||(t=await df({apiKey:r.apiKey,baseURL:e.baseURL})),{apiKey:r.apiKey,user:t}}async function B$(e,t){let r=fr({useCookieAuth:!0,baseURL:t.baseURL}),n=await r.post("/auth/device/code",{client_id:"phala-cli",scope:"user:profile cvms:* nodes:*"}),{device_code:o,user_code:s,verification_uri_complete:a,interval:i,expires_in:c}=n,m=i,u=t.printToken?e.stderr:e.stdout;if(Eo(u),Eo(u,yi.bold("To authenticate, visit:")),Eo(u,yi.cyan(a)),Eo(u),Eo(u,`${yi.bold("And enter code:")} ${yi.yellow(s)}`),Eo(u),!t.noOpen)try{await M$(a),Eo(u,"Opening browser automatically...")}catch{Eo(u,"Could not open browser automatically. Please visit the URL above.")}let p=F$("Waiting for authorization...").start(),l=Date.now()+c*1e3;for(;Date.now()<l;){await new Promise(d=>setTimeout(d,m*1e3));try{let d=await r.post("/auth/device/token",{device_code:o,grant_type:"urn:ietf:params:oauth:grant-type:device_code"});return p.succeed("Authorization successful!"),d.access_token}catch(d){if(d instanceof Ec)throw p.stop(),new Error(Il(d));if(d instanceof _l){let g=O5(d);if(g)switch(g.error){case"authorization_pending":continue;case"slow_down":m+=5;continue;case"expired_token":throw p.fail("Authorization expired"),new Error(g.error_description||"Device authorization expired. Please try again.");case"access_denied":throw p.fail("Authorization denied"),new Error(g.error_description||"You denied the authorization request.");default:throw p.fail("Authorization failed"),new Error(`Authorization failed: ${g.error_description||g.error}`)}}throw p.fail("Request failed"),d}}throw p.fail("Authorization timed out"),new Error("Authorization timed out. Please try again.")}async function gf(e,t){try{if(e.printToken&&e.manual)throw new Error("--print-token is not compatible with --manual");let r=e.url||t.env.PHALA_CLOUD_API_PREFIX||on,n,o;if(e.apiKey)n=e.apiKey,o=await df({apiKey:n,baseURL:r});else if(e.manual){let c=await L$({baseURL:r});n=c.apiKey,o=c.user}else n=await B$(t,{noOpen:e.noOpen,printToken:e.printToken,baseURL:r}),o=await df({apiKey:n,baseURL:r});if(!o)throw new Error("Failed to validate API key");if(e.printToken)return t.stdout.write(`${n}
311
- `),0;let s=o.workspace.name||"default",a=o.workspace.slug||void 0,i=e.profile||a||"default";return ci({profileName:i,token:n,apiPrefix:r,workspaceName:s,workspaceSlug:a,user:{username:o.user.username,email:o.user.email},setCurrent:!0}),t.stdout.write(yi.green(`Welcome ${o.user.username}! Credentials saved successfully (profile: ${i})
304
+ `),r}}async function c$(e,t){try{return await p5(e,t),0}catch{return 1}}var l5=A({path:["deploy"],meta:t5,schema:r5,handler:c$});import{z as M$}from"zod";var f5={path:["docker"],meta:{name:"docker",description:"Docker Hub login and image management",stability:"deprecated"}};import v$ from"fs";import S5 from"path";import k5 from"inquirer";import{exec as d$,spawn as g$}from"child_process";import Mn from"fs";import b5 from"os";import Kc from"path";import{promisify as h$}from"util";import{execa as y$}from"execa";import b$ from"handlebars";import{INVALID as m$,ParseStatus as u$,ZodIssueCode as gi,ZodParsedType as d5,ZodType as p$,addIssueToContext as hi,z as g5}from"zod";var l$="ZodDecimal",f$=/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/,h5=class e extends p${constructor(){super(...arguments);this.max=this.lte;this.min=this.gte}_parse(r){if(r.data!==null&&typeof r.data=="object"&&"toNumber"in r.data&&(r.data=r.data.toNumber()),this._def.coerce&&(r.data=Number(r.data)),this._getType(r)!==d5.number){let a=this._getOrReturnCtx(r);return hi(a,{code:gi.invalid_type,expected:d5.number,received:a.parsedType}),m$}let o,s=new u$;for(let a of this._def.checks)if(a.kind==="precision"){let i=r.data.toString().match(f$);Math.max((i[1]?i[1].length:0)-(i[2]?Number.parseInt(i[2],10):0),0)>a.value&&(o=this._getOrReturnCtx(r,o),hi(o,{code:gi.custom,message:a.message,params:{precision:a.value}}),s.dirty())}else a.kind==="wholeNumber"?r.data.toString().split(".")[0].length>a.value&&(o=this._getOrReturnCtx(r,o),hi(o,{code:gi.custom,message:a.message,params:{wholeNumber:a.value}}),s.dirty()):a.kind==="min"?(a.inclusive?r.data<a.value:r.data<=a.value)&&(o=this._getOrReturnCtx(r,o),hi(o,{code:gi.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),s.dirty()):a.kind==="max"?(a.inclusive?r.data>a.value:r.data>=a.value)&&(o=this._getOrReturnCtx(r,o),hi(o,{code:gi.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),s.dirty()):a.kind==="finite"&&(Number.isFinite(r.data)||(o=this._getOrReturnCtx(r,o),hi(o,{code:gi.not_finite,message:a.message}),s.dirty()));return{status:s.value,value:r.data}}static{this.create=r=>new e({checks:[],typeName:l$,coerce:r?.coerce??!1})}setLimit(r,n,o,s){return new e({...this._def,checks:[...this._def.checks,{kind:r,value:n,inclusive:o,message:s}]})}_addCheck(r){return new e({...this._def,checks:[...this._def.checks,r]})}lte(r,n){return this.setLimit("max",r,!0,n)}lt(r,n){return this.setLimit("max",r,!1,n)}gt(r,n){return this.setLimit("min",r,!1,n)}gte(r,n){return this.setLimit("min",r,!0,n)}precision(r,n){return this._addCheck({kind:"precision",value:r,message:n})}wholeNumber(r,n){return this._addCheck({kind:"wholeNumber",value:r,message:n})}get minValue(){let r=null;for(let n of this._def.checks)n.kind==="min"&&(r===null||n.value>r)&&(r=n.value);return r}get maxValue(){let r=null;for(let n of this._def.checks)n.kind==="max"&&(r===null||n.value<r)&&(r=n.value);return r}positive(r){return this._addCheck({kind:"min",value:0,inclusive:!1,message:r})}negative(r){return this._addCheck({kind:"max",value:0,inclusive:!1,message:r})}nonpositive(r){return this._addCheck({kind:"max",value:0,inclusive:!0,message:r})}nonnegative(r){return this._addCheck({kind:"min",value:0,inclusive:!0,message:r})}finite(r){return this._addCheck({kind:"finite",message:r})}safe(r){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:r})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:r})}get isFinite(){let r=null,n=null;for(let o of this._def.checks){if(o.kind==="finite")return!0;o.kind==="min"?(n===null||o.value>n)&&(n=o.value):o.kind==="max"&&(r===null||o.value<r)&&(r=o.value)}return Number.isFinite(n)&&Number.isFinite(r)}},y5=g5.object({template:g5.string().min(1,"Template cannot be empty")});var Wc=h$(d$),x5=".phala-cloud/logs",x$=".phala-cloud/compose",v5=10,Bt=class{constructor(t,r,n){this.image=t,this.username=r||"",this.registry=n||""}ensureLogsDir(){let t=Kc.resolve(x5);Mn.existsSync(t)||Mn.mkdirSync(t,{recursive:!0})}getLogFilePath(t,r){let n=new Date().toISOString().replace(/[:.]/g,"-");return Kc.resolve(x5,`${r||this.image}-${t}-${n}.log`)}getSystemArchitecture(){let t=b5.arch();switch(t){case"arm":case"arm64":return"arm64";case"x64":return"amd64";default:return t}}spawnProcess(t,r,n,o){return new Promise((s,a)=>{let i=g$(t,r);this.ensureLogsDir();let c=this.getLogFilePath(n,o),m=Mn.createWriteStream(c,{flags:"a"}),u=[],p=(f,d=!1)=>{let g=f.toString().split(`
305
+ `);m.write(f);for(let h of g)if(h.trim()){u.push(h),u.length>v5&&u.shift(),console.clear(),console.log(`Latest ${v5} lines (full log at ${c}):`),console.log("-".repeat(50));for(let y of u)d?console.error(y):console.log(y)}};i.stdout.on("data",f=>p(f)),i.stderr.on("data",f=>p(f,!0)),i.on("close",f=>{m.end(),f===0?(console.log(`
306
+ Operation completed. Full log available at: ${c}`),s()):a(new Error(`Process exited with code ${f}. Check log file: ${c}`))}),i.on("error",f=>{m.end(),a(f)})})}setCredentials(t,r){this.username=t,r&&(this.registry=r)}async buildImage(t,r){try{let n=this.getSystemArchitecture(),o=`${this.username}/${this.image}:${r}`,s=l.startSpinner(`Building Docker image ${this.username}/${this.image}:${r}`);Kt(t);let a=["build","-t",o,"-f",t];return n==="arm64"&&(console.log("Detected arm64 architecture, using --platform linux/amd64"),a.push("--platform","linux/amd64")),a.push("."),await this.spawnProcess("docker",a,"build",this.image),s.stop(!0,`Docker image ${o} built successfully`),!0}catch(n){return l.error(`Failed to build Docker image: ${n instanceof Error?n.message:String(n)}`),!1}}async pushImage(t){try{let r=l.startSpinner(`Pushing Docker image ${t} to Docker Hub`);if(!await In())throw r.stop(!1),new Error('Docker credentials not found. Please log in first with "phala docker login"');let o=t;return console.log(`Pushing image ${o} to Docker Hub...`),await this.spawnProcess("docker",["push",o],"push",t.replace(/.*\/+([\w-]+):.*$/g,"$1")),r.stop(!0,`Docker image ${o} pushed successfully`),!0}catch(r){return l.error(`Failed to push Docker image: ${r instanceof Error?r.message:String(r)}`),!1}}async login(t,r,n){try{let o=l.startSpinner(`Logging in to Docker Hub as ${t}`);if(await this.checkLogin())return o.stop(!0,"Already logged in to Docker Hub"),this.setCredentials(t,n),!0;if(!r)throw o.stop(!1),new Error("Password is required for Docker login");try{await y$("docker",["login",...n?[n]:[],"-u",t,"--password-stdin"],{input:r,timeout:1e4})}catch(a){throw a.timedOut?(o.stop(!1),new Error("Docker login timed out. Please check your credentials and try again.")):a}return o.stop(!0,"Logged in to Docker Hub successfully"),this.setCredentials(t,n),!0}catch(o){return l.error(`Failed to login to Docker Hub: ${o instanceof Error?o.message:String(o)}`),!1}}async checkLogin(){try{let t=b5.homedir(),r=Kc.join(t,".docker","config.json");if(!Mn.existsSync(r))return!1;let n=JSON.parse(Mn.readFileSync(r,"utf-8"));return!!(n?.auths&&Object.keys(n.auths).length>0)}catch(t){return l.debug(`Docker login check failed: ${t instanceof Error?t.message:String(t)}`),!1}}async buildComposeFile(t,r,n){if(!this.username)throw new Error("Docker Hub username is required for building compose file");let o=n==="eliza"?M6:F6,s=y5.parse({template:o}),a=Kc.resolve(x$);Mn.existsSync(a)||(l.info(`Creating directory: ${a}`),Mn.mkdirSync(a,{recursive:!0}));let i=[];r&&(i=Mn.readFileSync(r,"utf-8").split(`
307
+ `).filter(d=>d&&!d.startsWith("#")).map(d=>{let g=d.indexOf("#");return g>0?d.substring(0,g).trim():d.trim()}).filter(d=>d.includes("=")).map(d=>{let[g,h]=d.split("=",2),y=g.trim();return(h?h.trim():"")===""?null:`${y}=${y}`}).filter(Boolean));let c=t,u=b$.compile(s.template,{noEscape:!0})({imageName:c,envVars:i.map(f=>f.replace(/=.*/,`=\${${f.split("=")[0]}}`))}),p=Kc.join(a,`${t.replace(/.*\/+([\w-]+):.*$/g,"$1")}-tee-compose.yaml`);return Mn.writeFileSync(p,u),l.success(`Backup of docker compose file created at: ${p}`),p}async runComposeLocally(t,r){try{let n=l.startSpinner(`Running Docker Compose file at ${t}`);Kt(t);let o=["-f",t,"up","-d"];return r&&(Kt(r),o.splice(2,0,"--env-file",r)),await Wc(`docker compose ${o.join(" ")}`),n.stop(!0,"Docker Compose file running successfully"),!0}catch(n){return l.error(`Failed to run Docker Compose file: ${n instanceof Error?n.message:String(n)}`),!1}}async runSimulator(t,r){try{l.info(`Running TEE simulator with image ${t}`),l.info("Pulling latest simulator image..."),await Wc(`docker pull ${t}`),l.info("Starting simulator in background...");let{stdout:n}=await Wc(`docker run -d --name tee-simulator --rm -p ${r}:${r} ${t}`),o=n.trim();return l.success(`TEE simulator running successfully. Container ID: ${o}`),l.break(),l.break(),l.info("Useful commands:"),l.info(`- View logs: docker logs -f ${o}`),l.info(`- Stop simulator: docker stop ${o}`),Mg(`http://localhost:${r}`),!0}catch(n){return l.error(`Failed to run TEE simulator: ${n instanceof Error?n.message:String(n)}`),!1}}async stopSimulator(){try{let t=l.startSpinner("Stopping TEE simulator...");return await Wc("docker stop tee-simulator"),await ms(),t.stop(!0,"TEE simulator stopped successfully"),!0}catch(t){return l.error(`Failed to stop TEE simulator: ${t instanceof Error?t.message:String(t)}`),!1}}static async listLocalImages(){try{let{stdout:t}=await Wc('docker images --format "{{.Repository}}:{{.Tag}}"'),n=(await In())?.username;return t.split(`
308
+ `).filter(s=>s&&!s.includes("<none>")).filter(s=>s.includes(`${n}/`)).map(s=>({imageName:s}))}catch(t){return l.error(`Failed to list local Docker images: ${t instanceof Error?t.message:String(t)}`),[]}}};import{z as mf}from"zod";var w5={name:"build",description:"Build a Docker image",stability:"unstable",options:[{name:"image",shorthand:"i",description:"Image name",type:"string",target:"image"},{name:"tag",shorthand:"t",description:"Image tag",type:"string",target:"tag"},{name:"file",shorthand:"f",description:"Path to Dockerfile",type:"string",target:"file"}],examples:[{name:"Build docker image with prompts",value:"phala docker build"},{name:"Build docker image with options",value:"phala docker build --image myapp --tag latest"}]},C5=mf.object({image:mf.string().optional(),tag:mf.string().optional(),file:mf.string().default("Dockerfile")});async function w$(e,t){try{let r=await In();if(!r)return l.error('Docker information not found. Please login first with "phala docker login"'),1;let n=e.image;n||(n=(await k5.prompt([{type:"input",name:"image",message:"Enter the Docker image name:",validate:m=>m.trim()?!0:"Image name is required"}])).image);let o=e.tag;o||(o=(await k5.prompt([{type:"input",name:"tag",message:"Enter the Docker image tag:",default:"latest",validate:m=>m.trim()?!0:"Tag is required"}])).tag);let s=S5.resolve(process.cwd(),e.file);if(!v$.existsSync(s)){l.info(`Default Dockerfile not found at ${s}`);let c=await Pn("Enter the path to your Dockerfile:","Dockerfile","file");s=S5.resolve(process.cwd(),c)}return await new Bt(n,r.username,r.registry).buildImage(s,o)?(l.success(`Docker image ${r.username}/${n}:${o} built successfully`),0):(l.error("Failed to build Docker image"),1)}catch(r){return l.error("Failed to build Docker image"),l.logDetailedError(r),1}}var E5=A({path:["docker","build"],meta:w5,schema:C5,handler:w$});import Zc from"fs";import uf from"path";import Yc from"inquirer";import{z as Jc}from"zod";var _5={name:"generate",description:"Generate a Docker Compose file",stability:"unstable",options:[{name:"image",shorthand:"i",description:"Docker image name (e.g. phala/phala-cloud)",type:"string",target:"image"},{name:"env-file",shorthand:"e",description:"Path to env file",type:"string",target:"envFile"},{name:"output",shorthand:"o",description:"Output path for docker-compose.yml",type:"string",target:"output"},{name:"template",description:"Template for docker-compose.yml",type:"string",target:"template"}]},I5=Jc.object({image:Jc.string().optional(),envFile:Jc.string().optional(),output:Jc.string().optional(),template:Jc.string().optional()});async function C$(e){if(e)return e;let t=await Bt.listLocalImages();if(t.length===0)throw new Error('No local Docker images found. Please build an image first with "phala docker build"');let r=Array.from(new Set(t.map(o=>o.imageName))),{selectedImage:n}=await Yc.prompt([{type:"list",name:"selectedImage",message:"Select an image to use in the compose file:",choices:r}]);return n}async function S$(e){if(e)return Kt(e),e;let t=uf.join(process.cwd(),".env");if(Zc.existsSync(t)){let{useDefault:n}=await Yc.prompt([{type:"confirm",name:"useDefault",message:"Use .env file in current directory?",default:!0}]);if(n)return t}let{envPath:r}=await Yc.prompt([{type:"input",name:"envPath",message:"Enter path to environment variables file:",validate:n=>{try{return Kt(n),!0}catch{return`File not found: ${n}`}}}]);return r}async function k$(e){let t=e??uf.join(process.cwd(),"docker-compose.yml");if(Zc.existsSync(t)){let{confirmOverwrite:n}=await Yc.prompt([{type:"confirm",name:"confirmOverwrite",message:`File ${t} already exists. Overwrite?`,default:!1}]);if(!n){let{customPath:o}=await Yc.prompt([{type:"input",name:"customPath",message:"Enter alternative output path:",default:uf.join(process.cwd(),"docker-generated-compose.yml")}]);t=o}}let r=uf.dirname(t);return Zc.existsSync(r)||(l.info(`Creating directory: ${r}`),Zc.mkdirSync(r,{recursive:!0})),t}async function E$(e,t){try{let r=await In();if(!r||!r.username)throw new Error('Docker Hub username not found. Please login first with "phala docker login"');let n=await C$(e.image),o=await S$(e.envFile),s=await k$(e.output);o?l.info(`Generating Docker Compose file for ${n} using env file: ${o}`):l.info(`Generating Docker Compose file for ${n} without env file`);let i=await new Bt("",r.username,r.registry).buildComposeFile(n,o,e.template);return i!==s&&Zc.copyFileSync(i,s),l.success(`Docker Compose file generated successfully: ${s}`),0}catch(r){return l.error("Failed to generate Docker Compose file"),l.logDetailedError(r),1}}var P5=A({path:["docker","generate"],meta:_5,schema:I5,handler:E$});import $5 from"prompts";import{z as pf}from"zod";var A5={name:"login",description:"Login to Docker Hub",stability:"unstable",options:[{name:"username",shorthand:"u",description:"Docker Hub username",type:"string",target:"username"},{name:"password",shorthand:"p",description:"Docker Hub password",type:"string",target:"password"},{name:"registry",shorthand:"r",description:"Docker registry URL",type:"string",target:"registry"}]},T5=pf.object({username:pf.string().optional(),password:pf.string().optional(),registry:pf.string().optional()});async function _$(e,t){try{let r=e.username,n=e.password,o=e.registry;if(!r){l.info("First we need your Docker Hub username to check if you are already logged in.");let c=await $5({type:"text",name:"username",message:"Enter your Docker Hub username:",validate:m=>m.length>0?!0:"Username cannot be empty"});if(!c.username)return l.error("Username is required"),1;r=c.username}let s=new Bt("",r,o);if(await s.login(r))return l.success(`${r} is logged in to Docker Hub`),await dg({username:r,registry:o||null}),0;if(!n){let c=await $5({type:"password",name:"password",message:"Enter your Docker Hub password:",validate:m=>m.length>0?!0:"Password cannot be empty"});if(!c.password)return l.error("Password is required"),1;n=c.password}return await s.login(r,n,o)?(await dg({username:r,registry:o||null}),l.success("Logged in to Docker Hub successfully"),0):(l.error("Failed to login to Docker Hub"),1)}catch(r){return l.error("Failed to login to Docker Hub"),l.logDetailedError(r),1}}var R5=A({path:["docker","login"],meta:A5,schema:T5,handler:_$});import I$ from"inquirer";import{z as M5}from"zod";var F5={name:"push",description:"Push a Docker image to Docker Hub",stability:"unstable",options:[{name:"image",shorthand:"i",description:"Full image name (e.g. username/image:tag)",type:"string",target:"image"}]},N5=M5.object({image:M5.string().optional()});async function P$(e){if(e)return e;let t=await Bt.listLocalImages();if(t.length===0)throw new Error('No local Docker images found. Please build an image first with "phala docker build"');let r=Array.from(new Set(t.map(o=>o.imageName))),{selectedImage:n}=await I$.prompt([{type:"list",name:"selectedImage",message:"Select an image to push:",choices:r}]);return n}async function A$(e,t){try{let r=await In();if(!r)throw new Error('Docker information not found. Please login first with "phala docker login"');let n=await P$(e.image);return await new Bt("",r.username,r.registry).pushImage(n)?(l.success(`Docker image ${n} pushed successfully`),0):(l.error("Failed to push Docker image"),1)}catch(r){return l.error("Failed to push Docker image"),l.logDetailedError(r),1}}var L5=A({path:["docker","push"],meta:F5,schema:N5,handler:A$});import U5 from"fs";import z5 from"path";import ff from"inquirer";import{z as lf}from"zod";var B5={name:"run",description:"Run a Docker Compose setup",stability:"unstable",options:[{name:"compose",shorthand:"c",description:"Path to docker-compose.yml file",type:"string",target:"compose"},{name:"env-file",shorthand:"e",description:"Path to environment variables file",type:"string",target:"envFile"},{name:"skip-env",description:"Skip env file prompt",type:"boolean",target:"skipEnv"}]},D5=lf.object({compose:lf.string().optional(),envFile:lf.string().optional(),skipEnv:lf.boolean().default(!0)});async function T$(e){if(e)return Kt(e),e;let t=z5.join(process.cwd(),"docker-compose.yml");if(U5.existsSync(t)){let{useDefault:n}=await ff.prompt([{type:"confirm",name:"useDefault",message:"Use docker-compose.yml in current directory?",default:!0}]);if(n)return t}let{composePath:r}=await ff.prompt([{type:"input",name:"composePath",message:"Enter path to docker-compose.yml file:",validate:n=>{try{return Kt(n),!0}catch{return"File not found"}}}]);return r}async function $$(e,t){if(t)return e;if(e)return Kt(e),e;let r=z5.join(process.cwd(),".env");if(U5.existsSync(r)){let{useDefault:o}=await ff.prompt([{type:"confirm",name:"useDefault",message:"Use .env file in current directory?",default:!0}]);if(o)return r}let{envPath:n}=await ff.prompt([{type:"input",name:"envPath",message:"Enter path to environment variables file:",validate:o=>{try{return Kt(o),!0}catch{return`File not found: ${o}`}}}]);return n}async function R$(e,t){try{let r=await T$(e.compose),n=await $$(e.envFile,e.skipEnv),o=new Bt("");return n?(l.info(`Validating env file: ${n}`),Kt(n),l.info(`Running Docker Compose with compose file: ${r} and env file: ${n}`)):l.info(`Running Docker Compose with compose file: ${r} without env file`),await o.runComposeLocally(r,n)?(l.success("Docker Compose is running"),0):(l.error("Failed to run Docker Compose"),1)}catch(r){return l.error("Failed to run Docker Compose"),l.logDetailedError(r),1}}var O5=A({path:["docker","run"],meta:B5,schema:D5,handler:R$});var F$={name:"docker",description:"Docker Hub login and image management",stability:"deprecated"},N$=M$.object({});async function L$(e,t){return t.stdout.write(`Available docker subcommands: login, build, push, generate, run. Use 'phala docker <command> --help' for details.
309
+ `),0}var B$=A({path:["docker"],meta:F$,schema:N$,handler:L$}),Hg={group:f5,commands:[B$,R5,E5,L5,P5,O5]};import qg from"path";import W5 from"fs-extra";import cn from"chalk";import Gg from"inquirer";import yi from"chalk";import D$ from"open";import U$ from"ora";import z$ from"prompts";import{z as ps}from"zod";var j5={name:"login",category:"profile",description:"Authenticate with Phala Cloud",stability:"stable",arguments:[{name:"api-key",description:"API key (triggers device flow if omitted)",required:!1,target:"apiKey"}],options:[{name:"manual",description:"Enter API key manually",type:"boolean"},{name:"no-open",description:"Skip browser launch",type:"boolean",target:"noOpen"},{name:"profile",description:"Profile name (defaults to workspace slug)",type:"string",target:"profile"},{name:"print-token",description:"Print token to stdout without saving",type:"boolean",target:"printToken"},{name:"url",description:"Custom API endpoint URL",type:"string",target:"url"}]},H5=ps.object({apiKey:ps.string().min(1,"API key cannot be empty").optional(),manual:ps.boolean().optional(),noOpen:ps.boolean().optional(),profile:ps.string().min(1).optional(),printToken:ps.boolean().optional(),url:ps.string().url().optional()});function V5(e){let{detail:t}=e;if(t&&typeof t=="object"&&!Array.isArray(t)){let r=t;if(r.error&&typeof r.error=="string"&&!r.error_code)return{error:r.error,error_description:typeof r.error_description=="string"?r.error_description:void 0}}return null}function Io(e,t=""){e.write(`${t}
310
+ `)}async function df(e){let t=await Ul(e.apiKey,{baseURL:e.baseURL}),r=await gt(t);if(!r.success||!r.data?.user.username)throw new Error("Invalid API key");return r.data}async function O$(e){let t,r=await z$({type:"password",name:"apiKey",message:"Enter your API key:",validate:async n=>{if(!n||n.trim().length===0)return"API key cannot be empty";try{return t=await df({apiKey:n,baseURL:e.baseURL}),!0}catch(o){return o instanceof Error?o.message:"Invalid API key"}}});if(!r.apiKey)throw new Error("API key input cancelled");return t||(t=await df({apiKey:r.apiKey,baseURL:e.baseURL})),{apiKey:r.apiKey,user:t}}async function j$(e,t){let r=fr({useCookieAuth:!0,baseURL:t.baseURL}),n=await r.post("/auth/device/code",{client_id:"phala-cli",scope:"user:profile cvms:* nodes:*"}),{device_code:o,user_code:s,verification_uri_complete:a,interval:i,expires_in:c}=n,m=i,u=t.printToken?e.stderr:e.stdout;if(Io(u),Io(u,yi.bold("To authenticate, visit:")),Io(u,yi.cyan(a)),Io(u),Io(u,`${yi.bold("And enter code:")} ${yi.yellow(s)}`),Io(u),!t.noOpen)try{await D$(a),Io(u,"Opening browser automatically...")}catch{Io(u,"Could not open browser automatically. Please visit the URL above.")}let p=U$("Waiting for authorization...").start(),f=Date.now()+c*1e3;for(;Date.now()<f;){await new Promise(d=>setTimeout(d,m*1e3));try{let d=await r.post("/auth/device/token",{device_code:o,grant_type:"urn:ietf:params:oauth:grant-type:device_code"});return p.succeed("Authorization successful!"),d.access_token}catch(d){if(d instanceof Ec)throw p.stop(),new Error(Il(d));if(d instanceof _l){let g=V5(d);if(g)switch(g.error){case"authorization_pending":continue;case"slow_down":m+=5;continue;case"expired_token":throw p.fail("Authorization expired"),new Error(g.error_description||"Device authorization expired. Please try again.");case"access_denied":throw p.fail("Authorization denied"),new Error(g.error_description||"You denied the authorization request.");default:throw p.fail("Authorization failed"),new Error(`Authorization failed: ${g.error_description||g.error}`)}}throw p.fail("Request failed"),d}}throw p.fail("Authorization timed out"),new Error("Authorization timed out. Please try again.")}async function gf(e,t){try{if(e.printToken&&e.manual)throw new Error("--print-token is not compatible with --manual");let r=e.url||t.env.PHALA_CLOUD_API_PREFIX||on,n,o;if(e.apiKey)n=e.apiKey,o=await df({apiKey:n,baseURL:r});else if(e.manual){let c=await O$({baseURL:r});n=c.apiKey,o=c.user}else n=await j$(t,{noOpen:e.noOpen,printToken:e.printToken,baseURL:r}),o=await df({apiKey:n,baseURL:r});if(!o)throw new Error("Failed to validate API key");if(e.printToken)return t.stdout.write(`${n}
311
+ `),0;let s=o.workspace.name||"default",a=o.workspace.slug||void 0,i=e.profile||a||"default";return mi({profileName:i,token:n,apiPrefix:r,workspaceName:s,workspaceSlug:a,user:{username:o.user.username,email:o.user.email},setCurrent:!0}),t.stdout.write(yi.green(`Welcome ${o.user.username}! Credentials saved successfully (profile: ${i})
312
312
  `)),0}catch(r){let n=r instanceof Error?r.message:String(r);return t.stderr.write(yi.red(`Failed to authenticate: ${n}
313
- `)),1}}var j5=A({path:["login"],meta:U5,schema:z5,handler:gf});import{z as Vg}from"zod";var D$={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json"},H5={name:"link",category:"manage",description:"Link a local directory to a CVM",stability:"unstable",arguments:[{name:"cvm-id",description:"CVM ID or name (interactive if omitted)",required:!1,target:"cvmId"}],options:[D$],examples:[{name:"Link by name or ID",value:"phala link my-cvm-name"},{name:"Link interactively",value:"phala link"}]},V5=Vg.object({cvmId:Vg.string().optional(),json:Vg.boolean().default(!1)});function U$(e){return e!==null&&typeof e=="object"&&"name"in e&&e.name==="ExitPromptError"}function q5(){let e=["docker-compose.yml","docker-compose.yaml"];for(let t of e)if(G5.existsSync(qg.join(process.cwd(),t)))return t}function K5(){let e=".env.production";if(G5.existsSync(qg.join(process.cwd(),e)))return e}async function W5(e){let t=sn(e).apiKey;if(!t){if(f.info(`Not authenticated. Starting login flow...
314
- `),await gf({manual:!1,noOpen:!1},e)!==0||(t=sn(e).apiKey,!t))return null;console.log()}let r=await F(e),n=await gt(r);if(!n.success){if(f.info(`API key expired or invalid. Starting login flow...
315
- `),await gf({manual:!1,noOpen:!1},e)!==0||(t=sn(e).apiKey,!t))return null;let s=await F(e),a=await gt(s);return a.success?(f.success(`Authenticated as ${a.data.user.username}`),console.log(),{apiKey:t,workspaceName:a.data.workspace.name||"default"}):null}return f.success(`Authenticated as ${n.data.user.username}`),console.log(),{apiKey:t,workspaceName:n.data.workspace.name||"default"}}function J5(e){let t={name:e.cvmName,profile:e.profile};e.composeFile&&(t.compose_file=e.composeFile),e.envFile&&(t.env_file=e.envFile),Rw(t),console.log(),console.log(cn.bold("Created phala.toml:")),console.log(cn.dim(` name = "${e.cvmName}"`)),console.log(cn.dim(` profile = "${e.profile}"`)),e.composeFile&&console.log(cn.dim(` compose_file = "${e.composeFile}"`)),e.envFile&&console.log(cn.dim(` env_file = "${e.envFile}"`)),console.log(),f.success("Project linked successfully!"),f.info('Run "phala deploy" to update your CVM.')}async function z$(e,t){try{return e.cvmId?await O$(e.cvmId,t):await j$(t)}catch(r){if(U$(r))return console.log(),f.info("Link cancelled."),0;throw r}}async function O$(e,t){let r=await W5(t);if(!r)return t.fail("Authentication failed."),1;let{workspaceName:n}=r,o=await F(t),s=await $e(o,{id:e});if(!s.success)return t.fail(`CVM not found: ${e}`),1;let i=s.data.name||e;if(f.success(`Found CVM: ${i}`),Rl()){let{overwrite:u}=await Gg.prompt([{type:"confirm",name:"overwrite",message:"phala.toml already exists. Overwrite?",default:!1}]);if(!u)return f.info("Link cancelled."),0}let c=q5(),m=K5();return(c||m)&&(console.log(),f.info("Detected local files:"),c&&console.log(cn.green(` \u2713 ${c}`)),m&&console.log(cn.green(` \u2713 ${m}`))),J5({cvmName:i,composeFile:c,envFile:m,profile:n}),0}async function j$(e){let t=await W5(e);if(!t)return e.fail("Authentication failed."),1;let{workspaceName:r}=t,n=f.startSpinner("Fetching your CVMs..."),o=await F(e),s=await _c(o);if(n.stop(!0),!s.success)return e.fail(`Failed to fetch CVMs: ${s.error.message}`),1;let i=s.data.items??[];if(i.length===0)return f.warn("You don't have any CVMs yet."),f.info('Deploy your first CVM with "phala deploy"'),0;let c=qg.basename(process.cwd()),m=i.map(g=>{let h=g.hosted?.app_id||g.hosted?.id||"",y=g.name||g.hosted?.name||"Unnamed",b=g.status||g.hosted?.status||"Unknown";return{name:`${y} (${h}) - Status: ${b}`,value:y,cvmName:y}}),u=m.findIndex(g=>g.cvmName.toLowerCase()===c.toLowerCase());console.log(cn.bold(`Found ${i.length} CVM(s):
316
- `));let{selectedCvm:p}=await Gg.prompt([{type:"list",name:"selectedCvm",message:"Select a CVM to link:",choices:m.map(g=>({name:g.name,value:g.value})),default:u>=0?u:0}]);if(Rl()){let{overwrite:g}=await Gg.prompt([{type:"confirm",name:"overwrite",message:"phala.toml already exists. Overwrite?",default:!1}]);if(!g)return f.info("Link cancelled."),0}let l=q5(),d=K5();return console.log(),(l||d)&&(f.info("Detected local files:"),l&&console.log(cn.green(` \u2713 ${l}`)),d&&console.log(cn.green(` \u2713 ${d}`)),console.log()),J5({cvmName:p,composeFile:l,envFile:d,profile:r}),0}var Z5=A({path:["link"],meta:H5,schema:V5,handler:z$});import{z as H$}from"zod";var Y5={name:"logout",category:"profile",description:"Remove stored API key",stability:"stable"},X5=H$.object({});async function V$(e,t){try{let n=Lt()?.current_profile;return Bl(),f.success(n?`Credentials removed successfully (profile: ${n})`:"Credentials removed successfully"),0}catch(r){return f.error("Failed to remove credentials"),f.logDetailedError(r),1}}var Q5=A({path:["logout"],meta:Y5,schema:X5,handler:V$});var e2={path:["nodes"],meta:{name:"nodes",category:"deploy",description:"Manage TEE nodes",stability:"unstable"}};import{z as hf}from"zod";var t2={name:"list",aliases:["ls"],description:"List workspace nodes",stability:"unstable",options:[{name:"page",description:"Page number (1-based)",type:"number",target:"page",group:"basic"},{name:"page-size",description:"Number of items per page",type:"number",target:"pageSize",group:"basic"},br],examples:[{name:"List nodes (page 1)",value:"phala nodes list"},{name:"List nodes (page 2)",value:"phala nodes list --page 2"},{name:"Output as JSON",value:"phala nodes list --json"}]},Kg=hf.object({page:hf.coerce.number().int().min(1).default(1),pageSize:hf.coerce.number().int().min(1).max(100).default(30),json:hf.boolean().default(!1)});async function r2(e,t){try{let r=await F(),n=await gt(r);if(!n.success)return t.fail(n.error.message),1;let o=n.data.workspace.slug;if(!o)return t.fail("Workspace slug is not available. Please contact support."),1;let s=await kw(r,{teamSlug:o,page:e.page,pageSize:e.pageSize});if(!s.success)return t.fail(s.error.message),1;let a=s.data;if(e.json)return t.success(a),0;let i=["ID","NAME","REGION","PPID","DEVICE_ID","VERSION"],c=a.items.map(m=>({ID:m.id?.toString()??"-",NAME:m.name??"-",REGION:m.region??"-",PPID:m.ppid??"-",DEVICE_ID:m.device_id??"-",VERSION:m.version?.split(" ")[0]??"-"}));return c.length===0?(f.info("No nodes found"),0):(Wt(i,c),f.info(`Page ${a.page}/${a.pages} (total ${a.total})`),0)}catch(r){return f.logDetailedError(r),t.fail(`Failed to list nodes: ${r instanceof Error?r.message:String(r)}`),1}}var G$={name:"nodes",description:"List and manage TEE nodes",stability:"unstable"},n2=A({path:["nodes","list"],meta:t2,schema:Kg,handler:r2}),o2=A({path:["nodes"],meta:G$,schema:Kg,handler:r2});var Wg={group:e2,commands:[o2,n2]};import{z as J$}from"zod";var s2={path:["simulator"],meta:{name:"simulator",category:"manage",description:"TEE simulator commands",stability:"unstable"}};import{z as Jg}from"zod";var a2={name:"start",description:"Start the TEE simulator",stability:"unstable",options:[{name:"port",shorthand:"p",description:"Simulator port (default: 8090)",type:"string",target:"port"},{name:"verbose",shorthand:"v",description:"Enable verbose output",type:"boolean",target:"verbose"}]},i2=Jg.object({port:Jg.string().default("8090"),verbose:Jg.boolean().default(!1)});async function q$(e,t){try{return aC()||await iC(),await Hc()?(f.success("TEE simulator is already running"),0):(await cC({verbose:e.verbose}),f.success("TEE simulator started successfully"),0)}catch(r){return f.error("Failed to start TEE simulator"),f.logDetailedError(r),1}}var c2=A({path:["simulator","start"],meta:a2,schema:i2,handler:q$});import{z as K$}from"zod";var m2={name:"stop",description:"Stop the TEE simulator",stability:"unstable"},u2=K$.object({});async function W$(e,t){try{return await mC()?(f.success("TEE simulator stopped successfully"),0):(f.error("Failed to stop TEE simulator"),1)}catch(r){return f.error("Failed to stop TEE simulator"),f.logDetailedError(r),1}}var p2=A({path:["simulator","stop"],meta:m2,schema:u2,handler:W$});var Z$={name:"simulator",description:"TEE simulator commands",stability:"unstable"},Y$=J$.object({});async function X$(e,t){try{let r=await Hc(),n=ef();if(r&&n){let s=Rg(),a=s.replace(/dstack\.sock$/,"tappd.sock");t.stdout.write(`\u2713 TEE simulator is running (PID: ${n})\\n`),t.stdout.write(`
313
+ `)),1}}var G5=A({path:["login"],meta:j5,schema:H5,handler:gf});import{z as Vg}from"zod";var H$={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json"},q5={name:"link",category:"manage",description:"Link a local directory to a CVM",stability:"unstable",arguments:[{name:"cvm-id",description:"CVM ID or name (interactive if omitted)",required:!1,target:"cvmId"}],options:[H$],examples:[{name:"Link by name or ID",value:"phala link my-cvm-name"},{name:"Link interactively",value:"phala link"}]},K5=Vg.object({cvmId:Vg.string().optional(),json:Vg.boolean().default(!1)});function V$(e){return e!==null&&typeof e=="object"&&"name"in e&&e.name==="ExitPromptError"}function J5(){let e=["docker-compose.yml","docker-compose.yaml"];for(let t of e)if(W5.existsSync(qg.join(process.cwd(),t)))return t}function Z5(){let e=".env.production";if(W5.existsSync(qg.join(process.cwd(),e)))return e}async function Y5(e){let t=sn(e).apiKey;if(!t){if(l.info(`Not authenticated. Starting login flow...
314
+ `),await gf({manual:!1,noOpen:!1},e)!==0||(t=sn(e).apiKey,!t))return null;console.log()}let r=await F(e),n=await gt(r);if(!n.success){if(l.info(`API key expired or invalid. Starting login flow...
315
+ `),await gf({manual:!1,noOpen:!1},e)!==0||(t=sn(e).apiKey,!t))return null;let s=await F(e),a=await gt(s);return a.success?(l.success(`Authenticated as ${a.data.user.username}`),console.log(),{apiKey:t,workspaceName:a.data.workspace.name||"default"}):null}return l.success(`Authenticated as ${n.data.user.username}`),console.log(),{apiKey:t,workspaceName:n.data.workspace.name||"default"}}function X5(e){let t={name:e.cvmName,profile:e.profile};e.composeFile&&(t.compose_file=e.composeFile),e.envFile&&(t.env_file=e.envFile),Mw(t),console.log(),console.log(cn.bold("Created phala.toml:")),console.log(cn.dim(` name = "${e.cvmName}"`)),console.log(cn.dim(` profile = "${e.profile}"`)),e.composeFile&&console.log(cn.dim(` compose_file = "${e.composeFile}"`)),e.envFile&&console.log(cn.dim(` env_file = "${e.envFile}"`)),console.log(),l.success("Project linked successfully!"),l.info('Run "phala deploy" to update your CVM.')}async function G$(e,t){try{return e.cvmId?await q$(e.cvmId,t):await K$(t)}catch(r){if(V$(r))return console.log(),l.info("Link cancelled."),0;throw r}}async function q$(e,t){let r=await Y5(t);if(!r)return t.fail("Authentication failed."),1;let{workspaceName:n}=r,o=await F(t),s=await $e(o,{id:e});if(!s.success)return t.fail(`CVM not found: ${e}`),1;let i=s.data.name||e;if(l.success(`Found CVM: ${i}`),Rl()){let{overwrite:u}=await Gg.prompt([{type:"confirm",name:"overwrite",message:"phala.toml already exists. Overwrite?",default:!1}]);if(!u)return l.info("Link cancelled."),0}let c=J5(),m=Z5();return(c||m)&&(console.log(),l.info("Detected local files:"),c&&console.log(cn.green(` \u2713 ${c}`)),m&&console.log(cn.green(` \u2713 ${m}`))),X5({cvmName:i,composeFile:c,envFile:m,profile:n}),0}async function K$(e){let t=await Y5(e);if(!t)return e.fail("Authentication failed."),1;let{workspaceName:r}=t,n=l.startSpinner("Fetching your CVMs..."),o=await F(e),s=await _c(o);if(n.stop(!0),!s.success)return e.fail(`Failed to fetch CVMs: ${s.error.message}`),1;let i=s.data.items??[];if(i.length===0)return l.warn("You don't have any CVMs yet."),l.info('Deploy your first CVM with "phala deploy"'),0;let c=qg.basename(process.cwd()),m=i.map(g=>{let h=g.hosted?.app_id||g.hosted?.id||"",y=g.name||g.hosted?.name||"Unnamed",b=g.status||g.hosted?.status||"Unknown";return{name:`${y} (${h}) - Status: ${b}`,value:y,cvmName:y}}),u=m.findIndex(g=>g.cvmName.toLowerCase()===c.toLowerCase());console.log(cn.bold(`Found ${i.length} CVM(s):
316
+ `));let{selectedCvm:p}=await Gg.prompt([{type:"list",name:"selectedCvm",message:"Select a CVM to link:",choices:m.map(g=>({name:g.name,value:g.value})),default:u>=0?u:0}]);if(Rl()){let{overwrite:g}=await Gg.prompt([{type:"confirm",name:"overwrite",message:"phala.toml already exists. Overwrite?",default:!1}]);if(!g)return l.info("Link cancelled."),0}let f=J5(),d=Z5();return console.log(),(f||d)&&(l.info("Detected local files:"),f&&console.log(cn.green(` \u2713 ${f}`)),d&&console.log(cn.green(` \u2713 ${d}`)),console.log()),X5({cvmName:p,composeFile:f,envFile:d,profile:r}),0}var Q5=A({path:["link"],meta:q5,schema:K5,handler:G$});import{z as W$}from"zod";var e2={name:"logout",category:"profile",description:"Remove stored API key",stability:"stable"},t2=W$.object({});async function J$(e,t){try{let n=Lt()?.current_profile;return Bl(),l.success(n?`Credentials removed successfully (profile: ${n})`:"Credentials removed successfully"),0}catch(r){return l.error("Failed to remove credentials"),l.logDetailedError(r),1}}var r2=A({path:["logout"],meta:e2,schema:t2,handler:J$});var n2={path:["nodes"],meta:{name:"nodes",category:"deploy",description:"Manage TEE nodes",stability:"unstable"}};import{z as hf}from"zod";var o2={name:"list",aliases:["ls"],description:"List workspace nodes",stability:"unstable",options:[{name:"page",description:"Page number (1-based)",type:"number",target:"page",group:"basic"},{name:"page-size",description:"Number of items per page",type:"number",target:"pageSize",group:"basic"},br],examples:[{name:"List nodes (page 1)",value:"phala nodes list"},{name:"List nodes (page 2)",value:"phala nodes list --page 2"},{name:"Output as JSON",value:"phala nodes list --json"}]},Kg=hf.object({page:hf.coerce.number().int().min(1).default(1),pageSize:hf.coerce.number().int().min(1).max(100).default(30),json:hf.boolean().default(!1)});async function s2(e,t){try{let r=await F(),n=await gt(r);if(!n.success)return t.fail(n.error.message),1;let o=n.data.workspace.slug;if(!o)return t.fail("Workspace slug is not available. Please contact support."),1;let s=await Ew(r,{teamSlug:o,page:e.page,pageSize:e.pageSize});if(!s.success)return t.fail(s.error.message),1;let a=s.data;if(e.json)return t.success(a),0;let i=["ID","NAME","REGION","PPID","DEVICE_ID","VERSION"],c=a.items.map(m=>({ID:m.id?.toString()??"-",NAME:m.name??"-",REGION:m.region??"-",PPID:m.ppid??"-",DEVICE_ID:m.device_id??"-",VERSION:m.version?.split(" ")[0]??"-"}));return c.length===0?(l.info("No nodes found"),0):(Wt(i,c),l.info(`Page ${a.page}/${a.pages} (total ${a.total})`),0)}catch(r){return l.logDetailedError(r),t.fail(`Failed to list nodes: ${r instanceof Error?r.message:String(r)}`),1}}var Z$={name:"nodes",description:"List and manage TEE nodes",stability:"unstable"},a2=A({path:["nodes","list"],meta:o2,schema:Kg,handler:s2}),i2=A({path:["nodes"],meta:Z$,schema:Kg,handler:s2});var Wg={group:n2,commands:[i2,a2]};import{z as e9}from"zod";var c2={path:["simulator"],meta:{name:"simulator",category:"manage",description:"TEE simulator commands",stability:"unstable"}};import{z as Jg}from"zod";var m2={name:"start",description:"Start the TEE simulator",stability:"unstable",options:[{name:"port",shorthand:"p",description:"Simulator port (default: 8090)",type:"string",target:"port"},{name:"verbose",shorthand:"v",description:"Enable verbose output",type:"boolean",target:"verbose"}]},u2=Jg.object({port:Jg.string().default("8090"),verbose:Jg.boolean().default(!1)});async function Y$(e,t){try{return mC()||await uC(),await Hc()?(l.success("TEE simulator is already running"),0):(await pC({verbose:e.verbose}),l.success("TEE simulator started successfully"),0)}catch(r){return l.error("Failed to start TEE simulator"),l.logDetailedError(r),1}}var p2=A({path:["simulator","start"],meta:m2,schema:u2,handler:Y$});import{z as X$}from"zod";var l2={name:"stop",description:"Stop the TEE simulator",stability:"unstable"},f2=X$.object({});async function Q$(e,t){try{return await lC()?(l.success("TEE simulator stopped successfully"),0):(l.error("Failed to stop TEE simulator"),1)}catch(r){return l.error("Failed to stop TEE simulator"),l.logDetailedError(r),1}}var d2=A({path:["simulator","stop"],meta:l2,schema:f2,handler:Q$});var t9={name:"simulator",description:"TEE simulator commands",stability:"unstable"},r9=e9.object({});async function n9(e,t){try{let r=await Hc(),n=ef();if(r&&n){let s=Rg(),a=s.replace(/dstack\.sock$/,"tappd.sock");t.stdout.write(`\u2713 TEE simulator is running (PID: ${n})\\n`),t.stdout.write(`
317
317
  Set these environment variables to use the simulator:
318
318
  `),t.stdout.write(` export DSTACK_SIMULATOR_ENDPOINT=${s}\\n`),t.stdout.write(` export TAPPD_SIMULATOR_ENDPOINT=${a}\\n`)}else t.stdout.write(`TEE simulator is not running\\n
319
319
  `),t.stdout.write(`To start the simulator, run:
320
- `),t.stdout.write(" phala simulator start\\n");return 0}catch(r){return t.stderr.write(`Error checking simulator status: ${r instanceof Error?r.message:String(r)}\\n`),1}}var Q$=A({path:["simulator"],meta:Z$,schema:Y$,handler:X$}),Zg={group:s2,commands:[Q$,c2,p2]};import{z as e9}from"zod";var l2={name:"profiles",category:"profile",description:"List auth profiles",stability:"stable",arguments:[],options:[]},f2=e9.object({});async function t9(e,t){let r=Mc(),n=ns();if(r.length===0)return f.warn("No profiles found. Please login first."),0;let o=Lt(),s=["PROFILE","WORKSPACE","USER","API ENDPOINT",""],a=r.map(i=>{let c=n?.name===i,m=o?.profiles[i];return{PROFILE:i,WORKSPACE:m?.workspace?.name||"",USER:m?.user?.username||"","API ENDPOINT":m?.api_prefix||"","":c?"*":""}});return Wt(s,a),0}var d2=A({path:["profiles"],meta:l2,schema:f2,handler:t9});import r9 from"chalk";import n9 from"inquirer";import{z as Yg}from"zod";var g2={name:"switch",category:"profile",description:"Switch auth profiles",stability:"unstable",arguments:[{name:"profile-name",description:"Profile name",required:!0,target:"profileName"}],options:[{name:"interactive",shorthand:"i",description:"Select profile interactively",type:"boolean",target:"interactive"}]},h2=Yg.object({profileName:Yg.string().min(1).optional(),interactive:Yg.boolean().default(!1)});function o9(e){return e!==null&&typeof e=="object"&&"name"in e&&e.name==="ExitPromptError"}async function s9(e,t){try{return e.interactive?await a9():e.profileName?i9(e.profileName):(f.error("Missing required argument: profile-name"),f.info("Usage: phala switch <profile-name>"),f.info(" phala switch -i"),1)}catch(r){if(o9(r))return console.log(),f.info("Switch cancelled."),0;let n=r instanceof Error?r.message:String(r);if(n.includes("not found")){f.error(n);let o=Mc();if(o.length>0){f.info("Available profiles:");for(let s of o)console.log(r9.gray(` - ${s}`))}else f.info("No profiles found. Please login first.")}else f.error("Failed to switch profile"),f.logDetailedError(r);return 1}}async function a9(){let e=Mc(),t=ns();if(e.length===0)return f.warn("No profiles found. Please login first."),1;if(e.length===1)return f.info(`Only one profile available: ${e[0]}`),0;let r=Lt(),n=e.map(a=>{let c=r?.profiles[a]?.workspace?.name||"unknown",u=t?.name===a?" (current)":"";return{name:`${a} (workspace: ${c})${u}`,value:a}}),{selectedProfile:o}=await n9.prompt([{type:"list",name:"selectedProfile",message:"Select a profile to switch to:",choices:n,default:t?.name}]);if(o===t?.name)return f.info(`Already using profile "${o}"`),0;fg(o);let s=ns();return f.success(`Switched to profile "${o}"`),s?.info.workspace?.name&&f.info(`Workspace: ${s.info.workspace.name}`),0}function i9(e){if(ns()?.name===e)return f.info(`Already using profile "${e}"`),0;fg(e);let r=ns();return f.success(`Switched to profile "${e}"`),r?.info.workspace?.name&&f.info(`Workspace: ${r.info.workspace.name}`),0}var y2=A({path:["switch"],meta:g2,schema:h2,handler:s9});import{z as bi}from"zod";import{readFileSync as p9}from"fs";import{dirname as l9,join as f9}from"path";import{fileURLToPath as d9}from"url";function b2(e,t,r){switch(t){case"bash":return c9(e,r);case"zsh":return m9(e,r);case"fish":return u9(e,r)}}function c9(e,t){let r=t?`
320
+ `),t.stdout.write(" phala simulator start\\n");return 0}catch(r){return t.stderr.write(`Error checking simulator status: ${r instanceof Error?r.message:String(r)}\\n`),1}}var o9=A({path:["simulator"],meta:t9,schema:r9,handler:n9}),Zg={group:c2,commands:[o9,p2,d2]};import{z as s9}from"zod";var g2={name:"profiles",category:"profile",description:"List auth profiles",stability:"stable",arguments:[],options:[]},h2=s9.object({});async function a9(e,t){let r=Mc(),n=os();if(r.length===0)return l.warn("No profiles found. Please login first."),0;let o=Lt(),s=["PROFILE","WORKSPACE","USER","API ENDPOINT",""],a=r.map(i=>{let c=n?.name===i,m=o?.profiles[i];return{PROFILE:i,WORKSPACE:m?.workspace?.name||"",USER:m?.user?.username||"","API ENDPOINT":m?.api_prefix||"","":c?"*":""}});return Wt(s,a),0}var y2=A({path:["profiles"],meta:g2,schema:h2,handler:a9});import i9 from"chalk";import c9 from"inquirer";import{z as Yg}from"zod";var b2={name:"switch",category:"profile",description:"Switch auth profiles",stability:"unstable",arguments:[{name:"profile-name",description:"Profile name",required:!0,target:"profileName"}],options:[{name:"interactive",shorthand:"i",description:"Select profile interactively",type:"boolean",target:"interactive"}]},x2=Yg.object({profileName:Yg.string().min(1).optional(),interactive:Yg.boolean().default(!1)});function m9(e){return e!==null&&typeof e=="object"&&"name"in e&&e.name==="ExitPromptError"}async function u9(e,t){try{return e.interactive?await p9():e.profileName?l9(e.profileName):(l.error("Missing required argument: profile-name"),l.info("Usage: phala switch <profile-name>"),l.info(" phala switch -i"),1)}catch(r){if(m9(r))return console.log(),l.info("Switch cancelled."),0;let n=r instanceof Error?r.message:String(r);if(n.includes("not found")){l.error(n);let o=Mc();if(o.length>0){l.info("Available profiles:");for(let s of o)console.log(i9.gray(` - ${s}`))}else l.info("No profiles found. Please login first.")}else l.error("Failed to switch profile"),l.logDetailedError(r);return 1}}async function p9(){let e=Mc(),t=os();if(e.length===0)return l.warn("No profiles found. Please login first."),1;if(e.length===1)return l.info(`Only one profile available: ${e[0]}`),0;let r=Lt(),n=e.map(a=>{let c=r?.profiles[a]?.workspace?.name||"unknown",u=t?.name===a?" (current)":"";return{name:`${a} (workspace: ${c})${u}`,value:a}}),{selectedProfile:o}=await c9.prompt([{type:"list",name:"selectedProfile",message:"Select a profile to switch to:",choices:n,default:t?.name}]);if(o===t?.name)return l.info(`Already using profile "${o}"`),0;fg(o);let s=os();return l.success(`Switched to profile "${o}"`),s?.info.workspace?.name&&l.info(`Workspace: ${s.info.workspace.name}`),0}function l9(e){if(os()?.name===e)return l.info(`Already using profile "${e}"`),0;fg(e);let r=os();return l.success(`Switched to profile "${e}"`),r?.info.workspace?.name&&l.info(`Workspace: ${r.info.workspace.name}`),0}var v2=A({path:["switch"],meta:b2,schema:x2,handler:u9});import{z as bi}from"zod";import{readFileSync as h9}from"fs";import{dirname as y9,join as b9}from"path";import{fileURLToPath as x9}from"url";function w2(e,t,r){switch(t){case"bash":return f9(e,r);case"zsh":return d9(e,r);case"fish":return g9(e,r)}}function f9(e,t){let r=t?`
321
321
  # Version check (once per day)
322
322
  local completion_version="${t}"
323
323
  local check_file=~/."${e}"/completion-check
@@ -354,7 +354,7 @@ ${r}
354
354
  }
355
355
 
356
356
  complete -F _${e}_completions ${e}
357
- `.trim()}function m9(e,t){let r=t?`
357
+ `.trim()}function d9(e,t){let r=t?`
358
358
  # Version check (once per day)
359
359
  local completion_version="${t}"
360
360
  local check_file=~/."${e}"/completion-check
@@ -399,7 +399,7 @@ ${r}
399
399
  }
400
400
 
401
401
  _${e}
402
- `.trim()}function u9(e,t){let r=t?`
402
+ `.trim()}function g9(e,t){let r=t?`
403
403
  # Version check (once per day)
404
404
  set -l completion_version "${t}"
405
405
  set -l check_file ~/."${e}"/completion-check
@@ -432,10 +432,10 @@ ${r}
432
432
  end
433
433
 
434
434
  complete -c ${e} -f -a "(__${e}_complete)"
435
- `.trim()}function g9(){try{let e=d9(import.meta.url),t=l9(e),r=f9(t,"../package.json");return JSON.parse(p9(r,"utf-8")).version}catch{return"unknown"}}var h9={name:"__complete",description:"Internal command for shell completion",stability:"stable",arguments:[{name:"line",description:"Full command line",required:!0},{name:"fragment",description:"Current word being completed",required:!0}]},y9=bi.object({line:bi.string(),fragment:bi.string()});async function b9(e,t){return t.stdout.write(`
436
- `),0}var Kge=A({path:["__complete"],meta:h9,schema:y9,handler:b9}),x9={name:"completion",description:"Generate shell completion scripts",stability:"stable",options:[{name:"shell",type:"string",description:"Shell type (bash, zsh, fish)"},{name:"fig",type:"boolean",description:"Generate Fig/Amazon Q completion spec"}]},v9=bi.object({shell:bi.enum(["bash","zsh","fish"]).optional(),fig:bi.boolean().optional()});async function w9(e,t){if(e.fig)return t.stdout.write(`Fig spec generation requires registry access. See fig-spec.ts for implementation.
437
- `),0;let r=e.shell||C9();if(!r)return t.stderr.write(`Could not detect shell. Please specify with --shell (bash, zsh, or fish)
438
- `),1;let n=g9(),o=b2("phala",r,n);switch(t.stdout.write(`# Add this to your shell configuration file:
435
+ `.trim()}function v9(){try{let e=x9(import.meta.url),t=y9(e),r=b9(t,"../package.json");return JSON.parse(h9(r,"utf-8")).version}catch{return"unknown"}}var w9={name:"__complete",description:"Internal command for shell completion",stability:"stable",arguments:[{name:"line",description:"Full command line",required:!0},{name:"fragment",description:"Current word being completed",required:!0}]},C9=bi.object({line:bi.string(),fragment:bi.string()});async function S9(e,t){return t.stdout.write(`
436
+ `),0}var ehe=A({path:["__complete"],meta:w9,schema:C9,handler:S9}),k9={name:"completion",description:"Generate shell completion scripts",stability:"stable",options:[{name:"shell",type:"string",description:"Shell type (bash, zsh, fish)"},{name:"fig",type:"boolean",description:"Generate Fig/Amazon Q completion spec"}]},E9=bi.object({shell:bi.enum(["bash","zsh","fish"]).optional(),fig:bi.boolean().optional()});async function _9(e,t){if(e.fig)return t.stdout.write(`Fig spec generation requires registry access. See fig-spec.ts for implementation.
437
+ `),0;let r=e.shell||I9();if(!r)return t.stderr.write(`Could not detect shell. Please specify with --shell (bash, zsh, or fish)
438
+ `),1;let n=v9(),o=w2("phala",r,n);switch(t.stdout.write(`# Add this to your shell configuration file:
439
439
 
440
440
  `),t.stdout.write(`${o}
441
441
 
@@ -448,20 +448,21 @@ complete -c ${e} -f -a "(__${e}_complete)"
448
448
  `),t.stdout.write(`# source ~/.zshrc
449
449
  `);break;case"fish":t.stdout.write(`# For fish, run:
450
450
  `),t.stdout.write(`# phala completion --shell fish > ~/.config/fish/completions/phala.fish
451
- `);break}return 0}function C9(){let e=process.env.SHELL||"";return e.includes("bash")?"bash":e.includes("zsh")?"zsh":e.includes("fish")?"fish":null}var x2=A({path:["completion"],meta:x9,schema:v9,handler:w9});import{spawn as R9}from"child_process";import M9 from"chalk";import{execSync as S9}from"child_process";import{existsSync as v2,readFileSync as k9}from"fs";import{homedir as Xc,platform as E9}from"os";import{basename as _9,join as Qc}from"path";import w2 from"chalk";var ps=class extends Error{constructor(r,n){super(`CVM is not running (current status: ${w2.yellow(r)})`);this.status=r;this.cvmId=n;this.name="CvmNotRunningError"}},ls=class extends Error{constructor(r){super("CVM is not registered on any gateway.");this.cvmId=r;this.name="NoGatewayError"}};function yf(e){let t=e.lastIndexOf(":");if(t>0){let r=e.substring(t+1);if(/^\d+$/.test(r))return{host:e.substring(0,t),port:r}}return{host:e}}function Xg(){let e=[Qc(Xc(),".ssh","id_rsa"),Qc(Xc(),".ssh","id_ed25519"),Qc(Xc(),".ssh","id_ecdsa"),Qc(Xc(),".ssh","id_dsa")];for(let t of e)if(v2(t))return t}function C2(e){if(e){let t=e.startsWith("~")?Qc(Xc(),e.slice(1)):e;if(!v2(t))throw new Error(`SSH key file not found: ${t}`);return t}return Xg()}function em(e){return e?e.toLowerCase().includes("dev"):!1}function I9(e){if(!e||typeof e!="object")return;if("gateway_domain"in e){let r=e.gateway_domain;return typeof r=="string"&&r.length>0?r:void 0}let t=e.gateway;if(t&&typeof t=="object"){let r=t.base_domain;if(typeof r=="string"&&r.length>0)return r}}function P9(e){if(!e||typeof e!="object")return{};if("base_image"in e){let r=e.base_image;return{baseImage:typeof r=="string"?r:void 0,isDev:typeof r=="string"?em(r):void 0}}let t=e.os;if(t&&typeof t=="object"){let r=t.name,n=t.is_dev;return{baseImage:typeof r=="string"?r:void 0,isDev:typeof n=="boolean"?n:void 0}}return{}}function A9(e,t){if(e&&typeof e=="object"&&"app_id"in e){let r=e.app_id;if(typeof r=="string"&&r.length>0)return r.startsWith("app_")?r.slice(4):r}if(t.startsWith("app_"))return t.slice(4);if(/^[0-9a-f]{40}$/i.test(t))return t}async function bf(e,t){let r=await e.getCvmInfo({id:t}),n=I9(r);if(!n)throw new ls(t);if(r.status!=="running")throw new ps(r.status,t);let{baseImage:o,isDev:s}=P9(r),a=A9(r,t);if(!a)throw new Error("CVM does not have an app_id usable for gateway SSH/SCP.");return{appId:a,gatewayDomain:n,status:r.status,baseImage:o,isDevImage:s}}function xf(e,t){return`${e}-22.${t}`}function vf(e,t){return e!=="443"?e:t||"443"}function wf(e){return/^[a-zA-Z0-9_./:@=-]+$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}function T9(){try{return S9("openssl version",{encoding:"utf-8"}).toLowerCase().includes("libressl")}catch{return!1}}function $9(e){if(_9(e).toLowerCase().includes("ed25519"))return!0;try{let r=k9(e,"utf-8");return r.includes("ssh-ed25519")||r.includes("ED25519")}catch{return!1}}function Cf(e){E9()==="darwin"&&T9()&&$9(e)&&(f.warn("Detected LibreSSL with ed25519 key on macOS. This combination may cause SSH connection issues."),f.info(`If\xB7you\xB7experience\xB7problems,\xB7install\xB7OpenSSL\xB7via\xB7Homebrew:\xB7${w2.cyan("brew\xB7install\xB7openssl")}`),f.info("Then ensure Homebrew's OpenSSL is in your PATH before /usr/bin"))}function Sf(e,t){return["-o",`ProxyCommand=${e?"openssl s_client -quiet -connect %h:%p":"openssl s_client -quiet -connect %h:%p 2>/dev/null"}`,"-o","StrictHostKeyChecking=no","-o","UserKnownHostsFile=/dev/null","-o",`ConnectTimeout=${t}`]}import{z as Fn}from"zod";var S2={name:"ssh",category:"cvm-ops",description:"Connect to a CVM via SSH",stability:"unstable",arguments:[he],options:[re,{name:"port",shorthand:"p",description:"Gateway port (priority: CLI > phala.toml > 443)",type:"string",target:"port"},{name:"gateway",shorthand:"g",description:"Gateway domain (priority: CLI > phala.toml > API)",type:"string",target:"gatewayDomain"},{name:"timeout",shorthand:"t",description:"Connection timeout in seconds (default: 30)",type:"string",target:"timeout"},{name:"verbose",shorthand:"v",description:"Show verbose connection details",type:"boolean",target:"verbose"},{name:"dry-run",description:"Print SSH command without executing",type:"boolean",target:"dryRun"}],passThrough:{description:"All arguments after -- are passed directly to ssh. Common options: -i (identity file), -L (local forward), -R (remote forward), -D (SOCKS proxy), -N (no command), -v (ssh verbose). Any trailing arguments are executed as remote command. Note: -o ProxyCommand is blocked.",examples:["-- -L 8080:localhost:80","-- -i ~/.ssh/key -D 1080 -N","-- ls -la /app"]},examples:[{name:"Connect from phala.toml",value:"phala ssh"},{name:"Connect to CVM",value:"phala ssh app_123"},{name:"Offline mode",value:"phala ssh app_123 -g dstack-pha-prod7.phala.network -p 16185"},{name:"Connect with custom SSH key",value:"phala ssh app_123 -- -i ~/.ssh/custom_key"},{name:"Forward local port 8080 to remote port 80",value:"phala ssh app_123 -- -L 8080:localhost:80"},{name:"SOCKS proxy without remote command",value:"phala ssh app_123 -- -D 1080 -N"},{name:"Execute remote command",value:"phala ssh app_123 -- ls -la /app"},{name:"Connect with verbose output for debugging",value:"phala ssh app_123 -v"},{name:"Print the SSH command without executing",value:"phala ssh app_123 --dry-run -- -L 8080:localhost:80"}]},k2=Fn.object({cvmId:Fn.string().optional(),port:Fn.string().default("443"),gatewayDomain:Fn.string().optional(),timeout:Fn.string().default("30"),verbose:Fn.boolean().default(!1),dryRun:Fn.boolean().default(!1),"--":Fn.array(Fn.string()).optional()});function F9(e){for(let t=0;t<e.length;t++){let r=e[t];if(r==="-o"&&t+1<e.length&&e[t+1].toLowerCase().startsWith("proxycommand")||r.toLowerCase().startsWith("-oproxycommand"))return"-o ProxyCommand"}return null}async function N9(e,t){try{if(!t.cvmId)return t.fail("No CVM ID provided. Either pass a CVM ID as argument or configure it in phala.toml."),1;let{cvmId:r}=Q.parse(t.cvmId),n=e["--"]??[],o=F9(n);if(o)return f.error(`${o} is not allowed as it would break the TLS gateway connection.`),1;let s=e.gatewayDomain??t.projectConfig.gateway_domain,a=e.port!=="443"?e.port:t.projectConfig.gateway_port?.toString()??"443",i,c;if(s)c=s,i=r.startsWith("app_")?r.substring(4):r;else try{let x=await F(),v=await bf(x,r);i=v.appId,c=v.gatewayDomain,(v.isDevImage??em(v.baseImage))===!1&&f.warn("This CVM is not using a dev image. SSH access may not be available.")}catch(x){return x instanceof ls?f.error(x.message):x instanceof ps?(f.error(x.message),f.info("Please start the CVM first using: phala cvms start")):f.error(x instanceof Error?x.message:"Failed to fetch CVM info"),1}let m=yf(c),u=vf(a,m.port),p=xf(i,m.host),l=Xg();l&&Cf(l),e.verbose&&f.info(`Connecting to ${M9.cyan(p)}:${u}...`);let d=Sf(e.verbose,e.timeout),{options:g,command:h}=L9(n),y=[];if(e.verbose&&y.push("-v"),y.push(...d,"-p",u,...g,`root@${p}`,...h),e.dryRun){let x=y.map(v=>wf(v));return t.stdout.write(`ssh ${x.join(" ")}
452
- `),0}let b=R9("ssh",y,{stdio:"inherit"});return b.on("error",x=>{f.break(),f.error(`SSH connection failed: ${x.message}`)}),new Promise(x=>{b.on("close",v=>{f.break(),v===0?(f.success("Connection closed"),x(0)):(f.error(`Connection failed with code ${v}`),x(v??1))})})}catch(r){return f.error("Failed to connect via SSH"),r instanceof Error?f.error(r.message):f.error(String(r)),1}}function L9(e){let t=[],r=[],n=new Set(["-b","-c","-D","-E","-e","-F","-I","-i","-J","-L","-l","-m","-O","-o","-P","-p","-R","-S","-W","-w"]),o=0,s=!1;for(;o<e.length;){let a=e[o];if(s){r.push(a),o++;continue}if(a.startsWith("-")){t.push(a);let i=a.length===2?a:a.slice(0,2);n.has(i)&&a.length===2&&o+1<e.length&&(o++,t.push(e[o])),o++}else s=!0,r.push(a),o++}return{options:t,command:r}}var E2=A({path:["ssh"],meta:S2,schema:k2,handler:N9});import{spawn as B9}from"child_process";import Qg from"chalk";import{z as Nn}from"zod";var _2={name:"cp",category:"cvm-ops",description:"Copy files to/from a CVM via SCP",stability:"unstable",arguments:[{name:"source",description:"Source path (local or cvm-name:path, use :path for phala.toml cvm_id)",required:!0,target:"source"},{name:"destination",description:"Destination path (local or cvm-name:path, use :path for phala.toml cvm_id)",required:!0,target:"destination"}],options:[{name:"identity",shorthand:"i",description:"SSH identity file (private key)",type:"string",target:"identity"},{name:"port",shorthand:"p",description:"SSH port (priority: CLI > phala.toml > 443)",type:"string",target:"port"},{name:"gateway",shorthand:"g",description:"Gateway domain (priority: CLI > phala.toml > API)",type:"string",target:"gatewayDomain"},{name:"recursive",shorthand:"r",description:"Recursively copy directories",type:"boolean",target:"recursive"},{name:"verbose",shorthand:"v",description:"Show verbose SCP details",type:"boolean",target:"verbose"},{name:"dry-run",description:"Print SCP command without executing",type:"boolean",target:"dryRun"}],examples:[{name:"Upload from phala.toml",value:"phala cp ./local.txt :/root/remote.txt"},{name:"Upload to CVM",value:"phala cp ./local.txt app_123:/root/remote.txt"},{name:"Download from CVM",value:"phala cp app_123:/root/remote.txt ./local.txt"},{name:"Offline mode",value:"phala cp -g dstack-pha-prod7.phala.network -p 16185 ./file.txt app_123:/root/"},{name:"Upload directory recursively",value:"phala cp -r ./local_dir app_123:/root/remote_dir"},{name:"Copy with custom SSH key",value:"phala cp -i ~/.ssh/custom_key app_123:/root/file.txt ./file.txt"},{name:"Print the SCP command without executing",value:"phala cp ./local.txt app_123:/root/remote.txt --dry-run"}]},I2=Nn.object({source:Nn.string(),destination:Nn.string(),identity:Nn.string().optional(),port:Nn.string().default("443"),gatewayDomain:Nn.string().optional(),recursive:Nn.boolean().default(!1),verbose:Nn.boolean().default(!1),dryRun:Nn.boolean().default(!1)});function P2(e){let t=e.match(/^([^:]+):(.+)$/);return t?{isRemote:!0,cvmId:t[1],path:t[2]}:{isRemote:!1,path:e}}async function D9(e,t){try{let r=P2(e.source),n=P2(e.destination);if(r.isRemote===n.isRemote)return f.error("Either source or destination must be a remote path in format: cvm-id:path"),f.info("Examples:"),f.info(" phala cp ./local.txt app_123:/root/remote.txt"),f.info(" phala cp app_123:/root/remote.txt ./local.txt"),1;let o=r.isRemote?r:n,s;if(o.cvmId?s=Mw(o.cvmId):t.cvmId&&(s=Q.parse(t.cvmId).cvmId),!s)return t.fail("No CVM ID provided. Either use format cvm-id:path or configure it in phala.toml."),1;let a=e.gatewayDomain??t.projectConfig.gateway_domain,i=e.port!=="443"?e.port:t.projectConfig.gateway_port?.toString()??"443",c,m;if(a)m=a,c=s.startsWith("app_")?s.substring(4):s;else try{let _=await F(),I=await bf(_,s);c=I.appId,m=I.gatewayDomain,(I.isDevImage??em(I.baseImage))===!1&&f.warn("This CVM is not using a dev image. SCP access may not be available.")}catch(_){return _ instanceof ls?f.error(_.message):_ instanceof ps?(f.error(_.message),f.info("Please start the CVM first using: phala cvms start")):f.error(_ instanceof Error?_.message:"Failed to fetch CVM info"),1}let u=yf(m),p=vf(i,u.port),l=xf(c,u.host),d=C2(e.identity);d?Cf(d):f.warn("No default SSH key found. SCP will use ssh-agent or prompt for password."),e.verbose&&f.info(`Connecting to ${Qg.cyan(l)}:${p}...`);let h=[...Sf(e.verbose,"30"),"-P",p];e.verbose&&h.unshift("-v"),d&&h.push("-i",d),e.recursive&&h.push("-r");let y=r.isRemote?`root@${l}:${r.path}`:r.path,b=n.isRemote?`root@${l}:${n.path}`:n.path;if(h.push(y,b),e.dryRun){let _=h.map(I=>wf(I));return t.stdout.write(`scp ${_.join(" ")}
453
- `),0}let x=r.isRemote?"download":"upload",v=r.isRemote?n.path:r.path,S=r.isRemote?r.path:n.path;f.info(`${x==="upload"?"Uploading":"Downloading"} ${Qg.cyan(v)} ${x==="upload"?"to":"from"} ${Qg.cyan(S)}...`);let E=B9("scp",h,{stdio:"inherit"});return E.on("error",_=>{f.break(),f.error(`SCP failed: ${_.message}`)}),new Promise(_=>{E.on("close",I=>{f.break(),I===0?(f.success(`${x==="upload"?"Upload":"Download"} completed`),_(0)):(f.error(`Transfer failed with code ${I}`),_(I??1))})})}catch(r){return f.error("Failed to copy file via SCP"),r instanceof Error&&f.error(r.message),1}}var A2=A({path:["cp"],meta:_2,schema:I2,handler:D9});import{z as kf}from"zod";var T2={name:"ps",category:"cvm-ops",description:"List containers of a CVM",stability:"stable",arguments:[he],options:[fs,br,re],examples:[{name:"List containers interactively",value:"phala ps"},{name:"List containers by app_id",value:"phala ps app_abc123"},{name:"List containers by name",value:"phala ps my-app"},{name:"Output as JSON",value:"phala ps app_abc123 --json"}]},$2=kf.object({cvmId:kf.string().optional(),json:kf.boolean().default(!1),interactive:kf.boolean().default(!1)});function U9(e){let r=Date.now()/1e3-e;return r<60?"Less than a minute ago":r<3600?`${Math.floor(r/60)} minutes ago`:r<86400?`${Math.floor(r/3600)} hours ago`:r<86400*30?`${Math.floor(r/86400)} days ago`:r<86400*365?`${Math.floor(r/(86400*30))} months ago`:`${Math.floor(r/(86400*365))} years ago`}function z9(e){let t=e[0]??"";return t.startsWith("/")?t.slice(1):t}async function O9(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=await og(r,t.cvmId);if(!n.success)return t.fail(n.error.message),1;let o=n.data;if(!o.is_online){let u=o.error??"CVM is offline";return e.json?(t.success({containers:[],error:u}),0):(f.warn(u),0)}let s=o.containers??[];if(e.json)return t.success({containers:s}),0;if(s.length===0)return f.info("No containers running"),0;let a=["NAME","IMAGE","CREATED","STATUS","STATE"],i=s.map(u=>({NAME:z9(u.names),IMAGE:u.image,CREATED:U9(u.created),STATUS:u.status,STATE:u.state})),c={};for(let u of a){c[u]=u.length;for(let p of i)c[u]=Math.max(c[u],p[u].length)}let m=u=>a.map(p=>u[p].padEnd(c[p])).join(" ");console.log(m(Object.fromEntries(a.map(u=>[u,u]))));for(let u of i)console.log(m(u));return 0}catch(r){return f.logDetailedError(r),t.fail(`Failed to list containers: ${r instanceof Error?r.message:String(r)}`),1}}var R2=A({path:["ps"],meta:T2,schema:$2,handler:O9});import{z as Dt}from"zod";var M2={name:"logs",category:"cvm-ops",description:"Fetch logs from a CVM",stability:"unstable",arguments:[{name:"container-name",description:"Container name to fetch logs from",required:!1,target:"containerName"}],options:[{name:"serial",description:"CVM serial console (boot, kernel, docker-compose)",type:"boolean",target:"serial"},{name:"cvm-stdout",description:"CVM stdout channel",type:"boolean",target:"cvmStdout"},{name:"cvm-stderr",description:"CVM stderr channel",type:"boolean",target:"cvmStderr"},{name:"stderr",description:"Include container stderr (container mode only)",type:"boolean",target:"stderr"},{name:"tail",shorthand:"n",description:"Number of lines from end",type:"number",target:"tail"},{name:"follow",shorthand:"f",description:"Stream in real-time",type:"boolean",target:"follow"},{name:"timestamps",shorthand:"t",description:"Show timestamps",type:"boolean",target:"timestamps"},{name:"since",description:"Start time (RFC3339 or relative, e.g. 42m)",type:"string",target:"since",argumentName:"since"},{name:"until",description:"End time (RFC3339 or relative)",type:"string",target:"until",argumentName:"until"},fs,kt,re],examples:[{name:"Container stdout",value:"phala logs my-service"},{name:"Container stderr",value:"phala logs my-service --stderr"},{name:"Follow container logs",value:"phala logs my-service -f"},{name:"CVM serial console",value:"phala logs --serial"},{name:"CVM stdout channel",value:"phala logs --cvm-stdout"},{name:"CVM stderr channel",value:"phala logs --cvm-stderr"},{name:"Last 100 lines",value:"phala logs my-service -n 100"},{name:"Specify CVM",value:"phala logs my-service --cvm-id app_abc123"}]},F2=Dt.object({containerName:Dt.string().optional(),cvmId:Dt.string().optional(),serial:Dt.boolean().default(!1),cvmStdout:Dt.boolean().default(!1),cvmStderr:Dt.boolean().default(!1),stderr:Dt.boolean().default(!1),since:Dt.string().optional(),until:Dt.string().optional(),tail:Dt.number().optional(),follow:Dt.boolean().default(!1),timestamps:Dt.boolean().default(!1),json:Dt.boolean().default(!1),interactive:Dt.boolean().default(!1)});function N2(e,t,r){if(e.channel==="stdout"){t.includeStdout&&r.stdout.write(e.message);return}t.includeStderr&&r.stderr.write(e.message)}function j9(e){let t=[e.serial&&"serial",e.cvmStdout&&"stdout",e.cvmStderr&&"stderr"].filter(Boolean);return t.length>1?null:t.length===1?{type:"cvm",channel:t[0]}:e.containerName?{type:"container",containerName:e.containerName}:null}async function H9(e,t){if(Ci(e.json),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;let{cvmId:r}=Q.parse(t.cvmId),n=[e.serial,e.cvmStdout,e.cvmStderr].filter(Boolean).length;if(n>1)return t.fail("--serial, --cvm-stdout, and --cvm-stderr are mutually exclusive"),1;let o=n===1;if(e.containerName&&o)return t.fail("Cannot combine container name with --serial/--cvm-stdout/--cvm-stderr. Use container name for container logs, or CVM flags for CVM-level logs."),1;if(e.stderr&&o)return t.fail("--stderr is only valid in container mode, not with CVM flags"),1;let s=j9(e);if(!s)try{let a=await s6(r);a==="running"?s={type:"container"}:(f.warn(`CVM is ${a}. Falling back to serial console logs.`),f.warn("Use --serial, --cvm-stdout, or --cvm-stderr for specific CVM channels."),s={type:"cvm",channel:"serial"})}catch{s={type:"container"}}return s.type==="cvm"?V9(r,s.channel,e,t):G9(r,s.containerName,e,t)}async function V9(e,t,r,n){try{if(r.follow){if(r.json)return n.fail("Cannot use --json with --follow"),1;let s=new AbortController,a=()=>s.abort();process.on("SIGINT",a),process.on("SIGTERM",a);try{await o6(e,t,i=>n.stdout.write(i),{tail:r.tail,timestamps:r.timestamps,since:r.since,until:r.until},s.signal)}catch(i){if(i.name!=="AbortError")throw i}finally{process.removeListener("SIGINT",a),process.removeListener("SIGTERM",a)}return 0}let o=await n6(e,t,{tail:r.tail,timestamps:r.timestamps,since:r.since,until:r.until});return r.json?(n.success({logs:o,cvm_id:e,channel:t}),0):(o.trim()?n.stdout.write(o):f.info(`No ${t} logs available`),0)}catch(o){return n.fail(`Failed to fetch CVM ${t} logs: ${o instanceof Error?o.message:String(o)}`),1}}async function G9(e,t,r,n){let o={includeStdout:!0,includeStderr:r.stderr},s={container:t,since:r.since,until:r.until,tail:r.tail,timestamps:r.timestamps,matchContainerIdPrefix:!1};try{if(r.follow){if(r.json)return n.fail("Cannot use --json with --follow"),1;let u=new AbortController,p=()=>u.abort();process.on("SIGINT",p),process.on("SIGTERM",p);try{await e6(e,l=>N2(l,o,n),s,u.signal)}catch(l){if(l.name!=="AbortError")throw l}finally{process.removeListener("SIGINT",p),process.removeListener("SIGTERM",p)}return 0}let i=(await Qw(e,s)).filter(u=>u.channel==="stderr"?o.includeStderr:o.includeStdout),c=i.map(u=>u.message).join("");if(r.json)return n.success({logs:c,cvm_id:e}),0;if(c.trim()){for(let u of i)N2(u,o,n);return 0}return await Gc(e)||f.info("No logs available"),0}catch(a){return n.fail(`Failed to fetch container logs: ${a instanceof Error?a.message:String(a)}`),await Gc(e),1}}var L2=A({path:["logs"],meta:M2,schema:F2,handler:H9});var B2={path:["self"],meta:{name:"self",category:"advanced",description:"CLI self-management",stability:"unstable"}};import Y9 from"prompts";import{execa as X9}from"execa";import Ef from"semver";import _o from"chalk";import{z as xi}from"zod";var q9={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json"},K9={name:"yes",shorthand:"y",description:"Skip confirmation prompt",type:"boolean",target:"yes"},W9={name:"dry-run",description:"Print update command without executing",type:"boolean",target:"dryRun"},J9={name:"package-manager",description:"Override package manager (npm|pnpm|yarn|bun)",type:"string",target:"packageManager",aliases:["pm"],argumentName:"name"},Z9={name:"channel",description:"Release channel/dist-tag (e.g. latest, beta, next)",type:"string",target:"channel",argumentName:"tag"},D2={name:"update",description:"Update the Phala CLI",stability:"unstable",options:[q9,K9,W9,J9,Z9],examples:[{name:"Update CLI",value:"phala self update"},{name:"Dry run",value:"phala self update --dry-run"},{name:"Beta channel",value:"phala self update --channel beta"}]},U2=xi.object({json:xi.boolean().default(!1),yes:xi.boolean().default(!1),dryRun:xi.boolean().default(!1),packageManager:xi.enum(["npm","pnpm","yarn","bun"]).optional(),channel:xi.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/).optional()});function tm(e){return typeof e=="string"&&e.trim().length>0}function Q9(e){return e.startsWith("@")?e.replace("/","%2F"):e}async function eR(e,t){let n=`https://registry.npmjs.org/${Q9(e)}`,o=new AbortController,s=setTimeout(()=>o.abort(),5e3);try{let a=await fetch(n,{signal:o.signal,headers:{accept:"application/json"}});if(!a.ok)return{latestVersion:null,error:`Registry returned ${a.status}`};let i=await a.json();if(!i||typeof i!="object")return{latestVersion:null,error:"Invalid registry response"};let c=i["dist-tags"];if(!c||typeof c!="object")return{latestVersion:null,error:"No dist-tags in response"};let m=c[t]??c.latest;return typeof m!="string"?{latestVersion:null,error:`Channel "${t}" not found`}:{latestVersion:Ef.valid(m)}}catch(a){return a instanceof Error&&a.name==="AbortError"?{latestVersion:null,error:"Request timed out"}:{latestVersion:null,error:String(a)}}finally{clearTimeout(s)}}function tR(e){if(typeof e!="object"||e===null||!("code"in e))return;let t=e.code;return typeof t=="string"?t:void 0}function rR(e){let r=Ef.parse(e)?.prerelease?.[0];return typeof r=="string"&&r.length>0?r:void 0}function nR(e,t,r,n){let o=[],s=n instanceof Error&&typeof n.message=="string"?n.message:String(n),a=tR(n);(/permission denied|eacces|not permitted/i.test(s)||n instanceof Error&&(a==="EACCES"||a==="EPERM"))&&o.push(`Permission error while running "${r}". Ensure your global install prefix is writable (avoid sudo if possible).`),/command not found|not recognized as an internal|ENOENT/i.test(s)&&o.push(`Package manager "${t}" not found. Install it or rerun with --package-manager npm|pnpm|yarn|bun.`);let i=e.NVM_DIR;t==="npm"&&tm(i)&&o.push(`Detected nvm (NVM_DIR=${i}). Make sure the intended Node version is active (e.g. "nvm use <version>") and your npm global bin is on PATH.`);let c=e.FNM_DIR;return t==="npm"&&tm(c)&&o.push(`Detected fnm (FNM_DIR=${c}). Ensure your shell has fnm env loaded (e.g. eval "$(fnm env)") so the correct node/npm are on PATH.`),o}function oR(e,t,r){if(tm(e))return e.trim();if(tm(r.PHALA_UPDATE_CHANNEL))return r.PHALA_UPDATE_CHANNEL;let n=mi("updateCheckChannel");return tm(n)?n:rR(t)??"latest"}async function sR(e,t){let r=t.cli?.packageName??"phala",n=t.cli?.runtime??Hl(),o=e.packageManager??Lc(t.env,n),s=t.cli?.packageVersion??"0.0.0",a=oR(e.channel,s,t.env);e.json||t.stderr.write(_o.gray(`Checking for updates...
454
- `));let{latestVersion:i,error:c}=await eR(r,a);if(i){let x=Date.now(),v=a.replace(/[^a-zA-Z0-9_-]/g,"_");os({[`updateCheckLastAt_${v}`]:x,[`updateCheckLatest_${v}`]:i,...a==="latest"?{updateCheckLastAt:x,updateCheckLatest:i}:{}})}let m=Ef.valid(s),u=i&&m&&!Ef.gt(i,m);e.json||(c?(t.stderr.write(_o.yellow(`Warning: Could not fetch latest version: ${c}
455
- `)),t.stderr.write(_o.gray(`Current version: v${s}
456
- `))):i&&(t.stderr.write(_o.gray(`Current version: v${s}
457
- `)),t.stderr.write(_o.gray(`Latest version: v${i}${a!=="latest"?` (${a})`:""}
458
- `)),u?t.stderr.write(_o.green(`You are already on the latest version.
459
- `)):t.stderr.write(_o.yellow(`Update available: v${s} \u2192 v${i}
460
- `))));let p=a==="latest"?`${r}@latest`:`${r}@${a}`,l=Bc(o,p),{command:d,args:g}=u6(o,p);if(e.json&&e.dryRun)return t.success({command:l,dryRun:!0,currentVersion:s,latestVersion:i,isUpToDate:u}),0;if(e.dryRun)return t.stderr.write(_o.gray(`Command: ${l}
461
- `)),0;let h=t.stderr.isTTY===!0&&e.json!==!0;if(!e.yes&&!h){let x=`Non-interactive session detected. Re-run with --yes to apply the update, or use --dry-run to print the command.
462
- `;return e.json?(t.success({command:l,ran:!1,reason:"nonInteractive",currentVersion:s,latestVersion:i,isUpToDate:u}),0):(t.stderr.write(x),1)}let y=u?`Already up to date. Reinstall anyway with "${l}"?`:`Run "${l}"?`;if(!(e.yes||await Y9({type:"confirm",name:"ok",message:y,initial:!u}).then(x=>x.ok===!0)))return e.json&&t.success({command:l,ran:!1,currentVersion:s,latestVersion:i,isUpToDate:u}),0;try{return await X9(d,g,{stdio:"inherit"}),e.json?(t.success({command:l,ran:!0,currentVersion:s,latestVersion:i,isUpToDate:u}),0):(f.success("Update completed"),0)}catch(x){let v=nR(t.env,o,l,x);if(f.logDetailedError(x),t.fail("Self update failed",{command:l,hints:v.length>0?v:void 0}),!e.json&&v.length>0)for(let S of v)f.info(S);return 1}}var z2=A({path:["self","update"],meta:D2,schema:U2,handler:sR});var eh={group:B2,commands:[z2]};import _f from"chalk";import{z as Zt}from"zod";var O2={name:"apps",category:"manage",description:"List dstack apps",stability:"unstable",options:[{name:"page",description:"Page number (1-based)",type:"number",target:"page",group:"basic"},{name:"page-size",description:"Number of items per page",type:"number",target:"pageSize",group:"basic"},{name:"search",description:"Search by name, app_id, vm_uuid, or instance_id",type:"string",target:"search",group:"basic"},{name:"status",description:"Filter by CVM status (can be specified multiple times)",type:"string[]",target:"status",group:"basic"},{name:"listed",description:"Filter by listed status",type:"boolean",target:"listed",negatedName:"no-listed",group:"basic"},{name:"base-image",description:"Filter by base image name",type:"string",target:"baseImage",group:"basic"},{name:"instance-type",description:"Filter by instance type",type:"string",target:"instanceType",group:"basic"},{name:"kms-type",description:"Filter by KMS type",type:"string",target:"kmsType",group:"basic"},{name:"node",description:"Filter by node name",type:"string",target:"node",group:"basic"},{name:"region",description:"Filter by region identifier",type:"string",target:"region",group:"basic"},br],examples:[{name:"List apps",value:"phala apps"},{name:"Second page",value:"phala apps --page 2"},{name:"Search by name",value:"phala apps --search my-app"},{name:"Filter by status",value:"phala apps --status running"},{name:"Output as JSON",value:"phala apps --json"}]},j2=Zt.object({page:Zt.coerce.number().int().min(1).default(1),pageSize:Zt.coerce.number().int().min(1).max(100).default(50),search:Zt.string().optional(),status:Zt.array(Zt.string()).optional(),listed:Zt.boolean().optional(),baseImage:Zt.string().optional(),instanceType:Zt.string().optional(),kmsType:Zt.string().optional(),node:Zt.string().optional(),region:Zt.string().optional(),json:Zt.boolean().default(!1)});function aR(e){return e.toLowerCase().endsWith("ing")?_f.yellow(e):e==="running"?_f.green(e):e==="stopped"?_f.red(e):_f.yellow(e)}async function iR(e,t){try{let r=await F(),n=await rf(r,{page:e.page,pageSize:e.pageSize,search:e.search,status:e.status,listed:e.listed,baseImage:e.baseImage,instanceType:e.instanceType,kmsType:e.kmsType,node:e.node,region:e.region});if(n.success===!1)return t.fail(n.error.message),1;let o=n.data;if(e.json)return t.success(o),0;let s=["APP_ID","CVM","STATUS","UPTIME"],a=o.items.map(i=>({APP_ID:i.appId,CVM:i.cvmName,STATUS:aR(i.status),UPTIME:i.uptime??"-"}));return a.length===0?(f.info("No CVMs found"),0):(Wt(s,a),f.info(`Page ${o.page}/${o.totalPages} (total ${o.total})`),0)}catch(r){return f.logDetailedError(r),t.fail(`Failed to list apps: ${r instanceof Error?r.message:String(r)}`),1}}var H2=A({path:["apps"],meta:O2,schema:j2,handler:iR});import{z as th}from"zod";var V2={name:"instance-types",category:"deploy",description:"List available instance types",stability:"unstable",arguments:[{name:"family",description:"Instance type family (cpu, gpu)",required:!1,target:"family"}],options:[br],examples:[{name:"List all instance type families",value:"phala instance-types"},{name:"List CPU instance types",value:"phala instance-types cpu"},{name:"List GPU instance types",value:"phala instance-types gpu"},{name:"Output as JSON",value:"phala instance-types --json"}]},G2=th.object({family:th.string().optional(),json:th.boolean().default(!1)});function q2(e){return(e/1024).toFixed(0)}function K2(e){return`$${e}`}async function cR(e,t){try{let r=await F();if(e.family){let s=await q0(r,{family:e.family});if(e.json)return t.success(s),0;let a=["ID","NAME","vCPU","Memory(GB)","Hourly Rate","GPU"],i=s.items.map(c=>({ID:c.id,NAME:c.name,vCPU:c.vcpu.toString(),"Memory(GB)":q2(c.memory_mb),"Hourly Rate":K2(c.hourly_rate),GPU:c.requires_gpu?"Yes":"No"}));return i.length===0?(f.info(`No instance types found for family '${e.family}'`),0):(Wt(a,i),f.info(`Total: ${s.total} instance types`),0)}let n=await G0(r);if(e.json)return t.success(n),0;if(n.result.length===0)return f.info("No instance types found"),0;let o=["ID","NAME","vCPU","Memory(GB)","Hourly Rate"];for(let s of n.result){f.info(`
463
- Family: ${s.name} (${s.total} types)`);let a=s.items.map(i=>({ID:i.id,NAME:i.name,vCPU:i.vcpu.toString(),"Memory(GB)":q2(i.memory_mb),"Hourly Rate":K2(i.hourly_rate)}));Wt(o,a)}return 0}catch(r){return f.logDetailedError(r),t.fail(`Failed to list instance types: ${r instanceof Error?r.message:String(r)}`),1}}var W2=A({path:["instance-types"],meta:V2,schema:G2,handler:cR});import{z as J2}from"zod";var Z2={name:"runtime-config",description:"Show the runtime configuration of a CVM",stability:"stable",category:"cvm-ops",arguments:[he],options:[re],examples:[{name:"Show runtime config by app_id",value:"phala runtime-config app_123"},{name:"Show runtime config by name",value:"phala runtime-config my-app"}]},Y2=J2.object({cvmId:J2.string().optional()});async function mR(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Either pass a CVM ID as argument or configure it in phala.toml."),1;try{let r=await F(),n=await Iw(r,t.cvmId);if(!n.success)return t.fail(`Failed to get runtime config: ${n.error.message}`),1;let o=n.data;if(we())return t.success(o),0;if(console.log(`Hostname: ${o.hostname??"-"}`),console.log(`Gateway Domain: ${o.default_gateway_domain??"-"}`),console.log(`SSH Keys: ${o.ssh_authorized_keys.length>0?`${o.ssh_authorized_keys.length} key(s)`:"none"}`),o.ssh_authorized_keys.length>0){console.log(),console.log("SSH Authorized Keys:");for(let s of o.ssh_authorized_keys)console.log(` ${s}`)}return 0}catch(r){return f.logDetailedError(r),t.fail("Failed to get CVM runtime config"),1}}var X2=A({path:["runtime-config"],meta:Z2,schema:Y2,handler:mR});import{existsSync as tS,readFileSync as lR}from"fs";import{basename as fR,join as If}from"path";import{homedir as Pf,hostname as dR}from"os";import{z as rh}from"zod";var uR={name:"name",description:"Name for the SSH key (default: key file name)",type:"string",target:"name"},pR={name:"key-file",description:"Path to SSH public key file (default: ~/.ssh/id_ed25519.pub or ~/.ssh/id_rsa.pub)",type:"string",target:"keyFile"},Q2={name:"add",description:"Add a local SSH public key to your account",stability:"stable",options:[uR,pR],examples:[{name:"Add default SSH key",value:"phala ssh-keys add"},{name:"Add a specific key with a name",value:"phala ssh-keys add --name my-laptop --key-file ~/.ssh/id_ed25519.pub"}]},eS=rh.object({name:rh.string().optional(),keyFile:rh.string().optional()});function gR(){let e=[If(Pf(),".ssh","id_ed25519.pub"),If(Pf(),".ssh","id_rsa.pub"),If(Pf(),".ssh","id_ecdsa.pub")];for(let t of e)if(tS(t))return t}async function hR(e,t){try{let r=e.keyFile;if(r?.startsWith("~/")&&(r=If(Pf(),r.slice(2))),!r&&(r=gR(),!r))return t.fail("No SSH public key found. Specify one with --key-file or generate one with ssh-keygen."),1;if(!tS(r))return t.fail(`SSH public key file not found: ${r}`),1;let n=lR(r,"utf-8").trim(),o=e.name??`${dR()}-${fR(r,".pub")}`,s=await F(),a=await ig(s,{name:o,public_key:n});return a.success?we()?(t.success(a.data),0):(f.success(`Added SSH key "${o}" (${a.data.key_type}, ${a.data.fingerprint})`),0):(t.fail(`Failed to add SSH key: ${a.error.message}`),1)}catch(r){return f.logDetailedError(r),t.fail("Failed to add SSH key"),1}}var rS=A({path:["ssh-keys","add"],meta:Q2,schema:eS,handler:hR});var nS={path:["ssh-keys"],meta:{name:"ssh-keys",category:"manage",description:"Manage SSH keys",stability:"stable"}};import{z as oS}from"zod";var yR={name:"github_username",description:"GitHub username to import SSH keys from",required:!0,target:"githubUsername"},sS={name:"import-github",description:"Import SSH keys from a GitHub user's public profile",stability:"stable",arguments:[yR],examples:[{name:"Import SSH keys from a GitHub profile",value:"phala ssh-keys import-github octocat"}]},aS=oS.object({githubUsername:oS.string()});async function bR(e,t){try{let r=await F(),n=f.startSpinner(`Importing SSH keys from github.com/${e.githubUsername}`),o=await ag(r,{github_username:e.githubUsername});if(n.stop(!0),!o.success)return t.fail(`Failed to import SSH keys: ${o.error.message}`),1;if(we())return t.success(o.data),0;let{keys_added:s,keys_skipped:a,errors:i}=o.data;if(i.length>0){f.warn(`${i.length} key(s) could not be imported:`);for(let c of i)f.warn(` ${c}`)}return s>0?f.success(`Added ${s} SSH key(s) from github.com/${e.githubUsername} (${a} skipped)`):f.info("No new keys added (all keys already exist)"),0}catch(r){return f.logDetailedError(r),t.fail("Failed to import SSH keys"),1}}var iS=A({path:["ssh-keys","import-github"],meta:sS,schema:aS,handler:bR});import{z as xR}from"zod";var cS={name:"list",aliases:["ls"],description:"List SSH keys for the current user",stability:"stable",examples:[{name:"List all SSH keys",value:"phala ssh-keys list"}]},mS=xR.object({});async function vR(e,t){try{let r=await F(),n=await Ac(r);if(!n.success)return t.fail(`Failed to list SSH keys: ${n.error.message}`),1;let o=n.data;if(we())return t.success(o),0;if(o.length===0)return f.info("No SSH keys found"),0;let s=["ID","NAME","TYPE","FINGERPRINT","SOURCE","CREATED"],a=o.map(i=>({ID:i.id,NAME:i.name,TYPE:i.key_type,FINGERPRINT:i.fingerprint,SOURCE:i.source,CREATED:i.created_at.slice(0,10)}));return Wt(s,a),0}catch(r){return f.logDetailedError(r),t.fail("Failed to list SSH keys"),1}}var uS=A({path:["ssh-keys","list"],meta:cS,schema:mS,handler:vR});import CR from"inquirer";import{z as nh}from"zod";var wR={name:"key_id",description:"SSH key ID to remove (from `phala ssh-keys list`)",required:!1,target:"keyId"},pS={name:"remove",aliases:["rm"],description:"Remove an SSH key from your account",stability:"stable",arguments:[wR],options:[re],examples:[{name:"Remove an SSH key by ID",value:"phala ssh-keys remove sshkey_xxx"},{name:"Interactive selection",value:"phala ssh-keys rm -i"}]},lS=nh.object({keyId:nh.string().optional(),interactive:nh.boolean().default(!1)});async function SR(){let e=f.startSpinner("Fetching SSH keys"),t=await F(),r=await Ac(t);if(e.stop(!0),!r.success){f.error(`Failed to fetch SSH keys: ${r.error.message}`);return}let n=r.data;if(n.length===0){f.info("No SSH keys found");return}let o=n.map(a=>({name:`${a.id} ${a.name} (${a.key_type}, ${a.fingerprint})`,value:a.id})),{selectedKey:s}=await CR.prompt([{type:"list",name:"selectedKey",message:"Select an SSH key to remove:",choices:o}]);return s}async function kR(e,t){try{let r=e.keyId;if(!r&&e.interactive&&(r=await SR(),!r))return 0;if(!r)return t.fail("Missing key_id. Use `phala ssh-keys rm <key_id>` or `phala ssh-keys rm -i` for interactive selection."),1;let n=await F(),o=await cg(n,{keyId:r});return o.success?we()?(t.success({keyId:r,removed:!0}),0):(f.success(`SSH key ${r} removed`),0):(t.fail(`Failed to remove SSH key: ${o.error.message}`),1)}catch(r){return f.logDetailedError(r),t.fail("Failed to remove SSH key"),1}}var fS=A({path:["ssh-keys","remove"],meta:pS,schema:lS,handler:kR});var oh={group:nS,commands:[uS,rS,fS,iS]};import{z as sh}from"zod";var dS={name:"whoami",category:"profile",description:"Print the current user",stability:"stable",options:[...Un,kt],examples:[{name:"Show current user",value:"phala whoami"},{name:"JSON output",value:"phala whoami --json"}]},gS=sh.object({json:sh.boolean().default(!1),apiToken:sh.string().optional()});async function ER(e,t){let{client:r,auth:n}=await Dl(t,{apiToken:e.apiToken});if(!n.apiKey)return t.fail('Not authenticated. Run "phala login" first.'),1;let o=await gt(r);if(!o.success)return t.fail(o.error?.message||"Failed to get user information"),1;let{user:s,workspace:a}=o.data;return e.json?(t.success({username:s.username,email:s.email,workspace:a.name,profile:n.profileName}),0):(t.stdout.write(`${s.username} (${a.name})
464
- `),0)}var hS=A({path:["whoami"],meta:dS,schema:gS,handler:ER});var TR=AR(import.meta.url),$R=IR(TR),RR=PR($R,"../package.json"),Af=JSON.parse(_R(RR,"utf-8")),MR="+c57bb78",FR=`v${Af.version}${MR}`,NR=Hl(),ae=new Kl;ae.registerCommand(m5);ae.registerCommand(H2);ae.registerCommand(W2);ae.registerCommand(Z5);ae.registerCommand(E2);ae.registerCommand(A2);ae.registerCommand(R2);ae.registerCommand(L2);ae.registerCommand(X2);ae.registerCommand(j5);ae.registerCommand(Q5);ae.registerCommand(d2);ae.registerCommand(y2);ae.registerCommand(P6);ae.registerCommand(U6);ae.registerCommand(hS);ae.registerCommand(x2);ae.registerGroup(eh.group);for(let e of eh.commands)ae.registerCommand(e);ae.registerGroup(Eg.group);for(let e of Eg.commands)ae.registerCommand(e);ae.registerGroup(Ig.group);for(let e of Ig.commands)ae.registerCommand(e);ae.registerGroup(jg.group);for(let e of jg.commands)ae.registerCommand(e);ae.registerGroup(oh.group);for(let e of oh.commands)ae.registerCommand(e);ae.registerGroup(Hg.group);for(let e of Hg.commands)ae.registerCommand(e);ae.registerGroup(Wg.group);for(let e of Wg.commands)ae.registerCommand(e);ae.registerGroup(Zg.group);for(let e of Zg.commands)ae.registerCommand(e);process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function LR(){await v6({env:process.env,stderr:process.stderr});let e=await h6({registry:ae,argv:process.argv.slice(2),executableName:Af.name??"phala",version:FR,packageName:Af.name??"phala",packageVersion:Af.version,runtime:NR,cwd:process.cwd(),env:process.env,stdout:process.stdout,stderr:process.stderr,stdin:process.stdin});process.exit(e)}LR().catch(e=>{console.error("An error occurred:",e),process.exit(1)});
451
+ `);break}return 0}function I9(){let e=process.env.SHELL||"";return e.includes("bash")?"bash":e.includes("zsh")?"zsh":e.includes("fish")?"fish":null}var C2=A({path:["completion"],meta:k9,schema:E9,handler:_9});import{spawn as B9}from"child_process";import D9 from"chalk";import{execSync as P9}from"child_process";import{existsSync as S2,readFileSync as A9}from"fs";import{homedir as Xc,platform as T9}from"os";import{basename as $9,join as Qc}from"path";import k2 from"chalk";var ls=class extends Error{constructor(r,n){super(`CVM is not running (current status: ${k2.yellow(r)})`);this.status=r;this.cvmId=n;this.name="CvmNotRunningError"}},fs=class extends Error{constructor(r){super("CVM is not registered on any gateway.");this.cvmId=r;this.name="NoGatewayError"}};function yf(e){let t=e.lastIndexOf(":");if(t>0){let r=e.substring(t+1);if(/^\d+$/.test(r))return{host:e.substring(0,t),port:r}}return{host:e}}function Xg(){let e=[Qc(Xc(),".ssh","id_rsa"),Qc(Xc(),".ssh","id_ed25519"),Qc(Xc(),".ssh","id_ecdsa"),Qc(Xc(),".ssh","id_dsa")];for(let t of e)if(S2(t))return t}function E2(e){if(e){let t=e.startsWith("~")?Qc(Xc(),e.slice(1)):e;if(!S2(t))throw new Error(`SSH key file not found: ${t}`);return t}return Xg()}function em(e){return e?e.toLowerCase().includes("dev"):!1}function R9(e){if(!e||typeof e!="object")return;if("gateway_domain"in e){let r=e.gateway_domain;return typeof r=="string"&&r.length>0?r:void 0}let t=e.gateway;if(t&&typeof t=="object"){let r=t.base_domain;if(typeof r=="string"&&r.length>0)return r}}function M9(e){if(!e||typeof e!="object")return{};if("base_image"in e){let r=e.base_image;return{baseImage:typeof r=="string"?r:void 0,isDev:typeof r=="string"?em(r):void 0}}let t=e.os;if(t&&typeof t=="object"){let r=t.name,n=t.is_dev;return{baseImage:typeof r=="string"?r:void 0,isDev:typeof n=="boolean"?n:void 0}}return{}}function F9(e,t){if(e&&typeof e=="object"&&"app_id"in e){let r=e.app_id;if(typeof r=="string"&&r.length>0)return r.startsWith("app_")?r.slice(4):r}if(t.startsWith("app_"))return t.slice(4);if(/^[0-9a-f]{40}$/i.test(t))return t}async function bf(e,t){let r=await e.getCvmInfo({id:t}),n=R9(r);if(!n)throw new fs(t);if(r.status!=="running")throw new ls(r.status,t);let{baseImage:o,isDev:s}=M9(r),a=F9(r,t);if(!a)throw new Error("CVM does not have an app_id usable for gateway SSH/SCP.");return{appId:a,gatewayDomain:n,status:r.status,baseImage:o,isDevImage:s}}function xf(e,t){return`${e}-22.${t}`}function vf(e,t){return e!=="443"?e:t||"443"}function wf(e){return/^[a-zA-Z0-9_./:@=-]+$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}function N9(){try{return P9("openssl version",{encoding:"utf-8"}).toLowerCase().includes("libressl")}catch{return!1}}function L9(e){if($9(e).toLowerCase().includes("ed25519"))return!0;try{let r=A9(e,"utf-8");return r.includes("ssh-ed25519")||r.includes("ED25519")}catch{return!1}}function Cf(e){T9()==="darwin"&&N9()&&L9(e)&&(l.warn("Detected LibreSSL with ed25519 key on macOS. This combination may cause SSH connection issues."),l.info(`If\xB7you\xB7experience\xB7problems,\xB7install\xB7OpenSSL\xB7via\xB7Homebrew:\xB7${k2.cyan("brew\xB7install\xB7openssl")}`),l.info("Then ensure Homebrew's OpenSSL is in your PATH before /usr/bin"))}function Sf(e,t){return["-o",`ProxyCommand=${e?"openssl s_client -quiet -connect %h:%p":"openssl s_client -quiet -connect %h:%p 2>/dev/null"}`,"-o","StrictHostKeyChecking=no","-o","UserKnownHostsFile=/dev/null","-o",`ConnectTimeout=${t}`]}import{z as Fn}from"zod";var _2={name:"ssh",category:"cvm-ops",description:"Connect to a CVM via SSH",stability:"unstable",arguments:[he],options:[re,{name:"port",shorthand:"p",description:"Gateway port (priority: CLI > phala.toml > 443)",type:"string",target:"port"},{name:"gateway",shorthand:"g",description:"Gateway domain (priority: CLI > phala.toml > API)",type:"string",target:"gatewayDomain"},{name:"timeout",shorthand:"t",description:"Connection timeout in seconds (default: 30)",type:"string",target:"timeout"},{name:"verbose",shorthand:"v",description:"Show verbose connection details",type:"boolean",target:"verbose"},{name:"dry-run",description:"Print SSH command without executing",type:"boolean",target:"dryRun"}],passThrough:{description:"All arguments after -- are passed directly to ssh. Common options: -i (identity file), -L (local forward), -R (remote forward), -D (SOCKS proxy), -N (no command), -v (ssh verbose). Any trailing arguments are executed as remote command. Note: -o ProxyCommand is blocked.",examples:["-- -L 8080:localhost:80","-- -i ~/.ssh/key -D 1080 -N","-- ls -la /app"]},examples:[{name:"Connect from phala.toml",value:"phala ssh"},{name:"Connect to CVM",value:"phala ssh app_123"},{name:"Offline mode",value:"phala ssh app_123 -g dstack-pha-prod7.phala.network -p 16185"},{name:"Connect with custom SSH key",value:"phala ssh app_123 -- -i ~/.ssh/custom_key"},{name:"Forward local port 8080 to remote port 80",value:"phala ssh app_123 -- -L 8080:localhost:80"},{name:"SOCKS proxy without remote command",value:"phala ssh app_123 -- -D 1080 -N"},{name:"Execute remote command",value:"phala ssh app_123 -- ls -la /app"},{name:"Connect with verbose output for debugging",value:"phala ssh app_123 -v"},{name:"Print the SSH command without executing",value:"phala ssh app_123 --dry-run -- -L 8080:localhost:80"}]},I2=Fn.object({cvmId:Fn.string().optional(),port:Fn.string().default("443"),gatewayDomain:Fn.string().optional(),timeout:Fn.string().default("30"),verbose:Fn.boolean().default(!1),dryRun:Fn.boolean().default(!1),"--":Fn.array(Fn.string()).optional()});function U9(e){for(let t=0;t<e.length;t++){let r=e[t];if(r==="-o"&&t+1<e.length&&e[t+1].toLowerCase().startsWith("proxycommand")||r.toLowerCase().startsWith("-oproxycommand"))return"-o ProxyCommand"}return null}async function z9(e,t){try{if(!t.cvmId)return t.fail("No CVM ID provided. Either pass a CVM ID as argument or configure it in phala.toml."),1;let{cvmId:r}=Q.parse(t.cvmId),n=e["--"]??[],o=U9(n);if(o)return l.error(`${o} is not allowed as it would break the TLS gateway connection.`),1;let s=e.gatewayDomain??t.projectConfig.gateway_domain,a=e.port!=="443"?e.port:t.projectConfig.gateway_port?.toString()??"443",i,c;if(s)c=s,i=r.startsWith("app_")?r.substring(4):r;else try{let x=await F(),v=await bf(x,r);i=v.appId,c=v.gatewayDomain,(v.isDevImage??em(v.baseImage))===!1&&l.warn("This CVM is not using a dev image. SSH access may not be available.")}catch(x){return x instanceof fs?l.error(x.message):x instanceof ls?(l.error(x.message),l.info("Please start the CVM first using: phala cvms start")):l.error(x instanceof Error?x.message:"Failed to fetch CVM info"),1}let m=yf(c),u=vf(a,m.port),p=xf(i,m.host),f=Xg();f&&Cf(f),e.verbose&&l.info(`Connecting to ${D9.cyan(p)}:${u}...`);let d=Sf(e.verbose,e.timeout),{options:g,command:h}=O9(n),y=[];if(e.verbose&&y.push("-v"),y.push(...d,"-p",u,...g,`root@${p}`,...h),e.dryRun){let x=y.map(v=>wf(v));return t.stdout.write(`ssh ${x.join(" ")}
452
+ `),0}let b=B9("ssh",y,{stdio:"inherit"});return b.on("error",x=>{l.break(),l.error(`SSH connection failed: ${x.message}`)}),new Promise(x=>{b.on("close",v=>{l.break(),v===0?(l.success("Connection closed"),x(0)):(l.error(`Connection failed with code ${v}`),x(v??1))})})}catch(r){return l.error("Failed to connect via SSH"),r instanceof Error?l.error(r.message):l.error(String(r)),1}}function O9(e){let t=[],r=[],n=new Set(["-b","-c","-D","-E","-e","-F","-I","-i","-J","-L","-l","-m","-O","-o","-P","-p","-R","-S","-W","-w"]),o=0,s=!1;for(;o<e.length;){let a=e[o];if(s){r.push(a),o++;continue}if(a.startsWith("-")){t.push(a);let i=a.length===2?a:a.slice(0,2);n.has(i)&&a.length===2&&o+1<e.length&&(o++,t.push(e[o])),o++}else s=!0,r.push(a),o++}return{options:t,command:r}}var P2=A({path:["ssh"],meta:_2,schema:I2,handler:z9});import{spawn as j9}from"child_process";import Qg from"chalk";import{z as Nn}from"zod";var A2={name:"cp",category:"cvm-ops",description:"Copy files to/from a CVM via SCP",stability:"unstable",arguments:[{name:"source",description:"Source path (local or cvm-name:path, use :path for phala.toml cvm_id)",required:!0,target:"source"},{name:"destination",description:"Destination path (local or cvm-name:path, use :path for phala.toml cvm_id)",required:!0,target:"destination"}],options:[{name:"identity",shorthand:"i",description:"SSH identity file (private key)",type:"string",target:"identity"},{name:"port",shorthand:"p",description:"SSH port (priority: CLI > phala.toml > 443)",type:"string",target:"port"},{name:"gateway",shorthand:"g",description:"Gateway domain (priority: CLI > phala.toml > API)",type:"string",target:"gatewayDomain"},{name:"recursive",shorthand:"r",description:"Recursively copy directories",type:"boolean",target:"recursive"},{name:"verbose",shorthand:"v",description:"Show verbose SCP details",type:"boolean",target:"verbose"},{name:"dry-run",description:"Print SCP command without executing",type:"boolean",target:"dryRun"}],examples:[{name:"Upload from phala.toml",value:"phala cp ./local.txt :/root/remote.txt"},{name:"Upload to CVM",value:"phala cp ./local.txt app_123:/root/remote.txt"},{name:"Download from CVM",value:"phala cp app_123:/root/remote.txt ./local.txt"},{name:"Offline mode",value:"phala cp -g dstack-pha-prod7.phala.network -p 16185 ./file.txt app_123:/root/"},{name:"Upload directory recursively",value:"phala cp -r ./local_dir app_123:/root/remote_dir"},{name:"Copy with custom SSH key",value:"phala cp -i ~/.ssh/custom_key app_123:/root/file.txt ./file.txt"},{name:"Print the SCP command without executing",value:"phala cp ./local.txt app_123:/root/remote.txt --dry-run"}]},T2=Nn.object({source:Nn.string(),destination:Nn.string(),identity:Nn.string().optional(),port:Nn.string().default("443"),gatewayDomain:Nn.string().optional(),recursive:Nn.boolean().default(!1),verbose:Nn.boolean().default(!1),dryRun:Nn.boolean().default(!1)});function $2(e){let t=e.match(/^([^:]+):(.+)$/);return t?{isRemote:!0,cvmId:t[1],path:t[2]}:{isRemote:!1,path:e}}async function H9(e,t){try{let r=$2(e.source),n=$2(e.destination);if(r.isRemote===n.isRemote)return l.error("Either source or destination must be a remote path in format: cvm-id:path"),l.info("Examples:"),l.info(" phala cp ./local.txt app_123:/root/remote.txt"),l.info(" phala cp app_123:/root/remote.txt ./local.txt"),1;let o=r.isRemote?r:n,s;if(o.cvmId?s=Fw(o.cvmId):t.cvmId&&(s=Q.parse(t.cvmId).cvmId),!s)return t.fail("No CVM ID provided. Either use format cvm-id:path or configure it in phala.toml."),1;let a=e.gatewayDomain??t.projectConfig.gateway_domain,i=e.port!=="443"?e.port:t.projectConfig.gateway_port?.toString()??"443",c,m;if(a)m=a,c=s.startsWith("app_")?s.substring(4):s;else try{let _=await F(),I=await bf(_,s);c=I.appId,m=I.gatewayDomain,(I.isDevImage??em(I.baseImage))===!1&&l.warn("This CVM is not using a dev image. SCP access may not be available.")}catch(_){return _ instanceof fs?l.error(_.message):_ instanceof ls?(l.error(_.message),l.info("Please start the CVM first using: phala cvms start")):l.error(_ instanceof Error?_.message:"Failed to fetch CVM info"),1}let u=yf(m),p=vf(i,u.port),f=xf(c,u.host),d=E2(e.identity);d?Cf(d):l.warn("No default SSH key found. SCP will use ssh-agent or prompt for password."),e.verbose&&l.info(`Connecting to ${Qg.cyan(f)}:${p}...`);let h=[...Sf(e.verbose,"30"),"-P",p];e.verbose&&h.unshift("-v"),d&&h.push("-i",d),e.recursive&&h.push("-r");let y=r.isRemote?`root@${f}:${r.path}`:r.path,b=n.isRemote?`root@${f}:${n.path}`:n.path;if(h.push(y,b),e.dryRun){let _=h.map(I=>wf(I));return t.stdout.write(`scp ${_.join(" ")}
453
+ `),0}let x=r.isRemote?"download":"upload",v=r.isRemote?n.path:r.path,S=r.isRemote?r.path:n.path;l.info(`${x==="upload"?"Uploading":"Downloading"} ${Qg.cyan(v)} ${x==="upload"?"to":"from"} ${Qg.cyan(S)}...`);let k=j9("scp",h,{stdio:"inherit"});return k.on("error",_=>{l.break(),l.error(`SCP failed: ${_.message}`)}),new Promise(_=>{k.on("close",I=>{l.break(),I===0?(l.success(`${x==="upload"?"Upload":"Download"} completed`),_(0)):(l.error(`Transfer failed with code ${I}`),_(I??1))})})}catch(r){return l.error("Failed to copy file via SCP"),r instanceof Error&&l.error(r.message),1}}var R2=A({path:["cp"],meta:A2,schema:T2,handler:H9});import{z as kf}from"zod";var M2={name:"ps",category:"cvm-ops",description:"List containers of a CVM",stability:"stable",arguments:[he],options:[ds,br,re],examples:[{name:"List containers interactively",value:"phala ps"},{name:"List containers by app_id",value:"phala ps app_abc123"},{name:"List containers by name",value:"phala ps my-app"},{name:"Output as JSON",value:"phala ps app_abc123 --json"}]},F2=kf.object({cvmId:kf.string().optional(),json:kf.boolean().default(!1),interactive:kf.boolean().default(!1)});function V9(e){let r=Date.now()/1e3-e;return r<60?"Less than a minute ago":r<3600?`${Math.floor(r/60)} minutes ago`:r<86400?`${Math.floor(r/3600)} hours ago`:r<86400*30?`${Math.floor(r/86400)} days ago`:r<86400*365?`${Math.floor(r/(86400*30))} months ago`:`${Math.floor(r/(86400*365))} years ago`}function G9(e){let t=e[0]??"";return t.startsWith("/")?t.slice(1):t}async function q9(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await F(),n=await og(r,t.cvmId);if(!n.success)return t.fail(n.error.message),1;let o=n.data;if(!o.is_online){let u=o.error??"CVM is offline";return e.json?(t.success({containers:[],error:u}),0):(l.warn(u),0)}let s=o.containers??[];if(e.json)return t.success({containers:s}),0;if(s.length===0)return l.info("No containers running"),0;let a=["NAME","IMAGE","CREATED","STATUS","STATE"],i=s.map(u=>({NAME:G9(u.names),IMAGE:u.image,CREATED:V9(u.created),STATUS:u.status,STATE:u.state})),c={};for(let u of a){c[u]=u.length;for(let p of i)c[u]=Math.max(c[u],p[u].length)}let m=u=>a.map(p=>u[p].padEnd(c[p])).join(" ");console.log(m(Object.fromEntries(a.map(u=>[u,u]))));for(let u of i)console.log(m(u));return 0}catch(r){return l.logDetailedError(r),t.fail(`Failed to list containers: ${r instanceof Error?r.message:String(r)}`),1}}var N2=A({path:["ps"],meta:M2,schema:F2,handler:q9});import{z as Dt}from"zod";var L2={name:"logs",category:"cvm-ops",description:"Fetch logs from a CVM",stability:"unstable",arguments:[{name:"container-name",description:"Container name to fetch logs from",required:!1,target:"containerName"}],options:[{name:"serial",description:"CVM serial console (boot, kernel, docker-compose)",type:"boolean",target:"serial"},{name:"cvm-stdout",description:"CVM stdout channel",type:"boolean",target:"cvmStdout"},{name:"cvm-stderr",description:"CVM stderr channel",type:"boolean",target:"cvmStderr"},{name:"stderr",description:"Include container stderr (container mode only)",type:"boolean",target:"stderr"},{name:"tail",shorthand:"n",description:"Number of lines from end",type:"number",target:"tail"},{name:"follow",shorthand:"f",description:"Stream in real-time",type:"boolean",target:"follow"},{name:"timestamps",shorthand:"t",description:"Show timestamps",type:"boolean",target:"timestamps"},{name:"since",description:"Start time (RFC3339 or relative, e.g. 42m)",type:"string",target:"since",argumentName:"since"},{name:"until",description:"End time (RFC3339 or relative)",type:"string",target:"until",argumentName:"until"},ds,kt,re],examples:[{name:"Container stdout",value:"phala logs my-service"},{name:"Container stderr",value:"phala logs my-service --stderr"},{name:"Follow container logs",value:"phala logs my-service -f"},{name:"CVM serial console",value:"phala logs --serial"},{name:"CVM stdout channel",value:"phala logs --cvm-stdout"},{name:"CVM stderr channel",value:"phala logs --cvm-stderr"},{name:"Last 100 lines",value:"phala logs my-service -n 100"},{name:"Specify CVM",value:"phala logs my-service --cvm-id app_abc123"}]},B2=Dt.object({containerName:Dt.string().optional(),cvmId:Dt.string().optional(),serial:Dt.boolean().default(!1),cvmStdout:Dt.boolean().default(!1),cvmStderr:Dt.boolean().default(!1),stderr:Dt.boolean().default(!1),since:Dt.string().optional(),until:Dt.string().optional(),tail:Dt.number().optional(),follow:Dt.boolean().default(!1),timestamps:Dt.boolean().default(!1),json:Dt.boolean().default(!1),interactive:Dt.boolean().default(!1)});function D2(e,t,r){if(e.channel==="stdout"){t.includeStdout&&r.stdout.write(e.message);return}t.includeStderr&&r.stderr.write(e.message)}function K9(e){let t=[e.serial&&"serial",e.cvmStdout&&"stdout",e.cvmStderr&&"stderr"].filter(Boolean);return t.length>1?null:t.length===1?{type:"cvm",channel:t[0]}:e.containerName?{type:"container",containerName:e.containerName}:null}async function W9(e,t){if(Ci(e.json),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;let{cvmId:r}=Q.parse(t.cvmId),n=[e.serial,e.cvmStdout,e.cvmStderr].filter(Boolean).length;if(n>1)return t.fail("--serial, --cvm-stdout, and --cvm-stderr are mutually exclusive"),1;let o=n===1;if(e.containerName&&o)return t.fail("Cannot combine container name with --serial/--cvm-stdout/--cvm-stderr. Use container name for container logs, or CVM flags for CVM-level logs."),1;if(e.stderr&&o)return t.fail("--stderr is only valid in container mode, not with CVM flags"),1;let s=K9(e);if(!s)try{let a=await a6(r);a==="running"?s={type:"container"}:(l.warn(`CVM is ${a}. Falling back to serial console logs.`),l.warn("Use --serial, --cvm-stdout, or --cvm-stderr for specific CVM channels."),s={type:"cvm",channel:"serial"})}catch{s={type:"container"}}return s.type==="cvm"?J9(r,s.channel,e,t):Z9(r,s.containerName,e,t)}async function J9(e,t,r,n){try{if(r.follow){if(r.json)return n.fail("Cannot use --json with --follow"),1;let s=new AbortController,a=()=>s.abort();process.on("SIGINT",a),process.on("SIGTERM",a);try{await s6(e,t,i=>n.stdout.write(i),{tail:r.tail,timestamps:r.timestamps,since:r.since,until:r.until},s.signal)}catch(i){if(i.name!=="AbortError")throw i}finally{process.removeListener("SIGINT",a),process.removeListener("SIGTERM",a)}return 0}let o=await o6(e,t,{tail:r.tail,timestamps:r.timestamps,since:r.since,until:r.until});return r.json?(n.success({logs:o,cvm_id:e,channel:t}),0):(o.trim()?n.stdout.write(o):l.info(`No ${t} logs available`),0)}catch(o){return n.fail(`Failed to fetch CVM ${t} logs: ${o instanceof Error?o.message:String(o)}`),1}}async function Z9(e,t,r,n){let o={includeStdout:!0,includeStderr:r.stderr},s={container:t,since:r.since,until:r.until,tail:r.tail,timestamps:r.timestamps,matchContainerIdPrefix:!1};try{if(r.follow){if(r.json)return n.fail("Cannot use --json with --follow"),1;let u=new AbortController,p=()=>u.abort();process.on("SIGINT",p),process.on("SIGTERM",p);try{await t6(e,f=>D2(f,o,n),s,u.signal)}catch(f){if(f.name!=="AbortError")throw f}finally{process.removeListener("SIGINT",p),process.removeListener("SIGTERM",p)}return 0}let i=(await e6(e,s)).filter(u=>u.channel==="stderr"?o.includeStderr:o.includeStdout),c=i.map(u=>u.message).join("");if(r.json)return n.success({logs:c,cvm_id:e}),0;if(c.trim()){for(let u of i)D2(u,o,n);return 0}return await Gc(e)||l.info("No logs available"),0}catch(a){return n.fail(`Failed to fetch container logs: ${a instanceof Error?a.message:String(a)}`),await Gc(e),1}}var U2=A({path:["logs"],meta:L2,schema:B2,handler:W9});var z2={path:["self"],meta:{name:"self",category:"advanced",description:"CLI self-management",stability:"unstable"}};import rR from"prompts";import{execa as nR}from"execa";import Ef from"semver";import Ln from"chalk";import{z as xi}from"zod";var Y9={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json"},X9={name:"yes",shorthand:"y",description:"Skip confirmation prompt",type:"boolean",target:"yes"},Q9={name:"dry-run",description:"Print update command without executing",type:"boolean",target:"dryRun"},eR={name:"package-manager",description:"Override package manager (npm|pnpm|yarn|bun)",type:"string",target:"packageManager",aliases:["pm"],argumentName:"name"},tR={name:"channel",description:"Release channel/dist-tag (e.g. latest, beta, next)",type:"string",target:"channel",argumentName:"tag"},O2={name:"update",description:"Update the Phala CLI",stability:"unstable",options:[Y9,X9,Q9,eR,tR],examples:[{name:"Update CLI",value:"phala self update"},{name:"Dry run",value:"phala self update --dry-run"},{name:"Beta channel",value:"phala self update --channel beta"}]},j2=xi.object({json:xi.boolean().default(!1),yes:xi.boolean().default(!1),dryRun:xi.boolean().default(!1),packageManager:xi.enum(["npm","pnpm","yarn","bun"]).optional(),channel:xi.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/).optional()});var H2="Phala-Network/phala-cloud",eh="cli-v";function oR(e,t){return`https://github.com/${H2}/compare/${eh}${e}...${eh}${t}`}function sR(e){return`https://github.com/${H2}/releases/tag/${eh}${e}`}function tm(e){return typeof e=="string"&&e.trim().length>0}function aR(e){return e.startsWith("@")?e.replace("/","%2F"):e}async function iR(e,t){let n=`https://registry.npmjs.org/${aR(e)}`,o=new AbortController,s=setTimeout(()=>o.abort(),5e3);try{let a=await fetch(n,{signal:o.signal,headers:{accept:"application/json"}});if(!a.ok)return{latestVersion:null,error:`Registry returned ${a.status}`};let i=await a.json();if(!i||typeof i!="object")return{latestVersion:null,error:"Invalid registry response"};let c=i["dist-tags"];if(!c||typeof c!="object")return{latestVersion:null,error:"No dist-tags in response"};let m=c[t]??c.latest;return typeof m!="string"?{latestVersion:null,error:`Channel "${t}" not found`}:{latestVersion:Ef.valid(m)}}catch(a){return a instanceof Error&&a.name==="AbortError"?{latestVersion:null,error:"Request timed out"}:{latestVersion:null,error:String(a)}}finally{clearTimeout(s)}}function cR(e){if(typeof e!="object"||e===null||!("code"in e))return;let t=e.code;return typeof t=="string"?t:void 0}function mR(e){let r=Ef.parse(e)?.prerelease?.[0];return typeof r=="string"&&r.length>0?r:void 0}function uR(e,t,r,n){let o=[],s=n instanceof Error&&typeof n.message=="string"?n.message:String(n),a=cR(n);(/permission denied|eacces|not permitted/i.test(s)||n instanceof Error&&(a==="EACCES"||a==="EPERM"))&&o.push(`Permission error while running "${r}". Ensure your global install prefix is writable (avoid sudo if possible).`),/command not found|not recognized as an internal|ENOENT/i.test(s)&&o.push(`Package manager "${t}" not found. Install it or rerun with --package-manager npm|pnpm|yarn|bun.`);let i=e.NVM_DIR;t==="npm"&&tm(i)&&o.push(`Detected nvm (NVM_DIR=${i}). Make sure the intended Node version is active (e.g. "nvm use <version>") and your npm global bin is on PATH.`);let c=e.FNM_DIR;return t==="npm"&&tm(c)&&o.push(`Detected fnm (FNM_DIR=${c}). Ensure your shell has fnm env loaded (e.g. eval "$(fnm env)") so the correct node/npm are on PATH.`),o}function pR(e,t,r){if(tm(e))return e.trim();if(tm(r.PHALA_UPDATE_CHANNEL))return r.PHALA_UPDATE_CHANNEL;let n=ui("updateCheckChannel");return tm(n)?n:mR(t)??"latest"}async function lR(e,t){let r=t.cli?.packageName??"phala",n=t.cli?.runtime??Hl(),o=e.packageManager??Lc(t.env,n),s=t.cli?.packageVersion??"0.0.0",a=pR(e.channel,s,t.env);e.json||t.stderr.write(Ln.gray(`Checking for updates...
454
+ `));let{latestVersion:i,error:c}=await iR(r,a);if(i){let S=Date.now(),k=a.replace(/[^a-zA-Z0-9_-]/g,"_");ss({[`updateCheckLastAt_${k}`]:S,[`updateCheckLatest_${k}`]:i,...a==="latest"?{updateCheckLastAt:S,updateCheckLatest:i}:{}})}let m=Ef.valid(s),u=i&&m&&!Ef.gt(i,m),p=!u&&i&&m?oR(m,i):void 0,f=i?sR(i):void 0;e.json||(c?(t.stderr.write(Ln.yellow(`Warning: Could not fetch latest version: ${c}
455
+ `)),t.stderr.write(Ln.gray(`Current version: v${s}
456
+ `))):i&&(t.stderr.write(Ln.gray(`Current version: v${s}
457
+ `)),t.stderr.write(Ln.gray(`Latest version: v${i}${a!=="latest"?` (${a})`:""}
458
+ `)),u?t.stderr.write(Ln.green(`You are already on the latest version.
459
+ `)):(t.stderr.write(Ln.yellow(`Update available: v${s} \u2192 v${i}
460
+ `)),p&&t.stderr.write(Ln.gray(`${p}
461
+ `)))));let d=o==="bun"&&i?`${r}@${i}`:a==="latest"?`${r}@latest`:`${r}@${a}`,g=Bc(o,d),{command:h,args:y}=p6(o,d);if(e.json&&e.dryRun)return t.success({command:g,dryRun:!0,currentVersion:s,latestVersion:i,isUpToDate:u,releaseUrl:f,changelogUrl:p}),0;if(e.dryRun)return t.stderr.write(Ln.gray(`Command: ${g}
462
+ `)),0;let b=t.stderr.isTTY===!0&&e.json!==!0;if(!e.yes&&!b){let S=`Non-interactive session detected. Re-run with --yes to apply the update, or use --dry-run to print the command.
463
+ `;return e.json?(t.success({command:g,ran:!1,reason:"nonInteractive",currentVersion:s,latestVersion:i,isUpToDate:u,releaseUrl:f,changelogUrl:p}),0):(t.stderr.write(S),1)}let x=u?`Already up to date. Reinstall anyway with "${g}"?`:`Run "${g}"?`;if(!(e.yes||await rR({type:"confirm",name:"ok",message:x,initial:!u}).then(S=>S.ok===!0)))return e.json&&t.success({command:g,ran:!1,currentVersion:s,latestVersion:i,isUpToDate:u,releaseUrl:f,changelogUrl:p}),0;try{return await nR(h,y,{stdio:"inherit"}),e.json?(t.success({command:g,ran:!0,currentVersion:s,latestVersion:i,isUpToDate:u,releaseUrl:f,changelogUrl:p}),0):(l.success("Update completed"),0)}catch(S){let k=uR(t.env,o,g,S);if(l.logDetailedError(S),t.fail("Self update failed",{command:g,hints:k.length>0?k:void 0}),!e.json&&k.length>0)for(let _ of k)l.info(_);return 1}}var V2=A({path:["self","update"],meta:O2,schema:j2,handler:lR});var th={group:z2,commands:[V2]};import _f from"chalk";import{z as Zt}from"zod";var G2={name:"apps",category:"manage",description:"List dstack apps",stability:"unstable",options:[{name:"page",description:"Page number (1-based)",type:"number",target:"page",group:"basic"},{name:"page-size",description:"Number of items per page",type:"number",target:"pageSize",group:"basic"},{name:"search",description:"Search by name, app_id, vm_uuid, or instance_id",type:"string",target:"search",group:"basic"},{name:"status",description:"Filter by CVM status (can be specified multiple times)",type:"string[]",target:"status",group:"basic"},{name:"listed",description:"Filter by listed status",type:"boolean",target:"listed",negatedName:"no-listed",group:"basic"},{name:"base-image",description:"Filter by base image name",type:"string",target:"baseImage",group:"basic"},{name:"instance-type",description:"Filter by instance type",type:"string",target:"instanceType",group:"basic"},{name:"kms-type",description:"Filter by KMS type",type:"string",target:"kmsType",group:"basic"},{name:"node",description:"Filter by node name",type:"string",target:"node",group:"basic"},{name:"region",description:"Filter by region identifier",type:"string",target:"region",group:"basic"},br],examples:[{name:"List apps",value:"phala apps"},{name:"Second page",value:"phala apps --page 2"},{name:"Search by name",value:"phala apps --search my-app"},{name:"Filter by status",value:"phala apps --status running"},{name:"Output as JSON",value:"phala apps --json"}]},q2=Zt.object({page:Zt.coerce.number().int().min(1).default(1),pageSize:Zt.coerce.number().int().min(1).max(100).default(50),search:Zt.string().optional(),status:Zt.array(Zt.string()).optional(),listed:Zt.boolean().optional(),baseImage:Zt.string().optional(),instanceType:Zt.string().optional(),kmsType:Zt.string().optional(),node:Zt.string().optional(),region:Zt.string().optional(),json:Zt.boolean().default(!1)});function fR(e){return e.toLowerCase().endsWith("ing")?_f.yellow(e):e==="running"?_f.green(e):e==="stopped"?_f.red(e):_f.yellow(e)}async function dR(e,t){try{let r=await F(),n=await rf(r,{page:e.page,pageSize:e.pageSize,search:e.search,status:e.status,listed:e.listed,baseImage:e.baseImage,instanceType:e.instanceType,kmsType:e.kmsType,node:e.node,region:e.region});if(n.success===!1)return t.fail(n.error.message),1;let o=n.data;if(e.json)return t.success(o),0;let s=["APP_ID","CVM","STATUS","UPTIME"],a=o.items.map(i=>({APP_ID:i.appId,CVM:i.cvmName,STATUS:fR(i.status),UPTIME:i.uptime??"-"}));return a.length===0?(l.info("No CVMs found"),0):(Wt(s,a),l.info(`Page ${o.page}/${o.totalPages} (total ${o.total})`),0)}catch(r){return l.logDetailedError(r),t.fail(`Failed to list apps: ${r instanceof Error?r.message:String(r)}`),1}}var K2=A({path:["apps"],meta:G2,schema:q2,handler:dR});import{z as rh}from"zod";var W2={name:"instance-types",category:"deploy",description:"List available instance types",stability:"unstable",arguments:[{name:"family",description:"Instance type family (cpu, gpu)",required:!1,target:"family"}],options:[br],examples:[{name:"List all instance type families",value:"phala instance-types"},{name:"List CPU instance types",value:"phala instance-types cpu"},{name:"List GPU instance types",value:"phala instance-types gpu"},{name:"Output as JSON",value:"phala instance-types --json"}]},J2=rh.object({family:rh.string().optional(),json:rh.boolean().default(!1)});function Z2(e){return(e/1024).toFixed(0)}function Y2(e){return`$${e}`}async function gR(e,t){try{let r=await F();if(e.family){let s=await q0(r,{family:e.family});if(e.json)return t.success(s),0;let a=["ID","NAME","vCPU","Memory(GB)","Hourly Rate","GPU"],i=s.items.map(c=>({ID:c.id,NAME:c.name,vCPU:c.vcpu.toString(),"Memory(GB)":Z2(c.memory_mb),"Hourly Rate":Y2(c.hourly_rate),GPU:c.requires_gpu?"Yes":"No"}));return i.length===0?(l.info(`No instance types found for family '${e.family}'`),0):(Wt(a,i),l.info(`Total: ${s.total} instance types`),0)}let n=await G0(r);if(e.json)return t.success(n),0;if(n.result.length===0)return l.info("No instance types found"),0;let o=["ID","NAME","vCPU","Memory(GB)","Hourly Rate"];for(let s of n.result){l.info(`
464
+ Family: ${s.name} (${s.total} types)`);let a=s.items.map(i=>({ID:i.id,NAME:i.name,vCPU:i.vcpu.toString(),"Memory(GB)":Z2(i.memory_mb),"Hourly Rate":Y2(i.hourly_rate)}));Wt(o,a)}return 0}catch(r){return l.logDetailedError(r),t.fail(`Failed to list instance types: ${r instanceof Error?r.message:String(r)}`),1}}var X2=A({path:["instance-types"],meta:W2,schema:J2,handler:gR});import{z as Q2}from"zod";var eS={name:"runtime-config",description:"Show the runtime configuration of a CVM",stability:"stable",category:"cvm-ops",arguments:[he],options:[re],examples:[{name:"Show runtime config by app_id",value:"phala runtime-config app_123"},{name:"Show runtime config by name",value:"phala runtime-config my-app"}]},tS=Q2.object({cvmId:Q2.string().optional()});async function hR(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Either pass a CVM ID as argument or configure it in phala.toml."),1;try{let r=await F(),n=await Pw(r,t.cvmId);if(!n.success)return t.fail(`Failed to get runtime config: ${n.error.message}`),1;let o=n.data;if(we())return t.success(o),0;if(console.log(`Hostname: ${o.hostname??"-"}`),console.log(`Gateway Domain: ${o.default_gateway_domain??"-"}`),console.log(`SSH Keys: ${o.ssh_authorized_keys.length>0?`${o.ssh_authorized_keys.length} key(s)`:"none"}`),o.ssh_authorized_keys.length>0){console.log(),console.log("SSH Authorized Keys:");for(let s of o.ssh_authorized_keys)console.log(` ${s}`)}return 0}catch(r){return l.logDetailedError(r),t.fail("Failed to get CVM runtime config"),1}}var rS=A({path:["runtime-config"],meta:eS,schema:tS,handler:hR});import{existsSync as sS,readFileSync as xR}from"fs";import{basename as vR,join as If}from"path";import{homedir as Pf,hostname as wR}from"os";import{z as nh}from"zod";var yR={name:"name",description:"Name for the SSH key (default: key file name)",type:"string",target:"name"},bR={name:"key-file",description:"Path to SSH public key file (default: ~/.ssh/id_ed25519.pub or ~/.ssh/id_rsa.pub)",type:"string",target:"keyFile"},nS={name:"add",description:"Add a local SSH public key to your account",stability:"stable",options:[yR,bR],examples:[{name:"Add default SSH key",value:"phala ssh-keys add"},{name:"Add a specific key with a name",value:"phala ssh-keys add --name my-laptop --key-file ~/.ssh/id_ed25519.pub"}]},oS=nh.object({name:nh.string().optional(),keyFile:nh.string().optional()});function CR(){let e=[If(Pf(),".ssh","id_ed25519.pub"),If(Pf(),".ssh","id_rsa.pub"),If(Pf(),".ssh","id_ecdsa.pub")];for(let t of e)if(sS(t))return t}async function SR(e,t){try{let r=e.keyFile;if(r?.startsWith("~/")&&(r=If(Pf(),r.slice(2))),!r&&(r=CR(),!r))return t.fail("No SSH public key found. Specify one with --key-file or generate one with ssh-keygen."),1;if(!sS(r))return t.fail(`SSH public key file not found: ${r}`),1;let n=xR(r,"utf-8").trim(),o=e.name??`${wR()}-${vR(r,".pub")}`,s=await F(),a=await ig(s,{name:o,public_key:n});return a.success?we()?(t.success(a.data),0):(l.success(`Added SSH key "${o}" (${a.data.key_type}, ${a.data.fingerprint})`),0):(t.fail(`Failed to add SSH key: ${a.error.message}`),1)}catch(r){return l.logDetailedError(r),t.fail("Failed to add SSH key"),1}}var aS=A({path:["ssh-keys","add"],meta:nS,schema:oS,handler:SR});var iS={path:["ssh-keys"],meta:{name:"ssh-keys",category:"manage",description:"Manage SSH keys",stability:"stable"}};import{z as cS}from"zod";var kR={name:"github_username",description:"GitHub username to import SSH keys from",required:!0,target:"githubUsername"},mS={name:"import-github",description:"Import SSH keys from a GitHub user's public profile",stability:"stable",arguments:[kR],examples:[{name:"Import SSH keys from a GitHub profile",value:"phala ssh-keys import-github octocat"}]},uS=cS.object({githubUsername:cS.string()});async function ER(e,t){try{let r=await F(),n=l.startSpinner(`Importing SSH keys from github.com/${e.githubUsername}`),o=await ag(r,{github_username:e.githubUsername});if(n.stop(!0),!o.success)return t.fail(`Failed to import SSH keys: ${o.error.message}`),1;if(we())return t.success(o.data),0;let{keys_added:s,keys_skipped:a,errors:i}=o.data;if(i.length>0){l.warn(`${i.length} key(s) could not be imported:`);for(let c of i)l.warn(` ${c}`)}return s>0?l.success(`Added ${s} SSH key(s) from github.com/${e.githubUsername} (${a} skipped)`):l.info("No new keys added (all keys already exist)"),0}catch(r){return l.logDetailedError(r),t.fail("Failed to import SSH keys"),1}}var pS=A({path:["ssh-keys","import-github"],meta:mS,schema:uS,handler:ER});import{z as _R}from"zod";var lS={name:"list",aliases:["ls"],description:"List SSH keys for the current user",stability:"stable",examples:[{name:"List all SSH keys",value:"phala ssh-keys list"}]},fS=_R.object({});async function IR(e,t){try{let r=await F(),n=await Ac(r);if(!n.success)return t.fail(`Failed to list SSH keys: ${n.error.message}`),1;let o=n.data;if(we())return t.success(o),0;if(o.length===0)return l.info("No SSH keys found"),0;let s=["ID","NAME","TYPE","FINGERPRINT","SOURCE","CREATED"],a=o.map(i=>({ID:i.id,NAME:i.name,TYPE:i.key_type,FINGERPRINT:i.fingerprint,SOURCE:i.source,CREATED:i.created_at.slice(0,10)}));return Wt(s,a),0}catch(r){return l.logDetailedError(r),t.fail("Failed to list SSH keys"),1}}var dS=A({path:["ssh-keys","list"],meta:lS,schema:fS,handler:IR});import AR from"inquirer";import{z as oh}from"zod";var PR={name:"key_id",description:"SSH key ID to remove (from `phala ssh-keys list`)",required:!1,target:"keyId"},gS={name:"remove",aliases:["rm"],description:"Remove an SSH key from your account",stability:"stable",arguments:[PR],options:[re],examples:[{name:"Remove an SSH key by ID",value:"phala ssh-keys remove sshkey_xxx"},{name:"Interactive selection",value:"phala ssh-keys rm -i"}]},hS=oh.object({keyId:oh.string().optional(),interactive:oh.boolean().default(!1)});async function TR(){let e=l.startSpinner("Fetching SSH keys"),t=await F(),r=await Ac(t);if(e.stop(!0),!r.success){l.error(`Failed to fetch SSH keys: ${r.error.message}`);return}let n=r.data;if(n.length===0){l.info("No SSH keys found");return}let o=n.map(a=>({name:`${a.id} ${a.name} (${a.key_type}, ${a.fingerprint})`,value:a.id})),{selectedKey:s}=await AR.prompt([{type:"list",name:"selectedKey",message:"Select an SSH key to remove:",choices:o}]);return s}async function $R(e,t){try{let r=e.keyId;if(!r&&e.interactive&&(r=await TR(),!r))return 0;if(!r)return t.fail("Missing key_id. Use `phala ssh-keys rm <key_id>` or `phala ssh-keys rm -i` for interactive selection."),1;let n=await F(),o=await cg(n,{keyId:r});return o.success?we()?(t.success({keyId:r,removed:!0}),0):(l.success(`SSH key ${r} removed`),0):(t.fail(`Failed to remove SSH key: ${o.error.message}`),1)}catch(r){return l.logDetailedError(r),t.fail("Failed to remove SSH key"),1}}var yS=A({path:["ssh-keys","remove"],meta:gS,schema:hS,handler:$R});var sh={group:iS,commands:[dS,aS,yS,pS]};import{z as ah}from"zod";var bS={name:"whoami",category:"profile",description:"Print the current user",stability:"stable",options:[...zn,kt],examples:[{name:"Show current user",value:"phala whoami"},{name:"JSON output",value:"phala whoami --json"}]},xS=ah.object({json:ah.boolean().default(!1),apiToken:ah.string().optional()});async function RR(e,t){let{client:r,auth:n}=await Dl(t,{apiToken:e.apiToken});if(!n.apiKey)return t.fail('Not authenticated. Run "phala login" first.'),1;let o=await gt(r);if(!o.success)return t.fail(o.error?.message||"Failed to get user information"),1;let{user:s,workspace:a}=o.data;return e.json?(t.success({username:s.username,email:s.email,workspace:a.name,profile:n.profileName}),0):(t.stdout.write(`${s.username} (${a.name})
465
+ `),0)}var vS=A({path:["whoami"],meta:bS,schema:xS,handler:RR});var BR=LR(import.meta.url),DR=FR(BR),UR=NR(DR,"../package.json"),Af=JSON.parse(MR(UR,"utf-8")),zR="+d913cef",OR=`v${Af.version}${zR}`,jR=Hl(),ae=new Kl;ae.registerCommand(l5);ae.registerCommand(K2);ae.registerCommand(X2);ae.registerCommand(Q5);ae.registerCommand(P2);ae.registerCommand(R2);ae.registerCommand(N2);ae.registerCommand(U2);ae.registerCommand(rS);ae.registerCommand(G5);ae.registerCommand(r2);ae.registerCommand(y2);ae.registerCommand(v2);ae.registerCommand($6);ae.registerCommand(j6);ae.registerCommand(vS);ae.registerCommand(C2);ae.registerGroup(th.group);for(let e of th.commands)ae.registerCommand(e);ae.registerGroup(Eg.group);for(let e of Eg.commands)ae.registerCommand(e);ae.registerGroup(Ig.group);for(let e of Ig.commands)ae.registerCommand(e);ae.registerGroup(jg.group);for(let e of jg.commands)ae.registerCommand(e);ae.registerGroup(sh.group);for(let e of sh.commands)ae.registerCommand(e);ae.registerGroup(Hg.group);for(let e of Hg.commands)ae.registerCommand(e);ae.registerGroup(Wg.group);for(let e of Wg.commands)ae.registerCommand(e);ae.registerGroup(Zg.group);for(let e of Zg.commands)ae.registerCommand(e);process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function HR(){await S6({env:process.env,stderr:process.stderr});let e=await x6({registry:ae,argv:process.argv.slice(2),executableName:Af.name??"phala",version:OR,packageName:Af.name??"phala",packageVersion:Af.version,runtime:jR,cwd:process.cwd(),env:process.env,stdout:process.stdout,stderr:process.stderr,stdin:process.stdin});process.exit(e)}HR().catch(e=>{console.error("An error occurred:",e),process.exit(1)});
465
466
  /*! Bundled license information:
466
467
 
467
468
  @noble/hashes/esm/utils.js: