buckyos 0.7.136 → 0.7.138

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.
@@ -1,13 +0,0 @@
1
- "use strict";var t,e,n,r,s,i,o,a,c,l,u,h,d,f,p,g,m,y,w,b,A,_,v,E,k,S,T,R,I,O,C,x,N,P,D,B,U,L,M,F,G,j,H,V,W,K,z,q,$,Q,J,Y,Z,X,tt,et,nt,rt,st,it,ot,at,ct,lt,ut,ht,dt,ft,pt,gt,mt,yt,wt,bt,At,_t,vt,Et,kt,St,Tt,Rt,It,Ot,Ct,xt,Nt,Pt,Dt,Bt,Ut,Lt,Mt,Ft,Gt,jt,Ht,Vt,Wt,Kt,zt,qt,$t,Qt,Jt,Yt,Zt,Xt,te,ee,ne,re,se,ie,oe,ae,ce,le,ue,he,de,fe,pe,ge,me,ye,we,be,Ae,_e,ve,Ee,ke,Se,Te,Re,Ie,Oe,Ce,xe,Ne,Pe,De,Be,Ue,Le,Me,Fe,Ge,je,He,Ve,We,Ke,ze,qe,$e,Qe,Je,Ye,Ze,Xe,tn,en,nn,rn,sn,on,an,cn,ln,un,hn,dn,fn,pn,gn,mn,yn,wn,bn,An,_n,vn,En,kn,Sn,Tn,Rn,In,On,Cn=Object.defineProperty,xn=(t,e,n)=>(((t,e,n)=>{e in t?Cn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n})(t,"symbol"!=typeof e?e+"":e,n),n),Nn=(t,e,n)=>{if(!e.has(t))throw TypeError("Cannot "+n)},Pn=(t,e,n)=>(Nn(t,e,"read from private field"),n?n.call(t):e.get(t)),Dn=(t,e,n)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,n)},Bn=(t,e,n,r)=>(Nn(t,e,"write to private field"),r?r.call(t,n):e.set(t,n),n),Un=(t,e,n,r)=>({set _(r){Bn(t,e,r,n)},get _(){return Pn(t,e,r)}}),Ln=(t,e,n)=>(Nn(t,e,"access private method"),n);const Mn=require("./ndn_types-324121ae.js");class Fn extends Error{constructor(t,e,n){super(t),this.name="RPCError",this.code=e,this.data=n}}const Gn=async(t,e)=>{if("undefined"!=typeof window&&"function"==typeof window.fetch)return window.fetch(t,e);if("undefined"!=typeof globalThis&&"function"==typeof globalThis.fetch)return globalThis.fetch(t,e);throw new Fn("fetch is not available in this runtime")};class jn{constructor(t,e=null,n=null,r={}){this.serverUrl=t,this.protocolType="HttpPostJson",this.seq=n??Date.now(),this.sessionToken=e||null,this.initToken=e||null,this.traceId=r.traceId||null,this.fetcher=r.fetcher??Gn,this.sessionTokenProvider=r.sessionTokenProvider??null,this.sessionTokenOverride=void 0}async call(t,e,n={}){return this._call(t,e,n)}async callWithSessionToken(t,e,n){return this._call(e,n,{sessionToken:t})}setSeq(t){this.seq=t}resetSessionToken(){this.sessionToken=this.initToken,this.sessionTokenOverride=void 0}setSessionToken(t){this.sessionToken=t||null,this.sessionTokenOverride=t||null}getSessionToken(){return this.sessionToken}setTraceId(t){this.traceId=t||null}getTraceId(){return this.traceId}buildRequest(t,e,n,r,s){let i;return i=s?[n,r,s]:r?[n,r]:[n],{method:t,params:e,sys:i}}parseResponseSys(t,e){if(null==t)return null;if(!Array.isArray(t))throw new Fn("sys is not array");if(t.length<1)throw new Fn("sys is empty");const n=t[0];if("number"!=typeof n)throw new Fn("sys[0] is not number");if(n!==e)throw new Fn(`seq not match: ${n}!=${e}`);if(t.length>=2){const e=t[1];if("string"!=typeof e)throw new Fn("sys[1] trace_id is not string");return e}return null}async prepareSessionToken(t){if(Object.prototype.hasOwnProperty.call(t,"sessionToken"))return t.sessionToken||null;if(void 0!==this.sessionTokenOverride)return this.sessionTokenOverride;if(this.sessionTokenProvider){const t=await this.sessionTokenProvider();void 0!==t&&(this.sessionToken=t||null)}return this.sessionToken}prepareTraceId(t){return Object.prototype.hasOwnProperty.call(t,"traceId")?t.traceId||null:this.traceId}async _call(t,e,n){const r=await this.prepareSessionToken(n),s=this.prepareTraceId(n),i=this.seq;this.seq+=1;const o=this.buildRequest(t,e,i,r,s);try{const t=await this.fetcher(this.serverUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!t.ok)throw new Fn(`RPC call error: ${t.status}`);const e=await t.json();if(this.parseResponseSys(e.sys,i),"error"in e&&e.error)throw new Fn(`RPC call error: ${e.error}`,"string"==typeof e.code?e.code:void 0,e.data);if(!("result"in e)||void 0===e.result)throw new Fn("RPC response missing result");return e.result}catch(a){if(a instanceof Fn)throw a;const t=a instanceof Error?a.message:String(a);throw new Fn(`RPC call failed: ${t}`)}}}function Hn(){if("undefined"==typeof window||void 0===window.location)throw new Error("AuthClient can only be created in browser SSO environments")}class Vn{constructor(t,e={}){Hn(),this.zoneHostname=t,this.navigate=e.navigate??(t=>{window.location.assign(t)})}buildLoginURL(t=null){Hn();const e=t??window.location.href;return`${`${window.location.protocol}//sys.${this.zoneHostname}/login`}?redirect_url=${encodeURIComponent(e)}`}async login(t=null){const e=this.buildLoginURL(t);this.navigate(e)}}const Wn=["session_kind_not_allowed","session_ceiling_exceeded","resource_grant_missing","entry_unavailable","zone_method_disabled","account_state","credential_state","source_revoked","authorization_unavailable"],Kn="access_denied";function zn(t){return!!t&&"object"==typeof t&&!Array.isArray(t)}function qn(t){if(!zn(t)||"string"!=typeof t.reason)return null;if(!Wn.includes(t.reason))return null;return(zn(t.adjust)&&"string"==typeof t.adjust.party?t.adjust:null)?t:null}const $n={kind:"anonymous"};function Qn(t){if(!zn(t))return null;if("anonymous"===t.kind)return $n;const e=e=>"string"==typeof t[e]?t[e]:null;if("account"===t.kind){const n=e("user_id"),r=e("did"),s=e("user_type");return n&&r&&s&&"boolean"==typeof t.restricted?t:null}return"external"===t.kind&&e("did")&&"boolean"==typeof t.restricted?t:null}function Jn(t){switch(t.kind){case"account":return`${t.zone_host}|account|${t.user_id}`;case"external":return`${t.zone_host}|external|${t.did}`;default:return"anonymous"}}const Yn="https://jump.buckyos.org",Zn={app_installer:"/sysdlg/app_installer"};function Xn(t){const e=t.trim().toLowerCase().replace(/\.$/,"");if(!e||e.length>253)return null;if(/[^a-z0-9.-]/.test(e))return null;const n=e.split(".");if(n.length<2)return null;for(const r of n)if(!r||r.length>63||r.startsWith("-")||r.endsWith("-"))return null;return e}function tr(t){if(!t||"object"!=typeof t)throw new Fn("verify-hub auth target is required");if("app"===t.kind&&"string"==typeof t.app_instance_id&&t.app_instance_id.length>0)return{kind:"app",app_instance_id:t.app_instance_id};if("system"===t.kind&&"string"==typeof t.service_id&&t.service_id.length>0)return{kind:"system",service_id:t.service_id};throw new Fn("invalid verify-hub auth target")}function er(t){const e=tr(t);if("system"===e.kind)return e.service_id;const n=e.app_instance_id.lastIndexOf("@");if(n<=0||n===e.app_instance_id.length-1)throw new Fn("app auth target must use `<appId>@<ownerUserId>`");return e.app_instance_id.slice(0,n)}class nr{constructor(t){this.rpcClient=t}setSeq(t){this.rpcClient.setSeq(t)}async loginByJwt(t){return this.rpcClient.resetSessionToken(),this.rpcClient.call("login_by_jwt",{type:"jwt",jwt:t.jwt,target:tr(t.target)})}async loginByPassword(t){this.rpcClient.resetSessionToken();const e={type:"password",username:t.username,password:t.password,target:tr(t.target)};return void 0!==t.login_nonce&&(e.login_nonce=t.login_nonce),t.source_url&&(e.source_url=t.source_url),this.rpcClient.call("login_by_password",e)}async sudoByPassword(t){this.rpcClient.resetSessionToken();const e={username:t.username,password:t.password,target:tr(t.target)};return void 0!==t.aud&&(e.aud=t.aud),void 0!==t.login_nonce&&(e.login_nonce=t.login_nonce),this.rpcClient.call("sudo_by_password",e)}async refreshToken(t){return this.rpcClient.call("refresh_token",{refresh_token:t.refresh_token})}async verifyToken(t){const e={session_token:t.session_token};return void 0!==t.expected_target&&(e.expected_target=tr(t.expected_target)),this.rpcClient.call("verify_token",e)}static normalizeLoginResponse(t){if("user_info"in t)return{user_name:t.user_info.show_name,user_id:t.user_info.user_id,user_type:t.user_info.user_type,session_token:t.session_token,refresh_token:t.refresh_token};if(!t.session_token)throw new Fn("login_by_password response missing session_token");return t}}const rr="task_not_found",sr="permission_denied",ir="revision_conflict",or="stale_runner_epoch",ar="invalid_task_phase",cr="control_not_available",lr="control_already_pending",ur="task_already_completed",hr="input_schema_mismatch",dr="result_schema_mismatch",fr="idempotency_conflict",pr="task_schema_not_found",gr=[rr,sr,ir,or,ar,cr,lr,ur,hr,dr,fr,pr];function mr(t){return`/task_mgr/${t}`}function yr(t){const e=t instanceof Error?t.message:String(t);for(const n of gr){const t=e.indexOf(n);if(t<0)continue;const r=0===t?"":e[t-1],s=e[t+n.length]??"";if((!r||/[\s:]/.test(r))&&(!s||/[\s:]/.test(s)))return n}return null}var wr=(t=>(t.Unbound="Unbound",t.App="App",t.HumanSet="HumanSet",t))(wr||{}),br=(t=>(t.Promised="Promised",t.Accepted="Accepted",t.Running="Running",t.Waiting="Waiting",t.Paused="Paused",t.Terminal="Terminal",t))(br||{});function Ar(t){return"Terminal"===t}var _r=(t=>(t.Dispatch="Dispatch",t.Capacity="Capacity",t.Authorization="Authorization",t.HumanInput="HumanInput",t.ChildTask="ChildTask",t.Dependency="Dependency",t.External="External",t.Other="Other",t))(_r||{}),vr=(t=>(t.Succeeded="Succeeded",t.Failed="Failed",t.Canceled="Canceled",t))(vr||{}),Er=(t=>(t.Pause="Pause",t.Resume="Resume",t.Cancel="Cancel",t))(Er||{});var kr=(t=>(t.ReadMeta="ReadMeta",t.ReadInput="ReadInput",t.ReadResult="ReadResult",t.ReportProgress="ReportProgress",t.Control="Control",t.Commit="Commit",t.CreateChild="CreateChild",t.Reassign="Reassign",t.Grant="Grant",t.Archive="Archive",t))(kr||{}),Sr=(t=>(t.SelfOnly="SelfOnly",t.Subtree="Subtree",t.WholeTree="WholeTree",t))(Sr||{}),Tr=(t=>(t.MetaOnly="MetaOnly",t.Payload="Payload",t.Full="Full",t))(Tr||{}),Rr=(t=>(t.User="User",t.System="System",t))(Rr||{}),Ir=(t=>(t.TaskCreated="TaskCreated",t.RunnerBound="RunnerBound",t.RunnerReleased="RunnerReleased",t.PhaseChanged="PhaseChanged",t.WaitReasonChanged="WaitReasonChanged",t.ProgressReported="ProgressReported",t.ControlProfileChanged="ControlProfileChanged",t.ControlRequested="ControlRequested",t.ControlSuperseded="ControlSuperseded",t.ControlApplied="ControlApplied",t.ControlRejected="ControlRejected",t.AssigneesChanged="AssigneesChanged",t.AccessGranted="AccessGranted",t.AccessRevoked="AccessRevoked",t.ResultCommitted="ResultCommitted",t.TaskFailed="TaskFailed",t.TaskCanceled="TaskCanceled",t.TaskArchived="TaskArchived",t.PayloadRedacted="PayloadRedacted",t))(Ir||{});function Or(t,e,n){const r=function(t,e){if(!t||"object"!=typeof t||Array.isArray(t))throw new Fn(`Expected ${e} in TaskMgr response`);return t}(t,n);if(!(e in r))throw new Fn(`Expected ${e} in TaskMgr response`);return r[e]}function Cr(t){const e=Or(t,"task","task result");if(!e||"object"!=typeof e||"string"!=typeof e.task_id)throw new Fn("Expected a string task_id in TaskMgr response");return e}function xr(){const t=globalThis.crypto;if(t&&"function"==typeof t.getRandomValues){const e=new Uint8Array(16);return t.getRandomValues(e),`ctl-${Array.from(e,(t=>t.toString(16).padStart(2,"0"))).join("")}`}return`ctl-${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`}class Nr{constructor(t){this.rpcClient=t}setSeq(t){this.rpcClient.setSeq(t)}async callTask(t,e){return Cr(await this.rpcClient.call(t,e))}async createTask(t){return this.callTask("create_task",t)}async getTask(t){return Cr(await this.rpcClient.call("get_task",{task_id:t}))}async listTasks(t={}){const e=await this.rpcClient.call("list_tasks",t),n=Or(e,"tasks","task summary page");if(!Array.isArray(n))throw new Fn("Expected tasks array in TaskMgr response");return e}async getTaskTree(t){const e=await this.rpcClient.call("get_task_tree",t),n=Or(e,"tasks","task tree page");if(!Array.isArray(n))throw new Fn("Expected tasks array in TaskMgr response");return e}async getSubtasks(t){const e=await this.rpcClient.call("get_subtasks",t),n=Or(e,"tasks","subtask page");if(!Array.isArray(n))throw new Fn("Expected tasks array in TaskMgr response");return e}async archiveTask(t){return this.callTask("archive_task",t)}async requestControl(t){const e=await this.rpcClient.call("request_control",t),n=Or(e,"kind","control result");if("Task"!==n&&"Batch"!==n)throw new Fn(`Invalid TaskMgr control result kind: ${n}`);return e}async updateAssignees(t){return this.callTask("update_assignees",t)}async grantTaskAccess(t){return this.callTask("grant_task_access",t)}async revokeTaskAccess(t){return this.callTask("revoke_task_access",t)}async listTaskAccess(t){const e=Or(await this.rpcClient.call("list_task_access",{task_id:t}),"grants","task access result");if(!Array.isArray(e))throw new Fn("Expected grants array in TaskMgr response");return e}async reportStarted(t){return this.callTask("report_started",t)}async reportProgress(t){return this.callTask("report_progress",t)}async reportWaiting(t){return this.callTask("report_waiting",t)}async reportRunning(t){return this.callTask("report_running",t)}async updateControlProfile(t){return this.callTask("update_control_profile",t)}async ackControl(t){return this.callTask("ack_control",t)}async commitResult(t){return this.callTask("commit_result",t)}async failTask(t){return this.callTask("fail_task",t)}async createPromisedTask(t){return this.callTask("create_promised_task",t)}async setPromiseWait(t){return this.callTask("set_promise_wait",t)}async bindAppExecutor(t){return this.callTask("bind_app_executor",t)}async releaseAppExecutor(t){return this.callTask("release_app_executor",t)}async finishPromiseFailure(t){return this.callTask("finish_promise_failure",t)}async cancelPromisedTask(t){return this.callTask("cancel_promised_task",t)}async registerTaskSchema(t){return this.rpcClient.call("register_task_schema",{definition:t})}async getTaskSchema(t,e){return this.rpcClient.call("get_task_schema",{schema_id:t,schema_version:e})}async listTaskSchemas(t={}){const e=Or(await this.rpcClient.call("list_task_schemas",t),"schemas","task schema list");if(!Array.isArray(e))throw new Fn("Expected schemas array in TaskMgr response");return e}async setTaskSchemaEnabled(t,e,n){return this.rpcClient.call("set_task_schema_enabled",{schema_id:t,schema_version:e,enabled:n})}async listTaskEvents(t){const e=await this.rpcClient.call("list_task_events",t),n=Or(e,"events","task event list");if(!Array.isArray(n))throw new Fn("Expected events array in TaskMgr response");return e}async addTaskNote(t){return Or(await this.rpcClient.call("add_task_note",t),"note","add task note result")}async listTaskNotes(t){const e=Or(await this.rpcClient.call("list_task_notes",{task_id:t}),"notes","task note list");if(!Array.isArray(e))throw new Fn("Expected notes array in TaskMgr response");return e}async cancelTask(t,e=!1){return this.requestControl({task_id:t,action:"Cancel",request_id:xr(),recursive:e})}snapshotEnvelope(t){return{task_id:t.task_id,app_instance_id:"App"===t.executor.kind?t.executor.app_instance_id:void 0,runner_epoch:t.runner_epoch,expected_revision:t.revision}}async runnerStart(t){const e=await this.getTask(t);let n;if("Accepted"===e.phase)n=this.reportStarted(this.snapshotEnvelope(e));else{if("Waiting"!==e.phase)return e;n=this.reportRunning(this.snapshotEnvelope(e))}try{return await n}catch(r){const e=yr(r);if(e===ir||e===ar)return this.getTask(t);throw r}}async runnerProgress(t,e,n){const r=await this.getTask(t);if(Ar(r.phase))return r;try{return await this.reportProgress({...this.snapshotEnvelope(r),progress:e,message:n})}catch(s){if(yr(s)!==ir)throw s;const r=await this.getTask(t);return this.reportProgress({...this.snapshotEnvelope(r),progress:e,message:n})}}async runnerWait(t,e){const n=await this.runnerStart(t);return"Running"!==n.phase?n:this.reportWaiting({...this.snapshotEnvelope(n),reason:e})}async runnerComplete(t,e){const n=await this.getTask(t);if(Ar(n.phase))return n;try{return await this.commitResult({task_id:n.task_id,result:e,app_instance_id:this.snapshotEnvelope(n).app_instance_id,runner_epoch:n.runner_epoch,expected_revision:n.revision})}catch(r){if(yr(r)!==ir)throw r;const n=await this.getTask(t);return Ar(n.phase)?n:this.commitResult({task_id:n.task_id,result:e,app_instance_id:this.snapshotEnvelope(n).app_instance_id,runner_epoch:n.runner_epoch,expected_revision:n.revision})}}async runnerFail(t,e,n,r){const s=await this.getTask(t);return Ar(s.phase)?s:this.failTask({...this.snapshotEnvelope(s),error:{code:e,message:n,detail:r}})}}var Pr=(t=>(t.Autonomous="autonomous",t.HumanConfirm="human_confirm",t.HumanRequired="human_required",t))(Pr||{}),Dr=(t=>(t.Single="single",t.FiniteSeekable="finite_seekable",t.FiniteSequential="finite_sequential",t))(Dr||{}),Br=(t=>(t.All="all",t.Any="any",t.NOfM="n_of_m",t))(Br||{}),Ur=(t=>(t.Human="human",t.Abort="abort",t))(Ur||{}),Lr=(t=>(t.Draft="draft",t.Active="active",t.Archived="archived",t))(Lr||{}),Mr=(t=>(t.Created="created",t.Running="running",t.WaitingHuman="waiting_human",t.Completed="completed",t.Failed="failed",t.Paused="paused",t.Aborted="aborted",t.BudgetExhausted="budget_exhausted",t))(Mr||{}),Fr=(t=>(t.Pending="pending",t.Ready="ready",t.Running="running",t.Completed="completed",t.Failed="failed",t.Retrying="retrying",t.WaitingHuman="waiting_human",t.Skipped="skipped",t.Aborted="aborted",t.Cancelled="cancelled",t))(Fr||{}),Gr=(t=>(t.Approve="approve",t.Modify="modify",t.Reject="reject",t.Retry="retry",t.Skip="skip",t.Abort="abort",t.Rollback="rollback",t))(Gr||{}),jr=(t=>(t.Enabled="enabled",t.Paused="paused",t.Archived="archived",t.Error="error",t))(jr||{}),Hr=(t=>(t.Skip="skip",t.RunOnce="run_once",t.CatchUp="catch_up",t.Manual="manual",t))(Hr||{}),Vr=(t=>(t.Created="created",t.TaskCreated="task_created",t.Skipped="skipped",t.Failed="failed",t))(Vr||{});function Wr(t,e){if(!(e in t))throw new Fn(`Expected ${e} in workflow response`);return t[e]}class Kr{constructor(t){this.rpcClient=t}setSeq(t){this.rpcClient.setSeq(t)}async callOk(t,e){const n=function(t){if(!t||"object"!=typeof t||Array.isArray(t))throw new Fn("Invalid workflow RPC response format");return t}(await this.rpcClient.call(t,e));if(!0===n.ok)return n;const r="string"==typeof n.message?n.message:"string"==typeof n.error?n.error:"workflow request failed";throw new Fn(r)}async submitDefinition(t){const e=await this.callOk("submit_definition",t);return{workflow_id:Wr(e,"workflow_id"),version:Wr(e,"version"),analysis:Wr(e,"analysis"),definition:Wr(e,"definition")}}async getDefinition(t){return Wr(await this.callOk("get_definition",{workflow_id:t}),"definition")}async listDefinitions(t={}){return Wr(await this.callOk("list_definitions",t),"definitions")}async archiveDefinition(t){return Wr(await this.callOk("archive_definition",{workflow_id:t}),"status")}async dryRun(t){const e=await this.callOk("dry_run",{definition:t});return{analysis:Wr(e,"analysis"),graph:Wr(e,"graph")}}async createRun(t){return await this.callOk("create_run",t)}async startRun(t){return await this.callOk("start_run",{run_id:t})}async tickRun(t){return await this.callOk("tick_run",{run_id:t})}async getRunGraph(t){return await this.callOk("get_run_graph",{run_id:t})}async listRuns(t={}){return Wr(await this.callOk("list_runs",t),"runs")}async submitStepOutput(t){return await this.callOk("submit_step_output",t)}async reportStepProgress(t){return await this.callOk("report_step_progress",t)}async requestHuman(t){return await this.callOk("request_human",t)}async submitAmendment(t){return Wr(await this.callOk("submit_amendment",t),"amendment")}async approveAmendment(t){const e=await this.callOk("approve_amendment",t);return{amendment:Wr(e,"amendment"),plan_version:Wr(e,"plan_version")}}async rejectAmendment(t){const e=await this.callOk("reject_amendment",t);return{amendment:Wr(e,"amendment"),plan_version:Wr(e,"plan_version")}}async getHistory(t){return await this.callOk("get_history",t)}async subscribeEvents(t){return await this.callOk("subscribe_events",t)}async createScheduledTask(t){return Wr(await this.callOk("create_scheduled_task",t),"schedule")}async updateScheduledTask(t){return Wr(await this.callOk("update_scheduled_task",t),"schedule")}async getScheduledTask(t){return Wr(await this.callOk("get_scheduled_task",{schedule_id:t}),"schedule")}async listScheduledTasks(t={}){return Wr(await this.callOk("list_scheduled_tasks",t),"schedules")}async pauseScheduledTask(t){return Wr(await this.callOk("pause_scheduled_task",{schedule_id:t}),"schedule")}async resumeScheduledTask(t){return Wr(await this.callOk("resume_scheduled_task",{schedule_id:t}),"schedule")}async archiveScheduledTask(t){return Wr(await this.callOk("archive_scheduled_task",{schedule_id:t}),"schedule")}async runScheduledTaskNow(t){return Wr(await this.callOk("run_scheduled_task_now",t),"fire")}async getScheduledTaskHistory(t){return Wr(await this.callOk("get_scheduled_task_history",t),"fires")}async validateScheduledTask(t){return await this.callOk("validate_scheduled_task",t)}}const zr=["services/","system/rbac/"];class qr{constructor(t,e=null,n={}){this.configCache=new Map,this.rpcClient=new jn(t,e,null,n)}setSeq(t){this.rpcClient.setSeq(t)}async syncSessionToken(t){this.rpcClient.setSessionToken(t)}getSessionToken(){return this.rpcClient.getSessionToken()}needCache(t){return zr.some((e=>t.startsWith(e)))}getUnixTimestamp(){return Math.floor(Date.now()/1e3)}getConfigCache(t){const e=this.configCache.get(t);return e?e.cachedAt+10<this.getUnixTimestamp()?(this.configCache.delete(t),null):e:null}setConfigCache(t,e,n){if(!this.needCache(t))return!0;const r=this.configCache.get(t);return this.configCache.set(t,{value:e,version:n,cachedAt:this.getUnixTimestamp()}),!r||(r.value!==e||r.version!==n)}removeConfigCache(t){this.configCache.delete(t)}async get(t){const e=this.getConfigCache(t);if(null!=e)return{value:e.value,version:e.version,is_changed:!1};const n=await this.rpcClient.call("sys_config_get",{key:t});if(null==n)throw new Error(`system_config key not found: ${t}`);if("string"!=typeof n.value||"number"!=typeof n.version)throw new Error(`invalid sys_config_get response for key: ${t}`);const r=this.setConfigCache(t,n.value,n.version);return{value:n.value,version:n.version,is_changed:r}}async set(t,e){if(!t||!e)throw new Error("key or value is empty");if(t.includes(":"))throw new Error("key can not contain ':'");return await this.rpcClient.call("sys_config_set",{key:t,value:e}),this.removeConfigCache(t),0}async setByJsonPath(t,e,n){return await this.rpcClient.call("sys_config_set_by_json_path",{key:t,json_path:e,value:n}),this.removeConfigCache(t),0}async create(t,e){return await this.rpcClient.call("sys_config_create",{key:t,value:e}),this.removeConfigCache(t),0}async delete(t){return await this.rpcClient.call("sys_config_delete",{key:t}),this.removeConfigCache(t),0}async append(t,e){return await this.rpcClient.call("sys_config_append",{key:t,append_value:e}),this.removeConfigCache(t),0}async list(t){return this.rpcClient.call("sys_config_list",{key:t})}async execTx(t,e){const n={actions:t};e&&(n.main_key=`${e[0]}:${e[1]}`),await this.rpcClient.call("sys_config_exec_tx",n);for(const r of Object.keys(t))this.removeConfigCache(r);return 0}async dumpConfigsForScheduler(){return this.rpcClient.call("dump_configs_for_scheduler",{})}async refreshTrustKeys(){await this.rpcClient.call("sys_refresh_trust_keys",{})}}const $r={CHAT_COMPLETIONS_CREATE:"chat.completions.create",IMAGES_GENERATE:"images.generate",EMBEDDING_TEXT:"embedding.text",EMBEDDING_MULTIMODAL:"embedding.multimodal",RERANK:"rerank",DECISION_EVALUATE:"decision.evaluate",IMAGE_IMG2IMG:"image.img2img",IMAGE_INPAINT:"image.inpaint",IMAGE_UPSCALE:"image.upscale",IMAGE_BG_REMOVE:"image.bg_remove",VISION_OCR:"vision.ocr",VISION_CAPTION:"vision.caption",VISION_DETECT:"vision.detect",VISION_SEGMENT:"vision.segment",AUDIO_TTS:"audio.tts",AUDIO_ASR:"audio.asr",AUDIO_MUSIC:"audio.music",AUDIO_ENHANCE:"audio.enhance",VIDEO_TXT2VIDEO:"video.txt2video",VIDEO_IMG2VIDEO:"video.img2video",VIDEO_VIDEO2VIDEO:"video.video2video",VIDEO_EXTEND:"video.extend",VIDEO_UPSCALE:"video.upscale",AGENT_COMPUTER_USE:"agent.computer_use"},Qr={ROUTE_RESOLVE:"route.resolve",HELPER_LLM_CHAT:"helper.llm_chat",HELPER_TEXT_TO_IMAGE:"helper.text_to_image",CANCEL:"cancel"},Jr={SERVICE_RELOAD_SETTINGS:"service.reload_settings",QUOTA_QUERY:"quota.query",USAGE_QUERY:"usage.query",TRACE_QUERY:"trace.query",ROUTING_GET:"routing.get",ROUTING_PREVIEW:"routing.preview",ROUTING_UPDATE:"routing.update",PROVIDER_CATALOG:"provider.catalog",PROTOCOL_ADAPTER_LIST:"protocol_adapter.list",PROVIDER_VALIDATE:"provider.validate",PROVIDER_ADD:"provider.add",PROVIDER_LIST:"provider.list",PROVIDER_HEALTH:"provider.health",PROVIDER_UPDATE:"provider.update",PROVIDER_DELETE:"provider.delete",PROVIDER_REFRESH_MODELS:"provider.refresh_models",MODELS_LIST:"models.list",DRIVER_METADATA_UPDATE_GET:"driver_metadata_update.get",DRIVER_METADATA_UPDATE_SET:"driver_metadata_update.set"},Yr={...$r,...Qr,...Jr},Zr={IMMEDIATE:"immediate",STREAM:"stream"},Xr=new Set(Object.values($r));function ts(t){const e={system:["text"],developer:["text"],user:["text","image","document"],assistant:["text","image","document","tool_use","thinking","provider_state"],tool:["tool_result"]};if(!t||!Array.isArray(t.content)||!e[t.role])throw new Fn("invalid AiMessage");if("tool"===t.role&&(1!==t.content.length||"tool_result"!==t.content[0].type))throw new Fn("role Tool requires exactly one ToolResult block");for(const n of t.content){if(!e[t.role].includes(n.type))throw new Fn(`AiMessage role ${t.role} cannot contain ${n.type} content`);if(("tool_use"===n.type||"tool_result"===n.type)&&!n.call_id)throw new Fn(`${n.type} requires call_id`);if("tool_result"===n.type&&0===n.content.length)throw new Fn("tool_result requires non-empty content")}}function es(t){if(!t||2!==t.split("@").length||t.startsWith("@")||t.endsWith("@"))throw new Fn("exact_model must be `<provider_model_id>[:<variant>]@<provider_instance_name>`")}function ns(t){if(!(null==t?void 0:t.trim())||t.includes("@"))throw new Fn("logical_model must be a non-empty logical path without `@`")}function rs(t,e){for(const s of Object.keys(t))if(!e.includes(s))throw new Fn(`unknown field \`${s}\``);const n=t.execution_mode;if(void 0!==n&&n!==Zr.IMMEDIATE&&n!==Zr.STREAM)throw new Fn("execution_mode must be `immediate` or `stream`");const r=t.session_id;if(void 0!==r&&("string"!=typeof r||!r.trim()||(new TextEncoder).encode(r).length>512))throw new Fn("session_id must contain 1..512 bytes")}const ss=["exact_model","trace_id","execution_mode","idempotency_key","task_options","session_id"],is={[$r.CHAT_COMPLETIONS_CREATE]:[...ss,"web_search","messages","tools","response_format","temperature","top_p","max_output_tokens","seed","stop","output"],[$r.IMAGES_GENERATE]:[...ss,"prompt","negative_prompt","n","aspect_ratio","size","quality","style","seed","output"],[$r.EMBEDDING_TEXT]:[...ss,"items","chunking","embedding_space_id","dimensions","normalize","prefer_artifact"],[$r.EMBEDDING_MULTIMODAL]:[...ss,"items","dimensions","normalize"],[$r.DECISION_EVALUATE]:[...ss,"state","questions"],[$r.RERANK]:[...ss,"query","documents","n","return_documents"],[$r.IMAGE_IMG2IMG]:[...ss,"images","prompt","strength","output"],[$r.IMAGE_INPAINT]:[...ss,"image","mask","prompt","mask_semantics","output"],[$r.IMAGE_UPSCALE]:[...ss,"image","scale","target_width","target_height","preserve_faces","output"],[$r.IMAGE_BG_REMOVE]:[...ss,"image","mode","output"],[$r.VISION_OCR]:[...ss,"document","level","language_hints","return_layout","return_artifacts"],[$r.VISION_CAPTION]:[...ss,"image","style","language","n"],[$r.VISION_DETECT]:[...ss,"image","classes","score_threshold","bbox_spec"],[$r.VISION_SEGMENT]:[...ss,"image","prompt","mask_format","return_bitmap_mask"],[$r.AUDIO_TTS]:[...ss,"text","voice","speed","output"],[$r.AUDIO_ASR]:[...ss,"audio","language","timestamps","diarization","output_formats"],[$r.AUDIO_MUSIC]:[...ss,"prompt","duration_seconds","instrumental","lyrics","seed","output"],[$r.AUDIO_ENHANCE]:[...ss,"audio","task","strength","return_stems"],[$r.VIDEO_TXT2VIDEO]:[...ss,"prompt","duration_seconds","aspect_ratio","resolution","generate_audio","seed","output"],[$r.VIDEO_IMG2VIDEO]:[...ss,"image","prompt","duration_seconds","aspect_ratio","resolution"],[$r.VIDEO_VIDEO2VIDEO]:[...ss,"video","prompt","preserve_motion","time_range"],[$r.VIDEO_EXTEND]:[...ss,"video","prompt","continuation_handle","duration_seconds","resolution"],[$r.VIDEO_UPSCALE]:[...ss,"video","target_resolution","denoise","sharpen","output"],[$r.AGENT_COMPUTER_USE]:[...ss,"task","environment","allowed_actions"],[Qr.ROUTE_RESOLVE]:["trace_id","execution_mode","request_id","api_type","logical_model","requirements","disable","policy","estimated_input_tokens","estimated_output_tokens","session_overlay","session_id"],[Qr.HELPER_LLM_CHAT]:["logical_model","trace_id","execution_mode","requirements","disable","policy","messages","tools","response_format","temperature","top_p","max_output_tokens","seed","stop","output","idempotency_key","task_options","session_overlay","session_id"],[Qr.HELPER_TEXT_TO_IMAGE]:["logical_model","trace_id","execution_mode","requirements","disable","policy","prompt","negative_prompt","n","aspect_ratio","size","quality","style","seed","output","idempotency_key","task_options","session_overlay","session_id"],[Qr.CANCEL]:["task_id"],[Jr.SERVICE_RELOAD_SETTINGS]:[],[Jr.QUOTA_QUERY]:["capability","method"],[Jr.USAGE_QUERY]:["time_range","filters","group_by","time_bucket","output_mode","limit","cursor"],[Jr.TRACE_QUERY]:["limit","cursor","start_time_ms","end_time_ms","task_ids","request_ids","api_types","provider_instance_names","selected_exact_models","scheduler_profiles","query","outcome"],[Jr.ROUTING_GET]:[],[Jr.ROUTING_PREVIEW]:["paths","explain","requirements"],[Jr.ROUTING_UPDATE]:["settings_revision","provider_weights"],[Jr.PROVIDER_CATALOG]:[],[Jr.PROTOCOL_ADAPTER_LIST]:[],[Jr.PROVIDER_VALIDATE]:["provider_instance_name","provider_type","provider_profile_id","protocol_family_id","protocol_adapter_id","base_url","credentials","region","workspace","account","provider_rules_id","auth","discovery","instance_rules","timeout_ms","auto_sync_models"],[Jr.PROVIDER_ADD]:["provider_instance_name","provider_type","provider_profile_id","protocol_family_id","protocol_adapter_id","base_url","credentials","region","workspace","account","provider_rules_id","auth","discovery","instance_rules","timeout_ms","auto_sync_models"],[Jr.PROVIDER_LIST]:["method"],[Jr.PROVIDER_HEALTH]:["exact_model"],[Jr.PROVIDER_UPDATE]:["provider_instance_name","settings_revision","enabled","base_url","credential","provider_profile_id","protocol_adapter_id","discovery","instance_rules"],[Jr.PROVIDER_DELETE]:["provider_instance_name"],[Jr.PROVIDER_REFRESH_MODELS]:["provider_instance_name"],[Jr.MODELS_LIST]:[],[Jr.DRIVER_METADATA_UPDATE_GET]:[],[Jr.DRIVER_METADATA_UPDATE_SET]:["enabled","source_url","interval_secs"]};class os{constructor(t){this.rpcClient=t}setSeq(t){this.rpcClient.setSeq(t)}call(t,e){const n=is[t],r=(null==n?void 0:n.includes("execution_mode"))&&void 0===e.execution_mode?{...e,execution_mode:Zr.IMMEDIATE}:e;return n&&rs(r,n),this.rpcClient.call(t,r)}inference(t,e){return es(e.exact_model),this.call(t,e)}routeResolve(t){return ns(t.logical_model),this.call(Qr.ROUTE_RESOLVE,t)}chatCompletionsCreate(t){return t.messages.forEach(ts),this.inference($r.CHAT_COMPLETIONS_CREATE,t)}imagesGenerate(t){return this.inference($r.IMAGES_GENERATE,t)}helperLlmChat(t){return ns(t.logical_model),t.messages.forEach(ts),this.call(Qr.HELPER_LLM_CHAT,t)}helperTextToImage(t){return ns(t.logical_model),this.call(Qr.HELPER_TEXT_TO_IMAGE,t)}embeddingText(t){return this.inference($r.EMBEDDING_TEXT,t)}embeddingMultimodal(t){return this.inference($r.EMBEDDING_MULTIMODAL,t)}async decisionEvaluate(t){ds(t);const e=await this.inference($r.DECISION_EVALUATE,t);return"succeeded"===e.status&&fs(t,e.answers??[]),e}rerank(t){return this.inference($r.RERANK,t)}imageToImage(t){return this.inference($r.IMAGE_IMG2IMG,t)}imageInpaint(t){return this.inference($r.IMAGE_INPAINT,t)}imageUpscale(t){return this.inference($r.IMAGE_UPSCALE,t)}imageBackgroundRemove(t){return this.inference($r.IMAGE_BG_REMOVE,t)}visionOcr(t){return this.inference($r.VISION_OCR,t)}visionCaption(t){return this.inference($r.VISION_CAPTION,t)}visionDetect(t){return this.inference($r.VISION_DETECT,t)}visionSegment(t){return this.inference($r.VISION_SEGMENT,t)}audioTextToSpeech(t){return this.inference($r.AUDIO_TTS,t)}audioSpeechRecognition(t){return this.inference($r.AUDIO_ASR,t)}audioMusic(t){return this.inference($r.AUDIO_MUSIC,t)}audioEnhance(t){return this.inference($r.AUDIO_ENHANCE,t)}videoTextToVideo(t){return this.inference($r.VIDEO_TXT2VIDEO,t)}videoImageToVideo(t){return this.inference($r.VIDEO_IMG2VIDEO,t)}videoToVideo(t){return this.inference($r.VIDEO_VIDEO2VIDEO,t)}videoExtend(t){return this.inference($r.VIDEO_EXTEND,t)}videoUpscale(t){return this.inference($r.VIDEO_UPSCALE,t)}computerUse(t){return this.inference($r.AGENT_COMPUTER_USE,t)}cancel(t){if(!t)throw new Fn("cancel requires non-empty task_id");return this.call(Qr.CANCEL,{task_id:t})}reloadSettings(){return this.call(Jr.SERVICE_RELOAD_SETTINGS,{})}queryQuota(t={}){return this.call(Jr.QUOTA_QUERY,t)}queryUsage(t){return this.call(Jr.USAGE_QUERY,t)}queryTrace(t={}){return this.call(Jr.TRACE_QUERY,t)}previewRouting(t={}){return this.call(Jr.ROUTING_PREVIEW,t)}getRouting(){return this.call(Jr.ROUTING_GET,{})}updateRouting(t){return this.call(Jr.ROUTING_UPDATE,t)}providerCatalog(){return this.call(Jr.PROVIDER_CATALOG,{})}listProtocolAdapters(){return this.call(Jr.PROTOCOL_ADAPTER_LIST,{})}validateProvider(t){return this.call(Jr.PROVIDER_VALIDATE,t)}addProvider(t){return this.call(Jr.PROVIDER_ADD,t)}listProviders(t={}){return this.call(Jr.PROVIDER_LIST,t)}providerHealth(t){return es(t.exact_model),this.call(Jr.PROVIDER_HEALTH,t)}updateProvider(t){return this.call(Jr.PROVIDER_UPDATE,t)}deleteProvider(t){return this.call(Jr.PROVIDER_DELETE,t)}refreshProviderModels(t){return this.call(Jr.PROVIDER_REFRESH_MODELS,t)}listModels(){return this.call(Jr.MODELS_LIST,{})}getDriverMetadataUpdate(){return this.call(Jr.DRIVER_METADATA_UPDATE_GET,{})}setDriverMetadataUpdate(t){return this.call(Jr.DRIVER_METADATA_UPDATE_SET,t)}}function as(t,e=!0){return"string"==typeof t?!e||t.trim().length>0:null!==t&&"object"==typeof t&&(!e||Object.keys(t).length>0)}function cs(t){return"string"==typeof t&&/^[A-Za-z0-9_.-]{1,128}$/.test(t)}function ls(t){return null===t||"object"!=typeof t?JSON.stringify(t):Array.isArray(t)?`[${t.map(ls).join(",")}]`:`{${Object.keys(t).sort().map((e=>`${JSON.stringify(e)}:${ls(t[e])}`)).join(",")}}`}function us(t){return(new TextEncoder).encode(JSON.stringify(t)).length}function hs(t){const e=us(t.state),n={question_types:[],structured_state:"string"!=typeof t.state,structured_rules:!1,question_count:t.questions.length,max_options:0,max_levels:0,input_bytes:e+us(t.questions),max_state_question_bytes:0};for(const r of t.questions){n.question_types.includes(r.type)||n.question_types.push(r.type);const t=[r.instructions];"choice"===r.type?(n.max_options=Math.max(n.max_options,r.options.length),t.push(...r.options.map((t=>t.description)))):"score"===r.type?(n.max_levels=Math.max(n.max_levels,r.levels.length),t.push(...r.levels)):r.criteria&&t.push(...Object.values(r.criteria)),n.structured_rules||(n.structured_rules=t.some((t=>null!==t&&"object"==typeof t))),n.max_state_question_bytes=Math.max(n.max_state_question_bytes,e+us(r))}return{decision:n}}function ds(t){if(es(t.exact_model),rs(t,is[$r.DECISION_EVALUATE]),!as(t.state,!1)||!Array.isArray(t.questions)||!t.questions.length||t.questions.length>1024)throw new Fn("decision requires a text/JSON state and 1..1024 questions");const e=new Set;for(const n of t.questions){if(!n||!cs(n.id)||e.has(n.id)||!as(n.instructions))throw new Fn("invalid decision question");if(e.add(n.id),"choice"===n.type){if(rs(n,["type","id","instructions","options"]),!Array.isArray(n.options)||!n.options.length||n.options.length>1024)throw new Fn("invalid decision options");const t=new Set;for(const e of n.options){if(rs(e,["id","description"]),!cs(e.id)||t.has(e.id)||null!==e.description&&!as(e.description))throw new Fn("invalid decision option");t.add(e.id)}}else if("score"===n.type){if(rs(n,["type","id","instructions","levels"]),!Array.isArray(n.levels)||n.levels.length<2||n.levels.length>1024||n.levels.some((t=>!as(t)))||new Set(n.levels.map(ls)).size!==n.levels.length)throw new Fn("invalid decision levels")}else{if("boolean"!==n.type)throw new Fn("invalid decision question type");if(rs(n,["type","id","instructions","criteria"]),void 0!==n.criteria){if(null===n.criteria||"object"!=typeof n.criteria||Array.isArray(n.criteria))throw new Fn("invalid decision criteria");if(rs(n.criteria,["true","false"]),Object.values(n.criteria).some((t=>!as(t))))throw new Fn("invalid decision criteria")}}}if(hs(t).decision.input_bytes>1048576)throw new Fn("decision input exceeds 1 MiB")}function fs(t,e){const n=t=>"number"==typeof t&&Number.isFinite(t)&&t>=0&&t<=1,r=()=>{throw new Fn("invalid or incomplete decision answers")};Array.isArray(e)&&e.length===t.questions.length||r();const s=new Set;for(const i of e){i&&!s.has(i.id)||r(),s.add(i.id);const e=t.questions.find((t=>t.id===i.id));if(!e)throw new Fn("unknown decision question ID");if((e.type!==i.type||void 0!==i.confidence&&!n(i.confidence))&&r(),"boolean"===i.type){rs(i,["type","id","probability_true","confidence"]),n(i.probability_true)||r();continue}rs(i,"choice"===i.type?["type","id","selected","probabilities","confidence"]:["type","id","score","levels","probabilities","confidence"]);const o="choice"===e.type?e.options.map((t=>t.id)):"score"===e.type?e.levels.map(((t,e)=>String(e))):[];if((!i.probabilities||Array.isArray(i.probabilities)||Object.keys(i.probabilities).length!==o.length||o.some((t=>!Object.prototype.hasOwnProperty.call(i.probabilities,t)||!n(i.probabilities[t])))||Math.abs(Object.values(i.probabilities).reduce(((t,e)=>t+e),0)-1)>1e-4)&&r(),"choice"===i.type)o.includes(i.selected)&&!Object.values(i.probabilities).some((t=>t>i.probabilities[i.selected]+1e-4))||r();else if("score"===i.type&&"score"===e.type){const t=o.reduce(((t,e,n)=>t+n*i.probabilities[e]),0);(!Number.isFinite(i.score)||i.score<0||i.score>o.length-1||Math.abs(i.score-t)>1e-4*(o.length-1)||ls(i.levels)!==ls(e.levels))&&r()}else r()}}const ps={max_messages:null,retention_seconds:null,sync_write:!1,keep_acked:!1,other_app_can_read:!0,other_app_can_write:!1,other_user_can_read:!1,other_user_can_write:!1};function gs(t,e){if("number"!=typeof t||!Number.isFinite(t))throw new Fn(`expected ${e} to be a number`);return t}function ms(t,e){if("string"!=typeof t)throw new Fn(`expected ${e} to be a string`);return t}function ys(t){if(!Array.isArray(t))throw new Fn("expected message list to be an array");return t.map(((t,e)=>{if(!t||"object"!=typeof t||Array.isArray(t))throw new Fn(`message[${e}] is not an object`);const n=t;return{index:gs(n.index,`message[${e}].index`),created_at:gs(n.created_at,`message[${e}].created_at`),payload:Array.isArray(n.payload)?n.payload:[],headers:n.headers&&"object"==typeof n.headers&&!Array.isArray(n.headers)?n.headers:{}}}))}class ws{constructor(t){this.rpcClient=t}setSeq(t){this.rpcClient.setSeq(t)}async createQueue(t,e,n,r={...ps}){return ms(await this.rpcClient.call("create_queue",{name:t,appid:e,app_owner:n,config:r}),"queue_urn")}async deleteQueue(t){await this.rpcClient.call("delete_queue",{queue_urn:t})}async getQueueStats(t){const e=await this.rpcClient.call("get_queue_stats",{queue_urn:t});if(!e||"object"!=typeof e)throw new Fn("invalid get_queue_stats response");const n=e;return{message_count:gs(n.message_count,"message_count"),first_index:gs(n.first_index,"first_index"),last_index:gs(n.last_index,"last_index"),size_bytes:gs(n.size_bytes,"size_bytes")}}async updateQueueConfig(t,e){await this.rpcClient.call("update_queue_config",{queue_urn:t,config:e})}async postMessage(t,e){return gs(await this.rpcClient.call("post_message",{queue_urn:t,message:e}),"msg_index")}async subscribe(t){return ms(await this.rpcClient.call("subscribe",{queue_urn:t.queueUrn,userid:t.userId,appid:t.appId,sub_id:t.subId??null,position:t.position}),"subscription_id")}async unsubscribe(t){await this.rpcClient.call("unsubscribe",{sub_id:t})}async fetchMessages(t,e,n){return ys(await this.rpcClient.call("fetch_messages",{sub_id:t,length:e,auto_commit:n}))}async readMessage(t,e,n){return ys(await this.rpcClient.call("read_message",{queue_urn:t,cursor:e,length:n}))}async commitAck(t,e){await this.rpcClient.call("commit_ack",{sub_id:t,index:e})}async seek(t,e){await this.rpcClient.call("seek",{sub_id:t,index:e})}async deleteMessageBefore(t,e){return gs(await this.rpcClient.call("delete_message_before",{queue_urn:t,index:e}),"deleted_count")}}const bs="zone_user",As="zone_agent",_s="homestation.following",vs=[{key:bs,kind:"system",user_editable:!1},{key:As,kind:"system",user_editable:!1},{key:_s,kind:"app",app:"homestation",user_editable:!1}];function Es(t){const e=/^([a-z][a-z0-9_-]*)\.([a-z0-9_.-]+)$/.exec(t);return e?e[1]:null}const ks="type:",Ss="group:";function Ts(t){return t.startsWith(ks)||t.startsWith(Ss)}const Rs="buckyos.notify",Is="sysnotify:",Os="option",Cs="text",xs="answer",Ns="dismiss",Ps="/messagehub";function Ds(t){return"open"!==t&&"read"!==t}function Bs(t){const e={};for(const[n,r]of Object.entries(t))void 0!==r&&(e[n]=r);return e}function Us(t,e){if(!t||"object"!=typeof t||Array.isArray(t))throw new Fn(`expected ${e} to be an object`);return t}function Ls(t,e){return null==t?null:Us(t,e)}function Ms(t,e){if(!Array.isArray(t))throw new Fn(`expected ${e} to be an array`);return t}function Fs(t,e){if("string"!=typeof t)throw new Fn(`${e} expected to return a DID string`);return t}function Gs(t){const e=Us(t,"NotifyView");if("string"!=typeof e.notify_id||"string"!=typeof e.status)throw new Fn("Invalid NotifyView");return e}class js{constructor(t){this.rpcClient=t}setSeq(t){this.rpcClient.setSeq(t)}call(t,e){return this.rpcClient.call(t,e)}async dispatch(t,e,n){return Us(await this.call("msg.dispatch",Bs({msg:t,ingress_ctx:e,idempotency_key:n})),"DispatchResult")}async postSend(t,e){return Us(await this.call("msg.post_send",Bs({msg:t,idempotency_key:e})),"PostSendResult")}async listMailboxes(t,e){return Ms(await this.call("msg.list_mailboxes",{owner:t,box_kind:e}),"Vec<MailboxAddress>")}async moveRecord(t,e){return Us(await this.call("msg.move_record",{record_id:t,mailbox:e}),"MailboxRecord")}async getNext(t){return Ls(await this.call("msg.get_next",Bs({...t})),"MailboxRecordWithObject")}async getNextDelivery(t){return Ls(await this.call("msg.get_next_delivery",Bs({...t})),"DeliveryRecordWithObject")}async peekBox(t){return Ms(await this.call("msg.peek_box",Bs({...t})),"Vec<MailboxRecordWithObject>")}async listBoxByTime(t){const e=Us(await this.call("msg.list_box_by_time",Bs({...t})),"MailboxRecordPage");return{...e,items:Array.isArray(e.items)?e.items:[]}}async listSessions(t){const e=Us(await this.call("msg.list_sessions",Bs({...t})),"SessionSummaryPage");return{...e,items:Array.isArray(e.items)?e.items:[]}}async listSession(t){const e=Us(await this.call("msg.list_session",Bs({...t})),"SessionMessagePage");return{...e,items:Array.isArray(e.items)?e.items:[]}}async updateRecordState(t,e){return Us(await this.call("msg.update_record_state",{record_id:t,new_state:e}),"MailboxRecord")}async updateRecordSession(t,e){return Us(await this.call("msg.update_record_session",{record_id:t,session_id:e}),"MailboxRecord")}async reportDelivery(t,e){return Us(await this.call("msg.report_delivery",{delivery_id:t,result:e}),"DeliveryRecord")}async setReadState(t){return Us(await this.call("msg.set_read_state",Bs({...t})),"MsgReceiptObj")}async listReadReceipts(t){return Ms(await this.call("msg.list_read_receipts",Bs({...t})),"Vec<MsgReceiptObj>")}async getRecord(t,e){return Ls(await this.call("msg.get_record",Bs({record_id:t,with_object:e})),"MailboxRecordWithObject")}async getMessage(t){return Ls(await this.call("msg.get_message",{msg_id:t}),"MsgObject")}async updateUiSessionState(t,e,n){return Us(await this.call("ui_session.update_state",{session_id:t,key:e,value:n}),"UiSessionStateEntry")}async getUiSessionState(t,e){return Ls(await this.call("ui_session.get_state",{session_id:t,key:e}),"UiSessionStateEntry")}async listUiSessionState(t){return Ms(await this.call("ui_session.list_state",{session_id:t}),"Vec<UiSessionStateEntry>")}async resolveDid(t,e,n,r){return Fs(await this.call("contact.resolve_did",Bs({platform:t,account_id:e,profile_hint:n,contact_mgr_owner:r})),"contact.resolve_did")}async resolveEndpointDid(t,e,n,r,s){return Fs(await this.call("contact.resolve_endpoint_did",Bs({platform:t,account_id:e,account_type:n,tunnel_instance_id:r,contact_mgr_owner:s})),"contact.resolve_endpoint_did")}async resolveTarget(t,e,n){return Fs(await this.call("contact.resolve_target",Bs({contact_did:t,selector:e,contact_mgr_owner:n})),"contact.resolve_target")}async resolveContactForEndpoint(t,e){const n=await this.call("contact.resolve_contact_for_endpoint",Bs({endpoint_did:t,contact_mgr_owner:e}));return s="contact.resolve_contact_for_endpoint",null==(r=n)?null:Fs(r,s);var r,s}async resolveCanonicalDid(t,e){return Fs(await this.call("contact.resolve_canonical_did",Bs({did:t,contact_mgr_owner:e})),"contact.resolve_canonical_did")}async listAliasDids(t,e){return Ms(await this.call("contact.list_alias_dids",Bs({canonical_did:t,contact_mgr_owner:e})),"Vec<DID>")}async getPreferredBinding(t,e){return Us(await this.call("contact.get_preferred_binding",Bs({did:t,contact_mgr_owner:e})),"AccountBinding")}async checkAccessPermission(t,e,n){return Us(await this.call("contact.check_access_permission",Bs({did:t,context_id:e,contact_mgr_owner:n})),"AccessDecision")}async grantTemporaryAccess(t,e,n,r){const s=Us(await this.call("contact.grant_temporary_access",Bs({dids:t,context_id:e,duration_secs:n,contact_mgr_owner:r})),"GrantTemporaryAccessResult");return{updated:Array.isArray(s.updated)?s.updated:[]}}async blockContact(t,e,n){await this.call("contact.block_contact",Bs({did:t,reason:e,contact_mgr_owner:n}))}async importContacts(t,e,n){return Us(await this.call("contact.import_contacts",Bs({contacts:t,upgrade_to_friend:e,contact_mgr_owner:n})),"ImportReport")}async mergeContacts(t,e,n){return Us(await this.call("contact.merge_contacts",Bs({target_did:t,source_did:e,contact_mgr_owner:n})),"Contact")}async updateContact(t,e,n){return Us(await this.call("contact.update_contact",Bs({did:t,patch:e,contact_mgr_owner:n})),"Contact")}async getContact(t,e){return Ls(await this.call("contact.get_contact",Bs({did:t,contact_mgr_owner:e})),"Contact")}async listContacts(t,e){return Ms(await this.call("contact.list_contacts",Bs({query:t,contact_mgr_owner:e})),"Vec<Contact>")}async getGroupSubscribers(t,e,n,r){return Ms(await this.call("contact.get_group_subscribers",Bs({group_id:t,limit:e,offset:n,contact_mgr_owner:r})),"Vec<DID>")}async setGroupSubscribers(t,e,n){const r=Us(await this.call("contact.set_group_subscribers",Bs({group_id:t,subscribers:e,contact_mgr_owner:n})),"SetGroupSubscribersResult");if("string"!=typeof r.group_id||"number"!=typeof r.subscriber_count)throw new Fn("Invalid SetGroupSubscribersResult");return{group_id:r.group_id,subscriber_count:r.subscriber_count}}async lookup(t){const e=Us(await this.call("contact.lookup",Bs({...t})),"LookupResult");return{...e,candidates:Array.isArray(e.candidates)?e.candidates:[]}}async updateContactTags(t,e,n){return Us(await this.call("contact.update_tags",Bs({did:t,add:e.add,remove:e.remove,contact_mgr_owner:n})),"Contact")}async removeContact(t,e){await this.call("contact.remove_contact",Bs({did:t,contact_mgr_owner:e}))}async unblockContact(t,e){return Us(await this.call("contact.unblock_contact",Bs({did:t,contact_mgr_owner:e})),"Contact")}async sendFriendRequest(t,e,n){return Us(await this.call("contact.send_friend_request",Bs({did:t,message:e,contact_mgr_owner:n})),"FriendRequestResult")}async respondFriendRequest(t,e,n){return Us(await this.call("contact.respond_friend_request",Bs({request_id:t,decision:e,contact_mgr_owner:n})),"FriendRequestResult")}async cancelFriendRequest(t,e){return Us(await this.call("contact.cancel_friend_request",Bs({request_id:t,contact_mgr_owner:e})),"FriendRequestResult")}async removeFriend(t,e,n){return Us(await this.call("contact.remove_friend",Bs({did:t,notify:e,contact_mgr_owner:n})),"FriendRequestResult")}async listFriendRequests(t={}){const e=Ls(await this.call("contact.list_friend_requests",Bs({...t})),"FriendRequestPage");return e&&Array.isArray(e.items)?e.items:[]}async notifySend(t){return Gs(await this.call("notify.send",Bs({...t})))}async notifyGet(t){return Gs(await this.call("notify.get",{notify_id:t}))}async notifyList(t={}){const e=Us(await this.call("notify.list",Bs({...t})),"NotifyListResult");return{...e,items:Ms(e.items,"Vec<NotifyView>").map(Gs)}}async notifyAck(t,e){return Gs(await this.call("notify.ack",Bs({notify_id:t,on_behalf:e})))}async notifyDismiss(t){return Gs(await this.call("notify.dismiss",{notify_id:t}))}async notifyCancel(t,e){return Gs(await this.call("notify.cancel",Bs({notify_id:t,reason:e})))}}function Hs(t){for(const e of t.controls??[])if("choice"===e.kind&&e.id===Os)return e.options??[];return[]}function Vs(t,e,n){const r={};return t.option&&(r[Os]=t.option),t.text&&t.text.trim()&&(r[Cs]=t.text),{kind:"human",action:t.dismiss?Ns:xs,...Object.keys(r).length>0?{values:r}:{},submitted_by:e,submitted_at:n}}function Ws(t,e){if(t.dismiss)return null;const n=Hs(e),r=(e.controls??[]).some((t=>"text_input"===t.kind&&t.id===Cs));if(null!=t.option&&!n.some((e=>e.value===t.option)))return`no option '${t.option}'; options: ${n.map((t=>t.value)).join(", ")}`;const s=!!t.text&&""!==t.text.trim();return s&&!r?"this question takes one of its options, not free text":null!=t.option||s?null:"an answer needs an option or a text"}function Ks(t,e){const n=null==t?void 0:t.content;if(!n||"object"!=typeof n)return null;const r=n.machine;if(!r||"object"!=typeof r||r.intent!==e)return null;const s=r.data;return s&&"object"==typeof s&&!Array.isArray(s)?s:null}async function zs(t,e,n,r,s=Date.now()){for(let a=0;a<3;a+=1){const i=await t.getTask(e);if(Ar(i.phase)||null!=i.result)return{kind:"already_closed",task:i};try{return{kind:"committed",task:await t.commitResult({task_id:e,result:Vs(n,r,s),expected_revision:i.revision})}}catch(o){const n=yr(o);if(n===ur)return{kind:"already_closed",task:await t.getTask(e)};if(n!==ir)throw o}}const i=await t.getTask(e);if(Ar(i.phase))return{kind:"already_closed",task:i};throw new Fn(`task ${e} keeps changing; answer not committed`)}async function qs(t,e){const n=Date.now();if(e)try{if(await e.pullEvent(t))return}catch{}const r=t-(Date.now()-n);r>0&&await function(t){return new Promise((e=>setTimeout(e,t)))}(r)}function $s(t){const e={};for(const[n,r]of Object.entries(t))void 0!==r&&(e[n]=r);return e}function Qs(t,e){if("string"!=typeof t)throw new Fn(`expected ${e} to be a string`);return t}function Js(t,e){if("boolean"!=typeof t)throw new Fn(`expected ${e} to be a boolean`);return t}function Ys(t,e){if("number"!=typeof t||!Number.isFinite(t))throw new Fn(`expected ${e} to be a number`);return t}function Zs(t,e){if(!Array.isArray(t))throw new Fn(`expected ${e} to be an array`);return t}function Xs(t,e){if(!t||"object"!=typeof t||Array.isArray(t))throw new Fn(`expected ${e} to be an object`);return t}class ti{constructor(t){this.rpcClient=t}setSeq(t){this.rpcClient.setSeq(t)}async store(t){return Qs(await this.rpcClient.call("store",{content_id:t}),"ObjId")}async collect(t,e){return Qs(await this.rpcClient.call("collect",$s({content_meta:t,referral_proof:e})),"content_id")}async pin(t,e){return Js(await this.rpcClient.call("pin",{content_id:t,download_proof:e}),"pin response")}async unpin(t,e=!1){return Js(await this.rpcClient.call("unpin",{content_id:t,force:e}),"unpin response")}async uncollect(t,e=!1){return Js(await this.rpcClient.call("uncollect",{content_id:t,force:e}),"uncollect response")}async addProof(t){return Qs(await this.rpcClient.call("add_proof",{proof:t}),"proof_id")}async getProofs(t,e){return Zs(await this.rpcClient.call("get_proofs",$s({content_id:t,filter:e})),"Vec<RepoProof>").map(((t,e)=>{const n=Xs(t,`RepoProof[${e}]`);if("Action"!==n.kind&&"Collection"!==n.kind)throw new Fn(`RepoProof[${e}] has unknown kind: ${String(n.kind)}`);return n}))}async resolve(t){return Zs(await this.rpcClient.call("resolve",{content_name:t}),"Vec<ObjId>").map(((t,e)=>Qs(t,`ObjId[${e}]`)))}async list(t){return Zs(await this.rpcClient.call("list",$s({filter:t})),"Vec<RepoRecord>").map(((t,e)=>{const n=Xs(t,`RepoRecord[${e}]`);return{content_id:Qs(n.content_id,`RepoRecord[${e}].content_id`),content_name:"string"==typeof n.content_name?n.content_name:void 0,status:Qs(n.status,`RepoRecord[${e}].status`),origin:Qs(n.origin,`RepoRecord[${e}].origin`),meta:n.meta,owner_did:"string"==typeof n.owner_did?n.owner_did:void 0,author:"string"==typeof n.author?n.author:void 0,access_policy:Qs(n.access_policy,`RepoRecord[${e}].access_policy`),price:"string"==typeof n.price?n.price:void 0,content_size:"number"==typeof n.content_size?n.content_size:void 0,collected_at:"number"==typeof n.collected_at?n.collected_at:void 0,pinned_at:"number"==typeof n.pinned_at?n.pinned_at:void 0,updated_at:"number"==typeof n.updated_at?n.updated_at:void 0}}))}async stat(){const t=Xs(await this.rpcClient.call("stat",{}),"RepoStat");return{total_objects:Ys(t.total_objects,"RepoStat.total_objects"),collected_objects:Ys(t.collected_objects,"RepoStat.collected_objects"),pinned_objects:Ys(t.pinned_objects,"RepoStat.pinned_objects"),local_objects:Ys(t.local_objects,"RepoStat.local_objects"),remote_objects:Ys(t.remote_objects,"RepoStat.remote_objects"),total_content_bytes:Ys(t.total_content_bytes,"RepoStat.total_content_bytes"),total_proofs:Ys(t.total_proofs,"RepoStat.total_proofs")}}async serve(t,e){const n=Xs(await this.rpcClient.call("serve",{content_id:t,request_context:e}),"RepoServeResult");return{status:Qs(n.status,"RepoServeResult.status"),content_ref:n.content_ref&&"object"==typeof n.content_ref?n.content_ref:void 0,download_proof:n.download_proof&&"object"==typeof n.download_proof?n.download_proof:void 0,reject_code:"string"==typeof n.reject_code?n.reject_code:void 0,reject_reason:"string"==typeof n.reject_reason?n.reject_reason:void 0}}async announce(t){return Js(await this.rpcClient.call("announce",{content_id:t}),"announce response")}}function ei(t){if(!t||t.length>253||t.includes("@"))throw new Error("hostname must be 1..=253 bytes and must not contain `@`");if(t!==t.toLowerCase()||!/^[\x00-\x7f]+$/.test(t))throw new Error("hostname must be canonical lowercase ASCII");for(const e of t.split("."))if(!e||e.length>63||e.startsWith("-")||e.endsWith("-")||!/^[a-z0-9-]+$/.test(e))throw new Error(`invalid DNS label \`${e}\``)}function ni(t){const e=/^did:([^:]+):(.+)$/.exec(t);if(!e)throw new Error("AppDID must be a canonical DID");const[,n,r]=e;if(!n||!r||n!==n.toLowerCase()||r!==r.toLowerCase()||r.includes(":")||r.includes("#")||r.includes("%"))throw new Error("AppDID must be a canonical lowercase hostname-form DID without path, port, encoding, or fragment");const s=new Mn.DID(n,r).toRawHostName();if(ei(s),"web"===n&&s.endsWith(".did"))throw new Error("AppDID did:web hostnames ending in `.did` are reserved");if(Mn.DID.fromStr(s).toString()!==t)throw new Error("AppDID raw hostname does not round-trip");return s}function ri(t){return ni(t.trim())}function si(t){const e=t.trim();ei(e);const n=ni(Mn.DID.fromStr(e).toString());if(n!==e)throw new Error("AppId is not a canonical AppDID raw hostname");return n}function ii(t){if(!t||t.length>64||!/^[a-z0-9._-]+$/.test(t))throw new Error("owner_user_id must be lowercase ASCII and contain only [a-z0-9._-]")}function oi(t,e){const n=si(t);return ii(e),`${n}@${e}`}function ai(t){const e=t.trim(),n=e.lastIndexOf("@");if(n<=0||n===e.length-1)throw new Error("AppInstanceId must be `{app_id}@{owner_user_id}`");const r=si(e.slice(0,n)),s=e.slice(n+1);return ii(s),{appId:r,ownerUserId:s}}const ci="BUCKYOS_APP_DID",li="BUCKYOS_APP_ID",ui="BUCKYOS_APP_INSTANCE_ID",hi="BUCKYOS_OWNER_USER_ID",di="BUCKYOS_DATA_DIR",fi="BUCKYOS_APP_TOKEN";var pi=(t=>(t.Browser="Browser",t.NodeJS="NodeJS",t.AppRuntime="AppRuntime",t.AppClient="AppClient",t.AppService="AppService",t.Unknown="Unknown",t))(pi||{});const gi=["admin","user","limited","root"];const mi="external";const yi={zoneHost:"",appId:"",appDid:null,appInstanceId:null,dataDir:null,defaultProtocol:"http://",runtimeType:"Unknown",userid:null,ownerUserId:null,rootDir:"",sessionToken:null,refreshToken:null,privateKeySearchPaths:[],systemConfigServiceUrl:"",verifyHubServiceUrl:"",nodeGatewayPort:3180,autoRenew:!0,renewIntervalMs:5e3};function wi(){const t=globalThis.process;return(null==t?void 0:t.env)??{}}function bi(){var t;const e=globalThis.process;return Boolean(null==(t=null==e?void 0:e.versions)?void 0:t.node)}function Ai(){return"undefined"!=typeof localStorage}function _i(){return"function"==typeof fetch}function vi(){const t=globalThis.Buffer;if(!t||"function"!=typeof t)throw new Error("Buffer is not available in this runtime");return t}function Ei(t){const e=vi();return("string"==typeof t?e.from(t,"utf8").toString("base64"):e.from(t).toString("base64")).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function ki(t){if(!t)return null;const e=t.split(".");if(e.length<2)return null;try{return JSON.parse(function(t){const e=t.replace(/-/g,"+").replace(/_/g,"/"),n=e+"=".repeat((4-e.length%4)%4);return"function"==typeof atob?atob(n):vi().from(n,"base64").toString("utf8")}(e[1]))}catch{return null}}function Si(t){if("string"!=typeof t)return null;const e=t.trim();return e.length>0?e:null}function Ti(t){const e=Si(t);return e?e.startsWith("did:web:")?e.slice(8).replace(/:/g,"."):e.startsWith("did:bns:")?e.slice(8):null:null}async function Ri(t){if(bi()&&"function"==typeof require)return require(t);return Function("name","return import(name)")(t)}class Ii{async initialize(t){await t.resolveAppServiceIdentityFromEnv(),await t.resolveZoneHostFromLocalConfig()}async login(t){await t.initialize(),t.startAutoRenewIfNeeded()}supportsManagedSessionRenewal(){return!1}shouldSkipVerifyHubRenewal(t){return!1}async getVerifyHubLoginJwt(t,e){return e}}class Oi extends Ii{getRelativeZoneServiceURL(t){return`/kapi/${t}/`}getRelativeSystemConfigServiceURL(){return"/kapi/system_config"}getServiceSettingsPath(t){var e;const n=null==(e=Mn.getBrowserUserInfo())?void 0:e.user_id;if(!n)throw new Error("Login is required for App settings");return`users/${n}/apps/${t.getAppId()}/settings`}getZoneServiceURL(t,e){return this.getRelativeZoneServiceURL(e)}getSystemConfigServiceURL(t){return this.getRelativeSystemConfigServiceURL()}getMySettingsPath(t){return this.getServiceSettingsPath(t)}}class Ci extends Oi{}class xi extends Ii{async login(t){await t.initialize(),await t.renewTokenFromVerifyHub(),t.startAutoRenewIfNeeded()}supportsManagedSessionRenewal(){return!0}}class Ni extends xi{async initialize(t){await super.initialize(t),await t.ensureAppClientSessionToken()}getZoneGatewayServiceURL(t,e){const n=Si(t.getZoneHostName());if(!n)throw new Error("zoneHost is required in AppClient mode");return`${t.getDefaultProtocol()}${n}/kapi/${e}`}getZoneSystemConfigURL(t){const e=Si(t.getZoneHostName());if(!e)throw new Error("zoneHost is required in AppClient mode");return`${t.getDefaultProtocol()}${e}/kapi/system_config`}getZoneServiceURL(t,e){return this.getZoneGatewayServiceURL(t,e)}getSystemConfigServiceURL(t){return this.getZoneSystemConfigURL(t)}getMySettingsPath(){throw new Error("AppClient not support getMySettingsPath")}shouldSkipVerifyHubRenewal(t){return!Si(t.getZoneHostName())&&!t.getConfiguredVerifyHubServiceUrl()}async getVerifyHubLoginJwt(t,e){return t.createAppClientSessionToken()}}class Pi extends xi{async initialize(t){await super.initialize(t),t.ensureAppServiceSessionToken()}getNodeGatewayServiceURL(t,e){const n=t.getNodeGatewayPort();return`http://${t.resolveAppServiceGatewayHost()}:${n}/kapi/${e}`}getNodeGatewaySystemConfigURL(t){const e=t.getNodeGatewayPort();return`http://${t.resolveAppServiceGatewayHost()}:${e}/kapi/system_config`}getUserAppSettingsPath(t){const e=t.getOwnerUserId();if(!e)throw new Error("ownerUserId is required for AppService settings");return`users/${e}/apps/${t.getAppId()}/settings`}getZoneServiceURL(t,e){return this.getNodeGatewayServiceURL(t,e)}getSystemConfigServiceURL(t){return this.getNodeGatewaySystemConfigURL(t)}getMySettingsPath(t){return this.getUserAppSettingsPath(t)}}function Di(t){switch(t){case"AppClient":return new Ni;case"AppService":return new Pi;case"AppRuntime":return new Ci;default:return new Oi}}class Bi{constructor(t){const e=Si(t.ownerUserId)??Si(t.userid);this.config={...yi,...t,appId:t.appId,appDid:Si(t.appDid),appInstanceId:Si(t.appInstanceId),dataDir:Si(t.dataDir),userid:e,ownerUserId:e,zoneHost:t.zoneHost??"",defaultProtocol:t.defaultProtocol??yi.defaultProtocol},this.sessionToken=Si(t.sessionToken),this.refreshToken=Si(t.refreshToken),this.renewTimer=null,this.browserRefreshPromise=null,this.authStateRevision=0,this.initialized=!1,this.profile=Di(this.config.runtimeType)}async initialize(){this.initialized||(await this.profile.initialize(this),this.validateSessionToken(),this.initialized=!0)}async login(){await this.profile.login(this)}setConfig(t){const e=Si(t.ownerUserId)??Si(t.userid);this.config={...yi,...t,appId:t.appId,appDid:Si(t.appDid),appInstanceId:Si(t.appInstanceId),dataDir:Si(t.dataDir),userid:e,ownerUserId:e},this.profile=Di(this.config.runtimeType)}getConfig(){return{...this.config}}getAppId(){return this.config.appId}getOwnerUserId(){return Si(this.config.ownerUserId)}getAppDid(){return Si(this.config.appDid)}getAppInstanceId(){return Si(this.config.appInstanceId)}getDataDir(){return Si(this.config.dataDir)}getAuthTarget(){if(this.config.authTarget){const t=er(this.config.authTarget);if(t!==this.config.appId)throw new Error(`auth target appid mismatch: ${t} != ${this.config.appId}`);return{...this.config.authTarget}}const t=this.getAppInstanceId();if(t){const e=ai(t);if(e.appId!==this.config.appId)throw new Error(`auth target appid mismatch: ${e.appId} != ${this.config.appId}`);return{kind:"app",app_instance_id:t}}if("AppClient"===this.config.runtimeType||"AppService"===this.config.runtimeType){const t=this.getOwnerUserId();if(!t)throw new Error("ownerUserId is required to build an App auth target");return{kind:"app",app_instance_id:oi(this.config.appId,t)}}throw new Error("authTarget or appInstanceId must be configured for this runtime")}getZoneHostName(){return this.config.zoneHost}getDefaultProtocol(){return this.config.defaultProtocol}getNodeGatewayPort(){return this.config.nodeGatewayPort??3180}getConfiguredVerifyHubServiceUrl(){return Si(this.config.verifyHubServiceUrl)}getZoneServiceURL(t){const e=function(t){return"system-config"===t?"system_config":t}(t);return this.profile.getZoneServiceURL(this,e)}getSystemConfigServiceURL(){const t=this.getConfiguredSystemConfigServiceUrl();return t||this.profile.getSystemConfigServiceURL(this)}setSessionToken(t){const e=Si(t);e!==this.sessionToken&&(this.authStateRevision+=1),this.sessionToken=e}setRefreshToken(t){this.refreshToken=Si(t)}getSessionToken(){return this.sessionToken}getRefreshToken(){return this.refreshToken}clearAuthState(){this.authStateRevision+=1,this.sessionToken=null,this.refreshToken=null,this.stopAutoRenew()}stopAutoRenew(){this.renewTimer&&(clearInterval(this.renewTimer),this.renewTimer=null)}getServiceRpcClient(t){return new jn(this.getZoneServiceURL(t),this.sessionToken,null,{sessionTokenProvider:this.ensureSessionTokenReady.bind(this),onSessionTokenChanged:this.setSessionToken.bind(this)})}getSystemConfigClient(){return new qr(this.getSystemConfigServiceURL(),this.sessionToken,{sessionTokenProvider:this.ensureSessionTokenReady.bind(this),onSessionTokenChanged:this.setSessionToken.bind(this)})}getVerifyHubClient(){const t=this.getConfiguredVerifyHubServiceUrl(),e=new jn(t??this.getZoneServiceURL("verify-hub"),this.sessionToken);return new nr(e)}getTaskManagerClient(){const t=this.getServiceRpcClient("task-manager");return new Nr(t)}getWorkflowClient(){const t=this.getServiceRpcClient("workflow");return new Kr(t)}getAiccClient(){return new os(this.getServiceRpcClient("aicc"))}getMsgQueueClient(){return new ws(this.getServiceRpcClient("kmsg"))}getMsgCenterClient(){return new js(this.getServiceRpcClient("msg-center"))}getRepoClient(){return new ti(this.getServiceRpcClient("repo-service"))}async getMySettings(){const t=this.getMySettingsPath(),e=await this.getSystemConfigClient().get(t);return JSON.parse(e.value)}async updateMySettings(t,e){const n=this.getMySettingsPath(),r=JSON.stringify(e);await this.getSystemConfigClient().setByJsonPath(n,t,r)}async updateAllMySettings(t){const e=this.getMySettingsPath(),n=JSON.stringify(t);await this.getSystemConfigClient().set(e,n)}async renewTokenFromVerifyHub(){if(!this.profile.supportsManagedSessionRenewal())return;const t=this.sessionToken;if(!t)return;const e=ki(t);if(!e||!this.needsRenew(e))return;if(this.profile.shouldSkipVerifyHubRenewal(this))return;const n=this.getVerifyHubClient(),r="verify-hub"===e.iss?this.refreshToken?await n.refreshToken({refresh_token:this.refreshToken}):await n.loginByJwt({jwt:await this.profile.getVerifyHubLoginJwt(this,t),target:this.getAuthTarget()}):await n.loginByJwt({jwt:t,target:this.getAuthTarget()});this.sessionToken=Si(r.session_token),this.refreshToken=Si(r.refresh_token),this.validateSessionToken()}async ensureSessionTokenReady(){if(this.usesBrowserSessionRefresh()){const t=await this.ensureBrowserSessionToken();return t&&this.startAutoRenewIfNeeded(),t}return this.profile.supportsManagedSessionRenewal()&&await this.renewTokenFromVerifyHub(),this.sessionToken}ensureAppServiceSessionToken(){this.sessionToken||(this.sessionToken=this.loadAppServiceSessionTokenFromEnv())}async ensureAppClientSessionToken(){this.sessionToken||(this.sessionToken=this.loadAppClientSessionTokenFromEnv()),this.sessionToken||(this.sessionToken=await this.createAppClientSessionToken())}async resolveAppServiceIdentityFromEnv(){if(!bi())return;if("AppService"!==this.config.runtimeType)return;const t=wi(),e=e=>{const n=Si(t[e]);if(!n)throw new Error(`${e} is required for AppService runtime`);return n},n=e(ci),r=si(e(li)),s=e(ui),i=e(hi),o=e(di),a=ai(s);if(!(await Ri("node:path")).isAbsolute(o))throw new Error(`${di} must be an absolute path`);if(ri(n)!==r||a.appId!==r||a.ownerUserId!==i||oi(r,i)!==s)throw new Error("AppService identity environment variables are inconsistent");const c=Si(this.config.appId),l=Si(this.config.appDid),u=Si(this.config.appInstanceId),h=this.getOwnerUserId(),d=Si(this.config.dataDir);if(c&&c!==r)throw new Error(`runtime appId ${c} does not match ${li} ${r}`);if(l&&l!==n)throw new Error(`runtime appDid ${l} does not match ${ci} ${n}`);if(u&&u!==s)throw new Error(`runtime appInstanceId ${u} does not match ${ui} ${s}`);if(h&&h!==i)throw new Error(`runtime ownerUserId ${h} does not match ${hi} ${i}`);if(d&&d!==o)throw new Error(`runtime dataDir ${d} does not match ${di} ${o}`);this.config.appDid=n,this.config.appId=r,this.config.appInstanceId=s,this.config.ownerUserId=i,this.config.userid=i,this.config.dataDir=o}async resolveZoneHostFromLocalConfig(){if(!bi())return;if(Si(this.config.zoneHost))return;const t=await this.getPrivateKeySearchRoots(),e=await this.tryResolveZoneHostFromSearchRoots(t);e&&(this.config.zoneHost=e)}validateSessionToken(){if(!this.sessionToken)return;const t=ki(this.sessionToken);if("AppService"===this.config.runtimeType&&!t)throw new Error("AppService session token must be a JWT with identity claims");const e="string"==typeof(null==t?void 0:t.appid)?t.appid:"string"==typeof(null==t?void 0:t.aud)?t.aud:null;if(e&&e!==this.config.appId)throw new Error(`session token appid mismatch: ${e} != ${this.config.appId}`);if("AppService"===this.config.runtimeType&&t){const e=this.getAppInstanceId();if(!e||t.app_instance_id!==e)throw new Error(`session token app_instance_id mismatch: ${String(t.app_instance_id)} != ${String(e)}`);const n=this.getOwnerUserId();if(!n||t.app_owner_user_id!==n)throw new Error(`session token app_owner_user_id mismatch: ${String(t.app_owner_user_id)} != ${String(n)}`)}}async ensureBrowserSessionToken(){const t=ki(this.sessionToken);return this.sessionToken&&t&&!this.needsRenew(t)?this.sessionToken:this.refreshBrowserSessionToken()}storeBrowserIdentity(t){if(!Ai())return;const e=Qn(Mn.getBrowserIdentityRaw());e&&Jn(e)!==Jn(t)&&Mn.clearBrowserUserInfo(),Mn.saveBrowserIdentity(t),"account"===t.kind?Mn.saveBrowserUserInfo({user_name:t.show_name||t.user_id,user_id:t.user_id,user_type:t.user_type}):Mn.clearBrowserUserInfo()}async getCurrentIdentity(){var t;const e=await this.ensureSessionTokenReady();if(!e||!Ai())return $n;const n=Qn(Mn.getBrowserIdentityRaw()),r=null==(t=ki(e))?void 0:t.sub,s="account"===(null==n?void 0:n.kind)?n.user_id:"external"===(null==n?void 0:n.kind)?n.did:null;return n&&r&&s===r?n:$n}async refreshBrowserSession(){return await this.refreshBrowserSessionToken()&&Ai()?Mn.getBrowserUserInfo():null}async logoutBrowserSSO(){if(("Browser"===this.config.runtimeType||"AppRuntime"===this.config.runtimeType)&&_i())try{const t=await fetch("/sso_logout",{method:"POST",credentials:"include",cache:"no-store",keepalive:!0});t.ok||console.warn("BuckyOS browser sso_logout failed:",t.status)}catch(t){console.warn("BuckyOS browser sso_logout failed:",t)}}async refreshBrowserSessionToken(){if(this.browserRefreshPromise)return this.browserRefreshPromise;const t=this.authStateRevision,e=this.requestBrowserSessionToken(t);this.browserRefreshPromise=e;try{return await e}finally{this.browserRefreshPromise===e&&(this.browserRefreshPromise=null)}}async requestBrowserSessionToken(t){if(!_i())return this.sessionToken;try{const e=await fetch("/sso_refresh",{method:"POST",credentials:"include",cache:"no-store"});if(!e.ok)return t===this.authStateRevision&&(this.sessionToken=null,401===e.status&&Ai()&&(Mn.clearBrowserIdentity(),Mn.clearBrowserUserInfo())),null;const n=await e.json(),r=Si("string"==typeof n.session_token?n.session_token:null),s=Qn(n.identity);return r&&s&&"anonymous"!==s.kind?t!==this.authStateRevision?null:(this.sessionToken=r,this.refreshToken=null,this.storeBrowserIdentity(s),this.validateSessionToken(),this.sessionToken):(t===this.authStateRevision&&(this.sessionToken=null),null)}catch(e){return console.warn("BuckyOS browser sso_refresh failed:",e),t===this.authStateRevision&&(this.sessionToken=null),null}}usesBrowserSessionRefresh(){return"Browser"===this.config.runtimeType||"AppRuntime"===this.config.runtimeType}needsRenew(t){if(t.iss&&"verify-hub"!==t.iss)return!0;if("number"!=typeof t.exp)return!1;return Math.floor(Date.now()/1e3)>=t.exp-30}startAutoRenewIfNeeded(){const t=this.usesBrowserSessionRefresh();if(!t&&!this.profile.supportsManagedSessionRenewal()||!1===this.config.autoRenew)return;if(this.renewTimer)return;const e=this.config.renewIntervalMs??5e3,n=async()=>{try{if(t){await this.ensureBrowserSessionToken()||this.stopAutoRenew()}else await this.renewTokenFromVerifyHub()}catch(e){console.warn("BuckyOS token renew failed:",e)}};this.renewTimer=setInterval((()=>{n()}),e),n()}loadAppServiceSessionTokenFromEnv(){const t=Si(wi()[fi]);if(t)return t;throw new Error(`${fi} is required for AppService runtime`)}loadAppClientSessionTokenFromEnv(){return Si(wi().BUCKYOS_APPCLIENT_SESSION_TOKEN)}async createAppClientSessionToken(){if(!bi())throw new Error("AppClient mode requires Node.js");const t=await this.loadLocalSigningMaterial(),e=Math.floor(Date.now()/1e3),n={token_type:"Normal",appid:this.config.appId,jti:String(e),session:e,sub:t.subject,userid:t.subject,iss:t.issuer,exp:e+900,extra:{}};return this.signJwtWithEd25519({alg:"EdDSA",kid:t.issuer},n,t.keyPem)}async loadLocalSigningMaterial(){await Ri("node:fs/promises");const t=await Ri("node:path"),e=this.getOwnerUserId();if(!e){const e=await this.getBuckyOSEtcDir(),n=await this.readDeviceNameFromNodeIdentityPath(t.join(e,"node_identity.json"));if(!n)throw new Error(`failed to resolve userid from ${t.join(e,"node_identity.json")} device_mini_doc_jwt`);const r=await this.readPemFile(t.join(e,"node_private_key.pem"));if(!r)throw new Error(`failed to load node_private_key.pem from ${e}`);return this.config.userid=n,this.config.ownerUserId=n,{keyPem:r,issuer:n,subject:n,sourcePath:t.join(e,"node_private_key.pem")}}const n=await this.getPrivateKeySearchRoots(),r=await this.tryLoadDeviceSigningMaterial(e,n);if(r)return r;const s=await this.tryLoadUserSigningMaterial(e,n);if(s)return s;throw new Error(`failed to find AppClient private key for userid=${e} in search roots: ${n.join(", ")}`)}async getPrivateKeySearchRoots(){var t;const e=wi(),n=await Ri("node:path"),r=await Ri("node:os"),s=[];for(const c of this.config.privateKeySearchPaths??[]){const t=Si(c);t&&s.push(t)}const i=Si(e.BUCKYOS_APP_CLIENT_DIR);i&&s.push(i);const o=Si(e.HOME)??Si(e.USERPROFILE)??Si(null==(t=r.homedir)?void 0:t.call(r));o&&(s.push(n.join(o,".buckyos")),s.push(n.join(o,".buckycli")));const a=Si(this.config.rootDir)??Si(e.BUCKYOS_ROOT)??"/opt/buckyos";return s.push(a),s.push(n.join(a,"etc")),Array.from(new Set(s))}async getBuckyOSRootDir(){const t=wi();return Si(this.config.rootDir)??Si(t.BUCKYOS_ROOT)??"/opt/buckyos"}async getBuckyOSEtcDir(){return(await Ri("node:path")).join(await this.getBuckyOSRootDir(),"etc")}async readPemFile(t){const e=await Ri("node:fs/promises");try{return(await e.readFile(t,"utf8")).trim()||null}catch{return null}}async readNodeIdentityMetadata(t){const e=await Ri("node:fs/promises");try{const n=await e.readFile(t,"utf8"),r=JSON.parse(n);return{deviceName:this.extractDeviceNameFromIdentityPayload(r),deviceDid:"string"==typeof r.device_did&&r.device_did.trim()||null,zoneDid:"string"==typeof r.zone_did&&r.zone_did.trim()||null,zoneName:"string"==typeof r.zone_name&&r.zone_name.trim()||null}}catch{return null}}extractDeviceNameFromIdentityPayload(t){const e="string"==typeof t.device_name?t.device_name.trim():"";if(e)return e;const n=ki("string"==typeof t.device_mini_doc_jwt?t.device_mini_doc_jwt:null),r="string"==typeof(null==n?void 0:n.n)?n.n.trim():"";if(r)return r;const s=ki("string"==typeof t.device_doc_jwt?t.device_doc_jwt:null);for(const i of["name","sub"]){const t=null==s?void 0:s[i],e="string"==typeof t?t.trim():"";if(e)return e}return null}async readDeviceNameFromNodeIdentityPath(t){const e=await this.readNodeIdentityMetadata(t);return(null==e?void 0:e.deviceName)??null}async tryLoadDeviceSigningMaterial(t,e){const n=await Ri("node:path"),r=[await this.getBuckyOSEtcDir(),...e.filter((t=>!t.endsWith(".pem")))];for(const s of Array.from(new Set(r))){const e=await this.readNodeIdentityMetadata(n.join(s,"node_identity.json")),r=(null==e?void 0:e.deviceName)??null;if(r&&r===t)for(const t of await this.deviceKeyPathCandidates(s,(null==e?void 0:e.deviceDid)??null)){const e=await this.readPemFile(t);if(e)return{keyPem:e,issuer:r,subject:r,sourcePath:t}}}return null}async deviceKeyPathCandidates(t,e){const n=await Ri("node:path"),r=[];if(e)try{const s=Mn.DID.fromStr(e).toFilename(),i="authentication.private.pem";r.push(n.join(t,"security",s,i));const o=wi(),a=Si(o.BUCKYOS_SECURITY_ROOT)??n.join(Si(o.BUCKYOS_ROOT)??"/opt/buckyos","security");r.push(n.join(a,s,i))}catch{}return r.push(n.join(t,"node_private_key.pem")),r}async tryLoadUserSigningMaterial(t,e){var n;const r=await Ri("node:fs/promises"),s=await Ri("node:path");for(const i of e){const e=i.endsWith(".pem")?i:s.join(i,"user_private_key.pem"),o=i.endsWith(".pem")?s.dirname(i):i,a=s.join(o,"user_config.json");try{const s=await r.readFile(a,"utf8"),i=Mn.parseBuckyOSOwnerDocument(JSON.parse(s)),o=null==(n=null==i?void 0:i.name)?void 0:n.trim();if(!o||o!==t)continue;const c=await this.readPemFile(e);if(!c)continue;return{keyPem:c,issuer:t,subject:t,sourcePath:e}}catch{}}return null}async tryResolveDeviceNameFromSearchRoots(t){const e=await Ri("node:path"),n=wi(),r=Si(n.BUCKYOS_THIS_DEVICE_NAME);if(r)return r;for(const s of["BUCKYOS_THIS_DEVICE","BUCKYOS_THIS_DEVICE_INFO"]){const t=Si(n[s]);if(t)try{const e=JSON.parse(t);if("string"==typeof e.name&&e.name.trim().length>0)return e.name.trim()}catch{}}for(const s of t){const t=e.join(s,"node_identity.json"),n=await this.readDeviceNameFromNodeIdentityPath(t);if(n)return n}return null}async tryResolveZoneHostFromSearchRoots(t){var e;const n=await Ri("node:fs/promises"),r=await Ri("node:path"),s=Si(wi().BUCKYOS_ZONE_HOST);if(s)return s;for(const i of t){const t=r.join(i,"node_identity.json"),e=await this.readNodeIdentityMetadata(t);if(e){if(e.zoneName)return e.zoneName;if(e.zoneDid)return Ti(e.zoneDid)}}for(const i of t){const t=r.join(i,"user_config.json");try{const r=await n.readFile(t,"utf8"),s=Mn.parseBuckyOSOwnerDocument(JSON.parse(r)),i=Ti(null==(e=null==s?void 0:s.binded_zone_list)?void 0:e[0]);if(!i)continue;return i}catch{}}return null}getMySettingsPath(){return this.profile.getMySettingsPath(this)}getConfiguredSystemConfigServiceUrl(){return Si(this.config.systemConfigServiceUrl)}resolveAppServiceGatewayHost(){return Si(wi().BUCKYOS_HOST_GATEWAY)??"host.docker.internal"}async signJwtWithEd25519(t,e,n){const r=await Ri("node:crypto"),s=vi(),i=`${Ei(JSON.stringify(t))}.${Ei(JSON.stringify(e))}`;return`${i}.${Ei(r.sign(null,s.from(i,"utf8"),r.createPrivateKey({key:n,format:"pem"})))}`}}const Ui=1048576;class Li extends Error{constructor(t,e){super(e),this.name="KEventProtocolError",this.code=t}}const Mi=async(t,e)=>{if("function"!=typeof fetch)throw new Error("fetch is not available in this runtime");return fetch(t,e)};function Fi(){var t;const e=globalThis.process;return Boolean(null==(t=null==e?void 0:e.versions)?void 0:t.node)}function Gi(t){const e=(Array.isArray(t)?t:[t]).map((t=>"string"==typeof t?t.trim():"")).filter((t=>t.length>0));if(0===e.length)throw new Error("kevent patterns must not be empty");for(const n of e)if(!n.startsWith("/"))throw new Error(`kevent only supports global patterns: ${n}`);return e}function ji(t,e){return(null==e?void 0:e.aborted)?Promise.reject(new Error("Operation aborted")):new Promise(((n,r)=>{const s=setTimeout((()=>{o(),n()}),t),i=()=>{clearTimeout(s),o(),r(new Error("Operation aborted"))},o=()=>{e&&e.removeEventListener("abort",i)};e&&e.addEventListener("abort",i,{once:!0})}))}function Hi(t){return t instanceof Error?t.message:String(t)}function Vi(t){if("ok"===t.status)return t;throw new Li(t.code||"INTERNAL",t.message||"Unknown kevent error")}function Wi(t){if(!t||"object"!=typeof t||Array.isArray(t))throw new Error("Invalid kevent event payload");const e=t;if("string"!=typeof e.eventid||"string"!=typeof e.source_node||"number"!=typeof e.source_pid||"number"!=typeof e.timestamp)throw new Error("Invalid kevent event payload");return{eventid:e.eventid,source_node:e.source_node,source_pid:e.source_pid,ingress_node:"string"==typeof e.ingress_node?e.ingress_node:null,timestamp:e.timestamp,data:"data"in e?e.data:null}}class Ki{constructor(){this.items=[],this.waiters=[],this.closed=!1}push(t){if(this.closed)return;const e=this.waiters.shift();if(e)return e.timeout&&clearTimeout(e.timeout),void e.resolve(t);this.items.push(t)}async shift(t){return this.items.length>0?this.items.shift()??null:this.closed||0===t?null:new Promise((e=>{const n={resolve:t=>{r(),e(t)},timeout:null},r=()=>{n.timeout&&(clearTimeout(n.timeout),n.timeout=null);const t=this.waiters.indexOf(n);t>=0&&this.waiters.splice(t,1)};"number"==typeof t&&t>0&&(n.timeout=setTimeout((()=>{r(),e(null)}),t)),this.waiters.push(n)}))}close(){if(!this.closed)for(this.closed=!0;this.waiters.length>0;){const t=this.waiters.shift();t&&(t.timeout&&clearTimeout(t.timeout),t.resolve(null))}}}class zi{constructor(){this.queue=new Ki,this.closed=!1,this.closePromise=null}async pullEvent(t){return this.queue.shift(t)}async pull_event(t){return this.pullEvent(t)}enqueue(t){this.queue.push(t)}isClosed(){return this.closed}markClosed(){this.closed=!0,this.queue.close()}async close(){return this.closePromise||(this.markClosed(),this.closePromise=this.closeTransport().catch((t=>{console.warn("kevent reader close failed:",t)})).then((()=>{}))),this.closePromise}}class qi extends zi{constructor(t,e,n,r,s,i){super(),this.streamUrl=t,this.patterns=e,this.keepaliveMs=n,this.fetcher=r,this.sessionTokenProvider=s,this.streamTask=null,this.controller=new AbortController,this.readyPromise=this.start(),i&&(i.aborted?this.controller.abort():i.addEventListener("abort",(()=>{this.controller.abort()}),{once:!0}))}async waitUntilReady(){await this.readyPromise}async start(){const t={"Content-Type":"application/json"};if(this.sessionTokenProvider){const e=await this.sessionTokenProvider();"string"==typeof e&&e.trim().length>0&&(t.Authorization=`Bearer ${e.trim()}`)}const e=await this.fetcher(this.streamUrl,{method:"POST",headers:t,body:JSON.stringify({patterns:this.patterns,keepalive_ms:this.keepaliveMs}),cache:"no-store",credentials:"include",signal:this.controller.signal});if(!e.ok){let t="";try{t=await e.text()}catch{t=""}throw new Error(`kevent stream request failed: ${e.status}${t?` ${t}`:""}`)}if(!e.body)throw new Error("kevent stream response missing body");let n=!1,r=null,s=null;const i=new Promise(((t,e)=>{r=t,s=e}));this.streamTask=this.consumeStream(e.body,(t=>{if("ack"===t.type)return n=!0,void(null==r||r());if("event"!==t.type){if("error"===t.type){const e=new Error(t.error||"kevent stream error");n?console.warn("kevent stream error:",e.message):null==s||s(e)}}else this.enqueue(Wi(t.event))})).then((()=>{n||null==s||s(new Error("kevent stream closed before ack"))})).catch((t=>{n?this.controller.signal.aborted||console.warn("kevent browser stream stopped with error:",t):null==s||s(t instanceof Error?t:new Error(Hi(t)))})).finally((()=>{this.markClosed()})),await i}async consumeStream(t,e){const n=t.getReader(),r=new TextDecoder;let s="";try{for(;!this.controller.signal.aborted;){const{value:t,done:i}=await n.read();if(i)break;s+=r.decode(t,{stream:!0}),s=this.processFrameBuffer(s,e)}s+=r.decode(),s=this.processFrameBuffer(s,e),s.trim().length>0&&this.handleFrameLine(s,e)}finally{try{await n.cancel()}catch{}}}processFrameBuffer(t,e){let n=t;for(;;){const t=n.indexOf("\n");if(t<0)return n;const r=n.slice(0,t);n=n.slice(t+1),this.handleFrameLine(r,e)}}handleFrameLine(t,e){const n=t.trim();if(!n)return;e(JSON.parse(n))}async closeTransport(){if(this.controller.abort(),this.streamTask)try{await this.streamTask}catch(t){this.controller.signal.aborted||console.warn("kevent browser stream stopped with error:",t)}}}class $i{constructor(t,e,n,r){this.host=t,this.port=e,this.connectTimeoutMs=n,this.connector=r,this.socket=null,this.connectPromise=null,this.closed=!1,this.serial=Promise.resolve(),this.readBuffer=new Uint8Array(0),this.pending=[]}async call(t){const e=this.serial.then((()=>this.callInternal(t)));return this.serial=e.then((()=>{}),(()=>{})),e}async close(){if(this.closed=!0,this.rejectAllPending(new Error("kevent native connection closed")),this.socket){const t=this.socket;this.socket=null,t.end()}}async callInternal(t){if(this.closed)throw new Error("kevent native connection is closed");await this.ensureConnected();const e=this.socket;if(!e)throw new Error("kevent native socket is not connected");const n=(new TextEncoder).encode(JSON.stringify(t));if(0===n.length||n.length>Ui)throw new Error(`invalid kevent native request payload size: ${n.length}`);const r=new Uint8Array(4+n.length);return new DataView(r.buffer).setUint32(0,n.length),r.set(n,4),new Promise(((t,n)=>{const s={resolve:t,reject:n};this.pending.push(s),e.write(r,(t=>{if(!t)return;const e=this.pending.indexOf(s);e>=0&&this.pending.splice(e,1),n(t instanceof Error?t:new Error(Hi(t)))}))}))}async ensureConnected(){this.socket||(this.connectPromise||(this.connectPromise=this.connect().finally((()=>{this.connectPromise=null}))),await this.connectPromise)}async connect(){const t=await this.connector(this.host,this.port,this.connectTimeoutMs);this.socket=t,"function"==typeof t.setNoDelay&&t.setNoDelay(!0),t.on("data",(t=>{try{this.handleSocketData(function(t){if(t instanceof Uint8Array)return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);throw new Error("Unsupported socket data chunk")}(t))}catch(e){this.handleSocketFailure(e instanceof Error?e:new Error(Hi(e)))}})),t.once("end",(()=>{this.handleSocketFailure(new Error("kevent native socket ended"))})),t.once("close",(()=>{this.handleSocketFailure(new Error("kevent native socket closed"))})),t.once("error",(t=>{this.handleSocketFailure(t)}))}handleSocketData(t){for(this.readBuffer=function(t,e){const n=new Uint8Array(t.length+e.length);return n.set(t,0),n.set(e,t.length),n}(this.readBuffer,t);this.readBuffer.length>=4;){const t=new DataView(this.readBuffer.buffer,this.readBuffer.byteOffset,this.readBuffer.byteLength).getUint32(0);if(0===t||t>Ui)throw new Error(`invalid kevent native frame length: ${t}`);if(this.readBuffer.length<4+t)return;const e=this.readBuffer.slice(4,4+t);this.readBuffer=this.readBuffer.slice(4+t);const n=JSON.parse((new TextDecoder).decode(e)),r=this.pending.shift();r&&r.resolve(n)}}handleSocketFailure(t){if(this.socket){const e=this.socket;this.socket=null;try{e.destroy(t)}catch{}}this.closed||this.rejectAllPending(t)}rejectAllPending(t){for(;this.pending.length>0;){const e=this.pending.shift();null==e||e.reject(t)}}}class Qi extends zi{constructor(t,e){super(),this.client=t,this.readerId=e}static async create(t,e){const n=new $i(e.nativeHost,e.nativePort,e.nativeConnectTimeoutMs,e.nativeConnector),r=`ts_kevent_${Date.now()}_${Math.random().toString(36).slice(2,10)}`;try{return Vi(await n.call({op:"register_reader",reader_id:r,patterns:t})),new Qi(n,r)}catch(s){throw await n.close(),s}}async pullEvent(t){if(this.isClosed())return null;const e=Vi(await this.client.call({op:"pull_event",reader_id:this.readerId,timeout_ms:"number"==typeof t?Math.max(0,Math.floor(t)):void 0}));return e.event?Wi(e.event):null}async closeTransport(){try{Vi(await this.client.call({op:"unregister_reader",reader_id:this.readerId}))}catch(t){t instanceof Error&&/closed/i.test(t.message)||console.warn("kevent unregister failed:",t)}finally{await this.client.close()}}}async function Ji(t,e,n){if(!Fi())throw new Error("native kevent requires Node.js");const r=await async function(t){return Fi()&&"function"==typeof require?require(t):Function("name","return import(name)")(t)}("node:net");return new Promise(((s,i)=>{const o=r.createConnection({host:t,port:e});let a=!1;const c=setTimeout((()=>{if(!a){a=!0,h();try{o.destroy(new Error(`kevent native connect timeout after ${n}ms`))}catch{}i(new Error(`kevent native connect timeout after ${n}ms`))}}),n),l=()=>{a||(a=!0,h(),s(o))},u=t=>{if(!a){a=!0,h();try{o.destroy(t)}catch{}i(t)}},h=()=>{clearTimeout(c),"function"==typeof o.off?(o.off("connect",l),o.off("error",u)):"function"==typeof o.removeListener&&(o.removeListener("connect",l),o.removeListener("error",u))};o.once("connect",l),o.once("error",u)}))}class Yi{constructor(t){this.mode=t.mode,this.streamUrl=`${(t.streamUrl??"/kapi/kevent").replace(/\/+$/,"")}/stream`,this.nativeHost=t.nativeHost??"127.0.0.1",this.nativePort=t.nativePort??3183,this.nativeConnectTimeoutMs=t.nativeConnectTimeoutMs??5e3,this.fetcher=t.fetcher??Mi,this.sessionTokenProvider=t.sessionTokenProvider??null,this.nativeConnector=t.nativeConnector??Ji}async createEventReader(t,e={}){const n=Gi(t);if("browser"===this.mode){const t=new qi(this.streamUrl,n,"number"!=typeof(r=e.keepaliveMs)||!Number.isFinite(r)||r<=0?15e3:Math.floor(r),this.fetcher,this.sessionTokenProvider,e.signal);try{return await t.waitUntilReady(),t}catch(s){throw await t.close(),s}}var r;return Qi.create(n,{nativeHost:this.nativeHost,nativePort:this.nativePort,nativeConnectTimeoutMs:this.nativeConnectTimeoutMs,nativeConnector:this.nativeConnector})}async create_event_reader(t,e={}){return this.createEventReader(t,e)}async subscribe(t,e,n={}){const r=Gi(t),s=new AbortController,i="number"==typeof n.reconnectDelayMs&&n.reconnectDelayMs>=0?Math.floor(n.reconnectDelayMs):1e3;let o=null,a=!1;n.signal&&(n.signal.aborted?(s.abort(),a=!0):n.signal.addEventListener("abort",(()=>{s.abort()}),{once:!0}));const c=(async()=>{for(;!a&&!s.signal.aborted;){try{for(o=await this.createEventReader(r,{...n,signal:s.signal});!a&&!s.signal.aborted;){const n=await o.pullEvent();if(!n)break;try{await e(n)}catch(t){console.error("kevent callback failed:",t)}}}catch(t){a||s.signal.aborted||console.warn("kevent subscription disconnected, will retry:",t)}finally{const t=o;o=null,t&&await t.close()}if(a||s.signal.aborted)break;try{await ji(i,s.signal)}catch{break}}})();return{close:async()=>{if(a)return;a=!0,s.abort();const t=o;o=null,t&&await t.close(),await c.catch((()=>{}))}}}}const Zi={runtime:null};function Xi(){if("undefined"==typeof window)return null;const t=window.BuckyApi;return t&&"object"==typeof t?t:null}async function to(){const t=Xi(),e=null==t?void 0:t.getCurrentUser;if("function"!=typeof e)return null;const n=await e.call(t);return 0===(null==n?void 0:n.code)?n.data??null:(console.error("BuckyApi.getCurrentUser failed: ",null==n?void 0:n.message),null)}async function eo(t,e=null){const n=Xi(),r=null==n?void 0:n.resolve_did;if("function"!=typeof r)return null;const s=await r.call(n,t,e);return 0===(null==s?void 0:s.code)&&function(t){if(!t||"object"!=typeof t)return!1;const e=t;return"json"===e.type&&Object.prototype.hasOwnProperty.call(e,"value")||"jwt"===e.type&&"string"==typeof e.jwt}(s.data)?s.data:(console.error("BuckyApi.resolve_did failed: ",null==s?void 0:s.message),null)}function no(){return"undefined"!=typeof window}function ro(){const t=globalThis.process;return(null==t?void 0:t.env)??{}}function so(t){if("string"!=typeof t)return null;const e=t.trim();return e.length>0?e:null}function io(){return"undefined"!=typeof localStorage}function oo(t){return t?t.split(/[./]/).map((t=>t.trim())).filter((t=>t.length>0)):[]}function ao(){return so(ro().BUCKYOS_APP_INSTANCE_ID)?pi.AppService:pi.AppClient}function co(){var t;return(null==(t=Zi.runtime)?void 0:t.getConfig().runtimeType)??function(){var t;if("undefined"!=typeof window)return window.BuckyApi?pi.AppRuntime:pi.Browser;const e=globalThis.process;return(null==(t=null==e?void 0:e.versions)?void 0:t.node)?pi.NodeJS:pi.Unknown}()}function lo(){var t;const e=Zi.runtime;return e?function(t){try{const e="undefined"!=typeof window?window.location.origin:"http://localhost";return new URL(t,e).origin}catch{return null}}(e.getSystemConfigServiceURL()):"undefined"!=typeof window&&(null==(t=window.location)?void 0:t.origin)?window.location.origin:null}async function uo(){const t=Zi.runtime;return t?t.ensureSessionTokenReady():null}class ho{constructor(t){this.currentRuntime=null,this.currentAccountInfo=null,this.currentKEventClient=null,this.target=t}async initBuckyOS(t="",e=null){var n;const r=this.buildRuntimeConfig(t,e);if("node"!==this.target&&no()&&!e){localStorage.removeItem("zone_host_name");let e=localStorage.getItem("zone_host_name_v2");e||(e=await this.tryGetZoneHostName(t,window.location.host,r.defaultProtocol),localStorage.setItem("zone_host_name_v2",e)),r.zoneHost=e}var s;null==(n=this.currentRuntime)||n.stopAutoRenew(),this.currentKEventClient=null,this.currentAccountInfo=null,this.currentRuntime=new Bi(r),await this.currentRuntime.initialize(),s=this.currentRuntime,Zi.runtime=s,this.syncCurrentAccountInfoFromRuntime()}getBuckyOSConfig(){var t;return(null==(t=this.currentRuntime)?void 0:t.getConfig())??null}getRuntimeType(){return this.currentRuntime?this.currentRuntime.getConfig().runtimeType:this.detectEnvironmentRuntimeType()}getAppId(){return this.currentRuntime?this.currentRuntime.getAppId():(console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first"),null)}getAppDid(){var t;return(null==(t=this.currentRuntime)?void 0:t.getAppDid())??null}getAppInstanceId(){var t;return(null==(t=this.currentRuntime)?void 0:t.getAppInstanceId())??null}getAppDataDir(){var t;return(null==(t=this.currentRuntime)?void 0:t.getDataDir())??null}attachEvent(t,e){}removeEvent(t){}getKEventClient(){if(null==this.currentRuntime)throw new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");if(this.currentKEventClient)return this.currentKEventClient;const t=this.currentRuntime.getConfig().runtimeType,e=t===pi.Browser||t===pi.AppRuntime?"browser":"native";return this.currentKEventClient=new Yi({mode:e,streamUrl:this.currentRuntime.getZoneServiceURL("kevent"),sessionTokenProvider:this.currentRuntime.ensureSessionTokenReady.bind(this.currentRuntime)}),this.currentKEventClient}async createEventReader(t,e={}){return this.getKEventClient().createEventReader(t,e)}async create_event_reader(t,e={}){return this.createEventReader(t,e)}async subscribeKEvent(t,e,n={}){return this.getKEventClient().subscribe(t,e,n)}async getCurrentIdentity(){if(null==this.currentRuntime)return console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first"),$n;const t=this.currentRuntime.getConfig().runtimeType;return t!==pi.Browser&&t!==pi.AppRuntime?$n:this.currentRuntime.getCurrentIdentity()}async getAccountInfo(){if(null==this.currentRuntime)return console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first"),null;this.syncCurrentAccountInfoFromRuntime();const t=this.currentRuntime.getConfig().runtimeType;if(t!==pi.Browser&&t!==pi.AppRuntime)return this.currentAccountInfo;const e=await this.currentRuntime.ensureSessionTokenReady(),n=io()?Mn.getBrowserUserInfo():null;return e&&n?(this.currentAccountInfo={user_name:n.user_name,user_id:n.user_id,user_type:n.user_type,session_token:e,refresh_token:void 0},this.currentAccountInfo):(this.currentAccountInfo=null,null)}async loginByPassword(t,e,n){var r,s,i;const o=this.getAppId();if(null==o)return console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first"),null;const a=n??(null==(r=this.currentRuntime)?void 0:r.getAuthTarget());if(!a)throw new Error("loginByPassword requires an AuthTarget");const c=er(a);if(c!==o)throw new Error(`auth target appid mismatch: ${c} != ${o}`);const l=Date.now(),u=Mn.hashPassword(t,e,l);io()&&localStorage.removeItem(`buckyos.account_info.${o}`);try{const e=this.getVerifyHubClient();e.setSeq(l);const n=await e.loginByPassword({username:t,password:u,target:a,login_nonce:l,source_url:"undefined"!=typeof window?window.location.href:void 0}),r=nr.normalizeLoginResponse(n),c={user_name:r.user_name,user_id:r.user_id,user_type:r.user_type,session_token:r.session_token,refresh_token:r.refresh_token};return io()&&(Mn.saveLocalAccountInfo(o,c),Mn.clearBrowserIdentity(),Mn.saveBrowserUserInfo({user_name:c.user_name,user_id:c.user_id,user_type:r.user_type})),this.currentAccountInfo=c,null==(s=this.currentRuntime)||s.setSessionToken(c.session_token),null==(i=this.currentRuntime)||i.setRefreshToken(c.refresh_token??null),c}catch(h){throw console.error("login failed: ",h),h}}async loginByRuntimeSession(){const t=this.currentRuntime;return null==t?(console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first"),null):(await t.login(),this.syncCurrentAccountInfoFromRuntime(),this.currentAccountInfo)}async loginByBrowserSSO(){if(null==this.currentRuntime)return void console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first");const t=this.getAppId();if(null==t)return void console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first");io()&&Mn.cleanLocalAccountInfo(t);const e=this.getZoneHostName();if(null!=e)try{const t=new Vn(e);await t.login()}catch(n){throw console.error("login failed: ",n),n}else console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first")}async login(){return this.usesRuntimeManagedSession()?this.loginByRuntimeSession():(await this.loginByBrowserSSO(),this.currentAccountInfo)}logout(t=!0){if(null==this.currentRuntime)return void console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first");const e=this.getAppId();null!=e?(t&&this.currentRuntime.logoutBrowserSSO(),t&&io()&&Mn.cleanLocalAccountInfo(e),this.currentAccountInfo=null,this.currentKEventClient=null,this.currentRuntime.clearAuthState()):console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first")}async getAppSetting(t=null){if(null==this.currentRuntime)throw new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");return function(t,e){const n=oo(e);if(0===n.length)return t;let r=t;for(const s of n){if(!r||"object"!=typeof r||Array.isArray(r)||!(s in r))return;r=r[s]}return r}(await this.currentRuntime.getMySettings(),t)}async setAppSetting(t=null,e){if(null==this.currentRuntime)throw new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");const n=await this.currentRuntime.getMySettings(),r=function(t,e,n){const r=oo(e);if(0===r.length){if(!n||"object"!=typeof n||Array.isArray(n))throw new Error("settingValue must be a JSON object when settingName is null");return n}const s=Array.isArray(t)?{}:{...t};let i=s;for(let o=0;o<r.length-1;o+=1){const t=r[o],e=i[t],n=e&&"object"==typeof e&&!Array.isArray(e)?{...e}:{};i[t]=n,i=n}return i[r[r.length-1]]=n,s}(n&&"object"==typeof n&&!Array.isArray(n)?{...n}:{},t,function(t){try{return JSON.parse(t)}catch{return t}}(e));await this.currentRuntime.updateAllMySettings(r)}getCurrentWalletUser(){if("undefined"==typeof window)throw new Error("BuckyApi is only available in browser runtime");return to()}resolve_did(t,e=null){if("undefined"==typeof window)throw new Error("BuckyApi is only available in browser runtime");return eo(t,e)}walletSignWithActiveDid(t){if("undefined"==typeof window)throw new Error("BuckyApi is only available in browser runtime");return(async()=>{var e,n;const r=await window.BuckyApi.signJsonWithActiveDid(t);return 0===r.code?{signatures:Array.isArray(null==(e=r.data)?void 0:e.signatures)?r.data.signatures:[],pwd_hash:"string"==typeof(null==(n=r.data)?void 0:n.pwd_hash)?r.data.pwd_hash:null}:(console.error("BuckyApi.signWithActiveDid failed: ",r.message),null)})()}async openExternalUrl(t){if("undefined"==typeof window)throw new Error("openExternalUrl is only available in browser runtime");const e=window.BuckyApi;"function"!=typeof(null==e?void 0:e.openExternalUrl)?window.open(t,"_blank","noopener,noreferrer"):await e.openExternalUrl(t)}getZoneHostName(){return null==this.currentRuntime?(console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first"),null):this.currentRuntime.getZoneHostName()}getZoneServiceURL(t){if(null==this.currentRuntime)throw new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");return this.currentRuntime.getZoneServiceURL(t)}getServiceRpcClient(t){if(null==this.currentRuntime)throw console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first"),new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");return this.syncCurrentAccountInfoFromRuntime(),this.currentRuntime.getServiceRpcClient(t)}getVerifyHubClient(){if(null==this.currentRuntime)throw console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first"),new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");return this.currentRuntime.getVerifyHubClient()}getSystemConfigClient(){if(null==this.currentRuntime)throw console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first"),new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");return this.currentRuntime.getSystemConfigClient()}getTaskManagerClient(){if(null==this.currentRuntime)throw console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first"),new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");return this.currentRuntime.getTaskManagerClient()}getWorkflowClient(){if(null==this.currentRuntime)throw console.error("BuckyOS WebSDK is not initialized,call initBuckyOS first"),new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");return this.currentRuntime.getWorkflowClient()}getAiccClient(){if(null==this.currentRuntime)throw new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");return this.currentRuntime.getAiccClient()}getMsgQueueClient(){if(null==this.currentRuntime)throw new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");return this.currentRuntime.getMsgQueueClient()}getMsgCenterClient(){if(null==this.currentRuntime)throw new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");return this.currentRuntime.getMsgCenterClient()}getRepoClient(){if(null==this.currentRuntime)throw new Error("BuckyOS WebSDK is not initialized,call initBuckyOS first");return this.currentRuntime.getRepoClient()}buildRuntimeConfig(t,e){if(e){let n=e.runtimeType;return n===pi.NodeJS&&"browser"!==this.target&&(n=ao()),{...yi,...e,appId:e.appId||t,runtimeType:n}}return"browser"===this.target?{...yi,appId:t,runtimeType:this.detectEnvironmentRuntimeType(),defaultProtocol:"undefined"!=typeof window?window.location.protocol+"//":"http://"}:"node"===this.target?{...yi,appId:t,runtimeType:ao(),defaultProtocol:"https://",zoneHost:so(ro().BUCKYOS_ZONE_HOST)??""}:no()?{...yi,appId:t,runtimeType:this.detectEnvironmentRuntimeType(),defaultProtocol:window.location.protocol+"//"}:{...yi,appId:t,runtimeType:ao(),defaultProtocol:"https://",zoneHost:so(ro().BUCKYOS_ZONE_HOST)??""}}async tryGetZoneHostName(t,e,n){const r=await this.fetchZoneHostFromIdentifierDoc(n+e+"/1.0/identifiers/self");if(r)return r;const s=e.split(".").slice(1).join(".");if(!s)return e;const i=await this.fetchZoneHostFromIdentifierDoc(n+s+"/1.0/identifiers/self");return i||e}async fetchZoneHostFromIdentifierDoc(t){try{const e=await fetch(t);if(200!==e.status)return null;const n=await e.json(),r="string"==typeof n.hostname?n.hostname.trim():"";if(r.length>0)return r;if("string"==typeof n.id){const t=n.id.match(/^did:web:([^/?#]+)/);if(t&&t[1])return t[1]}return null}catch{return null}}syncCurrentAccountInfoFromRuntime(){if(null==this.currentRuntime)return;const t=this.currentRuntime.getSessionToken();if(!t)return;const e=ki(t),n="string"==typeof(null==e?void 0:e.sub)?e.sub:"string"==typeof(null==e?void 0:e.userid)?e.userid:this.currentRuntime.getOwnerUserId()??"root",r="string"==typeof(null==e?void 0:e.user_type)?e.user_type:this.currentRuntime.getConfig().runtimeType===pi.AppService?"service":void 0;this.currentAccountInfo={user_name:n,user_id:n,user_type:r,session_token:t,refresh_token:this.currentRuntime.getRefreshToken()??void 0}}usesRuntimeManagedSession(){if(null==this.currentRuntime)return!1;const t=this.currentRuntime.getConfig().runtimeType;return t===pi.AppClient||t===pi.AppService}detectEnvironmentRuntimeType(){var t,e;if("browser"===this.target)return"undefined"!=typeof window&&window.BuckyApi?pi.AppRuntime:"undefined"!=typeof window?pi.Browser:pi.Unknown;if("node"===this.target){const e=globalThis.process;return(null==(t=null==e?void 0:e.versions)?void 0:t.node)?ao():pi.Unknown}if("undefined"!=typeof window)return window.BuckyApi?pi.AppRuntime:pi.Browser;const n=globalThis.process;return(null==(e=null==n?void 0:n.versions)?void 0:e.node)?pi.NodeJS:pi.Unknown}}const fo="/kapi/bns",po="/kapi/bns-indexer",go="did:bns:",mo="name.query_state",yo="name.resolve_owner",wo="authority.get_set",bo="authority.get_key",Ao="document.resolve",_o="document.get_version",vo="name.query_by_addr",Eo="tx.query_state",ko="tx.submit_raw",So="events.list",To="checkpoint.latest",Ro={transport:"RPC_TRANSPORT_ERROR",serialization:"SERIALIZATION_ERROR",invalid_response:"INVALID_RESPONSE",timeout:"TX_WAIT_TIMEOUT"};class Io extends Error{constructor(t,e,n=null){super(e),this.name="BnsClientError",this.kind=t,this.info=n}get code(){var t;return"registry"===this.kind?(null==(t=this.info)?void 0:t.code)??"UNKNOWN_BNS_ERROR":Ro[this.kind]}isRegistryCode(t){return"registry"===this.kind&&this.code===t}static registry(t){return new Io("registry",`${t.code}: ${t.message}`,t)}static registryCode(t,e,n={}){return Io.registry({code:t,message:e,name:null,doc_type:null,expected:null,actual:null,...n})}}class Oo extends Error{constructor(t,e){super(`${t}: ${e}`),this.path=t,this.reason=e,this.name="BnsDecodeError"}}function Co(t,e){throw new Oo(t,e)}const xo=(t,e)=>"string"==typeof t?t:Co(e,"expected string"),No=(t,e)=>"boolean"==typeof t?t:Co(e,"expected boolean"),Po=(t,e)=>"number"==typeof t&&Number.isInteger(t)&&t>=0?t:Co(e,"expected u64"),Do=(t,e)=>"number"==typeof t&&Number.isInteger(t)&&t>=0&&t<=4294967295?t:Co(e,"expected u32"),Bo=(t,e)=>{Array.isArray(t)||Co(e,"expected byte array");for(let n=0;n<t.length;n++){const r=t[n];("number"!=typeof r||!Number.isInteger(r)||r<0||r>255)&&Co(`${e}[${n}]`,"expected u8")}return t};function Uo(...t){return(e,n)=>"string"==typeof e&&t.includes(e)?e:Co(n,`expected one of ${t.join("|")}`)}function Lo(t){return(e,n)=>(Array.isArray(e)||Co(n,"expected array"),e.map(((e,r)=>t(e,`${n}[${r}]`))))}function Mo(t,e){const n=(e,n)=>t(e,n);return n.onMissing=e,n}function Fo(t){return Mo(((e,n)=>null===e?null:t(e,n)),(()=>null))}const Go=Mo(Po,(()=>0));function jo(t,e){const n=Object.keys(e);return(r,s)=>{(null===r||"object"!=typeof r||Array.isArray(r))&&Co(s,`expected ${t} object`);const i=r,o={};for(const t of n){const n=e[t],r=`${s}.${t}`,a=i[t];if(void 0===a&&!(t in i)){if(n.onMissing){o[t]=n.onMissing();continue}Co(r,"missing field")}o[t]=n(a,r)}return o}}const Ho=Uo("available","active","expired","released","tombstoned"),Vo=Uo("missing","active","revoked","expired","migrated","tombstoned"),Wo=Uo("none","alias","migrated_to","canonical"),Ko=Uo("release_after_grace","tombstone_forever"),zo=Uo("unset","chain_account","bns_name"),qo=Uo("none","asset_owner_fallback","explicit_semantic_owner","parent_inherited"),$o=Uo("missing","active","revoked","expired"),Qo=Uo("not_found","pending","succeeded","reverted"),Jo=jo("Principal",{kind:zo,value:xo}),Yo=jo("NameState",{name:xo,asset_owner:xo,semantic_owner:Jo,effective_owner:Jo,owner_source:qo,standard_transfer_enabled:No,status:Ho,registered_at:Po,expire_at:Po,grace_until:Po,updated_at:Po,name_seq:Po,owner_document_version:Po,min_document_iat:Go,owner_policy_seq:Go,lineage_epoch:Po,renewable:No,transferable:No,allow_delegated_subnames:No,namespace_policy_hash:xo,payment_policy_hash:xo,alias_state_hash:xo}),Zo=jo("OwnerResolution",{effective_owner:Jo,source:qo,authority_root:xo,authority_seq:Po}),Xo=jo("AuthoritySetState",{name:xo,authority_seq:Po,authority_root:xo,active_key_count:Do}),ta=jo("AuthorityKey",{kid:xo,verification_method:xo,key_data:Bo,purposes:Do,valid_from:Po,valid_until:Po,status:$o,metadata_hash:xo}),ea=jo("DocumentRef",{storage_type:xo,uri:xo,inline_document:Bo,content_hash:xo,schema:xo,codec:xo,extra_hash:xo}),na=jo("DocumentState",{name:xo,doc_type:xo,version:Po,previous_version:Po,status:Vo,document:ea,controller:Jo,beneficiary:Jo,payment_target:xo,valid_from:Po,expire_at:Po,revoked_at:Po,controller_policy_hash:xo,payment_policy_hash:xo,split_policy_hash:xo,price_policy_hash:xo,rights_policy_hash:xo,document_state_hash:xo}),ra=jo("ResolveResult",{name_state:Yo,document_state:na,owner:Zo,effective_controller:Jo,status:Vo,alias_kind:Wo,alias_target_did:xo,proof_root:xo}),sa=jo("BnsNamePage",{names:Lo(xo),next_cursor:Fo(xo)}),ia=jo("BnsTxState",{tx_hash:xo,state:Qo,block_number:Fo(Po),confirmations:Po}),oa=jo("BnsSubmitRawTxResp",{tx_hash:xo}),aa=jo("LogCheckpoint",{log_root:xo,last_seq:Po,issued_at:Po,issuer:Jo,external_anchor:xo}),ca={name_registered:jo("name_registered",{name:xo,asset_owner:xo,expire_at:Po,lineage_epoch:Po,name_seq:Po}),name_renewed:jo("name_renewed",{name:xo,expire_at:Po,name_seq:Po}),name_asset_transferred:jo("name_asset_transferred",{name:xo,old_asset_owner:xo,new_asset_owner:xo,standard_transfer:No,name_seq:Po}),name_owner_updated:jo("name_owner_updated",{name:xo,owner:Jo,owner_source:qo,standard_transfer_enabled:No,name_seq:Po}),authority_keys_updated:jo("authority_keys_updated",{name:xo,authority_seq:Po,authority_root:xo}),name_released:jo("name_released",{name:xo,mode:Ko,reason_hash:xo,name_seq:Po}),document_published:jo("document_published",{name:xo,doc_type:xo,version:Po,content_hash:xo,document_state_hash:xo}),document_revoked:jo("document_revoked",{name:xo,doc_type:xo,previous_version:Po,new_version:Po,reason_hash:xo}),owner_document_iat_floor_updated:jo("owner_document_iat_floor_updated",{name:xo,previous_min_document_iat:Po,new_min_document_iat:Po,owner_policy_seq:Po,name_seq:Po,reason_hash:xo}),controller_policy_updated:jo("controller_policy_updated",{name:xo,policy_hash:xo,name_seq:Po}),namespace_policy_updated:jo("namespace_policy_updated",{name:xo,allow_delegated_subnames:No,namespace_policy_hash:xo,name_seq:Po}),did_alias_set:jo("did_alias_set",{name:xo,target_did:xo,kind:Wo,proof_hash:xo,name_seq:Po}),payment_target_updated:jo("payment_target_updated",{name:xo,doc_type:xo,payment_target:xo,payment_policy_hash:xo,version:Po}),log_checkpoint_published:jo("log_checkpoint_published",{log_root:xo,last_seq:Po,issued_at:Po,external_anchor:xo})},la=Lo(jo("EventLogRecord",{seq:Po,event_type:xo,observed_at:Po,event_hash:xo,previous_log_root:xo,log_root:xo,event:(t,e)=>{(null===t||"object"!=typeof t||Array.isArray(t))&&Co(e,"expected RegistryEvent object");const n=t;"string"!=typeof n.type&&Co(`${e}.type`,"expected string event tag");const r=ca[n.type];return r||Co(`${e}.type`,`unknown event type \`${n.type}\``),"data"in n&&void 0!==n.data||Co(`${e}.data`,"missing field"),{type:n.type,data:r(n.data,`${e}.data`)}}})),ua=jo("BnsRpcErrorInfo",{code:xo,message:xo,name:Fo(xo),doc_type:Fo(xo),expected:Fo(Po),actual:Fo(Po)});function ha(t){const e=t.split("://"),n=e.length>1?e.slice(1).join("://"):t,r=n.indexOf("/");return!(r<0)&&""!==n.slice(r+1).replace(/\/+$/,"")}function da(t){const e=t.replace(/\/+$/,"");return ha(e)?e:`${e}${fo}`}function fa(t){const e=t.replace(/\/+$/,"");return ha(e)?e:`${e}${po}`}function pa(t){const e=e=>Io.registryCode("INVALID_NAME",`invalid BNS name \`${t}\`: ${e}`,{name:t});if(!t)throw e("name is empty");if(t.trim()!==t)throw e("name must not contain leading or trailing whitespace");if(t.startsWith(go))throw e("contract names must not include did:bns: prefix");if(t.length>253)throw e("name must be at most 253 bytes");for(const n of t.split(".")){if(!n)throw e("empty label");if(n.length>126)throw e("label must be at most 126 bytes");if(n.startsWith("-")||n.endsWith("-"))throw e("label must not start or end with '-'");if(!/^[a-z0-9-]+$/.test(n))throw e("only lower-case ASCII letters, digits, '-' and '.' are supported")}return t}function ga(t){const e=e=>Io.registryCode("INVALID_DOC_TYPE",`invalid doc_type \`${t}\`: ${e}`,{doc_type:t});if(!t)throw e("doc_type is empty");if(t.length>32)throw e("doc_type must be at most 32 bytes");if(!/^[a-z0-9_-]+$/.test(t))throw e("only lower-case ASCII letters, digits, '-' and '_' are supported");return t}const ma="0123456789abcdef";function ya(t){if(t instanceof Uint8Array){if(0===t.length)throw new Io("serialization","raw_tx must not be empty");return`0x${function(t){let e="";for(let n=0;n<t.length;n++)e+=ma[t[n]>>4]+ma[15&t[n]];return e}(t)}`}const e=t.trim();if(!e)throw new Io("serialization","raw_tx must not be empty");const n=e.startsWith("0x")?e.slice(2):e;if(!n||n.length%2!=0)throw new Io("serialization",`raw_tx must be even-length hex, got \`${t}\``);if(!/^[0-9a-fA-F]+$/.test(n))throw new Io("serialization",`invalid raw_tx hex \`${t}\``);return`0x${n}`}function wa(t,e){if("number"!=typeof e||!Number.isInteger(e)||e<0)throw new Io("serialization",`waitTx ${t} must be a non-negative integer, got ${e}`);return Math.max(1,e)}class ba{constructor(t,e=null,n={}){this.rpcClient=new jn(da(t),e,null,n)}static forIndexer(t,e=null,n={}){return new ba(fa(t),e,n)}setSeq(t){this.rpcClient.setSeq(t)}async syncSessionToken(t){this.rpcClient.setSessionToken(t)}getSessionToken(){return this.rpcClient.getSessionToken()}setTraceId(t){this.rpcClient.setTraceId(t)}getTraceId(){return this.rpcClient.getTraceId()}async callEnvelope(t,e){let n;try{n=await this.rpcClient.call(t,e)}catch(s){const e=s instanceof Error?s.message:String(s);throw new Io("transport",`${t} failed: ${e}`)}if(null===n||"object"!=typeof n||Array.isArray(n))throw new Io("invalid_response",`invalid BNS RPC envelope for ${t}`);const r=n;if("boolean"!=typeof r.ok)throw new Io("invalid_response",`invalid BNS RPC envelope for ${t}`);if(!r.ok){if(void 0!==r.result&&null!==r.result)throw new Io("invalid_response",`unexpected result in failed BNS envelope for ${t}`);if(void 0===r.error||null===r.error)throw Io.registryCode("UNKNOWN_BNS_ERROR","BNS RPC envelope missing error");let e;try{e=ua(r.error,"error")}catch(s){const e=s instanceof Oo?s.message:String(s);throw new Io("invalid_response",`invalid BNS error info for ${t}: ${e}`)}throw Io.registry(e)}if(void 0!==r.error&&null!==r.error)throw new Io("invalid_response",`unexpected error in successful BNS envelope for ${t}`);if(void 0===r.result)throw new Io("invalid_response",`BNS RPC envelope missing result for ${t}`);return r.result}decodeResult(t,e,n){try{return e(n,"result")}catch(r){const e=r instanceof Oo?r.message:String(r);throw new Io("invalid_response",`invalid ${t} result: ${e}`)}}async call(t,e,n){const r=await this.callEnvelope(t,e);if(null===r)throw new Io("invalid_response",`BNS RPC envelope missing result for ${t}`);return this.decodeResult(t,n,r)}async callNullable(t,e,n){const r=await this.callEnvelope(t,e);return null===r?null:this.decodeResult(t,n,r)}async queryNameState(t){return this.callNullable(mo,{name:t},Yo)}async resolveOwner(t){return this.call(yo,{name:t},Zo)}async getAuthoritySet(t){return this.call(wo,{name:t},Xo)}async getAuthorityKey(t,e){return this.callNullable(bo,{name:t,kid:e},ta)}async resolveDocument(t,e){return this.call(Ao,{name:t,doc_type:e},ra)}async getDocumentVersion(t,e,n){return this.callNullable(_o,{name:t,doc_type:e,version:n},na)}async queryNamesByAddress(t,e=null,n=100){return this.call(vo,{address:t,cursor:e,limit:n},sa)}async*iterNamesByAddress(t,e=100){let n=null;do{const r=await this.queryNamesByAddress(t,n,e);yield*r.names,n=r.next_cursor}while(null!==n)}async queryTxState(t){return this.call(Eo,{tx_hash:t},ia)}async submitRawTx(t){return this.call(ko,{raw_tx:ya(t)},oa)}async waitTx(t,e={}){const n=wa("confirmations",e.confirmations??1),r=wa("intervalMs",e.intervalMs??2e3),s=wa("timeoutMs",e.timeoutMs??12e4),i=Date.now();for(;;){const e=await this.queryTxState(t);if("reverted"===e.state)return e;if("succeeded"===e.state&&e.confirmations>=n)return e;if(Date.now()-i>=s)throw new Io("timeout",`timed out waiting for tx ${t} (last state: ${e.state})`);await new Promise((t=>setTimeout(t,r)))}}async listEvents(t,e=100){return this.call(So,{from_seq:t,limit:e},la)}async latestCheckpoint(){return this.callNullable(To,{},aa)}}const Aa=Object.freeze(Object.defineProperty({__proto__:null,BNS_INDEXER_RPC_PATH:po,BNS_SERVER_RPC_PATH:fo,BnsClient:ba,BnsClientError:Io,DID_BNS_PREFIX:go,KEY_PURPOSE_AUTHENTICATION:1,KEY_PURPOSE_RECOVERY:2,KEY_PURPOSE_SIGN_DOCUMENT:4,MAX_BNS_LABEL_LEN:126,MAX_BNS_NAMES_PAGE_SIZE:1e3,MAX_BNS_NAME_LEN:253,METHOD_GET_AUTHORITY_KEY:bo,METHOD_GET_AUTHORITY_SET:wo,METHOD_GET_DOCUMENT_VERSION:_o,METHOD_LATEST_CHECKPOINT:To,METHOD_LIST_EVENTS:So,METHOD_QUERY_NAMES_BY_ADDRESS:vo,METHOD_QUERY_NAME_STATE:mo,METHOD_QUERY_TX_STATE:Eo,METHOD_RESOLVE_DOCUMENT:Ao,METHOD_RESOLVE_OWNER:yo,METHOD_SUBMIT_RAW_TX:ko,ZERO_HASH:"0x0000000000000000000000000000000000000000000000000000000000000000",canonicalBnsName:pa,canonicalDocType:ga,didBnsFromName:function(t){return`${go}${pa(t)}`},nameFromDidBns:function(t){if(!t.startsWith(go))throw Io.registryCode("INVALID_NAME",`invalid BNS name \`${t}\`: DID must start with did:bns:`,{name:t});return pa(t.slice(8))},normalizeBnsIndexerUrl:fa,normalizeBnsServerUrl:da,normalizeRawTx:ya},Symbol.toStringTag,{value:"Module"})),_a="6.17.0";function va(t,e,n){const r=e.split("|").map((t=>t.trim()));for(let i=0;i<r.length;i++)switch(e){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof t===e)return}const s=new Error(`invalid value for type ${e}`);throw s.code="INVALID_ARGUMENT",s.argument=`value.${n}`,s.value=t,s}async function Ea(t){const e=Object.keys(t);return(await Promise.all(e.map((e=>Promise.resolve(t[e]))))).reduce(((t,n,r)=>(t[e[r]]=n,t)),{})}function ka(t,e,n){for(let r in e){let s=e[r];const i=n?n[r]:null;i&&va(s,i,r),Object.defineProperty(t,r,{enumerable:!0,value:s,writable:!1})}}function Sa(t,e){if(null==t)return"null";if(null==e&&(e=new Set),"object"==typeof t){if(e.has(t))return"[Circular]";e.add(t)}if(Array.isArray(t))return"[ "+t.map((t=>Sa(t,e))).join(", ")+" ]";if(t instanceof Uint8Array){const e="0123456789abcdef";let n="0x";for(let r=0;r<t.length;r++)n+=e[t[r]>>4],n+=e[15&t[r]];return n}if("object"==typeof t&&"function"==typeof t.toJSON)return Sa(t.toJSON(),e);switch(typeof t){case"boolean":case"number":case"symbol":return t.toString();case"bigint":return BigInt(t).toString();case"string":return JSON.stringify(t);case"object":{const n=Object.keys(t);return n.sort(),"{ "+n.map((n=>`${Sa(n,e)}: ${Sa(t[n],e)}`)).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function Ta(t,e){return t&&t.code===e}function Ra(t){return Ta(t,"CALL_EXCEPTION")}function Ia(t,e,n){let r,s=t;{const r=[];if(n){if("message"in n||"code"in n||"name"in n)throw new Error(`value will overwrite populated values: ${Sa(n)}`);for(const t in n){if("shortMessage"===t)continue;const e=n[t];r.push(t+"="+Sa(e))}}r.push(`code=${e}`),r.push(`version=${_a}`),r.length&&(t+=" ("+r.join(", ")+")")}switch(e){case"INVALID_ARGUMENT":r=new TypeError(t);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":r=new RangeError(t);break;default:r=new Error(t)}return ka(r,{code:e}),n&&Object.assign(r,n),null==r.shortMessage&&ka(r,{shortMessage:s}),r}function Oa(t,e,n,r){if(!t)throw Ia(e,n,r)}function Ca(t,e,n,r){Oa(t,e,"INVALID_ARGUMENT",{argument:n,value:r})}function xa(t,e,n){null==n&&(n=""),n&&(n=": "+n),Oa(t>=e,"missing argument"+n,"MISSING_ARGUMENT",{count:t,expectedCount:e}),Oa(t<=e,"too many arguments"+n,"UNEXPECTED_ARGUMENT",{count:t,expectedCount:e})}const Na=["NFD","NFC","NFKD","NFKC"].reduce(((t,e)=>{try{if("test"!=="test".normalize(e))throw new Error("bad");if("NFD"===e){const t=String.fromCharCode(233).normalize("NFD");if(t!==String.fromCharCode(101,769))throw new Error("broken")}t.push(e)}catch(n){}return t}),[]);function Pa(t){Oa(Na.indexOf(t)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:t}})}function Da(t,e,n){if(null==n&&(n=""),t!==e){let t=n,e="new";n&&(t+=".",e+=" "+n),Oa(!1,`private constructor; use ${t}from* methods`,"UNSUPPORTED_OPERATION",{operation:e})}}function Ba(t,e,n){if(t instanceof Uint8Array)return n?new Uint8Array(t):t;if("string"==typeof t&&t.length%2==0&&t.match(/^0x[0-9a-f]*$/i)){const e=new Uint8Array((t.length-2)/2);let n=2;for(let r=0;r<e.length;r++)e[r]=parseInt(t.substring(n,n+2),16),n+=2;return e}Ca(!1,"invalid BytesLike value",e||"value",t)}function Ua(t,e){return Ba(t,e,!1)}function La(t,e){return Ba(t,e,!0)}function Ma(t,e){return!("string"!=typeof t||!t.match(/^0x[0-9A-Fa-f]*$/))&&(("number"!=typeof e||t.length===2+2*e)&&(!0!==e||t.length%2==0))}function Fa(t){return Ma(t,!0)||t instanceof Uint8Array}const Ga="0123456789abcdef";function ja(t){const e=Ua(t);let n="0x";for(let r=0;r<e.length;r++){const t=e[r];n+=Ga[(240&t)>>4]+Ga[15&t]}return n}function Ha(t){return"0x"+t.map((t=>ja(t).substring(2))).join("")}function Va(t){return Ma(t,!0)?(t.length-2)/2:Ua(t).length}function Wa(t,e,n){const r=Ua(t);return null!=n&&n>r.length&&Oa(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:n}),ja(r.slice(null==e?0:e,null==n?r.length:n))}function Ka(t,e,n){const r=Ua(t);Oa(e>=r.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(r),length:e,offset:e+1});const s=new Uint8Array(e);return s.fill(0),n?s.set(r,e-r.length):s.set(r,0),ja(s)}function za(t,e){return Ka(t,e,!0)}function qa(t,e){return Ka(t,e,!1)}const $a=BigInt(0),Qa=BigInt(1),Ja=9007199254740991;function Ya(t,e){let n=Xa(t,"value");const r=BigInt(rc(e,"width")),s=Qa<<r-Qa;if(n<$a){n=-n,Oa(n<=s,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:t});return(~n&(Qa<<r)-Qa)+Qa}return Oa(n<s,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:t}),n}function Za(t,e){const n=tc(t,"value"),r=BigInt(rc(e,"bits"));return n&(Qa<<r)-Qa}function Xa(t,e){switch(typeof t){case"bigint":return t;case"number":return Ca(Number.isInteger(t),"underflow",e||"value",t),Ca(t>=-Ja&&t<=Ja,"overflow",e||"value",t),BigInt(t);case"string":try{if(""===t)throw new Error("empty string");return"-"===t[0]&&"-"!==t[1]?-BigInt(t.substring(1)):BigInt(t)}catch(n){Ca(!1,`invalid BigNumberish string: ${n.message}`,e||"value",t)}}Ca(!1,"invalid BigNumberish value",e||"value",t)}function tc(t,e){const n=Xa(t,e);return Oa(n>=$a,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:t}),n}const ec="0123456789abcdef";function nc(t){if(t instanceof Uint8Array){let e="0x0";for(const n of t)e+=ec[n>>4],e+=ec[15&n];return BigInt(e)}return Xa(t)}function rc(t,e){switch(typeof t){case"bigint":return Ca(t>=-Ja&&t<=Ja,"overflow",e||"value",t),Number(t);case"number":return Ca(Number.isInteger(t),"underflow",e||"value",t),Ca(t>=-Ja&&t<=Ja,"overflow",e||"value",t),t;case"string":try{if(""===t)throw new Error("empty string");return rc(BigInt(t),e)}catch(n){Ca(!1,`invalid numeric string: ${n.message}`,e||"value",t)}}Ca(!1,"invalid numeric value",e||"value",t)}function sc(t,e){const n=tc(t,"value");let r=n.toString(16);if(null==e)r.length%2&&(r="0"+r);else{const s=rc(e,"width");if(0===s&&n===$a)return"0x";for(Oa(2*s>=r.length,`value exceeds width (${s} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:t});r.length<2*s;)r="0"+r}return"0x"+r}function ic(t,e){const n=tc(t,"value");if(n===$a){const t=null!=e?rc(e,"width"):0;return new Uint8Array(t)}let r=n.toString(16);if(r.length%2&&(r="0"+r),null!=e){const n=rc(e,"width");for(;r.length<2*n;)r="00"+r;Oa(2*n===r.length,`value exceeds width (${n} bytes)`,"NUMERIC_FAULT",{operation:"toBeArray",fault:"overflow",value:t})}const s=new Uint8Array(r.length/2);for(let i=0;i<s.length;i++){const t=2*i;s[i]=parseInt(r.substring(t,t+2),16)}return s}function oc(t){let e=ja(Fa(t)?t:ic(t)).substring(2);for(;e.startsWith("0");)e=e.substring(1);return""===e&&(e="0"),"0x"+e}const ac="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";let cc=null;function lc(t){if(null==cc){cc={};for(let t=0;t<58;t++)cc[ac[t]]=BigInt(t)}const e=cc[t];return Ca(null!=e,"invalid base58 value","letter",t),e}const uc=BigInt(0),hc=BigInt(58);function dc(t){const e=Ua(t);let n=nc(e),r="";for(;n;)r=ac[Number(n%hc)]+r,n/=hc;for(let s=0;s<e.length&&!e[s];s++)r=ac[0]+r;return r}class fc{constructor(e,n,r){xn(this,"filter"),xn(this,"emitter"),Dn(this,t,void 0),Bn(this,t,n),ka(this,{emitter:e,filter:r})}async removeListener(){null!=Pn(this,t)&&await this.emitter.off(this.filter,Pn(this,t))}}function pc(t,e,n,r,s){if("BAD_PREFIX"===t||"UNEXPECTED_CONTINUE"===t){let t=0;for(let r=e+1;r<n.length&&n[r]>>6==2;r++)t++;return t}return"OVERRUN"===t?n.length-e-1:0}t=new WeakMap;const gc=Object.freeze({error:function(t,e,n,r,s){Ca(!1,`invalid codepoint at offset ${e}; ${t}`,"bytes",n)},ignore:pc,replace:function(t,e,n,r,s){return"OVERLONG"===t?(Ca("number"==typeof s,"invalid bad code point for replacement","badCodepoint",s),r.push(s),0):(r.push(65533),pc(t,e,n))}});function mc(t,e){Ca("string"==typeof t,"invalid string value","str",t),null!=e&&(Pa(e),t=t.normalize(e));let n=[];for(let r=0;r<t.length;r++){const e=t.charCodeAt(r);if(e<128)n.push(e);else if(e<2048)n.push(e>>6|192),n.push(63&e|128);else if(55296==(64512&e)){r++;const s=t.charCodeAt(r);Ca(r<t.length&&56320==(64512&s),"invalid surrogate pair","str",t);const i=65536+((1023&e)<<10)+(1023&s);n.push(i>>18|240),n.push(i>>12&63|128),n.push(i>>6&63|128),n.push(63&i|128)}else n.push(e>>12|224),n.push(e>>6&63|128),n.push(63&e|128)}return new Uint8Array(n)}function yc(t,e){return n=function(t,e){null==e&&(e=gc.error);const n=Ua(t,"bytes"),r=[];let s=0;for(;s<n.length;){const t=n[s++];if(!(t>>7)){r.push(t);continue}let i=null,o=null;if(192==(224&t))i=1,o=127;else if(224==(240&t))i=2,o=2047;else{if(240!=(248&t)){s+=e(128==(192&t)?"UNEXPECTED_CONTINUE":"BAD_PREFIX",s-1,n,r);continue}i=3,o=65535}if(s-1+i>=n.length){s+=e("OVERRUN",s-1,n,r);continue}let a=t&(1<<8-i-1)-1;for(let c=0;c<i;c++){let t=n[s];if(128!=(192&t)){s+=e("MISSING_CONTINUE",s,n,r),a=null;break}a=a<<6|63&t,s++}null!==a&&(a>1114111?s+=e("OUT_OF_RANGE",s-1-i,n,r,a):a>=55296&&a<=57343?s+=e("UTF16_SURROGATE",s-1-i,n,r,a):a<=o?s+=e("OVERLONG",s-1-i,n,r,a):r.push(a))}return r}(t,e),n.map((t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10&1023),56320+(1023&t))))).join("");var n}function wc(t){return async function(e,n){Oa(null==n||!n.cancelled,"request cancelled before sending","CANCELLED");const r=e.url.split(":")[0].toLowerCase();Oa("http"===r||"https"===r,`unsupported protocol ${r}`,"UNSUPPORTED_OPERATION",{info:{protocol:r},operation:"request"}),Oa("https"===r||!e.credentials||e.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let s=null;const i=new AbortController,o=setTimeout((()=>{s=Ia("request timeout","TIMEOUT"),i.abort()}),e.timeout);n&&n.addListener((()=>{s=Ia("request cancelled","CANCELLED"),i.abort()}));const a=Object.assign({},t,{method:e.method,headers:new Headers(Array.from(e)),body:e.body||void 0,signal:i.signal});let c;try{c=await fetch(e.url,a)}catch(d){if(clearTimeout(o),s)throw s;throw d}clearTimeout(o);const l={};c.headers.forEach(((t,e)=>{l[e.toLowerCase()]=t}));const u=await c.arrayBuffer(),h=null==u?null:new Uint8Array(u);return{statusCode:c.status,statusMessage:c.statusText,headers:l,body:h}}}let bc=wc();const Ac=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),_c=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let vc=!1;async function Ec(t,e){try{const e=t.match(Ac);if(!e)throw new Error("invalid data");return new Nc(200,"OK",{"content-type":e[1]||"text/plain"},e[2]?function(t){t=atob(t);const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return Ua(e)}(e[3]):mc(e[3].replace(/%([0-9a-f][0-9a-f])/gi,((t,e)=>String.fromCharCode(parseInt(e,16))))))}catch(n){return new Nc(599,"BAD REQUEST (invalid data: URI)",{},null,new Cc(t))}}function kc(t){return async function(e,n){try{const n=e.match(_c);if(!n)throw new Error("invalid link");return new Cc(`${t}${n[2]}`)}catch(r){return new Nc(599,"BAD REQUEST (invalid IPFS URI)",{},null,new Cc(e))}}}const Sc={data:Ec,ipfs:kc("https://gateway.ipfs.io/ipfs/")},Tc=new WeakMap;class Rc{constructor(t){Dn(this,e,void 0),Dn(this,n,void 0),Bn(this,e,[]),Bn(this,n,!1),Tc.set(t,(()=>{if(!Pn(this,n)){Bn(this,n,!0);for(const t of Pn(this,e))setTimeout((()=>{t()}),0);Bn(this,e,[])}}))}addListener(t){Oa(!Pn(this,n),"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),Pn(this,e).push(t)}get cancelled(){return Pn(this,n)}checkSignal(){Oa(!this.cancelled,"cancelled","CANCELLED",{})}}function Ic(t){if(null==t)throw new Error("missing signal; should not happen");return t.checkSignal(),t}e=new WeakMap,n=new WeakMap;const Oc=class t{constructor(t){Dn(this,w),Dn(this,r,void 0),Dn(this,s,void 0),Dn(this,i,void 0),Dn(this,o,void 0),Dn(this,a,void 0),Dn(this,c,void 0),Dn(this,l,void 0),Dn(this,u,void 0),Dn(this,h,void 0),Dn(this,d,void 0),Dn(this,f,void 0),Dn(this,p,void 0),Dn(this,g,void 0),Dn(this,m,void 0),Dn(this,y,void 0),Bn(this,c,String(t)),Bn(this,r,!1),Bn(this,s,!0),Bn(this,i,{}),Bn(this,o,""),Bn(this,a,3e5),Bn(this,m,{slotInterval:250,maxAttempts:12}),Bn(this,y,null)}get url(){return Pn(this,c)}set url(t){Bn(this,c,String(t))}get body(){return null==Pn(this,l)?null:new Uint8Array(Pn(this,l))}set body(t){if(null==t)Bn(this,l,void 0),Bn(this,u,void 0);else if("string"==typeof t)Bn(this,l,mc(t)),Bn(this,u,"text/plain");else if(t instanceof Uint8Array)Bn(this,l,t),Bn(this,u,"application/octet-stream");else{if("object"!=typeof t)throw new Error("invalid body");Bn(this,l,mc(JSON.stringify(t))),Bn(this,u,"application/json")}}hasBody(){return null!=Pn(this,l)}get method(){return Pn(this,o)?Pn(this,o):this.hasBody()?"POST":"GET"}set method(t){null==t&&(t=""),Bn(this,o,String(t).toUpperCase())}get headers(){const t=Object.assign({},Pn(this,i));return Pn(this,h)&&(t.authorization=`Basic ${function(t){const e=Ua(t);let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return btoa(n)}(mc(Pn(this,h)))}`),this.allowGzip&&(t["accept-encoding"]="gzip"),null==t["content-type"]&&Pn(this,u)&&(t["content-type"]=Pn(this,u)),this.body&&(t["content-length"]=String(this.body.length)),t}getHeader(t){return this.headers[t.toLowerCase()]}setHeader(t,e){Pn(this,i)[String(t).toLowerCase()]=String(e)}clearHeaders(){Bn(this,i,{})}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let n=0;return{next:()=>{if(n<e.length){const r=e[n++];return{value:[r,t[r]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return Pn(this,h)||null}setCredentials(t,e){Ca(!t.match(/:/),"invalid basic authentication username","username","[REDACTED]"),Bn(this,h,`${t}:${e}`)}get allowGzip(){return Pn(this,s)}set allowGzip(t){Bn(this,s,!!t)}get allowInsecureAuthentication(){return!!Pn(this,r)}set allowInsecureAuthentication(t){Bn(this,r,!!t)}get timeout(){return Pn(this,a)}set timeout(t){Ca(t>=0,"timeout must be non-zero","timeout",t),Bn(this,a,t)}get preflightFunc(){return Pn(this,d)||null}set preflightFunc(t){Bn(this,d,t)}get processFunc(){return Pn(this,f)||null}set processFunc(t){Bn(this,f,t)}get retryFunc(){return Pn(this,p)||null}set retryFunc(t){Bn(this,p,t)}get getUrlFunc(){return Pn(this,y)||bc}set getUrlFunc(t){Bn(this,y,t)}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${Pn(this,l)?ja(Pn(this,l)):"null"}>`}setThrottleParams(t){null!=t.slotInterval&&(Pn(this,m).slotInterval=t.slotInterval),null!=t.maxAttempts&&(Pn(this,m).maxAttempts=t.maxAttempts)}send(){return Oa(null==Pn(this,g),"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),Bn(this,g,new Rc(this)),Ln(this,w,b).call(this,0,Pc()+this.timeout,0,this,new Nc(0,"",{},null,this))}cancel(){Oa(null!=Pn(this,g),"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const t=Tc.get(this);if(!t)throw new Error("missing signal; should not happen");t()}redirect(e){const n=this.url.split(":")[0].toLowerCase(),r=e.split(":")[0].toLowerCase();Oa(("https"!==n||"http"!==r)&&e.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(e)})`});const s=new t(e);return s.method=this.method,s.allowGzip=this.allowGzip,s.timeout=this.timeout,Bn(s,i,Object.assign({},Pn(this,i))),Pn(this,l)&&Bn(s,l,new Uint8Array(Pn(this,l))),Bn(s,u,Pn(this,u)),s}clone(){const e=new t(this.url);return Bn(e,o,Pn(this,o)),Pn(this,l)&&Bn(e,l,Pn(this,l)),Bn(e,u,Pn(this,u)),Bn(e,i,Object.assign({},Pn(this,i))),Bn(e,h,Pn(this,h)),this.allowGzip&&(e.allowGzip=!0),e.timeout=this.timeout,this.allowInsecureAuthentication&&(e.allowInsecureAuthentication=!0),Bn(e,d,Pn(this,d)),Bn(e,f,Pn(this,f)),Bn(e,p,Pn(this,p)),Bn(e,m,Object.assign({},Pn(this,m))),Bn(e,y,Pn(this,y)),e}static lockConfig(){vc=!0}static getGateway(t){return Sc[t.toLowerCase()]||null}static registerGateway(t,e){if("http"===(t=t.toLowerCase())||"https"===t)throw new Error(`cannot intercept ${t}; use registerGetUrl`);if(vc)throw new Error("gateways locked");Sc[t]=e}static registerGetUrl(t){if(vc)throw new Error("gateways locked");bc=t}static createGetUrlFunc(t){return wc(t)}static createDataGateway(){return Ec}static createIpfsGatewayFunc(t){return kc(t)}};r=new WeakMap,s=new WeakMap,i=new WeakMap,o=new WeakMap,a=new WeakMap,c=new WeakMap,l=new WeakMap,u=new WeakMap,h=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap,g=new WeakMap,m=new WeakMap,y=new WeakMap,w=new WeakSet,b=async function(t,e,n,r,s){var i,o,a;if(t>=Pn(this,m).maxAttempts)return s.makeServerError("exceeded maximum retry limit");Oa(Pc()<=e,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:r}),n>0&&await function(t){return new Promise((e=>setTimeout(e,t)))}(n);let c=this.clone();const l=(c.url.split(":")[0]||"").toLowerCase();if(l in Sc){const t=await Sc[l](c.url,Ic(Pn(r,g)));if(t instanceof Nc){let e=t;if(this.processFunc){Ic(Pn(r,g));try{e=await this.processFunc(c,e)}catch(d){null!=d.throttle&&"number"==typeof d.stall||e.makeServerError("error in post-processing function",d).assertOk()}}return e}c=t}this.preflightFunc&&(c=await this.preflightFunc(c));const u=await this.getUrlFunc(c,Ic(Pn(r,g)));let h=new Nc(u.statusCode,u.statusMessage,u.headers,u.body,r);if([301,302,307,308].indexOf(h.statusCode)>=0){try{const n=h.headers.location||"";return Ln(i=c.redirect(n),w,b).call(i,t+1,e,0,r,h)}catch(d){}return h}if(429===h.statusCode&&(null==this.retryFunc||await this.retryFunc(c,h,t))){const n=h.headers["retry-after"];let s=Pn(this,m).slotInterval*Math.trunc(Math.random()*Math.pow(2,t));return"string"==typeof n&&n.match(/^[1-9][0-9]*$/)&&(s=parseInt(n)),Ln(o=c.clone(),w,b).call(o,t+1,e,s,r,h)}if(this.processFunc){Ic(Pn(r,g));try{h=await this.processFunc(c,h)}catch(d){null!=d.throttle&&"number"==typeof d.stall||h.makeServerError("error in post-processing function",d).assertOk();let n=Pn(this,m).slotInterval*Math.trunc(Math.random()*Math.pow(2,t));return d.stall>=0&&(n=d.stall),Ln(a=c.clone(),w,b).call(a,t+1,e,n,r,h)}}return h};let Cc=Oc;const xc=class t{constructor(t,e,n,r,s){Dn(this,A,void 0),Dn(this,_,void 0),Dn(this,v,void 0),Dn(this,E,void 0),Dn(this,k,void 0),Dn(this,S,void 0),Bn(this,A,t),Bn(this,_,e),Bn(this,v,Object.keys(n).reduce(((t,e)=>(t[e.toLowerCase()]=String(n[e]),t)),{})),Bn(this,E,null==r?null:new Uint8Array(r)),Bn(this,k,s||null),Bn(this,S,{message:""})}toString(){return`<FetchResponse status=${this.statusCode} body=${Pn(this,E)?ja(Pn(this,E)):"null"}>`}get statusCode(){return Pn(this,A)}get statusMessage(){return Pn(this,_)}get headers(){return Object.assign({},Pn(this,v))}get body(){return null==Pn(this,E)?null:new Uint8Array(Pn(this,E))}get bodyText(){try{return null==Pn(this,E)?"":yc(Pn(this,E))}catch(t){Oa(!1,"response body is not valid UTF-8 data","UNSUPPORTED_OPERATION",{operation:"bodyText",info:{response:this}})}}get bodyJson(){try{return JSON.parse(this.bodyText)}catch(t){Oa(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let n=0;return{next:()=>{if(n<e.length){const r=e[n++];return{value:[r,t[r]],done:!1}}return{value:void 0,done:!0}}}}makeServerError(e,n){let r;r=e?`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${e})`:`CLIENT ESCALATED SERVER ERROR (${e=`${this.statusCode} ${this.statusMessage}`})`;const s=new t(599,r,this.headers,this.body,Pn(this,k)||void 0);return Bn(s,S,{message:e,error:n}),s}throwThrottleError(t,e){null==e?e=-1:Ca(Number.isInteger(e)&&e>=0,"invalid stall timeout","stall",e);const n=new Error(t||"throttling requests");throw ka(n,{stall:e,throttle:!0}),n}getHeader(t){return this.headers[t.toLowerCase()]}hasBody(){return null!=Pn(this,E)}get request(){return Pn(this,k)}ok(){return""===Pn(this,S).message&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:t,error:e}=Pn(this,S);""===t&&(t=`server response ${this.statusCode} ${this.statusMessage}`);let n=null;this.request&&(n=this.request.url);let r=null;try{Pn(this,E)&&(r=yc(Pn(this,E)))}catch(s){}Oa(!1,t,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:e,info:{requestUrl:n,responseBody:r,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}};A=new WeakMap,_=new WeakMap,v=new WeakMap,E=new WeakMap,k=new WeakMap,S=new WeakMap;let Nc=xc;function Pc(){return(new Date).getTime()}function Dc(t){let e=t.toString(16);for(;e.length<2;)e="0"+e;return"0x"+e}function Bc(t,e,n){let r=0;for(let s=0;s<n;s++)r=256*r+t[e+s];return r}function Uc(t,e,n,r){const s=[];for(;n<e+1+r;){const i=Lc(t,n);s.push(i.result),Oa((n+=i.consumed)<=e+1+r,"child data too short","BUFFER_OVERRUN",{buffer:t,length:r,offset:e})}return{consumed:1+r,result:s}}function Lc(t,e){Oa(0!==t.length,"data too short","BUFFER_OVERRUN",{buffer:t,length:0,offset:1});const n=e=>{Oa(e<=t.length,"data short segment too short","BUFFER_OVERRUN",{buffer:t,length:t.length,offset:e})};if(t[e]>=248){const r=t[e]-247;n(e+1+r);const s=Bc(t,e+1,r);return n(e+1+r+s),Uc(t,e,e+1+r,r+s)}if(t[e]>=192){const r=t[e]-192;return n(e+1+r),Uc(t,e,e+1,r)}if(t[e]>=184){const r=t[e]-183;n(e+1+r);const s=Bc(t,e+1,r);n(e+1+r+s);return{consumed:1+r+s,result:ja(t.slice(e+1+r,e+1+r+s))}}if(t[e]>=128){const r=t[e]-128;n(e+1+r);return{consumed:1+r,result:ja(t.slice(e+1,e+1+r))}}return{consumed:1,result:Dc(t[e])}}function Mc(t){const e=Ua(t,"data"),n=Lc(e,0);return Ca(n.consumed===e.length,"unexpected junk after rlp payload","data",t),n.result}function Fc(t){const e=[];for(;t;)e.unshift(255&t),t>>=8;return e}function Gc(t){if(Array.isArray(t)){let e=[];if(t.forEach((function(t){e=e.concat(Gc(t))})),e.length<=55)return e.unshift(192+e.length),e;const n=Fc(e.length);return n.unshift(247+n.length),n.concat(e)}const e=Array.prototype.slice.call(Ua(t,"object"));if(1===e.length&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const n=Fc(e.length);return n.unshift(183+n.length),n.concat(e)}const jc="0123456789abcdef";function Hc(t){let e="0x";for(const n of Gc(t))e+=jc[n>>4],e+=jc[15&n];return e}function Vc(t){const e=Ua(t,"randomBytes");e[6]=15&e[6]|64,e[8]=63&e[8]|128;const n=ja(e);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const Wc=32,Kc=new Uint8Array(Wc),zc=["then"],qc={},$c=new WeakMap;function Qc(t){return $c.get(t)}function Jc(t,e){$c.set(t,e)}function Yc(t,e){const n=new Error(`deferred error during ABI decoding triggered accessing ${t}`);throw n.error=e,n}function Zc(t,e,n){return t.indexOf(null)>=0?e.map(((t,e)=>t instanceof Xc?Zc(Qc(t),t,n):t)):t.reduce(((t,r,s)=>{let i=e.getValue(r);return r in t||(n&&i instanceof Xc&&(i=Zc(Qc(i),i,n)),t[r]=i),t}),{})}T=new WeakMap;let Xc=class t extends Array{constructor(...t){const e=t[0];let n=t[1],r=(t[2]||[]).slice(),s=!0;e!==qc&&(n=t,r=[],s=!1),super(n.length),Dn(this,T,void 0),n.forEach(((t,e)=>{this[e]=t}));const i=r.reduce(((t,e)=>("string"==typeof e&&t.set(e,(t.get(e)||0)+1),t)),new Map);if(Jc(this,Object.freeze(n.map(((t,e)=>{const n=r[e];return null!=n&&1===i.get(n)?n:null})))),Bn(this,T,[]),null==Pn(this,T)&&Pn(this,T),!s)return;Object.freeze(this);const o=new Proxy(this,{get:(t,e,n)=>{if("string"==typeof e){if(e.match(/^[0-9]+$/)){const n=rc(e,"%index");if(n<0||n>=this.length)throw new RangeError("out of result range");const r=t[n];return r instanceof Error&&Yc(`index ${n}`,r),r}if(zc.indexOf(e)>=0)return Reflect.get(t,e,n);const r=t[e];if(r instanceof Function)return function(...e){return r.apply(this===n?t:this,e)};if(!(e in t))return t.getValue.apply(this===n?t:this,[e])}return Reflect.get(t,e,n)}});return Jc(o,Qc(this)),o}toArray(e){const n=[];return this.forEach(((r,s)=>{r instanceof Error&&Yc(`index ${s}`,r),e&&r instanceof t&&(r=r.toArray(e)),n.push(r)})),n}toObject(t){const e=Qc(this);return e.reduce(((n,r,s)=>(Oa(null!=r,`value at index ${s} unnamed`,"UNSUPPORTED_OPERATION",{operation:"toObject()"}),Zc(e,this,t))),{})}slice(e,n){null==e&&(e=0),e<0&&(e+=this.length)<0&&(e=0),null==n&&(n=this.length),n<0&&(n+=this.length)<0&&(n=0),n>this.length&&(n=this.length);const r=Qc(this),s=[],i=[];for(let t=e;t<n;t++)s.push(this[t]),i.push(r[t]);return new t(qc,s,i)}filter(e,n){const r=Qc(this),s=[],i=[];for(let t=0;t<this.length;t++){const o=this[t];o instanceof Error&&Yc(`index ${t}`,o),e.call(n,o,t,this)&&(s.push(o),i.push(r[t]))}return new t(qc,s,i)}map(t,e){const n=[];for(let r=0;r<this.length;r++){const s=this[r];s instanceof Error&&Yc(`index ${r}`,s),n.push(t.call(e,s,r,this))}return n}getValue(t){const e=Qc(this).indexOf(t);if(-1===e)return;const n=this[e];return n instanceof Error&&Yc(`property ${JSON.stringify(t)}`,n.error),n}static fromItems(e,n){return new t(qc,e,n)}};function tl(t){let e=ic(t);return Oa(e.length<=Wc,"value out-of-bounds","BUFFER_OVERRUN",{buffer:e,length:Wc,offset:e.length}),e.length!==Wc&&(e=La(Ha([Kc.slice(e.length%Wc),e]))),e}class el{constructor(t,e,n,r){xn(this,"name"),xn(this,"type"),xn(this,"localName"),xn(this,"dynamic"),ka(this,{name:t,type:e,localName:n,dynamic:r},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(t,e){Ca(!1,t,this.localName,e)}}class nl{constructor(){Dn(this,O),Dn(this,R,void 0),Dn(this,I,void 0),Bn(this,R,[]),Bn(this,I,0)}get data(){return Ha(Pn(this,R))}get length(){return Pn(this,I)}appendWriter(t){return Ln(this,O,C).call(this,La(t.data))}writeBytes(t){let e=La(t);const n=e.length%Wc;return n&&(e=La(Ha([e,Kc.slice(n)]))),Ln(this,O,C).call(this,e)}writeValue(t){return Ln(this,O,C).call(this,tl(t))}writeUpdatableValue(){const t=Pn(this,R).length;return Pn(this,R).push(Kc),Bn(this,I,Pn(this,I)+Wc),e=>{Pn(this,R)[t]=tl(e)}}}R=new WeakMap,I=new WeakMap,O=new WeakSet,C=function(t){return Pn(this,R).push(t),Bn(this,I,Pn(this,I)+t.length),t.length};x=new WeakMap,N=new WeakMap,P=new WeakMap,D=new WeakMap,B=new WeakMap,U=new WeakSet,L=function(t){var e;if(Pn(this,D))return Ln(e=Pn(this,D),U,L).call(e,t);Bn(this,P,Pn(this,P)+t),Oa(Pn(this,B)<1||Pn(this,P)<=Pn(this,B)*this.dataLength,`compressed ABI data exceeds inflation ratio of ${Pn(this,B)} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:La(Pn(this,x)),offset:Pn(this,N),length:t,info:{bytesRead:Pn(this,P),dataLength:this.dataLength}})},M=new WeakSet,F=function(t,e,n){let r=Math.ceil(e/Wc)*Wc;return Pn(this,N)+r>Pn(this,x).length&&(this.allowLoose&&n&&Pn(this,N)+e<=Pn(this,x).length?r=e:Oa(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:La(Pn(this,x)),length:Pn(this,x).length,offset:Pn(this,N)+r})),Pn(this,x).slice(Pn(this,N),Pn(this,N)+r)};let rl=class t{constructor(t,e,n){Dn(this,U),Dn(this,M),xn(this,"allowLoose"),Dn(this,x,void 0),Dn(this,N,void 0),Dn(this,P,void 0),Dn(this,D,void 0),Dn(this,B,void 0),ka(this,{allowLoose:!!e}),Bn(this,x,La(t)),Bn(this,P,0),Bn(this,D,null),Bn(this,B,null!=n?n:1024),Bn(this,N,0)}get data(){return ja(Pn(this,x))}get dataLength(){return Pn(this,x).length}get consumed(){return Pn(this,N)}get bytes(){return new Uint8Array(Pn(this,x))}subReader(e){const n=new t(Pn(this,x).slice(Pn(this,N)+e),this.allowLoose,Pn(this,B));return Bn(n,D,this),n}readBytes(t,e){let n=Ln(this,M,F).call(this,0,t,!!e);return Ln(this,U,L).call(this,t),Bn(this,N,Pn(this,N)+n.length),n.slice(0,t)}readValue(){return nc(this.readBytes(Wc))}readIndex(){return rc(nc(this.readBytes(Wc)))}};function sl(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function il(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function ol(t){if("function"!=typeof t||"function"!=typeof t.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");sl(t.outputLen),sl(t.blockLen)}function al(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function cl(t,e){il(t);const n=e.outputLen;if(t.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}const ll="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,ul=t=>t instanceof Uint8Array,hl=t=>new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4)),dl=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),fl=(t,e)=>t<<32-e|t>>>e;
2
- /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");const pl=async()=>{};async function gl(t,e,n){let r=Date.now();for(let s=0;s<t;s++){n(s);const t=Date.now()-r;t>=0&&t<e||(await pl(),r+=t)}}function ml(t){if("string"==typeof t&&(t=function(t){if("string"!=typeof t)throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array((new TextEncoder).encode(t))}(t)),!ul(t))throw new Error("expected Uint8Array, got "+typeof t);return t}class yl{clone(){return this._cloneInto()}}const wl={}.toString;function bl(t,e){if(void 0!==e&&"[object Object]"!==wl.call(e))throw new Error("Options should be object or undefined");return Object.assign(t,e)}function Al(t){const e=e=>t().update(ml(e)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function _l(t=32){if(ll&&"function"==typeof ll.getRandomValues)return ll.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}class vl extends yl{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,ol(t);const n=ml(e);if(this.iHash=t.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,s=new Uint8Array(r);s.set(n.length>r?t.create().update(n).digest():n);for(let i=0;i<s.length;i++)s[i]^=54;this.iHash.update(s),this.oHash=t.create();for(let i=0;i<s.length;i++)s[i]^=106;this.oHash.update(s),s.fill(0)}update(t){return al(this),this.iHash.update(t),this}digestInto(t){al(this),il(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){const t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));const{oHash:e,iHash:n,finished:r,destroyed:s,blockLen:i,outputLen:o}=this;return t.finished=r,t.destroyed=s,t.blockLen=i,t.outputLen=o,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const El=(t,e,n)=>new vl(t,e).update(n).digest();function kl(t,e,n,r){const{c:s,dkLen:i,DK:o,PRF:a,PRFSalt:c}=function(t,e,n,r){ol(t);const s=bl({dkLen:32,asyncTick:10},r),{c:i,dkLen:o,asyncTick:a}=s;if(sl(i),sl(o),sl(a),i<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const c=ml(e),l=ml(n),u=new Uint8Array(o),h=El.create(t,c),d=h._cloneInto().update(l);return{c:i,dkLen:o,asyncTick:a,DK:u,PRF:h,PRFSalt:d}}(t,e,n,r);let l;const u=new Uint8Array(4),h=dl(u),d=new Uint8Array(a.outputLen);for(let f=1,p=0;p<i;f++,p+=a.outputLen){const t=o.subarray(p,p+a.outputLen);h.setInt32(0,f,!1),(l=c._cloneInto(l)).update(u).digestInto(d),t.set(d.subarray(0,t.length));for(let e=1;e<s;e++){a._cloneInto(l).update(d).digestInto(d);for(let e=0;e<t.length;e++)t[e]^=d[e]}}return function(t,e,n,r,s){return t.destroy(),e.destroy(),r&&r.destroy(),s.fill(0),n}(a,c,o,l,d)}El.create=(t,e)=>new vl(t,e);class Sl extends yl{constructor(t,e,n,r){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=dl(this.buffer)}update(t){al(this);const{view:e,buffer:n,blockLen:r}=this,s=(t=ml(t)).length;for(let i=0;i<s;){const o=Math.min(r-this.pos,s-i);if(o!==r)n.set(t.subarray(i,i+o),this.pos),this.pos+=o,i+=o,this.pos===r&&(this.process(e,0),this.pos=0);else{const e=dl(t);for(;r<=s-i;i+=r)this.process(e,i)}}return this.length+=t.length,this.roundClean(),this}digestInto(t){al(this),cl(t,this),this.finished=!0;const{buffer:e,view:n,blockLen:r,isLE:s}=this;let{pos:i}=this;e[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>r-i&&(this.process(n,0),i=0);for(let u=i;u<r;u++)e[u]=0;!function(t,e,n,r){if("function"==typeof t.setBigUint64)return t.setBigUint64(e,n,r);const s=BigInt(32),i=BigInt(4294967295),o=Number(n>>s&i),a=Number(n&i),c=r?4:0,l=r?0:4;t.setUint32(e+c,o,r),t.setUint32(e+l,a,r)}(n,r-8,BigInt(8*this.length),s),this.process(n,0);const o=dl(t),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=a/4,l=this.get();if(c>l.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<c;u++)o.setUint32(4*u,l[u],s)}digest(){const{buffer:t,outputLen:e}=this;this.digestInto(t);const n=t.slice(0,e);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:e,buffer:n,length:r,finished:s,destroyed:i,pos:o}=this;return t.length=r,t.pos=o,t.finished=s,t.destroyed=i,r%e&&t.buffer.set(n),t}}const Tl=(t,e,n)=>t&e^t&n^e&n,Rl=new Uint32Array([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]),Il=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ol=new Uint32Array(64);class Cl extends Sl{constructor(){super(64,32,8,!1),this.A=0|Il[0],this.B=0|Il[1],this.C=0|Il[2],this.D=0|Il[3],this.E=0|Il[4],this.F=0|Il[5],this.G=0|Il[6],this.H=0|Il[7]}get(){const{A:t,B:e,C:n,D:r,E:s,F:i,G:o,H:a}=this;return[t,e,n,r,s,i,o,a]}set(t,e,n,r,s,i,o,a){this.A=0|t,this.B=0|e,this.C=0|n,this.D=0|r,this.E=0|s,this.F=0|i,this.G=0|o,this.H=0|a}process(t,e){for(let h=0;h<16;h++,e+=4)Ol[h]=t.getUint32(e,!1);for(let h=16;h<64;h++){const t=Ol[h-15],e=Ol[h-2],n=fl(t,7)^fl(t,18)^t>>>3,r=fl(e,17)^fl(e,19)^e>>>10;Ol[h]=r+Ol[h-7]+n+Ol[h-16]|0}let{A:n,B:r,C:s,D:i,E:o,F:a,G:c,H:l}=this;for(let h=0;h<64;h++){const t=l+(fl(o,6)^fl(o,11)^fl(o,25))+((u=o)&a^~u&c)+Rl[h]+Ol[h]|0,e=(fl(n,2)^fl(n,13)^fl(n,22))+Tl(n,r,s)|0;l=c,c=a,a=o,o=i+t|0,i=s,s=r,r=n,n=t+e|0}var u;n=n+this.A|0,r=r+this.B|0,s=s+this.C|0,i=i+this.D|0,o=o+this.E|0,a=a+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,s,i,o,a,c,l)}roundClean(){Ol.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const xl=Al((()=>new Cl)),Nl=BigInt(2**32-1),Pl=BigInt(32);function Dl(t,e=!1){return e?{h:Number(t&Nl),l:Number(t>>Pl&Nl)}:{h:0|Number(t>>Pl&Nl),l:0|Number(t&Nl)}}function Bl(t,e=!1){let n=new Uint32Array(t.length),r=new Uint32Array(t.length);for(let s=0;s<t.length;s++){const{h:i,l:o}=Dl(t[s],e);[n[s],r[s]]=[i,o]}return[n,r]}const Ul=(t,e,n)=>t<<n|e>>>32-n,Ll=(t,e,n)=>e<<n|t>>>32-n,Ml=(t,e,n)=>e<<n-32|t>>>64-n,Fl=(t,e,n)=>t<<n-32|e>>>64-n;const Gl={fromBig:Dl,split:Bl,toBig:(t,e)=>BigInt(t>>>0)<<Pl|BigInt(e>>>0),shrSH:(t,e,n)=>t>>>n,shrSL:(t,e,n)=>t<<32-n|e>>>n,rotrSH:(t,e,n)=>t>>>n|e<<32-n,rotrSL:(t,e,n)=>t<<32-n|e>>>n,rotrBH:(t,e,n)=>t<<64-n|e>>>n-32,rotrBL:(t,e,n)=>t>>>n-32|e<<64-n,rotr32H:(t,e)=>e,rotr32L:(t,e)=>t,rotlSH:Ul,rotlSL:Ll,rotlBH:Ml,rotlBL:Fl,add:function(t,e,n,r){const s=(e>>>0)+(r>>>0);return{h:t+n+(s/2**32|0)|0,l:0|s}},add3L:(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),add3H:(t,e,n,r)=>e+n+r+(t/2**32|0)|0,add4L:(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),add4H:(t,e,n,r,s)=>e+n+r+s+(t/2**32|0)|0,add5H:(t,e,n,r,s,i)=>e+n+r+s+i+(t/2**32|0)|0,add5L:(t,e,n,r,s)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(s>>>0)},[jl,Hl]=(()=>Gl.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((t=>BigInt(t)))))(),Vl=new Uint32Array(80),Wl=new Uint32Array(80);class Kl extends Sl{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:e,Bh:n,Bl:r,Ch:s,Cl:i,Dh:o,Dl:a,Eh:c,El:l,Fh:u,Fl:h,Gh:d,Gl:f,Hh:p,Hl:g}=this;return[t,e,n,r,s,i,o,a,c,l,u,h,d,f,p,g]}set(t,e,n,r,s,i,o,a,c,l,u,h,d,f,p,g){this.Ah=0|t,this.Al=0|e,this.Bh=0|n,this.Bl=0|r,this.Ch=0|s,this.Cl=0|i,this.Dh=0|o,this.Dl=0|a,this.Eh=0|c,this.El=0|l,this.Fh=0|u,this.Fl=0|h,this.Gh=0|d,this.Gl=0|f,this.Hh=0|p,this.Hl=0|g}process(t,e){for(let w=0;w<16;w++,e+=4)Vl[w]=t.getUint32(e),Wl[w]=t.getUint32(e+=4);for(let w=16;w<80;w++){const t=0|Vl[w-15],e=0|Wl[w-15],n=Gl.rotrSH(t,e,1)^Gl.rotrSH(t,e,8)^Gl.shrSH(t,e,7),r=Gl.rotrSL(t,e,1)^Gl.rotrSL(t,e,8)^Gl.shrSL(t,e,7),s=0|Vl[w-2],i=0|Wl[w-2],o=Gl.rotrSH(s,i,19)^Gl.rotrBH(s,i,61)^Gl.shrSH(s,i,6),a=Gl.rotrSL(s,i,19)^Gl.rotrBL(s,i,61)^Gl.shrSL(s,i,6),c=Gl.add4L(r,a,Wl[w-7],Wl[w-16]),l=Gl.add4H(c,n,o,Vl[w-7],Vl[w-16]);Vl[w]=0|l,Wl[w]=0|c}let{Ah:n,Al:r,Bh:s,Bl:i,Ch:o,Cl:a,Dh:c,Dl:l,Eh:u,El:h,Fh:d,Fl:f,Gh:p,Gl:g,Hh:m,Hl:y}=this;for(let w=0;w<80;w++){const t=Gl.rotrSH(u,h,14)^Gl.rotrSH(u,h,18)^Gl.rotrBH(u,h,41),e=Gl.rotrSL(u,h,14)^Gl.rotrSL(u,h,18)^Gl.rotrBL(u,h,41),b=u&d^~u&p,A=h&f^~h&g,_=Gl.add5L(y,e,A,Hl[w],Wl[w]),v=Gl.add5H(_,m,t,b,jl[w],Vl[w]),E=0|_,k=Gl.rotrSH(n,r,28)^Gl.rotrBH(n,r,34)^Gl.rotrBH(n,r,39),S=Gl.rotrSL(n,r,28)^Gl.rotrBL(n,r,34)^Gl.rotrBL(n,r,39),T=n&s^n&o^s&o,R=r&i^r&a^i&a;m=0|p,y=0|g,p=0|d,g=0|f,d=0|u,f=0|h,({h:u,l:h}=Gl.add(0|c,0|l,0|v,0|E)),c=0|o,l=0|a,o=0|s,a=0|i,s=0|n,i=0|r;const I=Gl.add3L(E,S,R);n=Gl.add3H(I,v,k,T),r=0|I}({h:n,l:r}=Gl.add(0|this.Ah,0|this.Al,0|n,0|r)),({h:s,l:i}=Gl.add(0|this.Bh,0|this.Bl,0|s,0|i)),({h:o,l:a}=Gl.add(0|this.Ch,0|this.Cl,0|o,0|a)),({h:c,l:l}=Gl.add(0|this.Dh,0|this.Dl,0|c,0|l)),({h:u,l:h}=Gl.add(0|this.Eh,0|this.El,0|u,0|h)),({h:d,l:f}=Gl.add(0|this.Fh,0|this.Fl,0|d,0|f)),({h:p,l:g}=Gl.add(0|this.Gh,0|this.Gl,0|p,0|g)),({h:m,l:y}=Gl.add(0|this.Hh,0|this.Hl,0|m,0|y)),this.set(n,r,s,i,o,a,c,l,u,h,d,f,p,g,m,y)}roundClean(){Vl.fill(0),Wl.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const zl=Al((()=>new Kl));const ql=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}(),$l=ql.crypto||ql.msCrypto;let Ql=!1;const Jl=function(t,e,n){return function(t,e){const n={sha256:xl,sha512:zl}[t];return Ca(null!=n,"invalid hmac algorithm","algorithm",t),El.create(n,e)}(t,e).update(n).digest()};let Yl=Jl;function Zl(t,e,n){const r=Ua(e,"key"),s=Ua(n,"data");return ja(Yl(t,r,s))}Zl._=Jl,Zl.lock=function(){Ql=!0},Zl.register=function(t){if(Ql)throw new Error("computeHmac is locked");Yl=t},Object.freeze(Zl);const[Xl,tu,eu]=[[],[],[]],nu=BigInt(0),ru=BigInt(1),su=BigInt(2),iu=BigInt(7),ou=BigInt(256),au=BigInt(113);for(let Nv=0,Pv=ru,Dv=1,Bv=0;Nv<24;Nv++){[Dv,Bv]=[Bv,(2*Dv+3*Bv)%5],Xl.push(2*(5*Bv+Dv)),tu.push((Nv+1)*(Nv+2)/2%64);let t=nu;for(let e=0;e<7;e++)Pv=(Pv<<ru^(Pv>>iu)*au)%ou,Pv&su&&(t^=ru<<(ru<<BigInt(e))-ru);eu.push(t)}const[cu,lu]=Bl(eu,!0),uu=(t,e,n)=>n>32?Ml(t,e,n):Ul(t,e,n),hu=(t,e,n)=>n>32?Fl(t,e,n):Ll(t,e,n);class du extends yl{constructor(t,e,n,r=!1,s=24){if(super(),this.blockLen=t,this.suffix=e,this.outputLen=n,this.enableXOF=r,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,sl(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=hl(this.state)}keccak(){!function(t,e=24){const n=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let r=0;r<10;r++)n[r]=t[r]^t[r+10]^t[r+20]^t[r+30]^t[r+40];for(let r=0;r<10;r+=2){const e=(r+8)%10,s=(r+2)%10,i=n[s],o=n[s+1],a=uu(i,o,1)^n[e],c=hu(i,o,1)^n[e+1];for(let n=0;n<50;n+=10)t[r+n]^=a,t[r+n+1]^=c}let e=t[2],s=t[3];for(let n=0;n<24;n++){const r=tu[n],i=uu(e,s,r),o=hu(e,s,r),a=Xl[n];e=t[a],s=t[a+1],t[a]=i,t[a+1]=o}for(let r=0;r<50;r+=10){for(let e=0;e<10;e++)n[e]=t[r+e];for(let e=0;e<10;e++)t[r+e]^=~n[(e+2)%10]&n[(e+4)%10]}t[0]^=cu[r],t[1]^=lu[r]}n.fill(0)}(this.state32,this.rounds),this.posOut=0,this.pos=0}update(t){al(this);const{blockLen:e,state:n}=this,r=(t=ml(t)).length;for(let s=0;s<r;){const i=Math.min(e-this.pos,r-s);for(let e=0;e<i;e++)n[this.pos++]^=t[s++];this.pos===e&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:e,pos:n,blockLen:r}=this;t[n]^=e,128&e&&n===r-1&&this.keccak(),t[r-1]^=128,this.keccak()}writeInto(t){al(this,!1),il(t),this.finish();const e=this.state,{blockLen:n}=this;for(let r=0,s=t.length;r<s;){this.posOut>=n&&this.keccak();const i=Math.min(n-this.posOut,s-r);t.set(e.subarray(this.posOut,this.posOut+i),r),this.posOut+=i,r+=i}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return sl(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(cl(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,this.state.fill(0)}_cloneInto(t){const{blockLen:e,suffix:n,outputLen:r,rounds:s,enableXOF:i}=this;return t||(t=new du(e,n,r,i,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=r,t.enableXOF=i,t.destroyed=this.destroyed,t}}const fu=((t,e,n)=>Al((()=>new du(e,t,n))))(1,136,32);let pu=!1;const gu=function(t){return fu(t)};let mu=gu;function yu(t){const e=Ua(t,"data");return ja(mu(e))}yu._=gu,yu.lock=function(){pu=!0},yu.register=function(t){if(pu)throw new TypeError("keccak256 is locked");mu=t},Object.freeze(yu);const wu=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),bu=Uint8Array.from({length:16},((t,e)=>e));let Au=[bu],_u=[bu.map((t=>(9*t+5)%16))];for(let Nv=0;Nv<4;Nv++)for(let t of[Au,_u])t.push(t[Nv].map((t=>wu[t])));const vu=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((t=>new Uint8Array(t))),Eu=Au.map(((t,e)=>t.map((t=>vu[e][t])))),ku=_u.map(((t,e)=>t.map((t=>vu[e][t])))),Su=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),Tu=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),Ru=(t,e)=>t<<e|t>>>32-e;function Iu(t,e,n,r){return 0===t?e^n^r:1===t?e&n|~e&r:2===t?(e|~n)^r:3===t?e&r|n&~r:e^(n|~r)}const Ou=new Uint32Array(16);class Cu extends Sl{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:e,h2:n,h3:r,h4:s}=this;return[t,e,n,r,s]}set(t,e,n,r,s){this.h0=0|t,this.h1=0|e,this.h2=0|n,this.h3=0|r,this.h4=0|s}process(t,e){for(let d=0;d<16;d++,e+=4)Ou[d]=t.getUint32(e,!0);let n=0|this.h0,r=n,s=0|this.h1,i=s,o=0|this.h2,a=o,c=0|this.h3,l=c,u=0|this.h4,h=u;for(let d=0;d<5;d++){const t=4-d,e=Su[d],f=Tu[d],p=Au[d],g=_u[d],m=Eu[d],y=ku[d];for(let r=0;r<16;r++){const t=Ru(n+Iu(d,s,o,c)+Ou[p[r]]+e,m[r])+u|0;n=u,u=c,c=0|Ru(o,10),o=s,s=t}for(let n=0;n<16;n++){const e=Ru(r+Iu(t,i,a,l)+Ou[g[n]]+f,y[n])+h|0;r=h,h=l,l=0|Ru(a,10),a=i,i=e}}this.set(this.h1+o+l|0,this.h2+c+h|0,this.h3+u+r|0,this.h4+n+i|0,this.h0+s+a|0)}roundClean(){Ou.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}const xu=Al((()=>new Cu));let Nu=!1;const Pu=function(t){return xu(t)};let Du=Pu;function Bu(t){const e=Ua(t,"data");return ja(Du(e))}Bu._=Pu,Bu.lock=function(){Nu=!0},Bu.register=function(t){if(Nu)throw new TypeError("ripemd160 is locked");Du=t},Object.freeze(Bu);let Uu=!1;const Lu=function(t,e,n,r,s){return function(t,e,n,r,s){const i={sha256:xl,sha512:zl}[s];return Ca(null!=i,"invalid pbkdf2 algorithm","algorithm",s),kl(i,t,e,{c:n,dkLen:r})}(t,e,n,r,s)};let Mu=Lu;function Fu(t,e,n,r,s){const i=Ua(t,"password"),o=Ua(e,"salt");return ja(Mu(i,o,n,r,s))}Fu._=Lu,Fu.lock=function(){Uu=!0},Fu.register=function(t){if(Uu)throw new Error("pbkdf2 is locked");Mu=t},Object.freeze(Fu);let Gu=!1;const ju=function(t){return new Uint8Array(function(t){Oa(null!=$l,"platform does not support secure random numbers","UNSUPPORTED_OPERATION",{operation:"randomBytes"}),Ca(Number.isInteger(t)&&t>0&&t<=1024,"invalid length","length",t);const e=new Uint8Array(t);return $l.getRandomValues(e),e}(t))};let Hu=ju;function Vu(t){return Hu(t)}Vu._=ju,Vu.lock=function(){Gu=!0},Vu.register=function(t){if(Gu)throw new Error("randomBytes is locked");Hu=t},Object.freeze(Vu);const Wu=(t,e)=>t<<e|t>>>32-e;function Ku(t,e,n,r,s,i){let o=t[e++]^n[r++],a=t[e++]^n[r++],c=t[e++]^n[r++],l=t[e++]^n[r++],u=t[e++]^n[r++],h=t[e++]^n[r++],d=t[e++]^n[r++],f=t[e++]^n[r++],p=t[e++]^n[r++],g=t[e++]^n[r++],m=t[e++]^n[r++],y=t[e++]^n[r++],w=t[e++]^n[r++],b=t[e++]^n[r++],A=t[e++]^n[r++],_=t[e++]^n[r++],v=o,E=a,k=c,S=l,T=u,R=h,I=d,O=f,C=p,x=g,N=m,P=y,D=w,B=b,U=A,L=_;for(let M=0;M<8;M+=2)T^=Wu(v+D|0,7),C^=Wu(T+v|0,9),D^=Wu(C+T|0,13),v^=Wu(D+C|0,18),x^=Wu(R+E|0,7),B^=Wu(x+R|0,9),E^=Wu(B+x|0,13),R^=Wu(E+B|0,18),U^=Wu(N+I|0,7),k^=Wu(U+N|0,9),I^=Wu(k+U|0,13),N^=Wu(I+k|0,18),S^=Wu(L+P|0,7),O^=Wu(S+L|0,9),P^=Wu(O+S|0,13),L^=Wu(P+O|0,18),E^=Wu(v+S|0,7),k^=Wu(E+v|0,9),S^=Wu(k+E|0,13),v^=Wu(S+k|0,18),I^=Wu(R+T|0,7),O^=Wu(I+R|0,9),T^=Wu(O+I|0,13),R^=Wu(T+O|0,18),P^=Wu(N+x|0,7),C^=Wu(P+N|0,9),x^=Wu(C+P|0,13),N^=Wu(x+C|0,18),D^=Wu(L+U|0,7),B^=Wu(D+L|0,9),U^=Wu(B+D|0,13),L^=Wu(U+B|0,18);s[i++]=o+v|0,s[i++]=a+E|0,s[i++]=c+k|0,s[i++]=l+S|0,s[i++]=u+T|0,s[i++]=h+R|0,s[i++]=d+I|0,s[i++]=f+O|0,s[i++]=p+C|0,s[i++]=g+x|0,s[i++]=m+N|0,s[i++]=y+P|0,s[i++]=w+D|0,s[i++]=b+B|0,s[i++]=A+U|0,s[i++]=_+L|0}function zu(t,e,n,r,s){let i=r+0,o=r+16*s;for(let a=0;a<16;a++)n[o+a]=t[e+16*(2*s-1)+a];for(let a=0;a<s;a++,i+=16,e+=16)Ku(n,o,t,e,n,i),a>0&&(o+=16),Ku(n,i,t,e+=16,n,o)}function qu(t,e,n){const r=bl({dkLen:32,asyncTick:10,maxmem:1073742848},n),{N:s,r:i,p:o,dkLen:a,asyncTick:c,maxmem:l,onProgress:u}=r;if(sl(s),sl(i),sl(o),sl(a),sl(c),sl(l),void 0!==u&&"function"!=typeof u)throw new Error("progressCb should be function");const h=128*i,d=h/4;if(s<=1||s&s-1||s>=2**(h/8)||s>2**32)throw new Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(o<0||o>137438953440/h)throw new Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(a<0||a>137438953440)throw new Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");const f=h*(s+o);if(f>l)throw new Error(`Scrypt: parameters too large, ${f} (128 * r * (N + p)) > ${l} (maxmem)`);const p=kl(xl,t,e,{c:1,dkLen:h*o}),g=hl(p),m=hl(new Uint8Array(h*s)),y=hl(new Uint8Array(h));let w=()=>{};if(u){const t=2*s*o,e=Math.max(Math.floor(t/1e4),1);let n=0;w=()=>{n++,!u||n%e&&n!==t||u(n/t)}}return{N:s,r:i,p:o,dkLen:a,blockSize32:d,V:m,B32:g,B:p,tmp:y,blockMixCb:w,asyncTick:c}}function $u(t,e,n,r,s){const i=kl(xl,t,n,{c:1,dkLen:e});return n.fill(0),r.fill(0),s.fill(0),i}let Qu=!1,Ju=!1;const Yu=async function(t,e,n,r,s,i,o){return await async function(t,e,n){const{N:r,r:s,p:i,dkLen:o,blockSize32:a,V:c,B32:l,B:u,tmp:h,blockMixCb:d,asyncTick:f}=qu(t,e,n);for(let p=0;p<i;p++){const t=a*p;for(let n=0;n<a;n++)c[n]=l[t+n];let e=0;await gl(r-1,f,(()=>{zu(c,e,c,e+=a,s),d()})),zu(c,(r-1)*a,l,t,s),d(),await gl(r,f,(()=>{const e=l[t+a-16]%r;for(let n=0;n<a;n++)h[n]=l[t+n]^c[e*a+n];zu(h,0,l,t,s),d()}))}return $u(t,o,u,c,h)}(t,e,{N:n,r:r,p:s,dkLen:i,onProgress:o})},Zu=function(t,e,n,r,s,i){return function(t,e,n){const{N:r,r:s,p:i,dkLen:o,blockSize32:a,V:c,B32:l,B:u,tmp:h,blockMixCb:d}=qu(t,e,n);for(let f=0;f<i;f++){const t=a*f;for(let e=0;e<a;e++)c[e]=l[t+e];for(let e=0,n=0;e<r-1;e++)zu(c,n,c,n+=a,s),d();zu(c,(r-1)*a,l,t,s),d();for(let e=0;e<r;e++){const e=l[t+a-16]%r;for(let n=0;n<a;n++)h[n]=l[t+n]^c[e*a+n];zu(h,0,l,t,s),d()}}return $u(t,o,u,c,h)}(t,e,{N:n,r:r,p:s,dkLen:i})};let Xu=Yu,th=Zu;async function eh(t,e,n,r,s,i,o){const a=Ua(t,"passwd"),c=Ua(e,"salt");return ja(await Xu(a,c,n,r,s,i,o))}function nh(t,e,n,r,s,i){const o=Ua(t,"passwd"),a=Ua(e,"salt");return ja(th(o,a,n,r,s,i))}eh._=Yu,eh.lock=function(){Ju=!0},eh.register=function(t){if(Ju)throw new Error("scrypt is locked");Xu=t},Object.freeze(eh),nh._=Zu,nh.lock=function(){Qu=!0},nh.register=function(t){if(Qu)throw new Error("scryptSync is locked");th=t},Object.freeze(nh);const rh=function(t){return function(t){switch(t){case"sha256":return xl.create();case"sha512":return zl.create()}Ca(!1,"invalid hashing algorithm name","algorithm",t)}("sha256").update(t).digest()};let sh=rh,ih=!1;function oh(t){const e=Ua(t,"data");return ja(sh(e))}oh._=rh,oh.lock=function(){ih=!0},oh.register=function(t){if(ih)throw new Error("sha256 is locked");sh=t},Object.freeze(oh),Object.freeze(oh);
3
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
4
- const ah=BigInt(0),ch=BigInt(1),lh=BigInt(2),uh=t=>t instanceof Uint8Array,hh=Array.from({length:256},((t,e)=>e.toString(16).padStart(2,"0")));function dh(t){if(!uh(t))throw new Error("Uint8Array expected");let e="";for(let n=0;n<t.length;n++)e+=hh[t[n]];return e}function fh(t){const e=t.toString(16);return 1&e.length?`0${e}`:e}function ph(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);return BigInt(""===t?"0":`0x${t}`)}function gh(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);const e=t.length;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);const n=new Uint8Array(e/2);for(let r=0;r<n.length;r++){const e=2*r,s=t.slice(e,e+2),i=Number.parseInt(s,16);if(Number.isNaN(i)||i<0)throw new Error("Invalid byte sequence");n[r]=i}return n}function mh(t){return ph(dh(t))}function yh(t){if(!uh(t))throw new Error("Uint8Array expected");return ph(dh(Uint8Array.from(t).reverse()))}function wh(t,e){return gh(t.toString(16).padStart(2*e,"0"))}function bh(t,e){return wh(t,e).reverse()}function Ah(t,e,n){let r;if("string"==typeof e)try{r=gh(e)}catch(i){throw new Error(`${t} must be valid hex string, got "${e}". Cause: ${i}`)}else{if(!uh(e))throw new Error(`${t} must be hex string or Uint8Array`);r=Uint8Array.from(e)}const s=r.length;if("number"==typeof n&&s!==n)throw new Error(`${t} expected ${n} bytes, got ${s}`);return r}function _h(...t){const e=new Uint8Array(t.reduce(((t,e)=>t+e.length),0));let n=0;return t.forEach((t=>{if(!uh(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length})),e}const vh=t=>(lh<<BigInt(t-1))-ch,Eh=t=>new Uint8Array(t),kh=t=>Uint8Array.from(t);function Sh(t,e,n){if("number"!=typeof t||t<2)throw new Error("hashLen must be a number");if("number"!=typeof e||e<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let r=Eh(t),s=Eh(t),i=0;const o=()=>{r.fill(1),s.fill(0),i=0},a=(...t)=>n(s,r,...t),c=(t=Eh())=>{s=a(kh([0]),t),r=a(),0!==t.length&&(s=a(kh([1]),t),r=a())},l=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let t=0;const n=[];for(;t<e;){r=a();const e=r.slice();n.push(e),t+=r.length}return _h(...n)};return(t,e)=>{let n;for(o(),c(t);!(n=e(l()));)c();return o(),n}}const Th={bigint:t=>"bigint"==typeof t,function:t=>"function"==typeof t,boolean:t=>"boolean"==typeof t,string:t=>"string"==typeof t,stringOrUint8Array:t=>"string"==typeof t||t instanceof Uint8Array,isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>"function"==typeof t&&Number.isSafeInteger(t.outputLen)};function Rh(t,e,n={}){const r=(e,n,r)=>{const s=Th[n];if("function"!=typeof s)throw new Error(`Invalid validator "${n}", expected function`);const i=t[e];if(!(r&&void 0===i||s(i,t)))throw new Error(`Invalid param ${String(e)}=${i} (${typeof i}), expected ${n}`)};for(const[s,i]of Object.entries(e))r(s,i,!1);for(const[s,i]of Object.entries(n))r(s,i,!0);return t}const Ih=Object.freeze(Object.defineProperty({__proto__:null,bitGet:function(t,e){return t>>BigInt(e)&ch},bitLen:function(t){let e;for(e=0;t>ah;t>>=ch,e+=1);return e},bitMask:vh,bitSet:(t,e,n)=>t|(n?ch:ah)<<BigInt(e),bytesToHex:dh,bytesToNumberBE:mh,bytesToNumberLE:yh,concatBytes:_h,createHmacDrbg:Sh,ensureBytes:Ah,equalBytes:function(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0},hexToBytes:gh,hexToNumber:ph,numberToBytesBE:wh,numberToBytesLE:bh,numberToHexUnpadded:fh,numberToVarBytesBE:function(t){return gh(fh(t))},utf8ToBytes:function(t){if("string"!=typeof t)throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array((new TextEncoder).encode(t))},validateObject:Rh},Symbol.toStringTag,{value:"Module"})),Oh=BigInt(0),Ch=BigInt(1),xh=BigInt(2),Nh=BigInt(3),Ph=BigInt(4),Dh=BigInt(5),Bh=BigInt(8);
5
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Uh(t,e){const n=t%e;return n>=Oh?n:e+n}function Lh(t,e,n){if(n<=Oh||e<Oh)throw new Error("Expected power/modulo > 0");if(n===Ch)return Oh;let r=Ch;for(;e>Oh;)e&Ch&&(r=r*t%n),t=t*t%n,e>>=Ch;return r}function Mh(t,e,n){let r=t;for(;e-- >Oh;)r*=r,r%=n;return r}function Fh(t,e){if(t===Oh||e<=Oh)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let n=Uh(t,e),r=e,s=Oh,i=Ch;for(;n!==Oh;){const t=r%n,e=s-i*(r/n);r=n,n=t,s=i,i=e}if(r!==Ch)throw new Error("invert: does not exist");return Uh(s,e)}function Gh(t){if(t%Ph===Nh){const e=(t+Ch)/Ph;return function(t,n){const r=t.pow(n,e);if(!t.eql(t.sqr(r),n))throw new Error("Cannot find square root");return r}}if(t%Bh===Dh){const e=(t-Dh)/Bh;return function(t,n){const r=t.mul(n,xh),s=t.pow(r,e),i=t.mul(n,s),o=t.mul(t.mul(i,xh),s),a=t.mul(i,t.sub(o,t.ONE));if(!t.eql(t.sqr(a),n))throw new Error("Cannot find square root");return a}}return function(t){const e=(t-Ch)/xh;let n,r,s;for(n=t-Ch,r=0;n%xh===Oh;n/=xh,r++);for(s=xh;s<t&&Lh(s,e,t)!==t-Ch;s++);if(1===r){const e=(t+Ch)/Ph;return function(t,n){const r=t.pow(n,e);if(!t.eql(t.sqr(r),n))throw new Error("Cannot find square root");return r}}const i=(n+Ch)/xh;return function(t,o){if(t.pow(o,e)===t.neg(t.ONE))throw new Error("Cannot find square root");let a=r,c=t.pow(t.mul(t.ONE,s),n),l=t.pow(o,i),u=t.pow(o,n);for(;!t.eql(u,t.ONE);){if(t.eql(u,t.ZERO))return t.ZERO;let e=1;for(let r=t.sqr(u);e<a&&!t.eql(r,t.ONE);e++)r=t.sqr(r);const n=t.pow(c,Ch<<BigInt(a-e-1));c=t.sqr(n),l=t.mul(l,n),u=t.mul(u,c),a=e}return l}}(t)}BigInt(9),BigInt(16);const jh=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Hh(t,e){const n=void 0!==e?e:t.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function Vh(t){if("bigint"!=typeof t)throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function Wh(t){const e=Vh(t);return e+Math.ceil(e/2)}
6
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
7
- const Kh=BigInt(0),zh=BigInt(1);function qh(t){return Rh(t.Fp,jh.reduce(((t,e)=>(t[e]="function",t)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),Rh(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Hh(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}
8
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const{bytesToNumberBE:$h,hexToBytes:Qh}=Ih,Jh={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(t){const{Err:e}=Jh;if(t.length<2||2!==t[0])throw new e("Invalid signature integer tag");const n=t[1],r=t.subarray(2,n+2);if(!n||r.length!==n)throw new e("Invalid signature integer: wrong length");if(128&r[0])throw new e("Invalid signature integer: negative");if(0===r[0]&&!(128&r[1]))throw new e("Invalid signature integer: unnecessary leading zero");return{d:$h(r),l:t.subarray(n+2)}},toSig(t){const{Err:e}=Jh,n="string"==typeof t?Qh(t):t;if(!(n instanceof Uint8Array))throw new Error("ui8a expected");let r=n.length;if(r<2||48!=n[0])throw new e("Invalid signature tag");if(n[1]!==r-2)throw new e("Invalid signature: incorrect length");const{d:s,l:i}=Jh._parseInt(n.subarray(2)),{d:o,l:a}=Jh._parseInt(i);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:s,s:o}},hexFromSig(t){const e=t=>8&Number.parseInt(t[0],16)?"00"+t:t,n=t=>{const e=t.toString(16);return 1&e.length?`0${e}`:e},r=e(n(t.s)),s=e(n(t.r)),i=r.length/2,o=s.length/2,a=n(i),c=n(o);return`30${n(o+i+4)}02${c}${s}02${a}${r}`}},Yh=BigInt(0),Zh=BigInt(1);BigInt(2);const Xh=BigInt(3);function td(t){const e=function(t){const e=qh(t);Rh(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:s}=e;if(n){if(!r.eql(s,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof n||"bigint"!=typeof n.beta||"function"!=typeof n.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}(t),{Fp:n}=e,r=e.toBytes||((t,e,r)=>{const s=e.toAffine();return _h(Uint8Array.from([4]),n.toBytes(s.x),n.toBytes(s.y))}),s=e.fromBytes||(t=>{const e=t.subarray(1);return{x:n.fromBytes(e.subarray(0,n.BYTES)),y:n.fromBytes(e.subarray(n.BYTES,2*n.BYTES))}});function i(t){const{a:r,b:s}=e,i=n.sqr(t),o=n.mul(i,t);return n.add(n.add(o,n.mul(t,r)),s)}if(!n.eql(n.sqr(e.Gy),i(e.Gx)))throw new Error("bad generator point: equation left != right");function o(t){return"bigint"==typeof t&&Yh<t&&t<e.n}function a(t){if(!o(t))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(t){const{allowedPrivateKeyLengths:n,nByteLength:r,wrapPrivateKey:s,n:i}=e;if(n&&"bigint"!=typeof t){if(t instanceof Uint8Array&&(t=dh(t)),"string"!=typeof t||!n.includes(t.length))throw new Error("Invalid key");t=t.padStart(2*r,"0")}let o;try{o="bigint"==typeof t?t:mh(Ah("private key",t,r))}catch(c){throw new Error(`private key must be ${r} bytes, hex or bigint, not ${typeof t}`)}return s&&(o=Uh(o,i)),a(o),o}const l=new Map;function u(t){if(!(t instanceof h))throw new Error("ProjectivePoint expected")}class h{constructor(t,e,r){if(this.px=t,this.py=e,this.pz=r,null==t||!n.isValid(t))throw new Error("x required");if(null==e||!n.isValid(e))throw new Error("y required");if(null==r||!n.isValid(r))throw new Error("z required")}static fromAffine(t){const{x:e,y:r}=t||{};if(!t||!n.isValid(e)||!n.isValid(r))throw new Error("invalid affine point");if(t instanceof h)throw new Error("projective point not allowed");const s=t=>n.eql(t,n.ZERO);return s(e)&&s(r)?h.ZERO:new h(e,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(t){const e=n.invertBatch(t.map((t=>t.pz)));return t.map(((t,n)=>t.toAffine(e[n]))).map(h.fromAffine)}static fromHex(t){const e=h.fromAffine(s(Ah("pointHex",t)));return e.assertValidity(),e}static fromPrivateKey(t){return h.BASE.multiply(c(t))}_setWindowSize(t){this._WINDOW_SIZE=t,l.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!n.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:t,y:r}=this.toAffine();if(!n.isValid(t)||!n.isValid(r))throw new Error("bad point: x or y not FE");const s=n.sqr(r),o=i(t);if(!n.eql(s,o))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:t}=this.toAffine();if(n.isOdd)return!n.isOdd(t);throw new Error("Field doesn't support isOdd")}equals(t){u(t);const{px:e,py:r,pz:s}=this,{px:i,py:o,pz:a}=t,c=n.eql(n.mul(e,a),n.mul(i,s)),l=n.eql(n.mul(r,a),n.mul(o,s));return c&&l}negate(){return new h(this.px,n.neg(this.py),this.pz)}double(){const{a:t,b:r}=e,s=n.mul(r,Xh),{px:i,py:o,pz:a}=this;let c=n.ZERO,l=n.ZERO,u=n.ZERO,d=n.mul(i,i),f=n.mul(o,o),p=n.mul(a,a),g=n.mul(i,o);return g=n.add(g,g),u=n.mul(i,a),u=n.add(u,u),c=n.mul(t,u),l=n.mul(s,p),l=n.add(c,l),c=n.sub(f,l),l=n.add(f,l),l=n.mul(c,l),c=n.mul(g,c),u=n.mul(s,u),p=n.mul(t,p),g=n.sub(d,p),g=n.mul(t,g),g=n.add(g,u),u=n.add(d,d),d=n.add(u,d),d=n.add(d,p),d=n.mul(d,g),l=n.add(l,d),p=n.mul(o,a),p=n.add(p,p),d=n.mul(p,g),c=n.sub(c,d),u=n.mul(p,f),u=n.add(u,u),u=n.add(u,u),new h(c,l,u)}add(t){u(t);const{px:r,py:s,pz:i}=this,{px:o,py:a,pz:c}=t;let l=n.ZERO,d=n.ZERO,f=n.ZERO;const p=e.a,g=n.mul(e.b,Xh);let m=n.mul(r,o),y=n.mul(s,a),w=n.mul(i,c),b=n.add(r,s),A=n.add(o,a);b=n.mul(b,A),A=n.add(m,y),b=n.sub(b,A),A=n.add(r,i);let _=n.add(o,c);return A=n.mul(A,_),_=n.add(m,w),A=n.sub(A,_),_=n.add(s,i),l=n.add(a,c),_=n.mul(_,l),l=n.add(y,w),_=n.sub(_,l),f=n.mul(p,A),l=n.mul(g,w),f=n.add(l,f),l=n.sub(y,f),f=n.add(y,f),d=n.mul(l,f),y=n.add(m,m),y=n.add(y,m),w=n.mul(p,w),A=n.mul(g,A),y=n.add(y,w),w=n.sub(m,w),w=n.mul(p,w),A=n.add(A,w),m=n.mul(y,A),d=n.add(d,m),m=n.mul(_,A),l=n.mul(b,l),l=n.sub(l,m),m=n.mul(b,y),f=n.mul(_,f),f=n.add(f,m),new h(l,d,f)}subtract(t){return this.add(t.negate())}is0(){return this.equals(h.ZERO)}wNAF(t){return f.wNAFCached(this,l,t,(t=>{const e=n.invertBatch(t.map((t=>t.pz)));return t.map(((t,n)=>t.toAffine(e[n]))).map(h.fromAffine)}))}multiplyUnsafe(t){const r=h.ZERO;if(t===Yh)return r;if(a(t),t===Zh)return this;const{endo:s}=e;if(!s)return f.unsafeLadder(this,t);let{k1neg:i,k1:o,k2neg:c,k2:l}=s.splitScalar(t),u=r,d=r,p=this;for(;o>Yh||l>Yh;)o&Zh&&(u=u.add(p)),l&Zh&&(d=d.add(p)),p=p.double(),o>>=Zh,l>>=Zh;return i&&(u=u.negate()),c&&(d=d.negate()),d=new h(n.mul(d.px,s.beta),d.py,d.pz),u.add(d)}multiply(t){a(t);let r,s,i=t;const{endo:o}=e;if(o){const{k1neg:t,k1:e,k2neg:a,k2:c}=o.splitScalar(i);let{p:l,f:u}=this.wNAF(e),{p:d,f:p}=this.wNAF(c);l=f.constTimeNegate(t,l),d=f.constTimeNegate(a,d),d=new h(n.mul(d.px,o.beta),d.py,d.pz),r=l.add(d),s=u.add(p)}else{const{p:t,f:e}=this.wNAF(i);r=t,s=e}return h.normalizeZ([r,s])[0]}multiplyAndAddUnsafe(t,e,n){const r=h.BASE,s=(t,e)=>e!==Yh&&e!==Zh&&t.equals(r)?t.multiply(e):t.multiplyUnsafe(e),i=s(this,e).add(s(t,n));return i.is0()?void 0:i}toAffine(t){const{px:e,py:r,pz:s}=this,i=this.is0();null==t&&(t=i?n.ONE:n.inv(s));const o=n.mul(e,t),a=n.mul(r,t),c=n.mul(s,t);if(i)return{x:n.ZERO,y:n.ZERO};if(!n.eql(c,n.ONE))throw new Error("invZ was invalid");return{x:o,y:a}}isTorsionFree(){const{h:t,isTorsionFree:n}=e;if(t===Zh)return!0;if(n)return n(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:t,clearCofactor:n}=e;return t===Zh?this:n?n(h,this):this.multiplyUnsafe(e.h)}toRawBytes(t=!0){return this.assertValidity(),r(h,this,t)}toHex(t=!0){return dh(this.toRawBytes(t))}}h.BASE=new h(e.Gx,e.Gy,n.ONE),h.ZERO=new h(n.ZERO,n.ONE,n.ZERO);const d=e.nBitLength,f=function(t,e){const n=(t,e)=>{const n=e.negate();return t?n:e},r=t=>({windows:Math.ceil(e/t)+1,windowSize:2**(t-1)});return{constTimeNegate:n,unsafeLadder(e,n){let r=t.ZERO,s=e;for(;n>Kh;)n&zh&&(r=r.add(s)),s=s.double(),n>>=zh;return r},precomputeWindow(t,e){const{windows:n,windowSize:s}=r(e),i=[];let o=t,a=o;for(let r=0;r<n;r++){a=o,i.push(a);for(let t=1;t<s;t++)a=a.add(o),i.push(a);o=a.double()}return i},wNAF(e,s,i){const{windows:o,windowSize:a}=r(e);let c=t.ZERO,l=t.BASE;const u=BigInt(2**e-1),h=2**e,d=BigInt(e);for(let t=0;t<o;t++){const e=t*a;let r=Number(i&u);i>>=d,r>a&&(r-=h,i+=zh);const o=e,f=e+Math.abs(r)-1,p=t%2!=0,g=r<0;0===r?l=l.add(n(p,s[o])):c=c.add(n(g,s[f]))}return{p:c,f:l}},wNAFCached(t,e,n,r){const s=t._WINDOW_SIZE||1;let i=e.get(t);return i||(i=this.precomputeWindow(t,s),1!==s&&e.set(t,r(i))),this.wNAF(s,i,n)}}}(h,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:h,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:o}}function ed(t){const e=function(t){const e=qh(t);return Rh(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}(t),{Fp:n,n:r}=e,s=n.BYTES+1,i=2*n.BYTES+1;function o(t){return Uh(t,r)}function a(t){return Fh(t,r)}const{ProjectivePoint:c,normPrivateKeyToScalar:l,weierstrassEquation:u,isWithinCurveOrder:h}=td({...e,toBytes(t,e,r){const s=e.toAffine(),i=n.toBytes(s.x),o=_h;return r?o(Uint8Array.from([e.hasEvenY()?2:3]),i):o(Uint8Array.from([4]),i,n.toBytes(s.y))},fromBytes(t){const e=t.length,r=t[0],o=t.subarray(1);if(e!==s||2!==r&&3!==r){if(e===i&&4===r){return{x:n.fromBytes(o.subarray(0,n.BYTES)),y:n.fromBytes(o.subarray(n.BYTES,2*n.BYTES))}}throw new Error(`Point of length ${e} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}{const t=mh(o);if(!(Yh<(a=t)&&a<n.ORDER))throw new Error("Point is not on curve");const e=u(t);let s=n.sqrt(e);return!(1&~r)!==((s&Zh)===Zh)&&(s=n.neg(s)),{x:t,y:s}}var a}}),d=t=>dh(wh(t,e.nByteLength));function f(t){return t>r>>Zh}const p=(t,e,n)=>mh(t.slice(e,n));class g{constructor(t,e,n){this.r=t,this.s=e,this.recovery=n,this.assertValidity()}static fromCompact(t){const n=e.nByteLength;return t=Ah("compactSignature",t,2*n),new g(p(t,0,n),p(t,n,2*n))}static fromDER(t){const{r:e,s:n}=Jh.toSig(Ah("DER",t));return new g(e,n)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(t){return new g(this.r,this.s,t)}recoverPublicKey(t){const{r:r,s:s,recovery:i}=this,l=b(Ah("msgHash",t));if(null==i||![0,1,2,3].includes(i))throw new Error("recovery id invalid");const u=2===i||3===i?r+e.n:r;if(u>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const h=1&i?"03":"02",f=c.fromHex(h+d(u)),p=a(u),g=o(-l*p),m=o(s*p),y=c.BASE.multiplyAndAddUnsafe(f,g,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return f(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return gh(this.toDERHex())}toDERHex(){return Jh.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return gh(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}const m={isValidPrivateKey(t){try{return l(t),!0}catch(e){return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{const t=Wh(e.n);return function(t,e,n=!1){const r=t.length,s=Vh(e),i=Wh(e);if(r<16||r<i||r>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${r}`);const o=Uh(n?mh(t):yh(t),e-Ch)+Ch;return n?bh(o,s):wh(o,s)}(e.randomBytes(t),e.n)},precompute:(t=8,e=c.BASE)=>(e._setWindowSize(t),e.multiply(BigInt(3)),e)};function y(t){const e=t instanceof Uint8Array,n="string"==typeof t,r=(e||n)&&t.length;return e?r===s||r===i:n?r===2*s||r===2*i:t instanceof c}const w=e.bits2int||function(t){const n=mh(t),r=8*t.length-e.nBitLength;return r>0?n>>BigInt(r):n},b=e.bits2int_modN||function(t){return o(w(t))},A=vh(e.nBitLength);function _(t){if("bigint"!=typeof t)throw new Error("bigint expected");if(!(Yh<=t&&t<A))throw new Error(`bigint expected < 2^${e.nBitLength}`);return wh(t,e.nByteLength)}function v(t,r,s=E){if(["recovered","canonical"].some((t=>t in s)))throw new Error("sign() legacy options not supported");const{hash:i,randomBytes:u}=e;let{lowS:d,prehash:p,extraEntropy:m}=s;null==d&&(d=!0),t=Ah("msgHash",t),p&&(t=Ah("prehashed msgHash",i(t)));const y=b(t),A=l(r),v=[_(A),_(y)];if(null!=m){const t=!0===m?u(n.BYTES):m;v.push(Ah("extraEntropy",t))}const k=_h(...v),S=y;return{seed:k,k2sig:function(t){const e=w(t);if(!h(e))return;const n=a(e),r=c.BASE.multiply(e).toAffine(),s=o(r.x);if(s===Yh)return;const i=o(n*o(S+s*A));if(i===Yh)return;let l=(r.x===s?0:2)|Number(r.y&Zh),u=i;return d&&f(i)&&(u=function(t){return f(t)?o(-t):t}(i),l^=1),new g(s,u,l)}}}const E={lowS:e.lowS,prehash:!1},k={lowS:e.lowS,prehash:!1};return c.BASE._setWindowSize(8),{CURVE:e,getPublicKey:function(t,e=!0){return c.fromPrivateKey(t).toRawBytes(e)},getSharedSecret:function(t,e,n=!0){if(y(t))throw new Error("first arg must be private key");if(!y(e))throw new Error("second arg must be public key");return c.fromHex(e).multiply(l(t)).toRawBytes(n)},sign:function(t,n,r=E){const{seed:s,k2sig:i}=v(t,n,r),o=e;return Sh(o.hash.outputLen,o.nByteLength,o.hmac)(s,i)},verify:function(t,n,r,s=k){var i;const l=t;if(n=Ah("msgHash",n),r=Ah("publicKey",r),"strict"in s)throw new Error("options.strict was renamed to lowS");const{lowS:u,prehash:h}=s;let d,f;try{if("string"==typeof l||l instanceof Uint8Array)try{d=g.fromDER(l)}catch(E){if(!(E instanceof Jh.Err))throw E;d=g.fromCompact(l)}else{if("object"!=typeof l||"bigint"!=typeof l.r||"bigint"!=typeof l.s)throw new Error("PARSE");{const{r:t,s:e}=l;d=new g(t,e)}}f=c.fromHex(r)}catch(S){if("PARSE"===S.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(u&&d.hasHighS())return!1;h&&(n=e.hash(n));const{r:p,s:m}=d,y=b(n),w=a(m),A=o(y*w),_=o(p*w),v=null==(i=c.BASE.multiplyAndAddUnsafe(f,A,_))?void 0:i.toAffine();return!!v&&o(v.x)===p},ProjectivePoint:c,Signature:g,utils:m}}
9
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function nd(t){return{hash:t,hmac:(e,...n)=>El(t,e,function(...t){const e=new Uint8Array(t.reduce(((t,e)=>t+e.length),0));let n=0;return t.forEach((t=>{if(!ul(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length})),e}(...n)),randomBytes:_l}}BigInt(4);
10
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
11
- const rd=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),sd=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),id=BigInt(1),od=BigInt(2),ad=(t,e)=>(t+e/od)/e;const cd=function(t,e,n=!1,r={}){if(t<=Oh)throw new Error(`Expected Field ORDER > 0, got ${t}`);const{nBitLength:s,nByteLength:i}=Hh(t,e);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const o=Gh(t),a=Object.freeze({ORDER:t,BITS:s,BYTES:i,MASK:vh(s),ZERO:Oh,ONE:Ch,create:e=>Uh(e,t),isValid:e=>{if("bigint"!=typeof e)throw new Error("Invalid field element: expected bigint, got "+typeof e);return Oh<=e&&e<t},is0:t=>t===Oh,isOdd:t=>(t&Ch)===Ch,neg:e=>Uh(-e,t),eql:(t,e)=>t===e,sqr:e=>Uh(e*e,t),add:(e,n)=>Uh(e+n,t),sub:(e,n)=>Uh(e-n,t),mul:(e,n)=>Uh(e*n,t),pow:(t,e)=>function(t,e,n){if(n<Oh)throw new Error("Expected power > 0");if(n===Oh)return t.ONE;if(n===Ch)return e;let r=t.ONE,s=e;for(;n>Oh;)n&Ch&&(r=t.mul(r,s)),s=t.sqr(s),n>>=Ch;return r}(a,t,e),div:(e,n)=>Uh(e*Fh(n,t),t),sqrN:t=>t*t,addN:(t,e)=>t+e,subN:(t,e)=>t-e,mulN:(t,e)=>t*e,inv:e=>Fh(e,t),sqrt:r.sqrt||(t=>o(a,t)),invertBatch:t=>function(t,e){const n=new Array(e.length),r=e.reduce(((e,r,s)=>t.is0(r)?e:(n[s]=e,t.mul(e,r))),t.ONE),s=t.inv(r);return e.reduceRight(((e,r,s)=>t.is0(r)?e:(n[s]=t.mul(e,n[s]),t.mul(e,r))),s),n}(a,t),cmov:(t,e,n)=>n?e:t,toBytes:t=>n?bh(t,i):wh(t,i),fromBytes:t=>{if(t.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${t.length}`);return n?yh(t):mh(t)}});return Object.freeze(a)}(rd,void 0,void 0,{sqrt:function(t){const e=rd,n=BigInt(3),r=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),l=t*t*t%e,u=l*l*t%e,h=Mh(u,n,e)*u%e,d=Mh(h,n,e)*u%e,f=Mh(d,od,e)*l%e,p=Mh(f,s,e)*f%e,g=Mh(p,i,e)*p%e,m=Mh(g,a,e)*g%e,y=Mh(m,c,e)*m%e,w=Mh(y,a,e)*g%e,b=Mh(w,n,e)*u%e,A=Mh(b,o,e)*p%e,_=Mh(A,r,e)*l%e,v=Mh(_,od,e);if(!cd.eql(cd.sqr(v),t))throw new Error("Cannot find square root");return v}}),ld=function(t,e){const n=e=>ed({...t,...nd(e)});return Object.freeze({...n(e),create:n})}({a:BigInt(0),b:BigInt(7),Fp:cd,n:sd,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=sd,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-id*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=n,o=BigInt("0x100000000000000000000000000000000"),a=ad(i*t,e),c=ad(-r*t,e);let l=Uh(t-a*n-c*s,e),u=Uh(-a*r-c*i,e);const h=l>o,d=u>o;if(h&&(l=e-l),d&&(u=e-u),l>o||u>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:h,k1:l,k2neg:d,k2:u}}}},xl);BigInt(0),ld.ProjectivePoint;const ud="0x0000000000000000000000000000000000000000",hd="0x0000000000000000000000000000000000000000000000000000000000000000",dd=BigInt(0),fd=BigInt(1),pd=BigInt(2),gd=BigInt(27),md=BigInt(28),yd=BigInt(35),wd=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),bd=wd/pd,Ad=Symbol.for("nodejs.util.inspect.custom"),_d={};function vd(t){return za(ic(t),32)}G=new WeakMap,j=new WeakMap,H=new WeakMap,V=new WeakMap;let Ed=class t{constructor(t,e,n,r){Dn(this,G,void 0),Dn(this,j,void 0),Dn(this,H,void 0),Dn(this,V,void 0),Da(t,_d,"Signature"),Bn(this,G,e),Bn(this,j,n),Bn(this,H,r),Bn(this,V,null)}get r(){return Pn(this,G)}set r(t){Ca(32===Va(t),"invalid r","value",t),Bn(this,G,ja(t))}get s(){return Ca(parseInt(Pn(this,j).substring(0,3))<8,"non-canonical s; use ._s","s",Pn(this,j)),Pn(this,j)}set s(t){Ca(32===Va(t),"invalid s","value",t),Bn(this,j,ja(t))}get _s(){return Pn(this,j)}isValid(){return BigInt(Pn(this,j))<=bd}get v(){return Pn(this,H)}set v(t){const e=rc(t,"value");Ca(27===e||28===e,"invalid v","v",t),Bn(this,H,e)}get networkV(){return Pn(this,V)}get legacyChainId(){const e=this.networkV;return null==e?null:t.getChainId(e)}get yParity(){return 27===this.v?0:1}get yParityAndS(){const t=Ua(this.s);return this.yParity&&(t[0]|=128),ja(t)}get compactSerialized(){return Ha([this.r,this.yParityAndS])}get serialized(){return Ha([this.r,this.s,this.yParity?"0x1c":"0x1b"])}getCanonical(){if(this.isValid())return this;const e=wd-BigInt(this._s),n=55-this.v,r=new t(_d,this.r,vd(e),n);return this.networkV&&Bn(r,V,this.networkV),r}clone(){const e=new t(_d,this.r,this._s,this.v);return this.networkV&&Bn(e,V,this.networkV),e}toJSON(){const t=this.networkV;return{_type:"signature",networkV:null!=t?t.toString():null,r:this.r,s:this._s,v:this.v}}[Ad](){return this.toString()}toString(){return this.isValid()?`Signature { r: ${this.r}, s: ${this._s}, v: ${this.v} }`:`Signature { r: ${this.r}, s: ${this._s}, v: ${this.v}, valid: false }`}static getChainId(t){const e=Xa(t,"v");return e==gd||e==md?dd:(Ca(e>=yd,"invalid EIP-155 v","v",t),(e-yd)/pd)}static getChainIdV(t,e){return Xa(t)*pd+BigInt(35+e-27)}static getNormalizedV(t){const e=Xa(t);return e===dd||e===gd?27:e===fd||e===md?28:(Ca(e>=yd,"invalid v","v",t),e&fd?27:28)}static from(e){function n(t,n){Ca(t,n,"signature",e)}if(null==e)return new t(_d,hd,hd,27);if("string"==typeof e){const r=Ua(e,"signature");if(64===r.length){const e=ja(r.slice(0,32)),n=r.slice(32,64),s=128&n[0]?28:27;return n[0]&=127,new t(_d,e,ja(n),s)}if(65===r.length){const e=ja(r.slice(0,32)),n=ja(r.slice(32,64)),s=t.getNormalizedV(r[64]);return new t(_d,e,n,s)}n(!1,"invalid raw signature length")}if(e instanceof t)return e.clone();const r=e.r;n(null!=r,"missing r");const s=vd(r),i=function(t,e){if(null!=t)return vd(t);if(null!=e){n(Ma(e,32),"invalid yParityAndS");const t=Ua(e);return t[0]&=127,ja(t)}n(!1,"missing s")}(e.s,e.yParityAndS),{networkV:o,v:a}=function(e,r,s){if(null!=e){const n=Xa(e);return{networkV:n>=yd?n:void 0,v:t.getNormalizedV(n)}}if(null!=r)return n(Ma(r,32),"invalid yParityAndS"),{v:128&Ua(r)[0]?28:27};if(null!=s){switch(rc(s,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}n(!1,"invalid yParity")}n(!1,"missing v")}(e.v,e.yParityAndS,e.yParity),c=new t(_d,s,i,a);return o&&Bn(c,V,o),n(null==e.yParity||rc(e.yParity,"sig.yParity")===c.yParity,"yParity mismatch"),n(null==e.yParityAndS||e.yParityAndS===c.yParityAndS,"yParityAndS mismatch"),c}};W=new WeakMap;let kd=class t{constructor(t){Dn(this,W,void 0),Ca(32===Va(t),"invalid private key","privateKey","[REDACTED]"),Bn(this,W,ja(t))}get privateKey(){return Pn(this,W)}get publicKey(){return t.computePublicKey(Pn(this,W))}get compressedPublicKey(){return t.computePublicKey(Pn(this,W),!0)}sign(t){Ca(32===Va(t),"invalid digest length","digest",t);const e=ld.sign(La(t),La(Pn(this,W)),{lowS:!0});return Ed.from({r:sc(e.r,32),s:sc(e.s,32),v:e.recovery?28:27})}computeSharedSecret(e){const n=t.computePublicKey(e);return ja(ld.getSharedSecret(La(Pn(this,W)),Ua(n),!1))}static computePublicKey(t,e){let n=Ua(t,"key");if(32===n.length){return ja(ld.getPublicKey(n,!!e))}if(64===n.length){const t=new Uint8Array(65);t[0]=4,t.set(n,1),n=t}return ja(ld.ProjectivePoint.fromHex(n).toRawBytes(e))}static recoverPublicKey(t,e){Ca(32===Va(t),"invalid digest length","digest",t);const n=Ed.from(e);let r=ld.Signature.fromCompact(La(Ha([n.r,n.s])));r=r.addRecoveryBit(n.yParity);const s=r.recoverPublicKey(La(t));return Ca(null!=s,"invalid signature for digest","signature",e),"0x"+s.toHex(!1)}static addPoints(e,n,r){const s=ld.ProjectivePoint.fromHex(t.computePublicKey(e).substring(2)),i=ld.ProjectivePoint.fromHex(t.computePublicKey(n).substring(2));return"0x"+s.add(i).toHex(!!r)}};const Sd=BigInt(0),Td=BigInt(36);function Rd(t){const e=(t=t.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let s=0;s<40;s++)n[s]=e[s].charCodeAt(0);const r=Ua(yu(n));for(let s=0;s<40;s+=2)r[s>>1]>>4>=8&&(e[s]=e[s].toUpperCase()),(15&r[s>>1])>=8&&(e[s+1]=e[s+1].toUpperCase());return"0x"+e.join("")}const Id={};for(let Nv=0;Nv<10;Nv++)Id[String(Nv)]=String(Nv);for(let Nv=0;Nv<26;Nv++)Id[String.fromCharCode(65+Nv)]=String(10+Nv);const Od=function(){const t={};for(let e=0;e<36;e++){t["0123456789abcdefghijklmnopqrstuvwxyz"[e]]=BigInt(e)}return t}();function Cd(t){if(Ca("string"==typeof t,"invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/)){t.startsWith("0x")||(t="0x"+t);const e=Rd(t);return Ca(!t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||e===t,"bad address checksum","address",t),e}if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){Ca(t.substring(2,4)===function(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+"00").split("").map((t=>Id[t])).join("");for(;e.length>=15;){let t=e.substring(0,15);e=parseInt(t,10)%97+e.substring(t.length)}let n=String(98-parseInt(e,10)%97);for(;n.length<2;)n="0"+n;return n}(t),"bad icap checksum","address",t);let e=function(t){t=t.toLowerCase();let e=Sd;for(let n=0;n<t.length;n++)e=e*Td+Od[t[n]];return e}(t.substring(4)).toString(16);for(;e.length<40;)e="0"+e;return Rd("0x"+e)}Ca(!1,"invalid address","address",t)}function xd(t){return t&&"function"==typeof t.getAddress}async function Nd(t,e){const n=await e;return null!=n&&"0x0000000000000000000000000000000000000000"!==n||(Oa("string"!=typeof t,"unconfigured name","UNCONFIGURED_NAME",{value:t}),Ca(!1,"invalid AddressLike value; did not resolve to a value address","target",t)),Cd(n)}function Pd(t,e){return"string"==typeof t?t.match(/^0x[0-9a-f]{40}$/i)?Cd(t):(Oa(null!=e,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),Nd(t,e.resolveName(t))):xd(t)?Nd(t,t.getAddress()):t&&"function"==typeof t.then?Nd(t,t):void Ca(!1,"unsupported addressable value","target",t)}const Dd={};function Bd(t,e){let n=!1;return e<0&&(n=!0,e*=-1),new Md(Dd,`${n?"":"u"}int${e}`,t,{signed:n,width:e})}function Ud(t,e){return new Md(Dd,`bytes${e||""}`,t,{size:e})}const Ld=Symbol.for("_ethers_typed");K=new WeakMap;let Md=class t{constructor(t,e,n,r){xn(this,"type"),xn(this,"value"),Dn(this,K,void 0),xn(this,"_typedSymbol"),null==r&&(r=null),Da(Dd,t,"Typed"),ka(this,{_typedSymbol:Ld,type:e,value:n}),Bn(this,K,r),this.format()}format(){if("array"===this.type)throw new Error("");if("dynamicArray"===this.type)throw new Error("");return"tuple"===this.type?`tuple(${this.value.map((t=>t.format())).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return"string"===this.type}get tupleName(){if("tuple"!==this.type)throw TypeError("not a tuple");return Pn(this,K)}get arrayLength(){if("array"!==this.type)throw TypeError("not an array");return!0===Pn(this,K)?-1:!1===Pn(this,K)?this.value.length:null}static from(e,n){return new t(Dd,e,n)}static uint8(t){return Bd(t,8)}static uint16(t){return Bd(t,16)}static uint24(t){return Bd(t,24)}static uint32(t){return Bd(t,32)}static uint40(t){return Bd(t,40)}static uint48(t){return Bd(t,48)}static uint56(t){return Bd(t,56)}static uint64(t){return Bd(t,64)}static uint72(t){return Bd(t,72)}static uint80(t){return Bd(t,80)}static uint88(t){return Bd(t,88)}static uint96(t){return Bd(t,96)}static uint104(t){return Bd(t,104)}static uint112(t){return Bd(t,112)}static uint120(t){return Bd(t,120)}static uint128(t){return Bd(t,128)}static uint136(t){return Bd(t,136)}static uint144(t){return Bd(t,144)}static uint152(t){return Bd(t,152)}static uint160(t){return Bd(t,160)}static uint168(t){return Bd(t,168)}static uint176(t){return Bd(t,176)}static uint184(t){return Bd(t,184)}static uint192(t){return Bd(t,192)}static uint200(t){return Bd(t,200)}static uint208(t){return Bd(t,208)}static uint216(t){return Bd(t,216)}static uint224(t){return Bd(t,224)}static uint232(t){return Bd(t,232)}static uint240(t){return Bd(t,240)}static uint248(t){return Bd(t,248)}static uint256(t){return Bd(t,256)}static uint(t){return Bd(t,256)}static int8(t){return Bd(t,-8)}static int16(t){return Bd(t,-16)}static int24(t){return Bd(t,-24)}static int32(t){return Bd(t,-32)}static int40(t){return Bd(t,-40)}static int48(t){return Bd(t,-48)}static int56(t){return Bd(t,-56)}static int64(t){return Bd(t,-64)}static int72(t){return Bd(t,-72)}static int80(t){return Bd(t,-80)}static int88(t){return Bd(t,-88)}static int96(t){return Bd(t,-96)}static int104(t){return Bd(t,-104)}static int112(t){return Bd(t,-112)}static int120(t){return Bd(t,-120)}static int128(t){return Bd(t,-128)}static int136(t){return Bd(t,-136)}static int144(t){return Bd(t,-144)}static int152(t){return Bd(t,-152)}static int160(t){return Bd(t,-160)}static int168(t){return Bd(t,-168)}static int176(t){return Bd(t,-176)}static int184(t){return Bd(t,-184)}static int192(t){return Bd(t,-192)}static int200(t){return Bd(t,-200)}static int208(t){return Bd(t,-208)}static int216(t){return Bd(t,-216)}static int224(t){return Bd(t,-224)}static int232(t){return Bd(t,-232)}static int240(t){return Bd(t,-240)}static int248(t){return Bd(t,-248)}static int256(t){return Bd(t,-256)}static int(t){return Bd(t,-256)}static bytes1(t){return Ud(t,1)}static bytes2(t){return Ud(t,2)}static bytes3(t){return Ud(t,3)}static bytes4(t){return Ud(t,4)}static bytes5(t){return Ud(t,5)}static bytes6(t){return Ud(t,6)}static bytes7(t){return Ud(t,7)}static bytes8(t){return Ud(t,8)}static bytes9(t){return Ud(t,9)}static bytes10(t){return Ud(t,10)}static bytes11(t){return Ud(t,11)}static bytes12(t){return Ud(t,12)}static bytes13(t){return Ud(t,13)}static bytes14(t){return Ud(t,14)}static bytes15(t){return Ud(t,15)}static bytes16(t){return Ud(t,16)}static bytes17(t){return Ud(t,17)}static bytes18(t){return Ud(t,18)}static bytes19(t){return Ud(t,19)}static bytes20(t){return Ud(t,20)}static bytes21(t){return Ud(t,21)}static bytes22(t){return Ud(t,22)}static bytes23(t){return Ud(t,23)}static bytes24(t){return Ud(t,24)}static bytes25(t){return Ud(t,25)}static bytes26(t){return Ud(t,26)}static bytes27(t){return Ud(t,27)}static bytes28(t){return Ud(t,28)}static bytes29(t){return Ud(t,29)}static bytes30(t){return Ud(t,30)}static bytes31(t){return Ud(t,31)}static bytes32(t){return Ud(t,32)}static address(e){return new t(Dd,"address",e)}static bool(e){return new t(Dd,"bool",!!e)}static bytes(e){return new t(Dd,"bytes",e)}static string(e){return new t(Dd,"string",e)}static array(t,e){throw new Error("not implemented yet")}static tuple(t,e){throw new Error("not implemented yet")}static overrides(e){return new t(Dd,"overrides",Object.assign({},e))}static isTyped(t){return t&&"object"==typeof t&&"_typedSymbol"in t&&t._typedSymbol===Ld}static dereference(e,n){if(t.isTyped(e)){if(e.type!==n)throw new Error(`invalid type: expecetd ${n}, got ${e.type}`);return e.value}return e}};class Fd extends el{constructor(t){super("address","address",t,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(t,e){let n=Md.dereference(e,"string");try{n=Cd(n)}catch(r){return this._throwError(r.message,e)}return t.writeValue(n)}decode(t){return Cd(sc(t.readValue(),20))}}class Gd extends el{constructor(t){super(t.name,t.type,"_",t.dynamic),xn(this,"coder"),this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,e){return this.coder.encode(t,e)}decode(t){return this.coder.decode(t)}}function jd(t,e,n){let r=[];if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let t={};r=e.map((e=>{const r=e.localName;return Oa(r,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:e},value:n}),Oa(!t[r],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:e},value:n}),t[r]=!0,n[r]}))}else Ca(!1,"invalid tuple value","tuple",n);Ca(e.length===r.length,"types/value length mismatch","tuple",n);let s=new nl,i=new nl,o=[];e.forEach(((t,e)=>{let n=r[e];if(t.dynamic){let e=i.length;t.encode(i,n);let r=s.writeUpdatableValue();o.push((t=>{r(t+e)}))}else t.encode(s,n)})),o.forEach((t=>{t(s.length)}));let a=t.appendWriter(s);return a+=t.appendWriter(i),a}function Hd(t,e){let n=[],r=[],s=t.subReader(0);return e.forEach((e=>{let i=null;if(e.dynamic){let n=t.readIndex(),r=s.subReader(n);try{i=e.decode(r)}catch(o){if(Ta(o,"BUFFER_OVERRUN"))throw o;i=o,i.baseType=e.name,i.name=e.localName,i.type=e.type}}else try{i=e.decode(t)}catch(o){if(Ta(o,"BUFFER_OVERRUN"))throw o;i=o,i.baseType=e.name,i.name=e.localName,i.type=e.type}if(null==i)throw new Error("investigate");n.push(i),r.push(e.localName||null)})),Xc.fromItems(n,r)}class Vd extends el{constructor(t,e,n){super("array",t.type+"["+(e>=0?e:"")+"]",n,-1===e||t.dynamic),xn(this,"coder"),xn(this,"length"),ka(this,{coder:t,length:e})}defaultValue(){const t=this.coder.defaultValue(),e=[];for(let n=0;n<this.length;n++)e.push(t);return e}encode(t,e){const n=Md.dereference(e,"array");Array.isArray(n)||this._throwError("expected array value",n);let r=this.length;-1===r&&(r=n.length,t.writeValue(n.length)),xa(n.length,r,"coder array"+(this.localName?" "+this.localName:""));let s=[];for(let i=0;i<n.length;i++)s.push(this.coder);return jd(t,s,n)}decode(t){let e=this.length;-1===e&&(e=t.readIndex(),Oa(e*Wc<=t.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:t.bytes,offset:e*Wc,length:t.dataLength}));let n=[];for(let r=0;r<e;r++)n.push(new Gd(this.coder));return Hd(t,n)}}class Wd extends el{constructor(t){super("bool","bool",t,!1)}defaultValue(){return!1}encode(t,e){const n=Md.dereference(e,"bool");return t.writeValue(n?1:0)}decode(t){return!!t.readValue()}}class Kd extends el{constructor(t,e){super(t,t,e,!0)}defaultValue(){return"0x"}encode(t,e){e=La(e);let n=t.writeValue(e.length);return n+=t.writeBytes(e),n}decode(t){return t.readBytes(t.readIndex(),!0)}}class zd extends Kd{constructor(t){super("bytes",t)}decode(t){return ja(super.decode(t))}}class qd extends el{constructor(t,e){let n="bytes"+String(t);super(n,n,e,!1),xn(this,"size"),ka(this,{size:t},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(t,e){let n=La(Md.dereference(e,this.type));return n.length!==this.size&&this._throwError("incorrect data length",e),t.writeBytes(n)}decode(t){return ja(t.readBytes(this.size))}}const $d=new Uint8Array([]);class Qd extends el{constructor(t){super("null","",t,!1)}defaultValue(){return null}encode(t,e){return null!=e&&this._throwError("not null",e),t.writeBytes($d)}decode(t){return t.readBytes(0),null}}const Jd=BigInt(0),Yd=BigInt(1),Zd=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class Xd extends el{constructor(t,e,n){const r=(e?"int":"uint")+8*t;super(r,r,n,!1),xn(this,"size"),xn(this,"signed"),ka(this,{size:t,signed:e},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(t,e){let n=Xa(Md.dereference(e,this.type)),r=Za(Zd,256);if(this.signed){let t=Za(r,8*this.size-1);(n>t||n<-(t+Yd))&&this._throwError("value out-of-bounds",e),n=Ya(n,256)}else(n<Jd||n>Za(r,8*this.size))&&this._throwError("value out-of-bounds",e);return t.writeValue(n)}decode(t){let e=Za(t.readValue(),8*this.size);return this.signed&&(e=function(t,e){const n=tc(t,"value"),r=BigInt(rc(e,"width"));if(Oa(n>>r===$a,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:t}),n>>r-Qa)return-((~n&(Qa<<r)-Qa)+Qa);return n}(e,8*this.size)),e}}class tf extends Kd{constructor(t){super("string",t)}defaultValue(){return""}encode(t,e){return super.encode(t,mc(Md.dereference(e,"string")))}decode(t){return yc(super.decode(t))}}class ef extends el{constructor(t,e){let n=!1;const r=[];t.forEach((t=>{t.dynamic&&(n=!0),r.push(t.type)}));super("tuple","tuple("+r.join(",")+")",e,n),xn(this,"coders"),ka(this,{coders:Object.freeze(t.slice())})}defaultValue(){const t=[];this.coders.forEach((e=>{t.push(e.defaultValue())}));const e=this.coders.reduce(((t,e)=>{const n=e.localName;return n&&(t[n]||(t[n]=0),t[n]++),t}),{});return this.coders.forEach(((n,r)=>{let s=n.localName;s&&1===e[s]&&("length"===s&&(s="_length"),null==t[s]&&(t[s]=t[r]))})),Object.freeze(t)}encode(t,e){const n=Md.dereference(e,"tuple");return jd(t,this.coders,n)}decode(t){return Hd(t,this.coders)}}function nf(t,e){return{address:Cd(t),storageKeys:e.map(((t,e)=>(Ca(Ma(t,32),"invalid slot",`storageKeys[${e}]`,t),t.toLowerCase())))}}function rf(t){if(Array.isArray(t))return t.map(((e,n)=>Array.isArray(e)?(Ca(2===e.length,"invalid slot set",`value[${n}]`,e),nf(e[0],e[1])):(Ca(null!=e&&"object"==typeof e,"invalid address-slot set","value",t),nf(e.address,e.storageKeys))));Ca(null!=t&&"object"==typeof t,"invalid access list","value",t);const e=Object.keys(t).map((e=>{const n=t[e].reduce(((t,e)=>(t[e]=!0,t)),{});return nf(e,Object.keys(n).sort())}));return e.sort(((t,e)=>t.address.localeCompare(e.address))),e}function sf(t){return{address:Cd(t.address),nonce:Xa(null!=t.nonce?t.nonce:0),chainId:Xa(null!=t.chainId?t.chainId:0),signature:Ed.from(t.signature)}}function of(t){let e;return e="string"==typeof t?kd.computePublicKey(t,!1):t.publicKey,Cd(yu("0x"+e.substring(4)).substring(26))}const af=BigInt(0),cf=BigInt(2),lf=BigInt(27),uf=BigInt(28),hf=BigInt(35),df=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ff=Symbol.for("nodejs.util.inspect.custom"),pf=131072,gf=128;function mf(t,e){let n=t.toString(16);for(;n.length<2;)n="0"+n;return n+=oh(e).substring(4),"0x"+n}function yf(t){return"0x"===t?null:Cd(t)}function wf(t,e){try{return rf(t)}catch(n){Ca(!1,n.message,e,t)}}function bf(t,e){try{if(!Array.isArray(t))throw new Error("authorizationList: invalid array");const e=[];for(let n=0;n<t.length;n++){const r=t[n];if(!Array.isArray(r))throw new Error(`authorization[${n}]: invalid array`);if(6!==r.length)throw new Error(`authorization[${n}]: wrong length`);if(!r[1])throw new Error(`authorization[${n}]: null address`);e.push({address:yf(r[1]),nonce:_f(r[2],"nonce"),chainId:_f(r[0],"chainId"),signature:Ed.from({yParity:Af(r[3],"yParity"),r:za(r[4],32),s:za(r[5],32)})})}return e}catch(n){Ca(!1,n.message,e,t)}}function Af(t,e){return"0x"===t?0:rc(t,e)}function _f(t,e){if("0x"===t)return af;const n=Xa(t,e);return Ca(n<=df,"value exceeds uint size",e,n),n}function vf(t,e){const n=Xa(t,"value"),r=ic(n);return Ca(r.length<=32,"value too large",`tx.${e}`,n),r}function Ef(t){return rf(t).map((t=>[t.address,t.storageKeys]))}function kf(t,e){Ca(Array.isArray(t),`invalid ${e}`,"value",t);for(let n=0;n<t.length;n++)Ca(Ma(t[n],32),"invalid ${ param } hash",`value[${n}]`,t[n]);return t}function Sf(t,e){let n;try{if(n=Af(e[0],"yParity"),0!==n&&1!==n)throw new Error("bad yParity")}catch(o){Ca(!1,"invalid yParity","yParity",e[0])}const r=za(e[1],32),s=za(e[2],32),i=Ed.from({r:r,s:s,yParity:n});t.signature=i}z=new WeakMap,q=new WeakMap,$=new WeakMap,Q=new WeakMap,J=new WeakMap,Y=new WeakMap,Z=new WeakMap,X=new WeakMap,tt=new WeakMap,et=new WeakMap,nt=new WeakMap,rt=new WeakMap,st=new WeakMap,it=new WeakMap,ot=new WeakMap,at=new WeakMap,ct=new WeakMap,lt=new WeakMap,ut=new WeakSet,ht=function(t,e){Oa(!t||null!=this.signature,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});const n=t?this.signature:null;switch(this.inferType()){case 0:return function(t,e){const n=[vf(t.nonce,"nonce"),vf(t.gasPrice||0,"gasPrice"),vf(t.gasLimit,"gasLimit"),t.to||"0x",vf(t.value,"value"),t.data];let r=af;if(t.chainId!=af)r=Xa(t.chainId,"tx.chainId"),Ca(!e||null==e.networkV||e.legacyChainId===r,"tx.chainId/sig.v mismatch","sig",e);else if(t.signature){const e=t.signature.legacyChainId;null!=e&&(r=e)}if(!e)return r!==af&&(n.push(ic(r)),n.push("0x"),n.push("0x")),Hc(n);let s=BigInt(27+e.yParity);return r!==af?s=Ed.getChainIdV(r,e.v):BigInt(e.v)!==s&&Ca(!1,"tx.chainId/sig.v mismatch","sig",e),n.push(ic(s)),n.push(ic(e.r)),n.push(ic(e._s)),Hc(n)}(this,n);case 1:return function(t,e){const n=[vf(t.chainId,"chainId"),vf(t.nonce,"nonce"),vf(t.gasPrice||0,"gasPrice"),vf(t.gasLimit,"gasLimit"),t.to||"0x",vf(t.value,"value"),t.data,Ef(t.accessList||[])];return e&&(n.push(vf(e.yParity,"recoveryParam")),n.push(ic(e.r)),n.push(ic(e.s))),Ha(["0x01",Hc(n)])}(this,n);case 2:return function(t,e){const n=[vf(t.chainId,"chainId"),vf(t.nonce,"nonce"),vf(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),vf(t.maxFeePerGas||0,"maxFeePerGas"),vf(t.gasLimit,"gasLimit"),t.to||"0x",vf(t.value,"value"),t.data,Ef(t.accessList||[])];return e&&(n.push(vf(e.yParity,"yParity")),n.push(ic(e.r)),n.push(ic(e.s))),Ha(["0x02",Hc(n)])}(this,n);case 3:return function(t,e,n){const r=[vf(t.chainId,"chainId"),vf(t.nonce,"nonce"),vf(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),vf(t.maxFeePerGas||0,"maxFeePerGas"),vf(t.gasLimit,"gasLimit"),t.to||ud,vf(t.value,"value"),t.data,Ef(t.accessList||[]),vf(t.maxFeePerBlobGas||0,"maxFeePerBlobGas"),kf(t.blobVersionedHashes||[],"blobVersionedHashes")];if(e&&(r.push(vf(e.yParity,"yParity")),r.push(ic(e.r)),r.push(ic(e.s)),n)){if(null!=t.blobWrapperVersion){const e=ic(t.blobWrapperVersion),s=[];for(const{proof:t}of n){const e=Ua(t),n=e.length/gf;for(let t=0;t<e.length;t+=n)s.push(e.subarray(t,t+n))}return Ha(["0x03",Hc([r,e,n.map((t=>t.data)),n.map((t=>t.commitment)),s])])}return Ha(["0x03",Hc([r,n.map((t=>t.data)),n.map((t=>t.commitment)),n.map((t=>t.proof))])])}return Ha(["0x03",Hc(r)])}(this,n,e?this.blobs:null);case 4:return function(t,e){const n=[vf(t.chainId,"chainId"),vf(t.nonce,"nonce"),vf(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),vf(t.maxFeePerGas||0,"maxFeePerGas"),vf(t.gasLimit,"gasLimit"),t.to||"0x",vf(t.value,"value"),t.data,Ef(t.accessList||[]),(r=t.authorizationList||[],r.map((t=>[vf(t.chainId,"chainId"),t.address,vf(t.nonce,"nonce"),vf(t.signature.yParity,"yParity"),ic(t.signature.r),ic(t.signature._s)])))];var r;return e&&(n.push(vf(e.yParity,"yParity")),n.push(ic(e.r)),n.push(ic(e.s))),Ha(["0x04",Hc(n)])}(this,n)}Oa(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})};let Tf=class t{constructor(){Dn(this,ut),Dn(this,z,void 0),Dn(this,q,void 0),Dn(this,$,void 0),Dn(this,Q,void 0),Dn(this,J,void 0),Dn(this,Y,void 0),Dn(this,Z,void 0),Dn(this,X,void 0),Dn(this,tt,void 0),Dn(this,et,void 0),Dn(this,nt,void 0),Dn(this,rt,void 0),Dn(this,st,void 0),Dn(this,it,void 0),Dn(this,ot,void 0),Dn(this,at,void 0),Dn(this,ct,void 0),Dn(this,lt,void 0),Bn(this,z,null),Bn(this,q,null),Bn(this,Q,0),Bn(this,J,af),Bn(this,Y,null),Bn(this,Z,null),Bn(this,X,null),Bn(this,$,"0x"),Bn(this,tt,af),Bn(this,et,af),Bn(this,nt,null),Bn(this,rt,null),Bn(this,st,null),Bn(this,it,null),Bn(this,ot,null),Bn(this,at,null),Bn(this,ct,null),Bn(this,lt,null)}get type(){return Pn(this,z)}set type(t){switch(t){case null:Bn(this,z,null);break;case 0:case"legacy":Bn(this,z,0);break;case 1:case"berlin":case"eip-2930":Bn(this,z,1);break;case 2:case"london":case"eip-1559":Bn(this,z,2);break;case 3:case"cancun":case"eip-4844":Bn(this,z,3);break;case 4:case"pectra":case"eip-7702":Bn(this,z,4);break;default:Ca(!1,"unsupported transaction type","type",t)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844";case 4:return"eip-7702"}return null}get to(){const t=Pn(this,q);return null==t&&3===this.type?ud:t}set to(t){Bn(this,q,null==t?null:Cd(t))}get nonce(){return Pn(this,Q)}set nonce(t){Bn(this,Q,rc(t,"value"))}get gasLimit(){return Pn(this,J)}set gasLimit(t){Bn(this,J,Xa(t))}get gasPrice(){const t=Pn(this,Y);return null!=t||0!==this.type&&1!==this.type?t:af}set gasPrice(t){Bn(this,Y,null==t?null:Xa(t,"gasPrice"))}get maxPriorityFeePerGas(){const t=Pn(this,Z);return null==t?2===this.type||3===this.type?af:null:t}set maxPriorityFeePerGas(t){Bn(this,Z,null==t?null:Xa(t,"maxPriorityFeePerGas"))}get maxFeePerGas(){const t=Pn(this,X);return null==t?2===this.type||3===this.type?af:null:t}set maxFeePerGas(t){Bn(this,X,null==t?null:Xa(t,"maxFeePerGas"))}get data(){return Pn(this,$)}set data(t){Bn(this,$,ja(t))}get value(){return Pn(this,tt)}set value(t){Bn(this,tt,Xa(t,"value"))}get chainId(){return Pn(this,et)}set chainId(t){Bn(this,et,Xa(t))}get signature(){return Pn(this,nt)||null}set signature(t){Bn(this,nt,null==t?null:Ed.from(t))}isValid(){const t=this.signature;if(t&&!t.isValid())return!1;const e=this.authorizationList;if(e)for(const n of e)if(!n.signature.isValid())return!1;return!0}get accessList(){const t=Pn(this,rt)||null;return null==t?1===this.type||2===this.type||3===this.type?[]:null:t}set accessList(t){Bn(this,rt,null==t?null:rf(t))}get authorizationList(){const t=Pn(this,ct)||null;return null==t&&4===this.type?[]:t}set authorizationList(t){Bn(this,ct,null==t?null:t.map((t=>sf(t))))}get maxFeePerBlobGas(){const t=Pn(this,st);return null==t&&3===this.type?af:t}set maxFeePerBlobGas(t){Bn(this,st,null==t?null:Xa(t,"maxFeePerBlobGas"))}get blobVersionedHashes(){let t=Pn(this,it);return null==t&&3===this.type?[]:t}set blobVersionedHashes(t){if(null!=t){Ca(Array.isArray(t),"blobVersionedHashes must be an Array","value",t),t=t.slice();for(let e=0;e<t.length;e++)Ca(Ma(t[e],32),"invalid blobVersionedHash",`value[${e}]`,t[e])}Bn(this,it,t)}get blobs(){return null==Pn(this,at)?null:Pn(this,at).map((t=>Object.assign({},t)))}set blobs(t){if(null==t)return void Bn(this,at,null);const e=[],n=[];for(let r=0;r<t.length;r++){const s=t[r];if(Fa(s)){Oa(Pn(this,ot),"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let t=Ua(s);if(Ca(t.length<=pf,"blob is too large",`blobs[${r}]`,s),t.length!==pf){const e=new Uint8Array(pf);e.set(t),t=e}const i=Pn(this,ot).blobToKzgCommitment(t),o=ja(Pn(this,ot).computeBlobKzgProof(t,i));e.push({data:ja(t),commitment:ja(i),proof:o}),n.push(mf(1,i))}else{const t=ja(s.data),r=ja(s.commitment),i=ja(s.proof);e.push({data:t,commitment:r,proof:i}),n.push(mf(1,r))}}Bn(this,at,e),Bn(this,it,n)}get kzg(){return Pn(this,ot)}set kzg(t){Bn(this,ot,null==t?null:function(t){return{blobToKzgCommitment:e=>{if("computeBlobProof"in t){if("blobToKzgCommitment"in t&&"function"==typeof t.blobToKzgCommitment)return Ua(t.blobToKzgCommitment(ja(e)))}else if("blobToKzgCommitment"in t&&"function"==typeof t.blobToKzgCommitment)return Ua(t.blobToKzgCommitment(e));if("blobToKZGCommitment"in t&&"function"==typeof t.blobToKZGCommitment)return Ua(t.blobToKZGCommitment(ja(e)));Ca(!1,"unsupported KZG library","kzg",t)},computeBlobKzgProof:(e,n)=>"computeBlobProof"in t&&"function"==typeof t.computeBlobProof?Ua(t.computeBlobProof(ja(e),ja(n))):"computeBlobKzgProof"in t&&"function"==typeof t.computeBlobKzgProof?t.computeBlobKzgProof(e,n):"computeBlobKZGProof"in t&&"function"==typeof t.computeBlobKZGProof?Ua(t.computeBlobKZGProof(ja(e),ja(n))):void Ca(!1,"unsupported KZG library","kzg",t)}}(t))}get blobWrapperVersion(){return Pn(this,lt)}set blobWrapperVersion(t){Bn(this,lt,t)}get hash(){return null==this.signature?null:yu(Ln(this,ut,ht).call(this,!0,!1))}get unsignedHash(){return yu(this.unsignedSerialized)}get from(){return null==this.signature?null:(t=this.unsignedHash,e=this.signature.getCanonical(),of(kd.recoverPublicKey(t,e)));var t,e}get fromPublicKey(){return null==this.signature?null:kd.recoverPublicKey(this.unsignedHash,this.signature.getCanonical())}isSigned(){return null!=this.signature}get serialized(){return Ln(this,ut,ht).call(this,!0,!0)}get unsignedSerialized(){return Ln(this,ut,ht).call(this,!1,!1)}inferType(){const t=this.inferTypes();return t.indexOf(2)>=0?2:t.pop()}inferTypes(){const t=null!=this.gasPrice,e=null!=this.maxFeePerGas||null!=this.maxPriorityFeePerGas,n=null!=this.accessList,r=null!=Pn(this,st)||Pn(this,it);null!=this.maxFeePerGas&&null!=this.maxPriorityFeePerGas&&Oa(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),Oa(!e||0!==this.type&&1!==this.type,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),Oa(0!==this.type||!n,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const s=[];return null!=this.type?s.push(this.type):this.authorizationList&&this.authorizationList.length?s.push(4):e?s.push(2):t?(s.push(1),n||s.push(0)):n?(s.push(1),s.push(2)):(r&&this.to||(s.push(0),s.push(1),s.push(2)),s.push(3)),s.sort(),s}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}clone(){return t.from(this)}toJSON(){const t=t=>null==t?null:t.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:t(this.gasLimit),gasPrice:t(this.gasPrice),maxPriorityFeePerGas:t(this.maxPriorityFeePerGas),maxFeePerGas:t(this.maxFeePerGas),value:t(this.value),chainId:t(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}[ff](){return this.toString()}toString(){const t=[],e=e=>{let n=this[e];"string"==typeof n&&(n=JSON.stringify(n)),t.push(`${e}: ${n}`)};this.type&&e("type"),e("to"),e("data"),e("nonce"),e("gasLimit"),e("value"),null!=this.chainId&&e("chainId"),this.signature&&(e("from"),t.push(`signature: ${this.signature.toString()}`));const n=this.authorizationList;if(n){const e=[];for(const t of n){const n=[];n.push(`address: ${JSON.stringify(t.address)}`),null!=t.nonce&&n.push(`nonce: ${t.nonce}`),null!=t.chainId&&n.push(`chainId: ${t.chainId}`),t.signature&&n.push(`signature: ${t.signature.toString()}`),e.push(`Authorization { ${n.join(", ")} }`)}t.push(`authorizations: [ ${e.join(", ")} ]`)}return`Transaction { ${t.join(", ")} }`}static from(e){if(null==e)return new t;if("string"==typeof e){const n=Ua(e);if(n[0]>=127)return t.from(function(t){const e=Mc(t);Ca(Array.isArray(e)&&(9===e.length||6===e.length),"invalid field count for legacy transaction","data",t);const n={type:0,nonce:Af(e[0],"nonce"),gasPrice:_f(e[1],"gasPrice"),gasLimit:_f(e[2],"gasLimit"),to:yf(e[3]),value:_f(e[4],"value"),data:ja(e[5]),chainId:af};if(6===e.length)return n;const r=_f(e[6],"v"),s=_f(e[7],"r"),i=_f(e[8],"s");if(s===af&&i===af)n.chainId=r;else{let t=(r-hf)/cf;t<af&&(t=af),n.chainId=t,Ca(t!==af||r===lf||r===uf,"non-canonical legacy v","v",e[6]),n.signature=Ed.from({r:za(e[7],32),s:za(e[8],32),v:r})}return n}(n));switch(n[0]){case 1:return t.from(function(t){const e=Mc(Ua(t).slice(1));Ca(Array.isArray(e)&&(8===e.length||11===e.length),"invalid field count for transaction type: 1","data",ja(t));const n={type:1,chainId:_f(e[0],"chainId"),nonce:Af(e[1],"nonce"),gasPrice:_f(e[2],"gasPrice"),gasLimit:_f(e[3],"gasLimit"),to:yf(e[4]),value:_f(e[5],"value"),data:ja(e[6]),accessList:wf(e[7],"accessList")};return 8===e.length||Sf(n,e.slice(8)),n}(n));case 2:return t.from(function(t){const e=Mc(Ua(t).slice(1));Ca(Array.isArray(e)&&(9===e.length||12===e.length),"invalid field count for transaction type: 2","data",ja(t));const n={type:2,chainId:_f(e[0],"chainId"),nonce:Af(e[1],"nonce"),maxPriorityFeePerGas:_f(e[2],"maxPriorityFeePerGas"),maxFeePerGas:_f(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:_f(e[4],"gasLimit"),to:yf(e[5]),value:_f(e[6],"value"),data:ja(e[7]),accessList:wf(e[8],"accessList")};return 9===e.length||Sf(n,e.slice(9)),n}(n));case 3:return t.from(function(t){let e=Mc(Ua(t).slice(1)),n="3",r=null,s=null;if(4===e.length&&Array.isArray(e[0])){n="3 (network format)";const t=e[1],r=e[2],i=e[3];Ca(Array.isArray(t),"invalid network format: blobs not an array","fields[1]",t),Ca(Array.isArray(r),"invalid network format: commitments not an array","fields[2]",r),Ca(Array.isArray(i),"invalid network format: proofs not an array","fields[3]",i),Ca(t.length===r.length,"invalid network format: blobs/commitments length mismatch","fields",e),Ca(t.length===i.length,"invalid network format: blobs/proofs length mismatch","fields",e),s=[];for(let n=0;n<e[1].length;n++)s.push({data:t[n],commitment:r[n],proof:i[n]});e=e[0]}else if(5===e.length&&Array.isArray(e[0])){n="3 (EIP-7594 network format)",r=rc(e[1]);const t=e[2],i=e[3],o=e[4];Ca(1===r,`unsupported EIP-7594 network format version: ${r}`,"fields[1]",r),Ca(Array.isArray(t),"invalid EIP-7594 network format: blobs not an array","fields[2]",t),Ca(Array.isArray(i),"invalid EIP-7594 network format: commitments not an array","fields[3]",i),Ca(Array.isArray(o),"invalid EIP-7594 network format: proofs not an array","fields[4]",o),Ca(t.length===i.length,"invalid network format: blobs/commitments length mismatch","fields",e),Ca(t.length*gf===o.length,"invalid network format: blobs/proofs length mismatch","fields",e),s=[];for(let e=0;e<t.length;e++){const n=[];for(let t=0;t<gf;t++)n.push(o[e*gf+t]);s.push({data:t[e],commitment:i[e],proof:Ha(n)})}e=e[0]}Ca(Array.isArray(e)&&(11===e.length||14===e.length),`invalid field count for transaction type: ${n}`,"data",ja(t));const i={type:3,chainId:_f(e[0],"chainId"),nonce:Af(e[1],"nonce"),maxPriorityFeePerGas:_f(e[2],"maxPriorityFeePerGas"),maxFeePerGas:_f(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:_f(e[4],"gasLimit"),to:yf(e[5]),value:_f(e[6],"value"),data:ja(e[7]),accessList:wf(e[8],"accessList"),maxFeePerBlobGas:_f(e[9],"maxFeePerBlobGas"),blobVersionedHashes:e[10],blobWrapperVersion:r};s&&(i.blobs=s),Ca(null!=i.to,`invalid address for transaction type: ${n}`,"data",t),Ca(Array.isArray(i.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",t);for(let o=0;o<i.blobVersionedHashes.length;o++)Ca(Ma(i.blobVersionedHashes[o],32),`invalid blobVersionedHash at index ${o}: must be length 32`,"data",t);return 11===e.length||Sf(i,e.slice(11)),i}(n));case 4:return t.from(function(t){const e=Mc(Ua(t).slice(1));Ca(Array.isArray(e)&&(10===e.length||13===e.length),"invalid field count for transaction type: 4","data",ja(t));const n={type:4,chainId:_f(e[0],"chainId"),nonce:Af(e[1],"nonce"),maxPriorityFeePerGas:_f(e[2],"maxPriorityFeePerGas"),maxFeePerGas:_f(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:_f(e[4],"gasLimit"),to:yf(e[5]),value:_f(e[6],"value"),data:ja(e[7]),accessList:wf(e[8],"accessList"),authorizationList:bf(e[9],"authorizationList")};return 10===e.length||Sf(n,e.slice(10)),n}(n))}Oa(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const n=new t;return null!=e.type&&(n.type=e.type),null!=e.to&&(n.to=e.to),null!=e.nonce&&(n.nonce=e.nonce),null!=e.gasLimit&&(n.gasLimit=e.gasLimit),null!=e.gasPrice&&(n.gasPrice=e.gasPrice),null!=e.maxPriorityFeePerGas&&(n.maxPriorityFeePerGas=e.maxPriorityFeePerGas),null!=e.maxFeePerGas&&(n.maxFeePerGas=e.maxFeePerGas),null!=e.maxFeePerBlobGas&&(n.maxFeePerBlobGas=e.maxFeePerBlobGas),null!=e.data&&(n.data=e.data),null!=e.value&&(n.value=e.value),null!=e.chainId&&(n.chainId=e.chainId),null!=e.signature&&(n.signature=Ed.from(e.signature)),null!=e.accessList&&(n.accessList=e.accessList),null!=e.authorizationList&&(n.authorizationList=e.authorizationList),null!=e.blobVersionedHashes&&(n.blobVersionedHashes=e.blobVersionedHashes),null!=e.kzg&&(n.kzg=e.kzg),null!=e.blobWrapperVersion&&(n.blobWrapperVersion=e.blobWrapperVersion),null!=e.blobs&&(n.blobs=e.blobs),null!=e.hash&&(Ca(n.isSigned(),"unsigned transaction cannot define '.hash'","tx",e),Ca(n.hash===e.hash,"hash mismatch","tx",e)),null!=e.from&&(Ca(n.isSigned(),"unsigned transaction cannot define '.from'","tx",e),Ca(n.from.toLowerCase()===(e.from||"").toLowerCase(),"from mismatch","tx",e)),n}};function Rf(t){return yu(mc(t))}const If=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]);function Of(t){return function(t){let e=0;return()=>t[e++]}(function(t){let e=0;function n(){return t[e++]<<8|t[e++]}let r=n(),s=1,i=[0,1];for(let A=1;A<r;A++)i.push(s+=n());let o=n(),a=e;e+=o;let c=0,l=0;function u(){return 0==c&&(l=l<<8|t[e++],c=8),l>>--c&1}const h=2**31,d=h>>>1,f=d>>1,p=h-1;let g=0;for(let A=0;A<31;A++)g=g<<1|u();let m=[],y=0,w=h;for(;;){let t=Math.floor(((g-y+1)*s-1)/w),e=0,n=r;for(;n-e>1;){let r=e+n>>>1;t<i[r]?n=r:e=r}if(0==e)break;m.push(e);let o=y+Math.floor(w*i[e]/s),a=y+Math.floor(w*i[e+1]/s)-1;for(;!((o^a)&d);)g=g<<1&p|u(),o=o<<1&p,a=a<<1&p|1;for(;o&~a&f;)g=g&d|g<<1&p>>>1|u(),o=o<<1^d,a=(a^d)<<1|d|1;y=o,w=1+a-o}let b=r-4;return m.map((e=>{switch(e-b){case 3:return b+65792+(t[a++]<<16|t[a++]<<8|t[a++]);case 2:return b+256+(t[a++]<<8|t[a++]);case 1:return b+t[a++];default:return e-1}}))}(function(t){let e=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach(((t,n)=>e[t.charCodeAt(0)]=n));let n=t.length,r=new Uint8Array(6*n>>3);for(let s=0,i=0,o=0,a=0;s<n;s++)a=a<<6|e[t.charCodeAt(s)],o+=6,o>=8&&(r[i++]=a>>(o-=8));return r}(t)))}function Cf(t){return 1&t?~t>>1:t>>1}function xf(t,e){let n=Array(t);for(let r=0,s=0;r<t;r++)n[r]=s+=Cf(e());return n}function Nf(t,e=0){let n=[];for(;;){let r=t(),s=t();if(!s)break;e+=r;for(let t=0;t<s;t++)n.push(e+t);e+=s+1}return n}function Pf(t){return Bf((()=>{let e=Nf(t);if(e.length)return e}))}function Df(t){let e=[];for(;;){let n=t();if(0==n)break;e.push(Lf(n,t))}for(;;){let n=t()-1;if(n<0)break;e.push(Mf(n,t))}return e.flat()}function Bf(t){let e=[];for(;;){let n=t(e.length);if(!n)break;e.push(n)}return e}function Uf(t,e,n){let r=Array(t).fill().map((()=>[]));for(let s=0;s<e;s++)xf(t,n).forEach(((t,e)=>r[e].push(t)));return r}function Lf(t,e){let n=1+e(),r=e(),s=Bf(e);return Uf(s.length,1+t,e).flatMap(((t,e)=>{let[i,...o]=t;return Array(s[e]).fill().map(((t,e)=>{let s=e*r;return[i+e*n,o.map((t=>t+s))]}))}))}function Mf(t,e){return Uf(1+e(),1+t,e).map((t=>[t[0],t.slice(1)]))}function Ff(t){return`{${function(t){return t.toString(16).toUpperCase().padStart(2,"0")}(t)}}`}function Gf(t){let e=t.length;if(e<4096)return String.fromCodePoint(...t);let n=[];for(let r=0;r<e;)n.push(String.fromCodePoint(...t.slice(r,r+=4096)));return n.join("")}function jf(t,e){let n=t.length,r=n-e.length;for(let s=0;0==r&&s<n;s++)r=t[s]-e[s];return r}const Hf=44032,Vf=4352,Wf=4449,Kf=4519,zf=28,qf=588;function $f(t){return t>>24&255}function Qf(t){return 16777215&t}let Jf,Yf,Zf,Xf;function tp(t){return t>=Hf&&t<55204}function ep(t,e){if(t>=Vf&&t<4371&&e>=Wf&&e<4470)return Hf+(t-Vf)*qf+(e-Wf)*zf;if(tp(t)&&e>Kf&&e<4547&&(t-Hf)%zf==0)return t+(e-Kf);{let n=Xf.get(t);return n&&(n=n.get(e),n)?n:-1}}function np(t){Jf||function(){let t=Of("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");Jf=new Map(Pf(t).flatMap(((t,e)=>t.map((t=>[t,e+1<<24]))))),Yf=new Set(Nf(t)),Zf=new Map,Xf=new Map;for(let[e,n]of Df(t)){if(!Yf.has(e)&&2==n.length){let[t,r]=n,s=Xf.get(t);s||(s=new Map,Xf.set(t,s)),s.set(r,e)}Zf.set(e,n.reverse())}}();let e=[],n=[],r=!1;function s(t){let n=Jf.get(t);n&&(r=!0,t|=n),e.push(t)}for(let i of t)for(;;){if(i<128)e.push(i);else if(tp(i)){let t=i-Hf,e=t%qf/zf|0,n=t%zf;s(Vf+(t/qf|0)),s(Wf+e),n>0&&s(Kf+n)}else{let t=Zf.get(i);t?n.push(...t):s(i)}if(!n.length)break;i=n.pop()}if(r&&e.length>1){let t=$f(e[0]);for(let n=1;n<e.length;n++){let r=$f(e[n]);if(0==r||t<=r){t=r;continue}let s=n-1;for(;;){let n=e[s+1];if(e[s+1]=e[s],e[s]=n,!s)break;if(t=$f(e[--s]),t<=r)break}t=$f(e[n])}}return e}function rp(t){return np(t).map(Qf)}function sp(t){return function(t){let e=[],n=[],r=-1,s=0;for(let i of t){let t=$f(i),o=Qf(i);if(-1==r)0==t?r=o:e.push(o);else if(s>0&&s>=t)0==t?(e.push(r,...n),n.length=0,r=o):n.push(o),s=t;else{let i=ep(r,o);i>=0?r=i:0==s&&0==t?(e.push(r),r=o):(n.push(o),s=t)}}return r>=0&&e.push(r,...n),e}(np(t))}const ip=".",op=t=>Array.from(t);function ap(t,e){return t.P.has(e)||t.Q.has(e)}class cp extends Array{get is_emoji(){return!0}}let lp,up,hp,dp,fp,pp,gp,mp,yp,wp,bp;function Ap(){if(lp)return;let t=Of("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");const e=()=>Nf(t),n=()=>new Set(e()),r=(t,e)=>e.forEach((e=>t.add(e)));lp=new Map(Df(t)),up=n(),hp=e(),dp=new Set(e().map((t=>hp[t]))),hp=new Set(hp),fp=n(),n();let s=Pf(t),i=t();const o=()=>{let t=new Set;return e().forEach((e=>r(t,s[e]))),r(t,e()),t};pp=Bf((e=>{let n=Bf(t).map((t=>t+96));if(n.length){let r=e>=i;return n[0]-=32,n=Gf(n),r&&(n=`Restricted[${n}]`),{N:n,P:o(),Q:o(),M:!t(),R:r}}})),gp=n(),mp=new Map;let a=e().concat(op(gp)).sort(((t,e)=>t-e));a.forEach(((e,n)=>{let r=t(),s=a[n]=r?a[n-r]:{V:[],M:new Map};s.V.push(e),gp.has(e)||mp.set(e,s)}));for(let{V:u,M:h}of new Set(mp.values())){let t=[];for(let n of u){let e=pp.filter((t=>ap(t,n))),s=t.find((({G:t})=>e.some((e=>t.has(e)))));s||(s={G:new Set,V:[]},t.push(s)),s.V.push(n),r(s.G,e)}let e=t.flatMap((t=>op(t.G)));for(let{G:n,V:r}of t){let t=new Set(e.filter((t=>!n.has(t))));for(let e of r)h.set(e,t)}}yp=new Set;let c=new Set;const l=t=>yp.has(t)?c.add(t):yp.add(t);for(let u of pp){for(let t of u.P)l(t);for(let t of u.Q)l(t)}for(let u of yp)mp.has(u)||c.has(u)||mp.set(u,1);r(yp,rp(yp)),wp=function(t){let e=[],n=Nf(t);return function t({S:n,B:r},s,i){if(!(4&n&&i===s[s.length-1])){2&n&&(i=s[s.length-1]),1&n&&e.push(s);for(let e of r)for(let n of e.Q)t(e,[...s,n],i)}}(function e(r){return{S:t(),B:Bf((()=>{let r=Nf(t).map((t=>n[t]));if(r.length)return e(r)})),Q:r}}([]),[]),e}(t).map((t=>cp.from(t))).sort(jf),bp=new Map;for(let u of wp){let t=[bp];for(let e of u){let n=t.map((t=>{let n=t.get(e);return n||(n=new Map,t.set(e,n)),n}));65039===e?t.push(...n):t=n}for(let e of t)e.V=u}}function _p(t){return(kp(t)?"":`${vp(Ep([t]))} `)+Ff(t)}function vp(t){return`"${t}"‎`}function Ep(t,e=1/0,n=Ff){let r=[];var s,i;s=t[0],Ap(),(i?dp.has(s):hp.has(s))&&r.push("◌"),t.length>e&&(e>>=1,t=[...t.slice(0,e),8230,...t.slice(-e)]);let o=0,a=t.length;for(let c=0;c<a;c++){let e=t[c];kp(e)&&(r.push(Gf(t.slice(o,c))),r.push(n(e)),o=c+1)}return r.push(Gf(t.slice(o,a))),r.join("")}function kp(t){return Ap(),fp.has(t)}function Sp(t){return e=function(t,e,n){if(!t)return[];Ap();let r=0;return t.split(ip).map((t=>{let s=function(t){let e=[];for(let n=0,r=t.length;n<r;){let r=t.codePointAt(n);n+=r<65536?1:2,e.push(r)}return e}(t),i={input:s,offset:r};r+=s.length+1;try{let t,r=i.tokens=function(t,e,n){let r=[],s=[];for(t=t.slice().reverse();t.length;){let i=Cp(t);if(i)s.length&&(r.push(e(s)),s=[]),r.push(n(i));else{let e=t.pop();if(yp.has(e))s.push(e);else{let t=lp.get(e);if(t)s.push(...t);else if(!up.has(e))throw Tp(e)}}}return s.length&&r.push(e(s)),r}(s,e,n),o=r.length;if(!o)throw new Error("empty label");let a=i.output=r.flat();if(function(t){for(let e=t.lastIndexOf(95);e>0;)if(95!==t[--e])throw new Error("underscore allowed only at start")}(a),!(i.emoji=o>1||r[0].is_emoji)&&a.every((t=>t<128)))!function(t){if(t.length>=4&&45==t[2]&&45==t[3])throw new Error(`invalid label extension: "${Gf(t.slice(0,4))}"`)}(a),t="ASCII";else{let e=r.flatMap((t=>t.is_emoji?[]:t));if(e.length){if(hp.has(a[0]))throw Ip("leading combining mark");for(let t=1;t<o;t++){let e=r[t];if(!e.is_emoji&&hp.has(e[0]))throw Ip(`emoji + combining mark: "${Gf(r[t-1])} + ${Ep([e[0]])}"`)}!function(t){let e=t[0],n=If.get(e);if(n)throw Ip(`leading ${n}`);let r=t.length,s=-1;for(let i=1;i<r;i++){e=t[i];let r=If.get(e);if(r){if(s==i)throw Ip(`${n} + ${r}`);s=i+1,n=r}}if(s==r)throw Ip(`trailing ${n}`)}(a);let n=op(new Set(e)),[s]=function(t){let e=pp;for(let n of t){let t=e.filter((t=>ap(t,n)));if(!t.length)throw pp.some((t=>ap(t,n)))?Rp(e[0],n):Tp(n);if(e=t,1==t.length)break}return e}(n);!function(t,e){for(let n of e)if(!ap(t,n))throw Rp(t,n);if(t.M){let t=rp(e);for(let e=1,n=t.length;e<n;e++)if(dp.has(t[e])){let r=e+1;for(let s;r<n&&dp.has(s=t[r]);r++)for(let n=e;n<r;n++)if(t[n]==s)throw new Error(`duplicate non-spacing marks: ${_p(s)}`);if(r-e>4)throw new Error(`excessive non-spacing marks: ${vp(Ep(t.slice(e-1,r)))} (${r-e}/4)`);e=r}}}(s,e),function(t,e){let n,r=[];for(let s of e){let t=mp.get(s);if(1===t)return;if(t){let e=t.M.get(s);if(n=n?n.filter((t=>e.has(t))):op(e),!n.length)return}else r.push(s)}if(n)for(let s of n)if(r.every((t=>ap(s,t))))throw new Error(`whole-script confusable: ${t.N}/${s.N}`)}(s,n),t=s.N}else t="Emoji"}i.type=t}catch(o){i.error=o}return i}))}(t,sp,Op),e.map((({input:t,error:n,output:r})=>{if(n){let r=n.message;throw new Error(1==e.length?r:`Invalid label ${vp(Ep(t,63))}: ${r}`)}return Gf(r)})).join(ip);var e}function Tp(t){return new Error(`disallowed character: ${_p(t)}`)}function Rp(t,e){let n=_p(e),r=pp.find((t=>t.P.has(e)));return r&&(n=`${r.N} ${n}`),new Error(`illegal mixture: ${t.N} + ${n}`)}function Ip(t){return new Error(`illegal placement: ${t}`)}function Op(t){return t.filter((t=>65039!=t))}function Cp(t,e){let n,r=bp,s=t.length;for(;s&&(r=r.get(t[--s]),r);){let{V:i}=r;i&&(n=i,e&&e.push(...t.slice(s).reverse()),t.length=s)}return n}const xp=new Uint8Array(32);function Np(t){return Ca(0!==t.length,"invalid ENS name; empty component","comp",t),t}function Pp(t){const e=mc(Dp(t)),n=[];if(0===t.length)return n;let r=0;for(let s=0;s<e.length;s++){46===e[s]&&(n.push(Np(e.slice(r,s))),r=s+1)}return Ca(r<e.length,"invalid ENS name; empty component","name",t),n.push(Np(e.slice(r))),n}function Dp(t){try{if(0===t.length)throw new Error("empty label");return Sp(t)}catch(e){Ca(!1,`invalid ENS name (${e.message})`,"name",t)}}function Bp(t){try{return 0!==Pp(t).length}catch(e){}return!1}function Up(t){Ca("string"==typeof t,"invalid ENS name; not a string","name",t),Ca(t.length,"invalid ENS name (empty label)","name",t);let e=xp;const n=Pp(t);for(;n.length;)e=yu(Ha([e,yu(n.pop())]));return ja(e)}function Lp(t,e){const n=null!=e?e:63;return Ca(n<=255,"DNS encoded label cannot exceed 255","length",n),ja(Ha(Pp(t).map((e=>{Ca(e.length<=n,`label ${JSON.stringify(t)} exceeds ${n} bytes`,"name",t);const r=new Uint8Array(e.length+1);return r.set(e,1),r[0]=r.length-1,r}))))+"00"}xp.fill(0);const Mp=new Uint8Array(32);Mp.fill(0);const Fp=BigInt(-1),Gp=BigInt(0),jp=BigInt(1),Hp=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const Vp=sc(jp,32),Wp=sc(Gp,32),Kp={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},zp=["name","version","chainId","verifyingContract","salt"];function qp(t){return function(e){return Ca("string"==typeof e,`invalid domain value for ${JSON.stringify(t)}`,`domain.${t}`,e),e}}const $p={name:qp("name"),version:qp("version"),chainId:function(t){const e=Xa(t,"domain.chainId");return Ca(e>=0,"invalid chain ID","domain.chainId",t),Number.isSafeInteger(e)?Number(e):oc(e)},verifyingContract:function(t){try{return Cd(t).toLowerCase()}catch(e){}Ca(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",t)},salt:function(t){const e=Ua(t,"domain.salt");return Ca(32===e.length,'invalid domain value "salt"',"domain.salt",t),ja(e)}};function Qp(t){{const e=t.match(/^(u?)int(\d+)$/);if(e){const n=""===e[1],r=parseInt(e[2]);Ca(r%8==0&&0!==r&&r<=256&&e[2]===String(r),"invalid numeric width","type",t);const s=Za(Hp,n?r-1:r),i=n?(s+jp)*Fp:Gp;return function(e){const r=Xa(e,"value");return Ca(r>=i&&r<=s,`value out-of-bounds for ${t}`,"value",r),sc(n?Ya(r,256):r,32)}}}{const e=t.match(/^bytes(\d+)$/);if(e){const n=parseInt(e[1]);return Ca(0!==n&&n<=32&&e[1]===String(n),"invalid bytes width","type",t),function(e){return Ca(Ua(e).length===n,`invalid length for ${t}`,"value",e),function(t){const e=Ua(t),n=e.length%32;return n?Ha([e,Mp.slice(n)]):ja(e)}(e)}}}switch(t){case"address":return function(t){return za(Cd(t),32)};case"bool":return function(t){return t?Vp:Wp};case"bytes":return function(t){return yu(t)};case"string":return function(t){return Rf(t)}}return null}function Jp(t,e){return`${t}(${e.map((({name:t,type:e})=>e+" "+t)).join(",")})`}function Yp(t){const e=t.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return e?{base:e[1],index:e[2]+e[4],array:{base:e[1],prefix:e[1]+e[2],count:e[5]?parseInt(e[5]):-1}}:{base:t}}dt=new WeakMap,ft=new WeakMap,pt=new WeakMap,gt=new WeakSet,mt=function(t){{const e=Qp(t);if(e)return e}const e=Yp(t).array;if(e){const t=e.prefix,n=this.getEncoder(t);return r=>{Ca(-1===e.count||e.count===r.length,`array length mismatch; expected length ${e.count}`,"value",r);let s=r.map(n);return Pn(this,ft).has(t)&&(s=s.map(yu)),yu(Ha(s))}}const n=this.types[t];if(n){const e=Rf(Pn(this,ft).get(t));return t=>{const r=n.map((({name:e,type:n})=>{const r=this.getEncoder(n)(t[e]);return Pn(this,ft).has(n)?yu(r):r}));return r.unshift(e),Ha(r)}}Ca(!1,`unknown type: ${t}`,"type",t)};let Zp=class t{constructor(t){Dn(this,gt),xn(this,"primaryType"),Dn(this,dt,void 0),Dn(this,ft,void 0),Dn(this,pt,void 0),Bn(this,ft,new Map),Bn(this,pt,new Map);const e=new Map,n=new Map,r=new Map,s={};Object.keys(t).forEach((i=>{s[i]=t[i].map((({name:e,type:n})=>{let{base:r,index:s}=Yp(n);return"int"!==r||t.int||(r="int256"),"uint"!==r||t.uint||(r="uint256"),{name:e,type:r+(s||"")}})),e.set(i,new Set),n.set(i,[]),r.set(i,new Set)})),Bn(this,dt,JSON.stringify(s));for(const o in s){const r=new Set;for(const i of s[o]){Ca(!r.has(i.name),`duplicate variable name ${JSON.stringify(i.name)} in ${JSON.stringify(o)}`,"types",t),r.add(i.name);const s=Yp(i.type).base;Ca(s!==o,`circular type reference to ${JSON.stringify(s)}`,"types",t);Qp(s)||(Ca(n.has(s),`unknown type ${JSON.stringify(s)}`,"types",t),n.get(s).push(o),e.get(o).add(s))}}const i=Array.from(n.keys()).filter((t=>0===n.get(t).length));Ca(0!==i.length,"missing primary type","types",t),Ca(1===i.length,`ambiguous primary types or unused types: ${i.map((t=>JSON.stringify(t))).join(", ")}`,"types",t),ka(this,{primaryType:i[0]}),function s(i,o){Ca(!o.has(i),`circular type reference to ${JSON.stringify(i)}`,"types",t),o.add(i);for(const t of e.get(i))if(n.has(t)){s(t,o);for(const e of o)r.get(e).add(t)}o.delete(i)}(this.primaryType,new Set);for(const[o,a]of r){const t=Array.from(a);t.sort(),Pn(this,ft).set(o,Jp(o,s[o])+t.map((t=>Jp(t,s[t]))).join(""))}}get types(){return JSON.parse(Pn(this,dt))}getEncoder(t){let e=Pn(this,pt).get(t);return e||(e=Ln(this,gt,mt).call(this,t),Pn(this,pt).set(t,e)),e}encodeType(t){const e=Pn(this,ft).get(t);return Ca(e,`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return yu(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,n){if(Qp(t))return n(t,e);const r=Yp(t).array;if(r)return Ca(-1===r.count||r.count===e.length,`array length mismatch; expected length ${r.count}`,"value",e),e.map((t=>this._visit(r.prefix,t,n)));const s=this.types[t];if(s)return s.reduce(((t,{name:r,type:s})=>(t[r]=this._visit(s,e[r],n),t)),{});Ca(!1,`unknown type: ${t}`,"type",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(e){return new t(e)}static getPrimaryType(e){return t.from(e).primaryType}static hashStruct(e,n,r){return t.from(n).hashStruct(e,r)}static hashDomain(e){const n=[];for(const t in e){if(null==e[t])continue;const r=Kp[t];Ca(r,`invalid typed-data domain key: ${JSON.stringify(t)}`,"domain",e),n.push({name:t,type:r})}return n.sort(((t,e)=>zp.indexOf(t.name)-zp.indexOf(e.name))),t.hashStruct("EIP712Domain",{EIP712Domain:n},e)}static encode(e,n,r){return Ha(["0x1901",t.hashDomain(e),t.from(n).hash(r)])}static hash(e,n,r){return yu(t.encode(e,n,r))}static async resolveNames(e,n,r,s){e=Object.assign({},e);for(const t in e)null==e[t]&&delete e[t];const i={};e.verifyingContract&&!Ma(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const o=t.from(n);o.visit(r,((t,e)=>("address"!==t||Ma(e,20)||(i[e]="0x"),e)));for(const t in i)i[t]=await s(t);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),{domain:e,value:r=o.visit(r,((t,e)=>"address"===t&&i[e]?i[e]:e))}}static getPayload(e,n,r){t.hashDomain(e);const s={},i=[];zp.forEach((t=>{const n=e[t];null!=n&&(s[t]=$p[t](n),i.push({name:t,type:Kp[t]}))}));const o=t.from(n);n=o.types;const a=Object.assign({},n);return Ca(null==a.EIP712Domain,"types must not contain EIP712Domain type","types.EIP712Domain",n),a.EIP712Domain=i,o.encode(r),{types:a,domain:s,primaryType:o.primaryType,message:o.visit(r,((t,e)=>{if(t.match(/^bytes(\d*)/))return ja(Ua(e));if(t.match(/^u?int/))return Xa(e).toString();switch(t){case"address":return e.toLowerCase();case"bool":return!!e;case"string":return Ca("string"==typeof e,"invalid string","value",e),e}Ca(!1,"unsupported type","type",t)}))}}};function Xp(t){const e=new Set;return t.forEach((t=>e.add(t))),Object.freeze(e)}const tg=Xp("external public payable override".split(" ")),eg="constant external internal payable private public pure view override",ng=Xp(eg.split(" ")),rg="constructor error event fallback function receive struct",sg=Xp(rg.split(" ")),ig="calldata memory storage payable indexed",og=Xp(ig.split(" ")),ag=Xp([rg,ig,"tuple returns",eg].join(" ").split(" ")),cg={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},lg=new RegExp("^(\\s*)"),ug=new RegExp("^([0-9]+)"),hg=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),dg=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),fg=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$"),pg=class t{constructor(t){Dn(this,bt),Dn(this,yt,void 0),Dn(this,wt,void 0),Bn(this,yt,0),Bn(this,wt,t.slice())}get offset(){return Pn(this,yt)}get length(){return Pn(this,wt).length-Pn(this,yt)}clone(){return new t(Pn(this,wt))}reset(){Bn(this,yt,0)}popKeyword(t){const e=this.peek();if("KEYWORD"!==e.type||!t.has(e.text))throw new Error(`expected keyword ${e.text}`);return this.pop().text}popType(t){if(this.peek().type!==t){const e=this.peek();throw new Error(`expected ${t}; got ${e.type} ${JSON.stringify(e.text)}`)}return this.pop().text}popParen(){const t=this.peek();if("OPEN_PAREN"!==t.type)throw new Error("bad start");const e=Ln(this,bt,At).call(this,Pn(this,yt)+1,t.match+1);return Bn(this,yt,t.match+1),e}popParams(){const t=this.peek();if("OPEN_PAREN"!==t.type)throw new Error("bad start");const e=[];for(;Pn(this,yt)<t.match-1;){const t=this.peek().linkNext;e.push(Ln(this,bt,At).call(this,Pn(this,yt)+1,t)),Bn(this,yt,t)}return Bn(this,yt,t.match+1),e}peek(){if(Pn(this,yt)>=Pn(this,wt).length)throw new Error("out-of-bounds");return Pn(this,wt)[Pn(this,yt)]}peekKeyword(t){const e=this.peekType("KEYWORD");return null!=e&&t.has(e)?e:null}peekType(t){if(0===this.length)return null;const e=this.peek();return e.type===t?e.text:null}pop(){const t=this.peek();return Un(this,yt)._++,t}toString(){const t=[];for(let e=Pn(this,yt);e<Pn(this,wt).length;e++){const n=Pn(this,wt)[e];t.push(`${n.type}:${n.text}`)}return`<TokenString ${t.join(" ")}>`}};yt=new WeakMap,wt=new WeakMap,bt=new WeakSet,At=function(t=0,e=0){return new pg(Pn(this,wt).slice(t,e).map((e=>Object.freeze(Object.assign({},e,{match:e.match-t,linkBack:e.linkBack-t,linkNext:e.linkNext-t})))))};let gg=pg;function mg(t){const e=[],n=e=>{const n=i<t.length?JSON.stringify(t[i]):"$EOI";throw new Error(`invalid token ${n} at ${i}: ${e}`)};let r=[],s=[],i=0;for(;i<t.length;){let o=t.substring(i),a=o.match(lg);a&&(i+=a[1].length,o=t.substring(i));const c={depth:r.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:i,value:-1};e.push(c);let l=cg[o[0]]||"";if(l){if(c.type=l,c.text=o[0],i++,"OPEN_PAREN"===l)r.push(e.length-1),s.push(e.length-1);else if("CLOSE_PAREN"==l)0===r.length&&n("no matching open bracket"),c.match=r.pop(),e[c.match].match=e.length-1,c.depth--,c.linkBack=s.pop(),e[c.linkBack].linkNext=e.length-1;else if("COMMA"===l)c.linkBack=s.pop(),e[c.linkBack].linkNext=e.length-1,s.push(e.length-1);else if("OPEN_BRACKET"===l)c.type="BRACKET";else if("CLOSE_BRACKET"===l){let t=e.pop().text;if(e.length>0&&"NUMBER"===e[e.length-1].type){const n=e.pop().text;t=n+t,e[e.length-1].value=rc(n)}if(0===e.length||"BRACKET"!==e[e.length-1].type)throw new Error("missing opening bracket");e[e.length-1].text+=t}}else if(a=o.match(hg),a){if(c.text=a[1],i+=c.text.length,ag.has(c.text)){c.type="KEYWORD";continue}if(c.text.match(fg)){c.type="TYPE";continue}c.type="ID"}else{if(a=o.match(ug),!a)throw new Error(`unexpected token ${JSON.stringify(o[0])} at position ${i}`);c.text=a[1],c.type="NUMBER",i+=c.text.length}}return new gg(e.map((t=>Object.freeze(t))))}function yg(t,e){let n=[];for(const r in e.keys())t.has(r)&&n.push(r);if(n.length>1)throw new Error(`conflicting types: ${n.join(", ")}`)}function wg(t,e){if(e.peekKeyword(sg)){const n=e.pop().text;if(n!==t)throw new Error(`expected ${t}, got ${n}`)}return e.popType("ID")}function bg(t,e){const n=new Set;for(;;){const r=t.peekType("KEYWORD");if(null==r||e&&!e.has(r))break;if(t.pop(),n.has(r))throw new Error(`duplicate keywords: ${JSON.stringify(r)}`);n.add(r)}return Object.freeze(n)}function Ag(t){let e=bg(t,ng);return yg(e,Xp("constant payable nonpayable".split(" "))),yg(e,Xp("pure view payable nonpayable".split(" "))),e.has("view")?"view":e.has("pure")?"pure":e.has("payable")?"payable":e.has("nonpayable")?"nonpayable":e.has("constant")?"view":"nonpayable"}function _g(t,e){return t.popParams().map((t=>Bg.from(t,e)))}function vg(t){if(t.peekType("AT")){if(t.pop(),t.peekType("NUMBER"))return Xa(t.pop().text);throw new Error("invalid gas")}return null}function Eg(t){if(t.length)throw new Error(`unexpected tokens at offset ${t.offset}: ${t.toString()}`)}const kg=new RegExp(/^(.*)\[([0-9]*)\]$/);function Sg(t){const e=t.match(fg);if(Ca(e,"invalid type","type",t),"uint"===t)return"uint256";if("int"===t)return"int256";if(e[2]){const n=parseInt(e[2]);Ca(0!==n&&n<=32,"invalid bytes length","type",t)}else if(e[3]){const n=parseInt(e[3]);Ca(0!==n&&n<=256&&n%8==0,"invalid numeric width","type",t)}return t}const Tg={},Rg=Symbol.for("_ethers_internal"),Ig="_ParamTypeInternal",Og="_ErrorInternal",Cg="_EventInternal",xg="_ConstructorInternal",Ng="_FallbackInternal",Pg="_FunctionInternal",Dg="_StructInternal";_t=new WeakSet,vt=function(t,e,n,r){if(this.isArray()){if(!Array.isArray(e))throw new Error("invalid array value");if(-1!==this.arrayLength&&e.length!==this.arrayLength)throw new Error("array is wrong length");const s=this.arrayChildren,i=e.slice();return i.forEach(((e,r)=>{var o;Ln(o=s,_t,vt).call(o,t,e,n,(t=>{i[r]=t}))})),void r(i)}if(this.isTuple()){const s=this.components;let i;if(Array.isArray(e))i=e.slice();else{if(null==e||"object"!=typeof e)throw new Error("invalid tuple value");i=s.map((t=>{if(!t.name)throw new Error("cannot use object value with unnamed components");if(!(t.name in e))throw new Error(`missing value for component ${t.name}`);return e[t.name]}))}if(i.length!==this.components.length)throw new Error("array is wrong length");return i.forEach(((e,r)=>{var o;Ln(o=s[r],_t,vt).call(o,t,e,n,(t=>{i[r]=t}))})),void r(i)}const s=n(this.type,e);s.then?t.push(async function(){r(await s)}()):r(s)};let Bg=class t{constructor(t,e,n,r,s,i,o,a){if(Dn(this,_t),xn(this,"name"),xn(this,"type"),xn(this,"baseType"),xn(this,"indexed"),xn(this,"components"),xn(this,"arrayLength"),xn(this,"arrayChildren"),Da(t,Tg,"ParamType"),Object.defineProperty(this,Rg,{value:Ig}),i&&(i=Object.freeze(i.slice())),"array"===r){if(null==o||null==a)throw new Error("")}else if(null!=o||null!=a)throw new Error("");if("tuple"===r){if(null==i)throw new Error("")}else if(null!=i)throw new Error("");ka(this,{name:e,type:n,baseType:r,indexed:s,components:i,arrayLength:o,arrayChildren:a})}format(t){if(null==t&&(t="sighash"),"json"===t){const e=this.name||"";if(this.isArray()){const t=JSON.parse(this.arrayChildren.format("json"));return t.name=e,t.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(t)}const n={type:"tuple"===this.baseType?"tuple":this.type,name:e};return"boolean"==typeof this.indexed&&(n.indexed=this.indexed),this.isTuple()&&(n.components=this.components.map((e=>JSON.parse(e.format(t))))),JSON.stringify(n)}let e="";return this.isArray()?(e+=this.arrayChildren.format(t),e+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?e+="("+this.components.map((e=>e.format(t))).join("full"===t?", ":",")+")":e+=this.type,"sighash"!==t&&(!0===this.indexed&&(e+=" indexed"),"full"===t&&this.name&&(e+=" "+this.name)),e}isArray(){return"array"===this.baseType}isTuple(){return"tuple"===this.baseType}isIndexable(){return null!=this.indexed}walk(t,e){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(-1!==this.arrayLength&&t.length!==this.arrayLength)throw new Error("array is wrong length");const n=this;return t.map((t=>n.arrayChildren.walk(t,e)))}if(this.isTuple()){if(!Array.isArray(t))throw new Error("invalid tuple value");if(t.length!==this.components.length)throw new Error("array is wrong length");const n=this;return t.map(((t,r)=>n.components[r].walk(t,e)))}return e(this.type,t)}async walkAsync(t,e){const n=[],r=[t];return Ln(this,_t,vt).call(this,n,t,e,(t=>{r[0]=t})),n.length&&await Promise.all(n),r[0]}static from(e,n){if(t.isParamType(e))return e;if("string"==typeof e)try{return t.from(mg(e),n)}catch(a){Ca(!1,"invalid param type","obj",e)}else if(e instanceof gg){let r="",s="",i=null;bg(e,Xp(["tuple"])).has("tuple")||e.peekType("OPEN_PAREN")?(s="tuple",i=e.popParams().map((e=>t.from(e))),r=`tuple(${i.map((t=>t.format())).join(",")})`):(r=Sg(e.popType("TYPE")),s=r);let o=null,a=null;for(;e.length&&e.peekType("BRACKET");){const n=e.pop();o=new t(Tg,"",r,s,null,i,a,o),a=n.value,r+=n.text,s="array",i=null}let c=null;if(bg(e,og).has("indexed")){if(!n)throw new Error("");c=!0}const l=e.peekType("ID")?e.pop().text:"";if(e.length)throw new Error("leftover tokens");return new t(Tg,l,r,s,c,i,a,o)}const r=e.name;Ca(!r||"string"==typeof r&&r.match(dg),"invalid name","obj.name",r);let s=e.indexed;null!=s&&(Ca(n,"parameter cannot be indexed","obj.indexed",e.indexed),s=!!s);let i=e.type,o=i.match(kg);if(o){const n=parseInt(o[2]||"-1"),a=t.from({type:o[1],components:e.components});return new t(Tg,r||"",i,"array",s,null,n,a)}if("tuple"===i||i.startsWith("tuple(")||i.startsWith("(")){const n=null!=e.components?e.components.map((e=>t.from(e))):null;return new t(Tg,r||"",i,"tuple",s,n,null,null)}return i=Sg(e.type),new t(Tg,r||"",i,i,s,null,null,null)}static isParamType(t){return t&&t[Rg]===Ig}};class Ug{constructor(t,e,n){xn(this,"type"),xn(this,"inputs"),Da(t,Tg,"Fragment"),ka(this,{type:e,inputs:n=Object.freeze(n.slice())})}static from(t){if("string"==typeof t){try{Ug.from(JSON.parse(t))}catch(e){}return Ug.from(mg(t))}if(t instanceof gg){switch(t.peekKeyword(sg)){case"constructor":return jg.from(t);case"error":return Fg.from(t);case"event":return Gg.from(t);case"fallback":case"receive":return Hg.from(t);case"function":return Vg.from(t);case"struct":return Wg.from(t)}}else if("object"==typeof t){switch(t.type){case"constructor":return jg.from(t);case"error":return Fg.from(t);case"event":return Gg.from(t);case"fallback":case"receive":return Hg.from(t);case"function":return Vg.from(t);case"struct":return Wg.from(t)}Oa(!1,`unsupported type: ${t.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}Ca(!1,"unsupported frgament object","obj",t)}static isConstructor(t){return jg.isFragment(t)}static isError(t){return Fg.isFragment(t)}static isEvent(t){return Gg.isFragment(t)}static isFunction(t){return Vg.isFragment(t)}static isStruct(t){return Wg.isFragment(t)}}class Lg extends Ug{constructor(t,e,n,r){super(t,e,r),xn(this,"name"),Ca("string"==typeof n&&n.match(dg),"invalid identifier","name",n),r=Object.freeze(r.slice()),ka(this,{name:n})}}function Mg(t,e){return"("+e.map((e=>e.format(t))).join("full"===t?", ":",")+")"}class Fg extends Lg{constructor(t,e,n){super(t,"error",e,n),Object.defineProperty(this,Rg,{value:Og})}get selector(){return Rf(this.format("sighash")).substring(0,10)}format(t){if(null==t&&(t="sighash"),"json"===t)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((e=>JSON.parse(e.format(t))))});const e=[];return"sighash"!==t&&e.push("error"),e.push(this.name+Mg(t,this.inputs)),e.join(" ")}static from(t){if(Fg.isFragment(t))return t;if("string"==typeof t)return Fg.from(mg(t));if(t instanceof gg){const e=wg("error",t),n=_g(t);return Eg(t),new Fg(Tg,e,n)}return new Fg(Tg,t.name,t.inputs?t.inputs.map(Bg.from):[])}static isFragment(t){return t&&t[Rg]===Og}}class Gg extends Lg{constructor(t,e,n,r){super(t,"event",e,n),xn(this,"anonymous"),Object.defineProperty(this,Rg,{value:Cg}),ka(this,{anonymous:r})}get topicHash(){return Rf(this.format("sighash"))}format(t){if(null==t&&(t="sighash"),"json"===t)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((e=>JSON.parse(e.format(t))))});const e=[];return"sighash"!==t&&e.push("event"),e.push(this.name+Mg(t,this.inputs)),"sighash"!==t&&this.anonymous&&e.push("anonymous"),e.join(" ")}static getTopicHash(t,e){e=(e||[]).map((t=>Bg.from(t)));return new Gg(Tg,t,e,!1).topicHash}static from(t){if(Gg.isFragment(t))return t;if("string"==typeof t)try{return Gg.from(mg(t))}catch(e){Ca(!1,"invalid event fragment","obj",t)}else if(t instanceof gg){const e=wg("event",t),n=_g(t,!0),r=!!bg(t,Xp(["anonymous"])).has("anonymous");return Eg(t),new Gg(Tg,e,n,r)}return new Gg(Tg,t.name,t.inputs?t.inputs.map((t=>Bg.from(t,!0))):[],!!t.anonymous)}static isFragment(t){return t&&t[Rg]===Cg}}class jg extends Ug{constructor(t,e,n,r,s){super(t,e,n),xn(this,"payable"),xn(this,"gas"),Object.defineProperty(this,Rg,{value:xg}),ka(this,{payable:r,gas:s})}format(t){if(Oa(null!=t&&"sighash"!==t,"cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),"json"===t)return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:null!=this.gas?this.gas:void 0,inputs:this.inputs.map((e=>JSON.parse(e.format(t))))});const e=[`constructor${Mg(t,this.inputs)}`];return this.payable&&e.push("payable"),null!=this.gas&&e.push(`@${this.gas.toString()}`),e.join(" ")}static from(t){if(jg.isFragment(t))return t;if("string"==typeof t)try{return jg.from(mg(t))}catch(e){Ca(!1,"invalid constuctor fragment","obj",t)}else if(t instanceof gg){bg(t,Xp(["constructor"]));const e=_g(t),n=!!bg(t,tg).has("payable"),r=vg(t);return Eg(t),new jg(Tg,"constructor",e,n,r)}return new jg(Tg,"constructor",t.inputs?t.inputs.map(Bg.from):[],!!t.payable,null!=t.gas?t.gas:null)}static isFragment(t){return t&&t[Rg]===xg}}class Hg extends Ug{constructor(t,e,n){super(t,"fallback",e),xn(this,"payable"),Object.defineProperty(this,Rg,{value:Ng}),ka(this,{payable:n})}format(t){const e=0===this.inputs.length?"receive":"fallback";if("json"===t){const t=this.payable?"payable":"nonpayable";return JSON.stringify({type:e,stateMutability:t})}return`${e}()${this.payable?" payable":""}`}static from(t){if(Hg.isFragment(t))return t;if("string"==typeof t)try{return Hg.from(mg(t))}catch(e){Ca(!1,"invalid fallback fragment","obj",t)}else if(t instanceof gg){const e=t.toString();Ca(t.peekKeyword(Xp(["fallback","receive"])),"type must be fallback or receive","obj",e);if("receive"===t.popKeyword(Xp(["fallback","receive"]))){const e=_g(t);return Ca(0===e.length,"receive cannot have arguments","obj.inputs",e),bg(t,Xp(["payable"])),Eg(t),new Hg(Tg,[],!0)}let n=_g(t);n.length?Ca(1===n.length&&"bytes"===n[0].type,"invalid fallback inputs","obj.inputs",n.map((t=>t.format("minimal"))).join(", ")):n=[Bg.from("bytes")];const r=Ag(t);if(Ca("nonpayable"===r||"payable"===r,"fallback cannot be constants","obj.stateMutability",r),bg(t,Xp(["returns"])).has("returns")){const e=_g(t);Ca(1===e.length&&"bytes"===e[0].type,"invalid fallback outputs","obj.outputs",e.map((t=>t.format("minimal"))).join(", "))}return Eg(t),new Hg(Tg,n,"payable"===r)}if("receive"===t.type)return new Hg(Tg,[],!0);if("fallback"===t.type){const e=[Bg.from("bytes")],n="payable"===t.stateMutability;return new Hg(Tg,e,n)}Ca(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[Rg]===Ng}}class Vg extends Lg{constructor(t,e,n,r,s,i){super(t,"function",e,r),xn(this,"constant"),xn(this,"outputs"),xn(this,"stateMutability"),xn(this,"payable"),xn(this,"gas"),Object.defineProperty(this,Rg,{value:Pg});ka(this,{constant:"view"===n||"pure"===n,gas:i,outputs:s=Object.freeze(s.slice()),payable:"payable"===n,stateMutability:n})}get selector(){return Rf(this.format("sighash")).substring(0,10)}format(t){if(null==t&&(t="sighash"),"json"===t)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:null!=this.gas?this.gas:void 0,inputs:this.inputs.map((e=>JSON.parse(e.format(t)))),outputs:this.outputs.map((e=>JSON.parse(e.format(t))))});const e=[];return"sighash"!==t&&e.push("function"),e.push(this.name+Mg(t,this.inputs)),"sighash"!==t&&("nonpayable"!==this.stateMutability&&e.push(this.stateMutability),this.outputs&&this.outputs.length&&(e.push("returns"),e.push(Mg(t,this.outputs))),null!=this.gas&&e.push(`@${this.gas.toString()}`)),e.join(" ")}static getSelector(t,e){e=(e||[]).map((t=>Bg.from(t)));return new Vg(Tg,t,"view",e,[],null).selector}static from(t){if(Vg.isFragment(t))return t;if("string"==typeof t)try{return Vg.from(mg(t))}catch(n){Ca(!1,"invalid function fragment","obj",t)}else if(t instanceof gg){const e=wg("function",t),n=_g(t),r=Ag(t);let s=[];bg(t,Xp(["returns"])).has("returns")&&(s=_g(t));const i=vg(t);return Eg(t),new Vg(Tg,e,r,n,s,i)}let e=t.stateMutability;return null==e&&(e="payable","boolean"==typeof t.constant?(e="view",t.constant||(e="payable","boolean"!=typeof t.payable||t.payable||(e="nonpayable"))):"boolean"!=typeof t.payable||t.payable||(e="nonpayable")),new Vg(Tg,t.name,e,t.inputs?t.inputs.map(Bg.from):[],t.outputs?t.outputs.map(Bg.from):[],null!=t.gas?t.gas:null)}static isFragment(t){return t&&t[Rg]===Pg}}class Wg extends Lg{constructor(t,e,n){super(t,"struct",e,n),Object.defineProperty(this,Rg,{value:Dg})}format(){throw new Error("@TODO")}static from(t){if("string"==typeof t)try{return Wg.from(mg(t))}catch(e){Ca(!1,"invalid struct fragment","obj",t)}else if(t instanceof gg){const e=wg("struct",t),n=_g(t);return Eg(t),new Wg(Tg,e,n)}return new Wg(Tg,t.name,t.inputs?t.inputs.map(Bg.from):[])}static isFragment(t){return t&&t[Rg]===Dg}}const Kg=new Map;Kg.set(0,"GENERIC_PANIC"),Kg.set(1,"ASSERT_FALSE"),Kg.set(17,"OVERFLOW"),Kg.set(18,"DIVIDE_BY_ZERO"),Kg.set(33,"ENUM_RANGE_ERROR"),Kg.set(34,"BAD_STORAGE_DATA"),Kg.set(49,"STACK_UNDERFLOW"),Kg.set(50,"ARRAY_RANGE_ERROR"),Kg.set(65,"OUT_OF_MEMORY"),Kg.set(81,"UNINITIALIZED_FUNCTION_CALL");const zg=new RegExp(/^bytes([0-9]*)$/),qg=new RegExp(/^(u?int)([0-9]*)$/);let $g=null,Qg=1024;Et=new WeakSet,kt=function(t){if(t.isArray())return new Vd(Ln(this,Et,kt).call(this,t.arrayChildren),t.arrayLength,t.name);if(t.isTuple())return new ef(t.components.map((t=>Ln(this,Et,kt).call(this,t))),t.name);switch(t.baseType){case"address":return new Fd(t.name);case"bool":return new Wd(t.name);case"string":return new tf(t.name);case"bytes":return new zd(t.name);case"":return new Qd(t.name)}let e=t.type.match(qg);if(e){let n=parseInt(e[2]||"256");return Ca(0!==n&&n<=256&&n%8==0,"invalid "+e[1]+" bit length","param",t),new Xd(n/8,"int"===e[1],t.name)}if(e=t.type.match(zg),e){let n=parseInt(e[1]);return Ca(0!==n&&n<=32,"invalid bytes length","param",t),new qd(n,t.name)}Ca(!1,"invalid type","type",t.type)};let Jg=class t{constructor(){Dn(this,Et)}getDefaultValue(t){const e=t.map((t=>Ln(this,Et,kt).call(this,Bg.from(t))));return new ef(e,"_").defaultValue()}encode(t,e){xa(e.length,t.length,"types/values length mismatch");const n=t.map((t=>Ln(this,Et,kt).call(this,Bg.from(t)))),r=new ef(n,"_"),s=new nl;return r.encode(s,e),s.data}decode(t,e,n){const r=t.map((t=>Ln(this,Et,kt).call(this,Bg.from(t))));return new ef(r,"_").decode(new rl(e,n,Qg))}static _setDefaultMaxInflation(t){Ca("number"==typeof t&&Number.isInteger(t),"invalid defaultMaxInflation factor","value",t),Qg=t}static defaultAbiCoder(){return null==$g&&($g=new t),$g}static getBuiltinCallException(e,n,r){return function(t,e,n,r){let s="missing revert data",i=null,o=null;if(n){s="execution reverted";const t=Ua(n);if(n=ja(n),0===t.length)s+=" (no data present; likely require(false) occurred",i="require(false)";else if(t.length%32!=4)s+=" (could not decode reason; invalid data length)";else if("0x08c379a0"===ja(t.slice(0,4)))try{i=r.decode(["string"],t.slice(4))[0],o={signature:"Error(string)",name:"Error",args:[i]},s+=`: ${JSON.stringify(i)}`}catch(c){s+=" (could not decode reason; invalid string data)"}else if("0x4e487b71"===ja(t.slice(0,4)))try{const e=Number(r.decode(["uint256"],t.slice(4))[0]);o={signature:"Panic(uint256)",name:"Panic",args:[e]},i=`Panic due to ${Kg.get(e)||"UNKNOWN"}(${e})`,s+=`: ${i}`}catch(c){s+=" (could not decode panic code)"}else s+=" (unknown custom error)"}const a={to:e.to?Cd(e.to):null,data:e.data||"0x"};return e.from&&(a.from=Cd(e.from)),Ia(s,"CALL_EXCEPTION",{action:t,data:n,reason:i,transaction:a,invocation:null,revert:o})}(e,n,r,t.defaultAbiCoder())}};class Yg{constructor(t,e,n){xn(this,"fragment"),xn(this,"name"),xn(this,"signature"),xn(this,"topic"),xn(this,"args");const r=t.name,s=t.format();ka(this,{fragment:t,name:r,signature:s,topic:e,args:n})}}class Zg{constructor(t,e,n,r){xn(this,"fragment"),xn(this,"name"),xn(this,"args"),xn(this,"signature"),xn(this,"selector"),xn(this,"value");const s=t.name,i=t.format();ka(this,{fragment:t,name:s,args:n,signature:i,selector:e,value:r})}}class Xg{constructor(t,e,n){xn(this,"fragment"),xn(this,"name"),xn(this,"args"),xn(this,"signature"),xn(this,"selector");const r=t.name,s=t.format();ka(this,{fragment:t,name:r,args:n,signature:s,selector:e})}}class tm{constructor(t){xn(this,"hash"),xn(this,"_isIndexed"),ka(this,{hash:t,_isIndexed:!0})}static isIndexed(t){return!(!t||!t._isIndexed)}}const em={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"},nm={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:t=>`reverted with reason string ${JSON.stringify(t)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:t=>{let e="unknown panic code";return t>=0&&t<=255&&em[t.toString()]&&(e=em[t.toString()]),`reverted with panic code 0x${t.toString(16)} (${e})`}}};St=new WeakMap,Tt=new WeakMap,Rt=new WeakMap,It=new WeakMap,Ot=new WeakSet,Ct=function(t,e,n){if(Ma(t)){const e=t.toLowerCase();for(const t of Pn(this,Rt).values())if(e===t.selector)return t;return null}if(-1===t.indexOf("(")){const r=[];for(const[e,n]of Pn(this,Rt))e.split("(")[0]===t&&r.push(n);if(e){const t=e.length>0?e[e.length-1]:null;let n=e.length,s=!0;Md.isTyped(t)&&"overrides"===t.type&&(s=!1,n--);for(let e=r.length-1;e>=0;e--){const t=r[e].inputs.length;t===n||s&&t===n-1||r.splice(e,1)}for(let i=r.length-1;i>=0;i--){const t=r[i].inputs;for(let n=0;n<e.length;n++)if(Md.isTyped(e[n])){if(n>=t.length){if("overrides"===e[n].type)continue;r.splice(i,1);break}if(e[n].type!==t[n].baseType){r.splice(i,1);break}}}}if(1===r.length&&e&&e.length!==r[0].inputs.length){const t=e[e.length-1];(null==t||Array.isArray(t)||"object"!=typeof t)&&r.splice(0,1)}if(0===r.length)return null;if(r.length>1&&n){Ca(!1,`ambiguous function description (i.e. matches ${r.map((t=>JSON.stringify(t.format()))).join(", ")})`,"key",t)}return r[0]}const r=Pn(this,Rt).get(Vg.from(t).format());return r||null},xt=new WeakSet,Nt=function(t,e,n){if(Ma(t)){const e=t.toLowerCase();for(const t of Pn(this,Tt).values())if(e===t.topicHash)return t;return null}if(-1===t.indexOf("(")){const r=[];for(const[e,n]of Pn(this,Tt))e.split("(")[0]===t&&r.push(n);if(e){for(let t=r.length-1;t>=0;t--)r[t].inputs.length<e.length&&r.splice(t,1);for(let t=r.length-1;t>=0;t--){const n=r[t].inputs;for(let s=0;s<e.length;s++)if(Md.isTyped(e[s])&&e[s].type!==n[s].baseType){r.splice(t,1);break}}}if(0===r.length)return null;if(r.length>1&&n){Ca(!1,`ambiguous event description (i.e. matches ${r.map((t=>JSON.stringify(t.format()))).join(", ")})`,"key",t)}return r[0]}const r=Pn(this,Tt).get(Gg.from(t).format());return r||null};let rm=class t{constructor(t){Dn(this,Ot),Dn(this,xt),xn(this,"fragments"),xn(this,"deploy"),xn(this,"fallback"),xn(this,"receive"),Dn(this,St,void 0),Dn(this,Tt,void 0),Dn(this,Rt,void 0),Dn(this,It,void 0);let e=[];e="string"==typeof t?JSON.parse(t):t,Bn(this,Rt,new Map),Bn(this,St,new Map),Bn(this,Tt,new Map);const n=[];for(const o of e)try{n.push(Ug.from(o))}catch(i){console.log(`[Warning] Invalid Fragment ${JSON.stringify(o)}:`,i.message)}ka(this,{fragments:Object.freeze(n)});let r=null,s=!1;Bn(this,It,this.getAbiCoder()),this.fragments.forEach(((t,e)=>{let n;switch(t.type){case"constructor":return this.deploy?void console.log("duplicate definition - constructor"):void ka(this,{deploy:t});case"fallback":return void(0===t.inputs.length?s=!0:(Ca(!r||t.payable!==r.payable,"conflicting fallback fragments",`fragments[${e}]`,t),r=t,s=r.payable));case"function":n=Pn(this,Rt);break;case"event":n=Pn(this,Tt);break;case"error":n=Pn(this,St);break;default:return}const i=t.format();n.has(i)||n.set(i,t)})),this.deploy||ka(this,{deploy:jg.from("constructor()")}),ka(this,{fallback:r,receive:s})}format(t){const e=t?"minimal":"full";return this.fragments.map((t=>t.format(e)))}formatJson(){const t=this.fragments.map((t=>t.format("json")));return JSON.stringify(t.map((t=>JSON.parse(t))))}getAbiCoder(){return Jg.defaultAbiCoder()}getFunctionName(t){const e=Ln(this,Ot,Ct).call(this,t,null,!1);return Ca(e,"no matching function","key",t),e.name}hasFunction(t){return!!Ln(this,Ot,Ct).call(this,t,null,!1)}getFunction(t,e){return Ln(this,Ot,Ct).call(this,t,e||null,!0)}forEachFunction(t){const e=Array.from(Pn(this,Rt).keys());e.sort(((t,e)=>t.localeCompare(e)));for(let n=0;n<e.length;n++){const r=e[n];t(Pn(this,Rt).get(r),n)}}getEventName(t){const e=Ln(this,xt,Nt).call(this,t,null,!1);return Ca(e,"no matching event","key",t),e.name}hasEvent(t){return!!Ln(this,xt,Nt).call(this,t,null,!1)}getEvent(t,e){return Ln(this,xt,Nt).call(this,t,e||null,!0)}forEachEvent(t){const e=Array.from(Pn(this,Tt).keys());e.sort(((t,e)=>t.localeCompare(e)));for(let n=0;n<e.length;n++){const r=e[n];t(Pn(this,Tt).get(r),n)}}getError(t,e){if(Ma(t)){const e=t.toLowerCase();if(nm[e])return Fg.from(nm[e].signature);for(const t of Pn(this,St).values())if(e===t.selector)return t;return null}if(-1===t.indexOf("(")){const e=[];for(const[n,r]of Pn(this,St))n.split("(")[0]===t&&e.push(r);if(0===e.length)return"Error"===t?Fg.from("error Error(string)"):"Panic"===t?Fg.from("error Panic(uint256)"):null;if(e.length>1){Ca(!1,`ambiguous error description (i.e. ${e.map((t=>JSON.stringify(t.format()))).join(", ")})`,"name",t)}return e[0]}if("Error(string)"===(t=Fg.from(t).format()))return Fg.from("error Error(string)");if("Panic(uint256)"===t)return Fg.from("error Panic(uint256)");const n=Pn(this,St).get(t);return n||null}forEachError(t){const e=Array.from(Pn(this,St).keys());e.sort(((t,e)=>t.localeCompare(e)));for(let n=0;n<e.length;n++){const r=e[n];t(Pn(this,St).get(r),n)}}_decodeParams(t,e){return Pn(this,It).decode(t,e)}_encodeParams(t,e){return Pn(this,It).encode(t,e)}encodeDeploy(t){return this._encodeParams(this.deploy.inputs,t||[])}decodeErrorResult(t,e){if("string"==typeof t){const e=this.getError(t);Ca(e,"unknown error","fragment",t),t=e}return Ca(Wa(e,0,4)===t.selector,`data signature does not match error ${t.name}.`,"data",e),this._decodeParams(t.inputs,Wa(e,4))}encodeErrorResult(t,e){if("string"==typeof t){const e=this.getError(t);Ca(e,"unknown error","fragment",t),t=e}return Ha([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionData(t,e){if("string"==typeof t){const e=this.getFunction(t);Ca(e,"unknown function","fragment",t),t=e}return Ca(Wa(e,0,4)===t.selector,`data signature does not match function ${t.name}.`,"data",e),this._decodeParams(t.inputs,Wa(e,4))}encodeFunctionData(t,e){if("string"==typeof t){const e=this.getFunction(t);Ca(e,"unknown function","fragment",t),t=e}return Ha([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionResult(t,e){if("string"==typeof t){const e=this.getFunction(t);Ca(e,"unknown function","fragment",t),t=e}let n="invalid length for result data";const r=La(e);if(r.length%32==0)try{return Pn(this,It).decode(t.outputs,r)}catch(s){n="could not decode result data"}Oa(!1,n,"BAD_DATA",{value:ja(r),info:{method:t.name,signature:t.format()}})}makeError(t,e){const n=Ua(t,"data"),r=Jg.getBuiltinCallException("call",e,n);if(r.message.startsWith("execution reverted (unknown custom error)")){const t=ja(n.slice(0,4)),e=this.getError(t);if(e)try{const t=Pn(this,It).decode(e.inputs,n.slice(4));r.revert={name:e.name,signature:e.format(),args:t},r.reason=r.revert.signature,r.message=`execution reverted: ${r.reason}`}catch(i){r.message="execution reverted (coult not decode custom error)"}}const s=this.parseTransaction(e);return s&&(r.invocation={method:s.name,signature:s.signature,args:s.args}),r}encodeFunctionResult(t,e){if("string"==typeof t){const e=this.getFunction(t);Ca(e,"unknown function","fragment",t),t=e}return ja(Pn(this,It).encode(t.outputs,e||[]))}encodeFilterTopics(t,e){if("string"==typeof t){const e=this.getEvent(t);Ca(e,"unknown event","eventFragment",t),t=e}Oa(e.length<=t.inputs.length,`too many arguments for ${t.format()}`,"UNEXPECTED_ARGUMENT",{count:e.length,expectedCount:t.inputs.length});const n=[];t.anonymous||n.push(t.topicHash);const r=(t,e)=>"string"===t.type?Rf(e):"bytes"===t.type?yu(ja(e)):("bool"===t.type&&"boolean"==typeof e?e=e?"0x01":"0x00":t.type.match(/^u?int/)?e=sc(e):t.type.match(/^bytes/)?e=qa(e,32):"address"===t.type&&Pn(this,It).encode(["address"],[e]),za(ja(e),32));for(e.forEach(((e,s)=>{const i=t.inputs[s];i.indexed?null==e?n.push(null):"array"===i.baseType||"tuple"===i.baseType?Ca(!1,"filtering with tuples or arrays not supported","contract."+i.name,e):Array.isArray(e)?n.push(e.map((t=>r(i,t)))):n.push(r(i,e)):Ca(null==e,"cannot filter non-indexed parameters; must be null","contract."+i.name,e)}));n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(t,e){if("string"==typeof t){const e=this.getEvent(t);Ca(e,"unknown event","eventFragment",t),t=e}const n=[],r=[],s=[];return t.anonymous||n.push(t.topicHash),Ca(e.length===t.inputs.length,"event arguments/values mismatch","values",e),t.inputs.forEach(((t,i)=>{const o=e[i];if(t.indexed)if("string"===t.type)n.push(Rf(o));else if("bytes"===t.type)n.push(yu(o));else{if("tuple"===t.baseType||"array"===t.baseType)throw new Error("not implemented");n.push(Pn(this,It).encode([t.type],[o]))}else r.push(t),s.push(o)})),{data:Pn(this,It).encode(r,s),topics:n}}decodeEventLog(t,e,n){if("string"==typeof t){const e=this.getEvent(t);Ca(e,"unknown event","eventFragment",t),t=e}if(null!=n&&!t.anonymous){const e=t.topicHash;Ca(Ma(n[0],32)&&n[0].toLowerCase()===e,"fragment/topic mismatch","topics[0]",n[0]),n=n.slice(1)}const r=[],s=[],i=[];t.inputs.forEach(((t,e)=>{t.indexed?"string"===t.type||"bytes"===t.type||"tuple"===t.baseType||"array"===t.baseType?(r.push(Bg.from({type:"bytes32",name:t.name})),i.push(!0)):(r.push(t),i.push(!1)):(s.push(t),i.push(!1))}));const o=null!=n?Pn(this,It).decode(r,Ha(n)):null,a=Pn(this,It).decode(s,e,!0),c=[],l=[];let u=0,h=0;return t.inputs.forEach(((t,e)=>{let n=null;if(t.indexed)if(null==o)n=new tm(null);else if(i[e])n=new tm(o[h++]);else try{n=o[h++]}catch(r){n=r}else try{n=a[u++]}catch(r){n=r}c.push(n),l.push(t.name||null)})),Xc.fromItems(c,l)}parseTransaction(t){const e=Ua(t.data,"tx.data"),n=Xa(null!=t.value?t.value:0,"tx.value"),r=this.getFunction(ja(e.slice(0,4)));if(!r)return null;const s=Pn(this,It).decode(r.inputs,e.slice(4));return new Zg(r,r.selector,s,n)}parseCallResult(t){throw new Error("@TODO")}parseLog(t){const e=this.getEvent(t.topics[0]);return!e||e.anonymous?null:new Yg(e,e.topicHash,this.decodeEventLog(e,t.data,t.topics))}parseError(t){const e=ja(t),n=this.getError(Wa(e,0,4));if(!n)return null;const r=Pn(this,It).decode(n.inputs,Wa(e,4));return new Xg(n,n.selector,r)}static from(e){return e instanceof t?e:"string"==typeof e?new t(JSON.parse(e)):"function"==typeof e.formatJson?new t(e.formatJson()):"function"==typeof e.format?new t(e.format("json")):new t(e)}};const sm=BigInt(0);function im(t){return null==t?null:t}function om(t){return null==t?null:t.toString()}class am{constructor(t,e,n){xn(this,"gasPrice"),xn(this,"maxFeePerGas"),xn(this,"maxPriorityFeePerGas"),ka(this,{gasPrice:im(t),maxFeePerGas:im(e),maxPriorityFeePerGas:im(n)})}toJSON(){const{gasPrice:t,maxFeePerGas:e,maxPriorityFeePerGas:n}=this;return{_type:"FeeData",gasPrice:om(t),maxFeePerGas:om(e),maxPriorityFeePerGas:om(n)}}}function cm(t){const e={};t.to&&(e.to=t.to),t.from&&(e.from=t.from),t.data&&(e.data=ja(t.data));const n="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const s of n)s in t&&null!=t[s]&&(e[s]=Xa(t[s],`request.${s}`));const r="type,nonce".split(/,/);for(const s of r)s in t&&null!=t[s]&&(e[s]=rc(t[s],`request.${s}`));return t.accessList&&(e.accessList=rf(t.accessList)),t.authorizationList&&(e.authorizationList=t.authorizationList.slice()),"blockTag"in t&&(e.blockTag=t.blockTag),"enableCcipRead"in t&&(e.enableCcipRead=!!t.enableCcipRead),"customData"in t&&(e.customData=t.customData),"blobVersionedHashes"in t&&t.blobVersionedHashes&&(e.blobVersionedHashes=t.blobVersionedHashes.slice()),"kzg"in t&&(e.kzg=t.kzg),"blobWrapperVersion"in t&&(e.blobWrapperVersion=t.blobWrapperVersion),"blobs"in t&&t.blobs&&(e.blobs=t.blobs.map((t=>Fa(t)?ja(t):Object.assign({},t)))),e}class lm{constructor(t,e){xn(this,"provider"),xn(this,"number"),xn(this,"hash"),xn(this,"timestamp"),xn(this,"parentHash"),xn(this,"parentBeaconBlockRoot"),xn(this,"nonce"),xn(this,"difficulty"),xn(this,"gasLimit"),xn(this,"gasUsed"),xn(this,"stateRoot"),xn(this,"receiptsRoot"),xn(this,"transactionsRoot"),xn(this,"blobGasUsed"),xn(this,"excessBlobGas"),xn(this,"miner"),xn(this,"prevRandao"),xn(this,"extraData"),xn(this,"baseFeePerGas"),Dn(this,Pt,void 0),Bn(this,Pt,t.transactions.map((t=>"string"!=typeof t?new dm(t,e):t))),ka(this,{provider:e,hash:im(t.hash),number:t.number,timestamp:t.timestamp,parentHash:t.parentHash,parentBeaconBlockRoot:t.parentBeaconBlockRoot,nonce:t.nonce,difficulty:t.difficulty,gasLimit:t.gasLimit,gasUsed:t.gasUsed,blobGasUsed:t.blobGasUsed,excessBlobGas:t.excessBlobGas,miner:t.miner,prevRandao:im(t.prevRandao),extraData:t.extraData,baseFeePerGas:im(t.baseFeePerGas),stateRoot:t.stateRoot,receiptsRoot:t.receiptsRoot,transactionsRoot:t.transactionsRoot})}get transactions(){return Pn(this,Pt).map((t=>"string"==typeof t?t:t.hash))}get prefetchedTransactions(){const t=Pn(this,Pt).slice();return 0===t.length?[]:(Oa("object"==typeof t[0],"transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),t)}toJSON(){const{baseFeePerGas:t,difficulty:e,extraData:n,gasLimit:r,gasUsed:s,hash:i,miner:o,prevRandao:a,nonce:c,number:l,parentHash:u,parentBeaconBlockRoot:h,stateRoot:d,receiptsRoot:f,transactionsRoot:p,timestamp:g,transactions:m}=this;return{_type:"Block",baseFeePerGas:om(t),difficulty:om(e),extraData:n,gasLimit:om(r),gasUsed:om(s),blobGasUsed:om(this.blobGasUsed),excessBlobGas:om(this.excessBlobGas),hash:i,miner:o,prevRandao:a,nonce:c,number:l,parentHash:u,timestamp:g,parentBeaconBlockRoot:h,stateRoot:d,receiptsRoot:f,transactionsRoot:p,transactions:m}}[Symbol.iterator](){let t=0;const e=this.transactions;return{next:()=>t<this.length?{value:e[t++],done:!1}:{value:void 0,done:!0}}}get length(){return Pn(this,Pt).length}get date(){return null==this.timestamp?null:new Date(1e3*this.timestamp)}async getTransaction(t){let e;if("number"==typeof t)e=Pn(this,Pt)[t];else{const n=t.toLowerCase();for(const t of Pn(this,Pt)){if("string"==typeof t){if(t!==n)continue;e=t;break}if(t.hash===n){e=t;break}}}if(null==e)throw new Error("no such tx");return"string"==typeof e?await this.provider.getTransaction(e):e}getPrefetchedTransaction(t){const e=this.prefetchedTransactions;if("number"==typeof t)return e[t];t=t.toLowerCase();for(const n of e)if(n.hash===t)return n;Ca(!1,"no matching transaction","indexOrHash",t)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw new Error("");return{orphan:"drop-block",hash:(t=this).hash,number:t.number};var t}}Pt=new WeakMap;class um{constructor(t,e){xn(this,"provider"),xn(this,"transactionHash"),xn(this,"blockHash"),xn(this,"blockNumber"),xn(this,"removed"),xn(this,"address"),xn(this,"data"),xn(this,"topics"),xn(this,"index"),xn(this,"transactionIndex"),this.provider=e;const n=Object.freeze(t.topics.slice());ka(this,{transactionHash:t.transactionHash,blockHash:t.blockHash,blockNumber:t.blockNumber,removed:t.removed,address:t.address,data:t.data,topics:n,index:t.index,transactionIndex:t.transactionIndex})}toJSON(){const{address:t,blockHash:e,blockNumber:n,data:r,index:s,removed:i,topics:o,transactionHash:a,transactionIndex:c}=this;return{_type:"log",address:t,blockHash:e,blockNumber:n,data:r,index:s,removed:i,topics:o,transactionHash:a,transactionIndex:c}}async getBlock(){const t=await this.provider.getBlock(this.blockHash);return Oa(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransaction(){const t=await this.provider.getTransaction(this.transactionHash);return Oa(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransactionReceipt(){const t=await this.provider.getTransactionReceipt(this.transactionHash);return Oa(!!t,"failed to find transaction receipt","UNKNOWN_ERROR",{}),t}removedEvent(){return{orphan:"drop-log",log:{transactionHash:(t=this).transactionHash,blockHash:t.blockHash,blockNumber:t.blockNumber,address:t.address,data:t.data,topics:Object.freeze(t.topics.slice()),index:t.index}};var t}}class hm{constructor(t,e){xn(this,"provider"),xn(this,"to"),xn(this,"from"),xn(this,"contractAddress"),xn(this,"hash"),xn(this,"index"),xn(this,"blockHash"),xn(this,"blockNumber"),xn(this,"logsBloom"),xn(this,"gasUsed"),xn(this,"blobGasUsed"),xn(this,"cumulativeGasUsed"),xn(this,"gasPrice"),xn(this,"blobGasPrice"),xn(this,"type"),xn(this,"status"),xn(this,"root"),Dn(this,Dt,void 0),Bn(this,Dt,Object.freeze(t.logs.map((t=>new um(t,e)))));let n=sm;null!=t.effectiveGasPrice?n=t.effectiveGasPrice:null!=t.gasPrice&&(n=t.gasPrice),ka(this,{provider:e,to:t.to,from:t.from,contractAddress:t.contractAddress,hash:t.hash,index:t.index,blockHash:t.blockHash,blockNumber:t.blockNumber,logsBloom:t.logsBloom,gasUsed:t.gasUsed,cumulativeGasUsed:t.cumulativeGasUsed,blobGasUsed:t.blobGasUsed,gasPrice:n,blobGasPrice:t.blobGasPrice,type:t.type,status:t.status,root:t.root})}get logs(){return Pn(this,Dt)}toJSON(){const{to:t,from:e,contractAddress:n,hash:r,index:s,blockHash:i,blockNumber:o,logsBloom:a,logs:c,status:l,root:u}=this;return{_type:"TransactionReceipt",blockHash:i,blockNumber:o,contractAddress:n,cumulativeGasUsed:om(this.cumulativeGasUsed),from:e,gasPrice:om(this.gasPrice),blobGasUsed:om(this.blobGasUsed),blobGasPrice:om(this.blobGasPrice),gasUsed:om(this.gasUsed),hash:r,index:s,logs:c,logsBloom:a,root:u,status:l,to:t}}get length(){return this.logs.length}[Symbol.iterator](){let t=0;return{next:()=>t<this.length?{value:this.logs[t++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){const t=await this.provider.getBlock(this.blockHash);if(null==t)throw new Error("TODO");return t}async getTransaction(){const t=await this.provider.getTransaction(this.hash);if(null==t)throw new Error("TODO");return t}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return pm(this)}reorderedEvent(t){return Oa(!t||t.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),fm(this,t)}}Dt=new WeakMap;Bt=new WeakMap;let dm=class t{constructor(t,e){xn(this,"provider"),xn(this,"blockNumber"),xn(this,"blockHash"),xn(this,"index"),xn(this,"hash"),xn(this,"type"),xn(this,"to"),xn(this,"from"),xn(this,"nonce"),xn(this,"gasLimit"),xn(this,"gasPrice"),xn(this,"maxPriorityFeePerGas"),xn(this,"maxFeePerGas"),xn(this,"maxFeePerBlobGas"),xn(this,"data"),xn(this,"value"),xn(this,"chainId"),xn(this,"signature"),xn(this,"accessList"),xn(this,"blobVersionedHashes"),xn(this,"authorizationList"),Dn(this,Bt,void 0),this.provider=e,this.blockNumber=null!=t.blockNumber?t.blockNumber:null,this.blockHash=null!=t.blockHash?t.blockHash:null,this.hash=t.hash,this.index=t.index,this.type=t.type,this.from=t.from,this.to=t.to||null,this.gasLimit=t.gasLimit,this.nonce=t.nonce,this.data=t.data,this.value=t.value,this.gasPrice=t.gasPrice,this.maxPriorityFeePerGas=null!=t.maxPriorityFeePerGas?t.maxPriorityFeePerGas:null,this.maxFeePerGas=null!=t.maxFeePerGas?t.maxFeePerGas:null,this.maxFeePerBlobGas=null!=t.maxFeePerBlobGas?t.maxFeePerBlobGas:null,this.chainId=t.chainId,this.signature=t.signature,this.accessList=null!=t.accessList?t.accessList:null,this.blobVersionedHashes=null!=t.blobVersionedHashes?t.blobVersionedHashes:null,this.authorizationList=null!=t.authorizationList?t.authorizationList:null,Bn(this,Bt,-1)}toJSON(){const{blockNumber:t,blockHash:e,index:n,hash:r,type:s,to:i,from:o,nonce:a,data:c,signature:l,accessList:u,blobVersionedHashes:h}=this;return{_type:"TransactionResponse",accessList:u,blockNumber:t,blockHash:e,blobVersionedHashes:h,chainId:om(this.chainId),data:c,from:o,gasLimit:om(this.gasLimit),gasPrice:om(this.gasPrice),hash:r,maxFeePerGas:om(this.maxFeePerGas),maxPriorityFeePerGas:om(this.maxPriorityFeePerGas),maxFeePerBlobGas:om(this.maxFeePerBlobGas),nonce:a,signature:l,to:i,index:n,type:s,value:om(this.value)}}async getBlock(){let t=this.blockNumber;if(null==t){const e=await this.getTransaction();e&&(t=e.blockNumber)}if(null==t)return null;const e=this.provider.getBlock(t);if(null==e)throw new Error("TODO");return e}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(null==this.blockNumber){const{tx:t,blockNumber:e}=await Ea({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});return null==t||null==t.blockNumber?0:e-t.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(t,e){const n=null==t?1:t,r=null==e?0:e;let s=Pn(this,Bt),i=-1,o=-1===s;const a=async()=>{if(o)return null;const{blockNumber:t,nonce:e}=await Ea({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(e<this.nonce)return void(s=t);if(o)return null;const r=await this.getTransaction();if(!r||null==r.blockNumber)for(-1===i&&(i=s-3,i<Pn(this,Bt)&&(i=Pn(this,Bt)));i<=t;){if(o)return null;const e=await this.provider.getBlock(i,!0);if(null==e)return;for(const t of e)if(t===this.hash)return;for(let r=0;r<e.length;r++){const i=await e.getTransaction(r);if(i.from===this.from&&i.nonce===this.nonce){if(o)return null;const e=await this.provider.getTransactionReceipt(i.hash);if(null==e)return;if(t-e.blockNumber+1<n)return;let r="replaced";i.data===this.data&&i.to===this.to&&i.value===this.value?r="repriced":"0x"===i.data&&i.from===i.to&&i.value===sm&&(r="cancelled"),Oa(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:"replaced"===r||"cancelled"===r,reason:r,replacement:i.replaceableTransaction(s),hash:i.hash,receipt:e})}}i++}},c=t=>{if(null==t||0!==t.status)return t;Oa(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:t.to,from:t.from,data:""},receipt:t})},l=await this.provider.getTransactionReceipt(this.hash);if(0===n)return c(l);if(l){if(1===n||await l.confirmations()>=n)return c(l)}else if(await a(),0===n)return null;const u=new Promise(((t,e)=>{const i=[],l=()=>{i.forEach((t=>t()))};if(i.push((()=>{o=!0})),r>0){const t=setTimeout((()=>{l(),e(Ia("wait for transaction timeout","TIMEOUT"))}),r);i.push((()=>{clearTimeout(t)}))}const u=async r=>{if(await r.confirmations()>=n){l();try{t(c(r))}catch(s){e(s)}}};if(i.push((()=>{this.provider.off(this.hash,u)})),this.provider.on(this.hash,u),s>=0){const t=async()=>{try{await a()}catch(n){if(Ta(n,"TRANSACTION_REPLACED"))return l(),void e(n)}o||this.provider.once("block",t)};i.push((()=>{this.provider.off("block",t)})),this.provider.once("block",t)}}));return await u}isMined(){return null!=this.blockHash}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}removedEvent(){return Oa(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),pm(this)}reorderedEvent(t){return Oa(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Oa(!t||t.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),fm(this,t)}replaceableTransaction(e){Ca(Number.isInteger(e)&&e>=0,"invalid startBlock","startBlock",e);const n=new t(this,this.provider);return Bn(n,Bt,e),n}};function fm(t,e){return{orphan:"reorder-transaction",tx:t,other:e}}function pm(t){return{orphan:"drop-transaction",tx:t}}class gm extends um{constructor(t,e,n){super(t,t.provider),xn(this,"interface"),xn(this,"fragment"),xn(this,"args");ka(this,{args:e.decodeEventLog(n,t.data,t.topics),fragment:n,interface:e})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class mm extends um{constructor(t,e){super(t,t.provider),xn(this,"error"),ka(this,{error:e})}}class ym extends hm{constructor(t,e,n){super(n,e),Dn(this,Ut,void 0),Bn(this,Ut,t)}get logs(){return super.logs.map((t=>{const e=t.topics.length?Pn(this,Ut).getEvent(t.topics[0]):null;if(e)try{return new gm(t,Pn(this,Ut),e)}catch(n){return new mm(t,n)}return t}))}}Ut=new WeakMap;class wm extends dm{constructor(t,e,n){super(n,e),Dn(this,Lt,void 0),Bn(this,Lt,t)}async wait(t,e){const n=await super.wait(t,e);return null==n?null:new ym(Pn(this,Lt),this.provider,n)}}Lt=new WeakMap;class bm extends fc{constructor(t,e,n,r){super(t,e,n),xn(this,"log"),ka(this,{log:r})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class Am extends bm{constructor(t,e,n,r,s){super(t,e,n,new gm(s,t.interface,r));ka(this,{args:t.interface.decodeEventLog(r,this.log.data,this.log.topics),fragment:r})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const _m=BigInt(0);function vm(t){return t&&"function"==typeof t.call}function Em(t){return t&&"function"==typeof t.estimateGas}function km(t){return t&&"function"==typeof t.resolveName}function Sm(t){return t&&"function"==typeof t.sendTransaction}function Tm(t){if(null!=t){if(km(t))return t;if(t.provider)return t.provider}}class Rm{constructor(t,e,n){if(Dn(this,Mt,void 0),xn(this,"fragment"),ka(this,{fragment:e}),e.inputs.length<n.length)throw new Error("too many arguments");const r=Im(t.runner,"resolveName"),s=km(r)?r:null;Bn(this,Mt,async function(){const r=await Promise.all(e.inputs.map(((t,e)=>null==n[e]?null:t.walkAsync(n[e],((t,e)=>"address"===t?Array.isArray(e)?Promise.all(e.map((t=>Pd(t,s)))):Pd(e,s):e)))));return t.interface.encodeFilterTopics(e,r)}())}getTopicFilter(){return Pn(this,Mt)}}function Im(t,e){return null==t?null:"function"==typeof t[e]?t:t.provider&&"function"==typeof t.provider[e]?t.provider:null}function Om(t){return null==t?null:t.provider||null}async function Cm(t,e){const n=Md.dereference(t,"overrides");Ca("object"==typeof n,"invalid overrides parameter","overrides",t);const r=cm(n);return Ca(null==r.to||(e||[]).indexOf("to")>=0,"cannot override to","overrides.to",r.to),Ca(null==r.data||(e||[]).indexOf("data")>=0,"cannot override data","overrides.data",r.data),r.from&&(r.from=r.from),r}function xm(t){const e=async function(e){const n=await Cm(e,["data"]);n.to=await t.getAddress(),n.from&&(n.from=await Pd(n.from,Tm(t.runner)));const r=t.interface,s=Xa(n.value||_m,"overrides.value")===_m,i="0x"===(n.data||"0x");!r.fallback||r.fallback.payable||!r.receive||i||s||Ca(!1,"cannot send data to receive or send value to non-payable fallback","overrides",e),Ca(r.fallback||i,"cannot send data to receive-only contract","overrides.data",n.data);return Ca(r.receive||r.fallback&&r.fallback.payable||s,"cannot send value to non-payable fallback","overrides.value",n.value),Ca(r.fallback||i,"cannot send data to receive-only contract","overrides.data",n.data),n},n=async function(n){const r=t.runner;Oa(Sm(r),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const s=await r.sendTransaction(await e(n)),i=Om(t.runner);return new wm(t.interface,i,s)},r=async t=>await n(t);return ka(r,{_contract:t,estimateGas:async function(n){const r=Im(t.runner,"estimateGas");return Oa(Em(r),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await r.estimateGas(await e(n))},populateTransaction:e,send:n,staticCall:async function(n){const r=Im(t.runner,"call");Oa(vm(r),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const s=await e(n);try{return await r.call(s)}catch(i){if(Ra(i)&&i.data)throw t.interface.makeError(i.data,s);throw i}}}),r}function Nm(t,e){const n=function(...n){const r=t.interface.getFunction(e,n);return Oa(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:n}}),r},r=async function(...e){const r=n(...e);let s={};if(r.inputs.length+1===e.length&&(s=await Cm(e.pop()),s.from&&(s.from=await Pd(s.from,Tm(t.runner)))),r.inputs.length!==e.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const i=await async function(t,e,n){const r=Im(t,"resolveName"),s=km(r)?r:null;return await Promise.all(e.map(((t,e)=>t.walkAsync(n[e],((t,e)=>(e=Md.dereference(e,t),"address"===t?Pd(e,s):e))))))}(t.runner,r.inputs,e);return Object.assign({},s,await Ea({to:t.getAddress(),data:t.interface.encodeFunctionData(r,i)}))},s=async function(...t){const e=await o(...t);return 1===e.length?e[0]:e},i=async function(...e){const n=t.runner;Oa(Sm(n),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const s=await n.sendTransaction(await r(...e)),i=Om(t.runner);return new wm(t.interface,i,s)},o=async function(...e){const s=Im(t.runner,"call");Oa(vm(s),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const i=await r(...e);let o="0x";try{o=await s.call(i)}catch(c){if(Ra(c)&&c.data)throw t.interface.makeError(c.data,i);throw c}const a=n(...e);return t.interface.decodeFunctionResult(a,o)},a=async(...t)=>n(...t).constant?await s(...t):await i(...t);return ka(a,{name:t.interface.getFunctionName(e),_contract:t,_key:e,getFragment:n,estimateGas:async function(...e){const n=Im(t.runner,"estimateGas");return Oa(Em(n),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await n.estimateGas(await r(...e))},populateTransaction:r,send:i,staticCall:s,staticCallResult:o}),Object.defineProperty(a,"fragment",{configurable:!1,enumerable:!0,get:()=>{const n=t.interface.getFunction(e);return Oa(n,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),n}}),a}Mt=new WeakMap;const Pm=Symbol.for("_ethersInternal_contract"),Dm=new WeakMap;function Bm(t){return Dm.get(t[Pm])}async function Um(t,e){let n,r=null;if(Array.isArray(e)){const r=function(e){if(Ma(e,32))return e;const n=t.interface.getEvent(e);return Ca(n,"unknown fragment","name",e),n.topicHash};n=e.map((t=>null==t?null:Array.isArray(t)?t.map(r):r(t)))}else"*"===e?n=[null]:"string"==typeof e?Ma(e,32)?n=[e]:(r=t.interface.getEvent(e),Ca(r,"unknown fragment","event",e),n=[r.topicHash]):(s=e)&&"object"==typeof s&&"getTopicFilter"in s&&"function"==typeof s.getTopicFilter&&s.fragment?n=await e.getTopicFilter():"fragment"in e?(r=e.fragment,n=[r.topicHash]):Ca(!1,"unknown event name","event",e);var s;n=n.map((t=>{if(null==t)return null;if(Array.isArray(t)){const e=Array.from(new Set(t.map((t=>t.toLowerCase()))).values());return 1===e.length?e[0]:(e.sort(),e)}return t.toLowerCase()}));return{fragment:r,tag:n.map((t=>null==t?"null":Array.isArray(t)?t.join("|"):t)).join("&"),topics:n}}async function Lm(t,e){const{subs:n}=Bm(t);return n.get((await Um(t,e)).tag)||null}async function Mm(t,e,n){const r=Om(t.runner);Oa(r,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:e});const{fragment:s,tag:i,topics:o}=await Um(t,n),{addr:a,subs:c}=Bm(t);let l=c.get(i);if(!l){const e={address:a||t,topics:o},u=e=>{let r=s;if(null==r)try{r=t.interface.getEvent(e.topics[0])}catch(i){}if(r){const i=r,o=s?t.interface.decodeEventLog(s,e.data,e.topics):[];Gm(t,n,o,(r=>new Am(t,r,n,i,e)))}else Gm(t,n,[],(r=>new bm(t,r,n,e)))};let h=[];l={tag:i,listeners:[],start:()=>{h.length||h.push(r.on(e,u))},stop:async()=>{if(0==h.length)return;let t=h;h=[],await Promise.all(t),r.off(e,u)}},c.set(i,l)}return l}let Fm=Promise.resolve();async function Gm(t,e,n,r){try{await Fm}catch(i){}const s=async function(t,e,n,r){await Fm;const s=await Lm(t,e);if(!s)return!1;const o=s.listeners.length;return s.listeners=s.listeners.filter((({listener:e,once:s})=>{const o=Array.from(n);r&&o.push(r(s?null:e));try{e.call(t,...o)}catch(i){}return!s})),0===s.listeners.length&&(s.stop(),Bm(t).subs.delete(s.tag)),o>0}(t,e,n,r);return Fm=s,await s}const jm=["then"];Ft=Pm;let Hm=class t{constructor(t,e,n,r){xn(this,"target"),xn(this,"interface"),xn(this,"runner"),xn(this,"filters"),xn(this,Ft),xn(this,"fallback"),Ca("string"==typeof t||xd(t),"invalid value for Contract target","target",t),null==n&&(n=null);const s=rm.from(e);let i;ka(this,{target:t,runner:n,interface:s}),Object.defineProperty(this,Pm,{value:{}});let o=null,a=null;if(r){const t=Om(n);a=new wm(this.interface,t,r)}let c=new Map;if("string"==typeof t)if(Ma(t))o=t,i=Promise.resolve(t);else{const e=Im(n,"resolveName");if(!km(e))throw Ia("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});i=e.resolveName(t).then((e=>{if(null==e)throw Ia("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:t});return Bm(this).addr=e,e}))}else i=t.getAddress().then((t=>{if(null==t)throw new Error("TODO");return Bm(this).addr=t,t}));var l,u;l=this,u={addrPromise:i,addr:o,deployTx:a,subs:c},Dm.set(l[Pm],u);return ka(this,{filters:new Proxy({},{get:(t,e,n)=>{if("symbol"==typeof e||jm.indexOf(e)>=0)return Reflect.get(t,e,n);try{return this.getEvent(e)}catch(r){if(!Ta(r,"INVALID_ARGUMENT")||"key"!==r.argument)throw r}},has:(t,e)=>jm.indexOf(e)>=0?Reflect.has(t,e):Reflect.has(t,e)||this.interface.hasEvent(String(e))})}),ka(this,{fallback:s.receive||s.fallback?xm(this):null}),new Proxy(this,{get:(t,e,n)=>{if("symbol"==typeof e||e in t||jm.indexOf(e)>=0)return Reflect.get(t,e,n);try{return t.getFunction(e)}catch(r){if(!Ta(r,"INVALID_ARGUMENT")||"key"!==r.argument)throw r}},has:(t,e)=>"symbol"==typeof e||e in t||jm.indexOf(e)>=0?Reflect.has(t,e):t.interface.hasFunction(e)})}connect(e){return new t(this.target,this.interface,e)}attach(e){return new t(e,this.interface,this.runner)}async getAddress(){return await Bm(this).addrPromise}async getDeployedCode(){const t=Om(this.runner);Oa(t,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const e=await t.getCode(await this.getAddress());return"0x"===e?null:e}async waitForDeployment(){const t=this.deploymentTransaction();if(t)return await t.wait(),this;if(null!=await this.getDeployedCode())return this;const e=Om(this.runner);return Oa(null!=e,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise(((t,n)=>{const r=async()=>{try{if(null!=await this.getDeployedCode())return t(this);e.once("block",r)}catch(s){n(s)}};r()}))}deploymentTransaction(){return Bm(this).deployTx}getFunction(t){"string"!=typeof t&&(t=t.format());return Nm(this,t)}getEvent(t){return"string"!=typeof t&&(t=t.format()),function(t,e){const n=function(...n){const r=t.interface.getEvent(e,n);return Oa(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:n}}),r},r=function(...e){return new Rm(t,n(...e),e)};return ka(r,{name:t.interface.getEventName(e),_contract:t,_key:e,getFragment:n}),Object.defineProperty(r,"fragment",{configurable:!1,enumerable:!0,get:()=>{const n=t.interface.getEvent(e);return Oa(n,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),n}}),r}(this,t)}async queryTransaction(t){throw new Error("@TODO")}async queryFilter(t,e,n){null==e&&(e=0),null==n&&(n="latest");const{addr:r,addrPromise:s}=Bm(this),i=r||await s,{fragment:o,topics:a}=await Um(this,t),c={address:i,topics:a,fromBlock:e,toBlock:n},l=Om(this.runner);return Oa(l,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await l.getLogs(c)).map((t=>{let e=o;if(null==e)try{e=this.interface.getEvent(t.topics[0])}catch(n){}if(e)try{return new gm(t,this.interface,e)}catch(n){return new mm(t,n)}return new um(t,l)}))}async on(t,e){const n=await Mm(this,"on",t);return n.listeners.push({listener:e,once:!1}),n.start(),this}async once(t,e){const n=await Mm(this,"once",t);return n.listeners.push({listener:e,once:!0}),n.start(),this}async emit(t,...e){return await Gm(this,t,e,null)}async listenerCount(t){if(t){const e=await Lm(this,t);return e?e.listeners.length:0}const{subs:e}=Bm(this);let n=0;for(const{listeners:r}of e.values())n+=r.length;return n}async listeners(t){if(t){const e=await Lm(this,t);return e?e.listeners.map((({listener:t})=>t)):[]}const{subs:e}=Bm(this);let n=[];for(const{listeners:r}of e.values())n=n.concat(r.map((({listener:t})=>t)));return n}async off(t,e){const n=await Lm(this,t);if(!n)return this;if(e){const t=n.listeners.map((({listener:t})=>t)).indexOf(e);t>=0&&n.listeners.splice(t,1)}return null!=e&&0!==n.listeners.length||(n.stop(),Bm(this).subs.delete(n.tag)),this}async removeAllListeners(t){if(t){const e=await Lm(this,t);if(!e)return this;e.stop(),Bm(this).subs.delete(e.tag)}else{const{subs:t}=Bm(this);for(const{tag:e,stop:n}of t.values())n(),t.delete(e)}return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return await this.off(t,e)}static buildClass(e){return class extends t{constructor(t,n=null){super(t,e,n)}}}static from(t,e,n){null==n&&(n=null);return new this(t,e,n)}};class Vm extends(function(){return Hm}()){}const Wm=BigInt(60);function Km(t){return t.match(/^ipfs:\/\/ipfs\//i)?t=t.substring(12):t.match(/^ipfs:\/\//i)?t=t.substring(7):Ca(!1,"unsupported IPFS format","link",t),`https://gateway.ipfs.io/ipfs/${t}`}class zm{constructor(t){xn(this,"name"),ka(this,{name:t})}connect(t){return this}supportsCoinType(t){return!1}async encodeAddress(t,e){throw new Error("unsupported coin")}async decodeAddress(t,e){throw new Error("unsupported coin")}}const qm=new RegExp("^(ipfs)://(.*)$","i"),$m=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),qm,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Qm(t){return t===Wm||t>=2147483648&&t<=4294967295}const Jm=class t{constructor(t,e,n,r){Dn(this,Ht),xn(this,"provider"),xn(this,"address"),xn(this,"name"),Dn(this,Gt,void 0),Dn(this,jt,void 0),ka(this,{provider:t,address:e,name:n}),Bn(this,Gt,null!=r?Promise.resolve(r):null),Bn(this,jt,new Vm(e,["function supportsInterface(bytes4) view returns (bool)","function resolve(bytes, bytes) view returns (bytes)","function addr(bytes32) view returns (address)","function addr(bytes32, uint) view returns (bytes)","function text(bytes32, string) view returns (string)","function contenthash(bytes32) view returns (bytes)","function name(bytes32) view returns (string)"],t))}async supportsWildcard(){return null==Pn(this,Gt)&&Bn(this,Gt,(async()=>{try{return await Pn(this,jt).supportsInterface("0x9061b923")}catch(t){if(Ta(t,"CALL_EXCEPTION"))return!1;throw Bn(this,Gt,null),t}})()),await Pn(this,Gt)}async getAddress(t){const e=null==t?Wm:Xa(t);if(e===Wm)try{const t=await Ln(this,Ht,Vt).call(this,"addr(bytes32)");return null==t||t===ud?null:t}catch(s){if(Ta(s,"CALL_EXCEPTION"))return null;throw s}if(Qm(e)){const t=await Ln(this,Ht,Vt).call(this,"addr(bytes32,uint)",[e]);return Ma(t,20)?Cd(t):null}if(e>=0&&e<2147483648){let t=e+BigInt(2147483648);const n=await Ln(this,Ht,Vt).call(this,"addr(bytes32,uint)",[t]);if(Ma(n,20))return Cd(n)}let n=null;for(const i of this.provider.plugins)if(i instanceof zm&&e<=2147483648&&i.supportsCoinType(Number(e))){n=i;break}if(null==n)return null;const r=await Ln(this,Ht,Vt).call(this,"addr(bytes32,uint)",[e]);if(null==r||"0x"===r)return null;if(e<2147483648){const t=await n.decodeAddress(Number(e),r);if(null!=t)return t}Oa(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${e})`,info:{coinType:e,data:r}})}async getText(t){const e=await Ln(this,Ht,Vt).call(this,"text(bytes32,string)",[t]);return null==e||"0x"===e?null:e}async getContentHash(){const t=await Ln(this,Ht,Vt).call(this,"contenthash(bytes32)");if(null==t||"0x"===t)return null;const e=t.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(e){const t="e3010170"===e[1]?"ipfs":"ipns",n=parseInt(e[4],16);if(e[5].length===2*n)return`${t}://${dc("0x"+e[2])}`}const n=t.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return`bzz://${n[1]}`;Oa(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:t}})}async getName(){return await Ln(this,Ht,Vt).call(this,"name(bytes32)")}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){const t=[{type:"name",value:this.name}];try{const r=await this.getText("avatar");if(null==r)return t.push({type:"!avatar",value:""}),{url:null,linkage:t};t.push({type:"avatar",value:r});for(let s=0;s<$m.length;s++){const i=r.match($m[s]);if(null==i)continue;const o=i[1].toLowerCase();switch(o){case"https":case"data":return t.push({type:"url",value:r}),{linkage:t,url:r};case"ipfs":{const e=Km(r);return t.push({type:"ipfs",value:r}),t.push({type:"url",value:e}),{linkage:t,url:e}}case"erc721":case"erc1155":{const s="erc721"===o?"tokenURI(uint256)":"uri(uint256)";t.push({type:o,value:r});const a=await this.getAddress();if(null==a)return t.push({type:"!owner",value:""}),{url:null,linkage:t};const c=(i[2]||"").split("/");if(2!==c.length)return t.push({type:`!${o}caip`,value:i[2]||""}),{url:null,linkage:t};const l=c[1],u=new Vm(c[0],["function tokenURI(uint) view returns (string)","function ownerOf(uint) view returns (address)","function uri(uint) view returns (string)","function balanceOf(address, uint256) view returns (uint)"],this.provider);if("erc721"===o){const e=await u.ownerOf(l);if(a!==e)return t.push({type:"!owner",value:e}),{url:null,linkage:t};t.push({type:"owner",value:e})}else if("erc1155"===o){const e=await u.balanceOf(a,l);if(!e)return t.push({type:"!balance",value:"0"}),{url:null,linkage:t};t.push({type:"balance",value:e.toString()})}let h=await u[s](l);if(null==h||"0x"===h)return t.push({type:"!metadata-url",value:""}),{url:null,linkage:t};t.push({type:"metadata-url-base",value:h}),"erc1155"===o&&(h=h.replace("{id}",sc(l,32).substring(2)),t.push({type:"metadata-url-expanded",value:h})),h.match(/^ipfs:/i)&&(h=Km(h)),t.push({type:"metadata-url",value:h});let d={};const f=await new Cc(h).send();f.assertOk();try{d=f.bodyJson}catch(e){try{t.push({type:"!metadata",value:f.bodyText})}catch(n){const e=f.body;return e&&t.push({type:"!metadata",value:ja(e)}),{url:null,linkage:t}}return{url:null,linkage:t}}if(!d)return t.push({type:"!metadata",value:""}),{url:null,linkage:t};t.push({type:"metadata",value:JSON.stringify(d)});let p=d.image;if("string"!=typeof p)return t.push({type:"!imageUrl",value:""}),{url:null,linkage:t};if(p.match(/^(https:\/\/|data:)/i));else{if(null==p.match(qm))return t.push({type:"!imageUrl-ipfs",value:p}),{url:null,linkage:t};t.push({type:"imageUrl-ipfs",value:p}),p=Km(p)}return t.push({type:"url",value:p}),{linkage:t,url:p}}}}}catch(e){}return{linkage:t,url:null}}static async getEnsAddress(t){const e=await t.getNetwork(),n=e.getPlugin("org.ethers.plugins.network.Ens");return Oa(n,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:e}}),n.address}static async getUniversalResolverAddress(t){const e=(await t.getNetwork()).getPlugin("org.ethers.plugins.network.Ens");return e&&e.universalResolver?e.universalResolver:null}static async lookupAddress(e,n,r){const s=null==r?Wm:Xa(r);Qm(s)&&(n=Cd(n));const i=await Zm(e);if(i)try{const t=(await i.reverse(n,s,{enableCcipRead:!0})).primary;return Bp(t)?t:null}catch(o){if(Ta(o,"CALL_EXCEPTION")&&"ResolverNotFound(bytes)"===o.reason)return null;throw o}Oa(s===Wm,"lookupAddress coinType requires ENS Universal Resolver","UNSUPPORTED_OPERATION",{operation:"lookupAddress"});try{const r=await t.fromName(e,`${n.toLowerCase().substring(2)}.addr.reverse`);if(!r)return null;const s=await r.getName();if(null==s||!Bp(s))return null;return await e.resolveName(s)!==n?null:s}catch(a){if(Ta(a,"BAD_DATA")&&"0x"===a.value)return null;if(Ta(a,"CALL_EXCEPTION"))return null;throw a}}static async fromName(e,n){var r;const s=await Zm(e);if(s){let r;try{r=Lp(Dp(n),255)}catch(o){return null}const i=await s.requireResolver(r);return new t(e,i.resolver,n,i.extended)}let i=n;for(;;){if(""===i||"."===i)return null;if("eth"!==n&&"eth"===i)return null;const s=await Ln(r=t,Wt,Kt).call(r,e,i);if(null!=s){const r=new t(e,s,n);return i===n||await r.supportsWildcard()?r:null}i=i.split(".").slice(1).join(".")}}};Gt=new WeakMap,jt=new WeakMap,Ht=new WeakSet,Vt=async function(t,e){e=(e||[]).slice();const n=Pn(this,jt).interface;e.unshift(Up(this.name));let r=null;await this.supportsWildcard()&&(r=n.getFunction(t),Oa(r,"missing fragment","UNKNOWN_ERROR",{info:{funcName:t}}),e=[Lp(this.name,255),n.encodeFunctionData(r,e)],t="resolve(bytes,bytes)"),e.push({enableCcipRead:!0});try{const s=await Pn(this,jt)[t](...e);return r?n.decodeFunctionResult(r,s)[0]:s}catch(s){if(!Ta(s,"CALL_EXCEPTION"))throw s}return null},Wt=new WeakSet,Kt=async function(t,e){const n=await Jm.getEnsAddress(t);try{const r=new Vm(n,["function resolver(bytes32) view returns (address)"],t),s=await r.resolver(Up(e),{enableCcipRead:!0});return s===ud?null:s}catch(r){throw r}return null},Dn(Jm,Wt);let Ym=Jm;async function Zm(t){const e=await Ym.getUniversalResolverAddress(t);return e?new Vm(e,["function requireResolver(bytes) view returns ((bytes name, uint256 offset, bytes32 node, address resolver, bool extended))","function findResolver(bytes) view returns (address resolver, bytes32 node, uint offset)","function resolve(bytes name, bytes data) view returns (bytes result, address resolver)","function reverse(bytes name, uint coinType) view returns (string primary, address resolver, address reverseResolver)","error ResolverNotFound(bytes name)","error ResolverNotContract(bytes name, address resolver)","error ReverseAddressMismatch(string primary, bytes primaryAddress)","error HttpError(uint16 statusCode, string statusMessage)"],t):null}const Xm=BigInt(0);function ty(t,e){return function(n){return null==n?e:t(n)}}function ey(t,e){return n=>{if(e&&null==n)return null;if(!Array.isArray(n))throw new Error("not an array");return n.map((e=>t(e)))}}function ny(t,e){return n=>{const r={};for(const i in t){let o=i;if(e&&i in e&&!(o in n))for(const t of e[i])if(t in n){o=t;break}try{const e=t[i](n[o]);void 0!==e&&(r[i]=e)}catch(s){Oa(!1,`invalid value for value.${i} (${s instanceof Error?s.message:"not-an-error"})`,"BAD_DATA",{value:n})}}return r}}function ry(t){return Ca(Ma(t,!0),"invalid data","value",t),t}function sy(t){return Ca(Ma(t,32),"invalid hash","value",t),t}const iy=ny({address:Cd,blockHash:sy,blockNumber:rc,data:ry,index:rc,removed:ty((function(t){switch(t){case!0:case"true":return!0;case!1:case"false":return!1}Ca(!1,`invalid boolean; ${JSON.stringify(t)}`,"value",t)}),!1),topics:ey(sy),transactionHash:sy,transactionIndex:rc},{index:["logIndex"]});const oy=ny({hash:ty(sy),parentHash:sy,parentBeaconBlockRoot:ty(sy,null),number:rc,timestamp:rc,nonce:ty(ry),difficulty:Xa,gasLimit:Xa,gasUsed:Xa,stateRoot:ty(sy,null),receiptsRoot:ty(sy,null),transactionsRoot:ty(sy,null),blobGasUsed:ty(Xa,null),excessBlobGas:ty(Xa,null),miner:ty(Cd),prevRandao:ty(sy,null),extraData:ry,baseFeePerGas:ty(Xa)},{prevRandao:["mixHash"]});const ay=ny({transactionIndex:rc,blockNumber:rc,transactionHash:sy,address:Cd,topics:ey(sy),data:ry,index:rc,blockHash:sy},{index:["logIndex"]});const cy=ny({to:ty(Cd,null),from:ty(Cd,null),contractAddress:ty(Cd,null),index:rc,root:ty(ja),gasUsed:Xa,blobGasUsed:ty(Xa,null),logsBloom:ty(ry),blockHash:sy,hash:sy,logs:ey((function(t){return ay(t)})),blockNumber:rc,cumulativeGasUsed:Xa,effectiveGasPrice:ty(Xa),blobGasPrice:ty(Xa,null),status:ty(rc),type:ty(rc,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function ly(t){t.to&&Xa(t.to)===Xm&&(t.to="0x0000000000000000000000000000000000000000");const e=ny({hash:sy,index:ty(rc,void 0),type:t=>"0x"===t||null==t?0:rc(t),accessList:ty(rf,null),blobVersionedHashes:ty(ey(sy,!0),null),authorizationList:ty(ey((t=>{let e;if(t.signature)e=t.signature;else{let n=t.yParity;"0x1b"===n?n=0:"0x1c"===n&&(n=1),e=Object.assign({},t,{yParity:n})}return{address:Cd(t.address),chainId:Xa(t.chainId),nonce:Xa(t.nonce),signature:Ed.from(e)}}),!1),null),blockHash:ty(sy,null),blockNumber:ty(rc,null),transactionIndex:ty(rc,null),from:Cd,gasPrice:ty(Xa),maxPriorityFeePerGas:ty(Xa),maxFeePerGas:ty(Xa),maxFeePerBlobGas:ty(Xa,null),gasLimit:Xa,to:ty(Cd,null),value:Xa,nonce:rc,data:ry,creates:ty(Cd,null),chainId:ty(Xa,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(t);if(null==e.to&&null==e.creates&&(e.creates=function(t){const e=Cd(t.from);let n=Xa(t.nonce,"tx.nonce").toString(16);return n="0"===n?"0x":n.length%2?"0x0"+n:"0x"+n,Cd(Wa(yu(Hc([e,n])),12))}(e)),1!==t.type&&2!==t.type||null!=t.accessList||(e.accessList=[]),t.signature?e.signature=Ed.from(t.signature):e.signature=Ed.from(t),null==e.chainId){const t=e.signature.legacyChainId;null!=t&&(e.chainId=t)}return e.blockHash&&Xa(e.blockHash)===Xm&&(e.blockHash=null),e}const uy=Symbol.for("nodejs.util.inspect.custom");class hy{constructor(t){xn(this,"name"),ka(this,{name:t})}[uy](){return this.toString()}toString(){return`${this.name} { }`}clone(){return new hy(this.name)}}class dy extends hy{constructor(t,e){null==t&&(t=0),super(`org.ethers.network.plugins.GasCost#${t||0}`),xn(this,"effectiveBlock"),xn(this,"txBase"),xn(this,"txCreate"),xn(this,"txDataZero"),xn(this,"txDataNonzero"),xn(this,"txAccessListStorageKey"),xn(this,"txAccessListAddress");const n={effectiveBlock:t};function r(t,r){let s=(e||{})[t];null==s&&(s=r),Ca("number"==typeof s,`invalud value for ${t}`,"costs",e),n[t]=s}r("txBase",21e3),r("txCreate",32e3),r("txDataZero",4),r("txDataNonzero",16),r("txAccessListStorageKey",1900),r("txAccessListAddress",2400),ka(this,n)}toString(){return`${this.name} { txBase: ${this.txBase}, txCreate: ${this.txCreate}, txDataZero: ${this.txDataZero}, txAccessListStorageKey: ${this.txAccessListStorageKey}, txAccessListAddress: ${this.txAccessListAddress} }`}clone(){return new dy(this.effectiveBlock,this)}}class fy extends hy{constructor(t,e,n){super("org.ethers.plugins.network.Ens"),xn(this,"address"),xn(this,"targetNetwork"),xn(this,"universalResolver"),ka(this,{address:t||"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",targetNetwork:null==e?1:e,universalResolver:n})}toString(){return`${this.name} { address: ${this.address}, targetNetwork: ${this.targetNetwork}, universalResolver: ${this.universalResolver} }`}clone(){return new fy(this.address,this.targetNetwork,this.universalResolver)}}class py extends hy{constructor(t,e){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin"),Dn(this,zt,void 0),Dn(this,qt,void 0),Bn(this,zt,t),Bn(this,qt,e)}get url(){return Pn(this,zt)}get processFunc(){return Pn(this,qt)}toString(){return`${this.name} { url: ${this.url} }`}clone(){return this}}zt=new WeakMap,qt=new WeakMap;const gy=Symbol.for("nodejs.util.inspect.custom"),my=new Map;$t=new WeakMap,Qt=new WeakMap,Jt=new WeakMap;let yy=class t{constructor(t,e){Dn(this,$t,void 0),Dn(this,Qt,void 0),Dn(this,Jt,void 0),Bn(this,$t,t),Bn(this,Qt,Xa(e)),Bn(this,Jt,new Map)}[gy](){return this.toString()}toString(){const t=[];for(const e of Pn(this,Jt).values())t.push(e.toString());return`Network { name: ${this.name}, chainId: ${this.chainId}, plugins: [ ${t.join(", ")} ] }`}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return Pn(this,$t)}set name(t){Bn(this,$t,t)}get chainId(){return Pn(this,Qt)}set chainId(t){Bn(this,Qt,Xa(t,"chainId"))}matches(t){if(null==t)return!1;if("string"==typeof t){try{return this.chainId===Xa(t)}catch(e){}return this.name===t}if("number"==typeof t||"bigint"==typeof t){try{return this.chainId===Xa(t)}catch(e){}return!1}if("object"==typeof t){if(null!=t.chainId){try{return this.chainId===Xa(t.chainId)}catch(e){}return!1}return null!=t.name&&this.name===t.name}return!1}get plugins(){return Array.from(Pn(this,Jt).values())}attachPlugin(t){if(Pn(this,Jt).get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return Pn(this,Jt).set(t.name,t.clone()),this}getPlugin(t){return Pn(this,Jt).get(t)||null}getPlugins(t){return this.plugins.filter((e=>e.name.split("#")[0]===t))}clone(){const e=new t(this.name,this.chainId);return this.plugins.forEach((t=>{e.attachPlugin(t.clone())})),e}computeIntrinsicGas(t){const e=this.getPlugin("org.ethers.plugins.network.GasCost")||new dy;let n=e.txBase;if(null==t.to&&(n+=e.txCreate),t.data)for(let r=2;r<t.data.length;r+=2)"00"===t.data.substring(r,r+2)?n+=e.txDataZero:n+=e.txDataNonzero;if(t.accessList){const r=rf(t.accessList);for(const t in r)n+=e.txAccessListAddress+e.txAccessListStorageKey*r[t].storageKeys.length}return n}static from(e){if(function(){if(Ay)return;function t(t,e,n){const r=function(){const r=new yy(t,e);return null!=n.ensNetwork&&r.attachPlugin(new fy(null,n.ensNetwork,n.ensUniversalResolver)),r.attachPlugin(new dy),(n.plugins||[]).forEach((t=>{r.attachPlugin(t)})),r};yy.register(t,r),yy.register(e,r),n.altNames&&n.altNames.forEach((t=>{yy.register(t,r)}))}Ay=!0;const e="0xeEeEEEeE14D718C2B47D9923Deab1335E144EeEe";t("mainnet",1,{ensUniversalResolver:e,ensNetwork:1,altNames:["homestead"]}),t("ropsten",3,{ensNetwork:3}),t("rinkeby",4,{ensNetwork:4}),t("goerli",5,{ensNetwork:5}),t("kovan",42,{ensNetwork:42}),t("sepolia",11155111,{ensUniversalResolver:e,ensNetwork:11155111}),t("holesky",17e3,{ensNetwork:17e3}),t("classic",61,{}),t("classicKotti",6,{}),t("arbitrum",42161,{ensNetwork:1}),t("arbitrum-goerli",421613,{}),t("arbitrum-sepolia",421614,{}),t("base",8453,{ensNetwork:1}),t("base-goerli",84531,{}),t("base-sepolia",84532,{}),t("bnb",56,{ensNetwork:1}),t("bnbt",97,{}),t("filecoin",314,{}),t("filecoin-calibration",314159,{}),t("linea",59144,{ensNetwork:1}),t("linea-goerli",59140,{}),t("linea-sepolia",59141,{}),t("matic",137,{ensNetwork:1,plugins:[by("https://gasstation.polygon.technology/v2")]}),t("matic-amoy",80002,{}),t("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[by("https://gasstation-testnet.polygon.technology/v2")]}),t("optimism",10,{ensNetwork:1,plugins:[]}),t("optimism-goerli",420,{}),t("optimism-sepolia",11155420,{}),t("xdai",100,{ensNetwork:1})}(),null==e)return t.from("mainnet");if("number"==typeof e&&(e=BigInt(e)),"string"==typeof e||"bigint"==typeof e){const n=my.get(e);if(n)return n();if("bigint"==typeof e)return new t("unknown",e);Ca(!1,"unknown network","network",e)}if("function"==typeof e.clone){return e.clone()}if("object"==typeof e){Ca("string"==typeof e.name&&"number"==typeof e.chainId,"invalid network object name or chainId","network",e);const n=new t(e.name,e.chainId),r=e;return(r.ensAddress||null!=r.ensNetwork||r.ensUniversalResolver)&&n.attachPlugin(new fy(r.ensAddress,r.ensNetwork,r.ensUniversalResolver)),n}Ca(!1,"invalid network","network",e)}static register(t,e){"number"==typeof t&&(t=BigInt(t));const n=my.get(t);n&&Ca(!1,`conflicting network for ${JSON.stringify(n.name)}`,"nameOrChainId",t),my.set(t,e)}};function wy(t,e){const n=String(t);if(!n.match(/^[0-9.]+$/))throw new Error(`invalid gwei value: ${t}`);const r=n.split(".");if(1===r.length&&r.push(""),2!==r.length)throw new Error(`invalid gwei value: ${t}`);for(;r[1].length<e;)r[1]+="0";if(r[1].length>9){let t=BigInt(r[1].substring(0,9));r[1].substring(9).match(/^0+$/)||t++,r[1]=t.toString()}return BigInt(r[0]+r[1])}function by(t){return new py(t,(async(t,e,n)=>{let r;n.setHeader("User-Agent","ethers");try{const[e,s]=await Promise.all([n.send(),t()]);r=e;const i=r.bodyJson.standard;return{gasPrice:s.gasPrice,maxFeePerGas:wy(i.maxFee,9),maxPriorityFeePerGas:wy(i.maxPriorityFee,9)}}catch(s){Oa(!1,`error encountered with polygon gas station (${JSON.stringify(n.url)})`,"SERVER_ERROR",{request:n,response:r,error:s})}}))}let Ay=!1;function _y(t){return JSON.parse(JSON.stringify(t))}class vy{constructor(t){Dn(this,ee),Dn(this,Yt,void 0),Dn(this,Zt,void 0),Dn(this,Xt,void 0),Dn(this,te,void 0),Bn(this,Yt,t),Bn(this,Zt,null),Bn(this,Xt,4e3),Bn(this,te,-2)}get pollingInterval(){return Pn(this,Xt)}set pollingInterval(t){Bn(this,Xt,t)}start(){Pn(this,Zt)||(Bn(this,Zt,Pn(this,Yt)._setTimeout(Ln(this,ee,ne).bind(this),Pn(this,Xt))),Ln(this,ee,ne).call(this))}stop(){Pn(this,Zt)&&(Pn(this,Yt)._clearTimeout(Pn(this,Zt)),Bn(this,Zt,null))}pause(t){this.stop(),t&&Bn(this,te,-2)}resume(){this.start()}}Yt=new WeakMap,Zt=new WeakMap,Xt=new WeakMap,te=new WeakMap,ee=new WeakSet,ne=async function(){try{const t=await Pn(this,Yt).getBlockNumber();if(-2===Pn(this,te))return void Bn(this,te,t);if(t!==Pn(this,te)){for(let e=Pn(this,te)+1;e<=t;e++){if(null==Pn(this,Zt))return;await Pn(this,Yt).emit("block",e)}Bn(this,te,t)}}catch(t){}null!=Pn(this,Zt)&&Bn(this,Zt,Pn(this,Yt)._setTimeout(Ln(this,ee,ne).bind(this),Pn(this,Xt)))};class Ey{constructor(t){Dn(this,re,void 0),Dn(this,se,void 0),Dn(this,ie,void 0),Bn(this,re,t),Bn(this,ie,!1),Bn(this,se,(t=>{this._poll(t,Pn(this,re))}))}async _poll(t,e){throw new Error("sub-classes must override this")}start(){Pn(this,ie)||(Bn(this,ie,!0),Pn(this,se).call(this,-2),Pn(this,re).on("block",Pn(this,se)))}stop(){Pn(this,ie)&&(Bn(this,ie,!1),Pn(this,re).off("block",Pn(this,se)))}pause(t){this.stop()}resume(){this.start()}}re=new WeakMap,se=new WeakMap,ie=new WeakMap;class ky extends Ey{constructor(t,e){super(t),Dn(this,oe,void 0),Dn(this,ae,void 0),Bn(this,oe,e),Bn(this,ae,-2)}pause(t){t&&Bn(this,ae,-2),super.pause(t)}async _poll(t,e){const n=await e.getBlock(Pn(this,oe));null!=n&&(-2===Pn(this,ae)?Bn(this,ae,n.number):n.number>Pn(this,ae)&&(e.emit(Pn(this,oe),n.number),Bn(this,ae,n.number)))}}oe=new WeakMap,ae=new WeakMap;class Sy extends Ey{constructor(t,e){super(t),Dn(this,ce,void 0),Bn(this,ce,_y(e))}async _poll(t,e){throw new Error("@TODO")}}ce=new WeakMap;class Ty extends Ey{constructor(t,e){super(t),Dn(this,le,void 0),Bn(this,le,e)}async _poll(t,e){const n=await e.getTransactionReceipt(Pn(this,le));n&&e.emit(Pn(this,le),n)}}le=new WeakMap;class Ry{constructor(t,e){Dn(this,ge),Dn(this,ue,void 0),Dn(this,he,void 0),Dn(this,de,void 0),Dn(this,fe,void 0),Dn(this,pe,void 0),Bn(this,ue,t),Bn(this,he,_y(e)),Bn(this,de,Ln(this,ge,me).bind(this)),Bn(this,fe,!1),Bn(this,pe,-2)}start(){Pn(this,fe)||(Bn(this,fe,!0),-2===Pn(this,pe)&&Pn(this,ue).getBlockNumber().then((t=>{Bn(this,pe,t)})),Pn(this,ue).on("block",Pn(this,de)))}stop(){Pn(this,fe)&&(Bn(this,fe,!1),Pn(this,ue).off("block",Pn(this,de)))}pause(t){this.stop(),t&&Bn(this,pe,-2)}resume(){this.start()}}ue=new WeakMap,he=new WeakMap,de=new WeakMap,fe=new WeakMap,pe=new WeakMap,ge=new WeakSet,me=async function(t){if(-2===Pn(this,pe))return;const e=_y(Pn(this,he));e.fromBlock=Pn(this,pe)+1,e.toBlock=t;const n=await Pn(this,ue).getLogs(e);if(0!==n.length)for(const r of n)Pn(this,ue).emit(Pn(this,he),r),Bn(this,pe,r.blockNumber);else Pn(this,pe)<t-60&&Bn(this,pe,t-60)};const Iy=BigInt(2);function Oy(t){return new Promise((e=>{setTimeout(e,t)}))}function Cy(t){return t&&"function"==typeof t.then}function xy(t,e){return t+":"+JSON.stringify(e,((t,e)=>{if(null==e)return"null";if("bigint"==typeof e)return`bigint:${e.toString()}`;if("string"==typeof e)return e.toLowerCase();if("object"==typeof e&&!Array.isArray(e)){const t=Object.keys(e);return t.sort(),t.reduce(((t,n)=>(t[n]=e[n],t)),{})}return e}))}class Ny{constructor(t){xn(this,"name"),ka(this,{name:t})}start(){}stop(){}pause(t){}resume(){}}function Py(t){return(t=Array.from(new Set(t).values())).sort(),t}async function Dy(t,e){if(null==t)throw new Error("invalid event");if(Array.isArray(t)&&(t={topics:t}),"string"==typeof t)switch(t){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:t,tag:t}}if(Ma(t,32)){const e=t.toLowerCase();return{type:"transaction",tag:xy("tx",{hash:e}),hash:e}}if(t.orphan){const e=t;return{type:"orphan",tag:xy("orphan",e),filter:(n=e,JSON.parse(JSON.stringify(n)))}}var n;if(t.address||t.topics){const n=t,r={topics:(n.topics||[]).map((t=>null==t?null:Array.isArray(t)?Py(t.map((t=>t.toLowerCase()))):t.toLowerCase()))};if(n.address){const t=[],s=[],i=n=>{Ma(n)?t.push(n):s.push((async()=>{t.push(await Pd(n,e))})())};Array.isArray(n.address)?n.address.forEach(i):i(n.address),s.length&&await Promise.all(s),r.address=Py(t.map((t=>t.toLowerCase())))}return{filter:r,tag:xy("event",r),type:"event"}}Ca(!1,"unknown ProviderEvent","event",t)}function By(){return(new Date).getTime()}const Uy={cacheTimeout:250,pollingInterval:4e3};class Ly{constructor(t,e){if(Dn(this,xe),Dn(this,Pe),Dn(this,Be),Dn(this,Le),Dn(this,Fe),Dn(this,je),Dn(this,Ve),Dn(this,Ke),Dn(this,ye,void 0),Dn(this,we,void 0),Dn(this,be,void 0),Dn(this,Ae,void 0),Dn(this,_e,void 0),Dn(this,ve,void 0),Dn(this,Ee,void 0),Dn(this,ke,void 0),Dn(this,Se,void 0),Dn(this,Te,void 0),Dn(this,Re,void 0),Dn(this,Ie,void 0),Dn(this,Oe,void 0),Dn(this,Ce,void 0),Bn(this,Ce,Object.assign({},Uy,e||{})),"any"===t)Bn(this,ve,!0),Bn(this,_e,null);else if(t){const e=yy.from(t);Bn(this,ve,!1),Bn(this,_e,Promise.resolve(e)),setTimeout((()=>{this.emit("network",e,null)}),0)}else Bn(this,ve,!1),Bn(this,_e,null);Bn(this,ke,-1),Bn(this,Ee,new Map),Bn(this,ye,new Map),Bn(this,we,new Map),Bn(this,be,null),Bn(this,Ae,!1),Bn(this,Se,1),Bn(this,Te,new Map),Bn(this,Re,!1),Bn(this,Ie,0),Bn(this,Oe,[])}get _requestRate(){const t=Pn(this,Ie);return 0==t?null:t}set _requestRate(t){(null==t||t<0)&&(t=0),Bn(this,Ie,rc(t))}get pollingInterval(){return Pn(this,Ce).pollingInterval}get provider(){return this}get plugins(){return Array.from(Pn(this,we).values())}attachPlugin(t){if(Pn(this,we).get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return Pn(this,we).set(t.name,t.connect(this)),this}getPlugin(t){return Pn(this,we).get(t)||null}get disableCcipRead(){return Pn(this,Re)}set disableCcipRead(t){Bn(this,Re,!!t)}async ccipReadFetch(t,e,n){if(this.disableCcipRead||0===n.length||null==t.to)return null;const r=t.to.toLowerCase(),s=e.toLowerCase(),i=[];for(let a=0;a<n.length;a++){const e=n[a],c=e.replace("{sender}",r).replace("{data}",s),l=new Cc(c);-1===e.indexOf("{data}")&&(l.body={data:s,sender:r}),this.emit("debug",{action:"sendCcipReadFetchRequest",request:l,index:a,urls:n});let u,h="unknown error";try{u=await l.send()}catch(o){i.push(o.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:l,result:{error:o}});continue}try{const t=u.bodyJson;if(t.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:l,result:t}),t.data;t.message&&(h=t.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:l,result:t})}catch(o){}Oa(u.statusCode<400||u.statusCode>=500,`response not found during CCIP fetch: ${h}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:t,info:{url:e,errorMessage:h}}),i.push(h)}Oa(!1,`error encountered during CCIP fetch: ${i.map((t=>JSON.stringify(t))).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:t,info:{urls:n,errorMessages:i}})}_wrapBlock(t,e){return new lm(function(t){const e=oy(t);return e.transactions=t.transactions.map((t=>"string"==typeof t?t:ly(t))),e}(t),this)}_wrapLog(t,e){return new um(function(t){return iy(t)}(t),this)}_wrapTransactionReceipt(t,e){return new hm(function(t){return cy(t)}(t),this)}_wrapTransactionResponse(t,e){return new dm(ly(t),this)}_detectNetwork(){Oa(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(t){Oa(!1,`unsupported method: ${t.method}`,"UNSUPPORTED_OPERATION",{operation:t.method,info:t})}async getBlockNumber(){const t=rc(await Ln(this,Pe,De).call(this,{method:"getBlockNumber"}),"%response");return Pn(this,ke)>=0&&Bn(this,ke,t),t}_getAddress(t){return Pd(t,this)}_getBlockTag(t){if(null==t)return"latest";switch(t){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return t}return Ma(t)?Ma(t,32)?t:oc(t):("bigint"==typeof t&&(t=rc(t,"blockTag")),"number"==typeof t?t>=0?oc(t):Pn(this,ke)>=0?oc(Pn(this,ke)+t):this.getBlockNumber().then((e=>oc(e+t))):void Ca(!1,"invalid blockTag","blockTag",t))}_getFilter(t){const e=(t.topics||[]).map((t=>null==t?null:Array.isArray(t)?Py(t.map((t=>t.toLowerCase()))):t.toLowerCase())),n="blockHash"in t?t.blockHash:void 0,r=(t,r,s)=>{let i;switch(t.length){case 0:break;case 1:i=t[0];break;default:t.sort(),i=t}if(n&&(null!=r||null!=s))throw new Error("invalid filter");const o={};return i&&(o.address=i),e.length&&(o.topics=e),r&&(o.fromBlock=r),s&&(o.toBlock=s),n&&(o.blockHash=n),o};let s,i,o=[];if(t.address)if(Array.isArray(t.address))for(const a of t.address)o.push(this._getAddress(a));else o.push(this._getAddress(t.address));return"fromBlock"in t&&(s=this._getBlockTag(t.fromBlock)),"toBlock"in t&&(i=this._getBlockTag(t.toBlock)),o.filter((t=>"string"!=typeof t)).length||null!=s&&"string"!=typeof s||null!=i&&"string"!=typeof i?Promise.all([Promise.all(o),s,i]).then((t=>r(t[0],t[1],t[2]))):r(o,s,i)}_getTransactionRequest(t){const e=cm(t),n=[];if(["to","from"].forEach((t=>{if(null==e[t])return;const r=Pd(e[t],this);Cy(r)?n.push(async function(){e[t]=await r}()):e[t]=r})),null!=e.blockTag){const t=this._getBlockTag(e.blockTag);Cy(t)?n.push(async function(){e.blockTag=await t}()):e.blockTag=t}return n.length?async function(){return await Promise.all(n),e}():e}async getNetwork(){if(null==Pn(this,_e)){const t=(async()=>{try{const t=await this._detectNetwork();return this.emit("network",t,null),t}catch(e){throw Pn(this,_e)===t&&Bn(this,_e,null),e}})();return Bn(this,_e,t),(await t).clone()}const t=Pn(this,_e),[e,n]=await Promise.all([t,this._detectNetwork()]);return e.chainId!==n.chainId&&(Pn(this,ve)?(this.emit("network",n,e),Pn(this,_e)===t&&Bn(this,_e,Promise.resolve(n))):Oa(!1,`network changed: ${e.chainId} => ${n.chainId} `,"NETWORK_ERROR",{event:"changed"})),e.clone()}async getFeeData(){const t=await this.getNetwork(),e=async()=>{const{_block:e,gasPrice:n,priorityFee:r}=await Ea({_block:Ln(this,je,He).call(this,"latest",!1),gasPrice:(async()=>{try{return Xa(await Ln(this,Pe,De).call(this,{method:"getGasPrice"}),"%response")}catch(t){}return null})(),priorityFee:(async()=>{try{return Xa(await Ln(this,Pe,De).call(this,{method:"getPriorityFee"}),"%response")}catch(t){}return null})()});let s=null,i=null;const o=this._wrapBlock(e,t);return o&&o.baseFeePerGas&&(i=null!=r?r:BigInt("1000000000"),s=o.baseFeePerGas*Iy+i),new am(n,s,i)},n=t.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(n){const t=new Cc(n.url),r=await n.processFunc(e,this,t);return new am(r.gasPrice,r.maxFeePerGas,r.maxPriorityFeePerGas)}return await e()}async estimateGas(t){let e=this._getTransactionRequest(t);return Cy(e)&&(e=await e),Xa(await Ln(this,Pe,De).call(this,{method:"estimateGas",transaction:e}),"%response")}async call(t){const{tx:e,blockTag:n}=await Ea({tx:this._getTransactionRequest(t),blockTag:this._getBlockTag(t.blockTag)});return await Ln(this,Le,Me).call(this,Ln(this,Be,Ue).call(this,e,n,t.enableCcipRead?0:-1))}async getBalance(t,e){return Xa(await Ln(this,Fe,Ge).call(this,{method:"getBalance"},t,e),"%response")}async getTransactionCount(t,e){return rc(await Ln(this,Fe,Ge).call(this,{method:"getTransactionCount"},t,e),"%response")}async getCode(t,e){return ja(await Ln(this,Fe,Ge).call(this,{method:"getCode"},t,e))}async getStorage(t,e,n){const r=Xa(e,"position");return ja(await Ln(this,Fe,Ge).call(this,{method:"getStorage",position:r},t,n))}async broadcastTransaction(t){const{blockNumber:e,hash:n,network:r}=await Ea({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:t}),network:this.getNetwork()}),s=Tf.from(t);if(s.hash!==n)throw new Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(s,r).replaceableTransaction(e)}async getBlock(t,e){const{network:n,params:r}=await Ea({network:this.getNetwork(),params:Ln(this,je,He).call(this,t,!!e)});return null==r?null:this._wrapBlock(r,n)}async getTransaction(t){const{network:e,params:n}=await Ea({network:this.getNetwork(),params:Ln(this,Pe,De).call(this,{method:"getTransaction",hash:t})});return null==n?null:this._wrapTransactionResponse(n,e)}async getTransactionReceipt(t){const{network:e,params:n}=await Ea({network:this.getNetwork(),params:Ln(this,Pe,De).call(this,{method:"getTransactionReceipt",hash:t})});if(null==n)return null;if(null==n.gasPrice&&null==n.effectiveGasPrice){const e=await Ln(this,Pe,De).call(this,{method:"getTransaction",hash:t});if(null==e)throw new Error("report this; could not find tx or effectiveGasPrice");n.effectiveGasPrice=e.gasPrice}return this._wrapTransactionReceipt(n,e)}async getTransactionResult(t){const{result:e}=await Ea({network:this.getNetwork(),result:Ln(this,Pe,De).call(this,{method:"getTransactionResult",hash:t})});return null==e?null:ja(e)}async getLogs(t){let e=this._getFilter(t);Cy(e)&&(e=await e);const{network:n,params:r}=await Ea({network:this.getNetwork(),params:Ln(this,Pe,De).call(this,{method:"getLogs",filter:e})});return r.map((t=>this._wrapLog(t,n)))}_getProvider(t){Oa(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(t){return await Ym.fromName(this,t)}async getAvatar(t){const e=await this.getResolver(t);return e?await e.getAvatar():null}async resolveName(t,e){const n=await this.getResolver(t);return n?await n.getAddress(e):null}async lookupAddress(t,e){return await Ym.lookupAddress(this,t,e)}async waitForTransaction(t,e,n){const r=null!=e?e:1;return 0===r?this.getTransactionReceipt(t):new Promise((async(e,s)=>{let i=null;const o=async n=>{try{const s=await this.getTransactionReceipt(t);if(null!=s&&n-s.blockNumber+1>=r)return e(s),void(i&&(clearTimeout(i),i=null))}catch(s){console.log("EEE",s)}this.once("block",o)};null!=n&&(i=setTimeout((()=>{null!=i&&(i=null,this.off("block",o),s(Ia("timeout","TIMEOUT",{reason:"timeout"})))}),n)),o(await this.getBlockNumber())}))}async waitForBlock(t){Oa(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(t){const e=Pn(this,Te).get(t);e&&(e.timer&&clearTimeout(e.timer),Pn(this,Te).delete(t))}_setTimeout(t,e){null==e&&(e=0);const n=Un(this,Se)._++,r=()=>{Pn(this,Te).delete(n),t()};if(this.paused)Pn(this,Te).set(n,{timer:null,func:r,time:e});else{const t=setTimeout(r,e);Pn(this,Te).set(n,{timer:t,func:r,time:By()})}return n}_forEachSubscriber(t){for(const e of Pn(this,ye).values())t(e.subscriber)}_getSubscriber(t){switch(t.type){case"debug":case"error":case"network":return new Ny(t.type);case"block":{const t=new vy(this);return t.pollingInterval=this.pollingInterval,t}case"safe":case"finalized":return new ky(this,t.type);case"event":return new Ry(this,t.filter);case"transaction":return new Ty(this,t.hash);case"orphan":return new Sy(this,t.filter)}throw new Error(`unsupported event: ${t.type}`)}_recoverSubscriber(t,e){for(const n of Pn(this,ye).values())if(n.subscriber===t){n.started&&n.subscriber.stop(),n.subscriber=e,n.started&&e.start(),null!=Pn(this,be)&&e.pause(Pn(this,be));break}}async on(t,e){const n=await Ln(this,Ke,ze).call(this,t);return n.listeners.push({listener:e,once:!1}),n.started||(n.subscriber.start(),n.started=!0,null!=Pn(this,be)&&n.subscriber.pause(Pn(this,be))),this}async once(t,e){const n=await Ln(this,Ke,ze).call(this,t);return n.listeners.push({listener:e,once:!0}),n.started||(n.subscriber.start(),n.started=!0,null!=Pn(this,be)&&n.subscriber.pause(Pn(this,be))),this}async emit(t,...e){const n=await Ln(this,Ve,We).call(this,t,e);if(!n||0===n.listeners.length)return!1;const r=n.listeners.length;return n.listeners=n.listeners.filter((({listener:n,once:r})=>{const s=new fc(this,r?null:n,t);try{n.call(this,...e,s)}catch(i){}return!r})),0===n.listeners.length&&(n.started&&n.subscriber.stop(),Pn(this,ye).delete(n.tag)),r>0}async listenerCount(t){if(t){const e=await Ln(this,Ve,We).call(this,t);return e?e.listeners.length:0}let e=0;for(const{listeners:n}of Pn(this,ye).values())e+=n.length;return e}async listeners(t){if(t){const e=await Ln(this,Ve,We).call(this,t);return e?e.listeners.map((({listener:t})=>t)):[]}let e=[];for(const{listeners:n}of Pn(this,ye).values())e=e.concat(n.map((({listener:t})=>t)));return e}async off(t,e){const n=await Ln(this,Ve,We).call(this,t);if(!n)return this;if(e){const t=n.listeners.map((({listener:t})=>t)).indexOf(e);t>=0&&n.listeners.splice(t,1)}return e&&0!==n.listeners.length||(n.started&&n.subscriber.stop(),Pn(this,ye).delete(n.tag)),this}async removeAllListeners(t){if(t){const{tag:e,started:n,subscriber:r}=await Ln(this,Ke,ze).call(this,t);n&&r.stop(),Pn(this,ye).delete(e)}else for(const[e,{started:n,subscriber:r}]of Pn(this,ye))n&&r.stop(),Pn(this,ye).delete(e);return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return this.off(t,e)}get destroyed(){return Pn(this,Ae)}destroy(){this.removeAllListeners();for(const t of Pn(this,Te).keys())this._clearTimeout(t);Bn(this,Ae,!0)}get paused(){return null!=Pn(this,be)}set paused(t){!!t!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(t){if(Bn(this,ke,-1),null!=Pn(this,be)){if(Pn(this,be)==!!t)return;Oa(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber((e=>e.pause(t))),Bn(this,be,!!t);for(const e of Pn(this,Te).values())e.timer&&clearTimeout(e.timer),e.time=By()-e.time}resume(){if(null!=Pn(this,be)){this._forEachSubscriber((t=>t.resume())),Bn(this,be,null);for(const t of Pn(this,Te).values()){let e=t.time;e<0&&(e=0),t.time=By(),setTimeout(t.func,e)}}}}function My(t,e){try{const n=Fy(t,e);if(n)return yc(n)}catch(n){}return null}function Fy(t,e){if("0x"===t)return null;try{const n=rc(Wa(t,e,e+32)),r=rc(Wa(t,n,n+32));return Wa(t,n+32,n+32+r)}catch(n){}return null}function Gy(t){const e=ic(t);if(e.length>32)throw new Error("internal; should not happen");const n=new Uint8Array(32);return n.set(e,32-e.length),n}function jy(t){if(t.length%32==0)return t;const e=new Uint8Array(32*Math.ceil(t.length/32));return e.set(t),e}ye=new WeakMap,we=new WeakMap,be=new WeakMap,Ae=new WeakMap,_e=new WeakMap,ve=new WeakMap,Ee=new WeakMap,ke=new WeakMap,Se=new WeakMap,Te=new WeakMap,Re=new WeakMap,Ie=new WeakMap,Oe=new WeakMap,Ce=new WeakMap,xe=new WeakSet,Ne=function(){let t=Pn(this,Ie);if(0===t)return 0;const e=Pn(this,Oe),n=By();e.push(n);const r=n-1e3;for(;e.length&&e[0]<r;)e.shift();return e.length<t?0:e[0]+1e3-n},Pe=new WeakSet,De=async function(t){const e=Pn(this,Ce).cacheTimeout;if(e<0){const e=Ln(this,xe,Ne).call(this);return e&&await Oy(e),await this._perform(t)}const n=xy(t.method,t);let r=Pn(this,Ee).get(n);if(!r){const s=Ln(this,xe,Ne).call(this);s&&await Oy(s),r=this._perform(t),Pn(this,Ee).set(n,r),setTimeout((()=>{Pn(this,Ee).get(n)===r&&Pn(this,Ee).delete(n)}),e)}return await r},Be=new WeakSet,Ue=async function(t,e,n){Oa(n<10,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},t,{blockTag:e,enableCcipRead:!0})});const r=cm(t);try{const t=Ln(this,xe,Ne).call(this);return t&&await Oy(t),ja(await this._perform({method:"call",transaction:r,blockTag:e}))}catch(s){if(!this.disableCcipRead&&Ra(s)&&s.data&&n>=0&&"latest"===e&&null!=r.to&&"0x556f1830"===Wa(s.data,0,4)){const t=s.data,o=await Pd(r.to,this);let a;try{a=function(t){const e={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};Oa(Va(t)>=160,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const n=Wa(t,0,32);Oa(Wa(n,0,12)===Wa(Wy,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),e.sender=Wa(n,12);try{const n=[],r=rc(Wa(t,32,64)),s=rc(Wa(t,r,r+32)),i=Wa(t,r+32);for(let t=0;t<s;t++){const e=My(i,32*t);if(null==e)throw new Error("abort");n.push(e)}e.urls=n}catch(s){Oa(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{const n=Fy(t,64);if(null==n)throw new Error("abort");e.calldata=n}catch(s){Oa(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}Oa(Wa(t,100,128)===Wa(Wy,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),e.selector=Wa(t,96,100);try{const n=Fy(t,128);if(null==n)throw new Error("abort");e.extraData=n}catch(s){Oa(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return e.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map((t=>e[t])),e}(Wa(s.data,4))}catch(i){Oa(!1,i.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:r,info:{data:t}})}Oa(a.sender.toLowerCase()===o.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:t,reason:"OffchainLookup",transaction:r,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:a.errorArgs}});const c=await this.ccipReadFetch(r,a.calldata,a.urls);Oa(null!=c,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:r,info:{data:s.data,errorArgs:a.errorArgs}});const l={to:o,data:Ha([a.selector,Vy([c,a.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:l});try{const t=await Ln(this,Be,Ue).call(this,l,e,n+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},l),result:t}),t}catch(i){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},l),error:i}),i}}throw s}},Le=new WeakSet,Me=async function(t){const{value:e}=await Ea({network:this.getNetwork(),value:t});return e},Fe=new WeakSet,Ge=async function(t,e,n){let r=this._getAddress(e),s=this._getBlockTag(n);return"string"==typeof r&&"string"==typeof s||([r,s]=await Promise.all([r,s])),await Ln(this,Le,Me).call(this,Ln(this,Pe,De).call(this,Object.assign(t,{address:r,blockTag:s})))},je=new WeakSet,He=async function(t,e){if(Ma(t,32))return await Ln(this,Pe,De).call(this,{method:"getBlock",blockHash:t,includeTransactions:e});let n=this._getBlockTag(t);return"string"!=typeof n&&(n=await n),await Ln(this,Pe,De).call(this,{method:"getBlock",blockTag:n,includeTransactions:e})},Ve=new WeakSet,We=async function(t,e){let n=await Dy(t,this);return"event"===n.type&&e&&e.length>0&&!0===e[0].removed&&(n=await Dy({orphan:"drop-log",log:e[0]},this)),Pn(this,ye).get(n.tag)||null},Ke=new WeakSet,ze=async function(t){const e=await Dy(t,this),n=e.tag;let r=Pn(this,ye).get(n);if(!r){r={subscriber:this._getSubscriber(e),tag:n,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},Pn(this,ye).set(n,r)}return r};const Hy=new Uint8Array([]);function Vy(t){const e=[];let n=0;for(let r=0;r<t.length;r++)e.push(Hy),n+=32;for(let r=0;r<t.length;r++){const s=Ua(t[r]);e[r]=Gy(n),e.push(Gy(s.length)),e.push(jy(s)),n+=32+32*Math.ceil(s.length/32)}return Ha(e)}const Wy="0x0000000000000000000000000000000000000000000000000000000000000000";function Ky(t,e){if(t.provider)return t.provider;Oa(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:e})}async function zy(t,e){let n=cm(e);if(null!=n.to&&(n.to=Pd(n.to,t)),null!=n.from){const e=n.from;n.from=Promise.all([t.getAddress(),Pd(e,t)]).then((([t,e])=>(Ca(t.toLowerCase()===e.toLowerCase(),"transaction from mismatch","tx.from",e),t)))}else n.from=t.getAddress();return await Ea(n)}class qy{constructor(t){xn(this,"provider"),ka(this,{provider:t||null})}async getNonce(t){return Ky(this,"getTransactionCount").getTransactionCount(await this.getAddress(),t)}async populateCall(t){return await zy(this,t)}async populateTransaction(t){const e=Ky(this,"populateTransaction"),n=await zy(this,t);null==n.nonce&&(n.nonce=await this.getNonce("pending")),null==n.gasLimit&&(n.gasLimit=await this.estimateGas(n));const r=await this.provider.getNetwork();if(null!=n.chainId){Ca(Xa(n.chainId)===r.chainId,"transaction chainId mismatch","tx.chainId",t.chainId)}else n.chainId=r.chainId;const s=null!=n.maxFeePerGas||null!=n.maxPriorityFeePerGas;if(null==n.gasPrice||2!==n.type&&!s?0!==n.type&&1!==n.type||!s||Ca(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",t):Ca(!1,"eip-1559 transaction do not support gasPrice","tx",t),2!==n.type&&null!=n.type||null==n.maxFeePerGas||null==n.maxPriorityFeePerGas)if(0===n.type||1===n.type){const t=await e.getFeeData();Oa(null!=t.gasPrice,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),null==n.gasPrice&&(n.gasPrice=t.gasPrice)}else{const t=await e.getFeeData();if(null==n.type)if(null!=t.maxFeePerGas&&null!=t.maxPriorityFeePerGas)if(n.authorizationList&&n.authorizationList.length?n.type=4:n.type=2,null!=n.gasPrice){const t=n.gasPrice;delete n.gasPrice,n.maxFeePerGas=t,n.maxPriorityFeePerGas=t}else null==n.maxFeePerGas&&(n.maxFeePerGas=t.maxFeePerGas),null==n.maxPriorityFeePerGas&&(n.maxPriorityFeePerGas=t.maxPriorityFeePerGas);else null!=t.gasPrice?(Oa(!s,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),null==n.gasPrice&&(n.gasPrice=t.gasPrice),n.type=0):Oa(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else 2!==n.type&&3!==n.type&&4!==n.type||(null==n.maxFeePerGas&&(n.maxFeePerGas=t.maxFeePerGas),null==n.maxPriorityFeePerGas&&(n.maxPriorityFeePerGas=t.maxPriorityFeePerGas))}else n.type=2;return await Ea(n)}async populateAuthorization(t){const e=Object.assign({},t);return null==e.chainId&&(e.chainId=(await Ky(this,"getNetwork").getNetwork()).chainId),null==e.nonce&&(e.nonce=await this.getNonce()),e}async estimateGas(t){return Ky(this,"estimateGas").estimateGas(await this.populateCall(t))}async call(t){return Ky(this,"call").call(await this.populateCall(t))}async resolveName(t){const e=Ky(this,"resolveName");return await e.resolveName(t)}async sendTransaction(t){const e=Ky(this,"sendTransaction"),n=await this.populateTransaction(t);delete n.from;const r=Tf.from(n);return await e.broadcastTransaction(await this.signTransaction(r))}authorize(t){Oa(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}qe=new WeakSet,$e=function(t,e){Oa(!1,`VoidSigner cannot sign ${t}`,"UNSUPPORTED_OPERATION",{operation:e})};let $y=class t extends qy{constructor(t,e){super(e),Dn(this,qe),xn(this,"address"),ka(this,{address:t})}async getAddress(){return this.address}connect(e){return new t(this.address,e)}async signTransaction(t){Ln(this,qe,$e).call(this,"transactions","signTransaction")}async signMessage(t){Ln(this,qe,$e).call(this,"messages","signMessage")}async signTypedData(t,e,n){Ln(this,qe,$e).call(this,"typed-data","signTypedData")}};class Qy{constructor(t){Dn(this,en),Dn(this,rn),Dn(this,Qe,void 0),Dn(this,Je,void 0),Dn(this,Ye,void 0),Dn(this,Ze,void 0),Dn(this,Xe,void 0),Dn(this,tn,void 0),Bn(this,Qe,t),Bn(this,Je,null),Bn(this,Ye,Ln(this,en,nn).bind(this)),Bn(this,Ze,!1),Bn(this,Xe,null),Bn(this,tn,!1)}_subscribe(t){throw new Error("subclasses must override this")}_emitResults(t,e){throw new Error("subclasses must override this")}_recover(t){throw new Error("subclasses must override this")}start(){Pn(this,Ze)||(Bn(this,Ze,!0),Ln(this,en,nn).call(this,-2))}stop(){Pn(this,Ze)&&(Bn(this,Ze,!1),Bn(this,tn,!0),Ln(this,rn,sn).call(this),Pn(this,Qe).off("block",Pn(this,Ye)))}pause(t){t&&Ln(this,rn,sn).call(this),Pn(this,Qe).off("block",Pn(this,Ye))}resume(){this.start()}}Qe=new WeakMap,Je=new WeakMap,Ye=new WeakMap,Ze=new WeakMap,Xe=new WeakMap,tn=new WeakMap,en=new WeakSet,nn=async function(t){try{null==Pn(this,Je)&&Bn(this,Je,this._subscribe(Pn(this,Qe)));let t=null;try{t=await Pn(this,Je)}catch(e){if(!Ta(e,"UNSUPPORTED_OPERATION")||"eth_newFilter"!==e.operation)throw e}if(null==t)return Bn(this,Je,null),void Pn(this,Qe)._recoverSubscriber(this,this._recover(Pn(this,Qe)));const n=await Pn(this,Qe).getNetwork();if(Pn(this,Xe)||Bn(this,Xe,n),Pn(this,Xe).chainId!==n.chainId)throw new Error("chaid changed");if(Pn(this,tn))return;const r=await Pn(this,Qe).send("eth_getFilterChanges",[t]);await this._emitResults(Pn(this,Qe),r)}catch(e){console.log("@TODO",e)}Pn(this,Qe).once("block",Pn(this,Ye))},rn=new WeakSet,sn=function(){const t=Pn(this,Je);t&&(Bn(this,Je,null),t.then((t=>{Pn(this,Qe).destroyed||Pn(this,Qe).send("eth_uninstallFilter",[t])})))};class Jy extends Qy{constructor(t,e){var n;super(t),Dn(this,on,void 0),Bn(this,on,(n=e,JSON.parse(JSON.stringify(n))))}_recover(t){return new Ry(t,Pn(this,on))}async _subscribe(t){return await t.send("eth_newFilter",[Pn(this,on)])}async _emitResults(t,e){for(const n of e)t.emit(Pn(this,on),t._wrapLog(n,t._network))}}on=new WeakMap;class Yy extends Qy{async _subscribe(t){return await t.send("eth_newPendingTransactionFilter",[])}async _emitResults(t,e){for(const n of e)t.emit("pending",n)}}const Zy="bigint,boolean,function,number,string,symbol".split(/,/g);function Xy(t){if(null==t||Zy.indexOf(typeof t)>=0)return t;if("function"==typeof t.getAddress)return t;if(Array.isArray(t))return t.map(Xy);if("object"==typeof t)return Object.keys(t).reduce(((e,n)=>(e[n]=t[n],e)),{});throw new Error(`should not happen: ${t} (${typeof t})`)}function tw(t){return new Promise((e=>{setTimeout(e,t)}))}function ew(t){return t?t.toLowerCase():t}function nw(t){return t&&"number"==typeof t.pollingInterval}const rw={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class sw extends qy{constructor(t,e){super(t),xn(this,"address"),ka(this,{address:e=Cd(e)})}connect(t){Oa(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(t){return await this.populateCall(t)}async sendUncheckedTransaction(t){const e=Xy(t),n=[];if(e.from){const r=e.from;n.push((async()=>{const n=await Pd(r,this.provider);Ca(null!=n&&n.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),e.from=n})())}else e.from=this.address;if(null==e.gasLimit&&n.push((async()=>{e.gasLimit=await this.provider.estimateGas({...e,from:this.address})})()),null!=e.to){const t=e.to;n.push((async()=>{e.to=await Pd(t,this.provider)})())}n.length&&await Promise.all(n);const r=this.provider.getRpcTransaction(e);return this.provider.send("eth_sendTransaction",[r])}async sendTransaction(t){const e=await this.provider.getBlockNumber(),n=await this.sendUncheckedTransaction(t);return await new Promise(((t,r)=>{const s=[1e3,100];let i=0;const o=async()=>{try{const r=await this.provider.getTransaction(n);if(null!=r)return void t(r.replaceableTransaction(e))}catch(a){if(Ta(a,"CANCELLED")||Ta(a,"BAD_DATA")||Ta(a,"NETWORK_ERROR")||Ta(a,"UNSUPPORTED_OPERATION"))return null==a.info&&(a.info={}),a.info.sendTransactionHash=n,void r(a);if(Ta(a,"INVALID_ARGUMENT")&&(i++,null==a.info&&(a.info={}),a.info.sendTransactionHash=n,i>10))return void r(a);this.provider.emit("error",Ia("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:a}))}this.provider._setTimeout((()=>{o()}),s.pop()||4e3)};o()}))}async signTransaction(t){const e=Xy(t);if(e.from){const n=await Pd(e.from,this.provider);Ca(null!=n&&n.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),e.from=n}else e.from=this.address;const n=this.provider.getRpcTransaction(e);return await this.provider.send("eth_signTransaction",[n])}async signMessage(t){const e="string"==typeof t?mc(t):t;return await this.provider.send("personal_sign",[ja(e),this.address.toLowerCase()])}async signTypedData(t,e,n){const r=Xy(n),s=await Zp.resolveNames(t,e,r,(async t=>{const e=await Pd(t);return Ca(null!=e,"TypedData does not support null address","value",t),e}));return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(Zp.getPayload(s.domain,e,s.value))])}async unlock(t){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),t,null])}async _legacySignMessage(t){const e="string"==typeof t?mc(t):t;return await this.provider.send("eth_sign",[this.address.toLowerCase(),ja(e)])}}class iw extends Ly{constructor(t,e){super(t,e),Dn(this,pn),Dn(this,an,void 0),Dn(this,cn,void 0),Dn(this,ln,void 0),Dn(this,un,void 0),Dn(this,hn,void 0),Dn(this,dn,void 0),Dn(this,fn,void 0),Bn(this,cn,1),Bn(this,an,Object.assign({},rw,e||{})),Bn(this,ln,[]),Bn(this,un,null),Bn(this,dn,null),Bn(this,fn,null);{let t=null;const e=new Promise((e=>{t=e}));Bn(this,hn,{promise:e,resolve:t})}const n=this._getOption("staticNetwork");"boolean"==typeof n?(Ca(!n||"any"!==t,"staticNetwork cannot be used on special network 'any'","options",e),n&&null!=t&&Bn(this,dn,yy.from(t))):n&&(Ca(null==t||n.matches(t),"staticNetwork MUST match network object","options",e),Bn(this,dn,n))}_getOption(t){return Pn(this,an)[t]}get _network(){return Oa(Pn(this,dn),"network is not available yet","NETWORK_ERROR"),Pn(this,dn)}async _perform(t){if("call"===t.method||"estimateGas"===t.method){let e=t.transaction;if(e&&null!=e.type&&Xa(e.type)&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=await this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&(t=Object.assign({},t,{transaction:Object.assign({},e,{type:void 0})}))}}const e=this.getRpcRequest(t);return null!=e?await this.send(e.method,e.args):super._perform(t)}async _detectNetwork(){const t=this._getOption("staticNetwork");if(t){if(!0!==t)return t;if(Pn(this,dn))return Pn(this,dn)}return Pn(this,fn)?await Pn(this,fn):this.ready?(Bn(this,fn,(async()=>{try{const t=yy.from(Xa(await this.send("eth_chainId",[])));return Bn(this,fn,null),t}catch(t){throw Bn(this,fn,null),t}})()),await Pn(this,fn)):(Bn(this,fn,(async()=>{const t={id:Un(this,cn)._++,method:"eth_chainId",params:[],jsonrpc:"2.0"};let e;this.emit("debug",{action:"sendRpcPayload",payload:t});try{e=(await this._send(t))[0],Bn(this,fn,null)}catch(n){throw Bn(this,fn,null),this.emit("debug",{action:"receiveRpcError",error:n}),n}if(this.emit("debug",{action:"receiveRpcResult",result:e}),"result"in e)return yy.from(Xa(e.result));throw this.getRpcError(t,e)})()),await Pn(this,fn))}_start(){null!=Pn(this,hn)&&null!=Pn(this,hn).resolve&&(Pn(this,hn).resolve(),Bn(this,hn,null),(async()=>{for(;null==Pn(this,dn)&&!this.destroyed;)try{Bn(this,dn,await this._detectNetwork())}catch(t){if(this.destroyed)break;console.log("JsonRpcProvider failed to detect network and cannot start up; retry in 1s (perhaps the URL is wrong or the node is not started)"),this.emit("error",Ia("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:t}})),await tw(1e3)}Ln(this,pn,gn).call(this)})())}async _waitUntilReady(){if(null!=Pn(this,hn))return await Pn(this,hn).promise}_getSubscriber(t){return"pending"===t.type?new Yy(this):"event"===t.type?this._getOption("polling")?new Ry(this,t.filter):new Jy(this,t.filter):"orphan"===t.type&&"drop-log"===t.filter.orphan?new Ny("orphan"):super._getSubscriber(t)}get ready(){return null==Pn(this,hn)}getRpcTransaction(t){const e={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((n=>{if(null==t[n])return;let r=n;"gasLimit"===n&&(r="gas"),e[r]=oc(Xa(t[n],`tx.${n}`))})),["from","to","data"].forEach((n=>{null!=t[n]&&(e[n]=ja(t[n]))})),t.accessList&&(e.accessList=rf(t.accessList)),t.blobVersionedHashes&&(e.blobVersionedHashes=t.blobVersionedHashes.map((t=>t.toLowerCase()))),t.authorizationList&&(e.authorizationList=t.authorizationList.map((t=>{const e=sf(t);return{address:e.address,nonce:oc(e.nonce),chainId:oc(e.chainId),yParity:oc(e.signature.yParity),r:oc(e.signature.r),s:oc(e.signature.s)}}))),e}getRpcRequest(t){switch(t.method){case"chainId":return{method:"eth_chainId",args:[]};case"getBlockNumber":return{method:"eth_blockNumber",args:[]};case"getGasPrice":return{method:"eth_gasPrice",args:[]};case"getPriorityFee":return{method:"eth_maxPriorityFeePerGas",args:[]};case"getBalance":return{method:"eth_getBalance",args:[ew(t.address),t.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[ew(t.address),t.blockTag]};case"getCode":return{method:"eth_getCode",args:[ew(t.address),t.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[ew(t.address),"0x"+t.position.toString(16),t.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[t.signedTransaction]};case"getBlock":if("blockTag"in t)return{method:"eth_getBlockByNumber",args:[t.blockTag,!!t.includeTransactions]};if("blockHash"in t)return{method:"eth_getBlockByHash",args:[t.blockHash,!!t.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[t.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[t.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(t.transaction),t.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(t.transaction)]};case"getLogs":return t.filter&&null!=t.filter.address&&(Array.isArray(t.filter.address)?t.filter.address=t.filter.address.map(ew):t.filter.address=ew(t.filter.address)),{method:"eth_getLogs",args:[t.filter]}}return null}getRpcError(t,e){const{method:n}=t,{error:r}=e;if("eth_estimateGas"===n&&r.message){const e=r.message;if(!e.match(/revert/i)&&e.match(/insufficient funds/i))return Ia("insufficient funds","INSUFFICIENT_FUNDS",{transaction:t.params[0],info:{payload:t,error:r}});if(e.match(/nonce/i)&&e.match(/too low/i))return Ia("nonce has already been used","NONCE_EXPIRED",{transaction:t.params[0],info:{payload:t,error:r}})}if("eth_call"===n||"eth_estimateGas"===n){const e=cw(r),s=Jg.getBuiltinCallException("eth_call"===n?"call":"estimateGas",t.params[0],e?e.data:null);return s.info={error:r,payload:t},s}const s=JSON.stringify(function(t){const e=[];return lw(t,e),e}(r));if("string"==typeof r.message&&r.message.match(/user denied|ethers-user-denied/i)){return Ia("user rejected action","ACTION_REJECTED",{action:{eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"}[n]||"unknown",reason:"rejected",info:{payload:t,error:r}})}if("eth_sendRawTransaction"===n||"eth_sendTransaction"===n){const e=t.params[0];if(s.match(/insufficient funds|base fee exceeds gas limit/i))return Ia("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:e,info:{error:r}});if(s.match(/nonce/i)&&s.match(/too low/i))return Ia("nonce has already been used","NONCE_EXPIRED",{transaction:e,info:{error:r}});if(s.match(/replacement transaction/i)&&s.match(/underpriced/i))return Ia("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:e,info:{error:r}});if(s.match(/only replay-protected/i))return Ia("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:n,info:{transaction:e,info:{error:r}}})}let i=!!s.match(/the method .* does not exist/i);return i||r&&r.details&&r.details.startsWith("Unauthorized method:")&&(i=!0),i?Ia("unsupported operation","UNSUPPORTED_OPERATION",{operation:t.method,info:{error:r,payload:t}}):Ia("could not coalesce error","UNKNOWN_ERROR",{error:r,payload:t})}send(t,e){if(this.destroyed)return Promise.reject(Ia("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t}));const n=Un(this,cn)._++,r=new Promise(((r,s)=>{Pn(this,ln).push({resolve:r,reject:s,payload:{method:t,params:e,id:n,jsonrpc:"2.0"}})}));return Ln(this,pn,gn).call(this),r}async getSigner(t){null==t&&(t=0);const e=this.send("eth_accounts",[]);if("number"==typeof t){const n=await e;if(t>=n.length)throw new Error("no such account");return new sw(this,n[t])}const{accounts:n}=await Ea({network:this.getNetwork(),accounts:e});t=Cd(t);for(const r of n)if(Cd(r)===t)return new sw(this,t);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map((t=>new sw(this,t)))}destroy(){Pn(this,un)&&(clearTimeout(Pn(this,un)),Bn(this,un,null));for(const{payload:t,reject:e}of Pn(this,ln))e(Ia("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t.method}));Bn(this,ln,[]),super.destroy()}}an=new WeakMap,cn=new WeakMap,ln=new WeakMap,un=new WeakMap,hn=new WeakMap,dn=new WeakMap,fn=new WeakMap,pn=new WeakSet,gn=function(){if(Pn(this,un))return;const t=1===this._getOption("batchMaxCount")?0:this._getOption("batchStallTime");Bn(this,un,setTimeout((()=>{Bn(this,un,null);const t=Pn(this,ln);for(Bn(this,ln,[]);t.length;){const e=[t.shift()];for(;t.length&&e.length!==Pn(this,an).batchMaxCount;){e.push(t.shift());if(JSON.stringify(e.map((t=>t.payload))).length>Pn(this,an).batchMaxSize){t.unshift(e.pop());break}}(async()=>{const t=1===e.length?e[0].payload:e.map((t=>t.payload));this.emit("debug",{action:"sendRpcPayload",payload:t});try{const n=await this._send(t);this.emit("debug",{action:"receiveRpcResult",result:n});for(const{resolve:t,reject:r,payload:s}of e){if(this.destroyed){r(Ia("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:s.method}));continue}const e=n.filter((t=>t.id===s.id))[0];if(null!=e)"error"in e?r(this.getRpcError(s,e)):t(e.result);else{const t=Ia("missing response for request","BAD_DATA",{value:n,info:{payload:s}});this.emit("error",t),r(t)}}}catch(n){this.emit("debug",{action:"receiveRpcError",error:n});for(const{reject:t}of e)t(n)}})()}}),t))};class ow extends iw{constructor(t,e){super(t,e),Dn(this,mn,void 0);let n=this._getOption("pollingInterval");null==n&&(n=rw.pollingInterval),Bn(this,mn,n)}_getSubscriber(t){const e=super._getSubscriber(t);return nw(e)&&(e.pollingInterval=Pn(this,mn)),e}get pollingInterval(){return Pn(this,mn)}set pollingInterval(t){if(!Number.isInteger(t)||t<0)throw new Error("invalid interval");Bn(this,mn,t),this._forEachSubscriber((t=>{nw(t)&&(t.pollingInterval=Pn(this,mn))}))}}mn=new WeakMap;class aw extends ow{constructor(t,e,n){null==t&&(t="http://localhost:8545"),super(e,n),Dn(this,yn,void 0),Bn(this,yn,"string"==typeof t?new Cc(t):t.clone())}_getConnection(){return Pn(this,yn).clone()}async send(t,e){return await this._start(),await super.send(t,e)}async _send(t){const e=this._getConnection();e.body=JSON.stringify(t),e.setHeader("content-type","application/json");const n=await e.send();n.assertOk();let r=n.bodyJson;return Array.isArray(r)||(r=[r]),r}}function cw(t){if(null==t)return null;if("string"==typeof t.message&&t.message.match(/revert/i)&&Ma(t.data))return{message:t.message,data:t.data};if("object"==typeof t){for(const e in t){const n=cw(t[e]);if(n)return n}return null}if("string"==typeof t)try{return cw(JSON.parse(t))}catch(e){}return null}function lw(t,e){if(null!=t){if("string"==typeof t.message&&e.push(t.message),"object"==typeof t)for(const n in t)lw(t[n],e);if("string"==typeof t)try{return lw(JSON.parse(t),e)}catch(n){}}}yn=new WeakMap;wn=new WeakMap;let uw=class t extends qy{constructor(t,e){super(e),xn(this,"address"),Dn(this,wn,void 0),Ca(t&&"function"==typeof t.sign,"invalid private key","privateKey","[ REDACTED ]"),Bn(this,wn,t);ka(this,{address:of(this.signingKey.publicKey)})}get signingKey(){return Pn(this,wn)}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(e){return new t(Pn(this,wn),e)}async signTransaction(t){t=cm(t);const{to:e,from:n}=await Ea({to:t.to?Pd(t.to,this):void 0,from:t.from?Pd(t.from,this):void 0});null!=e&&(t.to=e),null!=n&&(t.from=n),null!=t.from&&(Ca(Cd(t.from)===this.address,"transaction from address mismatch","tx.from",t.from),delete t.from);const r=Tf.from(t);return r.signature=this.signingKey.sign(r.unsignedHash),r.serialized}async signMessage(t){return this.signMessageSync(t)}signMessageSync(t){return this.signingKey.sign(function(t){return"string"==typeof t&&(t=mc(t)),yu(Ha([mc("Ethereum Signed Message:\n"),mc(String(t.length)),t]))}(t)).serialized}authorizeSync(t){Ca("string"==typeof t.address,"invalid address for authorizeSync","auth.address",t);const e=this.signingKey.sign(function(t){return Ca("string"==typeof t.address,"invalid address for hashAuthorization","auth.address",t),yu(Ha(["0x05",Hc([null!=t.chainId?ic(t.chainId):"0x",Cd(t.address),null!=t.nonce?ic(t.nonce):"0x"])]))}(t));return Object.assign({},{address:Cd(t.address),nonce:Xa(t.nonce||0),chainId:Xa(t.chainId||0)},{signature:e})}async authorize(t){return t=Object.assign({},t,{address:await Pd(t.address,this)}),this.authorizeSync(await this.populateAuthorization(t))}async signTypedData(t,e,n){const r=await Zp.resolveNames(t,e,n,(async t=>{Oa(null!=this.provider,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:t}});const e=await this.provider.resolveName(t);return Oa(null!=e,"unconfigured ENS name","UNCONFIGURED_NAME",{value:t}),e}));return this.signingKey.sign(Zp.hash(r.domain,e,r.value)).serialized}};const hw=" !#$%&'()*+,-./<=>?@[]^_`{|}~",dw=/^[a-z]*$/i;function fw(t,e){let n=97;return t.reduce(((t,r)=>(r===e?n++:r.match(dw)?t.push(String.fromCharCode(n)+r):(n=97,t.push(r)),t)),[])}function pw(t){return Ca("0"===t[0],"unsupported auwl data","data",t),function(t,e){for(let s=28;s>=0;s--)t=t.split(hw[s]).join(e.substring(2*s,2*s+2));const n=[],r=t.replace(/(:|([0-9])|([A-Z][a-z]*))/g,((t,e,r,s)=>{if(r)for(let i=parseInt(r);i>=0;i--)n.push(";");else n.push(e.toLowerCase());return""}));if(r)throw new Error(`leftovers: ${JSON.stringify(r)}`);return fw(fw(n,";"),":")}(t.substring(59),t.substring(1,59))}class gw{constructor(t){xn(this,"locale"),ka(this,{locale:t})}split(t){return t.toLowerCase().split(/\s+/g)}join(t){return t.join(" ")}}class mw extends gw{constructor(t,e,n){super(t),Dn(this,vn),Dn(this,bn,void 0),Dn(this,An,void 0),Dn(this,_n,void 0),Bn(this,bn,e),Bn(this,An,n),Bn(this,_n,null)}get _data(){return Pn(this,bn)}_decodeWords(){return pw(Pn(this,bn))}getWord(t){const e=Ln(this,vn,En).call(this);return Ca(t>=0&&t<e.length,`invalid word index: ${t}`,"index",t),e[t]}getWordIndex(t){return Ln(this,vn,En).call(this).indexOf(t)}}bn=new WeakMap,An=new WeakMap,_n=new WeakMap,vn=new WeakSet,En=function(){if(null==Pn(this,_n)){const t=this._decodeWords();if(Rf(t.join("\n")+"\n")!==Pn(this,An))throw new Error(`BIP39 Wordlist for ${this.locale} FAILED`);Bn(this,_n,t)}return Pn(this,_n)};let yw=null;class ww extends mw{constructor(){super("en","0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO","0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60")}static wordlist(){return null==yw&&(yw=new ww),yw}}function bw(t){return(1<<t)-1<<8-t&255}function Aw(t,e){Pa("NFKD"),null==e&&(e=ww.wordlist());const n=e.split(t);Ca(n.length%3==0&&n.length>=12&&n.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");const r=new Uint8Array(Math.ceil(11*n.length/8));let s=0;for(let a=0;a<n.length;a++){let t=e.getWordIndex(n[a].normalize("NFKD"));Ca(t>=0,`invalid mnemonic word at index ${a}`,"mnemonic","[ REDACTED ]");for(let e=0;e<11;e++)t&1<<10-e&&(r[s>>3]|=1<<7-s%8),s++}const i=32*n.length/3,o=bw(n.length/3);return Ca((Ua(oh(r.slice(0,i/8)))[0]&o)===(r[r.length-1]&o),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),ja(r.slice(0,i/8))}function _w(t,e){Ca(t.length%4==0&&t.length>=16&&t.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),null==e&&(e=ww.wordlist());const n=[0];let r=11;for(let o=0;o<t.length;o++)r>8?(n[n.length-1]<<=8,n[n.length-1]|=t[o],r-=8):(n[n.length-1]<<=r,n[n.length-1]|=t[o]>>8-r,n.push(t[o]&((1<<8-r)-1&255)),r+=3);const s=t.length/4,i=parseInt(oh(t).substring(2,4),16)&bw(s);return n[n.length-1]<<=s,n[n.length-1]|=i>>8-s,e.join(n.map((t=>e.getWord(t))))}const vw={};class Ew{constructor(t,e,n,r,s){xn(this,"phrase"),xn(this,"password"),xn(this,"wordlist"),xn(this,"entropy"),null==r&&(r=""),null==s&&(s=ww.wordlist()),Da(t,vw,"Mnemonic"),ka(this,{phrase:n,password:r,wordlist:s,entropy:e})}computeSeed(){const t=mc("mnemonic"+this.password,"NFKD");return Fu(mc(this.phrase,"NFKD"),t,2048,64,"sha512")}static fromPhrase(t,e,n){const r=Aw(t,n);return t=_w(Ua(r),n),new Ew(vw,r,t,e,n)}static fromEntropy(t,e,n){const r=Ua(t,"entropy"),s=_w(r,n);return new Ew(vw,ja(r),s,e,n)}static entropyToPhrase(t,e){return _w(Ua(t,"entropy"),e)}static phraseToEntropy(t,e){return Aw(t,e)}static isValidMnemonic(t,e){try{return Aw(t,e),!0}catch(n){}return!1}}
12
- /*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var kw,Sw,Tw,Rw=globalThis&&globalThis.__classPrivateFieldGet||function(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)},Iw=globalThis&&globalThis.__classPrivateFieldSet||function(t,e,n,r,s){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?s.call(t,n):s?s.value=n:e.set(t,n),n};const Ow={16:10,24:12,32:14},Cw=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],xw=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],Nw=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Pw=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],Dw=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],Bw=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],Uw=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],Lw=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],Mw=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],Fw=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],Gw=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],jw=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],Hw=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Vw=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],Ww=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function Kw(t){const e=[];for(let n=0;n<t.length;n+=4)e.push(t[n]<<24|t[n+1]<<16|t[n+2]<<8|t[n+3]);return e}class zw{get key(){return Rw(this,kw,"f").slice()}constructor(t){if(kw.set(this,void 0),Sw.set(this,void 0),Tw.set(this,void 0),!(this instanceof zw))throw Error("AES must be instanitated with `new`");Iw(this,kw,new Uint8Array(t),"f");const e=Ow[this.key.length];if(null==e)throw new TypeError("invalid key size (must be 16, 24 or 32 bytes)");Iw(this,Tw,[],"f"),Iw(this,Sw,[],"f");for(let l=0;l<=e;l++)Rw(this,Tw,"f").push([0,0,0,0]),Rw(this,Sw,"f").push([0,0,0,0]);const n=4*(e+1),r=this.key.length/4,s=Kw(this.key);let i;for(let l=0;l<r;l++)i=l>>2,Rw(this,Tw,"f")[i][l%4]=s[l],Rw(this,Sw,"f")[e-i][l%4]=s[l];let o,a=0,c=r;for(;c<n;){if(o=s[r-1],s[0]^=xw[o>>16&255]<<24^xw[o>>8&255]<<16^xw[255&o]<<8^xw[o>>24&255]^Cw[a]<<24,a+=1,8!=r)for(let e=1;e<r;e++)s[e]^=s[e-1];else{for(let t=1;t<r/2;t++)s[t]^=s[t-1];o=s[r/2-1],s[r/2]^=xw[255&o]^xw[o>>8&255]<<8^xw[o>>16&255]<<16^xw[o>>24&255]<<24;for(let t=r/2+1;t<r;t++)s[t]^=s[t-1]}let t,i,l=0;for(;l<r&&c<n;)t=c>>2,i=c%4,Rw(this,Tw,"f")[t][i]=s[l],Rw(this,Sw,"f")[e-t][i]=s[l++],c++}for(let l=1;l<e;l++)for(let t=0;t<4;t++)o=Rw(this,Sw,"f")[l][t],Rw(this,Sw,"f")[l][t]=jw[o>>24&255]^Hw[o>>16&255]^Vw[o>>8&255]^Ww[255&o]}encrypt(t){if(16!=t.length)throw new TypeError("invalid plaintext size (must be 16 bytes)");const e=Rw(this,Tw,"f").length-1,n=[0,0,0,0];let r=Kw(t);for(let o=0;o<4;o++)r[o]^=Rw(this,Tw,"f")[0][o];for(let o=1;o<e;o++){for(let t=0;t<4;t++)n[t]=Pw[r[t]>>24&255]^Dw[r[(t+1)%4]>>16&255]^Bw[r[(t+2)%4]>>8&255]^Uw[255&r[(t+3)%4]]^Rw(this,Tw,"f")[o][t];r=n.slice()}const s=new Uint8Array(16);let i=0;for(let o=0;o<4;o++)i=Rw(this,Tw,"f")[e][o],s[4*o]=255&(xw[r[o]>>24&255]^i>>24),s[4*o+1]=255&(xw[r[(o+1)%4]>>16&255]^i>>16),s[4*o+2]=255&(xw[r[(o+2)%4]>>8&255]^i>>8),s[4*o+3]=255&(xw[255&r[(o+3)%4]]^i);return s}decrypt(t){if(16!=t.length)throw new TypeError("invalid ciphertext size (must be 16 bytes)");const e=Rw(this,Sw,"f").length-1,n=[0,0,0,0];let r=Kw(t);for(let o=0;o<4;o++)r[o]^=Rw(this,Sw,"f")[0][o];for(let o=1;o<e;o++){for(let t=0;t<4;t++)n[t]=Lw[r[t]>>24&255]^Mw[r[(t+3)%4]>>16&255]^Fw[r[(t+2)%4]>>8&255]^Gw[255&r[(t+1)%4]]^Rw(this,Sw,"f")[o][t];r=n.slice()}const s=new Uint8Array(16);let i=0;for(let o=0;o<4;o++)i=Rw(this,Sw,"f")[e][o],s[4*o]=255&(Nw[r[o]>>24&255]^i>>24),s[4*o+1]=255&(Nw[r[(o+3)%4]>>16&255]^i>>16),s[4*o+2]=255&(Nw[r[(o+2)%4]>>8&255]^i>>8),s[4*o+3]=255&(Nw[255&r[(o+1)%4]]^i);return s}}kw=new WeakMap,Sw=new WeakMap,Tw=new WeakMap;class qw{constructor(t,e,n){if(n&&!(this instanceof n))throw new Error(`${t} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new zw(e)},name:{enumerable:!0,value:t}})}}var $w,Qw,Jw=globalThis&&globalThis.__classPrivateFieldSet||function(t,e,n,r,s){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?s.call(t,n):s?s.value=n:e.set(t,n),n},Yw=globalThis&&globalThis.__classPrivateFieldGet||function(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)};class Zw extends qw{constructor(t,e){if(super("ECC",t,Zw),$w.set(this,void 0),Qw.set(this,void 0),e){if(e.length%16)throw new TypeError("invalid iv size (must be 16 bytes)");Jw(this,$w,new Uint8Array(e),"f")}else Jw(this,$w,new Uint8Array(16),"f");Jw(this,Qw,this.iv,"f")}get iv(){return new Uint8Array(Yw(this,$w,"f"))}encrypt(t){if(t.length%16)throw new TypeError("invalid plaintext size (must be multiple of 16 bytes)");const e=new Uint8Array(t.length);for(let n=0;n<t.length;n+=16){for(let e=0;e<16;e++)Yw(this,Qw,"f")[e]^=t[n+e];Jw(this,Qw,this.aes.encrypt(Yw(this,Qw,"f")),"f"),e.set(Yw(this,Qw,"f"),n)}return e}decrypt(t){if(t.length%16)throw new TypeError("invalid ciphertext size (must be multiple of 16 bytes)");const e=new Uint8Array(t.length);for(let n=0;n<t.length;n+=16){const r=this.aes.decrypt(t.subarray(n,n+16));for(let s=0;s<16;s++)e[n+s]=r[s]^Yw(this,Qw,"f")[s],Yw(this,Qw,"f")[s]=t[n+s]}return e}}$w=new WeakMap,Qw=new WeakMap;var Xw,tb,eb,nb=globalThis&&globalThis.__classPrivateFieldSet||function(t,e,n,r,s){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?s.call(t,n):s?s.value=n:e.set(t,n),n},rb=globalThis&&globalThis.__classPrivateFieldGet||function(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)};class sb extends qw{constructor(t,e){super("CTR",t,sb),Xw.set(this,void 0),tb.set(this,void 0),eb.set(this,void 0),nb(this,eb,new Uint8Array(16),"f"),rb(this,eb,"f").fill(0),nb(this,Xw,rb(this,eb,"f"),"f"),nb(this,tb,16,"f"),null==e&&(e=1),"number"==typeof e?this.setCounterValue(e):this.setCounterBytes(e)}get counter(){return new Uint8Array(rb(this,eb,"f"))}setCounterValue(t){if(!Number.isInteger(t)||t<0||t>Number.MAX_SAFE_INTEGER)throw new TypeError("invalid counter initial integer value");for(let e=15;e>=0;--e)rb(this,eb,"f")[e]=t%256,t=Math.floor(t/256)}setCounterBytes(t){if(16!==t.length)throw new TypeError("invalid counter initial Uint8Array value length");rb(this,eb,"f").set(t)}increment(){for(let t=15;t>=0;t--){if(255!==rb(this,eb,"f")[t]){rb(this,eb,"f")[t]++;break}rb(this,eb,"f")[t]=0}}encrypt(t){var e,n;const r=new Uint8Array(t);for(let s=0;s<r.length;s++)16===rb(this,tb,"f")&&(nb(this,Xw,this.aes.encrypt(rb(this,eb,"f")),"f"),nb(this,tb,0,"f"),this.increment()),r[s]^=rb(this,Xw,"f")[(nb(this,tb,(n=rb(this,tb,"f"),e=n++,n),"f"),e)];return r}decrypt(t){return this.encrypt(t)}}function ib(t){return"string"!=typeof t||t.startsWith("0x")||(t="0x"+t),La(t)}function ob(t,e){for(t=String(t);t.length<e;)t="0"+t;return t}function ab(t){return"string"==typeof t?mc(t,"NFKC"):La(t)}function cb(t,e){const n=e.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);Ca(null!=n,"invalid path","path",e);const r=n[1],s=n[3],i="!"===n[4];let o=t;for(const a of r.toLowerCase().split(".")){if(Array.isArray(o)){if(!a.match(/^[0-9]+$/))break;o=o[parseInt(a)]}else if("object"==typeof o){let t=null;for(const e in o)if(e.toLowerCase()===a){t=o[e];break}o=t}else o=null;if(null==o)break}if(Ca(!i||null!=o,"missing required value","path",r),s&&null!=o){if("int"===s){if("string"==typeof o&&o.match(/^-?[0-9]+$/))return parseInt(o);if(Number.isSafeInteger(o))return o}if("number"===s&&"string"==typeof o&&o.match(/^-?[0-9.]*$/))return parseFloat(o);if("data"===s&&"string"==typeof o)return ib(o);if("array"===s&&Array.isArray(o))return o;if(s===typeof o)return o;Ca(!1,`wrong type found for ${s} `,"path",r)}return o}Xw=new WeakMap,tb=new WeakMap,eb=new WeakMap;const lb="m/44'/60'/0'/0/0";function ub(t){try{const e=JSON.parse(t);if(3===(null!=e.version?parseInt(e.version):0))return!0}catch(e){}return!1}function hb(t,e){const n=Ua(e),r=cb(t,"crypto.ciphertext:data!");Ca(ja(yu(Ha([n.slice(16,32),r]))).substring(2)===cb(t,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");const s=function(t,e,n){if("aes-128-ctr"===cb(t,"crypto.cipher:string")){const r=cb(t,"crypto.cipherparams.iv:data!");return ja(new sb(e,r).decrypt(n))}Oa(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}(t,n.slice(0,16),r),i=of(s);if(t.address){let e=t.address.toLowerCase();e.startsWith("0x")||(e="0x"+e),Ca(Cd(e)===i,"keystore address/privateKey mismatch","address",t.address)}const o={address:i,privateKey:s};if("0.1"===cb(t,"x-ethers.version:string")){const e=n.slice(32,64),r=cb(t,"x-ethers.mnemonicCiphertext:data!"),s=cb(t,"x-ethers.mnemonicCounter:data!"),i=new sb(e,s);o.mnemonic={path:cb(t,"x-ethers.path:string")||lb,locale:cb(t,"x-ethers.locale:string")||"en",entropy:ja(Ua(i.decrypt(r)))}}return o}function db(t){const e=cb(t,"crypto.kdf:string");if(e&&"string"==typeof e){if("scrypt"===e.toLowerCase()){const n=cb(t,"crypto.kdfparams.salt:data!"),r=cb(t,"crypto.kdfparams.n:int!"),s=cb(t,"crypto.kdfparams.r:int!"),i=cb(t,"crypto.kdfparams.p:int!");Ca(r>0&&!(r&r-1),"invalid kdf.N","kdf.N",r),Ca(s>0&&i>0,"invalid kdf","kdf",e);const o=cb(t,"crypto.kdfparams.dklen:int!");return Ca(32===o,"invalid kdf.dklen","kdf.dflen",o),{name:"scrypt",salt:n,N:r,r:s,p:i,dkLen:64}}if("pbkdf2"===e.toLowerCase()){const e=cb(t,"crypto.kdfparams.salt:data!"),n=cb(t,"crypto.kdfparams.prf:string!"),r=n.split("-").pop();Ca("sha256"===r||"sha512"===r,"invalid kdf.pdf","kdf.pdf",n);const s=cb(t,"crypto.kdfparams.c:int!"),i=cb(t,"crypto.kdfparams.dklen:int!");return Ca(32===i,"invalid kdf.dklen","kdf.dklen",i),{name:"pbkdf2",salt:e,count:s,dkLen:i,algorithm:r}}}Ca(!1,"unsupported key-derivation function","kdf",e)}function fb(t){return new Promise((e=>{setTimeout((()=>{e()}),t)}))}function pb(t){const e=null!=t.salt?Ua(t.salt,"options.salt"):Vu(32);let n=1<<17,r=8,s=1;return t.scrypt&&(t.scrypt.N&&(n=t.scrypt.N),t.scrypt.r&&(r=t.scrypt.r),t.scrypt.p&&(s=t.scrypt.p)),Ca("number"==typeof n&&n>0&&Number.isSafeInteger(n)&&(BigInt(n)&BigInt(n-1))===BigInt(0),"invalid scrypt N parameter","options.N",n),Ca("number"==typeof r&&r>0&&Number.isSafeInteger(r),"invalid scrypt r parameter","options.r",r),Ca("number"==typeof s&&s>0&&Number.isSafeInteger(s),"invalid scrypt p parameter","options.p",s),{name:"scrypt",dkLen:32,salt:e,N:n,r:r,p:s}}function gb(t,e,n,r){const s=Ua(n.privateKey,"privateKey"),i=null!=r.iv?Ua(r.iv,"options.iv"):Vu(16);Ca(16===i.length,"invalid options.iv length","options.iv",r.iv);const o=null!=r.uuid?Ua(r.uuid,"options.uuid"):Vu(16);Ca(16===o.length,"invalid options.uuid length","options.uuid",r.iv);const a=t.slice(0,16),c=t.slice(16,32),l=Ua(new sb(a,i).encrypt(s)),u=yu(Ha([c,l])),h={address:n.address.substring(2).toLowerCase(),id:Vc(o),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:ja(i).substring(2)},ciphertext:ja(l).substring(2),kdf:"scrypt",kdfparams:{salt:ja(e.salt).substring(2),n:e.N,dklen:32,p:e.p,r:e.r},mac:u.substring(2)}};if(n.mnemonic){const e=null!=r.client?r.client:`ethers/${_a}`,s=n.mnemonic.path||lb,i=n.mnemonic.locale||"en",o=t.slice(32,64),a=Ua(n.mnemonic.entropy,"account.mnemonic.entropy"),c=Vu(16),l=Ua(new sb(o,c).encrypt(a)),u=new Date,d="UTC--"+(u.getUTCFullYear()+"-"+ob(u.getUTCMonth()+1,2)+"-"+ob(u.getUTCDate(),2)+"T"+ob(u.getUTCHours(),2)+"-"+ob(u.getUTCMinutes(),2)+"-"+ob(u.getUTCSeconds(),2)+".0Z")+"--"+h.address;h["x-ethers"]={client:e,gethFilename:d,path:s,locale:i,mnemonicCounter:ja(c).substring(2),mnemonicCiphertext:ja(l).substring(2),version:"0.1"}}return JSON.stringify(h)}function mb(t,e,n){null==n&&(n={});const r=ab(e),s=pb(n);return gb(Ua(nh(r,s.salt,s.N,s.r,s.p,64)),s,t,n)}async function yb(t,e,n){null==n&&(n={});const r=ab(e),s=pb(n);return gb(Ua(await eh(r,s.salt,s.N,s.r,s.p,64,n.progressCallback)),s,t,n)}const wb="m/44'/60'/0'/0/0",bb=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),Ab=2147483648,_b=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141");function vb(t,e){let n="";for(;t;)n="0123456789abcdef"[t%16]+n,t=Math.trunc(t/16);for(;n.length<2*e;)n="0"+n;return"0x"+n}function Eb(t){const e=Ua(t);return dc(Ha([e,Wa(oh(oh(e)),0,4)]))}const kb={};function Sb(t,e,n,r){const s=new Uint8Array(37);t&Ab?(Oa(null!=r,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),s.set(Ua(r),1)):s.set(Ua(n));for(let o=24;o>=0;o-=8)s[33+(o>>3)]=t>>24-o&255;const i=Ua(Zl("sha512",e,s));return{IL:i.slice(0,32),IR:i.slice(32)}}function Tb(t,e){const n=e.split("/");Ca(n.length>0,"invalid path","path",e),"m"===n[0]&&(Ca(0===t.depth,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${t.depth}`,"path",e),n.shift());let r=t;for(let s=0;s<n.length;s++){const t=n[s];if(t.match(/^[0-9]+'$/)){const e=parseInt(t.substring(0,t.length-1));Ca(e<Ab,"invalid path index",`path[${s}]`,t),r=r.deriveChild(Ab+e)}else if(t.match(/^[0-9]+$/)){const e=parseInt(t);Ca(e<Ab,"invalid path index",`path[${s}]`,t),r=r.deriveChild(e)}else Ca(!1,"invalid path component",`path[${s}]`,t)}return r}const Rb=class t extends uw{constructor(t,e,n,r,s,i,o,a,c){super(e,c),Dn(this,kn),xn(this,"publicKey"),xn(this,"fingerprint"),xn(this,"parentFingerprint"),xn(this,"mnemonic"),xn(this,"chainCode"),xn(this,"path"),xn(this,"index"),xn(this,"depth"),Da(t,kb,"HDNodeWallet"),ka(this,{publicKey:e.compressedPublicKey});ka(this,{parentFingerprint:n,fingerprint:Wa(Bu(oh(this.publicKey)),0,4),chainCode:r,path:s,index:i,depth:o}),ka(this,{mnemonic:a})}connect(e){return new t(kb,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,e)}async encrypt(t,e){return await yb(Ln(this,kn,Sn).call(this),t,{progressCallback:e})}encryptSync(t){return mb(Ln(this,kn,Sn).call(this),t)}get extendedKey(){return Oa(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),Eb(Ha(["0x0488ADE4",vb(this.depth,1),this.parentFingerprint,vb(this.index,4),this.chainCode,Ha(["0x00",this.privateKey])]))}hasPath(){return null!=this.path}neuter(){return new Ob(kb,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(e){const n=rc(e,"index");Ca(n<=4294967295,"invalid index","index",n);let r=this.path;r&&(r+="/"+(2147483647&n),n&Ab&&(r+="'"));const{IR:s,IL:i}=Sb(n,this.chainCode,this.publicKey,this.privateKey),o=new kd(sc((nc(i)+BigInt(this.privateKey))%_b,32));return new t(kb,o,this.fingerprint,ja(s),r,n,this.depth+1,this.mnemonic,this.provider)}derivePath(t){return Tb(this,t)}static fromExtendedKey(e){const n=ic(function(t){let e=uc;for(let n=0;n<t.length;n++)e*=hc,e+=lc(t[n]);return e}(e));Ca(82===n.length||Eb(n.slice(0,78))===e,"invalid extended key","extendedKey","[ REDACTED ]");const r=n[4],s=ja(n.slice(5,9)),i=parseInt(ja(n.slice(9,13)).substring(2),16),o=ja(n.slice(13,45)),a=n.slice(45,78);switch(ja(n.slice(0,4))){case"0x0488b21e":case"0x043587cf":{const t=ja(a);return new Ob(kb,of(t),t,s,o,null,i,r,null)}case"0x0488ade4":case"0x04358394 ":if(0!==a[0])break;return new t(kb,new kd(a.slice(1)),s,o,null,i,r,null,null)}Ca(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(e,n,r){var s;null==e&&(e=""),null==n&&(n=wb),null==r&&(r=ww.wordlist());const i=Ew.fromEntropy(Vu(16),e,r);return Ln(s=t,Tn,Rn).call(s,i.computeSeed(),i).derivePath(n)}static fromMnemonic(e,n){var r;return n||(n=wb),Ln(r=t,Tn,Rn).call(r,e.computeSeed(),e).derivePath(n)}static fromPhrase(e,n,r,s){var i;null==n&&(n=""),null==r&&(r=wb),null==s&&(s=ww.wordlist());const o=Ew.fromPhrase(e,n,s);return Ln(i=t,Tn,Rn).call(i,o.computeSeed(),o).derivePath(r)}static fromSeed(e){var n;return Ln(n=t,Tn,Rn).call(n,e,null)}};kn=new WeakSet,Sn=function(){const t={address:this.address,privateKey:this.privateKey},e=this.mnemonic;return this.path&&e&&"en"===e.wordlist.locale&&""===e.password&&(t.mnemonic={path:this.path,locale:"en",entropy:e.entropy}),t},Tn=new WeakSet,Rn=function(t,e){Ca(Fa(t),"invalid seed","seed","[REDACTED]");const n=Ua(t,"seed");Ca(n.length>=16&&n.length<=64,"invalid seed","seed","[REDACTED]");const r=Ua(Zl("sha512",bb,n)),s=new kd(ja(r.slice(0,32)));return new Rb(kb,s,"0x00000000",ja(r.slice(32)),"m",0,0,e,null)},Dn(Rb,Tn);let Ib=Rb;class Ob extends $y{constructor(t,e,n,r,s,i,o,a,c){super(e,c),xn(this,"publicKey"),xn(this,"fingerprint"),xn(this,"parentFingerprint"),xn(this,"chainCode"),xn(this,"path"),xn(this,"index"),xn(this,"depth"),Da(t,kb,"HDNodeVoidWallet"),ka(this,{publicKey:n});ka(this,{publicKey:n,fingerprint:Wa(Bu(oh(n)),0,4),parentFingerprint:r,chainCode:s,path:i,index:o,depth:a})}connect(t){return new Ob(kb,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,t)}get extendedKey(){return Oa(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),Eb(Ha(["0x0488B21E",vb(this.depth,1),this.parentFingerprint,vb(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return null!=this.path}deriveChild(t){const e=rc(t,"index");Ca(e<=4294967295,"invalid index","index",e);let n=this.path;n&&(n+="/"+(2147483647&e),e&Ab&&(n+="'"));const{IR:r,IL:s}=Sb(e,this.chainCode,this.publicKey,null),i=kd.addPoints(s,this.publicKey,!0),o=of(i);return new Ob(kb,o,i,this.fingerprint,ja(r),n,e,this.depth+1,this.provider)}derivePath(t){return Tb(this,t)}}function Cb(t){try{if(JSON.parse(t).encseed)return!0}catch(e){}return!1}function xb(t,e){const n=JSON.parse(t),r=ab(e),s=Cd(cb(n,"ethaddr:string!")),i=ib(cb(n,"encseed:string!"));Ca(i&&i.length%16==0,"invalid encseed","json",t);const o=Ua(Fu(r,r,2e3,32,"sha256")).slice(0,16),a=i.slice(0,16),c=i.slice(16),l=function(t){if(t.length<16)throw new TypeError("PKCS#7 invalid length");const e=t[t.length-1];if(e>16)throw new TypeError("PKCS#7 padding byte out of range");const n=t.length-e;for(let r=0;r<e;r++)if(t[n+r]!==e)throw new TypeError("PKCS#7 invalid padding byte");return new Uint8Array(t.subarray(0,n))}(Ua(new Zw(o,a).decrypt(c)));let u="";for(let h=0;h<l.length;h++)u+=String.fromCharCode(l[h]);return{address:s,privateKey:Rf(u)}}function Nb(t){return new Promise((e=>{setTimeout((()=>{e()}),t)}))}const Pb=class t extends uw{constructor(t,e){"string"!=typeof t||t.startsWith("0x")||(t="0x"+t),super("string"==typeof t?new kd(t):t,e)}connect(e){return new t(this.signingKey,e)}async encrypt(t,e){const n={address:this.address,privateKey:this.privateKey};return await yb(n,t,{progressCallback:e})}encryptSync(t){return mb({address:this.address,privateKey:this.privateKey},t)}static async fromEncryptedJson(e,n,r){var s;let i=null;return ub(e)?i=await async function(t,e,n){const r=JSON.parse(t),s=ab(e),i=db(r);if("pbkdf2"===i.name){n&&(n(0),await fb(0));const{salt:t,count:e,dkLen:o,algorithm:a}=i,c=Fu(s,t,e,o,a);return n&&(n(1),await fb(0)),hb(r,c)}Oa("scrypt"===i.name,"cannot be reached","UNKNOWN_ERROR",{params:i});const{salt:o,N:a,r:c,p:l,dkLen:u}=i;return hb(r,await eh(s,o,a,c,l,u,n))}(e,n,r):Cb(e)&&(r&&(r(0),await Nb(0)),i=xb(e,n),r&&(r(1),await Nb(0))),Ln(s=t,In,On).call(s,i)}static fromEncryptedJsonSync(e,n){var r;let s=null;return ub(e)?s=function(t,e){const n=JSON.parse(t),r=ab(e),s=db(n);if("pbkdf2"===s.name){const{salt:t,count:e,dkLen:i,algorithm:o}=s;return hb(n,Fu(r,t,e,i,o))}Oa("scrypt"===s.name,"cannot be reached","UNKNOWN_ERROR",{params:s});const{salt:i,N:o,r:a,p:c,dkLen:l}=s;return hb(n,nh(r,i,o,a,c,l))}(e,n):Cb(e)?s=xb(e,n):Ca(!1,"invalid JSON wallet","json","[ REDACTED ]"),Ln(r=t,In,On).call(r,s)}static createRandom(t){const e=Ib.createRandom();return t?e.connect(t):e}static fromPhrase(t,e){const n=Ib.fromPhrase(t);return e?n.connect(e):n}};In=new WeakSet,On=function(t){if(Ca(t,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in t&&t.mnemonic&&"en"===t.mnemonic.locale){const e=Ew.fromEntropy(t.mnemonic.entropy),n=Ib.fromMnemonic(e,t.mnemonic.path);if(n.address===t.address&&n.privateKey===t.privateKey)return n;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}const e=new Pb(t.privateKey);return Ca(e.address===t.address,"address/privateKey mismatch","json","[ REDACTED ]"),e},Dn(Pb,In);let Db=Pb;const Bb=3000000n,Ub=2000000000n,Lb=1000000000n,Mb=4096,Fb="dns_txt",Gb=(1n<<64n)-1n,jb=["function publishDocument(string name,string docType,uint64 expectedVersion,(bytes32 storageType,string uri,bytes inlineDocument,bytes32 contentHash,bytes32 schema,bytes32 codec,bytes32 extraHash) document,(uint8 kind,bytes value) controller,(uint8 kind,bytes value) beneficiary,address paymentTarget,uint64 expireAt,bytes32 controllerPolicyHash,bytes32 paymentPolicyHash,bytes32 splitPolicyHash,bytes32 pricePolicyHash,bytes32 rightsPolicyHash,(uint8 role,(uint8 kind,bytes value) actor,bytes32 kid) authority,(uint64 expectedNameSeq,uint64 expectedParentNameSeq) guard) returns (uint64 version)"],Hb=new rm(jb),Vb=[0,"0x"],Wb=function(t){const e=mc(t);if(e.length>31)throw new Error("bytes32 string must be less than 32 bytes");return qa(e,32)}("inline");class Kb extends Error{constructor(t,e){super(e),this.name="BnsEvmTxError",this.code=t}}function zb(t,e,n){let r;try{r=BigInt(e)}catch{throw new Kb("INVALID_CONFIG",`${t} must be an integer`)}if(r<0n||void 0!==n&&r>n)throw new Kb("INVALID_CONFIG",`${t} is out of range`);return r}function qb(t){const e=Mn.canonicalize(t);if("string"!=typeof e)throw new Kb("INVALID_DOCUMENT","document cannot be encoded as canonical JSON");const n=mc(e);if(0===n.length||n.length>Mb)throw new Kb("INVALID_DOCUMENT",`inline document is ${n.length} bytes, max 4096`);return n}function $b(t,e){if(!t||"object"!=typeof t||Array.isArray(t))throw new Kb("INVALID_DOCUMENT",`${e} must be an object`);const n=t;if(!Number.isInteger(n.ttl)||n.ttl<0||n.ttl>4294967295)throw new Kb("INVALID_DOCUMENT",`${e}.ttl must be a u32`);if("string"!=typeof n.value||0===n.value.length)throw new Kb("INVALID_DOCUMENT",`${e}.value must be a non-empty string`);return{ttl:n.ttl,value:n.value}}class Qb{constructor(t,e,n){if(this.nextNonce=null,this.client=t,this.config=e,this.chainId=zb("chainId",e.chainId,Gb),this.contractAddress=Cd(e.contractAddress),this.gasLimit=zb("gasLimit",e.gasLimit??Bb,Gb),this.maxFeePerGas=zb("maxFeePerGas",e.maxFeePerGas??Ub),this.maxPriorityFeePerGas=zb("maxPriorityFeePerGas",e.maxPriorityFeePerGas??Lb),!e.rpcEndpoint&&!n)throw new Kb("INVALID_CONFIG","rpcEndpoint is required");if(0n===this.chainId||0n===this.gasLimit)throw new Kb("INVALID_CONFIG","chainId and gasLimit must be greater than zero");if(this.maxFeePerGas<this.maxPriorityFeePerGas)throw new Kb("INVALID_CONFIG","maxFeePerGas must be >= maxPriorityFeePerGas");this.provider=n??new aw(e.rpcEndpoint,this.chainId,{staticNetwork:!0})}resetNonce(){this.nextNonce=null}async buildAndSign(t,e){const n=new Db(e),r="publish_document"===t.type?await this.preparePublishedDocument(t.request):await this.prepareDnsTxtDocument(t.request),s=this.encodePublishDocument(r,n.address),i=await this.allocateNonce(n.address);try{return await n.signTransaction({type:2,chainId:this.chainId,nonce:i,to:this.contractAddress,value:0,data:s,gasLimit:this.gasLimit,maxFeePerGas:this.maxFeePerGas,maxPriorityFeePerGas:this.maxPriorityFeePerGas})}catch(o){throw this.resetNonce(),o}}async allocateNonce(t){null===this.nextNonce&&(this.nextNonce=await this.provider.getTransactionCount(t,"pending"));const e=this.nextNonce;return this.nextNonce+=1,e}async preparePublishedDocument(t){if(!t.document||"object"!=typeof t.document||Array.isArray(t.document))throw new Kb("INVALID_DOCUMENT","publish_document document must be a JSON object");return this.prepareDocument(t.name,t.doc_type,qb(t.document))}async prepareDnsTxtDocument(t){const e=await this.getCurrentDocument(t.name,Fb);let n=[];if(e){if("inline"!==e.document_state.document.storage_type)throw new Kb("INVALID_DOCUMENT","DNS TXT helper can only update inline documents");let t;try{t=JSON.parse(function(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(new Uint8Array(t));let e="";for(const n of t)e+=String.fromCharCode(n);try{return decodeURIComponent(escape(e))}catch{return e}}(e.document_state.document.inline_document))}catch(s){throw new Kb("INVALID_DOCUMENT",`current dns_txt document is not valid JSON: ${s instanceof Error?s.message:String(s)}`)}if(!Array.isArray(t))throw new Kb("INVALID_DOCUMENT","current dns_txt document must be an array");n=t.map(((t,e)=>$b(t,`dns_txt[${e}]`)))}switch(t.mode){case"add":{if(!t.value)throw new Kb("INVALID_OPERATION","publish_dns_txt mode=add requires value");const e=$b({ttl:t.ttl??600,value:t.value},"dns_txt");n.some((t=>t.value===e.value))||n.push(e);break}case"remove":if(!t.value)throw new Kb("INVALID_OPERATION","publish_dns_txt mode=remove requires value");n=n.filter((e=>e.value!==t.value));break;case"replace":if(!t.records)throw new Kb("INVALID_OPERATION","publish_dns_txt mode=replace requires records");n=t.records.map(((t,e)=>$b({ttl:t.ttl??600,value:t.value},`dns_txt[${e}]`)));break;default:throw new Kb("INVALID_OPERATION",`publish_dns_txt mode \`${t.mode}\` is not supported`)}const r=await this.getNameState(t.name);return{name:pa(t.name),docType:Fb,expectedVersion:(null==e?void 0:e.document_state.version)??0,inlineDocument:qb(n),nameState:r}}async prepareDocument(t,e,n){const r=pa(t),s=ga(e),[i,o]=await Promise.all([this.getNameState(r),this.getCurrentDocument(r,s)]);return{name:r,docType:s,expectedVersion:(null==o?void 0:o.document_state.version)??0,inlineDocument:n,nameState:i}}async getNameState(t){const e=await this.client.queryNameState(t);if(!e)throw new Kb("NAME_NOT_FOUND",`BNS name \`${t}\` was not found`);return e}async getCurrentDocument(t,e){try{const n=await this.client.resolveDocument(t,e);return"missing"===n.status?null:n}catch(n){if(function(t){return t instanceof Io&&t.isRegistryCode("DOCUMENT_NOT_FOUND")}(n))return null;throw n}}encodePublishDocument(t,e){const n=this.ownerAuthority(t.nameState,e),r=[Wb,"",ja(t.inlineDocument),oh(t.inlineDocument),hd,hd,hd];return Hb.encodeFunctionData("publishDocument",[t.name,t.docType,t.expectedVersion,r,Vb,Vb,ud,0,hd,hd,hd,hd,hd,n,[t.nameState.name_seq,0]])}ownerAuthority(t,e){const n=t.effective_owner;if("chain_account"===n.kind){const s=Cd(n.value);if(s!==Cd(e))throw new Kb("LOCAL_SIGNER_NOT_OWNER",`local signer ${e} is not effective owner ${s} of ${t.name}`);return[1,(r=e,[1,ja(Ua(r))]),hd]}var r;if("bns_name"===n.kind){const e=function(t,e){if(!e)return hd;const n=Ua(e);if(32!==n.length)throw new Kb("INVALID_CONFIG",`${t} must be a 32-byte hex value`);return ja(n)}("authorityKid",this.config.authorityKid);if(e===hd)throw new Kb("AUTHORITY_KID_REQUIRED",`authorityKid is required when ${t.name} is controlled by BNS name ${n.value}`);return[1,[2,ja(mc(n.value))],e]}throw new Kb("LOCAL_SIGNER_NOT_OWNER",`BNS name ${t.name} has no concrete effective owner`)}}class Jb extends Error{constructor(t,e,n){super(n),this.name="BnsTxExecutorError",this.code=t,this.route=e}}function Yb(t){if("string"!=typeof t)return null;const e=t.trim();return e.length>0?e:null}function Zb(t){return t===pi.NodeJS||t===pi.AppClient||t===pi.AppService}function Xb(t){if(!t||"object"!=typeof t||Array.isArray(t))return!1;const e=t;return"boolean"==typeof e.sn_account?e.sn_account:null!==Yb(e.sn_username)||null!==Yb(e.sn_user_name)}const tA="/kapi/sn",eA="/kapi/sn/auth",nA="/kapi/sn/deviceinfo",rA="/kapi/sn/bns-proxy",sA="/kapi/sn/bns",iA="/kapi/sn/region-probe-config.json",oA=1048576,aA="auth.check_username",cA="auth.check_active_code",lA="auth.register",uA="auth.login",hA="auth.refresh",dA="auth.logout",fA="auth.me",pA="user.get_profile",gA="user.set_self_cert",mA="user.add_dns_record",yA="user.remove_dns_record",wA="user.list_dns_records",bA="zone.get_info",AA="domain.bind",_A="domain.unbind",vA="device.register",EA="device.update",kA="device.get",SA="device.list",TA="deviceinfo.resolve_ood_by_did",RA="deviceinfo.resolve_ood_by_hostname",IA="bns.publish_dns_txt",OA="bns.publish_document",CA="owner.remove_bound_zone",xA=/\[SN:(\d+):([a-z_]+)\]\s*/;class NA extends Error{constructor(t,e,n=null,r=null,s=null){super(e),this.name="SnClientError",this.kind=t,this.code=n,this.codeName=r,this.detail=s??e}isSnError(t){return"sn"===this.kind&&this.codeName===t}domainProofInfo(){return this.isSnError("domain_proof_failed")?PA(this.detail):null}bnsWriteInfo(){return this.isSnError("bns_permission_denied")||this.isSnError("bns_name_already_exists")||this.isSnError("bns_write_failed")?PA(this.detail):null}static fromRpcError(t,e){if(e instanceof NA)return e;const n=e instanceof Error?e.message:String(e),r=xA.exec(n);if(r){const e=parseInt(r[1],10),s=r[2],i=n.slice(r.index+r[0].length);return new NA("sn",`${t} failed: [SN:${e}:${s}] ${i}`,e,s,i)}return new NA("transport",`${t} failed: ${n}`)}}function PA(t){try{const e=JSON.parse(t);return null===e||"object"!=typeof e||Array.isArray(e)?null:e}catch{return null}}const DA={auth:eA,deviceinfo:nA,"bns-proxy":rA},BA=[rA,nA,eA,sA,tA];function UA(t,e){const n=DA[e],r=t.replace(/\/+$/,"");for(const s of BA)if(r.endsWith(s))return`${r.slice(0,r.length-s.length)}${n}`;return`${r}${n}`}const LA=[iA,rA,nA,eA,sA,tA],MA=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/,FA=/[\u0000-\u001f\u007f-\u009f]/u;function GA(t){throw new NA("validation",t)}function jA(t){return(new TextEncoder).encode(t).byteLength}function HA(t,e){return(null===t||"object"!=typeof t||Array.isArray(t))&&GA(`${e} must be a JSON object`),t}function VA(t,e){return"string"!=typeof t&&GA(`${e} must be a string`),t}function WA(t,e){return"number"!=typeof t&&GA(`${e} must be a number`),t}function KA(t,e){const n=WA(t,e);return Number.isSafeInteger(n)||GA(`${e} must be a safe integer`),n}function zA(t,e){const n=KA(t,e);return(n<-2147483648||n>2147483647)&&GA(`${e} must fit in a signed 32-bit integer`),n}function qA(t,e){return Array.isArray(t)||GA(`${e} must be an array`),t}function $A(t){return jA(t)<=128&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(t)}function QA(t){const e=t.split(".");if(4!==e.length)return null;const n=e.map((t=>Number(t)));return n.some(((t,n)=>!/^\d+$/.test(e[n])||!Number.isInteger(t)||t<0||t>255))?null:n}function JA(t){const e=QA(t);if(!e)return!1;const[n,r,s]=e;return!(0===n||10===n||127===n||100===n&&r>=64&&r<=127||169===n&&254===r||172===n&&r>=16&&r<=31||192===n&&0===r&&0===s||192===n&&0===r&&2===s||192===n&&88===r&&99===s||192===n&&168===r||198===n&&(18===r||19===r)||198===n&&51===r&&100===s||203===n&&0===r&&113===s||n>=224)}function YA(t,e){const n=Date.parse(t);return MA.test(t)&&Number.isFinite(n)||GA(`${e} must be an RFC 3339 timestamp`),n}function ZA(t,e=Date.now()){1!==t.schema_version&&GA(`unsupported schema_version ${t.schema_version}, expected 1`),(0===t.config_version.length||jA(t.config_version)>128||t.config_version.trim()!==t.config_version||FA.test(t.config_version))&&GA("config_version must be 1..=128 non-control bytes without surrounding whitespace");const n=YA(t.generated_at,"generated_at"),r=YA(t.expires_at,"expires_at"),s=e instanceof Date?e.getTime():"number"==typeof e?e:Date.parse(e);Number.isFinite(s)||GA("validation time is invalid"),n>=r&&GA("expires_at must be later than generated_at"),r<=s&&GA("region probe config is expired");const i=t.policy;"tcp_connect"!==i.probe_method&&GA(`unsupported probe_method ${JSON.stringify(i.probe_method)}`),"ipv4"!==i.ip_family&&GA(`unsupported ip_family ${JSON.stringify(i.ip_family)}`),(i.samples_per_url<1||i.samples_per_url>3)&&GA("samples_per_url must be in 1..=3"),(i.connect_timeout_ms<1||i.connect_timeout_ms>1e4)&&GA("connect_timeout_ms must be in 1..=10000"),(i.round_timeout_ms<1||i.round_timeout_ms>3e4)&&GA("round_timeout_ms must be in 1..=30000"),(i.max_concurrency<1||i.max_concurrency>32)&&GA("max_concurrency must be in 1..=32"),(i.minimum_valid_urls<2||i.minimum_valid_urls>16)&&GA("minimum_valid_urls must be in 2..=16"),(!Number.isFinite(i.confident_ratio)||i.confident_ratio<=0||i.confident_ratio>1)&&GA("confident_ratio must be finite and in (0, 1]"),(i.cache_ttl_sec<1||i.cache_ttl_sec>21600)&&GA("cache_ttl_sec must be in 1..=21600"),(t.regions.length<1||t.regions.length>64)&&GA("regions must contain 1..=64 entries");const o=new Set,a=new Set,c=new Map;let l=0;for(const h of t.regions){$A(h.region_id)||GA(`invalid canonical region_id ${JSON.stringify(h.region_id)}`),o.has(h.region_id)&&GA(`duplicate region_id ${JSON.stringify(h.region_id)}`),o.add(h.region_id),(h.probe_urls.length<2||h.probe_urls.length>16)&&GA(`region ${h.region_id} must contain 2..=16 probe_urls`),i.minimum_valid_urls>h.probe_urls.length&&GA(`region ${h.region_id} has fewer probe_urls than minimum_valid_urls`),l+=h.probe_urls.length,l>256&&GA("config contains more than 256 probe URLs");for(const t of h.probe_urls){let e;(0===t.id.length||jA(t.id)>128||t.id.trim()!==t.id||FA.test(t.id))&&GA(`probe URL id in region ${h.region_id} must be 1..=128 non-control bytes without surrounding whitespace`),a.has(t.id)&&GA(`duplicate probe URL id ${JSON.stringify(t.id)}`),a.add(t.id);try{e=new URL(t.url)}catch(u){GA(`invalid probe URL ${JSON.stringify(t.url)}: ${String(u)}`)}"https:"!==e.protocol&&GA(`probe URL ${JSON.stringify(t.url)} must use https`),(!e.hostname||e.username||e.password)&&GA(`probe URL ${JSON.stringify(t.url)} must be absolute and must not contain userinfo`),""!==e.port&&GA(`probe URL ${JSON.stringify(t.url)} must use port 443`);const n=QA(e.hostname),r=e.hostname.startsWith("[")&&e.hostname.endsWith("]");(n&&!JA(e.hostname)||r)&&GA(`probe URL ${JSON.stringify(t.url)} has a non-public or unsupported literal IP`);const s=c.get(e.origin);void 0!==s&&(s!==h.region_id&&GA(`probe origin ${e.origin} is assigned to both ${s} and ${h.region_id}`),GA(`probe origin ${e.origin} is duplicated in region ${h.region_id}`)),c.set(e.origin,h.region_id)}}}function XA(t){let e,n;try{e="string"==typeof t?t:new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch(s){GA(`parse region probe config JSON failed: ${String(s)}`)}try{n=JSON.parse(e)}catch(s){GA(`parse region probe config JSON failed: ${String(s)}`)}const r=function(t){const e=HA(t,"region probe config"),n=HA(e.policy,"policy"),r={probe_method:VA(n.probe_method,"policy.probe_method"),samples_per_url:KA(n.samples_per_url,"policy.samples_per_url"),connect_timeout_ms:KA(n.connect_timeout_ms,"policy.connect_timeout_ms"),round_timeout_ms:KA(n.round_timeout_ms,"policy.round_timeout_ms"),max_concurrency:KA(n.max_concurrency,"policy.max_concurrency"),ip_family:VA(n.ip_family,"policy.ip_family"),minimum_valid_urls:KA(n.minimum_valid_urls,"policy.minimum_valid_urls"),confident_ratio:WA(n.confident_ratio,"policy.confident_ratio"),cache_ttl_sec:KA(n.cache_ttl_sec,"policy.cache_ttl_sec")},s=qA(e.regions,"regions").map(((t,e)=>{const n=HA(t,`regions[${e}]`),r=qA(n.probe_urls,`regions[${e}].probe_urls`).map(((t,n)=>{const r=HA(t,`regions[${e}].probe_urls[${n}]`),s={id:VA(r.id,`regions[${e}].probe_urls[${n}].id`),url:VA(r.url,`regions[${e}].probe_urls[${n}].url`)};return void 0!==r.provider&&null!==r.provider&&(s.provider=VA(r.provider,`regions[${e}].probe_urls[${n}].provider`)),s}));return{region_id:VA(n.region_id,`regions[${e}].region_id`),priority:void 0===n.priority?0:zA(n.priority,`regions[${e}].priority`),probe_urls:r}}));return{schema_version:KA(e.schema_version,"schema_version"),config_version:VA(e.config_version,"config_version"),generated_at:VA(e.generated_at,"generated_at"),expires_at:VA(e.expires_at,"expires_at"),policy:r,regions:s}}(n);return ZA(r),r}function t_(t){let e;try{e=new URL(t.trim())}catch(s){GA(`invalid SN base URL for region probe config: ${String(s)}`)}"https:"!==e.protocol&&GA("region probe config must be fetched from the target SN over HTTPS"),(!e.hostname||e.username||e.password)&&GA("SN region probe config URL must have a host and no userinfo"),e.search="",e.hash="";const n=e.pathname.replace(/\/+$/,"");let r=n;for(const i of LA)if(n.endsWith(i)){r=n.slice(0,n.length-i.length);break}return e.pathname=`${r}${iA}`,e.toString()}const e_=async(t,e)=>{if("function"!=typeof globalThis.fetch)throw new Error("fetch is not available in this runtime");return globalThis.fetch(t,e)};const n_="sn-device";function r_(t){return void 0!==t.ttl?{ttl:t.ttl,value:t.value}:{value:t.value}}function s_(t){const e={device_did:t.device_did,domain:t.domain,record_type:t.record_type};return void 0!==t.record&&(e.record=t.record),void 0!==t.ttl&&(e.ttl=t.ttl),void 0!==t.has_cert&&(e.has_cert=t.has_cert),e}function i_(t){return{endpoint_id:t.endpoint_id,protocol:t.protocol,host:t.host,port:t.port,scope:t.scope,priority:t.priority,source:t.source,expires_at:t.expires_at}}function o_(t){const e={device_name:t.device_name,device_ip:t.device_ip,device_info:t.device_info};return void 0!==t.device_did&&(e.device_did=t.device_did),void 0!==t.endpoints&&t.endpoints.length>0&&(e.endpoints=t.endpoints.map(i_)),void 0!==t.report_seq&&(e.report_seq=t.report_seq),void 0!==t.ttl&&(e.ttl=t.ttl),e}const a_=Object.freeze(Object.defineProperty({__proto__:null,LEGACY_SN_BNS_PATH:sA,METHOD_AUTH_CHECK_ACTIVE_CODE:cA,METHOD_AUTH_CHECK_USERNAME:aA,METHOD_AUTH_LOGIN:uA,METHOD_AUTH_LOGOUT:dA,METHOD_AUTH_ME:fA,METHOD_AUTH_REFRESH:hA,METHOD_AUTH_REGISTER:lA,METHOD_BNS_PUBLISH_DNS_TXT:IA,METHOD_BNS_PUBLISH_DOCUMENT:OA,METHOD_DEVICEINFO_RESOLVE_OOD_BY_DID:TA,METHOD_DEVICEINFO_RESOLVE_OOD_BY_HOSTNAME:RA,METHOD_DEVICE_GET:kA,METHOD_DEVICE_LIST:SA,METHOD_DEVICE_REGISTER:vA,METHOD_DEVICE_UPDATE:EA,METHOD_DOMAIN_BIND:AA,METHOD_DOMAIN_UNBIND:_A,METHOD_OWNER_REMOVE_BOUND_ZONE:CA,METHOD_USER_ADD_DNS_RECORD:mA,METHOD_USER_GET_PROFILE:pA,METHOD_USER_LIST_DNS_RECORDS:wA,METHOD_USER_REMOVE_DNS_RECORD:yA,METHOD_USER_SET_SELF_CERT:gA,METHOD_ZONE_GET_INFO:bA,SN_AUTH_PATH:eA,SN_BNS_PROXY_PATH:rA,SN_DEVICEINFO_PATH:nA,SN_DEVICE_TOKEN_AUD:n_,SN_DEVICE_TOKEN_DEFAULT_TTL_SECS:600,SN_ERROR_CODES:{invalid_params:1e3,invalid_username:1001,username_already_exists:1002,invalid_active_code:1003,user_auth_not_found:1004,invalid_password:1005,auth_required:1006,invalid_token:1007,user_not_found:1008,device_not_found:1012,device_permission_denied:1013,invalid_device_did:1014,invalid_domain:1015,domain_proof_failed:1016,hostname_not_found:1017,cross_user_access_denied:1018,unsupported_password_algo:1019,invalid_password_storage:1020,user_not_activated:1022,bns_permission_denied:1023,bns_name_already_exists:1024,bns_write_failed:1025,bns_proxy_unavailable:1026,bns_controller_unavailable:1027,invalid_email:1028,email_already_bound:1029,internal_error:1099},SN_REGION_PROBE_CONFIG_PATH:iA,SN_REGION_PROBE_FETCH_TIMEOUT:5e3,SN_REGION_PROBE_MAX_CONFIG_BYTES:oA,SN_REGION_PROBE_MAX_REGIONS:64,SN_REGION_PROBE_MAX_TOTAL_URLS:256,SN_REGION_PROBE_MAX_URLS_PER_REGION:16,SN_REGION_PROBE_SCHEMA_VERSION:1,SN_ROOT_PATH:tA,SnClient:class{constructor(t,e=null,n={}){this.authRpc=new jn(UA(t,"auth"),e,null,n),this.deviceInfoRpc=new jn(UA(t,"deviceinfo"),e,null,n),this.bnsProxyRpc=new jn(UA(t,"bns-proxy"),e,null,n)}setSeq(t){this.authRpc.setSeq(t),this.deviceInfoRpc.setSeq(t),this.bnsProxyRpc.setSeq(t)}syncSessionToken(t){this.authRpc.setSessionToken(t),this.deviceInfoRpc.setSessionToken(t),this.bnsProxyRpc.setSessionToken(t)}getSessionToken(){return this.authRpc.getSessionToken()}async call(t,e,n){try{return await t.call(e,n)}catch(r){throw NA.fromRpcError(e,r)}}async checkUsername(t){return this.call(this.authRpc,aA,{name:t})}async checkActiveCode(t){return this.call(this.authRpc,cA,{active_code:t})}async register(t){const e={name:t.name,email:t.email,pwd_hash:t.pwd_hash,active_code:t.active_code};return void 0!==t.request_id&&(e.request_id=t.request_id),void 0!==t.region&&(e.region=t.region),void 0!==t.asset_owner&&(e.asset_owner=t.asset_owner),void 0!==t.owner_config&&(e.owner_config=t.owner_config),void 0!==t.initial_documents&&(e.initial_documents=function(t){const e={};void 0!==t.zone&&(e.zone=t.zone);void 0!==t.boot&&(e.boot=t.boot);void 0!==t.dns_txt&&(e.dns_txt=t.dns_txt.map((t=>({ttl:t.ttl,value:t.value}))));return e}(t.initial_documents)),this.call(this.authRpc,lA,e)}async login(t){const e={name:t.name,pwd_hash:t.pwd_hash};return void 0!==t.active_code&&(e.active_code=t.active_code),this.call(this.authRpc,uA,e)}async refresh(t){return this.call(this.authRpc,hA,{refresh_token:t})}async logout(t){return this.call(this.authRpc,dA,{refresh_token:t??null})}async me(){return this.call(this.authRpc,fA,{})}async getProfile(){return this.call(this.authRpc,pA,{})}async setSelfCert(t,e){return this.call(this.authRpc,gA,{self_cert:t,device_did:e??null})}async addDnsRecord(t){return this.call(this.authRpc,mA,s_(t))}async removeDnsRecord(t){return this.call(this.authRpc,yA,s_(t))}async listDnsRecords(){return this.call(this.authRpc,wA,{})}async getZoneInfo(){return this.call(this.authRpc,bA,{})}async bindDomain(t){return this.call(this.authRpc,AA,{domain:t})}async unbindDomain(t){return this.call(this.authRpc,_A,{domain:t})}async registerDeviceOnline(t){return this.call(this.deviceInfoRpc,vA,o_(t))}async updateDeviceOnline(t){return this.call(this.deviceInfoRpc,EA,o_(t))}async getDeviceOnline(t){return this.call(this.deviceInfoRpc,kA,{device_name:t.device_name??null,device_did:t.device_did??null})}async listDevicesOnline(t={}){const e={};return void 0!==t.state&&(e.state=t.state),void 0!==t.offset&&(e.offset=t.offset),void 0!==t.limit&&(e.limit=t.limit),this.call(this.deviceInfoRpc,SA,e)}async resolveOodByDid(t){return this.call(this.deviceInfoRpc,TA,{source_device_id:t})}async resolveOodByHostname(t){return this.call(this.deviceInfoRpc,RA,{dest_host:t})}async publishDnsTxt(t){const e={name:t.name,mode:t.mode};switch(void 0!==t.request_id&&(e.request_id=t.request_id),t.mode){case"add":if(!t.value)throw new NA("validation","publish_dns_txt mode=add requires value");e.value=t.value,void 0!==t.ttl&&(e.ttl=t.ttl);break;case"remove":if(!t.value)throw new NA("validation","publish_dns_txt mode=remove requires value");e.value=t.value;break;case"replace":if(!t.records)throw new NA("validation","publish_dns_txt mode=replace requires records");e.records=t.records.map(r_);break;default:throw new NA("validation",`publish_dns_txt mode \`${t.mode}\` is not supported`)}return this.call(this.bnsProxyRpc,IA,e)}async publishDocument(t){const e=null!==t.document&&"object"==typeof t.document&&!Array.isArray(t.document),n="string"==typeof t.document?t.document.trim().split("."):[],r=3===n.length&&n.every((t=>t.length>0));if(!e&&!r)throw new NA("validation","publish_document document must be a JSON object or non-empty compact JWT string");if("owner"===t.doc_type.trim().toLowerCase()&&!e)throw new NA("validation","owner document must be a JSON object");const s={name:t.name,doc_type:t.doc_type,document:t.document};return void 0!==t.request_id&&(s.request_id=t.request_id),this.call(this.bnsProxyRpc,OA,s)}async removeBoundZone(t){return this.call(this.bnsProxyRpc,CA,{name:t.name,zone_did:t.zone_did,expected_owner_hash:t.expected_owner_hash,request_id:t.request_id,owner_authorization:t.owner_authorization})}},SnClientError:NA,fetchSnRegionProbeConfig:async function(t,e=null,n={}){const r=t_(t),s={Accept:"application/json"};null!==e&&(/[\u0000-\u001f\u007f]/.test(e)&&GA("invalid cached region probe ETag: header value contains control characters"),s["If-None-Match"]=e);const i=new AbortController,o=setTimeout((()=>i.abort()),5e3);try{let t;try{t=await(n.fetcher??e_)(r,{method:"GET",headers:s,redirect:"manual",credentials:"omit",signal:i.signal})}catch(a){throw new NA("transport",`fetch SN region probe config from ${r} failed: ${String(a)}`)}if(304===t.status)return{kind:"not_modified"};if(404===t.status)return{kind:"not_configured"};if(200!==t.status)throw new NA("transport",`fetch SN region probe config from ${r} returned HTTP ${t.status}`);const e=t.headers.get("content-type")??"";if("application/json"!==e.split(";")[0].trim().toLowerCase())throw new NA("transport",`SN region probe config from ${r} has unsupported Content-Type ${JSON.stringify(e)}`);const o=t.headers.get("content-length");if(null!==o&&/^\d+$/.test(o)&&Number(o)>oA)throw new NA("transport",`SN region probe config from ${r} exceeds 1048576 bytes`);let c,l;try{c=await async function(t,e){if(!t.body){const n=new Uint8Array(await t.arrayBuffer());if(n.byteLength>oA)throw new NA("transport",`SN region probe config from ${e} exceeds 1048576 bytes`);return n}const n=t.body.getReader(),r=[];let s=0;for(;;){const{done:t,value:i}=await n.read();if(t)break;if(s+=i.byteLength,s>oA)throw await n.cancel(),new NA("transport",`SN region probe config from ${e} exceeds 1048576 bytes`);r.push(i)}const i=new Uint8Array(s);let o=0;for(const a of r)i.set(a,o),o+=a.byteLength;return i}(t,r)}catch(a){if(a instanceof NA)throw a;throw new NA("transport",`read SN region probe config from ${r} failed: ${String(a)}`)}try{l=XA(c)}catch(a){const t=a instanceof NA?a.detail:String(a);throw new NA("validation",`invalid SN region probe config from ${r}: ${t}`)}return{kind:"modified",document:{config:l,etag:t.headers.get("etag"),cache_control:t.headers.get("cache-control")}}}finally{clearTimeout(o)}},generateSnDeviceToken:async function(t,e,n,r=600){const s=Math.floor(Date.now()/1e3);return Mn.signJwtEdDSA({aud:n_,exp:s+r,iss:e,sub:t},n)},isCanonicalSnRegionId:$A,isPublicSnProbeIp:JA,normalizeSnRegionIdHint:function(t){const e=t.trim();if(0===jA(e)||jA(e)>128)return null;let n="",r=!1;for(const s of e)if(/^[A-Za-z0-9]$/.test(s))r&&n.length>0&&(n+="-"),r=!1,n+=s.toLowerCase();else{if("-"!==s&&"_"!==s&&"/"!==s&&"."!==s&&!/^\s$/u.test(s))return null;r=n.length>0}return n.length>0?n:null},normalizeSnRegionProbeUrl:t_,normalizeSnUrl:UA,parseSnRegionProbeConfig:XA,validateSnRegionProbeConfig:ZA},Symbol.toStringTag,{value:"Module"}));let c_=null;function l_(t,e){let n=null,r=0;const s=[];return{result:new Promise(((i,o)=>{let a;try{a=new Worker(function(){if(!c_){const t=new Blob(['\n"use strict";\nself.onmessage = async function (e) {\n var file = e.data.file;\n var chunkSize = e.data.chunkSize;\n var fileSize = file.size;\n try {\n var offset = 0;\n var index = 0;\n while (offset < fileSize) {\n var end = Math.min(offset + chunkSize, fileSize);\n var buf = await file.slice(offset, end).arrayBuffer();\n var hashBuf = await crypto.subtle.digest("SHA-256", buf);\n var hash = new Uint8Array(hashBuf);\n self.postMessage(\n { type: "chunk", index: index, hash: hash, offset: offset, length: end - offset },\n [hashBuf]\n );\n offset = end;\n index++;\n }\n self.postMessage({ type: "done" });\n } catch (err) {\n self.postMessage({ type: "error", message: err && err.message ? err.message : String(err) });\n }\n};\n'],{type:"application/javascript"});c_=URL.createObjectURL(t)}return c_}())}catch{return void o(new Error("Failed to create hash worker"))}a.onmessage=t=>{const e=t.data;if("chunk"===e.type){const t={index:e.index,hash:e.hash,offset:e.offset,length:e.length};s.push(t),r+=t.length,n&&n(r)}else"done"===e.type?(a.terminate(),i(s)):"error"===e.type&&(a.terminate(),o(new Error(e.message??"Worker hash error")))},a.onerror=t=>{a.terminate(),o(new Error(t.message??"Worker error"))},a.postMessage({file:t,chunkSize:e})})),onProgress(t){n=t}}}class u_ extends Error{constructor(t,e){super(e??t),this.code=t,this.name="NdmError"}}class h_ extends Error{constructor(t,e,n,r){super(n??`NDM store API request failed with status ${t}`),this.name="NdmStoreApiError",this.status=t,this.errorCode=e,this.responseBody=r}}const d_=4096,f_=new Map;let p_=0;let g_={getCapabilities:()=>({canRevealRealPath:!1,canUseNDMCache:!1,canUseNDMStore:!1,canPickDirectory:"undefined"!=typeof HTMLInputElement&&"webkitdirectory"in HTMLInputElement.prototype,canPickMixed:!1}),pickFiles(t){return new Promise(((e,n)=>{const r=document.createElement("input");if(r.type="file","single_dir"===t.mode){if(!this.getCapabilities().canPickDirectory)return void n(new u_("DIRECTORY_NOT_SUPPORTED","This browser does not support directory selection"));r.webkitdirectory=!0}else"multi_file"!==t.mode&&"mixed"!==t.mode||(r.multiple=!0);t.accept&&t.accept.length>0&&"single_dir"!==t.mode&&(r.accept=t.accept.join(","));let s=!1;r.addEventListener("change",(()=>{if(s)return;s=!0;const t=r.files;t&&0!==t.length?e(Array.from(t)):n(new u_("USER_CANCELLED","No files selected"))}));const i=()=>{setTimeout((()=>{s||(s=!0,n(new u_("USER_CANCELLED","User cancelled file selection"))),window.removeEventListener("focus",i)}),500)};window.addEventListener("focus",i),r.click()}))}};function m_(t,e){if("undefined"!=typeof window&&"function"==typeof window.fetch)return window.fetch(t,e);if("undefined"!=typeof globalThis&&"function"==typeof globalThis.fetch)return globalThis.fetch(t,e);throw new Error("fetch is not available in this runtime")}function y_(t){return t.replace(/\/+$/,"")}function w_(t){return encodeURIComponent(t).replace(/%3A/gi,":")}function b_(t){if(null==t?void 0:t.endpoint)return y_(t.endpoint);const e=lo();if(e)return y_(e);throw new u_("STORE_API_ENDPOINT_REQUIRED","NDM structured store endpoint is unknown; pass options.endpoint or call initBuckyOS first")}async function A_(t,e,n){var r;!function(){if(co()===pi.Browser)throw new u_("STORE_API_NOT_SUPPORTED_IN_RUNTIME","NDM structured store APIs are not available in pure Browser runtime")}();const s=b_(n),i=(null==n?void 0:n.fetcher)??m_,o=void 0!==(null==n?void 0:n.sessionToken)?n.sessionToken:await uo(),a={Accept:"application/json","Content-Type":"application/json",...(null==n?void 0:n.headers)??{}};o&&!a.Authorization&&(a.Authorization=`Bearer ${o}`);const c=await i(`${s}/ndm/v1/store/${t}`,{method:"POST",headers:a,body:JSON.stringify(e),credentials:(null==n?void 0:n.credentials)??"include"});if(204===c.status)return void(await(null==(r=c.body)?void 0:r.cancel()));const l=(c.headers.get("content-type")??"").includes("application/json")?await c.json():await c.text();if(!c.ok){const t=l&&"object"==typeof l&&!Array.isArray(l)?l:null;throw new h_(c.status,null==t?void 0:t.error,(null==t?void 0:t.message)??("string"==typeof l&&l.length>0?l:`NDM store API request failed with status ${c.status}`),l)}return l}async function __(t,e){const n=[`scope=${w_(t.scope)}`,`quick_hash=${w_(t.quick_hash)}`];t.inner_path&&n.push(`inner_path=${w_(t.inner_path)}`);const r=await async function(t,e){const n=b_(e),r=(null==e?void 0:e.fetcher)??m_,s=void 0!==(null==e?void 0:e.sessionToken)?e.sessionToken:await uo(),i={Accept:"application/json",...(null==e?void 0:e.headers)??{}};s&&!i.Authorization&&(i.Authorization=`Bearer ${s}`);const o=await r(`${n}${t}`,{method:"GET",headers:i,credentials:(null==e?void 0:e.credentials)??"include"}),a=(o.headers.get("content-type")??"").includes("application/json")?await o.json():await o.text();if(!o.ok){const t=a&&"object"==typeof a&&!Array.isArray(a)?a:null;throw new h_(o.status,null==t?void 0:t.error,(null==t?void 0:t.message)??("string"==typeof a&&a.length>0?a:`NDM zone gateway request failed with status ${o.status}`),a)}return a}(`/ndm/v1/objects/lookup?${n.join("&")}`,e);return function(t){try{return Mn.ObjId.fromString(t).isChunk()}catch{return!1}}(t.quick_hash),r}async function v_(t,e=33554432){const n=t.size,r=[];if(n<=e){const e=new Uint8Array(await t.arrayBuffer()),s=Mn.sha256Bytes(e),i=Mn.ChunkId.fromMix256Result(e.length,s).toString();r.push({chunkId:i,offset:0,length:e.length,uploaded:!1});const o=new Mn.FileObject(t.name,n,i),[a]=o.genObjId();return{objectId:a.toString(),chunks:r,fileObject:o.toJSON()}}const s=new Mn.SimpleChunkList;let i=0;for(;i<n;){const o=Math.min(i+e,n),a=new Uint8Array(await t.slice(i,o).arrayBuffer()),c=Mn.sha256Bytes(a),l=Mn.ChunkId.fromMix256Result(a.length,c);s.appendChunk(l),r.push({chunkId:l.toString(),offset:i,length:a.length,uploaded:!1}),i=o}const[o]=s.genObjId(),a=new Mn.FileObject(t.name,n,o.toString()),[c]=a.genObjId();return{objectId:c.toString(),chunks:r,fileObject:a.toJSON()}}async function E_(t,e,n=33554432){if("undefined"==typeof Worker||"undefined"==typeof Blob||"undefined"==typeof URL||"function"!=typeof URL.createObjectURL||"undefined"==typeof crypto||void 0===crypto.subtle)return v_(t,n);let r;try{const s=l_(t,n);e&&s.onProgress(e);const i=3e5,o=new Promise(((t,e)=>{setTimeout((()=>e(new Error("hash worker timeout"))),i)}));r=await Promise.race([s.result,o])}catch{return v_(t,n)}const s=t.size,i=[];if(1===r.length){const e=r[0],n=Mn.ChunkId.fromMix256Result(e.length,e.hash).toString();i.push({chunkId:n,offset:0,length:e.length,uploaded:!1});const o=new Mn.FileObject(t.name,s,n),[a]=o.genObjId();return{objectId:a.toString(),chunks:i,fileObject:o.toJSON()}}const o=new Mn.SimpleChunkList;for(const u of r){const t=Mn.ChunkId.fromMix256Result(u.length,u.hash);o.appendChunk(t),i.push({chunkId:t.toString(),offset:u.offset,length:u.length,uploaded:!1})}const[a]=o.genObjId(),c=new Mn.FileObject(t.name,s,a.toString()),[l]=c.genObjId();return{objectId:l.toString(),chunks:i,fileObject:c.toJSON()}}function k_(t,e,n){const r=new Mn.FileObject(t,e,n),[s]=r.genObjId();return{objectId:s.toString(),fileObject:r.toJSON()}}async function S_(t){const e=t.size;if(e<12288)return null;const n=new Uint8Array(await t.slice(0,d_).arrayBuffer()),r=Math.floor(e/2),s=new Uint8Array(await t.slice(r,r+d_).arrayBuffer()),i=new Uint8Array(n.length+s.length);i.set(n,0),i.set(s,n.length);const o=Mn.sha256Bytes(i);return Mn.ChunkId.fromMixHashResult(e,o,"qcid").toString()}function T_(t,e){const n=t;if("string"==typeof n.same_as&&n.same_as.length>0)return n.same_as;const r=["chunk_list_id","chunklistid","chunk_id","chunkid","content_id","content"];for(const s of r){const t=n[s];if("string"==typeof t&&t.length>0)return t}return"string"==typeof n.object_id&&n.object_id.length>0&&n.object_id!==e?n.object_id:void 0}async function R_(t){const e=function(){var t;const e=lo();return e?y_(e):"undefined"!=typeof window&&(null==(t=window.location)?void 0:t.origin)?y_(window.location.origin):void 0}();if(!e)return null;const n=await S_(t);if(!n)return null;for(const s of["app","global"])try{const r=T_(await __({scope:s,quick_hash:n},{endpoint:e,sessionToken:co()===pi.Browser?null:void 0}),n);if(!r)continue;return{...k_(t.name,t.size,r),locality:"store"}}catch(r){if(r instanceof h_&&404===r.status)continue;return null}return null}function I_(t,e){const n=t[0].webkitRelativePath,r={kind:"dir",objectId:"",name:n?n.split("/")[0]:"directory",children:[]},s=new Map;s.set("",r);for(const i of e){const t=(i.relativePath??i.name).split("/"),e=t.length>1?t.slice(1):t;let n=r;for(let r=0;r<e.length-1;r++){const t=e[r],i=e.slice(0,r+1).join("/");let o=s.get(i);o||(o={kind:"dir",objectId:"",name:t,relativePath:i,children:[]},s.set(i,o),n.children.push(o)),n=o}n.children.push(i)}return O_(r),r}function O_(t){const e=new Mn.DirObject(t.name);if(t.children)for(const r of t.children)if("file"===r.kind){if(!r._ndnFileObject)throw new u_("UPLOAD_FAILED",`Missing NDN FileObject for ${r.name}`);e.addFile(r.name,r._ndnFileObject,r.size)}else{const t=O_(r);e.addDirectory(r.name,Mn.ObjId.fromString(t.objectId),t.totalSize)}const[n]=e.genObjId();return t.objectId=n.toString(),{objectId:t.objectId,totalSize:e.total_size,fileCount:e.file_count,fileSize:e.file_size}}function C_(t,e){if(!e||!e.enabled)return!1;if(!e.forTypes||0===e.forTypes.length)return t.type.startsWith("image/");for(const n of e.forTypes)if(n.endsWith("/*")){const e=n.slice(0,-1);if(t.type.startsWith(e))return!0}else if(n.startsWith(".")){if(t.name.toLowerCase().endsWith(n.toLowerCase()))return!0}else if(t.type===n)return!0;return!1}async function x_(t,e){const n=e.maxWidth??256,r=e.maxHeight??256;try{return t.type.startsWith("image/")?await function(t,e,n){return new Promise((r=>{const s=URL.createObjectURL(t),i=new Image;i.onload=()=>{let t=i.naturalWidth,o=i.naturalHeight;if(t>e||o>n){const r=Math.min(e/t,n/o);t=Math.round(t*r),o=Math.round(o*r)}const a=document.createElement("canvas");a.width=t,a.height=o;a.getContext("2d").drawImage(i,0,0,t,o);const c=a.toDataURL("image/jpeg",.8);URL.revokeObjectURL(s),r({available:!0,url:c,width:t,height:o,mimeType:"image/jpeg"})},i.onerror=()=>{URL.revokeObjectURL(s),r({available:!1,errorCode:"THUMBNAIL_GENERATION_FAILED"})},i.src=s}))}(t,n,r):{available:!1,errorCode:"UNSUPPORTED_TYPE"}}catch{return{available:!1,errorCode:"THUMBNAIL_GENERATION_FAILED"}}}async function N_(t){const e=f_.get(t);if(!e)throw new u_("SESSION_NOT_FOUND",`Session ${t} not found`);const n={};let r=0,s=0;for(const[i,o]of e.objectStates)n[i]={objectId:o.objectId,uploadedBytes:o.uploadedBytes,totalBytes:o.size,state:o.state},r+=o.uploadedBytes,"completed"===o.state&&s++;return{sessionId:t,materializationStatus:e.materializationStatus,uploadStatus:e.uploadStatus,summary:e.summary,progress:{uploadedBytes:r,uploadedObjects:s,totalBytes:e.summary.totalBytes,totalObjects:e.summary.totalFiles},perObjectProgress:n}}async function P_(t,e,n,r,s,i,o,a,c){const l=e.slice(n.offset,n.offset+n.length),u=new Uint8Array(await l.arrayBuffer()),h=`${s}/${n.chunkId}`;let d;try{d=await Promise.resolve().then((()=>require("./tus_client-2b915a81.js")))}catch(f){const t=f instanceof Error?f.message:String(f);throw new u_("UPLOAD_FAILED",`Failed to load tus-js-client: ${t}`)}return new Promise(((l,f)=>{if(null==c?void 0:c.aborted)return void f(new u_("UPLOAD_FAILED","Upload aborted"));const p=new Blob([u]),g=new d.Upload(p,{endpoint:`${t}/ndm/v1/uploads`,headers:o?{Authorization:`Bearer ${o}`}:{},chunkSize:u.length,retryDelays:[0,1e3,3e3,5e3],storeFingerprintForResuming:!1,metadata:{app_id:s,logical_path:h,file_name:e.name,file_size:String(e.size),file_hash:i,chunk_index:String(r),chunk_hash:n.chunkId,mime_type:e.type||"application/octet-stream"},onProgress:t=>{a(t)},onSuccess:()=>{a(u.length),l(n.chunkId)},onError:t=>{f(new u_("UPLOAD_FAILED",t.message))}});c&&c.addEventListener("abort",(()=>{g.abort(!0),f(new u_("UPLOAD_FAILED","Upload aborted"))})),g.start()}))}async function D_(t,e){const n=f_.get(t);if(!n)throw new u_("SESSION_NOT_FOUND",`Session ${t} not found`);if("completed"===n.uploadStatus||"not_required"===n.uploadStatus)return N_(t);if("uploading"===n.uploadStatus)return N_(t);if("all_in_store"===n.materializationStatus)return n.uploadStatus="not_required",N_(t);n.uploadStatus="uploading",n.uploadStartTime=Date.now(),n.abortController=new AbortController;const r=(null==e?void 0:e.concurrency)??3;let s;s=(null==e?void 0:e.endpoint)?e.endpoint.replace(/\/+$/,""):"undefined"!=typeof window?window.location.origin:"";return async function(t,e,n,r){const s=Array.from(t.objectStates.values()).filter((t=>"completed"!==t.state));let i=0,o=0,a=!1;await new Promise(((c,l)=>{function u(){if(!a){if(o>=s.length&&0===i){const e=Array.from(t.objectStates.values()).every((t=>"completed"===t.state));return t.uploadStatus=e?"completed":"failed",void c()}for(;i<n&&o<s.length;){const n=s[o++];i++,B_(t,e,n,r).then((()=>{i--,u()})).catch((()=>{i--,a||(a=!0,t.uploadStatus="failed",l(new u_("UPLOAD_FAILED",`Upload of ${n.name} failed`)))}))}}}u()}))}(n,s,r,void 0!==(null==e?void 0:e.sessionToken)?async()=>e.sessionToken??null:async()=>uo().catch((()=>null))).catch((()=>{})),N_(t)}async function B_(t,e,n,r){var s;n.state="uploading";for(const[i,o]of n.chunks.entries())o.uploaded||(await P_(e,n.file,o,i,"default",n.objectId,await r(),(t=>{const e=n.chunks.filter((t=>t!==o&&t.uploaded)).reduce(((t,e)=>t+e.length),0);n.uploadedBytes=e+t}),null==(s=t.abortController)?void 0:s.signal),o.uploaded=!0);n.uploadedBytes=n.size,n.state="completed"}const U_=Object.freeze(Object.defineProperty({__proto__:null,NdmError:u_,NdmStoreApiError:h_,addChunkBySameAs:async function(t,e){return A_("add_chunk_by_same_as",t,e)},anchorState:async function(t,e){return A_("anchor_state",t,e)},applyEdge:async function(t,e){return A_("apply_edge",t,e)},calculateQcidFromFile:async function(t){const e=await S_(t);if(!e)throw new Error("QCID requires file size >= 12288 bytes");return e},debugDumpExpandState:async function(t,e){return A_("debug_dump_expand_state",t,e)},forcedGcUntil:async function(t,e){return A_("forced_gc_until",t,e)},fsAcquire:async function(t,e){return A_("fs_acquire",t,e)},fsAnchorState:async function(t,e){return A_("fs_anchor_state",t,e)},fsRelease:async function(t,e){return A_("fs_release",t,e)},fsReleaseInode:async function(t,e){return A_("fs_release_inode",t,e)},getDirChild:async function(t,e){return A_("get_dir_child",t,e)},getImportProvider:function(){return g_},getImportSessionStatus:N_,getObject:async function(t,e){return A_("get_object",t,e)},getUploadProgress:async function(t){const e=await N_(t),n={sessionId:t,uploadStatus:e.uploadStatus,totalBytes:e.progress.totalBytes,uploadedBytes:e.progress.uploadedBytes,totalObjects:e.progress.totalObjects,uploadedObjects:e.progress.uploadedObjects,perObjectProgress:e.perObjectProgress},r=f_.get(t);if(r.uploadStartTime&&"uploading"===e.uploadStatus&&(n.elapsedMs=Date.now()-r.uploadStartTime,n.uploadedBytes>0&&n.elapsedMs>0)){n.speedBps=Math.round(1e3*n.uploadedBytes/n.elapsedMs);const t=n.totalBytes-n.uploadedBytes;n.estimatedRemainingMs=Math.round(1e3*t/n.speedBps)}return n},haveChunk:async function(t,e){return A_("have_chunk",t,e)},isObjectExist:async function(t,e){return A_("is_object_exist",t,e)},isObjectStored:async function(t,e){return A_("is_object_stored",t,e)},lookupObject:__,openObject:async function(t,e){return A_("open_object",t,e)},outboxCount:async function(t){return A_("outbox_count",{},t)},pickupAndImport:async function(t){var e;const n=g_.getCapabilities();if("single_dir"===t.mode&&!n.canPickDirectory)throw new u_("DIRECTORY_NOT_SUPPORTED","Current runtime does not support directory selection");if("mixed"===t.mode&&!n.canPickMixed)throw new u_("MODE_NOT_SUPPORTED_IN_RUNTIME","Current runtime does not support mixed file/directory selection");const r=await g_.pickFiles(t);if(0===r.length)throw new u_("USER_CANCELLED","No files selected");const s=[],i=new Map;let o=!0;const a=t.onProgress,c=r.length;for(let y=0;y<r.length;y++){const n=r[y],l=n.webkitRelativePath||void 0;a&&a({phase:"qcid_lookup",fileIndex:y,fileCount:c,fileName:n.name,fileTotalBytes:n.size});const u=await R_(n);let h=null;u||(a&&a({phase:"materializing",fileIndex:y,fileCount:c,fileName:n.name,bytesProcessed:0,fileTotalBytes:n.size}),h=await E_(n,a?t=>{a({phase:"materializing",fileIndex:y,fileCount:c,fileName:n.name,bytesProcessed:t,fileTotalBytes:n.size})}:void 0));const d=(null==u?void 0:u.objectId)??h.objectId,f=(null==u?void 0:u.fileObject)??h.fileObject,p=u?[]:h.chunks,g={kind:"file",objectId:d,name:n.name,size:n.size,mimeType:n.type||void 0,relativePath:l,locality:(null==u?void 0:u.locality)??"local_only",_file:n,_ndnFileObject:f};if(C_(n,t.thumbnails)){a&&a({phase:"thumbnail",fileIndex:y,fileCount:c,fileName:n.name,fileTotalBytes:n.size});!1!==(null==(e=t.thumbnails)?void 0:e.eager)?g.thumbnail=await x_(n,t.thumbnails):(g.thumbnail={available:!1},x_(n,t.thumbnails).then((t=>{g.thumbnail=t})))}s.push(g),u||(o=!1),i.set(d,{objectId:d,name:n.name,size:n.size,file:n,uploadedBytes:u?n.size:0,state:u?"completed":"pending",chunks:p})}let l,u;if("single_dir"===t.mode){const t=I_(r,s);l=[t],u=t}else l=s,u="single_file"===t.mode?s[0]:s;const h=function(t){let e=0,n=0,r=0;return function t(s){for(const i of s)"file"===i.kind?(e++,r+=i.size):(n++,i.children&&t(i.children))}(t),{totalObjects:e+n,totalFiles:e,totalDirs:n,totalBytes:r}}(l),d=(p_+=1,`import-${Date.now()}-${p_}`);let f="ok";o||n.canUseNDMStore?f="all_in_store":n.canUseNDMCache&&(f="on_cache");const p="all_in_store"===f?"not_required":"not_started",g={sessionId:d,items:l,materializationStatus:f,uploadStatus:p,summary:h,objectStates:i};f_.set(d,g);const m={sessionId:d,selection:u,items:l,materializationStatus:f,uploadStatus:p,summary:h};return t.autoStartUpload&&"not_started"===p&&(D_(d).catch((()=>{})),m.uploadStatus="uploading"),m},pin:async function(t,e){return A_("pin",t,e)},putObject:async function(t,e){return A_("put_object",t,e)},queryChunkState:async function(t,e){return A_("query_chunk_state",t,e)},queryObjectById:async function(t,e){return A_("query_object_by_id",t,e)},removeChunk:async function(t,e){return A_("remove_chunk",t,e)},removeObject:async function(t,e){return A_("remove_object",t,e)},setImportProvider:function(t){g_=t},startUpload:D_,unpin:async function(t,e){return A_("unpin",t,e)},unpinOwner:async function(t,e){return A_("unpin_owner",t,e)}},Symbol.toStringTag,{value:"Module"})),L_="/ndm/proxy/v1";class M_ extends Error{constructor(t,e,n,r){super(n??`NDM proxy request failed with status ${t}`),this.name="NdmProxyApiError",this.status=t,this.errorCode=e,this.responseBody=r}}class F_ extends Error{constructor(t,e){super(e??t),this.name="NdmProxyError",this.code=t}}function G_(t,e){if("undefined"!=typeof window&&"function"==typeof window.fetch)return window.fetch(t,e);if("undefined"!=typeof globalThis&&"function"==typeof globalThis.fetch)return globalThis.fetch(t,e);throw new Error("fetch is not available in this runtime")}function j_(t){return t.replace(/\/+$/,"")}function H_(){const t=co();if(t===pi.Browser||t===pi.AppRuntime)throw new F_("PROXY_API_NOT_SUPPORTED_IN_RUNTIME","NDM proxy APIs are not available in Browser/AppRuntime; use ndm_client for browser import/upload flows")}function V_(t){if(null==t?void 0:t.endpoint)return j_(t.endpoint);const e=lo();if(e)return j_(e);throw new F_("PROXY_API_ENDPOINT_REQUIRED","NDM proxy endpoint is unknown; pass options.endpoint or call initBuckyOS first")}async function W_(t,e){const n=void 0!==(null==t?void 0:t.sessionToken)?t.sessionToken:await uo(),r={...e,...(null==t?void 0:t.headers)??{}};return n&&!r.Authorization&&(r.Authorization=`Bearer ${n}`),r}async function K_(t){const e=(t.headers.get("content-type")??"").includes("application/json")?await t.json():await t.text(),n=e&&"object"==typeof e&&!Array.isArray(e)?e:null;throw new M_(t.status,null==n?void 0:n.error,(null==n?void 0:n.message)??("string"==typeof e&&e.length>0?e:`NDM proxy request failed with status ${t.status}`),e)}async function z_(t,e,n){var r;H_();const s=V_(n),i=(null==n?void 0:n.fetcher)??G_,o=await W_(n,{Accept:"application/json","Content-Type":"application/json"}),a=await i(`${s}${L_}/rpc/${t}`,{method:"POST",headers:o,body:JSON.stringify(e),credentials:(null==n?void 0:n.credentials)??"include"});if(!a.ok)return K_(a);if(204===a.status)return void(await(null==(r=a.body)?void 0:r.cancel()));if(!(a.headers.get("content-type")??"").includes("application/json")){const t=await a.text();throw new M_(a.status,"invalid_data",t.length>0?t:"NDM proxy JSON RPC returned a non-JSON response",t)}return await a.json()}function q_(t,e){const n=t.get(e);if(null===n||""===n.trim())return null;const r=Number(n);return Number.isFinite(r)?r:null}async function $_(t,e,n){H_();const r=V_(n),s=(null==n?void 0:n.fetcher)??G_,i=await W_(n,{Accept:"application/octet-stream","Content-Type":"application/json"}),o=await s(`${r}${L_}${t}`,{method:"POST",headers:i,body:JSON.stringify(e),credentials:(null==n?void 0:n.credentials)??"include"});return o.ok?{response:o,body:o.body,totalSize:q_(o.headers,"NDM-Total-Size"),resolvedObjectId:o.headers.get("NDM-Resolved-Object-ID")??void 0,readerKind:o.headers.get("NDM-Reader-Kind")??void 0,contentLength:q_(o.headers,"Content-Length"),offset:q_(o.headers,"NDM-Offset")}:K_(o)}async function Q_(t){const e=await t.response.arrayBuffer();return new Uint8Array(e)}class J_{constructor(t){this.options=t}getObject(t,e){return tv(t,{...this.options,...e})}openObject(t,e){return ev(t,{...this.options,...e})}getDirChild(t,e){return nv(t,{...this.options,...e})}isObjectStored(t,e){return rv(t,{...this.options,...e})}isObjectExist(t,e){return sv(t,{...this.options,...e})}queryObjectById(t,e){return iv(t,{...this.options,...e})}putObject(t,e){return ov(t,{...this.options,...e})}removeObject(t,e){return av(t,{...this.options,...e})}haveChunk(t,e){return cv(t,{...this.options,...e})}queryChunkState(t,e){return lv(t,{...this.options,...e})}removeChunk(t,e){return uv(t,{...this.options,...e})}addChunkBySameAs(t,e){return hv(t,{...this.options,...e})}applyEdge(t,e){return dv(t,{...this.options,...e})}pin(t,e){return fv(t,{...this.options,...e})}unpin(t,e){return pv(t,{...this.options,...e})}unpinOwner(t,e){return gv(t,{...this.options,...e})}fsAcquire(t,e){return mv(t,{...this.options,...e})}fsRelease(t,e){return yv(t,{...this.options,...e})}fsReleaseInode(t,e){return wv(t,{...this.options,...e})}fsAnchorState(t,e){return bv(t,{...this.options,...e})}forcedGcUntil(t,e){return Av(t,{...this.options,...e})}outboxCount(t){return _v({...this.options,...t})}debugDumpExpandState(t,e){return vv(t,{...this.options,...e})}anchorState(t,e){return Ev(t,{...this.options,...e})}}class Y_{constructor(t){this.options=t}openChunkReader(t,e){return kv(t,{...this.options,...e})}getChunkData(t,e){return Sv(t,{...this.options,...e})}getChunkPiece(t,e){return Tv(t,{...this.options,...e})}openChunkListReader(t,e){return Rv(t,{...this.options,...e})}openReader(t,e){return Iv(t,{...this.options,...e})}}class Z_{constructor(t){this.options=t}putChunkByReader(t,e,n){return Ov(t,e,{...this.options,...n})}putChunk(t,e,n){return Cv(t,e,{...this.options,...n})}}class X_{constructor(t){this.options=t,this.rpc=new J_(t),this.reader=new Y_(t),this.writer=new Z_(t)}getObject(t,e){return this.rpc.getObject(t,e)}openObject(t,e){return this.rpc.openObject(t,e)}getDirChild(t,e){return this.rpc.getDirChild(t,e)}isObjectStored(t,e){return this.rpc.isObjectStored(t,e)}isObjectExist(t,e){return this.rpc.isObjectExist(t,e)}queryObjectById(t,e){return this.rpc.queryObjectById(t,e)}putObject(t,e){return this.rpc.putObject(t,e)}removeObject(t,e){return this.rpc.removeObject(t,e)}haveChunk(t,e){return this.rpc.haveChunk(t,e)}queryChunkState(t,e){return this.rpc.queryChunkState(t,e)}removeChunk(t,e){return this.rpc.removeChunk(t,e)}addChunkBySameAs(t,e){return this.rpc.addChunkBySameAs(t,e)}applyEdge(t,e){return this.rpc.applyEdge(t,e)}pin(t,e){return this.rpc.pin(t,e)}unpin(t,e){return this.rpc.unpin(t,e)}unpinOwner(t,e){return this.rpc.unpinOwner(t,e)}fsAcquire(t,e){return this.rpc.fsAcquire(t,e)}fsRelease(t,e){return this.rpc.fsRelease(t,e)}fsReleaseInode(t,e){return this.rpc.fsReleaseInode(t,e)}fsAnchorState(t,e){return this.rpc.fsAnchorState(t,e)}forcedGcUntil(t,e){return this.rpc.forcedGcUntil(t,e)}outboxCount(t){return this.rpc.outboxCount(t)}debugDumpExpandState(t,e){return this.rpc.debugDumpExpandState(t,e)}anchorState(t,e){return this.rpc.anchorState(t,e)}openChunkReader(t,e){return this.reader.openChunkReader(t,e)}getChunkData(t,e){return this.reader.getChunkData(t,e)}getChunkPiece(t,e){return this.reader.getChunkPiece(t,e)}openChunkListReader(t,e){return this.reader.openChunkListReader(t,e)}openReader(t,e){return this.reader.openReader(t,e)}putChunkByReader(t,e,n){return this.writer.putChunkByReader(t,e,n)}putChunk(t,e,n){return this.writer.putChunk(t,e,n)}withOptions(t){return new X_({...this.options,...t})}}async function tv(t,e){return z_("get_object",t,e)}async function ev(t,e){return z_("open_object",t,e)}async function nv(t,e){return z_("get_dir_child",t,e)}async function rv(t,e){return z_("is_object_stored",t,e)}async function sv(t,e){return z_("is_object_exist",t,e)}async function iv(t,e){return z_("query_object_by_id",t,e)}async function ov(t,e){return z_("put_object",t,e)}async function av(t,e){return z_("remove_object",t,e)}async function cv(t,e){return z_("have_chunk",t,e)}async function lv(t,e){return z_("query_chunk_state",t,e)}async function uv(t,e){return z_("remove_chunk",t,e)}async function hv(t,e){return z_("add_chunk_by_same_as",t,e)}async function dv(t,e){return z_("apply_edge",t,e)}async function fv(t,e){return z_("pin",t,e)}async function pv(t,e){return z_("unpin",t,e)}async function gv(t,e){return z_("unpin_owner",t,e)}async function mv(t,e){return z_("fs_acquire",t,e)}async function yv(t,e){return z_("fs_release",t,e)}async function wv(t,e){return z_("fs_release_inode",t,e)}async function bv(t,e){return z_("fs_anchor_state",t,e)}async function Av(t,e){return z_("forced_gc_until",t,e)}async function _v(t){return z_("outbox_count",{},t)}async function vv(t,e){return z_("debug_dump_expand_state",t,e)}async function Ev(t,e){return z_("anchor_state",t,e)}async function kv(t,e){return $_("/read/chunk/open",t,e)}async function Sv(t,e){return Q_(await $_("/read/chunk/data",t,e))}async function Tv(t,e){return Q_(await $_("/read/chunk/piece",t,e))}async function Rv(t,e){return $_("/read/chunklist/open",t,e)}async function Iv(t,e){return $_("/read/object/open",t,e)}async function Ov(t,e,n){var r;H_();const s=V_(n),i=(null==n?void 0:n.fetcher)??G_,o=function(t){return t instanceof Uint8Array||t instanceof ArrayBuffer?t.byteLength:"undefined"!=typeof Blob&&t instanceof Blob?t.size:"string"==typeof t?(new TextEncoder).encode(t).byteLength:null}(e),a=(null==n?void 0:n.chunkSize)??o;if(null===a)throw new F_("PROXY_API_CHUNK_SIZE_REQUIRED","chunkSize is required when the request body length cannot be inferred");const c=await W_(n,{Accept:"application/json","Content-Type":"application/octet-stream","Content-Length":String(a),"NDM-Chunk-Size":String(a)}),l=await i(`${s}${function(t){return`${L_}/write/chunk/${encodeURIComponent(t)}`}(t)}`,{method:"PUT",headers:c,body:e,credentials:(null==n?void 0:n.credentials)??"include"});return l.ok?(await(null==(r=l.body)?void 0:r.cancel()),{chunkSize:q_(l.headers,"NDM-Chunk-Size"),outcome:l.headers.get("NDM-Chunk-Write-Outcome")??void 0,chunkObjectId:l.headers.get("NDM-Chunk-Object-ID")??void 0}):K_(l)}async function Cv(t,e,n){return Ov(t,e,{...n,chunkSize:(null==n?void 0:n.chunkSize)??e.byteLength})}const xv=Object.freeze(Object.defineProperty({__proto__:null,NDM_PROXY_V1_PATH:L_,NdmProxyApiError:M_,NdmProxyClient:X_,NdmProxyError:F_,NdmProxyReaderClient:Y_,NdmProxyRpcClient:J_,NdmProxyWriterClient:Z_,addChunkBySameAs:hv,anchorState:Ev,applyEdge:dv,createNdmProxyClient:function(t){return new X_(t)},debugDumpExpandState:vv,forcedGcUntil:Av,fsAcquire:mv,fsAnchorState:bv,fsRelease:yv,fsReleaseInode:wv,getChunkData:Sv,getChunkPiece:Tv,getDirChild:nv,getObject:tv,haveChunk:cv,isObjectExist:sv,isObjectStored:rv,openChunkListReader:Rv,openChunkReader:kv,openObject:ev,openReader:Iv,outboxCount:_v,pin:fv,putChunk:Cv,putChunkByReader:Ov,putObject:ov,queryChunkState:lv,queryObjectById:iv,removeChunk:uv,removeObject:av,unpin:pv,unpinOwner:gv},Symbol.toStringTag,{value:"Module"}));exports.ACCESS_DENIED_ERROR_CODE=Kn,exports.AGENT_DELEGATE_TASK_SCHEMA_ID="agent.delegate/v1",exports.AICC_AI_METHODS=$r,exports.AICC_COMPUTE_TASK_SCHEMA_ID="aicc.compute/v1",exports.AICC_CORE_METHODS=Qr,exports.AICC_EXECUTION_MODES=Zr,exports.AICC_FEATURES={PLAN:"plan",TOOL_CALL:"tool_call",JSON_SCHEMA:"json_schema",WEB_SEARCH:"web_search",VISION:"vision",IMAGE_GENERATION:"image_generation",ASR:"asr",VIDEO_UNDERSTAND:"video_understand"},exports.AICC_MANAGEMENT_METHODS=Jr,exports.AICC_METHODS=Yr,exports.AICC_SERVICE_SERVICE_NAME="aicc",exports.AICC_SERVICE_SERVICE_PORT=4040,exports.AICC_SERVICE_UNIQUE_ID="aicc",exports.ANONYMOUS_IDENTITY=$n,exports.APP_INSTALL_TASK_SCHEMA_ID="app.install/v1",exports.APP_START_TASK_SCHEMA_ID="app.start/v1",exports.APP_UNINSTALL_TASK_SCHEMA_ID="app.uninstall/v1",exports.APP_UPDATE_BATCH_TASK_SCHEMA_ID="app.update_batch/v1",exports.APP_UPDATE_TASK_SCHEMA_ID="app.update/v1",exports.AiccClient=os,exports.BNS_DNS_TXT_DEFAULT_TTL=600,exports.BNS_DNS_TXT_DOC_TYPE=Fb,exports.BNS_EVM_DEFAULT_GAS_LIMIT=Bb,exports.BNS_EVM_DEFAULT_MAX_FEE_PER_GAS=Ub,exports.BNS_EVM_DEFAULT_MAX_PRIORITY_FEE_PER_GAS=Lb,exports.BNS_MAX_INLINE_DOCUMENT_BYTES=Mb,exports.BNS_PUBLISH_DOCUMENT_ABI=jb,exports.BS_SERVICE_TASK_MANAGER="task-manager",exports.BS_SERVICE_VERIFY_HUB="verify-hub",exports.BnsEvmTxBuilder=Qb,exports.BnsEvmTxError=Kb,exports.BnsTxExecutor=class{constructor(t={}){this.localExecutionTail=Promise.resolve(),this.options=t,this.evmTxBuilder=t.bnsClient&&t.evmConfig?new Qb(t.bnsClient,t.evmConfig,t.evmProvider):null}async resolveRoute(){const t=this.getRuntimeType(),e=Zb(t)?await this.getLocalPrivateKey():null;return this.resolveRouteFor(t,e)}async resolveRouteFor(t,e){if(Zb(t)&&this.options.evmConfig&&e)return"local";if(t===pi.AppRuntime){const t=await this.getCurrentWalletUser();if(t&&!Xb(t))return"wallet"}return"sn-proxy"}async execute(t){const e=this.getRuntimeType(),n=Zb(e)?await this.getLocalPrivateKey():null,r=await this.resolveRouteFor(e,n);switch(r){case"local":return this.executeLocally(t,e,n);case"wallet":throw new Jb("WALLET_EXECUTION_NOT_IMPLEMENTED",r,`BNS wallet execution is not implemented for operation ${t.type}`);case"sn-proxy":return this.executeWithSn(t)}}publishDnsTxt(t){return this.execute({type:"publish_dns_txt",request:t})}publishDocument(t){return this.execute({type:"publish_document",request:t})}getRuntimeType(){return(this.options.getRuntimeType??co)()}getCurrentWalletUser(){return Promise.resolve((this.options.getCurrentWalletUser??to)())}async getLocalPrivateKey(){const t=this.options.localPrivateKey;return Yb("function"==typeof t?await t():t)}async executeWithSn(t){const e=this.options.snClient;if(!e)throw new Jb("SN_CLIENT_UNAVAILABLE","sn-proxy",`SN client is required for BNS operation ${t.type}`);const n="publish_dns_txt"===t.type?await e.publishDnsTxt(t.request):await e.publishDocument(t.request);return{route:"sn-proxy",operation:t.type,response:n}}async executeLocally(t,e,n){const r=this.options.bnsClient;if(!r)throw new Jb("BNS_CLIENT_UNAVAILABLE","local",`BNS client is required for local operation ${t.type}`);const s=this.evmTxBuilder;if(!n||!s)throw new Jb("LOCAL_SIGNING_UNAVAILABLE","local",`Local signing configuration is unavailable for operation ${t.type}`);return this.enqueueLocalExecution((async()=>{try{const e=await s.buildAndSign(t,n),i=await r.submitRawTx(e);return{route:"local",operation:t.type,response:i}}catch(e){throw s.resetNonce(),e}}))}enqueueLocalExecution(t){const e=this.localExecutionTail.then(t,t);return this.localExecutionTail=e.then((()=>{}),(()=>{})),e}},exports.BnsTxExecutorError=Jb,exports.BuckyOSSDK=ho,exports.CONTACT_CHANGED_EVENT_BOX="CONTACTS",exports.CONTACT_TAG_HOMESTATION_FOLLOWING=_s,exports.CONTACT_TAG_ZONE_AGENT=As,exports.CONTACT_TAG_ZONE_USER=bs,exports.DEFAULT_CHILD_CONTROL_POLICY={follow_pause:!0,follow_resume:!0,follow_cancel:!0},exports.DEFAULT_JUMP_BASE_URL=Yn,exports.DENY_REASONS=Wn,exports.DOWNLOAD_TASK_SCHEMA_ID="download/v1",exports.EXTERNAL_PRINCIPAL_CLAIM=mi,exports.FRIEND_INTENT="buckyos.friend",exports.HUMAN_APPROVAL_SCHEMA_ID="human.approval/v1",exports.HUMAN_INPUT_TASK_SCHEMA_ID="human.input/v1",exports.JUMP_ACTION_PATHS=Zn,exports.KEventClient=Yi,exports.KEventReader=zi,exports.MsgCenterClient=js,exports.MsgQueueClient=ws,exports.NOTIFY_ACTION_ANSWER=xs,exports.NOTIFY_ACTION_DISMISS=Ns,exports.NOTIFY_CHOICE_CONTROL_ID=Os,exports.NOTIFY_DATA_VERSION=1,exports.NOTIFY_DELIVERED_INTENT="buckyos.notify.delivered",exports.NOTIFY_INTENT=Rs,exports.NOTIFY_LINK_PATH=Ps,exports.NOTIFY_SESSION_PREFIX=Is,exports.NOTIFY_TEXT_CONTROL_ID=Cs,exports.OPENDAN_ASYNC_TOOL_TASK_SCHEMA_ID="opendan.async_tool/v1",exports.OPENDAN_COMMAND_TASK_SCHEMA_ID="opendan.command/v1",exports.RAW_TASK_SCHEMA_ID="raw/v1",exports.RPCError=Fn,exports.RepoClient=ti,exports.RuntimeType=pi,exports.SCHEDULER_DISPATCH_THUNK_TASK_SCHEMA_ID="scheduler.dispatch_thunk/v1",exports.StorageDomain=Rr,exports.SystemConfigClient=qr,exports.TASK_ERR_ALREADY_COMPLETED=ur,exports.TASK_ERR_CONTROL_ALREADY_PENDING=lr,exports.TASK_ERR_CONTROL_NOT_AVAILABLE=cr,exports.TASK_ERR_IDEMPOTENCY_CONFLICT=fr,exports.TASK_ERR_INPUT_SCHEMA_MISMATCH=hr,exports.TASK_ERR_INVALID_PHASE=ar,exports.TASK_ERR_NOT_FOUND=rr,exports.TASK_ERR_PERMISSION_DENIED=sr,exports.TASK_ERR_RESULT_SCHEMA_MISMATCH=dr,exports.TASK_ERR_REVISION_CONFLICT=ir,exports.TASK_ERR_SCHEMA_NOT_FOUND=pr,exports.TASK_ERR_STALE_RUNNER_EPOCH=or,exports.TASK_MANAGER_SERVICE_NAME="task-manager",exports.TASK_MANAGER_SERVICE_PORT=3380,exports.TASK_MANAGER_SERVICE_UNIQUE_ID="task-manager",exports.TASK_MGR_ERROR_CODES=gr,exports.TASK_POLICY_PRESET_COLLABORATIVE_TREE_V1="collaborative-tree/v1",exports.TOOL_EXEC_BASH_TASK_SCHEMA_ID="tool.exec_bash/v1",exports.TaskAction=kr,exports.TaskControlAction=Er,exports.TaskDataScope=Tr,exports.TaskEventType=Ir,exports.TaskExecutorKind=wr,exports.TaskGrantScope=Sr,exports.TaskManagerClient=Nr,exports.TaskOutcome=vr,exports.TaskPhase=br,exports.TaskWaitReasonKind=_r,exports.USER_GROUP_REF_PREFIX=Ss,exports.USER_TYPE_GROUP_REF_PREFIX=ks,exports.VerifyHubClient=nr,exports.WEB3_BRIDGE_HOST="web3.buckyos.ai",exports.WELL_KNOWN_CONTACT_TAGS=vs,exports.WORKFLOW_EXECUTE_RPC_TASK_SCHEMA_ID="workflow.execute_rpc/v1",exports.WORKFLOW_MAP_SHARD_TASK_SCHEMA_ID="workflow.map_shard/v1",exports.WORKFLOW_RUN_TARGET_TASK_SCHEMA_ID="workflow.run/v1",exports.WORKFLOW_RUN_TREE_TASK_SCHEMA_ID="workflow.run_tree/v1",exports.WORKFLOW_SCHEDULE_TASK_SCHEMA_ID="workflow.schedule/v1",exports.WORKFLOW_SEND_MESSAGE_TASK_SCHEMA_ID="workflow.send_message/v1",exports.WORKFLOW_SERVICE_NAME="workflow",exports.WORKFLOW_STEP_TASK_SCHEMA_ID="workflow.step/v1",exports.WORKFLOW_THUNK_TASK_SCHEMA_ID="workflow.thunk/v1",exports.WorkflowClient=Kr,exports.WorkflowDefinitionStatus=Lr,exports.WorkflowHumanActionKind=Gr,exports.WorkflowJoinMode=Br,exports.WorkflowNodeRunState=Fr,exports.WorkflowOutputMode=Dr,exports.WorkflowRetryFallback=Ur,exports.WorkflowRunStatus=Mr,exports.WorkflowScheduledTaskFireStatus=Vr,exports.WorkflowScheduledTaskMisfirePolicy=Hr,exports.WorkflowScheduledTaskStatus=jr,exports.WorkflowStepType=Pr,exports.ZONE_USER_TYPES=gi,exports.accessDenialOf=function(t){return t instanceof Fn&&t.code===Kn?qn(t.data):null},exports.aiccMessageFirstText=function(t){var e;return null==(e=t.content.find((t=>"text"===t.type)))?void 0:e.text},exports.aiccMessageTextContent=function(t){return t.content.filter((t=>"text"===t.type)).map((t=>t.text)).join("\n")},exports.aiccTextMessage=function(t,e){return{role:t,content:[{type:"text",text:e}]}},exports.answerNotify=async function(t,e,n,r,s){const i=await t.notifyGet(n);if("notice"===i.kind)return r.dismiss?t.notifyDismiss(n):t.notifyAck(n);if(!i.task_id)throw new Fn(`notification ${n} has no task`);if(Ds(i.status))return i;const o=Ws(r,i.prompt);if(o)throw new Fn(o);return await zs(e,i.task_id,r,s??i.to_user),t.notifyGet(n)},exports.appDidFromId=function(t){return Mn.DID.fromStr(si(t)).toString()},exports.appIdFromDid=ri,exports.baselineTaskControlProfile=function(t){return{pause:{kind:"Unavailable"},resume:{kind:"Unavailable"},cancel:{kind:"Interrupt"},updated_at:t}},exports.bns_client=Aa,exports.buildJumpUrl=function(t,e,n=Yn){const r=Zn[t];if(!r)throw new Error(`unregistered jump action: ${t}`);const s=new URL(n||Yn);if("https:"!==s.protocol&&"localhost"!==s.hostname)throw new Error("jump base must be https");const i=new URLSearchParams(e).toString();return`${s.origin}${r}${i?`#${i}`:""}`},exports.commitNotifyAnswer=zs,exports.contactTagApp=Es,exports.contactTagKind=function(t){return t===bs||t===As||Ts(t)?"system":Es(t)?"app":"user"},exports.createAppInstanceId=oi,exports.createSDKModule=function(t){const e=new ho(t),n={initBuckyOS:e.initBuckyOS.bind(e),getBuckyOSConfig:e.getBuckyOSConfig.bind(e),getRuntimeType:e.getRuntimeType.bind(e),getAppId:e.getAppId.bind(e),getAppDid:e.getAppDid.bind(e),getAppInstanceId:e.getAppInstanceId.bind(e),getAppDataDir:e.getAppDataDir.bind(e),getKEventClient:e.getKEventClient.bind(e),createEventReader:e.createEventReader.bind(e),create_event_reader:e.create_event_reader.bind(e),subscribeKEvent:e.subscribeKEvent.bind(e),attachEvent:e.attachEvent.bind(e),removeEvent:e.removeEvent.bind(e),getAccountInfo:e.getAccountInfo.bind(e),loginByPassword:e.loginByPassword.bind(e),loginByBrowserSSO:e.loginByBrowserSSO.bind(e),loginByRuntimeSession:e.loginByRuntimeSession.bind(e),login:e.login.bind(e),logout:e.logout.bind(e),getAppSetting:e.getAppSetting.bind(e),setAppSetting:e.setAppSetting.bind(e),getCurrentWalletUser:e.getCurrentWalletUser.bind(e),getCurrentIdentity:e.getCurrentIdentity.bind(e),resolve_did:e.resolve_did.bind(e),walletSignWithActiveDid:e.walletSignWithActiveDid.bind(e),openExternalUrl:e.openExternalUrl.bind(e),getZoneHostName:e.getZoneHostName.bind(e),getZoneServiceURL:e.getZoneServiceURL.bind(e),getServiceRpcClient:e.getServiceRpcClient.bind(e),getVerifyHubClient:e.getVerifyHubClient.bind(e),getSystemConfigClient:e.getSystemConfigClient.bind(e),getTaskManagerClient:e.getTaskManagerClient.bind(e),getWorkflowClient:e.getWorkflowClient.bind(e),getAiccClient:e.getAiccClient.bind(e),getMsgQueueClient:e.getMsgQueueClient.bind(e),getMsgCenterClient:e.getMsgCenterClient.bind(e),getRepoClient:e.getRepoClient.bind(e)};return{...n,buckyos:{kRPCClient:jn,AuthClient:Vn,...n,hashPassword:Mn.hashPassword}}},exports.decisionRequirements=hs,exports.decodeBnsPublishDocumentCalldata=function(t){return Hb.decodeFunctionData("publishDocument",t)},exports.getActiveRuntimeType=co,exports.getActiveSessionToken=uo,exports.getActiveZoneGatewayOrigin=lo,exports.getCurrentWalletUserFromHost=to,exports.identityAllows=function(t,e){return"anonymous"!==t.kind&&(!t.restricted||(t.scopes??[]).includes(e))},exports.identityKey=Jn,exports.inputPrompt=function(t,e,n,r=!1){const s=[],i=n.length>0;return i&&s.push({kind:"choice",id:Os,options:n,multiple:!1,required:!r}),i&&!r||s.push({kind:"text_input",id:Cs,multiline:!0,required:!i}),e?{title:t,message:e,controls:s}:{title:t,controls:s}},exports.isAiccAiMethod=function(t){return Xr.has(t)},exports.isExternalPrincipal=function(t){return"user"===(null==t?void 0:t.principal_kind)&&!0===t[mi]},exports.isNotifyClosed=Ds,exports.isTerminalTaskPhase=Ar,exports.isUserGroupRefTag=Ts,exports.mailboxAddress=function(t,e){if(!/^did:[^:]+:.+$/.test(t)||/[\s\x00-\x1f\x7f-\x9f/\\?#*|]/.test(t))throw new Fn("mailbox owner must be a bare DID");if(void 0===e)return t;if(!e||e.trim()!==e||[...e].length>200||"."===e||".."===e||/[\x00-\x1f\x7f-\x9f]/.test(e))throw new Fn("invalid mailbox session_id");return`${t}/${encodeURIComponent(e).replace(/[!'()*]/g,(t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`)).replace(/%3A/g,":").replace(/%40/g,"@")}`},exports.mailboxResource=function(t,e){const n=encodeURIComponent(t).replace(/[!'()*.]/g,(t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`)).replace(/%3A/g,":").replace(/%40/g,"@").replace(/%2F/g,"/");return`obj://msg-center/${e.toLowerCase()}/${n}`},exports.msgMachineData=Ks,exports.ndm_client=U_,exports.ndm_proxy=xv,exports.normalizeZoneHostname=Xn,exports.notifyAnswerToTaskResult=Vs,exports.notifyCategoryFromSessionId=function(t){if(!t.startsWith(Is))return null;const e=t.slice(10);return"todo"===e||"agent"===e||"app"===e?e:null},exports.notifyCategorySessionId=function(t){return`${Is}${t}`},exports.notifyMessageData=function(t){const e=Ks(t,Rs);return e&&"string"==typeof e.notify_id?e:null},exports.notifyUrl=function(t,e){const n=`${Ps}?notify=${e}`,r=null==t?void 0:t.trim();return r?`https://${r}${n}`:n},exports.parseAccessDenial=qn,exports.parseAppId=si,exports.parseAppInstanceId=ai,exports.parseCurrentIdentity=Qn,exports.parseSessionTokenClaims=ki,exports.parseZoneUserType=function(t){const e="string"==typeof t?t.trim().toLowerCase():"";return gi.includes(e)?e:null},exports.promptOptions=Hs,exports.resolveDidFromHost=eo,exports.sn_client=a_,exports.taskMgrErrorCode=yr,exports.taskMgrTaskEventPath=mr,exports.taskMgrTreeEventPath=function(t){return`/task_mgr/tree/${t}`},exports.validateAiccMessage=ts,exports.validateDecisionAnswers=fs,exports.validateDecisionRequest=ds,exports.validateNotifyAnswer=Ws,exports.waitNotify=async function(t,e,n,r={}){let s=await t.notifyGet(e),i=null,o=!1;r.kevent&&s.task_id&&!Ds(s.status)&&r.kevent.createEventReader([mr(s.task_id)]).then((t=>{o?t.close().catch((()=>{})):i=t}),(()=>{}));try{let r=500;for(;;){if(Ds(s.status))return s;const o=Date.now();if(o>=n)return s;await qs(Math.min(r,n-o),i),r=Math.min(2*r,3e4),s=await t.notifyGet(e)}}finally{o=!0;const t=i;t&&await t.close().catch((()=>{}))}},exports.walletUserHasSnAccount=Xb,exports.zoneActionUrl=function(t,e){const n=Xn(t),r=Zn[e];return n&&r?`https://${n}${r}`:null};
13
- //# sourceMappingURL=ndm_proxy-7cf15839.js.map