phala 1.1.7 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,134 +1,134 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'module';const require = createRequire(import.meta.url);
3
- var I2=Object.create;var vf=Object.defineProperty;var P2=Object.getOwnPropertyDescriptor;var A2=Object.getOwnPropertyNames;var T2=Object.getPrototypeOf,$2=Object.prototype.hasOwnProperty;var on=(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 I=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ct=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),wf=(e,t)=>{for(var r in t)vf(e,r,{get:t[r],enumerable:!0})},R2=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of A2(t))!$2.call(e,o)&&o!==r&&vf(e,o,{get:()=>t[o],enumerable:!(n=P2(t,o))||n.enumerable});return e};var hi=(e,t,r)=>(r=e!=null?I2(T2(e)):{},R2(t||!e||!e.__esModule?vf(r,"default",{value:e,enumerable:!0}):r,e));var Jg=Ct((P$,Wg)=>{var ms=1e3,us=ms*60,ps=us*60,So=ps*24,z2=So*7,j2=So*365.25;Wg.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return H2(e);if(r==="number"&&isFinite(e))return t.long?G2(e):V2(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function H2(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*j2;case"weeks":case"week":case"w":return r*z2;case"days":case"day":case"d":return r*So;case"hours":case"hour":case"hrs":case"hr":case"h":return r*ps;case"minutes":case"minute":case"mins":case"min":case"m":return r*us;case"seconds":case"second":case"secs":case"sec":case"s":return r*ms;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function V2(e){var t=Math.abs(e);return t>=So?Math.round(e/So)+"d":t>=ps?Math.round(e/ps)+"h":t>=us?Math.round(e/us)+"m":t>=ms?Math.round(e/ms)+"s":e+"ms"}function G2(e){var t=Math.abs(e);return t>=So?Zc(e,t,So,"day"):t>=ps?Zc(e,t,ps,"hour"):t>=us?Zc(e,t,us,"minute"):t>=ms?Zc(e,t,ms,"second"):e+" ms"}function Zc(e,t,r,n){var o=t>=r*1.5;return Math.round(e/r)+" "+n+(o?"s":"")}});var kf=Ct((A$,Zg)=>{function q2(e){r.debug=r,r.default=r,r.coerce=c,r.disable=a,r.enable=o,r.enabled=i,r.humanize=Jg(),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 x=h,b=Number(new Date),v=b-(p||b);x.diff=v,x.prev=p,x.curr=b,p=b,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,(P,_)=>{if(P==="%%")return"%";S++;let R=r.formatters[_];if(typeof R=="function"){let F=y[S];P=R.call(x,F),y.splice(S,1),S--}return P}),r.formatArgs.call(x,y),(x.log||r.log).apply(x,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}Zg.exports=q2});var Yg=Ct((St,Yc)=>{St.formatArgs=W2;St.save=J2;St.load=Z2;St.useColors=K2;St.storage=Y2();St.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`."))}})();St.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 K2(){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 W2(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+Yc.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)}St.log=console.debug||console.log||(()=>{});function J2(e){try{e?St.storage.setItem("debug",e):St.storage.removeItem("debug")}catch{}}function Z2(){let e;try{e=St.storage.getItem("debug")||St.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Y2(){try{return localStorage}catch{}}Yc.exports=kf()(St);var{formatters:X2}=Yc.exports;X2.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Qg=Ct((T$,Xg)=>{"use strict";Xg.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),o=t.indexOf("--");return n!==-1&&(o===-1||n<o)}});var rh=Ct(($$,th)=>{"use strict";var Q2=on("os"),eh=on("tty"),Kt=Qg(),{env:Je}=process,Nn;Kt("no-color")||Kt("no-colors")||Kt("color=false")||Kt("color=never")?Nn=0:(Kt("color")||Kt("colors")||Kt("color=true")||Kt("color=always"))&&(Nn=1);"FORCE_COLOR"in Je&&(Je.FORCE_COLOR==="true"?Nn=1:Je.FORCE_COLOR==="false"?Nn=0:Nn=Je.FORCE_COLOR.length===0?1:Math.min(parseInt(Je.FORCE_COLOR,10),3));function _f(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function If(e,t){if(Nn===0)return 0;if(Kt("color=16m")||Kt("color=full")||Kt("color=truecolor"))return 3;if(Kt("color=256"))return 2;if(e&&!t&&Nn===void 0)return 0;let r=Nn||0;if(Je.TERM==="dumb")return r;if(process.platform==="win32"){let n=Q2.release().split(".");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if("CI"in Je)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(n=>n in Je)||Je.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in Je)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Je.TEAMCITY_VERSION)?1:0;if(Je.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Je){let n=parseInt((Je.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Je.TERM_PROGRAM){case"iTerm.app":return n>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Je.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Je.TERM)||"COLORTERM"in Je?1:r}function eS(e){let t=If(e,e&&e.isTTY);return _f(t)}th.exports={supportsColor:eS,stdout:_f(If(!0,eh.isatty(1))),stderr:_f(If(!0,eh.isatty(2)))}});var oh=Ct((Ze,Qc)=>{var tS=on("tty"),Xc=on("util");Ze.init=cS;Ze.log=sS;Ze.formatArgs=nS;Ze.save=aS;Ze.load=iS;Ze.useColors=rS;Ze.destroy=Xc.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Ze.colors=[6,2,3,4,5,1];try{let e=rh();e&&(e.stderr||e).level>=2&&(Ze.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{}Ze.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 rS(){return"colors"in Ze.inspectOpts?!!Ze.inspectOpts.colors:tS.isatty(process.stderr.fd)}function nS(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 A2=Object.create;var wf=Object.defineProperty;var T2=Object.getOwnPropertyDescriptor;var $2=Object.getOwnPropertyNames;var R2=Object.getPrototypeOf,M2=Object.prototype.hasOwnProperty;var Bn=(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 Jt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Cf=(e,t)=>{for(var r in t)wf(e,r,{get:t[r],enumerable:!0})},F2=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $2(t))!M2.call(e,o)&&o!==r&&wf(e,o,{get:()=>t[o],enumerable:!(n=T2(t,o))||n.enumerable});return e};var hi=(e,t,r)=>(r=e!=null?A2(R2(e)):{},F2(t||!e||!e.__esModule?wf(r,"default",{value:e,enumerable:!0}):r,e));var Yg=Jt((R$,Zg)=>{var us=1e3,ps=us*60,ls=ps*60,Eo=ls*24,H2=Eo*7,V2=Eo*365.25;Zg.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return G2(e);if(r==="number"&&isFinite(e))return t.long?K2(e):q2(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function G2(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*V2;case"weeks":case"week":case"w":return r*H2;case"days":case"day":case"d":return r*Eo;case"hours":case"hour":case"hrs":case"hr":case"h":return r*ls;case"minutes":case"minute":case"mins":case"min":case"m":return r*ps;case"seconds":case"second":case"secs":case"sec":case"s":return r*us;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function q2(e){var t=Math.abs(e);return t>=Eo?Math.round(e/Eo)+"d":t>=ls?Math.round(e/ls)+"h":t>=ps?Math.round(e/ps)+"m":t>=us?Math.round(e/us)+"s":e+"ms"}function K2(e){var t=Math.abs(e);return t>=Eo?Xc(e,t,Eo,"day"):t>=ls?Xc(e,t,ls,"hour"):t>=ps?Xc(e,t,ps,"minute"):t>=us?Xc(e,t,us,"second"):e+" ms"}function Xc(e,t,r,n){var o=t>=r*1.5;return Math.round(e/r)+" "+n+(o?"s":"")}});var _f=Jt((M$,Xg)=>{function W2(e){r.debug=r,r.default=r,r.coerce=c,r.disable=a,r.enable=o,r.enabled=i,r.humanize=Yg(),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(I==="%%")return"%";S++;let R=r.formatters[_];if(typeof R=="function"){let F=y[S];I=R.call(b,F),y.splice(S,1),S--}return I}),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}Xg.exports=W2});var Qg=Jt((kt,Qc)=>{kt.formatArgs=Z2;kt.save=Y2;kt.load=X2;kt.useColors=J2;kt.storage=Q2();kt.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`."))}})();kt.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 J2(){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 Z2(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+Qc.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)}kt.log=console.debug||console.log||(()=>{});function Y2(e){try{e?kt.storage.setItem("debug",e):kt.storage.removeItem("debug")}catch{}}function X2(){let e;try{e=kt.storage.getItem("debug")||kt.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Q2(){try{return localStorage}catch{}}Qc.exports=_f()(kt);var{formatters:eS}=Qc.exports;eS.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var th=Jt((Je,tm)=>{var tS=Bn("tty"),em=Bn("util");Je.init=cS;Je.log=sS;Je.formatArgs=nS;Je.save=aS;Je.load=iS;Je.useColors=rS;Je.destroy=em.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=Bn("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 rS(){return"colors"in Je.inspectOpts?!!Je.inspectOpts.colors:tS.isatty(process.stderr.fd)}function nS(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+"+Qc.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=oS()+t+" "+e[0]}function oS(){return Ze.inspectOpts.hideDate?"":new Date().toISOString()+" "}function sS(...e){return process.stderr.write(Xc.formatWithOptions(Ze.inspectOpts,...e)+`
6
- `)}function aS(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function iS(){return process.env.DEBUG}function cS(e){e.inspectOpts={};let t=Object.keys(Ze.inspectOpts);for(let r=0;r<t.length;r++)e.inspectOpts[t[r]]=Ze.inspectOpts[t[r]]}Qc.exports=kf()(Ze);var{formatters:nh}=Qc.exports;nh.o=function(e){return this.inspectOpts.colors=this.useColors,Xc.inspect(e,this.inspectOpts).split(`
7
- `).map(t=>t.trim()).join(" ")};nh.O=function(e){return this.inspectOpts.colors=this.useColors,Xc.inspect(e,this.inspectOpts)}});var sh=Ct((R$,Pf)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?Pf.exports=Yg():Pf.exports=oh()});var Af,ih=I(()=>{Af="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 Tf,w,K=I(()=>{ih();Tf={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${Af}`},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=Tf.getDocsUrl?.({...r,docsPath:o}),a=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...s?[`Docs: ${s}`]:[],...n?[`Details: ${n}`]:[],...Tf.version?[`Version: ${Tf.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=Af}walk(t){return ch(this,t)}}});var ls,em,tm,rm,bi=I(()=>{K();ls=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"})}},em=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"})}},tm=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"})}},rm=class extends w{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed ${r} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}});function be(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}var Lt=I(()=>{});function te(e){return be(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var Wt=I(()=>{Lt()});function Ye(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 ko=I(()=>{});var xi,vi,wi,nm=I(()=>{K();xi=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"})}},vi=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"})}},wi=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 Bn(e,{dir:t,size:r=32}={}){return typeof e=="string"?sn(e,{dir:t,size:r}):mS(e,{dir:t,size:r})}function sn(e,{dir:t,size:r=32}={}){if(r===null)return e;let n=e.replace("0x","");if(n.length>r*2)throw new vi({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function mS(e,{dir:t,size:r=32}={}){if(r===null)return e;if(e.length>r)throw new vi({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 om=I(()=>{nm()});function de(e,t={}){return typeof e=="number"||typeof e=="bigint"?E(e,t):typeof e=="string"?dr(e,t):typeof e=="boolean"?sm(e,t):re(e,t)}function sm(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?(Et(r,{size:t.size}),Bn(r,{size:t.size})):r}function re(e,t={}){let r="";for(let o=0;o<e.length;o++)r+=uS[e[o]];let n=`0x${r}`;return typeof t.size=="number"?(Et(n,{size:t.size}),Bn(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 ls({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?Bn(i,{size:n}):i}function dr(e,t={}){let r=pS.encode(e);return re(r,t)}var uS,pS,L=I(()=>{bi();om();Ge();uS=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));pS=new TextEncoder});function Jt(e,t={}){return typeof e=="number"||typeof e=="bigint"?dS(e,t):typeof e=="boolean"?fS(e,t):be(e)?qe(e,t):gr(e,t)}function fS(e,t={}){let r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?(Et(r,{size:t.size}),Bn(r,{size:t.size})):r}function mh(e){if(e>=an.zero&&e<=an.nine)return e-an.zero;if(e>=an.A&&e<=an.F)return e-(an.A-10);if(e>=an.a&&e<=an.f)return e-(an.a-10)}function qe(e,t={}){let r=e;t.size&&(Et(r,{size:t.size}),r=Bn(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=mh(n.charCodeAt(i++)),m=mh(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 dS(e,t){let r=E(e,t);return qe(r)}function gr(e,t={}){let r=lS.encode(e);return typeof t.size=="number"?(Et(r,{size:t.size}),Bn(r,{dir:"right",size:t.size})):r}var lS,an,Xe=I(()=>{K();Lt();om();Ge();L();lS=new TextEncoder;an={zero:48,nine:57,A:65,F:70,a:97,f:102}});function Et(e,{size:t}){if(te(e)>t)throw new rm({givenSize:te(e),maxSize:t})}function ge(e,t={}){let{signed:r}=t;t.size&&Et(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 $f(e,t={}){let r=e;if(t.size&&(Et(r,{size:t.size}),r=Ye(r)),Ye(r)==="0x00")return!1;if(Ye(r)==="0x01")return!0;throw new tm(r)}function Pe(e,t={}){return Number(ge(e,t))}var Ge=I(()=>{bi();Wt();ko()});function fs(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 am=I(()=>{});function kt(e,t){let r={};return typeof e.authorizationList<"u"&&(r.authorizationList=yS(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=>re(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=hS[e.type]),typeof e.value<"u"&&(r.value=E(e.value)),r}function yS(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 hS,Ln=I(()=>{L();hS={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"}});var SR,ER,kR,_R,IR,PR,AR,TR,$R,RR,MR,FR,NR,BR,LR,DR,UR,OR,zR,jR,HR,VR,GR,qR,KR,WR,JR,ZR,YR,XR,QR,eM,tM,rM,nM,oM,sM,aM,iM,cM,mM,uM,pM,lM,fM,dM,gM,hM,yM,bM,xM,vM,wM,CM,SM,EM,kM,_M,IM,PM,AM,TM,$M,RM,MM,FM,NM,BM,LM,DM,UM,OM,zM,jM,HM,VM,GM,qM,KM,WM,JM,ZM,YM,XM,QM,eF,tF,rF,nF,oF,sF,aF,iF,cF,mF,ds,Ff=I(()=>{SR=2n**(8n-1n)-1n,ER=2n**(16n-1n)-1n,kR=2n**(24n-1n)-1n,_R=2n**(32n-1n)-1n,IR=2n**(40n-1n)-1n,PR=2n**(48n-1n)-1n,AR=2n**(56n-1n)-1n,TR=2n**(64n-1n)-1n,$R=2n**(72n-1n)-1n,RR=2n**(80n-1n)-1n,MR=2n**(88n-1n)-1n,FR=2n**(96n-1n)-1n,NR=2n**(104n-1n)-1n,BR=2n**(112n-1n)-1n,LR=2n**(120n-1n)-1n,DR=2n**(128n-1n)-1n,UR=2n**(136n-1n)-1n,OR=2n**(144n-1n)-1n,zR=2n**(152n-1n)-1n,jR=2n**(160n-1n)-1n,HR=2n**(168n-1n)-1n,VR=2n**(176n-1n)-1n,GR=2n**(184n-1n)-1n,qR=2n**(192n-1n)-1n,KR=2n**(200n-1n)-1n,WR=2n**(208n-1n)-1n,JR=2n**(216n-1n)-1n,ZR=2n**(224n-1n)-1n,YR=2n**(232n-1n)-1n,XR=2n**(240n-1n)-1n,QR=2n**(248n-1n)-1n,eM=2n**(256n-1n)-1n,tM=-(2n**(8n-1n)),rM=-(2n**(16n-1n)),nM=-(2n**(24n-1n)),oM=-(2n**(32n-1n)),sM=-(2n**(40n-1n)),aM=-(2n**(48n-1n)),iM=-(2n**(56n-1n)),cM=-(2n**(64n-1n)),mM=-(2n**(72n-1n)),uM=-(2n**(80n-1n)),pM=-(2n**(88n-1n)),lM=-(2n**(96n-1n)),fM=-(2n**(104n-1n)),dM=-(2n**(112n-1n)),gM=-(2n**(120n-1n)),hM=-(2n**(128n-1n)),yM=-(2n**(136n-1n)),bM=-(2n**(144n-1n)),xM=-(2n**(152n-1n)),vM=-(2n**(160n-1n)),wM=-(2n**(168n-1n)),CM=-(2n**(176n-1n)),SM=-(2n**(184n-1n)),EM=-(2n**(192n-1n)),kM=-(2n**(200n-1n)),_M=-(2n**(208n-1n)),IM=-(2n**(216n-1n)),PM=-(2n**(224n-1n)),AM=-(2n**(232n-1n)),TM=-(2n**(240n-1n)),$M=-(2n**(248n-1n)),RM=-(2n**(256n-1n)),MM=2n**8n-1n,FM=2n**16n-1n,NM=2n**24n-1n,BM=2n**32n-1n,LM=2n**40n-1n,DM=2n**48n-1n,UM=2n**56n-1n,OM=2n**64n-1n,zM=2n**72n-1n,jM=2n**80n-1n,HM=2n**88n-1n,VM=2n**96n-1n,GM=2n**104n-1n,qM=2n**112n-1n,KM=2n**120n-1n,WM=2n**128n-1n,JM=2n**136n-1n,ZM=2n**144n-1n,YM=2n**152n-1n,XM=2n**160n-1n,QM=2n**168n-1n,eF=2n**176n-1n,tF=2n**184n-1n,rF=2n**192n-1n,nF=2n**200n-1n,oF=2n**208n-1n,sF=2n**216n-1n,aF=2n**224n-1n,iF=2n**232n-1n,cF=2n**240n-1n,mF=2n**248n-1n,ds=2n**256n-1n});function ze(e){return typeof e[0]=="string"?Qe(e):bS(e)}function bS(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 Qe(e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}var ht=I(()=>{});var Ei,gs,im,Nf=I(()=>{K();Ei=class extends w{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}},gs=class extends w{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}},im=class extends w{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}});function hs(e,{recursiveReadLimit:t=8192}={}){let r=Object.create(xS);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}var xS,cm=I(()=>{Nf();xS={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 im({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new gs({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Ei({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 Ei({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 mm,gh,um=I(()=>{mm={gwei:9,wei:18},gh={ether:-9,wei:9}});function pm(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 Bf=I(()=>{});function ys(e,t="wei"){return pm(e,mm[t])}var lm=I(()=>{um();Bf()});function Ke(e,t="wei"){return pm(e,gh[t])}var bs=I(()=>{um();Bf()});function Io(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 fm,dm,gm,hm,ym,xs,vs,ws,bm,Dt=I(()=>{lm();bs();K();fm=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"})}},dm=class extends w{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}},gm=class extends w{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Io(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"})}},hm=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"})}},ym=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=Io({chain:o&&`${o?.name} (id: ${o?.id})`,from:r?.address,to:p,value:typeof l<"u"&&`${ys(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}},xs=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"})}},vs=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"})}},ws=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}},bm=class extends w{constructor({hash:t}){super(`Timed out while waiting for transaction with hash "${t}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}});function CS(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Lf(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Po(e,...t){if(!CS(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 xm(e,t){Po(e);let r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function yh(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Dn(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function vm(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function yr(e,t){return e<<32-t|e>>>t}function ES(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function kS(e){for(let t=0;t<e.length;t++)e[t]=ES(e[t]);return e}function _S(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function ki(e){return typeof e=="string"&&(e=_S(e)),Po(e),e}function wm(e){let t=n=>e().update(ki(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}var SS,Df,ks,Cm=I(()=>{SS=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;Df=SS?e=>e:kS;ks=class{}});function PS(e,t=!1){return t?{h:Number(e&Em),l:Number(e>>vh&Em)}:{h:Number(e>>vh&Em)|0,l:Number(e&Em)|0}}function wh(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}=PS(e[s],t);[n[s],o[s]]=[a,i]}return[n,o]}var Em,vh,Ch,Sh,Eh,kh,_h=I(()=>{Em=BigInt(4294967295),vh=BigInt(32);Ch=(e,t,r)=>e<<r|t>>>32-r,Sh=(e,t,r)=>t<<r|e>>>32-r,Eh=(e,t,r)=>t<<r-32|e>>>64-r,kh=(e,t,r)=>e<<r-32|t>>>64-r});var le,br=I(()=>{K();le=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 Ao,$m,Rm,_i,To,Ii=I(()=>{K();Ao=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"})}},$m=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"})}},Rm=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"})}},To=class extends w{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}});var mn,Zt,Ps,As,Ts,$s,Rs,Ms,Fs,Ns,Tr,Yt,On=I(()=>{bs();K();mn=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(mn,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(mn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});Zt=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(Zt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});Ps=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(Ps,"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/});As=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(As,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});Ts=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(Ts,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});$s=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($s,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});Rs=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(Rs,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});Ms=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(Ms,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});Fs=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(Fs,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});Ns=class extends w{constructor({cause:t}){super("The transaction type is not supported for this chain.",{cause:t,name:"TransactionTypeNotSupportedError"})}};Object.defineProperty(Ns,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});Tr=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(Tr,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});Yt=class extends w{constructor({cause:t}){super(`An error occurred while executing: ${t?.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}});var Xt,Bs=I(()=>{Xt=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 US(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=Rh(m,u,1)^r[i],l=Mh(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=Nh[a],c=Rh(o,s,i),m=Mh(o,s,i),u=Fh[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]^=LS[n],e[1]^=DS[n]}Dn(r)}var RS,Pi,MS,FS,NS,BS,Fh,Nh,Bh,Lh,LS,DS,Rh,Mh,Uf,OS,Mm,Of=I(()=>{_h();Cm();RS=BigInt(0),Pi=BigInt(1),MS=BigInt(2),FS=BigInt(7),NS=BigInt(256),BS=BigInt(113),Fh=[],Nh=[],Bh=[];for(let e=0,t=Pi,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],Fh.push(2*(5*n+r)),Nh.push((e+1)*(e+2)/2%64);let o=RS;for(let s=0;s<7;s++)t=(t<<Pi^(t>>FS)*BS)%NS,t&MS&&(o^=Pi<<(Pi<<BigInt(s))-Pi);Bh.push(o)}Lh=wh(Bh,!0),LS=Lh[0],DS=Lh[1],Rh=(e,t,r)=>r>32?Eh(e,t,r):Ch(e,t,r),Mh=(e,t,r)=>r>32?kh(e,t,r):Sh(e,t,r);Uf=class e extends ks{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,Lf(n),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=yh(this.state)}clone(){return this._cloneInto()}keccak(){Df(this.state32),US(this.state32,this.rounds),Df(this.state32),this.posOut=0,this.pos=0}update(t){_s(this),t=ki(t),Po(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),Po(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 Lf(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(xm(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,Dn(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}},OS=(e,t,r)=>wm(()=>new Uf(t,e,r)),Mm=OS(1,136,256/8)});function fe(e,t){let r=t||"hex",n=Mm(be(e,{strict:!1})?Jt(e):e);return r==="bytes"?n:de(n)}var Qt=I(()=>{Of();Lt();Xe();L()});function un(e,t){if(zf.has(`${e}.${t}`))return zf.get(`${e}.${t}`);let r=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),n=fe(gr(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 Ls(e,t){if(!ne(e,{strict:!1}))throw new le({address:e});return un(e,t)}var zf,zn=I(()=>{br();Xe();Qt();Bs();Ut();zf=new Xt(8192)});function ne(e,t){let{strict:r=!0}=t??{},n=`${e}.${r}`;if(jf.has(n))return jf.get(n);let o=zS.test(e)?e.toLowerCase()===e?!0:r?un(e)===e:!0:!1;return jf.set(n,o),o}var zS,jf,Ut=I(()=>{Bs();zn();zS=/^0x[a-fA-F0-9]{40}$/,jf=new Xt(8192)});function er(e,t,r,{strict:n}={}){return be(e,{strict:!1})?Fm(e,t,r,{strict:n}):Hf(e,t,r,{strict:n})}function Dh(e,t){if(typeof t=="number"&&t>0&&t>te(e)-1)throw new xi({offset:t,position:"start",size:te(e)})}function Uh(e,t,r){if(typeof t=="number"&&typeof r=="number"&&te(e)!==r-t)throw new xi({offset:r,position:"end",size:te(e)})}function Hf(e,t,r,{strict:n}={}){Dh(e,t);let o=e.slice(t,r);return n&&Uh(o,t,r),o}function Fm(e,t,r,{strict:n}={}){Dh(e,t);let o=`0x${e.replace("0x","").slice((t??0)*2,(r??e.length)*2)}`;return n&&Uh(o,t,r),o}var jn=I(()=>{nm();Lt();Wt()});function tr({blockNumber:e,chain:t,contract:r}){let n=t?.contracts?.[r];if(!n)throw new Ao({chain:t,contract:{name:r}});if(e&&n.blockCreated&&n.blockCreated>e)throw new Ao({blockNumber:e,chain:t,contract:{name:r,blockCreated:n.blockCreated}});return n.address}var $o=I(()=>{Ii()});function W(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}var $e=I(()=>{});var Kh,Um,Wh,Om=I(()=>{Kh={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."},Um={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},Wh={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 zm(e.type);return`${e.name}(${Ri(e.inputs,{includeName:t})})`}function Ri(e,{includeName:t=!1}={}){return e?e.map(r=>XS(r,{includeName:t})).join(t?", ":","):""}function XS(e,{includeName:t}){return e.type.startsWith("tuple")?`(${Ri(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}var pn=I(()=>{Re()});var jm,Mi,Us,nr,Hm,Vm,Gm,qm,Fi,Os,Km,zs,Ni,xr,js,Wm,Jm,Zm,vr,$r,Ym,Xm,Hs,zm,Re=I(()=>{pn();Wt();K();jm=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+"+tm.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=oS()+t+" "+e[0]}function oS(){return Je.inspectOpts.hideDate?"":new Date().toISOString()+" "}function sS(...e){return process.stderr.write(em.formatWithOptions(Je.inspectOpts,...e)+`
6
+ `)}function aS(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function iS(){return process.env.DEBUG}function cS(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]]}tm.exports=_f()(Je);var{formatters:eh}=tm.exports;eh.o=function(e){return this.inspectOpts.colors=this.useColors,em.inspect(e,this.inspectOpts).split(`
7
+ `).map(t=>t.trim()).join(" ")};eh.O=function(e){return this.inspectOpts.colors=this.useColors,em.inspect(e,this.inspectOpts)}});var rh=Jt((F$,If)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?If.exports=Qg():If.exports=th()});var Pf,oh=P(()=>{Pf="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 Af,w,K=P(()=>{oh();Af={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${Pf}`},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=Af.getDocsUrl?.({...r,docsPath:o}),a=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...s?[`Docs: ${s}`]:[],...n?[`Details: ${n}`]:[],...Af.version?[`Version: ${Af.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=Pf}walk(t){return sh(this,t)}}});var fs,rm,nm,om,bi=P(()=>{K();fs=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"})}},rm=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"})}},nm=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"})}},om=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 Dt=P(()=>{});function re(e){return xe(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var Zt=P(()=>{Dt()});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 Io=P(()=>{});var xi,vi,wi,sm=P(()=>{K();xi=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"})}},vi=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"})}},wi=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 Ln(e,{dir:t,size:r=32}={}){return typeof e=="string"?sn(e,{dir:t,size:r}):mS(e,{dir:t,size:r})}function sn(e,{dir:t,size:r=32}={}){if(r===null)return e;let n=e.replace("0x","");if(n.length>r*2)throw new vi({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function mS(e,{dir:t,size:r=32}={}){if(r===null)return e;if(e.length>r)throw new vi({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 am=P(()=>{sm()});function he(e,t={}){return typeof e=="number"||typeof e=="bigint"?k(e,t):typeof e=="string"?hr(e,t):typeof e=="boolean"?im(e,t):ne(e,t)}function im(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?(Et(r,{size:t.size}),Ln(r,{size:t.size})):r}function ne(e,t={}){let r="";for(let o=0;o<e.length;o++)r+=uS[e[o]];let n=`0x${r}`;return typeof t.size=="number"?(Et(n,{size:t.size}),Ln(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 fs({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?Ln(i,{size:n}):i}function hr(e,t={}){let r=pS.encode(e);return ne(r,t)}var uS,pS,D=P(()=>{bi();am();Ge();uS=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));pS=new TextEncoder});function Yt(e,t={}){return typeof e=="number"||typeof e=="bigint"?dS(e,t):typeof e=="boolean"?fS(e,t):xe(e)?qe(e,t):yr(e,t)}function fS(e,t={}){let r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?(Et(r,{size:t.size}),Ln(r,{size:t.size})):r}function ah(e){if(e>=an.zero&&e<=an.nine)return e-an.zero;if(e>=an.A&&e<=an.F)return e-(an.A-10);if(e>=an.a&&e<=an.f)return e-(an.a-10)}function qe(e,t={}){let r=e;t.size&&(Et(r,{size:t.size}),r=Ln(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=ah(n.charCodeAt(i++)),m=ah(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 dS(e,t){let r=k(e,t);return qe(r)}function yr(e,t={}){let r=lS.encode(e);return typeof t.size=="number"?(Et(r,{size:t.size}),Ln(r,{dir:"right",size:t.size})):r}var lS,an,Ye=P(()=>{K();Dt();am();Ge();D();lS=new TextEncoder;an={zero:48,nine:57,A:65,F:70,a:97,f:102}});function Et(e,{size:t}){if(re(e)>t)throw new om({givenSize:re(e),maxSize:t})}function ye(e,t={}){let{signed:r}=t;t.size&&Et(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 Tf(e,t={}){let r=e;if(t.size&&(Et(r,{size:t.size}),r=Ze(r)),Ze(r)==="0x00")return!1;if(Ze(r)==="0x01")return!0;throw new nm(r)}function Ae(e,t={}){return Number(ye(e,t))}var Ge=P(()=>{bi();Zt();Io()});function ds(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 cm=P(()=>{});function _t(e,t){let r={};return typeof e.authorizationList<"u"&&(r.authorizationList=yS(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=>ne(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=hS[e.type]),typeof e.value<"u"&&(r.value=k(e.value)),r}function yS(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 hS,Dn=P(()=>{D();hS={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"}});var ER,_R,IR,PR,AR,TR,$R,RR,MR,FR,BR,NR,LR,DR,UR,zR,OR,jR,HR,VR,GR,qR,KR,WR,JR,ZR,YR,XR,QR,eM,tM,rM,nM,oM,sM,aM,iM,cM,mM,uM,pM,lM,fM,dM,gM,hM,yM,bM,xM,vM,wM,CM,SM,kM,EM,_M,IM,PM,AM,TM,$M,RM,MM,FM,BM,NM,LM,DM,UM,zM,OM,jM,HM,VM,GM,qM,KM,WM,JM,ZM,YM,XM,QM,eF,tF,rF,nF,oF,sF,aF,iF,cF,mF,uF,pF,gs,Mf=P(()=>{ER=2n**(8n-1n)-1n,_R=2n**(16n-1n)-1n,IR=2n**(24n-1n)-1n,PR=2n**(32n-1n)-1n,AR=2n**(40n-1n)-1n,TR=2n**(48n-1n)-1n,$R=2n**(56n-1n)-1n,RR=2n**(64n-1n)-1n,MR=2n**(72n-1n)-1n,FR=2n**(80n-1n)-1n,BR=2n**(88n-1n)-1n,NR=2n**(96n-1n)-1n,LR=2n**(104n-1n)-1n,DR=2n**(112n-1n)-1n,UR=2n**(120n-1n)-1n,zR=2n**(128n-1n)-1n,OR=2n**(136n-1n)-1n,jR=2n**(144n-1n)-1n,HR=2n**(152n-1n)-1n,VR=2n**(160n-1n)-1n,GR=2n**(168n-1n)-1n,qR=2n**(176n-1n)-1n,KR=2n**(184n-1n)-1n,WR=2n**(192n-1n)-1n,JR=2n**(200n-1n)-1n,ZR=2n**(208n-1n)-1n,YR=2n**(216n-1n)-1n,XR=2n**(224n-1n)-1n,QR=2n**(232n-1n)-1n,eM=2n**(240n-1n)-1n,tM=2n**(248n-1n)-1n,rM=2n**(256n-1n)-1n,nM=-(2n**(8n-1n)),oM=-(2n**(16n-1n)),sM=-(2n**(24n-1n)),aM=-(2n**(32n-1n)),iM=-(2n**(40n-1n)),cM=-(2n**(48n-1n)),mM=-(2n**(56n-1n)),uM=-(2n**(64n-1n)),pM=-(2n**(72n-1n)),lM=-(2n**(80n-1n)),fM=-(2n**(88n-1n)),dM=-(2n**(96n-1n)),gM=-(2n**(104n-1n)),hM=-(2n**(112n-1n)),yM=-(2n**(120n-1n)),bM=-(2n**(128n-1n)),xM=-(2n**(136n-1n)),vM=-(2n**(144n-1n)),wM=-(2n**(152n-1n)),CM=-(2n**(160n-1n)),SM=-(2n**(168n-1n)),kM=-(2n**(176n-1n)),EM=-(2n**(184n-1n)),_M=-(2n**(192n-1n)),IM=-(2n**(200n-1n)),PM=-(2n**(208n-1n)),AM=-(2n**(216n-1n)),TM=-(2n**(224n-1n)),$M=-(2n**(232n-1n)),RM=-(2n**(240n-1n)),MM=-(2n**(248n-1n)),FM=-(2n**(256n-1n)),BM=2n**8n-1n,NM=2n**16n-1n,LM=2n**24n-1n,DM=2n**32n-1n,UM=2n**40n-1n,zM=2n**48n-1n,OM=2n**56n-1n,jM=2n**64n-1n,HM=2n**72n-1n,VM=2n**80n-1n,GM=2n**88n-1n,qM=2n**96n-1n,KM=2n**104n-1n,WM=2n**112n-1n,JM=2n**120n-1n,ZM=2n**128n-1n,YM=2n**136n-1n,XM=2n**144n-1n,QM=2n**152n-1n,eF=2n**160n-1n,tF=2n**168n-1n,rF=2n**176n-1n,nF=2n**184n-1n,oF=2n**192n-1n,sF=2n**200n-1n,aF=2n**208n-1n,iF=2n**216n-1n,cF=2n**224n-1n,mF=2n**232n-1n,uF=2n**240n-1n,pF=2n**248n-1n,gs=2n**256n-1n});function Oe(e){return typeof e[0]=="string"?Xe(e):bS(e)}function bS(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 ki,hs,mm,Ff=P(()=>{K();ki=class extends w{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}},hs=class extends w{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}},mm=class extends w{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}});function ys(e,{recursiveReadLimit:t=8192}={}){let r=Object.create(xS);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}var xS,um=P(()=>{Ff();xS={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 mm({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new hs({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new ki({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 ki({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 pm,lh,lm=P(()=>{pm={gwei:9,wei:18},lh={ether:-9,wei:9}});function fm(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 Bf=P(()=>{});function bs(e,t="wei"){return fm(e,pm[t])}var dm=P(()=>{lm();Bf()});function Ke(e,t="wei"){return fm(e,lh[t])}var xs=P(()=>{lm();Bf()});function Ao(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 gm,hm,ym,bm,xm,vs,ws,Cs,vm,Ut=P(()=>{dm();xs();K();gm=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"})}},hm=class extends w{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}},ym=class extends w{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Ao(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"})}},bm=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"})}},xm=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=Ao({chain:o&&`${o?.name} (id: ${o?.id})`,from:r?.address,to:p,value:typeof l<"u"&&`${bs(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}},vs=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"})}},ws=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"})}},Cs=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}},vm=class extends w{constructor({hash:t}){super(`Timed out while waiting for transaction with hash "${t}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}});function CS(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Nf(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function To(e,...t){if(!CS(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 Is(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 wm(e,t){To(e);let r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function dh(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Un(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Cm(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function xr(e,t){return e<<32-t|e>>>t}function kS(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function ES(e){for(let t=0;t<e.length;t++)e[t]=kS(e[t]);return e}function _S(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Ei(e){return typeof e=="string"&&(e=_S(e)),To(e),e}function Sm(e){let t=n=>e().update(Ei(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}var SS,Lf,_s,km=P(()=>{SS=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;Lf=SS?e=>e:ES;_s=class{}});function PS(e,t=!1){return t?{h:Number(e&_m),l:Number(e>>yh&_m)}:{h:Number(e>>yh&_m)|0,l:Number(e&_m)|0}}function bh(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}=PS(e[s],t);[n[s],o[s]]=[a,i]}return[n,o]}var _m,yh,xh,vh,wh,Ch,Sh=P(()=>{_m=BigInt(4294967295),yh=BigInt(32);xh=(e,t,r)=>e<<r|t>>>32-r,vh=(e,t,r)=>t<<r|e>>>32-r,wh=(e,t,r)=>t<<r-32|e>>>64-r,Ch=(e,t,r)=>e<<r-32|t>>>64-r});var de,vr=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 $o,Mm,Fm,_i,Ro,Ii=P(()=>{K();$o=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"})}},Mm=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"})}},Fm=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"})}},Ro=class extends w{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}});var mn,Xt,As,Ts,$s,Rs,Ms,Fs,Bs,Ns,Rr,Qt,On=P(()=>{xs();K();mn=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(mn,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(mn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});Xt=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(Xt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});As=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(As,"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/});Ts=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(Ts,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});$s=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($s,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});Rs=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(Rs,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});Ms=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(Ms,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});Fs=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(Fs,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});Bs=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(Bs,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});Ns=class extends w{constructor({cause:t}){super("The transaction type is not supported for this chain.",{cause:t,name:"TransactionTypeNotSupportedError"})}};Object.defineProperty(Ns,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});Rr=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(Rr,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});Qt=class extends w{constructor({cause:t}){super(`An error occurred while executing: ${t?.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}});var er,Ls=P(()=>{er=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 US(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=Ah(m,u,1)^r[i],l=Th(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=Rh[a],c=Ah(o,s,i),m=Th(o,s,i),u=$h[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]^=LS[n],e[1]^=DS[n]}Un(r)}var RS,Pi,MS,FS,BS,NS,$h,Rh,Mh,Fh,LS,DS,Ah,Th,Df,zS,Bm,Uf=P(()=>{Sh();km();RS=BigInt(0),Pi=BigInt(1),MS=BigInt(2),FS=BigInt(7),BS=BigInt(256),NS=BigInt(113),$h=[],Rh=[],Mh=[];for(let e=0,t=Pi,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],$h.push(2*(5*n+r)),Rh.push((e+1)*(e+2)/2%64);let o=RS;for(let s=0;s<7;s++)t=(t<<Pi^(t>>FS)*NS)%BS,t&MS&&(o^=Pi<<(Pi<<BigInt(s))-Pi);Mh.push(o)}Fh=bh(Mh,!0),LS=Fh[0],DS=Fh[1],Ah=(e,t,r)=>r>32?wh(e,t,r):xh(e,t,r),Th=(e,t,r)=>r>32?Ch(e,t,r):vh(e,t,r);Df=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,Nf(n),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=dh(this.state)}clone(){return this._cloneInto()}keccak(){Lf(this.state32),US(this.state32,this.rounds),Lf(this.state32),this.posOut=0,this.pos=0}update(t){Is(this),t=Ei(t),To(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){Is(this,!1),To(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 Nf(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(wm(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,Un(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}},zS=(e,t,r)=>Sm(()=>new Df(t,e,r)),Bm=zS(1,136,256/8)});function ge(e,t){let r=t||"hex",n=Bm(xe(e,{strict:!1})?Yt(e):e);return r==="bytes"?n:he(n)}var tr=P(()=>{Uf();Dt();Ye();D()});function un(e,t){if(zf.has(`${e}.${t}`))return zf.get(`${e}.${t}`);let r=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),n=ge(yr(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 Ds(e,t){if(!ae(e,{strict:!1}))throw new de({address:e});return un(e,t)}var zf,jn=P(()=>{vr();Ye();tr();Ls();zt();zf=new er(8192)});function ae(e,t){let{strict:r=!0}=t??{},n=`${e}.${r}`;if(Of.has(n))return Of.get(n);let o=OS.test(e)?e.toLowerCase()===e?!0:r?un(e)===e:!0:!1;return Of.set(n,o),o}var OS,Of,zt=P(()=>{Ls();jn();OS=/^0x[a-fA-F0-9]{40}$/,Of=new er(8192)});function rr(e,t,r,{strict:n}={}){return xe(e,{strict:!1})?Nm(e,t,r,{strict:n}):jf(e,t,r,{strict:n})}function Bh(e,t){if(typeof t=="number"&&t>0&&t>re(e)-1)throw new xi({offset:t,position:"start",size:re(e)})}function Nh(e,t,r){if(typeof t=="number"&&typeof r=="number"&&re(e)!==r-t)throw new xi({offset:r,position:"end",size:re(e)})}function jf(e,t,r,{strict:n}={}){Bh(e,t);let o=e.slice(t,r);return n&&Nh(o,t,r),o}function Nm(e,t,r,{strict:n}={}){Bh(e,t);let o=`0x${e.replace("0x","").slice((t??0)*2,(r??e.length)*2)}`;return n&&Nh(o,t,r),o}var Hn=P(()=>{sm();Dt();Zt()});function nr({blockNumber:e,chain:t,contract:r}){let n=t?.contracts?.[r];if(!n)throw new $o({chain:t,contract:{name:r}});if(e&&n.blockCreated&&n.blockCreated>e)throw new $o({blockNumber:e,chain:t,contract:{name:r,blockCreated:n.blockCreated}});return n.address}var Mo=P(()=>{Ii()});function W(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}var Re=P(()=>{});var Vh,Om,Gh,jm=P(()=>{Vh={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."},Om={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},Gh={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 Hm(e.type);return`${e.name}(${Ri(e.inputs,{includeName:t})})`}function Ri(e,{includeName:t=!1}={}){return e?e.map(r=>XS(r,{includeName:t})).join(t?", ":","):""}function XS(e,{includeName:t}){return e.type.startsWith("tuple")?`(${Ri(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}var pn=P(()=>{Me()});var Vm,Mi,zs,sr,Gm,qm,Km,Wm,Fi,Os,Jm,js,Bi,wr,Hs,Zm,Ym,Xm,Cr,Mr,Qm,eu,Vs,Hm,Me=P(()=>{pn();Zt();K();Vm=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"})}},Mi=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"})}},Us=class extends w{constructor({data:t,params:r,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join(`
17
- `),{metaMessages:[`Params: (${Ri(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}},nr=class extends w{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}},Hm=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
- `),{name:"AbiEncodingArrayLengthMismatchError"})}},Vm=class extends w{constructor({expectedSize:t,value:r}){super(`Size of bytes "${r}" (bytes${te(r)}) does not match expected size (bytes${t}).`,{name:"AbiEncodingBytesSizeMismatchError"})}},Gm=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
- `),{name:"AbiEncodingLengthMismatchError"})}},qm=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(`
16
+ `),{docsPath:t,name:"AbiConstructorParamsNotFoundError"})}},zs=class extends w{constructor({data:t,params:r,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join(`
17
+ `),{metaMessages:[`Params: (${Ri(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}},sr=class extends w{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}},Gm=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
+ `),{name:"AbiEncodingArrayLengthMismatchError"})}},qm=class extends w{constructor({expectedSize:t,value:r}){super(`Size of bytes "${r}" (bytes${re(r)}) does not match expected size (bytes${t}).`,{name:"AbiEncodingBytesSizeMismatchError"})}},Km=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
+ `),{name:"AbiEncodingLengthMismatchError"})}},Wm=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"})}},Fi=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
21
  `),{docsPath:r,name:"AbiErrorNotFoundError"})}},Os=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}},Km=class extends w{constructor({docsPath:t}){super("Cannot extract event signature from empty topics.",{docsPath:t,name:"AbiEventSignatureEmptyTopicsError"})}},zs=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
- `),{docsPath:r,name:"AbiEventSignatureNotFoundError"})}},Ni=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
- `),{docsPath:r,name:"AbiEventNotFoundError"})}},xr=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"})}},js=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
- `),{docsPath:r,name:"AbiFunctionOutputsNotFoundError"})}},Wm=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
- `),{docsPath:r,name:"AbiFunctionSignatureNotFoundError"})}},Jm=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"})}},Zm=class extends w{constructor({expectedSize:t,givenSize:r}){super(`Expected bytes${t}, got bytes${r}.`,{name:"BytesSizeMismatchError"})}},vr=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
- `),{metaMessages:[`Params: (${Ri(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}},$r=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
- `),{name:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=t}},Ym=class extends w{constructor(t,{docsPath:r}){super([`Type "${t}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
30
- `),{docsPath:r,name:"InvalidAbiEncodingType"})}},Xm=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"})}},Hs=class extends w{constructor(t){super([`Value "${t}" is not a valid array.`].join(`
32
- `),{name:"InvalidArrayError"})}},zm=class extends w{constructor(t){super([`"${t}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
33
- `),{name:"InvalidDefinitionTypeError"})}}});function Jh(e){return QS(e)}var QS,Zh=I(()=>{Xe();Qt();QS=e=>fe(Jt(e))});var Yh,Xh=I(()=>{Yh="1.1.0"});var De,Vs=I(()=>{Xh();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@${Yh}`].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 Ot(e,t){return e.exec(t)?.groups}var Gf,qf,Qm,Bi=I(()=>{Gf=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,qf=/^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)?$/,Qm=/^\(.+?\).*?$/});function eu(e){let t=e.type;if(Qh.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+=eu(s),o<r-1&&(t+=", ")}let n=Ot(Qh,e.type);return t+=`)${n?.array??""}`,eu({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}var Qh,ey=I(()=>{Bi();Qh=/^tuple(?<array>(\[(\d*)\])*)$/});function ln(e){let t="",r=e.length;for(let n=0;n<r;n++){let o=e[n];t+=eu(o),n!==r-1&&(t+=", ")}return t}var Kf=I(()=>{ey()});function Ro(e){return e.type==="function"?`function ${e.name}(${ln(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${ln(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${ln(e.inputs)})`:e.type==="error"?`error ${e.name}(${ln(e.inputs)})`:e.type==="constructor"?`constructor(${ln(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}var ty=I(()=>{Kf()});function ny(e){return ry.test(e)}function oy(e){return Ot(ry,e)}function ay(e){return sy.test(e)}function iy(e){return Ot(sy,e)}function my(e){return cy.test(e)}function uy(e){return Ot(cy,e)}function Hn(e){return py.test(e)}function ly(e){return Ot(py,e)}function dy(e){return fy.test(e)}function gy(e){return Ot(fy,e)}function yy(e){return hy.test(e)}function by(e){return Ot(hy,e)}function xy(e){return eE.test(e)}var ry,sy,cy,py,fy,hy,eE,Wf,vy,tu,Gs=I(()=>{Bi();ry=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;sy=/^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>.*?)\))?$/;py=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;fy=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;hy=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;eE=/^receive\(\) external payable$/;Wf=new Set(["memory","indexed","storage","calldata"]),vy=new Set(["indexed"]),tu=new Set(["calldata","memory","storage"])});var ru,nu,ou,su=I(()=>{Vs();ru=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"})}},nu=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"})}},ou=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 au,iu,cu,mu,uu,pu,lu=I(()=>{Vs();au=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"})}},iu=class extends De{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},cu=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"})}},mu=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"})}},uu=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"})}},pu=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 Rr,fu,du,Jf=I(()=>{Vs();Rr=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"})}},fu=class extends De{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},du=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 gu,wy=I(()=>{Vs();gu=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 hu,Cy=I(()=>{Vs();hu=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 Sy(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 yu,Ey=I(()=>{yu=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 Li(e,t={}){if(my(e))return tE(e,t);if(ay(e))return rE(e,t);if(ny(e))return nE(e,t);if(dy(e))return oE(e,t);if(yy(e))return sE(e);if(xy(e))return{type:"receive",stateMutability:"payable"};throw new fu({signature:e})}function tE(e,t={}){let r=uy(e);if(!r)throw new Rr({signature:e,type:"function"});let n=_t(r.parameters),o=[],s=n.length;for(let i=0;i<s;i++)o.push(wr(n[i],{modifiers:tu,structs:t,type:"function"}));let a=[];if(r.returns){let i=_t(r.returns),c=i.length;for(let m=0;m<c;m++)a.push(wr(i[m],{modifiers:tu,structs:t,type:"function"}))}return{name:r.name,type:"function",stateMutability:r.stateMutability??"nonpayable",inputs:o,outputs:a}}function rE(e,t={}){let r=iy(e);if(!r)throw new Rr({signature:e,type:"event"});let n=_t(r.parameters),o=[],s=n.length;for(let a=0;a<s;a++)o.push(wr(n[a],{modifiers:vy,structs:t,type:"event"}));return{name:r.name,type:"event",inputs:o}}function nE(e,t={}){let r=oy(e);if(!r)throw new Rr({signature:e,type:"error"});let n=_t(r.parameters),o=[],s=n.length;for(let a=0;a<s;a++)o.push(wr(n[a],{structs:t,type:"error"}));return{name:r.name,type:"error",inputs:o}}function oE(e,t={}){let r=gy(e);if(!r)throw new Rr({signature:e,type:"constructor"});let n=_t(r.parameters),o=[],s=n.length;for(let a=0;a<s;a++)o.push(wr(n[a],{structs:t,type:"constructor"}));return{type:"constructor",stateMutability:r.stateMutability??"nonpayable",inputs:o}}function sE(e){let t=by(e);if(!t)throw new Rr({signature:e,type:"fallback"});return{type:"fallback",stateMutability:t.stateMutability??"nonpayable"}}function wr(e,t){let r=Sy(e,t?.type,t?.structs);if(yu.has(r))return yu.get(r);let n=Qm.test(e),o=Ot(n?iE:aE,e);if(!o)throw new iu({param:e});if(o.name&&uE(o.name))throw new cu({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=_t(o.type),l=[],d=p.length;for(let g=0;g<d;g++)l.push(wr(p[g],{structs:i}));m={components:l}}else if(o.type in i)c="tuple",m={components:i[o.type]};else if(cE.test(o.type))c=`${o.type}256`;else if(o.type==="address payable")c="address";else if(c=o.type,t?.type!=="struct"&&!Zf(c))throw new ou({type:c});if(o.modifier){if(!t?.modifiers?.has?.(o.modifier))throw new mu({param:e,type:t?.type,modifier:o.modifier});if(tu.has(o.modifier)&&!pE(c,!!o.array))throw new uu({param:e,type:t?.type,modifier:o.modifier})}let u={type:`${c}${o.array??""}`,...s,...a,...m};return yu.set(r,u),u}function _t(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?_t(i,[...t,r.trim()]):_t(i,t,`${r}${a}`,n);case"(":return _t(i,t,`${r}${a}`,n+1);case")":return _t(i,t,`${r}${a}`,n-1);default:return _t(i,t,`${r}${a}`,n)}}if(r==="")return t;if(n!==0)throw new hu({current:r,depth:n});return t.push(r.trim()),t}function Zf(e){return e==="address"||e==="bool"||e==="function"||e==="string"||Gf.test(e)||qf.test(e)}function uE(e){return e==="address"||e==="bool"||e==="function"||e==="string"||e==="tuple"||Gf.test(e)||qf.test(e)||mE.test(e)}function pE(e,t){return t||e==="bytes"||e==="string"||e==="tuple"}var aE,iE,cE,mE,qs=I(()=>{Bi();su();lu();Jf();Cy();Ey();Gs();aE=/^(?<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$_]*))?$/,iE=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,cE=/^u?int$/;mE=/^(?: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 Ks(e){let t={},r=e.length;for(let a=0;a<r;a++){let i=e[a];if(!Hn(i))continue;let c=ly(i);if(!c)throw new Rr({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=wr(g,{type:"struct"});u.push(h)}if(!u.length)throw new du({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]=ky(c,t)}return n}function ky(e,t,r=new Set){let n=[],o=e.length;for(let s=0;s<o;s++){let a=e[s];if(Qm.test(a.type))n.push(a);else{let c=Ot(lE,a.type);if(!c?.type)throw new pu({abiParameter:a});let{array:m,type:u}=c;if(u in t){if(r.has(u))throw new gu({type:u});n.push({...a,type:`tuple${m??""}`,components:ky(t[u]??[],t,new Set([...r,u]))})}else if(Zf(u))n.push(a);else throw new nu({type:u})}}return n}var lE,bu=I(()=>{Bi();su();lu();Jf();wy();Gs();qs();lE=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/});function xu(e){let t=Ks(e),r=[],n=e.length;for(let o=0;o<n;o++){let s=e[o];Hn(s)||r.push(Li(s,t))}return r}var _y=I(()=>{Gs();bu();qs()});function vu(e){let t;if(typeof e=="string")t=Li(e);else{let r=Ks(e),n=e.length;for(let o=0;o<n;o++){let s=e[o];if(!Hn(s)){t=Li(s,r);break}}}if(!t)throw new ru({signature:e});return t}var Iy=I(()=>{su();Gs();bu();qs()});function wu(e){let t=[];if(typeof e=="string"){let r=_t(e),n=r.length;for(let o=0;o<n;o++)t.push(wr(r[o],{modifiers:Wf}))}else{let r=Ks(e),n=e.length;for(let o=0;o<n;o++){let s=e[o];if(Hn(s))continue;let a=_t(s),i=a.length;for(let c=0;c<i;c++)t.push(wr(a[c],{modifiers:Wf,structs:r}))}}if(t.length===0)throw new au({params:e});return t}var Py=I(()=>{lu();Gs();bu();qs();qs()});var Di=I(()=>{ty();Kf();_y();Iy();Py()});function Ty(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 $y=I(()=>{K()});var Ry,My=I(()=>{Di();$y();Ry=e=>{let t=typeof e=="string"?e:Ro(e);return Ty(t)}});function Cu(e){return Jh(Ry(e))}var Yf=I(()=>{Zh();My()});var Mr,Ws=I(()=>{jn();Yf();Mr=e=>er(Cu(e),0,4)});function Fy(e,t={}){typeof t.size<"u"&&Et(e,{size:t.size});let r=re(e,t);return ge(r,t)}function Ny(e,t={}){let r=e;if(typeof t.size<"u"&&(Et(r,{size:t.size}),r=Ye(r)),r.length>1||r[0]>1)throw new em(r);return!!r[0]}function Fr(e,t={}){typeof t.size<"u"&&Et(e,{size:t.size});let r=re(e,t);return Pe(r,t)}function By(e,t={}){let r=e;return typeof t.size<"u"&&(Et(r,{size:t.size}),r=Ye(r,{dir:"right"})),new TextDecoder().decode(r)}var Ly=I(()=>{bi();ko();Ge();L()});var Dy,Su,Xf=I(()=>{Dy=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Su=/^(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 yt(e,t){if(e.length!==t.length)throw new Gm({expectedLength:e.length,givenLength:t.length});let r=fE({params:e,values:t}),n=ed(r);return n.length===0?"0x":n}function fE({params:e,values:t}){let r=[];for(let n=0;n<e.length;n++)r.push(Qf({param:e[n],value:t[n]}));return r}function Qf({param:e,value:t}){let r=Eu(e.type);if(r){let[n,o]=r;return gE(t,{length:n,param:{...e,type:o}})}if(e.type==="tuple")return vE(t,{param:e});if(e.type==="address")return dE(t);if(e.type==="bool")return yE(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){let n=e.type.startsWith("int"),[,,o="256"]=Su.exec(e.type)??[];return bE(t,{signed:n,size:Number(o)})}if(e.type.startsWith("bytes"))return hE(t,{param:e});if(e.type==="string")return xE(t);throw new Ym(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function ed(e){let t=0;for(let s=0;s<e.length;s++){let{dynamic:a,encoded:i}=e[s];a?t+=32:t+=te(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+=te(i)):r.push(i)}return ze([...r,...n])}function dE(e){if(!ne(e))throw new le({address:e});return{dynamic:!1,encoded:sn(e.toLowerCase())}}function gE(e,{length:t,param:r}){let n=t===null;if(!Array.isArray(e))throw new Hs(e);if(!n&&e.length!==t)throw new Hm({expectedLength:t,givenLength:e.length,type:`${r.type}[${t}]`});let o=!1,s=[];for(let a=0;a<e.length;a++){let i=Qf({param:r,value:e[a]});i.dynamic&&(o=!0),s.push(i)}if(n||o){let a=ed(s);if(n){let i=E(s.length,{size:32});return{dynamic:!0,encoded:s.length>0?ze([i,a]):i}}if(o)return{dynamic:!0,encoded:a}}return{dynamic:!1,encoded:ze(s.map(({encoded:a})=>a))}}function hE(e,{param:t}){let[,r]=t.type.split("bytes"),n=te(e);if(!r){let o=e;return n%32!==0&&(o=sn(o,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:ze([sn(E(n,{size:32})),o])}}if(n!==Number.parseInt(r,10))throw new Vm({expectedSize:Number.parseInt(r,10),value:e});return{dynamic:!1,encoded:sn(e,{dir:"right"})}}function yE(e){if(typeof e!="boolean")throw new w(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:sn(sm(e))}}function bE(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 ls({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 xE(e){let t=dr(e),r=Math.ceil(te(t)/32),n=[];for(let o=0;o<r;o++)n.push(sn(er(t,o*32,(o+1)*32),{dir:"right"}));return{dynamic:!0,encoded:ze([sn(E(te(t),{size:32})),...n])}}function vE(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=Qf({param:s,value:e[a]});n.push(i),i.dynamic&&(r=!0)}return{dynamic:r,encoded:r?ed(n):ze(n.map(({encoded:o})=>o))}}function Eu(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}var fn=I(()=>{Re();br();K();bi();Ut();ht();om();Wt();jn();L();Xf()});function dn(e,t){let r=typeof t=="string"?qe(t):t,n=hs(r);if(te(r)===0&&e.length>0)throw new nr;if(te(t)&&te(t)<32)throw new Us({data:typeof t=="string"?t:re(t),params:e,size:te(t)});let o=0,s=[];for(let a=0;a<e.length;++a){let i=e[a];n.setPosition(o);let[c,m]=Js(n,i,{staticPosition:0});o+=m,s.push(c)}return s}function Js(e,t,{staticPosition:r}){let n=Eu(t.type);if(n){let[o,s]=n;return CE(e,{...t,type:s},{length:o,staticPosition:r})}if(t.type==="tuple")return _E(e,t,{staticPosition:r});if(t.type==="address")return wE(e);if(t.type==="bool")return SE(e);if(t.type.startsWith("bytes"))return EE(e,t,{staticPosition:r});if(t.type.startsWith("uint")||t.type.startsWith("int"))return kE(e,t);if(t.type==="string")return IE(e,{staticPosition:r});throw new Xm(t.type,{docsPath:"/docs/contract/decodeAbiParameters"})}function wE(e){let t=e.readBytes(32);return[un(re(Hf(t,-20))),32]}function CE(e,t,{length:r,staticPosition:n}){if(!r){let a=Fr(e.readBytes(td)),i=n+a,c=i+Uy;e.setPosition(i);let m=Fr(e.readBytes(Uy)),u=Ui(t),p=0,l=[];for(let d=0;d<m;++d){e.setPosition(c+(u?d*32:p));let[g,h]=Js(e,t,{staticPosition:c});p+=h,l.push(g)}return e.setPosition(n+32),[l,32]}if(Ui(t)){let a=Fr(e.readBytes(td)),i=n+a,c=[];for(let m=0;m<r;++m){e.setPosition(i+m*32);let[u]=Js(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]=Js(e,t,{staticPosition:n+o});o+=c,s.push(i)}return[s,o]}function SE(e){return[Ny(e.readBytes(32),{size:32}),32]}function EE(e,t,{staticPosition:r}){let[n,o]=t.type.split("bytes");if(!o){let a=Fr(e.readBytes(32));e.setPosition(r+a);let i=Fr(e.readBytes(32));if(i===0)return e.setPosition(r+32),["0x",32];let c=e.readBytes(i);return e.setPosition(r+32),[re(c),32]}return[re(e.readBytes(Number.parseInt(o,10),32)),32]}function kE(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?Fy(o,{signed:r}):Fr(o,{signed:r}),32]}function _E(e,t,{staticPosition:r}){let n=t.components.length===0||t.components.some(({name:a})=>!a),o=n?[]:{},s=0;if(Ui(t)){let a=Fr(e.readBytes(td)),i=r+a;for(let c=0;c<t.components.length;++c){let m=t.components[c];e.setPosition(i+s);let[u,p]=Js(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]=Js(e,i,{staticPosition:r});o[n?a:i?.name]=c,s+=m}return[o,s]}function IE(e,{staticPosition:t}){let r=Fr(e.readBytes(32)),n=t+r;e.setPosition(n);let o=Fr(e.readBytes(32));if(o===0)return e.setPosition(t+32),["",32];let s=e.readBytes(o,32),a=By(Ye(s));return e.setPosition(t+32),[a,32]}function Ui(e){let{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return e.components?.some(Ui);let r=Eu(e.type);return!!(r&&Ui({...e,type:r[1]}))}var Uy,td,Oi=I(()=>{Re();zn();cm();Wt();jn();ko();Ly();Xe();L();fn();Uy=32,td=32});function ku(e){let{abi:t,data:r}=e,n=er(r,0,4);if(n==="0x")throw new nr;let s=[...t||[],Um,Wh].find(a=>a.type==="error"&&n===Mr(We(a)));if(!s)throw new Os(n,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:s,args:"inputs"in s&&s.inputs&&s.inputs.length>0?dn(s.inputs,er(r,4)):void 0,errorName:s.name}}var rd=I(()=>{Om();Re();jn();Ws();Oi();pn()});var X,ct=I(()=>{X=(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 nd({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"?X(t[s]):t[s]}`).join(", ")})`}var Oy=I(()=>{ct()});var Vn,zi=I(()=>{Yf();Vn=Cu});function It(e){let{abi:t,args:r=[],name:n}=e,o=be(n,{strict:!1}),s=t.filter(i=>o?i.type==="function"?Mr(i)===n:i.type==="event"?Vn(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?od(m,p):!1})){if(a&&"inputs"in a&&a.inputs){let m=zy(i.inputs,a.inputs,r);if(m)throw new Jm({abiItem:i,type:m[0]},{abiItem:a,type:m[1]})}a=i}}return a||s[0]}function od(e,t){let r=typeof e,n=t.type;switch(n){case"address":return ne(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)=>od(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=>od(o,{...t,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function zy(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 zy(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")?ne(r[n],{strict:!1}):a.includes("address")&&a.includes("bytes")?ne(r[n],{strict:!1}):!1)return a}}var Gn=I(()=>{Re();Lt();Ut();zi();Ws()});function jy(e){return e.reduce((t,{slot:r,value:n})=>`${t} ${r}: ${n}
35
- `,"")}function Hy(e){return e.reduce((t,{address:r,...n})=>{let o=`${t} ${r}:
22
+ `),{docsPath:r,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=t}},Jm=class extends w{constructor({docsPath:t}){super("Cannot extract event signature from empty topics.",{docsPath:t,name:"AbiEventSignatureEmptyTopicsError"})}},js=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
+ `),{docsPath:r,name:"AbiEventSignatureNotFoundError"})}},Bi=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
+ `),{docsPath:r,name:"AbiEventNotFoundError"})}},wr=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"})}},Hs=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
+ `),{docsPath:r,name:"AbiFunctionOutputsNotFoundError"})}},Zm=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
+ `),{docsPath:r,name:"AbiFunctionSignatureNotFoundError"})}},Ym=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"})}},Xm=class extends w{constructor({expectedSize:t,givenSize:r}){super(`Expected bytes${t}, got bytes${r}.`,{name:"BytesSizeMismatchError"})}},Cr=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
+ `),{metaMessages:[`Params: (${Ri(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}},Mr=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
+ `),{name:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=t}},Qm=class extends w{constructor(t,{docsPath:r}){super([`Type "${t}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
30
+ `),{docsPath:r,name:"InvalidAbiEncodingType"})}},eu=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"})}},Vs=class extends w{constructor(t){super([`Value "${t}" is not a valid array.`].join(`
32
+ `),{name:"InvalidArrayError"})}},Hm=class extends w{constructor(t){super([`"${t}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
33
+ `),{name:"InvalidDefinitionTypeError"})}}});function qh(e){return QS(e)}var QS,Kh=P(()=>{Ye();tr();QS=e=>ge(Yt(e))});var Wh,Jh=P(()=>{Wh="1.1.0"});var De,Gs=P(()=>{Jh();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@${Wh}`].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 Ot(e,t){return e.exec(t)?.groups}var Vf,Gf,tu,Ni=P(()=>{Vf=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Gf=/^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)?$/,tu=/^\(.+?\).*?$/});function ru(e){let t=e.type;if(Zh.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+=ru(s),o<r-1&&(t+=", ")}let n=Ot(Zh,e.type);return t+=`)${n?.array??""}`,ru({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}var Zh,Yh=P(()=>{Ni();Zh=/^tuple(?<array>(\[(\d*)\])*)$/});function ln(e){let t="",r=e.length;for(let n=0;n<r;n++){let o=e[n];t+=ru(o),n!==r-1&&(t+=", ")}return t}var qf=P(()=>{Yh()});function Fo(e){return e.type==="function"?`function ${e.name}(${ln(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${ln(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${ln(e.inputs)})`:e.type==="error"?`error ${e.name}(${ln(e.inputs)})`:e.type==="constructor"?`constructor(${ln(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}var Xh=P(()=>{qf()});function ey(e){return Qh.test(e)}function ty(e){return Ot(Qh,e)}function ny(e){return ry.test(e)}function oy(e){return Ot(ry,e)}function ay(e){return sy.test(e)}function iy(e){return Ot(sy,e)}function Vn(e){return cy.test(e)}function my(e){return Ot(cy,e)}function py(e){return uy.test(e)}function ly(e){return Ot(uy,e)}function dy(e){return fy.test(e)}function gy(e){return Ot(fy,e)}function hy(e){return ek.test(e)}var Qh,ry,sy,cy,uy,fy,ek,Kf,yy,nu,qs=P(()=>{Ni();Qh=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;ry=/^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>.*?)\))?$/;cy=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;uy=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;fy=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;ek=/^receive\(\) external payable$/;Kf=new Set(["memory","indexed","storage","calldata"]),yy=new Set(["indexed"]),nu=new Set(["calldata","memory","storage"])});var ou,su,au,iu=P(()=>{Gs();ou=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"})}},su=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"})}},au=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 cu,mu,uu,pu,lu,fu,du=P(()=>{Gs();cu=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"})}},mu=class extends De{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},uu=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"})}},pu=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"})}},lu=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"})}},fu=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 Fr,gu,hu,Wf=P(()=>{Gs();Fr=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"})}},gu=class extends De{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},hu=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 yu,by=P(()=>{Gs();yu=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 bu,xy=P(()=>{Gs();bu=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 vy(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 xu,wy=P(()=>{xu=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 Li(e,t={}){if(ay(e))return tk(e,t);if(ny(e))return rk(e,t);if(ey(e))return nk(e,t);if(py(e))return ok(e,t);if(dy(e))return sk(e);if(hy(e))return{type:"receive",stateMutability:"payable"};throw new gu({signature:e})}function tk(e,t={}){let r=iy(e);if(!r)throw new Fr({signature:e,type:"function"});let n=It(r.parameters),o=[],s=n.length;for(let i=0;i<s;i++)o.push(Sr(n[i],{modifiers:nu,structs:t,type:"function"}));let a=[];if(r.returns){let i=It(r.returns),c=i.length;for(let m=0;m<c;m++)a.push(Sr(i[m],{modifiers:nu,structs:t,type:"function"}))}return{name:r.name,type:"function",stateMutability:r.stateMutability??"nonpayable",inputs:o,outputs:a}}function rk(e,t={}){let r=oy(e);if(!r)throw new Fr({signature:e,type:"event"});let n=It(r.parameters),o=[],s=n.length;for(let a=0;a<s;a++)o.push(Sr(n[a],{modifiers:yy,structs:t,type:"event"}));return{name:r.name,type:"event",inputs:o}}function nk(e,t={}){let r=ty(e);if(!r)throw new Fr({signature:e,type:"error"});let n=It(r.parameters),o=[],s=n.length;for(let a=0;a<s;a++)o.push(Sr(n[a],{structs:t,type:"error"}));return{name:r.name,type:"error",inputs:o}}function ok(e,t={}){let r=ly(e);if(!r)throw new Fr({signature:e,type:"constructor"});let n=It(r.parameters),o=[],s=n.length;for(let a=0;a<s;a++)o.push(Sr(n[a],{structs:t,type:"constructor"}));return{type:"constructor",stateMutability:r.stateMutability??"nonpayable",inputs:o}}function sk(e){let t=gy(e);if(!t)throw new Fr({signature:e,type:"fallback"});return{type:"fallback",stateMutability:t.stateMutability??"nonpayable"}}function Sr(e,t){let r=vy(e,t?.type,t?.structs);if(xu.has(r))return xu.get(r);let n=tu.test(e),o=Ot(n?ik:ak,e);if(!o)throw new mu({param:e});if(o.name&&uk(o.name))throw new uu({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=It(o.type),l=[],d=p.length;for(let g=0;g<d;g++)l.push(Sr(p[g],{structs:i}));m={components:l}}else if(o.type in i)c="tuple",m={components:i[o.type]};else if(ck.test(o.type))c=`${o.type}256`;else if(o.type==="address payable")c="address";else if(c=o.type,t?.type!=="struct"&&!Jf(c))throw new au({type:c});if(o.modifier){if(!t?.modifiers?.has?.(o.modifier))throw new pu({param:e,type:t?.type,modifier:o.modifier});if(nu.has(o.modifier)&&!pk(c,!!o.array))throw new lu({param:e,type:t?.type,modifier:o.modifier})}let u={type:`${c}${o.array??""}`,...s,...a,...m};return xu.set(r,u),u}function It(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?It(i,[...t,r.trim()]):It(i,t,`${r}${a}`,n);case"(":return It(i,t,`${r}${a}`,n+1);case")":return It(i,t,`${r}${a}`,n-1);default:return It(i,t,`${r}${a}`,n)}}if(r==="")return t;if(n!==0)throw new bu({current:r,depth:n});return t.push(r.trim()),t}function Jf(e){return e==="address"||e==="bool"||e==="function"||e==="string"||Vf.test(e)||Gf.test(e)}function uk(e){return e==="address"||e==="bool"||e==="function"||e==="string"||e==="tuple"||Vf.test(e)||Gf.test(e)||mk.test(e)}function pk(e,t){return t||e==="bytes"||e==="string"||e==="tuple"}var ak,ik,ck,mk,Ks=P(()=>{Ni();iu();du();Wf();xy();wy();qs();ak=/^(?<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$_]*))?$/,ik=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,ck=/^u?int$/;mk=/^(?: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 Ws(e){let t={},r=e.length;for(let a=0;a<r;a++){let i=e[a];if(!Vn(i))continue;let c=my(i);if(!c)throw new Fr({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=Sr(g,{type:"struct"});u.push(h)}if(!u.length)throw new hu({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]=Cy(c,t)}return n}function Cy(e,t,r=new Set){let n=[],o=e.length;for(let s=0;s<o;s++){let a=e[s];if(tu.test(a.type))n.push(a);else{let c=Ot(lk,a.type);if(!c?.type)throw new fu({abiParameter:a});let{array:m,type:u}=c;if(u in t){if(r.has(u))throw new yu({type:u});n.push({...a,type:`tuple${m??""}`,components:Cy(t[u]??[],t,new Set([...r,u]))})}else if(Jf(u))n.push(a);else throw new su({type:u})}}return n}var lk,vu=P(()=>{Ni();iu();du();Wf();by();qs();Ks();lk=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/});function wu(e){let t=Ws(e),r=[],n=e.length;for(let o=0;o<n;o++){let s=e[o];Vn(s)||r.push(Li(s,t))}return r}var Sy=P(()=>{qs();vu();Ks()});function Cu(e){let t;if(typeof e=="string")t=Li(e);else{let r=Ws(e),n=e.length;for(let o=0;o<n;o++){let s=e[o];if(!Vn(s)){t=Li(s,r);break}}}if(!t)throw new ou({signature:e});return t}var ky=P(()=>{iu();qs();vu();Ks()});function Su(e){let t=[];if(typeof e=="string"){let r=It(e),n=r.length;for(let o=0;o<n;o++)t.push(Sr(r[o],{modifiers:Kf}))}else{let r=Ws(e),n=e.length;for(let o=0;o<n;o++){let s=e[o];if(Vn(s))continue;let a=It(s),i=a.length;for(let c=0;c<i;c++)t.push(Sr(a[c],{modifiers:Kf,structs:r}))}}if(t.length===0)throw new cu({params:e});return t}var Ey=P(()=>{du();qs();vu();Ks();Ks()});var Di=P(()=>{Xh();qf();Sy();ky();Ey()});function Iy(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 Py=P(()=>{K()});var Ay,Ty=P(()=>{Di();Py();Ay=e=>{let t=typeof e=="string"?e:Fo(e);return Iy(t)}});function ku(e){return qh(Ay(e))}var Zf=P(()=>{Kh();Ty()});var Br,Js=P(()=>{Hn();Zf();Br=e=>rr(ku(e),0,4)});function $y(e,t={}){typeof t.size<"u"&&Et(e,{size:t.size});let r=ne(e,t);return ye(r,t)}function Ry(e,t={}){let r=e;if(typeof t.size<"u"&&(Et(r,{size:t.size}),r=Ze(r)),r.length>1||r[0]>1)throw new rm(r);return!!r[0]}function Nr(e,t={}){typeof t.size<"u"&&Et(e,{size:t.size});let r=ne(e,t);return Ae(r,t)}function My(e,t={}){let r=e;return typeof t.size<"u"&&(Et(r,{size:t.size}),r=Ze(r,{dir:"right"})),new TextDecoder().decode(r)}var Fy=P(()=>{bi();Io();Ge();D()});var By,Eu,Yf=P(()=>{By=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Eu=/^(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 Km({expectedLength:e.length,givenLength:t.length});let r=fk({params:e,values:t}),n=Qf(r);return n.length===0?"0x":n}function fk({params:e,values:t}){let r=[];for(let n=0;n<e.length;n++)r.push(Xf({param:e[n],value:t[n]}));return r}function Xf({param:e,value:t}){let r=_u(e.type);if(r){let[n,o]=r;return gk(t,{length:n,param:{...e,type:o}})}if(e.type==="tuple")return vk(t,{param:e});if(e.type==="address")return dk(t);if(e.type==="bool")return yk(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){let n=e.type.startsWith("int"),[,,o="256"]=Eu.exec(e.type)??[];return bk(t,{signed:n,size:Number(o)})}if(e.type.startsWith("bytes"))return hk(t,{param:e});if(e.type==="string")return xk(t);throw new Qm(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function Qf(e){let t=0;for(let s=0;s<e.length;s++){let{dynamic:a,encoded:i}=e[s];a?t+=32:t+=re(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+=re(i)):r.push(i)}return Oe([...r,...n])}function dk(e){if(!ae(e))throw new de({address:e});return{dynamic:!1,encoded:sn(e.toLowerCase())}}function gk(e,{length:t,param:r}){let n=t===null;if(!Array.isArray(e))throw new Vs(e);if(!n&&e.length!==t)throw new Gm({expectedLength:t,givenLength:e.length,type:`${r.type}[${t}]`});let o=!1,s=[];for(let a=0;a<e.length;a++){let i=Xf({param:r,value:e[a]});i.dynamic&&(o=!0),s.push(i)}if(n||o){let a=Qf(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 hk(e,{param:t}){let[,r]=t.type.split("bytes"),n=re(e);if(!r){let o=e;return n%32!==0&&(o=sn(o,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:Oe([sn(k(n,{size:32})),o])}}if(n!==Number.parseInt(r,10))throw new qm({expectedSize:Number.parseInt(r,10),value:e});return{dynamic:!1,encoded:sn(e,{dir:"right"})}}function yk(e){if(typeof e!="boolean")throw new w(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:sn(im(e))}}function bk(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 fs({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 xk(e){let t=hr(e),r=Math.ceil(re(t)/32),n=[];for(let o=0;o<r;o++)n.push(sn(rr(t,o*32,(o+1)*32),{dir:"right"}));return{dynamic:!0,encoded:Oe([sn(k(re(t),{size:32})),...n])}}function vk(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=Xf({param:s,value:e[a]});n.push(i),i.dynamic&&(r=!0)}return{dynamic:r,encoded:r?Qf(n):Oe(n.map(({encoded:o})=>o))}}function _u(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}var fn=P(()=>{Me();vr();K();bi();zt();yt();am();Zt();Hn();D();Yf()});function dn(e,t){let r=typeof t=="string"?qe(t):t,n=ys(r);if(re(r)===0&&e.length>0)throw new sr;if(re(t)&&re(t)<32)throw new zs({data:typeof t=="string"?t:ne(t),params:e,size:re(t)});let o=0,s=[];for(let a=0;a<e.length;++a){let i=e[a];n.setPosition(o);let[c,m]=Zs(n,i,{staticPosition:0});o+=m,s.push(c)}return s}function Zs(e,t,{staticPosition:r}){let n=_u(t.type);if(n){let[o,s]=n;return Ck(e,{...t,type:s},{length:o,staticPosition:r})}if(t.type==="tuple")return _k(e,t,{staticPosition:r});if(t.type==="address")return wk(e);if(t.type==="bool")return Sk(e);if(t.type.startsWith("bytes"))return kk(e,t,{staticPosition:r});if(t.type.startsWith("uint")||t.type.startsWith("int"))return Ek(e,t);if(t.type==="string")return Ik(e,{staticPosition:r});throw new eu(t.type,{docsPath:"/docs/contract/decodeAbiParameters"})}function wk(e){let t=e.readBytes(32);return[un(ne(jf(t,-20))),32]}function Ck(e,t,{length:r,staticPosition:n}){if(!r){let a=Nr(e.readBytes(ed)),i=n+a,c=i+Ny;e.setPosition(i);let m=Nr(e.readBytes(Ny)),u=Ui(t),p=0,l=[];for(let d=0;d<m;++d){e.setPosition(c+(u?d*32:p));let[g,h]=Zs(e,t,{staticPosition:c});p+=h,l.push(g)}return e.setPosition(n+32),[l,32]}if(Ui(t)){let a=Nr(e.readBytes(ed)),i=n+a,c=[];for(let m=0;m<r;++m){e.setPosition(i+m*32);let[u]=Zs(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]=Zs(e,t,{staticPosition:n+o});o+=c,s.push(i)}return[s,o]}function Sk(e){return[Ry(e.readBytes(32),{size:32}),32]}function kk(e,t,{staticPosition:r}){let[n,o]=t.type.split("bytes");if(!o){let a=Nr(e.readBytes(32));e.setPosition(r+a);let i=Nr(e.readBytes(32));if(i===0)return e.setPosition(r+32),["0x",32];let c=e.readBytes(i);return e.setPosition(r+32),[ne(c),32]}return[ne(e.readBytes(Number.parseInt(o,10),32)),32]}function Ek(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?$y(o,{signed:r}):Nr(o,{signed:r}),32]}function _k(e,t,{staticPosition:r}){let n=t.components.length===0||t.components.some(({name:a})=>!a),o=n?[]:{},s=0;if(Ui(t)){let a=Nr(e.readBytes(ed)),i=r+a;for(let c=0;c<t.components.length;++c){let m=t.components[c];e.setPosition(i+s);let[u,p]=Zs(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]=Zs(e,i,{staticPosition:r});o[n?a:i?.name]=c,s+=m}return[o,s]}function Ik(e,{staticPosition:t}){let r=Nr(e.readBytes(32)),n=t+r;e.setPosition(n);let o=Nr(e.readBytes(32));if(o===0)return e.setPosition(t+32),["",32];let s=e.readBytes(o,32),a=My(Ze(s));return e.setPosition(t+32),[a,32]}function Ui(e){let{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return e.components?.some(Ui);let r=_u(e.type);return!!(r&&Ui({...e,type:r[1]}))}var Ny,ed,zi=P(()=>{Me();jn();um();Zt();Hn();Io();Fy();Ye();D();fn();Ny=32,ed=32});function Iu(e){let{abi:t,data:r}=e,n=rr(r,0,4);if(n==="0x")throw new sr;let s=[...t||[],Om,Gh].find(a=>a.type==="error"&&n===Br(We(a)));if(!s)throw new Os(n,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:s,args:"inputs"in s&&s.inputs&&s.inputs.length>0?dn(s.inputs,rr(r,4)):void 0,errorName:s.name}}var td=P(()=>{jm();Me();Hn();Js();zi();pn()});var X,it=P(()=>{X=(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 rd({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"?X(t[s]):t[s]}`).join(", ")})`}var Ly=P(()=>{it()});var Gn,Oi=P(()=>{Zf();Gn=ku});function Pt(e){let{abi:t,args:r=[],name:n}=e,o=xe(n,{strict:!1}),s=t.filter(i=>o?i.type==="function"?Br(i)===n:i.type==="event"?Gn(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?nd(m,p):!1})){if(a&&"inputs"in a&&a.inputs){let m=Dy(i.inputs,a.inputs,r);if(m)throw new Ym({abiItem:i,type:m[0]},{abiItem:a,type:m[1]})}a=i}}return a||s[0]}function nd(e,t){let r=typeof e,n=t.type;switch(n){case"address":return ae(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)=>nd(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=>nd(o,{...t,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function Dy(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 Dy(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")?ae(r[n],{strict:!1}):a.includes("address")&&a.includes("bytes")?ae(r[n],{strict:!1}):!1)return a}}var qn=P(()=>{Me();Dt();zt();Oi();Js()});function Uy(e){return e.reduce((t,{slot:r,value:n})=>`${t} ${r}: ${n}
35
+ `,"")}function zy(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+=jy(n.state)),n.stateDiff&&(o+=` stateDiff:
41
- `,o+=jy(n.stateDiff)),o},` State Override:
42
- `).slice(0,-1)}var _u,Iu,sd=I(()=>{K();_u=class extends w{constructor({address:t}){super(`State for account "${t}" is set multiple times.`,{name:"AccountStateConflictError"})}},Iu=class extends w{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}});var Vy,Mo,Pu=I(()=>{Vy=e=>e,Mo=e=>e});var Zs,Ys,Fo,Au,Tu,Nr,qn=I(()=>{$e();Om();rd();pn();Oy();Gn();lm();bs();Re();K();sd();Dt();Pu();Zs=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=Io({from:g?.address,to:p,value:typeof l<"u"&&`${ys(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
- ${Hy(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}},Ys=class extends w{constructor(t,{abi:r,args:n,contractAddress:o,docsPath:s,functionName:a,sender:i}){let c=It({abi:r,args:n,name:a}),m=c?nd({abiItem:c,args:n,includeFunctionName:!1,includeName:!1}):void 0,u=c?We(c,{includeName:!0}):void 0,p=Io({address:o&&Vy(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}},Fo=class extends w{constructor({abi:t,data:r,functionName:n,message:o}){let s,a,i,c;if(r&&r!=="0x")try{a=ku({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=Kh[d]}else{let d=u?We(u,{includeName:!0}):void 0,g=u&&l?nd({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 Os&&(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}},Au=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"})}},Tu=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"})}},Nr=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 or,Kn,ji,No=I(()=>{ct();K();Pu();or=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: ${Mo(a)}`,t&&`Request body: ${X(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}},Kn=class extends w{constructor({body:t,error:r,url:n}){super("RPC Request failed.",{cause:r,details:r.message,metaMessages:[`URL: ${Mo(n)}`,`Request body: ${X(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}},ji=class extends w{constructor({body:t,url:r}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${Mo(r)}`,`Request body: ${X(t)}`],name:"TimeoutError"})}}});var PE,mt,bt,Xs,Qs,ea,ta,gn,Br,ra,na,oa,Wn,Bo,sa,Lo,aa,ia,ca,ma,ua,Jn,pa,la,fa,da,ga,Zn,$u,ha=I(()=>{K();No();PE=-1,mt=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 Kn?t.code:r??PE}},bt=class extends mt{constructor(t,r){super(t,r),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=r.data}},Xs=class e extends mt{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(Xs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});Qs=class e extends mt{constructor(t){super(t,{code:e.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}};Object.defineProperty(Qs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});ea=class e extends mt{constructor(t,{method:r}={}){super(t,{code:e.code,name:"MethodNotFoundRpcError",shortMessage:`The method${r?` "${r}"`:""} does not exist / is not available.`})}};Object.defineProperty(ea,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});ta=class e extends mt{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(ta,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});gn=class e extends mt{constructor(t){super(t,{code:e.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}};Object.defineProperty(gn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});Br=class e extends mt{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(Br,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});ra=class e extends mt{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(ra,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});na=class e extends mt{constructor(t){super(t,{code:e.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}};Object.defineProperty(na,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});oa=class e extends mt{constructor(t){super(t,{code:e.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}};Object.defineProperty(oa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});Wn=class e extends mt{constructor(t,{method:r}={}){super(t,{code:e.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${r?` "${r}"`:""} is not supported.`})}};Object.defineProperty(Wn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});Bo=class e extends mt{constructor(t){super(t,{code:e.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}};Object.defineProperty(Bo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});sa=class e extends mt{constructor(t){super(t,{code:e.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}};Object.defineProperty(sa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});Lo=class e extends bt{constructor(t){super(t,{code:e.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}};Object.defineProperty(Lo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});aa=class e extends bt{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(aa,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});ia=class e extends bt{constructor(t,{method:r}={}){super(t,{code:e.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${r?` " ${r}"`:""}.`})}};Object.defineProperty(ia,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});ca=class e extends bt{constructor(t){super(t,{code:e.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}};Object.defineProperty(ca,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});ma=class e extends bt{constructor(t){super(t,{code:e.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}};Object.defineProperty(ma,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});ua=class e extends bt{constructor(t){super(t,{code:e.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}};Object.defineProperty(ua,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});Jn=class e extends bt{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(Jn,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});pa=class e extends bt{constructor(t){super(t,{code:e.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}};Object.defineProperty(pa,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});la=class e extends bt{constructor(t){super(t,{code:e.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}};Object.defineProperty(la,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});fa=class e extends bt{constructor(t){super(t,{code:e.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}};Object.defineProperty(fa,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});da=class e extends bt{constructor(t){super(t,{code:e.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}};Object.defineProperty(da,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});ga=class e extends bt{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(ga,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});Zn=class e extends bt{constructor(t){super(t,{code:e.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}};Object.defineProperty(Zn,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});$u=class extends mt{constructor(t){super(t,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}});function Yn(e,t){let r=(e.details||"").toLowerCase(),n=e instanceof w?e.walk(o=>o?.code===mn.code):e;return n instanceof w?new mn({cause:e,message:n.details}):mn.nodeMessage.test(r)?new mn({cause:e,message:e.details}):Zt.nodeMessage.test(r)?new Zt({cause:e,maxFeePerGas:t?.maxFeePerGas}):Ps.nodeMessage.test(r)?new Ps({cause:e,maxFeePerGas:t?.maxFeePerGas}):As.nodeMessage.test(r)?new As({cause:e,nonce:t?.nonce}):Ts.nodeMessage.test(r)?new Ts({cause:e,nonce:t?.nonce}):$s.nodeMessage.test(r)?new $s({cause:e,nonce:t?.nonce}):Rs.nodeMessage.test(r)?new Rs({cause:e}):Ms.nodeMessage.test(r)?new Ms({cause:e,gas:t?.gas}):Fs.nodeMessage.test(r)?new Fs({cause:e,gas:t?.gas}):Ns.nodeMessage.test(r)?new Ns({cause:e}):Tr.nodeMessage.test(r)?new Tr({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new Yt({cause:e})}var Hi=I(()=>{K();On()});function Ru(e,{docsPath:t,...r}){let n=(()=>{let o=Yn(e,r);return o instanceof Yt?e:o})();return new Zs(n,{docsPath:t,...r})}var ad=I(()=>{qn();On();Hi()});function Lr(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 ya=I(()=>{});function ut(e){let{account:t,gasPrice:r,maxFeePerGas:n,maxPriorityFeePerGas:o,to:s}=e,a=t?W(t):void 0;if(a&&!ne(a.address))throw new le({address:a.address});if(s&&!ne(s))throw new le({address:s});if(typeof r<"u"&&(typeof n<"u"||typeof o<"u"))throw new fm;if(n&&n>ds)throw new Zt({maxFeePerGas:n});if(o&&n&&o>n)throw new Tr({maxFeePerGas:n,maxPriorityFeePerGas:o})}var hn=I(()=>{$e();Ff();br();On();Dt();Ut()});function Wy(e){let{abi:t,args:r,functionName:n}=e,o=t[0];if(n){let s=It({abi:t,args:r,name:n});if(!s)throw new xr(n,{docsPath:Ky});o=s}if(o.type!=="function")throw new xr(void 0,{docsPath:Ky});return{abi:[o],functionName:Mr(We(o))}}var Ky,Jy=I(()=>{Re();Ws();pn();Gn();Ky="/docs/contract/encodeFunctionData"});function Se(e){let{args:t}=e,{abi:r,functionName:n}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:Wy(e),o=r[0],s=n,a="inputs"in o&&o.inputs?yt(o.inputs,t??[]):void 0;return Qe([s,a??"0x"])}var zt=I(()=>{ht();fn();Jy()});function Qy(e){if(!(!e||e.length===0))return e.reduce((t,{slot:r,value:n})=>{if(r.length!==66)throw new wi({size:r.length,targetSize:66,type:"hex"});if(n.length!==66)throw new wi({size:n.length,targetSize:66,type:"hex"});return t[r]=n,t},{})}function TE(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=Qy(n)),o!==void 0){if(a.state)throw new Iu;a.stateDiff=Qy(o)}return a}function ba(e){if(!e)return;let t={};for(let{address:r,...n}of e){if(!ne(r,{strict:!1}))throw new le({address:r});if(t[r])throw new _u({address:r});t[r]=TE(n)}return t}var Ou=I(()=>{br();nm();sd();Ut();L()});function sr(e,t){if(!ne(e,{strict:!1}))throw new le({address:e});if(!ne(t,{strict:!1}))throw new le({address:t});return e.toLowerCase()===t.toLowerCase()}var Do=I(()=>{br();Ut()});function At(e){let{abi:t,args:r,functionName:n,data:o}=e,s=t[0];if(n){let i=It({abi:t,args:r,name:n});if(!i)throw new xr(n,{docsPath:cd});s=i}if(s.type!=="function")throw new xr(void 0,{docsPath:cd});if(!s.outputs)throw new js(s.name,{docsPath:cd});let a=dn(s.outputs,o);if(a&&a.length>1)return a;if(a&&a.length===1)return a[0]}var cd,to=I(()=>{Re();Oi();Gn();cd="/docs/contract/decodeFunctionResult"});var sb,ab=I(()=>{sb="0.1.1"});function ib(){return sb}var cb=I(()=>{ab()});function mb(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause?mb(e.cause,t):t?null:e}var B,Tt=I(()=>{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@${ib()}`}),this.cause=r.cause,this.details=n,this.docs=a,this.docsPath=o,this.shortMessage=t}walk(t){return mb(this,t)}}});function ka(e,t){if(ar(e)>t)throw new Gu({givenSize:ar(e),maxSize:t})}function ub(e,t){if(typeof t=="number"&&t>0&&t>ar(e)-1)throw new Gi({offset:t,position:"start",size:ar(e)})}function pb(e,t,r){if(typeof t=="number"&&typeof r=="number"&&ar(e)!==r-t)throw new Gi({offset:r,position:"end",size:ar(e)})}function md(e){if(e>=yn.zero&&e<=yn.nine)return e-yn.zero;if(e>=yn.A&&e<=yn.F)return e-(yn.A-10);if(e>=yn.a&&e<=yn.f)return e-(yn.a-10)}function lb(e,t={}){let{dir:r,size:n=32}=t;if(n===0)return e;if(e.length>n)throw new qu({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 ud(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 yn,fb=I(()=>{ro();yn={zero:48,nine:57,A:65,F:70,a:97,f:102}});function _a(e,t){if(_e(e)>t)throw new Ku({givenSize:_e(e),maxSize:t})}function db(e,t){if(typeof t=="number"&&t>0&&t>_e(e)-1)throw new qi({offset:t,position:"start",size:_e(e)})}function gb(e,t,r){if(typeof t=="number"&&typeof r=="number"&&_e(e)!==r-t)throw new qi({offset:r,position:"end",size:_e(e)})}function pd(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 Wu({size:Math.ceil(o.length/2),targetSize:n,type:"Hex"});return`0x${o[r==="right"?"padEnd":"padStart"](n*2,"0")}`}function hb(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 ld=I(()=>{tt()});function no(e,t,r){return JSON.stringify(e,(n,o)=>typeof t=="function"?t(n,o):typeof o=="bigint"?o.toString()+FE:o,r)}var FE,Ki=I(()=>{FE="#__bigint"});import{equalBytes as bj}from"@noble/curves/abstract/utils";function LE(e){if(!(e instanceof Uint8Array)){if(!e)throw new Ia(e);if(typeof e!="object")throw new Ia(e);if(!("BYTES_PER_ELEMENT"in e))throw new Ia(e);if(e.BYTES_PER_ELEMENT!==1||e.constructor.name!=="Uint8Array")throw new Ia(e)}}function bb(e){return e instanceof Uint8Array?e:typeof e=="string"?Pa(e):DE(e)}function DE(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function Pa(e,t={}){let{size:r}=t,n=e;r&&(_a(e,r),n=zr(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=md(o.charCodeAt(c++)),u=md(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 xb(e,t={}){let{size:r}=t,n=BE.encode(e);return typeof r=="number"?(ka(n,r),UE(n,r)):n}function UE(e,t){return lb(e,{dir:"right",size:t})}function ar(e){return e.length}function vb(e,t,r,n={}){let{strict:o}=n;ub(e,t);let s=e.slice(t,r);return o&&pb(s,t,r),s}function wb(e,t={}){let{size:r}=t;typeof r<"u"&&ka(e,r);let n=Ue(e,t);return gd(n,t)}function Cb(e,t={}){let{size:r}=t,n=e;if(typeof r<"u"&&(ka(n,r),n=dd(n)),n.length>1||n[0]>1)throw new fd(n);return!!n[0]}function Or(e,t={}){let{size:r}=t;typeof r<"u"&&ka(e,r);let n=Ue(e,t);return Zu(n,t)}function Sb(e,t={}){let{size:r}=t,n=e;return typeof r<"u"&&(ka(n,r),n=OE(n)),NE.decode(n)}function dd(e){return ud(e,{dir:"left"})}function OE(e){return ud(e,{dir:"right"})}function Eb(e){try{return LE(e),!0}catch{return!1}}var NE,BE,fd,Ia,Gu,Gi,qu,ro=I(()=>{Tt();tt();fb();ld();Ki();NE=new TextDecoder,BE=new TextEncoder;fd=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"})}},Ia=class extends B{constructor(t){super(`Value \`${typeof t=="object"?no(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"})}},Gu=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"})}},Gi=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"})}},qu=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 vj}from"@noble/curves/abstract/utils";function HE(e,t={}){let{strict:r=!1}=t;if(!e)throw new Yu(e);if(typeof e!="string")throw new Yu(e);if(r&&!/^0x[0-9a-fA-F]*$/.test(e))throw new Xu(e);if(!e.startsWith("0x"))throw new Xu(e)}function Ae(...e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}function Aa(e){return e instanceof Uint8Array?Ue(e):Array.isArray(e)?Ue(new Uint8Array(e)):e}function Qu(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?(_a(r,t.size),bn(r,t.size)):r}function Ue(e,t={}){let r="";for(let o=0;o<e.length;o++)r+=jE[e[o]];let n=`0x${r}`;return typeof t.size=="number"?(_a(n,t.size),zr(n,t.size)):n}function oe(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 Wi({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?bn(c,n):c}function Ta(e,t={}){return Ue(zE.encode(e),t)}function bn(e,t){return pd(e,{dir:"left",size:t})}function zr(e,t){return pd(e,{dir:"right",size:t})}function Ie(e,t,r,n={}){let{strict:o}=n;db(e,t);let s=`0x${e.replace("0x","").slice((t??0)*2,(r??e.length)*2)}`;return o&&gb(s,t,r),s}function _e(e){return Math.ceil((e.length-2)/2)}function hd(e){return hb(e,{dir:"left"})}function gd(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 Zu(e,t={}){let{signed:r,size:n}=t;return Number(!r&&!n?e:gd(e,t))}function Ji(e,t={}){let{strict:r=!1}=t;try{return HE(e,{strict:r}),!0}catch{return!1}}var zE,jE,Wi,Yu,Xu,Ku,qi,Wu,tt=I(()=>{Tt();ld();Ki();zE=new TextEncoder,jE=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));Wi=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"})}},Yu=class extends B{constructor(t){super(`Value \`${typeof t=="object"?no(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"})}},Xu=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"})}},Ku=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"})}},qi=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"})}},Wu=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 kb(e){return{address:e.address,amount:oe(e.amount),index:oe(e.index),validatorIndex:oe(e.validatorIndex)}}var _b=I(()=>{tt()});function ep(e){return{...typeof e.baseFeePerGas=="bigint"&&{baseFeePerGas:oe(e.baseFeePerGas)},...typeof e.blobBaseFee=="bigint"&&{blobBaseFee:oe(e.blobBaseFee)},...typeof e.feeRecipient=="string"&&{feeRecipient:e.feeRecipient},...typeof e.gasLimit=="bigint"&&{gasLimit:oe(e.gasLimit)},...typeof e.number=="bigint"&&{number:oe(e.number)},...typeof e.prevRandao=="bigint"&&{prevRandao:oe(e.prevRandao)},...typeof e.time=="bigint"&&{time:oe(e.time)},...e.withdrawals&&{withdrawals:e.withdrawals.map(kb)}}}var yd=I(()=>{tt();_b()});var Oo,tp,Pb,rp,Ab,bd,xd,vd,wd,oo=I(()=>{Oo=[{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"}],tp=[{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"}]}],Pb=[{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"}],rp=[...Pb,{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"}]}],Ab=[...Pb,{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"}]}],bd=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],xd=[{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"}]}],vd=[{name:"isValidSignature",type:"function",stateMutability:"view",inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],outputs:[{name:"",type:"bytes4"}]}],wd=[{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 Tb,$b=I(()=>{Tb="0x82ad56cb"});var np,Rb,Mb,$a,Zi=I(()=>{np="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",Rb="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",Mb="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",$a="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033"});function zo(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 jm({docsPath:Cd});if(!("inputs"in o))throw new Mi({docsPath:Cd});if(!o.inputs||o.inputs.length===0)throw new Mi({docsPath:Cd});let s=yt(o.inputs,r);return Qe([n,s])}var Cd,op=I(()=>{Re();ht();fn();Cd="/docs/contract/encodeDeployData"});function Ra(){let e=()=>{},t=()=>{};return{promise:new Promise((n,o)=>{e=n,t=o}),resolve:e,reject:t}}var sp=I(()=>{});function ap({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=()=>Sd.delete(t),i=()=>c().map(({args:u})=>u),c=()=>Sd.get(t)||[],m=u=>Sd.set(t,[...c(),u]);return{flush:a,async schedule(u){let{promise:p,resolve:l,reject:d}=Ra();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 Sd,Ed=I(()=>{sp();Sd=new Map});var ip,cp,mp,Fb=I(()=>{ct();K();Pu();ip=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=>` ${Mo(i)}`)],` Sender: ${s}`,` Data: ${n}`,` Callback selector: ${t}`,` Extra data: ${o}`].flat(),name:"OffchainLookupError"})}},cp=class extends w{constructor({result:t,url:r}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${Mo(r)}`,`Response: ${X(t)}`],name:"OffchainLookupResponseMalformedError"})}},mp=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 Nb(e){let{abi:t,data:r}=e,n=er(r,0,4),o=t.find(s=>s.type==="function"&&n===Mr(We(s)));if(!o)throw new Wm(n,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:o.name,args:"inputs"in o&&o.inputs&&o.inputs.length>0?dn(o.inputs,er(r,4)):void 0}}var Bb=I(()=>{Re();jn();Ws();Oi();pn()});function _d(e){let{abi:t,errorName:r,args:n}=e,o=t[0];if(r){let c=It({abi:t,args:n,name:r});if(!c)throw new Fi(r,{docsPath:kd});o=c}if(o.type!=="error")throw new Fi(void 0,{docsPath:kd});let s=We(o),a=Mr(s),i="0x";if(n&&n.length>0){if(!o.inputs)throw new qm(o.name,{docsPath:kd});i=yt(o.inputs,n)}return Qe([a,i])}var kd,Lb=I(()=>{Re();ht();Ws();fn();pn();Gn();kd="/docs/contract/encodeErrorResult"});function Db(e){let{abi:t,functionName:r,result:n}=e,o=t[0];if(r){let a=It({abi:t,name:r});if(!a)throw new xr(r,{docsPath:Id});o=a}if(o.type!=="function")throw new xr(void 0,{docsPath:Id});if(!o.outputs)throw new js(o.name,{docsPath:Id});let s=(()=>{if(o.outputs.length===0)return[];if(o.outputs.length===1)return[n];if(Array.isArray(n))return n;throw new Hs(n)})();return yt(o.outputs,s)}var Id,Ub=I(()=>{Re();fn();Gn();Id="/docs/contract/encodeFunctionResult"});async function Pd(e){let{data:t,ccipRequest:r}=e,{args:[n]}=Nb({abi:tp,data:t}),o=[],s=[];return await Promise.all(n.map(async(a,i)=>{try{s[i]=a.urls.includes(xn)?await Pd({data:a.data,ccipRequest:r}):await r(a),o[i]=!1}catch(c){o[i]=!0,s[i]=GE(c)}})),Db({abi:tp,functionName:"query",result:[o,s]})}function GE(e){return e.name==="HttpRequestError"&&e.status?_d({abi:tp,errorName:"HttpError",args:[e.status,e.shortMessage]}):_d({abi:[Um],errorName:"Error",args:["shortMessage"in e?e.shortMessage:e.message]})}var xn,Yi=I(()=>{oo();Om();Bb();Lb();Ub();xn="x-batch-gateway:true"});var jb={};wf(jb,{ccipRequest:()=>zb,offchainLookup:()=>KE,offchainLookupAbiItem:()=>Ob,offchainLookupSignature:()=>qE});async function KE(e,{blockNumber:t,blockTag:r,data:n,to:o}){let{args:s}=ku({data:n,abi:[Ob]}),[a,i,c,m,u]=s,{ccipRead:p}=e,l=p&&typeof p?.request=="function"?p.request:zb;try{if(!sr(o,a))throw new mp({sender:a,to:o});let d=i.includes(xn)?await Pd({data:c,ccipRequest:l}):await l({data:c,sender:a,urls:i}),{data:g}=await jr(e,{blockNumber:t,blockTag:r,data:ze([m,yt([{type:"bytes"},{type:"bytes"}],[d,u])]),to:o});return g}catch(d){throw new ip({callbackSelector:m,cause:d,data:n,extraData:u,sender:a,urls:i})}}async function zb({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 or({body:i,details:u?.error?X(u.error):m.statusText,headers:m.headers,status:m.status,url:s});continue}if(!be(u)){n=new cp({result:u,url:s});continue}return u}catch(m){n=new or({body:i,details:m.message,url:s})}}throw n}var qE,Ob,Hb=I(()=>{Ma();Fb();No();rd();fn();Do();ht();Lt();Yi();ct();qE="0x556f1830",Ob={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 jr(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:x,maxPriorityFeePerGas:b,nonce:v,to:S,value:k,stateOverride:P,..._}=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 F=u&&p,N=l&&d&&S&&p,z=F||N,O=F?Vb({code:u,data:p}):N?ZE({data:p,factory:l,factoryData:d,to:S}):p;try{ut(t);let ue=(typeof s=="bigint"?E(s):void 0)||a,we=m?ep(m):void 0,J=ba(P),Ve=e.chain?.formatters?.transactionRequest?.format,Le=(Ve||kt)({...Lr(_,{format:Ve}),accessList:i,account:R,authorizationList:n,blobs:c,data:O,gas:g,gasPrice:h,maxFeePerBlobGas:y,maxFeePerGas:x,maxPriorityFeePerGas:b,nonce:v,to:z?void 0:S,value:k},"call");if(o&&WE({request:Le})&&!J&&!we)try{return await JE(e,{...Le,blockNumber:s,blockTag:a})}catch(xe){if(!(xe instanceof _i)&&!(xe instanceof Ao))throw xe}let Ar=(()=>{let xe=[Le,ue];return J&&we?[...xe,J,we]:J?[...xe,J]:we?[...xe,{},we]:xe})(),Mn=await e.request({method:"eth_call",params:Ar});return Mn==="0x"?{data:void 0}:{data:Mn}}catch(q){let ue=YE(q),{offchainLookup:we,offchainLookupSignature:J}=await Promise.resolve().then(()=>(Hb(),jb));if(e.ccipRead!==!1&&ue?.slice(0,10)===J&&S)return{data:await we(e,{data:ue,to:S})};throw z&&ue?.slice(0,10)==="0x101bb98d"?new Tu({factory:l}):Ru(q,{...t,account:R,chain:e.chain})}}function WE({request:e}){let{data:t,to:r,...n}=e;return!(!t||t.startsWith(Tb)||!r||Object.values(n).filter(o=>typeof o<"u").length>0)}async function JE(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 tr({blockNumber:s,chain:e.chain,contract:"multicall3"});throw new _i})(),p=(typeof s=="bigint"?E(s):void 0)||a,{schedule:l}=ap({id:`${e.uid}.${p}`,wait:o,shouldSplitBatch(h){return h.reduce((x,{data:b})=>x+(b.length-2),0)>r*2},fn:async h=>{let y=h.map(v=>({allowFailure:!0,callData:v.data,target:v.to})),x=Se({abi:Oo,args:[y],functionName:"aggregate3"}),b=await e.request({method:"eth_call",params:[{...m===null?{data:Vb({code:$a,data:x})}:{to:m,data:x}},p]});return At({abi:Oo,args:[y],functionName:"aggregate3",data:b||"0x"})}}),[{returnData:d,success:g}]=await l({data:i,to:c});if(!g)throw new Nr({data:d});return d==="0x"?{data:void 0}:{data:d}}function Vb(e){let{code:t,data:r}=e;return zo({abi:xu(["constructor(bytes, bytes)"]),bytecode:np,args:[t,r]})}function ZE(e){let{data:t,factory:r,factoryData:n,to:o}=e;return zo({abi:xu(["constructor(address, bytes, address, bytes)"]),bytecode:Rb,args:[o,t,r,n]})}function YE(e){if(!(e instanceof w))return;let t=e.walk();return typeof t?.data=="object"?t.data?.data:t.data}var Ma=I(()=>{Di();yd();$e();oo();$b();Zi();K();Ii();qn();to();op();zt();$o();L();ad();ya();Ln();Ed();Ou();hn()});var x0=Ct(fc=>{"use strict";var v_=fc&&fc.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(fc,"__esModule",{value:!0});fc.encryptEnvVars=S_;var y0=on("@noble/curves/ed25519"),b0=v_(on("crypto"));function w_(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 C_(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}async function S_(e,t){let r=JSON.stringify({env:e}),n=y0.x25519.utils.randomPrivateKey(),o=y0.x25519.getPublicKey(n),s=w_(t),a=y0.x25519.getSharedSecret(n,s),i=await b0.default.subtle.importKey("raw",a,{name:"AES-GCM",length:256},!0,["encrypt"]),c=b0.default.getRandomValues(new Uint8Array(12)),m=await b0.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),C_(u)}});var O1=Ct(dc=>{"use strict";var E_=dc&&dc.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(dc,"__esModule",{value:!0});dc.getComposeHash=P_;var k_=E_(on("crypto"));function v0(e){return e==null?e:Array.isArray(e)?e.map(v0):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,r)=>{let n=e[r];return t[r]=v0(n),t},{}):e}function __(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 I_(e){let t=v0(e);return JSON.stringify(t,(r,n)=>typeof n=="number"&&(isNaN(n)||!isFinite(n))?null:n)}function P_(e,t=!1){t&&(e=__(e));let r=I_(e);return k_.default.createHash("sha256").update(r,"utf8").digest("hex")}});var cv=Ct(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=tv;G.fromBig=C0;G.split=z1;var il=BigInt(2**32-1),w0=BigInt(32);function C0(e,t=!1){return t?{h:Number(e&il),l:Number(e>>w0&il)}:{h:Number(e>>w0&il)|0,l:Number(e&il)|0}}function z1(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}=C0(e[s],t);[n[s],o[s]]=[a,i]}return[n,o]}var j1=(e,t)=>BigInt(e>>>0)<<w0|BigInt(t>>>0);G.toBig=j1;var H1=(e,t,r)=>e>>>r;G.shrSH=H1;var V1=(e,t,r)=>e<<32-r|t>>>r;G.shrSL=V1;var G1=(e,t,r)=>e>>>r|t<<32-r;G.rotrSH=G1;var q1=(e,t,r)=>e<<32-r|t>>>r;G.rotrSL=q1;var K1=(e,t,r)=>e<<64-r|t>>>r-32;G.rotrBH=K1;var W1=(e,t,r)=>e>>>r-32|t<<64-r;G.rotrBL=W1;var J1=(e,t)=>t;G.rotr32H=J1;var Z1=(e,t)=>e;G.rotr32L=Z1;var Y1=(e,t,r)=>e<<r|t>>>32-r;G.rotlSH=Y1;var X1=(e,t,r)=>t<<r|e>>>32-r;G.rotlSL=X1;var Q1=(e,t,r)=>t<<r-32|e>>>64-r;G.rotlBH=Q1;var ev=(e,t,r)=>e<<r-32|t>>>64-r;G.rotlBL=ev;function tv(e,t,r,n){let o=(t>>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:o|0}}var rv=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0);G.add3L=rv;var nv=(e,t,r,n)=>t+r+n+(e/2**32|0)|0;G.add3H=nv;var ov=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0);G.add4L=ov;var sv=(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0;G.add4H=sv;var av=(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0);G.add5L=av;var iv=(e,t,r,n,o,s)=>t+r+n+o+s+(e/2**32|0)|0;G.add5H=iv;var A_={fromBig:C0,split:z1,toBig:j1,shrSH:H1,shrSL:V1,rotrSH:G1,rotrSL:q1,rotrBH:K1,rotrBL:W1,rotr32H:J1,rotr32L:Z1,rotlSH:Y1,rotlSL:X1,rotlBH:Q1,rotlBL:ev,add:tv,add3L:rv,add3H:nv,add4L:ov,add4H:sv,add5H:iv,add5L:av};G.default=A_});var mv=Ct(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});cl.crypto=void 0;var lo=on("crypto");cl.crypto=lo&&typeof lo=="object"&&"webcrypto"in lo?lo.webcrypto:lo&&typeof lo=="object"&&"randomBytes"in lo?lo:void 0});var yv=Ct(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.wrapXOFConstructorWithOpts=U.wrapConstructorWithOpts=U.wrapConstructor=U.Hash=U.nextTick=U.swap32IfBE=U.byteSwapIfBE=U.swap8IfBE=U.isLE=void 0;U.isBytes=pv;U.anumber=S0;U.abytes=Ka;U.ahash=T_;U.aexists=$_;U.aoutput=R_;U.u8=M_;U.u32=F_;U.clean=N_;U.createView=B_;U.rotr=L_;U.rotl=D_;U.byteSwap=k0;U.byteSwap32=lv;U.bytesToHex=O_;U.hexToBytes=z_;U.asyncLoop=H_;U.utf8ToBytes=_0;U.bytesToUtf8=V_;U.toBytes=ml;U.kdfInputToBytes=G_;U.concatBytes=q_;U.checkOpts=K_;U.createHasher=dv;U.createOptHasher=gv;U.createXOFer=hv;U.randomBytes=W_;var qa=mv();function pv(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function S0(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Ka(e,...t){if(!pv(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 T_(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");S0(e.outputLen),S0(e.blockLen)}function $_(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 R_(e,t){Ka(e);let r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function M_(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function F_(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function N_(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function B_(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function L_(e,t){return e<<32-t|e>>>t}function D_(e,t){return e<<t|e>>>32-t>>>0}U.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function k0(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}U.swap8IfBE=U.isLE?e=>e:e=>k0(e);U.byteSwapIfBE=U.swap8IfBE;function lv(e){for(let t=0;t<e.length;t++)e[t]=k0(e[t]);return e}U.swap32IfBE=U.isLE?e=>e:lv;var fv=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",U_=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function O_(e){if(Ka(e),fv)return e.toHex();let t="";for(let r=0;r<e.length;r++)t+=U_[e[r]];return t}var Cn={_0:48,_9:57,A:65,F:70,a:97,f:102};function uv(e){if(e>=Cn._0&&e<=Cn._9)return e-Cn._0;if(e>=Cn.A&&e<=Cn.F)return e-(Cn.A-10);if(e>=Cn.a&&e<=Cn.f)return e-(Cn.a-10)}function z_(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(fv)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=uv(e.charCodeAt(s)),i=uv(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 j_=async()=>{};U.nextTick=j_;async function H_(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,U.nextTick)(),n+=s)}}function _0(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function V_(e){return new TextDecoder().decode(e)}function ml(e){return typeof e=="string"&&(e=_0(e)),Ka(e),e}function G_(e){return typeof e=="string"&&(e=_0(e)),Ka(e),e}function q_(...e){let t=0;for(let n=0;n<e.length;n++){let o=e[n];Ka(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 K_(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 E0=class{};U.Hash=E0;function dv(e){let t=n=>e().update(ml(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function gv(e){let t=(n,o)=>e(o).update(ml(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}function hv(e){let t=(n,o)=>e(o).update(ml(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}U.wrapConstructor=dv;U.wrapConstructorWithOpts=gv;U.wrapXOFConstructorWithOpts=hv;function W_(e=32){if(qa.crypto&&typeof qa.crypto.getRandomValues=="function")return qa.crypto.getRandomValues(new Uint8Array(e));if(qa.crypto&&typeof qa.crypto.randomBytes=="function")return Uint8Array.from(qa.crypto.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}});var _v=Ct(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=Ev;var hc=cv(),ft=yv(),J_=BigInt(0),gc=BigInt(1),Z_=BigInt(2),Y_=BigInt(7),X_=BigInt(256),Q_=BigInt(113),vv=[],wv=[],Cv=[];for(let e=0,t=gc,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],vv.push(2*(5*n+r)),wv.push((e+1)*(e+2)/2%64);let o=J_;for(let s=0;s<7;s++)t=(t<<gc^(t>>Y_)*Q_)%X_,t&Z_&&(o^=gc<<(gc<<BigInt(s))-gc);Cv.push(o)}var Sv=(0,hc.split)(Cv,!0),e8=Sv[0],t8=Sv[1],bv=(e,t,r)=>r>32?(0,hc.rotlBH)(e,t,r):(0,hc.rotlSH)(e,t,r),xv=(e,t,r)=>r>32?(0,hc.rotlBL)(e,t,r):(0,hc.rotlSL)(e,t,r);function Ev(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=bv(m,u,1)^r[i],l=xv(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=wv[a],c=bv(o,s,i),m=xv(o,s,i),u=vv[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]^=e8[n],e[1]^=t8[n]}(0,ft.clean)(r)}var yc=class e extends ft.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,ft.anumber)(n),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=(0,ft.u32)(this.state)}clone(){return this._cloneInto()}keccak(){(0,ft.swap32IfBE)(this.state32),Ev(this.state32,this.rounds),(0,ft.swap32IfBE)(this.state32),this.posOut=0,this.pos=0}update(t){(0,ft.aexists)(this),t=(0,ft.toBytes)(t),(0,ft.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,ft.aexists)(this,!1),(0,ft.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,ft.anumber)(t),this.xofInto(new Uint8Array(t))}digestInto(t){if((0,ft.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,ft.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=yc;var fo=(e,t,r)=>(0,ft.createHasher)(()=>new yc(t,e,r));Ee.sha3_224=fo(6,144,224/8);Ee.sha3_256=fo(6,136,256/8);Ee.sha3_384=fo(6,104,384/8);Ee.sha3_512=fo(6,72,512/8);Ee.keccak_224=fo(1,144,224/8);Ee.keccak_256=fo(1,136,256/8);Ee.keccak_384=fo(1,104,384/8);Ee.keccak_512=fo(1,72,512/8);var kv=(e,t,r)=>(0,ft.createXOFer)((n={})=>new yc(t,e,n.dkLen===void 0?r:n.dkLen,!0));Ee.shake128=kv(31,168,128/8);Ee.shake256=kv(31,136,256/8)});var Iv=Ct(I0=>{"use strict";Object.defineProperty(I0,"__esModule",{value:!0});I0.verifyEnvEncryptPublicKey=o8;var r8=_v(),n8=on("@noble/curves/secp256k1");function o8(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,r8.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=n8.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 n$,join as o$}from"path";import{fileURLToPath as s$}from"url";import{ZodError as ST}from"zod";import ii from"chalk";function qc(e){return e.split(/[\s-]+/).filter(Boolean).map((t,r)=>r===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("")}function zg(e){return e===void 0?[]:Array.isArray(e)?[...e]:[e]}function jg(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??qc(i.name);if(i.variadic){n[c]=s.slice(a),a=s.length;break}n[c]=s[a],a+=1}return{options:r,positionals:n,raw:{flags:t.flags,positionals:t.positionals}}}import B2 from"arg";var M2={name:"help",shorthand:"h",description:"Show help information for the current command",type:"boolean",target:"help"},F2={name:"version",shorthand:"v",description:"Show CLI version",type:"boolean",target:"version"},Ce={name:"interactive",shorthand:"i",description:"Enable interactive mode",type:"boolean",target:"interactive",group:"basic"},Hg={name:"api-token",description:"API token used for authentication",type:"string",target:"apiToken",aliases:["api-key"],argumentName:"token",group:"basic"},fr={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json",group:"basic"},Co=[M2,F2,Hg,fr,Ce],is=[Hg],Te={name:"cvm_id",description:"CVM identifier (UUID, app_id, instance_id, or name)",required:!1,target:"cvmId"},cs={name:"cvm-id",description:"CVM identifier (UUID, app_id, instance_id, or name)",type:"string",target:"cvmId"},Vg={name:"uuid",description:"[DEPRECATED] Use --cvm-id instead. CVM UUID.",type:"string",target:"cvmId",deprecated:!0,group:"deprecated"};import Gg from"arg";function qg(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??qc(o.name),i=N2(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 zg(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]=Gg.flag(()=>!0),n.set(c,{option:o,canonicalKey:s,target:a,negatedKey:c})}}return{spec:t,descriptors:r,negatedLookup:n}}function N2(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 Gg.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 L2(e){let t=e.indexOf("--");return t===-1?[[...e],[]]:[e.slice(0,t),e.slice(t+1)]}function yi(e,t,r={}){let n=[...Co,...t?[...t]:[]],o=qg(n),{permissive:s=!1,stopAtPositional:a=!1}=r,[i,c]=L2(e),m=B2(o.spec,{argv:i,permissive:s,stopAtPositional:a}),{_:u,...p}=m;return{positionals:u??[],flags:p,flagConfig:o,passThrough:c}}function Kc(e){return e==="unstable"?" [UNSTABLE]":e==="deprecated"?" [DEPRECATED]":""}function Jc(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?Kc(d):"",h=u.name??"";n.push(` ${h.padEnd(18)}${l}${g}`.trimEnd())}n.push("")}}n.push(""),n.push("Global options:");for(let c of Co)n.push(` ${Wc(c).padEnd(24)}${c.description??""}`.trimEnd());return n.join(`
49
- `)}function Kg(e){let{registry:t,executableName:r,groupPath:n}=e,o=t.getNode(n);if(!o?.group)return Jc({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?Kc(l):"",g=m.name??"";s.push(` ${g.padEnd(18)}${p}${d}`.trimEnd())}s.push("")}s.push("Global options:");for(let m of Co)s.push(` ${Wc(m).padEnd(24)}${m.description??""}`.trimEnd());return s.join(`
51
- `)}function Cf(e){let{executableName:t,definition:r,registry:n}=e,o=D2({executableName:t,definition:r}),s=Kc(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=O2(g);a.push(` ${h.padEnd(18)}${g.description??""}`.trimEnd())}}let c=[...r.meta.options??[]],m=Co.filter(g=>!g.hidden),u=c.filter(g=>!g.hidden),p=new Set(Co.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);a.push(` ${Wc(h,{includeShorthand:y}).padEnd(24)}${h.description??""}`.trimEnd())}}if(l.length>0){let g=b=>b.group==="deprecated"||b.deprecated?!0:(b.description??"").includes("[DEPRECATED]"),h=b=>b.group?b.group:g(b)?"deprecated":"basic",y={basic:[],advanced:[],deprecated:[]};for(let b of l)y[h(b)].push(b);let x=(b,v)=>{if(v.length!==0){a.push(""),a.push(b);for(let S of v)a.push(` ${Wc(S).padEnd(24)}${S.description??""}`.trimEnd())}};x("Basic options:",y.basic),x("Advanced options:",y.advanced),x("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],x=h?.stability,b=x?Kc(x):"",v=g.name??"";a.push(` ${v.padEnd(18)}${y}${b}`.trimEnd())}}return a.join(`
53
- `)}function D2({executableName:e,definition:t}){let r=[e,...t.path],o=(t.meta.arguments??[]).map(m=>U2(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 U2(e){let t=`<${e.name}>`;return e.variadic?`${t}...`:e.required===!1?`[${t}]`:t}function O2(e){return e.variadic?`<${e.name}...>`:e.required===!1?`<${e.name}>?`:`<${e.name}>`}function Wc(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 Sf=!1;function ie(e){Sf=e}function at(){return Sf}function Ef(){return!Sf}import eT from"path";import Cl from"fs-extra";import pw from"@iarna/toml";import{z as _r}from"zod";var Nv=hi(sh(),1);import{ofetch as s8}from"ofetch";function ah(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 rt}from"zod";import{z as ke}from"zod";import{z as go}from"zod";import{z as Y}from"zod";import{z as ho}from"zod";function Eo(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}am();Ge();am();var Rf={"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?Pe(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?Pe(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?Rf[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=gS(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 uh=fs("transaction",_o);function gS(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 Ci(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 ph=fs("block",Ci);function it(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();am();var Mf={"0x0":"reverted","0x1":"success"};function Si(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=>it(n)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Pe(e.transactionIndex):null,status:e.status?Mf[e.status]:null,type:e.type?Rf[e.type]||e.type:null};return e.blobGasPrice&&(r.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(r.blobGasUsed=BigInt(e.blobGasUsed)),r}var lh=fs("transactionReceipt",Si);K();cm();Xe();L();function hr(e,t="hex"){let r=fh(e),n=hs(new Uint8Array(r.length));return r.encode(n),t==="hex"?re(n.bytes):n.bytes}function fh(e){return Array.isArray(e)?vS(e.map(t=>fh(t))):wS(e)}function vS(e){let t=e.reduce((o,s)=>o+s.length,0),r=dh(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 wS(e){let t=typeof e=="string"?qe(e):e,r=dh(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 dh(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.")}Dt();L();function hh(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?de(n):"0x",a,o?de(o):"0x",...Cs({},s)])}return t}Xe();L();function Ss(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=>re(s))}Xe();L();function Es(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=>re(a))}L();Cm();function IS(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 bh(e,t,r){return e&t^~e&r}function xh(e,t,r){return e&t^e&r^t&r}var Sm=class extends ks{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=vm(this.buffer)}update(t){_s(this),t=ki(t),Po(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=vm(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),xm(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:s}=this,{pos:a}=this;r[a++]=128,Dn(this.buffer.subarray(a)),this.padOffset>o-a&&(this.process(n,0),a=0);for(let p=a;p<o;p++)r[p]=0;IS(n,o-8,BigInt(this.length*8),s),this.process(n,0);let i=vm(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()}},cn=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);Cm();var AS=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]),Un=new Uint32Array(64),km=class extends Sm{constructor(t=32){super(64,t,8,!1),this.A=cn[0]|0,this.B=cn[1]|0,this.C=cn[2]|0,this.D=cn[3]|0,this.E=cn[4]|0,this.F=cn[5]|0,this.G=cn[6]|0,this.H=cn[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)Un[p]=t.getUint32(r,!1);for(let p=16;p<64;p++){let l=Un[p-15],d=Un[p-2],g=yr(l,7)^yr(l,18)^l>>>3,h=yr(d,17)^yr(d,19)^d>>>10;Un[p]=h+Un[p-7]+g+Un[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=yr(i,6)^yr(i,11)^yr(i,25),d=u+l+bh(i,c,m)+AS[p]+Un[p]|0,h=(yr(n,2)^yr(n,13)^yr(n,22))+xh(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(){Dn(Un)}destroy(){this.set(0,0,0,0,0,0,0,0),Dn(this.buffer)}};var Ih=wm(()=>new km);var Ph=Ih;Lt();Xe();L();function Ah(e,t){let r=t||"hex",n=Ph(be(e,{strict:!1})?Jt(e):e);return r==="bytes"?n:de(n)}function Th(e){let{commitment:t,version:r=1}=e,n=e.to??(typeof t=="string"?"hex":"bytes"),o=Ah(t,"bytes");return o.set([r],0),n==="bytes"?o:re(o)}function _m(e){let{commitments:t,version:r}=e,n=e.to??(typeof t[0]=="string"?"hex":"bytes"),o=[];for(let s of t)o.push(Th({commitment:s,to:n,version:r}));return o}K();var Im=class extends w{constructor({maxSize:t,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}},Is=class extends w{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}},Pm=class extends w{constructor({hash:t,size:r}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}},Am=class extends w{constructor({hash:t,version:r}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${1}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}};cm();Wt();Xe();L();function $h(e){let t=e.to??(typeof e.data=="string"?"hex":"bytes"),r=typeof e.data=="string"?qe(e.data):e.data,n=te(r);if(!n)throw new Is;if(n>761855)throw new Im({maxSize:761855,size:n});let o=[],s=!0,a=0;for(;s;){let i=hs(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=>re(i.bytes))}function Tm(e){let{data:t,kzg:r,to:n}=e,o=e.blobs??$h({data:t,to:n}),s=e.commitments??Ss({blobs:o,kzg:r,to:n}),a=e.proofs??Es({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}ht();ko();L();Ff();br();K();Ii();On();Ut();Wt();jn();Ge();function Oh(e){let{authorizationList:t}=e;if(t)for(let r of t){let{chainId:n}=r,o=r.address;if(!ne(o))throw new le({address:o});if(n<0)throw new To({chainId:n})}Nm(e)}function zh(e){let{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Is;for(let r of t){let n=te(r),o=Pe(er(r,0,1));if(n!==32)throw new Pm({hash:r,size:n});if(o!==1)throw new Am({hash:r,version:o})}}Nm(e)}function Nm(e){let{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:n,to:o}=e;if(t<=0)throw new To({chainId:t});if(o&&!ne(o))throw new le({address:o});if(n&&n>ds)throw new Zt({maxFeePerGas:n});if(r&&n&&r>n)throw new Tr({maxFeePerGas:n,maxPriorityFeePerGas:r})}function jh(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s}=e;if(t<=0)throw new To({chainId:t});if(s&&!ne(s))throw new le({address:s});if(r||o)throw new w("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>ds)throw new Zt({maxFeePerGas:n})}function Hh(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s}=e;if(s&&!ne(s))throw new le({address:s});if(typeof t<"u"&&t<=0)throw new To({chainId:t});if(r||o)throw new w("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>ds)throw new Zt({maxFeePerGas:n})}Dt();function Bm(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 gm({transaction:e})}br();Dt();Ut();function Ai(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 hm({storageKey:o[s]});if(!ne(n,{strict:!1}))throw new le({address:n});t.push([n,o])}return t}function Lm(e,t){let r=Bm(e);return r==="eip1559"?VS(e,t):r==="eip2930"?GS(e,t):r==="eip4844"?HS(e,t):r==="eip7702"?jS(e,t):qS(e,t)}function jS(e,t){let{authorizationList:r,chainId:n,gas:o,nonce:s,to:a,value:i,maxFeePerGas:c,maxPriorityFeePerGas:m,accessList:u,data:p}=e;Oh(e);let l=Ai(u),d=hh(r);return Qe(["0x04",hr([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",l,d,...Cs(e,t)])])}function HS(e,t){let{chainId:r,gas:n,nonce:o,to:s,value:a,maxFeePerBlobGas:i,maxFeePerGas:c,maxPriorityFeePerGas:m,accessList:u,data:p}=e;zh(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(P=>re(P)),S=e.kzg,k=Ss({blobs:v,kzg:S});if(typeof l>"u"&&(l=_m({commitments:k})),typeof d>"u"){let P=Es({blobs:v,commitments:k,kzg:S});d=Tm({blobs:v,commitments:k,proofs:P})}}let g=Ai(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",l??[],...Cs(e,t)],y=[],x=[],b=[];if(d)for(let v=0;v<d.length;v++){let{blob:S,commitment:k,proof:P}=d[v];y.push(S),x.push(k),b.push(P)}return Qe(["0x03",d?hr([h,y,x,b]):hr(h)])}function VS(e,t){let{chainId:r,gas:n,nonce:o,to:s,value:a,maxFeePerGas:i,maxPriorityFeePerGas:c,accessList:m,data:u}=e;Nm(e);let p=Ai(m),l=[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,...Cs(e,t)];return Qe(["0x02",hr(l)])}function GS(e,t){let{chainId:r,gas:n,data:o,nonce:s,to:a,value:i,accessList:c,gasPrice:m}=e;jh(e);let u=Ai(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,...Cs(e,t)];return Qe(["0x01",hr(p)])}function qS(e,t){let{chainId:r=0,gas:n,data:o,nonce:s,to:a,value:i,gasPrice:c}=e;Hh(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 dm({v:t.v});return d})(),p=Ye(t.r),l=Ye(t.s);m=[...m,E(u),p==="0x00"?"0x":p,l==="0x00"?"0x":l]}else r>0&&(m=[...m,E(r),"0x","0x"]);return hr(m)}function Cs(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=Ye(r.r),a=Ye(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 Vh={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};Ge();var Gh={block:ph({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?ge(r.mint):void 0,n.sourceHash=r.sourceHash,n.type="deposit"),n}),stateRoot:e.stateRoot}}}),transaction:uh({format(e){let t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?ge(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:lh({format(e){return{l1GasPrice:e.l1GasPrice?ge(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?ge(e.l1GasUsed):null,l1Fee:e.l1Fee?ge(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};br();Ut();ht();L();function KS(e,t){return JS(e)?WS(e):Lm(e,t)}var qh={transaction:KS};function WS(e){ZS(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?de(a):"0x",c?de(c):"0x",o?de(o):"0x",s?"0x1":"0x",r??"0x"];return Qe(["0x7e",hr(m)])}function JS(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function ZS(e){let{from:t,to:r}=e;if(t&&!ne(t))throw new le({address:t});if(r&&!ne(r))throw new le({address:r})}var Vf={blockTime:2e3,contracts:Vh,formatters:Gh,serializers:qh};var Dm=Eo({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 Ti=1,$i=Eo({...Vf,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:{...Vf.contracts,disputeGameFactory:{[Ti]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[Ti]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[Ti]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[Ti]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:Ti}),YS=Eo({...$i,experimental_preconfirmationTime:200,rpcUrls:{default:{http:["https://mainnet-preconf.base.org"]}}});Ii();function Ds({chain:e,currentChainId:t}){if(!e)throw new Rm;if(t!==e.id)throw new $m({chain:e,currentChainId:t})}K();var et=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"})}},rr=class extends w{constructor({docsPath:t,metaMessages:r,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:t,metaMessages:r,name:"AccountTypeNotSupportedError"})}};var Mu=Eo({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 Ne}from"zod";import{z as $t}from"zod";import{z as $}from"zod";import{z as M}from"zod";import{z as Ja}from"zod";import{z as Za}from"zod";import{z as Z}from"zod";import{z as Q}from"zod";import{z as xt}from"zod";import yI from"crypto";import{z as Wr}from"zod";import{z as Er}from"zod";import{z as ot}from"zod";import{z as Rt}from"zod";import{z as Mt}from"zod";import{z as KI}from"zod";import{z as Av}from"zod";import{z as Jr}from"zod";import{z as ti}from"zod";import{z as Zo}from"zod";import{z as ve}from"zod";import{z as bP}from"zod";import{z as wP}from"zod";import{z as ce}from"zod";import{z as qr}from"zod";import{z as NP}from"zod";import{z as Fe}from"zod";import{z as V}from"zod";import{z as Qa}from"zod";import{z as Tv}from"zod";import{z as dt}from"zod";import{z as Xv}from"zod";import{z as Gr}from"zod";import{z as j}from"zod";import{z as he}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)}Re();K();var Fu=class extends w{constructor(t){super(`Filter type "${t}" is not supported.`,{name:"FilterTypeNotSupportedError"})}};Xe();Qt();zi();fn();pn();Gn();var Gy="/docs/contract/encodeEventTopics";function Dr(e){let{abi:t,eventName:r,args:n}=e,o=t[0];if(r){let c=It({abi:t,name:r});if(!c)throw new Ni(r,{docsPath:Gy});o=c}if(o.type!=="event")throw new Ni(void 0,{docsPath:Gy});let s=We(o),a=Vn(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)=>qy({param:u,value:m[p][d]})):typeof m[p]<"u"&&m[p]!==null?qy({param:u,value:m[p]}):null)??[])}return[a,...i]}function qy({param:e,value:t}){if(e.type==="string"||e.type==="bytes")return fe(Jt(t));if(e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/))throw new Fu(e.type);return yt([e],[t])}L();function Xn(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 Nu(e,t){let{address:r,abi:n,args:o,eventName:s,fromBlock:a,strict:i,toBlock:c}=t,m=Xn(e,{method:"eth_newFilter"}),u=s?Dr({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"}}$e();zt();Re();K();qn();No();ha();var AE=3;function jt(e,{abi:t,address:r,args:n,docsPath:o,functionName:s,sender:a}){let i=e instanceof Nr?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 nr?new Au({functionName:s}):[AE,gn.code].includes(c)&&(m||u||p||l)?new Fo({abi:t,data:typeof m=="object"?m.data:m,functionName:s,message:i instanceof Kn?u:l??p}):e;return new Ys(d,{abi:t,args:n,contractAddress:r,docsPath:o,functionName:s,sender:a})}$e();K();zn();Qt();function Bu(e){let t=fe(`0x${e.substring(4)}`).substring(26);return un(`0x${t}`)}Lt();Wt();Ge();L();async function Yy({hash:e,signature:t}){let r=be(e)?e:de(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=Zy(d);return new n.Signature(ge(m),ge(u)).addRecoveryBit(g)}let a=be(t)?t:de(t);if(te(a)!==65)throw new Error("invalid signature length");let i=Pe(`0x${a.slice(130)}`),c=Zy(i);return n.Signature.fromCompact(a.substring(2,130)).addRecoveryBit(c)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}function Zy(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 Lu({hash:e,signature:t}){return Bu(await Yy({hash:e,signature:t}))}ht();Xe();L();Qt();function Du(e){let{chainId:t,nonce:r,to:n}=e,o=e.contractAddress??e.address,s=fe(Qe(["0x05",hr([t?E(t):"0x",o,r?E(r):"0x"])]));return n==="bytes"?qe(s):s}async function Qn(e){let{authorization:t,signature:r}=e;return Lu({hash:Du(t),signature:r??t})}L();lm();bs();K();Dt();var Uu=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=Io({from:r?.address,to:p,value:typeof l<"u"&&`${ys(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}};On();Hi();function Xy(e,{docsPath:t,...r}){let n=(()=>{let o=Yn(e,r);return o instanceof Yt?e:o})();return new Uu(n,{docsPath:t,...r})}ya();Ln();Ou();hn();$e();bs();K();var zu=class extends w{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}},eo=class extends w{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}},ju=class extends w{constructor({maxPriorityFeePerGas:t}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${Ke(t)} gwei).`,{name:"MaxFeePerGasTooLowError"})}};Ge();K();var xa=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"})}};L();async function pt(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 xa({blockHash:t,blockNumber:r});return(e.chain?.formatters?.block?.format||Ci)(i,"getBlock")}async function va(e){let t=await e.request({method:"eth_gasPrice"});return BigInt(t)}async function eb(e,t){return id(e,t)}async function id(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,pt,"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 ge(a)}catch{let[s,a]=await Promise.all([r?Promise.resolve(r):T(e,pt,"getBlock")({}),T(e,va,"getGasPrice")({})]);if(typeof s.baseFeePerGas!="bigint")throw new eo;let i=a-s.baseFeePerGas;return i<0n?0n:i}}async function tb(e,t){return Hu(e,t)}async function Hu(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 zu;let c=10**(a.toString().split(".")[1]?.length??0),m=l=>l*BigInt(Math.ceil(a*c))/BigInt(c),u=r||await T(e,pt,"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 eo;let l=typeof o?.maxPriorityFeePerGas=="bigint"?o.maxPriorityFeePerGas:await id(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,va,"getGasPrice")({}))}}Ge();L();async function wa(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 Pe(o)}hn();Ge();async function Pt(e){let t=await e.request({method:"eth_chainId"},{dedupe:!0});return Pe(t)}var Vi=["blobVersionedHashes","chainId","fees","gas","nonce","type"],rb=new Map;async function Ur(e,t){let{account:r=e.account,blobs:n,chain:o,gas:s,kzg:a,nonce:i,nonceManager:c,parameters:m=Vi,type:u}=t,p=r&&W(r),l={...t,...p?{from:p?.address}:{}},d;async function g(){return d||(d=await T(e,pt,"getBlock")({blockTag:"latest"}),d)}let h;async function y(){return h||(o?o.id:typeof t.chainId<"u"?t.chainId:(h=await T(e,Pt,"getChainId")({}),h))}if(m.includes("nonce")&&typeof i>"u"&&p)if(c){let x=await y();l.nonce=await c.consume({address:p.address,chainId:x,client:e})}else l.nonce=await T(e,wa,"getTransactionCount")({address:p.address,blockTag:"pending"});if((m.includes("blobVersionedHashes")||m.includes("sidecars"))&&n&&a){let x=Ss({blobs:n,kzg:a});if(m.includes("blobVersionedHashes")){let b=_m({commitments:x,to:"hex"});l.blobVersionedHashes=b}if(m.includes("sidecars")){let b=Es({blobs:n,commitments:x,kzg:a}),v=Tm({blobs:n,commitments:x,proofs:b,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=Bm(l)}catch{let x=rb.get(e.uid);typeof x>"u"&&(x=typeof(await g())?.baseFeePerGas=="bigint",rb.set(e.uid,x)),l.type=x?"eip1559":"legacy"}if(m.includes("fees"))if(l.type!=="legacy"&&l.type!=="eip2930"){if(typeof l.maxFeePerGas>"u"||typeof l.maxPriorityFeePerGas>"u"){let x=await g(),{maxFeePerGas:b,maxPriorityFeePerGas:v}=await Hu(e,{block:x,chain:o,request:l});if(typeof t.maxPriorityFeePerGas>"u"&&t.maxFeePerGas&&t.maxFeePerGas<v)throw new ju({maxPriorityFeePerGas:v});l.maxPriorityFeePerGas=v,l.maxFeePerGas=b}}else{if(typeof t.maxFeePerGas<"u"||typeof t.maxPriorityFeePerGas<"u")throw new eo;if(typeof t.gasPrice>"u"){let x=await g(),{gasPrice:b}=await Hu(e,{block:x,chain:o,request:l,type:"legacy"});l.gasPrice=b}}return m.includes("gas")&&typeof s>"u"&&(l.gas=await T(e,Ca,"estimateGas")({...l,account:p,prepare:p?.type==="local"?[]:["blobVersionedHashes"]})),ut(l),delete l.parameters,l}async function Ca(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:x,nonce:b,value:v,stateOverride:S,...k}=n?await Ur(e,{...t,parameters:s}):t,_=(typeof u=="bigint"?E(u):void 0)||p,R=ba(S),F=await(async()=>{if(k.to)return k.to;if(i&&i.length>0)return await Qn({authorization:i[0]}).catch(()=>{throw new w("`to` is required. Could not infer from `authorizationList`")})})();ut(t);let N=e.chain?.formatters?.transactionRequest?.format,O=(N||kt)({...Lr(k,{format:N}),account:o,accessList:a,authorizationList:i,blobs:c,blobVersionedHashes:m,data:l,gas:d,gasPrice:g,maxFeePerBlobGas:h,maxFeePerGas:y,maxPriorityFeePerGas:x,nonce:b,to:F,value:v},"estimateGas");return BigInt(await e.request({method:"eth_estimateGas",params:R?[O,_??e.experimental_blockTag??"latest",R]:_?[O,_]:[O]}))}catch(a){throw Xy(a,{...t,account:o,chain:e.chain})}}async function nb(e,t){let{abi:r,address:n,args:o,functionName:s,dataSuffix:a,...i}=t,c=Se({abi:r,args:o,functionName:s});try{return await T(e,Ca,"estimateGas")({data:`${c}${a?a.replace("0x",""):""}`,to:n,...i})}catch(m){let u=i.account?W(i.account):void 0;throw jt(m,{abi:r,address:n,args:o,docsPath:"/docs/contract/estimateContractGas",functionName:s,sender:u?.address})}}Gn();Re();Do();Xe();Qt();zi();Re();Nf();Wt();zi();Oi();pn();var ob="/docs/contract/decodeEventLog";function Sa(e){let{abi:t,data:r,strict:n,topics:o}=e,s=n??!0,[a,...i]=o;if(!a)throw new Km({docsPath:ob});let c=t.find(h=>h.type==="event"&&a===Vn(We(h)));if(!(c&&"name"in c)||c.type!=="event")throw new zs(a,{docsPath:ob});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,x]=d[h],b=i[h];if(!b)throw new $r({abiItem:c,param:y});l[p?x:y.name||x]=$E({param:y,value:b})}let g=u.filter(h=>!("indexed"in h&&h.indexed));if(g.length>0){if(r&&r!=="0x")try{let h=dn(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 Us||h instanceof gs?new vr({abiItem:c,data:r,params:g,size:te(r)}):h}else if(s)throw new vr({abiItem:c,data:"0x",params:g,size:0})}return{eventName:m,args:Object.values(l).length>0?l:void 0}}function $E({param:e,value:t}){return e.type==="string"||e.type==="bytes"||e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/)?t:(dn([e],t)||[])[0]}function Cr(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]===Vn(m));if(!i)return null;let c=Sa({...a,abi:[i],strict:o});return s&&!s.includes(c.eventName)||!RE({args:c.args,inputs:i.inputs,matchArgs:r})?null:{...c,...a}}catch(i){let c,m;if(i instanceof zs)return null;if(i instanceof vr||i instanceof $r){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 RE(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"?sr(a,i):s.type==="string"||s.type==="bytes"?fe(Jt(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}L();async function Ea(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=>Dr({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"?E(n):n,toBlock:typeof o=="bigint"?E(o):o}]});let d=l.map(g=>it(g));return u?Cr({abi:u,args:i,logs:d,strict:m}):d}async function Vu(e,t){let{abi:r,address:n,args:o,blockHash:s,eventName:a,fromBlock:i,toBlock:c,strict:m}=t,u=a?It({abi:r,name:a}):void 0,p=u?void 0:r.filter(l=>l.type==="event");return T(e,Ea,"getLogs")({address:n,args:o,blockHash:s,event:u,events:p,fromBlock:i,toBlock:c,strict:m})}to();zt();Ma();async function je(e,t){let{abi:r,address:n,args:o,functionName:s,...a}=t,i=Se({abi:r,args:o,functionName:s});try{let{data:c}=await T(e,jr,"call")({...a,data:i,to:n});return At({abi:r,args:o,functionName:s,data:c||"0x"})}catch(c){throw jt(c,{abi:r,address:n,args:o,docsPath:"/docs/contract/readContract",functionName:s})}}$e();to();zt();Ma();async function Gb(e,t){let{abi:r,address:n,args:o,dataSuffix:s,functionName:a,...i}=t,c=i.account?W(i.account):e.account,m=Se({abi:r,args:o,functionName:a});try{let{data:u}=await T(e,jr,"call")({batch:!1,data:`${m}${s?s.replace("0x",""):""}`,to:n,...i,account:c}),p=At({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 jt(u,{abi:r,address:n,args:o,docsPath:"/docs/contract/simulateContract",functionName:a,sender:c?.address})}}Re();ha();var Ad=new Map,qb=new Map,XE=0;function lt(e,t,r){let n=++XE,o=()=>Ad.get(e)||[],s=()=>{let u=o();Ad.set(e,u.filter(p=>p.id!==n))},a=()=>{let u=o();if(!u.some(l=>l.id===n))return;let p=qb.get(e);if(u.length===1&&p){let l=p();l instanceof Promise&&l.catch(()=>{})}s()},i=o();if(Ad.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"&&qb.set(e,m),a}async function Xi(e){return new Promise(t=>setTimeout(t,e))}function ir(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 Xi(c);let m=async()=>{o&&(await e({unpoll:s}),await Xi(n),m())};m()})(),s}ct();var QE=new Map,ek=new Map;function Kb(e){let t=(o,s)=>({clear:()=>s.delete(o),get:()=>s.get(o),set:a=>s.set(o,a)}),r=t(e,QE),n=t(e,ek);return{clear:()=>{r.clear(),n.clear()},promise:r,response:n}}async function Wb(e,{cacheKey:t,cacheTime:r=Number.POSITIVE_INFINITY}){let n=Kb(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 tk=e=>`blockNumber.${e}`;async function Hr(e,{cacheTime:t=e.cacheTime}={}){let r=await Wb(()=>e.request({method:"eth_blockNumber"}),{cacheKey:tk(e.uid),cacheTime:t});return BigInt(r)}async function so(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=>it(s));return!("abi"in t)||!t.abi?o:Cr({abi:t.abi,logs:o,strict:r})}async function ao(e,{filter:t}){return t.request({method:"eth_uninstallFilter",params:[t.id]})}function Jb(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,x=X(["watchContractEvent",n,o,s,e.uid,a,p,y,i]);return lt(x,{onLogs:m,onError:c},b=>{let v;i!==void 0&&(v=i-1n);let S,k=!1,P=ir(async()=>{if(!k){try{S=await T(e,Nu,"createContractEventFilter")({abi:r,address:n,args:o,eventName:a,strict:y,fromBlock:i})}catch{}k=!0;return}try{let _;if(S)_=await T(e,so,"getFilterChanges")({filter:S});else{let R=await T(e,Hr,"getBlockNumber")({});v&&v<R?_=await T(e,Vu,"getContractEvents")({abi:r,address:n,args:o,eventName:a,fromBlock:v+1n,toBlock:R,strict:y}):_=[],v=R}if(_.length===0)return;if(s)b.onLogs(_);else for(let R of _)b.onLogs([R])}catch(_){S&&_ instanceof Br&&(k=!1),b.onError?.(_)}},{emitOnBegin:!0,interval:p});return async()=>{S&&await T(e,ao,"uninstallFilter")({filter:S}),P()}})})():(()=>{let y=l??!1,x=X(["watchContractEvent",n,o,s,e.uid,a,p,y]),b=!0,v=()=>b=!1;return lt(x,{onLogs:m,onError:c},S=>((async()=>{try{let k=(()=>{if(e.transport.type==="fallback"){let R=e.transport.transports.find(F=>F.config.type==="webSocket"||F.config.type==="ipc");return R?R.value:e.transport}return e.transport})(),P=a?Dr({abi:r,eventName:a,args:o}):[],{unsubscribe:_}=await k.subscribe({params:["logs",{address:n,topics:P}],onData(R){if(!b)return;let F=R.result;try{let{eventName:N,args:z}=Sa({abi:r,data:F.data,topics:F.topics,strict:l}),O=it(F,{args:z,eventName:N});S.onLogs([O])}catch(N){let z,O;if(N instanceof vr||N instanceof $r){if(l)return;z=N.abiItem.name,O=N.abiItem.inputs?.some(ue=>!("name"in ue&&ue.name))}let q=it(F,{args:O?[]:{},eventName:z});S.onLogs([q])}},onError(R){S.onError?.(R)}});v=_,b||v()}catch(k){c?.(k)}})(),()=>v()))})()}$e();zt();$e();K();On();Dt();Hi();function Fa(e,{docsPath:t,...r}){let n=(()=>{let o=Yn(e,r);return o instanceof Yt?e:o})();return new ym(n,{docsPath:t,...r})}ya();Ln();Bs();hn();async function Na(e,{serializedTransaction:t}){return e.request({method:"eth_sendRawTransaction",params:[t]},{retryCount:0})}var Td=new Xt(128);async function io(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 et({docsPath:"/docs/actions/wallet/sendTransaction"});let x=r?W(r):null;try{ut(t);let b=await(async()=>{if(t.to)return t.to;if(t.to!==null&&s&&s.length>0)return await Qn({authorization:s[0]}).catch(()=>{throw new w("`to` is required. Could not infer from `authorizationList`.")})})();if(x?.type==="json-rpc"||x===null){let v;n!==null&&(v=await T(e,Pt,"getChainId")({}),Ds({currentChainId:v,chain:n}));let S=e.chain?.formatters?.transactionRequest?.format,P=(S||kt)({...Lr(y,{format:S}),accessList:o,account:x,authorizationList:s,blobs:a,chainId:v,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:l,nonce:d,to:b,type:g,value:h},"sendTransaction"),_=Td.get(e.uid),R=_?"wallet_sendTransaction":"eth_sendTransaction";try{return await e.request({method:R,params:[P]},{retryCount:0})}catch(F){if(_===!1)throw F;let N=F;if(N.name==="InvalidInputRpcError"||N.name==="InvalidParamsRpcError"||N.name==="MethodNotFoundRpcError"||N.name==="MethodNotSupportedRpcError")return await e.request({method:"wallet_sendTransaction",params:[P]},{retryCount:0}).then(z=>(Td.set(e.uid,!0),z)).catch(z=>{let O=z;throw O.name==="MethodNotFoundRpcError"||O.name==="MethodNotSupportedRpcError"?(Td.set(e.uid,!1),N):O});throw N}}if(x?.type==="local"){let v=await T(e,Ur,"prepareTransactionRequest")({account:x,accessList:o,authorizationList:s,blobs:a,chain:n,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:l,nonce:d,nonceManager:x.nonceManager,parameters:[...Vi,"sidecars"],type:g,value:h,...y,to:b}),S=n?.serializers?.transaction,k=await x.signTransaction(v,{serializer:S});return await T(e,Na,"sendRawTransaction")({serializedTransaction:k})}throw x?.type==="smart"?new rr({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new rr({docsPath:"/docs/actions/wallet/sendTransaction",type:x?.type})}catch(b){throw b instanceof rr?b:Fa(b,{...t,account:x,chain:t.chain||void 0})}}async function jo(e,t){return jo.internal(e,io,"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 et({docsPath:"/docs/contract/writeContract"});let d=i?W(i):null,g=Se({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 jt(h,{abi:a,address:c,args:m,docsPath:"/docs/contract/writeContract",functionName:p,sender:d?.address})}}e.internal=t})(jo||(jo={}));K();K();var up=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}};sp();function Ho(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 Xi(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()})}ct();jn();ko();Ge();$e();K();ha();zt();ht();Ge();L();var $d="0x5792579257925792579257925792579257925792579257925792579257925792",Rd=E(0,{size:32});async function pp(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?Se({abi:d.abi,functionName:d.functionName,args:d.args}):d.data;return{data:d.dataSuffix&&g?ze([g,d.dataSuffix]):g,to:d.to,value:d.value?E(d.value):void 0}});try{let l=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 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(b=>!b.optional)){let b="non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.";throw new Jn(new w(b,{details:b}))}if(i&&p.length>1){let x="`forceAtomic` is not supported on fallback to `eth_sendTransaction`.";throw new Zn(new w(x,{details:x}))}let g=[];for(let x of p){let b=io(e,{account:u,chain:o,data:x.data,to:x.to,value:x.value?ge(x.value):void 0});g.push(b),a>0&&await new Promise(v=>setTimeout(v,a))}let h=await Promise.allSettled(g);if(h.every(x=>x.status==="rejected"))throw h[0].reason;let y=h.map(x=>x.status==="fulfilled"?x.value:Rd);return{id:ze([...y,E(o.id,{size:32}),$d])}}throw Fa(l,{...t,account:u,chain:t.chain})}}async function lp(e,t){async function r(u){if(u.endsWith($d.slice(2))){let l=Ye(Fm(u,-64,-32)),d=Fm(u,0,-64).slice(2).match(/.{1,64}/g),g=await Promise.all(d.map(y=>Rd.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:Pe(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?Pe(o):void 0,receipts:s?.map(u=>({...u,blockNumber:ge(u.blockNumber),gasUsed:ge(u.gasUsed),status:Mf[u.status]}))??[],statusCode:m,status:c,version:a}}async function fp(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=X(["waitForCallsStatus",e.uid,r]),{promise:u,resolve:p,reject:l}=Ra(),d,g=lt(m,{resolve:p,reject:l},h=>{let y=ir(async()=>{let x=b=>{clearTimeout(d),y(),b(),g()};try{let b=await Ho(async()=>{let v=await T(e,lp,"getCallsStatus")({id:r});if(c&&v.status==="failure")throw new up(v);return v},{retryCount:s,delay:a});if(!o(b))return;x(()=>h.resolve(b))}catch(b){x(()=>h.reject(b))}},{interval:n,emitOnBegin:!0});return y});return d=i?setTimeout(()=>{g(),clearTimeout(d),l(new Md({id:r}))},i):void 0,await u}var Md=class extends w{constructor({id:t}){super(`Timed out while waiting for call bundle with id "${t}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}};$e();var dp=256,gp;function hp(e=11){if(!gp||dp+e>256*2){gp="",dp=0;for(let t=0;t<256;t++)gp+=(256+Math.random()*256|0).toString(16).substring(1)}return gp.substring(dp,dp+++e)}function yp(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},x={account:l,batch:t,cacheTime:p,ccipRead:n,chain:r,key:o,name:s,pollingInterval:u,request:g,transport:y,type:a,uid:hp(),...i?{experimental_blockTag:i}:{}};function b(v){return S=>{let k=S(v);for(let _ in x)delete k[_];let P={...v,...k};return Object.assign(P,{extend:b(P)})}}return Object.assign(x,{extend:b(x)})}oo();to();zt();$o();ko();L();K();qn();function Ba(e){if(!(e instanceof w))return!1;let t=e.walk(r=>r instanceof Fo);return t instanceof Fo?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}Yi();ht();Xe();L();Qt();Lt();function bp(e){if(e.length!==66||e.indexOf("[")!==0||e.indexOf("]")!==65)return null;let t=`0x${e.slice(1,65)}`;return be(t)?t:null}function Qi(e){let t=new Uint8Array(32).fill(0);if(!e)return re(t);let r=e.split(".");for(let n=r.length-1;n>=0;n-=1){let o=bp(r[n]),s=o?Jt(o):fe(gr(r[n]),"bytes");t=fe(ze([t,s]),"bytes")}return re(t)}Xe();function Zb(e){return`[${e.slice(2)}]`}Xe();L();Qt();function Yb(e){let t=new Uint8Array(32).fill(0);return e?bp(e)||fe(gr(e)):re(t)}function La(e){let t=e.replace(/^\.|\.$/gm,"");if(t.length===0)return new Uint8Array(1);let r=new Uint8Array(gr(t).byteLength+2),n=0,o=t.split(".");for(let s=0;s<o.length;s++){let a=gr(o[s]);a.byteLength>255&&(a=gr(Zb(Yb(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 Xb(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 tr({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),u=c?.ensTlds;if(u&&!u.some(l=>s.endsWith(l)))return null;let p=o!=null?[Qi(s),BigInt(o)]:[Qi(s)];try{let l=Se({abi:xd,functionName:"addr",args:p}),d={address:m,abi:rp,functionName:"resolveWithGateways",args:[de(La(s)),l,a??[xn]],blockNumber:r,blockTag:n},h=await T(e,je,"readContract")(d);if(h[0]==="0x")return null;let y=At({abi:xd,args:p,functionName:"addr",data:h[0]});return y==="0x"||Ye(y)==="0x00"?null:y}catch(l){if(i)throw l;if(Ba(l))return null;throw l}}K();var xp=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"})}},co=class extends w{constructor({reason:t}){super(`ENS NFT avatar URI is invalid. ${t}`,{name:"EnsAvatarInvalidNftUriError"})}},Da=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"})}},vp=class extends w{constructor({namespace:t}){super(`ENS NFT avatar namespace "${t}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}};var rk=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,nk=/^(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>\/.*)?$/,ok=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,sk=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function ak(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 Qb(e,t){return e?e.endsWith("/")?e.slice(0,-1):e:t}function Fd({uri:e,gatewayUrls:t}){let r=ok.test(e);if(r)return{uri:e,isOnChain:!0,isEncoded:r};let n=Qb(t?.ipfs,"https://ipfs.io"),o=Qb(t?.arweave,"https://arweave.net"),s=e.match(rk),{protocol:a,subpath:i,target:c,subtarget:m=""}=s?.groups||{},u=a==="ipns:/"||i==="ipns/",p=a==="ipfs:/"||i==="ipfs/"||nk.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(sk,"");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 Da({uri:e})}function Nd(e){if(typeof e!="object"||!("image"in e)&&!("image_url"in e)&&!("image_data"in e))throw new xp({data:e});return e.image||e.image_url||e.image_data}async function ex({gatewayUrls:e,uri:t}){try{let r=await fetch(t).then(o=>o.json());return await wp({gatewayUrls:e,uri:Nd(r)})}catch{throw new Da({uri:t})}}async function wp({gatewayUrls:e,uri:t}){let{uri:r,isOnChain:n}=Fd({uri:t,gatewayUrls:e});if(n||await ak(r))return r;throw new Da({uri:t})}function tx(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 co({reason:"Only EIP-155 supported"});if(!a)throw new co({reason:"Chain ID not found"});if(!c)throw new co({reason:"Contract address not found"});if(!o)throw new co({reason:"Token ID not found"});if(!i)throw new co({reason:"ERC namespace not found"});return{chainID:Number.parseInt(a,10),namespace:i.toLowerCase(),contractAddress:c,tokenID:o}}async function rx(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 vp({namespace:t.namespace})}async function nx(e,{gatewayUrls:t,record:r}){return/eip155:/i.test(r)?ik(e,{gatewayUrls:t,record:r}):wp({uri:r,gatewayUrls:t})}async function ik(e,{gatewayUrls:t,record:r}){let n=tx(r),o=await rx(e,{nft:n}),{uri:s,isOnChain:a,isEncoded:i}=Fd({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 wp({uri:Nd(u),gatewayUrls:t})}let c=n.tokenID;return n.namespace==="erc1155"&&(c=c.replace("0x","").padStart(64,"0")),ex({gatewayUrls:t,uri:s.replace(/(?:0x)?{id}/,c)})}oo();to();zt();$o();L();Yi();async function Cp(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 tr({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:rp,args:[de(La(s)),Se({abi:bd,functionName:"text",args:[Qi(s),o]}),a??[xn]],functionName:"resolveWithGateways",blockNumber:r,blockTag:n},d=await T(e,je,"readContract")(p);if(d[0]==="0x")return null;let g=At({abi:bd,functionName:"text",data:d[0]});return g===""?null:g}catch(p){if(i)throw p;if(Ba(p))return null;throw p}}async function ox(e,{blockNumber:t,blockTag:r,assetGatewayUrls:n,name:o,gatewayUrls:s,strict:a,universalResolverAddress:i}){let c=await T(e,Cp,"getEnsText")({blockNumber:t,blockTag:r,key:"avatar",name:o,universalResolverAddress:i,gatewayUrls:s,strict:a});if(!c)return null;try{return await nx(e,{record:c,gatewayUrls:n})}catch{return null}}oo();$o();Yi();async function sx(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 tr({blockNumber:n,chain:c,contract:"ensUniversalResolver"})})();try{let u={address:m,abi:Ab,args:[r,s,a??[xn]],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(Ba(u))return null;throw u}}$o();L();async function ax(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 tr({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:[de(La(o))],blockNumber:r,blockTag:n});return c}Ma();$e();L();ad();ya();Ln();hn();async function Sp(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{ut(t);let x=(typeof n=="bigint"?E(n):void 0)||o,b=e.chain?.formatters?.transactionRequest?.format,S=(b||kt)({...Lr(g,{format:b}),account:h,blobs:s,data:a,gas:i,gasPrice:c,maxFeePerBlobGas:m,maxFeePerGas:u,maxPriorityFeePerGas:p,to:l,value:d},"createAccessList"),k=await e.request({method:"eth_createAccessList",params:[S,x]});return{accessList:k.accessList,gasUsed:BigInt(k.gasUsed)}}catch(y){throw Ru(y,{...t,account:h,chain:e.chain})}}async function ix(e){let t=Xn(e,{method:"eth_newBlockFilter"}),r=await e.request({method:"eth_newBlockFilter"});return{id:r,request:t(r),type:"block"}}L();async function Ep(e,{address:t,args:r,event:n,events:o,fromBlock:s,strict:a,toBlock:i}={}){let c=o??(n?[n]:void 0),m=Xn(e,{method:"eth_newFilter"}),u=[];c&&(u=[c.flatMap(d=>Dr({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 kp(e){let t=Xn(e,{method:"eth_newPendingTransactionFilter"}),r=await e.request({method:"eth_newPendingTransactionFilter"});return{id:r,request:t(r),type:"transaction"}}L();async function cx(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 mx(e){let t=await e.request({method:"eth_blobBaseFee"});return BigInt(t)}Ge();L();async function ux(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}),Pe(s)}L();async function ec(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 _p=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 px(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:ck,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 _p({address:r}):a}}var ck=[{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"}];L();function lx(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 fx(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 lx(a)}async function dx(e,{filter:t}){let r=t.strict??!1,o=(await t.request({method:"eth_getFilterLogs",params:[t.id]})).map(s=>it(s));return t.abi?Cr({abi:t.abi,logs:o,strict:r}):o}L();zn();Do();async function gx({address:e,authorization:t,signature:r}){return sr(Ls(e),await Qn({authorization:t,signature:r}))}K();No();ha();L();Bs();var Ip=new Xt(8192);function hx(e,{enabled:t=!0,id:r}){if(!t||!r)return e();if(Ip.get(r))return Ip.get(r);let n=e().finally(()=>Ip.delete(r));return Ip.set(r,n),n}ct();function yx(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 Wn(new Error("method not supported"),{method:m});if(s?.include&&!s.include.includes(m))throw new Wn(new Error("method not supported"),{method:m});let u=o?dr(`${c}.${X(r)}`):void 0;return hx(()=>Ho(async()=>{try{return await e(r)}catch(p){let l=p;switch(l.code){case Xs.code:throw new Xs(l);case Qs.code:throw new Qs(l);case ea.code:throw new ea(l,{method:r.method});case ta.code:throw new ta(l);case gn.code:throw new gn(l);case Br.code:throw new Br(l);case ra.code:throw new ra(l);case na.code:throw new na(l);case oa.code:throw new oa(l);case Wn.code:throw new Wn(l,{method:r.method});case Bo.code:throw new Bo(l);case sa.code:throw new sa(l);case Lo.code:throw new Lo(l);case aa.code:throw new aa(l);case ia.code:throw new ia(l);case ca.code:throw new ca(l);case ma.code:throw new ma(l);case ua.code:throw new ua(l);case Jn.code:throw new Jn(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 Zn.code:throw new Zn(l);case 5e3:throw new Lo(l);default:throw p instanceof w?p:new $u(l)}}},{delay:({count:p,error:l})=>{if(l&&l instanceof or){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})=>mk(p)}),{enabled:o,id:u})}}function mk(e){return"code"in e&&typeof e.code=="number"?e.code===-1||e.code===Bo.code||e.code===gn.code:e instanceof or&&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();L();No();function bx(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)}})()})}ct();function uk(){return{current:0,take(){return this.current++},reset(){this.current=0}}}var Bd=uk();function xx(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 bx(async({signal:g})=>{let h={...c,body:Array.isArray(n)?X(n.map(v=>({jsonrpc:"2.0",id:v.id??Bd.take(),...v}))):X({jsonrpc:"2.0",id:n.id??Bd.take(),...n}),headers:{"Content-Type":"application/json",...m},method:u||"POST",signal:p||(i>0?g:null)},y=new Request(e,h),x=await s?.(y,h)??{...h,url:e};return await o(x.url??e,x)},{errorInstance:new ji({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 or({body:n,details:X(d.error)||l.statusText,headers:l.headers,status:l.status,url:e});return d}catch(l){throw l instanceof or||l instanceof ji?l:new or({body:n,cause:l,url:e})}}}}Qt();var vx=`Ethereum Signed Message:
55
- `;ht();Wt();L();function wx(e){let t=typeof e=="string"?dr(e):typeof e.raw=="string"?e.raw:re(e.raw),r=dr(`${vx}${te(t)}`);return ze([r,t])}function Ua(e,t){return fe(wx(e),t)}fn();ht();L();Qt();Re();br();ct();K();var Pp=class extends w{constructor({domain:t}){super(`Invalid domain "${X(t)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}},Ap=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`."]})}},Tp=class extends w{constructor({type:t}){super(`Struct type "${t}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}};Ut();Wt();L();Xf();ct();function Cx(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 X({domain:a,message:i,primaryType:n,types:o})}function $p(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(Su);if(l&&(typeof p=="number"||typeof p=="bigint")){let[h,y,x]=l;E(p,{signed:y==="int",size:Number.parseInt(x,10)/8})}if(u==="address"&&typeof p=="string"&&!ne(p))throw new le({address:p});let d=u.match(Dy);if(d){let[h,y]=d;if(y&&te(p)!==Number.parseInt(y,10))throw new Zm({expectedSize:Number.parseInt(y,10),givenSize:te(p)})}let g=o[u];g&&(pk(u),s(g,p))}};if(o.EIP712Domain&&t){if(typeof t!="object")throw new Pp({domain:t});s(o.EIP712Domain,t)}if(n!=="EIP712Domain")if(o[n])s(o[n],r);else throw new Ap({primaryType:n,types:o})}function Rp({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 pk(e){if(e==="address"||e==="bool"||e==="string"||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new Tp({type:e})}function Mp(e){let{domain:t={},message:r,primaryType:n}=e,o={EIP712Domain:Rp({domain:t}),...e.types};$p({domain:t,message:r,primaryType:n,types:o});let s=["0x1901"];return t&&s.push(lk({domain:t,types:o})),n!=="EIP712Domain"&&s.push(Sx({data:r,primaryType:n,types:o})),fe(ze(s))}function lk({domain:e,types:t}){return Sx({data:e,primaryType:"EIP712Domain",types:t})}function Sx({data:e,primaryType:t,types:r}){let n=Ex({data:e,primaryType:t,types:r});return fe(n)}function Ex({data:e,primaryType:t,types:r}){let n=[{type:"bytes32"}],o=[fk({primaryType:t,types:r})];for(let s of r[t]){let[a,i]=_x({types:r,name:s.name,type:s.type,value:e[s.name]});n.push(a),o.push(i)}return yt(n,o)}function fk({primaryType:e,types:t}){let r=de(dk({primaryType:e,types:t}));return fe(r)}function dk({primaryType:e,types:t}){let r="",n=kx({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 kx({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])kx({primaryType:s.type,types:t},r);return r}function _x({types:e,name:t,type:r,value:n}){if(e[r]!==void 0)return[{type:"bytes32"},fe(Ex({data:n,primaryType:r,types:e}))];if(r==="bytes")return n=`0x${(n.length%2?"0":"")+n.slice(2)}`,[{type:"bytes32"},fe(n)];if(r==="string")return[{type:"bytes32"},fe(de(n))];if(r.lastIndexOf("]")===r.length-1){let o=r.slice(0,r.lastIndexOf("[")),s=n.map(a=>_x({name:t,type:o,types:e,value:a}));return[{type:"bytes32"},fe(yt(s.map(([a])=>a),s.map(([,a])=>a)))]}return[{type:r},n]}var ic={};wf(ic,{InvalidWrappedSignatureError:()=>Wp,assert:()=>Jp,from:()=>Zk,magicBytes:()=>c0,suffixParameters:()=>m0,unwrap:()=>Kx,validate:()=>Xk,wrap:()=>Yk});Di();ro();var Fp=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 gk={checksum:new Fp(8192)},Np=gk.checksum;Tt();Of();ro();tt();function Vo(e,t={}){let{as:r=typeof e=="string"?"Hex":"Bytes"}=t,n=Mm(bb(e));return r==="Bytes"?n:Ue(n)}ro();Tt();tt();Ki();function Ix(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 Bp({prefix:n,cause:new Od});return}if(r===!0||typeof o=="bigint"&&typeof s>"u"){if(n!==3&&n!==2)throw new Bp({prefix:n,cause:new Ud});return}throw new Dd({publicKey:e})}function Px(e){let t=(()=>{if(Ji(e))return Ax(e);if(Eb(e))return yk(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 Ix(t),t}function yk(e){return Ax(Ue(e))}function Ax(e){if(e.length!==132&&e.length!==130&&e.length!==68)throw new zd({publicKey:e});if(e.length===130){let n=BigInt(Ie(e,0,32)),o=BigInt(Ie(e,32,64));return{prefix:4,x:n,y:o}}if(e.length===132){let n=Number(Ie(e,0,1)),o=BigInt(Ie(e,1,33)),s=BigInt(Ie(e,33,65));return{prefix:n,x:o,y:s}}let t=Number(Ie(e,0,1)),r=BigInt(Ie(e,1,33));return{prefix:t,x:r}}function jd(e,t={}){Ix(e);let{prefix:r,x:n,y:o}=e,{includePrefix:s=!0}=t;return Ae(s?oe(r,{size:1}):"0x",oe(n,{size:32}),typeof o=="bigint"?oe(o,{size:32}):"0x")}var Dd=class extends B{constructor({publicKey:t}){super(`Value \`${no(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"})}},Bp=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"})}},Ud=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"})}},Od=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 ${_e(Aa(t))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"})}};var bk=/^0x[a-fA-F0-9]{40}$/;function Go(e,t={}){let{strict:r=!0}=t;if(!bk.test(e))throw new Lp({address:e,cause:new Hd});if(r){if(e.toLowerCase()===e)return;if(Dp(e)!==e)throw new Lp({address:e,cause:new Vd})}}function Dp(e){if(Np.has(e))return Np.get(e);Go(e,{strict:!1});let t=e.substring(2).toLowerCase(),r=Vo(xb(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 Np.set(e,o),o}function xk(e,t={}){let{checksum:r=!1}=t;return Go(e),r?Dp(e):e}function $x(e,t={}){let r=Vo(`0x${jd(e).slice(4)}`).substring(26);return xk(`0x${r}`,t)}function Up(e,t={}){let{strict:r=!0}=t??{};try{return Go(e,{strict:r}),!0}catch{return!1}}var Lp=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"})}},Hd=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"})}},Vd=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"})}};ro();Tt();tt();ro();Tt();tt();var Rx=/^(.*)\[([0-9]*)\]$/,Mx=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,zp=/^(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)?$/,CW=2n**(8n-1n)-1n,SW=2n**(16n-1n)-1n,EW=2n**(24n-1n)-1n,kW=2n**(32n-1n)-1n,_W=2n**(40n-1n)-1n,IW=2n**(48n-1n)-1n,PW=2n**(56n-1n)-1n,AW=2n**(64n-1n)-1n,TW=2n**(72n-1n)-1n,$W=2n**(80n-1n)-1n,RW=2n**(88n-1n)-1n,MW=2n**(96n-1n)-1n,FW=2n**(104n-1n)-1n,NW=2n**(112n-1n)-1n,BW=2n**(120n-1n)-1n,LW=2n**(128n-1n)-1n,DW=2n**(136n-1n)-1n,UW=2n**(144n-1n)-1n,OW=2n**(152n-1n)-1n,zW=2n**(160n-1n)-1n,jW=2n**(168n-1n)-1n,HW=2n**(176n-1n)-1n,VW=2n**(184n-1n)-1n,GW=2n**(192n-1n)-1n,qW=2n**(200n-1n)-1n,KW=2n**(208n-1n)-1n,WW=2n**(216n-1n)-1n,JW=2n**(224n-1n)-1n,ZW=2n**(232n-1n)-1n,YW=2n**(240n-1n)-1n,XW=2n**(248n-1n)-1n,QW=2n**(256n-1n)-1n,eJ=-(2n**(8n-1n)),tJ=-(2n**(16n-1n)),rJ=-(2n**(24n-1n)),nJ=-(2n**(32n-1n)),oJ=-(2n**(40n-1n)),sJ=-(2n**(48n-1n)),aJ=-(2n**(56n-1n)),iJ=-(2n**(64n-1n)),cJ=-(2n**(72n-1n)),mJ=-(2n**(80n-1n)),uJ=-(2n**(88n-1n)),pJ=-(2n**(96n-1n)),lJ=-(2n**(104n-1n)),fJ=-(2n**(112n-1n)),dJ=-(2n**(120n-1n)),gJ=-(2n**(128n-1n)),hJ=-(2n**(136n-1n)),yJ=-(2n**(144n-1n)),bJ=-(2n**(152n-1n)),xJ=-(2n**(160n-1n)),vJ=-(2n**(168n-1n)),wJ=-(2n**(176n-1n)),CJ=-(2n**(184n-1n)),SJ=-(2n**(192n-1n)),EJ=-(2n**(200n-1n)),kJ=-(2n**(208n-1n)),_J=-(2n**(216n-1n)),IJ=-(2n**(224n-1n)),PJ=-(2n**(232n-1n)),AJ=-(2n**(240n-1n)),TJ=-(2n**(248n-1n)),$J=-(2n**(256n-1n)),RJ=2n**8n-1n,MJ=2n**16n-1n,FJ=2n**24n-1n,NJ=2n**32n-1n,BJ=2n**40n-1n,LJ=2n**48n-1n,DJ=2n**56n-1n,UJ=2n**64n-1n,OJ=2n**72n-1n,zJ=2n**80n-1n,jJ=2n**88n-1n,HJ=2n**96n-1n,VJ=2n**104n-1n,GJ=2n**112n-1n,qJ=2n**120n-1n,KJ=2n**128n-1n,WJ=2n**136n-1n,JJ=2n**144n-1n,ZJ=2n**152n-1n,YJ=2n**160n-1n,XJ=2n**168n-1n,QJ=2n**176n-1n,eZ=2n**184n-1n,tZ=2n**192n-1n,rZ=2n**200n-1n,nZ=2n**208n-1n,oZ=2n**216n-1n,sZ=2n**224n-1n,aZ=2n**232n-1n,iZ=2n**240n-1n,cZ=2n**248n-1n,Gd=2n**256n-1n;function qo(e,t,r){let{checksumAddress:n,staticPosition:o}=r,s=Wd(t.type);if(s){let[a,i]=s;return wk(e,{...t,type:i},{checksumAddress:n,length:a,staticPosition:o})}if(t.type==="tuple")return kk(e,t,{checksumAddress:n,staticPosition:o});if(t.type==="address")return vk(e,{checksum:n});if(t.type==="bool")return Ck(e);if(t.type.startsWith("bytes"))return Sk(e,t,{staticPosition:o});if(t.type.startsWith("uint")||t.type.startsWith("int"))return Ek(e,t);if(t.type==="string")return _k(e,{staticPosition:o});throw new Oa(t.type)}var Nx=32,qd=32;function vk(e,t={}){let{checksum:r=!1}=t,n=e.readBytes(32);return[(s=>r?Dp(s):s)(Ue(vb(n,-20))),32]}function wk(e,t,r){let{checksumAddress:n,length:o,staticPosition:s}=r;if(!o){let c=Or(e.readBytes(qd)),m=s+c,u=m+Nx;e.setPosition(m);let p=Or(e.readBytes(Nx)),l=tc(t),d=0,g=[];for(let h=0;h<p;++h){e.setPosition(u+(l?h*32:d));let[y,x]=qo(e,t,{checksumAddress:n,staticPosition:u});d+=x,g.push(y)}return e.setPosition(s+32),[g,32]}if(tc(t)){let c=Or(e.readBytes(qd)),m=s+c,u=[];for(let p=0;p<o;++p){e.setPosition(m+p*32);let[l]=qo(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]=qo(e,t,{checksumAddress:n,staticPosition:s+a});a+=u,i.push(m)}return[i,a]}function Ck(e){return[Cb(e.readBytes(32),{size:32}),32]}function Sk(e,t,{staticPosition:r}){let[n,o]=t.type.split("bytes");if(!o){let a=Or(e.readBytes(32));e.setPosition(r+a);let i=Or(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 Ek(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?wb(o,{signed:r}):Or(o,{signed:r}),32]}function kk(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(tc(t)){let c=Or(e.readBytes(qd)),m=o+c;for(let u=0;u<t.components.length;++u){let p=t.components[u];e.setPosition(m+i);let[l,d]=qo(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]=qo(e,m,{checksumAddress:n,staticPosition:o});a[s?c:m?.name]=u,i+=p}return[a,i]}function _k(e,{staticPosition:t}){let r=Or(e.readBytes(32)),n=t+r;e.setPosition(n);let o=Or(e.readBytes(32));if(o===0)return e.setPosition(t+32),["",32];let s=e.readBytes(o,32),a=Sb(dd(s));return e.setPosition(t+32),[a,32]}function Bx({checksumAddress:e,parameters:t,values:r}){let n=[];for(let o=0;o<t.length;o++)n.push(Kd({checksumAddress:e,parameter:t[o],value:r[o]}));return n}function Kd({checksumAddress:e=!1,parameter:t,value:r}){let n=t,o=Wd(n.type);if(o){let[s,a]=o;return Pk(r,{checksumAddress:e,length:s,parameter:{...n,type:a}})}if(n.type==="tuple")return Mk(r,{checksumAddress:e,parameter:n});if(n.type==="address")return Ik(r,{checksum:e});if(n.type==="bool")return Tk(r);if(n.type.startsWith("uint")||n.type.startsWith("int")){let s=n.type.startsWith("int"),[,,a="256"]=zp.exec(n.type)??[];return $k(r,{signed:s,size:Number(a)})}if(n.type.startsWith("bytes"))return Ak(r,{type:n.type});if(n.type==="string")return Rk(r);throw new Oa(n.type)}function jp(e){let t=0;for(let s=0;s<e.length;s++){let{dynamic:a,encoded:i}=e[s];a?t+=32:t+=_e(i)}let r=[],n=[],o=0;for(let s=0;s<e.length;s++){let{dynamic:a,encoded:i}=e[s];a?(r.push(oe(t+o,{size:32})),n.push(i),o+=_e(i)):r.push(i)}return Ae(...r,...n)}function Ik(e,t){let{checksum:r=!1}=t;return Go(e,{strict:r}),{dynamic:!1,encoded:bn(e.toLowerCase())}}function Pk(e,t){let{checksumAddress:r,length:n,parameter:o}=t,s=n===null;if(!Array.isArray(e))throw new Vp(e);if(!s&&e.length!==n)throw new Hp({expectedLength:n,givenLength:e.length,type:`${o.type}[${n}]`});let a=!1,i=[];for(let c=0;c<e.length;c++){let m=Kd({checksumAddress:r,parameter:o,value:e[c]});m.dynamic&&(a=!0),i.push(m)}if(s||a){let c=jp(i);if(s){let m=oe(i.length,{size:32});return{dynamic:!0,encoded:i.length>0?Ae(m,c):m}}if(a)return{dynamic:!0,encoded:c}}return{dynamic:!1,encoded:Ae(...i.map(({encoded:c})=>c))}}function Ak(e,{type:t}){let[,r]=t.split("bytes"),n=_e(e);if(!r){let o=e;return n%32!==0&&(o=zr(o,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:Ae(bn(oe(n,{size:32})),o)}}if(n!==Number.parseInt(r,10))throw new rc({expectedSize:Number.parseInt(r,10),value:e});return{dynamic:!1,encoded:zr(e)}}function Tk(e){if(typeof e!="boolean")throw new B(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:bn(Qu(e))}}function $k(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 Wi({max:n.toString(),min:o.toString(),signed:t,size:r/8,value:e.toString()})}return{dynamic:!1,encoded:oe(e,{size:32,signed:t})}}function Rk(e){let t=Ta(e),r=Math.ceil(_e(t)/32),n=[];for(let o=0;o<r;o++)n.push(zr(Ie(t,o*32,(o+1)*32)));return{dynamic:!0,encoded:Ae(zr(oe(_e(t),{size:32})),...n)}}function Mk(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=Kd({checksumAddress:r,parameter:i,value:e[c]});s.push(m),m.dynamic&&(o=!0)}return{dynamic:o,encoded:o?jp(s):Ae(...s.map(({encoded:a})=>a))}}function Wd(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}function tc(e){let{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return e.components?.some(tc);let r=Wd(e.type);return!!(r&&tc({...e,type:r[1]}))}Tt();var Nk={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 Zd({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new Jd({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Gp({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 Gp({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 qp(e,{recursiveReadLimit:t=8192}={}){let r=Object.create(Nk);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}var Gp=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"})}},Jd=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"})}},Zd=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 za(e,t,r={}){let{as:n="Array",checksumAddress:o=!1}=r,s=typeof t=="string"?Pa(t):t,a=qp(s);if(ar(s)===0&&e.length>0)throw new Qd;if(ar(s)&&ar(s)<32)throw new Xd({data:typeof t=="string"?t:Ue(t),parameters:e,size:ar(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]=qo(a,u,{checksumAddress:o,staticPosition:0});i+=l,n==="Array"?c.push(p):c[u.name??m]=p}return c}function mo(e,t,r){let{checksumAddress:n=!1}=r??{};if(e.length!==t.length)throw new Kp({expectedLength:e.length,givenLength:t.length});let o=Bx({checksumAddress:n,parameters:e,values:t}),s=jp(o);return s.length===0?"0x":s}function Yd(e,t){if(e.length!==t.length)throw new Kp({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(Yd.encode(o,s))}return Ae(...r)}(function(e){function t(r,n,o=!1){if(r==="address"){let c=n;return Go(c),bn(c.toLowerCase(),o?32:0)}if(r==="string")return Ta(n);if(r==="bytes")return n;if(r==="bool")return bn(Qu(n),o?32:1);let s=r.match(zp);if(s){let[c,m,u="256"]=s,p=Number.parseInt(u,10)/8;return oe(n,{size:o?32:p,signed:m==="int"})}let a=r.match(Mx);if(a){let[c,m]=a;if(Number.parseInt(m,10)!==(n.length-2)/2)throw new rc({expectedSize:Number.parseInt(m,10),value:n});return zr(n,o?32:0)}let i=r.match(Rx);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":Ae(...u)}throw new Oa(r)}e.encode=t})(Yd||(Yd={}));function oc(e){return Array.isArray(e)&&typeof e[0]=="string"?wu(e):typeof e=="string"?wu(e):e}var Xd=class extends B{constructor({data:t,parameters:r,size:n}){super(`Data size of ${n} bytes is too small for given parameters.`,{metaMessages:[`Params: (${ln(r)})`,`Data: ${t} (${n} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}},Qd=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"})}},Hp=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"})}},rc=class extends B{constructor({expectedSize:t,value:r}){super(`Size of bytes "${r}" (bytes${_e(r)}) does not match expected size (bytes${t}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}},Kp=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"})}},Vp=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"})}},Oa=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"})}};tt();ro();Tt();tt();function Bk(e,t){let{as:r}=t,n=Ux(e),o=qp(new Uint8Array(n.length));return n.encode(o),r==="Hex"?Ue(o.bytes):o.bytes}function Dx(e,t={}){let{as:r="Hex"}=t;return Bk(e,{as:r})}function Ux(e){return Array.isArray(e)?Lk(e.map(t=>Ux(t))):Dk(e)}function Lk(e){let t=e.reduce((o,s)=>o+s.length,0),r=Ox(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 Dk(e){let t=typeof e=="string"?Pa(e):e,r=Ox(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 Ox(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 lZ}from"@noble/curves/secp256k1";Tt();tt();Ki();function o0(e,t={}){let{recovered:r}=t;if(typeof e.r>"u")throw new sc({signature:e});if(typeof e.s>"u")throw new sc({signature:e});if(r&&typeof e.yParity>"u")throw new sc({signature:e});if(e.r<0n||e.r>Gd)throw new t0({value:e.r});if(e.s<0n||e.s>Gd)throw new r0({value:e.s});if(typeof e.yParity=="number"&&e.yParity!==0&&e.yParity!==1)throw new ac({value:e.yParity})}function Ok(e){return zx(Ue(e))}function zx(e){if(e.length!==130&&e.length!==132)throw new e0({signature:e});let t=BigInt(Ie(e,0,32)),r=BigInt(Ie(e,32,64)),n=(()=>{let o=+`0x${e.slice(130)}`;if(!Number.isNaN(o))try{return i0(o)}catch{throw new ac({value:o})}})();return typeof n>"u"?{r:t,s:r}:{r:t,s:r,yParity:n}}function s0(e){if(!(typeof e.r>"u")&&!(typeof e.s>"u"))return a0(e)}function a0(e){let t=typeof e=="string"?zx(e):e instanceof Uint8Array?Ok(e):typeof e.r=="string"?jk(e):e.v?zk(e):{r:e.r,s:e.s,...typeof e.yParity<"u"?{yParity:e.yParity}:{}};return o0(t),t}function zk(e){return{r:e.r,s:e.s,yParity:i0(e.v)}}function jk(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=i0(r)),typeof n!="number")throw new ac({value:e.yParity});return n})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:t}}function jx(e){let{r:t,s:r,yParity:n}=e;return[n?"0x01":"0x",t===0n?"0x":hd(oe(t)),r===0n?"0x":hd(oe(r))]}function i0(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 n0({value:e})}var e0=class extends B{constructor({signature:t}){super(`Value \`${t}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${_e(Aa(t))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}},sc=class extends B{constructor({signature:t}){super(`Signature \`${no(t)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}},t0=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"})}},r0=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"})}},ac=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"})}},n0=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 Vx(e,t={}){return typeof e.chainId=="string"?Hk(e):{...e,...t.signature}}function Hk(e){let{address:t,chainId:r,nonce:n}=e,o=s0(e);return{address:t,chainId:Number(r),nonce:BigInt(n),...o}}function Gx(e){return Vk(e,{presign:!0})}function Vk(e,t={}){let{presign:r}=t;return Vo(Ae("0x05",Dx(Gk(r?{address:e.address,chainId:e.chainId,nonce:e.nonce}:e))))}function Gk(e){let{address:t,chainId:r,nonce:n}=e,o=s0(e);return[r?oe(r):"0x",t,n?oe(n):"0x",...o?jx(o):[]]}Tt();tt();import{secp256k1 as Kk}from"@noble/curves/secp256k1";tt();function qx(e){return $x(Wk(e))}function Wk(e){let{payload:t,signature:r}=e,{r:n,s:o,yParity:s}=r,i=new Kk.Signature(BigInt(n),BigInt(o)).addRecoveryBit(s).recoverPublicKey(Aa(t).substring(2));return Px(i)}var c0="0x8010801080108010801080108010801080108010801080108010801080108010",m0=oc("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function Jp(e){if(typeof e=="string"){if(Ie(e,-32)!==c0)throw new Wp(e)}else o0(e.authorization)}function Zk(e){return typeof e=="string"?Kx(e):e}function Kx(e){Jp(e);let t=Zu(Ie(e,-64,-32)),r=Ie(e,-t-64,-64),n=Ie(e,0,-t-64),[o,s,a]=za(m0,r);return{authorization:Vx({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 Yk(e){let{data:t,signature:r}=e;Jp(e);let n=qx({payload:Gx(e.authorization),signature:a0(e.authorization)}),o=mo(m0,[{...e.authorization,delegation:e.authorization.address,chainId:BigInt(e.authorization.chainId)},e.to??n,t??"0x"]),s=oe(_e(o),{size:32});return Ae(r,o,s,c0)}function Xk(e){try{return Jp(e),!0}catch{return!1}}var Wp=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"})}};um();K();var Zp=class extends w{constructor({value:t}){super(`Number \`${t}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}};function Wx(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new Zp({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 Ko(e,t="wei"){return Wx(e,mm[t])}function Qk(e){return e.map(t=>({...t,value:BigInt(t.value)}))}function Jx(e){return{...e,balance:e.balance?BigInt(e.balance):void 0,nonce:e.nonce?Pe(e.nonce):void 0,storageProof:e.storageProof?Qk(e.storageProof):void 0}}async function Zx(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 Jx(i)}L();async function Yx(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]})}Dt();L();async function ja(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 xs({blockHash:t,blockNumber:r,blockTag:a,hash:o,index:s});return(e.chain?.formatters?.transaction?.format||_o)(c,"getTransaction")}async function Xx(e,{hash:t,transactionReceipt:r}){let[n,o]=await Promise.all([T(e,Hr,"getBlockNumber")({}),t?T(e,ja,"getTransaction")({hash:t}):void 0]),s=r?.blockNumber||o?.blockNumber;return s?n-s+1n:0n}Dt();async function Ha(e,{hash:t}){let r=await e.request({method:"eth_getTransactionReceipt",params:[t]},{dedupe:!0});if(!r)throw new vs({hash:t});return(e.chain?.formatters?.transactionReceipt?.format||Si)(r,"getTransactionReceipt")}oo();Zi();Re();K();qn();to();zt();$o();async function Qx(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 tr({blockNumber:s,chain:e.chain,contract:"multicall3"});throw new Error("client chain not configured. multicallAddress is required.")})(),d=[[]],g=0,h=0;for(let b=0;b<m.length;b++){let{abi:v,address:S,args:k,functionName:P}=m[b];try{let _=Se({abi:v,args:k,functionName:P});h+=(_.length-2)/2,u>0&&h>u&&d[g].length>0&&(g++,h=(_.length-2)/2,d[g]=[]),d[g]=[...d[g],{allowFailure:!0,callData:_,target:S}]}catch(_){let R=jt(_,{abi:v,address:S,args:k,docsPath:"/docs/contract/multicall",functionName:P,sender:r});if(!o)throw R;d[g]=[...d[g],{allowFailure:!0,callData:"0x",target:S}]}}let y=await Promise.allSettled(d.map(b=>T(e,je,"readContract")({...l===null?{code:$a}:{address:l},abi:Oo,account:r,args:[b],authorizationList:n,blockNumber:s,blockOverrides:a,blockTag:i,functionName:"aggregate3",stateOverride:c}))),x=[];for(let b=0;b<y.length;b++){let v=y[b];if(v.status==="rejected"){if(!o)throw v.reason;for(let k=0;k<d[b].length;k++)x.push({status:"failure",error:v.reason,result:void 0});continue}let S=v.value;for(let k=0;k<S.length;k++){let{returnData:P,success:_}=S[k],{callData:R}=d[b][k],{abi:F,address:N,functionName:z,args:O}=m[x.length];try{if(R==="0x")throw new nr;if(!_)throw new Nr({data:P});let q=At({abi:F,args:O,data:P,functionName:z});x.push(o?{result:q,status:"success"}:q)}catch(q){let ue=jt(q,{abi:F,address:N,args:O,docsPath:"/docs/contract/multicall",functionName:z});if(!o)throw ue;x.push({error:ue,result:void 0,status:"failure"})}}}if(x.length!==m.length)throw new w("multicall results mismatch");return x}yd();$e();Re();qn();On();to();zt();ht();L();Hi();Ln();Ou();hn();async function cc(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?ep(l.blockOverrides):void 0,g=l.calls.map(y=>{let x=y,b=x.account?W(x.account):void 0,v=x.abi?Se(x):x.data,S={...x,account:b,data:x.dataSuffix?ze([v||"0x",x.dataSuffix]):v,from:x.from??b?.address};return ut(S),kt(S)}),h=l.stateOverrides?ba(l.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((l,d)=>({...Ci(l),calls:l.calls.map((g,h)=>{let{abi:y,args:x,functionName:b,to:v}=o[d].calls[h],S=g.error?.data??g.returnData,k=BigInt(g.gasUsed),P=g.logs?.map(N=>it(N)),_=g.status==="0x1"?"success":"failure",R=y&&_==="success"&&S!=="0x"?At({abi:y,data:S,functionName:b}):null,F=(()=>{if(_==="success")return;let N;if(g.error?.data==="0x"?N=new nr:g.error&&(N=new Nr(g.error)),!!N)return jt(N,{abi:y??[],address:v??"0x",args:x,functionName:b??"<unknown>"})})();return{data:S,gasUsed:k,logs:P,status:_,..._==="success"?{result:R}:{error:F}}})}))}catch(c){let m=c,u=Yn(m,{});throw u instanceof Yt?m:u}}Di();Tt();tt();Tt();function Xp(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 Yp(e,t){let r=typeof e,n=t.type;switch(n){case"address":return Up(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)=>Yp(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=>Yp(o,{...t,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function u0(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 u0(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")?Up(r[n],{strict:!1}):a.includes("address")&&a.includes("bytes")?Up(r[n],{strict:!1}):!1)return a}}function Qp(e,t={}){let{prepare:r=!0}=t,n=Array.isArray(e)?vu(e):typeof e=="string"?vu(e):e;return{...n,...r?{hash:Va(n)}:{}}}function mc(e,t,r){let{args:n=[],prepare:o=!0}=r??{},s=Ji(t,{strict:!1}),a=e.filter(m=>s?m.type==="function"||m.type==="error"?l0(m)===Ie(t,0,4):m.type==="event"?Va(m)===t:!1:"name"in m&&m.name===t);if(a.length===0)throw new uo({name:t});if(a.length===1)return{...a[0],...o?{hash:Va(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:Va(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?Yp(p,d):!1})){if(i&&"inputs"in i&&i.inputs){let p=u0(m.inputs,i.inputs,n);if(p)throw new p0({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 uo({name:t});return{...c,...o?{hash:Va(c)}:{}}}function l0(...e){let t=(()=>{if(Array.isArray(e[0])){let[r,n]=e;return mc(r,n)}return e[0]})();return Ie(Va(t),0,4)}function t_(...e){let t=(()=>{if(Array.isArray(e[0])){let[n,o]=e;return mc(n,o)}return e[0]})(),r=typeof t=="string"?t:Ro(t);return Xp(r)}function Va(...e){let t=(()=>{if(Array.isArray(e[0])){let[r,n]=e;return mc(r,n)}return e[0]})();return typeof t!="string"&&"hash"in t&&t.hash?t.hash:Vo(Ta(t_(t)))}var p0=class extends B{constructor(t,r){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${t.type}\` in \`${Xp(Ro(t.abiItem))}\`, and`,`\`${r.type}\` in \`${Xp(Ro(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"})}},uo=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"})}};tt();function t1(...e){let[t,r]=(()=>{if(Array.isArray(e[0])){let[s,a]=e;return[r_(s),a]}return e})(),{bytecode:n,args:o}=r;return Ae(n,t.inputs?.length&&o?.length?mo(t.inputs,o):"0x")}function r1(e){return Qp(e)}function r_(e){let t=e.find(r=>r.type==="constructor");if(!t)throw new uo({name:"constructor"});return t}tt();function o1(...e){let[t,r=[]]=(()=>{if(Array.isArray(e[0])){let[m,u,p]=e;return[n1(m,u,{args:p}),p]}let[i,c]=e;return[i,c]})(),{overloads:n}=t,o=n?n1([t,...n],t.name,{args:r}):t,s=o_(o),a=r.length>0?mo(o.inputs,r):void 0;return a?Ae(s,a):s}function Wo(e,t={}){return Qp(e,t)}function n1(e,t,r){let n=mc(e,t,r);if(n.type!=="function")throw new uo({name:t,type:"function"});return n}function o_(e){return l0(e)}$e();var s1="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Sr="0x0000000000000000000000000000000000000000";Zi();K();zt();var a_="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function a1(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?t1(r1("constructor(bytes, bytes)"),{bytecode:np,args:[a_,o1(Wo("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:Le}=await Sp(e,{account:m.address,...H,data:H.abi?Se(H):H.data});return Le.map(({address:Ar,storageKeys:Mn})=>Mn.length>0?Ar:null)})).then(H=>H.flat().filter(Boolean)):[],l=await cc(e,{blockNumber:r,blockTag:n,blocks:[...a?[{calls:[{data:u}],stateOverrides:s},{calls:p.map((H,Le)=>({abi:[Wo("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[m.address],to:H,from:Sr,nonce:Le})),stateOverrides:[{address:Sr,nonce:0}]}]:[],{calls:[...o,{}].map(H=>({...H,from:m?.address})),stateOverrides:s},...a?[{calls:[{data:u}]},{calls:p.map((H,Le)=>({abi:[Wo("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[m.address],to:H,from:Sr,nonce:Le})),stateOverrides:[{address:Sr,nonce:0}]},{calls:p.map((H,Le)=>({to:H,abi:[Wo("function decimals() returns (uint256)")],functionName:"decimals",from:Sr,nonce:Le})),stateOverrides:[{address:Sr,nonce:0}]},{calls:p.map((H,Le)=>({to:H,abi:[Wo("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Sr,nonce:Le})),stateOverrides:[{address:Sr,nonce:0}]},{calls:p.map((H,Le)=>({to:H,abi:[Wo("function symbol() returns (string)")],functionName:"symbol",from:Sr,nonce:Le})),stateOverrides:[{address:Sr,nonce:0}]}]:[]],traceTransfers:i,validation:c}),d=a?l[2]:l[0],[g,h,,y,x,b,v,S]=a?l:[],{calls:k,...P}=d,_=k.slice(0,-1)??[],R=g?.calls??[],F=h?.calls??[],N=[...R,...F].map(H=>H.status==="success"?ge(H.data):null),z=y?.calls??[],O=x?.calls??[],q=[...z,...O].map(H=>H.status==="success"?ge(H.data):null),ue=(b?.calls??[]).map(H=>H.status==="success"?H.result:null),we=(S?.calls??[]).map(H=>H.status==="success"?H.result:null),J=(v?.calls??[]).map(H=>H.status==="success"?H.result:null),Ve=[];for(let[H,Le]of q.entries()){let Ar=N[H];if(typeof Le!="bigint"||typeof Ar!="bigint")continue;let Mn=ue[H-1],xe=we[H-1],Fn=J[H-1],lr=H===0?{address:s1,decimals:18,symbol:"ETH"}:{address:p[H-1],decimals:Fn||Mn?Number(Mn??1):void 0,symbol:xe??void 0};Ve.some(xf=>xf.token.address===lr.address)||Ve.push({token:lr,value:{pre:Ar,post:Le,diff:Le-Ar}})}return{assetChanges:Ve,block:P,results:_}}var uc={};wf(uc,{InvalidWrappedSignatureError:()=>el,assert:()=>d0,from:()=>m_,magicBytes:()=>f0,universalSignatureValidatorAbi:()=>c_,universalSignatureValidatorBytecode:()=>i_,unwrap:()=>i1,validate:()=>p_,wrap:()=>u_});Tt();tt();var f0="0x6492649264926492649264926492649264926492649264926492649264926492",i_="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",c_=[{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 d0(e){if(Ie(e,-32)!==f0)throw new el(e)}function m_(e){return typeof e=="string"?i1(e):e}function i1(e){d0(e);let[t,r,n]=za(oc("address, bytes, bytes"),e);return{data:r,signature:n,to:t}}function u_(e){let{data:t,signature:r,to:n}=e;return Ae(mo(oc("address, bytes, bytes"),[n,t,r]),f0)}function p_(e){try{return d0(e),!0}catch{return!1}}var el=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"})}};oo();Zi();qn();op();zt();zn();Do();ht();Lt();Ge();L();Ge();Xe();import{secp256k1 as l_}from"@noble/curves/secp256k1";function tl({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 l_.Signature(ge(e),ge(t)).toCompactHex()}${s===0?"1b":"1c"}`;return r==="hex"?a:qe(a)}Ma();async function po(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 be(i)?i:typeof i=="object"&&"r"in i&&"s"in i?tl(i):re(i)})();try{return ic.validate(a)?await f_(e,{...t,multicallAddress:s,signature:a}):await d_(e,{...t,verifierAddress:o,signature:a})}catch(i){try{if(sr(Ls(r),await Lu({hash:n,signature:a})))return!0}catch{}if(i instanceof vn)return!1;throw i}}async function f_(e,t){let{address:r,blockNumber:n,blockTag:o,hash:s,multicallAddress:a}=t,{authorization:i,data:c,signature:m,to:u}=ic.unwrap(t.signature);if(await ec(e,{address:r,blockNumber:n,blockTag:o})===Qe(["0xef0100",i.address]))return await g_(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:E(i.r,{size:32}),s:E(i.s,{size:32}),yParity:i.yParity};if(!await gx({address:r,authorization:l}))throw new vn;let g=await T(e,je,"readContract")({...a?{address:a}:{code:$a},authorizationList:[l],abi:Oo,blockNumber:n,blockTag:"pending",functionName:"aggregate3",args:[[...c?[{allowFailure:!0,target:u??r,callData:c}]:[],{allowFailure:!0,target:r,callData:Se({abi:vd,functionName:"isValidSignature",args:[s,m]})}]]});if(g[g.length-1]?.returnData?.startsWith("0x1626ba7e"))return!0;throw new vn}async function d_(e,t){let{address:r,factory:n,factoryData:o,hash:s,signature:a,verifierAddress:i,...c}=t,m=await(async()=>!n&&!o||uc.validate(a)?a:uc.wrap({data:o,signature:a,to:n}))(),u=i?{to:i,data:Se({abi:wd,functionName:"isValidSig",args:[r,s,m]}),...c}:{data:zo({abi:wd,args:[r,s,m],bytecode:Mb}),...c},{data:p}=await T(e,jr,"call")(u).catch(l=>{throw l instanceof Zs?new vn:l});if($f(p??"0x0"))return!0;throw new vn}async function g_(e,t){let{address:r,blockNumber:n,blockTag:o,hash:s,signature:a}=t;if((await T(e,je,"readContract")({address:r,abi:vd,args:[s,a],blockNumber:n,blockTag:o,functionName:"isValidSignature"}).catch(c=>{throw c instanceof Ys?new vn:c})).startsWith("0x1626ba7e"))return!0;throw new vn}var vn=class extends Error{};async function c1(e,{address:t,message:r,factory:n,factoryData:o,signature:s,...a}){let i=Ua(r);return po(e,{address:t,factory:n,factoryData:o,hash:i,signature:s,...a})}async function m1(e,t){let{address:r,factory:n,factoryData:o,signature:s,message:a,primaryType:i,types:c,domain:m,...u}=t,p=Mp({message:a,primaryType:i,types:c,domain:m});return po(e,{address:r,factory:n,factoryData:o,hash:p,signature:s,...u})}Dt();sp();ct();Ge();ct();function rl(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=X(["watchBlockNumber",e.uid,t,r,a]);return lt(p,{onBlockNumber:n,onError:o},l=>ir(async()=>{try{let d=await T(e,Hr,"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=X(["watchBlockNumber",e.uid,t,r]);return lt(p,{onBlockNumber:n,onError:o},l=>{let d=!0,g=()=>d=!1;return(async()=>{try{let h=(()=>{if(e.transport.type==="fallback"){let x=e.transport.transports.find(b=>b.config.type==="webSocket"||b.config.type==="ipc");return x?x.value:e.transport}return e.transport})(),{unsubscribe:y}=await h.subscribe({params:["newHeads"],onData(x){if(!d)return;let b=ge(x.result?.number);l.onBlockNumber(b,c),c=b},onError(x){l.onError?.(x)}});g=y,d||g()}catch(h){o?.(h)}})(),()=>g()})})()}async function nl(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=X(["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:x,resolve:b,reject:v}=Ra(),S=c?setTimeout(()=>{y?.(),h?.(),v(new bm({hash:o}))},c):void 0;return h=lt(m,{onReplaced:s,resolve:b,reject:v},async k=>{if(d=await T(e,Ha,"getTransactionReceipt")({hash:o}).catch(()=>{}),d&&n<=1){clearTimeout(S),k.resolve(d),h?.();return}y=T(e,rl,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:u,async onBlockNumber(P){let _=F=>{clearTimeout(S),y?.(),F(),h?.()},R=P;if(!g)try{if(d){if(n>1&&(!d.blockNumber||R-d.blockNumber+1n<n))return;_(()=>k.resolve(d));return}if(r&&!p&&(g=!0,await Ho(async()=>{p=await T(e,ja,"getTransaction")({hash:o}),p.blockNumber&&(R=p.blockNumber)},{delay:i,retryCount:a}),g=!1),d=await T(e,Ha,"getTransactionReceipt")({hash:o}),n>1&&(!d.blockNumber||R-d.blockNumber+1n<n))return;_(()=>k.resolve(d))}catch(F){if(F instanceof xs||F instanceof vs){if(!p){g=!1;return}try{l=p,g=!0;let N=await Ho(()=>T(e,pt,"getBlock")({blockNumber:R,includeTransactions:!0}),{delay:i,retryCount:a,shouldRetry:({error:q})=>q instanceof xa});g=!1;let z=N.transactions.find(({from:q,nonce:ue})=>q===l.from&&ue===l.nonce);if(!z||(d=await T(e,Ha,"getTransactionReceipt")({hash:z.hash}),n>1&&(!d.blockNumber||R-d.blockNumber+1n<n)))return;let O="replaced";z.to===l.to&&z.value===l.value&&z.input===l.input?O="repriced":z.from===z.to&&z.value===0n&&(O="cancelled"),_(()=>{k.onReplaced?.({reason:O,replacedTransaction:l,transaction:z,transactionReceipt:d}),k.resolve(d)})}catch(N){_(()=>k.reject(N))}}else _(()=>k.reject(F))}}})}),x}ct();function u1(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=X(["watchBlocks",e.uid,t,r,n,u,c]);return lt(g,{onBlock:o,onError:s},h=>ir(async()=>{try{let y=await T(e,pt,"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 x=p?.number+1n;x<y.number;x++){let b=await T(e,pt,"getBlock")({blockNumber:x,includeTransactions:u});h.onBlock(b,p),p=b}}(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,pt,"getBlock")({blockTag:t,includeTransactions:u}).then(v=>{g&&h&&(o(v,void 0),h=!1)}).catch(s);let x=(()=>{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:b}=await x.subscribe({params:["newHeads"],async onData(v){if(!g)return;let S=await T(e,pt,"getBlock")({blockNumber:v.result?.number,includeTransactions:u}).catch(()=>{});g&&(o(S,p),h=!1,p=S)},onError(v){s?.(v)}});y=b,g||y()}catch(x){s?.(x)}})(),()=>y()})()}Re();ha();ct();function p1(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=X(["watchEvent",t,r,n,e.uid,o,u,a]);return lt(y,{onLogs:c,onError:i},x=>{let b;a!==void 0&&(b=a-1n);let v,S=!1,k=ir(async()=>{if(!S){try{v=await T(e,Ep,"createEventFilter")({address:t,args:r,event:o,events:s,strict:d,fromBlock:a})}catch{}S=!0;return}try{let P;if(v)P=await T(e,so,"getFilterChanges")({filter:v});else{let _=await T(e,Hr,"getBlockNumber")({});b&&b!==_?P=await T(e,Ea,"getLogs")({address:t,args:r,event:o,events:s,fromBlock:b+1n,toBlock:_}):P=[],b=_}if(P.length===0)return;if(n)x.onLogs(P);else for(let _ of P)x.onLogs([_])}catch(P){v&&P instanceof Br&&(S=!1),x.onError?.(P)}},{emitOnBegin:!0,interval:u});return async()=>{v&&await T(e,ao,"uninstallFilter")({filter:v}),k()}})})():(()=>{let y=!0,x=()=>y=!1;return(async()=>{try{let b=(()=>{if(e.transport.type==="fallback"){let P=e.transport.transports.find(_=>_.config.type==="webSocket"||_.config.type==="ipc");return P?P.value:e.transport}return e.transport})(),v=s??(o?[o]:void 0),S=[];v&&(S=[v.flatMap(_=>Dr({abi:[_],eventName:_.name,args:r}))],o&&(S=S[0]));let{unsubscribe:k}=await b.subscribe({params:["logs",{address:t,topics:S}],onData(P){if(!y)return;let _=P.result;try{let{eventName:R,args:F}=Sa({abi:v??[],data:_.data,topics:_.topics,strict:d}),N=it(_,{args:F,eventName:R});c([N])}catch(R){let F,N;if(R instanceof vr||R instanceof $r){if(p)return;F=R.abiItem.name,N=R.abiItem.inputs?.some(O=>!("name"in O&&O.name))}let z=it(_,{args:N?[]:{},eventName:F});c([z])}},onError(P){i?.(P)}});x=k,y||x()}catch(b){i?.(b)}})(),()=>x()})()}ct();function l1(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=X(["watchPendingTransactions",e.uid,t,s]);return lt(m,{onTransactions:n,onError:r},u=>{let p,l=ir(async()=>{try{if(!p)try{p=await T(e,kp,"createPendingTransactionFilter")({});return}catch(g){throw l(),g}let d=await T(e,so,"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,ao,"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 f1(e){let{scheme:t,statement:r,...n}=e.match(h_)?.groups??{},{chainId:o,expirationTime:s,issuedAt:a,notBefore:i,requestId:c,...m}=e.match(y_)?.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 h_=/^(?:(?<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)?/,y_=/(?: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>.+))?/;Ut();Do();function d1(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||!ne(n.address,{strict:!1})||t&&!sr(n.address,t))return!1}catch{return!1}return!0}async function g1(e,t){let{address:r,domain:n,message:o,nonce:s,scheme:a,signature:i,time:c=new Date,...m}=t,u=f1(o);if(!u.address||!d1({address:r,domain:n,message:u,nonce:s,scheme:a,time:c}))return!1;let l=Ua(o);return po(e,{address:u.address,hash:l,signature:i,...m})}Dt();async function Ga(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||Si)(o);if(a.status==="reverted"&&r)throw new ws({receipt:a});return a}function h1(e){return{call:t=>jr(e,t),createAccessList:t=>Sp(e,t),createBlockFilter:()=>ix(e),createContractEventFilter:t=>Nu(e,t),createEventFilter:t=>Ep(e,t),createPendingTransactionFilter:()=>kp(e),estimateContractGas:t=>nb(e,t),estimateGas:t=>Ca(e,t),getBalance:t=>cx(e,t),getBlobBaseFee:()=>mx(e),getBlock:t=>pt(e,t),getBlockNumber:t=>Hr(e,t),getBlockTransactionCount:t=>ux(e,t),getBytecode:t=>ec(e,t),getChainId:()=>Pt(e),getCode:t=>ec(e,t),getContractEvents:t=>Vu(e,t),getEip712Domain:t=>px(e,t),getEnsAddress:t=>Xb(e,t),getEnsAvatar:t=>ox(e,t),getEnsName:t=>sx(e,t),getEnsResolver:t=>ax(e,t),getEnsText:t=>Cp(e,t),getFeeHistory:t=>fx(e,t),estimateFeesPerGas:t=>tb(e,t),getFilterChanges:t=>so(e,t),getFilterLogs:t=>dx(e,t),getGasPrice:()=>va(e),getLogs:t=>Ea(e,t),getProof:t=>Zx(e,t),estimateMaxPriorityFeePerGas:t=>eb(e,t),getStorageAt:t=>Yx(e,t),getTransaction:t=>ja(e,t),getTransactionConfirmations:t=>Xx(e,t),getTransactionCount:t=>wa(e,t),getTransactionReceipt:t=>Ha(e,t),multicall:t=>Qx(e,t),prepareTransactionRequest:t=>Ur(e,t),readContract:t=>je(e,t),sendRawTransaction:t=>Na(e,t),sendRawTransactionSync:t=>Ga(e,t),simulate:t=>cc(e,t),simulateBlocks:t=>cc(e,t),simulateCalls:t=>a1(e,t),simulateContract:t=>Gb(e,t),verifyHash:t=>po(e,t),verifyMessage:t=>c1(e,t),verifySiweMessage:t=>g1(e,t),verifyTypedData:t=>m1(e,t),uninstallFilter:t=>ao(e,t),waitForTransactionReceipt:t=>nl(e,t),watchBlocks:t=>u1(e,t),watchBlockNumber:t=>rl(e,t),watchContractEvent:t=>Jb(e,t),watchEvent:t=>p1(e,t),watchPendingTransactions:t=>l1(e,t)}}function Jo(e){let{key:t="public",name:r="Public Client"}=e;return yp({...e,key:t,name:r,type:"publicClient"}).extend(h1)}L();async function y1(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})}op();function b1(e,t){let{abi:r,args:n,bytecode:o,...s}=t,a=zo({abi:r,args:n,bytecode:o});return io(e,{...s,...s.authorizationList?{to:null}:{},data:a})}zn();async function x1(e){return e.account?.type==="local"?[e.account.address]:(await e.request({method:"eth_accounts"},{dedupe:!0})).map(r=>un(r))}$e();L();async function v1(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 w1(e){return await e.request({method:"wallet_getPermissions"},{dedupe:!0})}$e();Do();async function ol(e,t){let{account:r=e.account,chainId:n,nonce:o}=t;if(!r)throw new et({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,Pt,"getChainId")({})),typeof i.nonce>"u"&&(i.nonce=await T(e,wa,"getTransactionCount")({address:s.address,blockTag:"pending"}),(a==="self"||a?.address&&sr(a.address,s.address))&&(i.nonce+=1)),i}zn();async function C1(e){return(await e.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map(r=>Ls(r))}async function S1(e,t){return e.request({method:"wallet_requestPermissions",params:[t]},{retryCount:0})}async function E1(e,t){let{chain:r=e.chain}=t,n=t.timeout??Math.max((r?.blockTime??0)*3,5e3),o=await pp(e,t);return await fp(e,{...t,id:o.id,timeout:n})}$e();K();Dt();ya();Ln();Bs();hn();var g0=new Xt(128);async function sl(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:x,...b}=t,v=t.timeout??Math.max((n?.blockTime??0)*3,5e3);if(typeof r>"u")throw new et({docsPath:"/docs/actions/wallet/sendTransactionSync"});let S=r?W(r):null;try{ut(t);let k=await(async()=>{if(t.to)return t.to;if(t.to!==null&&s&&s.length>0)return await Qn({authorization:s[0]}).catch(()=>{throw new w("`to` is required. Could not infer from `authorizationList`.")})})();if(S?.type==="json-rpc"||S===null){let P;n!==null&&(P=await T(e,Pt,"getChainId")({}),Ds({currentChainId:P,chain:n}));let _=e.chain?.formatters?.transactionRequest?.format,F=(_||kt)({...Lr(b,{format:_}),accessList:o,account:S,authorizationList:s,blobs:a,chainId:P,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:l,nonce:d,to:k,type:y,value:x},"sendTransaction"),N=g0.get(e.uid),z=N?"wallet_sendTransaction":"eth_sendTransaction",O=await(async()=>{try{return await e.request({method:z,params:[F]},{retryCount:0})}catch(ue){if(N===!1)throw ue;let we=ue;if(we.name==="InvalidInputRpcError"||we.name==="InvalidParamsRpcError"||we.name==="MethodNotFoundRpcError"||we.name==="MethodNotSupportedRpcError")return await e.request({method:"wallet_sendTransaction",params:[F]},{retryCount:0}).then(J=>(g0.set(e.uid,!0),J)).catch(J=>{let Ve=J;throw Ve.name==="MethodNotFoundRpcError"||Ve.name==="MethodNotSupportedRpcError"?(g0.set(e.uid,!1),we):Ve});throw we}})(),q=await T(e,nl,"waitForTransactionReceipt")({checkReplacement:!1,hash:O,pollingInterval:g,timeout:v});if(h&&q.status==="reverted")throw new ws({receipt:q});return q}if(S?.type==="local"){let P=await T(e,Ur,"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:[...Vi,"sidecars"],type:y,value:x,...b,to:k}),_=n?.serializers?.transaction,R=await S.signTransaction(P,{serializer:_});return await T(e,Ga,"sendRawTransactionSync")({serializedTransaction:R,throwOnReceiptRevert:h})}throw S?.type==="smart"?new rr({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new rr({docsPath:"/docs/actions/wallet/sendTransactionSync",type:S?.type})}catch(k){throw k instanceof rr?k:Fa(k,{...t,account:S,chain:t.chain||void 0})}}async function k1(e,t){let{id:r}=t;await e.request({method:"wallet_showCallsStatus",params:[r]})}$e();async function _1(e,t){let{account:r=e.account}=t;if(!r)throw new et({docsPath:"/docs/eip7702/signAuthorization"});let n=W(r);if(!n.signAuthorization)throw new rr({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:n.type});let o=await ol(e,t);return n.signAuthorization(o)}$e();L();async function I1(e,{account:t=e.account,message:r}){if(!t)throw new et({docsPath:"/docs/actions/wallet/signMessage"});let n=W(t);if(n.signMessage)return n.signMessage({message:r});let o=typeof r=="string"?dr(r):r.raw instanceof Uint8Array?de(r.raw):r.raw;return e.request({method:"personal_sign",params:[o,n.address]},{retryCount:0})}$e();L();Ln();hn();async function P1(e,t){let{account:r=e.account,chain:n=e.chain,...o}=t;if(!r)throw new et({docsPath:"/docs/actions/wallet/signTransaction"});let s=W(r);ut({account:s,...t});let a=await T(e,Pt,"getChainId")({});n!==null&&Ds({currentChainId:a,chain:n});let c=(n?.formatters||e.chain?.formatters)?.transactionRequest?.format||kt;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})}$e();async function A1(e,t){let{account:r=e.account,domain:n,message:o,primaryType:s}=t;if(!r)throw new et({docsPath:"/docs/actions/wallet/signTypedData"});let a=W(r),i={EIP712Domain:Rp({domain:n}),...t.types};if($p({domain:n,message:o,primaryType:s,types:i}),a.signTypedData)return a.signTypedData({domain:n,message:o,primaryType:s,types:i});let c=Cx({domain:n,message:o,primaryType:s,types:i});return e.request({method:"eth_signTypedData_v4",params:[a.address,c]},{retryCount:0})}L();async function T1(e,{id:t}){await e.request({method:"wallet_switchEthereumChain",params:[{chainId:E(t)}]},{retryCount:0})}async function $1(e,t){return await e.request({method:"wallet_watchAsset",params:t},{retryCount:0})}async function R1(e,t){return jo.internal(e,sl,"sendTransactionSync",t)}function M1(e){return{addChain:t=>y1(e,t),deployContract:t=>b1(e,t),getAddresses:()=>x1(e),getCallsStatus:t=>lp(e,t),getCapabilities:t=>v1(e,t),getChainId:()=>Pt(e),getPermissions:()=>w1(e),prepareAuthorization:t=>ol(e,t),prepareTransactionRequest:t=>Ur(e,t),requestAddresses:()=>C1(e),requestPermissions:t=>S1(e,t),sendCalls:t=>pp(e,t),sendCallsSync:t=>E1(e,t),sendRawTransaction:t=>Na(e,t),sendRawTransactionSync:t=>Ga(e,t),sendTransaction:t=>io(e,t),sendTransactionSync:t=>sl(e,t),showCallsStatus:t=>k1(e,t),signAuthorization:t=>_1(e,t),signMessage:t=>I1(e,t),signTransaction:t=>P1(e,t),signTypedData:t=>A1(e,t),switchChain:t=>T1(e,t),waitForCallsStatus:t=>fp(e,t),watchAsset:t=>$1(e,t),writeContract:t=>jo(e,t),writeContractSync:t=>R1(e,t)}}function pc(e){let{key:t="wallet",name:r="Wallet Client",transport:n}=e;return yp({...e,key:t,name:r,transport:n,type:"walletClient"}).extend(M1)}function F1({key:e,methods:t,name:r,request:n,retryCount:o=3,retryDelay:s=150,timeout:a,type:i},c){let m=hp();return{config:{key:e,methods:t,name:r,request:n,retryCount:o,retryDelay:s,timeout:a,type:i},request:yx(n,{methods:t,retryCount:o,retryDelay:s,uid:m}),value:c}}No();K();var al=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"})}};Ed();function wn(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:{},x=t.retryCount??d,b=g??t.timeout??1e4,v=e||l?.rpcUrls.default.http[0];if(!v)throw new al;let S=xx(v,{fetchFn:n,fetchOptions:o,onRequest:c,onResponse:m,timeout:b});return F1({key:s,methods:a,name:i,async request({method:k,params:P}){let _={method:k,params:P},{schedule:R}=ap({id:v,wait:y,shouldSplitBatch(O){return O.length>h},fn:O=>S.request({body:O}),sort:(O,q)=>O.id-q.id}),F=async O=>r?R(O):[await S.request({body:O})],[{error:N,result:z}]=await F(_);if(p)return{error:N,result:z};if(N)throw new Kn({body:_,error:N,url:v});return z},retryCount:x,retryDelay:u,timeout:b,type:"http"},{fetchOptions:o,url:v})}}Lt();L();import{secp256k1 as x_}from"@noble/curves/secp256k1";br();Ut();function N1(e){if(typeof e=="string"){if(!ne(e,{strict:!1}))throw new le({address:e});return{address:e,type:"json-rpc"}}if(!ne(e.address,{strict:!1}))throw new le({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"}}Lt();Xe();L();import{secp256k1 as b_}from"@noble/curves/secp256k1";var h0=!1;async function Vr({hash:e,privateKey:t,to:r="object"}){let{r:n,s:o,recovery:s}=b_.sign(e.slice(2),t.slice(2),{lowS:!0,extraEntropy:be(h0,{strict:!1})?qe(h0):h0}),a={r:E(n,{size:32}),s:E(o,{size:32}),v:s?28n:27n,yParity:s};return r==="bytes"||r==="hex"?tl({...a,to:r}):a}async function B1(e){let{chainId:t,nonce:r,privateKey:n,to:o="object"}=e,s=e.contractAddress??e.address,a=await Vr({hash:Du({address:s,chainId:t,nonce:r}),privateKey:n,to:o});return o==="object"?{address:s,chainId:t,nonce:r,...a}:a}async function L1({message:e,privateKey:t}){return await Vr({hash:Ua(e),privateKey:t,to:"hex"})}Qt();async function D1(e){let{privateKey:t,transaction:r,serializer:n=Lm}=e,o=r.type==="eip4844"?{...r,sidecars:!1}:r,s=await Vr({hash:fe(await n(o)),privateKey:t});return await n(r,s)}async function U1(e){let{privateKey:t,...r}=e;return await Vr({hash:Mp(r),privateKey:t,to:"hex"})}function lc(e,t={}){let{nonceManager:r}=t,n=de(x_.getPublicKey(e.slice(2),!1)),o=Bu(n);return{...N1({address:o,nonceManager:r,async sign({hash:a}){return Vr({hash:a,privateKey:e,to:"hex"})},async signAuthorization(a){return B1({...a,privateKey:e})},async signMessage({message:a}){return L1({message:a,privateKey:e})},async signTransaction(a,{serializer:i}={}){return D1({privateKey:e,transaction:a,serializer:i})},async signTypedData(a){return U1({...a,privateKey:e})}}),publicKey:n,source:"privateKey"}}var hoe=hi(x0(),1);import{z as Me}from"zod";var mr=hi(x0(),1),JA=hi(O1(),1),ZA=hi(Iv(),1);import{z as Ya}from"zod";import{z as kr}from"zod";import{z as Xa}from"zod";import{z as vt}from"zod";import{z as Vt}from"zod";import{z as Mv}from"zod";import{z as Fv}from"zod";import{z as pl}from"zod";import{z as ll}from"zod";var a8=rt.object({detail:rt.union([rt.string(),rt.array(rt.object({msg:rt.string(),type:rt.string().optional(),ctx:rt.record(rt.unknown()).optional(),loc:rt.array(rt.union([rt.string(),rt.number()])).optional(),input:rt.unknown().optional()}).passthrough()),rt.record(rt.unknown())]).optional(),type:rt.string().optional(),code:rt.string().optional()}),Zr=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)}},P0=class fl extends Zr{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=a8.safeParse(t.data);return r.success?new fl(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 fl(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 fl(t.message,{request:r??void 0,detail:t.message})}},i8=class extends Zr{constructor(e,t){super(e,t),this.isValidationError=!0,this.validationErrors=t.validationErrors}},c8=class extends Zr{constructor(){super(...arguments),this.isAuthError=!0}},hl=class extends Zr{constructor(){super(...arguments),this.isBusinessError=!0}},m8=class extends Zr{constructor(){super(...arguments),this.isServerError=!0}},u8=class extends Zr{constructor(){super(...arguments),this.isUnknownError=!0}};function p8(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 Bv(e){if(!Array.isArray(e))return{errors:[],message:typeof e=="string"?e:"Validation error"};let t=e.map((o,s)=>{let a=p8(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 l8(e){return e===422?"validation":e===401||e===403?"auth":e>=400&&e<500?"business":e>=500?"server":"unknown"}function f8(e,t,r){if(e===422&&Array.isArray(t)){let{message:n}=Bv(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 d8(e){let t=e.status??0,r=e.statusText??"Unknown Error",n=e.detail,o=g8(n);if(o)return new bc(o.message,{status:t,statusText:r,detail:n,errorCode:o.error_code,structuredDetails:o.details,suggestions:o.suggestions,links:o.links});let s=l8(t),a=f8(t,n,e.message),i={status:t,statusText:r,detail:n};if(s==="validation"&&Array.isArray(n)){let{errors:c}=Bv(n);return new i8(a,{...i,validationErrors:c})}return s==="auth"?new c8(a,i):s==="business"?new hl(a,i):s==="server"?new m8(a,i):new u8(a,i)}var bc=class extends hl{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 g8(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 yl(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 $0=["2025-10-28","2026-01-21"],h8="2026-01-21",Wa=(0,Nv.default)("phala::api-client");function y8(e){return Object.entries(e).map(([t,r])=>` -H "${t}: ${r}"`).join(`
59
- `)}function b8(e){return e?` -d '${(typeof e=="string"?e:JSON.stringify(e,null,2)).replace(/'/g,"\\'")}'`:""}function Pv(e,t,r,n){let o=[];r.forEach((i,c)=>{o.push(`${c}: ${i}`)});let s=o.join(`
40
+ `,o+=Uy(n.state)),n.stateDiff&&(o+=` stateDiff:
41
+ `,o+=Uy(n.stateDiff)),o},` State Override:
42
+ `).slice(0,-1)}var Pu,Au,od=P(()=>{K();Pu=class extends w{constructor({address:t}){super(`State for account "${t}" is set multiple times.`,{name:"AccountStateConflictError"})}},Au=class extends w{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}});var Oy,Bo,Tu=P(()=>{Oy=e=>e,Bo=e=>e});var Ys,Xs,No,$u,Ru,Lr,Kn=P(()=>{Re();jm();td();pn();Ly();qn();dm();xs();Me();K();od();Ut();Tu();Ys=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=Ao({from:g?.address,to:p,value:typeof l<"u"&&`${bs(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
+ ${zy(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}},Xs=class extends w{constructor(t,{abi:r,args:n,contractAddress:o,docsPath:s,functionName:a,sender:i}){let c=Pt({abi:r,args:n,name:a}),m=c?rd({abiItem:c,args:n,includeFunctionName:!1,includeName:!1}):void 0,u=c?We(c,{includeName:!0}):void 0,p=Ao({address:o&&Oy(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}},No=class extends w{constructor({abi:t,data:r,functionName:n,message:o}){let s,a,i,c;if(r&&r!=="0x")try{a=Iu({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=Vh[d]}else{let d=u?We(u,{includeName:!0}):void 0,g=u&&l?rd({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 Os&&(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}},$u=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"})}},Ru=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"})}},Lr=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 ar,Wn,ji,Lo=P(()=>{it();K();Tu();ar=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: ${Bo(a)}`,t&&`Request body: ${X(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}},Wn=class extends w{constructor({body:t,error:r,url:n}){super("RPC Request failed.",{cause:r,details:r.message,metaMessages:[`URL: ${Bo(n)}`,`Request body: ${X(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}},ji=class extends w{constructor({body:t,url:r}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${Bo(r)}`,`Request body: ${X(t)}`],name:"TimeoutError"})}}});var Pk,ct,xt,Qs,ea,ta,ra,gn,Dr,na,oa,sa,Jn,Do,aa,Uo,ia,ca,ma,ua,pa,Zn,la,fa,da,ga,ha,Yn,Mu,ya=P(()=>{K();Lo();Pk=-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 Wn?t.code:r??Pk}},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}},Qs=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(Qs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});ea=class e extends ct{constructor(t){super(t,{code:e.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}};Object.defineProperty(ea,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});ta=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(ta,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});ra=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(ra,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});gn=class e extends ct{constructor(t){super(t,{code:e.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}};Object.defineProperty(gn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});Dr=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(Dr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});na=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(na,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});oa=class e extends ct{constructor(t){super(t,{code:e.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}};Object.defineProperty(oa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});sa=class e extends ct{constructor(t){super(t,{code:e.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}};Object.defineProperty(sa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});Jn=class e extends ct{constructor(t,{method:r}={}){super(t,{code:e.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${r?` "${r}"`:""} is not supported.`})}};Object.defineProperty(Jn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});Do=class e extends ct{constructor(t){super(t,{code:e.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}};Object.defineProperty(Do,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});aa=class e extends ct{constructor(t){super(t,{code:e.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}};Object.defineProperty(aa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});Uo=class e extends xt{constructor(t){super(t,{code:e.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}};Object.defineProperty(Uo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});ia=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(ia,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});ca=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(ca,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});ma=class e extends xt{constructor(t){super(t,{code:e.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}};Object.defineProperty(ma,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});ua=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(ua,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});pa=class e extends xt{constructor(t){super(t,{code:e.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}};Object.defineProperty(pa,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});Zn=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(Zn,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});la=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(la,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});fa=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(fa,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});da=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(da,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});ga=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(ga,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});ha=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(ha,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});Yn=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(Yn,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});Mu=class extends ct{constructor(t){super(t,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}});function Xn(e,t){let r=(e.details||"").toLowerCase(),n=e instanceof w?e.walk(o=>o?.code===mn.code):e;return n instanceof w?new mn({cause:e,message:n.details}):mn.nodeMessage.test(r)?new mn({cause:e,message:e.details}):Xt.nodeMessage.test(r)?new Xt({cause:e,maxFeePerGas:t?.maxFeePerGas}):As.nodeMessage.test(r)?new As({cause:e,maxFeePerGas:t?.maxFeePerGas}):Ts.nodeMessage.test(r)?new Ts({cause:e,nonce:t?.nonce}):$s.nodeMessage.test(r)?new $s({cause:e,nonce:t?.nonce}):Rs.nodeMessage.test(r)?new Rs({cause:e,nonce:t?.nonce}):Ms.nodeMessage.test(r)?new Ms({cause:e}):Fs.nodeMessage.test(r)?new Fs({cause:e,gas:t?.gas}):Bs.nodeMessage.test(r)?new Bs({cause:e,gas:t?.gas}):Ns.nodeMessage.test(r)?new Ns({cause:e}):Rr.nodeMessage.test(r)?new Rr({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new Qt({cause:e})}var Hi=P(()=>{K();On()});function Fu(e,{docsPath:t,...r}){let n=(()=>{let o=Xn(e,r);return o instanceof Qt?e:o})();return new Ys(n,{docsPath:t,...r})}var sd=P(()=>{Kn();On();Hi()});function Ur(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 ba=P(()=>{});function mt(e){let{account:t,gasPrice:r,maxFeePerGas:n,maxPriorityFeePerGas:o,to:s}=e,a=t?W(t):void 0;if(a&&!ae(a.address))throw new de({address:a.address});if(s&&!ae(s))throw new de({address:s});if(typeof r<"u"&&(typeof n<"u"||typeof o<"u"))throw new gm;if(n&&n>gs)throw new Xt({maxFeePerGas:n});if(o&&n&&o>n)throw new Rr({maxFeePerGas:n,maxPriorityFeePerGas:o})}var hn=P(()=>{Re();Mf();vr();On();Ut();zt()});function Gy(e){let{abi:t,args:r,functionName:n}=e,o=t[0];if(n){let s=Pt({abi:t,args:r,name:n});if(!s)throw new wr(n,{docsPath:Vy});o=s}if(o.type!=="function")throw new wr(void 0,{docsPath:Vy});return{abi:[o],functionName:Br(We(o))}}var Vy,qy=P(()=>{Me();Js();pn();qn();Vy="/docs/contract/encodeFunctionData"});function ke(e){let{args:t}=e,{abi:r,functionName:n}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:Gy(e),o=r[0],s=n,a="inputs"in o&&o.inputs?bt(o.inputs,t??[]):void 0;return Xe([s,a??"0x"])}var jt=P(()=>{yt();fn();qy()});function Zy(e){if(!(!e||e.length===0))return e.reduce((t,{slot:r,value:n})=>{if(r.length!==66)throw new wi({size:r.length,targetSize:66,type:"hex"});if(n.length!==66)throw new wi({size:n.length,targetSize:66,type:"hex"});return t[r]=n,t},{})}function Tk(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=Zy(n)),o!==void 0){if(a.state)throw new Au;a.stateDiff=Zy(o)}return a}function xa(e){if(!e)return;let t={};for(let{address:r,...n}of e){if(!ae(r,{strict:!1}))throw new de({address:r});if(t[r])throw new Pu({address:r});t[r]=Tk(n)}return t}var ju=P(()=>{vr();sm();od();zt();D()});function ir(e,t){if(!ae(e,{strict:!1}))throw new de({address:e});if(!ae(t,{strict:!1}))throw new de({address:t});return e.toLowerCase()===t.toLowerCase()}var zo=P(()=>{vr();zt()});function Tt(e){let{abi:t,args:r,functionName:n,data:o}=e,s=t[0];if(n){let i=Pt({abi:t,args:r,name:n});if(!i)throw new wr(n,{docsPath:id});s=i}if(s.type!=="function")throw new wr(void 0,{docsPath:id});if(!s.outputs)throw new Hs(s.name,{docsPath:id});let a=dn(s.outputs,o);if(a&&a.length>1)return a;if(a&&a.length===1)return a[0]}var id,ro=P(()=>{Me();zi();qn();id="/docs/contract/decodeFunctionResult"});var rb,nb=P(()=>{rb="0.1.1"});function ob(){return rb}var sb=P(()=>{nb()});function ab(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause?ab(e.cause,t):t?null:e}var N,$t=P(()=>{sb();N=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@${ob()}`}),this.cause=r.cause,this.details=n,this.docs=a,this.docsPath=o,this.shortMessage=t}walk(t){return ab(this,t)}}});function _a(e,t){if(cr(e)>t)throw new Ku({givenSize:cr(e),maxSize:t})}function ib(e,t){if(typeof t=="number"&&t>0&&t>cr(e)-1)throw new Gi({offset:t,position:"start",size:cr(e)})}function cb(e,t,r){if(typeof t=="number"&&typeof r=="number"&&cr(e)!==r-t)throw new Gi({offset:r,position:"end",size:cr(e)})}function cd(e){if(e>=yn.zero&&e<=yn.nine)return e-yn.zero;if(e>=yn.A&&e<=yn.F)return e-(yn.A-10);if(e>=yn.a&&e<=yn.f)return e-(yn.a-10)}function mb(e,t={}){let{dir:r,size:n=32}=t;if(n===0)return e;if(e.length>n)throw new Wu({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 md(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 yn,ub=P(()=>{no();yn={zero:48,nine:57,A:65,F:70,a:97,f:102}});function Ia(e,t){if(Ie(e)>t)throw new Ju({givenSize:Ie(e),maxSize:t})}function pb(e,t){if(typeof t=="number"&&t>0&&t>Ie(e)-1)throw new qi({offset:t,position:"start",size:Ie(e)})}function lb(e,t,r){if(typeof t=="number"&&typeof r=="number"&&Ie(e)!==r-t)throw new qi({offset:r,position:"end",size:Ie(e)})}function ud(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 Zu({size:Math.ceil(o.length/2),targetSize:n,type:"Hex"});return`0x${o[r==="right"?"padEnd":"padStart"](n*2,"0")}`}function fb(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 pd=P(()=>{et()});function oo(e,t,r){return JSON.stringify(e,(n,o)=>typeof t=="function"?t(n,o):typeof o=="bigint"?o.toString()+Fk:o,r)}var Fk,Ki=P(()=>{Fk="#__bigint"});import{equalBytes as vj}from"@noble/curves/abstract/utils";function Lk(e){if(!(e instanceof Uint8Array)){if(!e)throw new Pa(e);if(typeof e!="object")throw new Pa(e);if(!("BYTES_PER_ELEMENT"in e))throw new Pa(e);if(e.BYTES_PER_ELEMENT!==1||e.constructor.name!=="Uint8Array")throw new Pa(e)}}function gb(e){return e instanceof Uint8Array?e:typeof e=="string"?Aa(e):Dk(e)}function Dk(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function Aa(e,t={}){let{size:r}=t,n=e;r&&(Ia(e,r),n=Hr(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=cd(o.charCodeAt(c++)),u=cd(o.charCodeAt(c++));if(m===void 0||u===void 0)throw new N(`Invalid byte sequence ("${o[c-2]}${o[c-1]}" in "${o}").`);a[i]=m*16+u}return a}function hb(e,t={}){let{size:r}=t,n=Nk.encode(e);return typeof r=="number"?(_a(n,r),Uk(n,r)):n}function Uk(e,t){return mb(e,{dir:"right",size:t})}function cr(e){return e.length}function yb(e,t,r,n={}){let{strict:o}=n;ib(e,t);let s=e.slice(t,r);return o&&cb(s,t,r),s}function bb(e,t={}){let{size:r}=t;typeof r<"u"&&_a(e,r);let n=Ue(e,t);return dd(n,t)}function xb(e,t={}){let{size:r}=t,n=e;if(typeof r<"u"&&(_a(n,r),n=fd(n)),n.length>1||n[0]>1)throw new ld(n);return!!n[0]}function jr(e,t={}){let{size:r}=t;typeof r<"u"&&_a(e,r);let n=Ue(e,t);return Xu(n,t)}function vb(e,t={}){let{size:r}=t,n=e;return typeof r<"u"&&(_a(n,r),n=zk(n)),Bk.decode(n)}function fd(e){return md(e,{dir:"left"})}function zk(e){return md(e,{dir:"right"})}function wb(e){try{return Lk(e),!0}catch{return!1}}var Bk,Nk,ld,Pa,Ku,Gi,Wu,no=P(()=>{$t();et();ub();pd();Ki();Bk=new TextDecoder,Nk=new TextEncoder;ld=class extends N{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"})}},Pa=class extends N{constructor(t){super(`Value \`${typeof t=="object"?oo(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"})}},Ku=class extends N{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"})}},Gi=class extends N{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"})}},Wu=class extends N{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 Cj}from"@noble/curves/abstract/utils";function Hk(e,t={}){let{strict:r=!1}=t;if(!e)throw new Qu(e);if(typeof e!="string")throw new Qu(e);if(r&&!/^0x[0-9a-fA-F]*$/.test(e))throw new ep(e);if(!e.startsWith("0x"))throw new ep(e)}function Te(...e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}function Ta(e){return e instanceof Uint8Array?Ue(e):Array.isArray(e)?Ue(new Uint8Array(e)):e}function tp(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?(Ia(r,t.size),bn(r,t.size)):r}function Ue(e,t={}){let r="";for(let o=0;o<e.length;o++)r+=jk[e[o]];let n=`0x${r}`;return typeof t.size=="number"?(Ia(n,t.size),Hr(n,t.size)):n}function ce(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 Wi({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?bn(c,n):c}function $a(e,t={}){return Ue(Ok.encode(e),t)}function bn(e,t){return ud(e,{dir:"left",size:t})}function Hr(e,t){return ud(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&&lb(s,t,r),s}function Ie(e){return Math.ceil((e.length-2)/2)}function gd(e){return fb(e,{dir:"left"})}function dd(e,t={}){let{signed:r}=t;t.size&&Ia(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 Xu(e,t={}){let{signed:r,size:n}=t;return Number(!r&&!n?e:dd(e,t))}function Ji(e,t={}){let{strict:r=!1}=t;try{return Hk(e,{strict:r}),!0}catch{return!1}}var Ok,jk,Wi,Qu,ep,Ju,qi,Zu,et=P(()=>{$t();pd();Ki();Ok=new TextEncoder,jk=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));Wi=class extends N{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"})}},Qu=class extends N{constructor(t){super(`Value \`${typeof t=="object"?oo(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"})}},ep=class extends N{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"})}},Ju=class extends N{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"})}},qi=class extends N{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"})}},Zu=class extends N{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 Cb(e){return{address:e.address,amount:ce(e.amount),index:ce(e.index),validatorIndex:ce(e.validatorIndex)}}var Sb=P(()=>{et()});function rp(e){return{...typeof e.baseFeePerGas=="bigint"&&{baseFeePerGas:ce(e.baseFeePerGas)},...typeof e.blobBaseFee=="bigint"&&{blobBaseFee:ce(e.blobBaseFee)},...typeof e.feeRecipient=="string"&&{feeRecipient:e.feeRecipient},...typeof e.gasLimit=="bigint"&&{gasLimit:ce(e.gasLimit)},...typeof e.number=="bigint"&&{number:ce(e.number)},...typeof e.prevRandao=="bigint"&&{prevRandao:ce(e.prevRandao)},...typeof e.time=="bigint"&&{time:ce(e.time)},...e.withdrawals&&{withdrawals:e.withdrawals.map(Cb)}}}var hd=P(()=>{et();Sb()});var jo,np,Eb,op,_b,yd,bd,xd,vd,so=P(()=>{jo=[{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"}],np=[{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"}]}],Eb=[{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"}],op=[...Eb,{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"}]}],_b=[...Eb,{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"}]}],yd=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],bd=[{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"}]}],xd=[{name:"isValidSignature",type:"function",stateMutability:"view",inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],outputs:[{name:"",type:"bytes4"}]}],vd=[{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 Ib,Pb=P(()=>{Ib="0x82ad56cb"});var sp,Ab,Tb,Ra,Zi=P(()=>{sp="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",Ab="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",Tb="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",Ra="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033"});function Ho(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 Vm({docsPath:wd});if(!("inputs"in o))throw new Mi({docsPath:wd});if(!o.inputs||o.inputs.length===0)throw new Mi({docsPath:wd});let s=bt(o.inputs,r);return Xe([n,s])}var wd,ap=P(()=>{Me();yt();fn();wd="/docs/contract/encodeDeployData"});function Ma(){let e=()=>{},t=()=>{};return{promise:new Promise((n,o)=>{e=n,t=o}),resolve:e,reject:t}}var ip=P(()=>{});function cp({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=()=>Cd.delete(t),i=()=>c().map(({args:u})=>u),c=()=>Cd.get(t)||[],m=u=>Cd.set(t,[...c(),u]);return{flush:a,async schedule(u){let{promise:p,resolve:l,reject:d}=Ma();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 Cd,Sd=P(()=>{ip();Cd=new Map});var mp,up,pp,$b=P(()=>{it();K();Tu();mp=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=>` ${Bo(i)}`)],` Sender: ${s}`,` Data: ${n}`,` Callback selector: ${t}`,` Extra data: ${o}`].flat(),name:"OffchainLookupError"})}},up=class extends w{constructor({result:t,url:r}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${Bo(r)}`,`Response: ${X(t)}`],name:"OffchainLookupResponseMalformedError"})}},pp=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 Rb(e){let{abi:t,data:r}=e,n=rr(r,0,4),o=t.find(s=>s.type==="function"&&n===Br(We(s)));if(!o)throw new Zm(n,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:o.name,args:"inputs"in o&&o.inputs&&o.inputs.length>0?dn(o.inputs,rr(r,4)):void 0}}var Mb=P(()=>{Me();Hn();Js();zi();pn()});function Ed(e){let{abi:t,errorName:r,args:n}=e,o=t[0];if(r){let c=Pt({abi:t,args:n,name:r});if(!c)throw new Fi(r,{docsPath:kd});o=c}if(o.type!=="error")throw new Fi(void 0,{docsPath:kd});let s=We(o),a=Br(s),i="0x";if(n&&n.length>0){if(!o.inputs)throw new Wm(o.name,{docsPath:kd});i=bt(o.inputs,n)}return Xe([a,i])}var kd,Fb=P(()=>{Me();yt();Js();fn();pn();qn();kd="/docs/contract/encodeErrorResult"});function Bb(e){let{abi:t,functionName:r,result:n}=e,o=t[0];if(r){let a=Pt({abi:t,name:r});if(!a)throw new wr(r,{docsPath:_d});o=a}if(o.type!=="function")throw new wr(void 0,{docsPath:_d});if(!o.outputs)throw new Hs(o.name,{docsPath:_d});let s=(()=>{if(o.outputs.length===0)return[];if(o.outputs.length===1)return[n];if(Array.isArray(n))return n;throw new Vs(n)})();return bt(o.outputs,s)}var _d,Nb=P(()=>{Me();fn();qn();_d="/docs/contract/encodeFunctionResult"});async function Id(e){let{data:t,ccipRequest:r}=e,{args:[n]}=Rb({abi:np,data:t}),o=[],s=[];return await Promise.all(n.map(async(a,i)=>{try{s[i]=a.urls.includes(xn)?await Id({data:a.data,ccipRequest:r}):await r(a),o[i]=!1}catch(c){o[i]=!0,s[i]=Gk(c)}})),Bb({abi:np,functionName:"query",result:[o,s]})}function Gk(e){return e.name==="HttpRequestError"&&e.status?Ed({abi:np,errorName:"HttpError",args:[e.status,e.shortMessage]}):Ed({abi:[Om],errorName:"Error",args:["shortMessage"in e?e.shortMessage:e.message]})}var xn,Yi=P(()=>{so();jm();Mb();Fb();Nb();xn="x-batch-gateway:true"});var Ub={};Cf(Ub,{ccipRequest:()=>Db,offchainLookup:()=>Kk,offchainLookupAbiItem:()=>Lb,offchainLookupSignature:()=>qk});async function Kk(e,{blockNumber:t,blockTag:r,data:n,to:o}){let{args:s}=Iu({data:n,abi:[Lb]}),[a,i,c,m,u]=s,{ccipRead:p}=e,l=p&&typeof p?.request=="function"?p.request:Db;try{if(!ir(o,a))throw new pp({sender:a,to:o});let d=i.includes(xn)?await Id({data:c,ccipRequest:l}):await l({data:c,sender:a,urls:i}),{data:g}=await Vr(e,{blockNumber:t,blockTag:r,data:Oe([m,bt([{type:"bytes"},{type:"bytes"}],[d,u])]),to:o});return g}catch(d){throw new mp({callbackSelector:m,cause:d,data:n,extraData:u,sender:a,urls:i})}}async function Db({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 ar({body:i,details:u?.error?X(u.error):m.statusText,headers:m.headers,status:m.status,url:s});continue}if(!xe(u)){n=new up({result:u,url:s});continue}return u}catch(m){n=new ar({body:i,details:m.message,url:s})}}throw n}var qk,Lb,zb=P(()=>{Fa();$b();Lo();td();fn();zo();yt();Dt();Yi();it();qk="0x556f1830",Lb={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 Vr(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 F=u&&p,B=l&&d&&S&&p,O=F||B,j=F?Ob({code:u,data:p}):B?Zk({data:p,factory:l,factoryData:d,to:S}):p;try{mt(t);let fe=(typeof s=="bigint"?k(s):void 0)||a,Se=m?rp(m):void 0,J=xa(I),Ve=e.chain?.formatters?.transactionRequest?.format,Le=(Ve||_t)({...Ur(_,{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&&Wk({request:Le})&&!J&&!Se)try{return await Jk(e,{...Le,blockNumber:s,blockTag:a})}catch(ve){if(!(ve instanceof _i)&&!(ve instanceof $o))throw ve}let $r=(()=>{let ve=[Le,fe];return J&&Se?[...ve,J,Se]:J?[...ve,J]:Se?[...ve,{},Se]:ve})(),Mn=await e.request({method:"eth_call",params:$r});return Mn==="0x"?{data:void 0}:{data:Mn}}catch(q){let fe=Yk(q),{offchainLookup:Se,offchainLookupSignature:J}=await Promise.resolve().then(()=>(zb(),Ub));if(e.ccipRead!==!1&&fe?.slice(0,10)===J&&S)return{data:await Se(e,{data:fe,to:S})};throw O&&fe?.slice(0,10)==="0x101bb98d"?new Ru({factory:l}):Fu(q,{...t,account:R,chain:e.chain})}}function Wk({request:e}){let{data:t,to:r,...n}=e;return!(!t||t.startsWith(Ib)||!r||Object.values(n).filter(o=>typeof o<"u").length>0)}async function Jk(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 nr({blockNumber:s,chain:e.chain,contract:"multicall3"});throw new _i})(),p=(typeof s=="bigint"?k(s):void 0)||a,{schedule:l}=cp({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:jo,args:[y],functionName:"aggregate3"}),x=await e.request({method:"eth_call",params:[{...m===null?{data:Ob({code:Ra,data:b})}:{to:m,data:b}},p]});return Tt({abi:jo,args:[y],functionName:"aggregate3",data:x||"0x"})}}),[{returnData:d,success:g}]=await l({data:i,to:c});if(!g)throw new Lr({data:d});return d==="0x"?{data:void 0}:{data:d}}function Ob(e){let{code:t,data:r}=e;return Ho({abi:wu(["constructor(bytes, bytes)"]),bytecode:sp,args:[t,r]})}function Zk(e){let{data:t,factory:r,factoryData:n,to:o}=e;return Ho({abi:wu(["constructor(address, bytes, address, bytes)"]),bytecode:Ab,args:[o,t,r,n]})}function Yk(e){if(!(e instanceof w))return;let t=e.walk();return typeof t?.data=="object"?t.data?.data:t.data}var Fa=P(()=>{Di();hd();Re();so();Pb();Zi();K();Ii();Kn();ro();ap();jt();Mo();D();sd();ba();Dn();Sd();ju();hn()});var b0=Jt(fc=>{"use strict";var v_=fc&&fc.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(fc,"__esModule",{value:!0});fc.encryptEnvVars=S_;var h0=Bn("@noble/curves/ed25519"),y0=v_(Bn("crypto"));function w_(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 C_(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}async function S_(e,t){let r=JSON.stringify({env:e}),n=h0.x25519.utils.randomPrivateKey(),o=h0.x25519.getPublicKey(n),s=w_(t),a=h0.x25519.getSharedSecret(n,s),i=await y0.default.subtle.importKey("raw",a,{name:"AES-GCM",length:256},!0,["encrypt"]),c=y0.default.getRandomValues(new Uint8Array(12)),m=await y0.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),C_(u)}});var L1=Jt(dc=>{"use strict";var k_=dc&&dc.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(dc,"__esModule",{value:!0});dc.getComposeHash=P_;var E_=k_(Bn("crypto"));function x0(e){return e==null?e:Array.isArray(e)?e.map(x0):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,r)=>{let n=e[r];return t[r]=x0(n),t},{}):e}function __(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 I_(e){let t=x0(e);return JSON.stringify(t,(r,n)=>typeof n=="number"&&(isNaN(n)||!isFinite(n))?null:n)}function P_(e,t=!1){t&&(e=__(e));let r=I_(e);return E_.default.createHash("sha256").update(r,"utf8").digest("hex")}});var sv=Jt(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=X1;G.fromBig=w0;G.split=D1;var ml=BigInt(2**32-1),v0=BigInt(32);function w0(e,t=!1){return t?{h:Number(e&ml),l:Number(e>>v0&ml)}:{h:Number(e>>v0&ml)|0,l:Number(e&ml)|0}}function D1(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}=w0(e[s],t);[n[s],o[s]]=[a,i]}return[n,o]}var U1=(e,t)=>BigInt(e>>>0)<<v0|BigInt(t>>>0);G.toBig=U1;var z1=(e,t,r)=>e>>>r;G.shrSH=z1;var O1=(e,t,r)=>e<<32-r|t>>>r;G.shrSL=O1;var j1=(e,t,r)=>e>>>r|t<<32-r;G.rotrSH=j1;var H1=(e,t,r)=>e<<32-r|t>>>r;G.rotrSL=H1;var V1=(e,t,r)=>e<<64-r|t>>>r-32;G.rotrBH=V1;var G1=(e,t,r)=>e>>>r-32|t<<64-r;G.rotrBL=G1;var q1=(e,t)=>t;G.rotr32H=q1;var K1=(e,t)=>e;G.rotr32L=K1;var W1=(e,t,r)=>e<<r|t>>>32-r;G.rotlSH=W1;var J1=(e,t,r)=>t<<r|e>>>32-r;G.rotlSL=J1;var Z1=(e,t,r)=>t<<r-32|e>>>64-r;G.rotlBH=Z1;var Y1=(e,t,r)=>e<<r-32|t>>>64-r;G.rotlBL=Y1;function X1(e,t,r,n){let o=(t>>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:o|0}}var Q1=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0);G.add3L=Q1;var ev=(e,t,r,n)=>t+r+n+(e/2**32|0)|0;G.add3H=ev;var tv=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0);G.add4L=tv;var rv=(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0;G.add4H=rv;var nv=(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0);G.add5L=nv;var ov=(e,t,r,n,o,s)=>t+r+n+o+s+(e/2**32|0)|0;G.add5H=ov;var A_={fromBig:w0,split:D1,toBig:U1,shrSH:z1,shrSL:O1,rotrSH:j1,rotrSL:H1,rotrBH:V1,rotrBL:G1,rotr32H:q1,rotr32L:K1,rotlSH:W1,rotlSL:J1,rotlBH:Z1,rotlBL:Y1,add:X1,add3L:Q1,add3H:ev,add4L:tv,add4H:rv,add5H:ov,add5L:nv};G.default=A_});var av=Jt(ul=>{"use strict";Object.defineProperty(ul,"__esModule",{value:!0});ul.crypto=void 0;var fo=Bn("crypto");ul.crypto=fo&&typeof fo=="object"&&"webcrypto"in fo?fo.webcrypto:fo&&typeof fo=="object"&&"randomBytes"in fo?fo:void 0});var dv=Jt(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=cv;z.anumber=C0;z.abytes=Wa;z.ahash=T_;z.aexists=$_;z.aoutput=R_;z.u8=M_;z.u32=F_;z.clean=B_;z.createView=N_;z.rotr=L_;z.rotl=D_;z.byteSwap=k0;z.byteSwap32=mv;z.bytesToHex=z_;z.hexToBytes=O_;z.asyncLoop=H_;z.utf8ToBytes=E0;z.bytesToUtf8=V_;z.toBytes=pl;z.kdfInputToBytes=G_;z.concatBytes=q_;z.checkOpts=K_;z.createHasher=pv;z.createOptHasher=lv;z.createXOFer=fv;z.randomBytes=W_;var Ka=av();function cv(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function C0(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Wa(e,...t){if(!cv(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 T_(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");C0(e.outputLen),C0(e.blockLen)}function $_(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 R_(e,t){Wa(e);let r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function M_(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function F_(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function B_(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function N_(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function L_(e,t){return e<<32-t|e>>>t}function D_(e,t){return e<<t|e>>>32-t>>>0}z.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function k0(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}z.swap8IfBE=z.isLE?e=>e:e=>k0(e);z.byteSwapIfBE=z.swap8IfBE;function mv(e){for(let t=0;t<e.length;t++)e[t]=k0(e[t]);return e}z.swap32IfBE=z.isLE?e=>e:mv;var uv=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",U_=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function z_(e){if(Wa(e),uv)return e.toHex();let t="";for(let r=0;r<e.length;r++)t+=U_[e[r]];return t}var Cn={_0:48,_9:57,A:65,F:70,a:97,f:102};function iv(e){if(e>=Cn._0&&e<=Cn._9)return e-Cn._0;if(e>=Cn.A&&e<=Cn.F)return e-(Cn.A-10);if(e>=Cn.a&&e<=Cn.f)return e-(Cn.a-10)}function O_(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(uv)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=iv(e.charCodeAt(s)),i=iv(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 j_=async()=>{};z.nextTick=j_;async function H_(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 E0(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function V_(e){return new TextDecoder().decode(e)}function pl(e){return typeof e=="string"&&(e=E0(e)),Wa(e),e}function G_(e){return typeof e=="string"&&(e=E0(e)),Wa(e),e}function q_(...e){let t=0;for(let n=0;n<e.length;n++){let o=e[n];Wa(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 K_(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 S0=class{};z.Hash=S0;function pv(e){let t=n=>e().update(pl(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function lv(e){let t=(n,o)=>e(o).update(pl(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}function fv(e){let t=(n,o)=>e(o).update(pl(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}z.wrapConstructor=pv;z.wrapConstructorWithOpts=lv;z.wrapXOFConstructorWithOpts=fv;function W_(e=32){if(Ka.crypto&&typeof Ka.crypto.getRandomValues=="function")return Ka.crypto.getRandomValues(new Uint8Array(e));if(Ka.crypto&&typeof Ka.crypto.randomBytes=="function")return Uint8Array.from(Ka.crypto.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}});var Sv=Jt(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=wv;var hc=sv(),lt=dv(),J_=BigInt(0),gc=BigInt(1),Z_=BigInt(2),Y_=BigInt(7),X_=BigInt(256),Q_=BigInt(113),yv=[],bv=[],xv=[];for(let e=0,t=gc,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],yv.push(2*(5*n+r)),bv.push((e+1)*(e+2)/2%64);let o=J_;for(let s=0;s<7;s++)t=(t<<gc^(t>>Y_)*Q_)%X_,t&Z_&&(o^=gc<<(gc<<BigInt(s))-gc);xv.push(o)}var vv=(0,hc.split)(xv,!0),e8=vv[0],t8=vv[1],gv=(e,t,r)=>r>32?(0,hc.rotlBH)(e,t,r):(0,hc.rotlSH)(e,t,r),hv=(e,t,r)=>r>32?(0,hc.rotlBL)(e,t,r):(0,hc.rotlSL)(e,t,r);function wv(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=gv(m,u,1)^r[i],l=hv(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=bv[a],c=gv(o,s,i),m=hv(o,s,i),u=yv[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]^=e8[n],e[1]^=t8[n]}(0,lt.clean)(r)}var yc=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),wv(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=yc;var go=(e,t,r)=>(0,lt.createHasher)(()=>new yc(t,e,r));Ee.sha3_224=go(6,144,224/8);Ee.sha3_256=go(6,136,256/8);Ee.sha3_384=go(6,104,384/8);Ee.sha3_512=go(6,72,512/8);Ee.keccak_224=go(1,144,224/8);Ee.keccak_256=go(1,136,256/8);Ee.keccak_384=go(1,104,384/8);Ee.keccak_512=go(1,72,512/8);var Cv=(e,t,r)=>(0,lt.createXOFer)((n={})=>new yc(t,e,n.dkLen===void 0?r:n.dkLen,!0));Ee.shake128=Cv(31,168,128/8);Ee.shake256=Cv(31,136,256/8)});var kv=Jt(_0=>{"use strict";Object.defineProperty(_0,"__esModule",{value:!0});_0.verifyEnvEncryptPublicKey=o8;var r8=Sv(),n8=Bn("@noble/curves/secp256k1");function o8(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,r8.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=n8.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 a$}from"fs";import{dirname as i$,join as c$}from"path";import{fileURLToPath as m$}from"url";import{ZodError as ST}from"zod";import ii from"chalk";function Wc(e){return e.split(/[\s-]+/).filter(Boolean).map((t,r)=>r===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("")}function Hg(e){return e===void 0?[]:Array.isArray(e)?[...e]:[e]}function Vg(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??Wc(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 D2 from"arg";var B2={name:"help",shorthand:"h",description:"Show help information for the current command",type:"boolean",target:"help"},N2={name:"version",shorthand:"v",description:"Show CLI version",type:"boolean",target:"version"},be={name:"interactive",shorthand:"i",description:"Enable interactive mode",type:"boolean",target:"interactive",group:"basic"},Gg={name:"api-token",description:"API token used for authentication",type:"string",target:"apiToken",aliases:["api-key"],argumentName:"token",group:"basic"},gr={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json",group:"basic"},ko=[B2,N2,Gg,gr,be],Nn=[Gg],we={name:"cvm_id",description:"CVM identifier (UUID, app_id, instance_id, or name)",required:!1,target:"cvmId"},ms={name:"cvm-id",description:"CVM identifier (UUID, app_id, instance_id, or name)",type:"string",target:"cvmId"},qg={name:"uuid",description:"[DEPRECATED] Use --cvm-id instead. CVM UUID.",type:"string",target:"cvmId",deprecated:!0,group:"deprecated"};import Kg from"arg";function Wg(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??Wc(o.name),i=L2(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 Hg(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]=Kg.flag(()=>!0),n.set(c,{option:o,canonicalKey:s,target:a,negatedKey:c})}}return{spec:t,descriptors:r,negatedLookup:n}}function L2(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 Kg.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 U2(e){let t=e.indexOf("--");return t===-1?[[...e],[]]:[e.slice(0,t),e.slice(t+1)]}function yi(e,t,r={}){let n=[...ko,...t?[...t]:[]],o=Wg(n),{permissive:s=!1,stopAtPositional:a=!1}=r,[i,c]=U2(e),m=D2(o.spec,{argv:i,permissive:s,stopAtPositional:a}),{_:u,...p}=m;return{positionals:u??[],flags:p,flagConfig:o,passThrough:c}}function Jc(e){return e==="unstable"?" [UNSTABLE]":e==="deprecated"?" [DEPRECATED]":""}function Yc(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?Jc(d):"",h=u.name??"";n.push(` ${h.padEnd(18)}${l}${g}`.trimEnd())}n.push("")}}n.push(""),n.push("Global options:");for(let c of ko)n.push(` ${Zc(c).padEnd(24)}${c.description??""}`.trimEnd());return n.join(`
49
+ `)}function Jg(e){let{registry:t,executableName:r,groupPath:n}=e,o=t.getNode(n);if(!o?.group)return Yc({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?Jc(l):"",g=m.name??"";s.push(` ${g.padEnd(18)}${p}${d}`.trimEnd())}s.push("")}s.push("Global options:");for(let m of ko)s.push(` ${Zc(m).padEnd(24)}${m.description??""}`.trimEnd());return s.join(`
51
+ `)}function Sf(e){let{executableName:t,definition:r,registry:n}=e,o=z2({executableName:t,definition:r}),s=Jc(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=j2(g);a.push(` ${h.padEnd(18)}${g.description??""}`.trimEnd())}}let c=[...r.meta.options??[]],m=ko.filter(g=>!g.hidden),u=c.filter(g=>!g.hidden),p=new Set(ko.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);a.push(` ${Zc(h,{includeShorthand:y}).padEnd(24)}${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)a.push(` ${Zc(S).padEnd(24)}${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?Jc(b):"",v=g.name??"";a.push(` ${v.padEnd(18)}${y}${x}`.trimEnd())}}return a.join(`
53
+ `)}function z2({executableName:e,definition:t}){let r=[e,...t.path],o=(t.meta.arguments??[]).map(m=>O2(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 O2(e){let t=`<${e.name}>`;return e.variadic?`${t}...`:e.required===!1?`[${t}]`:t}function j2(e){return e.variadic?`<${e.name}...>`:e.required===!1?`<${e.name}>?`:`<${e.name}>`}function Zc(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 kf=!1;function se(e){kf=e}function st(){return kf}function Ef(){return!kf}import tT from"path";import kl from"fs-extra";import cw from"@iarna/toml";import{z as Pr}from"zod";var $v=hi(rh(),1);import{ofetch as s8}from"ofetch";function nh(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 ho}from"zod";import{z as Y}from"zod";import{z as yo}from"zod";function _o(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}cm();Ge();cm();var $f={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function Po(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?$f[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=gS(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 ih=ds("transaction",Po);function gS(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 Ci(e,t){let r=(e.transactions??[]).map(n=>typeof n=="string"?n:Po(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 ch=ds("block",Ci);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();cm();var Rf={"0x0":"reverted","0x1":"success"};function Si(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?Rf[e.status]:null,type:e.type?$f[e.type]||e.type:null};return e.blobGasPrice&&(r.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(r.blobGasUsed=BigInt(e.blobGasUsed)),r}var mh=ds("transactionReceipt",Si);K();um();Ye();D();function br(e,t="hex"){let r=uh(e),n=ys(new Uint8Array(r.length));return r.encode(n),t==="hex"?ne(n.bytes):n.bytes}function uh(e){return Array.isArray(e)?vS(e.map(t=>uh(t))):wS(e)}function vS(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 wS(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.")}Ut();D();function fh(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?he(n):"0x",a,o?he(o):"0x",...Ss({},s)])}return t}Ye();D();function ks(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=>ne(s))}Ye();D();function Es(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=>ne(a))}D();km();function IS(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 gh(e,t,r){return e&t^~e&r}function hh(e,t,r){return e&t^e&r^t&r}var Em=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=Cm(this.buffer)}update(t){Is(this),t=Ei(t),To(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=Cm(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){Is(this),wm(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:s}=this,{pos:a}=this;r[a++]=128,Un(this.buffer.subarray(a)),this.padOffset>o-a&&(this.process(n,0),a=0);for(let p=a;p<o;p++)r[p]=0;IS(n,o-8,BigInt(this.length*8),s),this.process(n,0);let i=Cm(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()}},cn=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);km();var AS=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]),zn=new Uint32Array(64),Im=class extends Em{constructor(t=32){super(64,t,8,!1),this.A=cn[0]|0,this.B=cn[1]|0,this.C=cn[2]|0,this.D=cn[3]|0,this.E=cn[4]|0,this.F=cn[5]|0,this.G=cn[6]|0,this.H=cn[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)zn[p]=t.getUint32(r,!1);for(let p=16;p<64;p++){let l=zn[p-15],d=zn[p-2],g=xr(l,7)^xr(l,18)^l>>>3,h=xr(d,17)^xr(d,19)^d>>>10;zn[p]=h+zn[p-7]+g+zn[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=xr(i,6)^xr(i,11)^xr(i,25),d=u+l+gh(i,c,m)+AS[p]+zn[p]|0,h=(xr(n,2)^xr(n,13)^xr(n,22))+hh(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(){Un(zn)}destroy(){this.set(0,0,0,0,0,0,0,0),Un(this.buffer)}};var kh=Sm(()=>new Im);var Eh=kh;Dt();Ye();D();function _h(e,t){let r=t||"hex",n=Eh(xe(e,{strict:!1})?Yt(e):e);return r==="bytes"?n:he(n)}function Ih(e){let{commitment:t,version:r=1}=e,n=e.to??(typeof t=="string"?"hex":"bytes"),o=_h(t,"bytes");return o.set([r],0),n==="bytes"?o:ne(o)}function Pm(e){let{commitments:t,version:r}=e,n=e.to??(typeof t[0]=="string"?"hex":"bytes"),o=[];for(let s of t)o.push(Ih({commitment:s,to:n,version:r}));return o}K();var Am=class extends w{constructor({maxSize:t,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}},Ps=class extends w{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}},Tm=class extends w{constructor({hash:t,size:r}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}},$m=class extends w{constructor({hash:t,version:r}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${1}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}};um();Zt();Ye();D();function Ph(e){let t=e.to??(typeof e.data=="string"?"hex":"bytes"),r=typeof e.data=="string"?qe(e.data):e.data,n=re(r);if(!n)throw new Ps;if(n>761855)throw new Am({maxSize:761855,size:n});let o=[],s=!0,a=0;for(;s;){let i=ys(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=>ne(i.bytes))}function Rm(e){let{data:t,kzg:r,to:n}=e,o=e.blobs??Ph({data:t,to:n}),s=e.commitments??ks({blobs:o,kzg:r,to:n}),a=e.proofs??Es({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();Io();D();Mf();vr();K();Ii();On();zt();Zt();Hn();Ge();function Lh(e){let{authorizationList:t}=e;if(t)for(let r of t){let{chainId:n}=r,o=r.address;if(!ae(o))throw new de({address:o});if(n<0)throw new Ro({chainId:n})}Lm(e)}function Dh(e){let{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Ps;for(let r of t){let n=re(r),o=Ae(rr(r,0,1));if(n!==32)throw new Tm({hash:r,size:n});if(o!==1)throw new $m({hash:r,version:o})}}Lm(e)}function Lm(e){let{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:n,to:o}=e;if(t<=0)throw new Ro({chainId:t});if(o&&!ae(o))throw new de({address:o});if(n&&n>gs)throw new Xt({maxFeePerGas:n});if(r&&n&&r>n)throw new Rr({maxFeePerGas:n,maxPriorityFeePerGas:r})}function Uh(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s}=e;if(t<=0)throw new Ro({chainId:t});if(s&&!ae(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>gs)throw new Xt({maxFeePerGas:n})}function zh(e){let{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:o,to:s}=e;if(s&&!ae(s))throw new de({address:s});if(typeof t<"u"&&t<=0)throw new Ro({chainId:t});if(r||o)throw new w("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>gs)throw new Xt({maxFeePerGas:n})}Ut();function Dm(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 ym({transaction:e})}vr();Ut();zt();function Ai(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 bm({storageKey:o[s]});if(!ae(n,{strict:!1}))throw new de({address:n});t.push([n,o])}return t}function Um(e,t){let r=Dm(e);return r==="eip1559"?VS(e,t):r==="eip2930"?GS(e,t):r==="eip4844"?HS(e,t):r==="eip7702"?jS(e,t):qS(e,t)}function jS(e,t){let{authorizationList:r,chainId:n,gas:o,nonce:s,to:a,value:i,maxFeePerGas:c,maxPriorityFeePerGas:m,accessList:u,data:p}=e;Lh(e);let l=Ai(u),d=fh(r);return Xe(["0x04",br([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,...Ss(e,t)])])}function HS(e,t){let{chainId:r,gas:n,nonce:o,to:s,value:a,maxFeePerBlobGas:i,maxFeePerGas:c,maxPriorityFeePerGas:m,accessList:u,data:p}=e;Dh(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(I=>ne(I)),S=e.kzg,E=ks({blobs:v,kzg:S});if(typeof l>"u"&&(l=Pm({commitments:E})),typeof d>"u"){let I=Es({blobs:v,commitments:E,kzg:S});d=Rm({blobs:v,commitments:E,proofs:I})}}let g=Ai(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??[],...Ss(e,t)],y=[],b=[],x=[];if(d)for(let v=0;v<d.length;v++){let{blob:S,commitment:E,proof:I}=d[v];y.push(S),b.push(E),x.push(I)}return Xe(["0x03",d?br([h,y,b,x]):br(h)])}function VS(e,t){let{chainId:r,gas:n,nonce:o,to:s,value:a,maxFeePerGas:i,maxPriorityFeePerGas:c,accessList:m,data:u}=e;Lm(e);let p=Ai(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,...Ss(e,t)];return Xe(["0x02",br(l)])}function GS(e,t){let{chainId:r,gas:n,data:o,nonce:s,to:a,value:i,accessList:c,gasPrice:m}=e;Uh(e);let u=Ai(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,...Ss(e,t)];return Xe(["0x01",br(p)])}function qS(e,t){let{chainId:r=0,gas:n,data:o,nonce:s,to:a,value:i,gasPrice:c}=e;zh(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 hm({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 br(m)}function Ss(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 Oh={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};Ge();var jh={block:ch({format(e){return{transactions:e.transactions?.map(r=>{if(typeof r=="string")return r;let n=Po(r);return n.typeHex==="0x7e"&&(n.isSystemTx=r.isSystemTx,n.mint=r.mint?ye(r.mint):void 0,n.sourceHash=r.sourceHash,n.type="deposit"),n}),stateRoot:e.stateRoot}}}),transaction:ih({format(e){let t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?ye(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:mh({format(e){return{l1GasPrice:e.l1GasPrice?ye(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?ye(e.l1GasUsed):null,l1Fee:e.l1Fee?ye(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};vr();zt();yt();D();function KS(e,t){return JS(e)?WS(e):Um(e,t)}var Hh={transaction:KS};function WS(e){ZS(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?he(a):"0x",c?he(c):"0x",o?he(o):"0x",s?"0x1":"0x",r??"0x"];return Xe(["0x7e",br(m)])}function JS(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function ZS(e){let{from:t,to:r}=e;if(t&&!ae(t))throw new de({address:t});if(r&&!ae(r))throw new de({address:r})}var Hf={blockTime:2e3,contracts:Oh,formatters:jh,serializers:Hh};var zm=_o({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 Ti=1,$i=_o({...Hf,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:{...Hf.contracts,disputeGameFactory:{[Ti]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[Ti]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[Ti]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[Ti]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:Ti}),YS=_o({...$i,experimental_preconfirmationTime:200,rpcUrls:{default:{http:["https://mainnet-preconf.base.org"]}}});Ii();function Us({chain:e,currentChainId:t}){if(!e)throw new Fm;if(t!==e.id)throw new Mm({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"})}},or=class extends w{constructor({docsPath:t,metaMessages:r,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:t,metaMessages:r,name:"AccountTypeNotSupportedError"})}};var Bu=_o({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 Ne}from"zod";import{z as Rt}from"zod";import{z as $}from"zod";import{z as M}from"zod";import{z as Za}from"zod";import{z as Ya}from"zod";import{z as Z}from"zod";import{z as ft}from"zod";import{z as Q}from"zod";import yI from"crypto";import{z as Zr}from"zod";import{z as _r}from"zod";import{z as nt}from"zod";import{z as Mt}from"zod";import{z as Ft}from"zod";import{z as KI}from"zod";import{z as _v}from"zod";import{z as Yr}from"zod";import{z as ri}from"zod";import{z as Xo}from"zod";import{z as Ce}from"zod";import{z as bP}from"zod";import{z as wP}from"zod";import{z as ue}from"zod";import{z as Wr}from"zod";import{z as BP}from"zod";import{z as Be}from"zod";import{z as V}from"zod";import{z as ei}from"zod";import{z as A0}from"zod";import{z as dt}from"zod";import{z as Jv}from"zod";import{z as Kr}from"zod";import{z as U}from"zod";import{z as ie}from"zod";import{z as oe}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 Nu=class extends w{constructor(t){super(`Filter type "${t}" is not supported.`,{name:"FilterTypeNotSupportedError"})}};Ye();tr();Oi();fn();pn();qn();var jy="/docs/contract/encodeEventTopics";function zr(e){let{abi:t,eventName:r,args:n}=e,o=t[0];if(r){let c=Pt({abi:t,name:r});if(!c)throw new Bi(r,{docsPath:jy});o=c}if(o.type!=="event")throw new Bi(void 0,{docsPath:jy});let s=We(o),a=Gn(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)=>Hy({param:u,value:m[p][d]})):typeof m[p]<"u"&&m[p]!==null?Hy({param:u,value:m[p]}):null)??[])}return[a,...i]}function Hy({param:e,value:t}){if(e.type==="string"||e.type==="bytes")return ge(Yt(t));if(e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/))throw new Nu(e.type);return bt([e],[t])}D();function Qn(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 Lu(e,t){let{address:r,abi:n,args:o,eventName:s,fromBlock:a,strict:i,toBlock:c}=t,m=Qn(e,{method:"eth_newFilter"}),u=s?zr({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();jt();Me();K();Kn();Lo();ya();var Ak=3;function Ht(e,{abi:t,address:r,args:n,docsPath:o,functionName:s,sender:a}){let i=e instanceof Lr?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 sr?new $u({functionName:s}):[Ak,gn.code].includes(c)&&(m||u||p||l)?new No({abi:t,data:typeof m=="object"?m.data:m,functionName:s,message:i instanceof Wn?u:l??p}):e;return new Xs(d,{abi:t,args:n,contractAddress:r,docsPath:o,functionName:s,sender:a})}Re();K();jn();tr();function Du(e){let t=ge(`0x${e.substring(4)}`).substring(26);return un(`0x${t}`)}Dt();Zt();Ge();D();async function Wy({hash:e,signature:t}){let r=xe(e)?e:he(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=Ky(d);return new n.Signature(ye(m),ye(u)).addRecoveryBit(g)}let a=xe(t)?t:he(t);if(re(a)!==65)throw new Error("invalid signature length");let i=Ae(`0x${a.slice(130)}`),c=Ky(i);return n.Signature.fromCompact(a.substring(2,130)).addRecoveryBit(c)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}function Ky(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 Uu({hash:e,signature:t}){return Du(await Wy({hash:e,signature:t}))}yt();Ye();D();tr();function zu(e){let{chainId:t,nonce:r,to:n}=e,o=e.contractAddress??e.address,s=ge(Xe(["0x05",br([t?k(t):"0x",o,r?k(r):"0x"])]));return n==="bytes"?qe(s):s}async function eo(e){let{authorization:t,signature:r}=e;return Uu({hash:zu(t),signature:r??t})}D();dm();xs();K();Ut();var Ou=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=Ao({from:r?.address,to:p,value:typeof l<"u"&&`${bs(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}};On();Hi();function Jy(e,{docsPath:t,...r}){let n=(()=>{let o=Xn(e,r);return o instanceof Qt?e:o})();return new Ou(n,{docsPath:t,...r})}ba();Dn();ju();hn();Re();xs();K();var Hu=class extends w{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}},to=class extends w{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}},Vu=class extends w{constructor({maxPriorityFeePerGas:t}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${Ke(t)} gwei).`,{name:"MaxFeePerGasTooLowError"})}};Ge();K();var va=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 va({blockHash:t,blockNumber:r});return(e.chain?.formatters?.block?.format||Ci)(i,"getBlock")}async function wa(e){let t=await e.request({method:"eth_gasPrice"});return BigInt(t)}async function Yy(e,t){return ad(e,t)}async function ad(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 ye(a)}catch{let[s,a]=await Promise.all([r?Promise.resolve(r):T(e,ut,"getBlock")({}),T(e,wa,"getGasPrice")({})]);if(typeof s.baseFeePerGas!="bigint")throw new to;let i=a-s.baseFeePerGas;return i<0n?0n:i}}async function Xy(e,t){return Gu(e,t)}async function Gu(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 Hu;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 to;let l=typeof o?.maxPriorityFeePerGas=="bigint"?o.maxPriorityFeePerGas:await ad(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,wa,"getGasPrice")({}))}}Ge();D();async function Ca(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)}hn();Ge();async function At(e){let t=await e.request({method:"eth_chainId"},{dedupe:!0});return Ae(t)}var Vi=["blobVersionedHashes","chainId","fees","gas","nonce","type"],Qy=new Map;async function Or(e,t){let{account:r=e.account,blobs:n,chain:o,gas:s,kzg:a,nonce:i,nonceManager:c,parameters:m=Vi,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,At,"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,Ca,"getTransactionCount")({address:p.address,blockTag:"pending"});if((m.includes("blobVersionedHashes")||m.includes("sidecars"))&&n&&a){let b=ks({blobs:n,kzg:a});if(m.includes("blobVersionedHashes")){let x=Pm({commitments:b,to:"hex"});l.blobVersionedHashes=x}if(m.includes("sidecars")){let x=Es({blobs:n,commitments:b,kzg:a}),v=Rm({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=Dm(l)}catch{let b=Qy.get(e.uid);typeof b>"u"&&(b=typeof(await g())?.baseFeePerGas=="bigint",Qy.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 Gu(e,{block:b,chain:o,request:l});if(typeof t.maxPriorityFeePerGas>"u"&&t.maxFeePerGas&&t.maxFeePerGas<v)throw new Vu({maxPriorityFeePerGas:v});l.maxPriorityFeePerGas=v,l.maxFeePerGas=x}}else{if(typeof t.maxFeePerGas<"u"||typeof t.maxPriorityFeePerGas<"u")throw new to;if(typeof t.gasPrice>"u"){let b=await g(),{gasPrice:x}=await Gu(e,{block:b,chain:o,request:l,type:"legacy"});l.gasPrice=x}}return m.includes("gas")&&typeof s>"u"&&(l.gas=await T(e,Sa,"estimateGas")({...l,account:p,prepare:p?.type==="local"?[]:["blobVersionedHashes"]})),mt(l),delete l.parameters,l}async function Sa(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 Or(e,{...t,parameters:s}):t,_=(typeof u=="bigint"?k(u):void 0)||p,R=xa(S),F=await(async()=>{if(E.to)return E.to;if(i&&i.length>0)return await eo({authorization:i[0]}).catch(()=>{throw new w("`to` is required. Could not infer from `authorizationList`")})})();mt(t);let B=e.chain?.formatters?.transactionRequest?.format,j=(B||_t)({...Ur(E,{format:B}),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:F,value:v},"estimateGas");return BigInt(await e.request({method:"eth_estimateGas",params:R?[j,_??e.experimental_blockTag??"latest",R]:_?[j,_]:[j]}))}catch(a){throw Jy(a,{...t,account:o,chain:e.chain})}}async function eb(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,Sa,"estimateGas")({data:`${c}${a?a.replace("0x",""):""}`,to:n,...i})}catch(m){let u=i.account?W(i.account):void 0;throw Ht(m,{abi:r,address:n,args:o,docsPath:"/docs/contract/estimateContractGas",functionName:s,sender:u?.address})}}qn();Me();zo();Ye();tr();Oi();Me();Ff();Zt();Oi();zi();pn();var tb="/docs/contract/decodeEventLog";function ka(e){let{abi:t,data:r,strict:n,topics:o}=e,s=n??!0,[a,...i]=o;if(!a)throw new Jm({docsPath:tb});let c=t.find(h=>h.type==="event"&&a===Gn(We(h)));if(!(c&&"name"in c)||c.type!=="event")throw new js(a,{docsPath:tb});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 Mr({abiItem:c,param:y});l[p?b:y.name||b]=$k({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=dn(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 zs||h instanceof hs?new Cr({abiItem:c,data:r,params:g,size:re(r)}):h}else if(s)throw new Cr({abiItem:c,data:"0x",params:g,size:0})}return{eventName:m,args:Object.values(l).length>0?l:void 0}}function $k({param:e,value:t}){return e.type==="string"||e.type==="bytes"||e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/)?t:(dn([e],t)||[])[0]}function kr(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]===Gn(m));if(!i)return null;let c=ka({...a,abi:[i],strict:o});return s&&!s.includes(c.eventName)||!Rk({args:c.args,inputs:i.inputs,matchArgs:r})?null:{...c,...a}}catch(i){let c,m;if(i instanceof js)return null;if(i instanceof Cr||i instanceof Mr){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 Rk(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"?ir(a,i):s.type==="string"||s.type==="bytes"?ge(Yt(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 Ea(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=>zr({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?kr({abi:u,args:i,logs:d,strict:m}):d}async function qu(e,t){let{abi:r,address:n,args:o,blockHash:s,eventName:a,fromBlock:i,toBlock:c,strict:m}=t,u=a?Pt({abi:r,name:a}):void 0,p=u?void 0:r.filter(l=>l.type==="event");return T(e,Ea,"getLogs")({address:n,args:o,blockHash:s,event:u,events:p,fromBlock:i,toBlock:c,strict:m})}ro();jt();Fa();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,Vr,"call")({...a,data:i,to:n});return Tt({abi:r,args:o,functionName:s,data:c||"0x"})}catch(c){throw Ht(c,{abi:r,address:n,args:o,docsPath:"/docs/contract/readContract",functionName:s})}}Re();ro();jt();Fa();async function jb(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,Vr,"call")({batch:!1,data:`${m}${s?s.replace("0x",""):""}`,to:n,...i,account:c}),p=Tt({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 Ht(u,{abi:r,address:n,args:o,docsPath:"/docs/contract/simulateContract",functionName:a,sender:c?.address})}}Me();ya();var Pd=new Map,Hb=new Map,Xk=0;function pt(e,t,r){let n=++Xk,o=()=>Pd.get(e)||[],s=()=>{let u=o();Pd.set(e,u.filter(p=>p.id!==n))},a=()=>{let u=o();if(!u.some(l=>l.id===n))return;let p=Hb.get(e);if(u.length===1&&p){let l=p();l instanceof Promise&&l.catch(()=>{})}s()},i=o();if(Pd.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"&&Hb.set(e,m),a}async function Xi(e){return new Promise(t=>setTimeout(t,e))}function mr(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 Xi(c);let m=async()=>{o&&(await e({unpoll:s}),await Xi(n),m())};m()})(),s}it();var Qk=new Map,eE=new Map;function Vb(e){let t=(o,s)=>({clear:()=>s.delete(o),get:()=>s.get(o),set:a=>s.set(o,a)}),r=t(e,Qk),n=t(e,eE);return{clear:()=>{r.clear(),n.clear()},promise:r,response:n}}async function Gb(e,{cacheKey:t,cacheTime:r=Number.POSITIVE_INFINITY}){let n=Vb(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 tE=e=>`blockNumber.${e}`;async function Gr(e,{cacheTime:t=e.cacheTime}={}){let r=await Gb(()=>e.request({method:"eth_blockNumber"}),{cacheKey:tE(e.uid),cacheTime:t});return BigInt(r)}async function ao(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:kr({abi:t.abi,logs:o,strict:r})}async function io(e,{filter:t}){return t.request({method:"eth_uninstallFilter",params:[t.id]})}function qb(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=X(["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,I=mr(async()=>{if(!E){try{S=await T(e,Lu,"createContractEventFilter")({abi:r,address:n,args:o,eventName:a,strict:y,fromBlock:i})}catch{}E=!0;return}try{let _;if(S)_=await T(e,ao,"getFilterChanges")({filter:S});else{let R=await T(e,Gr,"getBlockNumber")({});v&&v<R?_=await T(e,qu,"getContractEvents")({abi:r,address:n,args:o,eventName:a,fromBlock:v+1n,toBlock:R,strict:y}):_=[],v=R}if(_.length===0)return;if(s)x.onLogs(_);else for(let R of _)x.onLogs([R])}catch(_){S&&_ instanceof Dr&&(E=!1),x.onError?.(_)}},{emitOnBegin:!0,interval:p});return async()=>{S&&await T(e,io,"uninstallFilter")({filter:S}),I()}})})():(()=>{let y=l??!1,b=X(["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(F=>F.config.type==="webSocket"||F.config.type==="ipc");return R?R.value:e.transport}return e.transport})(),I=a?zr({abi:r,eventName:a,args:o}):[],{unsubscribe:_}=await E.subscribe({params:["logs",{address:n,topics:I}],onData(R){if(!x)return;let F=R.result;try{let{eventName:B,args:O}=ka({abi:r,data:F.data,topics:F.topics,strict:l}),j=at(F,{args:O,eventName:B});S.onLogs([j])}catch(B){let O,j;if(B instanceof Cr||B instanceof Mr){if(l)return;O=B.abiItem.name,j=B.abiItem.inputs?.some(fe=>!("name"in fe&&fe.name))}let q=at(F,{args:j?[]:{},eventName:O});S.onLogs([q])}},onError(R){S.onError?.(R)}});v=_,x||v()}catch(E){c?.(E)}})(),()=>v()))})()}Re();jt();Re();K();On();Ut();Hi();function Ba(e,{docsPath:t,...r}){let n=(()=>{let o=Xn(e,r);return o instanceof Qt?e:o})();return new xm(n,{docsPath:t,...r})}ba();Dn();Ls();hn();async function Na(e,{serializedTransaction:t}){return e.request({method:"eth_sendRawTransaction",params:[t]},{retryCount:0})}var Ad=new er(128);async function co(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 eo({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,At,"getChainId")({}),Us({currentChainId:v,chain:n}));let S=e.chain?.formatters?.transactionRequest?.format,I=(S||_t)({...Ur(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"),_=Ad.get(e.uid),R=_?"wallet_sendTransaction":"eth_sendTransaction";try{return await e.request({method:R,params:[I]},{retryCount:0})}catch(F){if(_===!1)throw F;let B=F;if(B.name==="InvalidInputRpcError"||B.name==="InvalidParamsRpcError"||B.name==="MethodNotFoundRpcError"||B.name==="MethodNotSupportedRpcError")return await e.request({method:"wallet_sendTransaction",params:[I]},{retryCount:0}).then(O=>(Ad.set(e.uid,!0),O)).catch(O=>{let j=O;throw j.name==="MethodNotFoundRpcError"||j.name==="MethodNotSupportedRpcError"?(Ad.set(e.uid,!1),B):j});throw B}}if(b?.type==="local"){let v=await T(e,Or,"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:[...Vi,"sidecars"],type:g,value:h,...y,to:x}),S=n?.serializers?.transaction,E=await b.signTransaction(v,{serializer:S});return await T(e,Na,"sendRawTransaction")({serializedTransaction:E})}throw b?.type==="smart"?new or({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new or({docsPath:"/docs/actions/wallet/sendTransaction",type:b?.type})}catch(x){throw x instanceof or?x:Ba(x,{...t,account:b,chain:t.chain||void 0})}}async function Vo(e,t){return Vo.internal(e,co,"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 Ht(h,{abi:a,address:c,args:m,docsPath:"/docs/contract/writeContract",functionName:p,sender:d?.address})}}e.internal=t})(Vo||(Vo={}));K();K();var lp=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}};ip();function Go(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 Xi(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();Hn();Io();Ge();Re();K();ya();jt();yt();Ge();D();var Td="0x5792579257925792579257925792579257925792579257925792579257925792",$d=k(0,{size:32});async function fp(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 Zn(new w(x,{details:x}))}if(i&&p.length>1){let b="`forceAtomic` is not supported on fallback to `eth_sendTransaction`.";throw new Yn(new w(b,{details:b}))}let g=[];for(let b of p){let x=co(e,{account:u,chain:o,data:b.data,to:b.to,value:b.value?ye(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:$d);return{id:Oe([...y,k(o.id,{size:32}),Td])}}throw Ba(l,{...t,account:u,chain:t.chain})}}async function dp(e,t){async function r(u){if(u.endsWith(Td.slice(2))){let l=Ze(Nm(u,-64,-32)),d=Nm(u,0,-64).slice(2).match(/.{1,64}/g),g=await Promise.all(d.map(y=>$d.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:ye(u.blockNumber),gasUsed:ye(u.gasUsed),status:Rf[u.status]}))??[],statusCode:m,status:c,version:a}}async function gp(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=X(["waitForCallsStatus",e.uid,r]),{promise:u,resolve:p,reject:l}=Ma(),d,g=pt(m,{resolve:p,reject:l},h=>{let y=mr(async()=>{let b=x=>{clearTimeout(d),y(),x(),g()};try{let x=await Go(async()=>{let v=await T(e,dp,"getCallsStatus")({id:r});if(c&&v.status==="failure")throw new lp(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 Rd({id:r}))},i):void 0,await u}var Rd=class extends w{constructor({id:t}){super(`Timed out while waiting for call bundle with id "${t}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}};Re();var hp=256,yp;function bp(e=11){if(!yp||hp+e>256*2){yp="",hp=0;for(let t=0;t<256;t++)yp+=(256+Math.random()*256|0).toString(16).substring(1)}return yp.substring(hp,hp+++e)}function xp(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:bp(),...i?{experimental_blockTag:i}:{}};function x(v){return S=>{let E=S(v);for(let _ in b)delete E[_];let I={...v,...E};return Object.assign(I,{extend:x(I)})}}return Object.assign(b,{extend:x(b)})}so();ro();jt();Mo();Io();D();K();Kn();function La(e){if(!(e instanceof w))return!1;let t=e.walk(r=>r instanceof No);return t instanceof No?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}Yi();yt();Ye();D();tr();Dt();function vp(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 Qi(e){let t=new Uint8Array(32).fill(0);if(!e)return ne(t);let r=e.split(".");for(let n=r.length-1;n>=0;n-=1){let o=vp(r[n]),s=o?Yt(o):ge(yr(r[n]),"bytes");t=ge(Oe([t,s]),"bytes")}return ne(t)}Ye();function Kb(e){return`[${e.slice(2)}]`}Ye();D();tr();function Wb(e){let t=new Uint8Array(32).fill(0);return e?vp(e)||ge(yr(e)):ne(t)}function Da(e){let t=e.replace(/^\.|\.$/gm,"");if(t.length===0)return new Uint8Array(1);let r=new Uint8Array(yr(t).byteLength+2),n=0,o=t.split(".");for(let s=0;s<o.length;s++){let a=yr(o[s]);a.byteLength>255&&(a=yr(Kb(Wb(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 Jb(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 nr({blockNumber:r,chain:c,contract:"ensUniversalResolver"})})(),u=c?.ensTlds;if(u&&!u.some(l=>s.endsWith(l)))return null;let p=o!=null?[Qi(s),BigInt(o)]:[Qi(s)];try{let l=ke({abi:bd,functionName:"addr",args:p}),d={address:m,abi:op,functionName:"resolveWithGateways",args:[he(Da(s)),l,a??[xn]],blockNumber:r,blockTag:n},h=await T(e,je,"readContract")(d);if(h[0]==="0x")return null;let y=Tt({abi:bd,args:p,functionName:"addr",data:h[0]});return y==="0x"||Ze(y)==="0x00"?null:y}catch(l){if(i)throw l;if(La(l))return null;throw l}}K();var wp=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"})}},mo=class extends w{constructor({reason:t}){super(`ENS NFT avatar URI is invalid. ${t}`,{name:"EnsAvatarInvalidNftUriError"})}},Ua=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"})}},Cp=class extends w{constructor({namespace:t}){super(`ENS NFT avatar namespace "${t}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}};var rE=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,nE=/^(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>\/.*)?$/,oE=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,sE=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function aE(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 Zb(e,t){return e?e.endsWith("/")?e.slice(0,-1):e:t}function Md({uri:e,gatewayUrls:t}){let r=oE.test(e);if(r)return{uri:e,isOnChain:!0,isEncoded:r};let n=Zb(t?.ipfs,"https://ipfs.io"),o=Zb(t?.arweave,"https://arweave.net"),s=e.match(rE),{protocol:a,subpath:i,target:c,subtarget:m=""}=s?.groups||{},u=a==="ipns:/"||i==="ipns/",p=a==="ipfs:/"||i==="ipfs/"||nE.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(sE,"");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 Ua({uri:e})}function Fd(e){if(typeof e!="object"||!("image"in e)&&!("image_url"in e)&&!("image_data"in e))throw new wp({data:e});return e.image||e.image_url||e.image_data}async function Yb({gatewayUrls:e,uri:t}){try{let r=await fetch(t).then(o=>o.json());return await Sp({gatewayUrls:e,uri:Fd(r)})}catch{throw new Ua({uri:t})}}async function Sp({gatewayUrls:e,uri:t}){let{uri:r,isOnChain:n}=Md({uri:t,gatewayUrls:e});if(n||await aE(r))return r;throw new Ua({uri:t})}function Xb(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 mo({reason:"Only EIP-155 supported"});if(!a)throw new mo({reason:"Chain ID not found"});if(!c)throw new mo({reason:"Contract address not found"});if(!o)throw new mo({reason:"Token ID not found"});if(!i)throw new mo({reason:"ERC namespace not found"});return{chainID:Number.parseInt(a,10),namespace:i.toLowerCase(),contractAddress:c,tokenID:o}}async function Qb(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 Cp({namespace:t.namespace})}async function ex(e,{gatewayUrls:t,record:r}){return/eip155:/i.test(r)?iE(e,{gatewayUrls:t,record:r}):Sp({uri:r,gatewayUrls:t})}async function iE(e,{gatewayUrls:t,record:r}){let n=Xb(r),o=await Qb(e,{nft:n}),{uri:s,isOnChain:a,isEncoded:i}=Md({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 Sp({uri:Fd(u),gatewayUrls:t})}let c=n.tokenID;return n.namespace==="erc1155"&&(c=c.replace("0x","").padStart(64,"0")),Yb({gatewayUrls:t,uri:s.replace(/(?:0x)?{id}/,c)})}so();ro();jt();Mo();D();Yi();async function kp(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 nr({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:op,args:[he(Da(s)),ke({abi:yd,functionName:"text",args:[Qi(s),o]}),a??[xn]],functionName:"resolveWithGateways",blockNumber:r,blockTag:n},d=await T(e,je,"readContract")(p);if(d[0]==="0x")return null;let g=Tt({abi:yd,functionName:"text",data:d[0]});return g===""?null:g}catch(p){if(i)throw p;if(La(p))return null;throw p}}async function tx(e,{blockNumber:t,blockTag:r,assetGatewayUrls:n,name:o,gatewayUrls:s,strict:a,universalResolverAddress:i}){let c=await T(e,kp,"getEnsText")({blockNumber:t,blockTag:r,key:"avatar",name:o,universalResolverAddress:i,gatewayUrls:s,strict:a});if(!c)return null;try{return await ex(e,{record:c,gatewayUrls:n})}catch{return null}}so();Mo();Yi();async function rx(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 nr({blockNumber:n,chain:c,contract:"ensUniversalResolver"})})();try{let u={address:m,abi:_b,args:[r,s,a??[xn]],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(La(u))return null;throw u}}Mo();D();async function nx(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 nr({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:[he(Da(o))],blockNumber:r,blockTag:n});return c}Fa();Re();D();sd();ba();Dn();hn();async function Ep(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||_t)({...Ur(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 Fu(y,{...t,account:h,chain:e.chain})}}async function ox(e){let t=Qn(e,{method:"eth_newBlockFilter"}),r=await e.request({method:"eth_newBlockFilter"});return{id:r,request:t(r),type:"block"}}D();async function _p(e,{address:t,args:r,event:n,events:o,fromBlock:s,strict:a,toBlock:i}={}){let c=o??(n?[n]:void 0),m=Qn(e,{method:"eth_newFilter"}),u=[];c&&(u=[c.flatMap(d=>zr({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 Ip(e){let t=Qn(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"?k(r):void 0,s=await e.request({method:"eth_getBalance",params:[t,o||n]});return BigInt(s)}async function ax(e){let t=await e.request({method:"eth_blobBaseFee"});return BigInt(t)}Ge();D();async function ix(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 ec(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 Pp=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 cx(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:cE,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 Pp({address:r}):a}}var cE=[{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 mx(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 ux(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 mx(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?kr({abi:t.abi,logs:o,strict:r}):o}D();jn();zo();async function lx({address:e,authorization:t,signature:r}){return ir(Ds(e),await eo({authorization:t,signature:r}))}K();Lo();ya();D();Ls();var Ap=new er(8192);function fx(e,{enabled:t=!0,id:r}){if(!t||!r)return e();if(Ap.get(r))return Ap.get(r);let n=e().finally(()=>Ap.delete(r));return Ap.set(r,n),n}it();function dx(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 Jn(new Error("method not supported"),{method:m});if(s?.include&&!s.include.includes(m))throw new Jn(new Error("method not supported"),{method:m});let u=o?hr(`${c}.${X(r)}`):void 0;return fx(()=>Go(async()=>{try{return await e(r)}catch(p){let l=p;switch(l.code){case Qs.code:throw new Qs(l);case ea.code:throw new ea(l);case ta.code:throw new ta(l,{method:r.method});case ra.code:throw new ra(l);case gn.code:throw new gn(l);case Dr.code:throw new Dr(l);case na.code:throw new na(l);case oa.code:throw new oa(l);case sa.code:throw new sa(l);case Jn.code:throw new Jn(l,{method:r.method});case Do.code:throw new Do(l);case aa.code:throw new aa(l);case Uo.code:throw new Uo(l);case ia.code:throw new ia(l);case ca.code:throw new ca(l);case ma.code:throw new ma(l);case ua.code:throw new ua(l);case pa.code:throw new pa(l);case Zn.code:throw new Zn(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 ha.code:throw new ha(l);case Yn.code:throw new Yn(l);case 5e3:throw new Uo(l);default:throw p instanceof w?p:new Mu(l)}}},{delay:({count:p,error:l})=>{if(l&&l instanceof ar){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})=>mE(p)}),{enabled:o,id:u})}}function mE(e){return"code"in e&&typeof e.code=="number"?e.code===-1||e.code===Do.code||e.code===gn.code:e instanceof ar&&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();Lo();function gx(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 uE(){return{current:0,take(){return this.current++},reset(){this.current=0}}}var Bd=uE();function hx(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 gx(async({signal:g})=>{let h={...c,body:Array.isArray(n)?X(n.map(v=>({jsonrpc:"2.0",id:v.id??Bd.take(),...v}))):X({jsonrpc:"2.0",id:n.id??Bd.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 ji({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 ar({body:n,details:X(d.error)||l.statusText,headers:l.headers,status:l.status,url:e});return d}catch(l){throw l instanceof ar||l instanceof ji?l:new ar({body:n,cause:l,url:e})}}}}tr();var yx=`Ethereum Signed Message:
55
+ `;yt();Zt();D();function bx(e){let t=typeof e=="string"?hr(e):typeof e.raw=="string"?e.raw:ne(e.raw),r=hr(`${yx}${re(t)}`);return Oe([r,t])}function za(e,t){return ge(bx(e),t)}fn();yt();D();tr();Me();vr();it();K();var Tp=class extends w{constructor({domain:t}){super(`Invalid domain "${X(t)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}},$p=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`."]})}},Rp=class extends w{constructor({type:t}){super(`Struct type "${t}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}};zt();Zt();D();Yf();it();function xx(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 X({domain:a,message:i,primaryType:n,types:o})}function Mp(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(Eu);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"&&!ae(p))throw new de({address:p});let d=u.match(By);if(d){let[h,y]=d;if(y&&re(p)!==Number.parseInt(y,10))throw new Xm({expectedSize:Number.parseInt(y,10),givenSize:re(p)})}let g=o[u];g&&(pE(u),s(g,p))}};if(o.EIP712Domain&&t){if(typeof t!="object")throw new Tp({domain:t});s(o.EIP712Domain,t)}if(n!=="EIP712Domain")if(o[n])s(o[n],r);else throw new $p({primaryType:n,types:o})}function Fp({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 pE(e){if(e==="address"||e==="bool"||e==="string"||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new Rp({type:e})}function Bp(e){let{domain:t={},message:r,primaryType:n}=e,o={EIP712Domain:Fp({domain:t}),...e.types};Mp({domain:t,message:r,primaryType:n,types:o});let s=["0x1901"];return t&&s.push(lE({domain:t,types:o})),n!=="EIP712Domain"&&s.push(vx({data:r,primaryType:n,types:o})),ge(Oe(s))}function lE({domain:e,types:t}){return vx({data:e,primaryType:"EIP712Domain",types:t})}function vx({data:e,primaryType:t,types:r}){let n=wx({data:e,primaryType:t,types:r});return ge(n)}function wx({data:e,primaryType:t,types:r}){let n=[{type:"bytes32"}],o=[fE({primaryType:t,types:r})];for(let s of r[t]){let[a,i]=Sx({types:r,name:s.name,type:s.type,value:e[s.name]});n.push(a),o.push(i)}return bt(n,o)}function fE({primaryType:e,types:t}){let r=he(dE({primaryType:e,types:t}));return ge(r)}function dE({primaryType:e,types:t}){let r="",n=Cx({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 Cx({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])Cx({primaryType:s.type,types:t},r);return r}function Sx({types:e,name:t,type:r,value:n}){if(e[r]!==void 0)return[{type:"bytes32"},ge(wx({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(he(n))];if(r.lastIndexOf("]")===r.length-1){let o=r.slice(0,r.lastIndexOf("[")),s=n.map(a=>Sx({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 ic={};Cf(ic,{InvalidWrappedSignatureError:()=>Zp,assert:()=>Yp,from:()=>ZE,magicBytes:()=>i0,suffixParameters:()=>c0,unwrap:()=>Vx,validate:()=>XE,wrap:()=>YE});Di();no();var Np=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 gE={checksum:new Np(8192)},Lp=gE.checksum;$t();Uf();no();et();function qo(e,t={}){let{as:r=typeof e=="string"?"Hex":"Bytes"}=t,n=Bm(gb(e));return r==="Bytes"?n:Ue(n)}no();$t();et();Ki();function kx(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 Dp({prefix:n,cause:new Ud});return}if(r===!0||typeof o=="bigint"&&typeof s>"u"){if(n!==3&&n!==2)throw new Dp({prefix:n,cause:new Dd});return}throw new Ld({publicKey:e})}function Ex(e){let t=(()=>{if(Ji(e))return _x(e);if(wb(e))return yE(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 kx(t),t}function yE(e){return _x(Ue(e))}function _x(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 Od(e,t={}){kx(e);let{prefix:r,x:n,y:o}=e,{includePrefix:s=!0}=t;return Te(s?ce(r,{size:1}):"0x",ce(n,{size:32}),typeof o=="bigint"?ce(o,{size:32}):"0x")}var Ld=class extends N{constructor({publicKey:t}){super(`Value \`${oo(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"})}},Dp=class extends N{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"})}},Dd=class extends N{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"})}},Ud=class extends N{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 N{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(Ta(t))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"})}};var bE=/^0x[a-fA-F0-9]{40}$/;function Ko(e,t={}){let{strict:r=!0}=t;if(!bE.test(e))throw new Up({address:e,cause:new jd});if(r){if(e.toLowerCase()===e)return;if(zp(e)!==e)throw new Up({address:e,cause:new Hd})}}function zp(e){if(Lp.has(e))return Lp.get(e);Ko(e,{strict:!1});let t=e.substring(2).toLowerCase(),r=qo(hb(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 Lp.set(e,o),o}function xE(e,t={}){let{checksum:r=!1}=t;return Ko(e),r?zp(e):e}function Px(e,t={}){let r=qo(`0x${Od(e).slice(4)}`).substring(26);return xE(`0x${r}`,t)}function Op(e,t={}){let{strict:r=!0}=t??{};try{return Ko(e,{strict:r}),!0}catch{return!1}}var Up=class extends N{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"})}},jd=class extends N{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"})}},Hd=class extends N{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}};no();$t();et();no();$t();et();var Ax=/^(.*)\[([0-9]*)\]$/,Tx=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Hp=/^(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)?$/,kW=2n**(8n-1n)-1n,EW=2n**(16n-1n)-1n,_W=2n**(24n-1n)-1n,IW=2n**(32n-1n)-1n,PW=2n**(40n-1n)-1n,AW=2n**(48n-1n)-1n,TW=2n**(56n-1n)-1n,$W=2n**(64n-1n)-1n,RW=2n**(72n-1n)-1n,MW=2n**(80n-1n)-1n,FW=2n**(88n-1n)-1n,BW=2n**(96n-1n)-1n,NW=2n**(104n-1n)-1n,LW=2n**(112n-1n)-1n,DW=2n**(120n-1n)-1n,UW=2n**(128n-1n)-1n,zW=2n**(136n-1n)-1n,OW=2n**(144n-1n)-1n,jW=2n**(152n-1n)-1n,HW=2n**(160n-1n)-1n,VW=2n**(168n-1n)-1n,GW=2n**(176n-1n)-1n,qW=2n**(184n-1n)-1n,KW=2n**(192n-1n)-1n,WW=2n**(200n-1n)-1n,JW=2n**(208n-1n)-1n,ZW=2n**(216n-1n)-1n,YW=2n**(224n-1n)-1n,XW=2n**(232n-1n)-1n,QW=2n**(240n-1n)-1n,eJ=2n**(248n-1n)-1n,tJ=2n**(256n-1n)-1n,rJ=-(2n**(8n-1n)),nJ=-(2n**(16n-1n)),oJ=-(2n**(24n-1n)),sJ=-(2n**(32n-1n)),aJ=-(2n**(40n-1n)),iJ=-(2n**(48n-1n)),cJ=-(2n**(56n-1n)),mJ=-(2n**(64n-1n)),uJ=-(2n**(72n-1n)),pJ=-(2n**(80n-1n)),lJ=-(2n**(88n-1n)),fJ=-(2n**(96n-1n)),dJ=-(2n**(104n-1n)),gJ=-(2n**(112n-1n)),hJ=-(2n**(120n-1n)),yJ=-(2n**(128n-1n)),bJ=-(2n**(136n-1n)),xJ=-(2n**(144n-1n)),vJ=-(2n**(152n-1n)),wJ=-(2n**(160n-1n)),CJ=-(2n**(168n-1n)),SJ=-(2n**(176n-1n)),kJ=-(2n**(184n-1n)),EJ=-(2n**(192n-1n)),_J=-(2n**(200n-1n)),IJ=-(2n**(208n-1n)),PJ=-(2n**(216n-1n)),AJ=-(2n**(224n-1n)),TJ=-(2n**(232n-1n)),$J=-(2n**(240n-1n)),RJ=-(2n**(248n-1n)),MJ=-(2n**(256n-1n)),FJ=2n**8n-1n,BJ=2n**16n-1n,NJ=2n**24n-1n,LJ=2n**32n-1n,DJ=2n**40n-1n,UJ=2n**48n-1n,zJ=2n**56n-1n,OJ=2n**64n-1n,jJ=2n**72n-1n,HJ=2n**80n-1n,VJ=2n**88n-1n,GJ=2n**96n-1n,qJ=2n**104n-1n,KJ=2n**112n-1n,WJ=2n**120n-1n,JJ=2n**128n-1n,ZJ=2n**136n-1n,YJ=2n**144n-1n,XJ=2n**152n-1n,QJ=2n**160n-1n,eZ=2n**168n-1n,tZ=2n**176n-1n,rZ=2n**184n-1n,nZ=2n**192n-1n,oZ=2n**200n-1n,sZ=2n**208n-1n,aZ=2n**216n-1n,iZ=2n**224n-1n,cZ=2n**232n-1n,mZ=2n**240n-1n,uZ=2n**248n-1n,Vd=2n**256n-1n;function Wo(e,t,r){let{checksumAddress:n,staticPosition:o}=r,s=Kd(t.type);if(s){let[a,i]=s;return wE(e,{...t,type:i},{checksumAddress:n,length:a,staticPosition:o})}if(t.type==="tuple")return EE(e,t,{checksumAddress:n,staticPosition:o});if(t.type==="address")return vE(e,{checksum:n});if(t.type==="bool")return CE(e);if(t.type.startsWith("bytes"))return SE(e,t,{staticPosition:o});if(t.type.startsWith("uint")||t.type.startsWith("int"))return kE(e,t);if(t.type==="string")return _E(e,{staticPosition:o});throw new Oa(t.type)}var Rx=32,Gd=32;function vE(e,t={}){let{checksum:r=!1}=t,n=e.readBytes(32);return[(s=>r?zp(s):s)(Ue(yb(n,-20))),32]}function wE(e,t,r){let{checksumAddress:n,length:o,staticPosition:s}=r;if(!o){let c=jr(e.readBytes(Gd)),m=s+c,u=m+Rx;e.setPosition(m);let p=jr(e.readBytes(Rx)),l=tc(t),d=0,g=[];for(let h=0;h<p;++h){e.setPosition(u+(l?h*32:d));let[y,b]=Wo(e,t,{checksumAddress:n,staticPosition:u});d+=b,g.push(y)}return e.setPosition(s+32),[g,32]}if(tc(t)){let c=jr(e.readBytes(Gd)),m=s+c,u=[];for(let p=0;p<o;++p){e.setPosition(m+p*32);let[l]=Wo(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]=Wo(e,t,{checksumAddress:n,staticPosition:s+a});a+=u,i.push(m)}return[i,a]}function CE(e){return[xb(e.readBytes(32),{size:32}),32]}function SE(e,t,{staticPosition:r}){let[n,o]=t.type.split("bytes");if(!o){let a=jr(e.readBytes(32));e.setPosition(r+a);let i=jr(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 kE(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?bb(o,{signed:r}):jr(o,{signed:r}),32]}function EE(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(tc(t)){let c=jr(e.readBytes(Gd)),m=o+c;for(let u=0;u<t.components.length;++u){let p=t.components[u];e.setPosition(m+i);let[l,d]=Wo(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]=Wo(e,m,{checksumAddress:n,staticPosition:o});a[s?c:m?.name]=u,i+=p}return[a,i]}function _E(e,{staticPosition:t}){let r=jr(e.readBytes(32)),n=t+r;e.setPosition(n);let o=jr(e.readBytes(32));if(o===0)return e.setPosition(t+32),["",32];let s=e.readBytes(o,32),a=vb(fd(s));return e.setPosition(t+32),[a,32]}function Mx({checksumAddress:e,parameters:t,values:r}){let n=[];for(let o=0;o<t.length;o++)n.push(qd({checksumAddress:e,parameter:t[o],value:r[o]}));return n}function qd({checksumAddress:e=!1,parameter:t,value:r}){let n=t,o=Kd(n.type);if(o){let[s,a]=o;return PE(r,{checksumAddress:e,length:s,parameter:{...n,type:a}})}if(n.type==="tuple")return ME(r,{checksumAddress:e,parameter:n});if(n.type==="address")return IE(r,{checksum:e});if(n.type==="bool")return TE(r);if(n.type.startsWith("uint")||n.type.startsWith("int")){let s=n.type.startsWith("int"),[,,a="256"]=Hp.exec(n.type)??[];return $E(r,{signed:s,size:Number(a)})}if(n.type.startsWith("bytes"))return AE(r,{type:n.type});if(n.type==="string")return RE(r);throw new Oa(n.type)}function Vp(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(ce(t+o,{size:32})),n.push(i),o+=Ie(i)):r.push(i)}return Te(...r,...n)}function IE(e,t){let{checksum:r=!1}=t;return Ko(e,{strict:r}),{dynamic:!1,encoded:bn(e.toLowerCase())}}function PE(e,t){let{checksumAddress:r,length:n,parameter:o}=t,s=n===null;if(!Array.isArray(e))throw new qp(e);if(!s&&e.length!==n)throw new Gp({expectedLength:n,givenLength:e.length,type:`${o.type}[${n}]`});let a=!1,i=[];for(let c=0;c<e.length;c++){let m=qd({checksumAddress:r,parameter:o,value:e[c]});m.dynamic&&(a=!0),i.push(m)}if(s||a){let c=Vp(i);if(s){let m=ce(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 AE(e,{type:t}){let[,r]=t.split("bytes"),n=Ie(e);if(!r){let o=e;return n%32!==0&&(o=Hr(o,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:Te(bn(ce(n,{size:32})),o)}}if(n!==Number.parseInt(r,10))throw new rc({expectedSize:Number.parseInt(r,10),value:e});return{dynamic:!1,encoded:Hr(e)}}function TE(e){if(typeof e!="boolean")throw new N(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:bn(tp(e))}}function $E(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 Wi({max:n.toString(),min:o.toString(),signed:t,size:r/8,value:e.toString()})}return{dynamic:!1,encoded:ce(e,{size:32,signed:t})}}function RE(e){let t=$a(e),r=Math.ceil(Ie(t)/32),n=[];for(let o=0;o<r;o++)n.push(Hr(Pe(t,o*32,(o+1)*32)));return{dynamic:!0,encoded:Te(Hr(ce(Ie(t),{size:32})),...n)}}function ME(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=qd({checksumAddress:r,parameter:i,value:e[c]});s.push(m),m.dynamic&&(o=!0)}return{dynamic:o,encoded:o?Vp(s):Te(...s.map(({encoded:a})=>a))}}function Kd(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}function tc(e){let{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return e.components?.some(tc);let r=Kd(e.type);return!!(r&&tc({...e,type:r[1]}))}$t();var BE={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 Jd({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new Wd({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Kp({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 Kp({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 Wp(e,{recursiveReadLimit:t=8192}={}){let r=Object.create(BE);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}var Kp=class extends N{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}},Wd=class extends N{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"})}},Jd=class extends N{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 ja(e,t,r={}){let{as:n="Array",checksumAddress:o=!1}=r,s=typeof t=="string"?Aa(t):t,a=Wp(s);if(cr(s)===0&&e.length>0)throw new Xd;if(cr(s)&&cr(s)<32)throw new Yd({data:typeof t=="string"?t:Ue(t),parameters:e,size:cr(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]=Wo(a,u,{checksumAddress:o,staticPosition:0});i+=l,n==="Array"?c.push(p):c[u.name??m]=p}return c}function uo(e,t,r){let{checksumAddress:n=!1}=r??{};if(e.length!==t.length)throw new Jp({expectedLength:e.length,givenLength:t.length});let o=Mx({checksumAddress:n,parameters:e,values:t}),s=Vp(o);return s.length===0?"0x":s}function Zd(e,t){if(e.length!==t.length)throw new Jp({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(Zd.encode(o,s))}return Te(...r)}(function(e){function t(r,n,o=!1){if(r==="address"){let c=n;return Ko(c),bn(c.toLowerCase(),o?32:0)}if(r==="string")return $a(n);if(r==="bytes")return n;if(r==="bool")return bn(tp(n),o?32:1);let s=r.match(Hp);if(s){let[c,m,u="256"]=s,p=Number.parseInt(u,10)/8;return ce(n,{size:o?32:p,signed:m==="int"})}let a=r.match(Tx);if(a){let[c,m]=a;if(Number.parseInt(m,10)!==(n.length-2)/2)throw new rc({expectedSize:Number.parseInt(m,10),value:n});return Hr(n,o?32:0)}let i=r.match(Ax);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 Oa(r)}e.encode=t})(Zd||(Zd={}));function oc(e){return Array.isArray(e)&&typeof e[0]=="string"?Su(e):typeof e=="string"?Su(e):e}var Yd=class extends N{constructor({data:t,parameters:r,size:n}){super(`Data size of ${n} bytes is too small for given parameters.`,{metaMessages:[`Params: (${ln(r)})`,`Data: ${t} (${n} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}},Xd=class extends N{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.'),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"})}},Gp=class extends N{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"})}},rc=class extends N{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"})}},Jp=class extends N{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"})}},qp=class extends N{constructor(t){super(`Value \`${t}\` is not a valid array.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"})}},Oa=class extends N{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();no();$t();et();function NE(e,t){let{as:r}=t,n=Nx(e),o=Wp(new Uint8Array(n.length));return n.encode(o),r==="Hex"?Ue(o.bytes):o.bytes}function Bx(e,t={}){let{as:r="Hex"}=t;return NE(e,{as:r})}function Nx(e){return Array.isArray(e)?LE(e.map(t=>Nx(t))):DE(e)}function LE(e){let t=e.reduce((o,s)=>o+s.length,0),r=Lx(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 DE(e){let t=typeof e=="string"?Aa(e):e,r=Lx(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 Lx(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 N("Length is too large.")}import{secp256k1 as dZ}from"@noble/curves/secp256k1";$t();et();Ki();function n0(e,t={}){let{recovered:r}=t;if(typeof e.r>"u")throw new sc({signature:e});if(typeof e.s>"u")throw new sc({signature:e});if(r&&typeof e.yParity>"u")throw new sc({signature:e});if(e.r<0n||e.r>Vd)throw new e0({value:e.r});if(e.s<0n||e.s>Vd)throw new t0({value:e.s});if(typeof e.yParity=="number"&&e.yParity!==0&&e.yParity!==1)throw new ac({value:e.yParity})}function zE(e){return Dx(Ue(e))}function Dx(e){if(e.length!==130&&e.length!==132)throw new Qd({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 a0(o)}catch{throw new ac({value:o})}})();return typeof n>"u"?{r:t,s:r}:{r:t,s:r,yParity:n}}function o0(e){if(!(typeof e.r>"u")&&!(typeof e.s>"u"))return s0(e)}function s0(e){let t=typeof e=="string"?Dx(e):e instanceof Uint8Array?zE(e):typeof e.r=="string"?jE(e):e.v?OE(e):{r:e.r,s:e.s,...typeof e.yParity<"u"?{yParity:e.yParity}:{}};return n0(t),t}function OE(e){return{r:e.r,s:e.s,yParity:a0(e.v)}}function jE(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=a0(r)),typeof n!="number")throw new ac({value:e.yParity});return n})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:t}}function Ux(e){let{r:t,s:r,yParity:n}=e;return[n?"0x01":"0x",t===0n?"0x":gd(ce(t)),r===0n?"0x":gd(ce(r))]}function a0(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 r0({value:e})}var Qd=class extends N{constructor({signature:t}){super(`Value \`${t}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Ie(Ta(t))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}},sc=class extends N{constructor({signature:t}){super(`Signature \`${oo(t)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}},e0=class extends N{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"})}},t0=class extends N{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"})}},ac=class extends N{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"})}},r0=class extends N{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 Ox(e,t={}){return typeof e.chainId=="string"?HE(e):{...e,...t.signature}}function HE(e){let{address:t,chainId:r,nonce:n}=e,o=o0(e);return{address:t,chainId:Number(r),nonce:BigInt(n),...o}}function jx(e){return VE(e,{presign:!0})}function VE(e,t={}){let{presign:r}=t;return qo(Te("0x05",Bx(GE(r?{address:e.address,chainId:e.chainId,nonce:e.nonce}:e))))}function GE(e){let{address:t,chainId:r,nonce:n}=e,o=o0(e);return[r?ce(r):"0x",t,n?ce(n):"0x",...o?Ux(o):[]]}$t();et();import{secp256k1 as KE}from"@noble/curves/secp256k1";et();function Hx(e){return Px(WE(e))}function WE(e){let{payload:t,signature:r}=e,{r:n,s:o,yParity:s}=r,i=new KE.Signature(BigInt(n),BigInt(o)).addRecoveryBit(s).recoverPublicKey(Ta(t).substring(2));return Ex(i)}var i0="0x8010801080108010801080108010801080108010801080108010801080108010",c0=oc("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function Yp(e){if(typeof e=="string"){if(Pe(e,-32)!==i0)throw new Zp(e)}else n0(e.authorization)}function ZE(e){return typeof e=="string"?Vx(e):e}function Vx(e){Yp(e);let t=Xu(Pe(e,-64,-32)),r=Pe(e,-t-64,-64),n=Pe(e,0,-t-64),[o,s,a]=ja(c0,r);return{authorization:Ox({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 YE(e){let{data:t,signature:r}=e;Yp(e);let n=Hx({payload:jx(e.authorization),signature:s0(e.authorization)}),o=uo(c0,[{...e.authorization,delegation:e.authorization.address,chainId:BigInt(e.authorization.chainId)},e.to??n,t??"0x"]),s=ce(Ie(o),{size:32});return Te(r,o,s,i0)}function XE(e){try{return Yp(e),!0}catch{return!1}}var Zp=class extends N{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"})}};lm();K();var Xp=class extends w{constructor({value:t}){super(`Number \`${t}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}};function Gx(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new Xp({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 Jo(e,t="wei"){return Gx(e,pm[t])}function QE(e){return e.map(t=>({...t,value:BigInt(t.value)}))}function qx(e){return{...e,balance:e.balance?BigInt(e.balance):void 0,nonce:e.nonce?Ae(e.nonce):void 0,storageProof:e.storageProof?QE(e.storageProof):void 0}}async function Kx(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 qx(i)}D();async function Wx(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]})}Ut();D();async function Ha(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 vs({blockHash:t,blockNumber:r,blockTag:a,hash:o,index:s});return(e.chain?.formatters?.transaction?.format||Po)(c,"getTransaction")}async function Jx(e,{hash:t,transactionReceipt:r}){let[n,o]=await Promise.all([T(e,Gr,"getBlockNumber")({}),t?T(e,Ha,"getTransaction")({hash:t}):void 0]),s=r?.blockNumber||o?.blockNumber;return s?n-s+1n:0n}Ut();async function Va(e,{hash:t}){let r=await e.request({method:"eth_getTransactionReceipt",params:[t]},{dedupe:!0});if(!r)throw new ws({hash:t});return(e.chain?.formatters?.transactionReceipt?.format||Si)(r,"getTransactionReceipt")}so();Zi();Me();K();Kn();ro();jt();Mo();async function Zx(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 nr({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:I}=m[x];try{let _=ke({abi:v,args:E,functionName:I});h+=(_.length-2)/2,u>0&&h>u&&d[g].length>0&&(g++,h=(_.length-2)/2,d[g]=[]),d[g]=[...d[g],{allowFailure:!0,callData:_,target:S}]}catch(_){let R=Ht(_,{abi:v,address:S,args:E,docsPath:"/docs/contract/multicall",functionName:I,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:Ra}:{address:l},abi:jo,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:I,success:_}=S[E],{callData:R}=d[x][E],{abi:F,address:B,functionName:O,args:j}=m[b.length];try{if(R==="0x")throw new sr;if(!_)throw new Lr({data:I});let q=Tt({abi:F,args:j,data:I,functionName:O});b.push(o?{result:q,status:"success"}:q)}catch(q){let fe=Ht(q,{abi:F,address:B,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}hd();Re();Me();Kn();On();ro();jt();yt();D();Hi();Dn();ju();hn();async function cc(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?rp(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),_t(S)}),h=l.stateOverrides?xa(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)=>({...Ci(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),I=g.logs?.map(B=>at(B)),_=g.status==="0x1"?"success":"failure",R=y&&_==="success"&&S!=="0x"?Tt({abi:y,data:S,functionName:x}):null,F=(()=>{if(_==="success")return;let B;if(g.error?.data==="0x"?B=new sr:g.error&&(B=new Lr(g.error)),!!B)return Ht(B,{abi:y??[],address:v??"0x",args:b,functionName:x??"<unknown>"})})();return{data:S,gasUsed:E,logs:I,status:_,..._==="success"?{result:R}:{error:F}}})}))}catch(c){let m=c,u=Xn(m,{});throw u instanceof Qt?m:u}}Di();$t();et();$t();function el(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 N("Unable to normalize signature.");return o}function Qp(e,t){let r=typeof e,n=t.type;switch(n){case"address":return Op(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)=>Qp(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=>Qp(o,{...t,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function m0(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 m0(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")?Op(r[n],{strict:!1}):a.includes("address")&&a.includes("bytes")?Op(r[n],{strict:!1}):!1)return a}}function tl(e,t={}){let{prepare:r=!0}=t,n=Array.isArray(e)?Cu(e):typeof e=="string"?Cu(e):e;return{...n,...r?{hash:Ga(n)}:{}}}function mc(e,t,r){let{args:n=[],prepare:o=!0}=r??{},s=Ji(t,{strict:!1}),a=e.filter(m=>s?m.type==="function"||m.type==="error"?p0(m)===Pe(t,0,4):m.type==="event"?Ga(m)===t:!1:"name"in m&&m.name===t);if(a.length===0)throw new po({name:t});if(a.length===1)return{...a[0],...o?{hash:Ga(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:Ga(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?Qp(p,d):!1})){if(i&&"inputs"in i&&i.inputs){let p=m0(m.inputs,i.inputs,n);if(p)throw new u0({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 po({name:t});return{...c,...o?{hash:Ga(c)}:{}}}function p0(...e){let t=(()=>{if(Array.isArray(e[0])){let[r,n]=e;return mc(r,n)}return e[0]})();return Pe(Ga(t),0,4)}function t_(...e){let t=(()=>{if(Array.isArray(e[0])){let[n,o]=e;return mc(n,o)}return e[0]})(),r=typeof t=="string"?t:Fo(t);return el(r)}function Ga(...e){let t=(()=>{if(Array.isArray(e[0])){let[r,n]=e;return mc(r,n)}return e[0]})();return typeof t!="string"&&"hash"in t&&t.hash?t.hash:qo($a(t_(t)))}var u0=class extends N{constructor(t,r){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${t.type}\` in \`${el(Fo(t.abiItem))}\`, and`,`\`${r.type}\` in \`${el(Fo(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"})}},po=class extends N{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 Xx(...e){let[t,r]=(()=>{if(Array.isArray(e[0])){let[s,a]=e;return[r_(s),a]}return e})(),{bytecode:n,args:o}=r;return Te(n,t.inputs?.length&&o?.length?uo(t.inputs,o):"0x")}function Qx(e){return tl(e)}function r_(e){let t=e.find(r=>r.type==="constructor");if(!t)throw new po({name:"constructor"});return t}et();function t1(...e){let[t,r=[]]=(()=>{if(Array.isArray(e[0])){let[m,u,p]=e;return[e1(m,u,{args:p}),p]}let[i,c]=e;return[i,c]})(),{overloads:n}=t,o=n?e1([t,...n],t.name,{args:r}):t,s=o_(o),a=r.length>0?uo(o.inputs,r):void 0;return a?Te(s,a):s}function Zo(e,t={}){return tl(e,t)}function e1(e,t,r){let n=mc(e,t,r);if(n.type!=="function")throw new po({name:t,type:"function"});return n}function o_(e){return p0(e)}Re();var r1="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Er="0x0000000000000000000000000000000000000000";Zi();K();jt();var a_="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function n1(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?Xx(Qx("constructor(bytes, bytes)"),{bytecode:sp,args:[a_,t1(Zo("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:Le}=await Ep(e,{account:m.address,...H,data:H.abi?ke(H):H.data});return Le.map(({address:$r,storageKeys:Mn})=>Mn.length>0?$r:null)})).then(H=>H.flat().filter(Boolean)):[],l=await cc(e,{blockNumber:r,blockTag:n,blocks:[...a?[{calls:[{data:u}],stateOverrides:s},{calls:p.map((H,Le)=>({abi:[Zo("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[m.address],to:H,from:Er,nonce:Le})),stateOverrides:[{address:Er,nonce:0}]}]:[],{calls:[...o,{}].map(H=>({...H,from:m?.address})),stateOverrides:s},...a?[{calls:[{data:u}]},{calls:p.map((H,Le)=>({abi:[Zo("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[m.address],to:H,from:Er,nonce:Le})),stateOverrides:[{address:Er,nonce:0}]},{calls:p.map((H,Le)=>({to:H,abi:[Zo("function decimals() returns (uint256)")],functionName:"decimals",from:Er,nonce:Le})),stateOverrides:[{address:Er,nonce:0}]},{calls:p.map((H,Le)=>({to:H,abi:[Zo("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Er,nonce:Le})),stateOverrides:[{address:Er,nonce:0}]},{calls:p.map((H,Le)=>({to:H,abi:[Zo("function symbol() returns (string)")],functionName:"symbol",from:Er,nonce:Le})),stateOverrides:[{address:Er,nonce:0}]}]:[]],traceTransfers:i,validation:c}),d=a?l[2]:l[0],[g,h,,y,b,x,v,S]=a?l:[],{calls:E,...I}=d,_=E.slice(0,-1)??[],R=g?.calls??[],F=h?.calls??[],B=[...R,...F].map(H=>H.status==="success"?ye(H.data):null),O=y?.calls??[],j=b?.calls??[],q=[...O,...j].map(H=>H.status==="success"?ye(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),J=(v?.calls??[]).map(H=>H.status==="success"?H.result:null),Ve=[];for(let[H,Le]of q.entries()){let $r=B[H];if(typeof Le!="bigint"||typeof $r!="bigint")continue;let Mn=fe[H-1],ve=Se[H-1],Fn=J[H-1],dr=H===0?{address:r1,decimals:18,symbol:"ETH"}:{address:p[H-1],decimals:Fn||Mn?Number(Mn??1):void 0,symbol:ve??void 0};Ve.some(vf=>vf.token.address===dr.address)||Ve.push({token:dr,value:{pre:$r,post:Le,diff:Le-$r}})}return{assetChanges:Ve,block:I,results:_}}var uc={};Cf(uc,{InvalidWrappedSignatureError:()=>rl,assert:()=>f0,from:()=>m_,magicBytes:()=>l0,universalSignatureValidatorAbi:()=>c_,universalSignatureValidatorBytecode:()=>i_,unwrap:()=>o1,validate:()=>p_,wrap:()=>u_});$t();et();var l0="0x6492649264926492649264926492649264926492649264926492649264926492",i_="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",c_=[{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 f0(e){if(Pe(e,-32)!==l0)throw new rl(e)}function m_(e){return typeof e=="string"?o1(e):e}function o1(e){f0(e);let[t,r,n]=ja(oc("address, bytes, bytes"),e);return{data:r,signature:n,to:t}}function u_(e){let{data:t,signature:r,to:n}=e;return Te(uo(oc("address, bytes, bytes"),[n,t,r]),l0)}function p_(e){try{return f0(e),!0}catch{return!1}}var rl=class extends N{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"})}};so();Zi();Kn();ap();jt();jn();zo();yt();Dt();Ge();D();Ge();Ye();import{secp256k1 as l_}from"@noble/curves/secp256k1";function nl({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 l_.Signature(ye(e),ye(t)).toCompactHex()}${s===0?"1b":"1c"}`;return r==="hex"?a:qe(a)}Fa();async function lo(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?nl(i):ne(i)})();try{return ic.validate(a)?await f_(e,{...t,multicallAddress:s,signature:a}):await d_(e,{...t,verifierAddress:o,signature:a})}catch(i){try{if(ir(Ds(r),await Uu({hash:n,signature:a})))return!0}catch{}if(i instanceof vn)return!1;throw i}}async function f_(e,t){let{address:r,blockNumber:n,blockTag:o,hash:s,multicallAddress:a}=t,{authorization:i,data:c,signature:m,to:u}=ic.unwrap(t.signature);if(await ec(e,{address:r,blockNumber:n,blockTag:o})===Xe(["0xef0100",i.address]))return await g_(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 lx({address:r,authorization:l}))throw new vn;let g=await T(e,je,"readContract")({...a?{address:a}:{code:Ra},authorizationList:[l],abi:jo,blockNumber:n,blockTag:"pending",functionName:"aggregate3",args:[[...c?[{allowFailure:!0,target:u??r,callData:c}]:[],{allowFailure:!0,target:r,callData:ke({abi:xd,functionName:"isValidSignature",args:[s,m]})}]]});if(g[g.length-1]?.returnData?.startsWith("0x1626ba7e"))return!0;throw new vn}async function d_(e,t){let{address:r,factory:n,factoryData:o,hash:s,signature:a,verifierAddress:i,...c}=t,m=await(async()=>!n&&!o||uc.validate(a)?a:uc.wrap({data:o,signature:a,to:n}))(),u=i?{to:i,data:ke({abi:vd,functionName:"isValidSig",args:[r,s,m]}),...c}:{data:Ho({abi:vd,args:[r,s,m],bytecode:Tb}),...c},{data:p}=await T(e,Vr,"call")(u).catch(l=>{throw l instanceof Ys?new vn:l});if(Tf(p??"0x0"))return!0;throw new vn}async function g_(e,t){let{address:r,blockNumber:n,blockTag:o,hash:s,signature:a}=t;if((await T(e,je,"readContract")({address:r,abi:xd,args:[s,a],blockNumber:n,blockTag:o,functionName:"isValidSignature"}).catch(c=>{throw c instanceof Xs?new vn:c})).startsWith("0x1626ba7e"))return!0;throw new vn}var vn=class extends Error{};async function s1(e,{address:t,message:r,factory:n,factoryData:o,signature:s,...a}){let i=za(r);return lo(e,{address:t,factory:n,factoryData:o,hash:i,signature:s,...a})}async function a1(e,t){let{address:r,factory:n,factoryData:o,signature:s,message:a,primaryType:i,types:c,domain:m,...u}=t,p=Bp({message:a,primaryType:i,types:c,domain:m});return lo(e,{address:r,factory:n,factoryData:o,hash:p,signature:s,...u})}Ut();ip();it();Ge();it();function ol(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=X(["watchBlockNumber",e.uid,t,r,a]);return pt(p,{onBlockNumber:n,onError:o},l=>mr(async()=>{try{let d=await T(e,Gr,"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=X(["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=ye(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 sl(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=X(["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}=Ma(),S=c?setTimeout(()=>{y?.(),h?.(),v(new vm({hash:o}))},c):void 0;return h=pt(m,{onReplaced:s,resolve:x,reject:v},async E=>{if(d=await T(e,Va,"getTransactionReceipt")({hash:o}).catch(()=>{}),d&&n<=1){clearTimeout(S),E.resolve(d),h?.();return}y=T(e,ol,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:u,async onBlockNumber(I){let _=F=>{clearTimeout(S),y?.(),F(),h?.()},R=I;if(!g)try{if(d){if(n>1&&(!d.blockNumber||R-d.blockNumber+1n<n))return;_(()=>E.resolve(d));return}if(r&&!p&&(g=!0,await Go(async()=>{p=await T(e,Ha,"getTransaction")({hash:o}),p.blockNumber&&(R=p.blockNumber)},{delay:i,retryCount:a}),g=!1),d=await T(e,Va,"getTransactionReceipt")({hash:o}),n>1&&(!d.blockNumber||R-d.blockNumber+1n<n))return;_(()=>E.resolve(d))}catch(F){if(F instanceof vs||F instanceof ws){if(!p){g=!1;return}try{l=p,g=!0;let B=await Go(()=>T(e,ut,"getBlock")({blockNumber:R,includeTransactions:!0}),{delay:i,retryCount:a,shouldRetry:({error:q})=>q instanceof va});g=!1;let O=B.transactions.find(({from:q,nonce:fe})=>q===l.from&&fe===l.nonce);if(!O||(d=await T(e,Va,"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"),_(()=>{E.onReplaced?.({reason:j,replacedTransaction:l,transaction:O,transactionReceipt:d}),E.resolve(d)})}catch(B){_(()=>E.reject(B))}}else _(()=>E.reject(F))}}})}),b}it();function i1(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=X(["watchBlocks",e.uid,t,r,n,u,c]);return pt(g,{onBlock:o,onError:s},h=>mr(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();ya();it();function c1(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=X(["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=mr(async()=>{if(!S){try{v=await T(e,_p,"createEventFilter")({address:t,args:r,event:o,events:s,strict:d,fromBlock:a})}catch{}S=!0;return}try{let I;if(v)I=await T(e,ao,"getFilterChanges")({filter:v});else{let _=await T(e,Gr,"getBlockNumber")({});x&&x!==_?I=await T(e,Ea,"getLogs")({address:t,args:r,event:o,events:s,fromBlock:x+1n,toBlock:_}):I=[],x=_}if(I.length===0)return;if(n)b.onLogs(I);else for(let _ of I)b.onLogs([_])}catch(I){v&&I instanceof Dr&&(S=!1),b.onError?.(I)}},{emitOnBegin:!0,interval:u});return async()=>{v&&await T(e,io,"uninstallFilter")({filter:v}),E()}})})():(()=>{let y=!0,b=()=>y=!1;return(async()=>{try{let x=(()=>{if(e.transport.type==="fallback"){let I=e.transport.transports.find(_=>_.config.type==="webSocket"||_.config.type==="ipc");return I?I.value:e.transport}return e.transport})(),v=s??(o?[o]:void 0),S=[];v&&(S=[v.flatMap(_=>zr({abi:[_],eventName:_.name,args:r}))],o&&(S=S[0]));let{unsubscribe:E}=await x.subscribe({params:["logs",{address:t,topics:S}],onData(I){if(!y)return;let _=I.result;try{let{eventName:R,args:F}=ka({abi:v??[],data:_.data,topics:_.topics,strict:d}),B=at(_,{args:F,eventName:R});c([B])}catch(R){let F,B;if(R instanceof Cr||R instanceof Mr){if(p)return;F=R.abiItem.name,B=R.abiItem.inputs?.some(j=>!("name"in j&&j.name))}let O=at(_,{args:B?[]:{},eventName:F});c([O])}},onError(I){i?.(I)}});b=E,y||b()}catch(x){i?.(x)}})(),()=>b()})()}it();function m1(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=X(["watchPendingTransactions",e.uid,t,s]);return pt(m,{onTransactions:n,onError:r},u=>{let p,l=mr(async()=>{try{if(!p)try{p=await T(e,Ip,"createPendingTransactionFilter")({});return}catch(g){throw l(),g}let d=await T(e,ao,"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,io,"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 u1(e){let{scheme:t,statement:r,...n}=e.match(h_)?.groups??{},{chainId:o,expirationTime:s,issuedAt:a,notBefore:i,requestId:c,...m}=e.match(y_)?.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 h_=/^(?:(?<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)?/,y_=/(?: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>.+))?/;zt();zo();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||!ae(n.address,{strict:!1})||t&&!ir(n.address,t))return!1}catch{return!1}return!0}async function l1(e,t){let{address:r,domain:n,message:o,nonce:s,scheme:a,signature:i,time:c=new Date,...m}=t,u=u1(o);if(!u.address||!p1({address:r,domain:n,message:u,nonce:s,scheme:a,time:c}))return!1;let l=za(o);return lo(e,{address:u.address,hash:l,signature:i,...m})}Ut();async function qa(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||Si)(o);if(a.status==="reverted"&&r)throw new Cs({receipt:a});return a}function f1(e){return{call:t=>Vr(e,t),createAccessList:t=>Ep(e,t),createBlockFilter:()=>ox(e),createContractEventFilter:t=>Lu(e,t),createEventFilter:t=>_p(e,t),createPendingTransactionFilter:()=>Ip(e),estimateContractGas:t=>eb(e,t),estimateGas:t=>Sa(e,t),getBalance:t=>sx(e,t),getBlobBaseFee:()=>ax(e),getBlock:t=>ut(e,t),getBlockNumber:t=>Gr(e,t),getBlockTransactionCount:t=>ix(e,t),getBytecode:t=>ec(e,t),getChainId:()=>At(e),getCode:t=>ec(e,t),getContractEvents:t=>qu(e,t),getEip712Domain:t=>cx(e,t),getEnsAddress:t=>Jb(e,t),getEnsAvatar:t=>tx(e,t),getEnsName:t=>rx(e,t),getEnsResolver:t=>nx(e,t),getEnsText:t=>kp(e,t),getFeeHistory:t=>ux(e,t),estimateFeesPerGas:t=>Xy(e,t),getFilterChanges:t=>ao(e,t),getFilterLogs:t=>px(e,t),getGasPrice:()=>wa(e),getLogs:t=>Ea(e,t),getProof:t=>Kx(e,t),estimateMaxPriorityFeePerGas:t=>Yy(e,t),getStorageAt:t=>Wx(e,t),getTransaction:t=>Ha(e,t),getTransactionConfirmations:t=>Jx(e,t),getTransactionCount:t=>Ca(e,t),getTransactionReceipt:t=>Va(e,t),multicall:t=>Zx(e,t),prepareTransactionRequest:t=>Or(e,t),readContract:t=>je(e,t),sendRawTransaction:t=>Na(e,t),sendRawTransactionSync:t=>qa(e,t),simulate:t=>cc(e,t),simulateBlocks:t=>cc(e,t),simulateCalls:t=>n1(e,t),simulateContract:t=>jb(e,t),verifyHash:t=>lo(e,t),verifyMessage:t=>s1(e,t),verifySiweMessage:t=>l1(e,t),verifyTypedData:t=>a1(e,t),uninstallFilter:t=>io(e,t),waitForTransactionReceipt:t=>sl(e,t),watchBlocks:t=>i1(e,t),watchBlockNumber:t=>ol(e,t),watchContractEvent:t=>qb(e,t),watchEvent:t=>c1(e,t),watchPendingTransactions:t=>m1(e,t)}}function Yo(e){let{key:t="public",name:r="Public Client"}=e;return xp({...e,key:t,name:r,type:"publicClient"}).extend(f1)}D();async function d1(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})}ap();function g1(e,t){let{abi:r,args:n,bytecode:o,...s}=t,a=Ho({abi:r,args:n,bytecode:o});return co(e,{...s,...s.authorizationList?{to:null}:{},data:a})}jn();async function h1(e){return e.account?.type==="local"?[e.account.address]:(await e.request({method:"eth_accounts"},{dedupe:!0})).map(r=>un(r))}Re();D();async function y1(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 b1(e){return await e.request({method:"wallet_getPermissions"},{dedupe:!0})}Re();zo();async function al(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,At,"getChainId")({})),typeof i.nonce>"u"&&(i.nonce=await T(e,Ca,"getTransactionCount")({address:s.address,blockTag:"pending"}),(a==="self"||a?.address&&ir(a.address,s.address))&&(i.nonce+=1)),i}jn();async function x1(e){return(await e.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map(r=>Ds(r))}async function v1(e,t){return e.request({method:"wallet_requestPermissions",params:[t]},{retryCount:0})}async function w1(e,t){let{chain:r=e.chain}=t,n=t.timeout??Math.max((r?.blockTime??0)*3,5e3),o=await fp(e,t);return await gp(e,{...t,id:o.id,timeout:n})}Re();K();Ut();ba();Dn();Ls();hn();var d0=new er(128);async function il(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 eo({authorization:s[0]}).catch(()=>{throw new w("`to` is required. Could not infer from `authorizationList`.")})})();if(S?.type==="json-rpc"||S===null){let I;n!==null&&(I=await T(e,At,"getChainId")({}),Us({currentChainId:I,chain:n}));let _=e.chain?.formatters?.transactionRequest?.format,F=(_||_t)({...Ur(x,{format:_}),accessList:o,account:S,authorizationList:s,blobs:a,chainId:I,data:i,gas:c,gasPrice:m,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:l,nonce:d,to:E,type:y,value:b},"sendTransaction"),B=d0.get(e.uid),O=B?"wallet_sendTransaction":"eth_sendTransaction",j=await(async()=>{try{return await e.request({method:O,params:[F]},{retryCount:0})}catch(fe){if(B===!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:[F]},{retryCount:0}).then(J=>(d0.set(e.uid,!0),J)).catch(J=>{let Ve=J;throw Ve.name==="MethodNotFoundRpcError"||Ve.name==="MethodNotSupportedRpcError"?(d0.set(e.uid,!1),Se):Ve});throw Se}})(),q=await T(e,sl,"waitForTransactionReceipt")({checkReplacement:!1,hash:j,pollingInterval:g,timeout:v});if(h&&q.status==="reverted")throw new Cs({receipt:q});return q}if(S?.type==="local"){let I=await T(e,Or,"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:[...Vi,"sidecars"],type:y,value:b,...x,to:E}),_=n?.serializers?.transaction,R=await S.signTransaction(I,{serializer:_});return await T(e,qa,"sendRawTransactionSync")({serializedTransaction:R,throwOnReceiptRevert:h})}throw S?.type==="smart"?new or({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new or({docsPath:"/docs/actions/wallet/sendTransactionSync",type:S?.type})}catch(E){throw E instanceof or?E:Ba(E,{...t,account:S,chain:t.chain||void 0})}}async function C1(e,t){let{id:r}=t;await e.request({method:"wallet_showCallsStatus",params:[r]})}Re();async function S1(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 or({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:n.type});let o=await al(e,t);return n.signAuthorization(o)}Re();D();async function k1(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"?hr(r):r.raw instanceof Uint8Array?he(r.raw):r.raw;return e.request({method:"personal_sign",params:[o,n.address]},{retryCount:0})}Re();D();Dn();hn();async function E1(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,At,"getChainId")({});n!==null&&Us({currentChainId:a,chain:n});let c=(n?.formatters||e.chain?.formatters)?.transactionRequest?.format||_t;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 _1(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:Fp({domain:n}),...t.types};if(Mp({domain:n,message:o,primaryType:s,types:i}),a.signTypedData)return a.signTypedData({domain:n,message:o,primaryType:s,types:i});let c=xx({domain:n,message:o,primaryType:s,types:i});return e.request({method:"eth_signTypedData_v4",params:[a.address,c]},{retryCount:0})}D();async function I1(e,{id:t}){await e.request({method:"wallet_switchEthereumChain",params:[{chainId:k(t)}]},{retryCount:0})}async function P1(e,t){return await e.request({method:"wallet_watchAsset",params:t},{retryCount:0})}async function A1(e,t){return Vo.internal(e,il,"sendTransactionSync",t)}function T1(e){return{addChain:t=>d1(e,t),deployContract:t=>g1(e,t),getAddresses:()=>h1(e),getCallsStatus:t=>dp(e,t),getCapabilities:t=>y1(e,t),getChainId:()=>At(e),getPermissions:()=>b1(e),prepareAuthorization:t=>al(e,t),prepareTransactionRequest:t=>Or(e,t),requestAddresses:()=>x1(e),requestPermissions:t=>v1(e,t),sendCalls:t=>fp(e,t),sendCallsSync:t=>w1(e,t),sendRawTransaction:t=>Na(e,t),sendRawTransactionSync:t=>qa(e,t),sendTransaction:t=>co(e,t),sendTransactionSync:t=>il(e,t),showCallsStatus:t=>C1(e,t),signAuthorization:t=>S1(e,t),signMessage:t=>k1(e,t),signTransaction:t=>E1(e,t),signTypedData:t=>_1(e,t),switchChain:t=>I1(e,t),waitForCallsStatus:t=>gp(e,t),watchAsset:t=>P1(e,t),writeContract:t=>Vo(e,t),writeContractSync:t=>A1(e,t)}}function pc(e){let{key:t="wallet",name:r="Wallet Client",transport:n}=e;return xp({...e,key:t,name:r,transport:n,type:"walletClient"}).extend(T1)}function $1({key:e,methods:t,name:r,request:n,retryCount:o=3,retryDelay:s=150,timeout:a,type:i},c){let m=bp();return{config:{key:e,methods:t,name:r,request:n,retryCount:o,retryDelay:s,timeout:a,type:i},request:dx(n,{methods:t,retryCount:o,retryDelay:s,uid:m}),value:c}}Lo();K();var cl=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"})}};Sd();function wn(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 cl;let S=hx(v,{fetchFn:n,fetchOptions:o,onRequest:c,onResponse:m,timeout:x});return $1({key:s,methods:a,name:i,async request({method:E,params:I}){let _={method:E,params:I},{schedule:R}=cp({id:v,wait:y,shouldSplitBatch(j){return j.length>h},fn:j=>S.request({body:j}),sort:(j,q)=>j.id-q.id}),F=async j=>r?R(j):[await S.request({body:j})],[{error:B,result:O}]=await F(_);if(p)return{error:B,result:O};if(B)throw new Wn({body:_,error:B,url:v});return O},retryCount:b,retryDelay:u,timeout:x,type:"http"},{fetchOptions:o,url:v})}}Dt();D();import{secp256k1 as x_}from"@noble/curves/secp256k1";vr();zt();function R1(e){if(typeof e=="string"){if(!ae(e,{strict:!1}))throw new de({address:e});return{address:e,type:"json-rpc"}}if(!ae(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"}}Dt();Ye();D();import{secp256k1 as b_}from"@noble/curves/secp256k1";var g0=!1;async function qr({hash:e,privateKey:t,to:r="object"}){let{r:n,s:o,recovery:s}=b_.sign(e.slice(2),t.slice(2),{lowS:!0,extraEntropy:xe(g0,{strict:!1})?qe(g0):g0}),a={r:k(n,{size:32}),s:k(o,{size:32}),v:s?28n:27n,yParity:s};return r==="bytes"||r==="hex"?nl({...a,to:r}):a}async function M1(e){let{chainId:t,nonce:r,privateKey:n,to:o="object"}=e,s=e.contractAddress??e.address,a=await qr({hash:zu({address:s,chainId:t,nonce:r}),privateKey:n,to:o});return o==="object"?{address:s,chainId:t,nonce:r,...a}:a}async function F1({message:e,privateKey:t}){return await qr({hash:za(e),privateKey:t,to:"hex"})}tr();async function B1(e){let{privateKey:t,transaction:r,serializer:n=Um}=e,o=r.type==="eip4844"?{...r,sidecars:!1}:r,s=await qr({hash:ge(await n(o)),privateKey:t});return await n(r,s)}async function N1(e){let{privateKey:t,...r}=e;return await qr({hash:Bp(r),privateKey:t,to:"hex"})}function lc(e,t={}){let{nonceManager:r}=t,n=he(x_.getPublicKey(e.slice(2),!1)),o=Du(n);return{...R1({address:o,nonceManager:r,async sign({hash:a}){return qr({hash:a,privateKey:e,to:"hex"})},async signAuthorization(a){return M1({...a,privateKey:e})},async signMessage({message:a}){return F1({message:a,privateKey:e})},async signTransaction(a,{serializer:i}={}){return B1({privateKey:e,transaction:a,serializer:i})},async signTypedData(a){return N1({...a,privateKey:e})}}),publicKey:n,source:"privateKey"}}var boe=hi(b0(),1);import{z as Fe}from"zod";var pr=hi(b0(),1),ZA=hi(L1(),1),YA=hi(kv(),1);import{z as Xa}from"zod";import{z as Ir}from"zod";import{z as Qa}from"zod";import{z as wt}from"zod";import{z as Gt}from"zod";import{z as Av}from"zod";import{z as Tv}from"zod";import{z as fl}from"zod";import{z as dl}from"zod";import{z as vt}from"zod";var a8=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()}),Xr=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)}},I0=class gl extends Xr{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=a8.safeParse(t.data);return r.success?new gl(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 gl(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 gl(t.message,{request:r??void 0,detail:t.message})}},i8=class extends Xr{constructor(e,t){super(e,t),this.isValidationError=!0,this.validationErrors=t.validationErrors}},c8=class extends Xr{constructor(){super(...arguments),this.isAuthError=!0}},bl=class extends Xr{constructor(){super(...arguments),this.isBusinessError=!0}},m8=class extends Xr{constructor(){super(...arguments),this.isServerError=!0}},u8=class extends Xr{constructor(){super(...arguments),this.isUnknownError=!0}};function p8(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 Rv(e){if(!Array.isArray(e))return{errors:[],message:typeof e=="string"?e:"Validation error"};let t=e.map((o,s)=>{let a=p8(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 l8(e){return e===422?"validation":e===401||e===403?"auth":e>=400&&e<500?"business":e>=500?"server":"unknown"}function f8(e,t,r){if(e===422&&Array.isArray(t)){let{message:n}=Rv(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 d8(e){let t=e.status??0,r=e.statusText??"Unknown Error",n=e.detail,o=g8(n);if(o)return new xc(o.message,{status:t,statusText:r,detail:n,errorCode:o.error_code,structuredDetails:o.details,suggestions:o.suggestions,links:o.links});let s=l8(t),a=f8(t,n,e.message),i={status:t,statusText:r,detail:n};if(s==="validation"&&Array.isArray(n)){let{errors:c}=Rv(n);return new i8(a,{...i,validationErrors:c})}return s==="auth"?new c8(a,i):s==="business"?new bl(a,i):s==="server"?new m8(a,i):new u8(a,i)}var xc=class extends bl{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 g8(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 xl(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 $0=["2025-10-28","2026-01-21"],h8="2026-01-21",Ja=(0,$v.default)("phala::api-client");function y8(e){return Object.entries(e).map(([t,r])=>` -H "${t}: ${r}"`).join(`
59
+ `)}function b8(e){return e?` -d '${(typeof e=="string"?e:JSON.stringify(e,null,2)).replace(/'/g,"\\'")}'`:""}function Ev(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 x8=class Lv{constructor(t={}){this.emitter=ah();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&&$0.includes(t.version)?t.version:h8;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=s8.create({baseURL:a,timeout:i||3e4,headers:l,...m?{credentials:"include"}:{},...p,onRequest({request:d,options:g}){if(Wa.enabled){let h=g.method||"GET",y=typeof d=="string"?d:d.url,x=y.startsWith("http")?y:`${a}${y}`,b={};g.headers&&typeof g.headers=="object"&&Object.entries(g.headers).forEach(([S,k])=>{typeof k=="string"&&(b[S]=k)});let v=[`> curl -X ${h} "${x}"`,y8(b),g.body?b8(g.body):""].filter(Boolean).join(`
63
- `);Wa(`
62
+ `)}var x8=class Mv{constructor(t={}){this.emitter=nh();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&&$0.includes(t.version)?t.version:h8;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=s8.create({baseURL:a,timeout:i||3e4,headers:l,...m?{credentials:"include"}:{},...p,onRequest({request:d,options:g}){if(Ja.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}"`,y8(x),g.body?b8(g.body):""].filter(Boolean).join(`
63
+ `);Ja(`
64
64
  === REQUEST ===
65
65
  %s
66
- `,v)}},onResponse({request:d,response:g,options:h}){if(Wa.enabled){let y=h.method||"GET",x=typeof d=="string"?d:d.url;Wa(`
66
+ `,v)}},onResponse({request:d,response:g,options:h}){if(Ja.enabled){let y=h.method||"GET",b=typeof d=="string"?d:d.url;Ja(`
67
67
  === RESPONSE [%s %s] (%dms) ===
68
68
  %s
69
- `,y,x,g.headers.get("x-response-time")||"?",Pv(g.status,g.statusText,g.headers,g._data))}},onResponseError:({request:d,response:g,options:h})=>{if(Wa.enabled){console.warn(`HTTP ${g.status}: ${g.url}`);let y=h.method||"GET",x=typeof d=="string"?d:d.url;Wa(`
69
+ `,y,b,g.headers.get("x-response-time")||"?",Ev(g.status,g.statusText,g.headers,g._data))}},onResponseError:({request:d,response:g,options:h})=>{if(Ja.enabled){console.warn(`HTTP ${g.status}: ${g.url}`);let y=h.method||"GET",b=typeof d=="string"?d:d.url;Ja(`
70
70
  === ERROR RESPONSE [%s %s] ===
71
71
  %s
72
- `,y,x,Pv(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?P0.fromFetchError(t):t instanceof Error?P0.fromError(t):new P0("Unknown error occurred",{detail:"Unknown error occurred"})}emitError(t){let r=d8(t);return this.emitter.emit("error",r),r}async safeRequest(t){try{return{success:!0,data:await t()}}catch(r){if(r instanceof Zr)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 Lv({...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 v8(e={}){return new x8(e)}var w8=ke.object({username:ke.string(),email:ke.string(),role:ke.enum(["admin","user"]),avatar:ke.string(),email_verified:ke.boolean(),totp_enabled:ke.boolean(),has_backup_codes:ke.boolean(),flag_has_password:ke.boolean()}).passthrough(),C8=ke.object({id:ke.string(),name:ke.string(),slug:ke.string().nullable(),tier:ke.string(),role:ke.string(),avatar:ke.string().nullable().optional()}).passthrough(),S8=ke.object({balance:ke.string().or(ke.number()),granted_balance:ke.string().or(ke.number()),is_post_paid:ke.boolean(),outstanding_amount:ke.string().or(ke.number()).nullable()}).passthrough(),E8=ke.object({user:w8,workspace:C8,credits:S8}).passthrough(),k8=go.object({username:go.string(),email:go.string(),credits:go.number(),granted_credits:go.number(),avatar:go.string(),team_name:go.string(),team_tier:go.string()}).passthrough();function _8(e){return e==="2025-10-28"?k8:E8}async function Dv(e,t){let r=await e.get("/auth/me");return t?.schema===!1?r:(t?.schema||_8(e.config.version)).parse(r)}async function Ft(e,t){try{return{success:!0,data:await Dv(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 I8={[Mu.id]:Mu,[$i.id]:$i,[Dm.id]:Dm},P8=ho.object({id:ho.string(),slug:ho.string().nullable(),url:ho.string(),version:ho.string(),chain_id:ho.number().nullable(),kms_contract_address:ho.string().nullable().transform(e=>e),gateway_app_id:ho.string().nullable().transform(e=>e)}).passthrough(),Yr=P8.transform(e=>{if(e.chain_id!=null){let t=I8[e.chain_id];if(t)return{...e,chain:t}}return e});function Uv(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 Ov(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 A8(e,t){function r(a,i){return n(a,i)}async function n(a,i){Uv(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=Ov(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 ee(e,t){function r(a,...i){let[c,m]=i;return n(a,c,m)}async function n(a,i,c){Uv(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=Ov(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 T8=Y.object({name:Y.string(),is_dev:Y.boolean(),version:Y.union([Y.tuple([Y.number(),Y.number(),Y.number()]),Y.tuple([Y.number(),Y.number(),Y.number(),Y.number()])]),os_image_hash:Y.string().nullable().optional()}).passthrough(),$8=Y.object({teepod_id:Y.number(),name:Y.string(),listed:Y.boolean(),resource_score:Y.number(),remaining_vcpu:Y.number(),remaining_memory:Y.number(),remaining_cvm_slots:Y.number(),images:Y.array(T8),support_onchain_kms:Y.boolean().optional(),fmspc:Y.string().nullable().optional(),device_id:Y.string().nullable().optional(),region_identifier:Y.string().nullable().optional(),default_kms:Y.string().nullable().optional(),kms_list:Y.array(Y.string()).default([])}).passthrough(),R8=Y.object({max_instances:Y.number().nullable().optional(),max_vcpu:Y.number().nullable().optional(),max_memory:Y.number().nullable().optional(),max_disk:Y.number().nullable().optional()}).passthrough(),M8=Y.object({tier:Y.string(),capacity:R8,nodes:Y.array($8),kms_list:Y.array(Yr)}).passthrough(),{action:F8,safeAction:R0}=A8(M8,async e=>await e.get("/teepods/available")),zv=Ne.object({id:Ne.string(),name:Ne.string(),description:Ne.string(),vcpu:Ne.number(),memory_mb:Ne.number(),hourly_rate:Ne.string(),requires_gpu:Ne.boolean(),default_disk_size_gb:Ne.number().default(20),family:Ne.string().nullable()}).passthrough(),N8=Ne.object({name:Ne.string(),items:Ne.array(zv),total:Ne.number()}).strict(),B8=Ne.object({result:Ne.array(N8)}).strict(),L8=Ne.object({items:Ne.array(zv),total:Ne.number(),family:Ne.string()}).strict(),D8=Ne.object({family:Ne.string()}).strict(),{action:M0,safeAction:U8}=ee(B8,async e=>await e.get("/instance-types")),{action:F0,safeAction:O8}=ee(L8,async(e,t)=>{let r=D8.parse(t);return await e.get(`/instance-types/${r.family}`)}),jv=$t.object({id:$t.string(),name:$t.string(),slug:$t.string().nullable(),tier:$t.string(),role:$t.string(),is_default:$t.boolean(),created_at:$t.string()}).passthrough(),z8=$t.object({has_more:$t.boolean(),next_cursor:$t.string().nullable(),total:$t.number().nullable()}).passthrough(),j8=$t.object({data:$t.array(jv),pagination:z8}).passthrough(),{action:H8,safeAction:V8}=ee(j8,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:G8,safeAction:q8}=ee(jv,async(e,t)=>await e.get(`/workspaces/${t}`)),K8=$.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()}),W8=$.object({id:$.number(),username:$.string()}),Hv=$.object({id:$.number(),name:$.string(),region_identifier:$.string().nullable().optional()}),N0=$.object({vcpu:$.number(),memory:$.number(),disk_size:$.number(),gpu_count:$.number().default(0)}),B0=$.object({app:$.string(),instance:$.string()}),J8=$.object({hosted:K8,name:$.string(),managed_user:W8.nullable(),node:Hv.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:Yr.nullable(),vcpu:$.number().nullable(),memory:$.number().nullable(),disk_size:$.number().nullable(),gateway_domain:$.string().nullable(),public_urls:$.array(B0),machine_info:N0.nullable().optional(),updated_at:$.string().nullable().optional()}),Vv=$.object({id:$.number(),name:$.string(),status:$.string(),in_progress:$.boolean().optional().default(!1),teepod_id:$.number().nullable(),teepod:Hv.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:Yr.optional().nullable(),contract_address:$.string().optional().nullable(),deployer_address:$.string().optional().nullable(),scheduled_delete_at:$.string().optional().nullable(),public_urls:$.array(B0).optional().default([]),gateway_domain:$.string().optional().nullable(),machine_info:N0.optional().nullable(),updated_at:$.string().optional().nullable()}),Z8=$.object({items:$.array(J8),total:$.number(),page:$.number(),page_size:$.number(),pages:$.number()}),Y8=M.enum(["skip","hourly","monthly"]),X8=M.enum(["phala","ethereum","base","legacy"]),L0=M.object({object_type:M.literal("user"),id:M.string().nullable().optional(),username:M.string().nullable().optional(),avatar_url:M.string().nullable().optional()}),D0=M.object({object_type:M.literal("workspace"),id:M.string(),name:M.string(),slug:M.string().nullable().optional(),avatar_url:M.string().nullable().optional()}),Q8=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:Y8.nullable().optional()}),eI=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()}),tI=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()}),rI=M.object({target:M.string().nullable().optional(),started_at:M.string().nullable().optional(),correlation_id:M.string().nullable().optional()}),nI=M.object({base_domain:M.string().nullable().optional(),cname:M.string().nullable().optional()}),Gv=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 dl=M.object({id:M.string(),name:M.string(),app_id:M.string().nullable().optional(),vm_uuid:M.string().nullable().optional(),resource:Q8,node_info:Gv.nullable().optional(),os:eI.nullable().optional(),kms_type:X8.nullable().optional(),kms_info:tI.nullable().optional(),status:M.string(),progress:rI.nullable().optional(),compose_hash:M.string().nullable().optional(),gateway:nI,services:M.array(M.record(M.any())).optional().default([]),endpoints:M.array(B0).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(),storage_fs:M.string().optional(),workspace:D0.nullable().optional(),creator:L0.nullable().optional()}),oI=dl.extend({compose_file:M.union([M.record(M.any()),M.string()]).nullable().optional()}),sI=M.object({items:M.array(dl),total:M.number(),page:M.number(),page_size:M.number(),pages:M.number()});function ri(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 qv(e){if(typeof e!="string")return ul();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)||!ri(t)?ul():t}function ul(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,6);return`dstack-app-${e}-${t}`}var Xr=Ja.object({id:Ja.string().optional(),uuid:Ja.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:Ja.string().optional(),instance_id:Ja.string().optional(),name:Ja.string().refine(ri,{message:"Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens"}).optional()}),yo=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"}),aI=yo(Xr),ye=aI.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}}),iI=ye;function cI(e){return e==="2025-10-28"?Vv:oI}async function Kv(e,t){let{cvmId:r}=iI.parse(t),n=await e.get(`/cvms/${r}`);return cI(e.config.version).parse(n)}async function Be(e,t){try{return{success:!0,data:await Kv(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 mI=Za.object({page:Za.number().int().min(1).optional(),page_size:Za.number().int().min(1).optional(),node_id:Za.number().int().min(1).optional(),teepod_id:Za.number().int().min(1).optional(),user_id:Za.string().optional()}).strict();function uI(e){return e==="2025-10-28"?Z8:sI}async function Wv(e,t){let r=mI.parse(t??{}),n=await e.get("/cvms/paginated",{params:r});return uI(e.config.version).parse(n)}async function xc(e,t){try{return{success:!0,data:await Wv(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 pI=Z.object({app_id:Z.string().nullable().optional(),app_env_encrypt_pubkey:Z.string().nullable().optional(),compose_hash:Z.string(),kms_info:Yr.nullable().optional(),fmspc:Z.string().nullable().optional(),device_id:Z.string().nullable().optional(),os_image_hash:Z.string().nullable().optional(),instance_type:Z.string().nullable().optional(),teepod_id:Z.number().nullable().optional(),node_id:Z.number().nullable().optional(),kms_id:Z.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}),A0="Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens",lI=Z.object({node_id:Z.number().optional(),teepod_id:Z.number().optional(),region:Z.string().optional(),name:Z.string().min(5,A0).max(63,A0).refine(e=>ri(e),A0),instance_type:Z.string().optional(),image:Z.string().optional(),vcpu:Z.number().optional(),memory:Z.number().optional(),disk_size:Z.number().optional(),compose_file:Z.object({allowed_envs:Z.array(Z.string()).optional(),pre_launch_script:Z.string().optional(),docker_compose_file:Z.string().optional(),name:Z.string().optional().default(""),kms_enabled:Z.boolean().optional(),public_logs:Z.boolean().optional(),public_sysinfo:Z.boolean().optional(),gateway_enabled:Z.boolean().optional(),tproxy_enabled:Z.boolean().optional()}),listed:Z.boolean().optional(),kms_id:Z.string().optional(),kms:Z.enum(["PHALA","ETHEREUM","BASE"]).optional(),kms_contract:Z.string().optional(),env_keys:Z.array(Z.string()).optional(),nonce:Z.number().optional(),app_id:Z.string().optional()}).passthrough().transform(e=>!e.instance_type&&!e.vcpu&&!e.memory?{...e,instance_type:"tdx.small"}:e);function fI(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:dI,safeAction:U0}=ee(pI,async(e,t)=>{let r=lI.parse(t),n=fI(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)}),gI=Q.object({id:Q.number(),name:Q.string(),status:Q.string(),teepod_id:Q.number(),teepod:Q.object({id:Q.number(),name:Q.string()}).nullable(),user_id:Q.number().nullable(),app_id:Q.string().nullable(),vm_uuid:Q.string().nullable(),instance_id:Q.string().nullable(),app_url:Q.string().nullable().default(null),base_image:Q.string().nullable(),vcpu:Q.number(),memory:Q.number(),disk_size:Q.number(),manifest_version:Q.number().nullable().default(2),version:Q.string().nullable().default("1.0.0"),runner:Q.string().nullable().default("docker-compose"),docker_compose_file:Q.string().nullable(),features:Q.array(Q.string()).nullable().default(["kms","tproxy-net"]),created_at:Q.string(),encrypted_env_pubkey:Q.string().nullable().optional(),app_auth_contract_address:Q.string().nullable().optional(),deployer_address:Q.string().nullable().optional()}).passthrough(),Bne=Q.object({encrypted_env:Q.string().optional().nullable(),app_id:Q.string(),compose_hash:Q.string(),kms_id:Q.string().optional(),contract_address:Q.string().optional(),deployer_address:Q.string().optional(),env_keys:Q.array(Q.string()).optional().nullable()}).passthrough(),{action:hI,safeAction:bl}=ee(gI,async(e,t)=>await e.post("/cvms",t)),Jv=xt.object({allowed_envs:xt.array(xt.string()).optional(),docker_compose_file:xt.string(),features:xt.array(xt.string()).optional(),name:xt.string().optional(),manifest_version:xt.number().optional(),kms_enabled:xt.boolean().optional(),public_logs:xt.boolean().optional(),public_sysinfo:xt.boolean().optional(),tproxy_enabled:xt.boolean().optional(),pre_launch_script:xt.string().optional(),env_pubkey:xt.string().optional(),salt:xt.string().optional().nullable()}).passthrough();function T0(e){return e==null?e:Array.isArray(e)?e.map(T0):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,r)=>{let n=e[r];return t[r]=T0(n),t},{}):e}function Zv(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 Yv(e){let t=T0(e),r=JSON.stringify(t,null,4);return r=r.replace(/": /g,'":'),r}function bI(e){let t=Zv(e),r=Yv(t);return yI.createHash("sha256").update(r,"utf8").digest("hex")}function xI(e){let t=e;return{...e,getHash:()=>bI(t),toString:()=>Yv(Zv(t))}}var vI=Jv.transform(e=>xI(e)),wI=ye,{action:CI,safeAction:vc}=ee(vI,async(e,t)=>{let{cvmId:r}=wI.parse(t);return await e.get(`/cvms/${r}/compose_file`)}),SI=Wr.object({id:Wr.string().optional(),uuid:Wr.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:Wr.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:Wr.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:Jv,update_env_vars:Wr.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})),EI=Wr.object({app_id:Wr.string().nullable(),device_id:Wr.string().nullable(),compose_hash:Wr.string(),kms_info:Yr.nullable().optional()}).passthrough(),{action:kI,safeAction:O0}=ee(EI,async(e,t)=>{let r=SI.parse(t);return await e.post(`/cvms/${r.cvmId}/compose_file/provision`,r.request)}),_I=Er.object({id:Er.string().optional(),uuid:Er.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:Er.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:Er.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:Er.string().min(1,"Compose hash is required"),encrypted_env:Er.string().optional(),env_keys:Er.array(Er.string()).optional(),update_env_vars:Er.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})),II=Er.any().transform(()=>{}),{action:PI,safeAction:z0}=ee(II,async(e,t)=>{let r=_I.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})}),AI=yo(Xr.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}=ye.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}}),TI=ot.object({status:ot.literal("in_progress"),message:ot.string(),correlation_id:ot.string(),allowed_envs_changed:ot.boolean()}),$I=ot.object({status:ot.literal("precondition_required"),message:ot.string(),compose_hash:ot.string(),app_id:ot.string(),device_id:ot.string(),kms_info:Yr}),RI=ot.union([TI,$I]),{action:MI,safeAction:FI}=ee(RI,async(e,t)=>{let r=AI.parse(t);try{return await e.patch(`/cvms/${r.cvmId}/envs`,r.request)}catch(n){if(n instanceof Zr&&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}}),NI=yo(Xr.extend({docker_compose_file:Rt.string().describe("Docker Compose YAML content"),compose_hash:Rt.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:Rt.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=ye.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}}),BI=Rt.object({status:Rt.literal("in_progress"),message:Rt.string(),correlation_id:Rt.string()}),LI=Rt.object({status:Rt.literal("precondition_required"),message:Rt.string(),compose_hash:Rt.string(),app_id:Rt.string(),device_id:Rt.string(),kms_info:Yr}),DI=Rt.union([BI,LI]),{action:UI,safeAction:OI}=ee(DI,async(e,t)=>{let r=NI.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 Zr&&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}}),zI=yo(Xr.extend({pre_launch_script:Mt.string().describe("Pre-launch script content (shell script)"),compose_hash:Mt.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:Mt.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=ye.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}}),jI=Mt.object({status:Mt.literal("in_progress"),message:Mt.string(),correlation_id:Mt.string()}),HI=Mt.object({status:Mt.literal("precondition_required"),message:Mt.string(),compose_hash:Mt.string(),app_id:Mt.string(),device_id:Mt.string(),kms_info:Yr}),VI=Mt.union([jI,HI]),{action:GI,safeAction:qI}=ee(VI,async(e,t)=>{let r=zI.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 Zr&&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}}),WI=ye,{action:JI,safeAction:ZI}=ee(KI.string(),async(e,t)=>{let{cvmId:r}=WI.parse(t);return await e.get(`/cvms/${r}/pre-launch-script`)}),YI=Av.object({kms_id:Av.string().min(1,"KMS ID is required")}),{action:XI,safeAction:QI}=ee(Yr,async(e,t)=>{let r=YI.parse(t);return await e.get(`/kms/${r.kms_id}`)}),eP=Jr.object({page:Jr.number().int().min(1).optional(),page_size:Jr.number().int().min(1).optional(),is_onchain:Jr.boolean().optional()}).strict(),tP=Jr.object({items:Jr.array(Yr),total:Jr.number(),page:Jr.number(),page_size:Jr.number(),pages:Jr.number()}).strict(),{action:rP,safeAction:nP}=ee(tP,async(e,t)=>{let r=eP.parse(t??{});return await e.get("/kms",{params:r})}),oP=ti.object({kms:ti.string().min(1,"KMS ID or slug is required"),app_id:ti.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(),sP=ti.object({public_key:ti.string(),signature:ti.string()}).strict(),{action:aP,safeAction:xl}=ee(sP,async(e,t)=>{let r=oP.parse(t);return await e.get(`/kms/${r.kms}/pubkey/${r.app_id}`)}),iP=Zo.object({counts:Zo.number().int().min(1).max(20).optional().default(1)}).strict(),cP=Zo.object({app_ids:Zo.array(Zo.object({app_id:Zo.string(),nonce:Zo.number().int().min(0)}))}).strict(),{action:mP,safeAction:uP}=ee(cP,async(e,t)=>{let r=iP.parse(t??{}),n=new URLSearchParams;return n.append("counts",r.counts.toString()),await e.get(`/kms/phala/next_app_id?${n.toString()}`)}),vl=ve.object({id:ve.number(),name:ve.string(),status:ve.string(),teepod_id:ve.number(),teepod:ve.object({id:ve.number(),name:ve.string(),region_identifier:ve.string().nullable().optional()}).optional().nullable(),user_id:ve.number().optional().nullable(),app_id:ve.string(),vm_uuid:ve.string().nullable(),instance_id:ve.string().nullable(),app_url:ve.string().optional().nullable(),base_image:ve.string().nullable(),vcpu:ve.number(),memory:ve.number(),disk_size:ve.number(),manifest_version:ve.number().optional().nullable(),version:ve.string().optional().nullable(),runner:ve.string().optional().nullable(),docker_compose_file:ve.string().optional().nullable(),features:ve.array(ve.string()).optional().nullable(),created_at:ve.string(),encrypted_env_pubkey:ve.string().nullable()}),pP=ye,{action:lP,safeAction:j0}=ee(vl,async(e,t)=>{let{cvmId:r}=pP.parse(t);return await e.post(`/cvms/${r}/start`)}),fP=ye,{action:dP,safeAction:H0}=ee(vl,async(e,t)=>{let{cvmId:r}=fP.parse(t);return await e.post(`/cvms/${r}/stop`)}),gP=ye,{action:hP,safeAction:yP}=ee(vl,async(e,t)=>{let{cvmId:r}=gP.parse(t);return await e.post(`/cvms/${r}/shutdown`)}),xP=yo(Xr.extend({force:bP.boolean().optional()})),{action:vP,safeAction:V0}=ee(vl,async(e,t)=>{let r=xP.parse(t),{cvmId:n}=ye.parse(r),{force:o=!1}=r;return await e.post(`/cvms/${n}/restart`,{force:o})}),CP=ye,{action:SP,safeAction:G0}=ee(wP.void(),async(e,t)=>{let{cvmId:r}=CP.parse(t);await e.delete(`/cvms/${r}`)}),EP=ce.object({name:ce.string(),mount_point:ce.string(),total_size:ce.number(),free_size:ce.number()}),kP=ce.object({os_name:ce.string(),os_version:ce.string(),kernel_version:ce.string(),cpu_model:ce.string(),num_cpus:ce.number(),total_memory:ce.number(),available_memory:ce.number(),used_memory:ce.number(),free_memory:ce.number(),total_swap:ce.number(),used_swap:ce.number(),free_swap:ce.number(),uptime:ce.number(),loadavg_one:ce.number(),loadavg_five:ce.number(),loadavg_fifteen:ce.number(),disks:ce.array(EP)}),_P=ce.object({is_online:ce.boolean(),is_public:ce.boolean().default(!1),error:ce.string().nullable(),sysinfo:kP.nullable(),status:ce.string().nullable(),in_progress:ce.boolean().default(!1),boot_progress:ce.string().nullable(),boot_error:ce.string().nullable()}),IP=ye,{action:PP,safeAction:AP}=ee(_P,async(e,t)=>{let{cvmId:r}=IP.parse(t);return await e.get(`/cvms/${r}/stats`)}),TP=qr.object({app:qr.string(),instance:qr.string()}),$P=qr.object({is_online:qr.boolean(),is_public:qr.boolean().default(!0),error:qr.string().nullable(),internal_ip:qr.string().nullable(),latest_handshake:qr.string().nullable(),public_urls:qr.array(TP).nullable()}),RP=ye,{action:MP,safeAction:FP}=ee($P,async(e,t)=>{let{cvmId:r}=RP.parse(t);return await e.get(`/cvms/${r}/network`)}),BP=ye,{action:LP,safeAction:DP}=ee(NP.string(),async(e,t)=>{let{cvmId:r}=BP.parse(t);return await e.get(`/cvms/${r}/docker-compose.yml`)}),UP=Fe.object({id:Fe.string(),names:Fe.array(Fe.string()),image:Fe.string(),image_id:Fe.string(),command:Fe.string().nullable().optional(),created:Fe.number(),state:Fe.string(),status:Fe.string(),log_endpoint:Fe.string().nullable()}),OP=Fe.object({is_online:Fe.boolean(),is_public:Fe.boolean().default(!0),error:Fe.string().nullable(),docker_compose_file:Fe.string().nullable(),manifest_version:Fe.number().nullable(),version:Fe.string().nullable(),runner:Fe.string().nullable(),features:Fe.array(Fe.string()).nullable(),containers:Fe.array(UP).nullable()}),zP=ye,{action:jP,safeAction:q0}=ee(OP,async(e,t)=>{let{cvmId:r}=zP.parse(t);return await e.get(`/cvms/${r}/composition`)}),HP=V.object({common_name:V.string().nullable(),organization:V.string().nullable(),country:V.string().nullable(),state:V.string().nullable(),locality:V.string().nullable()}),VP=V.object({common_name:V.string().nullable(),organization:V.string().nullable(),country:V.string().nullable()}),GP=V.object({subject:HP,issuer:VP,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()}),qP=V.object({imr:V.number(),event_type:V.number(),digest:V.string(),event:V.string(),event_payload:V.string()}),KP=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(qP),app_compose:V.string()}),WP=V.object({name:V.string().nullable(),is_online:V.boolean(),is_public:V.boolean().default(!0),error:V.string().nullable(),app_certificates:V.array(GP).nullable(),tcb_info:KP.nullable(),compose_file:V.string().nullable()}),JP=ye,{action:ZP,safeAction:YP}=ee(WP,async(e,t)=>{let{cvmId:r}=JP.parse(t);return await e.get(`/cvms/${r}/attestation`)}),XP=yo(Xr.extend({vcpu:Qa.number().optional(),memory:Qa.number().optional(),disk_size:Qa.number().optional(),instance_type:Qa.string().optional(),allow_restart:Qa.boolean().optional()})),{action:QP,safeAction:eA}=ee(Qa.void(),async(e,t)=>{let r=XP.parse(t),{cvmId:n}=ye.parse(r),{...o}=r;await e.patch(`/cvms/${n}/resources`,o)}),tA=yo(Xr.extend({public_sysinfo:Tv.boolean(),public_logs:Tv.boolean()})),{action:rA,safeAction:K0}=ee(Vv,async(e,t)=>{let r=tA.parse(t),{cvmId:n}=ye.parse(r),{public_sysinfo:o,public_logs:s}=r;return await e.patch(`/cvms/${n}/visibility`,{public_sysinfo:o,public_logs:s})}),$v=dt.object({name:dt.string(),os_image_hash:dt.string().nullable(),is_current:dt.boolean()}),nA=dt.object({version:dt.union([dt.tuple([dt.number(),dt.number(),dt.number(),dt.number()]),dt.tuple([dt.number(),dt.number(),dt.number()])]),prod:$v.nullable(),dev:$v.nullable()}),oA=dt.array(nA),sA=ye,{action:aA,safeAction:iA}=ee(oA,async(e,t)=>{let{cvmId:r}=sA.parse(t);return await e.get(`/cvms/${r}/available-os-images`)}),cA=yo(Xr.extend({os_image_name:Xv.string().min(1,"OS image name is required")})),{action:mA,safeAction:uA}=ee(Xv.void(),async(e,t)=>{let r=cA.parse(t),{cvmId:n}=ye.parse(r),{os_image_name:o}=r;await e.patch(`/cvms/${n}/os-image`,{os_image_name:o})}),pA=Gr.object({id:Gr.string().optional(),instance_id:Gr.string().optional(),name:Gr.string(),status:Gr.string(),uptime:Gr.string().optional(),exited_at:Gr.string().optional(),boot_progress:Gr.string().optional(),boot_error:Gr.string().optional(),shutdown_progress:Gr.string().optional()}),lA=ye,{action:fA,safeAction:dA}=ee(pA,async(e,t)=>{let{cvmId:r}=lA.parse(t);return await e.get(`/cvms/${r}/state`)});function cr(e={}){let t=v8(e),r={getCurrentUser:Dv,safeGetCurrentUser:Ft,getAvailableNodes:F8,safeGetAvailableNodes:R0,listAllInstanceTypeFamilies:M0,safeListAllInstanceTypeFamilies:U8,listFamilyInstanceTypes:F0,safeListFamilyInstanceTypes:O8,listWorkspaces:H8,safeListWorkspaces:V8,getWorkspace:G8,safeGetWorkspace:q8,getCvmInfo:Kv,safeGetCvmInfo:Be,getCvmList:Wv,safeGetCvmList:xc,provisionCvm:dI,safeProvisionCvm:U0,commitCvmProvision:hI,safeCommitCvmProvision:bl,getCvmComposeFile:CI,safeGetCvmComposeFile:vc,provisionCvmComposeFileUpdate:kI,safeProvisionCvmComposeFileUpdate:O0,commitCvmComposeFileUpdate:PI,safeCommitCvmComposeFileUpdate:z0,updateCvmEnvs:MI,safeUpdateCvmEnvs:FI,updateDockerCompose:UI,safeUpdateDockerCompose:OI,updatePreLaunchScript:GI,safeUpdatePreLaunchScript:qI,getCvmPreLaunchScript:JI,safeGetCvmPreLaunchScript:ZI,startCvm:lP,safeStartCvm:j0,stopCvm:dP,safeStopCvm:H0,shutdownCvm:hP,safeShutdownCvm:yP,restartCvm:vP,safeRestartCvm:V0,deleteCvm:SP,safeDeleteCvm:G0,getCvmStats:PP,safeGetCvmStats:AP,getCvmNetwork:MP,safeGetCvmNetwork:FP,getCvmDockerCompose:LP,safeGetCvmDockerCompose:DP,getCvmContainersStats:jP,safeGetCvmContainersStats:q0,getCvmAttestation:ZP,safeGetCvmAttestation:YP,updateCvmResources:QP,safeUpdateCvmResources:eA,updateCvmVisibility:rA,safeUpdateCvmVisibility:K0,getAvailableOsImages:aA,safeGetAvailableOsImages:iA,updateOsImage:mA,safeUpdateOsImage:uA,getKmsInfo:XI,safeGetKmsInfo:QI,getKmsList:rP,safeGetKmsList:nP,getAppEnvEncryptPubKey:aP,safeGetAppEnvEncryptPubKey:xl,nextAppIds:mP,safeNextAppIds:uP,getCvmState:fA,safeGetCvmState:dA};return t.extend(r)}var Rv=j.object({vm_uuid:j.string().nullable(),app_id:j.string(),name:j.string().default(""),status:j.string(),vcpu:j.number().int(),memory:j.number().int(),disk_size:j.number().int(),teepod_id:j.number().int(),teepod_name:j.string(),region_identifier:j.string().nullable().optional(),kms_type:j.string().nullable().optional(),instance_type:j.string().nullable().optional(),listed:j.boolean().nullable().optional(),base_image:j.string().nullable().optional(),kms_slug:j.string().nullable().optional(),kms_id:j.string().nullable().optional(),instance_id:j.string().nullable().optional(),machine_info:N0.nullable().optional(),updated_at:j.string().nullable().optional()}),gA=j.object({id:j.string(),name:j.string(),app_id:j.string(),app_provision_type:j.string().nullable().optional(),app_icon_url:j.string().nullable().optional(),created_at:j.string(),kms_type:j.string(),current_cvm:Rv.nullable().optional(),cvms:j.array(Rv).default([]),cvm_count:j.number().int().default(0)}),hA=j.object({id:j.null().optional(),app_id:j.string(),name:j.null().optional(),app_provision_type:j.null().optional(),app_icon_url:j.null().optional(),created_at:j.null().optional(),kms_type:j.null().optional(),current_cvm:j.null().optional(),cvms:j.null().optional(),cvm_count:j.null().optional()}),yA=j.union([gA,hA]),bA=j.object({dstack_apps:j.array(yA),page:j.number().int(),page_size:j.number().int(),total:j.number().int(),total_pages:j.number().int()}),xA=he.object({id:he.string(),name:he.string(),app_id:he.string(),app_provision_type:he.string().nullable().optional(),app_icon_url:he.string().nullable().optional(),created_at:he.string(),kms_type:he.string(),current_cvm:dl.nullable().optional(),cvms:he.array(dl).default([]),cvm_count:he.number().int().default(0)}),vA=he.object({id:he.null().optional(),app_id:he.string(),name:he.null().optional(),app_provision_type:he.null().optional(),app_icon_url:he.null().optional(),created_at:he.null().optional(),kms_type:he.null().optional(),current_cvm:he.null().optional(),cvms:he.null().optional(),cvm_count:he.null().optional()}),wA=he.union([xA,vA]),CA=he.object({dstack_apps:he.array(wA),page:he.number().int(),page_size:he.number().int(),total:he.number().int(),total_pages:he.number().int()}),Qv=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()}),SA=se.object({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:L0.nullable().optional(),cvm:Qv.nullable().optional(),workspace:D0.nullable().optional()}),poe=se.object({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:L0.nullable().optional(),cvm:Qv.nullable().optional(),workspace:D0.nullable().optional()}),loe=se.object({revisions:se.array(SA),total:se.number().int(),page:se.number().int(),page_size:se.number().int(),total_pages:se.number().int()});function gl(e){if(typeof e=="string"){if(e.startsWith("0x")&&be(e))return e;if(be(`0x${e}`))return`0x${e}`}throw new Error(`Invalid hex value: ${e}`)}var ew=class extends Error{constructor(e,t,r){super(e),this.code=t,this.details=r,this.name="NetworkError"}};var Kr=class extends Error{constructor(e,t,r){super(e),this.hash=t,this.details=r,this.name="TransactionError"}};async function EA(e,t){try{let r=await e.walletClient.getChainId();return{isCorrectNetwork:r===t,currentChainId:r}}catch(r){throw new ew(`Failed to check network status: ${r instanceof Error?r.message:"Unknown error"}`,"NETWORK_CHECK_FAILED",r)}}async function kA(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 ew(`Failed to check balance: ${n instanceof Error?n.message:"Unknown error"}`,"BALANCE_CHECK_FAILED",n)}}async function _A(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 Kr(`Transaction confirmation timeout after ${n}ms`,t));return}setTimeout(m,o);return}i(u)}else{if(Date.now()-a>=n){c(new Kr(`Transaction receipt timeout after ${n}ms`,t));return}setTimeout(m,o)}}catch(u){if(Date.now()-a>=n){c(new Kr(`Transaction receipt timeout after ${n}ms`,t,u));return}setTimeout(m,o)}};m()})}async function tw(e,t){let{targetChainId:r,minBalance:n,requiredAddress:o}=t,s=await EA(e,r),a=await kA(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 W0(){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 Kr("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 Kr("Transaction aborted");let x=await i(c,...m);if(r.signal.aborted)throw new Kr("Transaction aborted after submission",x);n({state:"pending",hash:x,submitTime:Date.now()}),d?.(x),p>0&&(t=setTimeout(()=>{e.state==="pending"&&!r?.signal.aborted&&n({state:"timeout",error:`Transaction timeout after ${p}ms`})},p));let b=await Promise.race([_A(c.publicClient,x,{timeout:p,confirmations:l}),new Promise((S,k)=>{r?.signal.addEventListener("abort",()=>{k(new Kr("Transaction aborted while waiting for receipt",x))})})]);t&&(clearTimeout(t),t=void 0);let v=b.status==="success";if(n({state:v?"success":"error",receipt:b,confirmTime:Date.now(),error:v?void 0:"Transaction failed on-chain"}),v)g?.(b);else{let S=new Kr("Transaction failed on-chain",x,b);throw h?.(S,x),S}return{hash:x,receipt:b,success:v}}catch(x){let b=x instanceof Kr?x:new Kr(`Transaction execution failed: ${x instanceof Error?x.message:"Unknown error"}`,e.hash,x);throw n({state:"error",error:b.message}),h?.(b,e.hash),b}}}}async function rw(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 W0().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 nw=[{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}],IA=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(),PA=IA.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"]}),AA=He.object({appId:He.string(),appAuthAddress:He.string(),deployer:He.string(),transactionHash:He.string(),blockNumber:He.bigint().optional(),gasUsed:He.bigint().optional()}).passthrough();function TA(e,t,r){try{let n=Cr({abi:nw,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 $A(e,t){let r=PA.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:x,onTransactionStateChange:b,onTransactionSubmitted:v,onTransactionConfirmed:S}=r,k="0000000000000000000000000000000000000000000000000000000000000000",_=u!==k&&u!=="0x"+k?!1:m,R,F,N,z;if(a){let xe=lc(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=Jo({chain:n,transport:wn(o)})}if(!n)throw new Error("Chain required for walletClient");F=pc({account:xe,chain:n,transport:wn(o)}),N=xe.address,z=n.id}else if(i){if(typeof i!="object"||!i)throw new Error("walletClient is invalid");if(F=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=Jo({chain:n,transport:wn(o)})}if(!F.account?.address)throw new Error("WalletClient needs an account");N=F.account.address,n?z=n.id:z=await F.getChainId()}else throw new Error("Need privateKey or walletClient");let O={publicClient:R,walletClient:F,address:N,chainId:z},q=W0();if(b&&typeof b=="function"){let xe=()=>{b(q.status),q.isComplete||setTimeout(xe,100)};setTimeout(xe,10)}if(!d){let xe={targetChainId:z,minBalance:g?Ko(g):Ko("0.001")},Fn=await tw(O,xe);if(!Fn.networkValid)throw new Error(`Wrong network. Need chain ${xe.targetChainId}, got ${Fn.details.currentChainId}`);if(!Fn.balanceValid){let lr=Number(xe.minBalance)/1e18,xf=Number(Fn.details.balance)/1e18;throw new Error(`Not enough ETH. Need ${lr}, have ${xf.toFixed(6)}`)}}let ue=gl(u),we=gl(p),J=`0x${ue.slice(2).padEnd(64,"0")}`,Ve=`0x${we.slice(2).padEnd(64,"0")}`,H=async xe=>{try{let lr=await xe.publicClient.getCode({address:s});if(!lr||lr==="0x")throw new Error(`No contract at ${s}`)}catch(lr){if(lr instanceof Error&&lr.message.includes("No contract at"))throw lr}let Fn={address:s,abi:nw,functionName:"deployAndRegisterApp",args:[xe.address,l,_,J,Ve],account:xe.walletClient.account||xe.address,chain:n||null};return await xe.walletClient.writeContract(Fn)},Le=y?await rw(H,O,[],{timeout:h,confirmations:1,onSubmitted:v,onConfirmed:S,signal:x},y):await q.execute(H,O,[],{timeout:h,confirmations:1,onSubmitted:v,onConfirmed:S,signal:x}),Ar=TA(Le.receipt,N,s);return t?.schema===!1?Ar:(t?.schema||AA).parse(Ar)}async function ow(e,t){try{return{success:!0,data:await $A(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}],RA=Me.object({chain:Me.unknown().optional(),rpcUrl:Me.string().optional(),appId:Me.string(),composeHash:Me.string(),privateKey:Me.string().optional(),walletClient:Me.unknown().optional(),publicClient:Me.unknown().optional(),skipPrerequisiteChecks:Me.boolean().optional().default(!1),minBalance:Me.string().optional(),timeout:Me.number().optional().default(12e4),retryOptions:Me.unknown().optional(),signal:Me.unknown().optional(),onTransactionStateChange:Me.function().optional(),onTransactionSubmitted:Me.function().optional(),onTransactionConfirmed:Me.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"]}),MA=Me.object({composeHash:Me.string(),appId:Me.string(),transactionHash:Me.string(),blockNumber:Me.bigint().optional(),gasUsed:Me.bigint().optional()}).passthrough();function FA(e,t,r,n){console.log(e.logs);try{let o=Cr({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 NA(e,t){let r=RA.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:x}=r,b,v,S,k,P=s.startsWith("0x")?s:`0x${s}`;if(i){let q=lc(i);if(m)b=m;else{if(!n)throw new Error("Chain required when creating publicClient");b=Jo({chain:n,transport:wn(o)})}if(!n)throw new Error("Chain required when creating walletClient");v=pc({account:q,chain:n,transport:wn(o)}),S=q.address,k=n.id}else if(c){if(v=c,m)b=m;else{if(!n)throw new Error("Chain required when creating publicClient");b=Jo({chain:n,transport:wn(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 _={publicClient:b,walletClient:v,address:S,chainId:k},R=W0();if(d&&typeof d=="function"){let q=()=>{d(R.status),R.isComplete||setTimeout(q,100)};setTimeout(q,10)}if(!y){let q={targetChainId:k,minBalance:x?Ko(x):Ko("0.001")},ue=await tw(_,q);if(!ue.networkValid)throw new Error(`Network mismatch: Expected chain ${q.targetChainId}, but wallet is on chain ${ue.details.currentChainId}`);if(!ue.balanceValid){let we=Number(q.minBalance)/1e18,J=Number(ue.details.balance)/1e18;throw new Error(`Insufficient balance: Required ${we} ETH, but account has ${J.toFixed(6)} ETH`)}}let F=async q=>await q.walletClient.writeContract({address:P,abi:sw,functionName:"addComposeHash",args:[gl(a)],account:q.walletClient.account||q.address,chain:n||null}),N=p?await rw(F,_,[],{timeout:u,confirmations:1,onSubmitted:g,onConfirmed:h,signal:l},p):await R.execute(F,_,[],{timeout:u,confirmations:1,onSubmitted:g,onConfirmed:h,signal:l}),z=FA(N.receipt,gl(a),P,s);return t?.schema===!1?z:(t?.schema||MA).parse(z)}async function aw(e,t){try{return{success:!0,data:await NA(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 BA=Gv;var LA=Ya.object({items:Ya.array(BA),total:Ya.number(),page:Ya.number(),page_size:Ya.number(),pages:Ya.number()}).passthrough(),{action:Soe,safeAction:iw}=ee(LA,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)}),ei=kr.object({limit:kr.number(),remaining:kr.number()}).passthrough(),DA=kr.object({vm_slots:ei,vcpu:ei,memory_mb:ei,disk_gb:ei}).passthrough(),UA=kr.object({gpus:ei,in_use:kr.number(),misconfigured:kr.number()}).passthrough(),OA=kr.object({team_slug:kr.string(),tier:kr.string(),quotas:DA,reserved_nodes:ei,reserved_gpu:UA,as_of:kr.string()}).passthrough(),{action:koe,safeAction:_oe}=ee(OA,async(e,t)=>await e.get(`/workspaces/${t.teamSlug}/quotas`)),Poe=Xa.object({target:Xa.string().describe("Target status to wait for (e.g., 'running', 'stopped')"),interval:Xa.number().min(5).max(30).default(5).describe("Polling interval in seconds"),timeout:Xa.number().min(10).max(600).default(300).describe("Timeout per attempt in seconds"),maxRetries:Xa.number().min(0).default(Number.POSITIVE_INFINITY).describe("Maximum number of retry attempts (Infinity for unlimited)"),retryDelay:Xa.number().min(0).default(5e3).describe("Delay between retries in milliseconds")});var zA=vt.object({vm_uuid:vt.string(),status:vt.string(),uptime:vt.string().nullable().optional(),in_progress:vt.boolean(),boot_progress:vt.string().nullable().optional(),boot_error:vt.string().nullable().optional(),operation_type:vt.string().nullable().optional(),operation_started_at:vt.string().nullable().optional(),correlation_id:vt.string().nullable().optional()}),jA=vt.record(vt.string(),zA),HA=vt.object({vmUuids:vt.array(vt.string())}),{action:Toe,safeAction:cw}=ee(jA,async(e,t)=>{let{vmUuids:r}=HA.parse(t);return await e.post("/status/batch",{vm_uuids:r})}),VA=Vt.object({page:Vt.number().int().min(1).optional(),page_size:Vt.number().int().min(1).max(100).optional(),search:Vt.string().optional(),status:Vt.array(Vt.string()).optional(),listed:Vt.boolean().optional(),base_image:Vt.string().optional(),instance_type:Vt.string().optional(),kms_slug:Vt.string().optional(),kms_type:Vt.string().optional(),teepod_name:Vt.string().optional(),region:Vt.string().optional()}).strict();function GA(e){return e==="2025-10-28"?bA:CA}async function qA(e,t){let r=VA.parse(t??{}),n=await e.get("/apps",{params:r});return GA(e.config.version).parse(n)}async function mw(e,t){try{return{success:!0,data:await qA(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 Moe=Mv.object({appId:Mv.string().min(1)}).strict();var Noe=Fv.object({appId:Fv.string().min(1)}).strict();var Loe=pl.object({appId:pl.string().min(1),page:pl.number().int().min(1).optional(),page_size:pl.number().int().min(1).max(1e3).optional()}).strict();var Uoe=ll.object({appId:ll.string().min(1),composeHash:ll.string().min(1),rawComposeFile:ll.boolean().optional()}).strict();var KA=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function WA(e){let t={},r=e.toString();r=r.replace(/\r\n?/gm,`
73
- `);let n;for(;(n=KA.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 wl(e){let t=WA(e),r=[];for(let[n,o]of Object.entries(t))r.push({key:n,value:o});return r}import wt from"chalk";import YA from"ora";function XA(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 QA(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 uw(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(...QA(n,t));continue}let o=XA(n,t);r.push(...o)}if(r.length===0){let n=e.trim();r.push(n)}return r}var f={error:(e,...t)=>{at()||(process.stderr.write(`${wt.red("\u2717")} ${wt.red(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
76
- `))},warn:(e,...t)=>{at()||(process.stderr.write(`${wt.yellow("\u26A0")} ${wt.yellow(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
77
- `))},info:(e,...t)=>{at()||(process.stderr.write(`${wt.blue("\u2139")} ${wt.blue(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
78
- `))},success:(e,...t)=>{at()||(process.stderr.write(`${wt.green("\u2713")} ${wt.green(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
79
- `))},debug:(e,...t)=>{at()||process.env.DEBUG&&(process.stderr.write(`${wt.gray("\u{1F50D}")} ${wt.gray(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
80
- `))},table:(e,t)=>{if(!at()){if(e.length===0){console.log(wt.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(wt.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(wt.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(at())return;let{borderStyle:r="single",keyColor:n=wt.blue,valueColor:o=wt.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,x=String(h??""),b=uw(y,c),v=uw(x,m),S=Math.max(b.length,v.length);for(;b.length<S;)b.push("");for(;v.length<S;)v.push("");for(let k=0;k<S;k++){let P=b[k].padEnd(c),_=v[k].padEnd(m);console.log(r!=="none"?`${i.vertical} ${n(P)} ${i.vertical} ${o(_)} ${i.vertical}`:`${n(P)} : ${o(_)}`)}}r!=="none"&&console.log(i.bottomLeft+i.horizontal.repeat(d-2)+i.bottomRight)},break:()=>{at()||process.stderr.write(`
81
- `)},startSpinner:e=>{if(at())return{stop:()=>{}};let t=YA(e).start();return{stop:(r=!0,n)=>{n&&(t.text=n),r?t.succeed():t.fail()}}},logDetailedError(e,t){if(at())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}
72
+ `,y,b,Ev(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?I0.fromFetchError(t):t instanceof Error?I0.fromError(t):new I0("Unknown error occurred",{detail:"Unknown error occurred"})}emitError(t){let r=d8(t);return this.emitter.emit("error",r),r}async safeRequest(t){try{return{success:!0,data:await t()}}catch(r){if(r instanceof Xr)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 Mv({...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 v8(e={}){return new x8(e)}var w8=_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(),C8=_e.object({id:_e.string(),name:_e.string(),slug:_e.string().nullable(),tier:_e.string(),role:_e.string(),avatar:_e.string().nullable().optional()}).passthrough(),S8=_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(),k8=_e.object({user:w8,workspace:C8,credits:S8}).passthrough(),E8=ho.object({username:ho.string(),email:ho.string(),credits:ho.number(),granted_credits:ho.number(),avatar:ho.string(),team_name:ho.string(),team_tier:ho.string()}).passthrough();function _8(e){return e==="2025-10-28"?E8:k8}async function Fv(e,t){let r=await e.get("/auth/me");return t?.schema===!1?r:(t?.schema||_8(e.config.version)).parse(r)}async function gt(e,t){try{return{success:!0,data:await Fv(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 I8={[Bu.id]:Bu,[$i.id]:$i,[zm.id]:zm},P8=yo.object({id:yo.string(),slug:yo.string().nullable(),url:yo.string(),version:yo.string(),chain_id:yo.number().nullable(),kms_contract_address:yo.string().nullable().transform(e=>e),gateway_app_id:yo.string().nullable().transform(e=>e)}).passthrough(),Qr=P8.transform(e=>{if(e.chain_id!=null){let t=I8[e.chain_id];if(t)return{...e,chain:t}}return e});function Bv(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 Nv(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 A8(e,t){function r(a,i){return n(a,i)}async function n(a,i){Bv(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=Nv(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 te(e,t){function r(a,...i){let[c,m]=i;return n(a,c,m)}async function n(a,i,c){Bv(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=Nv(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 T8=Y.object({name:Y.string(),is_dev:Y.boolean(),version:Y.union([Y.tuple([Y.number(),Y.number(),Y.number()]),Y.tuple([Y.number(),Y.number(),Y.number(),Y.number()])]),os_image_hash:Y.string().nullable().optional()}).passthrough(),$8=Y.object({teepod_id:Y.number(),name:Y.string(),listed:Y.boolean(),resource_score:Y.number(),remaining_vcpu:Y.number(),remaining_memory:Y.number(),remaining_cvm_slots:Y.number(),images:Y.array(T8),support_onchain_kms:Y.boolean().optional(),fmspc:Y.string().nullable().optional(),device_id:Y.string().nullable().optional(),region_identifier:Y.string().nullable().optional(),default_kms:Y.string().nullable().optional(),kms_list:Y.array(Y.string()).default([])}).passthrough(),R8=Y.object({max_instances:Y.number().nullable().optional(),max_vcpu:Y.number().nullable().optional(),max_memory:Y.number().nullable().optional(),max_disk:Y.number().nullable().optional()}).passthrough(),M8=Y.object({tier:Y.string(),capacity:R8,nodes:Y.array($8),kms_list:Y.array(Qr)}).passthrough(),{action:F8,safeAction:R0}=A8(M8,async e=>await e.get("/teepods/available")),Lv=Ne.object({id:Ne.string(),name:Ne.string(),description:Ne.string(),vcpu:Ne.number(),memory_mb:Ne.number(),hourly_rate:Ne.string(),requires_gpu:Ne.boolean(),default_disk_size_gb:Ne.number().default(20),family:Ne.string().nullable()}).passthrough(),B8=Ne.object({name:Ne.string(),items:Ne.array(Lv),total:Ne.number()}).strict(),N8=Ne.object({result:Ne.array(B8)}).strict(),L8=Ne.object({items:Ne.array(Lv),total:Ne.number(),family:Ne.string()}).strict(),D8=Ne.object({family:Ne.string()}).strict(),{action:M0,safeAction:U8}=te(N8,async e=>await e.get("/instance-types")),{action:F0,safeAction:z8}=te(L8,async(e,t)=>{let r=D8.parse(t);return await e.get(`/instance-types/${r.family}`)}),Dv=Rt.object({id:Rt.string(),name:Rt.string(),slug:Rt.string().nullable(),tier:Rt.string(),role:Rt.string(),is_default:Rt.boolean(),created_at:Rt.string()}).passthrough(),O8=Rt.object({has_more:Rt.boolean(),next_cursor:Rt.string().nullable(),total:Rt.number().nullable()}).passthrough(),j8=Rt.object({data:Rt.array(Dv),pagination:O8}).passthrough(),{action:H8,safeAction:V8}=te(j8,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:G8,safeAction:q8}=te(Dv,async(e,t)=>await e.get(`/workspaces/${t}`)),K8=$.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()}),W8=$.object({id:$.number(),username:$.string()}),Uv=$.object({id:$.number(),name:$.string(),region_identifier:$.string().nullable().optional()}),B0=$.object({vcpu:$.number(),memory:$.number(),disk_size:$.number(),gpu_count:$.number().default(0)}),N0=$.object({app:$.string(),instance:$.string()}),J8=$.object({hosted:K8,name:$.string(),managed_user:W8.nullable(),node:Uv.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:Qr.nullable(),vcpu:$.number().nullable(),memory:$.number().nullable(),disk_size:$.number().nullable(),gateway_domain:$.string().nullable(),public_urls:$.array(N0),machine_info:B0.nullable().optional(),updated_at:$.string().nullable().optional()}),zv=$.object({id:$.number(),name:$.string(),status:$.string(),in_progress:$.boolean().optional().default(!1),teepod_id:$.number().nullable(),teepod:Uv.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:Qr.optional().nullable(),contract_address:$.string().optional().nullable(),deployer_address:$.string().optional().nullable(),scheduled_delete_at:$.string().optional().nullable(),public_urls:$.array(N0).optional().default([]),gateway_domain:$.string().optional().nullable(),machine_info:B0.optional().nullable(),updated_at:$.string().optional().nullable()}),Z8=$.object({items:$.array(J8),total:$.number(),page:$.number(),page_size:$.number(),pages:$.number()}),Y8=M.enum(["skip","hourly","monthly"]),X8=M.enum(["phala","ethereum","base","legacy"]),L0=M.object({object_type:M.literal("user"),id:M.string().nullable().optional(),username:M.string().nullable().optional(),avatar_url:M.string().nullable().optional()}),D0=M.object({object_type:M.literal("workspace"),id:M.string(),name:M.string(),slug:M.string().nullable().optional(),avatar_url:M.string().nullable().optional()}),Q8=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:Y8.nullable().optional()}),eI=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()}),tI=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()}),rI=M.object({target:M.string().nullable().optional(),started_at:M.string().nullable().optional(),correlation_id:M.string().nullable().optional()}),nI=M.object({base_domain:M.string().nullable().optional(),cname:M.string().nullable().optional()}),Ov=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 hl=M.object({id:M.string(),name:M.string(),app_id:M.string().nullable().optional(),vm_uuid:M.string().nullable().optional(),resource:Q8,node_info:Ov.nullable().optional(),os:eI.nullable().optional(),kms_type:X8.nullable().optional(),kms_info:tI.nullable().optional(),status:M.string(),progress:rI.nullable().optional(),compose_hash:M.string().nullable().optional(),gateway:nI,services:M.array(M.record(M.any())).optional().default([]),endpoints:M.array(N0).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(),storage_fs:M.string().optional(),workspace:D0.nullable().optional(),creator:L0.nullable().optional()}),oI=hl.extend({compose_file:M.union([M.record(M.any()),M.string()]).nullable().optional()}),sI=M.object({items:M.array(hl),total:M.number(),page:M.number(),page_size:M.number(),pages:M.number()});function ni(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 jv(e){if(typeof e!="string")return ll();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)||!ni(t)?ll():t}function ll(){let e=Date.now().toString(36),t=Math.random().toString(36).substring(2,6);return`dstack-app-${e}-${t}`}var en=Za.object({id:Za.string().optional(),uuid:Za.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:Za.string().optional(),instance_id:Za.string().optional(),name:Za.string().refine(ni,{message:"Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens"}).optional()}),bo=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"}),aI=bo(en),ee=aI.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}}),iI=ee;function cI(e){return e==="2025-10-28"?zv:oI}async function Hv(e,t){let{cvmId:r}=iI.parse(t),n=await e.get(`/cvms/${r}`);return cI(e.config.version).parse(n)}async function $e(e,t){try{return{success:!0,data:await Hv(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 mI=Ya.object({page:Ya.number().int().min(1).optional(),page_size:Ya.number().int().min(1).optional(),node_id:Ya.number().int().min(1).optional(),teepod_id:Ya.number().int().min(1).optional(),user_id:Ya.string().optional()}).strict();function uI(e){return e==="2025-10-28"?Z8:sI}async function Vv(e,t){let r=mI.parse(t??{}),n=await e.get("/cvms/paginated",{params:r});return uI(e.config.version).parse(n)}async function vc(e,t){try{return{success:!0,data:await Vv(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 bc=200*1024;function Gv(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>bc){let i=bc/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 qv=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)=>{Gv(e.docker_compose_file,e.pre_launch_script,t)}),pI=Z.object({app_id:Z.string().nullable().optional(),app_env_encrypt_pubkey:Z.string().nullable().optional(),compose_hash:Z.string(),kms_info:Qr.nullable().optional(),fmspc:Z.string().nullable().optional(),device_id:Z.string().nullable().optional(),os_image_hash:Z.string().nullable().optional(),instance_type:Z.string().nullable().optional(),teepod_id:Z.number().nullable().optional(),node_id:Z.number().nullable().optional(),kms_id:Z.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}),P0="Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens",lI=Z.object({node_id:Z.number().optional(),teepod_id:Z.number().optional(),region:Z.string().optional(),name:Z.string().min(5,P0).max(63,P0).refine(e=>ni(e),P0),instance_type:Z.string().optional(),image:Z.string().optional(),vcpu:Z.number().optional(),memory:Z.number().optional(),disk_size:Z.number().optional(),compose_file:Z.object({allowed_envs:Z.array(Z.string()).optional(),pre_launch_script:Z.string().optional(),docker_compose_file:Z.string().optional(),name:Z.string().optional().default(""),kms_enabled:Z.boolean().optional(),public_logs:Z.boolean().optional(),public_sysinfo:Z.boolean().optional(),gateway_enabled:Z.boolean().optional(),tproxy_enabled:Z.boolean().optional()}).superRefine((e,t)=>{Gv(e.docker_compose_file,e.pre_launch_script,t)}),listed:Z.boolean().optional(),kms_id:Z.string().optional(),kms:Z.enum(["PHALA","ETHEREUM","BASE"]).optional(),kms_contract:Z.string().optional(),env_keys:Z.array(Z.string()).optional(),nonce:Z.number().optional(),app_id:Z.string().optional()}).passthrough().transform(e=>!e.instance_type&&!e.vcpu&&!e.memory?{...e,instance_type:"tdx.small"}:e);function fI(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:dI,safeAction:U0}=te(pI,async(e,t)=>{let r=lI.parse(t),n=fI(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)}),gI=Q.object({id:Q.number(),name:Q.string(),status:Q.string(),teepod_id:Q.number(),teepod:Q.object({id:Q.number(),name:Q.string()}).nullable(),user_id:Q.number().nullable(),app_id:Q.string().nullable(),vm_uuid:Q.string().nullable(),instance_id:Q.string().nullable(),app_url:Q.string().nullable().default(null),base_image:Q.string().nullable(),vcpu:Q.number(),memory:Q.number(),disk_size:Q.number(),manifest_version:Q.number().nullable().default(2),version:Q.string().nullable().default("1.0.0"),runner:Q.string().nullable().default("docker-compose"),docker_compose_file:Q.string().nullable(),features:Q.array(Q.string()).nullable().default(["kms","tproxy-net"]),created_at:Q.string(),encrypted_env_pubkey:Q.string().nullable().optional(),app_auth_contract_address:Q.string().nullable().optional(),deployer_address:Q.string().nullable().optional()}).passthrough(),Une=Q.object({encrypted_env:Q.string().optional().nullable(),app_id:Q.string(),compose_hash:Q.string(),kms_id:Q.string().optional(),contract_address:Q.string().optional(),deployer_address:Q.string().optional(),env_keys:Q.array(Q.string()).optional().nullable()}).passthrough(),{action:hI,safeAction:vl}=te(gI,async(e,t)=>await e.post("/cvms",t));function T0(e){return e==null?e:Array.isArray(e)?e.map(T0):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,r)=>{let n=e[r];return t[r]=T0(n),t},{}):e}function Kv(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 Wv(e){let t=T0(e),r=JSON.stringify(t,null,4);return r=r.replace(/": /g,'":'),r}function bI(e){let t=Kv(e),r=Wv(t);return yI.createHash("sha256").update(r,"utf8").digest("hex")}function xI(e){let t=e;return{...e,getHash:()=>bI(t),toString:()=>Wv(Kv(t))}}var vI=qv.transform(e=>xI(e)),wI=ee,{action:CI,safeAction:wc}=te(vI,async(e,t)=>{let{cvmId:r}=wI.parse(t);return await e.get(`/cvms/${r}/compose_file`)}),SI=Zr.object({id:Zr.string().optional(),uuid:Zr.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:Zr.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:Zr.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:qv,update_env_vars:Zr.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})),kI=Zr.object({app_id:Zr.string().nullable(),device_id:Zr.string().nullable(),compose_hash:Zr.string(),kms_info:Qr.nullable().optional()}).passthrough(),{action:EI,safeAction:z0}=te(kI,async(e,t)=>{let r=SI.parse(t);return await e.post(`/cvms/${r.cvmId}/compose_file/provision`,r.request)}),_I=_r.object({id:_r.string().optional(),uuid:_r.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:_r.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:_r.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:_r.string().min(1,"Compose hash is required"),encrypted_env:_r.string().optional(),env_keys:_r.array(_r.string()).optional(),update_env_vars:_r.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})),II=_r.any().transform(()=>{}),{action:PI,safeAction:O0}=te(II,async(e,t)=>{let r=_I.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})}),AI=bo(en.extend({encrypted_env:nt.string().describe("Encrypted environment variables (hex string)"),env_keys:nt.array(nt.string()).optional().describe("List of allowed environment variable keys"),compose_hash:nt.string().optional().describe("Compose hash for verification (Phase 2, required when env_keys changes)"),transaction_hash:nt.string().optional().describe("On-chain transaction hash for verification (Phase 2, required when env_keys changes)")})).transform(e=>{let{cvmId:t}=ee.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}}),TI=nt.object({status:nt.literal("in_progress"),message:nt.string(),correlation_id:nt.string(),allowed_envs_changed:nt.boolean()}),$I=nt.object({status:nt.literal("precondition_required"),message:nt.string(),compose_hash:nt.string(),app_id:nt.string(),device_id:nt.string(),kms_info:Qr}),RI=nt.union([TI,$I]),{action:MI,safeAction:FI}=te(RI,async(e,t)=>{let r=AI.parse(t);try{return await e.patch(`/cvms/${r.cvmId}/envs`,r.request)}catch(n){if(n instanceof Xr&&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}}),BI=bo(en.extend({docker_compose_file:Mt.string().describe("Docker Compose YAML content"),compose_hash:Mt.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:Mt.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=ee.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}}),NI=Mt.object({status:Mt.literal("in_progress"),message:Mt.string(),correlation_id:Mt.string()}),LI=Mt.object({status:Mt.literal("precondition_required"),message:Mt.string(),compose_hash:Mt.string(),app_id:Mt.string(),device_id:Mt.string(),kms_info:Qr}),DI=Mt.union([NI,LI]),{action:UI,safeAction:zI}=te(DI,async(e,t)=>{let r=BI.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 Xr&&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}}),OI=bo(en.extend({pre_launch_script:Ft.string().describe("Pre-launch script content (shell script)"),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}=ee.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}}),jI=Ft.object({status:Ft.literal("in_progress"),message:Ft.string(),correlation_id:Ft.string()}),HI=Ft.object({status:Ft.literal("precondition_required"),message:Ft.string(),compose_hash:Ft.string(),app_id:Ft.string(),device_id:Ft.string(),kms_info:Qr}),VI=Ft.union([jI,HI]),{action:GI,safeAction:qI}=te(VI,async(e,t)=>{let r=OI.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 Xr&&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}}),WI=ee,{action:JI,safeAction:ZI}=te(KI.string(),async(e,t)=>{let{cvmId:r}=WI.parse(t);return await e.get(`/cvms/${r}/pre-launch-script`)}),YI=_v.object({kms_id:_v.string().min(1,"KMS ID is required")}),{action:XI,safeAction:QI}=te(Qr,async(e,t)=>{let r=YI.parse(t);return await e.get(`/kms/${r.kms_id}`)}),eP=Yr.object({page:Yr.number().int().min(1).optional(),page_size:Yr.number().int().min(1).optional(),is_onchain:Yr.boolean().optional()}).strict(),tP=Yr.object({items:Yr.array(Qr),total:Yr.number(),page:Yr.number(),page_size:Yr.number(),pages:Yr.number()}).strict(),{action:rP,safeAction:nP}=te(tP,async(e,t)=>{let r=eP.parse(t??{});return await e.get("/kms",{params:r})}),oP=ri.object({kms:ri.string().min(1,"KMS ID or slug is required"),app_id:ri.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(),sP=ri.object({public_key:ri.string(),signature:ri.string()}).strict(),{action:aP,safeAction:wl}=te(sP,async(e,t)=>{let r=oP.parse(t);return await e.get(`/kms/${r.kms}/pubkey/${r.app_id}`)}),iP=Xo.object({counts:Xo.number().int().min(1).max(20).optional().default(1)}).strict(),cP=Xo.object({app_ids:Xo.array(Xo.object({app_id:Xo.string(),nonce:Xo.number().int().min(0)}))}).strict(),{action:mP,safeAction:uP}=te(cP,async(e,t)=>{let r=iP.parse(t??{}),n=new URLSearchParams;return n.append("counts",r.counts.toString()),await e.get(`/kms/phala/next_app_id?${n.toString()}`)}),Cl=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().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()}),pP=ee,{action:lP,safeAction:j0}=te(Cl,async(e,t)=>{let{cvmId:r}=pP.parse(t);return await e.post(`/cvms/${r}/start`)}),fP=ee,{action:dP,safeAction:H0}=te(Cl,async(e,t)=>{let{cvmId:r}=fP.parse(t);return await e.post(`/cvms/${r}/stop`)}),gP=ee,{action:hP,safeAction:yP}=te(Cl,async(e,t)=>{let{cvmId:r}=gP.parse(t);return await e.post(`/cvms/${r}/shutdown`)}),xP=bo(en.extend({force:bP.boolean().optional()})),{action:vP,safeAction:V0}=te(Cl,async(e,t)=>{let r=xP.parse(t),{cvmId:n}=ee.parse(r),{force:o=!1}=r;return await e.post(`/cvms/${n}/restart`,{force:o})}),CP=ee,{action:SP,safeAction:G0}=te(wP.void(),async(e,t)=>{let{cvmId:r}=CP.parse(t);await e.delete(`/cvms/${r}`)}),kP=ue.object({name:ue.string(),mount_point:ue.string(),total_size:ue.number(),free_size:ue.number()}),EP=ue.object({os_name:ue.string(),os_version:ue.string(),kernel_version:ue.string(),cpu_model:ue.string(),num_cpus:ue.number(),total_memory:ue.number(),available_memory:ue.number(),used_memory:ue.number(),free_memory:ue.number(),total_swap:ue.number(),used_swap:ue.number(),free_swap:ue.number(),uptime:ue.number(),loadavg_one:ue.number(),loadavg_five:ue.number(),loadavg_fifteen:ue.number(),disks:ue.array(kP)}),_P=ue.object({is_online:ue.boolean(),is_public:ue.boolean().default(!1),error:ue.string().nullable(),sysinfo:EP.nullable(),status:ue.string().nullable(),in_progress:ue.boolean().default(!1),boot_progress:ue.string().nullable(),boot_error:ue.string().nullable()}),IP=ee,{action:PP,safeAction:AP}=te(_P,async(e,t)=>{let{cvmId:r}=IP.parse(t);return await e.get(`/cvms/${r}/stats`)}),TP=Wr.object({app:Wr.string(),instance:Wr.string()}),$P=Wr.object({is_online:Wr.boolean(),is_public:Wr.boolean().default(!0),error:Wr.string().nullable(),internal_ip:Wr.string().nullable(),latest_handshake:Wr.string().nullable(),public_urls:Wr.array(TP).nullable()}),RP=ee,{action:MP,safeAction:FP}=te($P,async(e,t)=>{let{cvmId:r}=RP.parse(t);return await e.get(`/cvms/${r}/network`)}),NP=ee,{action:LP,safeAction:DP}=te(BP.string(),async(e,t)=>{let{cvmId:r}=NP.parse(t);return await e.get(`/cvms/${r}/docker-compose.yml`)}),UP=Be.object({id:Be.string(),names:Be.array(Be.string()),image:Be.string(),image_id:Be.string(),command:Be.string().nullable().optional(),created:Be.number(),state:Be.string(),status:Be.string(),log_endpoint:Be.string().nullable()}),zP=Be.object({is_online:Be.boolean(),is_public:Be.boolean().default(!0),error:Be.string().nullable(),docker_compose_file:Be.string().nullable(),manifest_version:Be.number().nullable(),version:Be.string().nullable(),runner:Be.string().nullable(),features:Be.array(Be.string()).nullable(),containers:Be.array(UP).nullable()}),OP=ee,{action:jP,safeAction:q0}=te(zP,async(e,t)=>{let{cvmId:r}=OP.parse(t);return await e.get(`/cvms/${r}/composition`)}),HP=V.object({common_name:V.string().nullable(),organization:V.string().nullable(),country:V.string().nullable(),state:V.string().nullable(),locality:V.string().nullable()}),VP=V.object({common_name:V.string().nullable(),organization:V.string().nullable(),country:V.string().nullable()}),GP=V.object({subject:HP,issuer:VP,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()}),qP=V.object({imr:V.number(),event_type:V.number(),digest:V.string(),event:V.string(),event_payload:V.string()}),KP=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(qP),app_compose:V.string()}),WP=V.object({name:V.string().nullable(),is_online:V.boolean(),is_public:V.boolean().default(!0),error:V.string().nullable(),app_certificates:V.array(GP).nullable(),tcb_info:KP.nullable(),compose_file:V.string().nullable()}),JP=ee,{action:ZP,safeAction:YP}=te(WP,async(e,t)=>{let{cvmId:r}=JP.parse(t);return await e.get(`/cvms/${r}/attestation`)}),XP=bo(en.extend({vcpu:ei.number().optional(),memory:ei.number().optional(),disk_size:ei.number().optional(),instance_type:ei.string().optional(),allow_restart:ei.boolean().optional()})),{action:QP,safeAction:eA}=te(ei.void(),async(e,t)=>{let r=XP.parse(t),{cvmId:n}=ee.parse(r),{...o}=r;await e.patch(`/cvms/${n}/resources`,o)}),tA=bo(en.extend({public_sysinfo:A0.boolean(),public_logs:A0.boolean(),public_tcbinfo:A0.boolean().optional()})),{action:rA,safeAction:K0}=te(zv,async(e,t)=>{let r=tA.parse(t),{cvmId:n}=ee.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})}),Iv=dt.object({name:dt.string(),os_image_hash:dt.string().nullable(),is_current:dt.boolean()}),nA=dt.object({version:dt.union([dt.tuple([dt.number(),dt.number(),dt.number(),dt.number()]),dt.tuple([dt.number(),dt.number(),dt.number()])]),prod:Iv.nullable(),dev:Iv.nullable()}),oA=dt.array(nA),sA=ee,{action:aA,safeAction:iA}=te(oA,async(e,t)=>{let{cvmId:r}=sA.parse(t);return await e.get(`/cvms/${r}/available-os-images`)}),cA=bo(en.extend({os_image_name:Jv.string().min(1,"OS image name is required")})),{action:mA,safeAction:uA}=te(Jv.void(),async(e,t)=>{let r=cA.parse(t),{cvmId:n}=ee.parse(r),{os_image_name:o}=r;await e.patch(`/cvms/${n}/os-image`,{os_image_name:o})}),pA=Kr.object({id:Kr.string().optional(),instance_id:Kr.string().optional(),name:Kr.string(),status:Kr.string(),uptime:Kr.string().optional(),exited_at:Kr.string().optional(),boot_progress:Kr.string().optional(),boot_error:Kr.string().optional(),shutdown_progress:Kr.string().optional()}),lA=ee,{action:fA,safeAction:dA}=te(pA,async(e,t)=>{let{cvmId:r}=lA.parse(t);return await e.get(`/cvms/${r}/state`)});function ur(e={}){let t=v8(e),r={getCurrentUser:Fv,safeGetCurrentUser:gt,getAvailableNodes:F8,safeGetAvailableNodes:R0,listAllInstanceTypeFamilies:M0,safeListAllInstanceTypeFamilies:U8,listFamilyInstanceTypes:F0,safeListFamilyInstanceTypes:z8,listWorkspaces:H8,safeListWorkspaces:V8,getWorkspace:G8,safeGetWorkspace:q8,getCvmInfo:Hv,safeGetCvmInfo:$e,getCvmList:Vv,safeGetCvmList:vc,provisionCvm:dI,safeProvisionCvm:U0,commitCvmProvision:hI,safeCommitCvmProvision:vl,getCvmComposeFile:CI,safeGetCvmComposeFile:wc,provisionCvmComposeFileUpdate:EI,safeProvisionCvmComposeFileUpdate:z0,commitCvmComposeFileUpdate:PI,safeCommitCvmComposeFileUpdate:O0,updateCvmEnvs:MI,safeUpdateCvmEnvs:FI,updateDockerCompose:UI,safeUpdateDockerCompose:zI,updatePreLaunchScript:GI,safeUpdatePreLaunchScript:qI,getCvmPreLaunchScript:JI,safeGetCvmPreLaunchScript:ZI,startCvm:lP,safeStartCvm:j0,stopCvm:dP,safeStopCvm:H0,shutdownCvm:hP,safeShutdownCvm:yP,restartCvm:vP,safeRestartCvm:V0,deleteCvm:SP,safeDeleteCvm:G0,getCvmStats:PP,safeGetCvmStats:AP,getCvmNetwork:MP,safeGetCvmNetwork:FP,getCvmDockerCompose:LP,safeGetCvmDockerCompose:DP,getCvmContainersStats:jP,safeGetCvmContainersStats:q0,getCvmAttestation:ZP,safeGetCvmAttestation:YP,updateCvmResources:QP,safeUpdateCvmResources:eA,updateCvmVisibility:rA,safeUpdateCvmVisibility:K0,getAvailableOsImages:aA,safeGetAvailableOsImages:iA,updateOsImage:mA,safeUpdateOsImage:uA,getKmsInfo:XI,safeGetKmsInfo:QI,getKmsList:rP,safeGetKmsList:nP,getAppEnvEncryptPubKey:aP,safeGetAppEnvEncryptPubKey:wl,nextAppIds:mP,safeNextAppIds:uP,getCvmState:fA,safeGetCvmState:dA};return t.extend(r)}var Pv=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:B0.nullable().optional(),updated_at:U.string().nullable().optional()}),gA=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()}),hA=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:gA.nullable().optional(),current_cvm:Pv.nullable().optional(),cvms:U.array(Pv).default([]),cvm_count:U.number().int().default(0)}),yA=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()}),bA=U.union([hA,yA]),xA=U.object({dstack_apps:U.array(bA),page:U.number().int(),page_size:U.number().int(),total:U.number().int(),total_pages:U.number().int()}),vA=ie.object({id:ie.string(),name:ie.string(),app_id:ie.string(),app_provision_type:ie.string().nullable().optional(),app_icon_url:ie.string().nullable().optional(),created_at:ie.string(),kms_type:ie.string(),profile:ie.object({display_name:ie.string().nullable().optional(),avatar_url:ie.string().nullable().optional(),description:ie.string().nullable().optional(),custom_domain:ie.string().nullable().optional()}).nullable().optional(),current_cvm:hl.nullable().optional(),cvms:ie.array(hl).default([]),cvm_count:ie.number().int().default(0)}),wA=ie.object({id:ie.null().optional(),app_id:ie.string(),name:ie.null().optional(),app_provision_type:ie.null().optional(),app_icon_url:ie.null().optional(),created_at:ie.null().optional(),kms_type:ie.null().optional(),current_cvm:ie.null().optional(),cvms:ie.null().optional(),cvm_count:ie.null().optional()}),CA=ie.union([vA,wA]),SA=ie.object({dstack_apps:ie.array(CA),page:ie.number().int(),page_size:ie.number().int(),total:ie.number().int(),total_pages:ie.number().int()}),Zv=oe.object({object_type:oe.literal("cvm"),id:oe.string().nullable().optional(),name:oe.string().nullable().optional(),app_id:oe.string().nullable().optional(),vm_uuid:oe.string().nullable().optional()}),kA=oe.object({revision_id:oe.string(),app_id:oe.string(),vm_uuid:oe.string(),compose_hash:oe.string(),created_at:oe.string(),trace_id:oe.string().nullable().optional(),operation_type:oe.string(),triggered_by:L0.nullable().optional(),cvm:Zv.nullable().optional(),workspace:D0.nullable().optional()}),foe=oe.object({revision_id:oe.string(),app_id:oe.string(),vm_uuid:oe.string(),compose_hash:oe.string(),compose_file:oe.union([oe.record(oe.any()),oe.string()]).nullable().optional(),encrypted_env:oe.string(),user_config:oe.string(),created_at:oe.string(),trace_id:oe.string().nullable().optional(),operation_type:oe.string(),triggered_by:L0.nullable().optional(),cvm:Zv.nullable().optional(),workspace:D0.nullable().optional()}),doe=oe.object({revisions:oe.array(kA),total:oe.number().int(),page:oe.number().int(),page_size:oe.number().int(),total_pages:oe.number().int()});function yl(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 Yv=class extends Error{constructor(e,t,r){super(e),this.code=t,this.details=r,this.name="NetworkError"}};var Jr=class extends Error{constructor(e,t,r){super(e),this.hash=t,this.details=r,this.name="TransactionError"}};async function EA(e,t){try{let r=await e.walletClient.getChainId();return{isCorrectNetwork:r===t,currentChainId:r}}catch(r){throw new Yv(`Failed to check network status: ${r instanceof Error?r.message:"Unknown error"}`,"NETWORK_CHECK_FAILED",r)}}async function _A(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 Yv(`Failed to check balance: ${n instanceof Error?n.message:"Unknown error"}`,"BALANCE_CHECK_FAILED",n)}}async function IA(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 Jr(`Transaction confirmation timeout after ${n}ms`,t));return}setTimeout(m,o);return}i(u)}else{if(Date.now()-a>=n){c(new Jr(`Transaction receipt timeout after ${n}ms`,t));return}setTimeout(m,o)}}catch(u){if(Date.now()-a>=n){c(new Jr(`Transaction receipt timeout after ${n}ms`,t,u));return}setTimeout(m,o)}};m()})}async function Xv(e,t){let{targetChainId:r,minBalance:n,requiredAddress:o}=t,s=await EA(e,r),a=await _A(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 W0(){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 Jr("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 Jr("Transaction aborted");let b=await i(c,...m);if(r.signal.aborted)throw new Jr("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([IA(c.publicClient,b,{timeout:p,confirmations:l}),new Promise((S,E)=>{r?.signal.addEventListener("abort",()=>{E(new Jr("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 Jr("Transaction failed on-chain",b,x);throw h?.(S,b),S}return{hash:b,receipt:x,success:v}}catch(b){let x=b instanceof Jr?b:new Jr(`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 Qv(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 W0().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 ew=[{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}],PA=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(),AA=PA.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"]}),TA=He.object({appId:He.string(),appAuthAddress:He.string(),deployer:He.string(),transactionHash:He.string(),blockNumber:He.bigint().optional(),gasUsed:He.bigint().optional()}).passthrough();function $A(e,t,r){try{let n=kr({abi:ew,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 RA(e,t){let r=AA.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",_=u!==E&&u!=="0x"+E?!1:m,R,F,B,O;if(a){let ve=lc(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=Yo({chain:n,transport:wn(o)})}if(!n)throw new Error("Chain required for walletClient");F=pc({account:ve,chain:n,transport:wn(o)}),B=ve.address,O=n.id}else if(i){if(typeof i!="object"||!i)throw new Error("walletClient is invalid");if(F=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=Yo({chain:n,transport:wn(o)})}if(!F.account?.address)throw new Error("WalletClient needs an account");B=F.account.address,n?O=n.id:O=await F.getChainId()}else throw new Error("Need privateKey or walletClient");let j={publicClient:R,walletClient:F,address:B,chainId:O},q=W0();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?Jo(g):Jo("0.001")},Fn=await Xv(j,ve);if(!Fn.networkValid)throw new Error(`Wrong network. Need chain ${ve.targetChainId}, got ${Fn.details.currentChainId}`);if(!Fn.balanceValid){let dr=Number(ve.minBalance)/1e18,vf=Number(Fn.details.balance)/1e18;throw new Error(`Not enough ETH. Need ${dr}, have ${vf.toFixed(6)}`)}}let fe=yl(u),Se=yl(p),J=`0x${fe.slice(2).padEnd(64,"0")}`,Ve=`0x${Se.slice(2).padEnd(64,"0")}`,H=async ve=>{try{let dr=await ve.publicClient.getCode({address:s});if(!dr||dr==="0x")throw new Error(`No contract at ${s}`)}catch(dr){if(dr instanceof Error&&dr.message.includes("No contract at"))throw dr}let Fn={address:s,abi:ew,functionName:"deployAndRegisterApp",args:[ve.address,l,_,J,Ve],account:ve.walletClient.account||ve.address,chain:n||null};return await ve.walletClient.writeContract(Fn)},Le=y?await Qv(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}),$r=$A(Le.receipt,B,s);return t?.schema===!1?$r:(t?.schema||TA).parse($r)}async function tw(e,t){try{return{success:!0,data:await RA(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 rw=[{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}],MA=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"]}),FA=Fe.object({composeHash:Fe.string(),appId:Fe.string(),transactionHash:Fe.string(),blockNumber:Fe.bigint().optional(),gasUsed:Fe.bigint().optional()}).passthrough();function BA(e,t,r,n){console.log(e.logs);try{let o=kr({abi:rw,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 NA(e,t){let r=MA.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,I=s.startsWith("0x")?s:`0x${s}`;if(i){let q=lc(i);if(m)x=m;else{if(!n)throw new Error("Chain required when creating publicClient");x=Yo({chain:n,transport:wn(o)})}if(!n)throw new Error("Chain required when creating walletClient");v=pc({account:q,chain:n,transport:wn(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=Yo({chain:n,transport:wn(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 _={publicClient:x,walletClient:v,address:S,chainId:E},R=W0();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?Jo(b):Jo("0.001")},fe=await Xv(_,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,J=Number(fe.details.balance)/1e18;throw new Error(`Insufficient balance: Required ${Se} ETH, but account has ${J.toFixed(6)} ETH`)}}let F=async q=>await q.walletClient.writeContract({address:I,abi:rw,functionName:"addComposeHash",args:[yl(a)],account:q.walletClient.account||q.address,chain:n||null}),B=p?await Qv(F,_,[],{timeout:u,confirmations:1,onSubmitted:g,onConfirmed:h,signal:l},p):await R.execute(F,_,[],{timeout:u,confirmations:1,onSubmitted:g,onConfirmed:h,signal:l}),O=BA(B.receipt,yl(a),I,s);return t?.schema===!1?O:(t?.schema||FA).parse(O)}async function nw(e,t){try{return{success:!0,data:await NA(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 LA=Ov;var DA=Xa.object({items:Xa.array(LA),total:Xa.number(),page:Xa.number(),page_size:Xa.number(),pages:Xa.number()}).passthrough(),{action:Eoe,safeAction:ow}=te(DA,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)}),ti=Ir.object({limit:Ir.number(),remaining:Ir.number()}).passthrough(),UA=Ir.object({vm_slots:ti,vcpu:ti,memory_mb:ti,disk_gb:ti}).passthrough(),zA=Ir.object({gpus:ti,in_use:Ir.number(),misconfigured:Ir.number()}).passthrough(),OA=Ir.object({team_slug:Ir.string(),tier:Ir.string(),quotas:UA,reserved_nodes:ti,reserved_gpu:zA,as_of:Ir.string()}).passthrough(),{action:Ioe,safeAction:Poe}=te(OA,async(e,t)=>await e.get(`/workspaces/${t.teamSlug}/quotas`)),Toe=Qa.object({target:Qa.string().describe("Target status to wait for (e.g., 'running', 'stopped')"),interval:Qa.number().min(5).max(30).default(5).describe("Polling interval in seconds"),timeout:Qa.number().min(10).max(600).default(300).describe("Timeout per attempt in seconds"),maxRetries:Qa.number().min(0).default(Number.POSITIVE_INFINITY).describe("Maximum number of retry attempts (Infinity for unlimited)"),retryDelay:Qa.number().min(0).default(5e3).describe("Delay between retries in milliseconds")});var jA=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()}),HA=wt.record(wt.string(),jA),VA=wt.object({vmUuids:wt.array(wt.string())}),{action:Roe,safeAction:sw}=te(HA,async(e,t)=>{let{vmUuids:r}=VA.parse(t);return await e.post("/status/batch",{vm_uuids:r})}),GA=Gt.object({page:Gt.number().int().min(1).optional(),page_size:Gt.number().int().min(1).max(100).optional(),search:Gt.string().optional(),status:Gt.array(Gt.string()).optional(),listed:Gt.boolean().optional(),base_image:Gt.string().optional(),instance_type:Gt.string().optional(),kms_slug:Gt.string().optional(),kms_type:Gt.string().optional(),node:Gt.string().optional(),region:Gt.string().optional()}).strict();function qA(e){return e==="2025-10-28"?xA:SA}async function KA(e,t){let r=GA.parse(t??{}),n=await e.get("/apps",{params:r});return qA(e.config.version).parse(n)}async function aw(e,t){try{return{success:!0,data:await KA(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 Boe=Av.object({appId:Av.string().min(1)}).strict();var Loe=Tv.object({appId:Tv.string().min(1)}).strict();var Uoe=fl.object({appId:fl.string().min(1),page:fl.number().int().min(1).optional(),page_size:fl.number().int().min(1).max(1e3).optional()}).strict();var Ooe=dl.object({appId:dl.string().min(1),revisionId:dl.string().min(1),rawComposeFile:dl.boolean().optional()}).strict();var Hoe=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 WA=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function JA(e){let t={},r=e.toString();r=r.replace(/\r\n?/gm,`
73
+ `);let n;for(;(n=WA.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 Sl(e){let t=JA(e),r=[];for(let[n,o]of Object.entries(t))r.push({key:n,value:o});return r}import Ct from"chalk";import XA from"ora";function QA(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 eT(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 iw(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(...eT(n,t));continue}let o=QA(n,t);r.push(...o)}if(r.length===0){let n=e.trim();r.push(n)}return r}var f={error:(e,...t)=>{st()||(process.stderr.write(`${Ct.red("\u2717")} ${Ct.red(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
76
+ `))},warn:(e,...t)=>{st()||(process.stderr.write(`${Ct.yellow("\u26A0")} ${Ct.yellow(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
77
+ `))},info:(e,...t)=>{st()||(process.stderr.write(`${Ct.blue("\u2139")} ${Ct.blue(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
78
+ `))},success:(e,...t)=>{st()||(process.stderr.write(`${Ct.green("\u2713")} ${Ct.green(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
79
+ `))},debug:(e,...t)=>{st()||process.env.DEBUG&&(process.stderr.write(`${Ct.gray("\u{1F50D}")} ${Ct.gray(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
80
+ `))},table:(e,t)=>{if(!st()){if(e.length===0){console.log(Ct.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(Ct.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(Ct.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(st())return;let{borderStyle:r="single",keyColor:n=Ct.blue,valueColor:o=Ct.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=iw(y,c),v=iw(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 I=x[E].padEnd(c),_=v[E].padEnd(m);console.log(r!=="none"?`${i.vertical} ${n(I)} ${i.vertical} ${o(_)} ${i.vertical}`:`${n(I)} : ${o(_)}`)}}r!=="none"&&console.log(i.bottomLeft+i.horizontal.repeat(d-2)+i.bottomRight)},break:()=>{st()||process.stderr.write(`
81
+ `)},startSpinner:e=>{if(st())return{stop:()=>{}};let t=XA(e).start();return{stop:(r=!0,n)=>{n&&(t.text=n),r?t.succeed():t.fail()}}},logDetailedError(e,t){if(st())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 lw=Xr.extend({profile:_r.string().optional(),api_version:_r.enum($0).optional(),gateway_domain:_r.string().optional(),gateway_port:_r.number().int().positive().optional(),compose_file:_r.string().optional(),env_file:_r.string().optional(),public_logs:_r.boolean().optional(),public_sysinfo:_r.boolean().optional(),listed:_r.boolean().optional()}),wc="phala.toml";function J0(){return eT.join(process.cwd(),wc)}function Sl(){return Cl.existsSync(J0())}function tT(){let e=J0();if(!Cl.existsSync(e))throw new Error(`Project configuration file not found: ${wc}
87
- Run 'phala init' to create one.`);try{let t=Cl.readFileSync(e,"utf8"),r=pw.parse(t),n=lw.parse(r);if(n.id||n.uuid||n.app_id||n.instance_id||n.name){let{cvmId:o}=ye.parse(n);return{...n,cvm_id:o}}return n}catch(t){if(t instanceof _r.ZodError){let r=t.issues.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
86
+ `)}};var mw=en.extend({profile:Pr.string().optional(),api_version:Pr.enum($0).optional(),gateway_domain:Pr.string().optional(),gateway_port:Pr.number().int().positive().optional(),compose_file:Pr.string().optional(),env_file:Pr.string().optional(),public_logs:Pr.boolean().optional(),public_sysinfo:Pr.boolean().optional(),listed:Pr.boolean().optional()}),Cc="phala.toml";function J0(){return tT.join(process.cwd(),Cc)}function El(){return kl.existsSync(J0())}function rT(){let e=J0();if(!kl.existsSync(e))throw new Error(`Project configuration file not found: ${Cc}
87
+ Run 'phala init' to create one.`);try{let t=kl.readFileSync(e,"utf8"),r=cw.parse(t),n=mw.parse(r);if(n.id||n.uuid||n.app_id||n.instance_id||n.name){let{cvmId:o}=ee.parse(n);return{...n,cvm_id:o}}return n}catch(t){if(t instanceof Pr.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 ${wc}: ${t instanceof Error?t.message:String(t)}`)}}function fw(e){let t=J0();try{let r=lw.parse(e),n=pw.stringify(r);Cl.writeFileSync(t,n,"utf8"),f.success(`Project configuration saved to ${wc}`)}catch(r){if(r instanceof _r.ZodError){let n=r.issues.map(o=>` - ${o.path.join(".")}: ${o.message}`).join(`
89
+ ${r}`)}throw new Error(`Failed to parse ${Cc}: ${t instanceof Error?t.message:String(t)}`)}}function uw(e){let t=J0();try{let r=mw.parse(e),n=cw.stringify(r);kl.writeFileSync(t,n,"utf8"),f.success(`Project configuration saved to ${Cc}`)}catch(r){if(r instanceof Pr.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 ${wc}: ${r instanceof Error?r.message:String(r)}`)}}function Cc(){return Sl()?tT():{}}function dw(e){if(!e)return;let{cvmId:t}=ye.parse({id:e});return t}import Sn from"fs";import rT from"os";import kl from"path";var Qr="https://cloud-api.phala.com/api/v1";function _l(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:kl.join(rT.homedir(),".phala-cloud")}function Sc(){return kl.join(_l(),"credentials.json")}function Z0(){return kl.join(_l(),"api-key")}function gw(){return kl.join(_l(),"docker-credentials.json")}function hw(){let e=_l();Sn.existsSync(e)||Sn.mkdirSync(e,{recursive:!0})}function El(e){return typeof e=="string"&&e.trim().length>0}function Il(e){let t=e.trim();return t.length===0?"default":t}function Nt(){try{let e=Sc();if(!Sn.existsSync(e))return null;let t=Sn.readFileSync(e,"utf8"),r=JSON.parse(t);if(!r||typeof r!="object")return null;let n=r;return n.schema_version!==1||!El(n.current_profile)||!n.profiles||typeof n.profiles!="object"?null:n}catch(e){return f.error("Failed to read credentials file:",e),null}}function Y0(e){hw(),Sn.writeFileSync(Sc(),JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}function yw(e){let t=Nt(),r=Il(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:Qr)??Qr,a=n?"env":o?"file":"default";if(El(e.apiToken))return{apiKey:e.apiToken,baseURL:s,profileName:r,tokenSource:"flag",apiPrefixSource:a};if(El(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 El(i)?{apiKey:i,baseURL:s,profileName:r,tokenSource:"file",apiPrefixSource:a}:{apiKey:null,baseURL:s,profileName:r,tokenSource:"none",apiPrefixSource:a}}function ni(e){let t=Il(e.profileName),r=(e.apiPrefix||Qr).trim(),n=Nt(),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:Qr,workspace:a,user:e.user,updated_at:new Date().toISOString()}}};Y0(i)}function Pl(e){let t=Nt();if(!t)return;let r=Il(e||t.current_profile),n={...t.profiles};delete n[r];let o=Object.keys(n);if(o.length===0){try{Sn.unlinkSync(Sc())}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};Y0(a)}function Ec(){let e=Nt();return e?Object.keys(e.profiles):[]}function X0(e){let t=Il(e),r=Nt();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&&Y0({...r,current_profile:t})}function Yo(){let e=Nt();if(!e)return null;let t=e.current_profile,r=e.profiles[t];return r?{name:t,info:r}:null}async function Q0(e){hw();try{Sn.writeFileSync(gw(),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 En(){try{let e=gw();if(Sn.existsSync(e)){let t=Sn.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 nT(){return{env:process.env,projectConfig:Cc()}}function en(e,t){let r=e??nT();return yw({env:r.env,apiToken:t?.apiToken,profile:t?.profile,projectProfile:r.projectConfig.profile})}async function D(e,t){let r=en(e,t);return cr({apiKey:r.apiKey??void 0,baseURL:r.baseURL,version:bw})}async function xw(e,t){let r=en(e,t);return{client:await D(e,t),auth:r}}async function Al(e,t){return cr({apiKey:e,baseURL:t?.baseURL,version:bw})}import{z as C}from"zod";var oT=C.object({password:C.string(),registry:C.string().nullable(),username:C.string()}),bse=C.object({docker_compose_file:C.string(),docker_config:oT.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(),vw=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()}),xse=C.object({key:C.string(),value:C.string()}),sT=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()}))}),ww=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()}),Cw=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()}),aT=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()}),vse=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(aT).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 iT from"inquirer";async function Sw(e){let t=await D(),r=await vc(t,{id:e});if(!r.success)throw new Error(r.error.message);return r.data}async function Ew(){let e=f.startSpinner("Fetching available CVMs"),t=await D(),r=await xc(t);if(e.stop(!0),!r.success){f.error(`Failed to fetch CVMs: ${r.error.message}`);return}let o=r.data.items;if(!o||o.length===0){f.info("No CVMs found for your account");return}let s=o.map(i=>{let c=i,m=c.hosted?.app_id||c.hosted?.id,u=c.name||c.hosted?.name,p=c.status||c.hosted?.status;return{name:`${u||"Unnamed"} (${m}) - Status: ${p||"Unknown"}`,value:m}}),{selectedCvm:a}=await iT.prompt([{type:"list",name:"selectedCvm",message:"Select a CVM:",choices:s}]);return a}async function kw(e){let t=await D(),r=e.replace(/^app_/,""),n=await t.get(`cvms/app_${r}/attestation`);try{return Cw.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 _w(e,t){let r=await D(),n=e.replace(/^app_/,""),o=await r.post(`cvms/app_${n}/replicas`,t);return ww.parse(o)}async function eg(e,t,r,n,o){let s=await D(),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 Iw(e){return await(await D()).post("cvms/pubkey/from_cvm_configuration",e)}async function Pw(e){let r=await(await D()).post("cvms/from_cvm_configuration",e);return vw.parse(r)}async function Aw(e,t){let r=await D(),n=e.replace(/^app_/,"");return await r.put(`cvms/app_${n}/compose`,t)}async function Tw(e=!1){let t=await D(),r="teepods/available";return e&&(r+="?v03x_only=1"),await t.get(r)}function oi(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 cT(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 mT(e){return!e||/\s/.test(e)||e.length%4!==0?!1:/^[A-Za-z0-9+/]+={0,2}$/.test(e)}function uT(e){if(!mT(e))return e;try{return Buffer.from(e,"base64").toString("utf-8")}catch{return e}}function Tl(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:uT(r.message)}}catch{return null}}function pT(e){let t=e.split(/\r?\n/),r=[];for(let n of t){if(!n.trim())continue;let o=Tl(n);if(o){r.push(o);continue}r.push({channel:"stdout",message:`${n}
92
- `})}return r}function lT(e){let t=e.split(/\r?\n/),r="";for(let n of t){let o=Tl(n);if(o){r+=o.message;continue}n.trim()&&(r+=`${n}
93
- `)}return r}async function fT(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=Tl(i);if(c){t(c.message);return}i.trim()&&t(`${i}
91
+ ${n}`)}throw new Error(`Failed to save ${Cc}: ${r instanceof Error?r.message:String(r)}`)}}function Sc(){return El()?rT():{}}function pw(e){if(!e)return;let{cvmId:t}=ee.parse({id:e});return t}import Sn from"fs";import nT from"os";import Il from"path";var tn="https://cloud-api.phala.com/api/v1";function Pl(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:Il.join(nT.homedir(),".phala-cloud")}function kc(){return Il.join(Pl(),"credentials.json")}function Z0(){return Il.join(Pl(),"api-key")}function lw(){return Il.join(Pl(),"docker-credentials.json")}function fw(){let e=Pl();Sn.existsSync(e)||Sn.mkdirSync(e,{recursive:!0})}function _l(e){return typeof e=="string"&&e.trim().length>0}function Al(e){let t=e.trim();return t.length===0?"default":t}function Bt(){try{let e=kc();if(!Sn.existsSync(e))return null;let t=Sn.readFileSync(e,"utf8"),r=JSON.parse(t);if(!r||typeof r!="object")return null;let n=r;return n.schema_version!==1||!_l(n.current_profile)||!n.profiles||typeof n.profiles!="object"?null:n}catch(e){return f.error("Failed to read credentials file:",e),null}}function Y0(e){fw(),Sn.writeFileSync(kc(),JSON.stringify(e,null,2),{mode:384,encoding:"utf8"})}function dw(e){let t=Bt(),r=Al(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:tn)??tn,a=n?"env":o?"file":"default";if(_l(e.apiToken))return{apiKey:e.apiToken,baseURL:s,profileName:r,tokenSource:"flag",apiPrefixSource:a};if(_l(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 _l(i)?{apiKey:i,baseURL:s,profileName:r,tokenSource:"file",apiPrefixSource:a}:{apiKey:null,baseURL:s,profileName:r,tokenSource:"none",apiPrefixSource:a}}function oi(e){let t=Al(e.profileName),r=(e.apiPrefix||tn).trim(),n=Bt(),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:tn,workspace:a,user:e.user,updated_at:new Date().toISOString()}}};Y0(i)}function Tl(e){let t=Bt();if(!t)return;let r=Al(e||t.current_profile),n={...t.profiles};delete n[r];let o=Object.keys(n);if(o.length===0){try{Sn.unlinkSync(kc())}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};Y0(a)}function Ec(){let e=Bt();return e?Object.keys(e.profiles):[]}function X0(e){let t=Al(e),r=Bt();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&&Y0({...r,current_profile:t})}function Qo(){let e=Bt();if(!e)return null;let t=e.current_profile,r=e.profiles[t];return r?{name:t,info:r}:null}async function Q0(e){fw();try{Sn.writeFileSync(lw(),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 kn(){try{let e=lw();if(Sn.existsSync(e)){let t=Sn.readFileSync(e,"utf8");return JSON.parse(t)}return null}catch(e){return f.error("Failed to read Docker credentials:",e),null}}var gw="2026-01-21";function oT(){return{env:process.env,projectConfig:Sc()}}function rn(e,t){let r=e??oT();return dw({env:r.env,apiToken:t?.apiToken,profile:t?.profile,projectProfile:r.projectConfig.profile})}async function L(e,t){let r=rn(e,t);return ur({apiKey:r.apiKey??void 0,baseURL:r.baseURL,version:gw})}async function $l(e,t){let r=rn(e,t);return{client:await L(e,t),auth:r}}async function Rl(e,t){return ur({apiKey:e,baseURL:t?.baseURL,version:gw})}import{z as C}from"zod";var sT=C.object({password:C.string(),registry:C.string().nullable(),username:C.string()}),Cse=C.object({docker_compose_file:C.string(),docker_config:sT.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(),hw=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()}),Sse=C.object({key:C.string(),value:C.string()}),aT=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()}))}),yw=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()}),bw=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()}),iT=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()}),kse=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(iT).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 cT from"inquirer";async function xw(e){let t=await L(),r=await wc(t,{id:e});if(!r.success)throw new Error(r.error.message);return r.data}async function vw(){let e=f.startSpinner("Fetching available CVMs"),t=await L(),r=await vc(t);if(e.stop(!0),!r.success){f.error(`Failed to fetch CVMs: ${r.error.message}`);return}let o=r.data.items;if(!o||o.length===0){f.info("No CVMs found for your account");return}let s=o.map(i=>{let c=i,m=c.hosted?.app_id||c.hosted?.id,u=c.name||c.hosted?.name,p=c.status||c.hosted?.status;return{name:`${u||"Unnamed"} (${m}) - Status: ${p||"Unknown"}`,value:m}}),{selectedCvm:a}=await cT.prompt([{type:"list",name:"selectedCvm",message:"Select a CVM:",choices:s}]);return a}async function ww(e){let t=await L(),r=e.replace(/^app_/,""),n=await t.get(`cvms/app_${r}/attestation`);try{return bw.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 Cw(e,t){let r=await L(),n=e.replace(/^app_/,""),o=await r.post(`cvms/app_${n}/replicas`,t);return yw.parse(o)}async function eg(e,t,r,n,o){let s=await L(),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 Sw(e){return await(await L()).post("cvms/pubkey/from_cvm_configuration",e)}async function kw(e){let r=await(await L()).post("cvms/from_cvm_configuration",e);return hw.parse(r)}async function Ew(e,t){let r=await L(),n=e.replace(/^app_/,"");return await r.put(`cvms/app_${n}/compose`,t)}async function _w(e=!1){let t=await L(),r="teepods/available";return e&&(r+="?v03x_only=1"),await t.get(r)}function xo(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 Iw(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 mT(e){return!e||/\s/.test(e)||e.length%4!==0?!1:/^[A-Za-z0-9+/]+={0,2}$/.test(e)}function uT(e){if(!mT(e))return e;try{return Buffer.from(e,"base64").toString("utf-8")}catch{return e}}function Ml(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:uT(r.message)}}catch{return null}}function pT(e){let t=e.split(/\r?\n/),r=[];for(let n of t){if(!n.trim())continue;let o=Ml(n);if(o){r.push(o);continue}r.push({channel:"stdout",message:`${n}
92
+ `})}return r}function lT(e){let t=e.split(/\r?\n/),r="";for(let n of t){let o=Ml(n);if(o){r+=o.message;continue}n.trim()&&(r+=`${n}
93
+ `)}return r}async function fT(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=Ml(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 dT(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=Tl(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 dT(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=Ml(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 $w(e){let r=await(await D()).get(`cvms/${e}`,{headers:{"X-Phala-Version":"2025-10-28"}});if(!r.syslog_endpoint)throw new Error(`No syslog endpoint available for CVM '${e}'`);return`${r.syslog_endpoint}&ch=serial`}async function $l(e,t,r=!0){let o=await(await D()).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 Rw(e,t={}){let r=await $w(e),n=oi(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 Mw(e,t={}){let r=await $l(e,t.container,t.matchContainerIdPrefix??!0),n=t.text??!0,o=t.bare??!0,s=oi(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("{")?lT(i):i}async function Fw(e,t={}){let r=await $l(e,t.container,t.matchContainerIdPrefix??!0),n=oi(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("{")?pT(s):[{channel:"stdout",message:s}]}async function Nw(e,t,r={},n){let o=await $l(e,r.container,r.matchContainerIdPrefix??!0),s=oi(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 dT(a,t)}async function Bw(e,t,r={},n){let o=await $w(e),s=oi(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 cT(a,t)}async function Lw(e,t,r={},n){let o=await $l(e,r.container,r.matchContainerIdPrefix??!0),s=r.text??!0,a=r.bare??!0,i=oi(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 fT(c,t)}import ai from"chalk";import Qo from"semver";import kc from"fs";import gT from"os";import Dw from"path";var tg={};function Uw(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:Dw.join(gT.homedir(),".phala-cloud")}function Rl(){return Dw.join(Uw(),"state.json")}function hT(){let e=Uw();kc.existsSync(e)||kc.mkdirSync(e,{recursive:!0})}function _c(){try{let e=Rl();if(!kc.existsSync(e))return tg;let t=kc.readFileSync(e,"utf8"),r=JSON.parse(t);return!r||typeof r!="object"?tg:r}catch{return tg}}function Xo(e){hT();let t={..._c(),...e};kc.writeFileSync(Rl(),JSON.stringify(t,null,2),{mode:384,encoding:"utf8"})}function si(e){return _c()[e]}function Ow(e,t){Xo({[e]:t})}function zw(){return _c()}function Ml(){return typeof process.versions.bun=="string"?"bun":"node"}function yT(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 Ic(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=yT(n);if(o)return o}return"npm"}function Pc(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 jw(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 bT=200,xT=1440*60*1e3;function Fl(e){return e?e==="1"||e.toLowerCase()==="true":!1}function Hw(e){return typeof e=="string"&&e.trim().length>0}function vT(e){return e.startsWith("@")?e.replace("/","%2F"):e}function wT(e){let r=Qo.parse(e)?.prerelease?.[0];return typeof r=="string"&&r.length>0?r:void 0}function Gw(e,t,r){if(Hw(t.PHALA_UPDATE_CHANNEL))return t.PHALA_UPDATE_CHANNEL;let n=r.get("updateCheckChannel");return Hw(n)?n:wT(e)??"latest"}function CT(e){return e.replace(/[^a-zA-Z0-9_-]/g,"_")}function rg(e,t){return`${e}_${CT(t)}`}function Vw(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 qw(){return{get(e){return si(e)},save(e){Xo(e)}}}function Nl(e){let{executableName:t,packageName:r,currentVersion:n,runtime:o,env:s,isJson:a,stderrIsTTY:i,configStore:c=qw()}=e;try{if(!i||a||Fl(s.CI)||Fl(s.PHALA_DISABLE_UPDATE_CHECK)||c.get("disableUpdateNotice")===!0)return null;let m=Qo.valid(n);if(!m)return null;let u=Gw(n,s,c),p=rg("updateCheckLatest",u),l=c.get(p)??(u==="latest"?c.get("updateCheckLatest"):void 0),d=typeof l=="string"?Qo.valid(l):null;if(!d||!Qo.gt(d,m))return null;let g=Ic(s,o),h=u==="latest"?`${r}@latest`:`${r}@${u}`,y=Pc(g,h);return{message:`${[ai.yellow(`Update available: v${m} -> v${d}${u==="latest"?"":` (${u})`}.`),ai.gray(`Update with: "${t} self update" (or "${y}").`),ai.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 tg(e,t){let n=await(await L()).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 Pw(e){return tg(e,"serial")}async function Fl(e,t,r=!0){let o=await(await L()).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 Aw(e,t={}){let r=await Pw(e),n=xo(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 Tw(e,t={}){let r=await Fl(e,t.container,t.matchContainerIdPrefix??!0),n=t.text??!0,o=t.bare??!0,s=xo(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("{")?lT(i):i}async function $w(e,t={}){let r=await Fl(e,t.container,t.matchContainerIdPrefix??!0),n=xo(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("{")?pT(s):[{channel:"stdout",message:s}]}async function Rw(e,t,r={},n){let o=await Fl(e,r.container,r.matchContainerIdPrefix??!0),s=xo(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 dT(a,t)}async function Mw(e,t,r={},n){let o=await Pw(e),s=xo(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 Iw(a,t)}async function Fw(e,t,r={},n){let o=await Fl(e,r.container,r.matchContainerIdPrefix??!0),s=r.text??!0,a=r.bare??!0,i=xo(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 fT(c,t)}async function Bw(e,t,r={}){let n=await tg(e,t),o=xo(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 Nw(e,t,r,n={},o){let s=await tg(e,t),a=xo(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 Iw(i,r)}async function Lw(e){let t=await L(),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 ai from"chalk";import ts from"semver";import _c from"fs";import gT from"os";import Dw from"path";var rg={};function Uw(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:Dw.join(gT.homedir(),".phala-cloud")}function Bl(){return Dw.join(Uw(),"state.json")}function hT(){let e=Uw();_c.existsSync(e)||_c.mkdirSync(e,{recursive:!0})}function Ic(){try{let e=Bl();if(!_c.existsSync(e))return rg;let t=_c.readFileSync(e,"utf8"),r=JSON.parse(t);return!r||typeof r!="object"?rg:r}catch{return rg}}function es(e){hT();let t={...Ic(),...e};_c.writeFileSync(Bl(),JSON.stringify(t,null,2),{mode:384,encoding:"utf8"})}function si(e){return Ic()[e]}function zw(e,t){es({[e]:t})}function Ow(){return Ic()}function Nl(){return typeof process.versions.bun=="string"?"bun":"node"}function yT(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 Pc(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=yT(n);if(o)return o}return"npm"}function Ac(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 jw(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 bT=200,xT=1440*60*1e3;function Ll(e){return e?e==="1"||e.toLowerCase()==="true":!1}function Hw(e){return typeof e=="string"&&e.trim().length>0}function vT(e){return e.startsWith("@")?e.replace("/","%2F"):e}function wT(e){let r=ts.parse(e)?.prerelease?.[0];return typeof r=="string"&&r.length>0?r:void 0}function Gw(e,t,r){if(Hw(t.PHALA_UPDATE_CHANNEL))return t.PHALA_UPDATE_CHANNEL;let n=r.get("updateCheckChannel");return Hw(n)?n:wT(e)??"latest"}function CT(e){return e.replace(/[^a-zA-Z0-9_-]/g,"_")}function ng(e,t){return`${e}_${CT(t)}`}function Vw(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 qw(){return{get(e){return si(e)},save(e){es(e)}}}function Dl(e){let{executableName:t,packageName:r,currentVersion:n,runtime:o,env:s,isJson:a,stderrIsTTY:i,configStore:c=qw()}=e;try{if(!i||a||Ll(s.CI)||Ll(s.PHALA_DISABLE_UPDATE_CHECK)||c.get("disableUpdateNotice")===!0)return null;let m=ts.valid(n);if(!m)return null;let u=Gw(n,s,c),p=ng("updateCheckLatest",u),l=c.get(p)??(u==="latest"?c.get("updateCheckLatest"):void 0),d=typeof l=="string"?ts.valid(l):null;if(!d||!ts.gt(d,m))return null;let g=Pc(s,o),h=u==="latest"?`${r}@latest`:`${r}@${u}`,y=Ac(g,h);return{message:`${[ai.yellow(`Update available: v${m} -> v${d}${u==="latest"?"":` (${u})`}.`),ai.gray(`Update with: "${t} self update" (or "${y}").`),ai.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 Kw(e){let{executableName:t,packageName:r,currentVersion:n,runtime:o,env:s,isJson:a,stderrIsTTY:i,now:c=Date.now(),timeoutMs:m=bT,ttlMs:u=xT,fetchImpl:p=fetch,configStore:l=qw()}=e;try{if(!i||a||Fl(s.CI)||Fl(s.PHALA_DISABLE_UPDATE_CHECK)||l.get("disableUpdateNotice")===!0)return null;let d=Gw(n,s,l),g=rg("updateCheckLastAt",d),h=Vw(l,g)??(d==="latest"?Vw(l,"updateCheckLastAt"):void 0);if(h&&c-h<u)return Nl({executableName:t,packageName:r,currentVersion:n,runtime:o,env:s,isJson:a,stderrIsTTY:i,configStore:l});let x=`https://registry.npmjs.org/${vT(r)}`,b=new AbortController,v=setTimeout(()=>b.abort(),m);v.unref?.();let S,k=null;try{if(S=await p(x,{signal:b.signal,headers:{accept:"application/json"}}),!S.ok)return null;let P=await S.json();if(!P||typeof P!="object")return null;let _=P["dist-tags"];if(!_||typeof _!="object")return null;let R=_[d]??_.latest;if(typeof R!="string")return null;k=Qo.valid(R);let F=Qo.valid(n);if(!k||!F||!Qo.gt(k,F))return null;let N=Ic(s,o),z=d==="latest"?`${r}@latest`:`${r}@${d}`,O=Pc(N,z);return{message:`${[ai.yellow(`Update available: v${F} -> v${k}${d==="latest"?"":` (${d})`}.`),ai.gray(`Update with: "${t} self update" (or "${O}").`),ai.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 Ul(e){let{executableName:t,packageName:r,currentVersion:n,runtime:o,env:s,isJson:a,stderrIsTTY:i,now:c=Date.now(),timeoutMs:m=bT,ttlMs:u=xT,fetchImpl:p=fetch,configStore:l=qw()}=e;try{if(!i||a||Ll(s.CI)||Ll(s.PHALA_DISABLE_UPDATE_CHECK)||l.get("disableUpdateNotice")===!0)return null;let d=Gw(n,s,l),g=ng("updateCheckLastAt",d),h=Vw(l,g)??(d==="latest"?Vw(l,"updateCheckLastAt"):void 0);if(h&&c-h<u)return Dl({executableName:t,packageName:r,currentVersion:n,runtime:o,env:s,isJson:a,stderrIsTTY:i,configStore:l});let b=`https://registry.npmjs.org/${vT(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 I=await S.json();if(!I||typeof I!="object")return null;let _=I["dist-tags"];if(!_||typeof _!="object")return null;let R=_[d]??_.latest;if(typeof R!="string")return null;E=ts.valid(R);let F=ts.valid(n);if(!E||!F||!ts.gt(E,F))return null;let B=Pc(s,o),O=d==="latest"?`${r}@latest`:`${r}@${d}`,j=Ac(B,O);return{message:`${[ai.yellow(`Update available: v${F} -> v${E}${d==="latest"?"":` (${d})`}.`),ai.gray(`Update with: "${t} self update" (or "${j}").`),ai.gray(`Disable with: PHALA_DISABLE_UPDATE_CHECK=1 or "${t} config set disableUpdateNotice true".`)].join(`
102
102
  `)}
103
- `,currentVersion:F,latestVersion:k,packageName:r}}finally{clearTimeout(v);let P=rg("updateCheckLatest",d);l.save({[g]:c,...k?{[P]:k}:{},...d==="latest"?{updateCheckLastAt:c,...k?{updateCheckLatest:k}:{}}:{}})}}catch{return null}}async function Jw(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=kT(r);if((d.length>0?t.getNode(d):null)?.group){let v=r.slice(d.length),S=yi(v,void 0);if(S.flags["--help"]||S.positionals.length===0)return Ww({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?Ww({registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:p,stdout:c,stderr:m,groupPath:[d[0]]}):ET({registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:p,stdout:c,stderr:m});let{definition:y,consumed:x}=h,b=r.slice(x.length);try{let v=yi(b,y.meta.options);if(v.flags["--version"])return c.write(`${o}
104
- `),0;if(v.flags["--help"])return c.write(`${Cf({executableName:n,definition:y,registry:t})}
105
- `),0;let k=!(y.path[0]==="self"&&y.path[1]==="update")?Kw({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(ii.yellow(`Warning: This command is deprecated and may be removed in a future version.
106
- `));let P=jg(y.meta,v),_={...P.options,...P.positionals,options:P.options,positionals:P.positionals,raw:P.raw},R,F="cvmId"in _?_.cvmId:void 0,N="interactive"in _&&_.interactive===!0;v.flags["--debug"]&&(console.log("[DISPATCHER DEBUG] 'cvmId' in mergedInput:","cvmId"in _),console.log("[DISPATCHER DEBUG] rawCvmId:",F),console.log("[DISPATCHER DEBUG] mergedInput keys:",Object.keys(_)));let z=[...y.meta.arguments??[],...y.meta.options??[]].some(J=>J.target==="cvmId"||J.name==="cvm-id"||J.name==="cvm_id");if(N&&z){let J=await Ew();J&&(R={app_id:J})}if(!R&&F&&typeof F=="string"&&(R={id:F}),!R){let J=Cc().cvm_id;J&&(R={id:J})}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 O={argv:b,rawFlags:v.flags,rawPositionals:v.positionals,cwd:l,env:p,stdout:c,stderr:m,stdin:u,projectConfig:Cc(),cvmId:R,cli:{executableName:n,packageName:s,packageVersion:a,runtime:i},success(J){if(at()){let Ve=typeof J=="string"?{success:!0,message:J}:{success:!0,...typeof J=="object"&&J!==null?J:{data:J}};c.write(`${JSON.stringify(Ve,null,2)}
103
+ `,currentVersion:F,latestVersion:E,packageName:r}}finally{clearTimeout(v);let I=ng("updateCheckLatest",d);l.save({[g]:c,...E?{[I]:E}:{},...d==="latest"?{updateCheckLastAt:c,...E?{updateCheckLatest:E}:{}}:{}})}}catch{return null}}async function Ww(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=ET(r);if((d.length>0?t.getNode(d):null)?.group){let v=r.slice(d.length),S=yi(v,void 0);if(S.flags["--help"]||S.positionals.length===0)return Kw({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?Kw({registry:t,argv:r,executableName:n,version:o,packageName:s,packageVersion:a,runtime:i,env:p,stdout:c,stderr:m,groupPath:[d[0]]}):kT({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=yi(x,y.meta.options);if(v.flags["--version"])return c.write(`${o}
104
+ `),0;if(v.flags["--help"])return c.write(`${Sf({executableName:n,definition:y,registry:t})}
105
+ `),0;let E=!(y.path[0]==="self"&&y.path[1]==="update")?Ul({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(ii.yellow(`Warning: This command is deprecated and may be removed in a future version.
106
+ `));let I=Vg(y.meta,v),_={...I.options,...I.positionals,options:I.options,positionals:I.positionals,raw:I.raw},R,F="cvmId"in _?_.cvmId:void 0,B="interactive"in _&&_.interactive===!0;v.flags["--debug"]&&(console.log("[DISPATCHER DEBUG] 'cvmId' in mergedInput:","cvmId"in _),console.log("[DISPATCHER DEBUG] rawCvmId:",F),console.log("[DISPATCHER DEBUG] mergedInput keys:",Object.keys(_)));let O=[...y.meta.arguments??[],...y.meta.options??[]].some(J=>J.target==="cvmId"||J.name==="cvm-id"||J.name==="cvm_id");if(B&&O){let J=await vw();J&&(R={app_id:J})}if(!R&&F&&typeof F=="string"&&(R={id:F}),!R){let J=Sc().cvm_id;J&&(R={id:J})}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:Sc(),cvmId:R,cli:{executableName:n,packageName:s,packageVersion:a,runtime:i},success(J){if(st()){let Ve=typeof J=="string"?{success:!0,message:J}:{success:!0,...typeof J=="object"&&J!==null?J:{data:J}};c.write(`${JSON.stringify(Ve,null,2)}
107
107
  `)}else typeof J=="string"?c.write(`${ii.green("\u2713")} ${ii.green(J)}
108
108
  `):(c.write(`${ii.green("\u2713")} Success
109
109
  `),c.write(`${JSON.stringify(J,null,2)}
110
- `))},fail(J,Ve){at()?c.write(`${JSON.stringify({success:!1,error:J,...Ve&&{details:Ve}},null,2)}
110
+ `))},fail(J,Ve){st()?c.write(`${JSON.stringify({success:!1,error:J,...Ve&&{details:Ve}},null,2)}
111
111
  `):(m.write(`${ii.red("\u2717")} ${ii.red(J)}
112
112
  `),Ve&&m.write(`${JSON.stringify(Ve,null,2)}
113
- `))}};v.flags["--debug"]&&console.log("[DISPATCHER DEBUG] context.cvmId after creation:",JSON.stringify(O.cvmId));let q=y.schema.parse(_);v.flags["--debug"]&&console.log("[DISPATCHER DEBUG] context.cvmId before handler:",JSON.stringify(O.cvmId));let ue=await y.run(q,O),we=await k;return typeof ue=="number"?(ue===0&&we&&!at()&&m.write(we.message),ue):(we&&!at()&&m.write(we.message),0)}catch(v){if(v instanceof ST){let S=v.issues.some(P=>P.code==="invalid_type"&&P.received==="undefined"&&P.message==="Required"),k=b.some(P=>!P.startsWith("-"));return S&&!k?(c.write(`${Cf({executableName:n,definition:y,registry:t})}
114
- `),0):(m.write(_T(v)),1)}if(ng(v))return m.write(`${v.message}
115
- `),1;throw v}}function ET(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=yi(r,void 0);if(p.flags["--version"])return m.write(`${o}
116
- `),0;if(p.flags["--help"])return m.write(`${Jc({registry:t,executableName:n})}
117
- `),0;if(p.positionals.length===0){m.write(`${Jc({registry:t,executableName:n})}
118
- `);let d=Nl({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.
119
- `),1}catch(p){if(ng(p))return u.write(`${p.message}
120
- `),1;throw p}}function Ww(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=yi(l,void 0);if(d.flags["--version"])return m.write(`${o}
121
- `),0;if(d.flags["--help"]||d.positionals.length===0){if(m.write(`${Kg({registry:t,executableName:n,groupPath:p})}
122
- `),!d.flags["--help"]){let y=Nl({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(ng(l))return u.write(`${l.message}
124
- `),1;throw l}}function kT(e){let t=[];for(let r of e){if(r.startsWith("-"))break;t.push(r)}return t}function _T(e){let t=e.issues[0];return t?`Invalid value for "${t.path.length>0?t.path.join("."):"input"}": ${t.message}
113
+ `))}};v.flags["--debug"]&&console.log("[DISPATCHER DEBUG] context.cvmId after creation:",JSON.stringify(j.cvmId));let q=y.schema.parse(_);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&&!st()&&m.write(Se.message),fe):(Se&&!st()&&m.write(Se.message),0)}catch(v){if(v instanceof ST){let S=v.issues.some(I=>I.code==="invalid_type"&&I.received==="undefined"&&I.message==="Required"),E=x.some(I=>!I.startsWith("-"));return S&&!E?(c.write(`${Sf({executableName:n,definition:y,registry:t})}
114
+ `),0):(m.write(_T(v)),1)}if(og(v))return m.write(`${v.message}
115
+ `),1;throw v}}function kT(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=yi(r,void 0);if(p.flags["--version"])return m.write(`${o}
116
+ `),0;if(p.flags["--help"])return m.write(`${Yc({registry:t,executableName:n})}
117
+ `),0;if(p.positionals.length===0){m.write(`${Yc({registry:t,executableName:n})}
118
+ `);let d=Dl({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.
119
+ `),1}catch(p){if(og(p))return u.write(`${p.message}
120
+ `),1;throw p}}function Kw(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=yi(l,void 0);if(d.flags["--version"])return m.write(`${o}
121
+ `),0;if(d.flags["--help"]||d.positionals.length===0){if(m.write(`${Jg({registry:t,executableName:n,groupPath:p})}
122
+ `),!d.flags["--help"]){let y=Dl({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(og(l))return u.write(`${l.message}
124
+ `),1;throw l}}function ET(e){let t=[];for(let r of e){if(r.startsWith("-"))break;t.push(r)}return t}function _T(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 ng(e){return e instanceof Error&&Object.prototype.hasOwnProperty.call(e,"code")&&typeof e.code=="string"}import Yw from"crypto";import es from"fs";import ci from"os";import Xw from"path";function IT(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:Xw.join(ci.homedir(),".phala-cloud")}function PT(){return Xw.join(IT(),"config.json")}function Zw(e){return/^[0-9a-fA-F]+$/.test(e)}function AT(e){let r=e.trim().split(":");if(r.length!==2)return!1;let[n,o]=r;return n.length===32&&Zw(n)&&o.length>0&&Zw(o)}function TT(){let e=[ci.hostname(),ci.platform(),ci.arch(),ci.cpus()[0]?.model||"",ci.userInfo().username],t=Yw.createHash("sha256");return t.update(e.join("|")),t.digest()}function $T(e){let t=TT(),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=Yw.createDecipheriv("aes-256-cbc",t.slice(0,32),n),a=s.update(o,"hex","utf8");return a+=s.final("utf8"),a}function Ac(e){try{es.unlinkSync(e)}catch{}}function RT(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 MT(){return async({token:e,baseURL:t})=>{let r=cr({apiKey:e,baseURL:t}),n=await Ft(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 Qw(e){await FT(e),await NT(e)}async function FT(e){let t=Sc();if(es.existsSync(t)){let i=Z0();es.existsSync(i)&&Ac(i);return}let r=Z0();if(!es.existsSync(r))return;let n=es.readFileSync(r,"utf8").trim();if(!n)return;let o;try{o=AT(n)?$T(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||Qr,a=e.fetchCurrentUser??MT();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";ni({profileName:p,token:o,apiPrefix:s,workspaceName:m,workspaceSlug:u,user:{username:c.username||"unknown",email:c.email},setCurrent:!0}),Ac(r),e.stderr.write(`Migrated legacy credentials into ${t} (profile: ${p}).
126
+ `}function og(e){return e instanceof Error&&Object.prototype.hasOwnProperty.call(e,"code")&&typeof e.code=="string"}import Zw from"crypto";import rs from"fs";import ci from"os";import Yw from"path";function IT(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:Yw.join(ci.homedir(),".phala-cloud")}function PT(){return Yw.join(IT(),"config.json")}function Jw(e){return/^[0-9a-fA-F]+$/.test(e)}function AT(e){let r=e.trim().split(":");if(r.length!==2)return!1;let[n,o]=r;return n.length===32&&Jw(n)&&o.length>0&&Jw(o)}function TT(){let e=[ci.hostname(),ci.platform(),ci.arch(),ci.cpus()[0]?.model||"",ci.userInfo().username],t=Zw.createHash("sha256");return t.update(e.join("|")),t.digest()}function $T(e){let t=TT(),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=Zw.createDecipheriv("aes-256-cbc",t.slice(0,32),n),a=s.update(o,"hex","utf8");return a+=s.final("utf8"),a}function Tc(e){try{rs.unlinkSync(e)}catch{}}function RT(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 MT(){return async({token:e,baseURL:t})=>{let r=ur({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 Xw(e){await FT(e),await BT(e)}async function FT(e){let t=kc();if(rs.existsSync(t)){let i=Z0();rs.existsSync(i)&&Tc(i);return}let r=Z0();if(!rs.existsSync(r))return;let n=rs.readFileSync(r,"utf8").trim();if(!n)return;let o;try{o=AT(n)?$T(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||tn,a=e.fetchCurrentUser??MT();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";oi({profileName:p,token:o,apiPrefix:s,workspaceName:m,workspaceSlug:u,user:{username:c.username||"unknown",email:c.email},setCurrent:!0}),Tc(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 NT(e){let t=Rl(),r=PT();if(es.existsSync(r))try{let n=es.readFileSync(r,"utf8"),o=JSON.parse(n);if(!o||typeof o!="object"){Ac(r);return}let s=RT(o);if(Object.keys(s).length>0){let a=_c();Xo({...a,...s}),e.stderr.write(`Migrated legacy config into ${t}.
131
- `)}Ac(r)}catch{Ac(r)}}function e6(e){return{name:e,children:new Map,aliasMap:new Map}}var Bl=class{constructor(){this.root=e6(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=e6(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 og}from"fs";import{dirname as DT,join as UT}from"path";import{fileURLToPath as OT}from"url";function A(e){return{path:e.path,meta:e.meta,schema:e.schema,run:e.handler}}import BT from"@michaelhomer/jqjs";function t6(e,t){let n=[...BT.compile(t)(e)];return n.length===1?n[0]:n}function r6(e,t=2){return e==null?String(e):typeof e=="string"?e:JSON.stringify(e,null,t)}import{z as gt}from"zod";var LT=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"],n6={name:"api",category:"advanced",description:`Make an authenticated HTTP request to Phala Cloud API.
130
+ `)}}async function BT(e){let t=Bl(),r=PT();if(rs.existsSync(r))try{let n=rs.readFileSync(r,"utf8"),o=JSON.parse(n);if(!o||typeof o!="object"){Tc(r);return}let s=RT(o);if(Object.keys(s).length>0){let a=Ic();es({...a,...s}),e.stderr.write(`Migrated legacy config into ${t}.
131
+ `)}Tc(r)}catch{Tc(r)}}function Qw(e){return{name:e,children:new Map,aliasMap:new Map}}var zl=class{constructor(){this.root=Qw(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=Qw(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 sg}from"fs";import{dirname as DT,join as UT}from"path";import{fileURLToPath as zT}from"url";function A(e){return{path:e.path,meta:e.meta,schema:e.schema,run:e.handler}}import NT from"@michaelhomer/jqjs";function e6(e,t){let n=[...NT.compile(t)(e)];return n.length===1?n[0]:n}function t6(e,t=2){return e==null?String(e):typeof e=="string"?e:JSON.stringify(e,null,t)}import{z as ht}from"zod";var LT=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"],r6={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
 
@@ -149,14 +149,14 @@ Use -q to filter JSON output with jq syntax (built-in, no jq installation needed
149
149
  ENVIRONMENT VARIABLES
150
150
 
151
151
  PHALA_CLOUD_API_KEY Override the API key (useful for CI/CD)
152
- PHALA_CLOUD_API_PREFIX Override the API base URL`,stability:"unstable",arguments:[{name:"endpoint",description:"API endpoint path",required:!0}],options:[...is,{name:"method",shorthand:"X",description:"HTTP method (default: GET)",type:"string",target:"method"},{name:"field",shorthand:"f",description:"String parameter: key=value (use key=@file to read from file)",type:"string[]",target:"field"},{name:"raw-field",shorthand:"F",description:"Typed JSON parameter: key:=value (use key:=@file for JSON file)",type:"string[]",target:"rawField"},{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:"POST with string params",value:"phala api /endpoint -X POST -f name=foo -f tag=bar"},{name:"POST with typed params",value:"phala api /endpoint -X POST -F count:=10 -F enabled:=true"},{name:"POST from file",value:"phala api /endpoint -X POST --input data.json"},{name:"POST with cURL-style -d",value:`phala api /endpoint -d '{"foo":"bar"}'`},{name:"POST with file content as string field",value:"phala api /endpoint -f content=@readme.txt"},{name:"POST with JSON file as nested object",value:"phala api /endpoint -F config:=@settings.json"},{name:"Show response headers",value:"phala api /cvms -i"}]},o6=gt.object({endpoint:gt.string(),method:gt.enum(LT).default("GET").transform(e=>e.toUpperCase()),field:gt.array(gt.string()).optional(),rawField:gt.array(gt.string()).optional(),header:gt.array(gt.string()).optional(),data:gt.array(gt.string()).optional(),input:gt.string().optional(),include:gt.boolean().default(!1),jq:gt.string().optional(),silent:gt.boolean().default(!1),apiToken:gt.string().optional()});var zT=OT(import.meta.url),jT=DT(zT),HT=UT(jT,"../../../package.json"),s6="unknown";try{s6=JSON.parse(og(HT,"utf-8")).version||"unknown"}catch{}function VT(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);if(s.startsWith("@")){let a=s.slice(1);t[o]=sg(a)}else t[o]=s}}return t}function GT(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+2);if(s.startsWith("@")){let a=s.slice(1),i=sg(a);try{t[o]=JSON.parse(i)}catch{throw new Error(`Failed to parse JSON from file "${a}" for field "${o}"`)}}else t[o]=qT(s)}}return t}function qT(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 KT(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 WT(e,t){let r=t.toLowerCase();return Object.keys(e).some(n=>n.toLowerCase()===r)}function sg(e){return e==="-"?og(0,"utf-8"):og(e,"utf-8")}function JT(e){return sg(e)}function ZT(e){return!["GET","HEAD","OPTIONS"].includes(e)}function YT(e){if(e.input&&e.data&&e.data.length>0)throw new Error('"-d/--data" cannot be used with "--input"');if(e.input){let o=JT(e.input);try{return{body:JSON.parse(o)}}catch{return{body:o}}}if(e.data&&e.data.length>0){if(e.field&&e.field.length>0||e.rawField&&e.rawField.length>0)throw new Error('"-d/--data" cannot be used with "-f/--field" or "-F/--raw-field"');let o=e.data.length===1?e.data[0]:e.data.join("&"),s=o.trim();if(s.startsWith("{")||s.startsWith("["))try{return{body:JSON.parse(s)}}catch{}return{body:o,defaultContentType:"application/x-www-form-urlencoded"}}let t=VT(e.field),r=GT(e.rawField),n={...t,...r};return Object.keys(n).length===0?{body:void 0}:{body:n}}async function XT(e,t){let r=en(t,{apiToken:e.apiToken});if(!r.apiKey)return t.stderr.write(`Error: Not authenticated. Run "phala login" first.
153
- `),1;let n=cr({apiKey:r.apiKey,baseURL:r.baseURL,headers:{"User-Agent":`phala-cli/${s6}`}}),o=KT(e.header),s=e.endpoint.startsWith("/")?e.endpoint:`/${e.endpoint}`;try{let{body:a,defaultContentType:i}=YT(e);i&&!WT(o,"content-type")&&(o["Content-Type"]=i);let c=a!==void 0&&e.method==="GET"?"POST":e.method,m=await n.requestFull(s,{method:c,body:ZT(c)?a:void 0,headers:o});if(e.include&&(t.stdout.write(`HTTP/1.1 ${m.status} ${m.statusText}
154
- `),m.headers.forEach((u,p)=>{t.stdout.write(`${p}: ${u}
152
+ PHALA_CLOUD_API_PREFIX Override the API base URL`,stability:"unstable",arguments:[{name:"endpoint",description:"API endpoint path",required:!0}],options:[...Nn,{name:"method",shorthand:"X",description:"HTTP method (default: GET)",type:"string",target:"method"},{name:"field",shorthand:"f",description:"String parameter: key=value (use key=@file to read from file)",type:"string[]",target:"field"},{name:"raw-field",shorthand:"F",description:"Typed JSON parameter: key:=value (use key:=@file for JSON file)",type:"string[]",target:"rawField"},{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:"POST with string params",value:"phala api /endpoint -X POST -f name=foo -f tag=bar"},{name:"POST with typed params",value:"phala api /endpoint -X POST -F count:=10 -F enabled:=true"},{name:"POST from file",value:"phala api /endpoint -X POST --input data.json"},{name:"POST with cURL-style -d",value:`phala api /endpoint -d '{"foo":"bar"}'`},{name:"POST with file content as string field",value:"phala api /endpoint -f content=@readme.txt"},{name:"POST with JSON file as nested object",value:"phala api /endpoint -F config:=@settings.json"},{name:"Show response headers",value:"phala api /cvms -i"}]},n6=ht.object({endpoint:ht.string(),method:ht.enum(LT).default("GET").transform(e=>e.toUpperCase()),field:ht.array(ht.string()).optional(),rawField: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 OT=zT(import.meta.url),jT=DT(OT),HT=UT(jT,"../../../package.json"),o6="unknown";try{o6=JSON.parse(sg(HT,"utf-8")).version||"unknown"}catch{}function VT(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);if(s.startsWith("@")){let a=s.slice(1);t[o]=ag(a)}else t[o]=s}}return t}function GT(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+2);if(s.startsWith("@")){let a=s.slice(1),i=ag(a);try{t[o]=JSON.parse(i)}catch{throw new Error(`Failed to parse JSON from file "${a}" for field "${o}"`)}}else t[o]=qT(s)}}return t}function qT(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 KT(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 WT(e,t){let r=t.toLowerCase();return Object.keys(e).some(n=>n.toLowerCase()===r)}function ag(e){return e==="-"?sg(0,"utf-8"):sg(e,"utf-8")}function JT(e){return ag(e)}function ZT(e){return!["GET","HEAD","OPTIONS"].includes(e)}function YT(e){if(e.input&&e.data&&e.data.length>0)throw new Error('"-d/--data" cannot be used with "--input"');if(e.input){let o=JT(e.input);try{return{body:JSON.parse(o)}}catch{return{body:o}}}if(e.data&&e.data.length>0){if(e.field&&e.field.length>0||e.rawField&&e.rawField.length>0)throw new Error('"-d/--data" cannot be used with "-f/--field" or "-F/--raw-field"');let o=e.data.length===1?e.data[0]:e.data.join("&"),s=o.trim();if(s.startsWith("{")||s.startsWith("["))try{return{body:JSON.parse(s)}}catch{}return{body:o,defaultContentType:"application/x-www-form-urlencoded"}}let t=VT(e.field),r=GT(e.rawField),n={...t,...r};return Object.keys(n).length===0?{body:void 0}:{body:n}}async function XT(e,t){let r=rn(t,{apiToken:e.apiToken});if(!r.apiKey)return t.stderr.write(`Error: Not authenticated. Run "phala login" first.
153
+ `),1;let n=ur({apiKey:r.apiKey,baseURL:r.baseURL,headers:{"User-Agent":`phala-cli/${o6}`}}),o=KT(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{body:c,defaultContentType:m}=YT(e);m&&!WT(o,"content-type")&&(o["Content-Type"]=m);let u=c!==void 0&&e.method==="GET"?"POST":e.method,p=await n.requestFull(i,{method:u,body:ZT(u)?c:void 0,headers:o});if(e.include&&(t.stdout.write(`HTTP/1.1 ${p.status} ${p.statusText}
154
+ `),p.headers.forEach((l,d)=>{t.stdout.write(`${d}: ${l}
155
155
  `)}),t.stdout.write(`
156
- `)),!e.silent&&m.data!==void 0){let u=m.data;if(e.jq)try{u=t6(u,e.jq)}catch(l){return t.stderr.write(`Error: jq filter failed: ${l.message}
157
- `),1}let p=r6(u);t.stdout.write(`${p}
158
- `)}return m.ok?0:1}catch(a){let i=a;return t.stderr.write(`Error: ${i.message}
159
- `),1}}var a6=A({path:["api"],meta:n6,schema:o6,handler:XT});var i6={path:["auth"],meta:{name:"auth",category:"deprecated",description:"Authenticate with Phala Cloud",stability:"deprecated"}};import QT from"prompts";var Oe=process.env.CLOUD_URL||"https://cloud.phala.com";var Tc=1,$c=2048,ts=40,ag="dstack-0.3.6",c6=`version: '3.8'
156
+ `)),!e.silent&&p.data!==void 0){let l=p.data;if(e.jq)try{l=e6(l,e.jq)}catch(g){return t.stderr.write(`Error: jq filter failed: ${g.message}
157
+ `),1}let d=t6(l);t.stdout.write(`${d}
158
+ `)}return p.ok?0:1}catch(c){let m=c;return t.stderr.write(`Error: ${m.message}
159
+ `),1}}var s6=A({path:["api"],meta:r6,schema:n6,handler:XT});var a6={path:["auth"],meta:{name:"auth",category:"deprecated",description:"Authenticate with Phala Cloud",stability:"deprecated"}};import QT from"prompts";var ze=process.env.CLOUD_URL||"https://cloud.phala.com";var $c=1,Rc=2048,ns=40,ig="dstack-0.3.6",i6=`version: '3.8'
160
160
  services:
161
161
  postgres:
162
162
  image: ankane/pgvector:latest
@@ -201,7 +201,7 @@ networks:
201
201
  driver: bridge
202
202
 
203
203
  volumes:
204
- postgres-data:`,m6=`version: '3.8'
204
+ postgres-data:`,c6=`version: '3.8'
205
205
  services:
206
206
  app:
207
207
  image: {{imageName}}
@@ -212,35 +212,37 @@ services:
212
212
  {{#each envVars}} - {{{this}}}
213
213
  {{/each}}
214
214
  restart: always
215
- `;import{z as Ll}from"zod";var u6={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"}]},p6=Ll.object({apiKey:Ll.string().min(1,"API key cannot be empty").optional(),manual:Ll.boolean().optional(),noOpen:Ll.boolean().optional()});async function ig(e){let t=await Al(e.apiKey,{baseURL:e.baseURL}),r=await Ft(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 e3(e){let t,r=await QT({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 ig({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 ig({apiKey:r.apiKey,baseURL:e.baseURL})),{apiKey:r.apiKey,user:t}}async function t3(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||Qr,n=e.apiKey,o;if(n)o=await ig({apiKey:n,baseURL:r});else{let c=await e3({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 ni({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 ${Oe}/dashboard/`),0}catch(r){return f.error("Failed to set API key"),f.logDetailedError(r),1}}var l6=A({path:["auth","login"],meta:u6,schema:p6,handler:t3});import{z as r3}from"zod";var f6={name:"logout",description:"Remove stored API key (use 'phala logout' instead)",stability:"deprecated"},d6=r3.object({});async function n3(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=Nt()?.current_profile;return Pl(),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 g6=A({path:["auth","logout"],meta:f6,schema:d6,handler:n3});import{z as Dl}from"zod";var Gt={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json"},cg={name:"debug",shorthand:"d",description:"Enable debug output",type:"boolean",target:"debug"},h6={name:"status",category:"profile",description:"Check authentication status",stability:"stable",options:[...is,Gt,cg],examples:[{name:"Show login status",value:"phala status"},{name:"Get status as JSON",value:"phala status --json"}]},Ul=Dl.object({json:Dl.boolean().default(!1),debug:Dl.boolean().default(!1),apiToken:Dl.string().optional()});async function mg(e,t){ie(e.json);let r=e.debug||t.env.DEBUG?.toLowerCase()==="true",{client:n,auth:o}=await xw(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 Ft(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;return e.json?(t.success({apiUrl:i,apiVersion:c,username:a.user.username,team_name:a.workspace.name,profile:o.profileName}),0):(t.stdout.write(`Integrated API: ${i}
215
+ `;import{z as Ol}from"zod";var m6={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"}]},u6=Ol.object({apiKey:Ol.string().min(1,"API key cannot be empty").optional(),manual:Ol.boolean().optional(),noOpen:Ol.boolean().optional()});async function cg(e){let t=await Rl(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 e3(e){let t,r=await QT({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 t3(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||tn,n=e.apiKey,o;if(n)o=await cg({apiKey:n,baseURL:r});else{let c=await e3({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 oi({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 p6=A({path:["auth","login"],meta:m6,schema:u6,handler:t3});import{z as r3}from"zod";var l6={name:"logout",description:"Remove stored API key (use 'phala logout' instead)",stability:"deprecated"},f6=r3.object({});async function n3(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=Bt()?.current_profile;return Tl(),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 d6=A({path:["auth","logout"],meta:l6,schema:f6,handler:n3});import{z as jl}from"zod";var St={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json"},mg={name:"debug",shorthand:"d",description:"Enable debug output",type:"boolean",target:"debug"},g6={name:"status",category:"profile",description:"Check authentication status",stability:"stable",options:[...Nn,St,mg],examples:[{name:"Show login status",value:"phala status"},{name:"Get status as JSON",value:"phala status --json"}]},Hl=jl.object({json:jl.boolean().default(!1),debug:jl.boolean().default(!1),apiToken:jl.string().optional()});async function ug(e,t){se(e.json);let r=e.debug||t.env.DEBUG?.toLowerCase()==="true",{client:n,auth:o}=await $l(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}
216
216
  `),t.stdout.write(`API Version: ${c}
217
217
  `),t.stdout.write(`Logged in as: ${a.user.username}
218
218
  `),t.stdout.write(`Current Workspace: ${a.workspace.name}
219
219
  `),t.stdout.write(`Current Profile: ${o.profileName}
220
- `),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 y6=A({path:["status"],meta:h6,schema:Ul,handler:mg});var b6={name:"status",description:"Check auth status (use 'phala status' instead)",stability:"deprecated",options:[...is,Gt,cg]},x6=Ul;var v6=A({path:["auth","status"],meta:b6,schema:x6,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()),mg(e,t))});var ug={group:i6,commands:[l6,g6,v6]};var w6={path:["config"],meta:{name:"config",category:"deprecated",description:"Manage local CLI state",stability:"deprecated"}};import{z as C6}from"zod";var S6={name:"get",description:"Get a configuration value",stability:"stable",arguments:[{name:"key",description:"Configuration key",required:!0}]},E6=C6.object({key:C6.string()});async function o3(e,t){f.warn('The "phala config" commands are deprecated and will be removed in a future version.');try{let r=si(e.key);return r===void 0?(t.stderr.write(`Configuration key '${e.key}' not found
220
+ `),t.cli){let m=await Ul({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(`
221
+ ${m.message}`):t.stdout.write(`CLI is up to date.
222
+ `)}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 h6=A({path:["status"],meta:g6,schema:Hl,handler:ug});var y6={name:"status",description:"Check auth status (use 'phala status' instead)",stability:"deprecated",options:[...Nn,St,mg]},b6=Hl;var x6=A({path:["auth","status"],meta:y6,schema:b6,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()),ug(e,t))});var pg={group:a6,commands:[p6,d6,x6]};var v6={path:["config"],meta:{name:"config",category:"deprecated",description:"Manage local CLI state",stability:"deprecated"}};import{z as w6}from"zod";var C6={name:"get",description:"Get a configuration value",stability:"stable",arguments:[{name:"key",description:"Configuration key",required:!0}]},S6=w6.object({key:w6.string()});async function o3(e,t){f.warn('The "phala config" commands are deprecated and will be removed in a future version.');try{let r=si(e.key);return r===void 0?(t.stderr.write(`Configuration key '${e.key}' not found
221
223
  `),1):(t.stdout.write(`${e.key}: ${JSON.stringify(r)}
222
224
  `),0)}catch(r){return t.stderr.write(`Failed to get configuration value
223
- `),f.logDetailedError(r),1}}var k6=A({path:["config","get"],meta:S6,schema:E6,handler:o3});import{z as _6}from"zod";var I6={name:"list",aliases:["ls"],description:"List config values",stability:"stable",options:[{name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json"}]},P6=_6.object({json:_6.boolean().default(!1)});async function s3(e,t){ie(e.json),f.warn('The "phala config" commands are deprecated and will be removed in a future version.');try{let r=zw();if(e.json)return t.success(r),0;t.stdout.write(`Configuration values:
225
+ `),f.logDetailedError(r),1}}var k6=A({path:["config","get"],meta:C6,schema:S6,handler:o3});import{z as E6}from"zod";var _6={name:"list",aliases:["ls"],description:"List config values",stability:"stable",options:[{name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json"}]},I6=E6.object({json:E6.boolean().default(!1)});async function s3(e,t){se(e.json),f.warn('The "phala config" commands are deprecated and will be removed in a future version.');try{let r=Ow();if(e.json)return t.success(r),0;t.stdout.write(`Configuration values:
224
226
  `);for(let[n,o]of Object.entries(r))t.stdout.write(`${n}: ${JSON.stringify(o)}
225
- `);return 0}catch(r){return f.logDetailedError(r),t.fail("Failed to list configuration values"),1}}var A6=A({path:["config","list"],meta:I6,schema:P6,handler:s3});import{z as pg}from"zod";var T6={name:"set",description:"Set a configuration value",stability:"stable",arguments:[{name:"key",description:"Configuration key",required:!0},{name:"value",description:"Configuration value",required:!0}]},$6=pg.object({key:pg.string(),value:pg.string()});async function a3(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.'),Ow(e.key,r),t.stdout.write(`Configuration value for '${e.key}' set successfully
227
+ `);return 0}catch(r){return f.logDetailedError(r),t.fail("Failed to list configuration values"),1}}var P6=A({path:["config","list"],meta:_6,schema:I6,handler:s3});import{z as lg}from"zod";var A6={name:"set",description:"Set a configuration value",stability:"stable",arguments:[{name:"key",description:"Configuration key",required:!0},{name:"value",description:"Configuration value",required:!0}]},T6=lg.object({key:lg.string(),value:lg.string()});async function a3(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.'),zw(e.key,r),t.stdout.write(`Configuration value for '${e.key}' set successfully
226
228
  `),0}catch(r){return t.stderr.write(`Failed to set configuration value
227
- `),f.logDetailedError(r),1}}var R6=A({path:["config","set"],meta:T6,schema:$6,handler:a3});var lg={group:w6,commands:[k6,A6,R6]};var M6={path:["cvms"],meta:{name:"cvms",category:"manage",description:"Manage CVMs",stability:"unstable"}};import zl from"chalk";import{z as Ol}from"zod";var F6={name:"attestation",description:"Get CVM attestation",stability:"unstable",arguments:[Te],options:[Gt,Ce],examples:[{name:"Show attestation summary",value:"phala cvms attestation"},{name:"Output full attestation JSON",value:"phala cvms attestation --json"}]},N6=Ol.object({cvmId:Ol.string().optional(),interactive:Ol.boolean().default(!1),json:Ol.boolean().default(!1)});async function i3(e,t){if(ie(e.json),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await D(),n=await Be(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 kw(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?zl.green("Online"):zl.red("Offline"),"Public Access":i.is_public?zl.green("Enabled"):zl.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 B6=A({path:["cvms","attestation"],meta:F6,schema:N6,handler:i3});import V6 from"fs";import l3 from"path";import fg from"fs";import dg from"path";import c3 from"inquirer";function qt(e,t=process.cwd()){let r=dg.resolve(t,e);if(!fg.existsSync(r))throw new Error(`File not found at ${r}`);return!0}async function kn(e,t,r="file",n=process.cwd()){return(await c3.prompt([{type:"input",name:r,message:e,default:t,validate:s=>{let a=dg.resolve(n,s);return fg.existsSync(a)?!0:`File not found at ${a}`}}]))[r]}function mi(e,t){for(let r of e){let n=dg.join(process.cwd(),r);if(fg.existsSync(n))return t?f.info(t.replace("{path}",n)):f.info(`File detected: ${n}`),r}}import*as L6 from"fs";var Rc=(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=L6.readFileSync(t,"utf8");for(let o of n.split(`
229
+ `),f.logDetailedError(r),1}}var $6=A({path:["config","set"],meta:A6,schema:T6,handler:a3});var fg={group:v6,commands:[k6,P6,$6]};var R6={path:["cvms"],meta:{name:"cvms",category:"manage",description:"Manage CVMs",stability:"unstable"}};import Gl from"chalk";import{z as Vl}from"zod";var M6={name:"attestation",description:"Get CVM attestation",stability:"unstable",arguments:[we],options:[St,be],examples:[{name:"Show attestation summary",value:"phala cvms attestation"},{name:"Output full attestation JSON",value:"phala cvms attestation --json"}]},F6=Vl.object({cvmId:Vl.string().optional(),interactive:Vl.boolean().default(!1),json:Vl.boolean().default(!1)});async function i3(e,t){if(se(e.json),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await L(),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 ww(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?Gl.green("Online"):Gl.red("Offline"),"Public Access":i.is_public?Gl.green("Enabled"):Gl.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 B6=A({path:["cvms","attestation"],meta:M6,schema:F6,handler:i3});import H6 from"fs";import l3 from"path";import dg from"fs";import gg from"path";import c3 from"inquirer";function qt(e,t=process.cwd()){let r=gg.resolve(t,e);if(!dg.existsSync(r))throw new Error(`File not found at ${r}`);return!0}async function En(e,t,r="file",n=process.cwd()){return(await c3.prompt([{type:"input",name:r,message:e,default:t,validate:s=>{let a=gg.resolve(n,s);return dg.existsSync(a)?!0:`File not found at ${a}`}}]))[r]}function mi(e,t){for(let r of e){let n=gg.join(process.cwd(),r);if(dg.existsSync(n))return t?f.info(t.replace("{path}",n)):f.info(`File detected: ${n}`),r}}import*as N6 from"fs";var Mc=(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=N6.readFileSync(t,"utf8");for(let o of n.split(`
228
230
  `)){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,`
229
- `))):m=m.trim(),c&&(r[c]=m)}}return Object.entries(r).map(([n,o])=>({key:n,value:o}))};import{execSync as _n,spawn as m3}from"child_process";import*as ae from"fs";import*as gg from"net";import*as tn from"os";import*as ur from"path";var st={version:"0.5.3",baseUrl:"https://github.com/Dstack-TEE/dstack/releases/download/v0.5.3",installDir:ur.join(tn.homedir(),".phala-cloud","simulator"),defaultLogPath:ur.join(tn.homedir(),".phala-cloud","logs","dstack-simulator.log"),platforms:{darwin:{filename:"dstack-simulator-0.5.3-aarch64-apple-darwin.tgz",extractedFolder:"0.5.3",socketPath:ur.join(tn.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:ur.join(tn.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 D6(){try{if(!ae.existsSync(st.installDir))return!1;let e=tn.platform();if(!st.platforms[e])throw new Error(`Unsupported platform: ${e}`);let t=ur.join(st.installDir,st.platforms[e].extractedFolder);if(!ae.existsSync(t))return!1;let n=ur.join(t,e==="win32"?"dstack-simulator.exe":"dstack-simulator");return ae.existsSync(n)}catch(e){return f.error("Error checking if simulator is installed:",e),!1}}function Mc(){let e=tn.platform();if(!st.platforms[e])throw new Error(`Unsupported platform: ${e}. Only darwin, linux, and win32 are supported.`);return e}async function U6(e){let t=r=>{f.info(r),e&&e(r)};try{let r=Mc(),n=st.platforms[r];if(r==="win32"){try{_n("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.")}ae.existsSync(st.installDir)||(f.info(`Creating installation directory at ${st.installDir}`),ae.mkdirSync(st.installDir,{recursive:!0})),process.chdir(st.installDir);let o=`${st.baseUrl}/${n.filename}`;f.info(`Downloading simulator from ${o}`),_n(`wget ${o}`,{stdio:"inherit"});let s=ur.join(st.installDir,n.extractedFolder);ae.existsSync(s)||ae.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{_n(a,{stdio:"inherit"}),ae.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 hg=()=>ur.join(tn.tmpdir(),"dstack-simulator.pid");function u3(e){return Buffer.byteLength(e,"utf8")>104}function jl(){try{let e=hg();if(ae.existsSync(e)){let t=Number.parseInt(ae.readFileSync(e,"utf-8").trim(),10);try{return process.kill(t,0),t}catch{ae.unlinkSync(e)}}return null}catch(e){return f.warn("Error checking simulator PID:",e),null}}function p3(e,t){try{let r=hg();t&&f.info(`Saving simulator PID ${e} to: ${r}`),ae.writeFileSync(r,e.toString(),"utf-8")}catch(r){f.warn("Failed to save simulator PID:",r)}}async function O6(e={}){try{let t=Mc(),r=st.platforms[t],n=ur.join(st.installDir,r.extractedFolder),o=jl();if(o)throw new Error(`Simulator is already running with PID: ${o}`);if(t!=="win32"&&u3(r.socketPath))throw new Error(`Socket path is too long (${r.socketPath.length} chars, max 104): ${r.socketPath}`);if(t!=="win32"&&ae.existsSync(r.socketPath)){f.warn(`Removing existing socket file: ${r.socketPath}`);try{ae.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=ur.dirname(a.logFilePath);ae.existsSync(m)||ae.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",ae.openSync(a.logFilePath,"a"),ae.openSync(a.logFilePath,"a")]:"inherit",c=m3(s,[],{stdio:i,shell:t==="win32",detached:a.background});if(a.logToFile&&Array.isArray(i)&&(typeof i[1]=="number"&&ae.closeSync(i[1]),typeof i[2]=="number"&&ae.closeSync(i[2])),a.logToFile){let u=`
231
+ `))):m=m.trim(),c&&(r[c]=m)}}return Object.entries(r).map(([n,o])=>({key:n,value:o}))};import{execSync as _n,spawn as m3}from"child_process";import*as me from"fs";import*as hg from"net";import*as nn from"os";import*as lr from"path";var ot={version:"0.5.3",baseUrl:"https://github.com/Dstack-TEE/dstack/releases/download/v0.5.3",installDir:lr.join(nn.homedir(),".phala-cloud","simulator"),defaultLogPath:lr.join(nn.homedir(),".phala-cloud","logs","dstack-simulator.log"),platforms:{darwin:{filename:"dstack-simulator-0.5.3-aarch64-apple-darwin.tgz",extractedFolder:"0.5.3",socketPath:lr.join(nn.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:lr.join(nn.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 L6(){try{if(!me.existsSync(ot.installDir))return!1;let e=nn.platform();if(!ot.platforms[e])throw new Error(`Unsupported platform: ${e}`);let t=lr.join(ot.installDir,ot.platforms[e].extractedFolder);if(!me.existsSync(t))return!1;let n=lr.join(t,e==="win32"?"dstack-simulator.exe":"dstack-simulator");return me.existsSync(n)}catch(e){return f.error("Error checking if simulator is installed:",e),!1}}function Fc(){let e=nn.platform();if(!ot.platforms[e])throw new Error(`Unsupported platform: ${e}. Only darwin, linux, and win32 are supported.`);return e}async function D6(e){let t=r=>{f.info(r),e&&e(r)};try{let r=Fc(),n=ot.platforms[r];if(r==="win32"){try{_n("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.")}me.existsSync(ot.installDir)||(f.info(`Creating installation directory at ${ot.installDir}`),me.mkdirSync(ot.installDir,{recursive:!0})),process.chdir(ot.installDir);let o=`${ot.baseUrl}/${n.filename}`;f.info(`Downloading simulator from ${o}`),_n(`wget ${o}`,{stdio:"inherit"});let s=lr.join(ot.installDir,n.extractedFolder);me.existsSync(s)||me.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{_n(a,{stdio:"inherit"}),me.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 yg=()=>lr.join(nn.tmpdir(),"dstack-simulator.pid");function u3(e){return Buffer.byteLength(e,"utf8")>104}function ql(){try{let e=yg();if(me.existsSync(e)){let t=Number.parseInt(me.readFileSync(e,"utf-8").trim(),10);try{return process.kill(t,0),t}catch{me.unlinkSync(e)}}return null}catch(e){return f.warn("Error checking simulator PID:",e),null}}function p3(e,t){try{let r=yg();t&&f.info(`Saving simulator PID ${e} to: ${r}`),me.writeFileSync(r,e.toString(),"utf-8")}catch(r){f.warn("Failed to save simulator PID:",r)}}async function U6(e={}){try{let t=Fc(),r=ot.platforms[t],n=lr.join(ot.installDir,r.extractedFolder),o=ql();if(o)throw new Error(`Simulator is already running with PID: ${o}`);if(t!=="win32"&&u3(r.socketPath))throw new Error(`Socket path is too long (${r.socketPath.length} chars, max 104): ${r.socketPath}`);if(t!=="win32"&&me.existsSync(r.socketPath)){f.warn(`Removing existing socket file: ${r.socketPath}`);try{me.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??ot.defaultLogPath};if(a.logToFile){let m=lr.dirname(a.logFilePath);me.existsSync(m)||me.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",me.openSync(a.logFilePath,"a"),me.openSync(a.logFilePath,"a")]:"inherit",c=m3(s,[],{stdio:i,shell:t==="win32",detached:a.background});if(a.logToFile&&Array.isArray(i)&&(typeof i[1]=="number"&&me.closeSync(i[1]),typeof i[2]=="number"&&me.closeSync(i[2])),a.logToFile){let u=`
230
232
  === Simulator started at ${new Date().toISOString()} ===
231
233
  Command: ${s}
232
234
 
233
- `;ae.appendFileSync(a.logFilePath,u)}return c.pid&&p3(c.pid,e.verbose),a.background&&(c.unref(),e.verbose&&f.success("Simulator is running in the background")),await bg(),c}catch(t){throw f.error("Error running simulator:",t),new Error(`Failed to run simulator: ${t}`)}}async function Fc(){try{let e=Mc(),t=st.platforms[e];if(e==="darwin"||e==="linux"){let r=t.socketPath;return ae.existsSync(r)?new Promise(n=>{let o=gg.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=gg.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 z6(){try{let e=jl();if(!await Fc()&&!e)return f.info("Simulator is not running"),!0;let r=Mc(),n=!1;if(r==="win32")try{e?(f.info(`Stopping simulator process (PID: ${e})...`),process.kill(e,"SIGTERM")):_n("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")):_n("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=hg();if(ae.existsSync(o))try{ae.unlinkSync(o)}catch(s){f.warn("Failed to remove PID file:",s)}return await rs(),n&&f.success("Simulator stopped successfully"),n}catch(e){return f.error("Error stopping simulator:",e),!1}}function yg(){let e=Mc(),t=st.platforms[e];return e==="win32"?"http://127.0.0.1:8090":`${t.socketPath||"/tmp/dstack.sock"}`}async function bg(e){try{let t=yg(),r=e||t;await _n(`export DSTACK_SIMULATOR_ENDPOINT=${r}`);let n=r.replace(/dstack\.sock$/,"tappd.sock");return await _n(`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 rs(){try{return await _n("unset DSTACK_SIMULATOR_ENDPOINT"),await _n("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 G6 from"inquirer";import{z as Ir}from"zod";var j6={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: ${Tc})`,type:"string",target:"vcpu"},{name:"memory",description:`Memory in MB (default: ${$c})`,type:"string",target:"memory"},{name:"disk-size",description:`Disk size in GB (default: ${ts})`,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"}]},H6=Ir.object({name:Ir.string().optional(),compose:Ir.string().optional(),vcpu:Ir.string().optional(),memory:Ir.string().optional(),diskSize:Ir.string().optional(),teepodId:Ir.string().optional(),image:Ir.string().optional(),envFile:Ir.string().optional(),skipEnv:Ir.boolean().default(!1),debug:Ir.boolean().default(!1)});async function f3(e){if(e)return e;let{value:t}=await G6.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 d3(e){if(e)return e;let r=mi(["docker-compose.yml","docker-compose.yaml"],"Detected docker compose file: {path}");return await kn("Enter the path to your Docker Compose file:",r,"file")}async function g3(e){if(e.envFile)return Rc([],e.envFile);if(e.skipEnv)return f.info("Skipping environment variable prompt"),[];let{shouldSkip:t}=await G6.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 kn("Enter the path to your environment file:",".env","file");return Rc([],r)}function xg(e,t){if(!e)return t;let r=Number(e);return Number.isFinite(r)?r:t}function h3(e,t){return!Number.isFinite(t)||t<=0?`Invalid ${e}: ${t}`:null}async function y3(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 b3(e,t){let r=e.images??[];return t?r.find(n=>n.name===t):r.find(n=>n.name===ag)}async function x3(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 f3(e.name),n=await d3(e.compose),o=l3.resolve(n);if(!V6.existsSync(o))return f.error(`Docker Compose file not found: ${o}`),1;let s=V6.readFileSync(o,"utf8");await rs(),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 g3(e)}catch(k){return f.error(`Failed to read environment file: ${k instanceof Error?k.message:String(k)}`),1}let i=xg(e.vcpu,Tc),c=xg(e.memory,$c),m=xg(e.diskSize,ts);for(let[k,P]of[["number of vCPUs",i],["memory",c],["disk size",m]]){let _=h3(k,P);if(_)return f.error(_),1}let u=f.startSpinner("Fetching available TEEPods"),p=await Tw(!0);u.stop(!0);let l=await y3(e.teepodId,p);if(!l)return f.error("Failed to find suitable TEEPod"),1;let d=b3(l,e.image);if(!d)return f.error(e.image?`Failed to find selected image: ${e.image}`:`Failed to find default image ${ag}`),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 Iw(g);if(h.stop(!0),!y)return f.error("Failed to get public key from CVM"),1;let x=f.startSpinner("Encrypting environment variables"),b=await(0,mr.encryptEnvVars)(a,y.app_env_encrypt_pubkey);x.stop(!0),e.debug&&(f.debug("Public key:",y.app_env_encrypt_pubkey),f.debug("Encrypted environment variables:",b),f.debug("Environment variables:",JSON.stringify(a)));let v=f.startSpinner("Creating CVM"),S=await Pw({...g,encrypted_env:b,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||`${Oe}/dashboard/cvms/app_${S.app_id}`},{borderStyle:"rounded"}),f.info(""),f.success(`Your CVM is being created. You can check its status with:
234
- 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 q6=A({path:["cvms","create"],meta:j6,schema:H6,handler:x3});import v3 from"inquirer";import{z as Nc}from"zod";var K6={name:"delete",description:"Delete a CVM",stability:"unstable",arguments:[Te],options:[Ce,{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"}]},W6=Nc.object({cvmId:Nc.string().optional(),interactive:Nc.boolean().default(!1),force:Nc.boolean().default(!1),yes:Nc.boolean().default(!1)});async function w3(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await D(),n=await Be(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 v3.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 G0(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 J6=A({path:["cvms","delete"],meta:K6,schema:W6,handler:w3});import vg from"chalk";import{z as Hl}from"zod";var Z6={name:"get",description:"Get details of a CVM",stability:"unstable",arguments:[Te],options:[Gt,Ce],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"}]},Y6=Hl.object({cvmId:Hl.string().optional(),json:Hl.boolean().default(!1),interactive:Hl.boolean().default(!1)});async function C3(e,t){if(ie(e.json),!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 D(),o=await Be(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"?vg.green(s.status):s.status==="stopped"?vg.red(s.status):vg.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":`${Oe}/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 X6=A({path:["cvms","get"],meta:Z6,schema:Y6,handler:C3});import ql from"chalk";function S3(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 Vl(e,t){let r=await mw(e,{page:t.page,page_size:t.pageSize});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 S3(a,100)){let u=await cw(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 Pr(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 Gl}from"zod";var Q6={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"},fr],examples:[{name:"List CVMs",value:"phala cvms ls"},{name:"Second page",value:"phala cvms ls --page 2"},{name:"Output as JSON",value:"phala cvms ls --json"}]},eC=Gl.object({page:Gl.coerce.number().int().min(1).default(1),pageSize:Gl.coerce.number().int().min(1).max(100).default(50),json:Gl.boolean().default(!1)});function E3(e){return e.toLowerCase().endsWith("ing")?ql.yellow(e):e==="running"?ql.green(e):e==="stopped"?ql.red(e):ql.yellow(e)}async function k3(e,t){ie(e.json);try{let r=await D(),n=await Vl(r,{page:e.page,pageSize:e.pageSize});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:E3(i.status),UPTIME:i.uptime??"-"}));return a.length===0?(f.info("No CVMs found"),0):(Pr(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 tC=A({path:["cvms","list"],meta:Q6,schema:eC,handler:k3});import{z as _3}from"zod";var rC={name:"list-nodes",description:"List worker nodes",stability:"unstable"},nC=_3.object({});async function I3(e,t){try{let r=await D(),n=await R0(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(`
235
- 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 oC=A({path:["cvms","list-nodes"],meta:rC,schema:nC,handler:I3});async function Bc(e){try{let t=await D(),r=await Be(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 Kl(e,t){return async function(n,o){if(ie(n.json),!o.cvmId)return o.fail("No CVM ID provided. Use --interactive to select interactively."),1;let{cvmId:s}=ye.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 Bc(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 Bc(s),1}}}import{z as bo}from"zod";var sC={name:"logs",description:"Fetch container logs from a CVM",stability:"unstable",arguments:[Te],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"},Gt,Ce],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"}]},aC=bo.object({cvmId:bo.string().optional(),tail:bo.number().optional(),follow:bo.boolean().default(!1),timestamps:bo.boolean().default(!1),container:bo.string().optional(),json:bo.boolean().default(!1),interactive:bo.boolean().default(!1)});var P3=Kl({logType:"container",fetchLogs:Mw,streamLogs:Lw},e=>({tail:e.tail,timestamps:e.timestamps,container:e.container})),iC=A({path:["cvms","logs"],meta:sC,schema:aC,handler:P3});import uC from"fs";import A3 from"path";import{z as Wl}from"zod";var cC={name:"replicate",description:"Create a replica of an existing CVM",stability:"unstable",arguments:[{name:"cvm-id",description:"UUID of the CVM to replicate",required:!0,target:"cvmId"}],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"}],examples:[{name:"Replicate a CVM",value:"phala cvms replicate 1234 --teepod-id 5"}]},mC=Wl.object({cvmId:Wl.string().min(1,"CVM ID is required"),teepodId:Wl.string().optional(),envFile:Wl.string().optional()});function T3(e){return uC.readFileSync(e,"utf-8").split(`
236
- `).filter(r=>r.trim()!==""&&!r.trim().startsWith("#")).map(r=>{let[n,...o]=r.split("=");return{key:n.trim(),value:o.join("=").trim()}})}async function $3(e,t){try{let r=e.cvmId.replace(/-/g,""),n;if(e.envFile){let a=A3.resolve(process.cwd(),e.envFile);if(!uC.existsSync(a))throw new Error(`Environment file not found: ${a}`);let i=T3(a),c=await Sw(r);f.info("Encrypting environment variables..."),n=await(0,mr.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 _w(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:
237
- phala cvms get ${s.app_id}`),0}catch(r){return f.error("Failed to create CVM replica"),f.logDetailedError(r),1}}var pC=A({path:["cvms","replicate"],meta:cC,schema:mC,handler:$3});import xo from"chalk";import Sg from"inquirer";async function In(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 Pn}from"zod";var lC={name:"resize",description:"Resize resources for a CVM",stability:"unstable",arguments:[Te],options:[Ce,{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"}]},fC=Pn.object({cvmId:Pn.string().optional(),interactive:Pn.boolean().default(!1),vcpu:Pn.string().optional(),memory:Pn.string().optional(),diskSize:Pn.string().optional(),allowRestart:Pn.string().optional(),yes:Pn.boolean().default(!1),json:Pn.boolean().default(!1)});function wg(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 R3(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 Cg(e,t){return(await Sg.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 M3(e,t){if(ie(e.json),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await D(),n=await Be(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=wg(e.vcpu,"--vcpu"),i=wg(e.memory,"--memory"),c=wg(e.diskSize,"--disk-size"),m=R3(e.allowRestart)}catch(u){return f.error(u instanceof Error?u.message:String(u)),1}if(Ef()?(a===void 0&&(a=await Cg("Enter number of vCPUs:",o.resource.vcpu??void 0)),i===void 0&&(i=await Cg("Enter memory in MB:",o.resource.memory_in_gb?o.resource.memory_in_gb*1024:void 0)),c===void 0&&(c=await Cg("Enter disk size in GB:",o.resource.disk_in_gb??void 0)),m===void 0&&(m=(await Sg.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)),Ef()){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?`${xo.red(u)} -> ${xo.green(a)}`:u,Memory:p!==i?`${xo.red(p)} MB -> ${xo.green(i)} MB`:p,"Disk Size":l!==c?`${xo.red(l)} GB -> ${xo.green(c)} GB`:l,"Allow Restart":m?xo.green("Yes"):xo.red("No")}),!e.yes){let{confirm:g}=await Sg.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 In(()=>eg(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:
238
- ${Oe}/dashboard/cvms/app_${s}`)}else await In(()=>eg(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 dC=A({path:["cvms","resize"],meta:lC,schema:fC,handler:M3});async function Jl(e,t=3e5){let r=await D(),n=Date.now(),o=2e3;for(f.info("Waiting for CVM to be ready...");Date.now()-n<t;){try{let s=await Be(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 Eg}from"zod";var gC={name:"restart",description:"Restart a CVM",stability:"stable",arguments:[Te],options:[Ce],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"}]},hC=Eg.object({cvmId:Eg.string().optional(),interactive:Eg.boolean().default(!1)});async function F3(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await D(),n=await Be(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 Jl(o.vm_uuid,3e5));let s=f.startSpinner("Restarting CVM"),a=t.cvmId,i=await In(()=>V0(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||`${Oe}/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:
239
- ${Oe}/dashboard/cvms/app_${c.app_id}`),0}catch(r){return f.error("Failed to restart CVM"),f.logDetailedError(r),1}}var yC=A({path:["cvms","restart"],meta:gC,schema:hC,handler:F3});import{z as ns}from"zod";var bC={name:"serial-logs",description:"Fetch VM serial console logs from a CVM",stability:"unstable",arguments:[Te],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"},Gt,Ce],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"}]},xC=ns.object({cvmId:ns.string().optional(),tail:ns.number().optional(),follow:ns.boolean().default(!1),timestamps:ns.boolean().default(!1),json:ns.boolean().default(!1),interactive:ns.boolean().default(!1)});var N3=Kl({logType:"serial",fetchLogs:Rw,streamLogs:Bw},e=>({tail:e.tail,timestamps:e.timestamps})),vC=A({path:["cvms","serial-logs"],meta:bC,schema:xC,handler:N3});import{z as kg}from"zod";var wC={name:"start",description:"Start a stopped CVM",stability:"stable",arguments:[Te],options:[Ce],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"}]},CC=kg.object({cvmId:kg.string().optional(),interactive:kg.boolean().default(!1)});async function B3(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await D(),n=f.startSpinner("Starting CVM"),o=t.cvmId,s=await In(()=>j0(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:
240
- ${Oe}/dashboard/cvms/app_${a.app_id}`),0}catch(r){return f.error("Failed to start CVM"),f.logDetailedError(r),1}}var SC=A({path:["cvms","start"],meta:wC,schema:CC,handler:B3});import{z as _g}from"zod";var EC={name:"stop",description:"Stop a running CVM",stability:"stable",arguments:[Te],options:[Ce],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=_g.object({cvmId:_g.string().optional(),interactive:_g.boolean().default(!1)});async function L3(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await D(),n=f.startSpinner("Stopping CVM"),o=t.cvmId,s=await In(()=>H0(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:
241
- ${Oe}/dashboard/cvms/app_${a.app_id}`),0}catch(r){return f.error("Failed to stop CVM"),f.logDetailedError(r),1}}var _C=A({path:["cvms","stop"],meta:EC,schema:kC,handler:L3});import D3 from"fs";import{z as ui}from"zod";var IC={name:"upgrade",description:'Upgrade a CVM to a new version (use "phala deploy" instead)',stability:"deprecated",arguments:[Te],options:[Ce,{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"}]},PC=ui.object({cvmId:ui.string().optional(),interactive:ui.boolean().default(!1),compose:ui.string().optional(),envFile:ui.string().optional(),debug:ui.boolean().default(!1)});async function U3(e){if(e.compose)return e.compose;let r=mi(["docker-compose.yml","docker-compose.yaml"],"Detected docker compose file: {path}");return kn("Enter the path to your Docker Compose file:",r,"file")}async function O3(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.
242
- `),!t.cvmId)return f.error("No CVM ID provided. Use --interactive to select interactively."),1;let r=await D(),n=await Be(r,t.cvmId);if(!n.success)return f.error(n.error.message),1;let o=n.data;if(!o)return f.error("CVM not found"),1;let s=o.app_id,a=o,i=await U3(e),c="";if(i)try{c=D3.readFileSync(i,"utf8")}catch(g){return f.error(`Failed to read Docker Compose file: ${g instanceof Error?g.message:String(g)}`),1}await rs(),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=Rc([],e.envFile);m=await(0,mr.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 Aw(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:
243
- ${Oe}/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 AC=A({path:["cvms","upgrade"],meta:IC,schema:PC,handler:O3});var Ig={group:M6,commands:[B6,q6,J6,X6,tC,oC,iC,pC,dC,yC,vC,SC,_C,AC]};import{z as me}from"zod";var TC={name:"deploy",category:"deploy",description:"Deploy new CVM or update existing one",stability:"stable",arguments:[],options:[cs,Vg,{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: ${ts}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"}]},$C=me.object({compose:me.string().optional(),json:me.boolean().default(!1),debug:me.boolean().default(!1),apiToken:me.string().optional(),name:me.string().optional(),instanceType:me.string().optional(),vcpu:me.string().optional(),memory:me.string().optional(),diskSize:me.string().optional(),image:me.string().optional(),region:me.string().optional(),nodeId:me.string().optional(),env:me.array(me.string()).optional(),envFile:me.string().optional(),interactive:me.boolean().default(!1),kms:me.enum(["phala","ethereum","eth","base"]).default("phala"),kmsId:me.string().optional(),cvmId:me.string().optional(),customAppId:me.string().optional(),nonce:me.string().optional(),preLaunchScript:me.string().optional(),privateKey:me.string().optional(),rpcUrl:me.string().optional(),wait:me.boolean().default(!1),sshPubkey:me.string().optional(),devOs:me.boolean().optional(),publicLogs:me.boolean().optional(),publicSysinfo:me.boolean().optional(),listed:me.boolean().optional()});import An from"path";import LC from"os";function z3(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 RC(e){let t={files:[],keyValues:[]};for(let r of e)if(z3(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 MC(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 FC(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 NC(e){let t=FC(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 BC(e){let t=FC(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 Zl from"dedent";import rn from"fs-extra";import Yl from"inquirer";function j3(e,t){if(e instanceof bc)return t.json?{success:!1,error_code:e.errorCode,message:e.message,details:e.structuredDetails,suggestions:e.suggestions,links:e.links}:yl(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=`
235
+ `;me.appendFileSync(a.logFilePath,u)}return c.pid&&p3(c.pid,e.verbose),a.background&&(c.unref(),e.verbose&&f.success("Simulator is running in the background")),await xg(),c}catch(t){throw f.error("Error running simulator:",t),new Error(`Failed to run simulator: ${t}`)}}async function Bc(){try{let e=Fc(),t=ot.platforms[e];if(e==="darwin"||e==="linux"){let r=t.socketPath;return me.existsSync(r)?new Promise(n=>{let o=hg.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=hg.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 z6(){try{let e=ql();if(!await Bc()&&!e)return f.info("Simulator is not running"),!0;let r=Fc(),n=!1;if(r==="win32")try{e?(f.info(`Stopping simulator process (PID: ${e})...`),process.kill(e,"SIGTERM")):_n("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")):_n("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=yg();if(me.existsSync(o))try{me.unlinkSync(o)}catch(s){f.warn("Failed to remove PID file:",s)}return await os(),n&&f.success("Simulator stopped successfully"),n}catch(e){return f.error("Error stopping simulator:",e),!1}}function bg(){let e=Fc(),t=ot.platforms[e];return e==="win32"?"http://127.0.0.1:8090":`${t.socketPath||"/tmp/dstack.sock"}`}async function xg(e){try{let t=bg(),r=e||t;await _n(`export DSTACK_SIMULATOR_ENDPOINT=${r}`);let n=r.replace(/dstack\.sock$/,"tappd.sock");return await _n(`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 os(){try{return await _n("unset DSTACK_SIMULATOR_ENDPOINT"),await _n("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 V6 from"inquirer";import{z as Ar}from"zod";var O6={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: ${$c})`,type:"string",target:"vcpu"},{name:"memory",description:`Memory in MB (default: ${Rc})`,type:"string",target:"memory"},{name:"disk-size",description:`Disk size in GB (default: ${ns})`,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"}]},j6=Ar.object({name:Ar.string().optional(),compose:Ar.string().optional(),vcpu:Ar.string().optional(),memory:Ar.string().optional(),diskSize:Ar.string().optional(),teepodId:Ar.string().optional(),image:Ar.string().optional(),envFile:Ar.string().optional(),skipEnv:Ar.boolean().default(!1),debug:Ar.boolean().default(!1)});async function f3(e){if(e)return e;let{value:t}=await V6.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 d3(e){if(e)return e;let r=mi(["docker-compose.yml","docker-compose.yaml"],"Detected docker compose file: {path}");return await En("Enter the path to your Docker Compose file:",r,"file")}async function g3(e){if(e.envFile)return Mc([],e.envFile);if(e.skipEnv)return f.info("Skipping environment variable prompt"),[];let{shouldSkip:t}=await V6.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 En("Enter the path to your environment file:",".env","file");return Mc([],r)}function vg(e,t){if(!e)return t;let r=Number(e);return Number.isFinite(r)?r:t}function h3(e,t){return!Number.isFinite(t)||t<=0?`Invalid ${e}: ${t}`:null}async function y3(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 b3(e,t){let r=e.images??[];return t?r.find(n=>n.name===t):r.find(n=>n.name===ig)}async function x3(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 f3(e.name),n=await d3(e.compose),o=l3.resolve(n);if(!H6.existsSync(o))return f.error(`Docker Compose file not found: ${o}`),1;let s=H6.readFileSync(o,"utf8");await os(),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 g3(e)}catch(E){return f.error(`Failed to read environment file: ${E instanceof Error?E.message:String(E)}`),1}let i=vg(e.vcpu,$c),c=vg(e.memory,Rc),m=vg(e.diskSize,ns);for(let[E,I]of[["number of vCPUs",i],["memory",c],["disk size",m]]){let _=h3(E,I);if(_)return f.error(_),1}let u=f.startSpinner("Fetching available TEEPods"),p=await _w(!0);u.stop(!0);let l=await y3(e.teepodId,p);if(!l)return f.error("Failed to find suitable TEEPod"),1;let d=b3(l,e.image);if(!d)return f.error(e.image?`Failed to find selected image: ${e.image}`:`Failed to find default image ${ig}`),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 Sw(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,pr.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 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?(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:
236
+ 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 G6=A({path:["cvms","create"],meta:O6,schema:j6,handler:x3});import v3 from"inquirer";import{z as Nc}from"zod";var q6={name:"delete",description:"Delete a CVM",stability:"unstable",arguments:[we],options:[be,{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"}]},K6=Nc.object({cvmId:Nc.string().optional(),interactive:Nc.boolean().default(!1),force:Nc.boolean().default(!1),yes:Nc.boolean().default(!1)});async function w3(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await L(),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 v3.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 G0(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 W6=A({path:["cvms","delete"],meta:q6,schema:K6,handler:w3});import wg from"chalk";import{z as Kl}from"zod";var J6={name:"get",description:"Get details of a CVM",stability:"unstable",arguments:[we],options:[St,be],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"}]},Z6=Kl.object({cvmId:Kl.string().optional(),json:Kl.boolean().default(!1),interactive:Kl.boolean().default(!1)});async function C3(e,t){if(se(e.json),!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 L(),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"?wg.green(s.status):s.status==="stopped"?wg.red(s.status):wg.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 Y6=A({path:["cvms","get"],meta:J6,schema:Z6,handler:C3});import Jl from"chalk";function S3(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 Wl(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 S3(a,100)){let u=await sw(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 Tr(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 Kt}from"zod";var X6={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"},gr],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"}]},Q6=Kt.object({page:Kt.coerce.number().int().min(1).default(1),pageSize:Kt.coerce.number().int().min(1).max(100).default(50),search:Kt.string().optional(),status:Kt.array(Kt.string()).optional(),listed:Kt.boolean().optional(),baseImage:Kt.string().optional(),instanceType:Kt.string().optional(),kmsType:Kt.string().optional(),node:Kt.string().optional(),region:Kt.string().optional(),json:Kt.boolean().default(!1)});function k3(e){return e.toLowerCase().endsWith("ing")?Jl.yellow(e):e==="running"?Jl.green(e):e==="stopped"?Jl.red(e):Jl.yellow(e)}async function E3(e,t){se(e.json);try{let r=await L(),n=await Wl(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:k3(i.status),UPTIME:i.uptime??"-"}));return a.length===0?(f.info("No CVMs found"),0):(Tr(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 eC=A({path:["cvms","list"],meta:X6,schema:Q6,handler:E3});import{z as _3}from"zod";var tC={name:"list-nodes",description:"List worker nodes",stability:"unstable"},rC=_3.object({});async function I3(e,t){try{let r=await L(),n=await R0(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(`
237
+ 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 nC=A({path:["cvms","list-nodes"],meta:tC,schema:rC,handler:I3});async function Lc(e){try{let t=await L(),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 Zl(e,t){return async function(n,o){if(se(n.json),!o.cvmId)return o.fail("No CVM ID provided. Use --interactive to select interactively."),1;let{cvmId:s}=ee.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 Lc(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 Lc(s),1}}}import{z as vo}from"zod";var oC={name:"logs",description:"Fetch container logs from a CVM",stability:"deprecated",arguments:[we],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"},St,be],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"}]},sC=vo.object({cvmId:vo.string().optional(),tail:vo.number().optional(),follow:vo.boolean().default(!1),timestamps:vo.boolean().default(!1),container:vo.string().optional(),json:vo.boolean().default(!1),interactive:vo.boolean().default(!1)});var P3=Zl({logType:"container",fetchLogs:Tw,streamLogs:Fw},e=>({tail:e.tail,timestamps:e.timestamps,container:e.container})),aC=A({path:["cvms","logs"],meta:oC,schema:sC,handler:P3});import mC from"fs";import A3 from"path";import{z as Dc}from"zod";var iC={name:"replicate",description:"Create a replica of an existing CVM",stability:"unstable",arguments:[we],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"},be],examples:[{name:"Replicate a CVM",value:"phala cvms replicate 1234 --teepod-id 5"}]},cC=Dc.object({cvmId:Dc.string().optional(),teepodId:Dc.string().optional(),envFile:Dc.string().optional(),interactive:Dc.boolean().default(!1)});function T3(e){return mC.readFileSync(e,"utf-8").split(`
238
+ `).filter(r=>r.trim()!==""&&!r.trim().startsWith("#")).map(r=>{let[n,...o]=r.split("=");return{key:n.trim(),value:o.join("=").trim()}})}async function $3(e,t){try{if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;let{cvmId:r}=ee.parse(t.cvmId),n;if(e.envFile){let a=A3.resolve(process.cwd(),e.envFile);if(!mC.existsSync(a))throw new Error(`Environment file not found: ${a}`);let i=T3(a),c=await xw(r);f.info("Encrypting environment variables..."),n=await(0,pr.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 Cw(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:
239
+ phala cvms get ${s.app_id}`),0}catch(r){return f.error("Failed to create CVM replica"),f.logDetailedError(r),1}}var uC=A({path:["cvms","replicate"],meta:iC,schema:cC,handler:$3});import wo from"chalk";import kg from"inquirer";async function In(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 Pn}from"zod";var pC={name:"resize",description:"Resize resources for a CVM",stability:"unstable",arguments:[we],options:[be,{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"}]},lC=Pn.object({cvmId:Pn.string().optional(),interactive:Pn.boolean().default(!1),vcpu:Pn.string().optional(),memory:Pn.string().optional(),diskSize:Pn.string().optional(),allowRestart:Pn.string().optional(),yes:Pn.boolean().default(!1),json:Pn.boolean().default(!1)});function Cg(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 R3(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 Sg(e,t){return(await kg.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 M3(e,t){if(se(e.json),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await L(),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=Cg(e.vcpu,"--vcpu"),i=Cg(e.memory,"--memory"),c=Cg(e.diskSize,"--disk-size"),m=R3(e.allowRestart)}catch(u){return f.error(u instanceof Error?u.message:String(u)),1}if(Ef()?(a===void 0&&(a=await Sg("Enter number of vCPUs:",o.resource.vcpu??void 0)),i===void 0&&(i=await Sg("Enter memory in MB:",o.resource.memory_in_gb?o.resource.memory_in_gb*1024:void 0)),c===void 0&&(c=await Sg("Enter disk size in GB:",o.resource.disk_in_gb??void 0)),m===void 0&&(m=(await kg.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)),Ef()){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?`${wo.red(u)} -> ${wo.green(a)}`:u,Memory:p!==i?`${wo.red(p)} MB -> ${wo.green(i)} MB`:p,"Disk Size":l!==c?`${wo.red(l)} GB -> ${wo.green(c)} GB`:l,"Allow Restart":m?wo.green("Yes"):wo.red("No")}),!e.yes){let{confirm:g}=await kg.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 In(()=>eg(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:
240
+ ${ze}/dashboard/cvms/app_${s}`)}else await In(()=>eg(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 fC=A({path:["cvms","resize"],meta:pC,schema:lC,handler:M3});async function Yl(e,t=3e5){let r=await L(),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 Eg}from"zod";var dC={name:"restart",description:"Restart a CVM",stability:"stable",arguments:[we],options:[be],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"}]},gC=Eg.object({cvmId:Eg.string().optional(),interactive:Eg.boolean().default(!1)});async function F3(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await L(),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 Yl(o.vm_uuid,3e5));let s=f.startSpinner("Restarting CVM"),a=t.cvmId,i=await In(()=>V0(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:
241
+ ${ze}/dashboard/cvms/app_${c.app_id}`),0}catch(r){return f.error("Failed to restart CVM"),f.logDetailedError(r),1}}var hC=A({path:["cvms","restart"],meta:dC,schema:gC,handler:F3});import{z as ss}from"zod";var yC={name:"serial-logs",description:"Fetch VM serial console logs from a CVM",stability:"deprecated",arguments:[we],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"},St,be],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"}]},bC=ss.object({cvmId:ss.string().optional(),tail:ss.number().optional(),follow:ss.boolean().default(!1),timestamps:ss.boolean().default(!1),json:ss.boolean().default(!1),interactive:ss.boolean().default(!1)});var B3=Zl({logType:"serial",fetchLogs:Aw,streamLogs:Mw},e=>({tail:e.tail,timestamps:e.timestamps})),xC=A({path:["cvms","serial-logs"],meta:yC,schema:bC,handler:B3});import{z as _g}from"zod";var vC={name:"start",description:"Start a stopped CVM",stability:"stable",arguments:[we],options:[be],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"}]},wC=_g.object({cvmId:_g.string().optional(),interactive:_g.boolean().default(!1)});async function N3(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await L(),n=f.startSpinner("Starting CVM"),o=t.cvmId,s=await In(()=>j0(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:
242
+ ${ze}/dashboard/cvms/app_${a.app_id}`),0}catch(r){return f.error("Failed to start CVM"),f.logDetailedError(r),1}}var CC=A({path:["cvms","start"],meta:vC,schema:wC,handler:N3});import{z as Ig}from"zod";var SC={name:"stop",description:"Stop a running CVM",stability:"stable",arguments:[we],options:[be],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=Ig.object({cvmId:Ig.string().optional(),interactive:Ig.boolean().default(!1)});async function L3(e,t){if(!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await L(),n=f.startSpinner("Stopping CVM"),o=t.cvmId,s=await In(()=>H0(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:
243
+ ${ze}/dashboard/cvms/app_${a.app_id}`),0}catch(r){return f.error("Failed to stop CVM"),f.logDetailedError(r),1}}var EC=A({path:["cvms","stop"],meta:SC,schema:kC,handler:L3});import D3 from"fs";import{z as ui}from"zod";var _C={name:"upgrade",description:'Upgrade a CVM to a new version (use "phala deploy" instead)',stability:"deprecated",arguments:[we],options:[be,{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"}]},IC=ui.object({cvmId:ui.string().optional(),interactive:ui.boolean().default(!1),compose:ui.string().optional(),envFile:ui.string().optional(),debug:ui.boolean().default(!1)});async function U3(e){if(e.compose)return e.compose;let r=mi(["docker-compose.yml","docker-compose.yaml"],"Detected docker compose file: {path}");return En("Enter the path to your Docker Compose file:",r,"file")}async function z3(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.
244
+ `),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;let r=await L(),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 U3(e),c="";if(i)try{c=D3.readFileSync(i,"utf8")}catch(g){return f.error(`Failed to read Docker Compose file: ${g instanceof Error?g.message:String(g)}`),1}await os(),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=Mc([],e.envFile);m=await(0,pr.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 Ew(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:
245
+ ${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 PC=A({path:["cvms","upgrade"],meta:_C,schema:IC,handler:z3});var Pg={group:R6,commands:[B6,G6,W6,Y6,eC,nC,aC,uC,fC,hC,xC,CC,EC,PC]};import{z as pe}from"zod";var AC={name:"deploy",category:"deploy",description:"Deploy new CVM or update existing one",stability:"stable",arguments:[],options:[ms,qg,{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: ${ns}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"}]},TC=pe.object({compose:pe.string().optional(),json:pe.boolean().default(!1),debug:pe.boolean().default(!1),apiToken:pe.string().optional(),name:pe.string().optional(),instanceType:pe.string().optional(),vcpu:pe.string().optional(),memory:pe.string().optional(),diskSize:pe.string().optional(),image:pe.string().optional(),region:pe.string().optional(),nodeId:pe.string().optional(),env:pe.array(pe.string()).optional(),envFile:pe.string().optional(),interactive:pe.boolean().default(!1),kms:pe.enum(["phala","ethereum","eth","base"]).default("phala"),kmsId:pe.string().optional(),cvmId:pe.string().optional(),customAppId:pe.string().optional(),nonce:pe.string().optional(),preLaunchScript:pe.string().optional(),privateKey:pe.string().optional(),rpcUrl:pe.string().optional(),wait:pe.boolean().default(!1),sshPubkey:pe.string().optional(),devOs:pe.boolean().optional(),publicLogs:pe.boolean().optional(),publicSysinfo:pe.boolean().optional(),listed:pe.boolean().optional()});import An from"path";import NC from"os";function O3(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 $C(e){let t={files:[],keyValues:[]};for(let r of e)if(O3(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 RC(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 MC(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 FC(e){let t=MC(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 BC(e){let t=MC(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 Xl from"dedent";import fr from"fs-extra";import Ql from"inquirer";function j3(e,t){if(e instanceof xc)return t.json?{success:!1,error_code:e.errorCode,message:e.message,details:e.structuredDetails,suggestions:e.suggestions,links:e.links}:xl(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=`
244
246
  Error [${s}]: ${a}
245
247
  `;if(i&&i.length>0){u+=`
246
248
  Details:
@@ -254,7 +256,7 @@ Learn more:
254
256
  `;for(let p of m)u+=` - ${p.label}: ${p.url}
255
257
  `}return u}}let r=e instanceof Error?e.message:String(e||"Unknown error");return t.json?{success:!1,error:r}:`
256
258
  Error: ${r}
257
- `}var DC="2025-10-28";async function H3({apiToken:e,interactive:t}){let r=en(void 0,{apiToken:e});if(r.apiKey)return cr({apiKey:r.apiKey,baseURL:r.baseURL,version:DC});if(t){let{apiToken:n}=await Yl.prompt([{type:"password",name:"apiToken",message:"Enter your API token:",validate:o=>o.trim()?!0:"API token is required"}]);return cr({apiKey:n,baseURL:r.baseURL,version:DC})}throw new Error("API token is required. Please run 'phala login' or set PHALA_CLOUD_API_KEY environment variable")}async function V3({dockerComposePath:e,interactive:t}){if(!e)if(t){let n=mi(["docker-compose.yml","docker-compose.yaml"],"Detected docker compose file: {path}");e=await kn("Enter the path to your Docker Compose file:",n,"file")}else throw new Error(Zl(`
259
+ `}var LC="2025-10-28";async function H3({apiToken:e,interactive:t}){let r=rn(void 0,{apiToken:e});if(r.apiKey)return ur({apiKey:r.apiKey,baseURL:r.baseURL,version:LC});if(t){let{apiToken:n}=await Ql.prompt([{type:"password",name:"apiToken",message:"Enter your API token:",validate:o=>o.trim()?!0:"API token is required"}]);return ur({apiKey:n,baseURL:r.baseURL,version:LC})}throw new Error("API token is required. Please run 'phala login' or set PHALA_CLOUD_API_KEY environment variable")}async function V3({dockerComposePath:e,interactive:t}){if(!e)if(t){let n=mi(["docker-compose.yml","docker-compose.yaml"],"Detected docker compose file: {path}");e=await En("Enter the path to your Docker Compose file:",n,"file")}else throw new Error(Xl(`
258
260
  Docker Compose file is required.
259
261
 
260
262
  Usage examples:
@@ -270,7 +272,7 @@ Error: ${r}
270
272
  --rpc-url <url> RPC URL for the blockchain
271
273
 
272
274
  Run with --interactive for guided setup
273
- `));if(!rn.existsSync(e))throw new Error(`Docker compose file not found: ${e}`);return rn.readFileSync(e,"utf8")}var G3=async(e,t)=>{let r=e.privateKey||process.env.PRIVATE_KEY;if(t&&!e.privateKey)if(e.interactive)r=(await Yl.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 UC(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 q3=async e=>{let t=e.name;if(e.name){if(!ri(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=An.basename(process.cwd()),n=qv(r);return e.interactive?t=(await Yl.prompt([{type:"input",name:"name",message:"Enter a name for the CVM:",default:n,validate:s=>s.trim()?ri(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},K3=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=rn.readFileSync(e.envFile,{encoding:"utf8"});t.push(...wl(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=RC(e.env);for(let n of r.files){let o=An.resolve(process.cwd(),n);if(!rn.existsSync(o))throw new Error(`Environment file not found: ${n}`);try{let s=rn.readFileSync(o,{encoding:"utf8"});t.push(...wl(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 Yl.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=An.resolve(process.cwd(),n);return rn.existsSync(o)?!0:`File not found at ${o}`}}]);if(r.trim()){let n=An.resolve(process.cwd(),r.trim()),o=rn.readFileSync(n,{encoding:"utf8"});t.push(...wl(o))}}if(t.length!==0)return MC(t)},W3=async e=>{let t=e.sshPubkey;if(!(e.devOs===!1&&!e.sshPubkey)){if(t){if(t.startsWith("~")&&(t=An.join(LC.homedir(),t.slice(1))),!rn.existsSync(t))throw new Error(`SSH public key file not found: ${t}`)}else{let r=LC.homedir(),n=[An.join(r,".ssh","id_rsa.pub"),An.join(r,".ssh","id_ed25519.pub"),An.join(r,".ssh","id_ecdsa.pub"),An.join(r,".ssh","id_dsa.pub")];for(let o of n)if(rn.existsSync(o)){t=o;break}if(!t){if(e.devOs)throw new Error(Zl(`
275
+ `));if(!fr.existsSync(e))throw new Error(`Docker compose file not found: ${e}`);return fr.readFileSync(e,"utf8")}var G3=async(e,t)=>{let r=e.privateKey||process.env.PRIVATE_KEY;if(t&&!e.privateKey)if(e.interactive)r=(await Ql.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 DC(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 q3=async e=>{let t=e.name;if(e.name){if(!ni(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=An.basename(process.cwd()),n=jv(r);return e.interactive?t=(await Ql.prompt([{type:"input",name:"name",message:"Enter a name for the CVM:",default:n,validate:s=>s.trim()?ni(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},K3=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=fr.readFileSync(e.envFile,{encoding:"utf8"});t.push(...Sl(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=$C(e.env);for(let n of r.files){let o=An.resolve(process.cwd(),n);if(!fr.existsSync(o))throw new Error(`Environment file not found: ${n}`);try{let s=fr.readFileSync(o,{encoding:"utf8"});t.push(...Sl(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 Ql.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=An.resolve(process.cwd(),n);return fr.existsSync(o)?!0:`File not found at ${o}`}}]);if(r.trim()){let n=An.resolve(process.cwd(),r.trim()),o=fr.readFileSync(n,{encoding:"utf8"});t.push(...Sl(o))}}if(t.length!==0)return RC(t)},W3=async e=>{let t=e.sshPubkey;if(!(e.devOs===!1&&!e.sshPubkey)){if(t){if(t.startsWith("~")&&(t=An.join(NC.homedir(),t.slice(1))),!fr.existsSync(t))throw new Error(`SSH public key file not found: ${t}`)}else{let r=NC.homedir(),n=[An.join(r,".ssh","id_rsa.pub"),An.join(r,".ssh","id_ed25519.pub"),An.join(r,".ssh","id_ecdsa.pub"),An.join(r,".ssh","id_dsa.pub")];for(let o of n)if(fr.existsSync(o)){t=o;break}if(!t){if(e.devOs)throw new Error(Xl(`
274
276
  SSH public key is required for dev images but not found.
275
277
 
276
278
  Searched for:
@@ -282,37 +284,37 @@ Error: ${r}
282
284
  Please either:
283
285
  1. Create an SSH key pair: ssh-keygen -t rsa
284
286
  2. Specify a different key file: --ssh-pubkey <path>
285
- `));return}}try{let r=rn.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 J3=(e,t)=>({publicLogs:e.publicLogs??t?.public_logs??!0,publicSysinfo:e.publicSysinfo??t?.public_sysinfo??!0,listed:e.listed??t?.listed??!1}),Z3=(e,t,r,n,o,s)=>{let a={name:t,compose_file:{name:"",docker_compose_file:r,allowed_envs:n?.map(u=>u.key)||[],public_logs:o.publicLogs,public_sysinfo:o.publicSysinfo},listed:o.listed},{kmsType:i,deprecatedKmsId:c}=s??UC(e);e.instanceType&&(a.instance_type=e.instanceType),e.vcpu&&(a.vcpu=Number(e.vcpu)),e.memory&&(a.memory=NC(e.memory)),e.diskSize&&(a.disk_size=BC(e.diskSize)),e.nodeId&&(a.teepod_id=Number(e.nodeId)),e.region&&(a.region=e.region),e.image&&(a.image=e.image),a.kms=i,c&&(a.kms_id=c);let m=i==="ETHEREUM"||i==="BASE";if(e.devOs===!0?a.prefer_dev=!0:(e.devOs===!1||m)&&(a.prefer_dev=!1),e.customAppId&&(a.app_id=e.customAppId,i==="PHALA")){if(!e.nonce)throw new Error("--nonce is required when using --custom-app-id with PHALA KMS.");let u=Number(e.nonce);if(Number.isNaN(u))throw new Error(`Invalid nonce value: "${e.nonce}". Nonce must be a valid number.`);a.nonce=u}if(e.nonce&&!e.customAppId)throw new Error("--nonce requires --custom-app-id to be specified.");return a},Y3=async(e,t,r,n,o,s,a)=>{let i=UC(e),c=await q3(e),m=await W3(e),u=[...r||[]];m&&u.push({key:"DSTACK_AUTHORIZED_KEYS",value:m});let p=J3(e,a),l=Z3(e,c,t,u,p,i);o.write(`Provisioning CVM ${c}...
286
- `);let d=await U0(n,l);if(!d.success){let v=j3(d.error,e);throw f.error("Error in provisioning CVM:",v),d.error}let g=d.data,h,y=g.kms_info;if(!g.app_id&&!!y?.chain_id&&!!y?.kms_contract_address){if(!y?.chain_id||!y?.chain)throw new Error("KMS chain info is missing from provision response. Please retry or contact support.");if(!y?.kms_contract_address)throw new Error("KMS contract address is missing from provision response. Please retry or contact support.");let v=await G3(e,y.chain_id),S=await ow({chain:y.chain,rpcUrl:e.rpcUrl,kmsContractAddress:y.kms_contract_address,privateKey:v,deviceId:g.device_id,composeHash:g.compose_hash});if(!S.success){f.logDetailedError(S,"Deploy App Auth");let N=typeof S=="object"&&S!==null?JSON.stringify(S):String(S);throw new Error(`Deployment contract failed: ${N}`)}let k=S.data,P=y.slug||y.id;if(!P)throw new Error("KMS reference (slug or id) is missing from provision response");let _=await xl(n,{app_id:k.appId,kms:P});if(!_.success)throw f.logDetailedError(_.error,"Get App Env Encrypt PubKey"),new Error(`Failed to get app env encrypt pubkey: ${_.error.message}`);let R=_.data,F=await(0,mr.encryptEnvVars)(u,R.public_key);h=await bl(n,{app_id:k.appId,encrypted_env:F,compose_hash:g.compose_hash,kms_id:P,contract_address:k.appAuthAddress,deployer_address:k.deployer})}else{let v=u&&u.length>0?await(0,mr.encryptEnvVars)(u,g.app_env_encrypt_pubkey):void 0;h=await bl(n,{app_id:g.app_id,encrypted_env:v,compose_hash:g.compose_hash,kms_id:i.deprecatedKmsId})}if(!h.success)throw f.logDetailedError(h.error,"Commit CVM Provision"),new Error(`Failed to commit CVM provision: ${h.error.message}`);let b=h.data;if(e?.json!==!1)o.write(`${JSON.stringify({success:!0,vm_uuid:b.vm_uuid,name:b.name,app_id:b.app_id,dashboard_url:`${Oe}/dashboard/cvms/${b.vm_uuid}`},null,2)}
287
- `);else{let v=Zl`
287
+ `));return}}try{let r=fr.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 J3=(e,t)=>({publicLogs:e.publicLogs??t?.public_logs??!0,publicSysinfo:e.publicSysinfo??t?.public_sysinfo??!0,listed:e.listed??t?.listed??!1}),Z3=(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??DC(e);e.instanceType&&(c.instance_type=e.instanceType),e.vcpu&&(c.vcpu=Number(e.vcpu)),e.memory&&(c.memory=FC(e.memory)),e.diskSize&&(c.disk_size=BC(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},Y3=async(e,t,r,n,o,s,a,i)=>{let c=DC(e),m=await q3(e),u=await W3(e),p=[...r||[]];u&&p.push({key:"DSTACK_AUTHORIZED_KEYS",value:u});let l=J3(e,a),d=Z3(e,m,t,p,l,c,i);o.write(`Provisioning CVM ${m}...
288
+ `);let g=await U0(n,d);if(!g.success){let S=j3(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 G3(e,b.chain_id),E=await tw({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 I=E.data,_=b.slug||b.id;if(!_)throw new Error("KMS reference (slug or id) is missing from provision response");let R=await wl(n,{app_id:I.appId,kms:_});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 F=R.data,B=await(0,pr.encryptEnvVars)(p,F.public_key);y=await vl(n,{app_id:I.appId,encrypted_env:B,compose_hash:h.compose_hash,kms_id:_,contract_address:I.appAuthAddress,deployer_address:I.deployer})}else{let S=p&&p.length>0?await(0,pr.encryptEnvVars)(p,h.app_env_encrypt_pubkey):void 0;y=await vl(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)}
289
+ `);else{let S=Xl`
288
290
  CVM created successfully!
289
291
 
290
- CVM ID: ${b.vm_uuid}
291
- Name: ${b.name}
292
- App ID: ${b.app_id}
293
- Dashboard URL: ${Oe}/dashboard/cvms/${b.vm_uuid}
294
- `;o.write(`${v}
295
- `)}},X3=async(e,t,r,n,o)=>{let[s,a]=await Promise.all([Be(n,{id:e.uuid}),vc(n,{id:e.uuid})]);if(!s.success)throw f.logDetailedError(s.error,"Get CVM Info"),new Error(`Failed to get cvm info: ${s.error.message}`);if(!a.success)throw f.logDetailedError(a.error,"Get CVM Compose File"),new Error(`Failed to get cvm compose file: ${a.error.message}`);let i=s.data,c=a.data;c.docker_compose_file=t,r&&r.length>0&&(c.allowed_envs=r.map(h=>h.key)),f.info(`Preparing update for CVM ${e.uuid}...`);let m=await O0(n,{id:e.uuid,app_compose:c,update_env_vars:!!(r&&r.length>0)});if(!m.success)throw f.logDetailedError(m.error,"Provision CVM Compose File Update"),new Error(`Failed to provision cvm compose file: ${m.error.message}`);let u=m.data,p;if(i.kms_info?.chain_id){if(!e.privateKey)throw new Error("Private key is required for contract DstackApp");let h=await aw({chain:i.kms_info?.chain,rpcUrl:e.rpcUrl,appId:i.app_id,composeHash:u.compose_hash,privateKey:e.privateKey});if(!h.success){f.logDetailedError(h,"Add Compose Hash");let y=typeof h=="object"&&h!==null?JSON.stringify(h):String(h);throw new Error(`Failed to add compose hash: ${y}`)}if(r&&r.length>0){let y=i.kms_info?.slug||i.kms_info?.id;if(!y)throw new Error("KMS slug or id is required for decentralized KMS");let x=await xl(n,{app_id:i.app_id,kms:y});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 b=x.data;p=await(0,mr.encryptEnvVars)(r,b.public_key)}}else if(r&&r.length>0){if(!i.encrypted_env_pubkey)throw new Error("CVM encrypted_env_pubkey is required for centralized KMS");p=await(0,mr.encryptEnvVars)(r,i.encrypted_env_pubkey)}let l={id:e.uuid,compose_hash:u.compose_hash,encrypted_env:p,env_keys:r?.length?r.map(h=>h.key):void 0,update_env_vars:r?.length?!0:void 0},d=await z0(n,l);if(!d.success)throw f.logDetailedError(d.error,"Commit CVM Compose File Update"),new Error(`Failed to commit CVM compose file update: ${d.error.message}`);let g=e.publicLogs!==void 0||e.publicSysinfo!==void 0;if(e.wait||g){f.info("Waiting for update to complete...");try{await Jl(e.uuid,3e5)}catch(h){throw f.logDetailedError(h,"Wait for CVM Ready"),new Error(`Wait failed: ${h instanceof Error?h.message:String(h)}`)}}if(g){let h=await K0(n,{id:e.uuid,public_logs:e.publicLogs??i.public_logs,public_sysinfo:e.publicSysinfo??i.public_sysinfo});h.success?f.info("CVM visibility settings updated"):"status"in h.error&&h.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: ${h.error.message}`)}e?.json!==!1?o.write(`${JSON.stringify({success:!0,vm_uuid:e.uuid,name:i.name,app_id:i.app_id,dashboard_url:`${Oe}/dashboard/cvms/${e.uuid}`},null,2)}
292
+ CVM ID: ${v.vm_uuid}
293
+ Name: ${v.name}
294
+ App ID: ${v.app_id}
295
+ Dashboard URL: ${ze}/dashboard/cvms/${v.vm_uuid}
296
+ `;o.write(`${S}
297
+ `)}},X3=async(e,t,r,n,o,s)=>{let[a,i]=await Promise.all([$e(n,{id:e.uuid}),wc(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 z0(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 nw({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 wl(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,pr.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,pr.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 O0(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 Yl(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 K0(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)}
296
298
  `):o.write(`CVM compose file updated successfully!
297
- `)};async function OC(e,t){ie(e.json||!1);try{let r=e.compose||t.projectConfig.compose_file,n=await H3({apiToken:e.apiToken,interactive:e.interactive}),o=await V3({dockerComposePath:r,interactive:e.interactive}),s={...e,env:e.env&&e.env.length>0?e.env:t.projectConfig.env_file?[t.projectConfig.env_file]:void 0},a=await K3(s);e.debug&&(console.log("[DEBUG] context.cvmId:",JSON.stringify(t.cvmId)),console.log("[DEBUG] input.cvmId:",e.cvmId));let i=t.cvmId?.id||t.cvmId?.uuid||t.cvmId?.app_id||t.cvmId?.instance_id;e.debug&&(console.log("[DEBUG] resolved uuid:",i),console.log("[DEBUG] isUpdate:",!!i)),!!i?await X3({...e,uuid:i},o,a,n,t.stdout):await Y3(e,o,a??[],n,t.stdout,t.stderr,t.projectConfig)}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)}
298
- `):t.stderr.write(`${Zl`${r instanceof Error?r.message:String(r)}`}
299
- `),r}}async function Q3(e,t){try{return await OC(e,t),0}catch{return 1}}var zC=A({path:["deploy"],meta:TC,schema:$C,handler:Q3});import{z as E4}from"zod";var jC={path:["docker"],meta:{name:"docker",description:"Docker Hub login and image management",stability:"deprecated"}};import p4 from"fs";import XC from"path";import QC from"inquirer";import{exec as s4,spawn as a4}from"child_process";import Tn from"fs";import KC from"os";import Lc from"path";import{promisify as i4}from"util";import{execa as c4}from"execa";import m4 from"handlebars";import{INVALID as e4,ParseStatus as t4,ZodIssueCode as pi,ZodParsedType as HC,ZodType as r4,addIssueToContext as li,z as VC}from"zod";var n4="ZodDecimal",o4=/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/,GC=class e extends r4{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)!==HC.number){let a=this._getOrReturnCtx(r);return li(a,{code:pi.invalid_type,expected:HC.number,received:a.parsedType}),e4}let o,s=new t4;for(let a of this._def.checks)if(a.kind==="precision"){let i=r.data.toString().match(o4);Math.max((i[1]?i[1].length:0)-(i[2]?Number.parseInt(i[2],10):0),0)>a.value&&(o=this._getOrReturnCtx(r,o),li(o,{code:pi.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),li(o,{code:pi.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),li(o,{code:pi.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),li(o,{code:pi.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),li(o,{code:pi.not_finite,message:a.message}),s.dirty()));return{status:s.value,value:r.data}}static{this.create=r=>new e({checks:[],typeName:n4,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)}},qC=VC.object({template:VC.string().min(1,"Template cannot be empty")});var Dc=i4(s4),WC=".phala-cloud/logs",u4=".phala-cloud/compose",JC=10,Bt=class{constructor(t,r,n){this.image=t,this.username=r||"",this.registry=n||""}ensureLogsDir(){let t=Lc.resolve(WC);Tn.existsSync(t)||Tn.mkdirSync(t,{recursive:!0})}getLogFilePath(t,r){let n=new Date().toISOString().replace(/[:.]/g,"-");return Lc.resolve(WC,`${r||this.image}-${t}-${n}.log`)}getSystemArchitecture(){let t=KC.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=a4(t,r);this.ensureLogsDir();let c=this.getLogFilePath(n,o),m=Tn.createWriteStream(c,{flags:"a"}),u=[],p=(l,d=!1)=>{let g=l.toString().split(`
300
- `);m.write(l);for(let h of g)if(h.trim()){u.push(h),u.length>JC&&u.shift(),console.clear(),console.log(`Latest ${JC} 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(`
301
- 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}`);qt(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 En())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 c4("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=KC.homedir(),r=Lc.join(t,".docker","config.json");if(!Tn.existsSync(r))return!1;let n=JSON.parse(Tn.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"?c6:m6,s=qC.parse({template:o}),a=Lc.resolve(u4);Tn.existsSync(a)||(f.info(`Creating directory: ${a}`),Tn.mkdirSync(a,{recursive:!0}));let i=[];r&&(i=Tn.readFileSync(r,"utf-8").split(`
302
- `).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=m4.compile(s.template,{noEscape:!0})({imageName:c,envVars:i.map(l=>l.replace(/=.*/,`=\${${l.split("=")[0]}}`))}),p=Lc.join(a,`${t.replace(/.*\/+([\w-]+):.*$/g,"$1")}-tee-compose.yaml`);return Tn.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}`);qt(t);let o=["-f",t,"up","-d"];return r&&(qt(r),o.splice(2,0,"--env-file",r)),await Dc(`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 Dc(`docker pull ${t}`),f.info("Starting simulator in background...");let{stdout:n}=await Dc(`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}`),bg(`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 Dc("docker stop tee-simulator"),await rs(),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 Dc('docker images --format "{{.Repository}}:{{.Tag}}"'),n=(await En())?.username;return t.split(`
303
- `).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 Xl}from"zod";var ZC={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"}]},YC=Xl.object({image:Xl.string().optional(),tag:Xl.string().optional(),file:Xl.string().default("Dockerfile")});async function l4(e,t){try{let r=await En();if(!r)return f.error('Docker information not found. Please login first with "phala docker login"'),1;let n=e.image;n||(n=(await QC.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 QC.prompt([{type:"input",name:"tag",message:"Enter the Docker image tag:",default:"latest",validate:m=>m.trim()?!0:"Tag is required"}])).tag);let s=XC.resolve(process.cwd(),e.file);if(!p4.existsSync(s)){f.info(`Default Dockerfile not found at ${s}`);let c=await kn("Enter the path to your Dockerfile:","Dockerfile","file");s=XC.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 e5=A({path:["docker","build"],meta:ZC,schema:YC,handler:l4});import Oc from"fs";import Ql from"path";import zc from"inquirer";import{z as Uc}from"zod";var t5={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"}]},r5=Uc.object({image:Uc.string().optional(),envFile:Uc.string().optional(),output:Uc.string().optional(),template:Uc.string().optional()});async function f4(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 zc.prompt([{type:"list",name:"selectedImage",message:"Select an image to use in the compose file:",choices:r}]);return n}async function d4(e){if(e)return qt(e),e;let t=Ql.join(process.cwd(),".env");if(Oc.existsSync(t)){let{useDefault:n}=await zc.prompt([{type:"confirm",name:"useDefault",message:"Use .env file in current directory?",default:!0}]);if(n)return t}let{envPath:r}=await zc.prompt([{type:"input",name:"envPath",message:"Enter path to environment variables file:",validate:n=>{try{return qt(n),!0}catch{return`File not found: ${n}`}}}]);return r}async function g4(e){let t=e??Ql.join(process.cwd(),"docker-compose.yml");if(Oc.existsSync(t)){let{confirmOverwrite:n}=await zc.prompt([{type:"confirm",name:"confirmOverwrite",message:`File ${t} already exists. Overwrite?`,default:!1}]);if(!n){let{customPath:o}=await zc.prompt([{type:"input",name:"customPath",message:"Enter alternative output path:",default:Ql.join(process.cwd(),"docker-generated-compose.yml")}]);t=o}}let r=Ql.dirname(t);return Oc.existsSync(r)||(f.info(`Creating directory: ${r}`),Oc.mkdirSync(r,{recursive:!0})),t}async function h4(e,t){try{let r=await En();if(!r||!r.username)throw new Error('Docker Hub username not found. Please login first with "phala docker login"');let n=await f4(e.image),o=await d4(e.envFile),s=await g4(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&&Oc.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 n5=A({path:["docker","generate"],meta:t5,schema:r5,handler:h4});import a5 from"prompts";import{z as ef}from"zod";var o5={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"}]},s5=ef.object({username:ef.string().optional(),password:ef.string().optional(),registry:ef.string().optional()});async function y4(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 a5({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 Q0({username:r,registry:o||null}),0;if(!n){let c=await a5({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 Q0({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 i5=A({path:["docker","login"],meta:o5,schema:s5,handler:y4});import b4 from"inquirer";import{z as c5}from"zod";var m5={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"}]},u5=c5.object({image:c5.string().optional()});async function x4(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 b4.prompt([{type:"list",name:"selectedImage",message:"Select an image to push:",choices:r}]);return n}async function v4(e,t){try{let r=await En();if(!r)throw new Error('Docker information not found. Please login first with "phala docker login"');let n=await x4(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 p5=A({path:["docker","push"],meta:m5,schema:u5,handler:v4});import d5 from"fs";import g5 from"path";import rf from"inquirer";import{z as tf}from"zod";var l5={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"}]},f5=tf.object({compose:tf.string().optional(),envFile:tf.string().optional(),skipEnv:tf.boolean().default(!0)});async function w4(e){if(e)return qt(e),e;let t=g5.join(process.cwd(),"docker-compose.yml");if(d5.existsSync(t)){let{useDefault:n}=await rf.prompt([{type:"confirm",name:"useDefault",message:"Use docker-compose.yml in current directory?",default:!0}]);if(n)return t}let{composePath:r}=await rf.prompt([{type:"input",name:"composePath",message:"Enter path to docker-compose.yml file:",validate:n=>{try{return qt(n),!0}catch{return"File not found"}}}]);return r}async function C4(e,t){if(t)return e;if(e)return qt(e),e;let r=g5.join(process.cwd(),".env");if(d5.existsSync(r)){let{useDefault:o}=await rf.prompt([{type:"confirm",name:"useDefault",message:"Use .env file in current directory?",default:!0}]);if(o)return r}let{envPath:n}=await rf.prompt([{type:"input",name:"envPath",message:"Enter path to environment variables file:",validate:o=>{try{return qt(o),!0}catch{return`File not found: ${o}`}}}]);return n}async function S4(e,t){try{let r=await w4(e.compose),n=await C4(e.envFile,e.skipEnv),o=new Bt("");return n?(f.info(`Validating env file: ${n}`),qt(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 h5=A({path:["docker","run"],meta:l5,schema:f5,handler:S4});var k4={name:"docker",description:"Docker Hub login and image management",stability:"deprecated"},_4=E4.object({});async function I4(e,t){return t.stdout.write(`Available docker subcommands: login, build, push, generate, run. Use 'phala docker <command> --help' for details.
304
- `),0}var P4=A({path:["docker"],meta:k4,schema:_4,handler:I4}),Pg={group:jC,commands:[P4,i5,e5,p5,n5,h5]};import $g from"path";import S5 from"fs-extra";import nn from"chalk";import Tg from"inquirer";import fi from"chalk";import A4 from"open";import T4 from"ora";import $4 from"prompts";import{z as os}from"zod";var y5={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"}]},b5=os.object({apiKey:os.string().min(1,"API key cannot be empty").optional(),manual:os.boolean().optional(),noOpen:os.boolean().optional(),profile:os.string().min(1).optional(),printToken:os.boolean().optional(),url:os.string().url().optional()});function x5(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 vo(e,t=""){e.write(`${t}
305
- `)}async function nf(e){let t=await Al(e.apiKey,{baseURL:e.baseURL}),r=await Ft(t);if(!r.success||!r.data?.user.username)throw new Error("Invalid API key");return r.data}async function R4(e){let t,r=await $4({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 nf({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 nf({apiKey:r.apiKey,baseURL:e.baseURL})),{apiKey:r.apiKey,user:t}}async function M4(e,t){let r=cr({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(vo(u),vo(u,fi.bold("To authenticate, visit:")),vo(u,fi.cyan(a)),vo(u),vo(u,`${fi.bold("And enter code:")} ${fi.yellow(s)}`),vo(u),!t.noOpen)try{await A4(a),vo(u,"Opening browser automatically...")}catch{vo(u,"Could not open browser automatically. Please visit the URL above.")}let p=T4("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 bc)throw p.stop(),new Error(yl(d));if(d instanceof hl){let g=x5(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 of(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||Qr,n,o;if(e.apiKey)n=e.apiKey,o=await nf({apiKey:n,baseURL:r});else if(e.manual){let c=await R4({baseURL:r});n=c.apiKey,o=c.user}else n=await M4(t,{noOpen:e.noOpen,printToken:e.printToken,baseURL:r}),o=await nf({apiKey:n,baseURL:r});if(!o)throw new Error("Failed to validate API key");if(e.printToken)return t.stdout.write(`${n}
306
- `),0;let s=o.workspace.name||"default",a=o.workspace.slug||void 0,i=e.profile||a||"default";return ni({profileName:i,token:n,apiPrefix:r,workspaceName:s,workspaceSlug:a,user:{username:o.user.username,email:o.user.email},setCurrent:!0}),t.stdout.write(fi.green(`Welcome ${o.user.username}! Credentials saved successfully (profile: ${i})
299
+ `)};async function UC(e,t){se(e.json||!1);try{let r=e.compose||t.projectConfig.compose_file,n=await H3({apiToken:e.apiToken,interactive:e.interactive}),o=await V3({dockerComposePath:r,interactive:e.interactive}),s;if(e.preLaunchScript){if(!fr.existsSync(e.preLaunchScript))throw new Error(`Pre-launch script file not found: ${e.preLaunchScript}`);s=fr.readFileSync(e.preLaunchScript,"utf8")}let a=Buffer.byteLength(o,"utf8"),i=s?Buffer.byteLength(s,"utf8"):0,c=a+i;if(c>bc){let d=bc/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 K3(m);e.debug&&(console.log("[DEBUG] context.cvmId:",JSON.stringify(t.cvmId)),console.log("[DEBUG] input.cvmId:",e.cvmId));let p=t.cvmId?ee.parse(t.cvmId).cvmId:void 0;e.debug&&(console.log("[DEBUG] resolved uuid:",p),console.log("[DEBUG] isUpdate:",!!p)),!!p?await X3({...e,uuid:p},o,u,n,t.stdout,s):await Y3(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)}
300
+ `):t.stderr.write(`${Xl`${r instanceof Error?r.message:String(r)}`}
301
+ `),r}}async function Q3(e,t){try{return await UC(e,t),0}catch{return 1}}var zC=A({path:["deploy"],meta:AC,schema:TC,handler:Q3});import{z as k4}from"zod";var OC={path:["docker"],meta:{name:"docker",description:"Docker Hub login and image management",stability:"deprecated"}};import p4 from"fs";import YC from"path";import XC from"inquirer";import{exec as s4,spawn as a4}from"child_process";import Tn from"fs";import qC from"os";import Uc from"path";import{promisify as i4}from"util";import{execa as c4}from"execa";import m4 from"handlebars";import{INVALID as e4,ParseStatus as t4,ZodIssueCode as pi,ZodParsedType as jC,ZodType as r4,addIssueToContext as li,z as HC}from"zod";var n4="ZodDecimal",o4=/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/,VC=class e extends r4{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)!==jC.number){let a=this._getOrReturnCtx(r);return li(a,{code:pi.invalid_type,expected:jC.number,received:a.parsedType}),e4}let o,s=new t4;for(let a of this._def.checks)if(a.kind==="precision"){let i=r.data.toString().match(o4);Math.max((i[1]?i[1].length:0)-(i[2]?Number.parseInt(i[2],10):0),0)>a.value&&(o=this._getOrReturnCtx(r,o),li(o,{code:pi.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),li(o,{code:pi.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),li(o,{code:pi.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),li(o,{code:pi.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),li(o,{code:pi.not_finite,message:a.message}),s.dirty()));return{status:s.value,value:r.data}}static{this.create=r=>new e({checks:[],typeName:n4,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)}},GC=HC.object({template:HC.string().min(1,"Template cannot be empty")});var zc=i4(s4),KC=".phala-cloud/logs",u4=".phala-cloud/compose",WC=10,Nt=class{constructor(t,r,n){this.image=t,this.username=r||"",this.registry=n||""}ensureLogsDir(){let t=Uc.resolve(KC);Tn.existsSync(t)||Tn.mkdirSync(t,{recursive:!0})}getLogFilePath(t,r){let n=new Date().toISOString().replace(/[:.]/g,"-");return Uc.resolve(KC,`${r||this.image}-${t}-${n}.log`)}getSystemArchitecture(){let t=qC.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=a4(t,r);this.ensureLogsDir();let c=this.getLogFilePath(n,o),m=Tn.createWriteStream(c,{flags:"a"}),u=[],p=(l,d=!1)=>{let g=l.toString().split(`
302
+ `);m.write(l);for(let h of g)if(h.trim()){u.push(h),u.length>WC&&u.shift(),console.clear(),console.log(`Latest ${WC} 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(`
303
+ 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}`);qt(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 kn())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 c4("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=qC.homedir(),r=Uc.join(t,".docker","config.json");if(!Tn.existsSync(r))return!1;let n=JSON.parse(Tn.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"?i6:c6,s=GC.parse({template:o}),a=Uc.resolve(u4);Tn.existsSync(a)||(f.info(`Creating directory: ${a}`),Tn.mkdirSync(a,{recursive:!0}));let i=[];r&&(i=Tn.readFileSync(r,"utf-8").split(`
304
+ `).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=m4.compile(s.template,{noEscape:!0})({imageName:c,envVars:i.map(l=>l.replace(/=.*/,`=\${${l.split("=")[0]}}`))}),p=Uc.join(a,`${t.replace(/.*\/+([\w-]+):.*$/g,"$1")}-tee-compose.yaml`);return Tn.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}`);qt(t);let o=["-f",t,"up","-d"];return r&&(qt(r),o.splice(2,0,"--env-file",r)),await zc(`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 zc(`docker pull ${t}`),f.info("Starting simulator in background...");let{stdout:n}=await zc(`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}`),xg(`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 zc("docker stop tee-simulator"),await os(),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 zc('docker images --format "{{.Repository}}:{{.Tag}}"'),n=(await kn())?.username;return t.split(`
305
+ `).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 ef}from"zod";var JC={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"}]},ZC=ef.object({image:ef.string().optional(),tag:ef.string().optional(),file:ef.string().default("Dockerfile")});async function l4(e,t){try{let r=await kn();if(!r)return f.error('Docker information not found. Please login first with "phala docker login"'),1;let n=e.image;n||(n=(await XC.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 XC.prompt([{type:"input",name:"tag",message:"Enter the Docker image tag:",default:"latest",validate:m=>m.trim()?!0:"Tag is required"}])).tag);let s=YC.resolve(process.cwd(),e.file);if(!p4.existsSync(s)){f.info(`Default Dockerfile not found at ${s}`);let c=await En("Enter the path to your Dockerfile:","Dockerfile","file");s=YC.resolve(process.cwd(),c)}return await new Nt(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 QC=A({path:["docker","build"],meta:JC,schema:ZC,handler:l4});import jc from"fs";import tf from"path";import Hc from"inquirer";import{z as Oc}from"zod";var e5={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"}]},t5=Oc.object({image:Oc.string().optional(),envFile:Oc.string().optional(),output:Oc.string().optional(),template:Oc.string().optional()});async function f4(e){if(e)return e;let t=await Nt.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 Hc.prompt([{type:"list",name:"selectedImage",message:"Select an image to use in the compose file:",choices:r}]);return n}async function d4(e){if(e)return qt(e),e;let t=tf.join(process.cwd(),".env");if(jc.existsSync(t)){let{useDefault:n}=await Hc.prompt([{type:"confirm",name:"useDefault",message:"Use .env file in current directory?",default:!0}]);if(n)return t}let{envPath:r}=await Hc.prompt([{type:"input",name:"envPath",message:"Enter path to environment variables file:",validate:n=>{try{return qt(n),!0}catch{return`File not found: ${n}`}}}]);return r}async function g4(e){let t=e??tf.join(process.cwd(),"docker-compose.yml");if(jc.existsSync(t)){let{confirmOverwrite:n}=await Hc.prompt([{type:"confirm",name:"confirmOverwrite",message:`File ${t} already exists. Overwrite?`,default:!1}]);if(!n){let{customPath:o}=await Hc.prompt([{type:"input",name:"customPath",message:"Enter alternative output path:",default:tf.join(process.cwd(),"docker-generated-compose.yml")}]);t=o}}let r=tf.dirname(t);return jc.existsSync(r)||(f.info(`Creating directory: ${r}`),jc.mkdirSync(r,{recursive:!0})),t}async function h4(e,t){try{let r=await kn();if(!r||!r.username)throw new Error('Docker Hub username not found. Please login first with "phala docker login"');let n=await f4(e.image),o=await d4(e.envFile),s=await g4(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 Nt("",r.username,r.registry).buildComposeFile(n,o,e.template);return i!==s&&jc.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 r5=A({path:["docker","generate"],meta:e5,schema:t5,handler:h4});import s5 from"prompts";import{z as rf}from"zod";var n5={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"}]},o5=rf.object({username:rf.string().optional(),password:rf.string().optional(),registry:rf.string().optional()});async function y4(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 s5({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 Nt("",r,o);if(await s.login(r))return f.success(`${r} is logged in to Docker Hub`),await Q0({username:r,registry:o||null}),0;if(!n){let c=await s5({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 Q0({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:n5,schema:o5,handler:y4});import b4 from"inquirer";import{z as i5}from"zod";var c5={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"}]},m5=i5.object({image:i5.string().optional()});async function x4(e){if(e)return e;let t=await Nt.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 b4.prompt([{type:"list",name:"selectedImage",message:"Select an image to push:",choices:r}]);return n}async function v4(e,t){try{let r=await kn();if(!r)throw new Error('Docker information not found. Please login first with "phala docker login"');let n=await x4(e.image);return await new Nt("",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 u5=A({path:["docker","push"],meta:c5,schema:m5,handler:v4});import f5 from"fs";import d5 from"path";import of from"inquirer";import{z as nf}from"zod";var p5={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"}]},l5=nf.object({compose:nf.string().optional(),envFile:nf.string().optional(),skipEnv:nf.boolean().default(!0)});async function w4(e){if(e)return qt(e),e;let t=d5.join(process.cwd(),"docker-compose.yml");if(f5.existsSync(t)){let{useDefault:n}=await of.prompt([{type:"confirm",name:"useDefault",message:"Use docker-compose.yml in current directory?",default:!0}]);if(n)return t}let{composePath:r}=await of.prompt([{type:"input",name:"composePath",message:"Enter path to docker-compose.yml file:",validate:n=>{try{return qt(n),!0}catch{return"File not found"}}}]);return r}async function C4(e,t){if(t)return e;if(e)return qt(e),e;let r=d5.join(process.cwd(),".env");if(f5.existsSync(r)){let{useDefault:o}=await of.prompt([{type:"confirm",name:"useDefault",message:"Use .env file in current directory?",default:!0}]);if(o)return r}let{envPath:n}=await of.prompt([{type:"input",name:"envPath",message:"Enter path to environment variables file:",validate:o=>{try{return qt(o),!0}catch{return`File not found: ${o}`}}}]);return n}async function S4(e,t){try{let r=await w4(e.compose),n=await C4(e.envFile,e.skipEnv),o=new Nt("");return n?(f.info(`Validating env file: ${n}`),qt(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 g5=A({path:["docker","run"],meta:p5,schema:l5,handler:S4});var E4={name:"docker",description:"Docker Hub login and image management",stability:"deprecated"},_4=k4.object({});async function I4(e,t){return t.stdout.write(`Available docker subcommands: login, build, push, generate, run. Use 'phala docker <command> --help' for details.
306
+ `),0}var P4=A({path:["docker"],meta:E4,schema:_4,handler:I4}),Ag={group:OC,commands:[P4,a5,QC,u5,r5,g5]};import Rg from"path";import C5 from"fs-extra";import on from"chalk";import $g from"inquirer";import fi from"chalk";import A4 from"open";import T4 from"ora";import $4 from"prompts";import{z as as}from"zod";var h5={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"}]},y5=as.object({apiKey:as.string().min(1,"API key cannot be empty").optional(),manual:as.boolean().optional(),noOpen:as.boolean().optional(),profile:as.string().min(1).optional(),printToken:as.boolean().optional(),url:as.string().url().optional()});function b5(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 Co(e,t=""){e.write(`${t}
307
+ `)}async function sf(e){let t=await Rl(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 R4(e){let t,r=await $4({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 sf({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 sf({apiKey:r.apiKey,baseURL:e.baseURL})),{apiKey:r.apiKey,user:t}}async function M4(e,t){let r=ur({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(Co(u),Co(u,fi.bold("To authenticate, visit:")),Co(u,fi.cyan(a)),Co(u),Co(u,`${fi.bold("And enter code:")} ${fi.yellow(s)}`),Co(u),!t.noOpen)try{await A4(a),Co(u,"Opening browser automatically...")}catch{Co(u,"Could not open browser automatically. Please visit the URL above.")}let p=T4("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 xc)throw p.stop(),new Error(xl(d));if(d instanceof bl){let g=b5(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 af(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||tn,n,o;if(e.apiKey)n=e.apiKey,o=await sf({apiKey:n,baseURL:r});else if(e.manual){let c=await R4({baseURL:r});n=c.apiKey,o=c.user}else n=await M4(t,{noOpen:e.noOpen,printToken:e.printToken,baseURL:r}),o=await sf({apiKey:n,baseURL:r});if(!o)throw new Error("Failed to validate API key");if(e.printToken)return t.stdout.write(`${n}
308
+ `),0;let s=o.workspace.name||"default",a=o.workspace.slug||void 0,i=e.profile||a||"default";return oi({profileName:i,token:n,apiPrefix:r,workspaceName:s,workspaceSlug:a,user:{username:o.user.username,email:o.user.email},setCurrent:!0}),t.stdout.write(fi.green(`Welcome ${o.user.username}! Credentials saved successfully (profile: ${i})
307
309
  `)),0}catch(r){let n=r instanceof Error?r.message:String(r);return t.stderr.write(fi.red(`Failed to authenticate: ${n}
308
- `)),1}}var v5=A({path:["login"],meta:y5,schema:b5,handler:of});import{z as Ag}from"zod";var F4={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json"},w5={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:[F4],examples:[{name:"Link by name or ID",value:"phala link my-cvm-name"},{name:"Link interactively",value:"phala link"}]},C5=Ag.object({cvmId:Ag.string().optional(),json:Ag.boolean().default(!1)});function N4(e){return e!==null&&typeof e=="object"&&"name"in e&&e.name==="ExitPromptError"}function E5(){let e=["docker-compose.yml","docker-compose.yaml"];for(let t of e)if(S5.existsSync($g.join(process.cwd(),t)))return t}function k5(){let e=".env.production";if(S5.existsSync($g.join(process.cwd(),e)))return e}async function _5(e){let t=en(e).apiKey;if(!t){if(f.info(`Not authenticated. Starting login flow...
309
- `),await of({manual:!1,noOpen:!1},e)!==0||(t=en(e).apiKey,!t))return null;console.log()}let r=await D(e),n=await Ft(r);if(!n.success){if(f.info(`API key expired or invalid. Starting login flow...
310
- `),await of({manual:!1,noOpen:!1},e)!==0||(t=en(e).apiKey,!t))return null;let s=await D(e),a=await Ft(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 I5(e){let t={name:e.cvmName,profile:e.profile};e.composeFile&&(t.compose_file=e.composeFile),e.envFile&&(t.env_file=e.envFile),fw(t),console.log(),console.log(nn.bold("Created phala.toml:")),console.log(nn.dim(` name = "${e.cvmName}"`)),console.log(nn.dim(` profile = "${e.profile}"`)),e.composeFile&&console.log(nn.dim(` compose_file = "${e.composeFile}"`)),e.envFile&&console.log(nn.dim(` env_file = "${e.envFile}"`)),console.log(),f.success("Project linked successfully!"),f.info('Run "phala deploy" to update your CVM.')}async function B4(e,t){ie(e.json);try{return e.cvmId?await L4(e.cvmId,t):await D4(t)}catch(r){if(N4(r))return console.log(),f.info("Link cancelled."),0;throw r}}async function L4(e,t){let r=await _5(t);if(!r)return t.fail("Authentication failed."),1;let{workspaceName:n}=r,o=await D(t),s=await Be(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}`),Sl()){let{overwrite:u}=await Tg.prompt([{type:"confirm",name:"overwrite",message:"phala.toml already exists. Overwrite?",default:!1}]);if(!u)return f.info("Link cancelled."),0}let c=E5(),m=k5();return(c||m)&&(console.log(),f.info("Detected local files:"),c&&console.log(nn.green(` \u2713 ${c}`)),m&&console.log(nn.green(` \u2713 ${m}`))),I5({cvmName:i,composeFile:c,envFile:m,profile:n}),0}async function D4(e){let t=await _5(e);if(!t)return e.fail("Authentication failed."),1;let{workspaceName:r}=t,n=f.startSpinner("Fetching your CVMs..."),o=await D(e),s=await xc(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=$g.basename(process.cwd()),m=i.map(g=>{let h=g.hosted?.app_id||g.hosted?.id||"",y=g.name||g.hosted?.name||"Unnamed",x=g.status||g.hosted?.status||"Unknown";return{name:`${y} (${h}) - Status: ${x}`,value:y,cvmName:y}}),u=m.findIndex(g=>g.cvmName.toLowerCase()===c.toLowerCase());console.log(nn.bold(`Found ${i.length} CVM(s):
311
- `));let{selectedCvm:p}=await Tg.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(Sl()){let{overwrite:g}=await Tg.prompt([{type:"confirm",name:"overwrite",message:"phala.toml already exists. Overwrite?",default:!1}]);if(!g)return f.info("Link cancelled."),0}let l=E5(),d=k5();return console.log(),(l||d)&&(f.info("Detected local files:"),l&&console.log(nn.green(` \u2713 ${l}`)),d&&console.log(nn.green(` \u2713 ${d}`)),console.log()),I5({cvmName:p,composeFile:l,envFile:d,profile:r}),0}var P5=A({path:["link"],meta:w5,schema:C5,handler:B4});import{z as U4}from"zod";var A5={name:"logout",category:"profile",description:"Remove stored API key",stability:"stable"},T5=U4.object({});async function O4(e,t){try{let n=Nt()?.current_profile;return Pl(),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 $5=A({path:["logout"],meta:A5,schema:T5,handler:O4});var R5={path:["nodes"],meta:{name:"nodes",category:"deploy",description:"Manage TEE nodes",stability:"unstable"}};import{z as sf}from"zod";var M5={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"},fr],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"}]},Rg=sf.object({page:sf.coerce.number().int().min(1).default(1),pageSize:sf.coerce.number().int().min(1).max(100).default(30),json:sf.boolean().default(!1)});async function F5(e,t){ie(e.json);try{let r=await D(),n=await Ft(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 iw(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):(Pr(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 z4={name:"nodes",description:"List and manage TEE nodes",stability:"unstable"},N5=A({path:["nodes","list"],meta:M5,schema:Rg,handler:F5}),B5=A({path:["nodes"],meta:z4,schema:Rg,handler:F5});var Mg={group:R5,commands:[B5,N5]};import{z as G4}from"zod";var L5={path:["simulator"],meta:{name:"simulator",category:"manage",description:"TEE simulator commands",stability:"unstable"}};import{z as Fg}from"zod";var D5={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"}]},U5=Fg.object({port:Fg.string().default("8090"),verbose:Fg.boolean().default(!1)});async function j4(e,t){try{return D6()||await U6(),await Fc()?(f.success("TEE simulator is already running"),0):(await O6({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 O5=A({path:["simulator","start"],meta:D5,schema:U5,handler:j4});import{z as H4}from"zod";var z5={name:"stop",description:"Stop the TEE simulator",stability:"unstable"},j5=H4.object({});async function V4(e,t){try{return await z6()?(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 H5=A({path:["simulator","stop"],meta:z5,schema:j5,handler:V4});var q4={name:"simulator",description:"TEE simulator commands",stability:"unstable"},K4=G4.object({});async function W4(e,t){try{let r=await Fc(),n=jl();if(r&&n){let s=yg(),a=s.replace(/dstack\.sock$/,"tappd.sock");t.stdout.write(`\u2713 TEE simulator is running (PID: ${n})\\n`),t.stdout.write(`
310
+ `)),1}}var x5=A({path:["login"],meta:h5,schema:y5,handler:af});import{z as Tg}from"zod";var F4={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json"},v5={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:[F4],examples:[{name:"Link by name or ID",value:"phala link my-cvm-name"},{name:"Link interactively",value:"phala link"}]},w5=Tg.object({cvmId:Tg.string().optional(),json:Tg.boolean().default(!1)});function B4(e){return e!==null&&typeof e=="object"&&"name"in e&&e.name==="ExitPromptError"}function S5(){let e=["docker-compose.yml","docker-compose.yaml"];for(let t of e)if(C5.existsSync(Rg.join(process.cwd(),t)))return t}function k5(){let e=".env.production";if(C5.existsSync(Rg.join(process.cwd(),e)))return e}async function E5(e){let t=rn(e).apiKey;if(!t){if(f.info(`Not authenticated. Starting login flow...
311
+ `),await af({manual:!1,noOpen:!1},e)!==0||(t=rn(e).apiKey,!t))return null;console.log()}let r=await L(e),n=await gt(r);if(!n.success){if(f.info(`API key expired or invalid. Starting login flow...
312
+ `),await af({manual:!1,noOpen:!1},e)!==0||(t=rn(e).apiKey,!t))return null;let s=await L(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 _5(e){let t={name:e.cvmName,profile:e.profile};e.composeFile&&(t.compose_file=e.composeFile),e.envFile&&(t.env_file=e.envFile),uw(t),console.log(),console.log(on.bold("Created phala.toml:")),console.log(on.dim(` name = "${e.cvmName}"`)),console.log(on.dim(` profile = "${e.profile}"`)),e.composeFile&&console.log(on.dim(` compose_file = "${e.composeFile}"`)),e.envFile&&console.log(on.dim(` env_file = "${e.envFile}"`)),console.log(),f.success("Project linked successfully!"),f.info('Run "phala deploy" to update your CVM.')}async function N4(e,t){se(e.json);try{return e.cvmId?await L4(e.cvmId,t):await D4(t)}catch(r){if(B4(r))return console.log(),f.info("Link cancelled."),0;throw r}}async function L4(e,t){let r=await E5(t);if(!r)return t.fail("Authentication failed."),1;let{workspaceName:n}=r,o=await L(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}`),El()){let{overwrite:u}=await $g.prompt([{type:"confirm",name:"overwrite",message:"phala.toml already exists. Overwrite?",default:!1}]);if(!u)return f.info("Link cancelled."),0}let c=S5(),m=k5();return(c||m)&&(console.log(),f.info("Detected local files:"),c&&console.log(on.green(` \u2713 ${c}`)),m&&console.log(on.green(` \u2713 ${m}`))),_5({cvmName:i,composeFile:c,envFile:m,profile:n}),0}async function D4(e){let t=await E5(e);if(!t)return e.fail("Authentication failed."),1;let{workspaceName:r}=t,n=f.startSpinner("Fetching your CVMs..."),o=await L(e),s=await vc(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=Rg.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(on.bold(`Found ${i.length} CVM(s):
313
+ `));let{selectedCvm:p}=await $g.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(El()){let{overwrite:g}=await $g.prompt([{type:"confirm",name:"overwrite",message:"phala.toml already exists. Overwrite?",default:!1}]);if(!g)return f.info("Link cancelled."),0}let l=S5(),d=k5();return console.log(),(l||d)&&(f.info("Detected local files:"),l&&console.log(on.green(` \u2713 ${l}`)),d&&console.log(on.green(` \u2713 ${d}`)),console.log()),_5({cvmName:p,composeFile:l,envFile:d,profile:r}),0}var I5=A({path:["link"],meta:v5,schema:w5,handler:N4});import{z as U4}from"zod";var P5={name:"logout",category:"profile",description:"Remove stored API key",stability:"stable"},A5=U4.object({});async function z4(e,t){try{let n=Bt()?.current_profile;return Tl(),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 T5=A({path:["logout"],meta:P5,schema:A5,handler:z4});var $5={path:["nodes"],meta:{name:"nodes",category:"deploy",description:"Manage TEE nodes",stability:"unstable"}};import{z as cf}from"zod";var R5={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"},gr],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"}]},Mg=cf.object({page:cf.coerce.number().int().min(1).default(1),pageSize:cf.coerce.number().int().min(1).max(100).default(30),json:cf.boolean().default(!1)});async function M5(e,t){se(e.json);try{let r=await L(),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 ow(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):(Tr(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 O4={name:"nodes",description:"List and manage TEE nodes",stability:"unstable"},F5=A({path:["nodes","list"],meta:R5,schema:Mg,handler:M5}),B5=A({path:["nodes"],meta:O4,schema:Mg,handler:M5});var Fg={group:$5,commands:[B5,F5]};import{z as G4}from"zod";var N5={path:["simulator"],meta:{name:"simulator",category:"manage",description:"TEE simulator commands",stability:"unstable"}};import{z as Bg}from"zod";var L5={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"}]},D5=Bg.object({port:Bg.string().default("8090"),verbose:Bg.boolean().default(!1)});async function j4(e,t){try{return L6()||await D6(),await Bc()?(f.success("TEE simulator is already running"),0):(await U6({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 U5=A({path:["simulator","start"],meta:L5,schema:D5,handler:j4});import{z as H4}from"zod";var z5={name:"stop",description:"Stop the TEE simulator",stability:"unstable"},O5=H4.object({});async function V4(e,t){try{return await z6()?(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 j5=A({path:["simulator","stop"],meta:z5,schema:O5,handler:V4});var q4={name:"simulator",description:"TEE simulator commands",stability:"unstable"},K4=G4.object({});async function W4(e,t){try{let r=await Bc(),n=ql();if(r&&n){let s=bg(),a=s.replace(/dstack\.sock$/,"tappd.sock");t.stdout.write(`\u2713 TEE simulator is running (PID: ${n})\\n`),t.stdout.write(`
312
314
  Set these environment variables to use the simulator:
313
315
  `),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
314
316
  `),t.stdout.write(`To start the simulator, run:
315
- `),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 J4=A({path:["simulator"],meta:q4,schema:K4,handler:W4}),Ng={group:L5,commands:[J4,O5,H5]};import{z as Z4}from"zod";var V5={name:"profiles",category:"profile",description:"List auth profiles",stability:"stable",arguments:[],options:[]},G5=Z4.object({});async function Y4(e,t){let r=Ec(),n=Yo();if(r.length===0)return f.warn("No profiles found. Please login first."),0;let o=Nt(),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 Pr(s,a),0}var q5=A({path:["profiles"],meta:V5,schema:G5,handler:Y4});import X4 from"chalk";import Q4 from"inquirer";import{z as Bg}from"zod";var K5={name:"switch",category:"profile",description:"Switch auth profiles",stability:"unstable",arguments:[{name:"profile-name",description:"Profile name",required:!0,target:"profileName"}],options:[]},W5=Bg.object({profileName:Bg.string().min(1).optional(),interactive:Bg.boolean().default(!1)});function e9(e){return e!==null&&typeof e=="object"&&"name"in e&&e.name==="ExitPromptError"}async function t9(e,t){try{return e.interactive?await r9():e.profileName?n9(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(e9(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=Ec();if(o.length>0){f.info("Available profiles:");for(let s of o)console.log(X4.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 r9(){let e=Ec(),t=Yo();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=Nt(),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 Q4.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;X0(o);let s=Yo();return f.success(`Switched to profile "${o}"`),s?.info.workspace?.name&&f.info(`Workspace: ${s.info.workspace.name}`),0}function n9(e){if(Yo()?.name===e)return f.info(`Already using profile "${e}"`),0;X0(e);let r=Yo();return f.success(`Switched to profile "${e}"`),r?.info.workspace?.name&&f.info(`Workspace: ${r.info.workspace.name}`),0}var J5=A({path:["switch"],meta:K5,schema:W5,handler:t9});import{z as di}from"zod";import{readFileSync as i9}from"fs";import{dirname as c9,join as m9}from"path";import{fileURLToPath as u9}from"url";function Z5(e,t,r){switch(t){case"bash":return o9(e,r);case"zsh":return s9(e,r);case"fish":return a9(e,r)}}function o9(e,t){let r=t?`
317
+ `),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 J4=A({path:["simulator"],meta:q4,schema:K4,handler:W4}),Ng={group:N5,commands:[J4,U5,j5]};import{z as Z4}from"zod";var H5={name:"profiles",category:"profile",description:"List auth profiles",stability:"stable",arguments:[],options:[]},V5=Z4.object({});async function Y4(e,t){let r=Ec(),n=Qo();if(r.length===0)return f.warn("No profiles found. Please login first."),0;let o=Bt(),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 Tr(s,a),0}var G5=A({path:["profiles"],meta:H5,schema:V5,handler:Y4});import X4 from"chalk";import Q4 from"inquirer";import{z as Lg}from"zod";var q5={name:"switch",category:"profile",description:"Switch auth profiles",stability:"unstable",arguments:[{name:"profile-name",description:"Profile name",required:!0,target:"profileName"}],options:[]},K5=Lg.object({profileName:Lg.string().min(1).optional(),interactive:Lg.boolean().default(!1)});function e9(e){return e!==null&&typeof e=="object"&&"name"in e&&e.name==="ExitPromptError"}async function t9(e,t){try{return e.interactive?await r9():e.profileName?n9(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(e9(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=Ec();if(o.length>0){f.info("Available profiles:");for(let s of o)console.log(X4.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 r9(){let e=Ec(),t=Qo();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=Bt(),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 Q4.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;X0(o);let s=Qo();return f.success(`Switched to profile "${o}"`),s?.info.workspace?.name&&f.info(`Workspace: ${s.info.workspace.name}`),0}function n9(e){if(Qo()?.name===e)return f.info(`Already using profile "${e}"`),0;X0(e);let r=Qo();return f.success(`Switched to profile "${e}"`),r?.info.workspace?.name&&f.info(`Workspace: ${r.info.workspace.name}`),0}var W5=A({path:["switch"],meta:q5,schema:K5,handler:t9});import{z as di}from"zod";import{readFileSync as i9}from"fs";import{dirname as c9,join as m9}from"path";import{fileURLToPath as u9}from"url";function J5(e,t,r){switch(t){case"bash":return o9(e,r);case"zsh":return s9(e,r);case"fish":return a9(e,r)}}function o9(e,t){let r=t?`
316
318
  # Version check (once per day)
317
319
  local completion_version="${t}"
318
320
  local check_file=~/."${e}"/completion-check
@@ -428,9 +430,9 @@ end
428
430
 
429
431
  complete -c ${e} -f -a "(__${e}_complete)"
430
432
  `.trim()}function p9(){try{let e=u9(import.meta.url),t=c9(e),r=m9(t,"../package.json");return JSON.parse(i9(r,"utf-8")).version}catch{return"unknown"}}var l9={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}]},f9=di.object({line:di.string(),fragment:di.string()});async function d9(e,t){return t.stdout.write(`
431
- `),0}var s0e=A({path:["__complete"],meta:l9,schema:f9,handler:d9}),g9={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"}]},h9=di.object({shell:di.enum(["bash","zsh","fish"]).optional(),fig:di.boolean().optional()});async function y9(e,t){if(e.fig)return t.stdout.write(`Fig spec generation requires registry access. See fig-spec.ts for implementation.
433
+ `),0}var p0e=A({path:["__complete"],meta:l9,schema:f9,handler:d9}),g9={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"}]},h9=di.object({shell:di.enum(["bash","zsh","fish"]).optional(),fig:di.boolean().optional()});async function y9(e,t){if(e.fig)return t.stdout.write(`Fig spec generation requires registry access. See fig-spec.ts for implementation.
432
434
  `),0;let r=e.shell||b9();if(!r)return t.stderr.write(`Could not detect shell. Please specify with --shell (bash, zsh, or fish)
433
- `),1;let n=p9(),o=Z5("phala",r,n);switch(t.stdout.write(`# Add this to your shell configuration file:
435
+ `),1;let n=p9(),o=J5("phala",r,n);switch(t.stdout.write(`# Add this to your shell configuration file:
434
436
 
435
437
  `),t.stdout.write(`${o}
436
438
 
@@ -443,21 +445,20 @@ complete -c ${e} -f -a "(__${e}_complete)"
443
445
  `),t.stdout.write(`# source ~/.zshrc
444
446
  `);break;case"fish":t.stdout.write(`# For fish, run:
445
447
  `),t.stdout.write(`# phala completion --shell fish > ~/.config/fish/completions/phala.fish
446
- `);break}return 0}function b9(){let e=process.env.SHELL||"";return e.includes("bash")?"bash":e.includes("zsh")?"zsh":e.includes("fish")?"fish":null}var Y5=A({path:["completion"],meta:g9,schema:h9,handler:y9});import{spawn as P9}from"child_process";import A9 from"chalk";import{execSync as x9}from"child_process";import{existsSync as X5,readFileSync as v9}from"fs";import{homedir as jc,platform as w9}from"os";import{basename as C9,join as Hc}from"path";import Q5 from"chalk";var ss=class extends Error{constructor(r,n){super(`CVM is not running (current status: ${Q5.yellow(r)})`);this.status=r;this.cvmId=n;this.name="CvmNotRunningError"}},as=class extends Error{constructor(r){super("CVM is not registered on any gateway.");this.cvmId=r;this.name="NoGatewayError"}};function af(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 Lg(){let e=[Hc(jc(),".ssh","id_rsa"),Hc(jc(),".ssh","id_ed25519"),Hc(jc(),".ssh","id_ecdsa"),Hc(jc(),".ssh","id_dsa")];for(let t of e)if(X5(t))return t}function e2(e){if(e){let t=e.startsWith("~")?Hc(jc(),e.slice(1)):e;if(!X5(t))throw new Error(`SSH key file not found: ${t}`);return t}return Lg()}function Vc(e){return e?e.toLowerCase().includes("dev"):!1}function S9(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 E9(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"?Vc(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 k9(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 cf(e,t){let r=await e.getCvmInfo({id:t}),n=S9(r);if(!n)throw new as(t);if(r.status!=="running")throw new ss(r.status,t);let{baseImage:o,isDev:s}=E9(r),a=k9(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 mf(e,t){return`${e}-22.${t}`}function uf(e,t){return e!=="443"?e:t||"443"}function pf(e){return/^[a-zA-Z0-9_./:@=-]+$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}function _9(){try{return x9("openssl version",{encoding:"utf-8"}).toLowerCase().includes("libressl")}catch{return!1}}function I9(e){if(C9(e).toLowerCase().includes("ed25519"))return!0;try{let r=v9(e,"utf-8");return r.includes("ssh-ed25519")||r.includes("ED25519")}catch{return!1}}function lf(e){w9()==="darwin"&&_9()&&I9(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${Q5.cyan("brew\xB7install\xB7openssl")}`),f.info("Then ensure Homebrew's OpenSSL is in your PATH before /usr/bin"))}function ff(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 $n}from"zod";var t2={name:"ssh",category:"cvm-ops",description:"Connect to a CVM via SSH",stability:"unstable",arguments:[{name:"cvm-name",description:"CVM name (reads from phala.toml if omitted)",required:!1,target:"cvmId"}],options:[{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"}]},r2=$n.object({cvmId:$n.string().optional(),port:$n.string().default("443"),gatewayDomain:$n.string().optional(),timeout:$n.string().default("30"),verbose:$n.boolean().default(!1),dryRun:$n.boolean().default(!1),"--":$n.array($n.string()).optional()});function T9(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 $9(e,t){try{let r=t.cvmId?.id||t.cvmId?.uuid||t.cvmId?.app_id||t.cvmId?.instance_id;if(!r)return f.error(`No CVM ID provided. Either pass a CVM ID as argument or configure it in phala.toml.
447
- Supported fields: id, uuid, app_id, or instance_id`),1;let n=e["--"]??[],o=T9(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 b=await D(),v=await cf(b,r);i=v.appId,c=v.gatewayDomain,(v.isDevImage??Vc(v.baseImage))===!1&&f.warn("This CVM is not using a dev image. SSH access may not be available.")}catch(b){return b instanceof as?f.error(b.message):b instanceof ss?(f.error(b.message),f.info("Please start the CVM first using: phala cvms start")):f.error(b instanceof Error?b.message:"Failed to fetch CVM info"),1}let m=af(c),u=uf(a,m.port),p=mf(i,m.host),l=Lg();l&&lf(l),e.verbose&&f.info(`Connecting to ${A9.cyan(p)}:${u}...`);let d=ff(e.verbose,e.timeout),{options:g,command:h}=R9(n),y=[];if(e.verbose&&y.push("-v"),y.push(...d,"-p",u,...g,`root@${p}`,...h),e.dryRun){let b=y.map(v=>pf(v));return t.stdout.write(`ssh ${b.join(" ")}
448
- `),0}let x=P9("ssh",y,{stdio:"inherit"});return x.on("error",b=>{f.break(),f.error(`SSH connection failed: ${b.message}`)}),new Promise(b=>{x.on("close",v=>{f.break(),v===0?(f.success("Connection closed"),b(0)):(f.error(`Connection failed with code ${v}`),b(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 R9(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 n2=A({path:["ssh"],meta:t2,schema:r2,handler:$9});import{spawn as M9}from"child_process";import Dg from"chalk";import{z as Rn}from"zod";var o2={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"}]},s2=Rn.object({source:Rn.string(),destination:Rn.string(),identity:Rn.string().optional(),port:Rn.string().default("443"),gatewayDomain:Rn.string().optional(),recursive:Rn.boolean().default(!1),verbose:Rn.boolean().default(!1),dryRun:Rn.boolean().default(!1)});function a2(e){let t=e.match(/^([^:]+):(.+)$/);return t?{isRemote:!0,cvmId:t[1],path:t[2]}:{isRemote:!1,path:e}}async function F9(e,t){try{let r=a2(e.source),n=a2(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=dw(o.cvmId):s=t.cvmId?.id||t.cvmId?.uuid||t.cvmId?.app_id||t.cvmId?.instance_id,!s)return f.error(`No CVM ID provided. Either use format cvm-id:path or configure it in phala.toml.
449
- Supported fields: id, uuid, app_id, or instance_id`),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 P=await D(),_=await cf(P,s);c=_.appId,m=_.gatewayDomain,(_.isDevImage??Vc(_.baseImage))===!1&&f.warn("This CVM is not using a dev image. SCP access may not be available.")}catch(P){return P instanceof as?f.error(P.message):P instanceof ss?(f.error(P.message),f.info("Please start the CVM first using: phala cvms start")):f.error(P instanceof Error?P.message:"Failed to fetch CVM info"),1}let u=af(m),p=uf(i,u.port),l=mf(c,u.host),d=e2(e.identity);d?lf(d):f.warn("No default SSH key found. SCP will use ssh-agent or prompt for password."),e.verbose&&f.info(`Connecting to ${Dg.cyan(l)}:${p}...`);let h=[...ff(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,x=n.isRemote?`root@${l}:${n.path}`:n.path;if(h.push(y,x),e.dryRun){let P=h.map(_=>pf(_));return t.stdout.write(`scp ${P.join(" ")}
450
- `),0}let b=r.isRemote?"download":"upload",v=r.isRemote?n.path:r.path,S=r.isRemote?r.path:n.path;f.info(`${b==="upload"?"Uploading":"Downloading"} ${Dg.cyan(v)} ${b==="upload"?"to":"from"} ${Dg.cyan(S)}...`);let k=M9("scp",h,{stdio:"inherit"});return k.on("error",P=>{f.break(),f.error(`SCP failed: ${P.message}`)}),new Promise(P=>{k.on("close",_=>{f.break(),_===0?(f.success(`${b==="upload"?"Upload":"Download"} completed`),P(0)):(f.error(`Transfer failed with code ${_}`),P(_??1))})})}catch(r){return f.error("Failed to copy file via SCP"),r instanceof Error&&f.error(r.message),1}}var i2=A({path:["cp"],meta:o2,schema:s2,handler:F9});import{z as df}from"zod";var c2={name:"ps",category:"cvm-ops",description:"List containers of a CVM",stability:"stable",arguments:[Te],options:[cs,fr,Ce],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"}]},m2=df.object({cvmId:df.string().optional(),json:df.boolean().default(!1),interactive:df.boolean().default(!1)});function N9(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 B9(e){let t=e[0]??"";return t.startsWith("/")?t.slice(1):t}async function L9(e,t){if(ie(e.json),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await D(),n=await q0(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:B9(u.names),IMAGE:u.image,CREATED:N9(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 u2=A({path:["ps"],meta:c2,schema:m2,handler:L9});import{z as pr}from"zod";var p2={name:"logs",category:"cvm-ops",description:"Fetch container logs from a CVM",stability:"unstable",arguments:[{name:"container-name",description:"Container name to fetch logs from",required:!0,target:"containerName"}],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:"since",description:"Logs since timestamp (e.g. 2013-01-02T13:23:37Z or 42m)",type:"string",target:"since",argumentName:"since"},{name:"until",description:"Logs before timestamp (e.g. 2013-01-02T13:23:37Z or 42m)",type:"string",target:"until",argumentName:"until"},{name:"stdout",description:"Include stdout (default: true)",type:"boolean",target:"stdout",negatedName:"no-stdout"},{name:"stderr",description:"Include stderr and route to stderr",type:"boolean",target:"stderr"},cs,Gt,Ce],examples:[{name:"Show container logs",value:"phala logs my-service"},{name:"Include stderr",value:"phala logs my-service --stderr"},{name:"Show only stderr",value:"phala logs my-service --no-stdout --stderr"},{name:"Last 100 lines",value:"phala logs my-service --tail 100"},{name:"Follow logs",value:"phala logs my-service --follow"},{name:"Specify CVM",value:"phala logs my-service --cvm-id app_abc123"},{name:"With timestamps",value:"phala logs my-service --timestamps"}]},l2=pr.object({containerName:pr.string(),cvmId:pr.string().optional(),since:pr.string().optional(),until:pr.string().optional(),tail:pr.number().optional(),follow:pr.boolean().default(!1),timestamps:pr.boolean().default(!1),stdout:pr.boolean().default(!0),stderr:pr.boolean().default(!1),json:pr.boolean().default(!1),interactive:pr.boolean().default(!1)});function f2(e,t,r){if(e.channel==="stdout"){t.includeStdout&&r.stdout.write(e.message);return}t.includeStderr&&r.stderr.write(e.message)}async function D9(e,t){if(ie(e.json),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;let{cvmId:r}=ye.parse(t.cvmId),n={includeStdout:e.stdout,includeStderr:e.stderr};if(!n.includeStdout&&!n.includeStderr)return t.fail("Nothing to show: both stdout and stderr are disabled"),1;let o={container:e.containerName,since:e.since,until:e.until,tail:e.tail,timestamps:e.timestamps,matchContainerIdPrefix:!1};try{if(e.follow){if(e.json)return t.fail("Cannot use --json with --follow"),1;let m=new AbortController,u=()=>m.abort();process.on("SIGINT",u),process.on("SIGTERM",u);try{await Nw(r,p=>f2(p,n,t),o,m.signal)}catch(p){if(p.name!=="AbortError")throw p}finally{process.removeListener("SIGINT",u),process.removeListener("SIGTERM",u)}return 0}let a=(await Fw(r,o)).filter(m=>m.channel==="stderr"?n.includeStderr:n.includeStdout),i=a.map(m=>m.message).join("");if(e.json)return t.success({logs:i,cvm_id:r}),0;if(i.trim()){for(let m of a)f2(m,n,t);return 0}return await Bc(r)||f.info("No logs available"),0}catch(s){return t.fail(`Failed to fetch container logs: ${s instanceof Error?s.message:String(s)}`),await Bc(r),1}}var d2=A({path:["logs"],meta:p2,schema:l2,handler:D9});var g2={path:["self"],meta:{name:"self",category:"advanced",description:"CLI self-management",stability:"unstable"}};import V9 from"prompts";import{execa as G9}from"execa";import gf from"semver";import wo from"chalk";import{z as gi}from"zod";var U9={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json"},O9={name:"yes",shorthand:"y",description:"Skip confirmation prompt",type:"boolean",target:"yes"},z9={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"},H9={name:"channel",description:"Release channel/dist-tag (e.g. latest, beta, next)",type:"string",target:"channel",argumentName:"tag"},h2={name:"update",description:"Update the Phala CLI",stability:"unstable",options:[U9,O9,z9,j9,H9],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"}]},y2=gi.object({json:gi.boolean().default(!1),yes:gi.boolean().default(!1),dryRun:gi.boolean().default(!1),packageManager:gi.enum(["npm","pnpm","yarn","bun"]).optional(),channel:gi.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/).optional()});function Gc(e){return typeof e=="string"&&e.trim().length>0}function q9(e){return e.startsWith("@")?e.replace("/","%2F"):e}async function K9(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:gf.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 W9(e){if(typeof e!="object"||e===null||!("code"in e))return;let t=e.code;return typeof t=="string"?t:void 0}function J9(e){let r=gf.parse(e)?.prerelease?.[0];return typeof r=="string"&&r.length>0?r:void 0}function Z9(e,t,r,n){let o=[],s=n instanceof Error&&typeof n.message=="string"?n.message:String(n),a=W9(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"&&Gc(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"&&Gc(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 Y9(e,t,r){if(Gc(e))return e.trim();if(Gc(r.PHALA_UPDATE_CHANNEL))return r.PHALA_UPDATE_CHANNEL;let n=si("updateCheckChannel");return Gc(n)?n:J9(t)??"latest"}async function X9(e,t){ie(e.json);let r=t.cli?.packageName??"phala",n=t.cli?.runtime??Ml(),o=e.packageManager??Ic(t.env,n),s=t.cli?.packageVersion??"0.0.0",a=Y9(e.channel,s,t.env);e.json||t.stderr.write(wo.gray(`Checking for updates...
451
- `));let{latestVersion:i,error:c}=await K9(r,a);if(i){let b=Date.now(),v=a.replace(/[^a-zA-Z0-9_-]/g,"_");Xo({[`updateCheckLastAt_${v}`]:b,[`updateCheckLatest_${v}`]:i,...a==="latest"?{updateCheckLastAt:b,updateCheckLatest:i}:{}})}let m=gf.valid(s),u=i&&m&&!gf.gt(i,m);e.json||(c?(t.stderr.write(wo.yellow(`Warning: Could not fetch latest version: ${c}
452
- `)),t.stderr.write(wo.gray(`Current version: v${s}
453
- `))):i&&(t.stderr.write(wo.gray(`Current version: v${s}
454
- `)),t.stderr.write(wo.gray(`Latest version: v${i}${a!=="latest"?` (${a})`:""}
455
- `)),u?t.stderr.write(wo.green(`You are already on the latest version.
456
- `)):t.stderr.write(wo.yellow(`Update available: v${s} \u2192 v${i}
457
- `))));let p=a==="latest"?`${r}@latest`:`${r}@${a}`,l=Pc(o,p),{command:d,args:g}=jw(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(wo.gray(`Command: ${l}
458
- `)),0;let h=t.stderr.isTTY===!0&&e.json!==!0;if(!e.yes&&!h){let b=`Non-interactive session detected. Re-run with --yes to apply the update, or use --dry-run to print the command.
459
- `;return e.json?(t.success({command:l,ran:!1,reason:"nonInteractive",currentVersion:s,latestVersion:i,isUpToDate:u}),0):(t.stderr.write(b),1)}let y=u?`Already up to date. Reinstall anyway with "${l}"?`:`Run "${l}"?`;if(!(e.yes||await V9({type:"confirm",name:"ok",message:y,initial:!u}).then(b=>b.ok===!0)))return e.json&&t.success({command:l,ran:!1,currentVersion:s,latestVersion:i,isUpToDate:u}),0;try{return await G9(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(b){let v=Z9(t.env,o,l,b);if(f.logDetailedError(b),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 b2=A({path:["self","update"],meta:h2,schema:y2,handler:X9});var Ug={group:g2,commands:[b2]};import yf from"chalk";import{z as hf}from"zod";var x2={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"},fr],examples:[{name:"List apps",value:"phala apps"},{name:"Second page",value:"phala apps --page 2"},{name:"Output as JSON",value:"phala apps --json"}]},v2=hf.object({page:hf.coerce.number().int().min(1).default(1),pageSize:hf.coerce.number().int().min(1).max(100).default(50),json:hf.boolean().default(!1)});function Q9(e){return e.toLowerCase().endsWith("ing")?yf.yellow(e):e==="running"?yf.green(e):e==="stopped"?yf.red(e):yf.yellow(e)}async function e$(e,t){ie(e.json);try{let r=await D(),n=await Vl(r,{page:e.page,pageSize:e.pageSize});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:Q9(i.status),UPTIME:i.uptime??"-"}));return a.length===0?(f.info("No CVMs found"),0):(Pr(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 w2=A({path:["apps"],meta:x2,schema:v2,handler:e$});import{z as Og}from"zod";var C2={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:[fr],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"}]},S2=Og.object({family:Og.string().optional(),json:Og.boolean().default(!1)});function E2(e){return(e/1024).toFixed(0)}function k2(e){return`$${e}`}async function t$(e,t){ie(e.json);try{let r=await D();if(e.family){let s=await F0(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)":E2(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):(Pr(a,i),f.info(`Total: ${s.total} instance types`),0)}let n=await M0(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(`
460
- Family: ${s.name} (${s.total} types)`);let a=s.items.map(i=>({ID:i.id,NAME:i.name,vCPU:i.vcpu.toString(),"Memory(GB)":E2(i.memory_mb),"Hourly Rate":k2(i.hourly_rate)}));Pr(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 _2=A({path:["instance-types"],meta:C2,schema:S2,handler:t$});var a$=s$(import.meta.url),i$=n$(a$),c$=o$(i$,"../package.json"),bf=JSON.parse(r$(c$,"utf-8")),m$="+15fb12a",u$=`v${bf.version}${m$}`,p$=Ml(),pe=new Bl;pe.registerCommand(zC);pe.registerCommand(w2);pe.registerCommand(_2);pe.registerCommand(P5);pe.registerCommand(n2);pe.registerCommand(i2);pe.registerCommand(u2);pe.registerCommand(d2);pe.registerCommand(v5);pe.registerCommand($5);pe.registerCommand(q5);pe.registerCommand(J5);pe.registerCommand(a6);pe.registerCommand(y6);pe.registerCommand(Y5);pe.registerGroup(Ug.group);for(let e of Ug.commands)pe.registerCommand(e);pe.registerGroup(ug.group);for(let e of ug.commands)pe.registerCommand(e);pe.registerGroup(lg.group);for(let e of lg.commands)pe.registerCommand(e);pe.registerGroup(Ig.group);for(let e of Ig.commands)pe.registerCommand(e);pe.registerGroup(Pg.group);for(let e of Pg.commands)pe.registerCommand(e);pe.registerGroup(Mg.group);for(let e of Mg.commands)pe.registerCommand(e);pe.registerGroup(Ng.group);for(let e of Ng.commands)pe.registerCommand(e);process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function l$(){await Qw({env:process.env,stderr:process.stderr});let e=await Jw({registry:pe,argv:process.argv.slice(2),executableName:bf.name??"phala",version:u$,packageName:bf.name??"phala",packageVersion:bf.version,runtime:p$,cwd:process.cwd(),env:process.env,stdout:process.stdout,stderr:process.stderr,stdin:process.stdin});process.exit(e)}l$().catch(e=>{console.error("An error occurred:",e),process.exit(1)});
448
+ `);break}return 0}function b9(){let e=process.env.SHELL||"";return e.includes("bash")?"bash":e.includes("zsh")?"zsh":e.includes("fish")?"fish":null}var Z5=A({path:["completion"],meta:g9,schema:h9,handler:y9});import{spawn as P9}from"child_process";import A9 from"chalk";import{execSync as x9}from"child_process";import{existsSync as Y5,readFileSync as v9}from"fs";import{homedir as Vc,platform as w9}from"os";import{basename as C9,join as Gc}from"path";import X5 from"chalk";var is=class extends Error{constructor(r,n){super(`CVM is not running (current status: ${X5.yellow(r)})`);this.status=r;this.cvmId=n;this.name="CvmNotRunningError"}},cs=class extends Error{constructor(r){super("CVM is not registered on any gateway.");this.cvmId=r;this.name="NoGatewayError"}};function mf(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 Dg(){let e=[Gc(Vc(),".ssh","id_rsa"),Gc(Vc(),".ssh","id_ed25519"),Gc(Vc(),".ssh","id_ecdsa"),Gc(Vc(),".ssh","id_dsa")];for(let t of e)if(Y5(t))return t}function Q5(e){if(e){let t=e.startsWith("~")?Gc(Vc(),e.slice(1)):e;if(!Y5(t))throw new Error(`SSH key file not found: ${t}`);return t}return Dg()}function qc(e){return e?e.toLowerCase().includes("dev"):!1}function S9(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 k9(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"?qc(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 E9(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 uf(e,t){let r=await e.getCvmInfo({id:t}),n=S9(r);if(!n)throw new cs(t);if(r.status!=="running")throw new is(r.status,t);let{baseImage:o,isDev:s}=k9(r),a=E9(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 pf(e,t){return`${e}-22.${t}`}function lf(e,t){return e!=="443"?e:t||"443"}function ff(e){return/^[a-zA-Z0-9_./:@=-]+$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}function _9(){try{return x9("openssl version",{encoding:"utf-8"}).toLowerCase().includes("libressl")}catch{return!1}}function I9(e){if(C9(e).toLowerCase().includes("ed25519"))return!0;try{let r=v9(e,"utf-8");return r.includes("ssh-ed25519")||r.includes("ED25519")}catch{return!1}}function df(e){w9()==="darwin"&&_9()&&I9(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${X5.cyan("brew\xB7install\xB7openssl")}`),f.info("Then ensure Homebrew's OpenSSL is in your PATH before /usr/bin"))}function gf(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 $n}from"zod";var e2={name:"ssh",category:"cvm-ops",description:"Connect to a CVM via SSH",stability:"unstable",arguments:[we],options:[{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"}]},t2=$n.object({cvmId:$n.string().optional(),port:$n.string().default("443"),gatewayDomain:$n.string().optional(),timeout:$n.string().default("30"),verbose:$n.boolean().default(!1),dryRun:$n.boolean().default(!1),"--":$n.array($n.string()).optional()});function T9(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 $9(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}=ee.parse(t.cvmId),n=e["--"]??[],o=T9(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 L(),v=await uf(x,r);i=v.appId,c=v.gatewayDomain,(v.isDevImage??qc(v.baseImage))===!1&&f.warn("This CVM is not using a dev image. SSH access may not be available.")}catch(x){return x instanceof cs?f.error(x.message):x instanceof is?(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=mf(c),u=lf(a,m.port),p=pf(i,m.host),l=Dg();l&&df(l),e.verbose&&f.info(`Connecting to ${A9.cyan(p)}:${u}...`);let d=gf(e.verbose,e.timeout),{options:g,command:h}=R9(n),y=[];if(e.verbose&&y.push("-v"),y.push(...d,"-p",u,...g,`root@${p}`,...h),e.dryRun){let x=y.map(v=>ff(v));return t.stdout.write(`ssh ${x.join(" ")}
449
+ `),0}let b=P9("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 R9(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 r2=A({path:["ssh"],meta:e2,schema:t2,handler:$9});import{spawn as M9}from"child_process";import Ug from"chalk";import{z as Rn}from"zod";var n2={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"}]},o2=Rn.object({source:Rn.string(),destination:Rn.string(),identity:Rn.string().optional(),port:Rn.string().default("443"),gatewayDomain:Rn.string().optional(),recursive:Rn.boolean().default(!1),verbose:Rn.boolean().default(!1),dryRun:Rn.boolean().default(!1)});function s2(e){let t=e.match(/^([^:]+):(.+)$/);return t?{isRemote:!0,cvmId:t[1],path:t[2]}:{isRemote:!1,path:e}}async function F9(e,t){try{let r=s2(e.source),n=s2(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=pw(o.cvmId):t.cvmId&&(s=ee.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 I=await L(),_=await uf(I,s);c=_.appId,m=_.gatewayDomain,(_.isDevImage??qc(_.baseImage))===!1&&f.warn("This CVM is not using a dev image. SCP access may not be available.")}catch(I){return I instanceof cs?f.error(I.message):I instanceof is?(f.error(I.message),f.info("Please start the CVM first using: phala cvms start")):f.error(I instanceof Error?I.message:"Failed to fetch CVM info"),1}let u=mf(m),p=lf(i,u.port),l=pf(c,u.host),d=Q5(e.identity);d?df(d):f.warn("No default SSH key found. SCP will use ssh-agent or prompt for password."),e.verbose&&f.info(`Connecting to ${Ug.cyan(l)}:${p}...`);let h=[...gf(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 I=h.map(_=>ff(_));return t.stdout.write(`scp ${I.join(" ")}
450
+ `),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"} ${Ug.cyan(v)} ${x==="upload"?"to":"from"} ${Ug.cyan(S)}...`);let E=M9("scp",h,{stdio:"inherit"});return E.on("error",I=>{f.break(),f.error(`SCP failed: ${I.message}`)}),new Promise(I=>{E.on("close",_=>{f.break(),_===0?(f.success(`${x==="upload"?"Upload":"Download"} completed`),I(0)):(f.error(`Transfer failed with code ${_}`),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:n2,schema:o2,handler:F9});import{z as hf}from"zod";var i2={name:"ps",category:"cvm-ops",description:"List containers of a CVM",stability:"stable",arguments:[we],options:[ms,gr,be],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"}]},c2=hf.object({cvmId:hf.string().optional(),json:hf.boolean().default(!1),interactive:hf.boolean().default(!1)});function B9(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 N9(e){let t=e[0]??"";return t.startsWith("/")?t.slice(1):t}async function L9(e,t){if(se(e.json),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;try{let r=await L(),n=await q0(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:N9(u.names),IMAGE:u.image,CREATED:B9(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 m2=A({path:["ps"],meta:i2,schema:c2,handler:L9});import{z as Lt}from"zod";var u2={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"},ms,St,be],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"}]},p2=Lt.object({containerName:Lt.string().optional(),cvmId:Lt.string().optional(),serial:Lt.boolean().default(!1),cvmStdout:Lt.boolean().default(!1),cvmStderr:Lt.boolean().default(!1),stderr:Lt.boolean().default(!1),since:Lt.string().optional(),until:Lt.string().optional(),tail:Lt.number().optional(),follow:Lt.boolean().default(!1),timestamps:Lt.boolean().default(!1),json:Lt.boolean().default(!1),interactive:Lt.boolean().default(!1)});function l2(e,t,r){if(e.channel==="stdout"){t.includeStdout&&r.stdout.write(e.message);return}t.includeStderr&&r.stderr.write(e.message)}function D9(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 U9(e,t){if(se(e.json),!t.cvmId)return t.fail("No CVM ID provided. Use --interactive to select interactively."),1;let{cvmId:r}=ee.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=D9(e);if(!s)try{let a=await Lw(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"?z9(r,s.channel,e,t):O9(r,s.containerName,e,t)}async function z9(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 Nw(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 Bw(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 O9(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 Rw(e,l=>l2(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 $w(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)l2(u,o,n);return 0}return await Lc(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 Lc(e),1}}var f2=A({path:["logs"],meta:u2,schema:p2,handler:U9});var d2={path:["self"],meta:{name:"self",category:"advanced",description:"CLI self-management",stability:"unstable"}};import K9 from"prompts";import{execa as W9}from"execa";import yf from"semver";import So from"chalk";import{z as gi}from"zod";var j9={name:"json",shorthand:"j",description:"Output in JSON format",type:"boolean",target:"json",negatedName:"no-json"},H9={name:"yes",shorthand:"y",description:"Skip confirmation prompt",type:"boolean",target:"yes"},V9={name:"dry-run",description:"Print update command without executing",type:"boolean",target:"dryRun"},G9={name:"package-manager",description:"Override package manager (npm|pnpm|yarn|bun)",type:"string",target:"packageManager",aliases:["pm"],argumentName:"name"},q9={name:"channel",description:"Release channel/dist-tag (e.g. latest, beta, next)",type:"string",target:"channel",argumentName:"tag"},g2={name:"update",description:"Update the Phala CLI",stability:"unstable",options:[j9,H9,V9,G9,q9],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"}]},h2=gi.object({json:gi.boolean().default(!1),yes:gi.boolean().default(!1),dryRun:gi.boolean().default(!1),packageManager:gi.enum(["npm","pnpm","yarn","bun"]).optional(),channel:gi.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/).optional()});function Kc(e){return typeof e=="string"&&e.trim().length>0}function J9(e){return e.startsWith("@")?e.replace("/","%2F"):e}async function Z9(e,t){let n=`https://registry.npmjs.org/${J9(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:yf.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 Y9(e){if(typeof e!="object"||e===null||!("code"in e))return;let t=e.code;return typeof t=="string"?t:void 0}function X9(e){let r=yf.parse(e)?.prerelease?.[0];return typeof r=="string"&&r.length>0?r:void 0}function Q9(e,t,r,n){let o=[],s=n instanceof Error&&typeof n.message=="string"?n.message:String(n),a=Y9(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"&&Kc(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"&&Kc(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 e$(e,t,r){if(Kc(e))return e.trim();if(Kc(r.PHALA_UPDATE_CHANNEL))return r.PHALA_UPDATE_CHANNEL;let n=si("updateCheckChannel");return Kc(n)?n:X9(t)??"latest"}async function t$(e,t){se(e.json);let r=t.cli?.packageName??"phala",n=t.cli?.runtime??Nl(),o=e.packageManager??Pc(t.env,n),s=t.cli?.packageVersion??"0.0.0",a=e$(e.channel,s,t.env);e.json||t.stderr.write(So.gray(`Checking for updates...
451
+ `));let{latestVersion:i,error:c}=await Z9(r,a);if(i){let x=Date.now(),v=a.replace(/[^a-zA-Z0-9_-]/g,"_");es({[`updateCheckLastAt_${v}`]:x,[`updateCheckLatest_${v}`]:i,...a==="latest"?{updateCheckLastAt:x,updateCheckLatest:i}:{}})}let m=yf.valid(s),u=i&&m&&!yf.gt(i,m);e.json||(c?(t.stderr.write(So.yellow(`Warning: Could not fetch latest version: ${c}
452
+ `)),t.stderr.write(So.gray(`Current version: v${s}
453
+ `))):i&&(t.stderr.write(So.gray(`Current version: v${s}
454
+ `)),t.stderr.write(So.gray(`Latest version: v${i}${a!=="latest"?` (${a})`:""}
455
+ `)),u?t.stderr.write(So.green(`You are already on the latest version.
456
+ `)):t.stderr.write(So.yellow(`Update available: v${s} \u2192 v${i}
457
+ `))));let p=a==="latest"?`${r}@latest`:`${r}@${a}`,l=Ac(o,p),{command:d,args:g}=jw(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(So.gray(`Command: ${l}
458
+ `)),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.
459
+ `;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 K9({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 W9(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=Q9(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 y2=A({path:["self","update"],meta:g2,schema:h2,handler:t$});var zg={group:d2,commands:[y2]};import bf from"chalk";import{z as Wt}from"zod";var b2={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"},gr],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"}]},x2=Wt.object({page:Wt.coerce.number().int().min(1).default(1),pageSize:Wt.coerce.number().int().min(1).max(100).default(50),search:Wt.string().optional(),status:Wt.array(Wt.string()).optional(),listed:Wt.boolean().optional(),baseImage:Wt.string().optional(),instanceType:Wt.string().optional(),kmsType:Wt.string().optional(),node:Wt.string().optional(),region:Wt.string().optional(),json:Wt.boolean().default(!1)});function r$(e){return e.toLowerCase().endsWith("ing")?bf.yellow(e):e==="running"?bf.green(e):e==="stopped"?bf.red(e):bf.yellow(e)}async function n$(e,t){se(e.json);try{let r=await L(),n=await Wl(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:r$(i.status),UPTIME:i.uptime??"-"}));return a.length===0?(f.info("No CVMs found"),0):(Tr(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 v2=A({path:["apps"],meta:b2,schema:x2,handler:n$});import{z as Og}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:[gr],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"}]},C2=Og.object({family:Og.string().optional(),json:Og.boolean().default(!1)});function S2(e){return(e/1024).toFixed(0)}function k2(e){return`$${e}`}async function o$(e,t){se(e.json);try{let r=await L();if(e.family){let s=await F0(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)":S2(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):(Tr(a,i),f.info(`Total: ${s.total} instance types`),0)}let n=await M0(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(`
460
+ Family: ${s.name} (${s.total} types)`);let a=s.items.map(i=>({ID:i.id,NAME:i.name,vCPU:i.vcpu.toString(),"Memory(GB)":S2(i.memory_mb),"Hourly Rate":k2(i.hourly_rate)}));Tr(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 E2=A({path:["instance-types"],meta:w2,schema:C2,handler:o$});import{z as jg}from"zod";var _2={name:"whoami",category:"profile",description:"Print the current user",stability:"stable",options:[...Nn,St],examples:[{name:"Show current user",value:"phala whoami"},{name:"JSON output",value:"phala whoami --json"}]},I2=jg.object({json:jg.boolean().default(!1),apiToken:jg.string().optional()});async function s$(e,t){se(e.json);let{client:r,auth:n}=await $l(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})
461
+ `),0)}var P2=A({path:["whoami"],meta:_2,schema:I2,handler:s$});var u$=m$(import.meta.url),p$=i$(u$),l$=c$(p$,"../package.json"),xf=JSON.parse(a$(l$,"utf-8")),f$="+2058273",d$=`v${xf.version}${f$}`,g$=Nl(),le=new zl;le.registerCommand(zC);le.registerCommand(v2);le.registerCommand(E2);le.registerCommand(I5);le.registerCommand(r2);le.registerCommand(a2);le.registerCommand(m2);le.registerCommand(f2);le.registerCommand(x5);le.registerCommand(T5);le.registerCommand(G5);le.registerCommand(W5);le.registerCommand(s6);le.registerCommand(h6);le.registerCommand(P2);le.registerCommand(Z5);le.registerGroup(zg.group);for(let e of zg.commands)le.registerCommand(e);le.registerGroup(pg.group);for(let e of pg.commands)le.registerCommand(e);le.registerGroup(fg.group);for(let e of fg.commands)le.registerCommand(e);le.registerGroup(Pg.group);for(let e of Pg.commands)le.registerCommand(e);le.registerGroup(Ag.group);for(let e of Ag.commands)le.registerCommand(e);le.registerGroup(Fg.group);for(let e of Fg.commands)le.registerCommand(e);le.registerGroup(Ng.group);for(let e of Ng.commands)le.registerCommand(e);process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function h$(){await Xw({env:process.env,stderr:process.stderr});let e=await Ww({registry:le,argv:process.argv.slice(2),executableName:xf.name??"phala",version:d$,packageName:xf.name??"phala",packageVersion:xf.version,runtime:g$,cwd:process.cwd(),env:process.env,stdout:process.stdout,stderr:process.stderr,stdin:process.stdin});process.exit(e)}h$().catch(e=>{console.error("An error occurred:",e),process.exit(1)});
461
462
  /*! Bundled license information:
462
463
 
463
464
  @noble/hashes/esm/utils.js: