buckyos 0.7.115 → 0.7.118
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/cli/README.md +14 -10
- package/cli/core/app.ts +1 -0
- package/cli/core/argv.ts +14 -7
- package/cli/core/auth.ts +104 -20
- package/cli/core/config.ts +0 -38
- package/cli/core/development_mode.ts +103 -0
- package/cli/core/identity.ts +39 -31
- package/cli/core/registry.ts +7 -2
- package/cli/dist/cli.mjs +341 -233
- package/cli/dist/cli.mjs.map +1 -1
- package/cli/runtime/host.ts +10 -10
- package/cli/version.ts +1 -1
- package/dist/browser.cjs +1 -1
- package/dist/browser.mjs +58 -57
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +58 -57
- package/dist/ndm_proxy-20e0a471.js +13 -0
- package/dist/ndm_proxy-20e0a471.js.map +1 -0
- package/dist/{ndm_proxy-a719bc58.mjs → ndm_proxy-6cb0701b.mjs} +62 -56
- package/dist/ndm_proxy-6cb0701b.mjs.map +1 -0
- package/dist/node.cjs +1 -1
- package/dist/node.mjs +58 -57
- package/dist/task_mgr_client.d.ts +10 -0
- package/dist/task_mgr_client.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/ndm_proxy-36879436.js +0 -13
- package/dist/ndm_proxy-36879436.js.map +0 -1
- package/dist/ndm_proxy-a719bc58.mjs.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
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,C,I,O,x,N,P,B,D,U,L,M,F,j,G,H,W,V,K,z,q,$,J,Q,Y,Z,X,tt,et,nt,rt,st,it,ot,at,ct,lt,ut,ht,dt,ft,pt,gt,mt,yt,wt,bt,At,vt,_t,Et,kt,St,Tt,Rt,Ct,It,Ot,xt,Nt,Pt,Bt,Dt,Ut,Lt,Mt,Ft,jt,Gt,Ht,Wt,Vt,Kt,zt,qt,$t,Jt,Qt,Yt,Zt,Xt,te,ee,ne,re,se,ie,oe,ae,ce,le,ue,he,de,fe,pe,ge,me,ye,we,be,Ae,ve,_e,Ee,ke,Se,Te,Re,Ce,Ie,Oe,xe,Ne,Pe,Be,De,Ue,Le,Me,Fe,je,Ge,He,We,Ve,Ke,ze,qe,$e,Je,Qe,Ye,Ze,Xe,tn,en,nn,rn,sn,on,an,cn,ln,un,hn,dn,fn,pn,gn,mn,yn,wn,bn,An,vn,_n,En,kn,Sn,Tn,Rn,Cn,In,On=Object.defineProperty,xn=(t,e,n)=>(((t,e,n)=>{e in t?On(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)),Bn=(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)},Dn=(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){Dn(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-c4672b04.js");class Fn extends Error{constructor(t){super(t),this.name="RPCError"}}const jn=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 Gn{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??jn,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}`);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 Wn{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 Vn="buckyos.account_info",Kn="user_info";function zn(t){return`buckyos.account_info.${t}`}function qn(t,e,n=null){const r=new Mn.ht("SHA-256","TEXT",{encoding:"UTF8"});r.update(e+t+".buckyos");let s=r.getHash("B64");if(null==n)return s;const i=new Mn.ht("SHA-256","TEXT",{encoding:"UTF8"});let o=s+n.toString();return i.update(o),i.getHash("B64")}function $n(t){localStorage.removeItem(zn(t)),localStorage.removeItem(Kn);const e=function(t){if(null==t)return null;try{return JSON.parse(t)}catch{return null}}(localStorage.getItem(Vn));(null==e?void 0:e.session_token)&&function(t){const e=t.split(".");if(e.length<2)return null;try{const t=e[1].replace(/-/g,"+").replace(/_/g,"/"),n=t+"=".repeat((4-t.length%4)%4),r=JSON.parse(atob(n));if("string"==typeof r.appid&&r.appid.trim().length>0)return r.appid}catch{return null}return null}(e.session_token)===t&&localStorage.removeItem(Vn);let n={path:"/",expires:new Date(0),secure:!0,sameSite:"Lax"};document.cookie=`${t}_token=; ${Object.entries(n).map((([t,e])=>`${t}=${e}`)).join("; ")}`}function Jn(t){localStorage.setItem(Kn,JSON.stringify(t))}function Qn(){return function(t){if(null==t)return null;try{const e=JSON.parse(t),n="string"==typeof e.user_id?e.user_id.trim():"",r="string"==typeof e.user_type?e.user_type.trim():"",s="string"==typeof e.user_name?e.user_name.trim():"string"==typeof e.show_name?e.show_name.trim():"";return n&&r?{user_name:s||n,user_id:n,user_type:r}:null}catch{return null}}(localStorage.getItem(Kn))}function Yn(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 Zn(t){const e=Yn(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 Xn{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:Yn(t.target)})}async loginByPassword(t){this.rpcClient.resetSessionToken();const e={type:"password",username:t.username,password:t.password,target:Yn(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:Yn(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=Yn(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 tr="task_not_found",er="permission_denied",nr="revision_conflict",rr="stale_runner_epoch",sr="invalid_task_phase",ir="control_not_available",or="control_already_pending",ar="task_already_completed",cr="input_schema_mismatch",lr="result_schema_mismatch",ur="idempotency_conflict",hr="task_schema_not_found",dr=[tr,er,nr,rr,sr,ir,or,ar,cr,lr,ur,hr];function fr(t){const e=t instanceof Error?t.message:String(t);for(const n of dr){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 pr=(t=>(t.Unbound="Unbound",t.App="App",t.HumanSet="HumanSet",t))(pr||{}),gr=(t=>(t.Promised="Promised",t.Accepted="Accepted",t.Running="Running",t.Waiting="Waiting",t.Paused="Paused",t.Terminal="Terminal",t))(gr||{});function mr(t){return"Terminal"===t}var yr=(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))(yr||{}),wr=(t=>(t.Succeeded="Succeeded",t.Failed="Failed",t.Canceled="Canceled",t))(wr||{}),br=(t=>(t.Pause="Pause",t.Resume="Resume",t.Cancel="Cancel",t))(br||{});var Ar=(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))(Ar||{}),vr=(t=>(t.SelfOnly="SelfOnly",t.Subtree="Subtree",t.WholeTree="WholeTree",t))(vr||{}),_r=(t=>(t.MetaOnly="MetaOnly",t.Payload="Payload",t.Full="Full",t))(_r||{}),Er=(t=>(t.User="User",t.System="System",t))(Er||{}),kr=(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))(kr||{});function Sr(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 Tr(t){const e=Sr(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 Rr(){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 Cr{constructor(t){this.rpcClient=t}setSeq(t){this.rpcClient.setSeq(t)}async callTask(t,e){return Tr(await this.rpcClient.call(t,e))}async createTask(t){return this.callTask("create_task",t)}async getTask(t){return Tr(await this.rpcClient.call("get_task",{task_id:t}))}async listTasks(t={}){const e=await this.rpcClient.call("list_tasks",t),n=Sr(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=Sr(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=Sr(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=Sr(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=Sr(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=Sr(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=Sr(e,"events","task event list");if(!Array.isArray(n))throw new Fn("Expected events array in TaskMgr response");return e}async addTaskNote(t){return Sr(await this.rpcClient.call("add_task_note",t),"note","add task note result")}async listTaskNotes(t){const e=Sr(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:Rr(),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=fr(r);if(e===nr||e===sr)return this.getTask(t);throw r}}async runnerProgress(t,e,n){const r=await this.getTask(t);if(mr(r.phase))return r;try{return await this.reportProgress({...this.snapshotEnvelope(r),progress:e,message:n})}catch(s){if(fr(s)!==nr)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(mr(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(fr(r)!==nr)throw r;const n=await this.getTask(t);return mr(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 mr(s.phase)?s:this.failTask({...this.snapshotEnvelope(s),error:{code:e,message:n,detail:r}})}}var Ir=(t=>(t.Autonomous="autonomous",t.HumanConfirm="human_confirm",t.HumanRequired="human_required",t))(Ir||{}),Or=(t=>(t.Single="single",t.FiniteSeekable="finite_seekable",t.FiniteSequential="finite_sequential",t))(Or||{}),xr=(t=>(t.All="all",t.Any="any",t.NOfM="n_of_m",t))(xr||{}),Nr=(t=>(t.Human="human",t.Abort="abort",t))(Nr||{}),Pr=(t=>(t.Draft="draft",t.Active="active",t.Archived="archived",t))(Pr||{}),Br=(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))(Br||{}),Dr=(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))(Dr||{}),Ur=(t=>(t.Approve="approve",t.Modify="modify",t.Reject="reject",t.Retry="retry",t.Skip="skip",t.Abort="abort",t.Rollback="rollback",t))(Ur||{}),Lr=(t=>(t.Enabled="enabled",t.Paused="paused",t.Archived="archived",t.Error="error",t))(Lr||{}),Mr=(t=>(t.Skip="skip",t.RunOnce="run_once",t.CatchUp="catch_up",t.Manual="manual",t))(Mr||{}),Fr=(t=>(t.Created="created",t.TaskCreated="task_created",t.Skipped="skipped",t.Failed="failed",t))(Fr||{});function jr(t,e){if(!(e in t))throw new Fn(`Expected ${e} in workflow response`);return t[e]}class Gr{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:jr(e,"workflow_id"),version:jr(e,"version"),analysis:jr(e,"analysis"),definition:jr(e,"definition")}}async getDefinition(t){return jr(await this.callOk("get_definition",{workflow_id:t}),"definition")}async listDefinitions(t={}){return jr(await this.callOk("list_definitions",t),"definitions")}async archiveDefinition(t){return jr(await this.callOk("archive_definition",{workflow_id:t}),"status")}async dryRun(t){const e=await this.callOk("dry_run",{definition:t});return{analysis:jr(e,"analysis"),graph:jr(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 jr(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 jr(await this.callOk("submit_amendment",t),"amendment")}async approveAmendment(t){const e=await this.callOk("approve_amendment",t);return{amendment:jr(e,"amendment"),plan_version:jr(e,"plan_version")}}async rejectAmendment(t){const e=await this.callOk("reject_amendment",t);return{amendment:jr(e,"amendment"),plan_version:jr(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 jr(await this.callOk("create_scheduled_task",t),"schedule")}async updateScheduledTask(t){return jr(await this.callOk("update_scheduled_task",t),"schedule")}async getScheduledTask(t){return jr(await this.callOk("get_scheduled_task",{schedule_id:t}),"schedule")}async listScheduledTasks(t={}){return jr(await this.callOk("list_scheduled_tasks",t),"schedules")}async pauseScheduledTask(t){return jr(await this.callOk("pause_scheduled_task",{schedule_id:t}),"schedule")}async resumeScheduledTask(t){return jr(await this.callOk("resume_scheduled_task",{schedule_id:t}),"schedule")}async archiveScheduledTask(t){return jr(await this.callOk("archive_scheduled_task",{schedule_id:t}),"schedule")}async runScheduledTaskNow(t){return jr(await this.callOk("run_scheduled_task_now",t),"fire")}async getScheduledTaskHistory(t){return jr(await this.callOk("get_scheduled_task_history",t),"fires")}async validateScheduledTask(t){return await this.callOk("validate_scheduled_task",t)}}const Hr=["services/","system/rbac/"];class Wr{constructor(t,e=null,n={}){this.configCache=new Map,this.rpcClient=new Gn(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 Hr.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 Vr="aicc",Kr=Vr,zr={LLM_CHAT:"llm.chat",LLM_COMPLETION:"llm.completion",EMBEDDING_TEXT:"embedding.text",EMBEDDING_MULTIMODAL:"embedding.multimodal",RERANK:"rerank",IMAGE_TXT2IMG:"image.txt2img",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={CANCEL:"cancel",RELOAD_SETTINGS:"reload_settings",SERVICE_RELOAD_SETTINGS:"service.reload_settings",QUOTA_QUERY:"quota.query",PROVIDER_LIST:"provider.list",PROVIDER_HEALTH:"provider.health"},$r=new Set(Object.values(zr)),Jr=new Set(["llm","embedding","rerank","image","vision","audio","video","agent"]),Qr=new Set(["succeeded","running","failed"]),Yr=new Set(["system","user","assistant","tool","developer"]);function Zr(t){return $r.has(t)}function Xr(t){return t.content.filter((t=>"text"===t.type)).map((t=>t.text)).join("")}function ts(t){if(!t||"object"!=typeof t||Array.isArray(t))throw new Fn("AiccMessage must be an object");if(!Yr.has(t.role))throw new Fn(`AiccMessage.role is invalid: ${String(t.role)}`);if(!Array.isArray(t.content))throw new Fn("AiccMessage.content must be an array of content blocks");for(const e of t.content)is(t.role,e)}function es(t){if(!Array.isArray(t))throw new Fn("AiccLlmChatInput.messages must be an array");for(const e of t)ts(e)}function ns(t){const e=as(t);for(const n of["text","tool_calls","artifacts"])if(n in e)throw new Fn(`AiccResponse.${n} is no longer supported; use AiccResponse.message`);if(!e.message)throw new Fn("AiccResponse.message is required");if(ts(e.message),"assistant"!==e.message.role)throw new Fn("AiccResponse.message.role must be assistant")}function rs(t){switch(t.type){case"text":return t.text;case"image":return"[image]";case"document":return t.title?`[document title=${t.title}]`:"[document]";case"tool_use":return`[tool_use name=${t.name} call_id=${t.call_id}]`;case"tool_result":return`[tool_result call_id=${t.call_id}${t.is_error?" is_error=true":""}]`;case"thinking":return t.text??t.summary??"[thinking]";case"provider_state":return`[provider_state provider=${t.provider}]`}}function ss(t){switch(t.kind){case"url":return t.mime_hint??null;case"base64":return t.mime;case"named_object":return null}}function is(t,e){if(!e||"object"!=typeof e||!("type"in e)||"string"!=typeof e.type)throw new Fn(`AiccMessage contains an invalid content block for role ${t}`);if(!function(t,e){switch(t){case"system":case"developer":return"text"===e;case"user":return"text"===e||"image"===e||"document"===e;case"assistant":return"text"===e||"image"===e||"document"===e||"tool_use"===e||"thinking"===e||"provider_state"===e;case"tool":return"tool_result"===e}}(t,e.type))throw new Fn(`AiccMessage role ${t} cannot contain ${e.type} content`);if(("tool_use"===e.type||"tool_result"===e.type)&&!e.call_id)throw new Fn(`AiccContent.${e.type} requires call_id`);if("tool_use"===e.type&&!e.name)throw new Fn("AiccContent.tool_use requires name");if("tool_result"===e.type&&(!Array.isArray(e.content)||0===e.content.length))throw new Fn("AiccContent.tool_result requires non-empty content");if("tool_result"===e.type)for(const n of e.content)os(n);if("provider_state"===e.type&&!e.provider)throw new Fn("AiccContent.provider_state requires provider")}function os(t){if(!t||"object"!=typeof t||Array.isArray(t))throw new Fn("AiccToolResultContent must be an object");switch(t.type){case"text":if("string"!=typeof t.text)throw new Fn("AiccToolResultContent.text requires text");return;case"image":if(!t.source)throw new Fn("AiccToolResultContent.image requires source");return;case"document":if(!t.source)throw new Fn("AiccToolResultContent.document requires source");return;default:throw new Fn(`AiccToolResultContent type is invalid: ${String(t.type)}`)}}function as(t){if(!t||"object"!=typeof t||Array.isArray(t))throw new Fn("Invalid RPC response format");return t}function cs(t){if(!t.capability||!Jr.has(t.capability))throw new Fn("AiccMethodRequest.capability is invalid");if(!t.model||!t.model.alias)throw new Fn("AiccMethodRequest.model.alias is required");if(!t.requirements||"object"!=typeof t.requirements)throw new Fn("AiccMethodRequest.requirements is required");if(!t.payload||"object"!=typeof t.payload||Array.isArray(t.payload))throw new Fn("AiccMethodRequest.payload is required");return function(t){if("resp_foramt"in t.requirements)throw new Fn("AiccRequirements.resp_foramt is no longer supported; use resp_format");const e=t.payload;for(const n of["text","messages","tool_specs"])if(n in e)throw new Fn(`AiccPayload.${n} is no longer supported; put method fields under payload.input_json`)}(t),{...t,payload:{input_json:t.payload.input_json??{},resources:t.payload.resources??[],options:t.payload.options??{}}}}function ls(t,e){return{capability:t,model:(n=e.model,"string"==typeof n?{alias:n}:n),requirements:e.requirements??{},payload:{input_json:e.input,resources:e.resources??[],options:e.options??{}},policy:e.policy,idempotency_key:e.idempotency_key,task_options:e.task_options};var n}class us{constructor(t){this.rpcClient=t}setSeq(t){this.rpcClient.setSeq(t)}async callMethod(t,e){if(!Zr(t))throw new Fn(`Unknown AICC AI method: ${t}`);const n=cs(e);t===zr.LLM_CHAT&&function(t){const e=t.payload.input_json;if(!e||"object"!=typeof e||Array.isArray(e))throw new Fn("AiccLlmChatInput must be an object");es(e.messages)}(n);return function(t){const e=as(t);if("string"!=typeof e.task_id)throw new Fn("AiccMethodResponse missing task_id");if("string"!=typeof e.status||!Qr.has(e.status))throw new Fn("AiccMethodResponse missing or invalid status");return null!=e.result&&ns(e.result),e}(await this.rpcClient.call(t,n))}async llmChat(t){return this.callMethod(zr.LLM_CHAT,ls("llm",t))}async llmCompletion(t){return this.callMethod(zr.LLM_COMPLETION,ls("llm",t))}async embeddingText(t){return this.callMethod(zr.EMBEDDING_TEXT,ls("embedding",t))}async embeddingMultimodal(t){return this.callMethod(zr.EMBEDDING_MULTIMODAL,ls("embedding",t))}async rerank(t){return this.callMethod(zr.RERANK,ls("rerank",t))}async imageTxt2img(t){return this.callMethod(zr.IMAGE_TXT2IMG,ls("image",t))}async imageImg2img(t){return this.callMethod(zr.IMAGE_IMG2IMG,ls("image",t))}async imageInpaint(t){return this.callMethod(zr.IMAGE_INPAINT,ls("image",t))}async imageUpscale(t){return this.callMethod(zr.IMAGE_UPSCALE,ls("image",t))}async imageBgRemove(t){return this.callMethod(zr.IMAGE_BG_REMOVE,ls("image",t))}async visionOcr(t){return this.callMethod(zr.VISION_OCR,ls("vision",t))}async visionCaption(t){return this.callMethod(zr.VISION_CAPTION,ls("vision",t))}async visionDetect(t){return this.callMethod(zr.VISION_DETECT,ls("vision",t))}async visionSegment(t){return this.callMethod(zr.VISION_SEGMENT,ls("vision",t))}async audioTts(t){return this.callMethod(zr.AUDIO_TTS,ls("audio",t))}async audioAsr(t){return this.callMethod(zr.AUDIO_ASR,ls("audio",t))}async audioMusic(t){return this.callMethod(zr.AUDIO_MUSIC,ls("audio",t))}async audioEnhance(t){return this.callMethod(zr.AUDIO_ENHANCE,ls("audio",t))}async videoTxt2video(t){return this.callMethod(zr.VIDEO_TXT2VIDEO,ls("video",t))}async videoImg2video(t){return this.callMethod(zr.VIDEO_IMG2VIDEO,ls("video",t))}async videoVideo2video(t){return this.callMethod(zr.VIDEO_VIDEO2VIDEO,ls("video",t))}async videoExtend(t){return this.callMethod(zr.VIDEO_EXTEND,ls("video",t))}async videoUpscale(t){return this.callMethod(zr.VIDEO_UPSCALE,ls("video",t))}async agentComputerUse(t){return this.callMethod(zr.AGENT_COMPUTER_USE,ls("agent",t))}async cancel(t){if(!t)throw new Fn("AiccClient.cancel requires a non-empty task_id");const e=as(await this.rpcClient.call(qr.CANCEL,{task_id:t}));if("string"!=typeof e.task_id||"boolean"!=typeof e.accepted)throw new Fn("Invalid cancel response");return{task_id:e.task_id,accepted:e.accepted}}async reloadSettings(){return this.rpcClient.call(qr.RELOAD_SETTINGS,{})}async serviceReloadSettings(){return this.rpcClient.call(qr.SERVICE_RELOAD_SETTINGS,{})}async queryQuota(t){const e=as(await this.rpcClient.call(qr.QUOTA_QUERY,t));if(!e.quota||"object"!=typeof e.quota||Array.isArray(e.quota))throw new Fn("Invalid quota.query response");return e}async listProviders(t={}){return this.rpcClient.call(qr.PROVIDER_LIST,t)}async providerHealth(t){return this.rpcClient.call(qr.PROVIDER_HEALTH,t)}}const hs={max_messages:null,retention_seconds:null,sync_write:!1,other_app_can_read:!0,other_app_can_write:!1,other_user_can_read:!1,other_user_can_write:!1};function ds(t,e){if("number"!=typeof t||!Number.isFinite(t))throw new Fn(`expected ${e} to be a number`);return t}function fs(t,e){if("string"!=typeof t)throw new Fn(`expected ${e} to be a string`);return t}function ps(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:ds(n.index,`message[${e}].index`),created_at:ds(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 gs{constructor(t){this.rpcClient=t}setSeq(t){this.rpcClient.setSeq(t)}async createQueue(t,e,n,r={...hs}){return fs(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:ds(n.message_count,"message_count"),first_index:ds(n.first_index,"first_index"),last_index:ds(n.last_index,"last_index"),size_bytes:ds(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 ds(await this.rpcClient.call("post_message",{queue_urn:t,message:e}),"msg_index")}async subscribe(t){return fs(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 ps(await this.rpcClient.call("fetch_messages",{sub_id:t,length:e,auto_commit:n}))}async readMessage(t,e,n){return ps(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 ds(await this.rpcClient.call("delete_message_before",{queue_urn:t,index:e}),"deleted_count")}}function ms(t){const e={};for(const[n,r]of Object.entries(t))void 0!==r&&(e[n]=r);return e}function ys(t,e){if(!t||"object"!=typeof t||Array.isArray(t))throw new Fn(`expected ${e} to be an object`);return t}function ws(t,e){return null==t?null:ys(t,e)}function bs(t,e){if(!Array.isArray(t))throw new Fn(`expected ${e} to be an array`);return t}function As(t,e){if("string"!=typeof t)throw new Fn(`${e} expected to return a DID string`);return t}class vs{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 ys(await this.call("msg.dispatch",ms({msg:t,ingress_ctx:e,idempotency_key:n})),"DispatchResult")}async postSend(t,e){return ys(await this.call("msg.post_send",ms({msg:t,idempotency_key:e})),"PostSendResult")}async getNext(t){return ws(await this.call("msg.get_next",ms({...t})),"MailboxRecordWithObject")}async getNextDelivery(t){return ws(await this.call("msg.get_next_delivery",ms({...t})),"DeliveryRecordWithObject")}async peekBox(t){return bs(await this.call("msg.peek_box",ms({...t})),"Vec<MailboxRecordWithObject>")}async listBoxByTime(t){const e=ys(await this.call("msg.list_box_by_time",ms({...t})),"MailboxRecordPage");return{...e,items:Array.isArray(e.items)?e.items:[]}}async listSessions(t){const e=ys(await this.call("msg.list_sessions",ms({...t})),"SessionSummaryPage");return{...e,items:Array.isArray(e.items)?e.items:[]}}async listSession(t){const e=ys(await this.call("msg.list_session",ms({...t})),"SessionMessagePage");return{...e,items:Array.isArray(e.items)?e.items:[]}}async updateRecordState(t,e){return ys(await this.call("msg.update_record_state",{record_id:t,new_state:e}),"MailboxRecord")}async updateRecordSession(t,e){return ys(await this.call("msg.update_record_session",{record_id:t,session_id:e}),"MailboxRecord")}async reportDelivery(t,e){return ys(await this.call("msg.report_delivery",{delivery_id:t,result:e}),"DeliveryRecord")}async setReadState(t){return ys(await this.call("msg.set_read_state",ms({...t})),"MsgReceiptObj")}async listReadReceipts(t){return bs(await this.call("msg.list_read_receipts",ms({...t})),"Vec<MsgReceiptObj>")}async getRecord(t,e){return ws(await this.call("msg.get_record",ms({record_id:t,with_object:e})),"MailboxRecordWithObject")}async getMessage(t){return ws(await this.call("msg.get_message",{msg_id:t}),"MsgObject")}async updateUiSessionState(t,e,n){return ys(await this.call("ui_session.update_state",{session_id:t,key:e,value:n}),"UiSessionStateEntry")}async getUiSessionState(t,e){return ws(await this.call("ui_session.get_state",{session_id:t,key:e}),"UiSessionStateEntry")}async listUiSessionState(t){return bs(await this.call("ui_session.list_state",{session_id:t}),"Vec<UiSessionStateEntry>")}async resolveDid(t,e,n,r){return As(await this.call("contact.resolve_did",ms({platform:t,account_id:e,profile_hint:n,contact_mgr_owner:r})),"contact.resolve_did")}async resolveEndpointDid(t,e,n,r,s){return As(await this.call("contact.resolve_endpoint_did",ms({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 As(await this.call("contact.resolve_target",ms({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",ms({endpoint_did:t,contact_mgr_owner:e}));return s="contact.resolve_contact_for_endpoint",null==(r=n)?null:As(r,s);var r,s}async resolveCanonicalDid(t,e){return As(await this.call("contact.resolve_canonical_did",ms({did:t,contact_mgr_owner:e})),"contact.resolve_canonical_did")}async listAliasDids(t,e){return bs(await this.call("contact.list_alias_dids",ms({canonical_did:t,contact_mgr_owner:e})),"Vec<DID>")}async getPreferredBinding(t,e){return ys(await this.call("contact.get_preferred_binding",ms({did:t,contact_mgr_owner:e})),"AccountBinding")}async checkAccessPermission(t,e,n){return ys(await this.call("contact.check_access_permission",ms({did:t,context_id:e,contact_mgr_owner:n})),"AccessDecision")}async grantTemporaryAccess(t,e,n,r){const s=ys(await this.call("contact.grant_temporary_access",ms({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",ms({did:t,reason:e,contact_mgr_owner:n}))}async importContacts(t,e,n){return ys(await this.call("contact.import_contacts",ms({contacts:t,upgrade_to_friend:e,contact_mgr_owner:n})),"ImportReport")}async mergeContacts(t,e,n){return ys(await this.call("contact.merge_contacts",ms({target_did:t,source_did:e,contact_mgr_owner:n})),"Contact")}async updateContact(t,e,n){return ys(await this.call("contact.update_contact",ms({did:t,patch:e,contact_mgr_owner:n})),"Contact")}async getContact(t,e){return ws(await this.call("contact.get_contact",ms({did:t,contact_mgr_owner:e})),"Contact")}async listContacts(t,e){return bs(await this.call("contact.list_contacts",ms({query:t,contact_mgr_owner:e})),"Vec<Contact>")}async getGroupSubscribers(t,e,n,r){return bs(await this.call("contact.get_group_subscribers",ms({group_id:t,limit:e,offset:n,contact_mgr_owner:r})),"Vec<DID>")}async setGroupSubscribers(t,e,n){const r=ys(await this.call("contact.set_group_subscribers",ms({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 groupCreate(t){return ys(await this.call("group.create",t),"GroupDoc")}async groupGetDoc(t){return ws(await this.call("group.get_doc",t),"GroupDoc")}async groupUpdateProfile(t){return ys(await this.call("group.update_profile",t),"GroupDoc")}async groupInviteMember(t){return ys(await this.call("group.invite_member",t),"GroupMemberRecord")}async groupSubmitMemberProof(t){return ys(await this.call("group.submit_member_proof",t),"GroupMemberRecord")}async groupRequestJoin(t){return ys(await this.call("group.request_join",t),"GroupMemberRecord")}async groupApproveMember(t){return ys(await this.call("group.approve_member",t),"GroupMemberRecord")}async groupRejectMember(t){return ys(await this.call("group.reject_member",t),"GroupMemberRecord")}async groupRemoveMember(t){return ys(await this.call("group.remove_member",t),"GroupMemberRecord")}async groupUpdateMemberRole(t){return ys(await this.call("group.update_member_role",t),"GroupMemberRecord")}async groupListMembers(t){return bs(await this.call("group.list_members",t),"Vec<GroupMemberRecord>")}async groupCreateSubgroup(t){return ys(await this.call("group.create_subgroup",t),"GroupSubgroup")}async groupUpdateSubgroup(t){return ys(await this.call("group.update_subgroup",t),"GroupSubgroup")}async groupListSubgroups(t){return bs(await this.call("group.list_subgroups",t),"Vec<GroupSubgroup>")}async groupUpdateCollectionPolicy(t){return ys(await this.call("group.update_collection_policy",t),"GroupDoc")}async groupUpdateAttributionPolicy(t){return ys(await this.call("group.update_attribution_policy",t),"GroupDoc")}async groupExpandMembers(t){return ys(await this.call("group.expand_members",t),"GroupExpansionSnapshot")}async groupListByMember(t){return bs(await this.call("group.list_by_member",t),"Vec<GroupSummary>")}async groupListParents(t){return bs(await this.call("group.list_parents",t),"Vec<GroupSummary>")}async groupCheckAccess(t){return ys(await this.call("group.check_access",t),"GroupAccessDecision")}}function _s(t){const e={};for(const[n,r]of Object.entries(t))void 0!==r&&(e[n]=r);return e}function Es(t,e){if("string"!=typeof t)throw new Fn(`expected ${e} to be a string`);return t}function ks(t,e){if("boolean"!=typeof t)throw new Fn(`expected ${e} to be a boolean`);return t}function Ss(t,e){if("number"!=typeof t||!Number.isFinite(t))throw new Fn(`expected ${e} to be a number`);return t}function Ts(t,e){if(!Array.isArray(t))throw new Fn(`expected ${e} to be an array`);return t}function Rs(t,e){if(!t||"object"!=typeof t||Array.isArray(t))throw new Fn(`expected ${e} to be an object`);return t}class Cs{constructor(t){this.rpcClient=t}setSeq(t){this.rpcClient.setSeq(t)}async store(t){return Es(await this.rpcClient.call("store",{content_id:t}),"ObjId")}async collect(t,e){return Es(await this.rpcClient.call("collect",_s({content_meta:t,referral_proof:e})),"content_id")}async pin(t,e){return ks(await this.rpcClient.call("pin",{content_id:t,download_proof:e}),"pin response")}async unpin(t,e=!1){return ks(await this.rpcClient.call("unpin",{content_id:t,force:e}),"unpin response")}async uncollect(t,e=!1){return ks(await this.rpcClient.call("uncollect",{content_id:t,force:e}),"uncollect response")}async addProof(t){return Es(await this.rpcClient.call("add_proof",{proof:t}),"proof_id")}async getProofs(t,e){return Ts(await this.rpcClient.call("get_proofs",_s({content_id:t,filter:e})),"Vec<RepoProof>").map(((t,e)=>{const n=Rs(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 Ts(await this.rpcClient.call("resolve",{content_name:t}),"Vec<ObjId>").map(((t,e)=>Es(t,`ObjId[${e}]`)))}async list(t){return Ts(await this.rpcClient.call("list",_s({filter:t})),"Vec<RepoRecord>").map(((t,e)=>{const n=Rs(t,`RepoRecord[${e}]`);return{content_id:Es(n.content_id,`RepoRecord[${e}].content_id`),content_name:"string"==typeof n.content_name?n.content_name:void 0,status:Es(n.status,`RepoRecord[${e}].status`),origin:Es(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:Es(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=Rs(await this.rpcClient.call("stat",{}),"RepoStat");return{total_objects:Ss(t.total_objects,"RepoStat.total_objects"),collected_objects:Ss(t.collected_objects,"RepoStat.collected_objects"),pinned_objects:Ss(t.pinned_objects,"RepoStat.pinned_objects"),local_objects:Ss(t.local_objects,"RepoStat.local_objects"),remote_objects:Ss(t.remote_objects,"RepoStat.remote_objects"),total_content_bytes:Ss(t.total_content_bytes,"RepoStat.total_content_bytes"),total_proofs:Ss(t.total_proofs,"RepoStat.total_proofs")}}async serve(t,e){const n=Rs(await this.rpcClient.call("serve",{content_id:t,request_context:e}),"RepoServeResult");return{status:Es(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 ks(await this.rpcClient.call("announce",{content_id:t}),"announce response")}}function Is(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 Os(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(Is(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 xs(t){return Os(t.trim())}function Ns(t){const e=t.trim();Is(e);const n=Os(Mn.DID.fromStr(e).toString());if(n!==e)throw new Error("AppId is not a canonical AppDID raw hostname");return n}function Ps(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 Bs(t,e){const n=Ns(t);return Ps(e),`${n}@${e}`}function Ds(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=Ns(e.slice(0,n)),s=e.slice(n+1);return Ps(s),{appId:r,ownerUserId:s}}const Us="BUCKYOS_APP_DID",Ls="BUCKYOS_APP_ID",Ms="BUCKYOS_APP_INSTANCE_ID",Fs="BUCKYOS_OWNER_USER_ID",js="BUCKYOS_DATA_DIR",Gs="BUCKYOS_APP_TOKEN";var Hs=(t=>(t.Browser="Browser",t.NodeJS="NodeJS",t.AppRuntime="AppRuntime",t.AppClient="AppClient",t.AppService="AppService",t.Unknown="Unknown",t))(Hs||{});const Ws={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 Vs(){const t=globalThis.process;return(null==t?void 0:t.env)??{}}function Ks(){var t;const e=globalThis.process;return Boolean(null==(t=null==e?void 0:e.versions)?void 0:t.node)}function zs(){return"undefined"!=typeof localStorage}function qs(){return"function"==typeof fetch}function $s(){const t=globalThis.Buffer;if(!t||"function"!=typeof t)throw new Error("Buffer is not available in this runtime");return t}function Js(t){const e=$s();return("string"==typeof t?e.from(t,"utf8").toString("base64"):e.from(t).toString("base64")).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function Qs(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):$s().from(n,"base64").toString("utf8")}(e[1]))}catch{return null}}function Ys(t){if("string"!=typeof t)return null;const e=t.trim();return e.length>0?e:null}function Zs(t){const e=Ys(t);return e?e.startsWith("did:web:")?e.slice(8).replace(/:/g,"."):e.startsWith("did:bns:")?e.slice(8):null:null}async function Xs(t){if(Ks()&&"function"==typeof require)return require(t);return Function("name","return import(name)")(t)}class ti{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 ei extends ti{getRelativeZoneServiceURL(t){return`/kapi/${t}/`}getRelativeSystemConfigServiceURL(){return"/kapi/system_config"}getServiceSettingsPath(t){return`services/${t.getAppId()}/settings`}getZoneServiceURL(t,e){return this.getRelativeZoneServiceURL(e)}getSystemConfigServiceURL(t){return this.getRelativeSystemConfigServiceURL()}getMySettingsPath(t){return this.getServiceSettingsPath(t)}}class ni extends ei{}class ri extends ti{async login(t){await t.initialize(),await t.renewTokenFromVerifyHub(),t.startAutoRenewIfNeeded()}supportsManagedSessionRenewal(){return!0}}class si extends ri{async initialize(t){await super.initialize(t),await t.ensureAppClientSessionToken()}getZoneGatewayServiceURL(t,e){const n=Ys(t.getZoneHostName());if(!n)throw new Error("zoneHost is required in AppClient mode");return`${t.getDefaultProtocol()}${n}/kapi/${e}`}getZoneSystemConfigURL(t){const e=Ys(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!Ys(t.getZoneHostName())&&!t.getConfiguredVerifyHubServiceUrl()}async getVerifyHubLoginJwt(t,e){return t.createAppClientSessionToken()}}class ii extends ri{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 oi(t){switch(t){case"AppClient":return new si;case"AppService":return new ii;case"AppRuntime":return new ni;default:return new ei}}class ai{constructor(t){const e=Ys(t.ownerUserId)??Ys(t.userid);this.config={...Ws,...t,appId:t.appId,appDid:Ys(t.appDid),appInstanceId:Ys(t.appInstanceId),dataDir:Ys(t.dataDir),userid:e,ownerUserId:e,zoneHost:t.zoneHost??"",defaultProtocol:t.defaultProtocol??Ws.defaultProtocol},this.sessionToken=Ys(t.sessionToken),this.refreshToken=Ys(t.refreshToken),this.renewTimer=null,this.browserRefreshPromise=null,this.authStateRevision=0,this.initialized=!1,this.profile=oi(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=Ys(t.ownerUserId)??Ys(t.userid);this.config={...Ws,...t,appId:t.appId,appDid:Ys(t.appDid),appInstanceId:Ys(t.appInstanceId),dataDir:Ys(t.dataDir),userid:e,ownerUserId:e},this.profile=oi(this.config.runtimeType)}getConfig(){return{...this.config}}getAppId(){return this.config.appId}getOwnerUserId(){return Ys(this.config.ownerUserId)}getAppDid(){return Ys(this.config.appDid)}getAppInstanceId(){return Ys(this.config.appInstanceId)}getDataDir(){return Ys(this.config.dataDir)}getAuthTarget(){if(this.config.authTarget){const t=Zn(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=Ds(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:Bs(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 Ys(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=Ys(t);e!==this.sessionToken&&(this.authStateRevision+=1),this.sessionToken=e}setRefreshToken(t){this.refreshToken=Ys(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 Gn(this.getZoneServiceURL(t),this.sessionToken,null,{sessionTokenProvider:this.ensureSessionTokenReady.bind(this),onSessionTokenChanged:this.setSessionToken.bind(this)})}getSystemConfigClient(){return new Wr(this.getSystemConfigServiceURL(),this.sessionToken,{sessionTokenProvider:this.ensureSessionTokenReady.bind(this),onSessionTokenChanged:this.setSessionToken.bind(this)})}getVerifyHubClient(){const t=this.getConfiguredVerifyHubServiceUrl(),e=new Gn(t??this.getZoneServiceURL("verify-hub"),this.sessionToken);return new Xn(e)}getTaskManagerClient(){const t=this.getServiceRpcClient("task-manager");return new Cr(t)}getWorkflowClient(){const t=this.getServiceRpcClient("workflow");return new Gr(t)}getAiccClient(){return new us(this.getServiceRpcClient("aicc"))}getMsgQueueClient(){return new gs(this.getServiceRpcClient("kmsg"))}getMsgCenterClient(){return new vs(this.getServiceRpcClient("msg-center"))}getRepoClient(){return new Cs(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=Qs(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=Ys(r.session_token),this.refreshToken=Ys(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(!Ks())return;if("AppService"!==this.config.runtimeType)return;const t=Vs(),e=e=>{const n=Ys(t[e]);if(!n)throw new Error(`${e} is required for AppService runtime`);return n},n=e(Us),r=Ns(e(Ls)),s=e(Ms),i=e(Fs),o=e(js),a=Ds(s);if(!(await Xs("node:path")).isAbsolute(o))throw new Error(`${js} must be an absolute path`);if(xs(n)!==r||a.appId!==r||a.ownerUserId!==i||Bs(r,i)!==s)throw new Error("AppService identity environment variables are inconsistent");const c=Ys(this.config.appId),l=Ys(this.config.appDid),u=Ys(this.config.appInstanceId),h=this.getOwnerUserId(),d=Ys(this.config.dataDir);if(c&&c!==r)throw new Error(`runtime appId ${c} does not match ${Ls} ${r}`);if(l&&l!==n)throw new Error(`runtime appDid ${l} does not match ${Us} ${n}`);if(u&&u!==s)throw new Error(`runtime appInstanceId ${u} does not match ${Ms} ${s}`);if(h&&h!==i)throw new Error(`runtime ownerUserId ${h} does not match ${Fs} ${i}`);if(d&&d!==o)throw new Error(`runtime dataDir ${d} does not match ${js} ${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(!Ks())return;if(Ys(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=Qs(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=Qs(this.sessionToken);return this.sessionToken&&t&&!this.needsRenew(t)?this.sessionToken:this.refreshBrowserSessionToken()}normalizeBrowserUserInfo(t){if(!t||"object"!=typeof t||Array.isArray(t))return null;const e=t,n="string"==typeof e.user_id?e.user_id.trim():"",r="string"==typeof e.user_type?e.user_type.trim():"",s="string"==typeof e.user_name?e.user_name.trim():"string"==typeof e.show_name?e.show_name.trim():"";return n&&r?{user_name:s||n,user_id:n,user_type:r}:null}async refreshBrowserSession(){return await this.refreshBrowserSessionToken()&&zs()?Qn():null}async logoutBrowserSSO(){if(("Browser"===this.config.runtimeType||"AppRuntime"===this.config.runtimeType)&&qs())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(!qs())return this.sessionToken;const e=zs()?Qn():null;try{const n=await fetch("/sso_refresh",{method:"POST",credentials:"include",cache:"no-store"});if(!n.ok)return t===this.authStateRevision&&(this.sessionToken=null),null;const r=await n.json(),s=Ys("string"==typeof r.access_token?r.access_token:"string"==typeof r.session_token?r.session_token:null),i=this.normalizeBrowserUserInfo(r.user_info)??e;return s&&i?t!==this.authStateRevision?null:(this.sessionToken=s,this.refreshToken=null,Jn(i),this.validateSessionToken(),this.sessionToken):(t===this.authStateRevision&&(this.sessionToken=null),null)}catch(n){return console.warn("BuckyOS browser sso_refresh failed:",n),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=Ys(Vs()[Gs]);if(t)return t;throw new Error(`${Gs} is required for AppService runtime`)}loadAppClientSessionTokenFromEnv(){return Ys(Vs().BUCKYOS_APPCLIENT_SESSION_TOKEN)}async createAppClientSessionToken(){if(!Ks())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 Xs("node:fs/promises");const t=await Xs("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=Vs(),n=await Xs("node:path"),r=await Xs("node:os"),s=[];for(const c of this.config.privateKeySearchPaths??[]){const t=Ys(c);t&&s.push(t)}const i=Ys(e.BUCKYOS_APP_CLIENT_DIR);i&&s.push(i);const o=Ys(e.HOME)??Ys(e.USERPROFILE)??Ys(null==(t=r.homedir)?void 0:t.call(r));o&&(s.push(n.join(o,".buckyos")),s.push(n.join(o,".buckycli")));const a=Ys(this.config.rootDir)??Ys(e.BUCKYOS_ROOT)??"/opt/buckyos";return s.push(a),s.push(n.join(a,"etc")),Array.from(new Set(s))}async getBuckyOSRootDir(){const t=Vs();return Ys(this.config.rootDir)??Ys(t.BUCKYOS_ROOT)??"/opt/buckyos"}async getBuckyOSEtcDir(){return(await Xs("node:path")).join(await this.getBuckyOSRootDir(),"etc")}async readPemFile(t){const e=await Xs("node:fs/promises");try{return(await e.readFile(t,"utf8")).trim()||null}catch{return null}}async readNodeIdentityMetadata(t){const e=await Xs("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=Qs("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=Qs("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 Xs("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 Xs("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=Vs(),a=Ys(o.BUCKYOS_SECURITY_ROOT)??n.join(Ys(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 Xs("node:fs/promises"),s=await Xs("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 Xs("node:path"),n=Vs(),r=Ys(n.BUCKYOS_THIS_DEVICE_NAME);if(r)return r;for(const s of["BUCKYOS_THIS_DEVICE","BUCKYOS_THIS_DEVICE_INFO"]){const t=Ys(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 Xs("node:fs/promises"),r=await Xs("node:path"),s=Ys(Vs().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 Zs(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=Zs(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 Ys(this.config.systemConfigServiceUrl)}resolveAppServiceGatewayHost(){return Ys(Vs().BUCKYOS_HOST_GATEWAY)??"host.docker.internal"}async signJwtWithEd25519(t,e,n){const r=await Xs("node:crypto"),s=$s(),i=`${Js(JSON.stringify(t))}.${Js(JSON.stringify(e))}`;return`${i}.${Js(r.sign(null,s.from(i,"utf8"),r.createPrivateKey({key:n,format:"pem"})))}`}}const ci=1048576;class li extends Error{constructor(t,e){super(e),this.name="KEventProtocolError",this.code=t}}const ui=async(t,e)=>{if("function"!=typeof fetch)throw new Error("fetch is not available in this runtime");return fetch(t,e)};function hi(){var t;const e=globalThis.process;return Boolean(null==(t=null==e?void 0:e.versions)?void 0:t.node)}function di(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 fi(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 pi(t){return t instanceof Error?t.message:String(t)}function gi(t){if("ok"===t.status)return t;throw new li(t.code||"INTERNAL",t.message||"Unknown kevent error")}function mi(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 yi{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 wi{constructor(){this.queue=new yi,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 bi extends wi{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(mi(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(pi(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 Ai{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>ci)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(pi(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(pi(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>ci)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 vi extends wi{constructor(t,e){super(),this.client=t,this.readerId=e}static async create(t,e){const n=new Ai(e.nativeHost,e.nativePort,e.nativeConnectTimeoutMs,e.nativeConnector),r=`ts_kevent_${Date.now()}_${Math.random().toString(36).slice(2,10)}`;try{return gi(await n.call({op:"register_reader",reader_id:r,patterns:t})),new vi(n,r)}catch(s){throw await n.close(),s}}async pullEvent(t){if(this.isClosed())return null;const e=gi(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?mi(e.event):null}async closeTransport(){try{gi(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 _i(t,e,n){if(!hi())throw new Error("native kevent requires Node.js");const r=await async function(t){return hi()&&"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 Ei{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??ui,this.sessionTokenProvider=t.sessionTokenProvider??null,this.nativeConnector=t.nativeConnector??_i}async createEventReader(t,e={}){const n=di(t);if("browser"===this.mode){const t=new bi(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 vi.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=di(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 fi(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 ki={runtime:null};function Si(){if("undefined"==typeof window)return null;const t=window.BuckyApi;return t&&"object"==typeof t?t:null}async function Ti(){const t=Si(),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 Ri(t,e=null){const n=Si(),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 Ci(){return"undefined"!=typeof window}function Ii(){const t=globalThis.process;return(null==t?void 0:t.env)??{}}function Oi(t){if("string"!=typeof t)return null;const e=t.trim();return e.length>0?e:null}function xi(){return"undefined"!=typeof localStorage}function Ni(t){return t?t.split(/[./]/).map((t=>t.trim())).filter((t=>t.length>0)):[]}function Pi(){return Oi(Ii().BUCKYOS_APP_INSTANCE_ID)?Hs.AppService:Hs.AppClient}function Bi(){var t;return(null==(t=ki.runtime)?void 0:t.getConfig().runtimeType)??function(){var t;if("undefined"!=typeof window)return window.BuckyApi?Hs.AppRuntime:Hs.Browser;const e=globalThis.process;return(null==(t=null==e?void 0:e.versions)?void 0:t.node)?Hs.NodeJS:Hs.Unknown}()}function Di(){var t;const e=ki.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 Ui(){const t=ki.runtime;return t?t.ensureSessionTokenReady():null}class Li{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&&Ci()&&!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 ai(r),await this.currentRuntime.initialize(),s=this.currentRuntime,ki.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===Hs.Browser||t===Hs.AppRuntime?"browser":"native";return this.currentKEventClient=new Ei({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 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!==Hs.Browser&&t!==Hs.AppRuntime)return this.currentAccountInfo;const e=await this.currentRuntime.ensureSessionTokenReady(),n=xi()?Qn():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=Zn(a);if(c!==o)throw new Error(`auth target appid mismatch: ${c} != ${o}`);const l=Date.now(),u=qn(t,e,l);xi()&&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=Xn.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 xi()&&(!function(t,e){if(null==e.session_token)return void console.error("session_token is null,can't save account info");localStorage.setItem(zn(t),JSON.stringify(e));let n={path:"/",expires:new Date(Date.now()+2592e6),secure:!0,sameSite:"Lax"};document.cookie=`${t}_token=${e.session_token}; ${Object.entries(n).map((([t,e])=>`${t}=${e}`)).join("; ")}`}(o,c),Jn({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");xi()&&$n(t);const e=this.getZoneHostName();if(null!=e)try{const t=new Wn(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&&xi()&&$n(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=Ni(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=Ni(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 Ti()}resolve_did(t,e=null){if("undefined"==typeof window)throw new Error("BuckyApi is only available in browser runtime");return Ri(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===Hs.NodeJS&&"browser"!==this.target&&(n=Pi()),{...Ws,...e,appId:e.appId||t,runtimeType:n}}return"browser"===this.target?{...Ws,appId:t,runtimeType:this.detectEnvironmentRuntimeType(),defaultProtocol:"undefined"!=typeof window?window.location.protocol+"//":"http://"}:"node"===this.target?{...Ws,appId:t,runtimeType:Pi(),defaultProtocol:"https://",zoneHost:Oi(Ii().BUCKYOS_ZONE_HOST)??""}:Ci()?{...Ws,appId:t,runtimeType:this.detectEnvironmentRuntimeType(),defaultProtocol:window.location.protocol+"//"}:{...Ws,appId:t,runtimeType:Pi(),defaultProtocol:"https://",zoneHost:Oi(Ii().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=Qs(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===Hs.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===Hs.AppClient||t===Hs.AppService}detectEnvironmentRuntimeType(){var t,e;if("browser"===this.target)return"undefined"!=typeof window&&window.BuckyApi?Hs.AppRuntime:"undefined"!=typeof window?Hs.Browser:Hs.Unknown;if("node"===this.target){const e=globalThis.process;return(null==(t=null==e?void 0:e.versions)?void 0:t.node)?Pi():Hs.Unknown}if("undefined"!=typeof window)return window.BuckyApi?Hs.AppRuntime:Hs.Browser;const n=globalThis.process;return(null==(e=null==n?void 0:n.versions)?void 0:e.node)?Hs.NodeJS:Hs.Unknown}}const Mi="/kapi/bns",Fi="/kapi/bns-indexer",ji="did:bns:",Gi="name.query_state",Hi="name.resolve_owner",Wi="authority.get_set",Vi="authority.get_key",Ki="document.resolve",zi="document.get_version",qi="name.query_by_addr",$i="tx.query_state",Ji="tx.submit_raw",Qi="events.list",Yi="checkpoint.latest",Zi={transport:"RPC_TRANSPORT_ERROR",serialization:"SERIALIZATION_ERROR",invalid_response:"INVALID_RESPONSE",timeout:"TX_WAIT_TIMEOUT"};class Xi 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":Zi[this.kind]}isRegistryCode(t){return"registry"===this.kind&&this.code===t}static registry(t){return new Xi("registry",`${t.code}: ${t.message}`,t)}static registryCode(t,e,n={}){return Xi.registry({code:t,message:e,name:null,doc_type:null,expected:null,actual:null,...n})}}class to extends Error{constructor(t,e){super(`${t}: ${e}`),this.path=t,this.reason=e,this.name="BnsDecodeError"}}function eo(t,e){throw new to(t,e)}const no=(t,e)=>"string"==typeof t?t:eo(e,"expected string"),ro=(t,e)=>"boolean"==typeof t?t:eo(e,"expected boolean"),so=(t,e)=>"number"==typeof t&&Number.isInteger(t)&&t>=0?t:eo(e,"expected u64"),io=(t,e)=>"number"==typeof t&&Number.isInteger(t)&&t>=0&&t<=4294967295?t:eo(e,"expected u32"),oo=(t,e)=>{Array.isArray(t)||eo(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)&&eo(`${e}[${n}]`,"expected u8")}return t};function ao(...t){return(e,n)=>"string"==typeof e&&t.includes(e)?e:eo(n,`expected one of ${t.join("|")}`)}function co(t){return(e,n)=>(Array.isArray(e)||eo(n,"expected array"),e.map(((e,r)=>t(e,`${n}[${r}]`))))}function lo(t,e){const n=(e,n)=>t(e,n);return n.onMissing=e,n}function uo(t){return lo(((e,n)=>null===e?null:t(e,n)),(()=>null))}const ho=lo(so,(()=>0));function fo(t,e){const n=Object.keys(e);return(r,s)=>{(null===r||"object"!=typeof r||Array.isArray(r))&&eo(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}eo(r,"missing field")}o[t]=n(a,r)}return o}}const po=ao("available","active","expired","released","tombstoned"),go=ao("missing","active","revoked","expired","migrated","tombstoned"),mo=ao("none","alias","migrated_to","canonical"),yo=ao("release_after_grace","tombstone_forever"),wo=ao("unset","chain_account","bns_name"),bo=ao("none","asset_owner_fallback","explicit_semantic_owner","parent_inherited"),Ao=ao("missing","active","revoked","expired"),vo=ao("not_found","pending","succeeded","reverted"),_o=fo("Principal",{kind:wo,value:no}),Eo=fo("NameState",{name:no,asset_owner:no,semantic_owner:_o,effective_owner:_o,owner_source:bo,standard_transfer_enabled:ro,status:po,registered_at:so,expire_at:so,grace_until:so,updated_at:so,name_seq:so,owner_document_version:so,min_document_iat:ho,owner_policy_seq:ho,lineage_epoch:so,renewable:ro,transferable:ro,allow_delegated_subnames:ro,namespace_policy_hash:no,payment_policy_hash:no,alias_state_hash:no}),ko=fo("OwnerResolution",{effective_owner:_o,source:bo,authority_root:no,authority_seq:so}),So=fo("AuthoritySetState",{name:no,authority_seq:so,authority_root:no,active_key_count:io}),To=fo("AuthorityKey",{kid:no,verification_method:no,key_data:oo,purposes:io,valid_from:so,valid_until:so,status:Ao,metadata_hash:no}),Ro=fo("DocumentRef",{storage_type:no,uri:no,inline_document:oo,content_hash:no,schema:no,codec:no,extra_hash:no}),Co=fo("DocumentState",{name:no,doc_type:no,version:so,previous_version:so,status:go,document:Ro,controller:_o,beneficiary:_o,payment_target:no,valid_from:so,expire_at:so,revoked_at:so,controller_policy_hash:no,payment_policy_hash:no,split_policy_hash:no,price_policy_hash:no,rights_policy_hash:no,document_state_hash:no}),Io=fo("ResolveResult",{name_state:Eo,document_state:Co,owner:ko,effective_controller:_o,status:go,alias_kind:mo,alias_target_did:no,proof_root:no}),Oo=fo("BnsNamePage",{names:co(no),next_cursor:uo(no)}),xo=fo("BnsTxState",{tx_hash:no,state:vo,block_number:uo(so),confirmations:so}),No=fo("BnsSubmitRawTxResp",{tx_hash:no}),Po=fo("LogCheckpoint",{log_root:no,last_seq:so,issued_at:so,issuer:_o,external_anchor:no}),Bo={name_registered:fo("name_registered",{name:no,asset_owner:no,expire_at:so,lineage_epoch:so,name_seq:so}),name_renewed:fo("name_renewed",{name:no,expire_at:so,name_seq:so}),name_asset_transferred:fo("name_asset_transferred",{name:no,old_asset_owner:no,new_asset_owner:no,standard_transfer:ro,name_seq:so}),name_owner_updated:fo("name_owner_updated",{name:no,owner:_o,owner_source:bo,standard_transfer_enabled:ro,name_seq:so}),authority_keys_updated:fo("authority_keys_updated",{name:no,authority_seq:so,authority_root:no}),name_released:fo("name_released",{name:no,mode:yo,reason_hash:no,name_seq:so}),document_published:fo("document_published",{name:no,doc_type:no,version:so,content_hash:no,document_state_hash:no}),document_revoked:fo("document_revoked",{name:no,doc_type:no,previous_version:so,new_version:so,reason_hash:no}),owner_document_iat_floor_updated:fo("owner_document_iat_floor_updated",{name:no,previous_min_document_iat:so,new_min_document_iat:so,owner_policy_seq:so,name_seq:so,reason_hash:no}),controller_policy_updated:fo("controller_policy_updated",{name:no,policy_hash:no,name_seq:so}),namespace_policy_updated:fo("namespace_policy_updated",{name:no,allow_delegated_subnames:ro,namespace_policy_hash:no,name_seq:so}),did_alias_set:fo("did_alias_set",{name:no,target_did:no,kind:mo,proof_hash:no,name_seq:so}),payment_target_updated:fo("payment_target_updated",{name:no,doc_type:no,payment_target:no,payment_policy_hash:no,version:so}),log_checkpoint_published:fo("log_checkpoint_published",{log_root:no,last_seq:so,issued_at:so,external_anchor:no})},Do=co(fo("EventLogRecord",{seq:so,event_type:no,observed_at:so,event_hash:no,previous_log_root:no,log_root:no,event:(t,e)=>{(null===t||"object"!=typeof t||Array.isArray(t))&&eo(e,"expected RegistryEvent object");const n=t;"string"!=typeof n.type&&eo(`${e}.type`,"expected string event tag");const r=Bo[n.type];return r||eo(`${e}.type`,`unknown event type \`${n.type}\``),"data"in n&&void 0!==n.data||eo(`${e}.data`,"missing field"),{type:n.type,data:r(n.data,`${e}.data`)}}})),Uo=fo("BnsRpcErrorInfo",{code:no,message:no,name:uo(no),doc_type:uo(no),expected:uo(so),actual:uo(so)});function Lo(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 Mo(t){const e=t.replace(/\/+$/,"");return Lo(e)?e:`${e}${Mi}`}function Fo(t){const e=t.replace(/\/+$/,"");return Lo(e)?e:`${e}${Fi}`}function jo(t){const e=e=>Xi.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(ji))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 Go(t){const e=e=>Xi.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 Ho="0123456789abcdef";function Wo(t){if(t instanceof Uint8Array){if(0===t.length)throw new Xi("serialization","raw_tx must not be empty");return`0x${function(t){let e="";for(let n=0;n<t.length;n++)e+=Ho[t[n]>>4]+Ho[15&t[n]];return e}(t)}`}const e=t.trim();if(!e)throw new Xi("serialization","raw_tx must not be empty");const n=e.startsWith("0x")?e.slice(2):e;if(!n||n.length%2!=0)throw new Xi("serialization",`raw_tx must be even-length hex, got \`${t}\``);if(!/^[0-9a-fA-F]+$/.test(n))throw new Xi("serialization",`invalid raw_tx hex \`${t}\``);return`0x${n}`}function Vo(t,e){if("number"!=typeof e||!Number.isInteger(e)||e<0)throw new Xi("serialization",`waitTx ${t} must be a non-negative integer, got ${e}`);return Math.max(1,e)}class Ko{constructor(t,e=null,n={}){this.rpcClient=new Gn(Mo(t),e,null,n)}static forIndexer(t,e=null,n={}){return new Ko(Fo(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 Xi("transport",`${t} failed: ${e}`)}if(null===n||"object"!=typeof n||Array.isArray(n))throw new Xi("invalid_response",`invalid BNS RPC envelope for ${t}`);const r=n;if("boolean"!=typeof r.ok)throw new Xi("invalid_response",`invalid BNS RPC envelope for ${t}`);if(!r.ok){if(void 0!==r.result&&null!==r.result)throw new Xi("invalid_response",`unexpected result in failed BNS envelope for ${t}`);if(void 0===r.error||null===r.error)throw Xi.registryCode("UNKNOWN_BNS_ERROR","BNS RPC envelope missing error");let e;try{e=Uo(r.error,"error")}catch(s){const e=s instanceof to?s.message:String(s);throw new Xi("invalid_response",`invalid BNS error info for ${t}: ${e}`)}throw Xi.registry(e)}if(void 0!==r.error&&null!==r.error)throw new Xi("invalid_response",`unexpected error in successful BNS envelope for ${t}`);if(void 0===r.result)throw new Xi("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 to?r.message:String(r);throw new Xi("invalid_response",`invalid ${t} result: ${e}`)}}async call(t,e,n){const r=await this.callEnvelope(t,e);if(null===r)throw new Xi("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(Gi,{name:t},Eo)}async resolveOwner(t){return this.call(Hi,{name:t},ko)}async getAuthoritySet(t){return this.call(Wi,{name:t},So)}async getAuthorityKey(t,e){return this.callNullable(Vi,{name:t,kid:e},To)}async resolveDocument(t,e){return this.call(Ki,{name:t,doc_type:e},Io)}async getDocumentVersion(t,e,n){return this.callNullable(zi,{name:t,doc_type:e,version:n},Co)}async queryNamesByAddress(t,e=null,n=100){return this.call(qi,{address:t,cursor:e,limit:n},Oo)}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($i,{tx_hash:t},xo)}async submitRawTx(t){return this.call(Ji,{raw_tx:Wo(t)},No)}async waitTx(t,e={}){const n=Vo("confirmations",e.confirmations??1),r=Vo("intervalMs",e.intervalMs??2e3),s=Vo("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 Xi("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(Qi,{from_seq:t,limit:e},Do)}async latestCheckpoint(){return this.callNullable(Yi,{},Po)}}const zo=Object.freeze(Object.defineProperty({__proto__:null,BNS_INDEXER_RPC_PATH:Fi,BNS_SERVER_RPC_PATH:Mi,BnsClient:Ko,BnsClientError:Xi,DID_BNS_PREFIX:ji,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:Vi,METHOD_GET_AUTHORITY_SET:Wi,METHOD_GET_DOCUMENT_VERSION:zi,METHOD_LATEST_CHECKPOINT:Yi,METHOD_LIST_EVENTS:Qi,METHOD_QUERY_NAMES_BY_ADDRESS:qi,METHOD_QUERY_NAME_STATE:Gi,METHOD_QUERY_TX_STATE:$i,METHOD_RESOLVE_DOCUMENT:Ki,METHOD_RESOLVE_OWNER:Hi,METHOD_SUBMIT_RAW_TX:Ji,ZERO_HASH:"0x0000000000000000000000000000000000000000000000000000000000000000",canonicalBnsName:jo,canonicalDocType:Go,didBnsFromName:function(t){return`${ji}${jo(t)}`},nameFromDidBns:function(t){if(!t.startsWith(ji))throw Xi.registryCode("INVALID_NAME",`invalid BNS name \`${t}\`: DID must start with did:bns:`,{name:t});return jo(t.slice(8))},normalizeBnsIndexerUrl:Fo,normalizeBnsServerUrl:Mo,normalizeRawTx:Wo},Symbol.toStringTag,{value:"Module"})),qo="6.17.0";function $o(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 Jo(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 Qo(t,e,n){for(let r in e){let s=e[r];const i=n?n[r]:null;i&&$o(s,i,r),Object.defineProperty(t,r,{enumerable:!0,value:s,writable:!1})}}function Yo(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=>Yo(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 Yo(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=>`${Yo(n,e)}: ${Yo(t[n],e)}`)).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function Zo(t,e){return t&&t.code===e}function Xo(t){return Zo(t,"CALL_EXCEPTION")}function ta(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: ${Yo(n)}`);for(const t in n){if("shortMessage"===t)continue;const e=n[t];r.push(t+"="+Yo(e))}}r.push(`code=${e}`),r.push(`version=${qo}`),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 Qo(r,{code:e}),n&&Object.assign(r,n),null==r.shortMessage&&Qo(r,{shortMessage:s}),r}function ea(t,e,n,r){if(!t)throw ta(e,n,r)}function na(t,e,n,r){ea(t,e,"INVALID_ARGUMENT",{argument:n,value:r})}function ra(t,e,n){null==n&&(n=""),n&&(n=": "+n),ea(t>=e,"missing argument"+n,"MISSING_ARGUMENT",{count:t,expectedCount:e}),ea(t<=e,"too many arguments"+n,"UNEXPECTED_ARGUMENT",{count:t,expectedCount:e})}const sa=["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 ia(t){ea(sa.indexOf(t)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:t}})}function oa(t,e,n){if(null==n&&(n=""),t!==e){let t=n,e="new";n&&(t+=".",e+=" "+n),ea(!1,`private constructor; use ${t}from* methods`,"UNSUPPORTED_OPERATION",{operation:e})}}function aa(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}na(!1,"invalid BytesLike value",e||"value",t)}function ca(t,e){return aa(t,e,!1)}function la(t,e){return aa(t,e,!0)}function ua(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 ha(t){return ua(t,!0)||t instanceof Uint8Array}const da="0123456789abcdef";function fa(t){const e=ca(t);let n="0x";for(let r=0;r<e.length;r++){const t=e[r];n+=da[(240&t)>>4]+da[15&t]}return n}function pa(t){return"0x"+t.map((t=>fa(t).substring(2))).join("")}function ga(t){return ua(t,!0)?(t.length-2)/2:ca(t).length}function ma(t,e,n){const r=ca(t);return null!=n&&n>r.length&&ea(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:n}),fa(r.slice(null==e?0:e,null==n?r.length:n))}function ya(t,e,n){const r=ca(t);ea(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),fa(s)}function wa(t,e){return ya(t,e,!0)}function ba(t,e){return ya(t,e,!1)}const Aa=BigInt(0),va=BigInt(1),_a=9007199254740991;function Ea(t,e){let n=Sa(t,"value");const r=BigInt(Ia(e,"width")),s=va<<r-va;if(n<Aa){n=-n,ea(n<=s,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:t});return(~n&(va<<r)-va)+va}return ea(n<s,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:t}),n}function ka(t,e){const n=Ta(t,"value"),r=BigInt(Ia(e,"bits"));return n&(va<<r)-va}function Sa(t,e){switch(typeof t){case"bigint":return t;case"number":return na(Number.isInteger(t),"underflow",e||"value",t),na(t>=-_a&&t<=_a,"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){na(!1,`invalid BigNumberish string: ${n.message}`,e||"value",t)}}na(!1,"invalid BigNumberish value",e||"value",t)}function Ta(t,e){const n=Sa(t,e);return ea(n>=Aa,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:t}),n}const Ra="0123456789abcdef";function Ca(t){if(t instanceof Uint8Array){let e="0x0";for(const n of t)e+=Ra[n>>4],e+=Ra[15&n];return BigInt(e)}return Sa(t)}function Ia(t,e){switch(typeof t){case"bigint":return na(t>=-_a&&t<=_a,"overflow",e||"value",t),Number(t);case"number":return na(Number.isInteger(t),"underflow",e||"value",t),na(t>=-_a&&t<=_a,"overflow",e||"value",t),t;case"string":try{if(""===t)throw new Error("empty string");return Ia(BigInt(t),e)}catch(n){na(!1,`invalid numeric string: ${n.message}`,e||"value",t)}}na(!1,"invalid numeric value",e||"value",t)}function Oa(t,e){const n=Ta(t,"value");let r=n.toString(16);if(null==e)r.length%2&&(r="0"+r);else{const s=Ia(e,"width");if(0===s&&n===Aa)return"0x";for(ea(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 xa(t,e){const n=Ta(t,"value");if(n===Aa){const t=null!=e?Ia(e,"width"):0;return new Uint8Array(t)}let r=n.toString(16);if(r.length%2&&(r="0"+r),null!=e){const n=Ia(e,"width");for(;r.length<2*n;)r="00"+r;ea(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 Na(t){let e=fa(ha(t)?t:xa(t)).substring(2);for(;e.startsWith("0");)e=e.substring(1);return""===e&&(e="0"),"0x"+e}const Pa="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";let Ba=null;function Da(t){if(null==Ba){Ba={};for(let t=0;t<58;t++)Ba[Pa[t]]=BigInt(t)}const e=Ba[t];return na(null!=e,"invalid base58 value","letter",t),e}const Ua=BigInt(0),La=BigInt(58);function Ma(t){const e=ca(t);let n=Ca(e),r="";for(;n;)r=Pa[Number(n%La)]+r,n/=La;for(let s=0;s<e.length&&!e[s];s++)r=Pa[0]+r;return r}class Fa{constructor(e,n,r){xn(this,"filter"),xn(this,"emitter"),Bn(this,t,void 0),Dn(this,t,n),Qo(this,{emitter:e,filter:r})}async removeListener(){null!=Pn(this,t)&&await this.emitter.off(this.filter,Pn(this,t))}}function ja(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 Ga=Object.freeze({error:function(t,e,n,r,s){na(!1,`invalid codepoint at offset ${e}; ${t}`,"bytes",n)},ignore:ja,replace:function(t,e,n,r,s){return"OVERLONG"===t?(na("number"==typeof s,"invalid bad code point for replacement","badCodepoint",s),r.push(s),0):(r.push(65533),ja(t,e,n))}});function Ha(t,e){na("string"==typeof t,"invalid string value","str",t),null!=e&&(ia(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);na(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 Wa(t,e){return n=function(t,e){null==e&&(e=Ga.error);const n=ca(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 Va(t){return async function(e,n){ea(null==n||!n.cancelled,"request cancelled before sending","CANCELLED");const r=e.url.split(":")[0].toLowerCase();ea("http"===r||"https"===r,`unsupported protocol ${r}`,"UNSUPPORTED_OPERATION",{info:{protocol:r},operation:"request"}),ea("https"===r||!e.credentials||e.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let s=null;const i=new AbortController,o=setTimeout((()=>{s=ta("request timeout","TIMEOUT"),i.abort()}),e.timeout);n&&n.addListener((()=>{s=ta("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 Ka=Va();const za=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),qa=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let $a=!1;async function Ja(t,e){try{const e=t.match(za);if(!e)throw new Error("invalid data");return new sc(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 ca(e)}(e[3]):Ha(e[3].replace(/%([0-9a-f][0-9a-f])/gi,((t,e)=>String.fromCharCode(parseInt(e,16))))))}catch(n){return new sc(599,"BAD REQUEST (invalid data: URI)",{},null,new nc(t))}}function Qa(t){return async function(e,n){try{const n=e.match(qa);if(!n)throw new Error("invalid link");return new nc(`${t}${n[2]}`)}catch(r){return new sc(599,"BAD REQUEST (invalid IPFS URI)",{},null,new nc(e))}}}const Ya={data:Ja,ipfs:Qa("https://gateway.ipfs.io/ipfs/")},Za=new WeakMap;class Xa{constructor(t){Bn(this,e,void 0),Bn(this,n,void 0),Dn(this,e,[]),Dn(this,n,!1),Za.set(t,(()=>{if(!Pn(this,n)){Dn(this,n,!0);for(const t of Pn(this,e))setTimeout((()=>{t()}),0);Dn(this,e,[])}}))}addListener(t){ea(!Pn(this,n),"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),Pn(this,e).push(t)}get cancelled(){return Pn(this,n)}checkSignal(){ea(!this.cancelled,"cancelled","CANCELLED",{})}}function tc(t){if(null==t)throw new Error("missing signal; should not happen");return t.checkSignal(),t}e=new WeakMap,n=new WeakMap;const ec=class t{constructor(t){Bn(this,w),Bn(this,r,void 0),Bn(this,s,void 0),Bn(this,i,void 0),Bn(this,o,void 0),Bn(this,a,void 0),Bn(this,c,void 0),Bn(this,l,void 0),Bn(this,u,void 0),Bn(this,h,void 0),Bn(this,d,void 0),Bn(this,f,void 0),Bn(this,p,void 0),Bn(this,g,void 0),Bn(this,m,void 0),Bn(this,y,void 0),Dn(this,c,String(t)),Dn(this,r,!1),Dn(this,s,!0),Dn(this,i,{}),Dn(this,o,""),Dn(this,a,3e5),Dn(this,m,{slotInterval:250,maxAttempts:12}),Dn(this,y,null)}get url(){return Pn(this,c)}set url(t){Dn(this,c,String(t))}get body(){return null==Pn(this,l)?null:new Uint8Array(Pn(this,l))}set body(t){if(null==t)Dn(this,l,void 0),Dn(this,u,void 0);else if("string"==typeof t)Dn(this,l,Ha(t)),Dn(this,u,"text/plain");else if(t instanceof Uint8Array)Dn(this,l,t),Dn(this,u,"application/octet-stream");else{if("object"!=typeof t)throw new Error("invalid body");Dn(this,l,Ha(JSON.stringify(t))),Dn(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=""),Dn(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=ca(t);let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return btoa(n)}(Ha(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(){Dn(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){na(!t.match(/:/),"invalid basic authentication username","username","[REDACTED]"),Dn(this,h,`${t}:${e}`)}get allowGzip(){return Pn(this,s)}set allowGzip(t){Dn(this,s,!!t)}get allowInsecureAuthentication(){return!!Pn(this,r)}set allowInsecureAuthentication(t){Dn(this,r,!!t)}get timeout(){return Pn(this,a)}set timeout(t){na(t>=0,"timeout must be non-zero","timeout",t),Dn(this,a,t)}get preflightFunc(){return Pn(this,d)||null}set preflightFunc(t){Dn(this,d,t)}get processFunc(){return Pn(this,f)||null}set processFunc(t){Dn(this,f,t)}get retryFunc(){return Pn(this,p)||null}set retryFunc(t){Dn(this,p,t)}get getUrlFunc(){return Pn(this,y)||Ka}set getUrlFunc(t){Dn(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)?fa(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 ea(null==Pn(this,g),"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),Dn(this,g,new Xa(this)),Ln(this,w,b).call(this,0,ic()+this.timeout,0,this,new sc(0,"",{},null,this))}cancel(){ea(null!=Pn(this,g),"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const t=Za.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();ea(("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,Dn(s,i,Object.assign({},Pn(this,i))),Pn(this,l)&&Dn(s,l,new Uint8Array(Pn(this,l))),Dn(s,u,Pn(this,u)),s}clone(){const e=new t(this.url);return Dn(e,o,Pn(this,o)),Pn(this,l)&&Dn(e,l,Pn(this,l)),Dn(e,u,Pn(this,u)),Dn(e,i,Object.assign({},Pn(this,i))),Dn(e,h,Pn(this,h)),this.allowGzip&&(e.allowGzip=!0),e.timeout=this.timeout,this.allowInsecureAuthentication&&(e.allowInsecureAuthentication=!0),Dn(e,d,Pn(this,d)),Dn(e,f,Pn(this,f)),Dn(e,p,Pn(this,p)),Dn(e,m,Object.assign({},Pn(this,m))),Dn(e,y,Pn(this,y)),e}static lockConfig(){$a=!0}static getGateway(t){return Ya[t.toLowerCase()]||null}static registerGateway(t,e){if("http"===(t=t.toLowerCase())||"https"===t)throw new Error(`cannot intercept ${t}; use registerGetUrl`);if($a)throw new Error("gateways locked");Ya[t]=e}static registerGetUrl(t){if($a)throw new Error("gateways locked");Ka=t}static createGetUrlFunc(t){return Va(t)}static createDataGateway(){return Ja}static createIpfsGatewayFunc(t){return Qa(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");ea(ic()<=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 Ya){const t=await Ya[l](c.url,tc(Pn(r,g)));if(t instanceof sc){let e=t;if(this.processFunc){tc(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,tc(Pn(r,g)));let h=new sc(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){tc(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 nc=ec;const rc=class t{constructor(t,e,n,r,s){Bn(this,A,void 0),Bn(this,v,void 0),Bn(this,_,void 0),Bn(this,E,void 0),Bn(this,k,void 0),Bn(this,S,void 0),Dn(this,A,t),Dn(this,v,e),Dn(this,_,Object.keys(n).reduce(((t,e)=>(t[e.toLowerCase()]=String(n[e]),t)),{})),Dn(this,E,null==r?null:new Uint8Array(r)),Dn(this,k,s||null),Dn(this,S,{message:""})}toString(){return`<FetchResponse status=${this.statusCode} body=${Pn(this,E)?fa(Pn(this,E)):"null"}>`}get statusCode(){return Pn(this,A)}get statusMessage(){return Pn(this,v)}get headers(){return Object.assign({},Pn(this,_))}get body(){return null==Pn(this,E)?null:new Uint8Array(Pn(this,E))}get bodyText(){try{return null==Pn(this,E)?"":Wa(Pn(this,E))}catch(t){ea(!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){ea(!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 Dn(s,S,{message:e,error:n}),s}throwThrottleError(t,e){null==e?e=-1:na(Number.isInteger(e)&&e>=0,"invalid stall timeout","stall",e);const n=new Error(t||"throttling requests");throw Qo(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=Wa(Pn(this,E)))}catch(s){}ea(!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,v=new WeakMap,_=new WeakMap,E=new WeakMap,k=new WeakMap,S=new WeakMap;let sc=rc;function ic(){return(new Date).getTime()}function oc(t){let e=t.toString(16);for(;e.length<2;)e="0"+e;return"0x"+e}function ac(t,e,n){let r=0;for(let s=0;s<n;s++)r=256*r+t[e+s];return r}function cc(t,e,n,r){const s=[];for(;n<e+1+r;){const i=lc(t,n);s.push(i.result),ea((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){ea(0!==t.length,"data too short","BUFFER_OVERRUN",{buffer:t,length:0,offset:1});const n=e=>{ea(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=ac(t,e+1,r);return n(e+1+r+s),cc(t,e,e+1+r,r+s)}if(t[e]>=192){const r=t[e]-192;return n(e+1+r),cc(t,e,e+1,r)}if(t[e]>=184){const r=t[e]-183;n(e+1+r);const s=ac(t,e+1,r);n(e+1+r+s);return{consumed:1+r+s,result:fa(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:fa(t.slice(e+1,e+1+r))}}return{consumed:1,result:oc(t[e])}}function uc(t){const e=ca(t,"data"),n=lc(e,0);return na(n.consumed===e.length,"unexpected junk after rlp payload","data",t),n.result}function hc(t){const e=[];for(;t;)e.unshift(255&t),t>>=8;return e}function dc(t){if(Array.isArray(t)){let e=[];if(t.forEach((function(t){e=e.concat(dc(t))})),e.length<=55)return e.unshift(192+e.length),e;const n=hc(e.length);return n.unshift(247+n.length),n.concat(e)}const e=Array.prototype.slice.call(ca(t,"object"));if(1===e.length&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const n=hc(e.length);return n.unshift(183+n.length),n.concat(e)}const fc="0123456789abcdef";function pc(t){let e="0x";for(const n of dc(t))e+=fc[n>>4],e+=fc[15&n];return e}function gc(t){const e=ca(t,"randomBytes");e[6]=15&e[6]|64,e[8]=63&e[8]|128;const n=fa(e);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const mc=32,yc=new Uint8Array(mc),wc=["then"],bc={},Ac=new WeakMap;function vc(t){return Ac.get(t)}function _c(t,e){Ac.set(t,e)}function Ec(t,e){const n=new Error(`deferred error during ABI decoding triggered accessing ${t}`);throw n.error=e,n}function kc(t,e,n){return t.indexOf(null)>=0?e.map(((t,e)=>t instanceof Sc?kc(vc(t),t,n):t)):t.reduce(((t,r,s)=>{let i=e.getValue(r);return r in t||(n&&i instanceof Sc&&(i=kc(vc(i),i,n)),t[r]=i),t}),{})}T=new WeakMap;let Sc=class t extends Array{constructor(...t){const e=t[0];let n=t[1],r=(t[2]||[]).slice(),s=!0;e!==bc&&(n=t,r=[],s=!1),super(n.length),Bn(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(_c(this,Object.freeze(n.map(((t,e)=>{const n=r[e];return null!=n&&1===i.get(n)?n:null})))),Dn(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=Ia(e,"%index");if(n<0||n>=this.length)throw new RangeError("out of result range");const r=t[n];return r instanceof Error&&Ec(`index ${n}`,r),r}if(wc.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 _c(o,vc(this)),o}toArray(e){const n=[];return this.forEach(((r,s)=>{r instanceof Error&&Ec(`index ${s}`,r),e&&r instanceof t&&(r=r.toArray(e)),n.push(r)})),n}toObject(t){const e=vc(this);return e.reduce(((n,r,s)=>(ea(null!=r,`value at index ${s} unnamed`,"UNSUPPORTED_OPERATION",{operation:"toObject()"}),kc(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=vc(this),s=[],i=[];for(let t=e;t<n;t++)s.push(this[t]),i.push(r[t]);return new t(bc,s,i)}filter(e,n){const r=vc(this),s=[],i=[];for(let t=0;t<this.length;t++){const o=this[t];o instanceof Error&&Ec(`index ${t}`,o),e.call(n,o,t,this)&&(s.push(o),i.push(r[t]))}return new t(bc,s,i)}map(t,e){const n=[];for(let r=0;r<this.length;r++){const s=this[r];s instanceof Error&&Ec(`index ${r}`,s),n.push(t.call(e,s,r,this))}return n}getValue(t){const e=vc(this).indexOf(t);if(-1===e)return;const n=this[e];return n instanceof Error&&Ec(`property ${JSON.stringify(t)}`,n.error),n}static fromItems(e,n){return new t(bc,e,n)}};function Tc(t){let e=xa(t);return ea(e.length<=mc,"value out-of-bounds","BUFFER_OVERRUN",{buffer:e,length:mc,offset:e.length}),e.length!==mc&&(e=la(pa([yc.slice(e.length%mc),e]))),e}class Rc{constructor(t,e,n,r){xn(this,"name"),xn(this,"type"),xn(this,"localName"),xn(this,"dynamic"),Qo(this,{name:t,type:e,localName:n,dynamic:r},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(t,e){na(!1,t,this.localName,e)}}class Cc{constructor(){Bn(this,I),Bn(this,R,void 0),Bn(this,C,void 0),Dn(this,R,[]),Dn(this,C,0)}get data(){return pa(Pn(this,R))}get length(){return Pn(this,C)}appendWriter(t){return Ln(this,I,O).call(this,la(t.data))}writeBytes(t){let e=la(t);const n=e.length%mc;return n&&(e=la(pa([e,yc.slice(n)]))),Ln(this,I,O).call(this,e)}writeValue(t){return Ln(this,I,O).call(this,Tc(t))}writeUpdatableValue(){const t=Pn(this,R).length;return Pn(this,R).push(yc),Dn(this,C,Pn(this,C)+mc),e=>{Pn(this,R)[t]=Tc(e)}}}R=new WeakMap,C=new WeakMap,I=new WeakSet,O=function(t){return Pn(this,R).push(t),Dn(this,C,Pn(this,C)+t.length),t.length};x=new WeakMap,N=new WeakMap,P=new WeakMap,B=new WeakMap,D=new WeakMap,U=new WeakSet,L=function(t){var e;if(Pn(this,B))return Ln(e=Pn(this,B),U,L).call(e,t);Dn(this,P,Pn(this,P)+t),ea(Pn(this,D)<1||Pn(this,P)<=Pn(this,D)*this.dataLength,`compressed ABI data exceeds inflation ratio of ${Pn(this,D)} ( 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/mc)*mc;return Pn(this,N)+r>Pn(this,x).length&&(this.allowLoose&&n&&Pn(this,N)+e<=Pn(this,x).length?r=e:ea(!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 Ic=class t{constructor(t,e,n){Bn(this,U),Bn(this,M),xn(this,"allowLoose"),Bn(this,x,void 0),Bn(this,N,void 0),Bn(this,P,void 0),Bn(this,B,void 0),Bn(this,D,void 0),Qo(this,{allowLoose:!!e}),Dn(this,x,la(t)),Dn(this,P,0),Dn(this,B,null),Dn(this,D,null!=n?n:1024),Dn(this,N,0)}get data(){return fa(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,D));return Dn(n,B,this),n}readBytes(t,e){let n=Ln(this,M,F).call(this,0,t,!!e);return Ln(this,U,L).call(this,t),Dn(this,N,Pn(this,N)+n.length),n.slice(0,t)}readValue(){return Ca(this.readBytes(mc))}readIndex(){return Ia(Ca(this.readBytes(mc)))}};function Oc(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function xc(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 Nc(t){if("function"!=typeof t||"function"!=typeof t.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");Oc(t.outputLen),Oc(t.blockLen)}function Pc(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 Bc(t,e){xc(t);const n=e.outputLen;if(t.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}const Dc="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,Uc=t=>t instanceof Uint8Array,Lc=t=>new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4)),Mc=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),Fc=(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 jc=async()=>{};async function Gc(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 jc(),r+=t)}}function Hc(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)),!Uc(t))throw new Error("expected Uint8Array, got "+typeof t);return t}class Wc{clone(){return this._cloneInto()}}const Vc={}.toString;function Kc(t,e){if(void 0!==e&&"[object Object]"!==Vc.call(e))throw new Error("Options should be object or undefined");return Object.assign(t,e)}function zc(t){const e=e=>t().update(Hc(e)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function qc(t=32){if(Dc&&"function"==typeof Dc.getRandomValues)return Dc.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}class $c extends Wc{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,Nc(t);const n=Hc(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 Pc(this),this.iHash.update(t),this}digestInto(t){Pc(this),xc(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 Jc=(t,e,n)=>new $c(t,e).update(n).digest();function Qc(t,e,n,r){const{c:s,dkLen:i,DK:o,PRF:a,PRFSalt:c}=function(t,e,n,r){Nc(t);const s=Kc({dkLen:32,asyncTick:10},r),{c:i,dkLen:o,asyncTick:a}=s;if(Oc(i),Oc(o),Oc(a),i<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const c=Hc(e),l=Hc(n),u=new Uint8Array(o),h=Jc.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=Mc(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)}Jc.create=(t,e)=>new $c(t,e);class Yc extends Wc{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=Mc(this.buffer)}update(t){Pc(this);const{view:e,buffer:n,blockLen:r}=this,s=(t=Hc(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=Mc(t);for(;r<=s-i;i+=r)this.process(e,i)}}return this.length+=t.length,this.roundClean(),this}digestInto(t){Pc(this),Bc(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=Mc(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 Zc=(t,e,n)=>t&e^t&n^e&n,Xc=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]),tl=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),el=new Uint32Array(64);class nl extends Yc{constructor(){super(64,32,8,!1),this.A=0|tl[0],this.B=0|tl[1],this.C=0|tl[2],this.D=0|tl[3],this.E=0|tl[4],this.F=0|tl[5],this.G=0|tl[6],this.H=0|tl[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)el[h]=t.getUint32(e,!1);for(let h=16;h<64;h++){const t=el[h-15],e=el[h-2],n=Fc(t,7)^Fc(t,18)^t>>>3,r=Fc(e,17)^Fc(e,19)^e>>>10;el[h]=r+el[h-7]+n+el[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+(Fc(o,6)^Fc(o,11)^Fc(o,25))+((u=o)&a^~u&c)+Xc[h]+el[h]|0,e=(Fc(n,2)^Fc(n,13)^Fc(n,22))+Zc(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(){el.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const rl=zc((()=>new nl)),sl=BigInt(2**32-1),il=BigInt(32);function ol(t,e=!1){return e?{h:Number(t&sl),l:Number(t>>il&sl)}:{h:0|Number(t>>il&sl),l:0|Number(t&sl)}}function al(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}=ol(t[s],e);[n[s],r[s]]=[i,o]}return[n,r]}const cl=(t,e,n)=>t<<n|e>>>32-n,ll=(t,e,n)=>e<<n|t>>>32-n,ul=(t,e,n)=>e<<n-32|t>>>64-n,hl=(t,e,n)=>t<<n-32|e>>>64-n;const dl={fromBig:ol,split:al,toBig:(t,e)=>BigInt(t>>>0)<<il|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:cl,rotlSL:ll,rotlBH:ul,rotlBL:hl,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)},[fl,pl]=(()=>dl.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)))))(),gl=new Uint32Array(80),ml=new Uint32Array(80);class yl extends Yc{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)gl[w]=t.getUint32(e),ml[w]=t.getUint32(e+=4);for(let w=16;w<80;w++){const t=0|gl[w-15],e=0|ml[w-15],n=dl.rotrSH(t,e,1)^dl.rotrSH(t,e,8)^dl.shrSH(t,e,7),r=dl.rotrSL(t,e,1)^dl.rotrSL(t,e,8)^dl.shrSL(t,e,7),s=0|gl[w-2],i=0|ml[w-2],o=dl.rotrSH(s,i,19)^dl.rotrBH(s,i,61)^dl.shrSH(s,i,6),a=dl.rotrSL(s,i,19)^dl.rotrBL(s,i,61)^dl.shrSL(s,i,6),c=dl.add4L(r,a,ml[w-7],ml[w-16]),l=dl.add4H(c,n,o,gl[w-7],gl[w-16]);gl[w]=0|l,ml[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=dl.rotrSH(u,h,14)^dl.rotrSH(u,h,18)^dl.rotrBH(u,h,41),e=dl.rotrSL(u,h,14)^dl.rotrSL(u,h,18)^dl.rotrBL(u,h,41),b=u&d^~u&p,A=h&f^~h&g,v=dl.add5L(y,e,A,pl[w],ml[w]),_=dl.add5H(v,m,t,b,fl[w],gl[w]),E=0|v,k=dl.rotrSH(n,r,28)^dl.rotrBH(n,r,34)^dl.rotrBH(n,r,39),S=dl.rotrSL(n,r,28)^dl.rotrBL(n,r,34)^dl.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}=dl.add(0|c,0|l,0|_,0|E)),c=0|o,l=0|a,o=0|s,a=0|i,s=0|n,i=0|r;const C=dl.add3L(E,S,R);n=dl.add3H(C,_,k,T),r=0|C}({h:n,l:r}=dl.add(0|this.Ah,0|this.Al,0|n,0|r)),({h:s,l:i}=dl.add(0|this.Bh,0|this.Bl,0|s,0|i)),({h:o,l:a}=dl.add(0|this.Ch,0|this.Cl,0|o,0|a)),({h:c,l:l}=dl.add(0|this.Dh,0|this.Dl,0|c,0|l)),({h:u,l:h}=dl.add(0|this.Eh,0|this.El,0|u,0|h)),({h:d,l:f}=dl.add(0|this.Fh,0|this.Fl,0|d,0|f)),({h:p,l:g}=dl.add(0|this.Gh,0|this.Gl,0|p,0|g)),({h:m,l:y}=dl.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(){gl.fill(0),ml.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 wl=zc((()=>new yl));const bl=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")}(),Al=bl.crypto||bl.msCrypto;let vl=!1;const _l=function(t,e,n){return function(t,e){const n={sha256:rl,sha512:wl}[t];return na(null!=n,"invalid hmac algorithm","algorithm",t),Jc.create(n,e)}(t,e).update(n).digest()};let El=_l;function kl(t,e,n){const r=ca(e,"key"),s=ca(n,"data");return fa(El(t,r,s))}kl._=_l,kl.lock=function(){vl=!0},kl.register=function(t){if(vl)throw new Error("computeHmac is locked");El=t},Object.freeze(kl);const[Sl,Tl,Rl]=[[],[],[]],Cl=BigInt(0),Il=BigInt(1),Ol=BigInt(2),xl=BigInt(7),Nl=BigInt(256),Pl=BigInt(113);for(let r_=0,s_=Il,i_=1,o_=0;r_<24;r_++){[i_,o_]=[o_,(2*i_+3*o_)%5],Sl.push(2*(5*o_+i_)),Tl.push((r_+1)*(r_+2)/2%64);let t=Cl;for(let e=0;e<7;e++)s_=(s_<<Il^(s_>>xl)*Pl)%Nl,s_&Ol&&(t^=Il<<(Il<<BigInt(e))-Il);Rl.push(t)}const[Bl,Dl]=al(Rl,!0),Ul=(t,e,n)=>n>32?ul(t,e,n):cl(t,e,n),Ll=(t,e,n)=>n>32?hl(t,e,n):ll(t,e,n);class Ml extends Wc{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,Oc(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Lc(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=Ul(i,o,1)^n[e],c=Ll(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=Tl[n],i=Ul(e,s,r),o=Ll(e,s,r),a=Sl[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]^=Bl[r],t[1]^=Dl[r]}n.fill(0)}(this.state32,this.rounds),this.posOut=0,this.pos=0}update(t){Pc(this);const{blockLen:e,state:n}=this,r=(t=Hc(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){Pc(this,!1),xc(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 Oc(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Bc(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 Ml(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 Fl=((t,e,n)=>zc((()=>new Ml(e,t,n))))(1,136,32);let jl=!1;const Gl=function(t){return Fl(t)};let Hl=Gl;function Wl(t){const e=ca(t,"data");return fa(Hl(e))}Wl._=Gl,Wl.lock=function(){jl=!0},Wl.register=function(t){if(jl)throw new TypeError("keccak256 is locked");Hl=t},Object.freeze(Wl);const Vl=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Kl=Uint8Array.from({length:16},((t,e)=>e));let zl=[Kl],ql=[Kl.map((t=>(9*t+5)%16))];for(let r_=0;r_<4;r_++)for(let t of[zl,ql])t.push(t[r_].map((t=>Vl[t])));const $l=[[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))),Jl=zl.map(((t,e)=>t.map((t=>$l[e][t])))),Ql=ql.map(((t,e)=>t.map((t=>$l[e][t])))),Yl=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),Zl=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),Xl=(t,e)=>t<<e|t>>>32-e;function tu(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 eu=new Uint32Array(16);class nu extends Yc{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)eu[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=Yl[d],f=Zl[d],p=zl[d],g=ql[d],m=Jl[d],y=Ql[d];for(let r=0;r<16;r++){const t=Xl(n+tu(d,s,o,c)+eu[p[r]]+e,m[r])+u|0;n=u,u=c,c=0|Xl(o,10),o=s,s=t}for(let n=0;n<16;n++){const e=Xl(r+tu(t,i,a,l)+eu[g[n]]+f,y[n])+h|0;r=h,h=l,l=0|Xl(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(){eu.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}const ru=zc((()=>new nu));let su=!1;const iu=function(t){return ru(t)};let ou=iu;function au(t){const e=ca(t,"data");return fa(ou(e))}au._=iu,au.lock=function(){su=!0},au.register=function(t){if(su)throw new TypeError("ripemd160 is locked");ou=t},Object.freeze(au);let cu=!1;const lu=function(t,e,n,r,s){return function(t,e,n,r,s){const i={sha256:rl,sha512:wl}[s];return na(null!=i,"invalid pbkdf2 algorithm","algorithm",s),Qc(i,t,e,{c:n,dkLen:r})}(t,e,n,r,s)};let uu=lu;function hu(t,e,n,r,s){const i=ca(t,"password"),o=ca(e,"salt");return fa(uu(i,o,n,r,s))}hu._=lu,hu.lock=function(){cu=!0},hu.register=function(t){if(cu)throw new Error("pbkdf2 is locked");uu=t},Object.freeze(hu);let du=!1;const fu=function(t){return new Uint8Array(function(t){ea(null!=Al,"platform does not support secure random numbers","UNSUPPORTED_OPERATION",{operation:"randomBytes"}),na(Number.isInteger(t)&&t>0&&t<=1024,"invalid length","length",t);const e=new Uint8Array(t);return Al.getRandomValues(e),e}(t))};let pu=fu;function gu(t){return pu(t)}gu._=fu,gu.lock=function(){du=!0},gu.register=function(t){if(du)throw new Error("randomBytes is locked");pu=t},Object.freeze(gu);const mu=(t,e)=>t<<e|t>>>32-e;function yu(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++],v=t[e++]^n[r++],_=o,E=a,k=c,S=l,T=u,R=h,C=d,I=f,O=p,x=g,N=m,P=y,B=w,D=b,U=A,L=v;for(let M=0;M<8;M+=2)T^=mu(_+B|0,7),O^=mu(T+_|0,9),B^=mu(O+T|0,13),_^=mu(B+O|0,18),x^=mu(R+E|0,7),D^=mu(x+R|0,9),E^=mu(D+x|0,13),R^=mu(E+D|0,18),U^=mu(N+C|0,7),k^=mu(U+N|0,9),C^=mu(k+U|0,13),N^=mu(C+k|0,18),S^=mu(L+P|0,7),I^=mu(S+L|0,9),P^=mu(I+S|0,13),L^=mu(P+I|0,18),E^=mu(_+S|0,7),k^=mu(E+_|0,9),S^=mu(k+E|0,13),_^=mu(S+k|0,18),C^=mu(R+T|0,7),I^=mu(C+R|0,9),T^=mu(I+C|0,13),R^=mu(T+I|0,18),P^=mu(N+x|0,7),O^=mu(P+N|0,9),x^=mu(O+P|0,13),N^=mu(x+O|0,18),B^=mu(L+U|0,7),D^=mu(B+L|0,9),U^=mu(D+B|0,13),L^=mu(U+D|0,18);s[i++]=o+_|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+C|0,s[i++]=f+I|0,s[i++]=p+O|0,s[i++]=g+x|0,s[i++]=m+N|0,s[i++]=y+P|0,s[i++]=w+B|0,s[i++]=b+D|0,s[i++]=A+U|0,s[i++]=v+L|0}function wu(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)yu(n,o,t,e,n,i),a>0&&(o+=16),yu(n,i,t,e+=16,n,o)}function bu(t,e,n){const r=Kc({dkLen:32,asyncTick:10,maxmem:1073742848},n),{N:s,r:i,p:o,dkLen:a,asyncTick:c,maxmem:l,onProgress:u}=r;if(Oc(s),Oc(i),Oc(o),Oc(a),Oc(c),Oc(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=Qc(rl,t,e,{c:1,dkLen:h*o}),g=Lc(p),m=Lc(new Uint8Array(h*s)),y=Lc(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 Au(t,e,n,r,s){const i=Qc(rl,t,n,{c:1,dkLen:e});return n.fill(0),r.fill(0),s.fill(0),i}let vu=!1,_u=!1;const Eu=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}=bu(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 Gc(r-1,f,(()=>{wu(c,e,c,e+=a,s),d()})),wu(c,(r-1)*a,l,t,s),d(),await Gc(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];wu(h,0,l,t,s),d()}))}return Au(t,o,u,c,h)}(t,e,{N:n,r:r,p:s,dkLen:i,onProgress:o})},ku=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}=bu(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++)wu(c,n,c,n+=a,s),d();wu(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];wu(h,0,l,t,s),d()}}return Au(t,o,u,c,h)}(t,e,{N:n,r:r,p:s,dkLen:i})};let Su=Eu,Tu=ku;async function Ru(t,e,n,r,s,i,o){const a=ca(t,"passwd"),c=ca(e,"salt");return fa(await Su(a,c,n,r,s,i,o))}function Cu(t,e,n,r,s,i){const o=ca(t,"passwd"),a=ca(e,"salt");return fa(Tu(o,a,n,r,s,i))}Ru._=Eu,Ru.lock=function(){_u=!0},Ru.register=function(t){if(_u)throw new Error("scrypt is locked");Su=t},Object.freeze(Ru),Cu._=ku,Cu.lock=function(){vu=!0},Cu.register=function(t){if(vu)throw new Error("scryptSync is locked");Tu=t},Object.freeze(Cu);const Iu=function(t){return function(t){switch(t){case"sha256":return rl.create();case"sha512":return wl.create()}na(!1,"invalid hashing algorithm name","algorithm",t)}("sha256").update(t).digest()};let Ou=Iu,xu=!1;function Nu(t){const e=ca(t,"data");return fa(Ou(e))}Nu._=Iu,Nu.lock=function(){xu=!0},Nu.register=function(t){if(xu)throw new Error("sha256 is locked");Ou=t},Object.freeze(Nu),Object.freeze(Nu);
|
|
3
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
4
|
+
const Pu=BigInt(0),Bu=BigInt(1),Du=BigInt(2),Uu=t=>t instanceof Uint8Array,Lu=Array.from({length:256},((t,e)=>e.toString(16).padStart(2,"0")));function Mu(t){if(!Uu(t))throw new Error("Uint8Array expected");let e="";for(let n=0;n<t.length;n++)e+=Lu[t[n]];return e}function Fu(t){const e=t.toString(16);return 1&e.length?`0${e}`:e}function ju(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);return BigInt(""===t?"0":`0x${t}`)}function Gu(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 Hu(t){return ju(Mu(t))}function Wu(t){if(!Uu(t))throw new Error("Uint8Array expected");return ju(Mu(Uint8Array.from(t).reverse()))}function Vu(t,e){return Gu(t.toString(16).padStart(2*e,"0"))}function Ku(t,e){return Vu(t,e).reverse()}function zu(t,e,n){let r;if("string"==typeof e)try{r=Gu(e)}catch(i){throw new Error(`${t} must be valid hex string, got "${e}". Cause: ${i}`)}else{if(!Uu(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 qu(...t){const e=new Uint8Array(t.reduce(((t,e)=>t+e.length),0));let n=0;return t.forEach((t=>{if(!Uu(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length})),e}const $u=t=>(Du<<BigInt(t-1))-Bu,Ju=t=>new Uint8Array(t),Qu=t=>Uint8Array.from(t);function Yu(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=Ju(t),s=Ju(t),i=0;const o=()=>{r.fill(1),s.fill(0),i=0},a=(...t)=>n(s,r,...t),c=(t=Ju())=>{s=a(Qu([0]),t),r=a(),0!==t.length&&(s=a(Qu([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 qu(...n)};return(t,e)=>{let n;for(o(),c(t);!(n=e(l()));)c();return o(),n}}const Zu={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 Xu(t,e,n={}){const r=(e,n,r)=>{const s=Zu[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 th=Object.freeze(Object.defineProperty({__proto__:null,bitGet:function(t,e){return t>>BigInt(e)&Bu},bitLen:function(t){let e;for(e=0;t>Pu;t>>=Bu,e+=1);return e},bitMask:$u,bitSet:(t,e,n)=>t|(n?Bu:Pu)<<BigInt(e),bytesToHex:Mu,bytesToNumberBE:Hu,bytesToNumberLE:Wu,concatBytes:qu,createHmacDrbg:Yu,ensureBytes:zu,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:Gu,hexToNumber:ju,numberToBytesBE:Vu,numberToBytesLE:Ku,numberToHexUnpadded:Fu,numberToVarBytesBE:function(t){return Gu(Fu(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:Xu},Symbol.toStringTag,{value:"Module"})),eh=BigInt(0),nh=BigInt(1),rh=BigInt(2),sh=BigInt(3),ih=BigInt(4),oh=BigInt(5),ah=BigInt(8);
|
|
5
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ch(t,e){const n=t%e;return n>=eh?n:e+n}function lh(t,e,n){if(n<=eh||e<eh)throw new Error("Expected power/modulo > 0");if(n===nh)return eh;let r=nh;for(;e>eh;)e&nh&&(r=r*t%n),t=t*t%n,e>>=nh;return r}function uh(t,e,n){let r=t;for(;e-- >eh;)r*=r,r%=n;return r}function hh(t,e){if(t===eh||e<=eh)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let n=ch(t,e),r=e,s=eh,i=nh;for(;n!==eh;){const t=r%n,e=s-i*(r/n);r=n,n=t,s=i,i=e}if(r!==nh)throw new Error("invert: does not exist");return ch(s,e)}function dh(t){if(t%ih===sh){const e=(t+nh)/ih;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%ah===oh){const e=(t-oh)/ah;return function(t,n){const r=t.mul(n,rh),s=t.pow(r,e),i=t.mul(n,s),o=t.mul(t.mul(i,rh),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-nh)/rh;let n,r,s;for(n=t-nh,r=0;n%rh===eh;n/=rh,r++);for(s=rh;s<t&&lh(s,e,t)!==t-nh;s++);if(1===r){const e=(t+nh)/ih;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+nh)/rh;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,nh<<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 fh=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ph(t,e){const n=void 0!==e?e:t.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function gh(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 mh(t){const e=gh(t);return e+Math.ceil(e/2)}
|
|
6
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
7
|
+
const yh=BigInt(0),wh=BigInt(1);function bh(t){return Xu(t.Fp,fh.reduce(((t,e)=>(t[e]="function",t)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),Xu(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...ph(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}
|
|
8
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const{bytesToNumberBE:Ah,hexToBytes:vh}=th,_h={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(t){const{Err:e}=_h;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:Ah(r),l:t.subarray(n+2)}},toSig(t){const{Err:e}=_h,n="string"==typeof t?vh(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}=_h._parseInt(n.subarray(2)),{d:o,l:a}=_h._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}`}},Eh=BigInt(0),kh=BigInt(1);BigInt(2);const Sh=BigInt(3);function Th(t){const e=function(t){const e=bh(t);Xu(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 qu(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&&Eh<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=Mu(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:Hu(zu("private key",t,r))}catch(c){throw new Error(`private key must be ${r} bytes, hex or bigint, not ${typeof t}`)}return s&&(o=ch(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(zu("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,Sh),{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,Sh);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 v=n.add(o,c);return A=n.mul(A,v),v=n.add(m,w),A=n.sub(A,v),v=n.add(s,i),l=n.add(a,c),v=n.mul(v,l),l=n.add(y,w),v=n.sub(v,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(v,A),l=n.mul(b,l),l=n.sub(l,m),m=n.mul(b,y),f=n.mul(v,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===Eh)return r;if(a(t),t===kh)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>Eh||l>Eh;)o&kh&&(u=u.add(p)),l&kh&&(d=d.add(p)),p=p.double(),o>>=kh,l>>=kh;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!==Eh&&e!==kh&&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===kh)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===kh?this:n?n(h,this):this.multiplyUnsafe(e.h)}toRawBytes(t=!0){return this.assertValidity(),r(h,this,t)}toHex(t=!0){return Mu(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>yh;)n&wh&&(r=r.add(s)),s=s.double(),n>>=wh;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+=wh);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 Rh(t){const e=function(t){const e=bh(t);return Xu(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 ch(t,r)}function a(t){return hh(t,r)}const{ProjectivePoint:c,normPrivateKeyToScalar:l,weierstrassEquation:u,isWithinCurveOrder:h}=Th({...e,toBytes(t,e,r){const s=e.toAffine(),i=n.toBytes(s.x),o=qu;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=Hu(o);if(!(Eh<(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&kh)===kh)&&(s=n.neg(s)),{x:t,y:s}}var a}}),d=t=>Mu(Vu(t,e.nByteLength));function f(t){return t>r>>kh}const p=(t,e,n)=>Hu(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=zu("compactSignature",t,2*n),new g(p(t,0,n),p(t,n,2*n))}static fromDER(t){const{r:e,s:n}=_h.toSig(zu("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(zu("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 Gu(this.toDERHex())}toDERHex(){return _h.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Gu(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=mh(e.n);return function(t,e,n=!1){const r=t.length,s=gh(e),i=mh(e);if(r<16||r<i||r>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${r}`);const o=ch(n?Hu(t):Wu(t),e-nh)+nh;return n?Ku(o,s):Vu(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=Hu(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=$u(e.nBitLength);function v(t){if("bigint"!=typeof t)throw new Error("bigint expected");if(!(Eh<=t&&t<A))throw new Error(`bigint expected < 2^${e.nBitLength}`);return Vu(t,e.nByteLength)}function _(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=zu("msgHash",t),p&&(t=zu("prehashed msgHash",i(t)));const y=b(t),A=l(r),_=[v(A),v(y)];if(null!=m){const t=!0===m?u(n.BYTES):m;_.push(zu("extraEntropy",t))}const k=qu(..._),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===Eh)return;const i=o(n*o(S+s*A));if(i===Eh)return;let l=(r.x===s?0:2)|Number(r.y&kh),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}=_(t,n,r),o=e;return Yu(o.hash.outputLen,o.nByteLength,o.hmac)(s,i)},verify:function(t,n,r,s=k){var i;const l=t;if(n=zu("msgHash",n),r=zu("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 _h.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),v=o(p*w),_=null==(i=c.BASE.multiplyAndAddUnsafe(f,A,v))?void 0:i.toAffine();return!!_&&o(_.x)===p},ProjectivePoint:c,Signature:g,utils:m}}
|
|
9
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ch(t){return{hash:t,hmac:(e,...n)=>Jc(t,e,function(...t){const e=new Uint8Array(t.reduce(((t,e)=>t+e.length),0));let n=0;return t.forEach((t=>{if(!Uc(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length})),e}(...n)),randomBytes:qc}}BigInt(4);
|
|
10
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
11
|
+
const Ih=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Oh=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),xh=BigInt(1),Nh=BigInt(2),Ph=(t,e)=>(t+e/Nh)/e;const Bh=function(t,e,n=!1,r={}){if(t<=eh)throw new Error(`Expected Field ORDER > 0, got ${t}`);const{nBitLength:s,nByteLength:i}=ph(t,e);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const o=dh(t),a=Object.freeze({ORDER:t,BITS:s,BYTES:i,MASK:$u(s),ZERO:eh,ONE:nh,create:e=>ch(e,t),isValid:e=>{if("bigint"!=typeof e)throw new Error("Invalid field element: expected bigint, got "+typeof e);return eh<=e&&e<t},is0:t=>t===eh,isOdd:t=>(t&nh)===nh,neg:e=>ch(-e,t),eql:(t,e)=>t===e,sqr:e=>ch(e*e,t),add:(e,n)=>ch(e+n,t),sub:(e,n)=>ch(e-n,t),mul:(e,n)=>ch(e*n,t),pow:(t,e)=>function(t,e,n){if(n<eh)throw new Error("Expected power > 0");if(n===eh)return t.ONE;if(n===nh)return e;let r=t.ONE,s=e;for(;n>eh;)n&nh&&(r=t.mul(r,s)),s=t.sqr(s),n>>=nh;return r}(a,t,e),div:(e,n)=>ch(e*hh(n,t),t),sqrN:t=>t*t,addN:(t,e)=>t+e,subN:(t,e)=>t-e,mulN:(t,e)=>t*e,inv:e=>hh(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?Ku(t,i):Vu(t,i),fromBytes:t=>{if(t.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${t.length}`);return n?Wu(t):Hu(t)}});return Object.freeze(a)}(Ih,void 0,void 0,{sqrt:function(t){const e=Ih,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=uh(u,n,e)*u%e,d=uh(h,n,e)*u%e,f=uh(d,Nh,e)*l%e,p=uh(f,s,e)*f%e,g=uh(p,i,e)*p%e,m=uh(g,a,e)*g%e,y=uh(m,c,e)*m%e,w=uh(y,a,e)*g%e,b=uh(w,n,e)*u%e,A=uh(b,o,e)*p%e,v=uh(A,r,e)*l%e,_=uh(v,Nh,e);if(!Bh.eql(Bh.sqr(_),t))throw new Error("Cannot find square root");return _}}),Dh=function(t,e){const n=e=>Rh({...t,...Ch(e)});return Object.freeze({...n(e),create:n})}({a:BigInt(0),b:BigInt(7),Fp:Bh,n:Oh,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=Oh,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-xh*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=n,o=BigInt("0x100000000000000000000000000000000"),a=Ph(i*t,e),c=Ph(-r*t,e);let l=ch(t-a*n-c*s,e),u=ch(-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}}}},rl);BigInt(0),Dh.ProjectivePoint;const Uh="0x0000000000000000000000000000000000000000",Lh="0x0000000000000000000000000000000000000000000000000000000000000000",Mh=BigInt(0),Fh=BigInt(1),jh=BigInt(2),Gh=BigInt(27),Hh=BigInt(28),Wh=BigInt(35),Vh=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Kh=Vh/jh,zh=Symbol.for("nodejs.util.inspect.custom"),qh={};function $h(t){return wa(xa(t),32)}j=new WeakMap,G=new WeakMap,H=new WeakMap,W=new WeakMap;let Jh=class t{constructor(t,e,n,r){Bn(this,j,void 0),Bn(this,G,void 0),Bn(this,H,void 0),Bn(this,W,void 0),oa(t,qh,"Signature"),Dn(this,j,e),Dn(this,G,n),Dn(this,H,r),Dn(this,W,null)}get r(){return Pn(this,j)}set r(t){na(32===ga(t),"invalid r","value",t),Dn(this,j,fa(t))}get s(){return na(parseInt(Pn(this,G).substring(0,3))<8,"non-canonical s; use ._s","s",Pn(this,G)),Pn(this,G)}set s(t){na(32===ga(t),"invalid s","value",t),Dn(this,G,fa(t))}get _s(){return Pn(this,G)}isValid(){return BigInt(Pn(this,G))<=Kh}get v(){return Pn(this,H)}set v(t){const e=Ia(t,"value");na(27===e||28===e,"invalid v","v",t),Dn(this,H,e)}get networkV(){return Pn(this,W)}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=ca(this.s);return this.yParity&&(t[0]|=128),fa(t)}get compactSerialized(){return pa([this.r,this.yParityAndS])}get serialized(){return pa([this.r,this.s,this.yParity?"0x1c":"0x1b"])}getCanonical(){if(this.isValid())return this;const e=Vh-BigInt(this._s),n=55-this.v,r=new t(qh,this.r,$h(e),n);return this.networkV&&Dn(r,W,this.networkV),r}clone(){const e=new t(qh,this.r,this._s,this.v);return this.networkV&&Dn(e,W,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}}[zh](){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=Sa(t,"v");return e==Gh||e==Hh?Mh:(na(e>=Wh,"invalid EIP-155 v","v",t),(e-Wh)/jh)}static getChainIdV(t,e){return Sa(t)*jh+BigInt(35+e-27)}static getNormalizedV(t){const e=Sa(t);return e===Mh||e===Gh?27:e===Fh||e===Hh?28:(na(e>=Wh,"invalid v","v",t),e&Fh?27:28)}static from(e){function n(t,n){na(t,n,"signature",e)}if(null==e)return new t(qh,Lh,Lh,27);if("string"==typeof e){const r=ca(e,"signature");if(64===r.length){const e=fa(r.slice(0,32)),n=r.slice(32,64),s=128&n[0]?28:27;return n[0]&=127,new t(qh,e,fa(n),s)}if(65===r.length){const e=fa(r.slice(0,32)),n=fa(r.slice(32,64)),s=t.getNormalizedV(r[64]);return new t(qh,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=$h(r),i=function(t,e){if(null!=t)return $h(t);if(null!=e){n(ua(e,32),"invalid yParityAndS");const t=ca(e);return t[0]&=127,fa(t)}n(!1,"missing s")}(e.s,e.yParityAndS),{networkV:o,v:a}=function(e,r,s){if(null!=e){const n=Sa(e);return{networkV:n>=Wh?n:void 0,v:t.getNormalizedV(n)}}if(null!=r)return n(ua(r,32),"invalid yParityAndS"),{v:128&ca(r)[0]?28:27};if(null!=s){switch(Ia(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(qh,s,i,a);return o&&Dn(c,W,o),n(null==e.yParity||Ia(e.yParity,"sig.yParity")===c.yParity,"yParity mismatch"),n(null==e.yParityAndS||e.yParityAndS===c.yParityAndS,"yParityAndS mismatch"),c}};V=new WeakMap;let Qh=class t{constructor(t){Bn(this,V,void 0),na(32===ga(t),"invalid private key","privateKey","[REDACTED]"),Dn(this,V,fa(t))}get privateKey(){return Pn(this,V)}get publicKey(){return t.computePublicKey(Pn(this,V))}get compressedPublicKey(){return t.computePublicKey(Pn(this,V),!0)}sign(t){na(32===ga(t),"invalid digest length","digest",t);const e=Dh.sign(la(t),la(Pn(this,V)),{lowS:!0});return Jh.from({r:Oa(e.r,32),s:Oa(e.s,32),v:e.recovery?28:27})}computeSharedSecret(e){const n=t.computePublicKey(e);return fa(Dh.getSharedSecret(la(Pn(this,V)),ca(n),!1))}static computePublicKey(t,e){let n=ca(t,"key");if(32===n.length){return fa(Dh.getPublicKey(n,!!e))}if(64===n.length){const t=new Uint8Array(65);t[0]=4,t.set(n,1),n=t}return fa(Dh.ProjectivePoint.fromHex(n).toRawBytes(e))}static recoverPublicKey(t,e){na(32===ga(t),"invalid digest length","digest",t);const n=Jh.from(e);let r=Dh.Signature.fromCompact(la(pa([n.r,n.s])));r=r.addRecoveryBit(n.yParity);const s=r.recoverPublicKey(la(t));return na(null!=s,"invalid signature for digest","signature",e),"0x"+s.toHex(!1)}static addPoints(e,n,r){const s=Dh.ProjectivePoint.fromHex(t.computePublicKey(e).substring(2)),i=Dh.ProjectivePoint.fromHex(t.computePublicKey(n).substring(2));return"0x"+s.add(i).toHex(!!r)}};const Yh=BigInt(0),Zh=BigInt(36);function Xh(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=ca(Wl(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 td={};for(let r_=0;r_<10;r_++)td[String(r_)]=String(r_);for(let r_=0;r_<26;r_++)td[String.fromCharCode(65+r_)]=String(10+r_);const ed=function(){const t={};for(let e=0;e<36;e++){t["0123456789abcdefghijklmnopqrstuvwxyz"[e]]=BigInt(e)}return t}();function nd(t){if(na("string"==typeof t,"invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/)){t.startsWith("0x")||(t="0x"+t);const e=Xh(t);return na(!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}$/)){na(t.substring(2,4)===function(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+"00").split("").map((t=>td[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=Yh;for(let n=0;n<t.length;n++)e=e*Zh+ed[t[n]];return e}(t.substring(4)).toString(16);for(;e.length<40;)e="0"+e;return Xh("0x"+e)}na(!1,"invalid address","address",t)}function rd(t){return t&&"function"==typeof t.getAddress}async function sd(t,e){const n=await e;return null!=n&&"0x0000000000000000000000000000000000000000"!==n||(ea("string"!=typeof t,"unconfigured name","UNCONFIGURED_NAME",{value:t}),na(!1,"invalid AddressLike value; did not resolve to a value address","target",t)),nd(n)}function id(t,e){return"string"==typeof t?t.match(/^0x[0-9a-f]{40}$/i)?nd(t):(ea(null!=e,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),sd(t,e.resolveName(t))):rd(t)?sd(t,t.getAddress()):t&&"function"==typeof t.then?sd(t,t):void na(!1,"unsupported addressable value","target",t)}const od={};function ad(t,e){let n=!1;return e<0&&(n=!0,e*=-1),new ud(od,`${n?"":"u"}int${e}`,t,{signed:n,width:e})}function cd(t,e){return new ud(od,`bytes${e||""}`,t,{size:e})}const ld=Symbol.for("_ethers_typed");K=new WeakMap;let ud=class t{constructor(t,e,n,r){xn(this,"type"),xn(this,"value"),Bn(this,K,void 0),xn(this,"_typedSymbol"),null==r&&(r=null),oa(od,t,"Typed"),Qo(this,{_typedSymbol:ld,type:e,value:n}),Dn(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(od,e,n)}static uint8(t){return ad(t,8)}static uint16(t){return ad(t,16)}static uint24(t){return ad(t,24)}static uint32(t){return ad(t,32)}static uint40(t){return ad(t,40)}static uint48(t){return ad(t,48)}static uint56(t){return ad(t,56)}static uint64(t){return ad(t,64)}static uint72(t){return ad(t,72)}static uint80(t){return ad(t,80)}static uint88(t){return ad(t,88)}static uint96(t){return ad(t,96)}static uint104(t){return ad(t,104)}static uint112(t){return ad(t,112)}static uint120(t){return ad(t,120)}static uint128(t){return ad(t,128)}static uint136(t){return ad(t,136)}static uint144(t){return ad(t,144)}static uint152(t){return ad(t,152)}static uint160(t){return ad(t,160)}static uint168(t){return ad(t,168)}static uint176(t){return ad(t,176)}static uint184(t){return ad(t,184)}static uint192(t){return ad(t,192)}static uint200(t){return ad(t,200)}static uint208(t){return ad(t,208)}static uint216(t){return ad(t,216)}static uint224(t){return ad(t,224)}static uint232(t){return ad(t,232)}static uint240(t){return ad(t,240)}static uint248(t){return ad(t,248)}static uint256(t){return ad(t,256)}static uint(t){return ad(t,256)}static int8(t){return ad(t,-8)}static int16(t){return ad(t,-16)}static int24(t){return ad(t,-24)}static int32(t){return ad(t,-32)}static int40(t){return ad(t,-40)}static int48(t){return ad(t,-48)}static int56(t){return ad(t,-56)}static int64(t){return ad(t,-64)}static int72(t){return ad(t,-72)}static int80(t){return ad(t,-80)}static int88(t){return ad(t,-88)}static int96(t){return ad(t,-96)}static int104(t){return ad(t,-104)}static int112(t){return ad(t,-112)}static int120(t){return ad(t,-120)}static int128(t){return ad(t,-128)}static int136(t){return ad(t,-136)}static int144(t){return ad(t,-144)}static int152(t){return ad(t,-152)}static int160(t){return ad(t,-160)}static int168(t){return ad(t,-168)}static int176(t){return ad(t,-176)}static int184(t){return ad(t,-184)}static int192(t){return ad(t,-192)}static int200(t){return ad(t,-200)}static int208(t){return ad(t,-208)}static int216(t){return ad(t,-216)}static int224(t){return ad(t,-224)}static int232(t){return ad(t,-232)}static int240(t){return ad(t,-240)}static int248(t){return ad(t,-248)}static int256(t){return ad(t,-256)}static int(t){return ad(t,-256)}static bytes1(t){return cd(t,1)}static bytes2(t){return cd(t,2)}static bytes3(t){return cd(t,3)}static bytes4(t){return cd(t,4)}static bytes5(t){return cd(t,5)}static bytes6(t){return cd(t,6)}static bytes7(t){return cd(t,7)}static bytes8(t){return cd(t,8)}static bytes9(t){return cd(t,9)}static bytes10(t){return cd(t,10)}static bytes11(t){return cd(t,11)}static bytes12(t){return cd(t,12)}static bytes13(t){return cd(t,13)}static bytes14(t){return cd(t,14)}static bytes15(t){return cd(t,15)}static bytes16(t){return cd(t,16)}static bytes17(t){return cd(t,17)}static bytes18(t){return cd(t,18)}static bytes19(t){return cd(t,19)}static bytes20(t){return cd(t,20)}static bytes21(t){return cd(t,21)}static bytes22(t){return cd(t,22)}static bytes23(t){return cd(t,23)}static bytes24(t){return cd(t,24)}static bytes25(t){return cd(t,25)}static bytes26(t){return cd(t,26)}static bytes27(t){return cd(t,27)}static bytes28(t){return cd(t,28)}static bytes29(t){return cd(t,29)}static bytes30(t){return cd(t,30)}static bytes31(t){return cd(t,31)}static bytes32(t){return cd(t,32)}static address(e){return new t(od,"address",e)}static bool(e){return new t(od,"bool",!!e)}static bytes(e){return new t(od,"bytes",e)}static string(e){return new t(od,"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(od,"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 hd extends Rc{constructor(t){super("address","address",t,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(t,e){let n=ud.dereference(e,"string");try{n=nd(n)}catch(r){return this._throwError(r.message,e)}return t.writeValue(n)}decode(t){return nd(Oa(t.readValue(),20))}}class dd extends Rc{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 fd(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 ea(r,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:e},value:n}),ea(!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 na(!1,"invalid tuple value","tuple",n);na(e.length===r.length,"types/value length mismatch","tuple",n);let s=new Cc,i=new Cc,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 pd(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(Zo(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(Zo(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)})),Sc.fromItems(n,r)}class gd extends Rc{constructor(t,e,n){super("array",t.type+"["+(e>=0?e:"")+"]",n,-1===e||t.dynamic),xn(this,"coder"),xn(this,"length"),Qo(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=ud.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)),ra(n.length,r,"coder array"+(this.localName?" "+this.localName:""));let s=[];for(let i=0;i<n.length;i++)s.push(this.coder);return fd(t,s,n)}decode(t){let e=this.length;-1===e&&(e=t.readIndex(),ea(e*mc<=t.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:t.bytes,offset:e*mc,length:t.dataLength}));let n=[];for(let r=0;r<e;r++)n.push(new dd(this.coder));return pd(t,n)}}class md extends Rc{constructor(t){super("bool","bool",t,!1)}defaultValue(){return!1}encode(t,e){const n=ud.dereference(e,"bool");return t.writeValue(n?1:0)}decode(t){return!!t.readValue()}}class yd extends Rc{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 wd extends yd{constructor(t){super("bytes",t)}decode(t){return fa(super.decode(t))}}class bd extends Rc{constructor(t,e){let n="bytes"+String(t);super(n,n,e,!1),xn(this,"size"),Qo(this,{size:t},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(t,e){let n=la(ud.dereference(e,this.type));return n.length!==this.size&&this._throwError("incorrect data length",e),t.writeBytes(n)}decode(t){return fa(t.readBytes(this.size))}}const Ad=new Uint8Array([]);class vd extends Rc{constructor(t){super("null","",t,!1)}defaultValue(){return null}encode(t,e){return null!=e&&this._throwError("not null",e),t.writeBytes(Ad)}decode(t){return t.readBytes(0),null}}const _d=BigInt(0),Ed=BigInt(1),kd=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class Sd extends Rc{constructor(t,e,n){const r=(e?"int":"uint")+8*t;super(r,r,n,!1),xn(this,"size"),xn(this,"signed"),Qo(this,{size:t,signed:e},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(t,e){let n=Sa(ud.dereference(e,this.type)),r=ka(kd,256);if(this.signed){let t=ka(r,8*this.size-1);(n>t||n<-(t+Ed))&&this._throwError("value out-of-bounds",e),n=Ea(n,256)}else(n<_d||n>ka(r,8*this.size))&&this._throwError("value out-of-bounds",e);return t.writeValue(n)}decode(t){let e=ka(t.readValue(),8*this.size);return this.signed&&(e=function(t,e){const n=Ta(t,"value"),r=BigInt(Ia(e,"width"));if(ea(n>>r===Aa,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:t}),n>>r-va)return-((~n&(va<<r)-va)+va);return n}(e,8*this.size)),e}}class Td extends yd{constructor(t){super("string",t)}defaultValue(){return""}encode(t,e){return super.encode(t,Ha(ud.dereference(e,"string")))}decode(t){return Wa(super.decode(t))}}class Rd extends Rc{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"),Qo(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=ud.dereference(e,"tuple");return fd(t,this.coders,n)}decode(t){return pd(t,this.coders)}}function Cd(t,e){return{address:nd(t),storageKeys:e.map(((t,e)=>(na(ua(t,32),"invalid slot",`storageKeys[${e}]`,t),t.toLowerCase())))}}function Id(t){if(Array.isArray(t))return t.map(((e,n)=>Array.isArray(e)?(na(2===e.length,"invalid slot set",`value[${n}]`,e),Cd(e[0],e[1])):(na(null!=e&&"object"==typeof e,"invalid address-slot set","value",t),Cd(e.address,e.storageKeys))));na(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 Cd(e,Object.keys(n).sort())}));return e.sort(((t,e)=>t.address.localeCompare(e.address))),e}function Od(t){return{address:nd(t.address),nonce:Sa(null!=t.nonce?t.nonce:0),chainId:Sa(null!=t.chainId?t.chainId:0),signature:Jh.from(t.signature)}}function xd(t){let e;return e="string"==typeof t?Qh.computePublicKey(t,!1):t.publicKey,nd(Wl("0x"+e.substring(4)).substring(26))}const Nd=BigInt(0),Pd=BigInt(2),Bd=BigInt(27),Dd=BigInt(28),Ud=BigInt(35),Ld=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Md=Symbol.for("nodejs.util.inspect.custom"),Fd=131072,jd=128;function Gd(t,e){let n=t.toString(16);for(;n.length<2;)n="0"+n;return n+=Nu(e).substring(4),"0x"+n}function Hd(t){return"0x"===t?null:nd(t)}function Wd(t,e){try{return Id(t)}catch(n){na(!1,n.message,e,t)}}function Vd(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:Hd(r[1]),nonce:zd(r[2],"nonce"),chainId:zd(r[0],"chainId"),signature:Jh.from({yParity:Kd(r[3],"yParity"),r:wa(r[4],32),s:wa(r[5],32)})})}return e}catch(n){na(!1,n.message,e,t)}}function Kd(t,e){return"0x"===t?0:Ia(t,e)}function zd(t,e){if("0x"===t)return Nd;const n=Sa(t,e);return na(n<=Ld,"value exceeds uint size",e,n),n}function qd(t,e){const n=Sa(t,"value"),r=xa(n);return na(r.length<=32,"value too large",`tx.${e}`,n),r}function $d(t){return Id(t).map((t=>[t.address,t.storageKeys]))}function Jd(t,e){na(Array.isArray(t),`invalid ${e}`,"value",t);for(let n=0;n<t.length;n++)na(ua(t[n],32),"invalid ${ param } hash",`value[${n}]`,t[n]);return t}function Qd(t,e){let n;try{if(n=Kd(e[0],"yParity"),0!==n&&1!==n)throw new Error("bad yParity")}catch(o){na(!1,"invalid yParity","yParity",e[0])}const r=wa(e[1],32),s=wa(e[2],32),i=Jh.from({r:r,s:s,yParity:n});t.signature=i}z=new WeakMap,q=new WeakMap,$=new WeakMap,J=new WeakMap,Q=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){ea(!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=[qd(t.nonce,"nonce"),qd(t.gasPrice||0,"gasPrice"),qd(t.gasLimit,"gasLimit"),t.to||"0x",qd(t.value,"value"),t.data];let r=Nd;if(t.chainId!=Nd)r=Sa(t.chainId,"tx.chainId"),na(!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!==Nd&&(n.push(xa(r)),n.push("0x"),n.push("0x")),pc(n);let s=BigInt(27+e.yParity);return r!==Nd?s=Jh.getChainIdV(r,e.v):BigInt(e.v)!==s&&na(!1,"tx.chainId/sig.v mismatch","sig",e),n.push(xa(s)),n.push(xa(e.r)),n.push(xa(e._s)),pc(n)}(this,n);case 1:return function(t,e){const n=[qd(t.chainId,"chainId"),qd(t.nonce,"nonce"),qd(t.gasPrice||0,"gasPrice"),qd(t.gasLimit,"gasLimit"),t.to||"0x",qd(t.value,"value"),t.data,$d(t.accessList||[])];return e&&(n.push(qd(e.yParity,"recoveryParam")),n.push(xa(e.r)),n.push(xa(e.s))),pa(["0x01",pc(n)])}(this,n);case 2:return function(t,e){const n=[qd(t.chainId,"chainId"),qd(t.nonce,"nonce"),qd(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),qd(t.maxFeePerGas||0,"maxFeePerGas"),qd(t.gasLimit,"gasLimit"),t.to||"0x",qd(t.value,"value"),t.data,$d(t.accessList||[])];return e&&(n.push(qd(e.yParity,"yParity")),n.push(xa(e.r)),n.push(xa(e.s))),pa(["0x02",pc(n)])}(this,n);case 3:return function(t,e,n){const r=[qd(t.chainId,"chainId"),qd(t.nonce,"nonce"),qd(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),qd(t.maxFeePerGas||0,"maxFeePerGas"),qd(t.gasLimit,"gasLimit"),t.to||Uh,qd(t.value,"value"),t.data,$d(t.accessList||[]),qd(t.maxFeePerBlobGas||0,"maxFeePerBlobGas"),Jd(t.blobVersionedHashes||[],"blobVersionedHashes")];if(e&&(r.push(qd(e.yParity,"yParity")),r.push(xa(e.r)),r.push(xa(e.s)),n)){if(null!=t.blobWrapperVersion){const e=xa(t.blobWrapperVersion),s=[];for(const{proof:t}of n){const e=ca(t),n=e.length/jd;for(let t=0;t<e.length;t+=n)s.push(e.subarray(t,t+n))}return pa(["0x03",pc([r,e,n.map((t=>t.data)),n.map((t=>t.commitment)),s])])}return pa(["0x03",pc([r,n.map((t=>t.data)),n.map((t=>t.commitment)),n.map((t=>t.proof))])])}return pa(["0x03",pc(r)])}(this,n,e?this.blobs:null);case 4:return function(t,e){const n=[qd(t.chainId,"chainId"),qd(t.nonce,"nonce"),qd(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),qd(t.maxFeePerGas||0,"maxFeePerGas"),qd(t.gasLimit,"gasLimit"),t.to||"0x",qd(t.value,"value"),t.data,$d(t.accessList||[]),(r=t.authorizationList||[],r.map((t=>[qd(t.chainId,"chainId"),t.address,qd(t.nonce,"nonce"),qd(t.signature.yParity,"yParity"),xa(t.signature.r),xa(t.signature._s)])))];var r;return e&&(n.push(qd(e.yParity,"yParity")),n.push(xa(e.r)),n.push(xa(e.s))),pa(["0x04",pc(n)])}(this,n)}ea(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})};let Yd=class t{constructor(){Bn(this,ut),Bn(this,z,void 0),Bn(this,q,void 0),Bn(this,$,void 0),Bn(this,J,void 0),Bn(this,Q,void 0),Bn(this,Y,void 0),Bn(this,Z,void 0),Bn(this,X,void 0),Bn(this,tt,void 0),Bn(this,et,void 0),Bn(this,nt,void 0),Bn(this,rt,void 0),Bn(this,st,void 0),Bn(this,it,void 0),Bn(this,ot,void 0),Bn(this,at,void 0),Bn(this,ct,void 0),Bn(this,lt,void 0),Dn(this,z,null),Dn(this,q,null),Dn(this,J,0),Dn(this,Q,Nd),Dn(this,Y,null),Dn(this,Z,null),Dn(this,X,null),Dn(this,$,"0x"),Dn(this,tt,Nd),Dn(this,et,Nd),Dn(this,nt,null),Dn(this,rt,null),Dn(this,st,null),Dn(this,it,null),Dn(this,ot,null),Dn(this,at,null),Dn(this,ct,null),Dn(this,lt,null)}get type(){return Pn(this,z)}set type(t){switch(t){case null:Dn(this,z,null);break;case 0:case"legacy":Dn(this,z,0);break;case 1:case"berlin":case"eip-2930":Dn(this,z,1);break;case 2:case"london":case"eip-1559":Dn(this,z,2);break;case 3:case"cancun":case"eip-4844":Dn(this,z,3);break;case 4:case"pectra":case"eip-7702":Dn(this,z,4);break;default:na(!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?Uh:t}set to(t){Dn(this,q,null==t?null:nd(t))}get nonce(){return Pn(this,J)}set nonce(t){Dn(this,J,Ia(t,"value"))}get gasLimit(){return Pn(this,Q)}set gasLimit(t){Dn(this,Q,Sa(t))}get gasPrice(){const t=Pn(this,Y);return null!=t||0!==this.type&&1!==this.type?t:Nd}set gasPrice(t){Dn(this,Y,null==t?null:Sa(t,"gasPrice"))}get maxPriorityFeePerGas(){const t=Pn(this,Z);return null==t?2===this.type||3===this.type?Nd:null:t}set maxPriorityFeePerGas(t){Dn(this,Z,null==t?null:Sa(t,"maxPriorityFeePerGas"))}get maxFeePerGas(){const t=Pn(this,X);return null==t?2===this.type||3===this.type?Nd:null:t}set maxFeePerGas(t){Dn(this,X,null==t?null:Sa(t,"maxFeePerGas"))}get data(){return Pn(this,$)}set data(t){Dn(this,$,fa(t))}get value(){return Pn(this,tt)}set value(t){Dn(this,tt,Sa(t,"value"))}get chainId(){return Pn(this,et)}set chainId(t){Dn(this,et,Sa(t))}get signature(){return Pn(this,nt)||null}set signature(t){Dn(this,nt,null==t?null:Jh.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){Dn(this,rt,null==t?null:Id(t))}get authorizationList(){const t=Pn(this,ct)||null;return null==t&&4===this.type?[]:t}set authorizationList(t){Dn(this,ct,null==t?null:t.map((t=>Od(t))))}get maxFeePerBlobGas(){const t=Pn(this,st);return null==t&&3===this.type?Nd:t}set maxFeePerBlobGas(t){Dn(this,st,null==t?null:Sa(t,"maxFeePerBlobGas"))}get blobVersionedHashes(){let t=Pn(this,it);return null==t&&3===this.type?[]:t}set blobVersionedHashes(t){if(null!=t){na(Array.isArray(t),"blobVersionedHashes must be an Array","value",t),t=t.slice();for(let e=0;e<t.length;e++)na(ua(t[e],32),"invalid blobVersionedHash",`value[${e}]`,t[e])}Dn(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 Dn(this,at,null);const e=[],n=[];for(let r=0;r<t.length;r++){const s=t[r];if(ha(s)){ea(Pn(this,ot),"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let t=ca(s);if(na(t.length<=Fd,"blob is too large",`blobs[${r}]`,s),t.length!==Fd){const e=new Uint8Array(Fd);e.set(t),t=e}const i=Pn(this,ot).blobToKzgCommitment(t),o=fa(Pn(this,ot).computeBlobKzgProof(t,i));e.push({data:fa(t),commitment:fa(i),proof:o}),n.push(Gd(1,i))}else{const t=fa(s.data),r=fa(s.commitment),i=fa(s.proof);e.push({data:t,commitment:r,proof:i}),n.push(Gd(1,r))}}Dn(this,at,e),Dn(this,it,n)}get kzg(){return Pn(this,ot)}set kzg(t){Dn(this,ot,null==t?null:function(t){return{blobToKzgCommitment:e=>{if("computeBlobProof"in t){if("blobToKzgCommitment"in t&&"function"==typeof t.blobToKzgCommitment)return ca(t.blobToKzgCommitment(fa(e)))}else if("blobToKzgCommitment"in t&&"function"==typeof t.blobToKzgCommitment)return ca(t.blobToKzgCommitment(e));if("blobToKZGCommitment"in t&&"function"==typeof t.blobToKZGCommitment)return ca(t.blobToKZGCommitment(fa(e)));na(!1,"unsupported KZG library","kzg",t)},computeBlobKzgProof:(e,n)=>"computeBlobProof"in t&&"function"==typeof t.computeBlobProof?ca(t.computeBlobProof(fa(e),fa(n))):"computeBlobKzgProof"in t&&"function"==typeof t.computeBlobKzgProof?t.computeBlobKzgProof(e,n):"computeBlobKZGProof"in t&&"function"==typeof t.computeBlobKZGProof?ca(t.computeBlobKZGProof(fa(e),fa(n))):void na(!1,"unsupported KZG library","kzg",t)}}(t))}get blobWrapperVersion(){return Pn(this,lt)}set blobWrapperVersion(t){Dn(this,lt,t)}get hash(){return null==this.signature?null:Wl(Ln(this,ut,ht).call(this,!0,!1))}get unsignedHash(){return Wl(this.unsignedSerialized)}get from(){return null==this.signature?null:(t=this.unsignedHash,e=this.signature.getCanonical(),xd(Qh.recoverPublicKey(t,e)));var t,e}get fromPublicKey(){return null==this.signature?null:Qh.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&&ea(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),ea(!e||0!==this.type&&1!==this.type,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),ea(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}}[Md](){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=ca(e);if(n[0]>=127)return t.from(function(t){const e=uc(t);na(Array.isArray(e)&&(9===e.length||6===e.length),"invalid field count for legacy transaction","data",t);const n={type:0,nonce:Kd(e[0],"nonce"),gasPrice:zd(e[1],"gasPrice"),gasLimit:zd(e[2],"gasLimit"),to:Hd(e[3]),value:zd(e[4],"value"),data:fa(e[5]),chainId:Nd};if(6===e.length)return n;const r=zd(e[6],"v"),s=zd(e[7],"r"),i=zd(e[8],"s");if(s===Nd&&i===Nd)n.chainId=r;else{let t=(r-Ud)/Pd;t<Nd&&(t=Nd),n.chainId=t,na(t!==Nd||r===Bd||r===Dd,"non-canonical legacy v","v",e[6]),n.signature=Jh.from({r:wa(e[7],32),s:wa(e[8],32),v:r})}return n}(n));switch(n[0]){case 1:return t.from(function(t){const e=uc(ca(t).slice(1));na(Array.isArray(e)&&(8===e.length||11===e.length),"invalid field count for transaction type: 1","data",fa(t));const n={type:1,chainId:zd(e[0],"chainId"),nonce:Kd(e[1],"nonce"),gasPrice:zd(e[2],"gasPrice"),gasLimit:zd(e[3],"gasLimit"),to:Hd(e[4]),value:zd(e[5],"value"),data:fa(e[6]),accessList:Wd(e[7],"accessList")};return 8===e.length||Qd(n,e.slice(8)),n}(n));case 2:return t.from(function(t){const e=uc(ca(t).slice(1));na(Array.isArray(e)&&(9===e.length||12===e.length),"invalid field count for transaction type: 2","data",fa(t));const n={type:2,chainId:zd(e[0],"chainId"),nonce:Kd(e[1],"nonce"),maxPriorityFeePerGas:zd(e[2],"maxPriorityFeePerGas"),maxFeePerGas:zd(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:zd(e[4],"gasLimit"),to:Hd(e[5]),value:zd(e[6],"value"),data:fa(e[7]),accessList:Wd(e[8],"accessList")};return 9===e.length||Qd(n,e.slice(9)),n}(n));case 3:return t.from(function(t){let e=uc(ca(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];na(Array.isArray(t),"invalid network format: blobs not an array","fields[1]",t),na(Array.isArray(r),"invalid network format: commitments not an array","fields[2]",r),na(Array.isArray(i),"invalid network format: proofs not an array","fields[3]",i),na(t.length===r.length,"invalid network format: blobs/commitments length mismatch","fields",e),na(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=Ia(e[1]);const t=e[2],i=e[3],o=e[4];na(1===r,`unsupported EIP-7594 network format version: ${r}`,"fields[1]",r),na(Array.isArray(t),"invalid EIP-7594 network format: blobs not an array","fields[2]",t),na(Array.isArray(i),"invalid EIP-7594 network format: commitments not an array","fields[3]",i),na(Array.isArray(o),"invalid EIP-7594 network format: proofs not an array","fields[4]",o),na(t.length===i.length,"invalid network format: blobs/commitments length mismatch","fields",e),na(t.length*jd===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<jd;t++)n.push(o[e*jd+t]);s.push({data:t[e],commitment:i[e],proof:pa(n)})}e=e[0]}na(Array.isArray(e)&&(11===e.length||14===e.length),`invalid field count for transaction type: ${n}`,"data",fa(t));const i={type:3,chainId:zd(e[0],"chainId"),nonce:Kd(e[1],"nonce"),maxPriorityFeePerGas:zd(e[2],"maxPriorityFeePerGas"),maxFeePerGas:zd(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:zd(e[4],"gasLimit"),to:Hd(e[5]),value:zd(e[6],"value"),data:fa(e[7]),accessList:Wd(e[8],"accessList"),maxFeePerBlobGas:zd(e[9],"maxFeePerBlobGas"),blobVersionedHashes:e[10],blobWrapperVersion:r};s&&(i.blobs=s),na(null!=i.to,`invalid address for transaction type: ${n}`,"data",t),na(Array.isArray(i.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",t);for(let o=0;o<i.blobVersionedHashes.length;o++)na(ua(i.blobVersionedHashes[o],32),`invalid blobVersionedHash at index ${o}: must be length 32`,"data",t);return 11===e.length||Qd(i,e.slice(11)),i}(n));case 4:return t.from(function(t){const e=uc(ca(t).slice(1));na(Array.isArray(e)&&(10===e.length||13===e.length),"invalid field count for transaction type: 4","data",fa(t));const n={type:4,chainId:zd(e[0],"chainId"),nonce:Kd(e[1],"nonce"),maxPriorityFeePerGas:zd(e[2],"maxPriorityFeePerGas"),maxFeePerGas:zd(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:zd(e[4],"gasLimit"),to:Hd(e[5]),value:zd(e[6],"value"),data:fa(e[7]),accessList:Wd(e[8],"accessList"),authorizationList:Vd(e[9],"authorizationList")};return 10===e.length||Qd(n,e.slice(10)),n}(n))}ea(!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=Jh.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&&(na(n.isSigned(),"unsigned transaction cannot define '.hash'","tx",e),na(n.hash===e.hash,"hash mismatch","tx",e)),null!=e.from&&(na(n.isSigned(),"unsigned transaction cannot define '.from'","tx",e),na(n.from.toLowerCase()===(e.from||"").toLowerCase(),"from mismatch","tx",e)),n}};function Zd(t){return Wl(Ha(t))}const Xd=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]);function tf(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 ef(t){return 1&t?~t>>1:t>>1}function nf(t,e){let n=Array(t);for(let r=0,s=0;r<t;r++)n[r]=s+=ef(e());return n}function rf(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 sf(t){return af((()=>{let e=rf(t);if(e.length)return e}))}function of(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(uf(n,t))}return e.flat()}function af(t){let e=[];for(;;){let n=t(e.length);if(!n)break;e.push(n)}return e}function cf(t,e,n){let r=Array(t).fill().map((()=>[]));for(let s=0;s<e;s++)nf(t,n).forEach(((t,e)=>r[e].push(t)));return r}function lf(t,e){let n=1+e(),r=e(),s=af(e);return cf(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 uf(t,e){return cf(1+e(),1+t,e).map((t=>[t[0],t.slice(1)]))}function hf(t){return`{${function(t){return t.toString(16).toUpperCase().padStart(2,"0")}(t)}}`}function df(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 ff(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 pf=44032,gf=4352,mf=4449,yf=4519,wf=28,bf=588;function Af(t){return t>>24&255}function vf(t){return 16777215&t}let _f,Ef,kf,Sf;function Tf(t){return t>=pf&&t<55204}function Rf(t,e){if(t>=gf&&t<4371&&e>=mf&&e<4470)return pf+(t-gf)*bf+(e-mf)*wf;if(Tf(t)&&e>yf&&e<4547&&(t-pf)%wf==0)return t+(e-yf);{let n=Sf.get(t);return n&&(n=n.get(e),n)?n:-1}}function Cf(t){_f||function(){let t=tf("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");_f=new Map(sf(t).flatMap(((t,e)=>t.map((t=>[t,e+1<<24]))))),Ef=new Set(rf(t)),kf=new Map,Sf=new Map;for(let[e,n]of of(t)){if(!Ef.has(e)&&2==n.length){let[t,r]=n,s=Sf.get(t);s||(s=new Map,Sf.set(t,s)),s.set(r,e)}kf.set(e,n.reverse())}}();let e=[],n=[],r=!1;function s(t){let n=_f.get(t);n&&(r=!0,t|=n),e.push(t)}for(let i of t)for(;;){if(i<128)e.push(i);else if(Tf(i)){let t=i-pf,e=t%bf/wf|0,n=t%wf;s(gf+(t/bf|0)),s(mf+e),n>0&&s(yf+n)}else{let t=kf.get(i);t?n.push(...t):s(i)}if(!n.length)break;i=n.pop()}if(r&&e.length>1){let t=Af(e[0]);for(let n=1;n<e.length;n++){let r=Af(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=Af(e[--s]),t<=r)break}t=Af(e[n])}}return e}function If(t){return Cf(t).map(vf)}function Of(t){return function(t){let e=[],n=[],r=-1,s=0;for(let i of t){let t=Af(i),o=vf(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=Rf(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}(Cf(t))}const xf=".",Nf=t=>Array.from(t);function Pf(t,e){return t.P.has(e)||t.Q.has(e)}class Bf extends Array{get is_emoji(){return!0}}let Df,Uf,Lf,Mf,Ff,jf,Gf,Hf,Wf,Vf,Kf;function zf(){if(Df)return;let t=tf("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");const e=()=>rf(t),n=()=>new Set(e()),r=(t,e)=>e.forEach((e=>t.add(e)));Df=new Map(of(t)),Uf=n(),Lf=e(),Mf=new Set(e().map((t=>Lf[t]))),Lf=new Set(Lf),Ff=n(),n();let s=sf(t),i=t();const o=()=>{let t=new Set;return e().forEach((e=>r(t,s[e]))),r(t,e()),t};jf=af((e=>{let n=af(t).map((t=>t+96));if(n.length){let r=e>=i;return n[0]-=32,n=df(n),r&&(n=`Restricted[${n}]`),{N:n,P:o(),Q:o(),M:!t(),R:r}}})),Gf=n(),Hf=new Map;let a=e().concat(Nf(Gf)).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),Gf.has(e)||Hf.set(e,s)}));for(let{V:u,M:h}of new Set(Hf.values())){let t=[];for(let n of u){let e=jf.filter((t=>Pf(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=>Nf(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)}}Wf=new Set;let c=new Set;const l=t=>Wf.has(t)?c.add(t):Wf.add(t);for(let u of jf){for(let t of u.P)l(t);for(let t of u.Q)l(t)}for(let u of Wf)Hf.has(u)||c.has(u)||Hf.set(u,1);r(Wf,If(Wf)),Vf=function(t){let e=[],n=rf(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:af((()=>{let r=rf(t).map((t=>n[t]));if(r.length)return e(r)})),Q:r}}([]),[]),e}(t).map((t=>Bf.from(t))).sort(ff),Kf=new Map;for(let u of Vf){let t=[Kf];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 qf(t){return(Qf(t)?"":`${$f(Jf([t]))} `)+hf(t)}function $f(t){return`"${t}"`}function Jf(t,e=1/0,n=hf){let r=[];var s,i;s=t[0],zf(),(i?Mf.has(s):Lf.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];Qf(e)&&(r.push(df(t.slice(o,c))),r.push(n(e)),o=c+1)}return r.push(df(t.slice(o,a))),r.join("")}function Qf(t){return zf(),Ff.has(t)}function Yf(t){return e=function(t,e,n){if(!t)return[];zf();let r=0;return t.split(xf).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=np(t);if(i)s.length&&(r.push(e(s)),s=[]),r.push(n(i));else{let e=t.pop();if(Wf.has(e))s.push(e);else{let t=Df.get(e);if(t)s.push(...t);else if(!Uf.has(e))throw Zf(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: "${df(t.slice(0,4))}"`)}(a),t="ASCII";else{let e=r.flatMap((t=>t.is_emoji?[]:t));if(e.length){if(Lf.has(a[0]))throw tp("leading combining mark");for(let t=1;t<o;t++){let e=r[t];if(!e.is_emoji&&Lf.has(e[0]))throw tp(`emoji + combining mark: "${df(r[t-1])} + ${Jf([e[0]])}"`)}!function(t){let e=t[0],n=Xd.get(e);if(n)throw tp(`leading ${n}`);let r=t.length,s=-1;for(let i=1;i<r;i++){e=t[i];let r=Xd.get(e);if(r){if(s==i)throw tp(`${n} + ${r}`);s=i+1,n=r}}if(s==r)throw tp(`trailing ${n}`)}(a);let n=Nf(new Set(e)),[s]=function(t){let e=jf;for(let n of t){let t=e.filter((t=>Pf(t,n)));if(!t.length)throw jf.some((t=>Pf(t,n)))?Xf(e[0],n):Zf(n);if(e=t,1==t.length)break}return e}(n);!function(t,e){for(let n of e)if(!Pf(t,n))throw Xf(t,n);if(t.M){let t=If(e);for(let e=1,n=t.length;e<n;e++)if(Mf.has(t[e])){let r=e+1;for(let s;r<n&&Mf.has(s=t[r]);r++)for(let n=e;n<r;n++)if(t[n]==s)throw new Error(`duplicate non-spacing marks: ${qf(s)}`);if(r-e>4)throw new Error(`excessive non-spacing marks: ${$f(Jf(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=Hf.get(s);if(1===t)return;if(t){let e=t.M.get(s);if(n=n?n.filter((t=>e.has(t))):Nf(e),!n.length)return}else r.push(s)}if(n)for(let s of n)if(r.every((t=>Pf(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,Of,ep),e.map((({input:t,error:n,output:r})=>{if(n){let r=n.message;throw new Error(1==e.length?r:`Invalid label ${$f(Jf(t,63))}: ${r}`)}return df(r)})).join(xf);var e}function Zf(t){return new Error(`disallowed character: ${qf(t)}`)}function Xf(t,e){let n=qf(e),r=jf.find((t=>t.P.has(e)));return r&&(n=`${r.N} ${n}`),new Error(`illegal mixture: ${t.N} + ${n}`)}function tp(t){return new Error(`illegal placement: ${t}`)}function ep(t){return t.filter((t=>65039!=t))}function np(t,e){let n,r=Kf,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 rp=new Uint8Array(32);function sp(t){return na(0!==t.length,"invalid ENS name; empty component","comp",t),t}function ip(t){const e=Ha(op(t)),n=[];if(0===t.length)return n;let r=0;for(let s=0;s<e.length;s++){46===e[s]&&(n.push(sp(e.slice(r,s))),r=s+1)}return na(r<e.length,"invalid ENS name; empty component","name",t),n.push(sp(e.slice(r))),n}function op(t){try{if(0===t.length)throw new Error("empty label");return Yf(t)}catch(e){na(!1,`invalid ENS name (${e.message})`,"name",t)}}function ap(t){try{return 0!==ip(t).length}catch(e){}return!1}function cp(t){na("string"==typeof t,"invalid ENS name; not a string","name",t),na(t.length,"invalid ENS name (empty label)","name",t);let e=rp;const n=ip(t);for(;n.length;)e=Wl(pa([e,Wl(n.pop())]));return fa(e)}function lp(t,e){const n=null!=e?e:63;return na(n<=255,"DNS encoded label cannot exceed 255","length",n),fa(pa(ip(t).map((e=>{na(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"}rp.fill(0);const up=new Uint8Array(32);up.fill(0);const hp=BigInt(-1),dp=BigInt(0),fp=BigInt(1),pp=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const gp=Oa(fp,32),mp=Oa(dp,32),yp={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},wp=["name","version","chainId","verifyingContract","salt"];function bp(t){return function(e){return na("string"==typeof e,`invalid domain value for ${JSON.stringify(t)}`,`domain.${t}`,e),e}}const Ap={name:bp("name"),version:bp("version"),chainId:function(t){const e=Sa(t,"domain.chainId");return na(e>=0,"invalid chain ID","domain.chainId",t),Number.isSafeInteger(e)?Number(e):Na(e)},verifyingContract:function(t){try{return nd(t).toLowerCase()}catch(e){}na(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",t)},salt:function(t){const e=ca(t,"domain.salt");return na(32===e.length,'invalid domain value "salt"',"domain.salt",t),fa(e)}};function vp(t){{const e=t.match(/^(u?)int(\d+)$/);if(e){const n=""===e[1],r=parseInt(e[2]);na(r%8==0&&0!==r&&r<=256&&e[2]===String(r),"invalid numeric width","type",t);const s=ka(pp,n?r-1:r),i=n?(s+fp)*hp:dp;return function(e){const r=Sa(e,"value");return na(r>=i&&r<=s,`value out-of-bounds for ${t}`,"value",r),Oa(n?Ea(r,256):r,32)}}}{const e=t.match(/^bytes(\d+)$/);if(e){const n=parseInt(e[1]);return na(0!==n&&n<=32&&e[1]===String(n),"invalid bytes width","type",t),function(e){return na(ca(e).length===n,`invalid length for ${t}`,"value",e),function(t){const e=ca(t),n=e.length%32;return n?pa([e,up.slice(n)]):fa(e)}(e)}}}switch(t){case"address":return function(t){return wa(nd(t),32)};case"bool":return function(t){return t?gp:mp};case"bytes":return function(t){return Wl(t)};case"string":return function(t){return Zd(t)}}return null}function _p(t,e){return`${t}(${e.map((({name:t,type:e})=>e+" "+t)).join(",")})`}function Ep(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=vp(t);if(e)return e}const e=Ep(t).array;if(e){const t=e.prefix,n=this.getEncoder(t);return r=>{na(-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(Wl)),Wl(pa(s))}}const n=this.types[t];if(n){const e=Zd(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)?Wl(r):r}));return r.unshift(e),pa(r)}}na(!1,`unknown type: ${t}`,"type",t)};let kp=class t{constructor(t){Bn(this,gt),xn(this,"primaryType"),Bn(this,dt,void 0),Bn(this,ft,void 0),Bn(this,pt,void 0),Dn(this,ft,new Map),Dn(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}=Ep(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)})),Dn(this,dt,JSON.stringify(s));for(const o in s){const r=new Set;for(const i of s[o]){na(!r.has(i.name),`duplicate variable name ${JSON.stringify(i.name)} in ${JSON.stringify(o)}`,"types",t),r.add(i.name);const s=Ep(i.type).base;na(s!==o,`circular type reference to ${JSON.stringify(s)}`,"types",t);vp(s)||(na(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));na(0!==i.length,"missing primary type","types",t),na(1===i.length,`ambiguous primary types or unused types: ${i.map((t=>JSON.stringify(t))).join(", ")}`,"types",t),Qo(this,{primaryType:i[0]}),function s(i,o){na(!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,_p(o,s[o])+t.map((t=>_p(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 na(e,`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return Wl(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(vp(t))return n(t,e);const r=Ep(t).array;if(r)return na(-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)),{});na(!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=yp[t];na(r,`invalid typed-data domain key: ${JSON.stringify(t)}`,"domain",e),n.push({name:t,type:r})}return n.sort(((t,e)=>wp.indexOf(t.name)-wp.indexOf(e.name))),t.hashStruct("EIP712Domain",{EIP712Domain:n},e)}static encode(e,n,r){return pa(["0x1901",t.hashDomain(e),t.from(n).hash(r)])}static hash(e,n,r){return Wl(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&&!ua(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const o=t.from(n);o.visit(r,((t,e)=>("address"!==t||ua(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=[];wp.forEach((t=>{const n=e[t];null!=n&&(s[t]=Ap[t](n),i.push({name:t,type:yp[t]}))}));const o=t.from(n);n=o.types;const a=Object.assign({},n);return na(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 fa(ca(e));if(t.match(/^u?int/))return Sa(e).toString();switch(t){case"address":return e.toLowerCase();case"bool":return!!e;case"string":return na("string"==typeof e,"invalid string","value",e),e}na(!1,"unsupported type","type",t)}))}}};function Sp(t){const e=new Set;return t.forEach((t=>e.add(t))),Object.freeze(e)}const Tp=Sp("external public payable override".split(" ")),Rp="constant external internal payable private public pure view override",Cp=Sp(Rp.split(" ")),Ip="constructor error event fallback function receive struct",Op=Sp(Ip.split(" ")),xp="calldata memory storage payable indexed",Np=Sp(xp.split(" ")),Pp=Sp([Ip,xp,"tuple returns",Rp].join(" ").split(" ")),Bp={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},Dp=new RegExp("^(\\s*)"),Up=new RegExp("^([0-9]+)"),Lp=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),Mp=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),Fp=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$"),jp=class t{constructor(t){Bn(this,bt),Bn(this,yt,void 0),Bn(this,wt,void 0),Dn(this,yt,0),Dn(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(){Dn(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 Dn(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)),Dn(this,yt,t)}return Dn(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 jp(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 Gp=jp;function Hp(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(Dp);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=Bp[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=Ia(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(Lp),a){if(c.text=a[1],i+=c.text.length,Pp.has(c.text)){c.type="KEYWORD";continue}if(c.text.match(Fp)){c.type="TYPE";continue}c.type="ID"}else{if(a=o.match(Up),!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 Gp(e.map((t=>Object.freeze(t))))}function Wp(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 Vp(t,e){if(e.peekKeyword(Op)){const n=e.pop().text;if(n!==t)throw new Error(`expected ${t}, got ${n}`)}return e.popType("ID")}function Kp(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 zp(t){let e=Kp(t,Cp);return Wp(e,Sp("constant payable nonpayable".split(" "))),Wp(e,Sp("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 qp(t,e){return t.popParams().map((t=>ag.from(t,e)))}function $p(t){if(t.peekType("AT")){if(t.pop(),t.peekType("NUMBER"))return Sa(t.pop().text);throw new Error("invalid gas")}return null}function Jp(t){if(t.length)throw new Error(`unexpected tokens at offset ${t.offset}: ${t.toString()}`)}const Qp=new RegExp(/^(.*)\[([0-9]*)\]$/);function Yp(t){const e=t.match(Fp);if(na(e,"invalid type","type",t),"uint"===t)return"uint256";if("int"===t)return"int256";if(e[2]){const n=parseInt(e[2]);na(0!==n&&n<=32,"invalid bytes length","type",t)}else if(e[3]){const n=parseInt(e[3]);na(0!==n&&n<=256&&n%8==0,"invalid numeric width","type",t)}return t}const Zp={},Xp=Symbol.for("_ethers_internal"),tg="_ParamTypeInternal",eg="_ErrorInternal",ng="_EventInternal",rg="_ConstructorInternal",sg="_FallbackInternal",ig="_FunctionInternal",og="_StructInternal";vt=new WeakSet,_t=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,vt,_t).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],vt,_t).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 ag=class t{constructor(t,e,n,r,s,i,o,a){if(Bn(this,vt),xn(this,"name"),xn(this,"type"),xn(this,"baseType"),xn(this,"indexed"),xn(this,"components"),xn(this,"arrayLength"),xn(this,"arrayChildren"),oa(t,Zp,"ParamType"),Object.defineProperty(this,Xp,{value:tg}),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("");Qo(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,vt,_t).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(Hp(e),n)}catch(a){na(!1,"invalid param type","obj",e)}else if(e instanceof Gp){let r="",s="",i=null;Kp(e,Sp(["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=Yp(e.popType("TYPE")),s=r);let o=null,a=null;for(;e.length&&e.peekType("BRACKET");){const n=e.pop();o=new t(Zp,"",r,s,null,i,a,o),a=n.value,r+=n.text,s="array",i=null}let c=null;if(Kp(e,Np).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(Zp,l,r,s,c,i,a,o)}const r=e.name;na(!r||"string"==typeof r&&r.match(Mp),"invalid name","obj.name",r);let s=e.indexed;null!=s&&(na(n,"parameter cannot be indexed","obj.indexed",e.indexed),s=!!s);let i=e.type,o=i.match(Qp);if(o){const n=parseInt(o[2]||"-1"),a=t.from({type:o[1],components:e.components});return new t(Zp,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(Zp,r||"",i,"tuple",s,n,null,null)}return i=Yp(e.type),new t(Zp,r||"",i,i,s,null,null,null)}static isParamType(t){return t&&t[Xp]===tg}};class cg{constructor(t,e,n){xn(this,"type"),xn(this,"inputs"),oa(t,Zp,"Fragment"),Qo(this,{type:e,inputs:n=Object.freeze(n.slice())})}static from(t){if("string"==typeof t){try{cg.from(JSON.parse(t))}catch(e){}return cg.from(Hp(t))}if(t instanceof Gp){switch(t.peekKeyword(Op)){case"constructor":return fg.from(t);case"error":return hg.from(t);case"event":return dg.from(t);case"fallback":case"receive":return pg.from(t);case"function":return gg.from(t);case"struct":return mg.from(t)}}else if("object"==typeof t){switch(t.type){case"constructor":return fg.from(t);case"error":return hg.from(t);case"event":return dg.from(t);case"fallback":case"receive":return pg.from(t);case"function":return gg.from(t);case"struct":return mg.from(t)}ea(!1,`unsupported type: ${t.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}na(!1,"unsupported frgament object","obj",t)}static isConstructor(t){return fg.isFragment(t)}static isError(t){return hg.isFragment(t)}static isEvent(t){return dg.isFragment(t)}static isFunction(t){return gg.isFragment(t)}static isStruct(t){return mg.isFragment(t)}}class lg extends cg{constructor(t,e,n,r){super(t,e,r),xn(this,"name"),na("string"==typeof n&&n.match(Mp),"invalid identifier","name",n),r=Object.freeze(r.slice()),Qo(this,{name:n})}}function ug(t,e){return"("+e.map((e=>e.format(t))).join("full"===t?", ":",")+")"}class hg extends lg{constructor(t,e,n){super(t,"error",e,n),Object.defineProperty(this,Xp,{value:eg})}get selector(){return Zd(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+ug(t,this.inputs)),e.join(" ")}static from(t){if(hg.isFragment(t))return t;if("string"==typeof t)return hg.from(Hp(t));if(t instanceof Gp){const e=Vp("error",t),n=qp(t);return Jp(t),new hg(Zp,e,n)}return new hg(Zp,t.name,t.inputs?t.inputs.map(ag.from):[])}static isFragment(t){return t&&t[Xp]===eg}}class dg extends lg{constructor(t,e,n,r){super(t,"event",e,n),xn(this,"anonymous"),Object.defineProperty(this,Xp,{value:ng}),Qo(this,{anonymous:r})}get topicHash(){return Zd(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+ug(t,this.inputs)),"sighash"!==t&&this.anonymous&&e.push("anonymous"),e.join(" ")}static getTopicHash(t,e){e=(e||[]).map((t=>ag.from(t)));return new dg(Zp,t,e,!1).topicHash}static from(t){if(dg.isFragment(t))return t;if("string"==typeof t)try{return dg.from(Hp(t))}catch(e){na(!1,"invalid event fragment","obj",t)}else if(t instanceof Gp){const e=Vp("event",t),n=qp(t,!0),r=!!Kp(t,Sp(["anonymous"])).has("anonymous");return Jp(t),new dg(Zp,e,n,r)}return new dg(Zp,t.name,t.inputs?t.inputs.map((t=>ag.from(t,!0))):[],!!t.anonymous)}static isFragment(t){return t&&t[Xp]===ng}}class fg extends cg{constructor(t,e,n,r,s){super(t,e,n),xn(this,"payable"),xn(this,"gas"),Object.defineProperty(this,Xp,{value:rg}),Qo(this,{payable:r,gas:s})}format(t){if(ea(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${ug(t,this.inputs)}`];return this.payable&&e.push("payable"),null!=this.gas&&e.push(`@${this.gas.toString()}`),e.join(" ")}static from(t){if(fg.isFragment(t))return t;if("string"==typeof t)try{return fg.from(Hp(t))}catch(e){na(!1,"invalid constuctor fragment","obj",t)}else if(t instanceof Gp){Kp(t,Sp(["constructor"]));const e=qp(t),n=!!Kp(t,Tp).has("payable"),r=$p(t);return Jp(t),new fg(Zp,"constructor",e,n,r)}return new fg(Zp,"constructor",t.inputs?t.inputs.map(ag.from):[],!!t.payable,null!=t.gas?t.gas:null)}static isFragment(t){return t&&t[Xp]===rg}}class pg extends cg{constructor(t,e,n){super(t,"fallback",e),xn(this,"payable"),Object.defineProperty(this,Xp,{value:sg}),Qo(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(pg.isFragment(t))return t;if("string"==typeof t)try{return pg.from(Hp(t))}catch(e){na(!1,"invalid fallback fragment","obj",t)}else if(t instanceof Gp){const e=t.toString();na(t.peekKeyword(Sp(["fallback","receive"])),"type must be fallback or receive","obj",e);if("receive"===t.popKeyword(Sp(["fallback","receive"]))){const e=qp(t);return na(0===e.length,"receive cannot have arguments","obj.inputs",e),Kp(t,Sp(["payable"])),Jp(t),new pg(Zp,[],!0)}let n=qp(t);n.length?na(1===n.length&&"bytes"===n[0].type,"invalid fallback inputs","obj.inputs",n.map((t=>t.format("minimal"))).join(", ")):n=[ag.from("bytes")];const r=zp(t);if(na("nonpayable"===r||"payable"===r,"fallback cannot be constants","obj.stateMutability",r),Kp(t,Sp(["returns"])).has("returns")){const e=qp(t);na(1===e.length&&"bytes"===e[0].type,"invalid fallback outputs","obj.outputs",e.map((t=>t.format("minimal"))).join(", "))}return Jp(t),new pg(Zp,n,"payable"===r)}if("receive"===t.type)return new pg(Zp,[],!0);if("fallback"===t.type){const e=[ag.from("bytes")],n="payable"===t.stateMutability;return new pg(Zp,e,n)}na(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[Xp]===sg}}class gg 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,Xp,{value:ig});Qo(this,{constant:"view"===n||"pure"===n,gas:i,outputs:s=Object.freeze(s.slice()),payable:"payable"===n,stateMutability:n})}get selector(){return Zd(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+ug(t,this.inputs)),"sighash"!==t&&("nonpayable"!==this.stateMutability&&e.push(this.stateMutability),this.outputs&&this.outputs.length&&(e.push("returns"),e.push(ug(t,this.outputs))),null!=this.gas&&e.push(`@${this.gas.toString()}`)),e.join(" ")}static getSelector(t,e){e=(e||[]).map((t=>ag.from(t)));return new gg(Zp,t,"view",e,[],null).selector}static from(t){if(gg.isFragment(t))return t;if("string"==typeof t)try{return gg.from(Hp(t))}catch(n){na(!1,"invalid function fragment","obj",t)}else if(t instanceof Gp){const e=Vp("function",t),n=qp(t),r=zp(t);let s=[];Kp(t,Sp(["returns"])).has("returns")&&(s=qp(t));const i=$p(t);return Jp(t),new gg(Zp,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 gg(Zp,t.name,e,t.inputs?t.inputs.map(ag.from):[],t.outputs?t.outputs.map(ag.from):[],null!=t.gas?t.gas:null)}static isFragment(t){return t&&t[Xp]===ig}}class mg extends lg{constructor(t,e,n){super(t,"struct",e,n),Object.defineProperty(this,Xp,{value:og})}format(){throw new Error("@TODO")}static from(t){if("string"==typeof t)try{return mg.from(Hp(t))}catch(e){na(!1,"invalid struct fragment","obj",t)}else if(t instanceof Gp){const e=Vp("struct",t),n=qp(t);return Jp(t),new mg(Zp,e,n)}return new mg(Zp,t.name,t.inputs?t.inputs.map(ag.from):[])}static isFragment(t){return t&&t[Xp]===og}}const yg=new Map;yg.set(0,"GENERIC_PANIC"),yg.set(1,"ASSERT_FALSE"),yg.set(17,"OVERFLOW"),yg.set(18,"DIVIDE_BY_ZERO"),yg.set(33,"ENUM_RANGE_ERROR"),yg.set(34,"BAD_STORAGE_DATA"),yg.set(49,"STACK_UNDERFLOW"),yg.set(50,"ARRAY_RANGE_ERROR"),yg.set(65,"OUT_OF_MEMORY"),yg.set(81,"UNINITIALIZED_FUNCTION_CALL");const wg=new RegExp(/^bytes([0-9]*)$/),bg=new RegExp(/^(u?int)([0-9]*)$/);let Ag=null,vg=1024;Et=new WeakSet,kt=function(t){if(t.isArray())return new gd(Ln(this,Et,kt).call(this,t.arrayChildren),t.arrayLength,t.name);if(t.isTuple())return new Rd(t.components.map((t=>Ln(this,Et,kt).call(this,t))),t.name);switch(t.baseType){case"address":return new hd(t.name);case"bool":return new md(t.name);case"string":return new Td(t.name);case"bytes":return new wd(t.name);case"":return new vd(t.name)}let e=t.type.match(bg);if(e){let n=parseInt(e[2]||"256");return na(0!==n&&n<=256&&n%8==0,"invalid "+e[1]+" bit length","param",t),new Sd(n/8,"int"===e[1],t.name)}if(e=t.type.match(wg),e){let n=parseInt(e[1]);return na(0!==n&&n<=32,"invalid bytes length","param",t),new bd(n,t.name)}na(!1,"invalid type","type",t.type)};let _g=class t{constructor(){Bn(this,Et)}getDefaultValue(t){const e=t.map((t=>Ln(this,Et,kt).call(this,ag.from(t))));return new Rd(e,"_").defaultValue()}encode(t,e){ra(e.length,t.length,"types/values length mismatch");const n=t.map((t=>Ln(this,Et,kt).call(this,ag.from(t)))),r=new Rd(n,"_"),s=new Cc;return r.encode(s,e),s.data}decode(t,e,n){const r=t.map((t=>Ln(this,Et,kt).call(this,ag.from(t))));return new Rd(r,"_").decode(new Ic(e,n,vg))}static _setDefaultMaxInflation(t){na("number"==typeof t&&Number.isInteger(t),"invalid defaultMaxInflation factor","value",t),vg=t}static defaultAbiCoder(){return null==Ag&&(Ag=new t),Ag}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=ca(n);if(n=fa(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"===fa(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"===fa(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 ${yg.get(e)||"UNKNOWN"}(${e})`,s+=`: ${i}`}catch(c){s+=" (could not decode panic code)"}else s+=" (unknown custom error)"}const a={to:e.to?nd(e.to):null,data:e.data||"0x"};return e.from&&(a.from=nd(e.from)),ta(s,"CALL_EXCEPTION",{action:t,data:n,reason:i,transaction:a,invocation:null,revert:o})}(e,n,r,t.defaultAbiCoder())}};class Eg{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();Qo(this,{fragment:t,name:r,signature:s,topic:e,args:n})}}class kg{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();Qo(this,{fragment:t,name:s,args:n,signature:i,selector:e,value:r})}}class Sg{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();Qo(this,{fragment:t,name:r,args:n,signature:s,selector:e})}}class Tg{constructor(t){xn(this,"hash"),xn(this,"_isIndexed"),Qo(this,{hash:t,_isIndexed:!0})}static isIndexed(t){return!(!t||!t._isIndexed)}}const Rg={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"},Cg={"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&&Rg[t.toString()]&&(e=Rg[t.toString()]),`reverted with panic code 0x${t.toString(16)} (${e})`}}};St=new WeakMap,Tt=new WeakMap,Rt=new WeakMap,Ct=new WeakMap,It=new WeakSet,Ot=function(t,e,n){if(ua(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;ud.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(ud.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){na(!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(gg.from(t).format());return r||null},xt=new WeakSet,Nt=function(t,e,n){if(ua(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(ud.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){na(!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(dg.from(t).format());return r||null};let Ig=class t{constructor(t){Bn(this,It),Bn(this,xt),xn(this,"fragments"),xn(this,"deploy"),xn(this,"fallback"),xn(this,"receive"),Bn(this,St,void 0),Bn(this,Tt,void 0),Bn(this,Rt,void 0),Bn(this,Ct,void 0);let e=[];e="string"==typeof t?JSON.parse(t):t,Dn(this,Rt,new Map),Dn(this,St,new Map),Dn(this,Tt,new Map);const n=[];for(const o of e)try{n.push(cg.from(o))}catch(i){console.log(`[Warning] Invalid Fragment ${JSON.stringify(o)}:`,i.message)}Qo(this,{fragments:Object.freeze(n)});let r=null,s=!1;Dn(this,Ct,this.getAbiCoder()),this.fragments.forEach(((t,e)=>{let n;switch(t.type){case"constructor":return this.deploy?void console.log("duplicate definition - constructor"):void Qo(this,{deploy:t});case"fallback":return void(0===t.inputs.length?s=!0:(na(!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||Qo(this,{deploy:fg.from("constructor()")}),Qo(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 _g.defaultAbiCoder()}getFunctionName(t){const e=Ln(this,It,Ot).call(this,t,null,!1);return na(e,"no matching function","key",t),e.name}hasFunction(t){return!!Ln(this,It,Ot).call(this,t,null,!1)}getFunction(t,e){return Ln(this,It,Ot).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 na(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(ua(t)){const e=t.toLowerCase();if(Cg[e])return hg.from(Cg[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?hg.from("error Error(string)"):"Panic"===t?hg.from("error Panic(uint256)"):null;if(e.length>1){na(!1,`ambiguous error description (i.e. ${e.map((t=>JSON.stringify(t.format()))).join(", ")})`,"name",t)}return e[0]}if("Error(string)"===(t=hg.from(t).format()))return hg.from("error Error(string)");if("Panic(uint256)"===t)return hg.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,Ct).decode(t,e)}_encodeParams(t,e){return Pn(this,Ct).encode(t,e)}encodeDeploy(t){return this._encodeParams(this.deploy.inputs,t||[])}decodeErrorResult(t,e){if("string"==typeof t){const e=this.getError(t);na(e,"unknown error","fragment",t),t=e}return na(ma(e,0,4)===t.selector,`data signature does not match error ${t.name}.`,"data",e),this._decodeParams(t.inputs,ma(e,4))}encodeErrorResult(t,e){if("string"==typeof t){const e=this.getError(t);na(e,"unknown error","fragment",t),t=e}return pa([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionData(t,e){if("string"==typeof t){const e=this.getFunction(t);na(e,"unknown function","fragment",t),t=e}return na(ma(e,0,4)===t.selector,`data signature does not match function ${t.name}.`,"data",e),this._decodeParams(t.inputs,ma(e,4))}encodeFunctionData(t,e){if("string"==typeof t){const e=this.getFunction(t);na(e,"unknown function","fragment",t),t=e}return pa([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionResult(t,e){if("string"==typeof t){const e=this.getFunction(t);na(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,Ct).decode(t.outputs,r)}catch(s){n="could not decode result data"}ea(!1,n,"BAD_DATA",{value:fa(r),info:{method:t.name,signature:t.format()}})}makeError(t,e){const n=ca(t,"data"),r=_g.getBuiltinCallException("call",e,n);if(r.message.startsWith("execution reverted (unknown custom error)")){const t=fa(n.slice(0,4)),e=this.getError(t);if(e)try{const t=Pn(this,Ct).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);na(e,"unknown function","fragment",t),t=e}return fa(Pn(this,Ct).encode(t.outputs,e||[]))}encodeFilterTopics(t,e){if("string"==typeof t){const e=this.getEvent(t);na(e,"unknown event","eventFragment",t),t=e}ea(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?Zd(e):"bytes"===t.type?Wl(fa(e)):("bool"===t.type&&"boolean"==typeof e?e=e?"0x01":"0x00":t.type.match(/^u?int/)?e=Oa(e):t.type.match(/^bytes/)?e=ba(e,32):"address"===t.type&&Pn(this,Ct).encode(["address"],[e]),wa(fa(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?na(!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)):na(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);na(e,"unknown event","eventFragment",t),t=e}const n=[],r=[],s=[];return t.anonymous||n.push(t.topicHash),na(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(Zd(o));else if("bytes"===t.type)n.push(Wl(o));else{if("tuple"===t.baseType||"array"===t.baseType)throw new Error("not implemented");n.push(Pn(this,Ct).encode([t.type],[o]))}else r.push(t),s.push(o)})),{data:Pn(this,Ct).encode(r,s),topics:n}}decodeEventLog(t,e,n){if("string"==typeof t){const e=this.getEvent(t);na(e,"unknown event","eventFragment",t),t=e}if(null!=n&&!t.anonymous){const e=t.topicHash;na(ua(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(ag.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,Ct).decode(r,pa(n)):null,a=Pn(this,Ct).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 Tg(null);else if(i[e])n=new Tg(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)})),Sc.fromItems(c,l)}parseTransaction(t){const e=ca(t.data,"tx.data"),n=Sa(null!=t.value?t.value:0,"tx.value"),r=this.getFunction(fa(e.slice(0,4)));if(!r)return null;const s=Pn(this,Ct).decode(r.inputs,e.slice(4));return new kg(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 Eg(e,e.topicHash,this.decodeEventLog(e,t.data,t.topics))}parseError(t){const e=fa(t),n=this.getError(ma(e,0,4));if(!n)return null;const r=Pn(this,Ct).decode(n.inputs,ma(e,4));return new Sg(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 Og=BigInt(0);function xg(t){return null==t?null:t}function Ng(t){return null==t?null:t.toString()}class Pg{constructor(t,e,n){xn(this,"gasPrice"),xn(this,"maxFeePerGas"),xn(this,"maxPriorityFeePerGas"),Qo(this,{gasPrice:xg(t),maxFeePerGas:xg(e),maxPriorityFeePerGas:xg(n)})}toJSON(){const{gasPrice:t,maxFeePerGas:e,maxPriorityFeePerGas:n}=this;return{_type:"FeeData",gasPrice:Ng(t),maxFeePerGas:Ng(e),maxPriorityFeePerGas:Ng(n)}}}function Bg(t){const e={};t.to&&(e.to=t.to),t.from&&(e.from=t.from),t.data&&(e.data=fa(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]=Sa(t[s],`request.${s}`));const r="type,nonce".split(/,/);for(const s of r)s in t&&null!=t[s]&&(e[s]=Ia(t[s],`request.${s}`));return t.accessList&&(e.accessList=Id(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=>ha(t)?fa(t):Object.assign({},t)))),e}class Dg{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"),Bn(this,Pt,void 0),Dn(this,Pt,t.transactions.map((t=>"string"!=typeof t?new Mg(t,e):t))),Qo(this,{provider:e,hash:xg(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:xg(t.prevRandao),extraData:t.extraData,baseFeePerGas:xg(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?[]:(ea("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:Ng(t),difficulty:Ng(e),extraData:n,gasLimit:Ng(r),gasUsed:Ng(s),blobGasUsed:Ng(this.blobGasUsed),excessBlobGas:Ng(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;na(!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 Ug{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());Qo(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 ea(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransaction(){const t=await this.provider.getTransaction(this.transactionHash);return ea(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransactionReceipt(){const t=await this.provider.getTransactionReceipt(this.transactionHash);return ea(!!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 Lg{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"),Bn(this,Bt,void 0),Dn(this,Bt,Object.freeze(t.logs.map((t=>new Ug(t,e)))));let n=Og;null!=t.effectiveGasPrice?n=t.effectiveGasPrice:null!=t.gasPrice&&(n=t.gasPrice),Qo(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,Bt)}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:Ng(this.cumulativeGasUsed),from:e,gasPrice:Ng(this.gasPrice),blobGasUsed:Ng(this.blobGasUsed),blobGasPrice:Ng(this.blobGasPrice),gasUsed:Ng(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 jg(this)}reorderedEvent(t){return ea(!t||t.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),Fg(this,t)}}Bt=new WeakMap;Dt=new WeakMap;let Mg=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"),Bn(this,Dt,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,Dn(this,Dt,-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:Ng(this.chainId),data:c,from:o,gasLimit:Ng(this.gasLimit),gasPrice:Ng(this.gasPrice),hash:r,maxFeePerGas:Ng(this.maxFeePerGas),maxPriorityFeePerGas:Ng(this.maxPriorityFeePerGas),maxFeePerBlobGas:Ng(this.maxFeePerBlobGas),nonce:a,signature:l,to:i,index:n,type:s,value:Ng(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 Jo({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,Dt),i=-1,o=-1===s;const a=async()=>{if(o)return null;const{blockNumber:t,nonce:e}=await Jo({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,Dt)&&(i=Pn(this,Dt)));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===Og&&(r="cancelled"),ea(!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;ea(!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(ta("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(Zo(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 ea(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),jg(this)}reorderedEvent(t){return ea(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),ea(!t||t.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Fg(this,t)}replaceableTransaction(e){na(Number.isInteger(e)&&e>=0,"invalid startBlock","startBlock",e);const n=new t(this,this.provider);return Dn(n,Dt,e),n}};function Fg(t,e){return{orphan:"reorder-transaction",tx:t,other:e}}function jg(t){return{orphan:"drop-transaction",tx:t}}class Gg extends Ug{constructor(t,e,n){super(t,t.provider),xn(this,"interface"),xn(this,"fragment"),xn(this,"args");Qo(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 Hg extends Ug{constructor(t,e){super(t,t.provider),xn(this,"error"),Qo(this,{error:e})}}class Wg extends Lg{constructor(t,e,n){super(n,e),Bn(this,Ut,void 0),Dn(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 Gg(t,Pn(this,Ut),e)}catch(n){return new Hg(t,n)}return t}))}}Ut=new WeakMap;class Vg extends Mg{constructor(t,e,n){super(n,e),Bn(this,Lt,void 0),Dn(this,Lt,t)}async wait(t,e){const n=await super.wait(t,e);return null==n?null:new Wg(Pn(this,Lt),this.provider,n)}}Lt=new WeakMap;class Kg extends Fa{constructor(t,e,n,r){super(t,e,n),xn(this,"log"),Qo(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 zg extends Kg{constructor(t,e,n,r,s){super(t,e,n,new Gg(s,t.interface,r));Qo(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 qg=BigInt(0);function $g(t){return t&&"function"==typeof t.call}function Jg(t){return t&&"function"==typeof t.estimateGas}function Qg(t){return t&&"function"==typeof t.resolveName}function Yg(t){return t&&"function"==typeof t.sendTransaction}function Zg(t){if(null!=t){if(Qg(t))return t;if(t.provider)return t.provider}}class Xg{constructor(t,e,n){if(Bn(this,Mt,void 0),xn(this,"fragment"),Qo(this,{fragment:e}),e.inputs.length<n.length)throw new Error("too many arguments");const r=tm(t.runner,"resolveName"),s=Qg(r)?r:null;Dn(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=>id(t,s)))):id(e,s):e)))));return t.interface.encodeFilterTopics(e,r)}())}getTopicFilter(){return Pn(this,Mt)}}function tm(t,e){return null==t?null:"function"==typeof t[e]?t:t.provider&&"function"==typeof t.provider[e]?t.provider:null}function em(t){return null==t?null:t.provider||null}async function nm(t,e){const n=ud.dereference(t,"overrides");na("object"==typeof n,"invalid overrides parameter","overrides",t);const r=Bg(n);return na(null==r.to||(e||[]).indexOf("to")>=0,"cannot override to","overrides.to",r.to),na(null==r.data||(e||[]).indexOf("data")>=0,"cannot override data","overrides.data",r.data),r.from&&(r.from=r.from),r}function rm(t){const e=async function(e){const n=await nm(e,["data"]);n.to=await t.getAddress(),n.from&&(n.from=await id(n.from,Zg(t.runner)));const r=t.interface,s=Sa(n.value||qg,"overrides.value")===qg,i="0x"===(n.data||"0x");!r.fallback||r.fallback.payable||!r.receive||i||s||na(!1,"cannot send data to receive or send value to non-payable fallback","overrides",e),na(r.fallback||i,"cannot send data to receive-only contract","overrides.data",n.data);return na(r.receive||r.fallback&&r.fallback.payable||s,"cannot send value to non-payable fallback","overrides.value",n.value),na(r.fallback||i,"cannot send data to receive-only contract","overrides.data",n.data),n},n=async function(n){const r=t.runner;ea(Yg(r),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const s=await r.sendTransaction(await e(n)),i=em(t.runner);return new Vg(t.interface,i,s)},r=async t=>await n(t);return Qo(r,{_contract:t,estimateGas:async function(n){const r=tm(t.runner,"estimateGas");return ea(Jg(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=tm(t.runner,"call");ea($g(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(Xo(i)&&i.data)throw t.interface.makeError(i.data,s);throw i}}}),r}function sm(t,e){const n=function(...n){const r=t.interface.getFunction(e,n);return ea(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 nm(e.pop()),s.from&&(s.from=await id(s.from,Zg(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=tm(t,"resolveName"),s=Qg(r)?r:null;return await Promise.all(e.map(((t,e)=>t.walkAsync(n[e],((t,e)=>(e=ud.dereference(e,t),"address"===t?id(e,s):e))))))}(t.runner,r.inputs,e);return Object.assign({},s,await Jo({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;ea(Yg(n),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const s=await n.sendTransaction(await r(...e)),i=em(t.runner);return new Vg(t.interface,i,s)},o=async function(...e){const s=tm(t.runner,"call");ea($g(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(Xo(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 Qo(a,{name:t.interface.getFunctionName(e),_contract:t,_key:e,getFragment:n,estimateGas:async function(...e){const n=tm(t.runner,"estimateGas");return ea(Jg(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 ea(n,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),n}}),a}Mt=new WeakMap;const im=Symbol.for("_ethersInternal_contract"),om=new WeakMap;function am(t){return om.get(t[im])}async function cm(t,e){let n,r=null;if(Array.isArray(e)){const r=function(e){if(ua(e,32))return e;const n=t.interface.getEvent(e);return na(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?ua(e,32)?n=[e]:(r=t.interface.getEvent(e),na(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]):na(!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}=am(t);return n.get((await cm(t,e)).tag)||null}async function um(t,e,n){const r=em(t.runner);ea(r,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:e});const{fragment:s,tag:i,topics:o}=await cm(t,n),{addr:a,subs:c}=am(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):[];dm(t,n,o,(r=>new zg(t,r,n,i,e)))}else dm(t,n,[],(r=>new Kg(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 hm=Promise.resolve();async function dm(t,e,n,r){try{await hm}catch(i){}const s=async function(t,e,n,r){await hm;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(),am(t).subs.delete(s.tag)),o>0}(t,e,n,r);return hm=s,await s}const fm=["then"];Ft=im;let pm=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"),na("string"==typeof t||rd(t),"invalid value for Contract target","target",t),null==n&&(n=null);const s=Ig.from(e);let i;Qo(this,{target:t,runner:n,interface:s}),Object.defineProperty(this,im,{value:{}});let o=null,a=null;if(r){const t=em(n);a=new Vg(this.interface,t,r)}let c=new Map;if("string"==typeof t)if(ua(t))o=t,i=Promise.resolve(t);else{const e=tm(n,"resolveName");if(!Qg(e))throw ta("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});i=e.resolveName(t).then((e=>{if(null==e)throw ta("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:t});return am(this).addr=e,e}))}else i=t.getAddress().then((t=>{if(null==t)throw new Error("TODO");return am(this).addr=t,t}));var l,u;l=this,u={addrPromise:i,addr:o,deployTx:a,subs:c},om.set(l[im],u);return Qo(this,{filters:new Proxy({},{get:(t,e,n)=>{if("symbol"==typeof e||fm.indexOf(e)>=0)return Reflect.get(t,e,n);try{return this.getEvent(e)}catch(r){if(!Zo(r,"INVALID_ARGUMENT")||"key"!==r.argument)throw r}},has:(t,e)=>fm.indexOf(e)>=0?Reflect.has(t,e):Reflect.has(t,e)||this.interface.hasEvent(String(e))})}),Qo(this,{fallback:s.receive||s.fallback?rm(this):null}),new Proxy(this,{get:(t,e,n)=>{if("symbol"==typeof e||e in t||fm.indexOf(e)>=0)return Reflect.get(t,e,n);try{return t.getFunction(e)}catch(r){if(!Zo(r,"INVALID_ARGUMENT")||"key"!==r.argument)throw r}},has:(t,e)=>"symbol"==typeof e||e in t||fm.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 am(this).addrPromise}async getDeployedCode(){const t=em(this.runner);ea(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=em(this.runner);return ea(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 am(this).deployTx}getFunction(t){"string"!=typeof t&&(t=t.format());return sm(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 ea(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:n}}),r},r=function(...e){return new Xg(t,n(...e),e)};return Qo(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 ea(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}=am(this),i=r||await s,{fragment:o,topics:a}=await cm(this,t),c={address:i,topics:a,fromBlock:e,toBlock:n},l=em(this.runner);return ea(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 Gg(t,this.interface,e)}catch(n){return new Hg(t,n)}return new Ug(t,l)}))}async on(t,e){const n=await um(this,"on",t);return n.listeners.push({listener:e,once:!1}),n.start(),this}async once(t,e){const n=await um(this,"once",t);return n.listeners.push({listener:e,once:!0}),n.start(),this}async emit(t,...e){return await dm(this,t,e,null)}async listenerCount(t){if(t){const e=await lm(this,t);return e?e.listeners.length:0}const{subs:e}=am(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}=am(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(),am(this).subs.delete(n.tag)),this}async removeAllListeners(t){if(t){const e=await lm(this,t);if(!e)return this;e.stop(),am(this).subs.delete(e.tag)}else{const{subs:t}=am(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 gm extends(function(){return pm}()){}const mm=BigInt(60);function ym(t){return t.match(/^ipfs:\/\/ipfs\//i)?t=t.substring(12):t.match(/^ipfs:\/\//i)?t=t.substring(7):na(!1,"unsupported IPFS format","link",t),`https://gateway.ipfs.io/ipfs/${t}`}class wm{constructor(t){xn(this,"name"),Qo(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 bm=new RegExp("^(ipfs)://(.*)$","i"),Am=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),bm,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function vm(t){return t===mm||t>=2147483648&&t<=4294967295}const _m=class t{constructor(t,e,n,r){Bn(this,Ht),xn(this,"provider"),xn(this,"address"),xn(this,"name"),Bn(this,jt,void 0),Bn(this,Gt,void 0),Qo(this,{provider:t,address:e,name:n}),Dn(this,jt,null!=r?Promise.resolve(r):null),Dn(this,Gt,new gm(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,jt)&&Dn(this,jt,(async()=>{try{return await Pn(this,Gt).supportsInterface("0x9061b923")}catch(t){if(Zo(t,"CALL_EXCEPTION"))return!1;throw Dn(this,jt,null),t}})()),await Pn(this,jt)}async getAddress(t){const e=null==t?mm:Sa(t);if(e===mm)try{const t=await Ln(this,Ht,Wt).call(this,"addr(bytes32)");return null==t||t===Uh?null:t}catch(s){if(Zo(s,"CALL_EXCEPTION"))return null;throw s}if(vm(e)){const t=await Ln(this,Ht,Wt).call(this,"addr(bytes32,uint)",[e]);return ua(t,20)?nd(t):null}if(e>=0&&e<2147483648){let t=e+BigInt(2147483648);const n=await Ln(this,Ht,Wt).call(this,"addr(bytes32,uint)",[t]);if(ua(n,20))return nd(n)}let n=null;for(const i of this.provider.plugins)if(i instanceof wm&&e<=2147483648&&i.supportsCoinType(Number(e))){n=i;break}if(null==n)return null;const r=await Ln(this,Ht,Wt).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}ea(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${e})`,info:{coinType:e,data:r}})}async getText(t){const e=await Ln(this,Ht,Wt).call(this,"text(bytes32,string)",[t]);return null==e||"0x"===e?null:e}async getContentHash(){const t=await Ln(this,Ht,Wt).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}://${Ma("0x"+e[2])}`}const n=t.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return`bzz://${n[1]}`;ea(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:t}})}async getName(){return await Ln(this,Ht,Wt).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<Am.length;s++){const i=r.match(Am[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=ym(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 gm(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}",Oa(l,32).substring(2)),t.push({type:"metadata-url-expanded",value:h})),h.match(/^ipfs:/i)&&(h=ym(h)),t.push({type:"metadata-url",value:h});let d={};const f=await new nc(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:fa(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(bm))return t.push({type:"!imageUrl-ipfs",value:p}),{url:null,linkage:t};t.push({type:"imageUrl-ipfs",value:p}),p=ym(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 ea(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?mm:Sa(r);vm(s)&&(n=nd(n));const i=await km(e);if(i)try{const t=(await i.reverse(n,s,{enableCcipRead:!0})).primary;return ap(t)?t:null}catch(o){if(Zo(o,"CALL_EXCEPTION")&&"ResolverNotFound(bytes)"===o.reason)return null;throw o}ea(s===mm,"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||!ap(s))return null;return await e.resolveName(s)!==n?null:s}catch(a){if(Zo(a,"BAD_DATA")&&"0x"===a.value)return null;if(Zo(a,"CALL_EXCEPTION"))return null;throw a}}static async fromName(e,n){var r;const s=await km(e);if(s){let r;try{r=lp(op(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,Vt,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(".")}}};jt=new WeakMap,Gt=new WeakMap,Ht=new WeakSet,Wt=async function(t,e){e=(e||[]).slice();const n=Pn(this,Gt).interface;e.unshift(cp(this.name));let r=null;await this.supportsWildcard()&&(r=n.getFunction(t),ea(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,Gt)[t](...e);return r?n.decodeFunctionResult(r,s)[0]:s}catch(s){if(!Zo(s,"CALL_EXCEPTION"))throw s}return null},Vt=new WeakSet,Kt=async function(t,e){const n=await _m.getEnsAddress(t);try{const r=new gm(n,["function resolver(bytes32) view returns (address)"],t),s=await r.resolver(cp(e),{enableCcipRead:!0});return s===Uh?null:s}catch(r){throw r}return null},Bn(_m,Vt);let Em=_m;async function km(t){const e=await Em.getUniversalResolverAddress(t);return e?new gm(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 Sm=BigInt(0);function Tm(t,e){return function(n){return null==n?e:t(n)}}function Rm(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 Cm(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){ea(!1,`invalid value for value.${i} (${s instanceof Error?s.message:"not-an-error"})`,"BAD_DATA",{value:n})}}return r}}function Im(t){return na(ua(t,!0),"invalid data","value",t),t}function Om(t){return na(ua(t,32),"invalid hash","value",t),t}const xm=Cm({address:nd,blockHash:Om,blockNumber:Ia,data:Im,index:Ia,removed:Tm((function(t){switch(t){case!0:case"true":return!0;case!1:case"false":return!1}na(!1,`invalid boolean; ${JSON.stringify(t)}`,"value",t)}),!1),topics:Rm(Om),transactionHash:Om,transactionIndex:Ia},{index:["logIndex"]});const Nm=Cm({hash:Tm(Om),parentHash:Om,parentBeaconBlockRoot:Tm(Om,null),number:Ia,timestamp:Ia,nonce:Tm(Im),difficulty:Sa,gasLimit:Sa,gasUsed:Sa,stateRoot:Tm(Om,null),receiptsRoot:Tm(Om,null),transactionsRoot:Tm(Om,null),blobGasUsed:Tm(Sa,null),excessBlobGas:Tm(Sa,null),miner:Tm(nd),prevRandao:Tm(Om,null),extraData:Im,baseFeePerGas:Tm(Sa)},{prevRandao:["mixHash"]});const Pm=Cm({transactionIndex:Ia,blockNumber:Ia,transactionHash:Om,address:nd,topics:Rm(Om),data:Im,index:Ia,blockHash:Om},{index:["logIndex"]});const Bm=Cm({to:Tm(nd,null),from:Tm(nd,null),contractAddress:Tm(nd,null),index:Ia,root:Tm(fa),gasUsed:Sa,blobGasUsed:Tm(Sa,null),logsBloom:Tm(Im),blockHash:Om,hash:Om,logs:Rm((function(t){return Pm(t)})),blockNumber:Ia,cumulativeGasUsed:Sa,effectiveGasPrice:Tm(Sa),blobGasPrice:Tm(Sa,null),status:Tm(Ia),type:Tm(Ia,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function Dm(t){t.to&&Sa(t.to)===Sm&&(t.to="0x0000000000000000000000000000000000000000");const e=Cm({hash:Om,index:Tm(Ia,void 0),type:t=>"0x"===t||null==t?0:Ia(t),accessList:Tm(Id,null),blobVersionedHashes:Tm(Rm(Om,!0),null),authorizationList:Tm(Rm((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:nd(t.address),chainId:Sa(t.chainId),nonce:Sa(t.nonce),signature:Jh.from(e)}}),!1),null),blockHash:Tm(Om,null),blockNumber:Tm(Ia,null),transactionIndex:Tm(Ia,null),from:nd,gasPrice:Tm(Sa),maxPriorityFeePerGas:Tm(Sa),maxFeePerGas:Tm(Sa),maxFeePerBlobGas:Tm(Sa,null),gasLimit:Sa,to:Tm(nd,null),value:Sa,nonce:Ia,data:Im,creates:Tm(nd,null),chainId:Tm(Sa,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(t);if(null==e.to&&null==e.creates&&(e.creates=function(t){const e=nd(t.from);let n=Sa(t.nonce,"tx.nonce").toString(16);return n="0"===n?"0x":n.length%2?"0x0"+n:"0x"+n,nd(ma(Wl(pc([e,n])),12))}(e)),1!==t.type&&2!==t.type||null!=t.accessList||(e.accessList=[]),t.signature?e.signature=Jh.from(t.signature):e.signature=Jh.from(t),null==e.chainId){const t=e.signature.legacyChainId;null!=t&&(e.chainId=t)}return e.blockHash&&Sa(e.blockHash)===Sm&&(e.blockHash=null),e}const Um=Symbol.for("nodejs.util.inspect.custom");class Lm{constructor(t){xn(this,"name"),Qo(this,{name:t})}[Um](){return this.toString()}toString(){return`${this.name} { }`}clone(){return new Lm(this.name)}}class Mm extends Lm{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),na("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),Qo(this,n)}toString(){return`${this.name} { txBase: ${this.txBase}, txCreate: ${this.txCreate}, txDataZero: ${this.txDataZero}, txAccessListStorageKey: ${this.txAccessListStorageKey}, txAccessListAddress: ${this.txAccessListAddress} }`}clone(){return new Mm(this.effectiveBlock,this)}}class Fm extends Lm{constructor(t,e,n){super("org.ethers.plugins.network.Ens"),xn(this,"address"),xn(this,"targetNetwork"),xn(this,"universalResolver"),Qo(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 Fm(this.address,this.targetNetwork,this.universalResolver)}}class jm extends Lm{constructor(t,e){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin"),Bn(this,zt,void 0),Bn(this,qt,void 0),Dn(this,zt,t),Dn(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 Gm=Symbol.for("nodejs.util.inspect.custom"),Hm=new Map;$t=new WeakMap,Jt=new WeakMap,Qt=new WeakMap;let Wm=class t{constructor(t,e){Bn(this,$t,void 0),Bn(this,Jt,void 0),Bn(this,Qt,void 0),Dn(this,$t,t),Dn(this,Jt,Sa(e)),Dn(this,Qt,new Map)}[Gm](){return this.toString()}toString(){const t=[];for(const e of Pn(this,Qt).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){Dn(this,$t,t)}get chainId(){return Pn(this,Jt)}set chainId(t){Dn(this,Jt,Sa(t,"chainId"))}matches(t){if(null==t)return!1;if("string"==typeof t){try{return this.chainId===Sa(t)}catch(e){}return this.name===t}if("number"==typeof t||"bigint"==typeof t){try{return this.chainId===Sa(t)}catch(e){}return!1}if("object"==typeof t){if(null!=t.chainId){try{return this.chainId===Sa(t.chainId)}catch(e){}return!1}return null!=t.name&&this.name===t.name}return!1}get plugins(){return Array.from(Pn(this,Qt).values())}attachPlugin(t){if(Pn(this,Qt).get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return Pn(this,Qt).set(t.name,t.clone()),this}getPlugin(t){return Pn(this,Qt).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 Mm;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=Id(t.accessList);for(const t in r)n+=e.txAccessListAddress+e.txAccessListStorageKey*r[t].storageKeys.length}return n}static from(e){if(function(){if(zm)return;function t(t,e,n){const r=function(){const r=new Wm(t,e);return null!=n.ensNetwork&&r.attachPlugin(new Fm(null,n.ensNetwork,n.ensUniversalResolver)),r.attachPlugin(new Mm),(n.plugins||[]).forEach((t=>{r.attachPlugin(t)})),r};Wm.register(t,r),Wm.register(e,r),n.altNames&&n.altNames.forEach((t=>{Wm.register(t,r)}))}zm=!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:[Km("https://gasstation.polygon.technology/v2")]}),t("matic-amoy",80002,{}),t("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[Km("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=Hm.get(e);if(n)return n();if("bigint"==typeof e)return new t("unknown",e);na(!1,"unknown network","network",e)}if("function"==typeof e.clone){return e.clone()}if("object"==typeof e){na("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 Fm(r.ensAddress,r.ensNetwork,r.ensUniversalResolver)),n}na(!1,"invalid network","network",e)}static register(t,e){"number"==typeof t&&(t=BigInt(t));const n=Hm.get(t);n&&na(!1,`conflicting network for ${JSON.stringify(n.name)}`,"nameOrChainId",t),Hm.set(t,e)}};function Vm(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 Km(t){return new jm(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:Vm(i.maxFee,9),maxPriorityFeePerGas:Vm(i.maxPriorityFee,9)}}catch(s){ea(!1,`error encountered with polygon gas station (${JSON.stringify(n.url)})`,"SERVER_ERROR",{request:n,response:r,error:s})}}))}let zm=!1;function qm(t){return JSON.parse(JSON.stringify(t))}class $m{constructor(t){Bn(this,ee),Bn(this,Yt,void 0),Bn(this,Zt,void 0),Bn(this,Xt,void 0),Bn(this,te,void 0),Dn(this,Yt,t),Dn(this,Zt,null),Dn(this,Xt,4e3),Dn(this,te,-2)}get pollingInterval(){return Pn(this,Xt)}set pollingInterval(t){Dn(this,Xt,t)}start(){Pn(this,Zt)||(Dn(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)),Dn(this,Zt,null))}pause(t){this.stop(),t&&Dn(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 Dn(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)}Dn(this,te,t)}}catch(t){}null!=Pn(this,Zt)&&Dn(this,Zt,Pn(this,Yt)._setTimeout(Ln(this,ee,ne).bind(this),Pn(this,Xt)))};class Jm{constructor(t){Bn(this,re,void 0),Bn(this,se,void 0),Bn(this,ie,void 0),Dn(this,re,t),Dn(this,ie,!1),Dn(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)||(Dn(this,ie,!0),Pn(this,se).call(this,-2),Pn(this,re).on("block",Pn(this,se)))}stop(){Pn(this,ie)&&(Dn(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 Qm extends Jm{constructor(t,e){super(t),Bn(this,oe,void 0),Bn(this,ae,void 0),Dn(this,oe,e),Dn(this,ae,-2)}pause(t){t&&Dn(this,ae,-2),super.pause(t)}async _poll(t,e){const n=await e.getBlock(Pn(this,oe));null!=n&&(-2===Pn(this,ae)?Dn(this,ae,n.number):n.number>Pn(this,ae)&&(e.emit(Pn(this,oe),n.number),Dn(this,ae,n.number)))}}oe=new WeakMap,ae=new WeakMap;class Ym extends Jm{constructor(t,e){super(t),Bn(this,ce,void 0),Dn(this,ce,qm(e))}async _poll(t,e){throw new Error("@TODO")}}ce=new WeakMap;class Zm extends Jm{constructor(t,e){super(t),Bn(this,le,void 0),Dn(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 Xm{constructor(t,e){Bn(this,ge),Bn(this,ue,void 0),Bn(this,he,void 0),Bn(this,de,void 0),Bn(this,fe,void 0),Bn(this,pe,void 0),Dn(this,ue,t),Dn(this,he,qm(e)),Dn(this,de,Ln(this,ge,me).bind(this)),Dn(this,fe,!1),Dn(this,pe,-2)}start(){Pn(this,fe)||(Dn(this,fe,!0),-2===Pn(this,pe)&&Pn(this,ue).getBlockNumber().then((t=>{Dn(this,pe,t)})),Pn(this,ue).on("block",Pn(this,de)))}stop(){Pn(this,fe)&&(Dn(this,fe,!1),Pn(this,ue).off("block",Pn(this,de)))}pause(t){this.stop(),t&&Dn(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=qm(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),Dn(this,pe,r.blockNumber);else Pn(this,pe)<t-60&&Dn(this,pe,t-60)};const ty=BigInt(2);function ey(t){return new Promise((e=>{setTimeout(e,t)}))}function ny(t){return t&&"function"==typeof t.then}function ry(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 sy{constructor(t){xn(this,"name"),Qo(this,{name:t})}start(){}stop(){}pause(t){}resume(){}}function iy(t){return(t=Array.from(new Set(t).values())).sort(),t}async function oy(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(ua(t,32)){const e=t.toLowerCase();return{type:"transaction",tag:ry("tx",{hash:e}),hash:e}}if(t.orphan){const e=t;return{type:"orphan",tag:ry("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)?iy(t.map((t=>t.toLowerCase()))):t.toLowerCase()))};if(n.address){const t=[],s=[],i=n=>{ua(n)?t.push(n):s.push((async()=>{t.push(await id(n,e))})())};Array.isArray(n.address)?n.address.forEach(i):i(n.address),s.length&&await Promise.all(s),r.address=iy(t.map((t=>t.toLowerCase())))}return{filter:r,tag:ry("event",r),type:"event"}}na(!1,"unknown ProviderEvent","event",t)}function ay(){return(new Date).getTime()}const cy={cacheTimeout:250,pollingInterval:4e3};class ly{constructor(t,e){if(Bn(this,xe),Bn(this,Pe),Bn(this,De),Bn(this,Le),Bn(this,Fe),Bn(this,Ge),Bn(this,We),Bn(this,Ke),Bn(this,ye,void 0),Bn(this,we,void 0),Bn(this,be,void 0),Bn(this,Ae,void 0),Bn(this,ve,void 0),Bn(this,_e,void 0),Bn(this,Ee,void 0),Bn(this,ke,void 0),Bn(this,Se,void 0),Bn(this,Te,void 0),Bn(this,Re,void 0),Bn(this,Ce,void 0),Bn(this,Ie,void 0),Bn(this,Oe,void 0),Dn(this,Oe,Object.assign({},cy,e||{})),"any"===t)Dn(this,_e,!0),Dn(this,ve,null);else if(t){const e=Wm.from(t);Dn(this,_e,!1),Dn(this,ve,Promise.resolve(e)),setTimeout((()=>{this.emit("network",e,null)}),0)}else Dn(this,_e,!1),Dn(this,ve,null);Dn(this,ke,-1),Dn(this,Ee,new Map),Dn(this,ye,new Map),Dn(this,we,new Map),Dn(this,be,null),Dn(this,Ae,!1),Dn(this,Se,1),Dn(this,Te,new Map),Dn(this,Re,!1),Dn(this,Ce,0),Dn(this,Ie,[])}get _requestRate(){const t=Pn(this,Ce);return 0==t?null:t}set _requestRate(t){(null==t||t<0)&&(t=0),Dn(this,Ce,Ia(t))}get pollingInterval(){return Pn(this,Oe).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){Dn(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 nc(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){}ea(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)}ea(!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 Dg(function(t){const e=Nm(t);return e.transactions=t.transactions.map((t=>"string"==typeof t?t:Dm(t))),e}(t),this)}_wrapLog(t,e){return new Ug(function(t){return xm(t)}(t),this)}_wrapTransactionReceipt(t,e){return new Lg(function(t){return Bm(t)}(t),this)}_wrapTransactionResponse(t,e){return new Mg(Dm(t),this)}_detectNetwork(){ea(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(t){ea(!1,`unsupported method: ${t.method}`,"UNSUPPORTED_OPERATION",{operation:t.method,info:t})}async getBlockNumber(){const t=Ia(await Ln(this,Pe,Be).call(this,{method:"getBlockNumber"}),"%response");return Pn(this,ke)>=0&&Dn(this,ke,t),t}_getAddress(t){return id(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 ua(t)?ua(t,32)?t:Na(t):("bigint"==typeof t&&(t=Ia(t,"blockTag")),"number"==typeof t?t>=0?Na(t):Pn(this,ke)>=0?Na(Pn(this,ke)+t):this.getBlockNumber().then((e=>Na(e+t))):void na(!1,"invalid blockTag","blockTag",t))}_getFilter(t){const e=(t.topics||[]).map((t=>null==t?null:Array.isArray(t)?iy(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=Bg(t),n=[];if(["to","from"].forEach((t=>{if(null==e[t])return;const r=id(e[t],this);ny(r)?n.push(async function(){e[t]=await r}()):e[t]=r})),null!=e.blockTag){const t=this._getBlockTag(e.blockTag);ny(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,ve)){const t=(async()=>{try{const t=await this._detectNetwork();return this.emit("network",t,null),t}catch(e){throw Pn(this,ve)===t&&Dn(this,ve,null),e}})();return Dn(this,ve,t),(await t).clone()}const t=Pn(this,ve),[e,n]=await Promise.all([t,this._detectNetwork()]);return e.chainId!==n.chainId&&(Pn(this,_e)?(this.emit("network",n,e),Pn(this,ve)===t&&Dn(this,ve,Promise.resolve(n))):ea(!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 Jo({_block:Ln(this,Ge,He).call(this,"latest",!1),gasPrice:(async()=>{try{return Sa(await Ln(this,Pe,Be).call(this,{method:"getGasPrice"}),"%response")}catch(t){}return null})(),priorityFee:(async()=>{try{return Sa(await Ln(this,Pe,Be).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*ty+i),new Pg(n,s,i)},n=t.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(n){const t=new nc(n.url),r=await n.processFunc(e,this,t);return new Pg(r.gasPrice,r.maxFeePerGas,r.maxPriorityFeePerGas)}return await e()}async estimateGas(t){let e=this._getTransactionRequest(t);return ny(e)&&(e=await e),Sa(await Ln(this,Pe,Be).call(this,{method:"estimateGas",transaction:e}),"%response")}async call(t){const{tx:e,blockTag:n}=await Jo({tx:this._getTransactionRequest(t),blockTag:this._getBlockTag(t.blockTag)});return await Ln(this,Le,Me).call(this,Ln(this,De,Ue).call(this,e,n,t.enableCcipRead?0:-1))}async getBalance(t,e){return Sa(await Ln(this,Fe,je).call(this,{method:"getBalance"},t,e),"%response")}async getTransactionCount(t,e){return Ia(await Ln(this,Fe,je).call(this,{method:"getTransactionCount"},t,e),"%response")}async getCode(t,e){return fa(await Ln(this,Fe,je).call(this,{method:"getCode"},t,e))}async getStorage(t,e,n){const r=Sa(e,"position");return fa(await Ln(this,Fe,je).call(this,{method:"getStorage",position:r},t,n))}async broadcastTransaction(t){const{blockNumber:e,hash:n,network:r}=await Jo({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:t}),network:this.getNetwork()}),s=Yd.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 Jo({network:this.getNetwork(),params:Ln(this,Ge,He).call(this,t,!!e)});return null==r?null:this._wrapBlock(r,n)}async getTransaction(t){const{network:e,params:n}=await Jo({network:this.getNetwork(),params:Ln(this,Pe,Be).call(this,{method:"getTransaction",hash:t})});return null==n?null:this._wrapTransactionResponse(n,e)}async getTransactionReceipt(t){const{network:e,params:n}=await Jo({network:this.getNetwork(),params:Ln(this,Pe,Be).call(this,{method:"getTransactionReceipt",hash:t})});if(null==n)return null;if(null==n.gasPrice&&null==n.effectiveGasPrice){const e=await Ln(this,Pe,Be).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 Jo({network:this.getNetwork(),result:Ln(this,Pe,Be).call(this,{method:"getTransactionResult",hash:t})});return null==e?null:fa(e)}async getLogs(t){let e=this._getFilter(t);ny(e)&&(e=await e);const{network:n,params:r}=await Jo({network:this.getNetwork(),params:Ln(this,Pe,Be).call(this,{method:"getLogs",filter:e})});return r.map((t=>this._wrapLog(t,n)))}_getProvider(t){ea(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(t){return await Em.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 Em.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(ta("timeout","TIMEOUT",{reason:"timeout"})))}),n)),o(await this.getBlockNumber())}))}async waitForBlock(t){ea(!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:ay()})}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 sy(t.type);case"block":{const t=new $m(this);return t.pollingInterval=this.pollingInterval,t}case"safe":case"finalized":return new Qm(this,t.type);case"event":return new Xm(this,t.filter);case"transaction":return new Zm(this,t.hash);case"orphan":return new Ym(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,We,Ve).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 Fa(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,We,Ve).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,We,Ve).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,We,Ve).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);Dn(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(Dn(this,ke,-1),null!=Pn(this,be)){if(Pn(this,be)==!!t)return;ea(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber((e=>e.pause(t))),Dn(this,be,!!t);for(const e of Pn(this,Te).values())e.timer&&clearTimeout(e.timer),e.time=ay()-e.time}resume(){if(null!=Pn(this,be)){this._forEachSubscriber((t=>t.resume())),Dn(this,be,null);for(const t of Pn(this,Te).values()){let e=t.time;e<0&&(e=0),t.time=ay(),setTimeout(t.func,e)}}}}function uy(t,e){try{const n=hy(t,e);if(n)return Wa(n)}catch(n){}return null}function hy(t,e){if("0x"===t)return null;try{const n=Ia(ma(t,e,e+32)),r=Ia(ma(t,n,n+32));return ma(t,n+32,n+32+r)}catch(n){}return null}function dy(t){const e=xa(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 fy(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,ve=new WeakMap,_e=new WeakMap,Ee=new WeakMap,ke=new WeakMap,Se=new WeakMap,Te=new WeakMap,Re=new WeakMap,Ce=new WeakMap,Ie=new WeakMap,Oe=new WeakMap,xe=new WeakSet,Ne=function(){let t=Pn(this,Ce);if(0===t)return 0;const e=Pn(this,Ie),n=ay();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,Be=async function(t){const e=Pn(this,Oe).cacheTimeout;if(e<0){const e=Ln(this,xe,Ne).call(this);return e&&await ey(e),await this._perform(t)}const n=ry(t.method,t);let r=Pn(this,Ee).get(n);if(!r){const s=Ln(this,xe,Ne).call(this);s&&await ey(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},De=new WeakSet,Ue=async function(t,e,n){ea(n<10,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},t,{blockTag:e,enableCcipRead:!0})});const r=Bg(t);try{const t=Ln(this,xe,Ne).call(this);return t&&await ey(t),fa(await this._perform({method:"call",transaction:r,blockTag:e}))}catch(s){if(!this.disableCcipRead&&Xo(s)&&s.data&&n>=0&&"latest"===e&&null!=r.to&&"0x556f1830"===ma(s.data,0,4)){const t=s.data,o=await id(r.to,this);let a;try{a=function(t){const e={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};ea(ga(t)>=160,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const n=ma(t,0,32);ea(ma(n,0,12)===ma(my,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),e.sender=ma(n,12);try{const n=[],r=Ia(ma(t,32,64)),s=Ia(ma(t,r,r+32)),i=ma(t,r+32);for(let t=0;t<s;t++){const e=uy(i,32*t);if(null==e)throw new Error("abort");n.push(e)}e.urls=n}catch(s){ea(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{const n=hy(t,64);if(null==n)throw new Error("abort");e.calldata=n}catch(s){ea(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}ea(ma(t,100,128)===ma(my,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),e.selector=ma(t,96,100);try{const n=hy(t,128);if(null==n)throw new Error("abort");e.extraData=n}catch(s){ea(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return e.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map((t=>e[t])),e}(ma(s.data,4))}catch(i){ea(!1,i.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:r,info:{data:t}})}ea(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);ea(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:pa([a.selector,gy([c,a.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:l});try{const t=await Ln(this,De,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 Jo({network:this.getNetwork(),value:t});return e},Fe=new WeakSet,je=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,Be).call(this,Object.assign(t,{address:r,blockTag:s})))},Ge=new WeakSet,He=async function(t,e){if(ua(t,32))return await Ln(this,Pe,Be).call(this,{method:"getBlock",blockHash:t,includeTransactions:e});let n=this._getBlockTag(t);return"string"!=typeof n&&(n=await n),await Ln(this,Pe,Be).call(this,{method:"getBlock",blockTag:n,includeTransactions:e})},We=new WeakSet,Ve=async function(t,e){let n=await oy(t,this);return"event"===n.type&&e&&e.length>0&&!0===e[0].removed&&(n=await oy({orphan:"drop-log",log:e[0]},this)),Pn(this,ye).get(n.tag)||null},Ke=new WeakSet,ze=async function(t){const e=await oy(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 py=new Uint8Array([]);function gy(t){const e=[];let n=0;for(let r=0;r<t.length;r++)e.push(py),n+=32;for(let r=0;r<t.length;r++){const s=ca(t[r]);e[r]=dy(n),e.push(dy(s.length)),e.push(fy(s)),n+=32+32*Math.ceil(s.length/32)}return pa(e)}const my="0x0000000000000000000000000000000000000000000000000000000000000000";function yy(t,e){if(t.provider)return t.provider;ea(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:e})}async function wy(t,e){let n=Bg(e);if(null!=n.to&&(n.to=id(n.to,t)),null!=n.from){const e=n.from;n.from=Promise.all([t.getAddress(),id(e,t)]).then((([t,e])=>(na(t.toLowerCase()===e.toLowerCase(),"transaction from mismatch","tx.from",e),t)))}else n.from=t.getAddress();return await Jo(n)}class by{constructor(t){xn(this,"provider"),Qo(this,{provider:t||null})}async getNonce(t){return yy(this,"getTransactionCount").getTransactionCount(await this.getAddress(),t)}async populateCall(t){return await wy(this,t)}async populateTransaction(t){const e=yy(this,"populateTransaction"),n=await wy(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){na(Sa(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||na(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",t):na(!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();ea(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?(ea(!s,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),null==n.gasPrice&&(n.gasPrice=t.gasPrice),n.type=0):ea(!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 Jo(n)}async populateAuthorization(t){const e=Object.assign({},t);return null==e.chainId&&(e.chainId=(await yy(this,"getNetwork").getNetwork()).chainId),null==e.nonce&&(e.nonce=await this.getNonce()),e}async estimateGas(t){return yy(this,"estimateGas").estimateGas(await this.populateCall(t))}async call(t){return yy(this,"call").call(await this.populateCall(t))}async resolveName(t){const e=yy(this,"resolveName");return await e.resolveName(t)}async sendTransaction(t){const e=yy(this,"sendTransaction"),n=await this.populateTransaction(t);delete n.from;const r=Yd.from(n);return await e.broadcastTransaction(await this.signTransaction(r))}authorize(t){ea(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}qe=new WeakSet,$e=function(t,e){ea(!1,`VoidSigner cannot sign ${t}`,"UNSUPPORTED_OPERATION",{operation:e})};let Ay=class t extends by{constructor(t,e){super(e),Bn(this,qe),xn(this,"address"),Qo(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 vy{constructor(t){Bn(this,en),Bn(this,rn),Bn(this,Je,void 0),Bn(this,Qe,void 0),Bn(this,Ye,void 0),Bn(this,Ze,void 0),Bn(this,Xe,void 0),Bn(this,tn,void 0),Dn(this,Je,t),Dn(this,Qe,null),Dn(this,Ye,Ln(this,en,nn).bind(this)),Dn(this,Ze,!1),Dn(this,Xe,null),Dn(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)||(Dn(this,Ze,!0),Ln(this,en,nn).call(this,-2))}stop(){Pn(this,Ze)&&(Dn(this,Ze,!1),Dn(this,tn,!0),Ln(this,rn,sn).call(this),Pn(this,Je).off("block",Pn(this,Ye)))}pause(t){t&&Ln(this,rn,sn).call(this),Pn(this,Je).off("block",Pn(this,Ye))}resume(){this.start()}}Je=new WeakMap,Qe=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,Qe)&&Dn(this,Qe,this._subscribe(Pn(this,Je)));let t=null;try{t=await Pn(this,Qe)}catch(e){if(!Zo(e,"UNSUPPORTED_OPERATION")||"eth_newFilter"!==e.operation)throw e}if(null==t)return Dn(this,Qe,null),void Pn(this,Je)._recoverSubscriber(this,this._recover(Pn(this,Je)));const n=await Pn(this,Je).getNetwork();if(Pn(this,Xe)||Dn(this,Xe,n),Pn(this,Xe).chainId!==n.chainId)throw new Error("chaid changed");if(Pn(this,tn))return;const r=await Pn(this,Je).send("eth_getFilterChanges",[t]);await this._emitResults(Pn(this,Je),r)}catch(e){console.log("@TODO",e)}Pn(this,Je).once("block",Pn(this,Ye))},rn=new WeakSet,sn=function(){const t=Pn(this,Qe);t&&(Dn(this,Qe,null),t.then((t=>{Pn(this,Je).destroyed||Pn(this,Je).send("eth_uninstallFilter",[t])})))};class _y extends vy{constructor(t,e){var n;super(t),Bn(this,on,void 0),Dn(this,on,(n=e,JSON.parse(JSON.stringify(n))))}_recover(t){return new Xm(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 Ey extends vy{async _subscribe(t){return await t.send("eth_newPendingTransactionFilter",[])}async _emitResults(t,e){for(const n of e)t.emit("pending",n)}}const ky="bigint,boolean,function,number,string,symbol".split(/,/g);function Sy(t){if(null==t||ky.indexOf(typeof t)>=0)return t;if("function"==typeof t.getAddress)return t;if(Array.isArray(t))return t.map(Sy);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 Ty(t){return new Promise((e=>{setTimeout(e,t)}))}function Ry(t){return t?t.toLowerCase():t}function Cy(t){return t&&"number"==typeof t.pollingInterval}const Iy={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class Oy extends by{constructor(t,e){super(t),xn(this,"address"),Qo(this,{address:e=nd(e)})}connect(t){ea(!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=Sy(t),n=[];if(e.from){const r=e.from;n.push((async()=>{const n=await id(r,this.provider);na(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 id(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(Zo(a,"CANCELLED")||Zo(a,"BAD_DATA")||Zo(a,"NETWORK_ERROR")||Zo(a,"UNSUPPORTED_OPERATION"))return null==a.info&&(a.info={}),a.info.sendTransactionHash=n,void r(a);if(Zo(a,"INVALID_ARGUMENT")&&(i++,null==a.info&&(a.info={}),a.info.sendTransactionHash=n,i>10))return void r(a);this.provider.emit("error",ta("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=Sy(t);if(e.from){const n=await id(e.from,this.provider);na(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?Ha(t):t;return await this.provider.send("personal_sign",[fa(e),this.address.toLowerCase()])}async signTypedData(t,e,n){const r=Sy(n),s=await kp.resolveNames(t,e,r,(async t=>{const e=await id(t);return na(null!=e,"TypedData does not support null address","value",t),e}));return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(kp.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?Ha(t):t;return await this.provider.send("eth_sign",[this.address.toLowerCase(),fa(e)])}}class xy extends ly{constructor(t,e){super(t,e),Bn(this,pn),Bn(this,an,void 0),Bn(this,cn,void 0),Bn(this,ln,void 0),Bn(this,un,void 0),Bn(this,hn,void 0),Bn(this,dn,void 0),Bn(this,fn,void 0),Dn(this,cn,1),Dn(this,an,Object.assign({},Iy,e||{})),Dn(this,ln,[]),Dn(this,un,null),Dn(this,dn,null),Dn(this,fn,null);{let t=null;const e=new Promise((e=>{t=e}));Dn(this,hn,{promise:e,resolve:t})}const n=this._getOption("staticNetwork");"boolean"==typeof n?(na(!n||"any"!==t,"staticNetwork cannot be used on special network 'any'","options",e),n&&null!=t&&Dn(this,dn,Wm.from(t))):n&&(na(null==t||n.matches(t),"staticNetwork MUST match network object","options",e),Dn(this,dn,n))}_getOption(t){return Pn(this,an)[t]}get _network(){return ea(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&&Sa(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?(Dn(this,fn,(async()=>{try{const t=Wm.from(Sa(await this.send("eth_chainId",[])));return Dn(this,fn,null),t}catch(t){throw Dn(this,fn,null),t}})()),await Pn(this,fn)):(Dn(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],Dn(this,fn,null)}catch(n){throw Dn(this,fn,null),this.emit("debug",{action:"receiveRpcError",error:n}),n}if(this.emit("debug",{action:"receiveRpcResult",result:e}),"result"in e)return Wm.from(Sa(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(),Dn(this,hn,null),(async()=>{for(;null==Pn(this,dn)&&!this.destroyed;)try{Dn(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",ta("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:t}})),await Ty(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 Ey(this):"event"===t.type?this._getOption("polling")?new Xm(this,t.filter):new _y(this,t.filter):"orphan"===t.type&&"drop-log"===t.filter.orphan?new sy("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]=Na(Sa(t[n],`tx.${n}`))})),["from","to","data"].forEach((n=>{null!=t[n]&&(e[n]=fa(t[n]))})),t.accessList&&(e.accessList=Id(t.accessList)),t.blobVersionedHashes&&(e.blobVersionedHashes=t.blobVersionedHashes.map((t=>t.toLowerCase()))),t.authorizationList&&(e.authorizationList=t.authorizationList.map((t=>{const e=Od(t);return{address:e.address,nonce:Na(e.nonce),chainId:Na(e.chainId),yParity:Na(e.signature.yParity),r:Na(e.signature.r),s:Na(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:[Ry(t.address),t.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[Ry(t.address),t.blockTag]};case"getCode":return{method:"eth_getCode",args:[Ry(t.address),t.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[Ry(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(Ry):t.filter.address=Ry(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 ta("insufficient funds","INSUFFICIENT_FUNDS",{transaction:t.params[0],info:{payload:t,error:r}});if(e.match(/nonce/i)&&e.match(/too low/i))return ta("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=By(r),s=_g.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 Dy(t,e),e}(r));if("string"==typeof r.message&&r.message.match(/user denied|ethers-user-denied/i)){return ta("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 ta("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:e,info:{error:r}});if(s.match(/nonce/i)&&s.match(/too low/i))return ta("nonce has already been used","NONCE_EXPIRED",{transaction:e,info:{error:r}});if(s.match(/replacement transaction/i)&&s.match(/underpriced/i))return ta("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:e,info:{error:r}});if(s.match(/only replay-protected/i))return ta("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?ta("unsupported operation","UNSUPPORTED_OPERATION",{operation:t.method,info:{error:r,payload:t}}):ta("could not coalesce error","UNKNOWN_ERROR",{error:r,payload:t})}send(t,e){if(this.destroyed)return Promise.reject(ta("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 Oy(this,n[t])}const{accounts:n}=await Jo({network:this.getNetwork(),accounts:e});t=nd(t);for(const r of n)if(nd(r)===t)return new Oy(this,t);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map((t=>new Oy(this,t)))}destroy(){Pn(this,un)&&(clearTimeout(Pn(this,un)),Dn(this,un,null));for(const{payload:t,reject:e}of Pn(this,ln))e(ta("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t.method}));Dn(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");Dn(this,un,setTimeout((()=>{Dn(this,un,null);const t=Pn(this,ln);for(Dn(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(ta("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=ta("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 Ny extends xy{constructor(t,e){super(t,e),Bn(this,mn,void 0);let n=this._getOption("pollingInterval");null==n&&(n=Iy.pollingInterval),Dn(this,mn,n)}_getSubscriber(t){const e=super._getSubscriber(t);return Cy(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");Dn(this,mn,t),this._forEachSubscriber((t=>{Cy(t)&&(t.pollingInterval=Pn(this,mn))}))}}mn=new WeakMap;class Py extends Ny{constructor(t,e,n){null==t&&(t="http://localhost:8545"),super(e,n),Bn(this,yn,void 0),Dn(this,yn,"string"==typeof t?new nc(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 By(t){if(null==t)return null;if("string"==typeof t.message&&t.message.match(/revert/i)&&ua(t.data))return{message:t.message,data:t.data};if("object"==typeof t){for(const e in t){const n=By(t[e]);if(n)return n}return null}if("string"==typeof t)try{return By(JSON.parse(t))}catch(e){}return null}function Dy(t,e){if(null!=t){if("string"==typeof t.message&&e.push(t.message),"object"==typeof t)for(const n in t)Dy(t[n],e);if("string"==typeof t)try{return Dy(JSON.parse(t),e)}catch(n){}}}yn=new WeakMap;wn=new WeakMap;let Uy=class t extends by{constructor(t,e){super(e),xn(this,"address"),Bn(this,wn,void 0),na(t&&"function"==typeof t.sign,"invalid private key","privateKey","[ REDACTED ]"),Dn(this,wn,t);Qo(this,{address:xd(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=Bg(t);const{to:e,from:n}=await Jo({to:t.to?id(t.to,this):void 0,from:t.from?id(t.from,this):void 0});null!=e&&(t.to=e),null!=n&&(t.from=n),null!=t.from&&(na(nd(t.from)===this.address,"transaction from address mismatch","tx.from",t.from),delete t.from);const r=Yd.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=Ha(t)),Wl(pa([Ha("Ethereum Signed Message:\n"),Ha(String(t.length)),t]))}(t)).serialized}authorizeSync(t){na("string"==typeof t.address,"invalid address for authorizeSync","auth.address",t);const e=this.signingKey.sign(function(t){return na("string"==typeof t.address,"invalid address for hashAuthorization","auth.address",t),Wl(pa(["0x05",pc([null!=t.chainId?xa(t.chainId):"0x",nd(t.address),null!=t.nonce?xa(t.nonce):"0x"])]))}(t));return Object.assign({},{address:nd(t.address),nonce:Sa(t.nonce||0),chainId:Sa(t.chainId||0)},{signature:e})}async authorize(t){return t=Object.assign({},t,{address:await id(t.address,this)}),this.authorizeSync(await this.populateAuthorization(t))}async signTypedData(t,e,n){const r=await kp.resolveNames(t,e,n,(async t=>{ea(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 ea(null!=e,"unconfigured ENS name","UNCONFIGURED_NAME",{value:t}),e}));return this.signingKey.sign(kp.hash(r.domain,e,r.value)).serialized}};const Ly=" !#$%&'()*+,-./<=>?@[]^_`{|}~",My=/^[a-z]*$/i;function Fy(t,e){let n=97;return t.reduce(((t,r)=>(r===e?n++:r.match(My)?t.push(String.fromCharCode(n)+r):(n=97,t.push(r)),t)),[])}function jy(t){return na("0"===t[0],"unsupported auwl data","data",t),function(t,e){for(let s=28;s>=0;s--)t=t.split(Ly[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 Fy(Fy(n,";"),":")}(t.substring(59),t.substring(1,59))}class Gy{constructor(t){xn(this,"locale"),Qo(this,{locale:t})}split(t){return t.toLowerCase().split(/\s+/g)}join(t){return t.join(" ")}}class Hy extends Gy{constructor(t,e,n){super(t),Bn(this,_n),Bn(this,bn,void 0),Bn(this,An,void 0),Bn(this,vn,void 0),Dn(this,bn,e),Dn(this,An,n),Dn(this,vn,null)}get _data(){return Pn(this,bn)}_decodeWords(){return jy(Pn(this,bn))}getWord(t){const e=Ln(this,_n,En).call(this);return na(t>=0&&t<e.length,`invalid word index: ${t}`,"index",t),e[t]}getWordIndex(t){return Ln(this,_n,En).call(this).indexOf(t)}}bn=new WeakMap,An=new WeakMap,vn=new WeakMap,_n=new WeakSet,En=function(){if(null==Pn(this,vn)){const t=this._decodeWords();if(Zd(t.join("\n")+"\n")!==Pn(this,An))throw new Error(`BIP39 Wordlist for ${this.locale} FAILED`);Dn(this,vn,t)}return Pn(this,vn)};let Wy=null;class Vy extends Hy{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==Wy&&(Wy=new Vy),Wy}}function Ky(t){return(1<<t)-1<<8-t&255}function zy(t,e){ia("NFKD"),null==e&&(e=Vy.wordlist());const n=e.split(t);na(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"));na(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=Ky(n.length/3);return na((ca(Nu(r.slice(0,i/8)))[0]&o)===(r[r.length-1]&o),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),fa(r.slice(0,i/8))}function qy(t,e){na(t.length%4==0&&t.length>=16&&t.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),null==e&&(e=Vy.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(Nu(t).substring(2,4),16)&Ky(s);return n[n.length-1]<<=s,n[n.length-1]|=i>>8-s,e.join(n.map((t=>e.getWord(t))))}const $y={};class Jy{constructor(t,e,n,r,s){xn(this,"phrase"),xn(this,"password"),xn(this,"wordlist"),xn(this,"entropy"),null==r&&(r=""),null==s&&(s=Vy.wordlist()),oa(t,$y,"Mnemonic"),Qo(this,{phrase:n,password:r,wordlist:s,entropy:e})}computeSeed(){const t=Ha("mnemonic"+this.password,"NFKD");return hu(Ha(this.phrase,"NFKD"),t,2048,64,"sha512")}static fromPhrase(t,e,n){const r=zy(t,n);return t=qy(ca(r),n),new Jy($y,r,t,e,n)}static fromEntropy(t,e,n){const r=ca(t,"entropy"),s=qy(r,n);return new Jy($y,fa(r),s,e,n)}static entropyToPhrase(t,e){return qy(ca(t,"entropy"),e)}static phraseToEntropy(t,e){return zy(t,e)}static isValidMnemonic(t,e){try{return zy(t,e),!0}catch(n){}return!1}}
|
|
12
|
+
/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var Qy,Yy,Zy,Xy=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)},tw=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 ew={16:10,24:12,32:14},nw=[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],rw=[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],sw=[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],iw=[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],ow=[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],aw=[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],cw=[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],uw=[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],hw=[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],dw=[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],fw=[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],pw=[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],gw=[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],mw=[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 yw(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 ww{get key(){return Xy(this,Qy,"f").slice()}constructor(t){if(Qy.set(this,void 0),Yy.set(this,void 0),Zy.set(this,void 0),!(this instanceof ww))throw Error("AES must be instanitated with `new`");tw(this,Qy,new Uint8Array(t),"f");const e=ew[this.key.length];if(null==e)throw new TypeError("invalid key size (must be 16, 24 or 32 bytes)");tw(this,Zy,[],"f"),tw(this,Yy,[],"f");for(let l=0;l<=e;l++)Xy(this,Zy,"f").push([0,0,0,0]),Xy(this,Yy,"f").push([0,0,0,0]);const n=4*(e+1),r=this.key.length/4,s=yw(this.key);let i;for(let l=0;l<r;l++)i=l>>2,Xy(this,Zy,"f")[i][l%4]=s[l],Xy(this,Yy,"f")[e-i][l%4]=s[l];let o,a=0,c=r;for(;c<n;){if(o=s[r-1],s[0]^=rw[o>>16&255]<<24^rw[o>>8&255]<<16^rw[255&o]<<8^rw[o>>24&255]^nw[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]^=rw[255&o]^rw[o>>8&255]<<8^rw[o>>16&255]<<16^rw[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,Xy(this,Zy,"f")[t][i]=s[l],Xy(this,Yy,"f")[e-t][i]=s[l++],c++}for(let l=1;l<e;l++)for(let t=0;t<4;t++)o=Xy(this,Yy,"f")[l][t],Xy(this,Yy,"f")[l][t]=fw[o>>24&255]^pw[o>>16&255]^gw[o>>8&255]^mw[255&o]}encrypt(t){if(16!=t.length)throw new TypeError("invalid plaintext size (must be 16 bytes)");const e=Xy(this,Zy,"f").length-1,n=[0,0,0,0];let r=yw(t);for(let o=0;o<4;o++)r[o]^=Xy(this,Zy,"f")[0][o];for(let o=1;o<e;o++){for(let t=0;t<4;t++)n[t]=iw[r[t]>>24&255]^ow[r[(t+1)%4]>>16&255]^aw[r[(t+2)%4]>>8&255]^cw[255&r[(t+3)%4]]^Xy(this,Zy,"f")[o][t];r=n.slice()}const s=new Uint8Array(16);let i=0;for(let o=0;o<4;o++)i=Xy(this,Zy,"f")[e][o],s[4*o]=255&(rw[r[o]>>24&255]^i>>24),s[4*o+1]=255&(rw[r[(o+1)%4]>>16&255]^i>>16),s[4*o+2]=255&(rw[r[(o+2)%4]>>8&255]^i>>8),s[4*o+3]=255&(rw[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=Xy(this,Yy,"f").length-1,n=[0,0,0,0];let r=yw(t);for(let o=0;o<4;o++)r[o]^=Xy(this,Yy,"f")[0][o];for(let o=1;o<e;o++){for(let t=0;t<4;t++)n[t]=lw[r[t]>>24&255]^uw[r[(t+3)%4]>>16&255]^hw[r[(t+2)%4]>>8&255]^dw[255&r[(t+1)%4]]^Xy(this,Yy,"f")[o][t];r=n.slice()}const s=new Uint8Array(16);let i=0;for(let o=0;o<4;o++)i=Xy(this,Yy,"f")[e][o],s[4*o]=255&(sw[r[o]>>24&255]^i>>24),s[4*o+1]=255&(sw[r[(o+3)%4]>>16&255]^i>>16),s[4*o+2]=255&(sw[r[(o+2)%4]>>8&255]^i>>8),s[4*o+3]=255&(sw[255&r[(o+1)%4]]^i);return s}}Qy=new WeakMap,Yy=new WeakMap,Zy=new WeakMap;class bw{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 ww(e)},name:{enumerable:!0,value:t}})}}var Aw,vw,_w=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},Ew=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 kw extends bw{constructor(t,e){if(super("ECC",t,kw),Aw.set(this,void 0),vw.set(this,void 0),e){if(e.length%16)throw new TypeError("invalid iv size (must be 16 bytes)");_w(this,Aw,new Uint8Array(e),"f")}else _w(this,Aw,new Uint8Array(16),"f");_w(this,vw,this.iv,"f")}get iv(){return new Uint8Array(Ew(this,Aw,"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++)Ew(this,vw,"f")[e]^=t[n+e];_w(this,vw,this.aes.encrypt(Ew(this,vw,"f")),"f"),e.set(Ew(this,vw,"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]^Ew(this,vw,"f")[s],Ew(this,vw,"f")[s]=t[n+s]}return e}}Aw=new WeakMap,vw=new WeakMap;var Sw,Tw,Rw,Cw=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},Iw=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 Ow extends bw{constructor(t,e){super("CTR",t,Ow),Sw.set(this,void 0),Tw.set(this,void 0),Rw.set(this,void 0),Cw(this,Rw,new Uint8Array(16),"f"),Iw(this,Rw,"f").fill(0),Cw(this,Sw,Iw(this,Rw,"f"),"f"),Cw(this,Tw,16,"f"),null==e&&(e=1),"number"==typeof e?this.setCounterValue(e):this.setCounterBytes(e)}get counter(){return new Uint8Array(Iw(this,Rw,"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)Iw(this,Rw,"f")[e]=t%256,t=Math.floor(t/256)}setCounterBytes(t){if(16!==t.length)throw new TypeError("invalid counter initial Uint8Array value length");Iw(this,Rw,"f").set(t)}increment(){for(let t=15;t>=0;t--){if(255!==Iw(this,Rw,"f")[t]){Iw(this,Rw,"f")[t]++;break}Iw(this,Rw,"f")[t]=0}}encrypt(t){var e,n;const r=new Uint8Array(t);for(let s=0;s<r.length;s++)16===Iw(this,Tw,"f")&&(Cw(this,Sw,this.aes.encrypt(Iw(this,Rw,"f")),"f"),Cw(this,Tw,0,"f"),this.increment()),r[s]^=Iw(this,Sw,"f")[(Cw(this,Tw,(n=Iw(this,Tw,"f"),e=n++,n),"f"),e)];return r}decrypt(t){return this.encrypt(t)}}function xw(t){return"string"!=typeof t||t.startsWith("0x")||(t="0x"+t),la(t)}function Nw(t,e){for(t=String(t);t.length<e;)t="0"+t;return t}function Pw(t){return"string"==typeof t?Ha(t,"NFKC"):la(t)}function Bw(t,e){const n=e.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);na(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(na(!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 xw(o);if("array"===s&&Array.isArray(o))return o;if(s===typeof o)return o;na(!1,`wrong type found for ${s} `,"path",r)}return o}Sw=new WeakMap,Tw=new WeakMap,Rw=new WeakMap;const Dw="m/44'/60'/0'/0/0";function Uw(t){try{const e=JSON.parse(t);if(3===(null!=e.version?parseInt(e.version):0))return!0}catch(e){}return!1}function Lw(t,e){const n=ca(e),r=Bw(t,"crypto.ciphertext:data!");na(fa(Wl(pa([n.slice(16,32),r]))).substring(2)===Bw(t,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");const s=function(t,e,n){if("aes-128-ctr"===Bw(t,"crypto.cipher:string")){const r=Bw(t,"crypto.cipherparams.iv:data!");return fa(new Ow(e,r).decrypt(n))}ea(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}(t,n.slice(0,16),r),i=xd(s);if(t.address){let e=t.address.toLowerCase();e.startsWith("0x")||(e="0x"+e),na(nd(e)===i,"keystore address/privateKey mismatch","address",t.address)}const o={address:i,privateKey:s};if("0.1"===Bw(t,"x-ethers.version:string")){const e=n.slice(32,64),r=Bw(t,"x-ethers.mnemonicCiphertext:data!"),s=Bw(t,"x-ethers.mnemonicCounter:data!"),i=new Ow(e,s);o.mnemonic={path:Bw(t,"x-ethers.path:string")||Dw,locale:Bw(t,"x-ethers.locale:string")||"en",entropy:fa(ca(i.decrypt(r)))}}return o}function Mw(t){const e=Bw(t,"crypto.kdf:string");if(e&&"string"==typeof e){if("scrypt"===e.toLowerCase()){const n=Bw(t,"crypto.kdfparams.salt:data!"),r=Bw(t,"crypto.kdfparams.n:int!"),s=Bw(t,"crypto.kdfparams.r:int!"),i=Bw(t,"crypto.kdfparams.p:int!");na(r>0&&!(r&r-1),"invalid kdf.N","kdf.N",r),na(s>0&&i>0,"invalid kdf","kdf",e);const o=Bw(t,"crypto.kdfparams.dklen:int!");return na(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=Bw(t,"crypto.kdfparams.salt:data!"),n=Bw(t,"crypto.kdfparams.prf:string!"),r=n.split("-").pop();na("sha256"===r||"sha512"===r,"invalid kdf.pdf","kdf.pdf",n);const s=Bw(t,"crypto.kdfparams.c:int!"),i=Bw(t,"crypto.kdfparams.dklen:int!");return na(32===i,"invalid kdf.dklen","kdf.dklen",i),{name:"pbkdf2",salt:e,count:s,dkLen:i,algorithm:r}}}na(!1,"unsupported key-derivation function","kdf",e)}function Fw(t){return new Promise((e=>{setTimeout((()=>{e()}),t)}))}function jw(t){const e=null!=t.salt?ca(t.salt,"options.salt"):gu(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)),na("number"==typeof n&&n>0&&Number.isSafeInteger(n)&&(BigInt(n)&BigInt(n-1))===BigInt(0),"invalid scrypt N parameter","options.N",n),na("number"==typeof r&&r>0&&Number.isSafeInteger(r),"invalid scrypt r parameter","options.r",r),na("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 Gw(t,e,n,r){const s=ca(n.privateKey,"privateKey"),i=null!=r.iv?ca(r.iv,"options.iv"):gu(16);na(16===i.length,"invalid options.iv length","options.iv",r.iv);const o=null!=r.uuid?ca(r.uuid,"options.uuid"):gu(16);na(16===o.length,"invalid options.uuid length","options.uuid",r.iv);const a=t.slice(0,16),c=t.slice(16,32),l=ca(new Ow(a,i).encrypt(s)),u=Wl(pa([c,l])),h={address:n.address.substring(2).toLowerCase(),id:gc(o),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:fa(i).substring(2)},ciphertext:fa(l).substring(2),kdf:"scrypt",kdfparams:{salt:fa(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/${qo}`,s=n.mnemonic.path||Dw,i=n.mnemonic.locale||"en",o=t.slice(32,64),a=ca(n.mnemonic.entropy,"account.mnemonic.entropy"),c=gu(16),l=ca(new Ow(o,c).encrypt(a)),u=new Date,d="UTC--"+(u.getUTCFullYear()+"-"+Nw(u.getUTCMonth()+1,2)+"-"+Nw(u.getUTCDate(),2)+"T"+Nw(u.getUTCHours(),2)+"-"+Nw(u.getUTCMinutes(),2)+"-"+Nw(u.getUTCSeconds(),2)+".0Z")+"--"+h.address;h["x-ethers"]={client:e,gethFilename:d,path:s,locale:i,mnemonicCounter:fa(c).substring(2),mnemonicCiphertext:fa(l).substring(2),version:"0.1"}}return JSON.stringify(h)}function Hw(t,e,n){null==n&&(n={});const r=Pw(e),s=jw(n);return Gw(ca(Cu(r,s.salt,s.N,s.r,s.p,64)),s,t,n)}async function Ww(t,e,n){null==n&&(n={});const r=Pw(e),s=jw(n);return Gw(ca(await Ru(r,s.salt,s.N,s.r,s.p,64,n.progressCallback)),s,t,n)}const Vw="m/44'/60'/0'/0/0",Kw=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),zw=2147483648,qw=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141");function $w(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 Jw(t){const e=ca(t);return Ma(pa([e,ma(Nu(Nu(e)),0,4)]))}const Qw={};function Yw(t,e,n,r){const s=new Uint8Array(37);t&zw?(ea(null!=r,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),s.set(ca(r),1)):s.set(ca(n));for(let o=24;o>=0;o-=8)s[33+(o>>3)]=t>>24-o&255;const i=ca(kl("sha512",e,s));return{IL:i.slice(0,32),IR:i.slice(32)}}function Zw(t,e){const n=e.split("/");na(n.length>0,"invalid path","path",e),"m"===n[0]&&(na(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));na(e<zw,"invalid path index",`path[${s}]`,t),r=r.deriveChild(zw+e)}else if(t.match(/^[0-9]+$/)){const e=parseInt(t);na(e<zw,"invalid path index",`path[${s}]`,t),r=r.deriveChild(e)}else na(!1,"invalid path component",`path[${s}]`,t)}return r}const Xw=class t extends Uy{constructor(t,e,n,r,s,i,o,a,c){super(e,c),Bn(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"),oa(t,Qw,"HDNodeWallet"),Qo(this,{publicKey:e.compressedPublicKey});Qo(this,{parentFingerprint:n,fingerprint:ma(au(Nu(this.publicKey)),0,4),chainCode:r,path:s,index:i,depth:o}),Qo(this,{mnemonic:a})}connect(e){return new t(Qw,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,e)}async encrypt(t,e){return await Ww(Ln(this,kn,Sn).call(this),t,{progressCallback:e})}encryptSync(t){return Hw(Ln(this,kn,Sn).call(this),t)}get extendedKey(){return ea(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),Jw(pa(["0x0488ADE4",$w(this.depth,1),this.parentFingerprint,$w(this.index,4),this.chainCode,pa(["0x00",this.privateKey])]))}hasPath(){return null!=this.path}neuter(){return new eb(Qw,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(e){const n=Ia(e,"index");na(n<=4294967295,"invalid index","index",n);let r=this.path;r&&(r+="/"+(2147483647&n),n&zw&&(r+="'"));const{IR:s,IL:i}=Yw(n,this.chainCode,this.publicKey,this.privateKey),o=new Qh(Oa((Ca(i)+BigInt(this.privateKey))%qw,32));return new t(Qw,o,this.fingerprint,fa(s),r,n,this.depth+1,this.mnemonic,this.provider)}derivePath(t){return Zw(this,t)}static fromExtendedKey(e){const n=xa(function(t){let e=Ua;for(let n=0;n<t.length;n++)e*=La,e+=Da(t[n]);return e}(e));na(82===n.length||Jw(n.slice(0,78))===e,"invalid extended key","extendedKey","[ REDACTED ]");const r=n[4],s=fa(n.slice(5,9)),i=parseInt(fa(n.slice(9,13)).substring(2),16),o=fa(n.slice(13,45)),a=n.slice(45,78);switch(fa(n.slice(0,4))){case"0x0488b21e":case"0x043587cf":{const t=fa(a);return new eb(Qw,xd(t),t,s,o,null,i,r,null)}case"0x0488ade4":case"0x04358394 ":if(0!==a[0])break;return new t(Qw,new Qh(a.slice(1)),s,o,null,i,r,null,null)}na(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(e,n,r){var s;null==e&&(e=""),null==n&&(n=Vw),null==r&&(r=Vy.wordlist());const i=Jy.fromEntropy(gu(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=Vw),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=Vw),null==s&&(s=Vy.wordlist());const o=Jy.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){na(ha(t),"invalid seed","seed","[REDACTED]");const n=ca(t,"seed");na(n.length>=16&&n.length<=64,"invalid seed","seed","[REDACTED]");const r=ca(kl("sha512",Kw,n)),s=new Qh(fa(r.slice(0,32)));return new Xw(Qw,s,"0x00000000",fa(r.slice(32)),"m",0,0,e,null)},Bn(Xw,Tn);let tb=Xw;class eb extends Ay{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"),oa(t,Qw,"HDNodeVoidWallet"),Qo(this,{publicKey:n});Qo(this,{publicKey:n,fingerprint:ma(au(Nu(n)),0,4),parentFingerprint:r,chainCode:s,path:i,index:o,depth:a})}connect(t){return new eb(Qw,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,t)}get extendedKey(){return ea(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),Jw(pa(["0x0488B21E",$w(this.depth,1),this.parentFingerprint,$w(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return null!=this.path}deriveChild(t){const e=Ia(t,"index");na(e<=4294967295,"invalid index","index",e);let n=this.path;n&&(n+="/"+(2147483647&e),e&zw&&(n+="'"));const{IR:r,IL:s}=Yw(e,this.chainCode,this.publicKey,null),i=Qh.addPoints(s,this.publicKey,!0),o=xd(i);return new eb(Qw,o,i,this.fingerprint,fa(r),n,e,this.depth+1,this.provider)}derivePath(t){return Zw(this,t)}}function nb(t){try{if(JSON.parse(t).encseed)return!0}catch(e){}return!1}function rb(t,e){const n=JSON.parse(t),r=Pw(e),s=nd(Bw(n,"ethaddr:string!")),i=xw(Bw(n,"encseed:string!"));na(i&&i.length%16==0,"invalid encseed","json",t);const o=ca(hu(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))}(ca(new kw(o,a).decrypt(c)));let u="";for(let h=0;h<l.length;h++)u+=String.fromCharCode(l[h]);return{address:s,privateKey:Zd(u)}}function sb(t){return new Promise((e=>{setTimeout((()=>{e()}),t)}))}const ib=class t extends Uy{constructor(t,e){"string"!=typeof t||t.startsWith("0x")||(t="0x"+t),super("string"==typeof t?new Qh(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 Ww(n,t,{progressCallback:e})}encryptSync(t){return Hw({address:this.address,privateKey:this.privateKey},t)}static async fromEncryptedJson(e,n,r){var s;let i=null;return Uw(e)?i=await async function(t,e,n){const r=JSON.parse(t),s=Pw(e),i=Mw(r);if("pbkdf2"===i.name){n&&(n(0),await Fw(0));const{salt:t,count:e,dkLen:o,algorithm:a}=i,c=hu(s,t,e,o,a);return n&&(n(1),await Fw(0)),Lw(r,c)}ea("scrypt"===i.name,"cannot be reached","UNKNOWN_ERROR",{params:i});const{salt:o,N:a,r:c,p:l,dkLen:u}=i;return Lw(r,await Ru(s,o,a,c,l,u,n))}(e,n,r):nb(e)&&(r&&(r(0),await sb(0)),i=rb(e,n),r&&(r(1),await sb(0))),Ln(s=t,Cn,In).call(s,i)}static fromEncryptedJsonSync(e,n){var r;let s=null;return Uw(e)?s=function(t,e){const n=JSON.parse(t),r=Pw(e),s=Mw(n);if("pbkdf2"===s.name){const{salt:t,count:e,dkLen:i,algorithm:o}=s;return Lw(n,hu(r,t,e,i,o))}ea("scrypt"===s.name,"cannot be reached","UNKNOWN_ERROR",{params:s});const{salt:i,N:o,r:a,p:c,dkLen:l}=s;return Lw(n,Cu(r,i,o,a,c,l))}(e,n):nb(e)?s=rb(e,n):na(!1,"invalid JSON wallet","json","[ REDACTED ]"),Ln(r=t,Cn,In).call(r,s)}static createRandom(t){const e=tb.createRandom();return t?e.connect(t):e}static fromPhrase(t,e){const n=tb.fromPhrase(t);return e?n.connect(e):n}};Cn=new WeakSet,In=function(t){if(na(t,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in t&&t.mnemonic&&"en"===t.mnemonic.locale){const e=Jy.fromEntropy(t.mnemonic.entropy),n=tb.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 ib(t.privateKey);return na(e.address===t.address,"address/privateKey mismatch","json","[ REDACTED ]"),e},Bn(ib,Cn);let ob=ib;const ab=3000000n,cb=2000000000n,lb=1000000000n,ub=4096,hb="dns_txt",db=(1n<<64n)-1n,fb=["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)"],pb=new Ig(fb),gb=[0,"0x"],mb=function(t){const e=Ha(t);if(e.length>31)throw new Error("bytes32 string must be less than 32 bytes");return ba(e,32)}("inline");class yb extends Error{constructor(t,e){super(e),this.name="BnsEvmTxError",this.code=t}}function wb(t,e,n){let r;try{r=BigInt(e)}catch{throw new yb("INVALID_CONFIG",`${t} must be an integer`)}if(r<0n||void 0!==n&&r>n)throw new yb("INVALID_CONFIG",`${t} is out of range`);return r}function bb(t){const e=Mn.canonicalize(t);if("string"!=typeof e)throw new yb("INVALID_DOCUMENT","document cannot be encoded as canonical JSON");const n=Ha(e);if(0===n.length||n.length>ub)throw new yb("INVALID_DOCUMENT",`inline document is ${n.length} bytes, max 4096`);return n}function Ab(t,e){if(!t||"object"!=typeof t||Array.isArray(t))throw new yb("INVALID_DOCUMENT",`${e} must be an object`);const n=t;if(!Number.isInteger(n.ttl)||n.ttl<0||n.ttl>4294967295)throw new yb("INVALID_DOCUMENT",`${e}.ttl must be a u32`);if("string"!=typeof n.value||0===n.value.length)throw new yb("INVALID_DOCUMENT",`${e}.value must be a non-empty string`);return{ttl:n.ttl,value:n.value}}class vb{constructor(t,e,n){if(this.nextNonce=null,this.client=t,this.config=e,this.chainId=wb("chainId",e.chainId,db),this.contractAddress=nd(e.contractAddress),this.gasLimit=wb("gasLimit",e.gasLimit??ab,db),this.maxFeePerGas=wb("maxFeePerGas",e.maxFeePerGas??cb),this.maxPriorityFeePerGas=wb("maxPriorityFeePerGas",e.maxPriorityFeePerGas??lb),!e.rpcEndpoint&&!n)throw new yb("INVALID_CONFIG","rpcEndpoint is required");if(0n===this.chainId||0n===this.gasLimit)throw new yb("INVALID_CONFIG","chainId and gasLimit must be greater than zero");if(this.maxFeePerGas<this.maxPriorityFeePerGas)throw new yb("INVALID_CONFIG","maxFeePerGas must be >= maxPriorityFeePerGas");this.provider=n??new Py(e.rpcEndpoint,this.chainId,{staticNetwork:!0})}resetNonce(){this.nextNonce=null}async buildAndSign(t,e){const n=new ob(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 yb("INVALID_DOCUMENT","publish_document document must be a JSON object");return this.prepareDocument(t.name,t.doc_type,bb(t.document))}async prepareDnsTxtDocument(t){const e=await this.getCurrentDocument(t.name,hb);let n=[];if(e){if("inline"!==e.document_state.document.storage_type)throw new yb("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 yb("INVALID_DOCUMENT",`current dns_txt document is not valid JSON: ${s instanceof Error?s.message:String(s)}`)}if(!Array.isArray(t))throw new yb("INVALID_DOCUMENT","current dns_txt document must be an array");n=t.map(((t,e)=>Ab(t,`dns_txt[${e}]`)))}switch(t.mode){case"add":{if(!t.value)throw new yb("INVALID_OPERATION","publish_dns_txt mode=add requires value");const e=Ab({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 yb("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 yb("INVALID_OPERATION","publish_dns_txt mode=replace requires records");n=t.records.map(((t,e)=>Ab({ttl:t.ttl??600,value:t.value},`dns_txt[${e}]`)));break;default:throw new yb("INVALID_OPERATION",`publish_dns_txt mode \`${t.mode}\` is not supported`)}const r=await this.getNameState(t.name);return{name:jo(t.name),docType:hb,expectedVersion:(null==e?void 0:e.document_state.version)??0,inlineDocument:bb(n),nameState:r}}async prepareDocument(t,e,n){const r=jo(t),s=Go(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 yb("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 Xi&&t.isRegistryCode("DOCUMENT_NOT_FOUND")}(n))return null;throw n}}encodePublishDocument(t,e){const n=this.ownerAuthority(t.nameState,e),r=[mb,"",fa(t.inlineDocument),Nu(t.inlineDocument),Lh,Lh,Lh];return pb.encodeFunctionData("publishDocument",[t.name,t.docType,t.expectedVersion,r,gb,gb,Uh,0,Lh,Lh,Lh,Lh,Lh,n,[t.nameState.name_seq,0]])}ownerAuthority(t,e){const n=t.effective_owner;if("chain_account"===n.kind){const s=nd(n.value);if(s!==nd(e))throw new yb("LOCAL_SIGNER_NOT_OWNER",`local signer ${e} is not effective owner ${s} of ${t.name}`);return[1,(r=e,[1,fa(ca(r))]),Lh]}var r;if("bns_name"===n.kind){const e=function(t,e){if(!e)return Lh;const n=ca(e);if(32!==n.length)throw new yb("INVALID_CONFIG",`${t} must be a 32-byte hex value`);return fa(n)}("authorityKid",this.config.authorityKid);if(e===Lh)throw new yb("AUTHORITY_KID_REQUIRED",`authorityKid is required when ${t.name} is controlled by BNS name ${n.value}`);return[1,[2,fa(Ha(n.value))],e]}throw new yb("LOCAL_SIGNER_NOT_OWNER",`BNS name ${t.name} has no concrete effective owner`)}}class _b extends Error{constructor(t,e,n){super(n),this.name="BnsTxExecutorError",this.code=t,this.route=e}}function Eb(t){if("string"!=typeof t)return null;const e=t.trim();return e.length>0?e:null}function kb(t){return t===Hs.NodeJS||t===Hs.AppClient||t===Hs.AppService}function Sb(t){if(!t||"object"!=typeof t||Array.isArray(t))return!1;const e=t;return"boolean"==typeof e.sn_account?e.sn_account:null!==Eb(e.sn_username)||null!==Eb(e.sn_user_name)}const Tb="/kapi/sn",Rb="/kapi/sn/auth",Cb="/kapi/sn/deviceinfo",Ib="/kapi/sn/bns-proxy",Ob="/kapi/sn/bns",xb="/kapi/sn/region-probe-config.json",Nb=1048576,Pb="auth.check_username",Bb="auth.check_active_code",Db="auth.register",Ub="auth.login",Lb="auth.refresh",Mb="auth.logout",Fb="auth.me",jb="user.get_profile",Gb="user.set_self_cert",Hb="user.add_dns_record",Wb="user.remove_dns_record",Vb="user.list_dns_records",Kb="zone.get_info",zb="domain.bind",qb="domain.unbind",$b="device.register",Jb="device.update",Qb="device.get",Yb="device.list",Zb="deviceinfo.resolve_ood_by_did",Xb="deviceinfo.resolve_ood_by_hostname",tA="bns.publish_dns_txt",eA="bns.publish_document",nA=/\[SN:(\d+):([a-z_]+)\]\s*/;class rA 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")?sA(this.detail):null}bnsWriteInfo(){return this.isSnError("bns_permission_denied")||this.isSnError("bns_name_already_exists")||this.isSnError("bns_write_failed")?sA(this.detail):null}static fromRpcError(t,e){if(e instanceof rA)return e;const n=e instanceof Error?e.message:String(e),r=nA.exec(n);if(r){const e=parseInt(r[1],10),s=r[2],i=n.slice(r.index+r[0].length);return new rA("sn",`${t} failed: [SN:${e}:${s}] ${i}`,e,s,i)}return new rA("transport",`${t} failed: ${n}`)}}function sA(t){try{const e=JSON.parse(t);return null===e||"object"!=typeof e||Array.isArray(e)?null:e}catch{return null}}const iA={auth:Rb,deviceinfo:Cb,"bns-proxy":Ib},oA=[Ib,Cb,Rb,Ob,Tb];function aA(t,e){const n=iA[e],r=t.replace(/\/+$/,"");for(const s of oA)if(r.endsWith(s))return`${r.slice(0,r.length-s.length)}${n}`;return`${r}${n}`}const cA=[xb,Ib,Cb,Rb,Ob,Tb],lA=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/,uA=/[\u0000-\u001f\u007f-\u009f]/u;function hA(t){throw new rA("validation",t)}function dA(t){return(new TextEncoder).encode(t).byteLength}function fA(t,e){return(null===t||"object"!=typeof t||Array.isArray(t))&&hA(`${e} must be a JSON object`),t}function pA(t,e){return"string"!=typeof t&&hA(`${e} must be a string`),t}function gA(t,e){return"number"!=typeof t&&hA(`${e} must be a number`),t}function mA(t,e){const n=gA(t,e);return Number.isSafeInteger(n)||hA(`${e} must be a safe integer`),n}function yA(t,e){const n=mA(t,e);return(n<-2147483648||n>2147483647)&&hA(`${e} must fit in a signed 32-bit integer`),n}function wA(t,e){return Array.isArray(t)||hA(`${e} must be an array`),t}function bA(t){return dA(t)<=128&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(t)}function AA(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 vA(t){const e=AA(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 _A(t,e){const n=Date.parse(t);return lA.test(t)&&Number.isFinite(n)||hA(`${e} must be an RFC 3339 timestamp`),n}function EA(t,e=Date.now()){1!==t.schema_version&&hA(`unsupported schema_version ${t.schema_version}, expected 1`),(0===t.config_version.length||dA(t.config_version)>128||t.config_version.trim()!==t.config_version||uA.test(t.config_version))&&hA("config_version must be 1..=128 non-control bytes without surrounding whitespace");const n=_A(t.generated_at,"generated_at"),r=_A(t.expires_at,"expires_at"),s=e instanceof Date?e.getTime():"number"==typeof e?e:Date.parse(e);Number.isFinite(s)||hA("validation time is invalid"),n>=r&&hA("expires_at must be later than generated_at"),r<=s&&hA("region probe config is expired");const i=t.policy;"tcp_connect"!==i.probe_method&&hA(`unsupported probe_method ${JSON.stringify(i.probe_method)}`),"ipv4"!==i.ip_family&&hA(`unsupported ip_family ${JSON.stringify(i.ip_family)}`),(i.samples_per_url<1||i.samples_per_url>3)&&hA("samples_per_url must be in 1..=3"),(i.connect_timeout_ms<1||i.connect_timeout_ms>1e4)&&hA("connect_timeout_ms must be in 1..=10000"),(i.round_timeout_ms<1||i.round_timeout_ms>3e4)&&hA("round_timeout_ms must be in 1..=30000"),(i.max_concurrency<1||i.max_concurrency>32)&&hA("max_concurrency must be in 1..=32"),(i.minimum_valid_urls<2||i.minimum_valid_urls>16)&&hA("minimum_valid_urls must be in 2..=16"),(!Number.isFinite(i.confident_ratio)||i.confident_ratio<=0||i.confident_ratio>1)&&hA("confident_ratio must be finite and in (0, 1]"),(i.cache_ttl_sec<1||i.cache_ttl_sec>21600)&&hA("cache_ttl_sec must be in 1..=21600"),(t.regions.length<1||t.regions.length>64)&&hA("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){bA(h.region_id)||hA(`invalid canonical region_id ${JSON.stringify(h.region_id)}`),o.has(h.region_id)&&hA(`duplicate region_id ${JSON.stringify(h.region_id)}`),o.add(h.region_id),(h.probe_urls.length<2||h.probe_urls.length>16)&&hA(`region ${h.region_id} must contain 2..=16 probe_urls`),i.minimum_valid_urls>h.probe_urls.length&&hA(`region ${h.region_id} has fewer probe_urls than minimum_valid_urls`),l+=h.probe_urls.length,l>256&&hA("config contains more than 256 probe URLs");for(const t of h.probe_urls){let e;(0===t.id.length||dA(t.id)>128||t.id.trim()!==t.id||uA.test(t.id))&&hA(`probe URL id in region ${h.region_id} must be 1..=128 non-control bytes without surrounding whitespace`),a.has(t.id)&&hA(`duplicate probe URL id ${JSON.stringify(t.id)}`),a.add(t.id);try{e=new URL(t.url)}catch(u){hA(`invalid probe URL ${JSON.stringify(t.url)}: ${String(u)}`)}"https:"!==e.protocol&&hA(`probe URL ${JSON.stringify(t.url)} must use https`),(!e.hostname||e.username||e.password)&&hA(`probe URL ${JSON.stringify(t.url)} must be absolute and must not contain userinfo`),""!==e.port&&hA(`probe URL ${JSON.stringify(t.url)} must use port 443`);const n=AA(e.hostname),r=e.hostname.startsWith("[")&&e.hostname.endsWith("]");(n&&!vA(e.hostname)||r)&&hA(`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&&hA(`probe origin ${e.origin} is assigned to both ${s} and ${h.region_id}`),hA(`probe origin ${e.origin} is duplicated in region ${h.region_id}`)),c.set(e.origin,h.region_id)}}}function kA(t){let e,n;try{e="string"==typeof t?t:new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch(s){hA(`parse region probe config JSON failed: ${String(s)}`)}try{n=JSON.parse(e)}catch(s){hA(`parse region probe config JSON failed: ${String(s)}`)}const r=function(t){const e=fA(t,"region probe config"),n=fA(e.policy,"policy"),r={probe_method:pA(n.probe_method,"policy.probe_method"),samples_per_url:mA(n.samples_per_url,"policy.samples_per_url"),connect_timeout_ms:mA(n.connect_timeout_ms,"policy.connect_timeout_ms"),round_timeout_ms:mA(n.round_timeout_ms,"policy.round_timeout_ms"),max_concurrency:mA(n.max_concurrency,"policy.max_concurrency"),ip_family:pA(n.ip_family,"policy.ip_family"),minimum_valid_urls:mA(n.minimum_valid_urls,"policy.minimum_valid_urls"),confident_ratio:gA(n.confident_ratio,"policy.confident_ratio"),cache_ttl_sec:mA(n.cache_ttl_sec,"policy.cache_ttl_sec")},s=wA(e.regions,"regions").map(((t,e)=>{const n=fA(t,`regions[${e}]`),r=wA(n.probe_urls,`regions[${e}].probe_urls`).map(((t,n)=>{const r=fA(t,`regions[${e}].probe_urls[${n}]`),s={id:pA(r.id,`regions[${e}].probe_urls[${n}].id`),url:pA(r.url,`regions[${e}].probe_urls[${n}].url`)};return void 0!==r.provider&&null!==r.provider&&(s.provider=pA(r.provider,`regions[${e}].probe_urls[${n}].provider`)),s}));return{region_id:pA(n.region_id,`regions[${e}].region_id`),priority:void 0===n.priority?0:yA(n.priority,`regions[${e}].priority`),probe_urls:r}}));return{schema_version:mA(e.schema_version,"schema_version"),config_version:pA(e.config_version,"config_version"),generated_at:pA(e.generated_at,"generated_at"),expires_at:pA(e.expires_at,"expires_at"),policy:r,regions:s}}(n);return EA(r),r}function SA(t){let e;try{e=new URL(t.trim())}catch(s){hA(`invalid SN base URL for region probe config: ${String(s)}`)}"https:"!==e.protocol&&hA("region probe config must be fetched from the target SN over HTTPS"),(!e.hostname||e.username||e.password)&&hA("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 cA)if(n.endsWith(i)){r=n.slice(0,n.length-i.length);break}return e.pathname=`${r}${xb}`,e.toString()}const TA=async(t,e)=>{if("function"!=typeof globalThis.fetch)throw new Error("fetch is not available in this runtime");return globalThis.fetch(t,e)};const RA="sn-device";function CA(t){return void 0!==t.ttl?{ttl:t.ttl,value:t.value}:{value:t.value}}function IA(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 OA(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 xA(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(OA)),void 0!==t.report_seq&&(e.report_seq=t.report_seq),void 0!==t.ttl&&(e.ttl=t.ttl),e}const NA=Object.freeze(Object.defineProperty({__proto__:null,LEGACY_SN_BNS_PATH:Ob,METHOD_AUTH_CHECK_ACTIVE_CODE:Bb,METHOD_AUTH_CHECK_USERNAME:Pb,METHOD_AUTH_LOGIN:Ub,METHOD_AUTH_LOGOUT:Mb,METHOD_AUTH_ME:Fb,METHOD_AUTH_REFRESH:Lb,METHOD_AUTH_REGISTER:Db,METHOD_BNS_PUBLISH_DNS_TXT:tA,METHOD_BNS_PUBLISH_DOCUMENT:eA,METHOD_DEVICEINFO_RESOLVE_OOD_BY_DID:Zb,METHOD_DEVICEINFO_RESOLVE_OOD_BY_HOSTNAME:Xb,METHOD_DEVICE_GET:Qb,METHOD_DEVICE_LIST:Yb,METHOD_DEVICE_REGISTER:$b,METHOD_DEVICE_UPDATE:Jb,METHOD_DOMAIN_BIND:zb,METHOD_DOMAIN_UNBIND:qb,METHOD_USER_ADD_DNS_RECORD:Hb,METHOD_USER_GET_PROFILE:jb,METHOD_USER_LIST_DNS_RECORDS:Vb,METHOD_USER_REMOVE_DNS_RECORD:Wb,METHOD_USER_SET_SELF_CERT:Gb,METHOD_ZONE_GET_INFO:Kb,SN_AUTH_PATH:Rb,SN_BNS_PROXY_PATH:Ib,SN_DEVICEINFO_PATH:Cb,SN_DEVICE_TOKEN_AUD:RA,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:xb,SN_REGION_PROBE_FETCH_TIMEOUT:5e3,SN_REGION_PROBE_MAX_CONFIG_BYTES:Nb,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:Tb,SnClient:class{constructor(t,e=null,n={}){this.authRpc=new Gn(aA(t,"auth"),e,null,n),this.deviceInfoRpc=new Gn(aA(t,"deviceinfo"),e,null,n),this.bnsProxyRpc=new Gn(aA(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 rA.fromRpcError(e,r)}}async checkUsername(t){return this.call(this.authRpc,Pb,{name:t})}async checkActiveCode(t){return this.call(this.authRpc,Bb,{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,Db,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,Ub,e)}async refresh(t){return this.call(this.authRpc,Lb,{refresh_token:t})}async logout(t){return this.call(this.authRpc,Mb,{refresh_token:t??null})}async me(){return this.call(this.authRpc,Fb,{})}async getProfile(){return this.call(this.authRpc,jb,{})}async setSelfCert(t,e){return this.call(this.authRpc,Gb,{self_cert:t,device_did:e??null})}async addDnsRecord(t){return this.call(this.authRpc,Hb,IA(t))}async removeDnsRecord(t){return this.call(this.authRpc,Wb,IA(t))}async listDnsRecords(){return this.call(this.authRpc,Vb,{})}async getZoneInfo(){return this.call(this.authRpc,Kb,{})}async bindDomain(t){return this.call(this.authRpc,zb,{domain:t})}async unbindDomain(t){return this.call(this.authRpc,qb,{domain:t})}async registerDeviceOnline(t){return this.call(this.deviceInfoRpc,$b,xA(t))}async updateDeviceOnline(t){return this.call(this.deviceInfoRpc,Jb,xA(t))}async getDeviceOnline(t){return this.call(this.deviceInfoRpc,Qb,{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,Yb,e)}async resolveOodByDid(t){return this.call(this.deviceInfoRpc,Zb,{source_device_id:t})}async resolveOodByHostname(t){return this.call(this.deviceInfoRpc,Xb,{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 rA("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 rA("validation","publish_dns_txt mode=remove requires value");e.value=t.value;break;case"replace":if(!t.records)throw new rA("validation","publish_dns_txt mode=replace requires records");e.records=t.records.map(CA);break;default:throw new rA("validation",`publish_dns_txt mode \`${t.mode}\` is not supported`)}return this.call(this.bnsProxyRpc,tA,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 rA("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 rA("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,eA,s)}},SnClientError:rA,fetchSnRegionProbeConfig:async function(t,e=null,n={}){const r=SA(t),s={Accept:"application/json"};null!==e&&(/[\u0000-\u001f\u007f]/.test(e)&&hA("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??TA)(r,{method:"GET",headers:s,redirect:"manual",credentials:"omit",signal:i.signal})}catch(a){throw new rA("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 rA("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 rA("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)>Nb)throw new rA("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>Nb)throw new rA("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>Nb)throw await n.cancel(),new rA("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 rA)throw a;throw new rA("transport",`read SN region probe config from ${r} failed: ${String(a)}`)}try{l=kA(c)}catch(a){const t=a instanceof rA?a.detail:String(a);throw new rA("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:RA,exp:s+r,iss:e,sub:t},n)},isCanonicalSnRegionId:bA,isPublicSnProbeIp:vA,normalizeSnRegionIdHint:function(t){const e=t.trim();if(0===dA(e)||dA(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:SA,normalizeSnUrl:aA,parseSnRegionProbeConfig:kA,validateSnRegionProbeConfig:EA},Symbol.toStringTag,{value:"Module"}));let PA=null;function BA(t,e){let n=null,r=0;const s=[];return{result:new Promise(((i,o)=>{let a;try{a=new Worker(function(){if(!PA){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"});PA=URL.createObjectURL(t)}return PA}())}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 DA extends Error{constructor(t,e){super(e??t),this.code=t,this.name="NdmError"}}class UA 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 LA=4096,MA=new Map;let FA=0;let jA={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 DA("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 DA("USER_CANCELLED","No files selected"))}));const i=()=>{setTimeout((()=>{s||(s=!0,n(new DA("USER_CANCELLED","User cancelled file selection"))),window.removeEventListener("focus",i)}),500)};window.addEventListener("focus",i),r.click()}))}};function GA(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 HA(t){return t.replace(/\/+$/,"")}function WA(t){return encodeURIComponent(t).replace(/%3A/gi,":")}function VA(t){if(null==t?void 0:t.endpoint)return HA(t.endpoint);const e=Di();if(e)return HA(e);throw new DA("STORE_API_ENDPOINT_REQUIRED","NDM structured store endpoint is unknown; pass options.endpoint or call initBuckyOS first")}async function KA(t,e,n){var r;!function(){if(Bi()===Hs.Browser)throw new DA("STORE_API_NOT_SUPPORTED_IN_RUNTIME","NDM structured store APIs are not available in pure Browser runtime")}();const s=VA(n),i=(null==n?void 0:n.fetcher)??GA,o=void 0!==(null==n?void 0:n.sessionToken)?n.sessionToken:await Ui(),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 UA(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 zA(t,e){const n=[`scope=${WA(t.scope)}`,`quick_hash=${WA(t.quick_hash)}`];t.inner_path&&n.push(`inner_path=${WA(t.inner_path)}`);const r=await async function(t,e){const n=VA(e),r=(null==e?void 0:e.fetcher)??GA,s=void 0!==(null==e?void 0:e.sessionToken)?e.sessionToken:await Ui(),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 UA(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 qA(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 $A(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 qA(t,n);let r;try{const s=BA(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 qA(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 JA(t,e,n){const r=new Mn.FileObject(t,e,n),[s]=r.genObjId();return{objectId:s.toString(),fileObject:r.toJSON()}}async function QA(t){const e=t.size;if(e<12288)return null;const n=new Uint8Array(await t.slice(0,LA).arrayBuffer()),r=Math.floor(e/2),s=new Uint8Array(await t.slice(r,r+LA).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 YA(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 ZA(t){const e=function(){var t;const e=Di();return e?HA(e):"undefined"!=typeof window&&(null==(t=window.location)?void 0:t.origin)?HA(window.location.origin):void 0}();if(!e)return null;const n=await QA(t);if(!n)return null;for(const s of["app","global"])try{const r=YA(await zA({scope:s,quick_hash:n},{endpoint:e,sessionToken:Bi()===Hs.Browser?null:void 0}),n);if(!r)continue;return{...JA(t.name,t.size,r),locality:"store"}}catch(r){if(r instanceof UA&&404===r.status)continue;return null}return null}function XA(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 tv(r),r}function tv(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 DA("UPLOAD_FAILED",`Missing NDN FileObject for ${r.name}`);e.addFile(r.name,r._ndnFileObject,r.size)}else{const t=tv(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 ev(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 nv(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 rv(t){const e=MA.get(t);if(!e)throw new DA("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 sv(t,e,n,r,s,i,o,a){const c=e.slice(n.offset,n.offset+n.length),l=new Uint8Array(await c.arrayBuffer()),u=`${s}/${n.chunkId}`;let h;try{h=await Promise.resolve().then((()=>require("./tus_client-32d016c4.js")))}catch(d){const t=d instanceof Error?d.message:String(d);throw new DA("UPLOAD_FAILED",`Failed to load tus-js-client: ${t}`)}return new Promise(((c,d)=>{if(null==a?void 0:a.aborted)return void d(new DA("UPLOAD_FAILED","Upload aborted"));const f=new Blob([l]),p=new h.Upload(f,{endpoint:`${t}/ndm/v1/uploads`,chunkSize:l.length,retryDelays:[0,1e3,3e3,5e3],storeFingerprintForResuming:!1,metadata:{app_id:s,logical_path:u,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=>{o(t)},onSuccess:()=>{o(l.length),c(n.chunkId)},onError:t=>{d(new DA("UPLOAD_FAILED",t.message))}});a&&a.addEventListener("abort",(()=>{p.abort(!0),d(new DA("UPLOAD_FAILED","Upload aborted"))})),p.start()}))}async function iv(t,e){const n=MA.get(t);if(!n)throw new DA("SESSION_NOT_FOUND",`Session ${t} not found`);if("completed"===n.uploadStatus||"not_required"===n.uploadStatus)return rv(t);if("uploading"===n.uploadStatus)return rv(t);if("all_in_store"===n.materializationStatus)return n.uploadStatus="not_required",rv(t);n.uploadStatus="uploading",n.uploadStartTime=Date.now(),n.abortController=new AbortController;const r=(null==e?void 0:e.concurrency)??3;let s;return s=(null==e?void 0:e.endpoint)?e.endpoint.replace(/\/+$/,""):"undefined"!=typeof window?window.location.origin:"",async function(t,e,n){const r=Array.from(t.objectStates.values()).filter((t=>"completed"!==t.state));let s=0,i=0,o=!1;await new Promise(((a,c)=>{function l(){if(!o){if(i>=r.length&&0===s){const e=Array.from(t.objectStates.values()).every((t=>"completed"===t.state));return t.uploadStatus=e?"completed":"failed",void a()}for(;s<n&&i<r.length;){const n=r[i++];s++,ov(t,e,n).then((()=>{s--,l()})).catch((()=>{s--,o||(o=!0,t.uploadStatus="failed",c(new DA("UPLOAD_FAILED",`Upload of ${n.name} failed`)))}))}}}l()}))}(n,s,r).catch((()=>{})),rv(t)}async function ov(t,e,n){var r;n.state="uploading";for(const[s,i]of n.chunks.entries())i.uploaded||(await sv(e,n.file,i,s,"default",n.objectId,(t=>{const e=n.chunks.filter((t=>t!==i&&t.uploaded)).reduce(((t,e)=>t+e.length),0);n.uploadedBytes=e+t}),null==(r=t.abortController)?void 0:r.signal),i.uploaded=!0);n.uploadedBytes=n.size,n.state="completed"}const av=Object.freeze(Object.defineProperty({__proto__:null,NdmError:DA,NdmStoreApiError:UA,addChunkBySameAs:async function(t,e){return KA("add_chunk_by_same_as",t,e)},anchorState:async function(t,e){return KA("anchor_state",t,e)},applyEdge:async function(t,e){return KA("apply_edge",t,e)},calculateQcidFromFile:async function(t){const e=await QA(t);if(!e)throw new Error("QCID requires file size >= 12288 bytes");return e},debugDumpExpandState:async function(t,e){return KA("debug_dump_expand_state",t,e)},forcedGcUntil:async function(t,e){return KA("forced_gc_until",t,e)},fsAcquire:async function(t,e){return KA("fs_acquire",t,e)},fsAnchorState:async function(t,e){return KA("fs_anchor_state",t,e)},fsRelease:async function(t,e){return KA("fs_release",t,e)},fsReleaseInode:async function(t,e){return KA("fs_release_inode",t,e)},getDirChild:async function(t,e){return KA("get_dir_child",t,e)},getImportProvider:function(){return jA},getImportSessionStatus:rv,getObject:async function(t,e){return KA("get_object",t,e)},getUploadProgress:async function(t){const e=await rv(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=MA.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 KA("have_chunk",t,e)},isObjectExist:async function(t,e){return KA("is_object_exist",t,e)},isObjectStored:async function(t,e){return KA("is_object_stored",t,e)},lookupObject:zA,openObject:async function(t,e){return KA("open_object",t,e)},outboxCount:async function(t){return KA("outbox_count",{},t)},pickupAndImport:async function(t){var e;const n=jA.getCapabilities();if("single_dir"===t.mode&&!n.canPickDirectory)throw new DA("DIRECTORY_NOT_SUPPORTED","Current runtime does not support directory selection");if("mixed"===t.mode&&!n.canPickMixed)throw new DA("MODE_NOT_SUPPORTED_IN_RUNTIME","Current runtime does not support mixed file/directory selection");const r=await jA.pickFiles(t);if(0===r.length)throw new DA("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 ZA(n);let h=null;u||(a&&a({phase:"materializing",fileIndex:y,fileCount:c,fileName:n.name,bytesProcessed:0,fileTotalBytes:n.size}),h=await $A(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(ev(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 nv(n,t.thumbnails):(g.thumbnail={available:!1},nv(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=XA(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=(FA+=1,`import-${Date.now()}-${FA}`);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};MA.set(d,g);const m={sessionId:d,selection:u,items:l,materializationStatus:f,uploadStatus:p,summary:h};return t.autoStartUpload&&"not_started"===p&&(iv(d).catch((()=>{})),m.uploadStatus="uploading"),m},pin:async function(t,e){return KA("pin",t,e)},putObject:async function(t,e){return KA("put_object",t,e)},queryChunkState:async function(t,e){return KA("query_chunk_state",t,e)},queryObjectById:async function(t,e){return KA("query_object_by_id",t,e)},removeChunk:async function(t,e){return KA("remove_chunk",t,e)},removeObject:async function(t,e){return KA("remove_object",t,e)},setImportProvider:function(t){jA=t},startUpload:iv,unpin:async function(t,e){return KA("unpin",t,e)},unpinOwner:async function(t,e){return KA("unpin_owner",t,e)}},Symbol.toStringTag,{value:"Module"})),cv="/ndm/proxy/v1";class lv 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 uv extends Error{constructor(t,e){super(e??t),this.name="NdmProxyError",this.code=t}}function hv(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 dv(t){return t.replace(/\/+$/,"")}function fv(){const t=Bi();if(t===Hs.Browser||t===Hs.AppRuntime)throw new uv("PROXY_API_NOT_SUPPORTED_IN_RUNTIME","NDM proxy APIs are not available in Browser/AppRuntime; use ndm_client for browser import/upload flows")}function pv(t){if(null==t?void 0:t.endpoint)return dv(t.endpoint);const e=Di();if(e)return dv(e);throw new uv("PROXY_API_ENDPOINT_REQUIRED","NDM proxy endpoint is unknown; pass options.endpoint or call initBuckyOS first")}async function gv(t,e){const n=void 0!==(null==t?void 0:t.sessionToken)?t.sessionToken:await Ui(),r={...e,...(null==t?void 0:t.headers)??{}};return n&&!r.Authorization&&(r.Authorization=`Bearer ${n}`),r}async function mv(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 lv(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 yv(t,e,n){var r;fv();const s=pv(n),i=(null==n?void 0:n.fetcher)??hv,o=await gv(n,{Accept:"application/json","Content-Type":"application/json"}),a=await i(`${s}${cv}/rpc/${t}`,{method:"POST",headers:o,body:JSON.stringify(e),credentials:(null==n?void 0:n.credentials)??"include"});if(!a.ok)return mv(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 lv(a.status,"invalid_data",t.length>0?t:"NDM proxy JSON RPC returned a non-JSON response",t)}return await a.json()}function wv(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 bv(t,e,n){fv();const r=pv(n),s=(null==n?void 0:n.fetcher)??hv,i=await gv(n,{Accept:"application/octet-stream","Content-Type":"application/json"}),o=await s(`${r}${cv}${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:wv(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:wv(o.headers,"Content-Length"),offset:wv(o.headers,"NDM-Offset")}:mv(o)}async function Av(t){const e=await t.response.arrayBuffer();return new Uint8Array(e)}class vv{constructor(t){this.options=t}getObject(t,e){return Sv(t,{...this.options,...e})}openObject(t,e){return Tv(t,{...this.options,...e})}getDirChild(t,e){return Rv(t,{...this.options,...e})}isObjectStored(t,e){return Cv(t,{...this.options,...e})}isObjectExist(t,e){return Iv(t,{...this.options,...e})}queryObjectById(t,e){return Ov(t,{...this.options,...e})}putObject(t,e){return xv(t,{...this.options,...e})}removeObject(t,e){return Nv(t,{...this.options,...e})}haveChunk(t,e){return Pv(t,{...this.options,...e})}queryChunkState(t,e){return Bv(t,{...this.options,...e})}removeChunk(t,e){return Dv(t,{...this.options,...e})}addChunkBySameAs(t,e){return Uv(t,{...this.options,...e})}applyEdge(t,e){return Lv(t,{...this.options,...e})}pin(t,e){return Mv(t,{...this.options,...e})}unpin(t,e){return Fv(t,{...this.options,...e})}unpinOwner(t,e){return jv(t,{...this.options,...e})}fsAcquire(t,e){return Gv(t,{...this.options,...e})}fsRelease(t,e){return Hv(t,{...this.options,...e})}fsReleaseInode(t,e){return Wv(t,{...this.options,...e})}fsAnchorState(t,e){return Vv(t,{...this.options,...e})}forcedGcUntil(t,e){return Kv(t,{...this.options,...e})}outboxCount(t){return zv({...this.options,...t})}debugDumpExpandState(t,e){return qv(t,{...this.options,...e})}anchorState(t,e){return $v(t,{...this.options,...e})}}class _v{constructor(t){this.options=t}openChunkReader(t,e){return Jv(t,{...this.options,...e})}getChunkData(t,e){return Qv(t,{...this.options,...e})}getChunkPiece(t,e){return Yv(t,{...this.options,...e})}openChunkListReader(t,e){return Zv(t,{...this.options,...e})}openReader(t,e){return Xv(t,{...this.options,...e})}}class Ev{constructor(t){this.options=t}putChunkByReader(t,e,n){return t_(t,e,{...this.options,...n})}putChunk(t,e,n){return e_(t,e,{...this.options,...n})}}class kv{constructor(t){this.options=t,this.rpc=new vv(t),this.reader=new _v(t),this.writer=new Ev(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 kv({...this.options,...t})}}async function Sv(t,e){return yv("get_object",t,e)}async function Tv(t,e){return yv("open_object",t,e)}async function Rv(t,e){return yv("get_dir_child",t,e)}async function Cv(t,e){return yv("is_object_stored",t,e)}async function Iv(t,e){return yv("is_object_exist",t,e)}async function Ov(t,e){return yv("query_object_by_id",t,e)}async function xv(t,e){return yv("put_object",t,e)}async function Nv(t,e){return yv("remove_object",t,e)}async function Pv(t,e){return yv("have_chunk",t,e)}async function Bv(t,e){return yv("query_chunk_state",t,e)}async function Dv(t,e){return yv("remove_chunk",t,e)}async function Uv(t,e){return yv("add_chunk_by_same_as",t,e)}async function Lv(t,e){return yv("apply_edge",t,e)}async function Mv(t,e){return yv("pin",t,e)}async function Fv(t,e){return yv("unpin",t,e)}async function jv(t,e){return yv("unpin_owner",t,e)}async function Gv(t,e){return yv("fs_acquire",t,e)}async function Hv(t,e){return yv("fs_release",t,e)}async function Wv(t,e){return yv("fs_release_inode",t,e)}async function Vv(t,e){return yv("fs_anchor_state",t,e)}async function Kv(t,e){return yv("forced_gc_until",t,e)}async function zv(t){return yv("outbox_count",{},t)}async function qv(t,e){return yv("debug_dump_expand_state",t,e)}async function $v(t,e){return yv("anchor_state",t,e)}async function Jv(t,e){return bv("/read/chunk/open",t,e)}async function Qv(t,e){return Av(await bv("/read/chunk/data",t,e))}async function Yv(t,e){return Av(await bv("/read/chunk/piece",t,e))}async function Zv(t,e){return bv("/read/chunklist/open",t,e)}async function Xv(t,e){return bv("/read/object/open",t,e)}async function t_(t,e,n){var r;fv();const s=pv(n),i=(null==n?void 0:n.fetcher)??hv,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 uv("PROXY_API_CHUNK_SIZE_REQUIRED","chunkSize is required when the request body length cannot be inferred");const c=await gv(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`${cv}/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:wv(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}):mv(l)}async function e_(t,e,n){return t_(t,e,{...n,chunkSize:(null==n?void 0:n.chunkSize)??e.byteLength})}const n_=Object.freeze(Object.defineProperty({__proto__:null,NDM_PROXY_V1_PATH:cv,NdmProxyApiError:lv,NdmProxyClient:kv,NdmProxyError:uv,NdmProxyReaderClient:_v,NdmProxyRpcClient:vv,NdmProxyWriterClient:Ev,addChunkBySameAs:Uv,anchorState:$v,applyEdge:Lv,createNdmProxyClient:function(t){return new kv(t)},debugDumpExpandState:qv,forcedGcUntil:Kv,fsAcquire:Gv,fsAnchorState:Vv,fsRelease:Hv,fsReleaseInode:Wv,getChunkData:Qv,getChunkPiece:Yv,getDirChild:Rv,getObject:Sv,haveChunk:Pv,isObjectExist:Iv,isObjectStored:Cv,openChunkListReader:Zv,openChunkReader:Jv,openObject:Tv,openReader:Xv,outboxCount:zv,pin:Mv,putChunk:e_,putChunkByReader:t_,putObject:xv,queryChunkState:Bv,queryObjectById:Ov,removeChunk:Dv,removeObject:Nv,unpin:Fv,unpinOwner:jv},Symbol.toStringTag,{value:"Module"}));exports.AGENT_DELEGATE_TASK_SCHEMA_ID="agent.delegate/v1",exports.AICC_AI_METHODS=zr,exports.AICC_COMPUTE_TASK_SCHEMA_ID="aicc.compute/v1",exports.AICC_CONTROL_METHODS=qr,exports.AICC_FEATURES={PLAN:"plan",TOOL_CALLING:"tool_calling",JSON_OUTPUT:"json_output",WEB_SEARCH:"web_search",VISION:"vision",ASR:"asr",VIDEO_UNDERSTAND:"video_understand"},exports.AICC_SERVICE_NAME=Vr,exports.AICC_SERVICE_SERVICE_NAME=Kr,exports.AICC_SERVICE_SERVICE_PORT=4040,exports.AICC_SERVICE_UNIQUE_ID="aicc",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=us,exports.BNS_DNS_TXT_DEFAULT_TTL=600,exports.BNS_DNS_TXT_DOC_TYPE=hb,exports.BNS_EVM_DEFAULT_GAS_LIMIT=ab,exports.BNS_EVM_DEFAULT_MAX_FEE_PER_GAS=cb,exports.BNS_EVM_DEFAULT_MAX_PRIORITY_FEE_PER_GAS=lb,exports.BNS_MAX_INLINE_DOCUMENT_BYTES=ub,exports.BNS_PUBLISH_DOCUMENT_ABI=fb,exports.BS_SERVICE_TASK_MANAGER="task-manager",exports.BS_SERVICE_VERIFY_HUB="verify-hub",exports.BnsEvmTxBuilder=vb,exports.BnsEvmTxError=yb,exports.BnsTxExecutor=class{constructor(t={}){this.localExecutionTail=Promise.resolve(),this.options=t,this.evmTxBuilder=t.bnsClient&&t.evmConfig?new vb(t.bnsClient,t.evmConfig,t.evmProvider):null}async resolveRoute(){const t=this.getRuntimeType(),e=kb(t)?await this.getLocalPrivateKey():null;return this.resolveRouteFor(t,e)}async resolveRouteFor(t,e){if(kb(t)&&this.options.evmConfig&&e)return"local";if(t===Hs.AppRuntime){const t=await this.getCurrentWalletUser();if(t&&!Sb(t))return"wallet"}return"sn-proxy"}async execute(t){const e=this.getRuntimeType(),n=kb(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 _b("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??Bi)()}getCurrentWalletUser(){return Promise.resolve((this.options.getCurrentWalletUser??Ti)())}async getLocalPrivateKey(){const t=this.options.localPrivateKey;return Eb("function"==typeof t?await t():t)}async executeWithSn(t){const e=this.options.snClient;if(!e)throw new _b("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 _b("BNS_CLIENT_UNAVAILABLE","local",`BNS client is required for local operation ${t.type}`);const s=this.evmTxBuilder;if(!n||!s)throw new _b("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=_b,exports.BuckyOSSDK=Li,exports.DEFAULT_CHILD_CONTROL_POLICY={follow_pause:!0,follow_resume:!0,follow_cancel:!0},exports.DOWNLOAD_TASK_SCHEMA_ID="download/v1",exports.HUMAN_APPROVAL_SCHEMA_ID="human.approval/v1",exports.HUMAN_INPUT_TASK_SCHEMA_ID="human.input/v1",exports.KEventClient=Ei,exports.KEventReader=wi,exports.MsgCenterClient=vs,exports.MsgQueueClient=gs,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.RepoClient=Cs,exports.RuntimeType=Hs,exports.SCHEDULER_DISPATCH_THUNK_TASK_SCHEMA_ID="scheduler.dispatch_thunk/v1",exports.StorageDomain=Er,exports.SystemConfigClient=Wr,exports.TASK_ERR_ALREADY_COMPLETED=ar,exports.TASK_ERR_CONTROL_ALREADY_PENDING=or,exports.TASK_ERR_CONTROL_NOT_AVAILABLE=ir,exports.TASK_ERR_IDEMPOTENCY_CONFLICT=ur,exports.TASK_ERR_INPUT_SCHEMA_MISMATCH=cr,exports.TASK_ERR_INVALID_PHASE=sr,exports.TASK_ERR_NOT_FOUND=tr,exports.TASK_ERR_PERMISSION_DENIED=er,exports.TASK_ERR_RESULT_SCHEMA_MISMATCH=lr,exports.TASK_ERR_REVISION_CONFLICT=nr,exports.TASK_ERR_SCHEMA_NOT_FOUND=hr,exports.TASK_ERR_STALE_RUNNER_EPOCH=rr,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=dr,exports.TASK_POLICY_PRESET_COLLABORATIVE_TREE_V1="collaborative-tree/v1",exports.TOOL_EXEC_BASH_TASK_SCHEMA_ID="tool.exec_bash/v1",exports.TaskAction=Ar,exports.TaskControlAction=br,exports.TaskDataScope=_r,exports.TaskEventType=kr,exports.TaskExecutorKind=pr,exports.TaskGrantScope=vr,exports.TaskManagerClient=Cr,exports.TaskOutcome=wr,exports.TaskPhase=gr,exports.TaskWaitReasonKind=yr,exports.VerifyHubClient=Xn,exports.WEB3_BRIDGE_HOST="web3.buckyos.ai",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=Gr,exports.WorkflowDefinitionStatus=Pr,exports.WorkflowHumanActionKind=Ur,exports.WorkflowJoinMode=xr,exports.WorkflowNodeRunState=Dr,exports.WorkflowOutputMode=Or,exports.WorkflowRetryFallback=Nr,exports.WorkflowRunStatus=Br,exports.WorkflowScheduledTaskFireStatus=Fr,exports.WorkflowScheduledTaskMisfirePolicy=Mr,exports.WorkflowScheduledTaskStatus=Lr,exports.WorkflowStepType=Ir,exports.aiccEstimateMessageTextLen=function(t){return t.content.reduce(((t,e)=>{var n,r;return"text"===e.type?t+e.text.length:"thinking"===e.type?t+((null==(n=e.summary)?void 0:n.length)??0)+((null==(r=e.text)?void 0:r.length)??0):t+256}),0)},exports.aiccMessageFirstText=function(t){var e;return null==(e=t.content.find((t=>"text"===t.type)))?void 0:e.text},exports.aiccMessageTextContent=Xr,exports.aiccRenderMessageForDebug=function(t){return t.content.map(rs).join("")},exports.aiccResponseArtifacts=function(t){const e=[];return t.message.content.forEach(((t,n)=>{"image"===t.type&&e.push({name:`image_${n+1}`,resource:t.source,mime:ss(t.source)}),"document"===t.type&&e.push({name:t.title??`document_${n+1}`,resource:t.source,mime:ss(t.source)})})),e},exports.aiccResponseTextContent=function(t){return Xr(t.message)},exports.aiccResponseToolCalls=function(t){return t.message.content.filter((t=>"tool_use"===t.type)).map((t=>({name:t.name,args:t.args,call_id:t.call_id})))},exports.aiccTextMessage=function(t,e){return{role:t,content:[{type:"text",text:e}]}},exports.appDidFromId=function(t){return Mn.DID.fromStr(Ns(t)).toString()},exports.appIdFromDid=xs,exports.baselineTaskControlProfile=function(t){return{pause:{kind:"Unavailable"},resume:{kind:"Unavailable"},cancel:{kind:"Interrupt"},updated_at:t}},exports.bns_client=zo,exports.createAppInstanceId=Bs,exports.createSDKModule=function(t){const e=new Li(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),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:Gn,AuthClient:Wn,...n,hashPassword:qn}}},exports.decodeBnsPublishDocumentCalldata=function(t){return pb.decodeFunctionData("publishDocument",t)},exports.getActiveRuntimeType=Bi,exports.getActiveSessionToken=Ui,exports.getActiveZoneGatewayOrigin=Di,exports.getCurrentWalletUserFromHost=Ti,exports.hashPassword=qn,exports.isAiccAiMethod=Zr,exports.isTerminalTaskPhase=mr,exports.ndm_client=av,exports.ndm_proxy=n_,exports.parseAppId=Ns,exports.parseAppInstanceId=Ds,exports.parseSessionTokenClaims=Qs,exports.resolveDidFromHost=Ri,exports.sn_client=NA,exports.taskMgrErrorCode=fr,exports.taskMgrTaskEventPath=function(t){return`/task_mgr/${t}`},exports.taskMgrTreeEventPath=function(t){return`/task_mgr/tree/${t}`},exports.validateAiccMessage=ts,exports.validateAiccMessages=es,exports.validateAiccResponse=ns,exports.walletUserHasSnAccount=Sb;
|
|
13
|
+
//# sourceMappingURL=ndm_proxy-20e0a471.js.map
|