@stakekit/widget 0.0.292 → 0.0.294
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/{DateTime-BBRIKkPv.js → DateTime-CMMZj2i-.js} +54 -54
- package/dist/bundle/{assets-vw12jo1v.js → assets-Bc9gJ-IT.js} +6 -6
- package/dist/bundle/{cardano-connector-DCWdS4Lt.js → cardano-connector-4FH7sm5s.js} +2 -2
- package/dist/bundle/{configured-chains-Bc6_pgMo.js → configured-chains-DF5IpaPp.js} +1 -1
- package/dist/bundle/{cosmos-connector-meta-Br67nymZ.js → cosmos-connector-meta-BKRBGzAs.js} +1 -1
- package/dist/bundle/index.bundle.css +1 -1
- package/dist/bundle/index.bundle.js +15768 -15242
- package/dist/bundle/{ledger-connector-wZ-AWITi.js → ledger-connector-Em3Ex6Ns.js} +5 -5
- package/dist/bundle/{network-D8-Flo2u.js → network-D2ajkWp0.js} +1 -1
- package/dist/bundle/{reward-rate-chart-B41r4AU4.js → reward-rate-chart-6q6gJawR.js} +4 -4
- package/dist/bundle/{solana-connector-CXe_nU4I.js → solana-connector-DHrdMGZC.js} +3 -3
- package/dist/bundle/{stellar-connector-Cdl9Hnba.js → stellar-connector-DkR_jg41.js} +2 -2
- package/dist/bundle/{styles.css-BJ7-ORZP.js → styles.css-DQG3ba8V.js} +6 -6
- package/dist/bundle/{substrate-connector-DFeFqV_q.js → substrate-connector-CzewVoQ6.js} +1 -1
- package/dist/bundle/{ton-connector-CWmOukzn.js → ton-connector-CcahoFeW.js} +3 -3
- package/dist/bundle/{transaction-BwhgjU0e.js → transaction-BGiGADTK.js} +1 -1
- package/dist/bundle/{transaction-CUoDE6CU.js → transaction-BvpQWKqm.js} +1 -1
- package/dist/bundle/{transaction-B8S7Vgaq.js → transaction-CD_QhA6u.js} +2 -2
- package/dist/bundle/{transaction-DxrR2BHC.js → transaction-CiEShf7a.js} +1 -1
- package/dist/bundle/{tron-connector--M_0_Iy7.js → tron-connector-Dy_36o_J.js} +3 -3
- package/dist/bundle/{utils-CoW929-6.js → utils-BMTuLksW.js} +1 -1
- package/dist/bundle/{wallet-manager-C3rmOq7t.js → wallet-manager-BLaLHs2U.js} +11 -11
- package/dist/package/{DateTime-DJZXpaqx.js → DateTime-CGVpQQm9.js} +24 -2
- package/dist/package/{assets-BuIo5TOF.js → assets-CEn8BPdT.js} +1 -1
- package/dist/package/{cardano-connector-DIZuipB7.js → cardano-connector-BDWTBXaS.js} +2 -2
- package/dist/package/{configured-chains-B6PD9hvx.js → configured-chains-CRuy8tse.js} +1 -1
- package/dist/package/{cosmos-connector-meta-CgvZWkLV.js → cosmos-connector-meta-B-ke1Dvw.js} +1 -1
- package/dist/package/index.package.css +162 -162
- package/dist/package/index.package.js +4126 -3050
- package/dist/package/{ledger-connector-B3kEcKjM.js → ledger-connector-BQDRUjOJ.js} +5 -5
- package/dist/package/{network-B4Qs3uRl.js → network-K03Uj00V.js} +1 -1
- package/dist/package/{reward-rate-chart-B42ZCby7.js → reward-rate-chart-DBx39GdL.js} +2 -2
- package/dist/package/{solana-connector-VG2pC1EJ.js → solana-connector-fL70NOkD.js} +3 -3
- package/dist/package/{stellar-connector-DO9tJUOg.js → stellar-connector-C_33sqO5.js} +2 -2
- package/dist/package/{styles.css-DwJjrmLr.js → styles.css-BOghDWGq.js} +1 -1
- package/dist/package/{substrate-connector-P80MVt5T.js → substrate-connector-Cr7LEt2o.js} +1 -1
- package/dist/package/{ton-connector-3rqiqNZO.js → ton-connector-81-rUhzX.js} +3 -3
- package/dist/package/{transaction-DTbU7sxm.js → transaction-BHIZ9rKF.js} +1 -1
- package/dist/package/{transaction-CuMGfUeE.js → transaction-C5e_gCK6.js} +1 -1
- package/dist/package/{transaction-V39s0qKU.js → transaction-DMMfLvk1.js} +2 -2
- package/dist/package/{transaction-Do_oUKxl.js → transaction-DgdU5pHH.js} +1 -1
- package/dist/package/{tron-connector-CKUZFHDh.js → tron-connector-Cuez3U16.js} +3 -3
- package/dist/package/{wallet-manager-CioQJQ5H.js → wallet-manager-DWFwmdLb.js} +2 -2
- package/dist/types/domain/earn/contract.d.ts +1 -0
- package/dist/types/generated/yield-provider-ids.d.ts +86 -0
- package/dist/types/index.bundle.d.ts +2 -2
- package/dist/types/index.package.d.ts +2 -2
- package/dist/types/public-api/types.d.ts +21 -3
- package/dist/website/assets/AlertController-Dd3t1FDe.js +1 -0
- package/dist/website/assets/{CaipNetworkUtil-CIgzbD6k.js → CaipNetworkUtil-CyIDQhS0.js} +1 -1
- package/dist/website/assets/DateTime-ByC3zr_K.js +1 -0
- package/dist/website/assets/{HelpersUtil-BokHy7la.js → HelpersUtil-Bpil3MMz.js} +1 -1
- package/dist/website/assets/ModalController-BhWRBcfd.js +5 -0
- package/dist/website/assets/{albedo.module-Dn9vkw3f.js → albedo.module-DkOe0Unb.js} +1 -1
- package/dist/website/assets/assets-DXO6qW6R.js +2 -0
- package/dist/website/assets/{axios-Dl6BaS8Y.js → axios-rFNl7rAx.js} +2 -2
- package/dist/website/assets/{base-signer-b1ff2VPI-DF_m1Hx-.js → base-signer-b1ff2VPI-DEykpag5.js} +1 -1
- package/dist/website/assets/{basic-Bt_YnOIC.js → basic-By5_muQ4.js} +1 -1
- package/dist/website/assets/bignumber-FohbSRh0.js +1 -0
- package/dist/website/assets/blakejs-x6iaQxOd.js +3 -0
- package/dist/website/assets/bn-Ck4DeaX2.js +1 -0
- package/dist/website/assets/{browser-ponyfill-_v4sZCld.js → browser-ponyfill-lHyeX8iJ.js} +1 -1
- package/dist/website/assets/{bs58-CiFyCgrv.js → bs58-gzsgdke5.js} +1 -1
- package/dist/website/assets/{build-DM4Sawu1.js → build-ClRxYQRR.js} +1 -1
- package/dist/website/assets/{build-Butjcagw.js → build-TBrHU398.js} +1 -1
- package/dist/website/assets/{build-B5AnTSOq.js → build-Tl3I8dhV.js} +1 -1
- package/dist/website/assets/{cardano-connector-BC5bF4Y2.js → cardano-connector-8El4Ztf_.js} +9 -9
- package/dist/website/assets/{configured-chains-Bp7rWkOZ.js → configured-chains-DQ_M8-li.js} +1 -1
- package/dist/website/assets/core-BiDQVY37.js +2 -0
- package/dist/website/assets/{cosmos-connector-meta-CZFaunIB.js → cosmos-connector-meta-DRTieEt0.js} +1 -1
- package/dist/website/assets/dist-BVuLBvyS.js +7 -0
- package/dist/website/assets/{dist-BKdXTi2f.js → dist-Bo7ZdXT8.js} +3 -3
- package/dist/website/assets/{dist-7PipG_eL.js → dist-DlLKQSrv.js} +3 -3
- package/dist/website/assets/dist-ZKTSEBXW.js +1 -0
- package/dist/website/assets/{elliptic-j9CClrcl.js → elliptic-BdE4gFqn.js} +2 -2
- package/dist/website/assets/{esm-DVfwo40P.js → esm-BjyHrLEJ.js} +1 -1
- package/dist/website/assets/events-CMzhc0tf.js +1 -0
- package/dist/website/assets/{extrinsic-encoding-B3zynq2U.js → extrinsic-encoding-BIj1XBpl.js} +1 -1
- package/dist/website/assets/{features-LE43LGiF.js → features-Cy1CFK9a.js} +1 -1
- package/dist/website/assets/{fhevm-relayer-DXLb4mIw-bVmGMiQn.js → fhevm-relayer-DXLb4mIw-Bbrz0cha.js} +5 -3
- package/dist/website/assets/freighter.module-DsmrpiWT.js +1 -0
- package/dist/website/assets/index-7hHJ2eI5.js +558 -0
- package/dist/website/assets/index-zFAIWvcU.css +1 -0
- package/dist/website/assets/{index.es-D6B6PG3M.js → index.es-BGzDKZr_.js} +1 -1
- package/dist/website/assets/index.es-BHs2-Pa6.js +1 -0
- package/dist/website/assets/{index.es-wqX1ruQA.js → index.es-Bpga9r91.js} +5 -5
- package/dist/website/assets/{kms_lib-mPebVu09.js → kms_lib-BgnOy0xU.js} +1 -1
- package/dist/website/assets/{kms_lib-Bh_Z1nH6.js → kms_lib-w0jRi8cP.js} +1 -1
- package/dist/website/assets/{ledger-connector-BOOoTKx_.js → ledger-connector-CNNjVgC1.js} +3 -3
- package/dist/website/assets/{lib-es-5LFNYQ9J.js → lib-es-DmH9FYVZ.js} +1 -1
- package/dist/website/assets/lobstr.module-BUAItZUt.js +1 -0
- package/dist/website/assets/{nacl-fast-BI97gFtf.js → nacl-fast-B5R4wpqG.js} +1 -1
- package/dist/website/assets/{nacl-util-DCWJejqG.js → nacl-util-6167mj42.js} +1 -1
- package/dist/website/assets/{network-CEcIzsgc.js → network-BVzpe0Ii.js} +1 -1
- package/dist/website/assets/{polkadot-ledger-transaction-DaDP252u.js → polkadot-ledger-transaction-Dp6EFfyV.js} +1 -1
- package/dist/website/assets/registry-BgQw-qJW.js +1 -0
- package/dist/website/assets/{reward-rate-chart-COP_M115.js → reward-rate-chart-CO_yI4og.js} +4 -4
- package/dist/website/assets/{safe-buffer-Dz6e-rwu.js → safe-buffer-BUgQmBOp.js} +1 -1
- package/dist/website/assets/{safe-connector-DG2cXEO5.js → safe-connector-BObu9WgG.js} +2 -2
- package/dist/website/assets/{solana-connector-DSpWnxwA.js → solana-connector-CVuV_EKp.js} +1 -1
- package/dist/website/assets/{src-Zq1Jw-Sn.js → src-DbdC_Alu.js} +1 -1
- package/dist/website/assets/{src-hSPfFTzN.js → src-Dl7INWvU.js} +1 -1
- package/dist/website/assets/state-D5Nw1L4F.js +1 -0
- package/dist/website/assets/{stellar-connector-BAbbdkSK.js → stellar-connector-Ba7Jcrbg.js} +1 -1
- package/dist/website/assets/styles.css-NtRiu07M.js +1 -0
- package/dist/website/assets/substrate-connector-hQ3vc47X.js +2 -0
- package/dist/website/assets/tfhe-BACovsAk.js +1 -0
- package/dist/website/assets/{tfhe-DuWT_ao1.js → tfhe-BSAXrnM6.js} +1 -1
- package/dist/website/assets/ton-connector-CU1xiP2u.js +2264 -0
- package/dist/website/assets/tracking-variants-CtfEiKNR.js +93 -0
- package/dist/website/assets/{transaction-BH4ssPh3.js → transaction-B5hUD0AE.js} +1 -1
- package/dist/website/assets/{transaction-BVuftLt1.js → transaction-BWEzzOww.js} +1 -1
- package/dist/website/assets/transaction-BmFUkzQv.js +2 -0
- package/dist/website/assets/{transaction-1KdJeqcp.js → transaction-C_iyacpP.js} +1 -1
- package/dist/website/assets/{tron-connector-CJURHEQe.js → tron-connector-gXtlAAuG.js} +7 -7
- package/dist/website/assets/{tx-Bkou_ALe.js → tx-Cosvp39i.js} +1 -1
- package/dist/website/assets/{utils-CH0e59XB.js → utils-meUBO1X1.js} +1 -1
- package/dist/website/assets/{viem-BQ_7aeKB.js → viem-8-EtcU49.js} +1 -1
- package/dist/website/assets/{w3m-modal-BLY--NNS.js → w3m-modal-HS9RLkN8.js} +2 -2
- package/dist/website/assets/wallet-manager-BQrZx180.js +5 -0
- package/dist/website/assets/{web-4qAQ-Ymk.js → web-azgm2Psf.js} +1 -1
- package/dist/website/assets/{wui-list-item-1gzb5UQJ.js → wui-list-item-CfZ1WQql.js} +1 -1
- package/dist/website/assets/{xbull.module-B4N1LGQD.js → xbull.module-DQx6rh7x.js} +1 -1
- package/dist/website/index.html +19 -19
- package/package.json +3 -2
- package/dist/website/assets/AlertController-CH5fpr36.js +0 -1
- package/dist/website/assets/DateTime-DR7XeJxF.js +0 -1
- package/dist/website/assets/ModalController-CWwEAkfw.js +0 -5
- package/dist/website/assets/assets-Dk5ppLtc.js +0 -2
- package/dist/website/assets/bignumber-CziKLYjt.js +0 -1
- package/dist/website/assets/blakejs-Dx-Zt5zT.js +0 -3
- package/dist/website/assets/bn-CJG5j3KW.js +0 -1
- package/dist/website/assets/core-uatW2d6Y.js +0 -2
- package/dist/website/assets/dist-CELdgNh9.js +0 -1
- package/dist/website/assets/dist-omv2KNC4.js +0 -5
- package/dist/website/assets/events-D2w4OsQJ.js +0 -1
- package/dist/website/assets/freighter.module-CaBNS6Y-.js +0 -1
- package/dist/website/assets/index-3l3n0-cX.js +0 -540
- package/dist/website/assets/index-Dpi1HuAK.css +0 -1
- package/dist/website/assets/index.es-DCi2xZ1b.js +0 -1
- package/dist/website/assets/lobstr.module-GQjJAf8P.js +0 -1
- package/dist/website/assets/registry-DVfYVrCY.js +0 -1
- package/dist/website/assets/state-B8Vu3fYx.js +0 -1
- package/dist/website/assets/styles.css-BK5OO2Hh.js +0 -1
- package/dist/website/assets/substrate-connector-CwnGlD2K.js +0 -2
- package/dist/website/assets/tfhe-PDJAG8Bv.js +0 -1
- package/dist/website/assets/ton-connector-DMNOeieX.js +0 -2264
- package/dist/website/assets/tracking-variants-CuRpr0B_.js +0 -85
- package/dist/website/assets/transaction-CbxrIerN.js +0 -2
- package/dist/website/assets/wallet-manager-D8tOJ1jy.js +0 -5
- package/dist/website/mockServiceWorker.js +0 -460
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secp256k1-D_3IvMuz.js","assets/rolldown-runtime-BcKkbAw3.js","assets/utils-Br0svb7K.js","assets/core-
|
|
2
|
-
import{s as e,t}from"./rolldown-runtime-BcKkbAw3.js";import{n,t as r}from"./dist-Cuadm9-o.js";import{t as i}from"./preload-helper-BLdHbfdN.js";import{n as a,t as o}from"./dist-D6L6gF64.js";import{r as s,t as c}from"./dist-CELdgNh9.js";import{t as l}from"./esm-DhvlA6gG.js";import{t as u}from"./events-D2w4OsQJ.js";import{C as d,D as f,E as p,O as m,S as h,T as g,_,a as v,b as y,c as b,d as x,f as S,g as C,h as w,i as T,k as E,l as D,m as O,n as k,o as A,r as j,t as M,u as N,v as P,w as F,x as I,y as L}from"./index.es-DCi2xZ1b.js";import{a as R,c as ee,d as te,f as ne,h as re,l as ie,m as ae,n as oe,t as se,u as ce}from"./utils-Br0svb7K.js";import{t as le}from"./index.es-D6B6PG3M.js";var ue=t(((e,t)=>{function n(e){try{return JSON.stringify(e)}catch{return`"[Circular]"`}}t.exports=r;function r(e,t,r){var i=r&&r.stringify||n,a=1;if(typeof e==`object`&&e){var o=t.length+a;if(o===1)return e;var s=Array(o);s[0]=i(e);for(var c=1;c<o;c++)s[c]=i(t[c]);return s.join(` `)}if(typeof e!=`string`)return e;var l=t.length;if(l===0)return e;for(var u=``,d=1-a,f=-1,p=e&&e.length||0,m=0;m<p;){if(e.charCodeAt(m)===37&&m+1<p){switch(f=f>-1?f:0,e.charCodeAt(m+1)){case 100:case 102:if(d>=l||t[d]==null)break;f<m&&(u+=e.slice(f,m)),u+=Number(t[d]),f=m+2,m++;break;case 105:if(d>=l||t[d]==null)break;f<m&&(u+=e.slice(f,m)),u+=Math.floor(Number(t[d])),f=m+2,m++;break;case 79:case 111:case 106:if(d>=l||t[d]===void 0)break;f<m&&(u+=e.slice(f,m));var h=typeof t[d];if(h===`string`){u+=`'`+t[d]+`'`,f=m+2,m++;break}if(h===`function`){u+=t[d].name||`<anonymous>`,f=m+2,m++;break}u+=i(t[d]),f=m+2,m++;break;case 115:if(d>=l)break;f<m&&(u+=e.slice(f,m)),u+=String(t[d]),f=m+2,m++;break;case 37:f<m&&(u+=e.slice(f,m)),u+=`%`,f=m+2,m++,d--}++d}++m}return f===-1?e:(f<p&&(u+=e.slice(f)),u)}})),de=t(((e,t)=>{var n=ue();t.exports=o;var r=C().console||{},i={mapHttpRequest:g,mapHttpResponse:g,wrapRequestSerializer:_,wrapResponseSerializer:_,wrapErrorSerializer:_,req:g,res:g,err:m};function a(e,t){return Array.isArray(e)?e.filter(function(e){return e!==`!stdSerializers.err`}):e===!0&&Object.keys(t)}function o(e){e||={},e.browser=e.browser||{};let t=e.browser.transmit;if(t&&typeof t.send!=`function`)throw Error(`pino: transmit option must have a send function`);let n=e.browser.write||r;e.browser.write&&(e.browser.asObject=!0);let i=e.serializers||{},c=a(e.browser.serialize,i),l=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf(`!stdSerializers.err`)>-1&&(l=!1);let f=[`error`,`fatal`,`warn`,`info`,`debug`,`trace`];typeof n==`function`&&(n.error=n.fatal=n.warn=n.info=n.debug=n.trace=n),e.enabled===!1&&(e.level=`silent`);let m=e.level||`info`,g=Object.create(n);g.log||=v,Object.defineProperty(g,"levelVal",{get:y}),Object.defineProperty(g,"level",{get:b,set:x});let _={transmit:t,serialize:c,asObject:e.browser.asObject,levels:f,timestamp:h(e)};g.levels=o.levels,g.level=m,g.setMaxListeners=g.getMaxListeners=g.emit=g.addListener=g.on=g.prependListener=g.once=g.prependOnceListener=g.removeListener=g.removeAllListeners=g.listeners=g.listenerCount=g.eventNames=g.write=g.flush=v,g.serializers=i,g._serialize=c,g._stdErrSerialize=l,g.child=S,t&&(g._logEvent=p());function y(){return this.level===`silent`?1/0:this.levels.values[this.level]}function b(){return this._level}function x(e){if(e!==`silent`&&!this.levels.values[e])throw Error(`unknown level `+e);this._level=e,s(_,g,`error`,`log`),s(_,g,`fatal`,`error`),s(_,g,`warn`,`error`),s(_,g,`info`,`log`),s(_,g,`debug`,`log`),s(_,g,`trace`,`log`)}function S(n,r){if(!n)throw Error(`missing bindings for child Pino`);r||={},c&&n.serializers&&(r.serializers=n.serializers);let a=r.serializers;if(c&&a){var o=Object.assign({},i,a),s=e.browser.serialize===!0?Object.keys(o):c;delete n.serializers,u([n],s,o,this._stdErrSerialize)}function l(e){this._childLevel=(e._childLevel|0)+1,this.error=d(e,n,`error`),this.fatal=d(e,n,`fatal`),this.warn=d(e,n,`warn`),this.info=d(e,n,`info`),this.debug=d(e,n,`debug`),this.trace=d(e,n,`trace`),o&&(this.serializers=o,this._serialize=s),t&&(this._logEvent=p([].concat(e._logEvent.bindings,n)))}return l.prototype=this,new l(this)}return g}o.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:`trace`,20:`debug`,30:`info`,40:`warn`,50:`error`,60:`fatal`}},o.stdSerializers=i,o.stdTimeFunctions=Object.assign({},{nullTime:y,epochTime:b,unixTime:x,isoTime:S});function s(e,t,n,i){let a=Object.getPrototypeOf(t);t[n]=t.levelVal>t.levels.values[n]?v:a[n]?a[n]:r[n]||r[i]||v,c(e,t,n)}function c(e,t,n){(e.transmit||t[n]!==v)&&(t[n]=(function(i){return function(){let a=e.timestamp(),s=Array(arguments.length),c=Object.getPrototypeOf&&Object.getPrototypeOf(this)===r?r:this;for(var d=0;d<s.length;d++)s[d]=arguments[d];if(e.serialize&&!e.asObject&&u(s,this._serialize,this.serializers,this._stdErrSerialize),e.asObject?i.call(c,l(this,n,s,a)):i.apply(c,s),e.transmit){let r=e.transmit.level||t.level,i=o.levels.values[r],c=o.levels.values[n];if(c<i)return;f(this,{ts:a,methodLevel:n,methodValue:c,transmitLevel:r,transmitValue:o.levels.values[e.transmit.level||t.level],send:e.transmit.send,val:t.levelVal},s)}}})(t[n]))}function l(e,t,r,i){e._serialize&&u(r,e._serialize,e.serializers,e._stdErrSerialize);let a=r.slice(),s=a[0],c={};i&&(c.time=i),c.level=o.levels.values[t];let l=(e._childLevel|0)+1;if(l<1&&(l=1),typeof s==`object`&&s){for(;l--&&typeof a[0]==`object`;)Object.assign(c,a.shift());s=a.length?n(a.shift(),a):void 0}else typeof s==`string`&&(s=n(a.shift(),a));return s!==void 0&&(c.msg=s),c}function u(e,t,n,r){for(let i in e)if(r&&e[i]instanceof Error)e[i]=o.stdSerializers.err(e[i]);else if(typeof e[i]==`object`&&!Array.isArray(e[i]))for(let r in e[i])t&&t.indexOf(r)>-1&&r in n&&(e[i][r]=n[r](e[i][r]))}function d(e,t,n){return function(){let r=Array(1+arguments.length);r[0]=t;for(var i=1;i<r.length;i++)r[i]=arguments[i-1];return e[n].apply(this,r)}}function f(e,t,n){let r=t.send,i=t.ts,a=t.methodLevel,o=t.methodValue,s=t.val,c=e._logEvent.bindings;u(n,e._serialize||Object.keys(e.serializers),e.serializers,e._stdErrSerialize===void 0||e._stdErrSerialize),e._logEvent.ts=i,e._logEvent.messages=n.filter(function(e){return c.indexOf(e)===-1}),e._logEvent.level.label=a,e._logEvent.level.value=o,r(a,e._logEvent,s),e._logEvent=p(c)}function p(e){return{ts:0,messages:[],bindings:e||[],level:{label:``,value:0}}}function m(e){let t={type:e.constructor.name,msg:e.message,stack:e.stack};for(let n in e)t[n]===void 0&&(t[n]=e[n]);return t}function h(e){return typeof e.timestamp==`function`?e.timestamp:e.timestamp===!1?y:b}function g(){return{}}function _(e){return e}function v(){}function y(){return!1}function b(){return Date.now()}function x(){return Math.round(Date.now()/1e3)}function S(){return new Date(Date.now()).toISOString()}function C(){function e(e){return e!==void 0&&e}try{return typeof globalThis<`u`||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch{return e(self)||e(window)||e(this)||{}}}}));r(),a(),s();var fe=e(u()),z=E(),pe=e(de()),me={level:`info`},he=`custom_context`,ge=1024e3,_e=class{constructor(e){this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}},ve=class{constructor(e){this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){let t=new _e(e);if(t.size>this.maxSizeInBytes)throw Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=t),this.tail=t):(this.head=t,this.tail=t),this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;let e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){let e=[],t=this.head;for(;t!==null;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};let t=e.value;return e=e.next,{done:!1,value:t}}}}},ye=class{constructor(e,t=ge){this.level=e??`error`,this.levelValue=pe.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new ve(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===pe.levels.values.error||t===pe.levels.values.warn||t===pe.levels.values.debug||pe.levels.values.trace}appendToLogs(e){this.logs.append(g({timestamp:new Date().toISOString(),log:e}));let t=typeof e==`string`?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new ve(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){let t=this.getLogArray();return t.push(g({extraMetadata:e})),new Blob(t,{type:`application/json`})}},be=class{constructor(e,t=ge){this.baseChunkLogger=new ye(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){let t=URL.createObjectURL(this.logsToBlob(e)),n=document.createElement(`a`);n.href=t,n.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)}},xe=class{constructor(e,t=ge){this.baseChunkLogger=new ye(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}},Se=Object.defineProperty,Ce=Object.defineProperties,we=Object.getOwnPropertyDescriptors,Te=Object.getOwnPropertySymbols,Ee=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable,Oe=(e,t,n)=>t in e?Se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ke=(e,t)=>{for(var n in t||={})Ee.call(t,n)&&Oe(e,n,t[n]);if(Te)for(var n of Te(t))De.call(t,n)&&Oe(e,n,t[n]);return e},Ae=(e,t)=>Ce(e,we(t));function je(e){return Ae(ke({},e),{level:e?.level||me.level})}function Me(e,t=he){return e[t]||``}function Ne(e,t,n=he){return e[n]=t,e}function Pe(e,t=he){let n=``;return n=typeof e.bindings>`u`?Me(e,t):e.bindings().context||``,n}function Fe(e,t,n=he){let r=Pe(e,n);return r.trim()?`${r}/${t}`:t}function Ie(e,t,n=he){let r=Fe(e,t,n);return Ne(e.child({context:r}),r,n)}function Le(e){let t=new be(e.opts?.level,e.maxSizeInBytes);return{logger:(0,pe.default)(Ae(ke({},e.opts),{level:`trace`,browser:Ae(ke({},e.opts?.browser),{write:e=>t.write(e)})})),chunkLoggerController:t}}function Re(e){let t=new xe(e.opts?.level,e.maxSizeInBytes);return{logger:(0,pe.default)(Ae(ke({},e.opts),{level:`trace`}),t),chunkLoggerController:t}}function ze(e){return typeof e.loggerOverride<`u`&&typeof e.loggerOverride!=`string`?{logger:e.loggerOverride,chunkLoggerController:null}:typeof window<`u`?Le(e):Re(e)}function Be(e,{strict:t=!0}={}){return!e||typeof e!=`string`?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith(`0x`)}function Ve(e){return Be(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var He=`2.23.2`,Ue={getDocsUrl:({docsBaseUrl:e,docsPath:t=``,docsSlug:n})=>t?`${e??`https://viem.sh`}${t}${n?`#${n}`:``}`:void 0,version:`viem@${He}`},We=class e extends Error{constructor(t,n={}){let r=n.cause instanceof e?n.cause.details:n.cause?.message?n.cause.message:n.details,i=n.cause instanceof e&&n.cause.docsPath||n.docsPath,a=Ue.getDocsUrl?.({...n,docsPath:i}),o=[t||`An error occurred.`,``,...n.metaMessages?[...n.metaMessages,``]:[],...a?[`Docs: ${a}`]:[],...r?[`Details: ${r}`]:[],...Ue.version?[`Version: ${Ue.version}`]:[]].join(`
|
|
3
|
-
`);super(o,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`BaseError`}),this.details=r,this.docsPath=i,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=He}walk(e){return Ge(this,e)}};function Ge(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause!==void 0?Ge(e.cause,t):t?null:e}var Ke=class extends We{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:`SizeExceedsPaddingSizeError`})}};function qe(e,{dir:t,size:n=32}={}){return typeof e==`string`?Je(e,{dir:t,size:n}):Ye(e,{dir:t,size:n})}function Je(e,{dir:t,size:n=32}={}){if(n===null)return e;let r=e.replace(`0x`,``);if(r.length>n*2)throw new Ke({size:Math.ceil(r.length/2),targetSize:n,type:`hex`});return`0x${r[t===`right`?`padEnd`:`padStart`](n*2,`0`)}`}function Ye(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new Ke({size:e.length,targetSize:n,type:`bytes`});let r=new Uint8Array(n);for(let i=0;i<n;i++){let a=t===`right`;r[a?i:n-i-1]=e[a?i:e.length-i-1]}return r}var Xe=class extends We{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number "${i}" is not in safe ${r?`${r*8}-bit ${n?`signed`:`unsigned`} `:``}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:`IntegerOutOfRangeError`})}},Ze=class extends We{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:`SizeOverflowError`})}};function Qe(e,{size:t}){if(Ve(e)>t)throw new Ze({givenSize:Ve(e),maxSize:t})}function $e(e,t={}){let{signed:n}=t;t.size&&Qe(e,{size:t.size});let r=BigInt(e);if(!n)return r;let i=(e.length-2)/2;return r<=(1n<<BigInt(i)*8n-1n)-1n?r:r-BigInt(`0x${`f`.padStart(i*2,`f`)}`)-1n}function et(e,t={}){return Number($e(e,t))}var tt=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function nt(e,t={}){return typeof e==`number`||typeof e==`bigint`?at(e,t):typeof e==`string`?st(e,t):typeof e==`boolean`?rt(e,t):it(e,t)}function rt(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(Qe(n,{size:t.size}),qe(n,{size:t.size})):n}function it(e,t={}){let n=``;for(let t=0;t<e.length;t++)n+=tt[e[t]];let r=`0x${n}`;return typeof t.size==`number`?(Qe(r,{size:t.size}),qe(r,{dir:`right`,size:t.size})):r}function at(e,t={}){let{signed:n,size:r}=t,i=BigInt(e),a;r?a=n?(1n<<BigInt(r)*8n-1n)-1n:2n**(BigInt(r)*8n)-1n:typeof e==`number`&&(a=BigInt(2**53-1));let o=typeof a==`bigint`&&n?-a-1n:0;if(a&&i>a||i<o){let t=typeof e==`bigint`?`n`:``;throw new Xe({max:a?`${a}${t}`:void 0,min:`${o}${t}`,signed:n,size:r,value:`${e}${t}`})}let s=`0x${(n&&i<0?(1n<<BigInt(r*8))+BigInt(i):i).toString(16)}`;return r?qe(s,{size:r}):s}var ot=new TextEncoder;function st(e,t={}){return it(ot.encode(e),t)}var ct=new TextEncoder;function lt(e,t={}){return typeof e==`number`||typeof e==`bigint`?mt(e,t):typeof e==`boolean`?ut(e,t):Be(e)?pt(e,t):ht(e,t)}function ut(e,t={}){let n=new Uint8Array(1);return n[0]=Number(e),typeof t.size==`number`?(Qe(n,{size:t.size}),qe(n,{size:t.size})):n}var dt={zero:48,nine:57,A:65,F:70,a:97,f:102};function ft(e){if(e>=dt.zero&&e<=dt.nine)return e-dt.zero;if(e>=dt.A&&e<=dt.F)return e-(dt.A-10);if(e>=dt.a&&e<=dt.f)return e-(dt.a-10)}function pt(e,t={}){let n=e;t.size&&(Qe(n,{size:t.size}),n=qe(n,{dir:`right`,size:t.size}));let r=n.slice(2);r.length%2&&(r=`0${r}`);let i=r.length/2,a=new Uint8Array(i);for(let e=0,t=0;e<i;e++){let n=ft(r.charCodeAt(t++)),i=ft(r.charCodeAt(t++));if(n===void 0||i===void 0)throw new We(`Invalid byte sequence ("${r[t-2]}${r[t-1]}" in "${r}").`);a[e]=n*16+i}return a}function mt(e,t){return pt(at(e,t))}function ht(e,t={}){let n=ct.encode(e);return typeof t.size==`number`?(Qe(n,{size:t.size}),qe(n,{dir:`right`,size:t.size})):n}var gt=BigInt(2**32-1),_t=BigInt(32);function vt(e,t=!1){return t?{h:Number(e>),l:Number(e>>_t>)}:{h:Number(e>>_t>)|0,l:Number(e>)|0}}function yt(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:a,l:o}=vt(e[i],t);[n[i],r[i]]=[a,o]}return[n,r]}var bt=(e,t,n)=>e<<n|t>>>32-n,xt=(e,t,n)=>t<<n|e>>>32-n,St=(e,t,n)=>t<<n-32|e>>>64-n,Ct=(e,t,n)=>e<<n-32|t>>>64-n,wt=[],Tt=[],Et=[],Dt=BigInt(0),Ot=BigInt(1),kt=BigInt(2),At=BigInt(7),jt=BigInt(256),Mt=BigInt(113);for(let e=0,t=Ot,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],wt.push(2*(5*r+n)),Tt.push((e+1)*(e+2)/2%64);let i=Dt;for(let e=0;e<7;e++)t=(t<<Ot^(t>>At)*Mt)%jt,t&kt&&(i^=Ot<<(Ot<<BigInt(e))-Ot);Et.push(i)}var[Nt,Pt]=yt(Et,!0),Ft=(e,t,n)=>n>32?St(e,t,n):bt(e,t,n),It=(e,t,n)=>n>32?Ct(e,t,n):xt(e,t,n);function Lt(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let r=(t+8)%10,i=(t+2)%10,a=n[i],o=n[i+1],s=Ft(a,o,1)^n[r],c=It(a,o,1)^n[r+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],i=e[3];for(let n=0;n<24;n++){let r=Tt[n],a=Ft(t,i,r),o=It(t,i,r),s=wt[n];t=e[s],i=e[s+1],e[s]=a,e[s+1]=o}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)n[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~n[(r+2)%10]&n[(r+4)%10]}e[0]^=Nt[r],e[1]^=Pt[r]}n.fill(0)}var Rt=class e extends se{constructor(e,t,n,r=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,ae(n),0>=this.blockLen||this.blockLen>=200)throw Error(`Sha3 supports only keccak-f1600 function`);this.state=new Uint8Array(200),this.state32=ie(this.state)}keccak(){R||oe(this.state32),Lt(this.state32,this.rounds),R||oe(this.state32),this.posOut=0,this.pos=0}update(e){ne(this);let{blockLen:t,state:n}=this;e=ee(e);let r=e.length;for(let i=0;i<r;){let a=Math.min(t-this.pos,r-i);for(let t=0;t<a;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:n,blockLen:r}=this;e[n]^=t,t&128&&n===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){ne(this,!1),te(e),this.finish();let t=this.state,{blockLen:n}=this;for(let r=0,i=e.length;r<i;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return ae(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(re(e,this),this.finished)throw Error(`digest() was already called`);return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:i,rounds:a,enableXOF:o}=this;return t||=new e(n,r,i,o,a),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}},zt=((e,t,n)=>ce(()=>new Rt(t,e,n)))(1,136,32);function Bt(e,t){let n=t||`hex`,r=zt(Be(e,{strict:!1})?lt(e):e);return n===`bytes`?r:nt(r)}var Vt=new class extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){let t=super.get(e);return super.has(e)&&t!==void 0&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){let e=this.keys().next().value;e&&this.delete(e)}return this}}(8192);function Ht(e,t){if(Vt.has(`${e}.${t}`))return Vt.get(`${e}.${t}`);let n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),r=Bt(ht(n),`bytes`),i=(t?n.substring(`${t}0x`.length):n).split(``);for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&i[e]&&(i[e]=i[e].toUpperCase()),(r[e>>1]&15)>=8&&i[e+1]&&(i[e+1]=i[e+1].toUpperCase());let a=`0x${i.join(``)}`;return Vt.set(`${e}.${t}`,a),a}function Ut(e){return Ht(`0x${Bt(`0x${e.substring(4)}`).substring(26)}`)}async function Wt({hash:e,signature:t}){let n=Be(e)?e:nt(e),{secp256k1:r}=await i(async()=>{let{secp256k1:e}=await import(`./secp256k1-D_3IvMuz.js`);return{secp256k1:e}},__vite__mapDeps([0,1,2]));return`0x${(()=>{if(typeof t==`object`&&`r`in t&&`s`in t){let{r:e,s:n,v:i,yParity:a}=t,o=Gt(Number(a??i));return new r.Signature($e(e),$e(n)).addRecoveryBit(o)}let e=Be(t)?t:nt(t),n=Gt(et(`0x${e.slice(130)}`));return r.Signature.fromCompact(e.substring(2,130)).addRecoveryBit(n)})().recoverPublicKey(n.substring(2)).toHex(!1)}`}function Gt(e){if(e===0||e===1)return e;if(e===27)return 0;if(e===28)return 1;throw Error(`Invalid yParityOrV value`)}async function Kt({hash:e,signature:t}){return Ut(await Wt({hash:e,signature:t}))}var qt=_(),Jt=C();function Yt(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}function Xt(e,t){t||=e.reduce((e,t)=>e+t.length,0);let n=Yt(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function Zt(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}var Qt=Zt(`utf8`,`u`,e=>`u`+new TextDecoder(`utf8`).decode(e),e=>new TextEncoder().encode(e.substring(1))),$t=Zt(`ascii`,`a`,e=>{let t=`a`;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t},e=>{e=e.substring(1);let t=Yt(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}),en={utf8:Qt,"utf-8":Qt,hex:w.base16,latin1:$t,ascii:$t,binary:$t,...w};function tn(e,t=`utf8`){let n=en[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e,`utf8`):n.decoder.decode(`${n.prefix}${e}`)}function nn(e,t=`utf8`){let n=en[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString(`utf8`):n.encoder.encode(e).substring(1)}var rn=`:`;function an(e){let[t,n]=e.split(rn);return{namespace:t,reference:n}}function on(e,t=[]){let n=[];return Object.keys(e).forEach(r=>{if(t.length&&!t.includes(r))return;let i=e[r];n.push(...i.accounts)}),n}function sn(e,t){return e.includes(`:`)?[e]:t.chains||[]}var cn=Object.defineProperty,ln=Object.defineProperties,un=Object.getOwnPropertyDescriptors,dn=Object.getOwnPropertySymbols,fn=Object.prototype.hasOwnProperty,pn=Object.prototype.propertyIsEnumerable,mn=(e,t,n)=>t in e?cn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,hn=(e,t)=>{for(var n in t||={})fn.call(t,n)&&mn(e,n,t[n]);if(dn)for(var n of dn(t))pn.call(t,n)&&mn(e,n,t[n]);return e},gn=(e,t)=>ln(e,un(t)),_n={reactNative:`react-native`,node:`node`,browser:`browser`,unknown:`unknown`};function vn(){return typeof n<`u`&&typeof n.versions<`u`&&typeof n.versions.node<`u`}function yn(){return!(0,qt.getDocument)()&&!!(0,qt.getNavigator)()&&navigator.product===`ReactNative`}function bn(){return yn()&&typeof o<`u`&&typeof o?.Platform<`u`&&o?.Platform.OS===`android`}function xn(){return yn()&&typeof o<`u`&&typeof o?.Platform<`u`&&o?.Platform.OS===`ios`}function Sn(){return!vn()&&!!(0,qt.getNavigator)()&&!!(0,qt.getDocument)()}function Cn(){return yn()?_n.reactNative:vn()?_n.node:Sn()?_n.browser:_n.unknown}function wn(){try{return yn()&&typeof o<`u`&&typeof o?.Application<`u`?o.Application?.applicationId:void 0}catch{return}}function Tn(e,t){let n=new URLSearchParams(e);for(let e of Object.keys(t).sort())if(t.hasOwnProperty(e)){let r=t[e];r!==void 0&&n.set(e,r)}return n.toString()}function En(e){var t,n;let r=Dn();try{return e!=null&&e.url&&r.url&&new URL(e.url).host!==new URL(r.url).host&&(e.url=r.url),(t=e?.icons)!=null&&t.length&&e.icons.length>0&&(e.icons=e.icons.filter(e=>e!==``)),gn(hn(hn({},r),e),{url:e?.url||r.url,name:e?.name||r.name,description:e?.description||r.description,icons:(n=e?.icons)!=null&&n.length&&e.icons.length>0?e.icons:r.icons})}catch{return e||r}}function Dn(){return(0,Jt.getWindowMetadata)()||{name:``,description:``,url:``,icons:[``]}}function On(){if(Cn()===_n.reactNative&&typeof o<`u`&&typeof o?.Platform<`u`){let{OS:e,Version:t}=o.Platform;return[e,t].join(`-`)}let e=P();if(e===null)return`unknown`;let t=e.os?e.os.replace(` `,``).toLowerCase():`unknown`;return e.type===`browser`?[t,e.name,e.version].join(`-`):[t,e.version].join(`-`)}function kn(){let e=Cn();return e===_n.browser?[e,(0,qt.getLocation)()?.host||`unknown`].join(`:`):e}function An(e,t,n){let r=On(),i=kn();return[[e,t].join(`-`),[`js`,n].join(`-`),r,i].join(`/`)}function jn({protocol:e,version:t,relayUrl:n,sdkVersion:r,auth:i,projectId:a,useOnCloseEvent:o,bundleId:s,packageName:c}){let l=n.split(`?`),u={auth:i,ua:An(e,t,r),projectId:a,useOnCloseEvent:o||void 0,packageName:c||void 0,bundleId:s||void 0},d=Tn(l[1]||``,u);return l[0]+`?`+d}function Mn(e,t){return e.filter(e=>t.includes(e)).length===e.length}function Nn(e){return Object.fromEntries(e.entries())}function Pn(e){return new Map(Object.entries(e))}function Fn(e=z.FIVE_MINUTES,t){let n=(0,z.toMiliseconds)(e||z.FIVE_MINUTES),r,i,a,o;return{resolve:e=>{a&&r&&(clearTimeout(a),r(e),o=Promise.resolve(e))},reject:e=>{a&&i&&(clearTimeout(a),i(e))},done:()=>new Promise((e,s)=>{if(o)return e(o);a=setTimeout(()=>{let e=Error(t);o=Promise.reject(e),s(e)},n),r=e,i=s})}}function In(e,t,n){return new Promise(async(r,i)=>{let a=setTimeout(()=>i(Error(n)),t);try{r(await e)}catch(e){i(e)}clearTimeout(a)})}function Ln(e,t){if(typeof t==`string`&&t.startsWith(`${e}:`))return t;if(e.toLowerCase()===`topic`){if(typeof t!=`string`)throw Error(`Value must be "string" for expirer target type: topic`);return`topic:${t}`}if(e.toLowerCase()===`id`){if(typeof t!=`number`)throw Error(`Value must be "number" for expirer target type: id`);return`id:${t}`}throw Error(`Unknown expirer target type: ${e}`)}function Rn(e){return Ln(`topic`,e)}function zn(e){return Ln(`id`,e)}function Bn(e){let[t,n]=e.split(`:`),r={id:void 0,topic:void 0};if(t===`topic`&&typeof n==`string`)r.topic=n;else if(t===`id`&&Number.isInteger(Number(n)))r.id=Number(n);else throw Error(`Invalid target, expected id:number or topic:string, got ${t}:${n}`);return r}function Vn(e,t){return(0,z.fromMiliseconds)((t||Date.now())+(0,z.toMiliseconds)(e))}function Hn(e){return Date.now()>=(0,z.toMiliseconds)(e)}function B(e,t){return`${e}${t?`:${t}`:``}`}function Un(e=[],t=[]){return[...new Set([...e,...t])]}async function Wn({id:e,topic:t,wcDeepLink:n}){var r;try{if(!n)return;let i=(typeof n==`string`?JSON.parse(n):n)?.href;if(typeof i!=`string`)return;let a=Gn(i,e,t),s=Cn();if(s===_n.browser){if(!((r=(0,qt.getDocument)())!=null&&r.hasFocus()))return;Kn(a)}else s===_n.reactNative&&typeof o?.Linking<`u`&&await o.Linking.openURL(a)}catch{}}function Gn(e,t,n){let r=`requestId=${t}&sessionTopic=${n}`;e.endsWith(`/`)&&(e=e.slice(0,-1));let i=`${e}`;if(e.startsWith(`https://t.me`)){let t=e.includes(`?`)?`&startapp=`:`?startapp=`;i=`${i}${t}${$n(r,!0)}`}else i=`${i}/wc?${r}`;return i}function Kn(e){let t=`_self`;Qn()?t=`_top`:(Zn()||e.startsWith(`https://`)||e.startsWith(`http://`))&&(t=`_blank`),window.open(e,t,`noreferrer noopener`)}async function qn(e,t){let n=``;try{if(Sn()&&(n=localStorage.getItem(t),n))return n;n=await e.getItem(t)}catch{}return n}function Jn(e,t){if(!e.includes(t))return null;let n=e.split(/([&,?,=])/);return n[n.indexOf(t)+2]}function Yn(){return typeof crypto<`u`&&crypto!=null&&crypto.randomUUID?crypto.randomUUID():`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/gu,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)})}function Xn(){return typeof n<`u`&&{}.IS_VITEST===`true`}function Zn(){return typeof window<`u`&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function Qn(){try{return window.self!==window.top}catch{return!1}}function $n(e,t=!1){let n=c.from(e).toString(`base64`);return t?n.replace(/[=]/g,``):n}function er(e){return c.from(e,`base64`).toString(`utf-8`)}function tr(e){return new Promise(t=>setTimeout(t,e))}function nr(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function rr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function ir(e,...t){if(!rr(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function ar(e){if(typeof e!=`function`||typeof e.create!=`function`)throw Error(`Hash should be wrapped by utils.wrapConstructor`);nr(e.outputLen),nr(e.blockLen)}function or(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function sr(e,t){ir(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}var cr=BigInt(2**32-1),lr=BigInt(32);function ur(e,t=!1){return t?{h:Number(e&cr),l:Number(e>>lr&cr)}:{h:Number(e>>lr&cr)|0,l:Number(e&cr)|0}}function dr(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:a,l:o}=ur(e[i],t);[n[i],r[i]]=[a,o]}return[n,r]}var fr=(e,t,n)=>e<<n|t>>>32-n,pr=(e,t,n)=>t<<n|e>>>32-n,mr=(e,t,n)=>t<<n-32|e>>>64-n,hr=(e,t,n)=>e<<n-32|t>>>64-n,gr=typeof globalThis==`object`&&`crypto`in globalThis?globalThis.crypto:void 0;function _r(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function vr(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function yr(e,t){return e<<32-t|e>>>t}var br=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function xr(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Sr(e){for(let t=0;t<e.length;t++)e[t]=xr(e[t])}function Cr(e){if(typeof e!=`string`)throw Error(`utf8ToBytes expected string, got `+typeof e);return new Uint8Array(new TextEncoder().encode(e))}function wr(e){return typeof e==`string`&&(e=Cr(e)),ir(e),e}function Tr(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];ir(r),t+=r.length}let n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){let i=e[t];n.set(i,r),r+=i.length}return n}var Er=class{clone(){return this._cloneInto()}};function Dr(e){let t=t=>e().update(wr(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Or(e=32){if(gr&&typeof gr.getRandomValues==`function`)return gr.getRandomValues(new Uint8Array(e));if(gr&&typeof gr.randomBytes==`function`)return gr.randomBytes(e);throw Error(`crypto.getRandomValues must be defined`)}var kr=[],Ar=[],jr=[],Mr=BigInt(0),Nr=BigInt(1),Pr=BigInt(2),Fr=BigInt(7),Ir=BigInt(256),Lr=BigInt(113);for(let e=0,t=Nr,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],kr.push(2*(5*r+n)),Ar.push((e+1)*(e+2)/2%64);let i=Mr;for(let e=0;e<7;e++)t=(t<<Nr^(t>>Fr)*Lr)%Ir,t&Pr&&(i^=Nr<<(Nr<<BigInt(e))-Nr);jr.push(i)}var[Rr,zr]=dr(jr,!0),Br=(e,t,n)=>n>32?mr(e,t,n):fr(e,t,n),Vr=(e,t,n)=>n>32?hr(e,t,n):pr(e,t,n);function Hr(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let r=(t+8)%10,i=(t+2)%10,a=n[i],o=n[i+1],s=Br(a,o,1)^n[r],c=Vr(a,o,1)^n[r+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],i=e[3];for(let n=0;n<24;n++){let r=Ar[n],a=Br(t,i,r),o=Vr(t,i,r),s=kr[n];t=e[s],i=e[s+1],e[s]=a,e[s+1]=o}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)n[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~n[(r+2)%10]&n[(r+4)%10]}e[0]^=Rr[r],e[1]^=zr[r]}n.fill(0)}var Ur=class e extends Er{constructor(e,t,n,r=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,nr(n),0>=this.blockLen||this.blockLen>=200)throw Error(`Sha3 supports only keccak-f1600 function`);this.state=new Uint8Array(200),this.state32=_r(this.state)}keccak(){br||Sr(this.state32),Hr(this.state32,this.rounds),br||Sr(this.state32),this.posOut=0,this.pos=0}update(e){or(this);let{blockLen:t,state:n}=this;e=wr(e);let r=e.length;for(let i=0;i<r;){let a=Math.min(t-this.pos,r-i);for(let t=0;t<a;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:n,blockLen:r}=this;e[n]^=t,t&128&&n===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){or(this,!1),ir(e),this.finish();let t=this.state,{blockLen:n}=this;for(let r=0,i=e.length;r<i;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return nr(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(sr(e,this),this.finished)throw Error(`digest() was already called`);return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:i,rounds:a,enableXOF:o}=this;return t||=new e(n,r,i,o,a),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}},Wr=((e,t,n)=>Dr(()=>new Ur(t,e,n)))(1,136,32),Gr=`https://rpc.walletconnect.org/v1`;function Kr(e){let t=`Ethereum Signed Message:
|
|
4
|
-
${e.length}`,n=new TextEncoder().encode(t+e);return`0x`+c.from(Wr(n)).toString(`hex`)}async function qr(e,t,n,r,i,a){switch(n.t){case`eip191`:return await Jr(e,t,n.s);case`eip1271`:return await Yr(e,t,n.s,r,i,a);default:throw Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${n.t}`)}}async function Jr(e,t,n){return(await Kt({hash:Kr(t),signature:n})).toLowerCase()===e.toLowerCase()}async function Yr(e,t,n,r,i,a){let o=an(r);if(!o.namespace||!o.reference)throw Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{let o=n.substring(2),s=`0x1626ba7e`+Kr(t).substring(2)+`00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000041`+o,{result:c}=await(await fetch(`${a||Gr}/?chainId=${r}&projectId=${i}`,{method:`POST`,body:JSON.stringify({id:Xr(),jsonrpc:`2.0`,method:`eth_call`,params:[{to:e,data:s},`latest`]})})).json();return c?c.slice(0,10).toLowerCase()===`0x1626ba7e`:!1}catch{return
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secp256k1-D_3IvMuz.js","assets/rolldown-runtime-BcKkbAw3.js","assets/utils-Br0svb7K.js","assets/core-BiDQVY37.js","assets/preload-helper-BLdHbfdN.js","assets/call-ttPZjh8C.js","assets/sha3-DRlIjSdj.js","assets/_u64-BLNH_r32.js","assets/utils-oVEYY1QK.js","assets/CaipNetworkUtil-CyIDQhS0.js","assets/formatUnits-ELraYs2w.js","assets/sha256-DmRqOOd6.js","assets/hmac-DY3QYcUU.js","assets/_esm-DOPbMym1.js","assets/verifyHash-BT12fjb2.js","assets/secp256k1-DzmNkGSQ.js","assets/ccip-BAjmGOZA.js","assets/internal-C7OFf8M2.js","assets/ModalController-BhWRBcfd.js","assets/dist-Cuadm9-o.js","assets/NetworkUtil-DsIkz0Dz.js","assets/HelpersUtil-Bpil3MMz.js","assets/dist-DlLKQSrv.js","assets/dist-D6L6gF64.js","assets/esm-CjTnkPtf.js","assets/dist-ZKTSEBXW.js","assets/events-CMzhc0tf.js","assets/index.es-BHs2-Pa6.js","assets/index.es-BGzDKZr_.js","assets/browser-ponyfill-lHyeX8iJ.js","assets/src-DbdC_Alu.js","assets/blakejs-x6iaQxOd.js","assets/esm-DhvlA6gG.js","assets/AlertController-Dd3t1FDe.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{s as e,t}from"./rolldown-runtime-BcKkbAw3.js";import{n,t as r}from"./dist-Cuadm9-o.js";import{t as i}from"./preload-helper-BLdHbfdN.js";import{n as a,t as o}from"./dist-D6L6gF64.js";import{r as s,t as c}from"./dist-ZKTSEBXW.js";import{t as l}from"./esm-DhvlA6gG.js";import{t as u}from"./events-CMzhc0tf.js";import{C as d,D as f,E as p,O as m,S as h,T as g,_,a as v,b as y,c as b,d as x,f as S,g as C,h as w,i as T,k as E,l as D,m as O,n as k,o as A,r as j,t as M,u as N,v as P,w as F,x as I,y as L}from"./index.es-BHs2-Pa6.js";import{a as R,c as ee,d as te,f as ne,h as re,l as ie,m as ae,n as oe,t as se,u as ce}from"./utils-Br0svb7K.js";import{t as le}from"./index.es-BGzDKZr_.js";var ue=t(((e,t)=>{function n(e){try{return JSON.stringify(e)}catch{return`"[Circular]"`}}t.exports=r;function r(e,t,r){var i=r&&r.stringify||n,a=1;if(typeof e==`object`&&e){var o=t.length+a;if(o===1)return e;var s=Array(o);s[0]=i(e);for(var c=1;c<o;c++)s[c]=i(t[c]);return s.join(` `)}if(typeof e!=`string`)return e;var l=t.length;if(l===0)return e;for(var u=``,d=1-a,f=-1,p=e&&e.length||0,m=0;m<p;){if(e.charCodeAt(m)===37&&m+1<p){switch(f=f>-1?f:0,e.charCodeAt(m+1)){case 100:case 102:if(d>=l||t[d]==null)break;f<m&&(u+=e.slice(f,m)),u+=Number(t[d]),f=m+2,m++;break;case 105:if(d>=l||t[d]==null)break;f<m&&(u+=e.slice(f,m)),u+=Math.floor(Number(t[d])),f=m+2,m++;break;case 79:case 111:case 106:if(d>=l||t[d]===void 0)break;f<m&&(u+=e.slice(f,m));var h=typeof t[d];if(h===`string`){u+=`'`+t[d]+`'`,f=m+2,m++;break}if(h===`function`){u+=t[d].name||`<anonymous>`,f=m+2,m++;break}u+=i(t[d]),f=m+2,m++;break;case 115:if(d>=l)break;f<m&&(u+=e.slice(f,m)),u+=String(t[d]),f=m+2,m++;break;case 37:f<m&&(u+=e.slice(f,m)),u+=`%`,f=m+2,m++,d--}++d}++m}return f===-1?e:(f<p&&(u+=e.slice(f)),u)}})),de=t(((e,t)=>{var n=ue();t.exports=o;var r=C().console||{},i={mapHttpRequest:g,mapHttpResponse:g,wrapRequestSerializer:_,wrapResponseSerializer:_,wrapErrorSerializer:_,req:g,res:g,err:m};function a(e,t){return Array.isArray(e)?e.filter(function(e){return e!==`!stdSerializers.err`}):e===!0&&Object.keys(t)}function o(e){e||={},e.browser=e.browser||{};let t=e.browser.transmit;if(t&&typeof t.send!=`function`)throw Error(`pino: transmit option must have a send function`);let n=e.browser.write||r;e.browser.write&&(e.browser.asObject=!0);let i=e.serializers||{},c=a(e.browser.serialize,i),l=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf(`!stdSerializers.err`)>-1&&(l=!1);let f=[`error`,`fatal`,`warn`,`info`,`debug`,`trace`];typeof n==`function`&&(n.error=n.fatal=n.warn=n.info=n.debug=n.trace=n),e.enabled===!1&&(e.level=`silent`);let m=e.level||`info`,g=Object.create(n);g.log||=v,Object.defineProperty(g,"levelVal",{get:y}),Object.defineProperty(g,"level",{get:b,set:x});let _={transmit:t,serialize:c,asObject:e.browser.asObject,levels:f,timestamp:h(e)};g.levels=o.levels,g.level=m,g.setMaxListeners=g.getMaxListeners=g.emit=g.addListener=g.on=g.prependListener=g.once=g.prependOnceListener=g.removeListener=g.removeAllListeners=g.listeners=g.listenerCount=g.eventNames=g.write=g.flush=v,g.serializers=i,g._serialize=c,g._stdErrSerialize=l,g.child=S,t&&(g._logEvent=p());function y(){return this.level===`silent`?1/0:this.levels.values[this.level]}function b(){return this._level}function x(e){if(e!==`silent`&&!this.levels.values[e])throw Error(`unknown level `+e);this._level=e,s(_,g,`error`,`log`),s(_,g,`fatal`,`error`),s(_,g,`warn`,`error`),s(_,g,`info`,`log`),s(_,g,`debug`,`log`),s(_,g,`trace`,`log`)}function S(n,r){if(!n)throw Error(`missing bindings for child Pino`);r||={},c&&n.serializers&&(r.serializers=n.serializers);let a=r.serializers;if(c&&a){var o=Object.assign({},i,a),s=e.browser.serialize===!0?Object.keys(o):c;delete n.serializers,u([n],s,o,this._stdErrSerialize)}function l(e){this._childLevel=(e._childLevel|0)+1,this.error=d(e,n,`error`),this.fatal=d(e,n,`fatal`),this.warn=d(e,n,`warn`),this.info=d(e,n,`info`),this.debug=d(e,n,`debug`),this.trace=d(e,n,`trace`),o&&(this.serializers=o,this._serialize=s),t&&(this._logEvent=p([].concat(e._logEvent.bindings,n)))}return l.prototype=this,new l(this)}return g}o.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:`trace`,20:`debug`,30:`info`,40:`warn`,50:`error`,60:`fatal`}},o.stdSerializers=i,o.stdTimeFunctions=Object.assign({},{nullTime:y,epochTime:b,unixTime:x,isoTime:S});function s(e,t,n,i){let a=Object.getPrototypeOf(t);t[n]=t.levelVal>t.levels.values[n]?v:a[n]?a[n]:r[n]||r[i]||v,c(e,t,n)}function c(e,t,n){(e.transmit||t[n]!==v)&&(t[n]=(function(i){return function(){let a=e.timestamp(),s=Array(arguments.length),c=Object.getPrototypeOf&&Object.getPrototypeOf(this)===r?r:this;for(var d=0;d<s.length;d++)s[d]=arguments[d];if(e.serialize&&!e.asObject&&u(s,this._serialize,this.serializers,this._stdErrSerialize),e.asObject?i.call(c,l(this,n,s,a)):i.apply(c,s),e.transmit){let r=e.transmit.level||t.level,i=o.levels.values[r],c=o.levels.values[n];if(c<i)return;f(this,{ts:a,methodLevel:n,methodValue:c,transmitLevel:r,transmitValue:o.levels.values[e.transmit.level||t.level],send:e.transmit.send,val:t.levelVal},s)}}})(t[n]))}function l(e,t,r,i){e._serialize&&u(r,e._serialize,e.serializers,e._stdErrSerialize);let a=r.slice(),s=a[0],c={};i&&(c.time=i),c.level=o.levels.values[t];let l=(e._childLevel|0)+1;if(l<1&&(l=1),typeof s==`object`&&s){for(;l--&&typeof a[0]==`object`;)Object.assign(c,a.shift());s=a.length?n(a.shift(),a):void 0}else typeof s==`string`&&(s=n(a.shift(),a));return s!==void 0&&(c.msg=s),c}function u(e,t,n,r){for(let i in e)if(r&&e[i]instanceof Error)e[i]=o.stdSerializers.err(e[i]);else if(typeof e[i]==`object`&&!Array.isArray(e[i]))for(let r in e[i])t&&t.indexOf(r)>-1&&r in n&&(e[i][r]=n[r](e[i][r]))}function d(e,t,n){return function(){let r=Array(1+arguments.length);r[0]=t;for(var i=1;i<r.length;i++)r[i]=arguments[i-1];return e[n].apply(this,r)}}function f(e,t,n){let r=t.send,i=t.ts,a=t.methodLevel,o=t.methodValue,s=t.val,c=e._logEvent.bindings;u(n,e._serialize||Object.keys(e.serializers),e.serializers,e._stdErrSerialize===void 0||e._stdErrSerialize),e._logEvent.ts=i,e._logEvent.messages=n.filter(function(e){return c.indexOf(e)===-1}),e._logEvent.level.label=a,e._logEvent.level.value=o,r(a,e._logEvent,s),e._logEvent=p(c)}function p(e){return{ts:0,messages:[],bindings:e||[],level:{label:``,value:0}}}function m(e){let t={type:e.constructor.name,msg:e.message,stack:e.stack};for(let n in e)t[n]===void 0&&(t[n]=e[n]);return t}function h(e){return typeof e.timestamp==`function`?e.timestamp:e.timestamp===!1?y:b}function g(){return{}}function _(e){return e}function v(){}function y(){return!1}function b(){return Date.now()}function x(){return Math.round(Date.now()/1e3)}function S(){return new Date(Date.now()).toISOString()}function C(){function e(e){return e!==void 0&&e}try{return typeof globalThis<`u`||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch{return e(self)||e(window)||e(this)||{}}}}));r(),a(),s();var fe=e(u()),z=E(),pe=e(de()),me={level:`info`},he=`custom_context`,ge=1024e3,_e=class{constructor(e){this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}},ve=class{constructor(e){this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){let t=new _e(e);if(t.size>this.maxSizeInBytes)throw Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=t),this.tail=t):(this.head=t,this.tail=t),this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;let e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){let e=[],t=this.head;for(;t!==null;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};let t=e.value;return e=e.next,{done:!1,value:t}}}}},ye=class{constructor(e,t=ge){this.level=e??`error`,this.levelValue=pe.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new ve(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===pe.levels.values.error?console.error(e):t===pe.levels.values.warn?console.warn(e):t===pe.levels.values.debug?console.debug(e):t===pe.levels.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(g({timestamp:new Date().toISOString(),log:e}));let t=typeof e==`string`?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new ve(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){let t=this.getLogArray();return t.push(g({extraMetadata:e})),new Blob(t,{type:`application/json`})}},be=class{constructor(e,t=ge){this.baseChunkLogger=new ye(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){let t=URL.createObjectURL(this.logsToBlob(e)),n=document.createElement(`a`);n.href=t,n.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)}},xe=class{constructor(e,t=ge){this.baseChunkLogger=new ye(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}},Se=Object.defineProperty,Ce=Object.defineProperties,we=Object.getOwnPropertyDescriptors,Te=Object.getOwnPropertySymbols,Ee=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable,Oe=(e,t,n)=>t in e?Se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ke=(e,t)=>{for(var n in t||={})Ee.call(t,n)&&Oe(e,n,t[n]);if(Te)for(var n of Te(t))De.call(t,n)&&Oe(e,n,t[n]);return e},Ae=(e,t)=>Ce(e,we(t));function je(e){return Ae(ke({},e),{level:e?.level||me.level})}function Me(e,t=he){return e[t]||``}function Ne(e,t,n=he){return e[n]=t,e}function Pe(e,t=he){let n=``;return n=typeof e.bindings>`u`?Me(e,t):e.bindings().context||``,n}function Fe(e,t,n=he){let r=Pe(e,n);return r.trim()?`${r}/${t}`:t}function Ie(e,t,n=he){let r=Fe(e,t,n);return Ne(e.child({context:r}),r,n)}function Le(e){let t=new be(e.opts?.level,e.maxSizeInBytes);return{logger:(0,pe.default)(Ae(ke({},e.opts),{level:`trace`,browser:Ae(ke({},e.opts?.browser),{write:e=>t.write(e)})})),chunkLoggerController:t}}function Re(e){let t=new xe(e.opts?.level,e.maxSizeInBytes);return{logger:(0,pe.default)(Ae(ke({},e.opts),{level:`trace`}),t),chunkLoggerController:t}}function ze(e){return typeof e.loggerOverride<`u`&&typeof e.loggerOverride!=`string`?{logger:e.loggerOverride,chunkLoggerController:null}:typeof window<`u`?Le(e):Re(e)}function Be(e,{strict:t=!0}={}){return!e||typeof e!=`string`?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith(`0x`)}function Ve(e){return Be(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var He=`2.23.2`,Ue={getDocsUrl:({docsBaseUrl:e,docsPath:t=``,docsSlug:n})=>t?`${e??`https://viem.sh`}${t}${n?`#${n}`:``}`:void 0,version:`viem@${He}`},We=class e extends Error{constructor(t,n={}){let r=n.cause instanceof e?n.cause.details:n.cause?.message?n.cause.message:n.details,i=n.cause instanceof e&&n.cause.docsPath||n.docsPath,a=Ue.getDocsUrl?.({...n,docsPath:i}),o=[t||`An error occurred.`,``,...n.metaMessages?[...n.metaMessages,``]:[],...a?[`Docs: ${a}`]:[],...r?[`Details: ${r}`]:[],...Ue.version?[`Version: ${Ue.version}`]:[]].join(`
|
|
3
|
+
`);super(o,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`BaseError`}),this.details=r,this.docsPath=i,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=He}walk(e){return Ge(this,e)}};function Ge(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause!==void 0?Ge(e.cause,t):t?null:e}var Ke=class extends We{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:`SizeExceedsPaddingSizeError`})}};function qe(e,{dir:t,size:n=32}={}){return typeof e==`string`?Je(e,{dir:t,size:n}):Ye(e,{dir:t,size:n})}function Je(e,{dir:t,size:n=32}={}){if(n===null)return e;let r=e.replace(`0x`,``);if(r.length>n*2)throw new Ke({size:Math.ceil(r.length/2),targetSize:n,type:`hex`});return`0x${r[t===`right`?`padEnd`:`padStart`](n*2,`0`)}`}function Ye(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new Ke({size:e.length,targetSize:n,type:`bytes`});let r=new Uint8Array(n);for(let i=0;i<n;i++){let a=t===`right`;r[a?i:n-i-1]=e[a?i:e.length-i-1]}return r}var Xe=class extends We{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number "${i}" is not in safe ${r?`${r*8}-bit ${n?`signed`:`unsigned`} `:``}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:`IntegerOutOfRangeError`})}},Ze=class extends We{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:`SizeOverflowError`})}};function Qe(e,{size:t}){if(Ve(e)>t)throw new Ze({givenSize:Ve(e),maxSize:t})}function $e(e,t={}){let{signed:n}=t;t.size&&Qe(e,{size:t.size});let r=BigInt(e);if(!n)return r;let i=(e.length-2)/2;return r<=(1n<<BigInt(i)*8n-1n)-1n?r:r-BigInt(`0x${`f`.padStart(i*2,`f`)}`)-1n}function et(e,t={}){return Number($e(e,t))}var tt=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function nt(e,t={}){return typeof e==`number`||typeof e==`bigint`?at(e,t):typeof e==`string`?st(e,t):typeof e==`boolean`?rt(e,t):it(e,t)}function rt(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(Qe(n,{size:t.size}),qe(n,{size:t.size})):n}function it(e,t={}){let n=``;for(let t=0;t<e.length;t++)n+=tt[e[t]];let r=`0x${n}`;return typeof t.size==`number`?(Qe(r,{size:t.size}),qe(r,{dir:`right`,size:t.size})):r}function at(e,t={}){let{signed:n,size:r}=t,i=BigInt(e),a;r?a=n?(1n<<BigInt(r)*8n-1n)-1n:2n**(BigInt(r)*8n)-1n:typeof e==`number`&&(a=BigInt(2**53-1));let o=typeof a==`bigint`&&n?-a-1n:0;if(a&&i>a||i<o){let t=typeof e==`bigint`?`n`:``;throw new Xe({max:a?`${a}${t}`:void 0,min:`${o}${t}`,signed:n,size:r,value:`${e}${t}`})}let s=`0x${(n&&i<0?(1n<<BigInt(r*8))+BigInt(i):i).toString(16)}`;return r?qe(s,{size:r}):s}var ot=new TextEncoder;function st(e,t={}){return it(ot.encode(e),t)}var ct=new TextEncoder;function lt(e,t={}){return typeof e==`number`||typeof e==`bigint`?mt(e,t):typeof e==`boolean`?ut(e,t):Be(e)?pt(e,t):ht(e,t)}function ut(e,t={}){let n=new Uint8Array(1);return n[0]=Number(e),typeof t.size==`number`?(Qe(n,{size:t.size}),qe(n,{size:t.size})):n}var dt={zero:48,nine:57,A:65,F:70,a:97,f:102};function ft(e){if(e>=dt.zero&&e<=dt.nine)return e-dt.zero;if(e>=dt.A&&e<=dt.F)return e-(dt.A-10);if(e>=dt.a&&e<=dt.f)return e-(dt.a-10)}function pt(e,t={}){let n=e;t.size&&(Qe(n,{size:t.size}),n=qe(n,{dir:`right`,size:t.size}));let r=n.slice(2);r.length%2&&(r=`0${r}`);let i=r.length/2,a=new Uint8Array(i);for(let e=0,t=0;e<i;e++){let n=ft(r.charCodeAt(t++)),i=ft(r.charCodeAt(t++));if(n===void 0||i===void 0)throw new We(`Invalid byte sequence ("${r[t-2]}${r[t-1]}" in "${r}").`);a[e]=n*16+i}return a}function mt(e,t){return pt(at(e,t))}function ht(e,t={}){let n=ct.encode(e);return typeof t.size==`number`?(Qe(n,{size:t.size}),qe(n,{dir:`right`,size:t.size})):n}var gt=BigInt(2**32-1),_t=BigInt(32);function vt(e,t=!1){return t?{h:Number(e>),l:Number(e>>_t>)}:{h:Number(e>>_t>)|0,l:Number(e>)|0}}function yt(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:a,l:o}=vt(e[i],t);[n[i],r[i]]=[a,o]}return[n,r]}var bt=(e,t,n)=>e<<n|t>>>32-n,xt=(e,t,n)=>t<<n|e>>>32-n,St=(e,t,n)=>t<<n-32|e>>>64-n,Ct=(e,t,n)=>e<<n-32|t>>>64-n,wt=[],Tt=[],Et=[],Dt=BigInt(0),Ot=BigInt(1),kt=BigInt(2),At=BigInt(7),jt=BigInt(256),Mt=BigInt(113);for(let e=0,t=Ot,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],wt.push(2*(5*r+n)),Tt.push((e+1)*(e+2)/2%64);let i=Dt;for(let e=0;e<7;e++)t=(t<<Ot^(t>>At)*Mt)%jt,t&kt&&(i^=Ot<<(Ot<<BigInt(e))-Ot);Et.push(i)}var[Nt,Pt]=yt(Et,!0),Ft=(e,t,n)=>n>32?St(e,t,n):bt(e,t,n),It=(e,t,n)=>n>32?Ct(e,t,n):xt(e,t,n);function Lt(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let r=(t+8)%10,i=(t+2)%10,a=n[i],o=n[i+1],s=Ft(a,o,1)^n[r],c=It(a,o,1)^n[r+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],i=e[3];for(let n=0;n<24;n++){let r=Tt[n],a=Ft(t,i,r),o=It(t,i,r),s=wt[n];t=e[s],i=e[s+1],e[s]=a,e[s+1]=o}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)n[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~n[(r+2)%10]&n[(r+4)%10]}e[0]^=Nt[r],e[1]^=Pt[r]}n.fill(0)}var Rt=class e extends se{constructor(e,t,n,r=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,ae(n),0>=this.blockLen||this.blockLen>=200)throw Error(`Sha3 supports only keccak-f1600 function`);this.state=new Uint8Array(200),this.state32=ie(this.state)}keccak(){R||oe(this.state32),Lt(this.state32,this.rounds),R||oe(this.state32),this.posOut=0,this.pos=0}update(e){ne(this);let{blockLen:t,state:n}=this;e=ee(e);let r=e.length;for(let i=0;i<r;){let a=Math.min(t-this.pos,r-i);for(let t=0;t<a;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:n,blockLen:r}=this;e[n]^=t,t&128&&n===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){ne(this,!1),te(e),this.finish();let t=this.state,{blockLen:n}=this;for(let r=0,i=e.length;r<i;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return ae(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(re(e,this),this.finished)throw Error(`digest() was already called`);return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:i,rounds:a,enableXOF:o}=this;return t||=new e(n,r,i,o,a),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}},zt=((e,t,n)=>ce(()=>new Rt(t,e,n)))(1,136,32);function Bt(e,t){let n=t||`hex`,r=zt(Be(e,{strict:!1})?lt(e):e);return n===`bytes`?r:nt(r)}var Vt=new class extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){let t=super.get(e);return super.has(e)&&t!==void 0&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){let e=this.keys().next().value;e&&this.delete(e)}return this}}(8192);function Ht(e,t){if(Vt.has(`${e}.${t}`))return Vt.get(`${e}.${t}`);let n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),r=Bt(ht(n),`bytes`),i=(t?n.substring(`${t}0x`.length):n).split(``);for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&i[e]&&(i[e]=i[e].toUpperCase()),(r[e>>1]&15)>=8&&i[e+1]&&(i[e+1]=i[e+1].toUpperCase());let a=`0x${i.join(``)}`;return Vt.set(`${e}.${t}`,a),a}function Ut(e){return Ht(`0x${Bt(`0x${e.substring(4)}`).substring(26)}`)}async function Wt({hash:e,signature:t}){let n=Be(e)?e:nt(e),{secp256k1:r}=await i(async()=>{let{secp256k1:e}=await import(`./secp256k1-D_3IvMuz.js`);return{secp256k1:e}},__vite__mapDeps([0,1,2]));return`0x${(()=>{if(typeof t==`object`&&`r`in t&&`s`in t){let{r:e,s:n,v:i,yParity:a}=t,o=Gt(Number(a??i));return new r.Signature($e(e),$e(n)).addRecoveryBit(o)}let e=Be(t)?t:nt(t),n=Gt(et(`0x${e.slice(130)}`));return r.Signature.fromCompact(e.substring(2,130)).addRecoveryBit(n)})().recoverPublicKey(n.substring(2)).toHex(!1)}`}function Gt(e){if(e===0||e===1)return e;if(e===27)return 0;if(e===28)return 1;throw Error(`Invalid yParityOrV value`)}async function Kt({hash:e,signature:t}){return Ut(await Wt({hash:e,signature:t}))}var qt=_(),Jt=C();function Yt(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}function Xt(e,t){t||=e.reduce((e,t)=>e+t.length,0);let n=Yt(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function Zt(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}var Qt=Zt(`utf8`,`u`,e=>`u`+new TextDecoder(`utf8`).decode(e),e=>new TextEncoder().encode(e.substring(1))),$t=Zt(`ascii`,`a`,e=>{let t=`a`;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t},e=>{e=e.substring(1);let t=Yt(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}),en={utf8:Qt,"utf-8":Qt,hex:w.base16,latin1:$t,ascii:$t,binary:$t,...w};function tn(e,t=`utf8`){let n=en[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e,`utf8`):n.decoder.decode(`${n.prefix}${e}`)}function nn(e,t=`utf8`){let n=en[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString(`utf8`):n.encoder.encode(e).substring(1)}var rn=`:`;function an(e){let[t,n]=e.split(rn);return{namespace:t,reference:n}}function on(e,t=[]){let n=[];return Object.keys(e).forEach(r=>{if(t.length&&!t.includes(r))return;let i=e[r];n.push(...i.accounts)}),n}function sn(e,t){return e.includes(`:`)?[e]:t.chains||[]}var cn=Object.defineProperty,ln=Object.defineProperties,un=Object.getOwnPropertyDescriptors,dn=Object.getOwnPropertySymbols,fn=Object.prototype.hasOwnProperty,pn=Object.prototype.propertyIsEnumerable,mn=(e,t,n)=>t in e?cn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,hn=(e,t)=>{for(var n in t||={})fn.call(t,n)&&mn(e,n,t[n]);if(dn)for(var n of dn(t))pn.call(t,n)&&mn(e,n,t[n]);return e},gn=(e,t)=>ln(e,un(t)),_n={reactNative:`react-native`,node:`node`,browser:`browser`,unknown:`unknown`};function vn(){return typeof n<`u`&&typeof n.versions<`u`&&typeof n.versions.node<`u`}function yn(){return!(0,qt.getDocument)()&&!!(0,qt.getNavigator)()&&navigator.product===`ReactNative`}function bn(){return yn()&&typeof o<`u`&&typeof o?.Platform<`u`&&o?.Platform.OS===`android`}function xn(){return yn()&&typeof o<`u`&&typeof o?.Platform<`u`&&o?.Platform.OS===`ios`}function Sn(){return!vn()&&!!(0,qt.getNavigator)()&&!!(0,qt.getDocument)()}function Cn(){return yn()?_n.reactNative:vn()?_n.node:Sn()?_n.browser:_n.unknown}function wn(){try{return yn()&&typeof o<`u`&&typeof o?.Application<`u`?o.Application?.applicationId:void 0}catch{return}}function Tn(e,t){let n=new URLSearchParams(e);for(let e of Object.keys(t).sort())if(t.hasOwnProperty(e)){let r=t[e];r!==void 0&&n.set(e,r)}return n.toString()}function En(e){var t,n;let r=Dn();try{return e!=null&&e.url&&r.url&&new URL(e.url).host!==new URL(r.url).host&&(console.warn(`The configured WalletConnect 'metadata.url':${e.url} differs from the actual page url:${r.url}. This is probably unintended and can lead to issues.`),e.url=r.url),(t=e?.icons)!=null&&t.length&&e.icons.length>0&&(e.icons=e.icons.filter(e=>e!==``)),gn(hn(hn({},r),e),{url:e?.url||r.url,name:e?.name||r.name,description:e?.description||r.description,icons:(n=e?.icons)!=null&&n.length&&e.icons.length>0?e.icons:r.icons})}catch(t){return console.warn(`Error populating app metadata`,t),e||r}}function Dn(){return(0,Jt.getWindowMetadata)()||{name:``,description:``,url:``,icons:[``]}}function On(){if(Cn()===_n.reactNative&&typeof o<`u`&&typeof o?.Platform<`u`){let{OS:e,Version:t}=o.Platform;return[e,t].join(`-`)}let e=P();if(e===null)return`unknown`;let t=e.os?e.os.replace(` `,``).toLowerCase():`unknown`;return e.type===`browser`?[t,e.name,e.version].join(`-`):[t,e.version].join(`-`)}function kn(){let e=Cn();return e===_n.browser?[e,(0,qt.getLocation)()?.host||`unknown`].join(`:`):e}function An(e,t,n){let r=On(),i=kn();return[[e,t].join(`-`),[`js`,n].join(`-`),r,i].join(`/`)}function jn({protocol:e,version:t,relayUrl:n,sdkVersion:r,auth:i,projectId:a,useOnCloseEvent:o,bundleId:s,packageName:c}){let l=n.split(`?`),u={auth:i,ua:An(e,t,r),projectId:a,useOnCloseEvent:o||void 0,packageName:c||void 0,bundleId:s||void 0},d=Tn(l[1]||``,u);return l[0]+`?`+d}function Mn(e,t){return e.filter(e=>t.includes(e)).length===e.length}function Nn(e){return Object.fromEntries(e.entries())}function Pn(e){return new Map(Object.entries(e))}function Fn(e=z.FIVE_MINUTES,t){let n=(0,z.toMiliseconds)(e||z.FIVE_MINUTES),r,i,a,o;return{resolve:e=>{a&&r&&(clearTimeout(a),r(e),o=Promise.resolve(e))},reject:e=>{a&&i&&(clearTimeout(a),i(e))},done:()=>new Promise((e,s)=>{if(o)return e(o);a=setTimeout(()=>{let e=Error(t);o=Promise.reject(e),s(e)},n),r=e,i=s})}}function In(e,t,n){return new Promise(async(r,i)=>{let a=setTimeout(()=>i(Error(n)),t);try{r(await e)}catch(e){i(e)}clearTimeout(a)})}function Ln(e,t){if(typeof t==`string`&&t.startsWith(`${e}:`))return t;if(e.toLowerCase()===`topic`){if(typeof t!=`string`)throw Error(`Value must be "string" for expirer target type: topic`);return`topic:${t}`}if(e.toLowerCase()===`id`){if(typeof t!=`number`)throw Error(`Value must be "number" for expirer target type: id`);return`id:${t}`}throw Error(`Unknown expirer target type: ${e}`)}function Rn(e){return Ln(`topic`,e)}function zn(e){return Ln(`id`,e)}function Bn(e){let[t,n]=e.split(`:`),r={id:void 0,topic:void 0};if(t===`topic`&&typeof n==`string`)r.topic=n;else if(t===`id`&&Number.isInteger(Number(n)))r.id=Number(n);else throw Error(`Invalid target, expected id:number or topic:string, got ${t}:${n}`);return r}function Vn(e,t){return(0,z.fromMiliseconds)((t||Date.now())+(0,z.toMiliseconds)(e))}function Hn(e){return Date.now()>=(0,z.toMiliseconds)(e)}function B(e,t){return`${e}${t?`:${t}`:``}`}function Un(e=[],t=[]){return[...new Set([...e,...t])]}async function Wn({id:e,topic:t,wcDeepLink:n}){var r;try{if(!n)return;let i=(typeof n==`string`?JSON.parse(n):n)?.href;if(typeof i!=`string`)return;let a=Gn(i,e,t),s=Cn();if(s===_n.browser){if(!((r=(0,qt.getDocument)())!=null&&r.hasFocus())){console.warn(`Document does not have focus, skipping deeplink.`);return}Kn(a)}else s===_n.reactNative&&typeof o?.Linking<`u`&&await o.Linking.openURL(a)}catch(e){console.error(e)}}function Gn(e,t,n){let r=`requestId=${t}&sessionTopic=${n}`;e.endsWith(`/`)&&(e=e.slice(0,-1));let i=`${e}`;if(e.startsWith(`https://t.me`)){let t=e.includes(`?`)?`&startapp=`:`?startapp=`;i=`${i}${t}${$n(r,!0)}`}else i=`${i}/wc?${r}`;return i}function Kn(e){let t=`_self`;Qn()?t=`_top`:(Zn()||e.startsWith(`https://`)||e.startsWith(`http://`))&&(t=`_blank`),window.open(e,t,`noreferrer noopener`)}async function qn(e,t){let n=``;try{if(Sn()&&(n=localStorage.getItem(t),n))return n;n=await e.getItem(t)}catch(e){console.error(e)}return n}function Jn(e,t){if(!e.includes(t))return null;let n=e.split(/([&,?,=])/);return n[n.indexOf(t)+2]}function Yn(){return typeof crypto<`u`&&crypto!=null&&crypto.randomUUID?crypto.randomUUID():`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/gu,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)})}function Xn(){return typeof n<`u`&&{}.IS_VITEST===`true`}function Zn(){return typeof window<`u`&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function Qn(){try{return window.self!==window.top}catch{return!1}}function $n(e,t=!1){let n=c.from(e).toString(`base64`);return t?n.replace(/[=]/g,``):n}function er(e){return c.from(e,`base64`).toString(`utf-8`)}function tr(e){return new Promise(t=>setTimeout(t,e))}function nr(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function rr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function ir(e,...t){if(!rr(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function ar(e){if(typeof e!=`function`||typeof e.create!=`function`)throw Error(`Hash should be wrapped by utils.wrapConstructor`);nr(e.outputLen),nr(e.blockLen)}function or(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function sr(e,t){ir(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}var cr=BigInt(2**32-1),lr=BigInt(32);function ur(e,t=!1){return t?{h:Number(e&cr),l:Number(e>>lr&cr)}:{h:Number(e>>lr&cr)|0,l:Number(e&cr)|0}}function dr(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:a,l:o}=ur(e[i],t);[n[i],r[i]]=[a,o]}return[n,r]}var fr=(e,t,n)=>e<<n|t>>>32-n,pr=(e,t,n)=>t<<n|e>>>32-n,mr=(e,t,n)=>t<<n-32|e>>>64-n,hr=(e,t,n)=>e<<n-32|t>>>64-n,gr=typeof globalThis==`object`&&`crypto`in globalThis?globalThis.crypto:void 0;function _r(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function vr(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function yr(e,t){return e<<32-t|e>>>t}var br=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function xr(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Sr(e){for(let t=0;t<e.length;t++)e[t]=xr(e[t])}function Cr(e){if(typeof e!=`string`)throw Error(`utf8ToBytes expected string, got `+typeof e);return new Uint8Array(new TextEncoder().encode(e))}function wr(e){return typeof e==`string`&&(e=Cr(e)),ir(e),e}function Tr(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];ir(r),t+=r.length}let n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){let i=e[t];n.set(i,r),r+=i.length}return n}var Er=class{clone(){return this._cloneInto()}};function Dr(e){let t=t=>e().update(wr(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Or(e=32){if(gr&&typeof gr.getRandomValues==`function`)return gr.getRandomValues(new Uint8Array(e));if(gr&&typeof gr.randomBytes==`function`)return gr.randomBytes(e);throw Error(`crypto.getRandomValues must be defined`)}var kr=[],Ar=[],jr=[],Mr=BigInt(0),Nr=BigInt(1),Pr=BigInt(2),Fr=BigInt(7),Ir=BigInt(256),Lr=BigInt(113);for(let e=0,t=Nr,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],kr.push(2*(5*r+n)),Ar.push((e+1)*(e+2)/2%64);let i=Mr;for(let e=0;e<7;e++)t=(t<<Nr^(t>>Fr)*Lr)%Ir,t&Pr&&(i^=Nr<<(Nr<<BigInt(e))-Nr);jr.push(i)}var[Rr,zr]=dr(jr,!0),Br=(e,t,n)=>n>32?mr(e,t,n):fr(e,t,n),Vr=(e,t,n)=>n>32?hr(e,t,n):pr(e,t,n);function Hr(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let r=(t+8)%10,i=(t+2)%10,a=n[i],o=n[i+1],s=Br(a,o,1)^n[r],c=Vr(a,o,1)^n[r+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],i=e[3];for(let n=0;n<24;n++){let r=Ar[n],a=Br(t,i,r),o=Vr(t,i,r),s=kr[n];t=e[s],i=e[s+1],e[s]=a,e[s+1]=o}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)n[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~n[(r+2)%10]&n[(r+4)%10]}e[0]^=Rr[r],e[1]^=zr[r]}n.fill(0)}var Ur=class e extends Er{constructor(e,t,n,r=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,nr(n),0>=this.blockLen||this.blockLen>=200)throw Error(`Sha3 supports only keccak-f1600 function`);this.state=new Uint8Array(200),this.state32=_r(this.state)}keccak(){br||Sr(this.state32),Hr(this.state32,this.rounds),br||Sr(this.state32),this.posOut=0,this.pos=0}update(e){or(this);let{blockLen:t,state:n}=this;e=wr(e);let r=e.length;for(let i=0;i<r;){let a=Math.min(t-this.pos,r-i);for(let t=0;t<a;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:n,blockLen:r}=this;e[n]^=t,t&128&&n===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){or(this,!1),ir(e),this.finish();let t=this.state,{blockLen:n}=this;for(let r=0,i=e.length;r<i;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return nr(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(sr(e,this),this.finished)throw Error(`digest() was already called`);return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:i,rounds:a,enableXOF:o}=this;return t||=new e(n,r,i,o,a),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}},Wr=((e,t,n)=>Dr(()=>new Ur(t,e,n)))(1,136,32),Gr=`https://rpc.walletconnect.org/v1`;function Kr(e){let t=`Ethereum Signed Message:
|
|
4
|
+
${e.length}`,n=new TextEncoder().encode(t+e);return`0x`+c.from(Wr(n)).toString(`hex`)}async function qr(e,t,n,r,i,a){switch(n.t){case`eip191`:return await Jr(e,t,n.s);case`eip1271`:return await Yr(e,t,n.s,r,i,a);default:throw Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${n.t}`)}}async function Jr(e,t,n){return(await Kt({hash:Kr(t),signature:n})).toLowerCase()===e.toLowerCase()}async function Yr(e,t,n,r,i,a){let o=an(r);if(!o.namespace||!o.reference)throw Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{let o=n.substring(2),s=`0x1626ba7e`+Kr(t).substring(2)+`00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000041`+o,{result:c}=await(await fetch(`${a||Gr}/?chainId=${r}&projectId=${i}`,{method:`POST`,body:JSON.stringify({id:Xr(),jsonrpc:`2.0`,method:`eth_call`,params:[{to:e,data:s},`latest`]})})).json();return c?c.slice(0,10).toLowerCase()===`0x1626ba7e`:!1}catch(e){return console.error(`isValidEip1271Signature: `,e),!1}}function Xr(){return Date.now()+Math.floor(Math.random()*1e3)}function Zr(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);let r=n[0];if(r===0)throw Error(`No signatures found`);let i=1+r*64;if(n.length<i)throw Error(`Transaction data too short for claimed signature count`);if(n.length<100)throw Error(`Transaction too short`);let a=c.from(e,`base64`).slice(1,65);return l.encode(a)}var Qr=Object.defineProperty,$r=Object.defineProperties,ei=Object.getOwnPropertyDescriptors,ti=Object.getOwnPropertySymbols,ni=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable,ii=(e,t,n)=>t in e?Qr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ai=(e,t)=>{for(var n in t||={})ni.call(t,n)&&ii(e,n,t[n]);if(ti)for(var n of ti(t))ri.call(t,n)&&ii(e,n,t[n]);return e},oi=(e,t)=>$r(e,ei(t)),si=`did:pkh:`,ci=e=>e?.split(`:`),li=e=>{let t=e&&ci(e);if(t)return e.includes(si)?t[3]:t[1]},ui=e=>{let t=e&&ci(e);if(t)return t[2]+`:`+t[3]},di=e=>{let t=e&&ci(e);if(t)return t.pop()};async function fi(e){let{cacao:t,projectId:n}=e,{s:r,p:i}=t,a=pi(i,i.iss);return await qr(di(i.iss),a,r,ui(i.iss),n)}var pi=(e,t)=>{let n=`${e.domain} wants you to sign in with your Ethereum account:`,r=di(t);if(!e.aud&&!e.uri)throw Error("Either `aud` or `uri` is required to construct the message");let i=e.statement||void 0,a=`URI: ${e.aud||e.uri}`,o=`Version: ${e.version}`,s=`Chain ID: ${li(t)}`,c=`Nonce: ${e.nonce}`,l=`Issued At: ${e.iat}`,u=e.exp?`Expiration Time: ${e.exp}`:void 0,d=e.nbf?`Not Before: ${e.nbf}`:void 0,f=e.requestId?`Request ID: ${e.requestId}`:void 0,p=e.resources?`Resources:${e.resources.map(e=>`
|
|
5
5
|
- ${e}`).join(``)}`:void 0,m=Oi(e.resources);if(m){let e=bi(m);i=Ti(i,e)}return[n,r,``,i,``,a,o,s,c,l,u,d,f,p].filter(e=>e!=null).join(`
|
|
6
6
|
`)};function mi(e){return c.from(JSON.stringify(e)).toString(`base64`)}function hi(e){return JSON.parse(c.from(e,`base64`).toString(`utf-8`))}function gi(e){if(!e)throw Error(`No recap provided, value is undefined`);if(!e.att)throw Error("No `att` property found");let t=Object.keys(e.att);if(!(t!=null&&t.length))throw Error("No resources found in `att` property");t.forEach(t=>{let n=e.att[t];if(Array.isArray(n)||typeof n!=`object`)throw Error(`Resource must be an object: ${t}`);if(!Object.keys(n).length)throw Error(`Resource object is empty: ${t}`);Object.keys(n).forEach(e=>{let t=n[e];if(!Array.isArray(t))throw Error(`Ability limits ${e} must be an array of objects, found: ${t}`);if(!t.length)throw Error(`Value of ${e} is empty array, must be an array with objects`);t.forEach(t=>{if(typeof t!=`object`)throw Error(`Ability limits (${e}) must be an array of objects, found: ${t}`)})})})}function _i(e,t,n,r={}){return n?.sort((e,t)=>e.localeCompare(t)),{att:{[e]:vi(t,n,r)}}}function vi(e,t,n={}){t=t?.sort((e,t)=>e.localeCompare(t));let r=t.map(t=>({[`${e}/${t}`]:[n]}));return Object.assign({},...r)}function yi(e){return gi(e),`urn:recap:${mi(e).replace(/=/g,``)}`}function bi(e){let t=hi(e.replace(`urn:recap:`,``));return gi(t),t}function xi(e,t,n){return yi(_i(e,t,n))}function Si(e){return e&&e.includes(`urn:recap:`)}function Ci(e,t){return yi(wi(bi(e),bi(t)))}function wi(e,t){gi(e),gi(t);let n=Object.keys(e.att).concat(Object.keys(t.att)).sort((e,t)=>e.localeCompare(t)),r={att:{}};return n.forEach(n=>{Object.keys(e.att?.[n]||{}).concat(Object.keys(t.att?.[n]||{})).sort((e,t)=>e.localeCompare(t)).forEach(i=>{r.att[n]=oi(ai({},r.att[n]),{[i]:e.att[n]?.[i]||t.att[n]?.[i]})})}),r}function Ti(e=``,t){gi(t);let n=`I further authorize the stated URI to perform the following actions on my behalf: `;if(e.includes(n))return e;let r=[],i=0;Object.keys(t.att).forEach(e=>{let n=Object.keys(t.att[e]).map(e=>({ability:e.split(`/`)[0],action:e.split(`/`)[1]}));n.sort((e,t)=>e.action.localeCompare(t.action));let a={};n.forEach(e=>{a[e.ability]||(a[e.ability]=[]),a[e.ability].push(e.action)});let o=Object.keys(a).map(t=>(i++,`(${i}) '${t}': '${a[t].join(`', '`)}' for '${e}'.`));r.push(o.join(`, `).replace(`.,`,`.`))});let a=`${n}${r.join(` `)}`;return`${e?e+` `:``}${a}`}function Ei(e){let t=bi(e);gi(t);let n=t.att?.eip155;return n?Object.keys(n).map(e=>e.split(`/`)[1]):[]}function Di(e){let t=bi(e);gi(t);let n=[];return Object.values(t.att).forEach(e=>{Object.values(e).forEach(e=>{var t;(t=e?.[0])!=null&&t.chains&&n.push(e[0].chains)})}),[...new Set(n.flat())]}function Oi(e){if(!e)return;let t=e?.[e.length-1];return Si(t)?t:void 0}function ki(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function Ai(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function ji(e,...t){if(!Ai(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function Mi(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function Ni(e,t){ji(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function Pi(e){if(typeof e!=`boolean`)throw Error(`boolean expected, not ${e}`)}var Fi=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),Ii=e=>new DataView(e.buffer,e.byteOffset,e.byteLength);if(new Uint8Array(new Uint32Array([287454020]).buffer)[0]!==68)throw Error(`Non little-endian hardware is not supported`);function Li(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function Ri(e){if(typeof e==`string`)e=Li(e);else if(Ai(e))e=Gi(e);else throw Error(`Uint8Array expected, got `+typeof e);return e}function zi(e,t){if(typeof t!=`object`||!t)throw Error(`options must be defined`);return Object.assign(e,t)}function Bi(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}var Vi=(e,t)=>{function n(n,...r){if(ji(n),e.nonceLength!==void 0){let t=r[0];if(!t)throw Error(`nonce / iv required`);e.varSizeNonce?ji(t):ji(t,e.nonceLength)}let i=e.tagLength;i&&r[1]!==void 0&&ji(r[1]);let a=t(n,...r),o=(e,t)=>{if(t!==void 0){if(e!==2)throw Error(`cipher output not supported`);ji(t)}},s=!1;return{encrypt(e,t){if(s)throw Error(`cannot encrypt() twice with same key + nonce`);return s=!0,ji(e),o(a.encrypt.length,t),a.encrypt(e,t)},decrypt(e,t){if(ji(e),i&&e.length<i)throw Error(`invalid ciphertext length: smaller than tagLength=`+i);return o(a.decrypt.length,t),a.decrypt(e,t)}}}return Object.assign(n,e),n};function Hi(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(t.length!==e)throw Error(`invalid output length, expected `+e+`, got: `+t.length);if(n&&!Wi(t))throw Error(`invalid output, must be aligned`);return t}function Ui(e,t,n,r){if(typeof e.setBigUint64==`function`)return e.setBigUint64(t,n,r);let i=BigInt(32),a=BigInt(4294967295),o=Number(n>>i&a),s=Number(n&a),c=r?4:0,l=r?0:4;e.setUint32(t+c,o,r),e.setUint32(t+l,s,r)}function Wi(e){return e.byteOffset%4==0}function Gi(e){return Uint8Array.from(e)}function Ki(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}var qi=e=>Uint8Array.from(e.split(``).map(e=>e.charCodeAt(0))),Ji=qi(`expand 16-byte k`),Yi=qi(`expand 32-byte k`),Xi=Fi(Ji),Zi=Fi(Yi);function V(e,t){return e<<t|e>>>32-t}function Qi(e){return e.byteOffset%4==0}var $i=64,ea=16,ta=2**32-1,na=new Uint32Array;function ra(e,t,n,r,i,a,o,s){let c=i.length,l=new Uint8Array($i),u=Fi(l),d=Qi(i)&&Qi(a),f=d?Fi(i):na,p=d?Fi(a):na;for(let m=0;m<c;o++){if(e(t,n,r,u,o,s),o>=ta)throw Error(`arx: counter overflow`);let h=Math.min($i,c-m);if(d&&h===$i){let e=m/4;if(m%4!=0)throw Error(`arx: invalid block position`);for(let t=0,n;t<ea;t++)n=e+t,p[n]=f[n]^u[t];m+=$i;continue}for(let e=0,t;e<h;e++)t=m+e,a[t]=i[t]^l[e];m+=h}}function ia(e,t){let{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:a,rounds:o}=zi({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!=`function`)throw Error(`core must be a function`);return ki(i),ki(o),Pi(a),Pi(n),(t,s,c,l,u=0)=>{ji(t),ji(s),ji(c);let d=c.length;if(l===void 0&&(l=new Uint8Array(d)),ji(l),ki(u),u<0||u>=ta)throw Error(`arx: counter overflow`);if(l.length<d)throw Error(`arx: output (${l.length}) is shorter than data (${d})`);let f=[],p=t.length,m,h;if(p===32)f.push(m=Gi(t)),h=Zi;else if(p===16&&n)m=new Uint8Array(32),m.set(t),m.set(t,16),h=Xi,f.push(m);else throw Error(`arx: invalid 32-byte key, got length=${p}`);Qi(s)||f.push(s=Gi(s));let g=Fi(m);if(r){if(s.length!==24)throw Error(`arx: extended nonce must be 24 bytes`);r(h,g,Fi(s.subarray(0,16)),g),s=s.subarray(16)}let _=16-i;if(_!==s.length)throw Error(`arx: nonce must be ${_} or 16 bytes`);if(_!==12){let e=new Uint8Array(12);e.set(s,a?0:12-s.length),s=e,f.push(s)}let v=Fi(s);return ra(e,h,g,v,c,l,u,o),Ki(...f),l}}var aa=(e,t)=>e[t++]&255|(e[t++]&255)<<8,oa=class{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,e=Ri(e),ji(e,32);let t=aa(e,0),n=aa(e,2),r=aa(e,4),i=aa(e,6),a=aa(e,8),o=aa(e,10),s=aa(e,12),c=aa(e,14);this.r[0]=t&8191,this.r[1]=(t>>>13|n<<3)&8191,this.r[2]=(n>>>10|r<<6)&7939,this.r[3]=(r>>>7|i<<9)&8191,this.r[4]=(i>>>4|a<<12)&255,this.r[5]=a>>>1&8190,this.r[6]=(a>>>14|o<<2)&8191,this.r[7]=(o>>>11|s<<5)&8065,this.r[8]=(s>>>8|c<<8)&8191,this.r[9]=c>>>5&127;for(let t=0;t<8;t++)this.pad[t]=aa(e,16+2*t)}process(e,t,n=!1){let r=n?0:2048,{h:i,r:a}=this,o=a[0],s=a[1],c=a[2],l=a[3],u=a[4],d=a[5],f=a[6],p=a[7],m=a[8],h=a[9],g=aa(e,t+0),_=aa(e,t+2),v=aa(e,t+4),y=aa(e,t+6),b=aa(e,t+8),x=aa(e,t+10),S=aa(e,t+12),C=aa(e,t+14),w=i[0]+(g&8191),T=i[1]+((g>>>13|_<<3)&8191),E=i[2]+((_>>>10|v<<6)&8191),D=i[3]+((v>>>7|y<<9)&8191),O=i[4]+((y>>>4|b<<12)&8191),k=i[5]+(b>>>1&8191),A=i[6]+((b>>>14|x<<2)&8191),j=i[7]+((x>>>11|S<<5)&8191),M=i[8]+((S>>>8|C<<8)&8191),N=i[9]+(C>>>5|r),P=0,F=P+w*o+5*h*T+5*m*E+5*p*D+5*f*O;P=F>>>13,F&=8191,F+=5*d*k+5*u*A+5*l*j+5*c*M+5*s*N,P+=F>>>13,F&=8191;let I=P+w*s+T*o+5*h*E+5*m*D+5*p*O;P=I>>>13,I&=8191,I+=5*f*k+5*d*A+5*u*j+5*l*M+5*c*N,P+=I>>>13,I&=8191;let L=P+w*c+T*s+E*o+5*h*D+5*m*O;P=L>>>13,L&=8191,L+=5*p*k+5*f*A+5*d*j+5*u*M+5*l*N,P+=L>>>13,L&=8191;let R=P+w*l+T*c+E*s+D*o+5*h*O;P=R>>>13,R&=8191,R+=5*m*k+5*p*A+5*f*j+5*d*M+5*u*N,P+=R>>>13,R&=8191;let ee=P+w*u+T*l+E*c+D*s+O*o;P=ee>>>13,ee&=8191,ee+=5*h*k+5*m*A+5*p*j+5*f*M+5*d*N,P+=ee>>>13,ee&=8191;let te=P+w*d+T*u+E*l+D*c+O*s;P=te>>>13,te&=8191,te+=k*o+5*h*A+5*m*j+5*p*M+5*f*N,P+=te>>>13,te&=8191;let ne=P+w*f+T*d+E*u+D*l+O*c;P=ne>>>13,ne&=8191,ne+=k*s+A*o+5*h*j+5*m*M+5*p*N,P+=ne>>>13,ne&=8191;let re=P+w*p+T*f+E*d+D*u+O*l;P=re>>>13,re&=8191,re+=k*c+A*s+j*o+5*h*M+5*m*N,P+=re>>>13,re&=8191;let ie=P+w*m+T*p+E*f+D*d+O*u;P=ie>>>13,ie&=8191,ie+=k*l+A*c+j*s+M*o+5*h*N,P+=ie>>>13,ie&=8191;let ae=P+w*h+T*m+E*p+D*f+O*d;P=ae>>>13,ae&=8191,ae+=k*u+A*l+j*c+M*s+N*o,P+=ae>>>13,ae&=8191,P=(P<<2)+P|0,P=P+F|0,F=P&8191,P>>>=13,I+=P,i[0]=F,i[1]=I,i[2]=L,i[3]=R,i[4]=ee,i[5]=te,i[6]=ne,i[7]=re,i[8]=ie,i[9]=ae}finalize(){let{h:e,pad:t}=this,n=new Uint16Array(10),r=e[1]>>>13;e[1]&=8191;for(let t=2;t<10;t++)e[t]+=r,r=e[t]>>>13,e[t]&=8191;e[0]+=r*5,r=e[0]>>>13,e[0]&=8191,e[1]+=r,r=e[1]>>>13,e[1]&=8191,e[2]+=r,n[0]=e[0]+5,r=n[0]>>>13,n[0]&=8191;for(let t=1;t<10;t++)n[t]=e[t]+r,r=n[t]>>>13,n[t]&=8191;n[9]-=8192;let i=(r^1)-1;for(let e=0;e<10;e++)n[e]&=i;i=~i;for(let t=0;t<10;t++)e[t]=e[t]&i|n[t];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let a=e[0]+t[0];e[0]=a&65535;for(let n=1;n<8;n++)a=(e[n]+t[n]|0)+(a>>>16)|0,e[n]=a&65535;Ki(n)}update(e){Mi(this);let{buffer:t,blockLen:n}=this;e=Ri(e);let r=e.length;for(let i=0;i<r;){let a=Math.min(n-this.pos,r-i);if(a===n){for(;n<=r-i;i+=n)this.process(e,i);continue}t.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===n&&(this.process(t,0,!1),this.pos=0)}return this}destroy(){Ki(this.h,this.r,this.buffer,this.pad)}digestInto(e){Mi(this),Ni(e,this),this.finished=!0;let{buffer:t,h:n}=this,{pos:r}=this;if(r){for(t[r++]=1;r<16;r++)t[r]=0;this.process(t,0,!0)}this.finalize();let i=0;for(let t=0;t<8;t++)e[i++]=n[t]>>>0,e[i++]=n[t]>>>8;return e}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}};function sa(e){let t=(t,n)=>e(n).update(Ri(t)).digest(),n=e(new Uint8Array(32));return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}var ca=sa(e=>new oa(e));function la(e,t,n,r,i,a=20){let o=e[0],s=e[1],c=e[2],l=e[3],u=t[0],d=t[1],f=t[2],p=t[3],m=t[4],h=t[5],g=t[6],_=t[7],v=i,y=n[0],b=n[1],x=n[2],S=o,C=s,w=c,T=l,E=u,D=d,O=f,k=p,A=m,j=h,M=g,N=_,P=v,F=y,I=b,L=x;for(let e=0;e<a;e+=2)S=S+E|0,P=V(P^S,16),A=A+P|0,E=V(E^A,12),S=S+E|0,P=V(P^S,8),A=A+P|0,E=V(E^A,7),C=C+D|0,F=V(F^C,16),j=j+F|0,D=V(D^j,12),C=C+D|0,F=V(F^C,8),j=j+F|0,D=V(D^j,7),w=w+O|0,I=V(I^w,16),M=M+I|0,O=V(O^M,12),w=w+O|0,I=V(I^w,8),M=M+I|0,O=V(O^M,7),T=T+k|0,L=V(L^T,16),N=N+L|0,k=V(k^N,12),T=T+k|0,L=V(L^T,8),N=N+L|0,k=V(k^N,7),S=S+D|0,L=V(L^S,16),M=M+L|0,D=V(D^M,12),S=S+D|0,L=V(L^S,8),M=M+L|0,D=V(D^M,7),C=C+O|0,P=V(P^C,16),N=N+P|0,O=V(O^N,12),C=C+O|0,P=V(P^C,8),N=N+P|0,O=V(O^N,7),w=w+k|0,F=V(F^w,16),A=A+F|0,k=V(k^A,12),w=w+k|0,F=V(F^w,8),A=A+F|0,k=V(k^A,7),T=T+E|0,I=V(I^T,16),j=j+I|0,E=V(E^j,12),T=T+E|0,I=V(I^T,8),j=j+I|0,E=V(E^j,7);let R=0;r[R++]=o+S|0,r[R++]=s+C|0,r[R++]=c+w|0,r[R++]=l+T|0,r[R++]=u+E|0,r[R++]=d+D|0,r[R++]=f+O|0,r[R++]=p+k|0,r[R++]=m+A|0,r[R++]=h+j|0,r[R++]=g+M|0,r[R++]=_+N|0,r[R++]=v+P|0,r[R++]=y+F|0,r[R++]=b+I|0,r[R++]=x+L|0}var ua=ia(la,{counterRight:!1,counterLength:4,allowShortKeys:!1}),da=new Uint8Array(16),fa=(e,t)=>{e.update(t);let n=t.length%16;n&&e.update(da.subarray(n))},pa=new Uint8Array(32);function ma(e,t,n,r,i){let a=e(t,n,pa),o=ca.create(a);i&&fa(o,i),fa(o,r);let s=new Uint8Array(16),c=Ii(s);Ui(c,0,BigInt(i?i.length:0),!0),Ui(c,8,BigInt(r.length),!0),o.update(s);let l=o.digest();return Ki(a,s),l}var ha=Vi({blockSize:64,nonceLength:12,tagLength:16},(e=>(t,n,r)=>({encrypt(i,a){let o=i.length;a=Hi(o+16,a,!1),a.set(i);let s=a.subarray(0,-16);e(t,n,s,s,1);let c=ma(e,t,n,s,r);return a.set(c,o),Ki(c),a},decrypt(i,a){a=Hi(i.length-16,a,!1);let o=i.subarray(0,-16),s=i.subarray(-16),c=ma(e,t,n,o,r);if(!Bi(s,c))throw Error(`invalid tag`);return a.set(i.subarray(0,-16)),e(t,n,a,a,1),Ki(c),a}}))(ua)),ga=class extends Er{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,ar(e);let n=wr(t);if(this.iHash=e.create(),typeof this.iHash.update!=`function`)throw Error(`Expected instance of class which extends utils.Hash`);this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let r=this.blockLen,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),i.fill(0)}update(e){return or(this),this.iHash.update(e),this}digestInto(e){or(this),ir(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:n,finished:r,destroyed:i,blockLen:a,outputLen:o}=this;return e=e,e.finished=r,e.destroyed=i,e.blockLen=a,e.outputLen=o,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},_a=(e,t,n)=>new ga(e,t).update(n).digest();_a.create=(e,t)=>new ga(e,t);function va(e,t,n){return ar(e),n===void 0&&(n=new Uint8Array(e.outputLen)),_a(e,wr(n),wr(t))}var ya=new Uint8Array([0]),ba=new Uint8Array;function xa(e,t,n,r=32){if(ar(e),nr(r),r>255*e.outputLen)throw Error(`Length should be <= 255*HashLen`);let i=Math.ceil(r/e.outputLen);n===void 0&&(n=ba);let a=new Uint8Array(i*e.outputLen),o=_a.create(e,t),s=o._cloneInto(),c=new Uint8Array(o.outputLen);for(let t=0;t<i;t++)ya[0]=t+1,s.update(t===0?ba:c).update(n).update(ya).digestInto(c),a.set(c,e.outputLen*t),o._cloneInto(s);return o.destroy(),s.destroy(),c.fill(0),ya.fill(0),a.slice(0,r)}var Sa=(e,t,n,r,i)=>xa(e,va(e,t,n),r,i);function Ca(e,t,n,r){if(typeof e.setBigUint64==`function`)return e.setBigUint64(t,n,r);let i=BigInt(32),a=BigInt(4294967295),o=Number(n>>i&a),s=Number(n&a),c=r?4:0,l=r?0:4;e.setUint32(t+c,o,r),e.setUint32(t+l,s,r)}function wa(e,t,n){return e&t^~e&n}function Ta(e,t,n){return e&t^e&n^t&n}var Ea=class extends Er{constructor(e,t,n,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=vr(this.buffer)}update(e){or(this);let{view:t,buffer:n,blockLen:r}=this;e=wr(e);let i=e.length;for(let a=0;a<i;){let o=Math.min(r-this.pos,i-a);if(o===r){let t=vr(e);for(;r<=i-a;a+=r)this.process(t,a);continue}n.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){or(this),sr(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,this.buffer.subarray(a).fill(0),this.padOffset>r-a&&(this.process(n,0),a=0);for(let e=a;e<r;e++)t[e]=0;Ca(n,r-8,BigInt(this.length*8),i),this.process(n,0);let o=vr(e),s=this.outputLen;if(s%4)throw Error(`_sha2: outputLen should be aligned to 32bit`);let c=s/4,l=this.get();if(c>l.length)throw Error(`_sha2: outputLen bigger than state`);for(let e=0;e<c;e++)o.setUint32(4*e,l[e],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:n,length:r,finished:i,destroyed:a,pos:o}=this;return e.length=r,e.pos=o,e.finished=i,e.destroyed=a,r%t&&e.buffer.set(n),e}},Da=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]),Oa=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ka=new Uint32Array(64),Aa=class extends Ea{constructor(){super(64,32,8,!1),this.A=Oa[0]|0,this.B=Oa[1]|0,this.C=Oa[2]|0,this.D=Oa[3]|0,this.E=Oa[4]|0,this.F=Oa[5]|0,this.G=Oa[6]|0,this.H=Oa[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}process(e,t){for(let n=0;n<16;n++,t+=4)ka[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=ka[e-15],n=ka[e-2],r=yr(t,7)^yr(t,18)^t>>>3,i=yr(n,17)^yr(n,19)^n>>>10;ka[e]=i+ka[e-7]+r+ka[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=yr(o,6)^yr(o,11)^yr(o,25),u=l+t+wa(o,s,c)+Da[e]+ka[e]|0,d=(yr(n,2)^yr(n,13)^yr(n,22))+Ta(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){ka.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},ja=Dr(()=>new Aa),Ma=BigInt(0),Na=BigInt(1),Pa=BigInt(2);function Fa(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function Ia(e){if(!Fa(e))throw Error(`Uint8Array expected`)}function La(e,t){if(typeof t!=`boolean`)throw Error(e+` boolean expected, got `+t)}var Ra=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function za(e){Ia(e);let t=``;for(let n=0;n<e.length;n++)t+=Ra[e[n]];return t}function Ba(e){let t=e.toString(16);return t.length&1?`0`+t:t}function Va(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);return e===``?Ma:BigInt(`0x`+e)}var Ha={_0:48,_9:57,A:65,F:70,a:97,f:102};function Ua(e){if(e>=Ha._0&&e<=Ha._9)return e-Ha._0;if(e>=Ha.A&&e<=Ha.F)return e-(Ha.A-10);if(e>=Ha.a&&e<=Ha.f)return e-(Ha.a-10)}function Wa(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);let t=e.length,n=t/2;if(t%2)throw Error(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=Ua(e.charCodeAt(i)),a=Ua(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw Error(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}function Ga(e){return Va(za(e))}function Ka(e){return Ia(e),Va(za(Uint8Array.from(e).reverse()))}function qa(e,t){return Wa(e.toString(16).padStart(t*2,`0`))}function Ja(e,t){return qa(e,t).reverse()}function Ya(e){return Wa(Ba(e))}function Xa(e,t,n){let r;if(typeof t==`string`)try{r=Wa(t)}catch(t){throw Error(e+` must be hex string or Uint8Array, cause: `+t)}else if(Fa(t))r=Uint8Array.from(t);else throw Error(e+` must be hex string or Uint8Array`);let i=r.length;if(typeof n==`number`&&i!==n)throw Error(e+` of length `+n+` expected, got `+i);return r}function Za(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];Ia(r),t+=r.length}let n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){let i=e[t];n.set(i,r),r+=i.length}return n}function Qa(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}function $a(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}var eo=e=>typeof e==`bigint`&&Ma<=e;function to(e,t,n){return eo(e)&&eo(t)&&eo(n)&&t<=e&&e<n}function no(e,t,n,r){if(!to(t,n,r))throw Error(`expected valid `+e+`: `+n+` <= n < `+r+`, got `+t)}function ro(e){let t=0;for(;e>Ma;e>>=Na,t+=1);return t}function io(e,t){return e>>BigInt(t)&Na}function ao(e,t,n){return e|(n?Na:Ma)<<BigInt(t)}var oo=e=>(Pa<<BigInt(e-1))-Na,so=e=>new Uint8Array(e),co=e=>Uint8Array.from(e);function lo(e,t,n){if(typeof e!=`number`||e<2)throw Error(`hashLen must be a number`);if(typeof t!=`number`||t<2)throw Error(`qByteLen must be a number`);if(typeof n!=`function`)throw Error(`hmacFn must be a function`);let r=so(e),i=so(e),a=0,o=()=>{r.fill(1),i.fill(0),a=0},s=(...e)=>n(i,r,...e),c=(e=so())=>{i=s(co([0]),e),r=s(),e.length!==0&&(i=s(co([1]),e),r=s())},l=()=>{if(a++>=1e3)throw Error(`drbg: tried 1000 values`);let e=0,n=[];for(;e<t;){r=s();let t=r.slice();n.push(t),e+=r.length}return Za(...n)};return(e,t)=>{o(),c(e);let n;for(;!(n=t(l()));)c();return o(),n}}var uo={bigint:e=>typeof e==`bigint`,function:e=>typeof e==`function`,boolean:e=>typeof e==`boolean`,string:e=>typeof e==`string`,stringOrUint8Array:e=>typeof e==`string`||Fa(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e==`function`&&Number.isSafeInteger(e.outputLen)};function fo(e,t,n={}){let r=(t,n,r)=>{let i=uo[n];if(typeof i!=`function`)throw Error(`invalid validator function`);let a=e[t];if(!(r&&a===void 0)&&!i(a,e))throw Error(`param `+String(t)+` is invalid. Expected `+n+`, got `+a)};for(let[e,n]of Object.entries(t))r(e,n,!1);for(let[e,t]of Object.entries(n))r(e,t,!0);return e}var po=()=>{throw Error(`not implemented`)};function mo(e){let t=new WeakMap;return(n,...r)=>{let i=t.get(n);if(i!==void 0)return i;let a=e(n,...r);return t.set(n,a),a}}var ho=Object.freeze({__proto__:null,isBytes:Fa,abytes:Ia,abool:La,bytesToHex:za,numberToHexUnpadded:Ba,hexToNumber:Va,hexToBytes:Wa,bytesToNumberBE:Ga,bytesToNumberLE:Ka,numberToBytesBE:qa,numberToBytesLE:Ja,numberToVarBytesBE:Ya,ensureBytes:Xa,concatBytes:Za,equalBytes:Qa,utf8ToBytes:$a,inRange:to,aInRange:no,bitLen:ro,bitGet:io,bitSet:ao,bitMask:oo,createHmacDrbg:lo,validateObject:fo,notImplemented:po,memoized:mo}),go=BigInt(0),H=BigInt(1),_o=BigInt(2),vo=BigInt(3),yo=BigInt(4),bo=BigInt(5),xo=BigInt(8);function So(e,t){let n=e%t;return n>=go?n:t+n}function Co(e,t,n){if(t<go)throw Error(`invalid exponent, negatives unsupported`);if(n<=go)throw Error(`invalid modulus`);if(n===H)return go;let r=H;for(;t>go;)t&H&&(r=r*e%n),e=e*e%n,t>>=H;return r}function wo(e,t,n){let r=e;for(;t-->go;)r*=r,r%=n;return r}function To(e,t){if(e===go)throw Error(`invert: expected non-zero number`);if(t<=go)throw Error(`invert: expected positive modulus, got `+t);let n=So(e,t),r=t,i=go,a=H;for(;n!==go;){let e=r/n,t=r%n,o=i-a*e;r=n,n=t,i=a,a=o}if(r!==H)throw Error(`invert: does not exist`);return So(i,t)}function Eo(e){let t=(e-H)/_o,n,r,i;for(n=e-H,r=0;n%_o===go;n/=_o,r++);for(i=_o;i<e&&Co(i,t,e)!==e-H;i++)if(i>1e3)throw Error(`Cannot find square root: likely non-prime P`);if(r===1){let t=(e+H)/yo;return function(e,n){let r=e.pow(n,t);if(!e.eql(e.sqr(r),n))throw Error(`Cannot find square root`);return r}}let a=(n+H)/_o;return function(e,o){if(e.pow(o,t)===e.neg(e.ONE))throw Error(`Cannot find square root`);let s=r,c=e.pow(e.mul(e.ONE,i),n),l=e.pow(o,a),u=e.pow(o,n);for(;!e.eql(u,e.ONE);){if(e.eql(u,e.ZERO))return e.ZERO;let t=1;for(let n=e.sqr(u);t<s&&!e.eql(n,e.ONE);t++)n=e.sqr(n);let n=e.pow(c,H<<BigInt(s-t-1));c=e.sqr(n),l=e.mul(l,n),u=e.mul(u,c),s=t}return l}}function Do(e){if(e%yo===vo){let t=(e+H)/yo;return function(e,n){let r=e.pow(n,t);if(!e.eql(e.sqr(r),n))throw Error(`Cannot find square root`);return r}}if(e%xo===bo){let t=(e-bo)/xo;return function(e,n){let r=e.mul(n,_o),i=e.pow(r,t),a=e.mul(n,i),o=e.mul(e.mul(a,_o),i),s=e.mul(a,e.sub(o,e.ONE));if(!e.eql(e.sqr(s),n))throw Error(`Cannot find square root`);return s}}return Eo(e)}var Oo=[`create`,`isValid`,`is0`,`neg`,`inv`,`sqrt`,`sqr`,`eql`,`add`,`sub`,`mul`,`pow`,`div`,`addN`,`subN`,`mulN`,`sqrN`];function ko(e){return fo(e,Oo.reduce((e,t)=>(e[t]=`function`,e),{ORDER:`bigint`,MASK:`bigint`,BYTES:`isSafeInteger`,BITS:`isSafeInteger`}))}function Ao(e,t,n){if(n<go)throw Error(`invalid exponent, negatives unsupported`);if(n===go)return e.ONE;if(n===H)return t;let r=e.ONE,i=t;for(;n>go;)n&H&&(r=e.mul(r,i)),i=e.sqr(i),n>>=H;return r}function jo(e,t){let n=Array(t.length),r=t.reduce((t,r,i)=>e.is0(r)?t:(n[i]=t,e.mul(t,r)),e.ONE),i=e.inv(r);return t.reduceRight((t,r,i)=>e.is0(r)?t:(n[i]=e.mul(t,n[i]),e.mul(t,r)),i),n}function Mo(e,t){let n=t===void 0?e.toString(2).length:t;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function No(e,t,n=!1,r={}){if(e<=go)throw Error(`invalid field: expected ORDER > 0, got `+e);let{nBitLength:i,nByteLength:a}=Mo(e,t);if(a>2048)throw Error(`invalid field: expected ORDER of <= 2048 bytes`);let o,s=Object.freeze({ORDER:e,isLE:n,BITS:i,BYTES:a,MASK:oo(i),ZERO:go,ONE:H,create:t=>So(t,e),isValid:t=>{if(typeof t!=`bigint`)throw Error(`invalid field element: expected bigint, got `+typeof t);return go<=t&&t<e},is0:e=>e===go,isOdd:e=>(e&H)===H,neg:t=>So(-t,e),eql:(e,t)=>e===t,sqr:t=>So(t*t,e),add:(t,n)=>So(t+n,e),sub:(t,n)=>So(t-n,e),mul:(t,n)=>So(t*n,e),pow:(e,t)=>Ao(s,e,t),div:(t,n)=>So(t*To(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>To(t,e),sqrt:r.sqrt||(t=>(o||=Do(e),o(s,t))),invertBatch:e=>jo(s,e),cmov:(e,t,n)=>n?t:e,toBytes:e=>n?Ja(e,a):qa(e,a),fromBytes:e=>{if(e.length!==a)throw Error(`Field.fromBytes: expected `+a+` bytes, got `+e.length);return n?Ka(e):Ga(e)}});return Object.freeze(s)}function Po(e){if(typeof e!=`bigint`)throw Error(`field order must be bigint`);let t=e.toString(2).length;return Math.ceil(t/8)}function Fo(e){let t=Po(e);return t+Math.ceil(t/2)}function Io(e,t,n=!1){let r=e.length,i=Po(t),a=Fo(t);if(r<16||r<a||r>1024)throw Error(`expected `+a+`-1024 bytes of input, got `+r);let o=So(n?Ka(e):Ga(e),t-H)+H;return n?Ja(o,i):qa(o,i)}var Lo=BigInt(0),Ro=BigInt(1);function zo(e,t){let n=t.negate();return e?n:t}function Bo(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error(`invalid window size, expected [1..`+t+`], got W=`+e)}function Vo(e,t){return Bo(e,t),{windows:Math.ceil(t/e)+1,windowSize:2**(e-1)}}function Ho(e,t){if(!Array.isArray(e))throw Error(`array expected`);e.forEach((e,n)=>{if(!(e instanceof t))throw Error(`invalid point at index `+n)})}function Uo(e,t){if(!Array.isArray(e))throw Error(`array of scalars expected`);e.forEach((e,n)=>{if(!t.isValid(e))throw Error(`invalid scalar at index `+n)})}var Wo=new WeakMap,Go=new WeakMap;function Ko(e){return Go.get(e)||1}function qo(e,t){return{constTimeNegate:zo,hasPrecomputes(e){return Ko(e)!==1},unsafeLadder(t,n,r=e.ZERO){let i=t;for(;n>Lo;)n&Ro&&(r=r.add(i)),i=i.double(),n>>=Ro;return r},precomputeWindow(e,n){let{windows:r,windowSize:i}=Vo(n,t),a=[],o=e,s=o;for(let e=0;e<r;e++){s=o,a.push(s);for(let e=1;e<i;e++)s=s.add(o),a.push(s);o=s.double()}return a},wNAF(n,r,i){let{windows:a,windowSize:o}=Vo(n,t),s=e.ZERO,c=e.BASE,l=BigInt(2**n-1),u=2**n,d=BigInt(n);for(let e=0;e<a;e++){let t=e*o,n=Number(i&l);i>>=d,n>o&&(n-=u,i+=Ro);let a=t,f=t+Math.abs(n)-1,p=e%2!=0,m=n<0;n===0?c=c.add(zo(p,r[a])):s=s.add(zo(m,r[f]))}return{p:s,f:c}},wNAFUnsafe(n,r,i,a=e.ZERO){let{windows:o,windowSize:s}=Vo(n,t),c=BigInt(2**n-1),l=2**n,u=BigInt(n);for(let e=0;e<o;e++){let t=e*s;if(i===Lo)break;let n=Number(i&c);if(i>>=u,n>s&&(n-=l,i+=Ro),n===0)continue;let o=r[t+Math.abs(n)-1];n<0&&(o=o.negate()),a=a.add(o)}return a},getPrecomputes(e,t,n){let r=Wo.get(t);return r||(r=this.precomputeWindow(t,e),e!==1&&Wo.set(t,n(r))),r},wNAFCached(e,t,n){let r=Ko(e);return this.wNAF(r,this.getPrecomputes(r,e,n),t)},wNAFCachedUnsafe(e,t,n,r){let i=Ko(e);return i===1?this.unsafeLadder(e,t,r):this.wNAFUnsafe(i,this.getPrecomputes(i,e,n),t,r)},setWindowSize(e,n){Bo(n,t),Go.set(e,n),Wo.delete(e)}}}function Jo(e,t,n,r){if(Ho(n,e),Uo(r,t),n.length!==r.length)throw Error(`arrays of points and scalars must have equal length`);let i=e.ZERO,a=ro(BigInt(n.length)),o=a>12?a-3:a>4?a-2:a?2:1,s=(1<<o)-1,c=Array(s+1).fill(i),l=Math.floor((t.BITS-1)/o)*o,u=i;for(let e=l;e>=0;e-=o){c.fill(i);for(let t=0;t<r.length;t++){let i=r[t],a=Number(i>>BigInt(e)&BigInt(s));c[a]=c[a].add(n[t])}let t=i;for(let e=c.length-1,n=i;e>0;e--)n=n.add(c[e]),t=t.add(n);if(u=u.add(t),e!==0)for(let e=0;e<o;e++)u=u.double()}return u}function Yo(e){return ko(e.Fp),fo(e,{n:`bigint`,h:`bigint`,Gx:`field`,Gy:`field`},{nBitLength:`isSafeInteger`,nByteLength:`isSafeInteger`}),Object.freeze({...Mo(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Xo=BigInt(0),Zo=BigInt(1);function Qo(e){return fo(e,{a:`bigint`},{montgomeryBits:`isSafeInteger`,nByteLength:`isSafeInteger`,adjustScalarBytes:`function`,domain:`function`,powPminus2:`function`,Gu:`bigint`}),Object.freeze({...e})}function $o(e){let t=Qo(e),{P:n}=t,r=e=>So(e,n),i=t.montgomeryBits,a=Math.ceil(i/8),o=t.nByteLength,s=t.adjustScalarBytes||(e=>e),c=t.powPminus2||(e=>Co(e,n-BigInt(2),n));function l(e,t,n){let i=r(e*(t-n));return t=r(t-i),n=r(n+i),[t,n]}let u=(t.a-BigInt(2))/BigInt(4);function d(e,t){no(`u`,e,Xo,n),no(`scalar`,t,Xo,n);let a=t,o=e,s=Zo,d=Xo,f=e,p=Zo,m=Xo,h;for(let e=BigInt(i-1);e>=Xo;e--){let t=a>>e&Zo;m^=t,h=l(m,s,f),s=h[0],f=h[1],h=l(m,d,p),d=h[0],p=h[1],m=t;let n=s+d,i=r(n*n),c=s-d,g=r(c*c),_=i-g,v=f+p,y=f-p,b=r(y*n),x=r(v*c),S=b+x,C=b-x;f=r(S*S),p=r(o*r(C*C)),s=r(i*g),d=r(_*(i+r(u*_)))}h=l(m,s,f),s=h[0],f=h[1],h=l(m,d,p),d=h[0],p=h[1];let g=c(d);return r(s*g)}function f(e){return Ja(r(e),a)}function p(e){let t=Xa(`u coordinate`,e,a);return o===32&&(t[31]&=127),Ka(t)}function m(e){let t=Xa(`scalar`,e),n=t.length;if(n!==a&&n!==o){let e=``+a+` or `+o;throw Error(`invalid scalar, expected `+e+` bytes, got `+n)}return Ka(s(t))}function h(e,t){let n=d(p(t),m(e));if(n===Xo)throw Error(`invalid private or public key received`);return f(n)}let g=f(t.Gu);function _(e){return h(e,g)}return{scalarMult:h,scalarMultBase:_,getSharedSecret:(e,t)=>h(e,t),getPublicKey:e=>_(e),utils:{randomPrivateKey:()=>t.randomBytes(t.nByteLength)},GuBytes:g}}var es=BigInt(`57896044618658097711785492504343953926634992332820282019728792003956564819949`),ts=BigInt(1),ns=BigInt(2),rs=BigInt(3),is=BigInt(5);function as(e){let t=BigInt(10),n=BigInt(20),r=BigInt(40),i=BigInt(80),a=es,o=e*e%a*e%a,s=wo(wo(o,ns,a)*o%a,ts,a)*e%a,c=wo(s,is,a)*s%a,l=wo(c,t,a)*c%a,u=wo(l,n,a)*l%a,d=wo(u,r,a)*u%a;return{pow_p_5_8:wo(wo(wo(wo(d,i,a)*d%a,i,a)*d%a,t,a)*c%a,ns,a)*e%a,b2:o}}function os(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var ss=$o({P:es,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:e=>{let t=es,{pow_p_5_8:n,b2:r}=as(e);return So(wo(n,rs,t)*r,t)},adjustScalarBytes:os,randomBytes:Or});function cs(e){e.lowS!==void 0&&La(`lowS`,e.lowS),e.prehash!==void 0&&La(`prehash`,e.prehash)}function ls(e){let t=Yo(e);fo(t,{a:`field`,b:`field`},{allowedPrivateKeyLengths:`array`,wrapPrivateKey:`boolean`,isTorsionFree:`function`,clearCofactor:`function`,allowInfinityPoint:`boolean`,fromBytes:`function`,toBytes:`function`});let{endo:n,Fp:r,a:i}=t;if(n){if(!r.eql(i,r.ZERO))throw Error(`invalid endomorphism, can only be defined for Koblitz curves that have a=0`);if(typeof n!=`object`||typeof n.beta!=`bigint`||typeof n.splitScalar!=`function`)throw Error(`invalid endomorphism, expected beta: bigint and splitScalar: function`)}return Object.freeze({...t})}var{bytesToNumberBE:us,hexToBytes:ds}=ho,fs={Err:class extends Error{constructor(e=``){super(e)}},_tlv:{encode:(e,t)=>{let{Err:n}=fs;if(e<0||e>256)throw new n(`tlv.encode: wrong tag`);if(t.length&1)throw new n(`tlv.encode: unpadded data`);let r=t.length/2,i=Ba(r);if(i.length/2&128)throw new n(`tlv.encode: long form length too big`);let a=r>127?Ba(i.length/2|128):``;return Ba(e)+a+i+t},decode(e,t){let{Err:n}=fs,r=0;if(e<0||e>256)throw new n(`tlv.encode: wrong tag`);if(t.length<2||t[r++]!==e)throw new n(`tlv.decode: wrong tlv`);let i=t[r++],a=!!(i&128),o=0;if(!a)o=i;else{let e=i&127;if(!e)throw new n(`tlv.decode(long): indefinite length not supported`);if(e>4)throw new n(`tlv.decode(long): byte length is too big`);let a=t.subarray(r,r+e);if(a.length!==e)throw new n(`tlv.decode: length bytes not complete`);if(a[0]===0)throw new n(`tlv.decode(long): zero leftmost byte`);for(let e of a)o=o<<8|e;if(r+=e,o<128)throw new n(`tlv.decode(long): not minimal encoding`)}let s=t.subarray(r,r+o);if(s.length!==o)throw new n(`tlv.decode: wrong value length`);return{v:s,l:t.subarray(r+o)}}},_int:{encode(e){let{Err:t}=fs;if(e<ps)throw new t(`integer: negative integers are not allowed`);let n=Ba(e);if(Number.parseInt(n[0],16)&8&&(n=`00`+n),n.length&1)throw new t(`unexpected DER parsing assertion: unpadded hex`);return n},decode(e){let{Err:t}=fs;if(e[0]&128)throw new t(`invalid signature integer: negative`);if(e[0]===0&&!(e[1]&128))throw new t(`invalid signature integer: unnecessary leading zero`);return us(e)}},toSig(e){let{Err:t,_int:n,_tlv:r}=fs,i=typeof e==`string`?ds(e):e;Ia(i);let{v:a,l:o}=r.decode(48,i);if(o.length)throw new t(`invalid signature: left bytes after parsing`);let{v:s,l:c}=r.decode(2,a),{v:l,l:u}=r.decode(2,c);if(u.length)throw new t(`invalid signature: left bytes after parsing`);return{r:n.decode(s),s:n.decode(l)}},hexFromSig(e){let{_tlv:t,_int:n}=fs,r=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,r)}},ps=BigInt(0),ms=BigInt(1),hs=BigInt(3);function gs(e){let t=ls(e),{Fp:n}=t,r=No(t.n,t.nBitLength),i=t.toBytes||((e,t,r)=>{let i=t.toAffine();return Za(Uint8Array.from([4]),n.toBytes(i.x),n.toBytes(i.y))}),a=t.fromBytes||(e=>{let t=e.subarray(1);return{x:n.fromBytes(t.subarray(0,n.BYTES)),y:n.fromBytes(t.subarray(n.BYTES,2*n.BYTES))}});function o(e){let{a:r,b:i}=t,a=n.sqr(e),o=n.mul(a,e);return n.add(n.add(o,n.mul(e,r)),i)}if(!n.eql(n.sqr(t.Gy),o(t.Gx)))throw Error(`bad generator point: equation left != right`);function s(e){return to(e,ms,t.n)}function c(e){let{allowedPrivateKeyLengths:n,nByteLength:r,wrapPrivateKey:i,n:a}=t;if(n&&typeof e!=`bigint`){if(Fa(e)&&(e=za(e)),typeof e!=`string`||!n.includes(e.length))throw Error(`invalid private key`);e=e.padStart(r*2,`0`)}let o;try{o=typeof e==`bigint`?e:Ga(Xa(`private key`,e,r))}catch{throw Error(`invalid private key, expected hex or `+r+` bytes, got `+typeof e)}return i&&(o=So(o,a)),no(`private key`,o,ms,a),o}function l(e){if(!(e instanceof f))throw Error(`ProjectivePoint expected`)}let u=mo((e,t)=>{let{px:r,py:i,pz:a}=e;if(n.eql(a,n.ONE))return{x:r,y:i};let o=e.is0();t??=o?n.ONE:n.inv(a);let s=n.mul(r,t),c=n.mul(i,t),l=n.mul(a,t);if(o)return{x:n.ZERO,y:n.ZERO};if(!n.eql(l,n.ONE))throw Error(`invZ was invalid`);return{x:s,y:c}}),d=mo(e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.py))return;throw Error(`bad point: ZERO`)}let{x:r,y:i}=e.toAffine();if(!n.isValid(r)||!n.isValid(i))throw Error(`bad point: x or y not FE`);let a=n.sqr(i),s=o(r);if(!n.eql(a,s))throw Error(`bad point: equation left != right`);if(!e.isTorsionFree())throw Error(`bad point: not in prime-order subgroup`);return!0});class f{constructor(e,t,r){if(this.px=e,this.py=t,this.pz=r,e==null||!n.isValid(e))throw Error(`x required`);if(t==null||!n.isValid(t))throw Error(`y required`);if(r==null||!n.isValid(r))throw Error(`z required`);Object.freeze(this)}static fromAffine(e){let{x:t,y:r}=e||{};if(!e||!n.isValid(t)||!n.isValid(r))throw Error(`invalid affine point`);if(e instanceof f)throw Error(`projective point not allowed`);let i=e=>n.eql(e,n.ZERO);return i(t)&&i(r)?f.ZERO:new f(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){let t=n.invertBatch(e.map(e=>e.pz));return e.map((e,n)=>e.toAffine(t[n])).map(f.fromAffine)}static fromHex(e){let t=f.fromAffine(a(Xa(`pointHex`,e)));return t.assertValidity(),t}static fromPrivateKey(e){return f.BASE.multiply(c(e))}static msm(e,t){return Jo(f,r,e,t)}_setWindowSize(e){m.setWindowSize(this,e)}assertValidity(){d(this)}hasEvenY(){let{y:e}=this.toAffine();if(n.isOdd)return!n.isOdd(e);throw Error(`Field doesn't support isOdd`)}equals(e){l(e);let{px:t,py:r,pz:i}=this,{px:a,py:o,pz:s}=e,c=n.eql(n.mul(t,s),n.mul(a,i)),u=n.eql(n.mul(r,s),n.mul(o,i));return c&&u}negate(){return new f(this.px,n.neg(this.py),this.pz)}double(){let{a:e,b:r}=t,i=n.mul(r,hs),{px:a,py:o,pz:s}=this,c=n.ZERO,l=n.ZERO,u=n.ZERO,d=n.mul(a,a),p=n.mul(o,o),m=n.mul(s,s),h=n.mul(a,o);return h=n.add(h,h),u=n.mul(a,s),u=n.add(u,u),c=n.mul(e,u),l=n.mul(i,m),l=n.add(c,l),c=n.sub(p,l),l=n.add(p,l),l=n.mul(c,l),c=n.mul(h,c),u=n.mul(i,u),m=n.mul(e,m),h=n.sub(d,m),h=n.mul(e,h),h=n.add(h,u),u=n.add(d,d),d=n.add(u,d),d=n.add(d,m),d=n.mul(d,h),l=n.add(l,d),m=n.mul(o,s),m=n.add(m,m),d=n.mul(m,h),c=n.sub(c,d),u=n.mul(m,p),u=n.add(u,u),u=n.add(u,u),new f(c,l,u)}add(e){l(e);let{px:r,py:i,pz:a}=this,{px:o,py:s,pz:c}=e,u=n.ZERO,d=n.ZERO,p=n.ZERO,m=t.a,h=n.mul(t.b,hs),g=n.mul(r,o),_=n.mul(i,s),v=n.mul(a,c),y=n.add(r,i),b=n.add(o,s);y=n.mul(y,b),b=n.add(g,_),y=n.sub(y,b),b=n.add(r,a);let x=n.add(o,c);return b=n.mul(b,x),x=n.add(g,v),b=n.sub(b,x),x=n.add(i,a),u=n.add(s,c),x=n.mul(x,u),u=n.add(_,v),x=n.sub(x,u),p=n.mul(m,b),u=n.mul(h,v),p=n.add(u,p),u=n.sub(_,p),p=n.add(_,p),d=n.mul(u,p),_=n.add(g,g),_=n.add(_,g),v=n.mul(m,v),b=n.mul(h,b),_=n.add(_,v),v=n.sub(g,v),v=n.mul(m,v),b=n.add(b,v),g=n.mul(_,b),d=n.add(d,g),g=n.mul(x,b),u=n.mul(y,u),u=n.sub(u,g),g=n.mul(y,_),p=n.mul(x,p),p=n.add(p,g),new f(u,d,p)}subtract(e){return this.add(e.negate())}is0(){return this.equals(f.ZERO)}wNAF(e){return m.wNAFCached(this,e,f.normalizeZ)}multiplyUnsafe(e){let{endo:r,n:i}=t;no(`scalar`,e,ps,i);let a=f.ZERO;if(e===ps)return a;if(this.is0()||e===ms)return this;if(!r||m.hasPrecomputes(this))return m.wNAFCachedUnsafe(this,e,f.normalizeZ);let{k1neg:o,k1:s,k2neg:c,k2:l}=r.splitScalar(e),u=a,d=a,p=this;for(;s>ps||l>ps;)s&ms&&(u=u.add(p)),l&ms&&(d=d.add(p)),p=p.double(),s>>=ms,l>>=ms;return o&&(u=u.negate()),c&&(d=d.negate()),d=new f(n.mul(d.px,r.beta),d.py,d.pz),u.add(d)}multiply(e){let{endo:r,n:i}=t;no(`scalar`,e,ms,i);let a,o;if(r){let{k1neg:t,k1:i,k2neg:s,k2:c}=r.splitScalar(e),{p:l,f:u}=this.wNAF(i),{p:d,f:p}=this.wNAF(c);l=m.constTimeNegate(t,l),d=m.constTimeNegate(s,d),d=new f(n.mul(d.px,r.beta),d.py,d.pz),a=l.add(d),o=u.add(p)}else{let{p:t,f:n}=this.wNAF(e);a=t,o=n}return f.normalizeZ([a,o])[0]}multiplyAndAddUnsafe(e,t,n){let r=f.BASE,i=(e,t)=>t===ps||t===ms||!e.equals(r)?e.multiplyUnsafe(t):e.multiply(t),a=i(this,t).add(i(e,n));return a.is0()?void 0:a}toAffine(e){return u(this,e)}isTorsionFree(){let{h:e,isTorsionFree:n}=t;if(e===ms)return!0;if(n)return n(f,this);throw Error(`isTorsionFree() has not been declared for the elliptic curve`)}clearCofactor(){let{h:e,clearCofactor:n}=t;return e===ms?this:n?n(f,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return La(`isCompressed`,e),this.assertValidity(),i(f,this,e)}toHex(e=!0){return La(`isCompressed`,e),za(this.toRawBytes(e))}}f.BASE=new f(t.Gx,t.Gy,n.ONE),f.ZERO=new f(n.ZERO,n.ONE,n.ZERO);let p=t.nBitLength,m=qo(f,t.endo?Math.ceil(p/2):p);return{CURVE:t,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:s}}function _s(e){let t=Yo(e);return fo(t,{hash:`hash`,hmac:`function`,randomBytes:`function`},{bits2int:`function`,bits2int_modN:`function`,lowS:`boolean`}),Object.freeze({lowS:!0,...t})}function vs(e){let t=_s(e),{Fp:n,n:r}=t,i=n.BYTES+1,a=2*n.BYTES+1;function o(e){return So(e,r)}function s(e){return To(e,r)}let{ProjectivePoint:c,normPrivateKeyToScalar:l,weierstrassEquation:u,isWithinCurveOrder:d}=gs({...t,toBytes(e,t,r){let i=t.toAffine(),a=n.toBytes(i.x),o=Za;return La(`isCompressed`,r),r?o(Uint8Array.from([t.hasEvenY()?2:3]),a):o(Uint8Array.from([4]),a,n.toBytes(i.y))},fromBytes(e){let t=e.length,r=e[0],o=e.subarray(1);if(t===i&&(r===2||r===3)){let e=Ga(o);if(!to(e,ms,n.ORDER))throw Error(`Point is not on curve`);let t=u(e),i;try{i=n.sqrt(t)}catch(e){let t=e instanceof Error?`: `+e.message:``;throw Error(`Point is not on curve`+t)}let a=(i&ms)===ms;return(r&1)==1!==a&&(i=n.neg(i)),{x:e,y:i}}if(t===a&&r===4)return{x:n.fromBytes(o.subarray(0,n.BYTES)),y:n.fromBytes(o.subarray(n.BYTES,2*n.BYTES))};{let e=i,n=a;throw Error(`invalid Point, expected length of `+e+`, or uncompressed `+n+`, got `+t)}}}),f=e=>za(qa(e,t.nByteLength));function p(e){return e>r>>ms}function m(e){return p(e)?o(-e):e}let h=(e,t,n)=>Ga(e.slice(t,n));class g{constructor(e,t,n){this.r=e,this.s=t,this.recovery=n,this.assertValidity()}static fromCompact(e){let n=t.nByteLength;return e=Xa(`compactSignature`,e,n*2),new g(h(e,0,n),h(e,n,2*n))}static fromDER(e){let{r:t,s:n}=fs.toSig(Xa(`DER`,e));return new g(t,n)}assertValidity(){no(`r`,this.r,ms,r),no(`s`,this.s,ms,r)}addRecoveryBit(e){return new g(this.r,this.s,e)}recoverPublicKey(e){let{r,s:i,recovery:a}=this,l=S(Xa(`msgHash`,e));if(a==null||![0,1,2,3].includes(a))throw Error(`recovery id invalid`);let u=a===2||a===3?r+t.n:r;if(u>=n.ORDER)throw Error(`recovery id 2 or 3 invalid`);let d=a&1?`03`:`02`,p=c.fromHex(d+f(u)),m=s(u),h=o(-l*m),g=o(i*m),_=c.BASE.multiplyAndAddUnsafe(p,h,g);if(!_)throw Error(`point at infinify`);return _.assertValidity(),_}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return Wa(this.toDERHex())}toDERHex(){return fs.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Wa(this.toCompactHex())}toCompactHex(){return f(this.r)+f(this.s)}}let _={isValidPrivateKey(e){try{return l(e),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{let e=Fo(t.n);return Io(t.randomBytes(e),t.n)},precompute(e=8,t=c.BASE){return t._setWindowSize(e),t.multiply(BigInt(3)),t}};function v(e,t=!0){return c.fromPrivateKey(e).toRawBytes(t)}function y(e){let t=Fa(e),n=typeof e==`string`,r=(t||n)&&e.length;return t?r===i||r===a:n?r===2*i||r===2*a:e instanceof c}function b(e,t,n=!0){if(y(e))throw Error(`first arg must be private key`);if(!y(t))throw Error(`second arg must be public key`);return c.fromHex(t).multiply(l(e)).toRawBytes(n)}let x=t.bits2int||function(e){if(e.length>8192)throw Error(`input is too large`);let n=Ga(e),r=e.length*8-t.nBitLength;return r>0?n>>BigInt(r):n},S=t.bits2int_modN||function(e){return o(x(e))},C=oo(t.nBitLength);function w(e){return no(`num < 2^`+t.nBitLength,e,ps,C),qa(e,t.nByteLength)}function T(e,r,i=E){if([`recovered`,`canonical`].some(e=>e in i))throw Error(`sign() legacy options not supported`);let{hash:a,randomBytes:u}=t,{lowS:f,prehash:h,extraEntropy:_}=i;f??=!0,e=Xa(`msgHash`,e),cs(i),h&&(e=Xa(`prehashed msgHash`,a(e)));let v=S(e),y=l(r),b=[w(y),w(v)];if(_!=null&&_!==!1){let e=_===!0?u(n.BYTES):_;b.push(Xa(`extraEntropy`,e))}let C=Za(...b),T=v;function D(e){let t=x(e);if(!d(t))return;let n=s(t),r=c.BASE.multiply(t).toAffine(),i=o(r.x);if(i===ps)return;let a=o(n*o(T+i*y));if(a===ps)return;let l=(r.x===i?0:2)|Number(r.y&ms),u=a;return f&&p(a)&&(u=m(a),l^=1),new g(i,u,l)}return{seed:C,k2sig:D}}let E={lowS:t.lowS,prehash:!1},D={lowS:t.lowS,prehash:!1};function O(e,n,r=E){let{seed:i,k2sig:a}=T(e,n,r),o=t;return lo(o.hash.outputLen,o.nByteLength,o.hmac)(i,a)}c.BASE._setWindowSize(8);function k(e,n,r,i=D){let a=e;n=Xa(`msgHash`,n),r=Xa(`publicKey`,r);let{lowS:l,prehash:u,format:d}=i;if(cs(i),`strict`in i)throw Error(`options.strict was renamed to lowS`);if(d!==void 0&&d!==`compact`&&d!==`der`)throw Error(`format must be compact or der`);let f=typeof a==`string`||Fa(a),p=!f&&!d&&typeof a==`object`&&!!a&&typeof a.r==`bigint`&&typeof a.s==`bigint`;if(!f&&!p)throw Error(`invalid signature, expected Uint8Array, hex string or Signature instance`);let m,h;try{if(p&&(m=new g(a.r,a.s)),f){try{d!==`compact`&&(m=g.fromDER(a))}catch(e){if(!(e instanceof fs.Err))throw e}!m&&d!==`der`&&(m=g.fromCompact(a))}h=c.fromHex(r)}catch{return!1}if(!m||l&&m.hasHighS())return!1;u&&(n=t.hash(n));let{r:_,s:v}=m,y=S(n),b=s(v),x=o(y*b),C=o(_*b),w=c.BASE.multiplyAndAddUnsafe(h,x,C)?.toAffine();return w?o(w.x)===_:!1}return{CURVE:t,getPublicKey:v,getSharedSecret:b,sign:O,verify:k,ProjectivePoint:c,Signature:g,utils:_}}function ys(e){return{hash:e,hmac:(t,...n)=>_a(e,t,Tr(...n)),randomBytes:Or}}function bs(e,t){let n=t=>vs({...e,...ys(t)});return{...n(t),create:n}}var xs=No(BigInt(`0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff`)),Ss=bs({a:xs.create(BigInt(`-3`)),b:BigInt(`0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b`),Fp:xs,n:BigInt(`0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551`),Gx:BigInt(`0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296`),Gy:BigInt(`0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5`),h:BigInt(1),lowS:!1},ja),Cs=`base10`,ws=`base16`,Ts=`base64pad`,Es=`base64url`,Ds=`utf8`,Os=0,ks=1,As=12,js=32;function Ms(){let e=ss.utils.randomPrivateKey(),t=ss.getPublicKey(e);return{privateKey:nn(e,ws),publicKey:nn(t,ws)}}function Ns(){return nn(Or(js),ws)}function Ps(e,t){return nn(Sa(ja,ss.getSharedSecret(tn(e,ws),tn(t,ws)),void 0,void 0,js),ws)}function Fs(e){return nn(ja(tn(e,ws)),ws)}function Is(e){return nn(ja(tn(e,Ds)),ws)}function Ls(e){return tn(`${e}`,Cs)}function Rs(e){return Number(nn(e,Cs))}function zs(e){return e.replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function Bs(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=(4-t.length%4)%4;return t+`=`.repeat(n)}function Vs(e){let t=Ls(typeof e.type<`u`?e.type:0);if(Rs(t)===1&&typeof e.senderPublicKey>`u`)throw Error(`Missing sender public key for type 1 envelope`);let n=typeof e.senderPublicKey<`u`?tn(e.senderPublicKey,ws):void 0,r=typeof e.iv<`u`?tn(e.iv,ws):Or(As),i=Gs({type:t,sealed:ha(tn(e.symKey,ws),r).encrypt(tn(e.message,Ds)),iv:r,senderPublicKey:n});return e.encoding===`base64url`?zs(i):i}function Hs(e){let t=tn(e.symKey,ws),{sealed:n,iv:r}=Ks({encoded:e.encoded,encoding:e.encoding}),i=ha(t,r).decrypt(n);if(i===null)throw Error(`Failed to decrypt`);return nn(i,Ds)}function Us(e,t){let n=Ls(2),r=Or(As),i=Gs({type:n,sealed:tn(e,Ds),iv:r});return t===`base64url`?zs(i):i}function Ws(e,t){let{sealed:n}=Ks({encoded:e,encoding:t});return nn(n,Ds)}function Gs(e){if(Rs(e.type)===2)return nn(Xt([e.type,e.sealed]),Ts);if(Rs(e.type)===1){if(typeof e.senderPublicKey>`u`)throw Error(`Missing sender public key for type 1 envelope`);return nn(Xt([e.type,e.senderPublicKey,e.iv,e.sealed]),Ts)}return nn(Xt([e.type,e.iv,e.sealed]),Ts)}function Ks(e){let t=tn((e.encoding||`base64pad`)===`base64url`?Bs(e.encoded):e.encoded,Ts),n=t.slice(Os,ks),r=ks;if(Rs(n)===1){let e=t.slice(r,33),i=t.slice(33,45);return{type:n,sealed:t.slice(45),iv:i,senderPublicKey:e}}if(Rs(n)===2)return{type:n,sealed:t.slice(r),iv:Or(As)};let i=t.slice(r,13);return{type:n,sealed:t.slice(13),iv:i}}function qs(e,t){let n=Ks({encoded:e,encoding:t?.encoding});return Js({type:Rs(n.type),senderPublicKey:typeof n.senderPublicKey<`u`?nn(n.senderPublicKey,ws):void 0,receiverPublicKey:t?.receiverPublicKey})}function Js(e){let t=e?.type||0;if(t===1){if(typeof e?.senderPublicKey>`u`)throw Error(`missing sender public key`);if(typeof e?.receiverPublicKey>`u`)throw Error(`missing receiver public key`)}return{type:t,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function Ys(e){return e.type===1&&typeof e.senderPublicKey==`string`&&typeof e.receiverPublicKey==`string`}function Xs(e){return e.type===2}function Zs(e){let t=c.from(e.x,`base64`),n=c.from(e.y,`base64`);return Xt([new Uint8Array([4]),t,n])}function Qs(e,t){let[n,r,i]=e.split(`.`),a=c.from(Bs(i),`base64`);if(a.length!==64)throw Error(`Invalid signature length`);let o=a.slice(0,32),s=a.slice(32,64),l=ja(`${n}.${r}`),u=Zs(t);if(!Ss.verify(Xt([o,s]),l,u))throw Error(`Invalid signature`);return h(e).payload}function $s(e){return e?.relay||{protocol:`irn`}}function ec(e){let t=O[e];if(typeof t>`u`)throw Error(`Relay Protocol not supported: ${e}`);return t}function tc(e,t=`-`){let n={},r=`relay`+t;return Object.keys(e).forEach(t=>{if(t.startsWith(r)){let i=t.replace(r,``),a=e[t];n[i]=a}}),n}function nc(e){if(!e.includes(`wc:`)){let t=er(e);t!=null&&t.includes(`wc:`)&&(e=t)}e=e.includes(`wc://`)?e.replace(`wc://`,``):e,e=e.includes(`wc:`)?e.replace(`wc:`,``):e;let t=e.indexOf(`:`),n=e.indexOf(`?`)===-1?void 0:e.indexOf(`?`),r=e.substring(0,t),i=e.substring(t+1,n).split(`@`),a=typeof n<`u`?e.substring(n):``,o=new URLSearchParams(a),s={};o.forEach((e,t)=>{s[t]=e});let c=typeof s.methods==`string`?s.methods.split(`,`):void 0;return{protocol:r,topic:rc(i[0]),version:parseInt(i[1],10),symKey:s.symKey,relay:tc(s),methods:c,expiryTimestamp:s.expiryTimestamp?parseInt(s.expiryTimestamp,10):void 0}}function rc(e){return e.startsWith(`//`)?e.substring(2):e}function ic(e,t=`-`){let n={};return Object.keys(e).forEach(r=>{let i=r,a=`relay`+t+i;e[i]&&(n[a]=e[i])}),n}function ac(e){let t=new URLSearchParams,n=ic(e.relay);Object.keys(n).sort().forEach(e=>{t.set(e,n[e])}),t.set(`symKey`,e.symKey),e.expiryTimestamp&&t.set(`expiryTimestamp`,e.expiryTimestamp.toString()),e.methods&&t.set(`methods`,e.methods.join(`,`));let r=t.toString();return`${e.protocol}:${e.topic}@${e.version}?${r}`}function oc(e,t,n){return`${e}?wc_ev=${n}&topic=${t}`}var sc=Object.defineProperty,cc=Object.defineProperties,lc=Object.getOwnPropertyDescriptors,uc=Object.getOwnPropertySymbols,dc=Object.prototype.hasOwnProperty,fc=Object.prototype.propertyIsEnumerable,pc=(e,t,n)=>t in e?sc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,mc=(e,t)=>{for(var n in t||={})dc.call(t,n)&&pc(e,n,t[n]);if(uc)for(var n of uc(t))fc.call(t,n)&&pc(e,n,t[n]);return e},hc=(e,t)=>cc(e,lc(t));function gc(e){let t=[];return e.forEach(e=>{let[n,r]=e.split(`:`);t.push(`${n}:${r}`)}),t}function _c(e){let t=[];return Object.values(e).forEach(e=>{t.push(...gc(e.accounts))}),t}function vc(e,t){let n=[];return Object.values(e).forEach(e=>{gc(e.accounts).includes(t)&&n.push(...e.methods)}),n}function yc(e,t){let n=[];return Object.values(e).forEach(e=>{gc(e.accounts).includes(t)&&n.push(...e.events)}),n}function bc(e){return e.includes(`:`)}function xc(e){return bc(e)?e.split(`:`)[0]:e}function Sc(e){let t={};if(!kc(e))return t;for(let[n,r]of Object.entries(e)){let e=bc(n)?[n]:r.chains,i=r.methods||[],a=r.events||[],o=xc(n);t[o]=hc(mc({},t[o]),{chains:Un(e,t[o]?.chains),methods:Un(i,t[o]?.methods),events:Un(a,t[o]?.events)})}return t}function Cc(e){let t={};return e?.forEach(e=>{var n;let[r,i]=e.split(`:`);t[r]||(t[r]={accounts:[],chains:[],events:[],methods:[]}),t[r].accounts.push(e),(n=t[r].chains)==null||n.push(`${r}:${i}`)}),t}function wc(e,t){t=t.map(e=>e.replace(`did:pkh:`,``));let n=Cc(t);for(let[t,r]of Object.entries(n))r.methods=r.methods?Un(r.methods,e):e,r.events=[`chainChanged`,`accountsChanged`];return n}function Tc(e,t){let n=Sc(e),r=Sc(t),i={},a=Object.keys(n).concat(Object.keys(r));for(let e of a)i[e]={chains:Un(n[e]?.chains,r[e]?.chains),methods:Un(n[e]?.methods,r[e]?.methods),events:Un(n[e]?.events,r[e]?.events)};return i}var Ec={INVALID_METHOD:{message:`Invalid method.`,code:1001},INVALID_EVENT:{message:`Invalid event.`,code:1002},INVALID_UPDATE_REQUEST:{message:`Invalid update request.`,code:1003},INVALID_EXTEND_REQUEST:{message:`Invalid extend request.`,code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:`Invalid session settle request.`,code:1005},UNAUTHORIZED_METHOD:{message:`Unauthorized method.`,code:3001},UNAUTHORIZED_EVENT:{message:`Unauthorized event.`,code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:`Unauthorized update request.`,code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:`Unauthorized extend request.`,code:3004},USER_REJECTED:{message:`User rejected.`,code:5e3},USER_REJECTED_CHAINS:{message:`User rejected chains.`,code:5001},USER_REJECTED_METHODS:{message:`User rejected methods.`,code:5002},USER_REJECTED_EVENTS:{message:`User rejected events.`,code:5003},UNSUPPORTED_CHAINS:{message:`Unsupported chains.`,code:5100},UNSUPPORTED_METHODS:{message:`Unsupported methods.`,code:5101},UNSUPPORTED_EVENTS:{message:`Unsupported events.`,code:5102},UNSUPPORTED_ACCOUNTS:{message:`Unsupported accounts.`,code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:`Unsupported namespace key.`,code:5104},USER_DISCONNECTED:{message:`User disconnected.`,code:6e3},SESSION_SETTLEMENT_FAILED:{message:`Session settlement failed.`,code:7e3},WC_METHOD_UNSUPPORTED:{message:`Unsupported wc_ method.`,code:10001}},Dc={NOT_INITIALIZED:{message:`Not initialized.`,code:1},NO_MATCHING_KEY:{message:`No matching key.`,code:2},RESTORE_WILL_OVERRIDE:{message:`Restore will override.`,code:3},RESUBSCRIBED:{message:`Resubscribed.`,code:4},MISSING_OR_INVALID:{message:`Missing or invalid.`,code:5},EXPIRED:{message:`Expired.`,code:6},UNKNOWN_TYPE:{message:`Unknown type.`,code:7},MISMATCHED_TOPIC:{message:`Mismatched topic.`,code:8},NON_CONFORMING_NAMESPACES:{message:`Non conforming namespaces.`,code:9}};function U(e,t){let{message:n,code:r}=Dc[e];return{message:t?`${n} ${t}`:n,code:r}}function W(e,t){let{message:n,code:r}=Ec[e];return{message:t?`${n} ${t}`:n,code:r}}function Oc(e,t){return Array.isArray(e)?typeof t<`u`&&e.length?e.every(t):!0:!1}function kc(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function Ac(e){return typeof e>`u`}function jc(e,t){return t&&Ac(e)?!0:typeof e==`string`&&!!e.trim().length}function Mc(e,t){return t&&Ac(e)?!0:typeof e==`number`&&!isNaN(e)}function Nc(e,t){let{requiredNamespaces:n}=t,r=Object.keys(e.namespaces),i=Object.keys(n),a=!0;return Mn(i,r)?(r.forEach(t=>{let{accounts:r,methods:i,events:o}=e.namespaces[t],s=gc(r),c=n[t];(!Mn(sn(t,c),s)||!Mn(c.methods,i)||!Mn(c.events,o))&&(a=!1)}),a):!1}function Pc(e){return jc(e,!1)&&e.includes(`:`)?e.split(`:`).length===2:!1}function Fc(e){if(jc(e,!1)&&e.includes(`:`)){let t=e.split(`:`);if(t.length===3){let e=t[0]+`:`+t[1];return!!t[2]&&Pc(e)}}return!1}function Ic(e){function t(e){try{return typeof new URL(e)<`u`}catch{return!1}}try{if(jc(e,!1))return t(e)?!0:t(er(e))}catch{}return!1}function Lc(e){return e?.proposer?.publicKey}function Rc(e){return e?.topic}function zc(e,t){let n=null;return jc(e?.publicKey,!1)||(n=U(`MISSING_OR_INVALID`,`${t} controller public key should be a string`)),n}function Bc(e){let t=!0;return Oc(e)?e.length&&(t=e.every(e=>jc(e,!1))):t=!1,t}function Vc(e,t,n){let r=null;return Oc(t)&&t.length?t.forEach(e=>{r||Pc(e)||(r=W(`UNSUPPORTED_CHAINS`,`${n}, chain ${e} should be a string and conform to "namespace:chainId" format`))}):Pc(e)||(r=W(`UNSUPPORTED_CHAINS`,`${n}, chains must be defined as "namespace:chainId" e.g. "eip155:1": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: ["eip155:1", "eip155:5"] }`)),r}function Hc(e,t,n){let r=null;return Object.entries(e).forEach(([e,i])=>{if(r)return;let a=Vc(e,sn(e,i),`${t} ${n}`);a&&(r=a)}),r}function Uc(e,t){let n=null;return Oc(e)?e.forEach(e=>{n||Fc(e)||(n=W(`UNSUPPORTED_ACCOUNTS`,`${t}, account ${e} should be a string and conform to "namespace:chainId:address" format`))}):n=W(`UNSUPPORTED_ACCOUNTS`,`${t}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),n}function Wc(e,t){let n=null;return Object.values(e).forEach(e=>{if(n)return;let r=Uc(e?.accounts,`${t} namespace`);r&&(n=r)}),n}function Gc(e,t){let n=null;return Bc(e?.methods)?Bc(e?.events)||(n=W(`UNSUPPORTED_EVENTS`,`${t}, events should be an array of strings or empty array for no events`)):n=W(`UNSUPPORTED_METHODS`,`${t}, methods should be an array of strings or empty array for no methods`),n}function Kc(e,t){let n=null;return Object.values(e).forEach(e=>{if(n)return;let r=Gc(e,`${t}, namespace`);r&&(n=r)}),n}function qc(e,t,n){let r=null;if(e&&kc(e)){let i=Kc(e,t);i&&(r=i);let a=Hc(e,t,n);a&&(r=a)}else r=U(`MISSING_OR_INVALID`,`${t}, ${n} should be an object with data`);return r}function Jc(e,t){let n=null;if(e&&kc(e)){let r=Kc(e,t);r&&(n=r);let i=Wc(e,t);i&&(n=i)}else n=U(`MISSING_OR_INVALID`,`${t}, namespaces should be an object with data`);return n}function Yc(e){return jc(e.protocol,!0)}function Xc(e,t){let n=!1;return t&&!e?n=!0:e&&Oc(e)&&e.length&&e.forEach(e=>{n=Yc(e)}),n}function Zc(e){return typeof e==`number`}function Qc(e){return typeof e<`u`&&!0}function $c(e){return!(!e||typeof e!=`object`||!e.code||!Mc(e.code,!1)||!e.message||!jc(e.message,!1))}function el(e){return!(Ac(e)||!jc(e.method,!1))}function tl(e){return!(Ac(e)||Ac(e.result)&&Ac(e.error)||!Mc(e.id,!1)||!jc(e.jsonrpc,!1))}function nl(e){return!(Ac(e)||!jc(e.name,!1))}function rl(e,t){return!(!Pc(t)||!_c(e).includes(t))}function il(e,t,n){return jc(n,!1)?vc(e,t).includes(n):!1}function al(e,t,n){return jc(n,!1)?yc(e,t).includes(n):!1}function ol(e,t,n){let r=null,i=sl(e),a=ll(t),o=Object.keys(i),s=Object.keys(a),c=cl(Object.keys(e)),l=cl(Object.keys(t)),u=c.filter(e=>!l.includes(e));return u.length&&(r=U(`NON_CONFORMING_NAMESPACES`,`${n} namespaces keys don't satisfy requiredNamespaces.
|
|
7
7
|
Required: ${u.toString()}
|
|
@@ -9,4 +9,4 @@ ${e.length}`,n=new TextEncoder().encode(t+e);return`0x`+c.from(Wr(n)).toString(`
|
|
|
9
9
|
Required: ${o.toString()}
|
|
10
10
|
Approved: ${s.toString()}`)),Object.keys(t).forEach(e=>{if(!e.includes(`:`)||r)return;let i=gc(t[e].accounts);i.includes(e)||(r=U(`NON_CONFORMING_NAMESPACES`,`${n} namespaces accounts don't satisfy namespace accounts for ${e}
|
|
11
11
|
Required: ${e}
|
|
12
|
-
Approved: ${i.toString()}`))}),o.forEach(e=>{r||(Mn(i[e].methods,a[e].methods)?Mn(i[e].events,a[e].events)||(r=U(`NON_CONFORMING_NAMESPACES`,`${n} namespaces events don't satisfy namespace events for ${e}`)):r=U(`NON_CONFORMING_NAMESPACES`,`${n} namespaces methods don't satisfy namespace methods for ${e}`))}),r}function sl(e){let t={};return Object.keys(e).forEach(n=>{var r;n.includes(`:`)?t[n]=e[n]:(r=e[n].chains)==null||r.forEach(r=>{t[r]={methods:e[n].methods,events:e[n].events}})}),t}function cl(e){return[...new Set(e.map(e=>e.includes(`:`)?e.split(`:`)[0]:e))]}function ll(e){let t={};return Object.keys(e).forEach(n=>{n.includes(`:`)?t[n]=e[n]:gc(e[n].accounts)?.forEach(r=>{t[r]={accounts:e[n].accounts.filter(e=>e.includes(`${r}:`)),methods:e[n].methods,events:e[n].events}})}),t}function ul(e,t){return Mc(e,!1)&&e<=t.max&&e>=t.min}function dl(){let e=Cn();return new Promise(t=>{switch(e){case _n.browser:t(fl());break;case _n.reactNative:t(pl());break;case _n.node:t(ml());break;default:t(!0)}})}function fl(){return Sn()&&navigator?.onLine}async function pl(){return yn()&&typeof o<`u`&&o!=null&&o.NetInfo?(await o?.NetInfo.fetch())?.isConnected:!0}function ml(){return!0}function hl(e){switch(Cn()){case _n.browser:gl(e);break;case _n.reactNative:_l(e);break;case _n.node:}}function gl(e){!yn()&&Sn()&&(window.addEventListener(`online`,()=>e(!0)),window.addEventListener(`offline`,()=>e(!1)))}function _l(e){yn()&&typeof o<`u`&&o!=null&&o.NetInfo&&o?.NetInfo.addEventListener(t=>e(t?.isConnected))}function vl(){return Sn()&&(0,qt.getDocument)()?(0,qt.getDocument)()?.visibilityState===`visible`:!0}var yl={},bl=class{static get(e){return yl[e]}static set(e,t){yl[e]=t}static delete(e){delete yl[e]}},xl=Object.defineProperty,Sl=(e,t,n)=>t in e?xl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Cl=(e,t,n)=>Sl(e,typeof t==`symbol`?t:t+``,n),wl=class extends m{constructor(e){super(),this.opts=e,Cl(this,`protocol`,`wc`),Cl(this,`version`,2)}},Tl=Object.defineProperty,El=(e,t,n)=>t in e?Tl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dl=(e,t,n)=>El(e,typeof t==`symbol`?t:t+``,n),Ol=class extends m{constructor(e,t){super(),this.core=e,this.logger=t,Dl(this,`records`,new Map)}},kl=class{constructor(e,t){this.logger=e,this.core=t}},Al=class extends m{constructor(e,t){super(),this.relayer=e,this.logger=t}},jl=class extends m{constructor(e){super()}},Ml=class{constructor(e,t,n,r){this.core=e,this.logger=t,this.name=n}},Nl=class extends m{constructor(e,t){super(),this.relayer=e,this.logger=t}},Pl=class extends m{constructor(e,t){super(),this.core=e,this.logger=t}},Fl=class{constructor(e,t,n){this.core=e,this.logger=t,this.store=n}},Il=class{constructor(e,t){this.projectId=e,this.logger=t}},Ll=class{constructor(e,t,n){this.core=e,this.logger=t,this.telemetryEnabled=n}},Rl=Object.defineProperty,zl=(e,t,n)=>t in e?Rl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Bl=(e,t,n)=>zl(e,typeof t==`symbol`?t:t+``,n),Vl=class{constructor(e){this.opts=e,Bl(this,`protocol`,`wc`),Bl(this,`version`,2)}},Hl=class{constructor(e){this.client=e}};s(),r();var Ul=`core`,Wl=`wc@2:${Ul}:`,Gl={name:Ul,logger:`error`},Kl={database:`:memory:`},ql=`crypto`,Jl=`client_ed25519_seed`,Yl=z.ONE_DAY,Xl=`keychain`,Zl=`messages`,Ql=z.SIX_HOURS,$l=`publisher`,eu=`relayer`,tu={message:`relayer_message`,message_ack:`relayer_message_ack`,connect:`relayer_connect`,disconnect:`relayer_disconnect`,error:`relayer_error`,connection_stalled:`relayer_connection_stalled`,transport_closed:`relayer_transport_closed`,publish:`relayer_publish`},nu={payload:`payload`,connect:`connect`,disconnect:`disconnect`,error:`error`},ru=`2.21.1`,G={link_mode:`link_mode`,relay:`relay`},iu={inbound:`inbound`,outbound:`outbound`},au=`WALLETCONNECT_CLIENT_ID`,ou={created:`subscription_created`,deleted:`subscription_deleted`,expired:`subscription_expired`,disabled:`subscription_disabled`,sync:`subscription_sync`,resubscribed:`subscription_resubscribed`},su=`subscription`;z.FIVE_SECONDS*1e3;var cu=`pairing`,lu={wc_pairingDelete:{req:{ttl:z.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:z.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:z.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:z.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:z.ONE_DAY,prompt:!1,tag:0},res:{ttl:z.ONE_DAY,prompt:!1,tag:0}}},uu={create:`pairing_create`,expire:`pairing_expire`,delete:`pairing_delete`,ping:`pairing_ping`},du={created:`history_created`,updated:`history_updated`,deleted:`history_deleted`,sync:`history_sync`},fu=`history`,pu=`expirer`,mu={created:`expirer_created`,deleted:`expirer_deleted`,expired:`expirer_expired`,sync:`expirer_sync`},hu=`verify-api`,gu=`https://verify.walletconnect.com`,_u=`https://verify.walletconnect.org`,vu=`${_u}/v3`,yu=[gu,_u],bu=`echo`,xu=`https://echo.walletconnect.com`,Su={pairing_started:`pairing_started`,pairing_uri_validation_success:`pairing_uri_validation_success`,pairing_uri_not_expired:`pairing_uri_not_expired`,store_new_pairing:`store_new_pairing`,subscribing_pairing_topic:`subscribing_pairing_topic`,subscribe_pairing_topic_success:`subscribe_pairing_topic_success`,existing_pairing:`existing_pairing`,pairing_not_expired:`pairing_not_expired`,emit_inactive_pairing:`emit_inactive_pairing`,emit_session_proposal:`emit_session_proposal`,subscribing_to_pairing_topic:`subscribing_to_pairing_topic`},Cu={no_wss_connection:`no_wss_connection`,no_internet_connection:`no_internet_connection`,malformed_pairing_uri:`malformed_pairing_uri`,active_pairing_already_exists:`active_pairing_already_exists`,subscribe_pairing_topic_failure:`subscribe_pairing_topic_failure`,pairing_expired:`pairing_expired`,proposal_expired:`proposal_expired`,proposal_listener_not_found:`proposal_listener_not_found`},wu={session_approve_started:`session_approve_started`,proposal_not_expired:`proposal_not_expired`,session_namespaces_validation_success:`session_namespaces_validation_success`,create_session_topic:`create_session_topic`,subscribing_session_topic:`subscribing_session_topic`,subscribe_session_topic_success:`subscribe_session_topic_success`,publishing_session_approve:`publishing_session_approve`,session_approve_publish_success:`session_approve_publish_success`,store_session:`store_session`,publishing_session_settle:`publishing_session_settle`,session_settle_publish_success:`session_settle_publish_success`},Tu={no_internet_connection:`no_internet_connection`,no_wss_connection:`no_wss_connection`,proposal_expired:`proposal_expired`,subscribe_session_topic_failure:`subscribe_session_topic_failure`,session_approve_publish_failure:`session_approve_publish_failure`,session_settle_publish_failure:`session_settle_publish_failure`,session_approve_namespace_validation_failure:`session_approve_namespace_validation_failure`,proposal_not_found:`proposal_not_found`},Eu={authenticated_session_approve_started:`authenticated_session_approve_started`,authenticated_session_not_expired:`authenticated_session_not_expired`,chains_caip2_compliant:`chains_caip2_compliant`,chains_evm_compliant:`chains_evm_compliant`,create_authenticated_session_topic:`create_authenticated_session_topic`,cacaos_verified:`cacaos_verified`,store_authenticated_session:`store_authenticated_session`,subscribing_authenticated_session_topic:`subscribing_authenticated_session_topic`,subscribe_authenticated_session_topic_success:`subscribe_authenticated_session_topic_success`,publishing_authenticated_session_approve:`publishing_authenticated_session_approve`,authenticated_session_approve_publish_success:`authenticated_session_approve_publish_success`},Du={no_internet_connection:`no_internet_connection`,no_wss_connection:`no_wss_connection`,missing_session_authenticate_request:`missing_session_authenticate_request`,session_authenticate_request_expired:`session_authenticate_request_expired`,chains_caip2_compliant_failure:`chains_caip2_compliant_failure`,chains_evm_compliant_failure:`chains_evm_compliant_failure`,invalid_cacao:`invalid_cacao`,subscribe_authenticated_session_topic_failure:`subscribe_authenticated_session_topic_failure`,authenticated_session_approve_publish_failure:`authenticated_session_approve_publish_failure`,authenticated_session_pending_request_not_found:`authenticated_session_pending_request_not_found`},Ou=.1,ku=`event-client`,Au=`https://pulse.walletconnect.org/batch`;function ju(e,t){if(e.length>=255)throw TypeError(`Alphabet too long`);for(var n=new Uint8Array(256),r=0;r<n.length;r++)n[r]=255;for(var i=0;i<e.length;i++){var a=e.charAt(i),o=a.charCodeAt(0);if(n[o]!==255)throw TypeError(a+` is ambiguous`);n[o]=i}var s=e.length,c=e.charAt(0),l=Math.log(s)/Math.log(256),u=Math.log(256)/Math.log(s);function d(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError(`Expected Uint8Array`);if(t.length===0)return``;for(var n=0,r=0,i=0,a=t.length;i!==a&&t[i]===0;)i++,n++;for(var o=(a-i)*u+1>>>0,l=new Uint8Array(o);i!==a;){for(var d=t[i],f=0,p=o-1;(d!==0||f<r)&&p!==-1;p--,f++)d+=256*l[p]>>>0,l[p]=d%s>>>0,d=d/s>>>0;if(d!==0)throw Error(`Non-zero carry`);r=f,i++}for(var m=o-r;m!==o&&l[m]===0;)m++;for(var h=c.repeat(n);m<o;++m)h+=e.charAt(l[m]);return h}function f(e){if(typeof e!=`string`)throw TypeError(`Expected String`);if(e.length===0)return new Uint8Array;var t=0;if(e[t]!==` `){for(var r=0,i=0;e[t]===c;)r++,t++;for(var a=(e.length-t)*l+1>>>0,o=new Uint8Array(a);e[t];){var u=n[e.charCodeAt(t)];if(u===255)return;for(var d=0,f=a-1;(u!==0||d<i)&&f!==-1;f--,d++)u+=s*o[f]>>>0,o[f]=u%256>>>0,u=u/256>>>0;if(u!==0)throw Error(`Non-zero carry`);i=d,t++}if(e[t]!==` `){for(var p=a-i;p!==a&&o[p]===0;)p++;for(var m=new Uint8Array(r+(a-p)),h=r;p!==a;)m[h++]=o[p++];return m}}}function p(e){var n=f(e);if(n)return n;throw Error(`Non-${t} character`)}return{encode:d,decodeUnsafe:f,decode:p}}var Mu=ju,Nu=e=>{if(e instanceof Uint8Array&&e.constructor.name===`Uint8Array`)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw Error(`Unknown type, must be binary type`)},Pu=e=>new TextEncoder().encode(e),Fu=e=>new TextDecoder().decode(e),Iu=class{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(`Unknown type, must be binary type`)}},Lu=class{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw Error(`Invalid prefix character`);this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e==`string`){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error(`Can only multibase decode strings`)}or(e){return zu(this,e)}},Ru=class{constructor(e){this.decoders=e}or(e){return zu(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},zu=(e,t)=>new Ru({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Bu=class{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new Iu(e,t,n),this.decoder=new Lu(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Vu=({name:e,prefix:t,encode:n,decode:r})=>new Bu(e,t,n,r),Hu=({prefix:e,name:t,alphabet:n})=>{let{encode:r,decode:i}=Mu(n,t);return Vu({prefix:e,name:t,encode:r,decode:e=>Nu(i(e))})},Uu=(e,t,n,r)=>{let i={};for(let e=0;e<t.length;++e)i[t[e]]=e;let a=e.length;for(;e[a-1]===`=`;)--a;let o=new Uint8Array(a*n/8|0),s=0,c=0,l=0;for(let t=0;t<a;++t){let a=i[e[t]];if(a===void 0)throw SyntaxError(`Non-${r} character`);c=c<<n|a,s+=n,s>=8&&(s-=8,o[l++]=255&c>>s)}if(s>=n||255&c<<8-s)throw SyntaxError(`Unexpected end of data`);return o},Wu=(e,t,n)=>{let r=t[t.length-1]===`=`,i=(1<<n)-1,a=``,o=0,s=0;for(let r=0;r<e.length;++r)for(s=s<<8|e[r],o+=8;o>n;)o-=n,a+=t[i&s>>o];if(o&&(a+=t[i&s<<n-o]),r)for(;a.length*n&7;)a+=`=`;return a},Gu=({name:e,prefix:t,bitsPerChar:n,alphabet:r})=>Vu({prefix:t,name:e,encode(e){return Wu(e,r,n)},decode(t){return Uu(t,r,n,e)}}),Ku=Vu({prefix:`\0`,name:`identity`,encode:e=>Fu(e),decode:e=>Pu(e)}),qu=Object.freeze({__proto__:null,identity:Ku}),Ju=Gu({prefix:`0`,name:`base2`,alphabet:`01`,bitsPerChar:1}),Yu=Object.freeze({__proto__:null,base2:Ju}),Xu=Gu({prefix:`7`,name:`base8`,alphabet:`01234567`,bitsPerChar:3}),Zu=Object.freeze({__proto__:null,base8:Xu}),Qu=Hu({prefix:`9`,name:`base10`,alphabet:`0123456789`}),$u=Object.freeze({__proto__:null,base10:Qu}),ed=Gu({prefix:`f`,name:`base16`,alphabet:`0123456789abcdef`,bitsPerChar:4}),td=Gu({prefix:`F`,name:`base16upper`,alphabet:`0123456789ABCDEF`,bitsPerChar:4}),nd=Object.freeze({__proto__:null,base16:ed,base16upper:td}),rd=Gu({prefix:`b`,name:`base32`,alphabet:`abcdefghijklmnopqrstuvwxyz234567`,bitsPerChar:5}),id=Gu({prefix:`B`,name:`base32upper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`,bitsPerChar:5}),ad=Gu({prefix:`c`,name:`base32pad`,alphabet:`abcdefghijklmnopqrstuvwxyz234567=`,bitsPerChar:5}),od=Gu({prefix:`C`,name:`base32padupper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=`,bitsPerChar:5}),sd=Gu({prefix:`v`,name:`base32hex`,alphabet:`0123456789abcdefghijklmnopqrstuv`,bitsPerChar:5}),cd=Gu({prefix:`V`,name:`base32hexupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV`,bitsPerChar:5}),ld=Gu({prefix:`t`,name:`base32hexpad`,alphabet:`0123456789abcdefghijklmnopqrstuv=`,bitsPerChar:5}),ud=Gu({prefix:`T`,name:`base32hexpadupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV=`,bitsPerChar:5}),dd=Gu({prefix:`h`,name:`base32z`,alphabet:`ybndrfg8ejkmcpqxot1uwisza345h769`,bitsPerChar:5}),fd=Object.freeze({__proto__:null,base32:rd,base32upper:id,base32pad:ad,base32padupper:od,base32hex:sd,base32hexupper:cd,base32hexpad:ld,base32hexpadupper:ud,base32z:dd}),pd=Hu({prefix:`k`,name:`base36`,alphabet:`0123456789abcdefghijklmnopqrstuvwxyz`}),md=Hu({prefix:`K`,name:`base36upper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ`}),hd=Object.freeze({__proto__:null,base36:pd,base36upper:md}),gd=Hu({name:`base58btc`,prefix:`z`,alphabet:`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`}),_d=Hu({name:`base58flickr`,prefix:`Z`,alphabet:`123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ`}),vd=Object.freeze({__proto__:null,base58btc:gd,base58flickr:_d}),yd=Gu({prefix:`m`,name:`base64`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,bitsPerChar:6}),bd=Gu({prefix:`M`,name:`base64pad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,bitsPerChar:6}),xd=Gu({prefix:`u`,name:`base64url`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,bitsPerChar:6}),Sd=Gu({prefix:`U`,name:`base64urlpad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=`,bitsPerChar:6}),Cd=Object.freeze({__proto__:null,base64:yd,base64pad:bd,base64url:xd,base64urlpad:Sd}),wd=Array.from(`🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂`),Td=wd.reduce((e,t,n)=>(e[n]=t,e),[]),Ed=wd.reduce((e,t,n)=>(e[t.codePointAt(0)]=n,e),[]);function Dd(e){return e.reduce((e,t)=>(e+=Td[t],e),``)}function Od(e){let t=[];for(let n of e){let e=Ed[n.codePointAt(0)];if(e===void 0)throw Error(`Non-base256emoji character: ${n}`);t.push(e)}return new Uint8Array(t)}var kd=Vu({prefix:`🚀`,name:`base256emoji`,encode:Dd,decode:Od}),Ad=Object.freeze({__proto__:null,base256emoji:kd}),jd=Fd,Md=128,Nd=-128,Pd=2**31;function Fd(e,t,n){t||=[],n||=0;for(var r=n;e>=Pd;)t[n++]=e&255|Md,e/=128;for(;e&Nd;)t[n++]=e&255|Md,e>>>=7;return t[n]=e|0,Fd.bytes=n-r+1,t}var Id=zd,Ld=128,Rd=127;function zd(e,t){var n=0,t=t||0,r=0,i=t,a,o=e.length;do{if(i>=o)throw zd.bytes=0,RangeError(`Could not decode varint`);a=e[i++],n+=r<28?(a&Rd)<<r:(a&Rd)*2**r,r+=7}while(a>=Ld);return zd.bytes=i-t,n}var Bd=128,Vd=2**14,Hd=2**21,Ud=2**28,Wd=2**35,Gd=2**42,Kd=2**49,qd=2**56,Jd=2**63,Yd={encode:jd,decode:Id,encodingLength:function(e){return e<Bd?1:e<Vd?2:e<Hd?3:e<Ud?4:e<Wd?5:e<Gd?6:e<Kd?7:e<qd?8:e<Jd?9:10}},Xd=(e,t,n=0)=>(Yd.encode(e,t,n),t),Zd=e=>Yd.encodingLength(e),Qd=(e,t)=>{let n=t.byteLength,r=Zd(e),i=r+Zd(n),a=new Uint8Array(i+n);return Xd(e,a,0),Xd(n,a,r),a.set(t,i),new $d(e,n,t,a)},$d=class{constructor(e,t,n,r){this.code=e,this.size=t,this.digest=n,this.bytes=r}},ef=({name:e,code:t,encode:n})=>new tf(e,t,n),tf=class{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?Qd(this.code,t):t.then(e=>Qd(this.code,e))}throw Error(`Unknown type, must be binary type`)}},nf=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),rf=ef({name:`sha2-256`,code:18,encode:nf(`SHA-256`)}),af=ef({name:`sha2-512`,code:19,encode:nf(`SHA-512`)}),of=Object.freeze({__proto__:null,sha256:rf,sha512:af}),sf=0,cf=`identity`,lf=Nu,uf=Object.freeze({__proto__:null,identity:{code:sf,name:cf,encode:lf,digest:e=>Qd(sf,lf(e))}});new TextEncoder,new TextDecoder;var df={...qu,...Yu,...Zu,...$u,...nd,...fd,...hd,...vd,...Cd,...Ad};({...of,...uf});function ff(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}function pf(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}var mf=pf(`utf8`,`u`,e=>`u`+new TextDecoder(`utf8`).decode(e),e=>new TextEncoder().encode(e.substring(1))),hf=pf(`ascii`,`a`,e=>{let t=`a`;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t},e=>{e=e.substring(1);let t=ff(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}),gf={utf8:mf,"utf-8":mf,hex:df.base16,latin1:hf,ascii:hf,binary:hf,...df};function _f(e,t=`utf8`){let n=gf[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e,`utf8`):n.decoder.decode(`${n.prefix}${e}`)}var vf=Object.defineProperty,yf=(e,t,n)=>t in e?vf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,bf=(e,t,n)=>yf(e,typeof t==`symbol`?t:t+``,n),xf=class{constructor(e,t){this.core=e,this.logger=t,bf(this,`keychain`,new Map),bf(this,`name`,Xl),bf(this,`version`,`0.3`),bf(this,`initialized`,!1),bf(this,`storagePrefix`,Wl),bf(this,`init`,async()=>{if(!this.initialized){let e=await this.getKeyChain();typeof e<`u`&&(this.keychain=e),this.initialized=!0}}),bf(this,`has`,e=>(this.isInitialized(),this.keychain.has(e))),bf(this,`set`,async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()}),bf(this,`get`,e=>{this.isInitialized();let t=this.keychain.get(e);if(typeof t>`u`){let{message:t}=U(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}),bf(this,`del`,async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()}),this.core=e,this.logger=Ie(t,this.name)}get context(){return Pe(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,Nn(e))}async getKeyChain(){let e=await this.core.storage.getItem(this.storageKey);return typeof e<`u`?Pn(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}},Sf=Object.defineProperty,Cf=(e,t,n)=>t in e?Sf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,wf=(e,t,n)=>Cf(e,typeof t==`symbol`?t:t+``,n),Tf=class{constructor(e,t,n){this.core=e,this.logger=t,wf(this,`name`,ql),wf(this,`keychain`),wf(this,`randomSessionIdentifier`,Ns()),wf(this,`initialized`,!1),wf(this,`init`,async()=>{this.initialized||=(await this.keychain.init(),!0)}),wf(this,`hasKeys`,e=>(this.isInitialized(),this.keychain.has(e))),wf(this,`getClientId`,async()=>{this.isInitialized();let e=await this.getClientSeed(),t=L(e);return y(t.publicKey)}),wf(this,`generateKeyPair`,()=>{this.isInitialized();let e=Ms();return this.setPrivateKey(e.publicKey,e.privateKey)}),wf(this,`signJWT`,async e=>{this.isInitialized();let t=await this.getClientSeed(),n=L(t),r=this.randomSessionIdentifier;return await I(r,e,Yl,n)}),wf(this,`generateSharedKey`,(e,t,n)=>{this.isInitialized();let r=Ps(this.getPrivateKey(e),t);return this.setSymKey(r,n)}),wf(this,`setSymKey`,async(e,t)=>{this.isInitialized();let n=t||Fs(e);return await this.keychain.set(n,e),n}),wf(this,`deleteKeyPair`,async e=>{this.isInitialized(),await this.keychain.del(e)}),wf(this,`deleteSymKey`,async e=>{this.isInitialized(),await this.keychain.del(e)}),wf(this,`encode`,async(e,t,n)=>{this.isInitialized();let r=Js(n),i=g(t);if(Xs(r))return Us(i,n?.encoding);if(Ys(r)){let t=r.senderPublicKey,n=r.receiverPublicKey;e=await this.generateSharedKey(t,n)}let a=this.getSymKey(e),{type:o,senderPublicKey:s}=r;return Vs({type:o,symKey:a,message:i,senderPublicKey:s,encoding:n?.encoding})}),wf(this,`decode`,async(e,t,n)=>{this.isInitialized();let r=qs(t,n);if(Xs(r)){let e=Ws(t,n?.encoding);return F(e)}if(Ys(r)){let t=r.receiverPublicKey,n=r.senderPublicKey;e=await this.generateSharedKey(t,n)}try{let r=Hs({symKey:this.getSymKey(e),encoded:t,encoding:n?.encoding});return F(r)}catch(t){this.logger.error(`Failed to decode message from topic: '${e}', clientId: '${await this.getClientId()}'`),this.logger.error(t)}}),wf(this,`getPayloadType`,(e,t=Ts)=>Rs(Ks({encoded:e,encoding:t}).type)),wf(this,`getPayloadSenderPublicKey`,(e,t=Ts)=>{let n=Ks({encoded:e,encoding:t});return n.senderPublicKey?nn(n.senderPublicKey,ws):void 0}),this.core=e,this.logger=Ie(t,this.name),this.keychain=n||new xf(this.core,this.logger)}get context(){return Pe(this.logger)}async setPrivateKey(e,t){return await this.keychain.set(e,t),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e=``;try{e=this.keychain.get(Jl)}catch{e=Ns(),await this.keychain.set(Jl,e)}return _f(e,`base16`)}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}},Ef=Object.defineProperty,Df=Object.defineProperties,Of=Object.getOwnPropertyDescriptors,kf=Object.getOwnPropertySymbols,Af=Object.prototype.hasOwnProperty,jf=Object.prototype.propertyIsEnumerable,Mf=(e,t,n)=>t in e?Ef(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Nf=(e,t)=>{for(var n in t||={})Af.call(t,n)&&Mf(e,n,t[n]);if(kf)for(var n of kf(t))jf.call(t,n)&&Mf(e,n,t[n]);return e},Pf=(e,t)=>Df(e,Of(t)),Ff=(e,t,n)=>Mf(e,typeof t==`symbol`?t:t+``,n),If=class extends kl{constructor(e,t){super(e,t),this.logger=e,this.core=t,Ff(this,`messages`,new Map),Ff(this,`messagesWithoutClientAck`,new Map),Ff(this,`name`,Zl),Ff(this,`version`,`0.3`),Ff(this,`initialized`,!1),Ff(this,`storagePrefix`,Wl),Ff(this,`init`,async()=>{if(!this.initialized){this.logger.trace(`Initialized`);try{let e=await this.getRelayerMessages();typeof e<`u`&&(this.messages=e);let t=await this.getRelayerMessagesWithoutClientAck();typeof t<`u`&&(this.messagesWithoutClientAck=t),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:`method`,method:`restore`,size:this.messages.size})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}finally{this.initialized=!0}}}),Ff(this,`set`,async(e,t,n)=>{this.isInitialized();let r=Is(t),i=this.messages.get(e);if(typeof i>`u`&&(i={}),typeof i[r]<`u`)return r;if(i[r]=t,this.messages.set(e,i),n===iu.inbound){let n=this.messagesWithoutClientAck.get(e)||{};this.messagesWithoutClientAck.set(e,Pf(Nf({},n),{[r]:t}))}return await this.persist(),r}),Ff(this,`get`,e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>`u`&&(t={}),t}),Ff(this,`getWithoutAck`,e=>{this.isInitialized();let t={};for(let n of e){let e=this.messagesWithoutClientAck.get(n)||{};t[n]=Object.values(e)}return t}),Ff(this,`has`,(e,t)=>(this.isInitialized(),typeof this.get(e)[Is(t)]<`u`)),Ff(this,`ack`,async(e,t)=>{this.isInitialized();let n=this.messagesWithoutClientAck.get(e);if(typeof n>`u`)return;let r=Is(t);delete n[r],Object.keys(n).length===0?this.messagesWithoutClientAck.delete(e):this.messagesWithoutClientAck.set(e,n),await this.persist()}),Ff(this,`del`,async e=>{this.isInitialized(),this.messages.delete(e),this.messagesWithoutClientAck.delete(e),await this.persist()}),this.logger=Ie(e,this.name),this.core=t}get context(){return Pe(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}get storageKeyWithoutClientAck(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name+`_withoutClientAck`}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,Nn(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,Nn(e))}async getRelayerMessages(){let e=await this.core.storage.getItem(this.storageKey);return typeof e<`u`?Pn(e):void 0}async getRelayerMessagesWithoutClientAck(){let e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<`u`?Pn(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}},Lf=Object.defineProperty,Rf=Object.defineProperties,zf=Object.getOwnPropertyDescriptors,Bf=Object.getOwnPropertySymbols,Vf=Object.prototype.hasOwnProperty,Hf=Object.prototype.propertyIsEnumerable,Uf=(e,t,n)=>t in e?Lf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wf=(e,t)=>{for(var n in t||={})Vf.call(t,n)&&Uf(e,n,t[n]);if(Bf)for(var n of Bf(t))Hf.call(t,n)&&Uf(e,n,t[n]);return e},Gf=(e,t)=>Rf(e,zf(t)),Kf=(e,t,n)=>Uf(e,typeof t==`symbol`?t:t+``,n),qf=class extends Al{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,Kf(this,`events`,new fe.EventEmitter),Kf(this,`name`,$l),Kf(this,`queue`,new Map),Kf(this,`publishTimeout`,(0,z.toMiliseconds)(z.ONE_MINUTE)),Kf(this,`initialPublishTimeout`,(0,z.toMiliseconds)(z.ONE_SECOND*15)),Kf(this,`needsTransportRestart`,!1),Kf(this,`publish`,async(e,t,n)=>{var r;this.logger.debug(`Publishing Payload`),this.logger.trace({type:`method`,method:`publish`,params:{topic:e,message:t,opts:n}});let i=n?.ttl||Ql,a=$s(n),o=n?.prompt||!1,s=n?.tag||0,c=n?.id||x().toString(),l={topic:e,message:t,opts:{ttl:i,relay:a,prompt:o,tag:s,id:c,attestation:n?.attestation,tvf:n?.tvf}},u=`Failed to publish payload, please try again. id:${c} tag:${s}`;try{let r=new Promise(async r=>{let a=({id:e})=>{l.opts.id===e&&(this.removeRequestFromQueue(e),this.relayer.events.removeListener(tu.publish,a),r(l))};this.relayer.events.on(tu.publish,a);let u=In(new Promise((r,a)=>{this.rpcPublish({topic:e,message:t,ttl:i,prompt:o,tag:s,id:c,attestation:n?.attestation,tvf:n?.tvf}).then(r).catch(e=>{this.logger.warn(e,e?.message),a(e)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${c} tag:${s}`);try{await u,this.events.removeListener(tu.publish,a)}catch(e){this.queue.set(c,Gf(Wf({},l),{attempt:1})),this.logger.warn(e,e?.message)}});this.logger.trace({type:`method`,method:`publish`,params:{id:c,topic:e,message:t,opts:n}}),await In(r,this.publishTimeout,u)}catch(e){if(this.logger.debug(`Failed to Publish Payload`),this.logger.error(e),(r=n?.internal)!=null&&r.throwOnFailedPublish)throw e}finally{this.queue.delete(c)}}),Kf(this,`on`,(e,t)=>{this.events.on(e,t)}),Kf(this,`once`,(e,t)=>{this.events.once(e,t)}),Kf(this,`off`,(e,t)=>{this.events.off(e,t)}),Kf(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.relayer=e,this.logger=Ie(t,this.name),this.registerEventListeners()}get context(){return Pe(this.logger)}async rpcPublish(e){var t,n;let{topic:r,message:i,ttl:a=Ql,prompt:o,tag:s,id:c,attestation:l,tvf:u}=e,d={method:ec($s().protocol).publish,params:Wf({topic:r,message:i,ttl:a,prompt:o,tag:s,attestation:l},u),id:c};Ac(d.params?.prompt)&&((t=d.params)==null||delete t.prompt),Ac(d.params?.tag)&&((n=d.params)==null||delete n.tag),this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`message`,direction:`outgoing`,request:d});let f=await this.relayer.request(d);return this.relayer.events.emit(tu.publish,e),this.logger.debug(`Successfully Published Payload`),f}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,t)=>{let n=e.attempt+1;this.queue.set(t,Gf(Wf({},e),{attempt:n}));let{topic:r,message:i,opts:a,attestation:o}=e;this.logger.warn({},`Publisher: queue->publishing: ${e.opts.id}, tag: ${e.opts.tag}, attempt: ${n}`),await this.rpcPublish(Gf(Wf({},e),{topic:r,message:i,ttl:a.ttl,prompt:a.prompt,tag:a.tag,id:a.id,attestation:o,tvf:a.tvf})),this.logger.warn({},`Publisher: queue->published: ${e.opts.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(f.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(tu.connection_stalled);return}this.checkQueue()}),this.relayer.on(tu.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}},Jf=Object.defineProperty,Yf=(e,t,n)=>t in e?Jf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Xf=(e,t,n)=>Yf(e,typeof t==`symbol`?t:t+``,n),Zf=class{constructor(){Xf(this,`map`,new Map),Xf(this,`set`,(e,t)=>{let n=this.get(e);this.exists(e,t)||this.map.set(e,[...n,t])}),Xf(this,`get`,e=>this.map.get(e)||[]),Xf(this,`exists`,(e,t)=>this.get(e).includes(t)),Xf(this,`delete`,(e,t)=>{if(typeof t>`u`){this.map.delete(e);return}if(!this.map.has(e))return;let n=this.get(e);if(!this.exists(e,t))return;let r=n.filter(e=>e!==t);if(!r.length){this.map.delete(e);return}this.map.set(e,r)}),Xf(this,`clear`,()=>{this.map.clear()})}get topics(){return Array.from(this.map.keys())}},Qf=Object.defineProperty,$f=Object.defineProperties,ep=Object.getOwnPropertyDescriptors,tp=Object.getOwnPropertySymbols,np=Object.prototype.hasOwnProperty,rp=Object.prototype.propertyIsEnumerable,ip=(e,t,n)=>t in e?Qf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ap=(e,t)=>{for(var n in t||={})np.call(t,n)&&ip(e,n,t[n]);if(tp)for(var n of tp(t))rp.call(t,n)&&ip(e,n,t[n]);return e},op=(e,t)=>$f(e,ep(t)),K=(e,t,n)=>ip(e,typeof t==`symbol`?t:t+``,n),sp=class extends Nl{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,K(this,`subscriptions`,new Map),K(this,`topicMap`,new Zf),K(this,`events`,new fe.EventEmitter),K(this,`name`,su),K(this,`version`,`0.3`),K(this,`pending`,new Map),K(this,`cached`,[]),K(this,`initialized`,!1),K(this,`storagePrefix`,Wl),K(this,`subscribeTimeout`,(0,z.toMiliseconds)(z.ONE_MINUTE)),K(this,`initialSubscribeTimeout`,(0,z.toMiliseconds)(z.ONE_SECOND*15)),K(this,`clientId`),K(this,`batchSubscribeTopicsLimit`,500),K(this,`init`,async()=>{this.initialized||(this.logger.trace(`Initialized`),this.registerEventListeners(),await this.restore()),this.initialized=!0}),K(this,`subscribe`,async(e,t)=>{this.isInitialized(),this.logger.debug(`Subscribing Topic`),this.logger.trace({type:`method`,method:`subscribe`,params:{topic:e,opts:t}});try{let n=$s(t),r={topic:e,relay:n,transportType:t?.transportType};this.pending.set(e,r);let i=await this.rpcSubscribe(e,n,t);return typeof i==`string`&&(this.onSubscribe(i,r),this.logger.debug(`Successfully Subscribed Topic`),this.logger.trace({type:`method`,method:`subscribe`,params:{topic:e,opts:t}})),i}catch(e){throw this.logger.debug(`Failed to Subscribe Topic`),this.logger.error(e),e}}),K(this,`unsubscribe`,async(e,t)=>{this.isInitialized(),typeof t?.id<`u`?await this.unsubscribeById(e,t.id,t):await this.unsubscribeByTopic(e,t)}),K(this,`isSubscribed`,e=>new Promise(t=>{t(this.topicMap.topics.includes(e))})),K(this,`isKnownTopic`,e=>new Promise(t=>{t(this.topicMap.topics.includes(e)||this.pending.has(e)||this.cached.some(t=>t.topic===e))})),K(this,`on`,(e,t)=>{this.events.on(e,t)}),K(this,`once`,(e,t)=>{this.events.once(e,t)}),K(this,`off`,(e,t)=>{this.events.off(e,t)}),K(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),K(this,`start`,async()=>{await this.onConnect()}),K(this,`stop`,async()=>{await this.onDisconnect()}),K(this,`restart`,async()=>{await this.restore(),await this.onRestart()}),K(this,`checkPending`,async()=>{if(this.pending.size===0&&(!this.initialized||!this.relayer.connected))return;let e=[];this.pending.forEach(t=>{e.push(t)}),await this.batchSubscribe(e)}),K(this,`registerEventListeners`,()=>{this.relayer.core.heartbeat.on(f.pulse,async()=>{await this.checkPending()}),this.events.on(ou.created,async e=>{let t=ou.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),await this.persist()}),this.events.on(ou.deleted,async e=>{let t=ou.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),await this.persist()})}),this.relayer=e,this.logger=Ie(t,this.name),this.clientId=``}get context(){return Pe(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+`//`+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}get hasAnyTopics(){return this.topicMap.topics.length>0||this.pending.size>0||this.cached.length>0||this.subscriptions.size>0}hasSubscription(e,t){let n=!1;try{n=this.getSubscription(e).topic===t}catch{}return n}reset(){this.cached=[],this.initialized=!0}onDisable(){this.values.length>0&&(this.cached=this.values),this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){let n=this.topicMap.get(e);await Promise.all(n.map(async n=>await this.unsubscribeById(e,n,t)))}async unsubscribeById(e,t,n){this.logger.debug(`Unsubscribing Topic`),this.logger.trace({type:`method`,method:`unsubscribe`,params:{topic:e,id:t,opts:n}});try{let r=$s(n);await this.restartToComplete({topic:e,id:t,relay:r}),await this.rpcUnsubscribe(e,t,r);let i=W(`USER_DISCONNECTED`,`${this.name}, ${e}`);await this.onUnsubscribe(e,t,i),this.logger.debug(`Successfully Unsubscribed Topic`),this.logger.trace({type:`method`,method:`unsubscribe`,params:{topic:e,id:t,opts:n}})}catch(e){throw this.logger.debug(`Failed to Unsubscribe Topic`),this.logger.error(e),e}}async rpcSubscribe(e,t,n){(!n||n?.transportType===G.relay)&&await this.restartToComplete({topic:e,id:e,relay:t});let r={method:ec(t.protocol).subscribe,params:{topic:e}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:r});let i=n?.internal?.throwOnFailedPublish;try{let t=await this.getSubscriptionId(e);if(n?.transportType===G.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(r).catch(e=>this.logger.warn(e))},(0,z.toMiliseconds)(z.ONE_SECOND)),t;let a=await In(new Promise(async t=>{let n=r=>{r.topic===e&&(this.events.removeListener(ou.created,n),t(r.id))};this.events.on(ou.created,n);try{let i=await In(new Promise((e,t)=>{this.relayer.request(r).catch(e=>{this.logger.warn(e,e?.message),t(e)}).then(e)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(ou.created,n),t(i)}catch{}}),this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!a&&i)throw Error(`Subscribing to ${e} failed, please try again`);return a?t:null}catch(e){if(this.logger.debug(`Outgoing Relay Subscribe Payload stalled`),this.relayer.events.emit(tu.connection_stalled),i)throw e}return null}async rpcBatchSubscribe(e){if(!e.length)return;let t=e[0].relay,n={method:ec(t.protocol).batchSubscribe,params:{topics:e.map(e=>e.topic)}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:n});try{await await In(new Promise(e=>{this.relayer.request(n).catch(e=>this.logger.warn(e)).then(e)}),this.subscribeTimeout,`rpcBatchSubscribe failed, please try again`)}catch{this.relayer.events.emit(tu.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;let t=e[0].relay,n={method:ec(t.protocol).batchFetchMessages,params:{topics:e.map(e=>e.topic)}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:n});let r;try{r=await await In(new Promise((e,t)=>{this.relayer.request(n).catch(e=>{this.logger.warn(e),t(e)}).then(e)}),this.subscribeTimeout,`rpcBatchFetchMessages failed, please try again`)}catch{this.relayer.events.emit(tu.connection_stalled)}return r}rpcUnsubscribe(e,t,n){let r={method:ec(n.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:r}),this.relayer.request(r)}onSubscribe(e,t){this.setSubscription(e,op(ap({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(e=>{this.setSubscription(e.id,ap({},e)),this.pending.delete(e.topic)})}async onUnsubscribe(e,t,n){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,n),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,t){this.logger.debug(`Setting subscription`),this.logger.trace({type:`method`,method:`setSubscription`,id:e,subscription:t}),this.addSubscription(e,t)}addSubscription(e,t){this.subscriptions.set(e,ap({},t)),this.topicMap.set(t.topic,e),this.events.emit(ou.created,t)}getSubscription(e){this.logger.debug(`Getting subscription`),this.logger.trace({type:`method`,method:`getSubscription`,id:e});let t=this.subscriptions.get(e);if(!t){let{message:t}=U(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}deleteSubscription(e,t){this.logger.debug(`Deleting subscription`),this.logger.trace({type:`method`,method:`deleteSubscription`,id:e,reason:t});let n=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(n.topic,e),this.events.emit(ou.deleted,op(ap({},n),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(ou.sync)}async onRestart(){if(this.cached.length){let e=[...this.cached],t=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let n=0;n<t;n++){let t=e.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(t)}}this.events.emit(ou.resubscribed)}async restore(){try{let e=await this.getRelayerSubscriptions();if(typeof e>`u`||!e.length)return;if(this.subscriptions.size){let{message:e}=U(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:`method`,method:`restore`,subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){e.length&&(await this.rpcBatchSubscribe(e),this.onBatchSubscribe(await Promise.all(e.map(async e=>op(ap({},e),{id:await this.getSubscriptionId(e.topic)})))))}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);let t=await this.rpcBatchFetchMessages(e);t&&t.messages&&(await tr((0,z.toMiliseconds)(z.ONE_SECOND)),await this.relayer.handleBatchMessageEvents(t.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}async restartToComplete(e){!this.relayer.connected&&!this.relayer.connecting&&(this.cached.push(e),await this.relayer.transportOpen())}async getClientId(){return this.clientId||=await this.relayer.core.crypto.getClientId(),this.clientId}async getSubscriptionId(e){return Is(e+await this.getClientId())}},cp=Object.defineProperty,lp=Object.getOwnPropertySymbols,up=Object.prototype.hasOwnProperty,dp=Object.prototype.propertyIsEnumerable,fp=(e,t,n)=>t in e?cp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,pp=(e,t)=>{for(var n in t||={})up.call(t,n)&&fp(e,n,t[n]);if(lp)for(var n of lp(t))dp.call(t,n)&&fp(e,n,t[n]);return e},q=(e,t,n)=>fp(e,typeof t==`symbol`?t:t+``,n),mp=class extends jl{constructor(e){super(e),q(this,`protocol`,`wc`),q(this,`version`,2),q(this,`core`),q(this,`logger`),q(this,`events`,new fe.EventEmitter),q(this,`provider`),q(this,`messages`),q(this,`subscriber`),q(this,`publisher`),q(this,`name`,eu),q(this,`transportExplicitlyClosed`,!1),q(this,`initialized`,!1),q(this,`connectionAttemptInProgress`,!1),q(this,`relayUrl`),q(this,`projectId`),q(this,`packageName`),q(this,`bundleId`),q(this,`hasExperiencedNetworkDisruption`,!1),q(this,`pingTimeout`),q(this,`heartBeatTimeout`,(0,z.toMiliseconds)(z.THIRTY_SECONDS+z.FIVE_SECONDS)),q(this,`reconnectTimeout`),q(this,`connectPromise`),q(this,`reconnectInProgress`,!1),q(this,`requestsInFlight`,[]),q(this,`connectTimeout`,(0,z.toMiliseconds)(z.ONE_SECOND*15)),q(this,`request`,async e=>{this.logger.debug(`Publishing Request Payload`);let t=e.id||x().toString();await this.toEstablishConnection();try{this.logger.trace({id:t,method:e.method,topic:e.params?.topic},`relayer.request - publishing...`);let n=`${t}:${e.params?.tag||``}`;this.requestsInFlight.push(n);let r=await this.provider.request(e);return this.requestsInFlight=this.requestsInFlight.filter(e=>e!==n),r}catch(e){throw this.logger.debug(`Failed to Publish Request: ${t}`),e}}),q(this,`resetPingTimeout`,()=>{vn()&&(clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{var e,t;try{this.logger.debug({},`pingTimeout: Connection stalled, terminating...`),(t=(e=this.provider?.connection?.socket)?.terminate)==null||t.call(e)}catch(e){this.logger.warn(e,e?.message)}},this.heartBeatTimeout))}),q(this,`onPayloadHandler`,e=>{this.onProviderPayload(e),this.resetPingTimeout()}),q(this,`onConnectHandler`,()=>{this.logger.warn({},`Relayer connected 🛜`),this.startPingTimeout(),this.events.emit(tu.connect)}),q(this,`onDisconnectHandler`,()=>{this.logger.warn({},`Relayer disconnected 🛑`),this.requestsInFlight=[],this.onProviderDisconnect()}),q(this,`onProviderErrorHandler`,e=>{this.logger.fatal(`Fatal socket error: ${e.message}`),this.events.emit(tu.error,e),this.logger.fatal(`Fatal socket error received, closing transport`),this.transportClose()}),q(this,`registerProviderListeners`,()=>{this.provider.on(nu.payload,this.onPayloadHandler),this.provider.on(nu.connect,this.onConnectHandler),this.provider.on(nu.disconnect,this.onDisconnectHandler),this.provider.on(nu.error,this.onProviderErrorHandler)}),this.core=e.core,this.logger=typeof e.logger<`u`&&typeof e.logger!=`string`?Ie(e.logger,this.name):(0,pe.default)(je({level:e.logger||`error`})),this.messages=new If(this.logger,e.core),this.subscriber=new sp(this,this.logger),this.publisher=new qf(this,this.logger),this.relayUrl=e?.relayUrl||`wss://relay.walletconnect.org`,this.projectId=e.projectId,bn()?this.packageName=wn():xn()&&(this.bundleId=wn()),this.provider={}}async init(){if(this.logger.trace(`Initialized`),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.subscriber.hasAnyTopics)try{await this.transportOpen()}catch(e){this.logger.warn(e,e?.message)}}get context(){return Pe(this.logger)}get connected(){return this.provider?.connection?.socket?.readyState===1||!1}get connecting(){return this.provider?.connection?.socket?.readyState===0||this.connectPromise!==void 0||!1}async publish(e,t,n){this.isInitialized(),await this.publisher.publish(e,t,n),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now(),transportType:G.relay},iu.outbound)}async subscribe(e,t){this.isInitialized(),(!(t!=null&&t.transportType)||t?.transportType===`relay`)&&await this.toEstablishConnection();let n=typeof t?.internal?.throwOnFailedPublish>`u`||t?.internal?.throwOnFailedPublish,r=this.subscriber.topicMap.get(e)?.[0]||``,i,a=t=>{t.topic===e&&(this.subscriber.off(ou.created,a),i())};return await Promise.all([new Promise(e=>{i=e,this.subscriber.on(ou.created,a)}),new Promise(async(i,a)=>{r=await this.subscriber.subscribe(e,pp({internal:{throwOnFailedPublish:n}},t)).catch(e=>{n&&a(e)})||r,i()})]),r}async unsubscribe(e,t){this.isInitialized(),await this.subscriber.unsubscribe(e,t)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async transportDisconnect(){this.provider.disconnect&&(this.hasExperiencedNetworkDisruption||this.connected)?await In(this.provider.disconnect(),2e3,`provider.disconnect()`).catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(e){if(!this.subscriber.hasAnyTopics){this.logger.warn(`Starting WS connection skipped because the client has no topics to work with.`);return}if(this.connectPromise?(this.logger.debug({},`Waiting for existing connection attempt to resolve...`),await this.connectPromise,this.logger.debug({},`Existing connection attempt resolved`)):(this.connectPromise=new Promise(async(t,n)=>{await this.connect(e).then(t).catch(n).finally(()=>{this.connectPromise=void 0})}),await this.connectPromise),!this.connected)throw Error(`Couldn't establish socket connection to the relay server: ${this.relayUrl}`)}async restartTransport(e){this.logger.debug({},`Restarting transport...`),!this.connectionAttemptInProgress&&(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!await dl())throw Error(`No internet connection detected. Please restart your network and try again.`)}async handleBatchMessageEvents(e){if(e?.length===0){this.logger.trace(`Batch message events is empty. Ignoring...`);return}let t=e.sort((e,t)=>e.publishedAt-t.publishedAt);this.logger.debug(`Batch of ${t.length} message events sorted`);for(let e of t)try{await this.onMessageEvent(e)}catch(e){this.logger.warn(e,`Error while processing batch message event: `+e?.message)}this.logger.trace(`Batch of ${t.length} message events processed`)}async onLinkMessageEvent(e,t){let{topic:n}=e;if(!t.sessionExists){let e={topic:n,expiry:Vn(z.FIVE_MINUTES),relay:{protocol:`irn`},active:!1};await this.core.pairing.pairings.set(n,e)}this.events.emit(tu.message,e),await this.recordMessageEvent(e,iu.inbound)}async connect(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;let t=1;for(;t<6;){try{if(this.transportExplicitlyClosed)break;this.logger.debug({},`Connecting to ${this.relayUrl}, attempt: ${t}...`),await this.createProvider(),await new Promise(async(e,t)=>{let n=()=>{t(Error(`Connection interrupted while trying to subscribe`))};this.provider.once(nu.disconnect,n),await In(new Promise((e,t)=>{this.provider.connect().then(e).catch(t)}),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).catch(e=>{t(e)}).finally(()=>{this.provider.off(nu.disconnect,n),clearTimeout(this.reconnectTimeout)}),await new Promise(async(e,t)=>{let n=()=>{t(Error(`Connection interrupted while trying to subscribe`))};this.provider.once(nu.disconnect,n),await this.subscriber.start().then(e).catch(t).finally(()=>{this.provider.off(nu.disconnect,n)})}),this.hasExperiencedNetworkDisruption=!1,e()})}catch(e){await this.subscriber.stop();let t=e;this.logger.warn({},t.message),this.hasExperiencedNetworkDisruption=!0}finally{this.connectionAttemptInProgress=!1}if(this.connected){this.logger.debug({},`Connected to ${this.relayUrl} successfully on attempt: ${t}`);break}await new Promise(e=>setTimeout(e,(0,z.toMiliseconds)(t*1))),t++}}startPingTimeout(){var e,t;if(vn())try{(e=this.provider?.connection)!=null&&e.socket&&((t=this.provider?.connection?.socket)==null||t.on(`ping`,()=>{this.resetPingTimeout()})),this.resetPingTimeout()}catch(e){this.logger.warn(e,e?.message)}}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();let e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new k(new M(jn({sdkVersion:ru,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId,packageName:this.packageName}))),this.registerProviderListeners()}async recordMessageEvent(e,t){let{topic:n,message:r}=e;await this.messages.set(n,r,t)}async shouldIgnoreMessageEvent(e){let{topic:t,message:n}=e;if(!n||n.length===0)return this.logger.warn(`Ignoring invalid/empty message: ${n}`),!0;if(!await this.subscriber.isKnownTopic(t))return this.logger.warn(`Ignoring message for unknown topic ${t}`),!0;let r=this.messages.has(t,n);return r&&this.logger.warn(`Ignoring duplicate message: ${n}`),r}async onProviderPayload(e){if(this.logger.debug(`Incoming Relay Payload`),this.logger.trace({type:`payload`,direction:`incoming`,payload:e}),T(e)){if(!e.method.endsWith(`_subscription`))return;let t=e.params,{topic:n,message:r,publishedAt:i,attestation:a}=t.data,o={topic:n,message:r,publishedAt:i,transportType:G.relay,attestation:a};this.logger.debug(`Emitting Relayer Payload`),this.logger.trace(pp({type:`event`,event:t.id},o)),this.events.emit(t.id,o),await this.acknowledgePayload(e),await this.onMessageEvent(o)}else v(e)&&this.events.emit(tu.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,iu.inbound),this.events.emit(tu.message,e))}async acknowledgePayload(e){let t=N(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(nu.payload,this.onPayloadHandler),this.provider.off(nu.connect,this.onConnectHandler),this.provider.off(nu.disconnect,this.onDisconnectHandler),this.provider.off(nu.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await dl();hl(async t=>{e!==t&&(e=t,t?await this.transportOpen().catch(e=>this.logger.error(e,e?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}),this.core.heartbeat.on(f.pulse,async()=>{if(!this.transportExplicitlyClosed&&!this.connected&&vl())try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(e){this.logger.warn(e,e?.message)}})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit(tu.disconnect),this.connectionAttemptInProgress=!1,!this.reconnectInProgress&&(this.reconnectInProgress=!0,await this.subscriber.stop(),this.subscriber.hasAnyTopics&&(this.transportExplicitlyClosed||(this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(e=>this.logger.error(e,e?.message)),this.reconnectTimeout=void 0,this.reconnectInProgress=!1},(0,z.toMiliseconds)(.1)))))}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}async toEstablishConnection(){if(await this.confirmOnlineStateOrThrow(),!this.connected){if(this.connectPromise){await this.connectPromise;return}await this.connect()}}};function hp(){}function gp(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)===`[object Object]`:!1}function _p(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function vp(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var yp=`[object RegExp]`,bp=`[object String]`,xp=`[object Number]`,Sp=`[object Boolean]`,Cp=`[object Arguments]`,wp=`[object Symbol]`,Tp=`[object Date]`,Ep=`[object Map]`,Dp=`[object Set]`,Op=`[object Array]`,kp=`[object Function]`,Ap=`[object ArrayBuffer]`,jp=`[object Object]`,Mp=`[object Error]`,Np=`[object DataView]`,Pp=`[object Uint8Array]`,Fp=`[object Uint8ClampedArray]`,Ip=`[object Uint16Array]`,Lp=`[object Uint32Array]`,Rp=`[object BigUint64Array]`,zp=`[object Int8Array]`,Bp=`[object Int16Array]`,Vp=`[object Int32Array]`,Hp=`[object BigInt64Array]`,Up=`[object Float32Array]`,Wp=`[object Float64Array]`;function Gp(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function Kp(e,t,n){return qp(e,t,void 0,void 0,void 0,void 0,n)}function qp(e,t,n,r,i,a,o){let s=o(e,t,n,r,i,a);if(s!==void 0)return s;if(typeof e==typeof t)switch(typeof e){case`bigint`:case`string`:case`boolean`:case`symbol`:case`undefined`:return e===t;case`number`:return e===t||Object.is(e,t);case`function`:return e===t;case`object`:return Jp(e,t,a,o)}return Jp(e,t,a,o)}function Jp(e,t,n,r){if(Object.is(e,t))return!0;let i=vp(e),a=vp(t);if(i===Cp&&(i=jp),a===Cp&&(a=jp),i!==a)return!1;switch(i){case bp:return e.toString()===t.toString();case xp:return Gp(e.valueOf(),t.valueOf());case Sp:case Tp:case wp:return Object.is(e.valueOf(),t.valueOf());case yp:return e.source===t.source&&e.flags===t.flags;case kp:return e===t}n??=new Map;let o=n.get(e),s=n.get(t);if(o!=null&&s!=null)return o===t;n.set(e,t),n.set(t,e);try{switch(i){case Ep:if(e.size!==t.size)return!1;for(let[i,a]of e.entries())if(!t.has(i)||!qp(a,t.get(i),i,e,t,n,r))return!1;return!0;case Dp:{if(e.size!==t.size)return!1;let i=Array.from(e.values()),a=Array.from(t.values());for(let o=0;o<i.length;o++){let s=i[o],c=a.findIndex(i=>qp(s,i,void 0,e,t,n,r));if(c===-1)return!1;a.splice(c,1)}return!0}case Op:case Pp:case Fp:case Ip:case Lp:case Rp:case zp:case Bp:case Vp:case Hp:case Up:case Wp:if(typeof c<`u`&&c.isBuffer(e)!==c.isBuffer(t)||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!qp(e[i],t[i],i,e,t,n,r))return!1;return!0;case Ap:return e.byteLength===t.byteLength&&Jp(new Uint8Array(e),new Uint8Array(t),n,r);case Np:return e.byteLength!==t.byteLength||e.byteOffset!==t.byteOffset?!1:Jp(new Uint8Array(e),new Uint8Array(t),n,r);case Mp:return e.name===t.name&&e.message===t.message;case jp:{if(!(Jp(e.constructor,t.constructor,n,r)||gp(e)&&gp(t)))return!1;let i=[...Object.keys(e),..._p(e)],a=[...Object.keys(t),..._p(t)];if(i.length!==a.length)return!1;for(let a=0;a<i.length;a++){let o=i[a],s=e[o];if(!Object.hasOwn(t,o))return!1;let c=t[o];if(!qp(s,c,o,e,t,n,r))return!1}return!0}default:return!1}}finally{n.delete(e),n.delete(t)}}function Yp(e,t){return Kp(e,t,hp)}var Xp=Object.defineProperty,Zp=Object.getOwnPropertySymbols,Qp=Object.prototype.hasOwnProperty,$p=Object.prototype.propertyIsEnumerable,em=(e,t,n)=>t in e?Xp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tm=(e,t)=>{for(var n in t||={})Qp.call(t,n)&&em(e,n,t[n]);if(Zp)for(var n of Zp(t))$p.call(t,n)&&em(e,n,t[n]);return e},nm=(e,t,n)=>em(e,typeof t==`symbol`?t:t+``,n),rm=class extends Ml{constructor(e,t,n,r=Wl,i=void 0){super(e,t,n,r),this.core=e,this.logger=t,this.name=n,nm(this,`map`,new Map),nm(this,`version`,`0.3`),nm(this,`cached`,[]),nm(this,`initialized`,!1),nm(this,`getKey`),nm(this,`storagePrefix`,Wl),nm(this,`recentlyDeleted`,[]),nm(this,`recentlyDeletedLimit`,200),nm(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>{this.getKey&&e!==null&&!Ac(e)?this.map.set(this.getKey(e),e):Lc(e)?this.map.set(e.id,e):Rc(e)&&this.map.set(e.topic,e)}),this.cached=[],!0)}),nm(this,`set`,async(e,t)=>{this.isInitialized(),this.map.has(e)?await this.update(e,t):(this.logger.debug(`Setting value`),this.logger.trace({type:`method`,method:`set`,key:e,value:t}),this.map.set(e,t),await this.persist())}),nm(this,`get`,e=>(this.isInitialized(),this.logger.debug(`Getting value`),this.logger.trace({type:`method`,method:`get`,key:e}),this.getData(e))),nm(this,`getAll`,e=>(this.isInitialized(),e?this.values.filter(t=>Object.keys(e).every(n=>Yp(t[n],e[n]))):this.values)),nm(this,`update`,async(e,t)=>{this.isInitialized(),this.logger.debug(`Updating value`),this.logger.trace({type:`method`,method:`update`,key:e,update:t});let n=tm(tm({},this.getData(e)),t);this.map.set(e,n),await this.persist()}),nm(this,`delete`,async(e,t)=>{this.isInitialized(),this.map.has(e)&&(this.logger.debug(`Deleting value`),this.logger.trace({type:`method`,method:`delete`,key:e,reason:t}),this.map.delete(e),this.addToRecentlyDeleted(e),await this.persist())}),this.logger=Ie(t,this.name),this.storagePrefix=r,this.getKey=i}get context(){return Pe(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){let t=this.map.get(e);if(!t){if(this.recentlyDeleted.includes(e)){let{message:t}=U(`MISSING_OR_INVALID`,`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(t),Error(t)}let{message:t}=U(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw this.logger.error(t),Error(t)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{let e=await this.getDataStore();if(typeof e>`u`||!e.length)return;if(this.map.size){let{message:e}=U(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:`method`,method:`restore`,value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}},im=Object.defineProperty,am=(e,t,n)=>t in e?im(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,J=(e,t,n)=>am(e,typeof t==`symbol`?t:t+``,n),om=class{constructor(e,t){this.core=e,this.logger=t,J(this,`name`,cu),J(this,`version`,`0.3`),J(this,`events`,new fe.default),J(this,`pairings`),J(this,`initialized`,!1),J(this,`storagePrefix`,Wl),J(this,`ignoredPayloadTypes`,[1]),J(this,`registeredMethods`,[]),J(this,`init`,async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace(`Initialized`))}),J(this,`register`,({methods:e})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...e])]}),J(this,`create`,async e=>{this.isInitialized();let t=Ns(),n=await this.core.crypto.setSymKey(t),r=Vn(z.FIVE_MINUTES),i={protocol:`irn`},a={topic:n,expiry:r,relay:i,active:!1,methods:e?.methods},o=ac({protocol:this.core.protocol,version:this.core.version,topic:n,symKey:t,relay:i,expiryTimestamp:r,methods:e?.methods});return this.events.emit(uu.create,a),this.core.expirer.set(n,r),await this.pairings.set(n,a),await this.core.relayer.subscribe(n,{transportType:e?.transportType}),{topic:n,uri:o}}),J(this,`pair`,async e=>{this.isInitialized();let t=this.core.eventClient.createEvent({properties:{topic:e?.uri,trace:[Su.pairing_started]}});this.isValidPair(e,t);let{topic:n,symKey:r,relay:i,expiryTimestamp:a,methods:o}=nc(e.uri);t.props.properties.topic=n,t.addTrace(Su.pairing_uri_validation_success),t.addTrace(Su.pairing_uri_not_expired);let s;if(this.pairings.keys.includes(n)){if(s=this.pairings.get(n),t.addTrace(Su.existing_pairing),s.active)throw t.setError(Cu.active_pairing_already_exists),Error(`Pairing already exists: ${n}. Please try again with a new connection URI.`);t.addTrace(Su.pairing_not_expired)}let c=a||Vn(z.FIVE_MINUTES),l={topic:n,relay:i,expiry:c,active:!1,methods:o};this.core.expirer.set(n,c),await this.pairings.set(n,l),t.addTrace(Su.store_new_pairing),e.activatePairing&&await this.activate({topic:n}),this.events.emit(uu.create,l),t.addTrace(Su.emit_inactive_pairing),this.core.crypto.keychain.has(n)||await this.core.crypto.setSymKey(r,n),t.addTrace(Su.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{t.setError(Cu.no_internet_connection)}try{await this.core.relayer.subscribe(n,{relay:i})}catch(e){throw t.setError(Cu.subscribe_pairing_topic_failure),e}return t.addTrace(Su.subscribe_pairing_topic_success),l}),J(this,`activate`,async({topic:e})=>{this.isInitialized();let t=Vn(z.FIVE_MINUTES);this.core.expirer.set(e,t),await this.pairings.update(e,{active:!0,expiry:t})}),J(this,`ping`,async e=>{this.isInitialized(),await this.isValidPing(e),this.logger.warn(`ping() is deprecated and will be removed in the next major release.`);let{topic:t}=e;if(this.pairings.keys.includes(t)){let e=await this.sendRequest(t,`wc_pairingPing`,{}),{done:n,resolve:r,reject:i}=Fn();this.events.once(B(`pairing_ping`,e),({error:e})=>{e?i(e):r()}),await n()}}),J(this,`updateExpiry`,async({topic:e,expiry:t})=>{this.isInitialized(),await this.pairings.update(e,{expiry:t})}),J(this,`updateMetadata`,async({topic:e,metadata:t})=>{this.isInitialized(),await this.pairings.update(e,{peerMetadata:t})}),J(this,`getPairings`,()=>(this.isInitialized(),this.pairings.values)),J(this,`disconnect`,async e=>{this.isInitialized(),await this.isValidDisconnect(e);let{topic:t}=e;this.pairings.keys.includes(t)&&(await this.sendRequest(t,`wc_pairingDelete`,W(`USER_DISCONNECTED`)),await this.deletePairing(t))}),J(this,`formatUriFromPairing`,e=>{this.isInitialized();let{topic:t,relay:n,expiry:r,methods:i}=e,a=this.core.crypto.keychain.get(t);return ac({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:a,relay:n,expiryTimestamp:r,methods:i})}),J(this,`sendRequest`,async(e,t,n)=>{let r=D(t,n),i=await this.core.crypto.encode(e,r),a=lu[t].req;return this.core.history.set(e,r),this.core.relayer.publish(e,i,a),r.id}),J(this,`sendResult`,async(e,t,n)=>{let r=N(e,n),i=await this.core.crypto.encode(t,r),a=lu[(await this.core.history.get(t,e)).request.method].res;await this.core.relayer.publish(t,i,a),await this.core.history.resolve(r)}),J(this,`sendError`,async(e,t,n)=>{let r=b(e,n),i=await this.core.crypto.encode(t,r),a=(await this.core.history.get(t,e)).request.method,o=lu[a]?lu[a].res:lu.unregistered_method.res;await this.core.relayer.publish(t,i,o),await this.core.history.resolve(r)}),J(this,`deletePairing`,async(e,t)=>{await this.core.relayer.unsubscribe(e),await Promise.all([this.pairings.delete(e,W(`USER_DISCONNECTED`)),this.core.crypto.deleteSymKey(e),t?Promise.resolve():this.core.expirer.del(e)])}),J(this,`cleanup`,async()=>{let e=this.pairings.getAll().filter(e=>Hn(e.expiry));await Promise.all(e.map(e=>this.deletePairing(e.topic)))}),J(this,`onRelayEventRequest`,async e=>{let{topic:t,payload:n}=e;switch(n.method){case`wc_pairingPing`:return await this.onPairingPingRequest(t,n);case`wc_pairingDelete`:return await this.onPairingDeleteRequest(t,n);default:return await this.onUnknownRpcMethodRequest(t,n)}}),J(this,`onRelayEventResponse`,async e=>{let{topic:t,payload:n}=e,r=(await this.core.history.get(t,n.id)).request.method;switch(r){case`wc_pairingPing`:return this.onPairingPingResponse(t,n);default:return this.onUnknownRpcMethodResponse(r)}}),J(this,`onPairingPingRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult(n,e,!0),this.events.emit(uu.ping,{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),J(this,`onPairingPingResponse`,(e,t)=>{let{id:n}=t;setTimeout(()=>{A(t)?this.events.emit(B(`pairing_ping`,n),{}):j(t)&&this.events.emit(B(`pairing_ping`,n),{error:t.error})},500)}),J(this,`onPairingDeleteRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidDisconnect({topic:e}),await this.deletePairing(e),this.events.emit(uu.delete,{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),J(this,`onUnknownRpcMethodRequest`,async(e,t)=>{let{id:n,method:r}=t;try{if(this.registeredMethods.includes(r))return;let t=W(`WC_METHOD_UNSUPPORTED`,r);await this.sendError(n,e,t),this.logger.error(t)}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),J(this,`onUnknownRpcMethodResponse`,e=>{this.registeredMethods.includes(e)||this.logger.error(W(`WC_METHOD_UNSUPPORTED`,e))}),J(this,`isValidPair`,(e,t)=>{var n;if(!Qc(e)){let{message:n}=U(`MISSING_OR_INVALID`,`pair() params: ${e}`);throw t.setError(Cu.malformed_pairing_uri),Error(n)}if(!Ic(e.uri)){let{message:n}=U(`MISSING_OR_INVALID`,`pair() uri: ${e.uri}`);throw t.setError(Cu.malformed_pairing_uri),Error(n)}let r=nc(e?.uri);if(!((n=r?.relay)!=null&&n.protocol)){let{message:e}=U(`MISSING_OR_INVALID`,`pair() uri#relay-protocol`);throw t.setError(Cu.malformed_pairing_uri),Error(e)}if(!(r!=null&&r.symKey)){let{message:e}=U(`MISSING_OR_INVALID`,`pair() uri#symKey`);throw t.setError(Cu.malformed_pairing_uri),Error(e)}if(r!=null&&r.expiryTimestamp&&(0,z.toMiliseconds)(r?.expiryTimestamp)<Date.now()){t.setError(Cu.pairing_expired);let{message:e}=U(`EXPIRED`,`pair() URI has expired. Please try again with a new connection URI.`);throw Error(e)}}),J(this,`isValidPing`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),J(this,`isValidDisconnect`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),J(this,`isValidPairingTopic`,async e=>{if(!jc(e,!1)){let{message:t}=U(`MISSING_OR_INVALID`,`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.pairings.keys.includes(e)){let{message:t}=U(`NO_MATCHING_KEY`,`pairing topic doesn't exist: ${e}`);throw Error(t)}if(Hn(this.pairings.get(e).expiry)){await this.deletePairing(e);let{message:t}=U(`EXPIRED`,`pairing topic: ${e}`);throw Error(t)}}),this.core=e,this.logger=Ie(t,this.name),this.pairings=new rm(this.core,this.logger,this.name,this.storagePrefix)}get context(){return Pe(this.logger)}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}registerRelayerEvents(){this.core.relayer.on(tu.message,async e=>{let{topic:t,message:n,transportType:r}=e;if(this.pairings.keys.includes(t)&&r!==G.link_mode&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(n)))try{let e=await this.core.crypto.decode(t,n);T(e)?(this.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e})):v(e)&&(await this.core.history.resolve(e),await this.onRelayEventResponse({topic:t,payload:e}),this.core.history.delete(t,e.id)),await this.core.relayer.messages.ack(t,n)}catch(e){this.logger.error(e)}})}registerExpirerEvents(){this.core.expirer.on(mu.expired,async e=>{let{topic:t}=Bn(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(uu.expire,{topic:t}))})}},sm=Object.defineProperty,cm=(e,t,n)=>t in e?sm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,lm=(e,t,n)=>cm(e,typeof t==`symbol`?t:t+``,n),um=class extends Ol{constructor(e,t){super(e,t),this.core=e,this.logger=t,lm(this,`records`,new Map),lm(this,`events`,new fe.EventEmitter),lm(this,`name`,fu),lm(this,`version`,`0.3`),lm(this,`cached`,[]),lm(this,`initialized`,!1),lm(this,`storagePrefix`,Wl),lm(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>this.records.set(e.id,e)),this.cached=[],this.registerEventListeners(),!0)}),lm(this,`set`,(e,t,n)=>{if(this.isInitialized(),this.logger.debug(`Setting JSON-RPC request history record`),this.logger.trace({type:`method`,method:`set`,topic:e,request:t,chainId:n}),this.records.has(t.id))return;let r={id:t.id,topic:e,request:{method:t.method,params:t.params||null},chainId:n,expiry:Vn(z.THIRTY_DAYS)};this.records.set(r.id,r),this.persist(),this.events.emit(du.created,r)}),lm(this,`resolve`,async e=>{if(this.isInitialized(),this.logger.debug(`Updating JSON-RPC response history record`),this.logger.trace({type:`method`,method:`update`,response:e}),!this.records.has(e.id))return;let t=await this.getRecord(e.id);typeof t.response>`u`&&(t.response=j(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.persist(),this.events.emit(du.updated,t))}),lm(this,`get`,async(e,t)=>(this.isInitialized(),this.logger.debug(`Getting record`),this.logger.trace({type:`method`,method:`get`,topic:e,id:t}),await this.getRecord(t))),lm(this,`delete`,(e,t)=>{this.isInitialized(),this.logger.debug(`Deleting record`),this.logger.trace({type:`method`,method:`delete`,id:t}),this.values.forEach(n=>{if(n.topic===e){if(typeof t<`u`&&n.id!==t)return;this.records.delete(n.id),this.events.emit(du.deleted,n)}}),this.persist()}),lm(this,`exists`,async(e,t)=>(this.isInitialized(),this.records.has(t)?(await this.getRecord(t)).topic===e:!1)),lm(this,`on`,(e,t)=>{this.events.on(e,t)}),lm(this,`once`,(e,t)=>{this.events.once(e,t)}),lm(this,`off`,(e,t)=>{this.events.off(e,t)}),lm(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.logger=Ie(t,this.name)}get context(){return Pe(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){let e=[];return this.values.forEach(t=>{if(typeof t.response<`u`)return;let n={topic:t.topic,request:D(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(n)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();let t=this.records.get(e);if(!t){let{message:t}=U(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(du.sync)}async restore(){try{let e=await this.getJsonRpcRecords();if(typeof e>`u`||!e.length)return;if(this.records.size){let{message:e}=U(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:`method`,method:`restore`,records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(du.created,e=>{let t=du.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.events.on(du.updated,e=>{let t=du.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.events.on(du.deleted,e=>{let t=du.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.core.heartbeat.on(f.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{(0,z.toMiliseconds)(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(du.deleted,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}},dm=Object.defineProperty,fm=(e,t,n)=>t in e?dm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,pm=(e,t,n)=>fm(e,typeof t==`symbol`?t:t+``,n),mm=class extends Pl{constructor(e,t){super(e,t),this.core=e,this.logger=t,pm(this,`expirations`,new Map),pm(this,`events`,new fe.EventEmitter),pm(this,`name`,pu),pm(this,`version`,`0.3`),pm(this,`cached`,[]),pm(this,`initialized`,!1),pm(this,`storagePrefix`,Wl),pm(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>this.expirations.set(e.target,e)),this.cached=[],this.registerEventListeners(),!0)}),pm(this,`has`,e=>{try{let t=this.formatTarget(e);return typeof this.getExpiration(t)<`u`}catch{return!1}}),pm(this,`set`,(e,t)=>{this.isInitialized();let n=this.formatTarget(e),r={target:n,expiry:t};this.expirations.set(n,r),this.checkExpiry(n,r),this.events.emit(mu.created,{target:n,expiration:r})}),pm(this,`get`,e=>{this.isInitialized();let t=this.formatTarget(e);return this.getExpiration(t)}),pm(this,`del`,e=>{if(this.isInitialized(),this.has(e)){let t=this.formatTarget(e),n=this.getExpiration(t);this.expirations.delete(t),this.events.emit(mu.deleted,{target:t,expiration:n})}}),pm(this,`on`,(e,t)=>{this.events.on(e,t)}),pm(this,`once`,(e,t)=>{this.events.once(e,t)}),pm(this,`off`,(e,t)=>{this.events.off(e,t)}),pm(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.logger=Ie(t,this.name)}get context(){return Pe(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if(typeof e==`string`)return Rn(e);if(typeof e==`number`)return zn(e);let{message:t}=U(`UNKNOWN_TYPE`,`Target type: ${typeof e}`);throw Error(t)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(mu.sync)}async restore(){try{let e=await this.getExpirations();if(typeof e>`u`||!e.length)return;if(this.expirations.size){let{message:e}=U(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:`method`,method:`restore`,expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){let t=this.expirations.get(e);if(!t){let{message:t}=U(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw this.logger.warn(t),Error(t)}return t}checkExpiry(e,t){let{expiry:n}=t;(0,z.toMiliseconds)(n)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(mu.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(f.pulse,()=>this.checkExpirations()),this.events.on(mu.created,e=>{let t=mu.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()}),this.events.on(mu.expired,e=>{let t=mu.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()}),this.events.on(mu.deleted,e=>{let t=mu.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}},hm=Object.defineProperty,gm=(e,t,n)=>t in e?hm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_m=(e,t,n)=>gm(e,typeof t==`symbol`?t:t+``,n),vm=class extends Fl{constructor(e,t,n){super(e,t,n),this.core=e,this.logger=t,this.store=n,_m(this,`name`,hu),_m(this,`abortController`),_m(this,`isDevEnv`),_m(this,`verifyUrlV3`,vu),_m(this,`storagePrefix`,Wl),_m(this,`version`,2),_m(this,`publicKey`),_m(this,`fetchPromise`),_m(this,`init`,async()=>{this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&(0,z.toMiliseconds)(this.publicKey?.expiresAt)<Date.now()&&(this.logger.debug(`verify v2 public key expired`),await this.removePublicKey()))}),_m(this,`register`,async e=>{if(!Sn()||this.isDevEnv)return;let t=window.location.origin,{id:n,decryptedId:r}=e,i=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${t}&id=${n}&decryptedId=${r}`;try{let e=(0,qt.getDocument)(),t=this.startAbortTimer(z.ONE_SECOND*5),r=await new Promise((r,a)=>{let o=()=>{window.removeEventListener(`message`,c),e.body.removeChild(s),a(`attestation aborted`)};this.abortController.signal.addEventListener(`abort`,o);let s=e.createElement(`iframe`);s.src=i,s.style.display=`none`,s.addEventListener(`error`,o,{signal:this.abortController.signal});let c=i=>{if(i.data&&typeof i.data==`string`)try{let a=JSON.parse(i.data);if(a.type===`verify_attestation`){if(h(a.attestation).payload.id!==n)return;clearInterval(t),e.body.removeChild(s),this.abortController.signal.removeEventListener(`abort`,o),window.removeEventListener(`message`,c),r(a.attestation===null?``:a.attestation)}}catch(e){this.logger.warn(e)}};e.body.appendChild(s),window.addEventListener(`message`,c,{signal:this.abortController.signal})});return this.logger.debug(`jwt attestation`,r),r}catch(e){this.logger.warn(e)}return``}),_m(this,`resolve`,async e=>{if(this.isDevEnv)return``;let{attestationId:t,hash:n,encryptedId:r}=e;if(t===``){this.logger.debug(`resolve: attestationId is empty, skipping`);return}if(t){if(h(t).payload.id!==r)return;let e=await this.isValidJwtAttestation(t);if(e){if(!e.isVerified){this.logger.warn(`resolve: jwt attestation: origin url not verified`);return}return e}}if(!n)return;let i=this.getVerifyUrl(e?.verifyUrl);return this.fetchAttestation(n,i)}),_m(this,`fetchAttestation`,async(e,t)=>{this.logger.debug(`resolving attestation: ${e} from url: ${t}`);let n=this.startAbortTimer(z.ONE_SECOND*5),r=await fetch(`${t}/attestation/${e}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(n),r.status===200?await r.json():void 0}),_m(this,`getVerifyUrl`,e=>{let t=e||`https://verify.walletconnect.org`;return yu.includes(t)||(this.logger.info(`verify url: ${t}, not included in trusted list, assigning default: https://verify.walletconnect.org`),t=`https://verify.walletconnect.org`),t}),_m(this,`fetchPublicKey`,async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);let e=this.startAbortTimer(z.FIVE_SECONDS),t=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(e),await t.json()}catch(e){this.logger.warn(e)}}),_m(this,`persistPublicKey`,async e=>{this.logger.debug(`persisting public key to local storage`,e),await this.store.setItem(this.storeKey,e),this.publicKey=e}),_m(this,`removePublicKey`,async()=>{this.logger.debug(`removing verify v2 public key from storage`),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),_m(this,`isValidJwtAttestation`,async e=>{let t=await this.getPublicKey();try{if(t)return this.validateAttestation(e,t)}catch(e){this.logger.error(e),this.logger.warn(`error validating attestation`)}let n=await this.fetchAndPersistPublicKey();try{if(n)return this.validateAttestation(e,n)}catch(e){this.logger.error(e),this.logger.warn(`error validating attestation`)}}),_m(this,`getPublicKey`,async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),_m(this,`fetchAndPersistPublicKey`,async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async e=>{let t=await this.fetchPublicKey();t&&(await this.persistPublicKey(t),e(t))});let e=await this.fetchPromise;return this.fetchPromise=void 0,e}),_m(this,`validateAttestation`,(e,t)=>{let n=Qs(e,t.publicKey),r={hasExpired:(0,z.toMiliseconds)(n.exp)<Date.now(),payload:n};if(r.hasExpired)throw this.logger.warn(`resolve: jwt attestation expired`),Error(`JWT attestation expired`);return{origin:r.payload.origin,isScam:r.payload.isScam,isVerified:r.payload.isVerified}}),this.logger=Ie(t,this.name),this.abortController=new AbortController,this.isDevEnv=Xn(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//verify:public:key`}get context(){return Pe(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),(0,z.toMiliseconds)(e))}},ym=Object.defineProperty,bm=(e,t,n)=>t in e?ym(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,xm=(e,t,n)=>bm(e,typeof t==`symbol`?t:t+``,n),Sm=class extends Il{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,xm(this,`context`,bu),xm(this,`registerDeviceToken`,async e=>{let{clientId:t,token:n,notificationType:r,enableEncrypted:i=!1}=e,a=`${xu}/${this.projectId}/clients`;await fetch(a,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({client_id:t,type:r,token:n,always_raw:i})})}),this.logger=Ie(t,this.context)}},Cm=Object.defineProperty,wm=Object.getOwnPropertySymbols,Tm=Object.prototype.hasOwnProperty,Em=Object.prototype.propertyIsEnumerable,Dm=(e,t,n)=>t in e?Cm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Om=(e,t)=>{for(var n in t||={})Tm.call(t,n)&&Dm(e,n,t[n]);if(wm)for(var n of wm(t))Em.call(t,n)&&Dm(e,n,t[n]);return e},km=(e,t,n)=>Dm(e,typeof t==`symbol`?t:t+``,n),Am=class extends Ll{constructor(e,t,n=!0){super(e,t,n),this.core=e,this.logger=t,km(this,`context`,ku),km(this,`storagePrefix`,Wl),km(this,`storageVersion`,Ou),km(this,`events`,new Map),km(this,`shouldPersist`,!1),km(this,`init`,async()=>{if(!Xn())try{let e={eventId:Yn(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:`INIT`,type:``,properties:{client_id:await this.core.crypto.getClientId(),user_agent:An(this.core.relayer.protocol,this.core.relayer.version,ru)}}};await this.sendEvent([e])}catch(e){this.logger.warn(e)}}),km(this,`createEvent`,e=>{let{event:t=`ERROR`,type:n=``,properties:{topic:r,trace:i}}=e,a=Yn(),o=this.core.projectId||``,s=Om({eventId:a,timestamp:Date.now(),props:{event:t,type:n,properties:{topic:r,trace:i}},bundleId:o,domain:this.getAppDomain()},this.setMethods(a));return this.telemetryEnabled&&(this.events.set(a,s),this.shouldPersist=!0),s}),km(this,`getEvent`,e=>{let{eventId:t,topic:n}=e;if(t)return this.events.get(t);let r=Array.from(this.events.values()).find(e=>e.props.properties.topic===n);if(r)return Om(Om({},r),this.setMethods(r.eventId))}),km(this,`deleteEvent`,e=>{let{eventId:t}=e;this.events.delete(t),this.shouldPersist=!0}),km(this,`setEventListeners`,()=>{this.core.heartbeat.on(f.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(e=>{(0,z.fromMiliseconds)(Date.now())-(0,z.fromMiliseconds)(e.timestamp)>86400&&(this.events.delete(e.eventId),this.shouldPersist=!0)})})}),km(this,`setMethods`,e=>({addTrace:t=>this.addTrace(e,t),setError:t=>this.setError(e,t)})),km(this,`addTrace`,(e,t)=>{let n=this.events.get(e);n&&(n.props.properties.trace.push(t),this.events.set(e,n),this.shouldPersist=!0)}),km(this,`setError`,(e,t)=>{let n=this.events.get(e);n&&(n.props.type=t,n.timestamp=Date.now(),this.events.set(e,n),this.shouldPersist=!0)}),km(this,`persist`,async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),km(this,`restore`,async()=>{try{let e=await this.core.storage.getItem(this.storageKey)||[];if(!e.length)return;e.forEach(e=>{this.events.set(e.eventId,Om(Om({},e),this.setMethods(e.eventId)))})}catch(e){this.logger.warn(e)}}),km(this,`submit`,async()=>{if(!this.telemetryEnabled||this.events.size===0)return;let e=[];for(let[t,n]of this.events)n.props.type&&e.push(n);if(e.length!==0)try{if((await this.sendEvent(e)).ok)for(let t of e)this.events.delete(t.eventId),this.shouldPersist=!0}catch(e){this.logger.warn(e)}}),km(this,`sendEvent`,async e=>{let t=this.getAppDomain()?``:`&sp=desktop`;return await fetch(`${Au}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${ru}${t}`,{method:`POST`,body:JSON.stringify(e)})}),km(this,`getAppDomain`,()=>Dn().url),this.logger=Ie(t,this.context),this.telemetryEnabled=n,n?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+`//`+this.context}},jm=Object.defineProperty,Mm=Object.getOwnPropertySymbols,Nm=Object.prototype.hasOwnProperty,Pm=Object.prototype.propertyIsEnumerable,Fm=(e,t,n)=>t in e?jm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Im=(e,t)=>{for(var n in t||={})Nm.call(t,n)&&Fm(e,n,t[n]);if(Mm)for(var n of Mm(t))Pm.call(t,n)&&Fm(e,n,t[n]);return e},Y=(e,t,n)=>Fm(e,typeof t==`symbol`?t:t+``,n),Lm=class e extends wl{constructor(e){var t;super(e),Y(this,`protocol`,`wc`),Y(this,`version`,2),Y(this,`name`,Ul),Y(this,`relayUrl`),Y(this,`projectId`),Y(this,`customStoragePrefix`),Y(this,`events`,new fe.EventEmitter),Y(this,`logger`),Y(this,`heartbeat`),Y(this,`relayer`),Y(this,`crypto`),Y(this,`storage`),Y(this,`history`),Y(this,`expirer`),Y(this,`pairing`),Y(this,`verify`),Y(this,`echoClient`),Y(this,`linkModeSupportedApps`),Y(this,`eventClient`),Y(this,`initialized`,!1),Y(this,`logChunkController`),Y(this,`on`,(e,t)=>this.events.on(e,t)),Y(this,`once`,(e,t)=>this.events.once(e,t)),Y(this,`off`,(e,t)=>this.events.off(e,t)),Y(this,`removeListener`,(e,t)=>this.events.removeListener(e,t)),Y(this,`dispatchEnvelope`,({topic:e,message:t,sessionExists:n})=>{if(!e||!t)return;let r={topic:e,message:t,publishedAt:Date.now(),transportType:G.link_mode};this.relayer.onLinkMessageEvent(r,{sessionExists:n})});let n=this.getGlobalCore(e?.customStoragePrefix);if(n)try{return this.customStoragePrefix=n.customStoragePrefix,this.logger=n.logger,this.heartbeat=n.heartbeat,this.crypto=n.crypto,this.history=n.history,this.expirer=n.expirer,this.storage=n.storage,this.relayer=n.relayer,this.pairing=n.pairing,this.verify=n.verify,this.echoClient=n.echoClient,this.linkModeSupportedApps=n.linkModeSupportedApps,this.eventClient=n.eventClient,this.initialized=n.initialized,this.logChunkController=n.logChunkController,n}catch{}this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||`wss://relay.walletconnect.org`,this.customStoragePrefix=e!=null&&e.customStoragePrefix?`:${e.customStoragePrefix}`:``;let{logger:r,chunkLoggerController:i}=ze({opts:je({level:typeof e?.logger==`string`&&e.logger?e.logger:Gl.logger,name:Ul}),maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=i,(t=this.logChunkController)!=null&&t.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var e,t;(e=this.logChunkController)!=null&&e.downloadLogsBlobInBrowser&&((t=this.logChunkController)==null||t.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=Ie(r,this.name),this.heartbeat=new p,this.crypto=new Tf(this,this.logger,e?.keychain),this.history=new um(this,this.logger),this.expirer=new mm(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new d(Im(Im({},Kl),e?.storageOptions)),this.relayer=new mp({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new om(this,this.logger),this.verify=new vm(this,this.logger,this.storage),this.echoClient=new Sm(this.projectId||``,this.logger),this.linkModeSupportedApps=[],this.eventClient=new Am(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(t){let n=new e(t);await n.initialize();let r=await n.crypto.getClientId();return await n.storage.setItem(au,r),n}get context(){return Pe(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){return this.logChunkController?.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(`WALLETCONNECT_LINK_MODE_APPS`,this.linkModeSupportedApps))}async initialize(){this.logger.trace(`Initialized`);try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.linkModeSupportedApps=await this.storage.getItem(`WALLETCONNECT_LINK_MODE_APPS`)||[],this.initialized=!0,this.logger.info(`Core Initialization Success`)}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}getGlobalCore(e=``){try{if(this.isGlobalCoreDisabled())return;let t=`_walletConnectCore_${e}`,n=`${t}_count`;return globalThis[n]=(globalThis[n]||0)+1,globalThis[n],globalThis[t]}catch{return}}setGlobalCore(e){try{if(this.isGlobalCoreDisabled())return;let t=`_walletConnectCore_${e.opts?.customStoragePrefix||``}`;globalThis[t]=e}catch{}}isGlobalCoreDisabled(){try{return typeof n<`u`&&{}.DISABLE_GLOBAL_CORE===`true`}catch{return!0}}};a();var Rm=`client`,zm=`wc@2:${Rm}:`,Bm={name:Rm,logger:`error`,controller:!1,relayUrl:`wss://relay.walletconnect.org`},Vm=`WALLETCONNECT_DEEPLINK_CHOICE`,Hm=`proposal`,Um=`Proposal expired`,Wm=`session`,Gm=z.SEVEN_DAYS,Km=`engine`,qm={wc_sessionPropose:{req:{ttl:z.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:z.ONE_DAY,prompt:!1,tag:1104},res:{ttl:z.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:z.ONE_DAY,prompt:!1,tag:1106},res:{ttl:z.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:z.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:z.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:z.ONE_DAY,prompt:!1,tag:1112},res:{ttl:z.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:z.ONE_DAY,prompt:!1,tag:1114},res:{ttl:z.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:z.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:z.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1119}}},Jm={min:z.FIVE_MINUTES,max:z.SEVEN_DAYS},Ym={idle:`IDLE`,active:`ACTIVE`},Xm={eth_sendTransaction:{key:``},eth_sendRawTransaction:{key:``},wallet_sendCalls:{key:``},solana_signTransaction:{key:`signature`},solana_signAllTransactions:{key:`transactions`},solana_signAndSendTransaction:{key:`signature`}},Zm=`request`,Qm=[`wc_sessionPropose`,`wc_sessionRequest`,`wc_authRequest`,`wc_sessionAuthenticate`],$m=`auth`,eh=`authKeys`,th=`pairingTopics`,nh=`requests`,rh=`wc@1.5:${$m}:`,ih=`${rh}:PUB_KEY`,ah=Object.defineProperty,oh=Object.defineProperties,sh=Object.getOwnPropertyDescriptors,ch=Object.getOwnPropertySymbols,lh=Object.prototype.hasOwnProperty,uh=Object.prototype.propertyIsEnumerable,dh=(e,t,n)=>t in e?ah(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,X=(e,t)=>{for(var n in t||={})lh.call(t,n)&&dh(e,n,t[n]);if(ch)for(var n of ch(t))uh.call(t,n)&&dh(e,n,t[n]);return e},fh=(e,t)=>oh(e,sh(t)),Z=(e,t,n)=>dh(e,typeof t==`symbol`?t:t+``,n),ph=class extends Hl{constructor(e){super(e),Z(this,`name`,Km),Z(this,`events`,new fe.default),Z(this,`initialized`,!1),Z(this,`requestQueue`,{state:Ym.idle,queue:[]}),Z(this,`sessionRequestQueue`,{state:Ym.idle,queue:[]}),Z(this,`requestQueueDelay`,z.ONE_SECOND),Z(this,`expectedPairingMethodMap`,new Map),Z(this,`recentlyDeletedMap`,new Map),Z(this,`recentlyDeletedLimit`,200),Z(this,`relayMessageCache`,[]),Z(this,`pendingSessions`,new Map),Z(this,`init`,async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(qm)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},(0,z.toMiliseconds)(this.requestQueueDelay)))}),Z(this,`connect`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();let t=fh(X({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t),t.optionalNamespaces=Tc(t.requiredNamespaces,t.optionalNamespaces),t.requiredNamespaces={};let{pairingTopic:n,requiredNamespaces:r,optionalNamespaces:i,sessionProperties:a,scopedProperties:o,relays:s}=t,c=n,l,u=!1;try{if(c){let e=this.client.core.pairing.pairings.get(c);this.client.logger.warn(`connect() with existing pairing topic is deprecated and will be removed in the next major release.`),u=e.active}}catch(e){throw this.client.logger.error(`connect() -> pairing.get(${c}) failed`),e}if(!c||!u){let{topic:e,uri:t}=await this.client.core.pairing.create();c=e,l=t}if(!c){let{message:e}=U(`NO_MATCHING_KEY`,`connect() pairing topic: ${c}`);throw Error(e)}let d=await this.client.core.crypto.generateKeyPair(),f=qm.wc_sessionPropose.req.ttl||z.FIVE_MINUTES,p=Vn(f),m=fh(X(X({requiredNamespaces:r,optionalNamespaces:i,relays:s??[{protocol:`irn`}],proposer:{publicKey:d,metadata:this.client.metadata},expiryTimestamp:p,pairingTopic:c},a&&{sessionProperties:a}),o&&{scopedProperties:o}),{id:S()}),h=B(`session_connect`,m.id),{reject:g,resolve:_,done:v}=Fn(f,Um),y=({id:e})=>{e===m.id&&(this.client.events.off(`proposal_expire`,y),this.pendingSessions.delete(m.id),this.events.emit(h,{error:{message:`Proposal expired`,code:0}}))};return this.client.events.on(`proposal_expire`,y),this.events.once(h,({error:e,session:t})=>{this.client.events.off(`proposal_expire`,y),e?g(e):t&&_(t)}),await this.sendRequest({topic:c,method:`wc_sessionPropose`,params:m,throwOnFailedPublish:!0,clientRpcId:m.id}),await this.setProposal(m.id,m),{uri:l,approval:v}}),Z(this,`pair`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(e){throw this.client.logger.error(`pair() failed`),e}}),Z(this,`approve`,async e=>{let t=this.client.core.eventClient.createEvent({properties:{topic:(e?.id)?.toString(),trace:[wu.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(e){throw t.setError(Tu.no_internet_connection),e}try{await this.isValidProposalId(e?.id)}catch(n){throw this.client.logger.error(`approve() -> proposal.get(${e?.id}) failed`),t.setError(Tu.proposal_not_found),n}try{await this.isValidApprove(e)}catch(e){throw this.client.logger.error(`approve() -> isValidApprove() failed`),t.setError(Tu.session_approve_namespace_validation_failure),e}let{id:n,relayProtocol:r,namespaces:i,sessionProperties:a,scopedProperties:o,sessionConfig:s}=e,c=this.client.proposal.get(n);this.client.core.eventClient.deleteEvent({eventId:t.eventId});let{pairingTopic:l,proposer:u,requiredNamespaces:d,optionalNamespaces:f}=c,p=this.client.core.eventClient?.getEvent({topic:l});p||=this.client.core.eventClient?.createEvent({type:wu.session_approve_started,properties:{topic:l,trace:[wu.session_approve_started,wu.session_namespaces_validation_success]}});let m=await this.client.core.crypto.generateKeyPair(),h=u.publicKey,g=await this.client.core.crypto.generateSharedKey(m,h),_=X(X(X({relay:{protocol:r??`irn`},namespaces:i,controller:{publicKey:m,metadata:this.client.metadata},expiry:Vn(Gm)},a&&{sessionProperties:a}),o&&{scopedProperties:o}),s&&{sessionConfig:s}),v=G.relay;p.addTrace(wu.subscribing_session_topic);try{await this.client.core.relayer.subscribe(g,{transportType:v})}catch(e){throw p.setError(Tu.subscribe_session_topic_failure),e}p.addTrace(wu.subscribe_session_topic_success);let y=fh(X({},_),{topic:g,requiredNamespaces:d,optionalNamespaces:f,pairingTopic:l,acknowledged:!1,self:_.controller,peer:{publicKey:u.publicKey,metadata:u.metadata},controller:m,transportType:G.relay});await this.client.session.set(g,y),p.addTrace(wu.store_session);try{p.addTrace(wu.publishing_session_settle),await this.sendRequest({topic:g,method:`wc_sessionSettle`,params:_,throwOnFailedPublish:!0}).catch(e=>{throw p?.setError(Tu.session_settle_publish_failure),e}),p.addTrace(wu.session_settle_publish_success),p.addTrace(wu.publishing_session_approve),await this.sendResult({id:n,topic:l,result:{relay:{protocol:r??`irn`},responderPublicKey:m},throwOnFailedPublish:!0}).catch(e=>{throw p?.setError(Tu.session_approve_publish_failure),e}),p.addTrace(wu.session_approve_publish_success)}catch(e){throw this.client.logger.error(e),this.client.session.delete(g,W(`USER_DISCONNECTED`)),await this.client.core.relayer.unsubscribe(g),e}return this.client.core.eventClient.deleteEvent({eventId:p.eventId}),await this.client.core.pairing.updateMetadata({topic:l,metadata:u.metadata}),await this.client.proposal.delete(n,W(`USER_DISCONNECTED`)),await this.client.core.pairing.activate({topic:l}),await this.setExpiry(g,Vn(Gm)),{topic:g,acknowledged:()=>Promise.resolve(this.client.session.get(g))}}),Z(this,`reject`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(e){throw this.client.logger.error(`reject() -> isValidReject() failed`),e}let{id:t,reason:n}=e,r;try{r=this.client.proposal.get(t).pairingTopic}catch(e){throw this.client.logger.error(`reject() -> proposal.get(${t}) failed`),e}r&&(await this.sendError({id:t,topic:r,error:n,rpcOpts:qm.wc_sessionPropose.reject}),await this.client.proposal.delete(t,W(`USER_DISCONNECTED`)))}),Z(this,`update`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(e){throw this.client.logger.error(`update() -> isValidUpdate() failed`),e}let{topic:t,namespaces:n}=e,{done:r,resolve:i,reject:a}=Fn(),o=S(),s=x().toString(),c=this.client.session.get(t).namespaces;return this.events.once(B(`session_update`,o),({error:e})=>{e?a(e):i()}),await this.client.session.update(t,{namespaces:n}),await this.sendRequest({topic:t,method:`wc_sessionUpdate`,params:{namespaces:n},throwOnFailedPublish:!0,clientRpcId:o,relayRpcId:s}).catch(e=>{this.client.logger.error(e),this.client.session.update(t,{namespaces:c}),a(e)}),{acknowledged:r}}),Z(this,`extend`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(e){throw this.client.logger.error(`extend() -> isValidExtend() failed`),e}let{topic:t}=e,n=S(),{done:r,resolve:i,reject:a}=Fn();return this.events.once(B(`session_extend`,n),({error:e})=>{e?a(e):i()}),await this.setExpiry(t,Vn(Gm)),this.sendRequest({topic:t,method:`wc_sessionExtend`,params:{},clientRpcId:n,throwOnFailedPublish:!0}).catch(e=>{a(e)}),{acknowledged:r}}),Z(this,`request`,async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(e){throw this.client.logger.error(`request() -> isValidRequest() failed`),e}let{chainId:t,request:n,topic:r,expiry:i=qm.wc_sessionRequest.req.ttl}=e,a=this.client.session.get(r);a?.transportType===G.relay&&await this.confirmOnlineStateOrThrow();let o=S(),s=x().toString(),{done:c,resolve:l,reject:u}=Fn(i,`Request expired. Please try again.`);this.events.once(B(`session_request`,o),({error:e,result:t})=>{e?u(e):l(t)});let d=`wc_sessionRequest`,f=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);if(f)return await this.sendRequest({clientRpcId:o,relayRpcId:s,topic:r,method:d,params:{request:fh(X({},n),{expiryTimestamp:Vn(i)}),chainId:t},expiry:i,throwOnFailedPublish:!0,appLink:f}).catch(e=>u(e)),this.client.events.emit(`session_request_sent`,{topic:r,request:n,chainId:t,id:o}),await c();let p={request:fh(X({},n),{expiryTimestamp:Vn(i)}),chainId:t},m=this.shouldSetTVF(d,p);return await Promise.all([new Promise(async e=>{await this.sendRequest(X({clientRpcId:o,relayRpcId:s,topic:r,method:d,params:p,expiry:i,throwOnFailedPublish:!0},m&&{tvf:this.getTVFParams(o,p)})).catch(e=>u(e)),this.client.events.emit(`session_request_sent`,{topic:r,request:n,chainId:t,id:o}),e()}),new Promise(async e=>{var t;if(!((t=a.sessionConfig)!=null&&t.disableDeepLink)){let e=await qn(this.client.core.storage,Vm);await Wn({id:o,topic:r,wcDeepLink:e})}e()}),c()]).then(e=>e[2])}),Z(this,`respond`,async e=>{this.isInitialized(),await this.isValidRespond(e);let{topic:t,response:n}=e,{id:r}=n,i=this.client.session.get(t);i.transportType===G.relay&&await this.confirmOnlineStateOrThrow();let a=this.getAppLinkIfEnabled(i.peer.metadata,i.transportType);A(n)?await this.sendResult({id:r,topic:t,result:n.result,throwOnFailedPublish:!0,appLink:a}):j(n)&&await this.sendError({id:r,topic:t,error:n.error,appLink:a}),this.cleanupAfterResponse(e)}),Z(this,`ping`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(e){throw this.client.logger.error(`ping() -> isValidPing() failed`),e}let{topic:t}=e;if(this.client.session.keys.includes(t)){let e=S(),n=x().toString(),{done:r,resolve:i,reject:a}=Fn();this.events.once(B(`session_ping`,e),({error:e})=>{e?a(e):i()}),await Promise.all([this.sendRequest({topic:t,method:`wc_sessionPing`,params:{},throwOnFailedPublish:!0,clientRpcId:e,relayRpcId:n}),r()])}else this.client.core.pairing.pairings.keys.includes(t)&&(this.client.logger.warn(`ping() on pairing topic is deprecated and will be removed in the next major release.`),await this.client.core.pairing.ping({topic:t}))}),Z(this,`emit`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);let{topic:t,event:n,chainId:r}=e,i=x().toString(),a=S();await this.sendRequest({topic:t,method:`wc_sessionEvent`,params:{event:n,chainId:r},throwOnFailedPublish:!0,relayRpcId:i,clientRpcId:a})}),Z(this,`disconnect`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);let{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:`wc_sessionDelete`,params:W(`USER_DISCONNECTED`),throwOnFailedPublish:!0}),await this.deleteSession({topic:t,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(t))await this.client.core.pairing.disconnect({topic:t});else{let{message:e}=U(`MISMATCHED_TOPIC`,`Session or pairing topic not found: ${t}`);throw Error(e)}}),Z(this,`find`,e=>(this.isInitialized(),this.client.session.getAll().filter(t=>Nc(t,e)))),Z(this,`getPendingSessionRequests`,()=>this.client.pendingRequest.getAll()),Z(this,`authenticate`,async(e,t)=>{this.isInitialized(),this.isValidAuthenticate(e);let n=t&&this.client.core.linkModeSupportedApps.includes(t)&&this.client.metadata.redirect?.linkMode,r=n?G.link_mode:G.relay;r===G.relay&&await this.confirmOnlineStateOrThrow();let{chains:i,statement:a=``,uri:o,domain:s,nonce:c,type:l,exp:u,nbf:d,methods:f=[],expiry:p}=e,m=[...e.resources||[]],{topic:h,uri:g}=await this.client.core.pairing.create({methods:[`wc_sessionAuthenticate`],transportType:r});this.client.logger.info({message:`Generated new pairing`,pairing:{topic:h,uri:g}});let _=await this.client.core.crypto.generateKeyPair(),v=Fs(_);if(await Promise.all([this.client.auth.authKeys.set(ih,{responseTopic:v,publicKey:_}),this.client.auth.pairingTopics.set(v,{topic:v,pairingTopic:h})]),await this.client.core.relayer.subscribe(v,{transportType:r}),this.client.logger.info(`sending request to new pairing topic: ${h}`),f.length>0){let{namespace:e}=an(i[0]),t=xi(e,`request`,f);Oi(m)&&(t=Ci(t,m.pop())),m.push(t)}let y=p&&p>qm.wc_sessionAuthenticate.req.ttl?p:qm.wc_sessionAuthenticate.req.ttl,b={authPayload:{type:l??`caip122`,chains:i,statement:a,aud:o,domain:s,version:`1`,nonce:c,iat:new Date().toISOString(),exp:u,nbf:d,resources:m},requester:{publicKey:_,metadata:this.client.metadata},expiryTimestamp:Vn(y)},x={requiredNamespaces:{},optionalNamespaces:{eip155:{chains:i,methods:[...new Set([`personal_sign`,...f])],events:[`chainChanged`,`accountsChanged`]}},relays:[{protocol:`irn`}],pairingTopic:h,proposer:{publicKey:_,metadata:this.client.metadata},expiryTimestamp:Vn(qm.wc_sessionPropose.req.ttl),id:S()},{done:C,resolve:w,reject:T}=Fn(y,`Request expired`),E=S(),O=B(`session_connect`,x.id),k=B(`session_request`,E),A=async({error:e,session:t})=>{this.events.off(k,j),e?T(e):t&&w({session:t})},j=async e=>{var n,i,a;if(await this.deletePendingAuthRequest(E,{message:`fulfilled`,code:0}),e.error){let t=W(`WC_METHOD_UNSUPPORTED`,`wc_sessionAuthenticate`);return e.error.code===t.code?void 0:(this.events.off(O,A),T(e.error.message))}await this.deleteProposal(x.id),this.events.off(O,A);let{cacaos:o,responder:s}=e.result,c=[],l=[];for(let e of o){await fi({cacao:e,projectId:this.client.core.projectId})||(this.client.logger.error(e,`Signature verification failed`),T(W(`SESSION_SETTLEMENT_FAILED`,`Signature verification failed`)));let{p:t}=e,n=Oi(t.resources),r=[ui(t.iss)],i=di(t.iss);if(n){let e=Ei(n),t=Di(n);c.push(...e),r.push(...t)}for(let e of r)l.push(`${e}:${i}`)}let u=await this.client.core.crypto.generateSharedKey(_,s.publicKey),d;c.length>0&&(d={topic:u,acknowledged:!0,self:{publicKey:_,metadata:this.client.metadata},peer:s,controller:s.publicKey,expiry:Vn(Gm),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:`irn`},pairingTopic:h,namespaces:wc([...new Set(c)],[...new Set(l)]),transportType:r},await this.client.core.relayer.subscribe(u,{transportType:r}),await this.client.session.set(u,d),h&&await this.client.core.pairing.updateMetadata({topic:h,metadata:s.metadata}),d=this.client.session.get(u)),(n=this.client.metadata.redirect)!=null&&n.linkMode&&(i=s.metadata.redirect)!=null&&i.linkMode&&(a=s.metadata.redirect)!=null&&a.universal&&t&&(this.client.core.addLinkModeSupportedApp(s.metadata.redirect.universal),this.client.session.update(u,{transportType:G.link_mode})),w({auths:o,session:d})};this.events.once(O,A),this.events.once(k,j);let M;try{if(n){let e=D(`wc_sessionAuthenticate`,b,E);this.client.core.history.set(h,e),M=oc(t,h,await this.client.core.crypto.encode(``,e,{type:2,encoding:Es}))}else await Promise.all([this.sendRequest({topic:h,method:`wc_sessionAuthenticate`,params:b,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:E}),this.sendRequest({topic:h,method:`wc_sessionPropose`,params:x,expiry:qm.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:x.id})])}catch(e){throw this.events.off(O,A),this.events.off(k,j),e}return await this.setProposal(x.id,x),await this.setAuthRequest(E,{request:fh(X({},b),{verifyContext:{}}),pairingTopic:h,transportType:r}),{uri:M??g,response:C}}),Z(this,`approveSessionAuthenticate`,async e=>{let{id:t,auths:n}=e,r=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[Eu.authenticated_session_approve_started]}});try{this.isInitialized()}catch(e){throw r.setError(Du.no_internet_connection),e}let i=this.getPendingAuthRequest(t);if(!i)throw r.setError(Du.authenticated_session_pending_request_not_found),Error(`Could not find pending auth request with id ${t}`);let a=i.transportType||G.relay;a===G.relay&&await this.confirmOnlineStateOrThrow();let o=i.requester.publicKey,s=await this.client.core.crypto.generateKeyPair(),c=Fs(o),l={type:1,receiverPublicKey:o,senderPublicKey:s},u=[],d=[];for(let e of n){if(!await fi({cacao:e,projectId:this.client.core.projectId})){r.setError(Du.invalid_cacao);let e=W(`SESSION_SETTLEMENT_FAILED`,`Signature verification failed`);throw await this.sendError({id:t,topic:c,error:e,encodeOpts:l}),Error(e.message)}r.addTrace(Eu.cacaos_verified);let{p:n}=e,i=Oi(n.resources),a=[ui(n.iss)],o=di(n.iss);if(i){let e=Ei(i),t=Di(i);u.push(...e),a.push(...t)}for(let e of a)d.push(`${e}:${o}`)}let f=await this.client.core.crypto.generateSharedKey(s,o);r.addTrace(Eu.create_authenticated_session_topic);let p;if(u?.length>0){p={topic:f,acknowledged:!0,self:{publicKey:s,metadata:this.client.metadata},peer:{publicKey:o,metadata:i.requester.metadata},controller:o,expiry:Vn(Gm),authentication:n,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:`irn`},pairingTopic:i.pairingTopic,namespaces:wc([...new Set(u)],[...new Set(d)]),transportType:a},r.addTrace(Eu.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(f,{transportType:a})}catch(e){throw r.setError(Du.subscribe_authenticated_session_topic_failure),e}r.addTrace(Eu.subscribe_authenticated_session_topic_success),await this.client.session.set(f,p),r.addTrace(Eu.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:i.pairingTopic,metadata:i.requester.metadata})}r.addTrace(Eu.publishing_authenticated_session_approve);try{await this.sendResult({topic:c,id:t,result:{cacaos:n,responder:{publicKey:s,metadata:this.client.metadata}},encodeOpts:l,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(i.requester.metadata,a)})}catch(e){throw r.setError(Du.authenticated_session_approve_publish_failure),e}return await this.client.auth.requests.delete(t,{message:`fulfilled`,code:0}),await this.client.core.pairing.activate({topic:i.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:r.eventId}),{session:p}}),Z(this,`rejectSessionAuthenticate`,async e=>{this.isInitialized();let{id:t,reason:n}=e,r=this.getPendingAuthRequest(t);if(!r)throw Error(`Could not find pending auth request with id ${t}`);r.transportType===G.relay&&await this.confirmOnlineStateOrThrow();let i=r.requester.publicKey,a=await this.client.core.crypto.generateKeyPair(),o=Fs(i),s={type:1,receiverPublicKey:i,senderPublicKey:a};await this.sendError({id:t,topic:o,error:n,encodeOpts:s,rpcOpts:qm.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(r.requester.metadata,r.transportType)}),await this.client.auth.requests.delete(t,{message:`rejected`,code:0}),await this.client.proposal.delete(t,W(`USER_DISCONNECTED`))}),Z(this,`formatAuthMessage`,e=>{this.isInitialized();let{request:t,iss:n}=e;return pi(t,n)}),Z(this,`processRelayMessageCache`,()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{let e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)}),Z(this,`cleanupDuplicatePairings`,async e=>{if(e.pairingTopic)try{let t=this.client.core.pairing.pairings.get(e.pairingTopic),n=this.client.core.pairing.pairings.getAll().filter(n=>n.peerMetadata?.url&&n.peerMetadata?.url===e.peer.metadata.url&&n.topic&&n.topic!==t.topic);if(n.length===0)return;this.client.logger.info(`Cleaning up ${n.length} duplicate pairing(s)`),await Promise.all(n.map(e=>this.client.core.pairing.disconnect({topic:e.topic}))),this.client.logger.info(`Duplicate pairings clean up finished`)}catch(e){this.client.logger.error(e)}}),Z(this,`deleteSession`,async e=>{let{topic:t,expirerHasDeleted:n=!1,emitEvent:r=!0,id:i=0}=e,{self:a}=this.client.session.get(t);await this.client.core.relayer.unsubscribe(t),await this.client.session.delete(t,W(`USER_DISCONNECTED`)),this.addToRecentlyDeleted(t,`session`),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(t)&&await this.client.core.crypto.deleteSymKey(t),n||this.client.core.expirer.del(t),this.client.core.storage.removeItem(Vm).catch(e=>this.client.logger.warn(e)),this.getPendingSessionRequests().forEach(e=>{e.topic===t&&this.deletePendingSessionRequest(e.id,W(`USER_DISCONNECTED`))}),t===this.sessionRequestQueue.queue[0]?.topic&&(this.sessionRequestQueue.state=Ym.idle),r&&this.client.events.emit(`session_delete`,{id:i,topic:t})}),Z(this,`deleteProposal`,async(e,t)=>{if(t)try{let t=this.client.proposal.get(e);this.client.core.eventClient.getEvent({topic:t.pairingTopic})?.setError(Tu.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,W(`USER_DISCONNECTED`)),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,`proposal`)}),Z(this,`deletePendingSessionRequest`,async(e,t,n=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),n?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,`request`),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(t=>t.id!==e),n&&(this.sessionRequestQueue.state=Ym.idle,this.client.events.emit(`session_request_expire`,{id:e}))}),Z(this,`deletePendingAuthRequest`,async(e,t,n=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),n?Promise.resolve():this.client.core.expirer.del(e)])}),Z(this,`setExpiry`,async(e,t)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,t),await this.client.session.update(e,{expiry:t}))}),Z(this,`setProposal`,async(e,t)=>{this.client.core.expirer.set(e,Vn(qm.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)}),Z(this,`setAuthRequest`,async(e,t)=>{let{request:n,pairingTopic:r,transportType:i=G.relay}=t;this.client.core.expirer.set(e,n.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:n.authPayload,requester:n.requester,expiryTimestamp:n.expiryTimestamp,id:e,pairingTopic:r,verifyContext:n.verifyContext,transportType:i})}),Z(this,`setPendingSessionRequest`,async e=>{let{id:t,topic:n,params:r,verifyContext:i}=e,a=r.request.expiryTimestamp||Vn(qm.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,a),await this.client.pendingRequest.set(t,{id:t,topic:n,params:r,verifyContext:i})}),Z(this,`sendRequest`,async e=>{let{topic:t,method:n,params:r,expiry:i,relayRpcId:a,clientRpcId:s,throwOnFailedPublish:c,appLink:l,tvf:u}=e,d=D(n,r,s),f,p=!!l;try{let e=p?Es:Ts;f=await this.client.core.crypto.encode(t,d,{encoding:e})}catch(e){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),e}let m;if(Qm.includes(n)){let e=Is(JSON.stringify(d)),t=Is(f);m=await this.client.core.verify.register({id:t,decryptedId:e})}let h=qm[n].req;if(h.attestation=m,i&&(h.ttl=i),a&&(h.id=a),this.client.core.history.set(t,d),p){let e=oc(l,t,f);await o.Linking.openURL(e,this.client.name)}else{let e=qm[n].req;i&&(e.ttl=i),a&&(e.id=a),e.tvf=fh(X({},u),{correlationId:d.id}),c?(e.internal=fh(X({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,f,e)):this.client.core.relayer.publish(t,f,e).catch(e=>this.client.logger.error(e))}return d.id}),Z(this,`sendResult`,async e=>{let{id:t,topic:n,result:r,throwOnFailedPublish:i,encodeOpts:a,appLink:s}=e,c=N(t,r),l,u=s&&typeof o?.Linking<`u`;try{let e=u?Es:Ts;l=await this.client.core.crypto.encode(n,c,fh(X({},a||{}),{encoding:e}))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${n} failed`),e}let d,f;try{d=await this.client.core.history.get(n,t);let e=d.request;try{this.shouldSetTVF(e.method,e.params)&&(f=this.getTVFParams(t,e.params,r))}catch(e){this.client.logger.warn(`sendResult() -> getTVFParams() failed`,e)}}catch(e){throw this.client.logger.error(`sendResult() -> history.get(${n}, ${t}) failed`),e}if(u){let e=oc(s,n,l);await o.Linking.openURL(e,this.client.name)}else{let e=qm[d.request.method].res;e.tvf=fh(X({},f),{correlationId:t}),i?(e.internal=fh(X({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(n,l,e)):this.client.core.relayer.publish(n,l,e).catch(e=>this.client.logger.error(e))}await this.client.core.history.resolve(c)}),Z(this,`sendError`,async e=>{let{id:t,topic:n,error:r,encodeOpts:i,rpcOpts:a,appLink:s}=e,c=b(t,r),l,u=s&&typeof o?.Linking<`u`;try{let e=u?Es:Ts;l=await this.client.core.crypto.encode(n,c,fh(X({},i||{}),{encoding:e}))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${n} failed`),e}let d;try{d=await this.client.core.history.get(n,t)}catch(e){throw this.client.logger.error(`sendError() -> history.get(${n}, ${t}) failed`),e}if(u){let e=oc(s,n,l);await o.Linking.openURL(e,this.client.name)}else{let e=d.request.method,t=a||qm[e].res;this.client.core.relayer.publish(n,l,t)}await this.client.core.history.resolve(c)}),Z(this,`cleanup`,async()=>{let e=[],t=[];this.client.session.getAll().forEach(t=>{let n=!1;Hn(t.expiry)&&(n=!0),this.client.core.crypto.keychain.has(t.topic)||(n=!0),n&&e.push(t.topic)}),this.client.proposal.getAll().forEach(e=>{Hn(e.expiryTimestamp)&&t.push(e.id)}),await Promise.all([...e.map(e=>this.deleteSession({topic:e})),...t.map(e=>this.deleteProposal(e))])}),Z(this,`onProviderMessageEvent`,async e=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(e):await this.onRelayMessage(e)}),Z(this,`onRelayEventRequest`,async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()}),Z(this,`processRequestsQueue`,async()=>{if(this.requestQueue.state===Ym.active){this.client.logger.info(`Request queue already active, skipping...`);return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=Ym.active;let e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(e){this.client.logger.warn(e)}}this.requestQueue.state=Ym.idle}),Z(this,`processRequest`,async e=>{let{topic:t,payload:n,attestation:r,transportType:i,encryptedId:a}=e,o=n.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:o}))switch(o){case`wc_sessionPropose`:return await this.onSessionProposeRequest({topic:t,payload:n,attestation:r,encryptedId:a});case`wc_sessionSettle`:return await this.onSessionSettleRequest(t,n);case`wc_sessionUpdate`:return await this.onSessionUpdateRequest(t,n);case`wc_sessionExtend`:return await this.onSessionExtendRequest(t,n);case`wc_sessionPing`:return await this.onSessionPingRequest(t,n);case`wc_sessionDelete`:return await this.onSessionDeleteRequest(t,n);case`wc_sessionRequest`:return await this.onSessionRequest({topic:t,payload:n,attestation:r,encryptedId:a,transportType:i});case`wc_sessionEvent`:return await this.onSessionEventRequest(t,n);case`wc_sessionAuthenticate`:return await this.onSessionAuthenticateRequest({topic:t,payload:n,attestation:r,encryptedId:a,transportType:i});default:return this.client.logger.info(`Unsupported request method ${o}`)}}),Z(this,`onRelayEventResponse`,async e=>{let{topic:t,payload:n,transportType:r}=e,i=(await this.client.core.history.get(t,n.id)).request.method;switch(i){case`wc_sessionPropose`:return this.onSessionProposeResponse(t,n,r);case`wc_sessionSettle`:return this.onSessionSettleResponse(t,n);case`wc_sessionUpdate`:return this.onSessionUpdateResponse(t,n);case`wc_sessionExtend`:return this.onSessionExtendResponse(t,n);case`wc_sessionPing`:return this.onSessionPingResponse(t,n);case`wc_sessionRequest`:return this.onSessionRequestResponse(t,n);case`wc_sessionAuthenticate`:return this.onSessionAuthenticateResponse(t,n);default:return this.client.logger.info(`Unsupported response method ${i}`)}}),Z(this,`onRelayEventUnknownPayload`,e=>{let{topic:t}=e,{message:n}=U(`MISSING_OR_INVALID`,`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw Error(n)}),Z(this,`shouldIgnorePairingRequest`,e=>{let{topic:t,requestMethod:n}=e,r=this.expectedPairingMethodMap.get(t);return!r||r.includes(n)?!1:!!(r.includes(`wc_sessionAuthenticate`)&&this.client.events.listenerCount(`session_authenticate`)>0)}),Z(this,`onSessionProposeRequest`,async e=>{let{topic:t,payload:n,attestation:r,encryptedId:i}=e,{params:a,id:o}=n;try{let e=this.client.core.eventClient.getEvent({topic:t});this.client.events.listenerCount(`session_proposal`)===0&&e?.setError(Cu.proposal_listener_not_found),this.isValidConnect(X({},n.params));let s=X({id:o,pairingTopic:t,expiryTimestamp:a.expiryTimestamp||Vn(qm.wc_sessionPropose.req.ttl)},a);await this.setProposal(o,s);let c=await this.getVerifyContext({attestationId:r,hash:Is(JSON.stringify(n)),encryptedId:i,metadata:s.proposer.metadata});e?.addTrace(Su.emit_session_proposal),this.client.events.emit(`session_proposal`,{id:o,params:s,verifyContext:c})}catch(e){await this.sendError({id:o,topic:t,error:e,rpcOpts:qm.wc_sessionPropose.autoReject}),this.client.logger.error(e)}}),Z(this,`onSessionProposeResponse`,async(e,t,n)=>{let{id:r}=t;if(A(t)){let{result:i}=t;this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,result:i});let a=this.client.proposal.get(r);this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,proposal:a});let o=a.proposer.publicKey;this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,selfPublicKey:o});let s=i.responderPublicKey;this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,peerPublicKey:s});let c=await this.client.core.crypto.generateSharedKey(o,s);this.pendingSessions.set(r,{sessionTopic:c,pairingTopic:e,proposalId:r,publicKey:o});let l=await this.client.core.relayer.subscribe(c,{transportType:n});this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,subscriptionId:l}),await this.client.core.pairing.activate({topic:e})}else if(j(t)){await this.client.proposal.delete(r,W(`USER_DISCONNECTED`));let e=B(`session_connect`,r);if(this.events.listenerCount(e)===0)throw Error(`emitting ${e} without any listeners, 954`);this.events.emit(e,{error:t.error})}}),Z(this,`onSessionSettleRequest`,async(e,t)=>{let{id:n,params:r}=t;try{this.isValidSessionSettleRequest(r);let{relay:n,controller:i,expiry:a,namespaces:o,sessionProperties:s,scopedProperties:c,sessionConfig:l}=t.params,u=[...this.pendingSessions.values()].find(t=>t.sessionTopic===e);if(!u)return this.client.logger.error(`Pending session not found for topic ${e}`);let d=this.client.proposal.get(u.proposalId),f=fh(X(X(X({topic:e,relay:n,expiry:a,namespaces:o,acknowledged:!0,pairingTopic:u.pairingTopic,requiredNamespaces:d.requiredNamespaces,optionalNamespaces:d.optionalNamespaces,controller:i.publicKey,self:{publicKey:u.publicKey,metadata:this.client.metadata},peer:{publicKey:i.publicKey,metadata:i.metadata}},s&&{sessionProperties:s}),c&&{scopedProperties:c}),l&&{sessionConfig:l}),{transportType:G.relay});await this.client.session.set(f.topic,f),await this.setExpiry(f.topic,f.expiry),await this.client.core.pairing.updateMetadata({topic:u.pairingTopic,metadata:f.peer.metadata}),this.client.events.emit(`session_connect`,{session:f}),this.events.emit(B(`session_connect`,u.proposalId),{session:f}),this.pendingSessions.delete(u.proposalId),this.deleteProposal(u.proposalId,!1),this.cleanupDuplicatePairings(f),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),Z(this,`onSessionSettleResponse`,async(e,t)=>{let{id:n}=t;A(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(B(`session_approve`,n),{})):j(t)&&(await this.client.session.delete(e,W(`USER_DISCONNECTED`)),this.events.emit(B(`session_approve`,n),{error:t.error}))}),Z(this,`onSessionUpdateRequest`,async(e,t)=>{let{params:n,id:r}=t;try{let t=`${e}_session_update`,i=bl.get(t);if(i&&this.isRequestOutOfSync(i,r)){this.client.logger.warn(`Discarding out of sync request - ${r}`),this.sendError({id:r,topic:e,error:W(`INVALID_UPDATE_REQUEST`)});return}this.isValidUpdate(X({topic:e},n));try{bl.set(t,r),await this.client.session.update(e,{namespaces:n.namespaces}),await this.sendResult({id:r,topic:e,result:!0,throwOnFailedPublish:!0})}catch(e){throw bl.delete(t),e}this.client.events.emit(`session_update`,{id:r,topic:e,params:n})}catch(t){await this.sendError({id:r,topic:e,error:t}),this.client.logger.error(t)}}),Z(this,`isRequestOutOfSync`,(e,t)=>t.toString().slice(0,-3)<e.toString().slice(0,-3)),Z(this,`onSessionUpdateResponse`,(e,t)=>{let{id:n}=t,r=B(`session_update`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);A(t)?this.events.emit(B(`session_update`,n),{}):j(t)&&this.events.emit(B(`session_update`,n),{error:t.error})}),Z(this,`onSessionExtendRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,Vn(Gm)),await this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(`session_extend`,{id:n,topic:e})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),Z(this,`onSessionExtendResponse`,(e,t)=>{let{id:n}=t,r=B(`session_extend`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);A(t)?this.events.emit(B(`session_extend`,n),{}):j(t)&&this.events.emit(B(`session_extend`,n),{error:t.error})}),Z(this,`onSessionPingRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(`session_ping`,{id:n,topic:e})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),Z(this,`onSessionPingResponse`,(e,t)=>{let{id:n}=t,r=B(`session_ping`,n);setTimeout(()=>{if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners 2176`);A(t)?this.events.emit(B(`session_ping`,n),{}):j(t)&&this.events.emit(B(`session_ping`,n),{error:t.error})},500)}),Z(this,`onSessionDeleteRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise(t=>{this.client.core.relayer.once(tu.publish,async()=>{t(await this.deleteSession({topic:e,id:n}))})}),this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:W(`USER_DISCONNECTED`)})]).catch(e=>this.client.logger.error(e))}catch(e){this.client.logger.error(e)}}),Z(this,`onSessionRequest`,async e=>{var t,n;let{topic:r,payload:i,attestation:a,encryptedId:o,transportType:s}=e,{id:c,params:l}=i;try{await this.isValidRequest(X({topic:r},l));let e=this.client.session.get(r),i={id:c,topic:r,params:l,verifyContext:await this.getVerifyContext({attestationId:a,hash:Is(JSON.stringify(D(`wc_sessionRequest`,l,c))),encryptedId:o,metadata:e.peer.metadata,transportType:s})};await this.setPendingSessionRequest(i),s===G.link_mode&&(t=e.peer.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(e.peer.metadata.redirect?.universal),(n=this.client.signConfig)!=null&&n.disableRequestQueue?this.emitSessionRequest(i):(this.addSessionRequestToSessionRequestQueue(i),this.processSessionRequestQueue())}catch(e){await this.sendError({id:c,topic:r,error:e}),this.client.logger.error(e)}}),Z(this,`onSessionRequestResponse`,(e,t)=>{let{id:n}=t,r=B(`session_request`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);A(t)?this.events.emit(B(`session_request`,n),{result:t.result}):j(t)&&this.events.emit(B(`session_request`,n),{error:t.error})}),Z(this,`onSessionEventRequest`,async(e,t)=>{let{id:n,params:r}=t;try{let t=`${e}_session_event_${r.event.name}`,i=bl.get(t);if(i&&this.isRequestOutOfSync(i,n)){this.client.logger.info(`Discarding out of sync request - ${n}`);return}this.isValidEmit(X({topic:e},r)),this.client.events.emit(`session_event`,{id:n,topic:e,params:r}),bl.set(t,n)}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),Z(this,`onSessionAuthenticateResponse`,(e,t)=>{let{id:n}=t;this.client.logger.trace({type:`method`,method:`onSessionAuthenticateResponse`,topic:e,payload:t}),A(t)?this.events.emit(B(`session_request`,n),{result:t.result}):j(t)&&this.events.emit(B(`session_request`,n),{error:t.error})}),Z(this,`onSessionAuthenticateRequest`,async e=>{var t;let{topic:n,payload:r,attestation:i,encryptedId:a,transportType:o}=e;try{let{requester:e,authPayload:s,expiryTimestamp:c}=r.params,l=await this.getVerifyContext({attestationId:i,hash:Is(JSON.stringify(r)),encryptedId:a,metadata:e.metadata,transportType:o}),u={requester:e,pairingTopic:n,id:r.id,authPayload:s,verifyContext:l,expiryTimestamp:c};await this.setAuthRequest(r.id,{request:u,pairingTopic:n,transportType:o}),o===G.link_mode&&(t=e.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(e.metadata.redirect.universal),this.client.events.emit(`session_authenticate`,{topic:n,params:r.params,id:r.id,verifyContext:l})}catch(e){this.client.logger.error(e);let t=r.params.requester.publicKey,i=await this.client.core.crypto.generateKeyPair(),a=this.getAppLinkIfEnabled(r.params.requester.metadata,o),s={type:1,receiverPublicKey:t,senderPublicKey:i};await this.sendError({id:r.id,topic:n,error:e,encodeOpts:s,rpcOpts:qm.wc_sessionAuthenticate.autoReject,appLink:a})}}),Z(this,`addSessionRequestToSessionRequestQueue`,e=>{this.sessionRequestQueue.queue.push(e)}),Z(this,`cleanupAfterResponse`,e=>{this.deletePendingSessionRequest(e.response.id,{message:`fulfilled`,code:0}),setTimeout(()=>{this.sessionRequestQueue.state=Ym.idle,this.processSessionRequestQueue()},(0,z.toMiliseconds)(this.requestQueueDelay))}),Z(this,`cleanupPendingSentRequestsForTopic`,({topic:e,error:t})=>{let n=this.client.core.history.pending;n.length>0&&n.filter(t=>t.topic===e&&t.request.method===`wc_sessionRequest`).forEach(e=>{let n=e.request.id,r=B(`session_request`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);this.events.emit(B(`session_request`,e.request.id),{error:t})})}),Z(this,`processSessionRequestQueue`,()=>{if(this.sessionRequestQueue.state===Ym.active){this.client.logger.info(`session request queue is already active.`);return}let e=this.sessionRequestQueue.queue[0];if(!e){this.client.logger.info(`session request queue is empty.`);return}try{this.sessionRequestQueue.state=Ym.active,this.emitSessionRequest(e)}catch(e){this.client.logger.error(e)}}),Z(this,`emitSessionRequest`,e=>{this.client.events.emit(`session_request`,e)}),Z(this,`onPairingCreated`,e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;let t=this.client.proposal.getAll().find(t=>t.pairingTopic===e.topic);t&&this.onSessionProposeRequest({topic:e.topic,payload:D(`wc_sessionPropose`,fh(X({},t),{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties,scopedProperties:t.scopedProperties}),t.id)})}),Z(this,`isValidConnect`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`connect() params: ${JSON.stringify(e)}`);throw Error(t)}let{pairingTopic:t,requiredNamespaces:n,optionalNamespaces:r,sessionProperties:i,scopedProperties:a,relays:o}=e;if(Ac(t)||await this.isValidPairingTopic(t),!Xc(o,!0)){let{message:e}=U(`MISSING_OR_INVALID`,`connect() relays: ${o}`);throw Error(e)}if(!Ac(n)&&kc(n)!==0&&([`fatal`,`error`,`silent`].includes(this.client.logger.level)||this.client.logger.warn(`requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces`),this.validateNamespaces(n,`requiredNamespaces`)),!Ac(r)&&kc(r)!==0&&this.validateNamespaces(r,`optionalNamespaces`),Ac(i)||this.validateSessionProps(i,`sessionProperties`),!Ac(a)){this.validateSessionProps(a,`scopedProperties`);let e=Object.keys(n||{}).concat(Object.keys(r||{}));if(!Object.keys(a).every(t=>e.includes(t)))throw Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(a)}, required/optional namespaces: ${JSON.stringify(e)}`)}}),Z(this,`validateNamespaces`,(e,t)=>{let n=qc(e,`connect()`,t);if(n)throw Error(n.message)}),Z(this,`isValidApprove`,async e=>{if(!Qc(e))throw Error(U(`MISSING_OR_INVALID`,`approve() params: ${e}`).message);let{id:t,namespaces:n,relayProtocol:r,sessionProperties:i,scopedProperties:a}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);let o=this.client.proposal.get(t),s=Jc(n,`approve()`);if(s)throw Error(s.message);let c=ol(o.requiredNamespaces,n,`approve()`);if(c)throw Error(c.message);if(!jc(r,!0)){let{message:e}=U(`MISSING_OR_INVALID`,`approve() relayProtocol: ${r}`);throw Error(e)}if(Ac(i)||this.validateSessionProps(i,`sessionProperties`),!Ac(a)){this.validateSessionProps(a,`scopedProperties`);let e=new Set(Object.keys(n));if(!Object.keys(a).every(t=>e.has(t)))throw Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(a)}, approved namespaces: ${Array.from(e).join(`, `)}`)}}),Z(this,`isValidReject`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`reject() params: ${e}`);throw Error(t)}let{id:t,reason:n}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!$c(n)){let{message:e}=U(`MISSING_OR_INVALID`,`reject() reason: ${JSON.stringify(n)}`);throw Error(e)}}),Z(this,`isValidSessionSettleRequest`,e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`onSessionSettleRequest() params: ${e}`);throw Error(t)}let{relay:t,controller:n,namespaces:r,expiry:i}=e;if(!Yc(t)){let{message:e}=U(`MISSING_OR_INVALID`,`onSessionSettleRequest() relay protocol should be a string`);throw Error(e)}let a=zc(n,`onSessionSettleRequest()`);if(a)throw Error(a.message);let o=Jc(r,`onSessionSettleRequest()`);if(o)throw Error(o.message);if(Hn(i)){let{message:e}=U(`EXPIRED`,`onSessionSettleRequest()`);throw Error(e)}}),Z(this,`isValidUpdate`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`update() params: ${e}`);throw Error(t)}let{topic:t,namespaces:n}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);let r=this.client.session.get(t),i=Jc(n,`update()`);if(i)throw Error(i.message);let a=ol(r.requiredNamespaces,n,`update()`);if(a)throw Error(a.message)}),Z(this,`isValidExtend`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`extend() params: ${e}`);throw Error(t)}let{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)}),Z(this,`isValidRequest`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`request() params: ${e}`);throw Error(t)}let{topic:t,request:n,chainId:r,expiry:i}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);let{namespaces:a}=this.client.session.get(t);if(!rl(a,r)){let{message:e}=U(`MISSING_OR_INVALID`,`request() chainId: ${r}`);throw Error(e)}if(!el(n)){let{message:e}=U(`MISSING_OR_INVALID`,`request() ${JSON.stringify(n)}`);throw Error(e)}if(!il(a,r,n.method)){let{message:e}=U(`MISSING_OR_INVALID`,`request() method: ${n.method}`);throw Error(e)}if(i&&!ul(i,Jm)){let{message:e}=U(`MISSING_OR_INVALID`,`request() expiry: ${i}. Expiry must be a number (in seconds) between ${Jm.min} and ${Jm.max}`);throw Error(e)}}),Z(this,`isValidRespond`,async e=>{var t;if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`respond() params: ${e}`);throw Error(t)}let{topic:n,response:r}=e;try{await this.isValidSessionTopic(n)}catch(n){throw(t=e?.response)!=null&&t.id&&this.cleanupAfterResponse(e),n}if(!tl(r)){let{message:e}=U(`MISSING_OR_INVALID`,`respond() response: ${JSON.stringify(r)}`);throw Error(e)}}),Z(this,`isValidPing`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),Z(this,`isValidEmit`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`emit() params: ${e}`);throw Error(t)}let{topic:t,event:n,chainId:r}=e;await this.isValidSessionTopic(t);let{namespaces:i}=this.client.session.get(t);if(!rl(i,r)){let{message:e}=U(`MISSING_OR_INVALID`,`emit() chainId: ${r}`);throw Error(e)}if(!nl(n)){let{message:e}=U(`MISSING_OR_INVALID`,`emit() event: ${JSON.stringify(n)}`);throw Error(e)}if(!al(i,r,n.name)){let{message:e}=U(`MISSING_OR_INVALID`,`emit() event: ${JSON.stringify(n)}`);throw Error(e)}}),Z(this,`isValidDisconnect`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),Z(this,`isValidAuthenticate`,e=>{let{chains:t,uri:n,domain:r,nonce:i}=e;if(!Array.isArray(t)||t.length===0)throw Error(`chains is required and must be a non-empty array`);if(!jc(n,!1))throw Error(`uri is required parameter`);if(!jc(r,!1))throw Error(`domain is required parameter`);if(!jc(i,!1))throw Error(`nonce is required parameter`);if([...new Set(t.map(e=>an(e).namespace))].length>1)throw Error(`Multi-namespace requests are not supported. Please request single namespace only.`);let{namespace:a}=an(t[0]);if(a!==`eip155`)throw Error(`Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.`)}),Z(this,`getVerifyContext`,async e=>{let{attestationId:t,hash:n,encryptedId:r,metadata:i,transportType:a}=e,o={verified:{verifyUrl:i.verifyUrl||`https://verify.walletconnect.org`,validation:`UNKNOWN`,origin:i.url||``}};try{if(a===G.link_mode){let e=this.getAppLinkIfEnabled(i,a);return o.verified.validation=e&&new URL(e).origin===new URL(i.url).origin?`VALID`:`INVALID`,o}let e=await this.client.core.verify.resolve({attestationId:t,hash:n,encryptedId:r,verifyUrl:i.verifyUrl});e&&(o.verified.origin=e.origin,o.verified.isScam=e.isScam,o.verified.validation=e.origin===new URL(i.url).origin?`VALID`:`INVALID`)}catch(e){this.client.logger.warn(e)}return this.client.logger.debug(`Verify context: ${JSON.stringify(o)}`),o}),Z(this,`validateSessionProps`,(e,t)=>{Object.values(e).forEach((n,r)=>{if(n==null){let{message:i}=U(`MISSING_OR_INVALID`,`${t} must contain an existing value for each key. Received: ${n} for key ${Object.keys(e)[r]}`);throw Error(i)}})}),Z(this,`getPendingAuthRequest`,e=>{let t=this.client.auth.requests.get(e);return typeof t==`object`?t:void 0}),Z(this,`addToRecentlyDeleted`,(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let e=0,t=this.recentlyDeletedLimit/2;for(let n of this.recentlyDeletedMap.keys()){if(e++>=t)break;this.recentlyDeletedMap.delete(n)}}}),Z(this,`checkRecentlyDeleted`,e=>{let t=this.recentlyDeletedMap.get(e);if(t){let{message:n}=U(`MISSING_OR_INVALID`,`Record was recently deleted - ${t}: ${e}`);throw Error(n)}}),Z(this,`isLinkModeEnabled`,(e,t)=>!e||t!==G.link_mode?!1:this.client.metadata?.redirect?.linkMode===!0&&this.client.metadata?.redirect?.universal!==void 0&&this.client.metadata?.redirect?.universal!==``&&e?.redirect?.universal!==void 0&&e?.redirect?.universal!==``&&e?.redirect?.linkMode===!0&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&typeof o?.Linking<`u`),Z(this,`getAppLinkIfEnabled`,(e,t)=>this.isLinkModeEnabled(e,t)?e?.redirect?.universal:void 0),Z(this,`handleLinkModeMessage`,({url:e})=>{if(!e||!e.includes(`wc_ev`)||!e.includes(`topic`))return;let t=Jn(e,`topic`)||``,n=decodeURIComponent(Jn(e,`wc_ev`)||``),r=this.client.session.keys.includes(t);r&&this.client.session.update(t,{transportType:G.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:n,sessionExists:r})}),Z(this,`registerLinkModeListeners`,async()=>{var e;if(Xn()||yn()&&(e=this.client.metadata.redirect)!=null&&e.linkMode){let e=o?.Linking;if(typeof e<`u`){e.addEventListener(`url`,this.handleLinkModeMessage,this.client.name);let t=await e.getInitialURL();t&&setTimeout(()=>{this.handleLinkModeMessage({url:t})},50)}}}),Z(this,`shouldSetTVF`,(e,t)=>{if(!t||e!==`wc_sessionRequest`)return!1;let{request:n}=t;return Object.keys(Xm).includes(n.method)}),Z(this,`getTVFParams`,(e,t,n)=>{try{let r=t.request.method,i=this.extractTxHashesFromResult(r,n);return fh(X({correlationId:e,rpcMethods:[r],chainId:t.chainId},this.isValidContractData(t.request.params)&&{contractAddresses:[t.request.params?.[0]?.to]}),{txHashes:i})}catch(e){this.client.logger.warn(`Error getting TVF params`,e)}return{}}),Z(this,`isValidContractData`,e=>{if(!e)return!1;try{let t=e?.data||e?.[0]?.data;if(!t.startsWith(`0x`))return!1;let n=t.slice(2);return/^[0-9a-fA-F]*$/.test(n)?n.length%2==0:!1}catch{}return!1}),Z(this,`extractTxHashesFromResult`,(e,t)=>{try{let n=Xm[e];if(typeof t==`string`)return[t];let r=t[n.key];if(Oc(r))return e===`solana_signAllTransactions`?r.map(e=>Zr(e)):r;if(typeof r==`string`)return[r]}catch(e){this.client.logger.warn(`Error extracting tx hashes from result`,e)}return[]})}async processPendingMessageEvents(){try{let e=this.client.session.keys,t=this.client.core.relayer.messages.getWithoutAck(e);for(let[e,n]of Object.entries(t))for(let t of n)try{await this.onProviderMessageEvent({topic:e,message:t,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${e}, message: ${t}`)}}catch(e){this.client.logger.warn(`processPendingMessageEvents failed`,e)}}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(tu.message,e=>{this.onProviderMessageEvent(e)})}async onRelayMessage(e){let{topic:t,message:n,attestation:r,transportType:i}=e,{publicKey:a}=this.client.auth.authKeys.keys.includes(ih)?this.client.auth.authKeys.get(ih):{responseTopic:void 0,publicKey:void 0};try{let e=await this.client.core.crypto.decode(t,n,{receiverPublicKey:a,encoding:i===G.link_mode?Es:Ts});T(e)?(this.client.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e,attestation:r,transportType:i,encryptedId:Is(n)})):v(e)?(await this.client.core.history.resolve(e),await this.onRelayEventResponse({topic:t,payload:e,transportType:i}),this.client.core.history.delete(t,e.id)):await this.onRelayEventUnknownPayload({topic:t,payload:e,transportType:i}),await this.client.core.relayer.messages.ack(t,n)}catch(e){this.client.logger.error(e)}}registerExpirerEvents(){this.client.core.expirer.on(mu.expired,async e=>{let{topic:t,id:n}=Bn(e.target);if(n&&this.client.pendingRequest.keys.includes(n))return await this.deletePendingSessionRequest(n,U(`EXPIRED`),!0);if(n&&this.client.auth.requests.keys.includes(n))return await this.deletePendingAuthRequest(n,U(`EXPIRED`),!0);t?this.client.session.keys.includes(t)&&(await this.deleteSession({topic:t,expirerHasDeleted:!0}),this.client.events.emit(`session_expire`,{topic:t})):n&&(await this.deleteProposal(n,!0),this.client.events.emit(`proposal_expire`,{id:n}))})}registerPairingEvents(){this.client.core.pairing.events.on(uu.create,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(uu.delete,e=>{this.addToRecentlyDeleted(e.topic,`pairing`)})}isValidPairingTopic(e){if(!jc(e,!1)){let{message:t}=U(`MISSING_OR_INVALID`,`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.client.core.pairing.pairings.keys.includes(e)){let{message:t}=U(`NO_MATCHING_KEY`,`pairing topic doesn't exist: ${e}`);throw Error(t)}if(Hn(this.client.core.pairing.pairings.get(e).expiry)){let{message:t}=U(`EXPIRED`,`pairing topic: ${e}`);throw Error(t)}}async isValidSessionTopic(e){if(!jc(e,!1)){let{message:t}=U(`MISSING_OR_INVALID`,`session topic should be a string: ${e}`);throw Error(t)}if(this.checkRecentlyDeleted(e),!this.client.session.keys.includes(e)){let{message:t}=U(`NO_MATCHING_KEY`,`session topic doesn't exist: ${e}`);throw Error(t)}if(Hn(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});let{message:t}=U(`EXPIRED`,`session topic: ${e}`);throw Error(t)}if(!this.client.core.crypto.keychain.has(e)){let{message:t}=U(`MISSING_OR_INVALID`,`session topic does not exist in keychain: ${e}`);throw await this.deleteSession({topic:e}),Error(t)}}async isValidSessionOrPairingTopic(e){if(this.checkRecentlyDeleted(e),this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else if(this.client.core.pairing.pairings.keys.includes(e))this.isValidPairingTopic(e);else if(jc(e,!1)){let{message:t}=U(`NO_MATCHING_KEY`,`session or pairing topic doesn't exist: ${e}`);throw Error(t)}else{let{message:t}=U(`MISSING_OR_INVALID`,`session or pairing topic should be a string: ${e}`);throw Error(t)}}async isValidProposalId(e){if(!Zc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`proposal id should be a number: ${e}`);throw Error(t)}if(!this.client.proposal.keys.includes(e)){let{message:t}=U(`NO_MATCHING_KEY`,`proposal id doesn't exist: ${e}`);throw Error(t)}if(Hn(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);let{message:t}=U(`EXPIRED`,`proposal id: ${e}`);throw Error(t)}}},mh=class extends rm{constructor(e,t){super(e,t,Hm,zm),this.core=e,this.logger=t}},hh=class extends rm{constructor(e,t){super(e,t,Wm,zm),this.core=e,this.logger=t}},gh=class extends rm{constructor(e,t){super(e,t,Zm,zm,e=>e.id),this.core=e,this.logger=t}},_h=class extends rm{constructor(e,t){super(e,t,eh,rh,()=>ih),this.core=e,this.logger=t}},vh=class extends rm{constructor(e,t){super(e,t,th,rh),this.core=e,this.logger=t}},yh=class extends rm{constructor(e,t){super(e,t,nh,rh,e=>e.id),this.core=e,this.logger=t}},bh=Object.defineProperty,xh=(e,t,n)=>t in e?bh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Sh=(e,t,n)=>xh(e,typeof t==`symbol`?t:t+``,n),Ch=class{constructor(e,t){this.core=e,this.logger=t,Sh(this,`authKeys`),Sh(this,`pairingTopics`),Sh(this,`requests`),this.authKeys=new _h(this.core,this.logger),this.pairingTopics=new vh(this.core,this.logger),this.requests=new yh(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}},wh=Object.defineProperty,Th=(e,t,n)=>t in e?wh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Q=(e,t,n)=>Th(e,typeof t==`symbol`?t:t+``,n),Eh=class e extends Vl{constructor(e){super(e),Q(this,`protocol`,`wc`),Q(this,`version`,2),Q(this,`name`,Bm.name),Q(this,`metadata`),Q(this,`core`),Q(this,`logger`),Q(this,`events`,new fe.EventEmitter),Q(this,`engine`),Q(this,`session`),Q(this,`proposal`),Q(this,`pendingRequest`),Q(this,`auth`),Q(this,`signConfig`),Q(this,`on`,(e,t)=>this.events.on(e,t)),Q(this,`once`,(e,t)=>this.events.once(e,t)),Q(this,`off`,(e,t)=>this.events.off(e,t)),Q(this,`removeListener`,(e,t)=>this.events.removeListener(e,t)),Q(this,`removeAllListeners`,e=>this.events.removeAllListeners(e)),Q(this,`connect`,async e=>{try{return await this.engine.connect(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`pair`,async e=>{try{return await this.engine.pair(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`approve`,async e=>{try{return await this.engine.approve(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`reject`,async e=>{try{return await this.engine.reject(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`update`,async e=>{try{return await this.engine.update(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`extend`,async e=>{try{return await this.engine.extend(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`request`,async e=>{try{return await this.engine.request(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`respond`,async e=>{try{return await this.engine.respond(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`ping`,async e=>{try{return await this.engine.ping(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`emit`,async e=>{try{return await this.engine.emit(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`disconnect`,async e=>{try{return await this.engine.disconnect(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`find`,e=>{try{return this.engine.find(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`getPendingSessionRequests`,()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}}),Q(this,`authenticate`,async(e,t)=>{try{return await this.engine.authenticate(e,t)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`formatAuthMessage`,e=>{try{return this.engine.formatAuthMessage(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`approveSessionAuthenticate`,async e=>{try{return await this.engine.approveSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`rejectSessionAuthenticate`,async e=>{try{return await this.engine.rejectSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),this.name=e?.name||Bm.name,this.metadata=En(e?.metadata),this.signConfig=e?.signConfig;let t=typeof e?.logger<`u`&&typeof e?.logger!=`string`?e.logger:(0,pe.default)(je({level:e?.logger||Bm.logger}));this.core=e?.core||new Lm(e),this.logger=Ie(t,this.name),this.session=new hh(this.core,this.logger),this.proposal=new mh(this.core,this.logger),this.pendingRequest=new gh(this.core,this.logger),this.engine=new ph(this),this.auth=new Ch(this.core,this.logger)}static async init(t){let n=new e(t);return await n.initialize(),n}get context(){return Pe(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace(`Initialized`);try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info(`SignClient Initialization Success`),setTimeout(()=>{this.engine.processRelayMessageCache()},(0,z.toMiliseconds)(z.ONE_SECOND))}catch(e){throw this.logger.info(`SignClient Initialization Failure`),this.logger.error(e.message),e}}};s();var Dh=`error`,Oh=`wss://relay.walletconnect.org`,kh=`wc@2:universal_provider:`,Ah=`https://rpc.walletconnect.org/v1/`,jh=`generic`,Mh=`${Ah}bundler`,Nh={DEFAULT_CHAIN_CHANGED:`default_chain_changed`};function Ph(){}function Fh(e){return e==null||typeof e!=`object`&&typeof e!=`function`}function Ih(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Lh(e){if(Fh(e))return e;if(Array.isArray(e)||Ih(e)||e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);let t=Object.getPrototypeOf(e),n=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new n(e);if(e instanceof RegExp){let t=new n(e);return t.lastIndex=e.lastIndex,t}if(e instanceof DataView)return new n(e.buffer.slice(0));if(e instanceof Error){let t=new n(e.message);return t.stack=e.stack,t.name=e.name,t.cause=e.cause,t}if(typeof File<`u`&&e instanceof File)return new n([e],e.name,{type:e.type,lastModified:e.lastModified});if(typeof e==`object`){let n=Object.create(t);return Object.assign(n,e)}return e}function Rh(e){return typeof e==`object`&&!!e}function zh(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function Bh(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var Vh=`[object RegExp]`,Hh=`[object String]`,Uh=`[object Number]`,Wh=`[object Boolean]`,Gh=`[object Arguments]`,Kh=`[object Symbol]`,qh=`[object Date]`,Jh=`[object Map]`,Yh=`[object Set]`,Xh=`[object Array]`,Zh=`[object ArrayBuffer]`,Qh=`[object Object]`,$h=`[object DataView]`,eg=`[object Uint8Array]`,tg=`[object Uint8ClampedArray]`,ng=`[object Uint16Array]`,rg=`[object Uint32Array]`,ig=`[object Int8Array]`,ag=`[object Int16Array]`,og=`[object Int32Array]`,sg=`[object Float32Array]`,cg=`[object Float64Array]`;function lg(e,t){return ug(e,void 0,e,new Map,t)}function ug(e,t,n,r=new Map,i=void 0){let a=i?.(e,t,n,r);if(a!=null)return a;if(Fh(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=ug(e[a],a,n,r,i);return Object.hasOwn(e,`index`)&&(t.index=e.index),Object.hasOwn(e,`input`)&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){let t=new Map;r.set(e,t);for(let[a,o]of e)t.set(a,ug(o,a,n,r,i));return t}if(e instanceof Set){let t=new Set;r.set(e,t);for(let a of e)t.add(ug(a,void 0,n,r,i));return t}if(typeof c<`u`&&c.isBuffer(e))return e.subarray();if(Ih(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=ug(e[a],a,n,r,i);return t}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){let t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),dg(t,e,n,r,i),t}if(typeof File<`u`&&e instanceof File){let t=new File([e],e.name,{type:e.type});return r.set(e,t),dg(t,e,n,r,i),t}if(e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),dg(t,e,n,r,i),t}if(e instanceof Error){let t=new e.constructor;return r.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,dg(t,e,n,r,i),t}if(typeof e==`object`&&fg(e)){let t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),dg(t,e,n,r,i),t}return e}function dg(e,t,n=e,r,i){let a=[...Object.keys(t),...zh(t)];for(let o=0;o<a.length;o++){let s=a[o],c=Object.getOwnPropertyDescriptor(e,s);(c==null||c.writable)&&(e[s]=ug(t[s],s,n,r,i))}}function fg(e){switch(Bh(e)){case Gh:case Xh:case Zh:case $h:case Wh:case qh:case sg:case cg:case ig:case ag:case og:case Jh:case Uh:case Qh:case Vh:case Yh:case Hh:case Kh:case eg:case tg:case ng:case rg:return!0;default:return!1}}function pg(e,t){return lg(e,(n,r,i,a)=>{let o=t?.(n,r,i,a);if(o!=null)return o;if(typeof e==`object`)switch(Object.prototype.toString.call(e)){case Uh:case Hh:case Wh:{let t=new e.constructor(e?.valueOf());return dg(t,e),t}case Gh:{let t={};return dg(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}})}function mg(e){return pg(e)}function hg(e){return typeof e==`object`&&!!e&&Bh(e)===`[object Arguments]`}function gg(e){return Ih(e)}function _g(e){if(typeof e!=`object`||!e)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!==`[object Object]`){let t=e[Symbol.toStringTag];return t==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${t}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function vg(e,...t){let n=t.slice(0,-1),r=t[t.length-1],i=e;for(let e=0;e<n.length;e++){let t=n[e];i=yg(i,t,r,new Map)}return i}function yg(e,t,n,r){if(Fh(e)&&(e=Object(e)),typeof t!=`object`||!t)return e;if(r.has(t))return Lh(r.get(t));if(r.set(t,e),Array.isArray(t)){t=t.slice();for(let e=0;e<t.length;e++)t[e]=t[e]??void 0}let i=[...Object.keys(t),...zh(t)];for(let a=0;a<i.length;a++){let o=i[a],s=t[o],l=e[o];if(hg(s)&&(s={...s}),hg(l)&&(l={...l}),typeof c<`u`&&c.isBuffer(s)&&(s=mg(s)),Array.isArray(s)){if(typeof l==`object`&&l){let e=[],t=Reflect.ownKeys(l);for(let n=0;n<t.length;n++){let r=t[n];e[r]=l[r]}l=e}else l=[]}let u=n(l,s,o,e,t,r);u==null?Array.isArray(s)||Rh(l)&&Rh(s)?e[o]=yg(l,s,n,r):l==null&&_g(s)?e[o]=yg({},s,n,r):l==null&&gg(s)?e[o]=mg(s):(l===void 0||s!==void 0)&&(e[o]=s):e[o]=u}return e}function bg(e,...t){return vg(e,...t,Ph)}var xg=Object.defineProperty,Sg=Object.defineProperties,Cg=Object.getOwnPropertyDescriptors,wg=Object.getOwnPropertySymbols,Tg=Object.prototype.hasOwnProperty,Eg=Object.prototype.propertyIsEnumerable,Dg=(e,t,n)=>t in e?xg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Og=(e,t)=>{for(var n in t||={})Tg.call(t,n)&&Dg(e,n,t[n]);if(wg)for(var n of wg(t))Eg.call(t,n)&&Dg(e,n,t[n]);return e},kg=(e,t)=>Sg(e,Cg(t));function Ag(e,t,n){let r=an(e);return t.rpcMap?.[r.reference]||`${Ah}?chainId=${r.namespace}:${r.reference}&projectId=${n}`}function jg(e){return e.includes(`:`)?e.split(`:`)[1]:e}function Mg(e){return e.map(e=>`${e.split(`:`)[0]}:${e.split(`:`)[1]}`)}function Ng(e,t){let n=Object.keys(t.namespaces).filter(t=>t.includes(e));if(!n.length)return[];let r=[];return n.forEach(e=>{let n=t.namespaces[e].accounts;r.push(...n)}),r}function Pg(e={},t={}){return bg(Fg(e),Fg(t))}function Fg(e){let t={};if(!kc(e))return t;for(let[n,r]of Object.entries(e)){let e=bc(n)?[n]:r.chains,i=r.methods||[],a=r.events||[],o=r.rpcMap||{},s=xc(n);t[s]=kg(Og(Og({},t[s]),r),{chains:Un(e,t[s]?.chains),methods:Un(i,t[s]?.methods),events:Un(a,t[s]?.events)}),(kc(o)||kc(t[s]?.rpcMap||{}))&&(t[s].rpcMap=Og(Og({},o),t[s]?.rpcMap))}return t}function Ig(e){return e.includes(`:`)?e.split(`:`)[2]:e}function Lg(e){let t={};for(let[n,r]of Object.entries(e)){let e=r.methods||[],i=r.events||[],a=r.accounts||[];t[n]={chains:bc(n)?[n]:r.chains?r.chains:Mg(r.accounts),methods:e,events:i,accounts:a}}return t}function Rg(e){return typeof e==`number`?e:e.includes(`0x`)?parseInt(e,16):(e=e.includes(`:`)?e.split(`:`)[1]:e,isNaN(Number(e))?e:Number(e))}var zg={},$=e=>zg[e],Bg=(e,t)=>{zg[e]=t},Vg=Object.defineProperty,Hg=(e,t,n)=>t in e?Vg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ug=(e,t,n)=>Hg(e,typeof t==`symbol`?t:t+``,n),Wg=class{constructor(e){Ug(this,`name`,`polkadot`),Ug(this,`client`),Ug(this,`httpProviders`),Ug(this,`events`),Ug(this,`namespace`),Ug(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=jg(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},Gg=Object.defineProperty,Kg=Object.defineProperties,qg=Object.getOwnPropertyDescriptors,Jg=Object.getOwnPropertySymbols,Yg=Object.prototype.hasOwnProperty,Xg=Object.prototype.propertyIsEnumerable,Zg=(e,t,n)=>t in e?Gg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qg=(e,t)=>{for(var n in t||={})Yg.call(t,n)&&Zg(e,n,t[n]);if(Jg)for(var n of Jg(t))Xg.call(t,n)&&Zg(e,n,t[n]);return e},$g=(e,t)=>Kg(e,qg(t)),e_=(e,t,n)=>Zg(e,typeof t==`symbol`?t:t+``,n),t_=class{constructor(e){e_(this,`name`,`eip155`),e_(this,`client`),e_(this,`chainId`),e_(this,`namespace`),e_(this,`httpProviders`),e_(this,`events`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(e){switch(e.request.method){case`eth_requestAccounts`:return this.getAccounts();case`eth_accounts`:return this.getAccounts();case`wallet_switchEthereumChain`:return await this.handleSwitchChain(e);case`eth_chainId`:return parseInt(this.getDefaultChain());case`wallet_getCapabilities`:return await this.getCapabilities(e);case`wallet_getCallsStatus`:return await this.getCallStatus(e)}return this.namespace.methods.includes(e.request.method)?await this.client.request(e):this.getHttpProvider().request(e.request)}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(parseInt(e),t),this.chainId=parseInt(e),this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}createHttpProvider(e,t){let n=t||Ag(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=parseInt(jg(t));e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}getHttpProvider(){let e=this.chainId,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}async handleSwitchChain(e){let t=e.request.params?e.request.params[0]?.chainId:`0x0`;t=t.startsWith(`0x`)?t:`0x${t}`;let n=parseInt(t,16);if(this.isChainApproved(n))this.setDefaultChain(`${n}`);else if(this.namespace.methods.includes(`wallet_switchEthereumChain`))await this.client.request({topic:e.topic,request:{method:e.request.method,params:[{chainId:t}]},chainId:this.namespace.chains?.[0]}),this.setDefaultChain(`${n}`);else throw Error(`Failed to switch to chain 'eip155:${n}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(e){return this.namespace.chains.includes(`${this.name}:${e}`)}async getCapabilities(e){let t=e.request?.params?.[0],n=`${t}${(e.request?.params?.[1]||[]).join(`,`)}`;if(!t)throw Error("Missing address parameter in `wallet_getCapabilities` request");let r=this.client.session.get(e.topic),i=r?.sessionProperties?.capabilities||{};if(i!=null&&i[n])return i?.[n];let a=await this.client.request(e);try{await this.client.session.update(e.topic,{sessionProperties:$g(Qg({},r.sessionProperties||{}),{capabilities:$g(Qg({},i||{}),{[n]:a})})})}catch{}return a}async getCallStatus(e){let t=this.client.session.get(e.topic),n=t.sessionProperties?.bundler_name;if(n){let t=this.getBundlerUrl(e.chainId,n);try{return await this.getUserOperationReceipt(t,e)}catch{}}let r=t.sessionProperties?.bundler_url;if(r)try{return await this.getUserOperationReceipt(r,e)}catch{}if(this.namespace.methods.includes(e.request.method))return await this.client.request(e);throw Error(`Fetching call status not approved by the wallet.`)}async getUserOperationReceipt(e,t){let n=new URL(e),r=await fetch(n,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(D(`eth_getUserOperationReceipt`,[t.request.params?.[0]]))});if(!r.ok)throw Error(`Failed to fetch user operation receipt - ${r.status}`);return await r.json()}getBundlerUrl(e,t){return`${Mh}?projectId=${this.client.core.projectId}&chainId=${e}&bundler=${t}`}},n_=Object.defineProperty,r_=(e,t,n)=>t in e?n_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,i_=(e,t,n)=>r_(e,typeof t==`symbol`?t:t+``,n),a_=class{constructor(e){i_(this,`name`,`solana`),i_(this,`client`),i_(this,`httpProviders`),i_(this,`events`),i_(this,`namespace`),i_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=jg(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},o_=Object.defineProperty,s_=(e,t,n)=>t in e?o_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,c_=(e,t,n)=>s_(e,typeof t==`symbol`?t:t+``,n),l_=class{constructor(e){c_(this,`name`,`cosmos`),c_(this,`client`),c_(this,`httpProviders`),c_(this,`events`),c_(this,`namespace`),c_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=jg(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},u_=Object.defineProperty,d_=(e,t,n)=>t in e?u_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,f_=(e,t,n)=>d_(e,typeof t==`symbol`?t:t+``,n),p_=class{constructor(e){f_(this,`name`,`algorand`),f_(this,`client`),f_(this,`httpProviders`),f_(this,`events`),f_(this,`namespace`),f_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(!this.httpProviders[e]){let n=t||Ag(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);return typeof n>`u`?void 0:new k(new le(n,$(`disableProviderPing`)))}},m_=Object.defineProperty,h_=(e,t,n)=>t in e?m_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,g_=(e,t,n)=>h_(e,typeof t==`symbol`?t:t+``,n),__=class{constructor(e){g_(this,`name`,`cip34`),g_(this,`client`),g_(this,`httpProviders`),g_(this,`events`),g_(this,`namespace`),g_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=this.getCardanoRPCUrl(t),r=jg(t);e[r]=this.createHttpProvider(r,n)}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}getCardanoRPCUrl(e){let t=this.namespace.rpcMap;if(t)return t[e]}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||this.getCardanoRPCUrl(e);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},v_=Object.defineProperty,y_=(e,t,n)=>t in e?v_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,b_=(e,t,n)=>y_(e,typeof t==`symbol`?t:t+``,n),x_=class{constructor(e){b_(this,`name`,`elrond`),b_(this,`client`),b_(this,`httpProviders`),b_(this,`events`),b_(this,`namespace`),b_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=jg(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},S_=Object.defineProperty,C_=(e,t,n)=>t in e?S_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,w_=(e,t,n)=>C_(e,typeof t==`symbol`?t:t+``,n),T_=class{constructor(e){w_(this,`name`,`multiversx`),w_(this,`client`),w_(this,`httpProviders`),w_(this,`events`),w_(this,`namespace`),w_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=jg(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},E_=Object.defineProperty,D_=(e,t,n)=>t in e?E_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,O_=(e,t,n)=>D_(e,typeof t==`symbol`?t:t+``,n),k_=class{constructor(e){O_(this,`name`,`near`),O_(this,`client`),O_(this,`httpProviders`),O_(this,`events`),O_(this,`namespace`),O_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){let n=t||Ag(`${this.name}:${e}`,this.namespace);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace);return typeof n>`u`?void 0:new k(new le(n,$(`disableProviderPing`)))}},A_=Object.defineProperty,j_=(e,t,n)=>t in e?A_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,M_=(e,t,n)=>j_(e,typeof t==`symbol`?t:t+``,n),N_=class{constructor(e){M_(this,`name`,`tezos`),M_(this,`client`),M_(this,`httpProviders`),M_(this,`events`),M_(this,`namespace`),M_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){let n=t||Ag(`${this.name}:${e}`,this.namespace);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t)}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace);return typeof n>`u`?void 0:new k(new le(n))}},P_=Object.defineProperty,F_=(e,t,n)=>t in e?P_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,I_=(e,t,n)=>F_(e,typeof t==`symbol`?t:t+``,n),L_=class{constructor(e){I_(this,`name`,jh),I_(this,`client`),I_(this,`httpProviders`),I_(this,`events`),I_(this,`namespace`),I_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace.chains=[...new Set((this.namespace.chains||[]).concat(e.chains||[]))],this.namespace.accounts=[...new Set((this.namespace.accounts||[]).concat(e.accounts||[]))],this.namespace.methods=[...new Set((this.namespace.methods||[]).concat(e.methods||[]))],this.namespace.events=[...new Set((this.namespace.events||[]).concat(e.events||[]))],this.httpProviders=this.createHttpProviders()}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider(e.chainId).request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){var e;let t={};return(e=this.namespace?.accounts)==null||e.forEach(e=>{let n=an(e);t[`${n.namespace}:${n.reference}`]=this.createHttpProvider(e)}),t}getHttpProvider(e){let t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},R_=Object.defineProperty,z_=Object.defineProperties,B_=Object.getOwnPropertyDescriptors,V_=Object.getOwnPropertySymbols,H_=Object.prototype.hasOwnProperty,U_=Object.prototype.propertyIsEnumerable,W_=(e,t,n)=>t in e?R_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,G_=(e,t)=>{for(var n in t||={})H_.call(t,n)&&W_(e,n,t[n]);if(V_)for(var n of V_(t))U_.call(t,n)&&W_(e,n,t[n]);return e},K_=(e,t)=>z_(e,B_(t)),q_=(e,t,n)=>W_(e,typeof t==`symbol`?t:t+``,n),J_=class e{constructor(e){q_(this,`client`),q_(this,`namespaces`),q_(this,`optionalNamespaces`),q_(this,`sessionProperties`),q_(this,`scopedProperties`),q_(this,`events`,new fe.default),q_(this,`rpcProviders`,{}),q_(this,`session`),q_(this,`providerOpts`),q_(this,`logger`),q_(this,`uri`),q_(this,`disableProviderPing`,!1),this.providerOpts=e,this.logger=typeof e?.logger<`u`&&typeof e?.logger!=`string`?e.logger:(0,pe.default)(je({level:e?.logger||Dh})),this.disableProviderPing=e?.disableProviderPing||!1}static async init(t){let n=new e(t);return await n.initialize(),n}async request(e,t,n){let[r,i]=this.validateChain(t);if(!this.session)throw Error(`Please call connect() before request()`);return await this.getProvider(r).request({request:G_({},e),chainId:`${r}:${i}`,topic:this.session.topic,expiry:n})}sendAsync(e,t,n,r){let i=new Date().getTime();this.request(e,n,r).then(e=>t(null,N(i,e))).catch(e=>t(e,void 0))}async enable(){if(!this.client)throw Error(`Sign Client not initialized`);return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties}),await this.requestAccounts()}async disconnect(){if(!this.session)throw Error(`Please call connect() before enable()`);await this.client.disconnect({topic:this.session?.topic,reason:W(`USER_DISCONNECTED`)}),await this.cleanup()}async connect(e){if(!this.client)throw Error(`Sign Client not initialized`);if(this.setNamespaces(e),await this.cleanupPendingPairings(),!e.skipPairing)return await this.pair(e.pairingTopic)}async authenticate(e,t){if(!this.client)throw Error(`Sign Client not initialized`);this.setNamespaces(e),await this.cleanupPendingPairings();let{uri:n,response:r}=await this.client.authenticate(e,t);n&&(this.uri=n,this.events.emit(`display_uri`,n));let i=await r();if(this.session=i.session,this.session){let e=Lg(this.session.namespaces);this.namespaces=Pg(this.namespaces,e),await this.persist(`namespaces`,this.namespaces),this.onConnect()}return i}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}removeListener(e,t){this.events.removeListener(e,t)}off(e,t){this.events.off(e,t)}get isWalletConnect(){return!0}async pair(e){let{uri:t,approval:n}=await this.client.connect({pairingTopic:e,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties});t&&(this.uri=t,this.events.emit(`display_uri`,t));let r=await n();this.session=r;let i=Lg(r.namespaces);return this.namespaces=Pg(this.namespaces,i),await this.persist(`namespaces`,this.namespaces),await this.persist(`optionalNamespaces`,this.optionalNamespaces),this.onConnect(),this.session}setDefaultChain(e,t){try{if(!this.session)return;let[n,r]=this.validateChain(e),i=this.getProvider(n);i.name===jh?i.setDefaultChain(`${n}:${r}`,t):i.setDefaultChain(r,t)}catch(e){if(!/Please call connect/.test(e.message))throw e}}async cleanupPendingPairings(e={}){this.logger.info(`Cleaning up inactive pairings...`);let t=this.client.pairing.getAll();if(Oc(t)){for(let n of t)e.deletePairings?this.client.core.expirer.set(n.topic,0):await this.client.core.relayer.subscriber.unsubscribe(n.topic);this.logger.info(`Inactive pairings cleared: ${t.length}`)}}abortPairingAttempt(){this.logger.warn(`abortPairingAttempt is deprecated. This is now a no-op.`)}async checkStorage(){this.namespaces=await this.getFromStore(`namespaces`)||{},this.optionalNamespaces=await this.getFromStore(`optionalNamespaces`)||{},this.session&&this.createProviders()}async initialize(){this.logger.trace(`Initialized`),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){if(this.client=this.providerOpts.client||await Eh.init({core:this.providerOpts.core,logger:this.providerOpts.logger||Dh,relayUrl:this.providerOpts.relayUrl||Oh,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name,customStoragePrefix:this.providerOpts.customStoragePrefix,telemetryEnabled:this.providerOpts.telemetryEnabled}),this.providerOpts.session)try{this.session=this.client.session.get(this.providerOpts.session.topic)}catch(e){throw this.logger.error(`Failed to get session`,e),Error(`The provided session: ${this.providerOpts?.session?.topic} doesn't exist in the Sign client`)}else{let e=this.client.session.getAll();this.session=e[0]}this.logger.trace(`SignClient Initialized`)}createProviders(){if(!this.client)throw Error(`Sign Client not initialized`);if(!this.session)throw Error(`Session not initialized. Please call connect() before enable()`);let e=[...new Set(Object.keys(this.session.namespaces).map(e=>xc(e)))];Bg(`client`,this.client),Bg(`events`,this.events),Bg(`disableProviderPing`,this.disableProviderPing),e.forEach(e=>{if(!this.session)return;let t=Ng(e,this.session),n=Mg(t),r=K_(G_({},Pg(this.namespaces,this.optionalNamespaces)[e]),{accounts:t,chains:n});switch(e){case`eip155`:this.rpcProviders[e]=new t_({namespace:r});break;case`algorand`:this.rpcProviders[e]=new p_({namespace:r});break;case`solana`:this.rpcProviders[e]=new a_({namespace:r});break;case`cosmos`:this.rpcProviders[e]=new l_({namespace:r});break;case`polkadot`:this.rpcProviders[e]=new Wg({namespace:r});break;case`cip34`:this.rpcProviders[e]=new __({namespace:r});break;case`elrond`:this.rpcProviders[e]=new x_({namespace:r});break;case`multiversx`:this.rpcProviders[e]=new T_({namespace:r});break;case`near`:this.rpcProviders[e]=new k_({namespace:r});break;case`tezos`:this.rpcProviders[e]=new N_({namespace:r});break;default:this.rpcProviders[jh]?this.rpcProviders[jh].updateNamespace(r):this.rpcProviders[jh]=new L_({namespace:r})}})}registerEventListeners(){if(typeof this.client>`u`)throw Error(`Sign Client is not initialized`);this.client.on(`session_ping`,e=>{let{topic:t}=e;t===this.session?.topic&&this.events.emit(`session_ping`,e)}),this.client.on(`session_event`,e=>{let{params:t,topic:n}=e;if(n!==this.session?.topic)return;let{event:r}=t;if(r.name===`accountsChanged`){let e=r.data;e&&Oc(e)&&this.events.emit(`accountsChanged`,e.map(Ig))}else if(r.name===`chainChanged`){let e=t.chainId,n=t.event.data,r=xc(e),i=Rg(e)===Rg(n)?e:`${r}:${Rg(n)}`;this.onChainChanged(i)}else this.events.emit(r.name,r.data);this.events.emit(`session_event`,e)}),this.client.on(`session_update`,({topic:e,params:t})=>{if(e!==this.session?.topic)return;let{namespaces:n}=t,r=this.client?.session.get(e);this.session=K_(G_({},r),{namespaces:n}),this.onSessionUpdate(),this.events.emit(`session_update`,{topic:e,params:t})}),this.client.on(`session_delete`,async e=>{e.topic===this.session?.topic&&(await this.cleanup(),this.events.emit(`session_delete`,e),this.events.emit(`disconnect`,K_(G_({},W(`USER_DISCONNECTED`)),{data:e.topic})))}),this.on(Nh.DEFAULT_CHAIN_CHANGED,e=>{this.onChainChanged(e,!0)})}getProvider(e){return this.rpcProviders[e]||this.rpcProviders[jh]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(e=>{this.getProvider(e).updateNamespace(this.session?.namespaces[e])})}setNamespaces(e){let{namespaces:t={},optionalNamespaces:n={},sessionProperties:r,scopedProperties:i}=e;this.optionalNamespaces=Pg(t,n),this.sessionProperties=r,this.scopedProperties=i}validateChain(e){let[t,n]=e?.split(`:`)||[``,``];if(!this.namespaces||!Object.keys(this.namespaces).length)return[t,n];if(t&&!Object.keys(this.namespaces||{}).map(e=>xc(e)).includes(t))throw Error(`Namespace '${t}' is not configured. Please call connect() first with namespace config.`);if(t&&n)return[t,n];let r=xc(Object.keys(this.namespaces)[0]);return[r,this.rpcProviders[r].getDefaultChain()]}async requestAccounts(){let[e]=this.validateChain();return await this.getProvider(e).requestAccounts()}async onChainChanged(e,t=!1){if(!this.namespaces)return;let[n,r]=this.validateChain(e);if(!r)return;this.updateNamespaceChain(n,r),this.events.emit(`chainChanged`,r);let i=this.getProvider(n).getDefaultChain();t||this.getProvider(n).setDefaultChain(r),this.emitAccountsChangedOnChainChange({namespace:n,previousChainId:i,newChainId:e}),await this.persist(`namespaces`,this.namespaces)}emitAccountsChangedOnChainChange({namespace:e,previousChainId:t,newChainId:n}){try{if(t===n)return;let r=this.session?.namespaces[e]?.accounts;if(!r)return;let i=r.filter(e=>e.includes(`${n}:`)).map(Ig);if(!Oc(i))return;this.events.emit(`accountsChanged`,i)}catch(e){this.logger.warn(`Failed to emit accountsChanged on chain change`,e)}}updateNamespaceChain(e,t){if(!this.namespaces)return;let n=this.namespaces[e]?e:`${e}:${t}`,r={chains:[],methods:[],events:[],defaultChain:t};this.namespaces[n]?this.namespaces[n]&&(this.namespaces[n].defaultChain=t):this.namespaces[n]=r}onConnect(){this.createProviders(),this.events.emit(`connect`,{session:this.session})}async cleanup(){this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,await this.deleteFromStore(`namespaces`),await this.deleteFromStore(`optionalNamespaces`),await this.deleteFromStore(`sessionProperties`),this.session=void 0,await this.cleanupPendingPairings({deletePairings:!0}),await this.cleanupStorage()}async persist(e,t){let n=this.session?.topic||``;await this.client.core.storage.setItem(`${kh}/${e}${n}`,t)}async getFromStore(e){let t=this.session?.topic||``;return await this.client.core.storage.getItem(`${kh}/${e}${t}`)}async deleteFromStore(e){let t=this.session?.topic||``;await this.client.core.storage.removeItem(`${kh}/${e}${t}`)}async cleanupStorage(){try{if(this.client?.session.length>0)return;let e=await this.client.core.storage.getKeys();for(let t of e)t.startsWith(kh)&&await this.client.core.storage.removeItem(t)}catch(e){this.logger.warn(`Failed to cleanup storage`,e)}}},Y_=`wc@2:ethereum_provider:`,X_=`https://rpc.walletconnect.org/v1/`,Z_=[`eth_sendTransaction`,`personal_sign`],Q_=[`eth_accounts`,`eth_requestAccounts`,`eth_sendRawTransaction`,`eth_sign`,`eth_signTransaction`,`eth_signTypedData`,`eth_signTypedData_v3`,`eth_signTypedData_v4`,`eth_sendTransaction`,`personal_sign`,`wallet_switchEthereumChain`,`wallet_addEthereumChain`,`wallet_getPermissions`,`wallet_requestPermissions`,`wallet_registerOnboarding`,`wallet_watchAsset`,`wallet_scanQRCode`,`wallet_sendCalls`,`wallet_getCapabilities`,`wallet_getCallsStatus`,`wallet_showCallsStatus`],$_=[`chainChanged`,`accountsChanged`],ev=[`chainChanged`,`accountsChanged`,`message`,`disconnect`,`connect`],tv=async()=>{let{createAppKit:e}=await i(async()=>{let{createAppKit:e}=await import(`./core-uatW2d6Y.js`);return{createAppKit:e}},__vite__mapDeps([3,4,5,6,1,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]));return e},nv=Object.defineProperty,rv=Object.defineProperties,iv=Object.getOwnPropertyDescriptors,av=Object.getOwnPropertySymbols,ov=Object.prototype.hasOwnProperty,sv=Object.prototype.propertyIsEnumerable,cv=(e,t,n)=>t in e?nv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,lv=(e,t)=>{for(var n in t||={})ov.call(t,n)&&cv(e,n,t[n]);if(av)for(var n of av(t))sv.call(t,n)&&cv(e,n,t[n]);return e},uv=(e,t)=>rv(e,iv(t)),dv=(e,t,n)=>cv(e,typeof t==`symbol`?t:t+``,n);function fv(e){return Number(e[0].split(`:`)[1])}function pv(e){return`0x${e.toString(16)}`}function mv(e){let{chains:t,optionalChains:n,methods:r,optionalMethods:i,events:a,optionalEvents:o,rpcMap:s}=e;if(!Oc(t))throw Error(`Invalid chains`);let c={chains:t,methods:r||Z_,events:a||$_,rpcMap:lv({},t.length?{[fv(t)]:s[fv(t)]}:{})},l=a?.filter(e=>!$_.includes(e)),u=r?.filter(e=>!Z_.includes(e));if(!n&&!o&&!i&&!(l!=null&&l.length)&&!(u!=null&&u.length))return{required:t.length?c:void 0};let d=l?.length&&u?.length||!n,f={chains:[...new Set(d?c.chains.concat(n||[]):n)],methods:[...new Set(c.methods.concat(i!=null&&i.length?i:Q_))],events:[...new Set(c.events.concat(o!=null&&o.length?o:ev))],rpcMap:s};return{required:t.length?c:void 0,optional:n.length?f:void 0}}var hv=class e{constructor(){dv(this,`events`,new fe.EventEmitter),dv(this,`namespace`,`eip155`),dv(this,`accounts`,[]),dv(this,`signer`),dv(this,`chainId`,1),dv(this,`modal`),dv(this,`rpc`),dv(this,`STORAGE_KEY`,Y_),dv(this,`on`,(e,t)=>(this.events.on(e,t),this)),dv(this,`once`,(e,t)=>(this.events.once(e,t),this)),dv(this,`removeListener`,(e,t)=>(this.events.removeListener(e,t),this)),dv(this,`off`,(e,t)=>(this.events.off(e,t),this)),dv(this,`parseAccount`,e=>this.isCompatibleChainId(e)?this.parseAccountId(e).address:e),this.signer={},this.rpc={}}static async init(t){let n=new e;return await n.initialize(t),n}async request(e,t){return await this.signer.request(e,this.formatChainId(this.chainId),t)}sendAsync(e,t,n){this.signer.sendAsync(e,t,this.formatChainId(this.chainId),n)}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:`eth_requestAccounts`})}async connect(e){var t;if(!this.signer.client)throw Error(`Provider not initialized. Call init() first`);this.loadConnectOpts(e);let{required:n,optional:r}=mv(this.rpc);try{let t=await new Promise(async(t,i)=>{var a,o;this.rpc.showQrModal&&((a=this.modal)==null||a.open(),(o=this.modal)==null||o.subscribeState(e=>{!e.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),i(Error(`Connection request reset. Please try again.`)))}));let s=e!=null&&e.scopedProperties?{[this.namespace]:e.scopedProperties}:void 0;await this.signer.connect(uv(lv({namespaces:lv({},n&&{[this.namespace]:n})},r&&{optionalNamespaces:{[this.namespace]:r}}),{pairingTopic:e?.pairingTopic,scopedProperties:s})).then(e=>{t(e)}).catch(e=>{var t;(t=this.modal)==null||t.showErrorMessage(`Unable to connect`),i(Error(e.message))})});if(!t)return;let i=on(t.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:i),this.setAccounts(i),this.events.emit(`connect`,{chainId:pv(this.chainId)})}catch(e){throw this.signer.logger.error(e),e}finally{(t=this.modal)==null||t.close()}}async authenticate(e,t){var n;if(!this.signer.client)throw Error(`Provider not initialized. Call init() first`);this.loadConnectOpts({chains:e?.chains});try{let n=await new Promise(async(n,r)=>{var i,a;this.rpc.showQrModal&&((i=this.modal)==null||i.open(),(a=this.modal)==null||a.subscribeState(e=>{!e.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),r(Error(`Connection request reset. Please try again.`)))})),await this.signer.authenticate(uv(lv({},e),{chains:this.rpc.chains}),t).then(e=>{n(e)}).catch(e=>{var t;(t=this.modal)==null||t.showErrorMessage(`Unable to connect`),r(Error(e.message))})}),r=n.session;if(r){let e=on(r.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:e),this.setAccounts(e),this.events.emit(`connect`,{chainId:pv(this.chainId)})}return n}catch(e){throw this.signer.logger.error(e),e}finally{(n=this.modal)==null||n.close()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on(`session_event`,e=>{let{params:t}=e,{event:n}=t;n.name===`accountsChanged`?(this.accounts=this.parseAccounts(n.data),this.events.emit(`accountsChanged`,this.accounts)):n.name===`chainChanged`?this.setChainId(this.formatChainId(n.data)):this.events.emit(n.name,n.data),this.events.emit(`session_event`,e)}),this.signer.on(`accountsChanged`,e=>{this.accounts=this.parseAccounts(e),this.events.emit(`accountsChanged`,this.accounts)}),this.signer.on(`chainChanged`,e=>{let t=parseInt(e);this.chainId=t,this.events.emit(`chainChanged`,pv(this.chainId)),this.persist()}),this.signer.on(`session_update`,e=>{this.events.emit(`session_update`,e)}),this.signer.on(`session_delete`,e=>{this.reset(),this.events.emit(`session_delete`,e),this.events.emit(`disconnect`,uv(lv({},W(`USER_DISCONNECTED`)),{data:e.topic,name:`USER_DISCONNECTED`}))}),this.signer.on(`display_uri`,e=>{this.events.emit(`display_uri`,e)})}switchEthereumChain(e){this.request({method:`wallet_switchEthereumChain`,params:[{chainId:e.toString(16)}]})}isCompatibleChainId(e){return typeof e==`string`&&e.startsWith(`${this.namespace}:`)}formatChainId(e){return`${this.namespace}:${e}`}parseChainId(e){return Number(e.split(`:`)[1])}setChainIds(e){let t=e.filter(e=>this.isCompatibleChainId(e)).map(e=>this.parseChainId(e));t.length&&(this.chainId=t[0],this.events.emit(`chainChanged`,pv(this.chainId)),this.persist())}setChainId(e){if(this.isCompatibleChainId(e)){let t=this.parseChainId(e);this.chainId=t,this.switchEthereumChain(t)}}parseAccountId(e){let[t,n,r]=e.split(`:`);return{chainId:`${t}:${n}`,address:r}}setAccounts(e){this.accounts=e.filter(e=>this.parseChainId(this.parseAccountId(e).chainId)===this.chainId).map(e=>this.parseAccountId(e).address),this.events.emit(`accountsChanged`,this.accounts)}getRpcConfig(e){let t=e?.chains??[],n=e?.optionalChains??[],r=t.concat(n);if(!r.length)throw Error("No chains specified in either `chains` or `optionalChains`");let i=t.length?e?.methods||Z_:[],a=t.length?e?.events||$_:[],o=e?.optionalMethods||[],s=e?.optionalEvents||[],c=e?.rpcMap||this.buildRpcMap(r,e.projectId),l=e?.qrModalOptions||void 0;return{chains:t?.map(e=>this.formatChainId(e)),optionalChains:n.map(e=>this.formatChainId(e)),methods:i,events:a,optionalMethods:o,optionalEvents:s,rpcMap:c,showQrModal:!!(e!=null&&e.showQrModal),qrModalOptions:l,projectId:e.projectId,metadata:e.metadata}}buildRpcMap(e,t){let n={};return e.forEach(e=>{n[e]=this.getRpcUrl(e,t)}),n}async initialize(e){if(this.rpc=this.getRpcConfig(e),this.chainId=this.rpc.chains.length?fv(this.rpc.chains):fv(this.rpc.optionalChains),this.signer=await J_.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:e.disableProviderPing,relayUrl:e.relayUrl,storage:e.storage,storageOptions:e.storageOptions,customStoragePrefix:e.customStoragePrefix,telemetryEnabled:e.telemetryEnabled,logger:e.logger}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let e;try{let t=await tv(),{convertWCMToAppKitOptions:n}=await Promise.resolve().then(function(){return kv}),r=n(uv(lv({},this.rpc.qrModalOptions),{chains:[...new Set([...this.rpc.chains,...this.rpc.optionalChains])],metadata:this.rpc.metadata,projectId:this.rpc.projectId}));if(!r.networks.length)throw Error(`No networks found for WalletConnect·`);e=t(uv(lv({},r),{universalProvider:this.signer,manualWCControl:!0}))}catch{throw Error(`To use QR modal, please install @reown/appkit package`)}if(e)try{this.modal=e}catch(e){throw this.signer.logger.error(e),Error(`Could not generate WalletConnectModal Instance`)}}}loadConnectOpts(e){if(!e)return;let{chains:t,optionalChains:n,rpcMap:r}=e;t&&Oc(t)&&(this.rpc.chains=t.map(e=>this.formatChainId(e)),t.forEach(e=>{this.rpc.rpcMap[e]=r?.[e]||this.getRpcUrl(e)})),n&&Oc(n)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=n?.map(e=>this.formatChainId(e)),n.forEach(e=>{this.rpc.rpcMap[e]=r?.[e]||this.getRpcUrl(e)}))}getRpcUrl(e,t){return this.rpc.rpcMap?.[e]||`${X_}?chainId=eip155:${e}&projectId=${t||this.rpc.projectId}`}async loadPersistedSession(){if(this.session)try{let e=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),t=this.session.namespaces[`${this.namespace}:${e}`]?this.session.namespaces[`${this.namespace}:${e}`]:this.session.namespaces[this.namespace];this.setChainIds(e?[this.formatChainId(e)]:t?.accounts),this.setAccounts(t?.accounts)}catch(e){this.signer.logger.error(`Failed to load persisted session, clearing state...`),this.signer.logger.error(e),await this.disconnect().catch(e=>this.signer.logger.warn(e))}}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(e){return typeof e==`string`||e instanceof String?[this.parseAccount(e)]:e.map(e=>this.parseAccount(e))}},gv=Object.defineProperty,_v=Object.defineProperties,vv=Object.getOwnPropertyDescriptors,yv=Object.getOwnPropertySymbols,bv=Object.prototype.hasOwnProperty,xv=Object.prototype.propertyIsEnumerable,Sv=(e,t,n)=>t in e?gv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Cv=(e,t)=>{for(var n in t||={})bv.call(t,n)&&Sv(e,n,t[n]);if(yv)for(var n of yv(t))xv.call(t,n)&&Sv(e,n,t[n]);return e},wv=(e,t)=>_v(e,vv(t));function Tv(e){if(e)return{"--w3m-font-family":e[`--wcm-font-family`],"--w3m-accent":e[`--wcm-accent-color`],"--w3m-color-mix":e[`--wcm-background-color`],"--w3m-z-index":e[`--wcm-z-index`]?Number(e[`--wcm-z-index`]):void 0,"--w3m-qr-color":e[`--wcm-accent-color`],"--w3m-font-size-master":e[`--wcm-text-medium-regular-size`],"--w3m-border-radius-master":e[`--wcm-container-border-radius`],"--w3m-color-mix-strength":0}}var Ev=e=>{let[t,n]=e.split(`:`);return Ov({id:n,caipNetworkId:e,chainNamespace:t,name:``,nativeCurrency:{name:``,symbol:``,decimals:8},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}}})};function Dv(e){var t,n;let r=e.chains?.map(Ev).filter(Boolean);if(r.length===0)throw Error(`At least one chain must be specified`);let i=r.find(t=>t.id===e.defaultChain?.id),a={projectId:e.projectId,networks:r,themeMode:e.themeMode,themeVariables:Tv(e.themeVariables),chainImages:e.chainImages,connectorImages:e.walletImages,defaultNetwork:i,metadata:wv(Cv({},e.metadata),{name:e.metadata?.name||`WalletConnect`,description:e.metadata?.description||`Connect to WalletConnect-compatible wallets`,url:e.metadata?.url||`https://walletconnect.org`,icons:e.metadata?.icons||[`https://walletconnect.org/walletconnect-logo.png`]}),showWallets:!0,featuredWalletIds:e.explorerRecommendedWalletIds===`NONE`?[]:Array.isArray(e.explorerRecommendedWalletIds)?e.explorerRecommendedWalletIds:[],excludeWalletIds:e.explorerExcludedWalletIds===`ALL`?[]:Array.isArray(e.explorerExcludedWalletIds)?e.explorerExcludedWalletIds:[],enableEIP6963:!1,enableInjected:!1,enableCoinbase:!0,enableWalletConnect:!0,features:{email:!1,socials:!1}};if((t=e.mobileWallets)!=null&&t.length||(n=e.desktopWallets)!=null&&n.length){let t=[...(e.mobileWallets||[]).map(e=>({id:e.id,name:e.name,links:e.links})),...(e.desktopWallets||[]).map(e=>({id:e.id,name:e.name,links:{native:e.links.native,universal:e.links.universal}}))],n=[...a.featuredWalletIds||[],...a.excludeWalletIds||[]],r=t.filter(e=>!n.includes(e.id));r.length&&(a.customWallets=r)}return a}function Ov(e){return Cv({formatters:void 0,fees:void 0,serializers:void 0},e)}var kv=Object.freeze({__proto__:null,convertWCMToAppKitOptions:Dv,defineChain:Ov});export{hv as EthereumProvider};
|
|
12
|
+
Approved: ${i.toString()}`))}),o.forEach(e=>{r||(Mn(i[e].methods,a[e].methods)?Mn(i[e].events,a[e].events)||(r=U(`NON_CONFORMING_NAMESPACES`,`${n} namespaces events don't satisfy namespace events for ${e}`)):r=U(`NON_CONFORMING_NAMESPACES`,`${n} namespaces methods don't satisfy namespace methods for ${e}`))}),r}function sl(e){let t={};return Object.keys(e).forEach(n=>{var r;n.includes(`:`)?t[n]=e[n]:(r=e[n].chains)==null||r.forEach(r=>{t[r]={methods:e[n].methods,events:e[n].events}})}),t}function cl(e){return[...new Set(e.map(e=>e.includes(`:`)?e.split(`:`)[0]:e))]}function ll(e){let t={};return Object.keys(e).forEach(n=>{n.includes(`:`)?t[n]=e[n]:gc(e[n].accounts)?.forEach(r=>{t[r]={accounts:e[n].accounts.filter(e=>e.includes(`${r}:`)),methods:e[n].methods,events:e[n].events}})}),t}function ul(e,t){return Mc(e,!1)&&e<=t.max&&e>=t.min}function dl(){let e=Cn();return new Promise(t=>{switch(e){case _n.browser:t(fl());break;case _n.reactNative:t(pl());break;case _n.node:t(ml());break;default:t(!0)}})}function fl(){return Sn()&&navigator?.onLine}async function pl(){return yn()&&typeof o<`u`&&o!=null&&o.NetInfo?(await o?.NetInfo.fetch())?.isConnected:!0}function ml(){return!0}function hl(e){switch(Cn()){case _n.browser:gl(e);break;case _n.reactNative:_l(e);break;case _n.node:}}function gl(e){!yn()&&Sn()&&(window.addEventListener(`online`,()=>e(!0)),window.addEventListener(`offline`,()=>e(!1)))}function _l(e){yn()&&typeof o<`u`&&o!=null&&o.NetInfo&&o?.NetInfo.addEventListener(t=>e(t?.isConnected))}function vl(){return Sn()&&(0,qt.getDocument)()?(0,qt.getDocument)()?.visibilityState===`visible`:!0}var yl={},bl=class{static get(e){return yl[e]}static set(e,t){yl[e]=t}static delete(e){delete yl[e]}},xl=Object.defineProperty,Sl=(e,t,n)=>t in e?xl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Cl=(e,t,n)=>Sl(e,typeof t==`symbol`?t:t+``,n),wl=class extends m{constructor(e){super(),this.opts=e,Cl(this,`protocol`,`wc`),Cl(this,`version`,2)}},Tl=Object.defineProperty,El=(e,t,n)=>t in e?Tl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Dl=(e,t,n)=>El(e,typeof t==`symbol`?t:t+``,n),Ol=class extends m{constructor(e,t){super(),this.core=e,this.logger=t,Dl(this,`records`,new Map)}},kl=class{constructor(e,t){this.logger=e,this.core=t}},Al=class extends m{constructor(e,t){super(),this.relayer=e,this.logger=t}},jl=class extends m{constructor(e){super()}},Ml=class{constructor(e,t,n,r){this.core=e,this.logger=t,this.name=n}},Nl=class extends m{constructor(e,t){super(),this.relayer=e,this.logger=t}},Pl=class extends m{constructor(e,t){super(),this.core=e,this.logger=t}},Fl=class{constructor(e,t,n){this.core=e,this.logger=t,this.store=n}},Il=class{constructor(e,t){this.projectId=e,this.logger=t}},Ll=class{constructor(e,t,n){this.core=e,this.logger=t,this.telemetryEnabled=n}},Rl=Object.defineProperty,zl=(e,t,n)=>t in e?Rl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Bl=(e,t,n)=>zl(e,typeof t==`symbol`?t:t+``,n),Vl=class{constructor(e){this.opts=e,Bl(this,`protocol`,`wc`),Bl(this,`version`,2)}},Hl=class{constructor(e){this.client=e}};s(),r();var Ul=`core`,Wl=`wc@2:${Ul}:`,Gl={name:Ul,logger:`error`},Kl={database:`:memory:`},ql=`crypto`,Jl=`client_ed25519_seed`,Yl=z.ONE_DAY,Xl=`keychain`,Zl=`messages`,Ql=z.SIX_HOURS,$l=`publisher`,eu=`relayer`,tu={message:`relayer_message`,message_ack:`relayer_message_ack`,connect:`relayer_connect`,disconnect:`relayer_disconnect`,error:`relayer_error`,connection_stalled:`relayer_connection_stalled`,transport_closed:`relayer_transport_closed`,publish:`relayer_publish`},nu={payload:`payload`,connect:`connect`,disconnect:`disconnect`,error:`error`},ru=`2.21.1`,G={link_mode:`link_mode`,relay:`relay`},iu={inbound:`inbound`,outbound:`outbound`},au=`WALLETCONNECT_CLIENT_ID`,ou={created:`subscription_created`,deleted:`subscription_deleted`,expired:`subscription_expired`,disabled:`subscription_disabled`,sync:`subscription_sync`,resubscribed:`subscription_resubscribed`},su=`subscription`;z.FIVE_SECONDS*1e3;var cu=`pairing`,lu={wc_pairingDelete:{req:{ttl:z.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:z.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:z.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:z.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:z.ONE_DAY,prompt:!1,tag:0},res:{ttl:z.ONE_DAY,prompt:!1,tag:0}}},uu={create:`pairing_create`,expire:`pairing_expire`,delete:`pairing_delete`,ping:`pairing_ping`},du={created:`history_created`,updated:`history_updated`,deleted:`history_deleted`,sync:`history_sync`},fu=`history`,pu=`expirer`,mu={created:`expirer_created`,deleted:`expirer_deleted`,expired:`expirer_expired`,sync:`expirer_sync`},hu=`verify-api`,gu=`https://verify.walletconnect.com`,_u=`https://verify.walletconnect.org`,vu=`${_u}/v3`,yu=[gu,_u],bu=`echo`,xu=`https://echo.walletconnect.com`,Su={pairing_started:`pairing_started`,pairing_uri_validation_success:`pairing_uri_validation_success`,pairing_uri_not_expired:`pairing_uri_not_expired`,store_new_pairing:`store_new_pairing`,subscribing_pairing_topic:`subscribing_pairing_topic`,subscribe_pairing_topic_success:`subscribe_pairing_topic_success`,existing_pairing:`existing_pairing`,pairing_not_expired:`pairing_not_expired`,emit_inactive_pairing:`emit_inactive_pairing`,emit_session_proposal:`emit_session_proposal`,subscribing_to_pairing_topic:`subscribing_to_pairing_topic`},Cu={no_wss_connection:`no_wss_connection`,no_internet_connection:`no_internet_connection`,malformed_pairing_uri:`malformed_pairing_uri`,active_pairing_already_exists:`active_pairing_already_exists`,subscribe_pairing_topic_failure:`subscribe_pairing_topic_failure`,pairing_expired:`pairing_expired`,proposal_expired:`proposal_expired`,proposal_listener_not_found:`proposal_listener_not_found`},wu={session_approve_started:`session_approve_started`,proposal_not_expired:`proposal_not_expired`,session_namespaces_validation_success:`session_namespaces_validation_success`,create_session_topic:`create_session_topic`,subscribing_session_topic:`subscribing_session_topic`,subscribe_session_topic_success:`subscribe_session_topic_success`,publishing_session_approve:`publishing_session_approve`,session_approve_publish_success:`session_approve_publish_success`,store_session:`store_session`,publishing_session_settle:`publishing_session_settle`,session_settle_publish_success:`session_settle_publish_success`},Tu={no_internet_connection:`no_internet_connection`,no_wss_connection:`no_wss_connection`,proposal_expired:`proposal_expired`,subscribe_session_topic_failure:`subscribe_session_topic_failure`,session_approve_publish_failure:`session_approve_publish_failure`,session_settle_publish_failure:`session_settle_publish_failure`,session_approve_namespace_validation_failure:`session_approve_namespace_validation_failure`,proposal_not_found:`proposal_not_found`},Eu={authenticated_session_approve_started:`authenticated_session_approve_started`,authenticated_session_not_expired:`authenticated_session_not_expired`,chains_caip2_compliant:`chains_caip2_compliant`,chains_evm_compliant:`chains_evm_compliant`,create_authenticated_session_topic:`create_authenticated_session_topic`,cacaos_verified:`cacaos_verified`,store_authenticated_session:`store_authenticated_session`,subscribing_authenticated_session_topic:`subscribing_authenticated_session_topic`,subscribe_authenticated_session_topic_success:`subscribe_authenticated_session_topic_success`,publishing_authenticated_session_approve:`publishing_authenticated_session_approve`,authenticated_session_approve_publish_success:`authenticated_session_approve_publish_success`},Du={no_internet_connection:`no_internet_connection`,no_wss_connection:`no_wss_connection`,missing_session_authenticate_request:`missing_session_authenticate_request`,session_authenticate_request_expired:`session_authenticate_request_expired`,chains_caip2_compliant_failure:`chains_caip2_compliant_failure`,chains_evm_compliant_failure:`chains_evm_compliant_failure`,invalid_cacao:`invalid_cacao`,subscribe_authenticated_session_topic_failure:`subscribe_authenticated_session_topic_failure`,authenticated_session_approve_publish_failure:`authenticated_session_approve_publish_failure`,authenticated_session_pending_request_not_found:`authenticated_session_pending_request_not_found`},Ou=.1,ku=`event-client`,Au=`https://pulse.walletconnect.org/batch`;function ju(e,t){if(e.length>=255)throw TypeError(`Alphabet too long`);for(var n=new Uint8Array(256),r=0;r<n.length;r++)n[r]=255;for(var i=0;i<e.length;i++){var a=e.charAt(i),o=a.charCodeAt(0);if(n[o]!==255)throw TypeError(a+` is ambiguous`);n[o]=i}var s=e.length,c=e.charAt(0),l=Math.log(s)/Math.log(256),u=Math.log(256)/Math.log(s);function d(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError(`Expected Uint8Array`);if(t.length===0)return``;for(var n=0,r=0,i=0,a=t.length;i!==a&&t[i]===0;)i++,n++;for(var o=(a-i)*u+1>>>0,l=new Uint8Array(o);i!==a;){for(var d=t[i],f=0,p=o-1;(d!==0||f<r)&&p!==-1;p--,f++)d+=256*l[p]>>>0,l[p]=d%s>>>0,d=d/s>>>0;if(d!==0)throw Error(`Non-zero carry`);r=f,i++}for(var m=o-r;m!==o&&l[m]===0;)m++;for(var h=c.repeat(n);m<o;++m)h+=e.charAt(l[m]);return h}function f(e){if(typeof e!=`string`)throw TypeError(`Expected String`);if(e.length===0)return new Uint8Array;var t=0;if(e[t]!==` `){for(var r=0,i=0;e[t]===c;)r++,t++;for(var a=(e.length-t)*l+1>>>0,o=new Uint8Array(a);e[t];){var u=n[e.charCodeAt(t)];if(u===255)return;for(var d=0,f=a-1;(u!==0||d<i)&&f!==-1;f--,d++)u+=s*o[f]>>>0,o[f]=u%256>>>0,u=u/256>>>0;if(u!==0)throw Error(`Non-zero carry`);i=d,t++}if(e[t]!==` `){for(var p=a-i;p!==a&&o[p]===0;)p++;for(var m=new Uint8Array(r+(a-p)),h=r;p!==a;)m[h++]=o[p++];return m}}}function p(e){var n=f(e);if(n)return n;throw Error(`Non-${t} character`)}return{encode:d,decodeUnsafe:f,decode:p}}var Mu=ju,Nu=e=>{if(e instanceof Uint8Array&&e.constructor.name===`Uint8Array`)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw Error(`Unknown type, must be binary type`)},Pu=e=>new TextEncoder().encode(e),Fu=e=>new TextDecoder().decode(e),Iu=class{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(`Unknown type, must be binary type`)}},Lu=class{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw Error(`Invalid prefix character`);this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e==`string`){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error(`Can only multibase decode strings`)}or(e){return zu(this,e)}},Ru=class{constructor(e){this.decoders=e}or(e){return zu(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},zu=(e,t)=>new Ru({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Bu=class{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new Iu(e,t,n),this.decoder=new Lu(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Vu=({name:e,prefix:t,encode:n,decode:r})=>new Bu(e,t,n,r),Hu=({prefix:e,name:t,alphabet:n})=>{let{encode:r,decode:i}=Mu(n,t);return Vu({prefix:e,name:t,encode:r,decode:e=>Nu(i(e))})},Uu=(e,t,n,r)=>{let i={};for(let e=0;e<t.length;++e)i[t[e]]=e;let a=e.length;for(;e[a-1]===`=`;)--a;let o=new Uint8Array(a*n/8|0),s=0,c=0,l=0;for(let t=0;t<a;++t){let a=i[e[t]];if(a===void 0)throw SyntaxError(`Non-${r} character`);c=c<<n|a,s+=n,s>=8&&(s-=8,o[l++]=255&c>>s)}if(s>=n||255&c<<8-s)throw SyntaxError(`Unexpected end of data`);return o},Wu=(e,t,n)=>{let r=t[t.length-1]===`=`,i=(1<<n)-1,a=``,o=0,s=0;for(let r=0;r<e.length;++r)for(s=s<<8|e[r],o+=8;o>n;)o-=n,a+=t[i&s>>o];if(o&&(a+=t[i&s<<n-o]),r)for(;a.length*n&7;)a+=`=`;return a},Gu=({name:e,prefix:t,bitsPerChar:n,alphabet:r})=>Vu({prefix:t,name:e,encode(e){return Wu(e,r,n)},decode(t){return Uu(t,r,n,e)}}),Ku=Vu({prefix:`\0`,name:`identity`,encode:e=>Fu(e),decode:e=>Pu(e)}),qu=Object.freeze({__proto__:null,identity:Ku}),Ju=Gu({prefix:`0`,name:`base2`,alphabet:`01`,bitsPerChar:1}),Yu=Object.freeze({__proto__:null,base2:Ju}),Xu=Gu({prefix:`7`,name:`base8`,alphabet:`01234567`,bitsPerChar:3}),Zu=Object.freeze({__proto__:null,base8:Xu}),Qu=Hu({prefix:`9`,name:`base10`,alphabet:`0123456789`}),$u=Object.freeze({__proto__:null,base10:Qu}),ed=Gu({prefix:`f`,name:`base16`,alphabet:`0123456789abcdef`,bitsPerChar:4}),td=Gu({prefix:`F`,name:`base16upper`,alphabet:`0123456789ABCDEF`,bitsPerChar:4}),nd=Object.freeze({__proto__:null,base16:ed,base16upper:td}),rd=Gu({prefix:`b`,name:`base32`,alphabet:`abcdefghijklmnopqrstuvwxyz234567`,bitsPerChar:5}),id=Gu({prefix:`B`,name:`base32upper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`,bitsPerChar:5}),ad=Gu({prefix:`c`,name:`base32pad`,alphabet:`abcdefghijklmnopqrstuvwxyz234567=`,bitsPerChar:5}),od=Gu({prefix:`C`,name:`base32padupper`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=`,bitsPerChar:5}),sd=Gu({prefix:`v`,name:`base32hex`,alphabet:`0123456789abcdefghijklmnopqrstuv`,bitsPerChar:5}),cd=Gu({prefix:`V`,name:`base32hexupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV`,bitsPerChar:5}),ld=Gu({prefix:`t`,name:`base32hexpad`,alphabet:`0123456789abcdefghijklmnopqrstuv=`,bitsPerChar:5}),ud=Gu({prefix:`T`,name:`base32hexpadupper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUV=`,bitsPerChar:5}),dd=Gu({prefix:`h`,name:`base32z`,alphabet:`ybndrfg8ejkmcpqxot1uwisza345h769`,bitsPerChar:5}),fd=Object.freeze({__proto__:null,base32:rd,base32upper:id,base32pad:ad,base32padupper:od,base32hex:sd,base32hexupper:cd,base32hexpad:ld,base32hexpadupper:ud,base32z:dd}),pd=Hu({prefix:`k`,name:`base36`,alphabet:`0123456789abcdefghijklmnopqrstuvwxyz`}),md=Hu({prefix:`K`,name:`base36upper`,alphabet:`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ`}),hd=Object.freeze({__proto__:null,base36:pd,base36upper:md}),gd=Hu({name:`base58btc`,prefix:`z`,alphabet:`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`}),_d=Hu({name:`base58flickr`,prefix:`Z`,alphabet:`123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ`}),vd=Object.freeze({__proto__:null,base58btc:gd,base58flickr:_d}),yd=Gu({prefix:`m`,name:`base64`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,bitsPerChar:6}),bd=Gu({prefix:`M`,name:`base64pad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,bitsPerChar:6}),xd=Gu({prefix:`u`,name:`base64url`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,bitsPerChar:6}),Sd=Gu({prefix:`U`,name:`base64urlpad`,alphabet:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=`,bitsPerChar:6}),Cd=Object.freeze({__proto__:null,base64:yd,base64pad:bd,base64url:xd,base64urlpad:Sd}),wd=Array.from(`🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂`),Td=wd.reduce((e,t,n)=>(e[n]=t,e),[]),Ed=wd.reduce((e,t,n)=>(e[t.codePointAt(0)]=n,e),[]);function Dd(e){return e.reduce((e,t)=>(e+=Td[t],e),``)}function Od(e){let t=[];for(let n of e){let e=Ed[n.codePointAt(0)];if(e===void 0)throw Error(`Non-base256emoji character: ${n}`);t.push(e)}return new Uint8Array(t)}var kd=Vu({prefix:`🚀`,name:`base256emoji`,encode:Dd,decode:Od}),Ad=Object.freeze({__proto__:null,base256emoji:kd}),jd=Fd,Md=128,Nd=-128,Pd=2**31;function Fd(e,t,n){t||=[],n||=0;for(var r=n;e>=Pd;)t[n++]=e&255|Md,e/=128;for(;e&Nd;)t[n++]=e&255|Md,e>>>=7;return t[n]=e|0,Fd.bytes=n-r+1,t}var Id=zd,Ld=128,Rd=127;function zd(e,t){var n=0,t=t||0,r=0,i=t,a,o=e.length;do{if(i>=o)throw zd.bytes=0,RangeError(`Could not decode varint`);a=e[i++],n+=r<28?(a&Rd)<<r:(a&Rd)*2**r,r+=7}while(a>=Ld);return zd.bytes=i-t,n}var Bd=128,Vd=2**14,Hd=2**21,Ud=2**28,Wd=2**35,Gd=2**42,Kd=2**49,qd=2**56,Jd=2**63,Yd={encode:jd,decode:Id,encodingLength:function(e){return e<Bd?1:e<Vd?2:e<Hd?3:e<Ud?4:e<Wd?5:e<Gd?6:e<Kd?7:e<qd?8:e<Jd?9:10}},Xd=(e,t,n=0)=>(Yd.encode(e,t,n),t),Zd=e=>Yd.encodingLength(e),Qd=(e,t)=>{let n=t.byteLength,r=Zd(e),i=r+Zd(n),a=new Uint8Array(i+n);return Xd(e,a,0),Xd(n,a,r),a.set(t,i),new $d(e,n,t,a)},$d=class{constructor(e,t,n,r){this.code=e,this.size=t,this.digest=n,this.bytes=r}},ef=({name:e,code:t,encode:n})=>new tf(e,t,n),tf=class{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?Qd(this.code,t):t.then(e=>Qd(this.code,e))}throw Error(`Unknown type, must be binary type`)}},nf=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),rf=ef({name:`sha2-256`,code:18,encode:nf(`SHA-256`)}),af=ef({name:`sha2-512`,code:19,encode:nf(`SHA-512`)}),of=Object.freeze({__proto__:null,sha256:rf,sha512:af}),sf=0,cf=`identity`,lf=Nu,uf=Object.freeze({__proto__:null,identity:{code:sf,name:cf,encode:lf,digest:e=>Qd(sf,lf(e))}});new TextEncoder,new TextDecoder;var df={...qu,...Yu,...Zu,...$u,...nd,...fd,...hd,...vd,...Cd,...Ad};({...of,...uf});function ff(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}function pf(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}var mf=pf(`utf8`,`u`,e=>`u`+new TextDecoder(`utf8`).decode(e),e=>new TextEncoder().encode(e.substring(1))),hf=pf(`ascii`,`a`,e=>{let t=`a`;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t},e=>{e=e.substring(1);let t=ff(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}),gf={utf8:mf,"utf-8":mf,hex:df.base16,latin1:hf,ascii:hf,binary:hf,...df};function _f(e,t=`utf8`){let n=gf[t];if(!n)throw Error(`Unsupported encoding "${t}"`);return(t===`utf8`||t===`utf-8`)&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e,`utf8`):n.decoder.decode(`${n.prefix}${e}`)}var vf=Object.defineProperty,yf=(e,t,n)=>t in e?vf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,bf=(e,t,n)=>yf(e,typeof t==`symbol`?t:t+``,n),xf=class{constructor(e,t){this.core=e,this.logger=t,bf(this,`keychain`,new Map),bf(this,`name`,Xl),bf(this,`version`,`0.3`),bf(this,`initialized`,!1),bf(this,`storagePrefix`,Wl),bf(this,`init`,async()=>{if(!this.initialized){let e=await this.getKeyChain();typeof e<`u`&&(this.keychain=e),this.initialized=!0}}),bf(this,`has`,e=>(this.isInitialized(),this.keychain.has(e))),bf(this,`set`,async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()}),bf(this,`get`,e=>{this.isInitialized();let t=this.keychain.get(e);if(typeof t>`u`){let{message:t}=U(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}),bf(this,`del`,async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()}),this.core=e,this.logger=Ie(t,this.name)}get context(){return Pe(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,Nn(e))}async getKeyChain(){let e=await this.core.storage.getItem(this.storageKey);return typeof e<`u`?Pn(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}},Sf=Object.defineProperty,Cf=(e,t,n)=>t in e?Sf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,wf=(e,t,n)=>Cf(e,typeof t==`symbol`?t:t+``,n),Tf=class{constructor(e,t,n){this.core=e,this.logger=t,wf(this,`name`,ql),wf(this,`keychain`),wf(this,`randomSessionIdentifier`,Ns()),wf(this,`initialized`,!1),wf(this,`init`,async()=>{this.initialized||=(await this.keychain.init(),!0)}),wf(this,`hasKeys`,e=>(this.isInitialized(),this.keychain.has(e))),wf(this,`getClientId`,async()=>{this.isInitialized();let e=await this.getClientSeed(),t=L(e);return y(t.publicKey)}),wf(this,`generateKeyPair`,()=>{this.isInitialized();let e=Ms();return this.setPrivateKey(e.publicKey,e.privateKey)}),wf(this,`signJWT`,async e=>{this.isInitialized();let t=await this.getClientSeed(),n=L(t),r=this.randomSessionIdentifier;return await I(r,e,Yl,n)}),wf(this,`generateSharedKey`,(e,t,n)=>{this.isInitialized();let r=Ps(this.getPrivateKey(e),t);return this.setSymKey(r,n)}),wf(this,`setSymKey`,async(e,t)=>{this.isInitialized();let n=t||Fs(e);return await this.keychain.set(n,e),n}),wf(this,`deleteKeyPair`,async e=>{this.isInitialized(),await this.keychain.del(e)}),wf(this,`deleteSymKey`,async e=>{this.isInitialized(),await this.keychain.del(e)}),wf(this,`encode`,async(e,t,n)=>{this.isInitialized();let r=Js(n),i=g(t);if(Xs(r))return Us(i,n?.encoding);if(Ys(r)){let t=r.senderPublicKey,n=r.receiverPublicKey;e=await this.generateSharedKey(t,n)}let a=this.getSymKey(e),{type:o,senderPublicKey:s}=r;return Vs({type:o,symKey:a,message:i,senderPublicKey:s,encoding:n?.encoding})}),wf(this,`decode`,async(e,t,n)=>{this.isInitialized();let r=qs(t,n);if(Xs(r)){let e=Ws(t,n?.encoding);return F(e)}if(Ys(r)){let t=r.receiverPublicKey,n=r.senderPublicKey;e=await this.generateSharedKey(t,n)}try{let r=Hs({symKey:this.getSymKey(e),encoded:t,encoding:n?.encoding});return F(r)}catch(t){this.logger.error(`Failed to decode message from topic: '${e}', clientId: '${await this.getClientId()}'`),this.logger.error(t)}}),wf(this,`getPayloadType`,(e,t=Ts)=>Rs(Ks({encoded:e,encoding:t}).type)),wf(this,`getPayloadSenderPublicKey`,(e,t=Ts)=>{let n=Ks({encoded:e,encoding:t});return n.senderPublicKey?nn(n.senderPublicKey,ws):void 0}),this.core=e,this.logger=Ie(t,this.name),this.keychain=n||new xf(this.core,this.logger)}get context(){return Pe(this.logger)}async setPrivateKey(e,t){return await this.keychain.set(e,t),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e=``;try{e=this.keychain.get(Jl)}catch{e=Ns(),await this.keychain.set(Jl,e)}return _f(e,`base16`)}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}},Ef=Object.defineProperty,Df=Object.defineProperties,Of=Object.getOwnPropertyDescriptors,kf=Object.getOwnPropertySymbols,Af=Object.prototype.hasOwnProperty,jf=Object.prototype.propertyIsEnumerable,Mf=(e,t,n)=>t in e?Ef(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Nf=(e,t)=>{for(var n in t||={})Af.call(t,n)&&Mf(e,n,t[n]);if(kf)for(var n of kf(t))jf.call(t,n)&&Mf(e,n,t[n]);return e},Pf=(e,t)=>Df(e,Of(t)),Ff=(e,t,n)=>Mf(e,typeof t==`symbol`?t:t+``,n),If=class extends kl{constructor(e,t){super(e,t),this.logger=e,this.core=t,Ff(this,`messages`,new Map),Ff(this,`messagesWithoutClientAck`,new Map),Ff(this,`name`,Zl),Ff(this,`version`,`0.3`),Ff(this,`initialized`,!1),Ff(this,`storagePrefix`,Wl),Ff(this,`init`,async()=>{if(!this.initialized){this.logger.trace(`Initialized`);try{let e=await this.getRelayerMessages();typeof e<`u`&&(this.messages=e);let t=await this.getRelayerMessagesWithoutClientAck();typeof t<`u`&&(this.messagesWithoutClientAck=t),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:`method`,method:`restore`,size:this.messages.size})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}finally{this.initialized=!0}}}),Ff(this,`set`,async(e,t,n)=>{this.isInitialized();let r=Is(t),i=this.messages.get(e);if(typeof i>`u`&&(i={}),typeof i[r]<`u`)return r;if(i[r]=t,this.messages.set(e,i),n===iu.inbound){let n=this.messagesWithoutClientAck.get(e)||{};this.messagesWithoutClientAck.set(e,Pf(Nf({},n),{[r]:t}))}return await this.persist(),r}),Ff(this,`get`,e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>`u`&&(t={}),t}),Ff(this,`getWithoutAck`,e=>{this.isInitialized();let t={};for(let n of e){let e=this.messagesWithoutClientAck.get(n)||{};t[n]=Object.values(e)}return t}),Ff(this,`has`,(e,t)=>(this.isInitialized(),typeof this.get(e)[Is(t)]<`u`)),Ff(this,`ack`,async(e,t)=>{this.isInitialized();let n=this.messagesWithoutClientAck.get(e);if(typeof n>`u`)return;let r=Is(t);delete n[r],Object.keys(n).length===0?this.messagesWithoutClientAck.delete(e):this.messagesWithoutClientAck.set(e,n),await this.persist()}),Ff(this,`del`,async e=>{this.isInitialized(),this.messages.delete(e),this.messagesWithoutClientAck.delete(e),await this.persist()}),this.logger=Ie(e,this.name),this.core=t}get context(){return Pe(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}get storageKeyWithoutClientAck(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name+`_withoutClientAck`}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,Nn(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,Nn(e))}async getRelayerMessages(){let e=await this.core.storage.getItem(this.storageKey);return typeof e<`u`?Pn(e):void 0}async getRelayerMessagesWithoutClientAck(){let e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<`u`?Pn(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}},Lf=Object.defineProperty,Rf=Object.defineProperties,zf=Object.getOwnPropertyDescriptors,Bf=Object.getOwnPropertySymbols,Vf=Object.prototype.hasOwnProperty,Hf=Object.prototype.propertyIsEnumerable,Uf=(e,t,n)=>t in e?Lf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wf=(e,t)=>{for(var n in t||={})Vf.call(t,n)&&Uf(e,n,t[n]);if(Bf)for(var n of Bf(t))Hf.call(t,n)&&Uf(e,n,t[n]);return e},Gf=(e,t)=>Rf(e,zf(t)),Kf=(e,t,n)=>Uf(e,typeof t==`symbol`?t:t+``,n),qf=class extends Al{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,Kf(this,`events`,new fe.EventEmitter),Kf(this,`name`,$l),Kf(this,`queue`,new Map),Kf(this,`publishTimeout`,(0,z.toMiliseconds)(z.ONE_MINUTE)),Kf(this,`initialPublishTimeout`,(0,z.toMiliseconds)(z.ONE_SECOND*15)),Kf(this,`needsTransportRestart`,!1),Kf(this,`publish`,async(e,t,n)=>{var r;this.logger.debug(`Publishing Payload`),this.logger.trace({type:`method`,method:`publish`,params:{topic:e,message:t,opts:n}});let i=n?.ttl||Ql,a=$s(n),o=n?.prompt||!1,s=n?.tag||0,c=n?.id||x().toString(),l={topic:e,message:t,opts:{ttl:i,relay:a,prompt:o,tag:s,id:c,attestation:n?.attestation,tvf:n?.tvf}},u=`Failed to publish payload, please try again. id:${c} tag:${s}`;try{let r=new Promise(async r=>{let a=({id:e})=>{l.opts.id===e&&(this.removeRequestFromQueue(e),this.relayer.events.removeListener(tu.publish,a),r(l))};this.relayer.events.on(tu.publish,a);let u=In(new Promise((r,a)=>{this.rpcPublish({topic:e,message:t,ttl:i,prompt:o,tag:s,id:c,attestation:n?.attestation,tvf:n?.tvf}).then(r).catch(e=>{this.logger.warn(e,e?.message),a(e)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${c} tag:${s}`);try{await u,this.events.removeListener(tu.publish,a)}catch(e){this.queue.set(c,Gf(Wf({},l),{attempt:1})),this.logger.warn(e,e?.message)}});this.logger.trace({type:`method`,method:`publish`,params:{id:c,topic:e,message:t,opts:n}}),await In(r,this.publishTimeout,u)}catch(e){if(this.logger.debug(`Failed to Publish Payload`),this.logger.error(e),(r=n?.internal)!=null&&r.throwOnFailedPublish)throw e}finally{this.queue.delete(c)}}),Kf(this,`on`,(e,t)=>{this.events.on(e,t)}),Kf(this,`once`,(e,t)=>{this.events.once(e,t)}),Kf(this,`off`,(e,t)=>{this.events.off(e,t)}),Kf(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.relayer=e,this.logger=Ie(t,this.name),this.registerEventListeners()}get context(){return Pe(this.logger)}async rpcPublish(e){var t,n;let{topic:r,message:i,ttl:a=Ql,prompt:o,tag:s,id:c,attestation:l,tvf:u}=e,d={method:ec($s().protocol).publish,params:Wf({topic:r,message:i,ttl:a,prompt:o,tag:s,attestation:l},u),id:c};Ac(d.params?.prompt)&&((t=d.params)==null||delete t.prompt),Ac(d.params?.tag)&&((n=d.params)==null||delete n.tag),this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`message`,direction:`outgoing`,request:d});let f=await this.relayer.request(d);return this.relayer.events.emit(tu.publish,e),this.logger.debug(`Successfully Published Payload`),f}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,t)=>{let n=e.attempt+1;this.queue.set(t,Gf(Wf({},e),{attempt:n}));let{topic:r,message:i,opts:a,attestation:o}=e;this.logger.warn({},`Publisher: queue->publishing: ${e.opts.id}, tag: ${e.opts.tag}, attempt: ${n}`),await this.rpcPublish(Gf(Wf({},e),{topic:r,message:i,ttl:a.ttl,prompt:a.prompt,tag:a.tag,id:a.id,attestation:o,tvf:a.tvf})),this.logger.warn({},`Publisher: queue->published: ${e.opts.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(f.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(tu.connection_stalled);return}this.checkQueue()}),this.relayer.on(tu.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}},Jf=Object.defineProperty,Yf=(e,t,n)=>t in e?Jf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Xf=(e,t,n)=>Yf(e,typeof t==`symbol`?t:t+``,n),Zf=class{constructor(){Xf(this,`map`,new Map),Xf(this,`set`,(e,t)=>{let n=this.get(e);this.exists(e,t)||this.map.set(e,[...n,t])}),Xf(this,`get`,e=>this.map.get(e)||[]),Xf(this,`exists`,(e,t)=>this.get(e).includes(t)),Xf(this,`delete`,(e,t)=>{if(typeof t>`u`){this.map.delete(e);return}if(!this.map.has(e))return;let n=this.get(e);if(!this.exists(e,t))return;let r=n.filter(e=>e!==t);if(!r.length){this.map.delete(e);return}this.map.set(e,r)}),Xf(this,`clear`,()=>{this.map.clear()})}get topics(){return Array.from(this.map.keys())}},Qf=Object.defineProperty,$f=Object.defineProperties,ep=Object.getOwnPropertyDescriptors,tp=Object.getOwnPropertySymbols,np=Object.prototype.hasOwnProperty,rp=Object.prototype.propertyIsEnumerable,ip=(e,t,n)=>t in e?Qf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ap=(e,t)=>{for(var n in t||={})np.call(t,n)&&ip(e,n,t[n]);if(tp)for(var n of tp(t))rp.call(t,n)&&ip(e,n,t[n]);return e},op=(e,t)=>$f(e,ep(t)),K=(e,t,n)=>ip(e,typeof t==`symbol`?t:t+``,n),sp=class extends Nl{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,K(this,`subscriptions`,new Map),K(this,`topicMap`,new Zf),K(this,`events`,new fe.EventEmitter),K(this,`name`,su),K(this,`version`,`0.3`),K(this,`pending`,new Map),K(this,`cached`,[]),K(this,`initialized`,!1),K(this,`storagePrefix`,Wl),K(this,`subscribeTimeout`,(0,z.toMiliseconds)(z.ONE_MINUTE)),K(this,`initialSubscribeTimeout`,(0,z.toMiliseconds)(z.ONE_SECOND*15)),K(this,`clientId`),K(this,`batchSubscribeTopicsLimit`,500),K(this,`init`,async()=>{this.initialized||(this.logger.trace(`Initialized`),this.registerEventListeners(),await this.restore()),this.initialized=!0}),K(this,`subscribe`,async(e,t)=>{this.isInitialized(),this.logger.debug(`Subscribing Topic`),this.logger.trace({type:`method`,method:`subscribe`,params:{topic:e,opts:t}});try{let n=$s(t),r={topic:e,relay:n,transportType:t?.transportType};this.pending.set(e,r);let i=await this.rpcSubscribe(e,n,t);return typeof i==`string`&&(this.onSubscribe(i,r),this.logger.debug(`Successfully Subscribed Topic`),this.logger.trace({type:`method`,method:`subscribe`,params:{topic:e,opts:t}})),i}catch(e){throw this.logger.debug(`Failed to Subscribe Topic`),this.logger.error(e),e}}),K(this,`unsubscribe`,async(e,t)=>{this.isInitialized(),typeof t?.id<`u`?await this.unsubscribeById(e,t.id,t):await this.unsubscribeByTopic(e,t)}),K(this,`isSubscribed`,e=>new Promise(t=>{t(this.topicMap.topics.includes(e))})),K(this,`isKnownTopic`,e=>new Promise(t=>{t(this.topicMap.topics.includes(e)||this.pending.has(e)||this.cached.some(t=>t.topic===e))})),K(this,`on`,(e,t)=>{this.events.on(e,t)}),K(this,`once`,(e,t)=>{this.events.once(e,t)}),K(this,`off`,(e,t)=>{this.events.off(e,t)}),K(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),K(this,`start`,async()=>{await this.onConnect()}),K(this,`stop`,async()=>{await this.onDisconnect()}),K(this,`restart`,async()=>{await this.restore(),await this.onRestart()}),K(this,`checkPending`,async()=>{if(this.pending.size===0&&(!this.initialized||!this.relayer.connected))return;let e=[];this.pending.forEach(t=>{e.push(t)}),await this.batchSubscribe(e)}),K(this,`registerEventListeners`,()=>{this.relayer.core.heartbeat.on(f.pulse,async()=>{await this.checkPending()}),this.events.on(ou.created,async e=>{let t=ou.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),await this.persist()}),this.events.on(ou.deleted,async e=>{let t=ou.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),await this.persist()})}),this.relayer=e,this.logger=Ie(t,this.name),this.clientId=``}get context(){return Pe(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+`//`+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}get hasAnyTopics(){return this.topicMap.topics.length>0||this.pending.size>0||this.cached.length>0||this.subscriptions.size>0}hasSubscription(e,t){let n=!1;try{n=this.getSubscription(e).topic===t}catch{}return n}reset(){this.cached=[],this.initialized=!0}onDisable(){this.values.length>0&&(this.cached=this.values),this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){let n=this.topicMap.get(e);await Promise.all(n.map(async n=>await this.unsubscribeById(e,n,t)))}async unsubscribeById(e,t,n){this.logger.debug(`Unsubscribing Topic`),this.logger.trace({type:`method`,method:`unsubscribe`,params:{topic:e,id:t,opts:n}});try{let r=$s(n);await this.restartToComplete({topic:e,id:t,relay:r}),await this.rpcUnsubscribe(e,t,r);let i=W(`USER_DISCONNECTED`,`${this.name}, ${e}`);await this.onUnsubscribe(e,t,i),this.logger.debug(`Successfully Unsubscribed Topic`),this.logger.trace({type:`method`,method:`unsubscribe`,params:{topic:e,id:t,opts:n}})}catch(e){throw this.logger.debug(`Failed to Unsubscribe Topic`),this.logger.error(e),e}}async rpcSubscribe(e,t,n){(!n||n?.transportType===G.relay)&&await this.restartToComplete({topic:e,id:e,relay:t});let r={method:ec(t.protocol).subscribe,params:{topic:e}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:r});let i=n?.internal?.throwOnFailedPublish;try{let t=await this.getSubscriptionId(e);if(n?.transportType===G.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(r).catch(e=>this.logger.warn(e))},(0,z.toMiliseconds)(z.ONE_SECOND)),t;let a=await In(new Promise(async t=>{let n=r=>{r.topic===e&&(this.events.removeListener(ou.created,n),t(r.id))};this.events.on(ou.created,n);try{let i=await In(new Promise((e,t)=>{this.relayer.request(r).catch(e=>{this.logger.warn(e,e?.message),t(e)}).then(e)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(ou.created,n),t(i)}catch{}}),this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!a&&i)throw Error(`Subscribing to ${e} failed, please try again`);return a?t:null}catch(e){if(this.logger.debug(`Outgoing Relay Subscribe Payload stalled`),this.relayer.events.emit(tu.connection_stalled),i)throw e}return null}async rpcBatchSubscribe(e){if(!e.length)return;let t=e[0].relay,n={method:ec(t.protocol).batchSubscribe,params:{topics:e.map(e=>e.topic)}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:n});try{await await In(new Promise(e=>{this.relayer.request(n).catch(e=>this.logger.warn(e)).then(e)}),this.subscribeTimeout,`rpcBatchSubscribe failed, please try again`)}catch{this.relayer.events.emit(tu.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;let t=e[0].relay,n={method:ec(t.protocol).batchFetchMessages,params:{topics:e.map(e=>e.topic)}};this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:n});let r;try{r=await await In(new Promise((e,t)=>{this.relayer.request(n).catch(e=>{this.logger.warn(e),t(e)}).then(e)}),this.subscribeTimeout,`rpcBatchFetchMessages failed, please try again`)}catch{this.relayer.events.emit(tu.connection_stalled)}return r}rpcUnsubscribe(e,t,n){let r={method:ec(n.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug(`Outgoing Relay Payload`),this.logger.trace({type:`payload`,direction:`outgoing`,request:r}),this.relayer.request(r)}onSubscribe(e,t){this.setSubscription(e,op(ap({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(e=>{this.setSubscription(e.id,ap({},e)),this.pending.delete(e.topic)})}async onUnsubscribe(e,t,n){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,n),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,t){this.logger.debug(`Setting subscription`),this.logger.trace({type:`method`,method:`setSubscription`,id:e,subscription:t}),this.addSubscription(e,t)}addSubscription(e,t){this.subscriptions.set(e,ap({},t)),this.topicMap.set(t.topic,e),this.events.emit(ou.created,t)}getSubscription(e){this.logger.debug(`Getting subscription`),this.logger.trace({type:`method`,method:`getSubscription`,id:e});let t=this.subscriptions.get(e);if(!t){let{message:t}=U(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}deleteSubscription(e,t){this.logger.debug(`Deleting subscription`),this.logger.trace({type:`method`,method:`deleteSubscription`,id:e,reason:t});let n=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(n.topic,e),this.events.emit(ou.deleted,op(ap({},n),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(ou.sync)}async onRestart(){if(this.cached.length){let e=[...this.cached],t=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let n=0;n<t;n++){let t=e.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(t)}}this.events.emit(ou.resubscribed)}async restore(){try{let e=await this.getRelayerSubscriptions();if(typeof e>`u`||!e.length)return;if(this.subscriptions.size){let{message:e}=U(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:`method`,method:`restore`,subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){e.length&&(await this.rpcBatchSubscribe(e),this.onBatchSubscribe(await Promise.all(e.map(async e=>op(ap({},e),{id:await this.getSubscriptionId(e.topic)})))))}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);let t=await this.rpcBatchFetchMessages(e);t&&t.messages&&(await tr((0,z.toMiliseconds)(z.ONE_SECOND)),await this.relayer.handleBatchMessageEvents(t.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}async restartToComplete(e){!this.relayer.connected&&!this.relayer.connecting&&(this.cached.push(e),await this.relayer.transportOpen())}async getClientId(){return this.clientId||=await this.relayer.core.crypto.getClientId(),this.clientId}async getSubscriptionId(e){return Is(e+await this.getClientId())}},cp=Object.defineProperty,lp=Object.getOwnPropertySymbols,up=Object.prototype.hasOwnProperty,dp=Object.prototype.propertyIsEnumerable,fp=(e,t,n)=>t in e?cp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,pp=(e,t)=>{for(var n in t||={})up.call(t,n)&&fp(e,n,t[n]);if(lp)for(var n of lp(t))dp.call(t,n)&&fp(e,n,t[n]);return e},q=(e,t,n)=>fp(e,typeof t==`symbol`?t:t+``,n),mp=class extends jl{constructor(e){super(e),q(this,`protocol`,`wc`),q(this,`version`,2),q(this,`core`),q(this,`logger`),q(this,`events`,new fe.EventEmitter),q(this,`provider`),q(this,`messages`),q(this,`subscriber`),q(this,`publisher`),q(this,`name`,eu),q(this,`transportExplicitlyClosed`,!1),q(this,`initialized`,!1),q(this,`connectionAttemptInProgress`,!1),q(this,`relayUrl`),q(this,`projectId`),q(this,`packageName`),q(this,`bundleId`),q(this,`hasExperiencedNetworkDisruption`,!1),q(this,`pingTimeout`),q(this,`heartBeatTimeout`,(0,z.toMiliseconds)(z.THIRTY_SECONDS+z.FIVE_SECONDS)),q(this,`reconnectTimeout`),q(this,`connectPromise`),q(this,`reconnectInProgress`,!1),q(this,`requestsInFlight`,[]),q(this,`connectTimeout`,(0,z.toMiliseconds)(z.ONE_SECOND*15)),q(this,`request`,async e=>{this.logger.debug(`Publishing Request Payload`);let t=e.id||x().toString();await this.toEstablishConnection();try{this.logger.trace({id:t,method:e.method,topic:e.params?.topic},`relayer.request - publishing...`);let n=`${t}:${e.params?.tag||``}`;this.requestsInFlight.push(n);let r=await this.provider.request(e);return this.requestsInFlight=this.requestsInFlight.filter(e=>e!==n),r}catch(e){throw this.logger.debug(`Failed to Publish Request: ${t}`),e}}),q(this,`resetPingTimeout`,()=>{vn()&&(clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{var e,t;try{this.logger.debug({},`pingTimeout: Connection stalled, terminating...`),(t=(e=this.provider?.connection?.socket)?.terminate)==null||t.call(e)}catch(e){this.logger.warn(e,e?.message)}},this.heartBeatTimeout))}),q(this,`onPayloadHandler`,e=>{this.onProviderPayload(e),this.resetPingTimeout()}),q(this,`onConnectHandler`,()=>{this.logger.warn({},`Relayer connected 🛜`),this.startPingTimeout(),this.events.emit(tu.connect)}),q(this,`onDisconnectHandler`,()=>{this.logger.warn({},`Relayer disconnected 🛑`),this.requestsInFlight=[],this.onProviderDisconnect()}),q(this,`onProviderErrorHandler`,e=>{this.logger.fatal(`Fatal socket error: ${e.message}`),this.events.emit(tu.error,e),this.logger.fatal(`Fatal socket error received, closing transport`),this.transportClose()}),q(this,`registerProviderListeners`,()=>{this.provider.on(nu.payload,this.onPayloadHandler),this.provider.on(nu.connect,this.onConnectHandler),this.provider.on(nu.disconnect,this.onDisconnectHandler),this.provider.on(nu.error,this.onProviderErrorHandler)}),this.core=e.core,this.logger=typeof e.logger<`u`&&typeof e.logger!=`string`?Ie(e.logger,this.name):(0,pe.default)(je({level:e.logger||`error`})),this.messages=new If(this.logger,e.core),this.subscriber=new sp(this,this.logger),this.publisher=new qf(this,this.logger),this.relayUrl=e?.relayUrl||`wss://relay.walletconnect.org`,this.projectId=e.projectId,bn()?this.packageName=wn():xn()&&(this.bundleId=wn()),this.provider={}}async init(){if(this.logger.trace(`Initialized`),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.subscriber.hasAnyTopics)try{await this.transportOpen()}catch(e){this.logger.warn(e,e?.message)}}get context(){return Pe(this.logger)}get connected(){return this.provider?.connection?.socket?.readyState===1||!1}get connecting(){return this.provider?.connection?.socket?.readyState===0||this.connectPromise!==void 0||!1}async publish(e,t,n){this.isInitialized(),await this.publisher.publish(e,t,n),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now(),transportType:G.relay},iu.outbound)}async subscribe(e,t){this.isInitialized(),(!(t!=null&&t.transportType)||t?.transportType===`relay`)&&await this.toEstablishConnection();let n=typeof t?.internal?.throwOnFailedPublish>`u`||t?.internal?.throwOnFailedPublish,r=this.subscriber.topicMap.get(e)?.[0]||``,i,a=t=>{t.topic===e&&(this.subscriber.off(ou.created,a),i())};return await Promise.all([new Promise(e=>{i=e,this.subscriber.on(ou.created,a)}),new Promise(async(i,a)=>{r=await this.subscriber.subscribe(e,pp({internal:{throwOnFailedPublish:n}},t)).catch(e=>{n&&a(e)})||r,i()})]),r}async unsubscribe(e,t){this.isInitialized(),await this.subscriber.unsubscribe(e,t)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async transportDisconnect(){this.provider.disconnect&&(this.hasExperiencedNetworkDisruption||this.connected)?await In(this.provider.disconnect(),2e3,`provider.disconnect()`).catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(e){if(!this.subscriber.hasAnyTopics){this.logger.warn(`Starting WS connection skipped because the client has no topics to work with.`);return}if(this.connectPromise?(this.logger.debug({},`Waiting for existing connection attempt to resolve...`),await this.connectPromise,this.logger.debug({},`Existing connection attempt resolved`)):(this.connectPromise=new Promise(async(t,n)=>{await this.connect(e).then(t).catch(n).finally(()=>{this.connectPromise=void 0})}),await this.connectPromise),!this.connected)throw Error(`Couldn't establish socket connection to the relay server: ${this.relayUrl}`)}async restartTransport(e){this.logger.debug({},`Restarting transport...`),!this.connectionAttemptInProgress&&(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!await dl())throw Error(`No internet connection detected. Please restart your network and try again.`)}async handleBatchMessageEvents(e){if(e?.length===0){this.logger.trace(`Batch message events is empty. Ignoring...`);return}let t=e.sort((e,t)=>e.publishedAt-t.publishedAt);this.logger.debug(`Batch of ${t.length} message events sorted`);for(let e of t)try{await this.onMessageEvent(e)}catch(e){this.logger.warn(e,`Error while processing batch message event: `+e?.message)}this.logger.trace(`Batch of ${t.length} message events processed`)}async onLinkMessageEvent(e,t){let{topic:n}=e;if(!t.sessionExists){let e={topic:n,expiry:Vn(z.FIVE_MINUTES),relay:{protocol:`irn`},active:!1};await this.core.pairing.pairings.set(n,e)}this.events.emit(tu.message,e),await this.recordMessageEvent(e,iu.inbound)}async connect(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;let t=1;for(;t<6;){try{if(this.transportExplicitlyClosed)break;this.logger.debug({},`Connecting to ${this.relayUrl}, attempt: ${t}...`),await this.createProvider(),await new Promise(async(e,t)=>{let n=()=>{t(Error(`Connection interrupted while trying to subscribe`))};this.provider.once(nu.disconnect,n),await In(new Promise((e,t)=>{this.provider.connect().then(e).catch(t)}),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).catch(e=>{t(e)}).finally(()=>{this.provider.off(nu.disconnect,n),clearTimeout(this.reconnectTimeout)}),await new Promise(async(e,t)=>{let n=()=>{t(Error(`Connection interrupted while trying to subscribe`))};this.provider.once(nu.disconnect,n),await this.subscriber.start().then(e).catch(t).finally(()=>{this.provider.off(nu.disconnect,n)})}),this.hasExperiencedNetworkDisruption=!1,e()})}catch(e){await this.subscriber.stop();let t=e;this.logger.warn({},t.message),this.hasExperiencedNetworkDisruption=!0}finally{this.connectionAttemptInProgress=!1}if(this.connected){this.logger.debug({},`Connected to ${this.relayUrl} successfully on attempt: ${t}`);break}await new Promise(e=>setTimeout(e,(0,z.toMiliseconds)(t*1))),t++}}startPingTimeout(){var e,t;if(vn())try{(e=this.provider?.connection)!=null&&e.socket&&((t=this.provider?.connection?.socket)==null||t.on(`ping`,()=>{this.resetPingTimeout()})),this.resetPingTimeout()}catch(e){this.logger.warn(e,e?.message)}}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();let e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new k(new M(jn({sdkVersion:ru,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId,packageName:this.packageName}))),this.registerProviderListeners()}async recordMessageEvent(e,t){let{topic:n,message:r}=e;await this.messages.set(n,r,t)}async shouldIgnoreMessageEvent(e){let{topic:t,message:n}=e;if(!n||n.length===0)return this.logger.warn(`Ignoring invalid/empty message: ${n}`),!0;if(!await this.subscriber.isKnownTopic(t))return this.logger.warn(`Ignoring message for unknown topic ${t}`),!0;let r=this.messages.has(t,n);return r&&this.logger.warn(`Ignoring duplicate message: ${n}`),r}async onProviderPayload(e){if(this.logger.debug(`Incoming Relay Payload`),this.logger.trace({type:`payload`,direction:`incoming`,payload:e}),T(e)){if(!e.method.endsWith(`_subscription`))return;let t=e.params,{topic:n,message:r,publishedAt:i,attestation:a}=t.data,o={topic:n,message:r,publishedAt:i,transportType:G.relay,attestation:a};this.logger.debug(`Emitting Relayer Payload`),this.logger.trace(pp({type:`event`,event:t.id},o)),this.events.emit(t.id,o),await this.acknowledgePayload(e),await this.onMessageEvent(o)}else v(e)&&this.events.emit(tu.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,iu.inbound),this.events.emit(tu.message,e))}async acknowledgePayload(e){let t=N(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(nu.payload,this.onPayloadHandler),this.provider.off(nu.connect,this.onConnectHandler),this.provider.off(nu.disconnect,this.onDisconnectHandler),this.provider.off(nu.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await dl();hl(async t=>{e!==t&&(e=t,t?await this.transportOpen().catch(e=>this.logger.error(e,e?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}),this.core.heartbeat.on(f.pulse,async()=>{if(!this.transportExplicitlyClosed&&!this.connected&&vl())try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(e){this.logger.warn(e,e?.message)}})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit(tu.disconnect),this.connectionAttemptInProgress=!1,!this.reconnectInProgress&&(this.reconnectInProgress=!0,await this.subscriber.stop(),this.subscriber.hasAnyTopics&&(this.transportExplicitlyClosed||(this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(e=>this.logger.error(e,e?.message)),this.reconnectTimeout=void 0,this.reconnectInProgress=!1},(0,z.toMiliseconds)(.1)))))}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}async toEstablishConnection(){if(await this.confirmOnlineStateOrThrow(),!this.connected){if(this.connectPromise){await this.connectPromise;return}await this.connect()}}};function hp(){}function gp(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)===`[object Object]`:!1}function _p(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function vp(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var yp=`[object RegExp]`,bp=`[object String]`,xp=`[object Number]`,Sp=`[object Boolean]`,Cp=`[object Arguments]`,wp=`[object Symbol]`,Tp=`[object Date]`,Ep=`[object Map]`,Dp=`[object Set]`,Op=`[object Array]`,kp=`[object Function]`,Ap=`[object ArrayBuffer]`,jp=`[object Object]`,Mp=`[object Error]`,Np=`[object DataView]`,Pp=`[object Uint8Array]`,Fp=`[object Uint8ClampedArray]`,Ip=`[object Uint16Array]`,Lp=`[object Uint32Array]`,Rp=`[object BigUint64Array]`,zp=`[object Int8Array]`,Bp=`[object Int16Array]`,Vp=`[object Int32Array]`,Hp=`[object BigInt64Array]`,Up=`[object Float32Array]`,Wp=`[object Float64Array]`;function Gp(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function Kp(e,t,n){return qp(e,t,void 0,void 0,void 0,void 0,n)}function qp(e,t,n,r,i,a,o){let s=o(e,t,n,r,i,a);if(s!==void 0)return s;if(typeof e==typeof t)switch(typeof e){case`bigint`:case`string`:case`boolean`:case`symbol`:case`undefined`:return e===t;case`number`:return e===t||Object.is(e,t);case`function`:return e===t;case`object`:return Jp(e,t,a,o)}return Jp(e,t,a,o)}function Jp(e,t,n,r){if(Object.is(e,t))return!0;let i=vp(e),a=vp(t);if(i===Cp&&(i=jp),a===Cp&&(a=jp),i!==a)return!1;switch(i){case bp:return e.toString()===t.toString();case xp:return Gp(e.valueOf(),t.valueOf());case Sp:case Tp:case wp:return Object.is(e.valueOf(),t.valueOf());case yp:return e.source===t.source&&e.flags===t.flags;case kp:return e===t}n??=new Map;let o=n.get(e),s=n.get(t);if(o!=null&&s!=null)return o===t;n.set(e,t),n.set(t,e);try{switch(i){case Ep:if(e.size!==t.size)return!1;for(let[i,a]of e.entries())if(!t.has(i)||!qp(a,t.get(i),i,e,t,n,r))return!1;return!0;case Dp:{if(e.size!==t.size)return!1;let i=Array.from(e.values()),a=Array.from(t.values());for(let o=0;o<i.length;o++){let s=i[o],c=a.findIndex(i=>qp(s,i,void 0,e,t,n,r));if(c===-1)return!1;a.splice(c,1)}return!0}case Op:case Pp:case Fp:case Ip:case Lp:case Rp:case zp:case Bp:case Vp:case Hp:case Up:case Wp:if(typeof c<`u`&&c.isBuffer(e)!==c.isBuffer(t)||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!qp(e[i],t[i],i,e,t,n,r))return!1;return!0;case Ap:return e.byteLength===t.byteLength&&Jp(new Uint8Array(e),new Uint8Array(t),n,r);case Np:return e.byteLength!==t.byteLength||e.byteOffset!==t.byteOffset?!1:Jp(new Uint8Array(e),new Uint8Array(t),n,r);case Mp:return e.name===t.name&&e.message===t.message;case jp:{if(!(Jp(e.constructor,t.constructor,n,r)||gp(e)&&gp(t)))return!1;let i=[...Object.keys(e),..._p(e)],a=[...Object.keys(t),..._p(t)];if(i.length!==a.length)return!1;for(let a=0;a<i.length;a++){let o=i[a],s=e[o];if(!Object.hasOwn(t,o))return!1;let c=t[o];if(!qp(s,c,o,e,t,n,r))return!1}return!0}default:return!1}}finally{n.delete(e),n.delete(t)}}function Yp(e,t){return Kp(e,t,hp)}var Xp=Object.defineProperty,Zp=Object.getOwnPropertySymbols,Qp=Object.prototype.hasOwnProperty,$p=Object.prototype.propertyIsEnumerable,em=(e,t,n)=>t in e?Xp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tm=(e,t)=>{for(var n in t||={})Qp.call(t,n)&&em(e,n,t[n]);if(Zp)for(var n of Zp(t))$p.call(t,n)&&em(e,n,t[n]);return e},nm=(e,t,n)=>em(e,typeof t==`symbol`?t:t+``,n),rm=class extends Ml{constructor(e,t,n,r=Wl,i=void 0){super(e,t,n,r),this.core=e,this.logger=t,this.name=n,nm(this,`map`,new Map),nm(this,`version`,`0.3`),nm(this,`cached`,[]),nm(this,`initialized`,!1),nm(this,`getKey`),nm(this,`storagePrefix`,Wl),nm(this,`recentlyDeleted`,[]),nm(this,`recentlyDeletedLimit`,200),nm(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>{this.getKey&&e!==null&&!Ac(e)?this.map.set(this.getKey(e),e):Lc(e)?this.map.set(e.id,e):Rc(e)&&this.map.set(e.topic,e)}),this.cached=[],!0)}),nm(this,`set`,async(e,t)=>{this.isInitialized(),this.map.has(e)?await this.update(e,t):(this.logger.debug(`Setting value`),this.logger.trace({type:`method`,method:`set`,key:e,value:t}),this.map.set(e,t),await this.persist())}),nm(this,`get`,e=>(this.isInitialized(),this.logger.debug(`Getting value`),this.logger.trace({type:`method`,method:`get`,key:e}),this.getData(e))),nm(this,`getAll`,e=>(this.isInitialized(),e?this.values.filter(t=>Object.keys(e).every(n=>Yp(t[n],e[n]))):this.values)),nm(this,`update`,async(e,t)=>{this.isInitialized(),this.logger.debug(`Updating value`),this.logger.trace({type:`method`,method:`update`,key:e,update:t});let n=tm(tm({},this.getData(e)),t);this.map.set(e,n),await this.persist()}),nm(this,`delete`,async(e,t)=>{this.isInitialized(),this.map.has(e)&&(this.logger.debug(`Deleting value`),this.logger.trace({type:`method`,method:`delete`,key:e,reason:t}),this.map.delete(e),this.addToRecentlyDeleted(e),await this.persist())}),this.logger=Ie(t,this.name),this.storagePrefix=r,this.getKey=i}get context(){return Pe(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){let t=this.map.get(e);if(!t){if(this.recentlyDeleted.includes(e)){let{message:t}=U(`MISSING_OR_INVALID`,`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(t),Error(t)}let{message:t}=U(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw this.logger.error(t),Error(t)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{let e=await this.getDataStore();if(typeof e>`u`||!e.length)return;if(this.map.size){let{message:e}=U(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:`method`,method:`restore`,value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}},im=Object.defineProperty,am=(e,t,n)=>t in e?im(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,J=(e,t,n)=>am(e,typeof t==`symbol`?t:t+``,n),om=class{constructor(e,t){this.core=e,this.logger=t,J(this,`name`,cu),J(this,`version`,`0.3`),J(this,`events`,new fe.default),J(this,`pairings`),J(this,`initialized`,!1),J(this,`storagePrefix`,Wl),J(this,`ignoredPayloadTypes`,[1]),J(this,`registeredMethods`,[]),J(this,`init`,async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace(`Initialized`))}),J(this,`register`,({methods:e})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...e])]}),J(this,`create`,async e=>{this.isInitialized();let t=Ns(),n=await this.core.crypto.setSymKey(t),r=Vn(z.FIVE_MINUTES),i={protocol:`irn`},a={topic:n,expiry:r,relay:i,active:!1,methods:e?.methods},o=ac({protocol:this.core.protocol,version:this.core.version,topic:n,symKey:t,relay:i,expiryTimestamp:r,methods:e?.methods});return this.events.emit(uu.create,a),this.core.expirer.set(n,r),await this.pairings.set(n,a),await this.core.relayer.subscribe(n,{transportType:e?.transportType}),{topic:n,uri:o}}),J(this,`pair`,async e=>{this.isInitialized();let t=this.core.eventClient.createEvent({properties:{topic:e?.uri,trace:[Su.pairing_started]}});this.isValidPair(e,t);let{topic:n,symKey:r,relay:i,expiryTimestamp:a,methods:o}=nc(e.uri);t.props.properties.topic=n,t.addTrace(Su.pairing_uri_validation_success),t.addTrace(Su.pairing_uri_not_expired);let s;if(this.pairings.keys.includes(n)){if(s=this.pairings.get(n),t.addTrace(Su.existing_pairing),s.active)throw t.setError(Cu.active_pairing_already_exists),Error(`Pairing already exists: ${n}. Please try again with a new connection URI.`);t.addTrace(Su.pairing_not_expired)}let c=a||Vn(z.FIVE_MINUTES),l={topic:n,relay:i,expiry:c,active:!1,methods:o};this.core.expirer.set(n,c),await this.pairings.set(n,l),t.addTrace(Su.store_new_pairing),e.activatePairing&&await this.activate({topic:n}),this.events.emit(uu.create,l),t.addTrace(Su.emit_inactive_pairing),this.core.crypto.keychain.has(n)||await this.core.crypto.setSymKey(r,n),t.addTrace(Su.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{t.setError(Cu.no_internet_connection)}try{await this.core.relayer.subscribe(n,{relay:i})}catch(e){throw t.setError(Cu.subscribe_pairing_topic_failure),e}return t.addTrace(Su.subscribe_pairing_topic_success),l}),J(this,`activate`,async({topic:e})=>{this.isInitialized();let t=Vn(z.FIVE_MINUTES);this.core.expirer.set(e,t),await this.pairings.update(e,{active:!0,expiry:t})}),J(this,`ping`,async e=>{this.isInitialized(),await this.isValidPing(e),this.logger.warn(`ping() is deprecated and will be removed in the next major release.`);let{topic:t}=e;if(this.pairings.keys.includes(t)){let e=await this.sendRequest(t,`wc_pairingPing`,{}),{done:n,resolve:r,reject:i}=Fn();this.events.once(B(`pairing_ping`,e),({error:e})=>{e?i(e):r()}),await n()}}),J(this,`updateExpiry`,async({topic:e,expiry:t})=>{this.isInitialized(),await this.pairings.update(e,{expiry:t})}),J(this,`updateMetadata`,async({topic:e,metadata:t})=>{this.isInitialized(),await this.pairings.update(e,{peerMetadata:t})}),J(this,`getPairings`,()=>(this.isInitialized(),this.pairings.values)),J(this,`disconnect`,async e=>{this.isInitialized(),await this.isValidDisconnect(e);let{topic:t}=e;this.pairings.keys.includes(t)&&(await this.sendRequest(t,`wc_pairingDelete`,W(`USER_DISCONNECTED`)),await this.deletePairing(t))}),J(this,`formatUriFromPairing`,e=>{this.isInitialized();let{topic:t,relay:n,expiry:r,methods:i}=e,a=this.core.crypto.keychain.get(t);return ac({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:a,relay:n,expiryTimestamp:r,methods:i})}),J(this,`sendRequest`,async(e,t,n)=>{let r=D(t,n),i=await this.core.crypto.encode(e,r),a=lu[t].req;return this.core.history.set(e,r),this.core.relayer.publish(e,i,a),r.id}),J(this,`sendResult`,async(e,t,n)=>{let r=N(e,n),i=await this.core.crypto.encode(t,r),a=lu[(await this.core.history.get(t,e)).request.method].res;await this.core.relayer.publish(t,i,a),await this.core.history.resolve(r)}),J(this,`sendError`,async(e,t,n)=>{let r=b(e,n),i=await this.core.crypto.encode(t,r),a=(await this.core.history.get(t,e)).request.method,o=lu[a]?lu[a].res:lu.unregistered_method.res;await this.core.relayer.publish(t,i,o),await this.core.history.resolve(r)}),J(this,`deletePairing`,async(e,t)=>{await this.core.relayer.unsubscribe(e),await Promise.all([this.pairings.delete(e,W(`USER_DISCONNECTED`)),this.core.crypto.deleteSymKey(e),t?Promise.resolve():this.core.expirer.del(e)])}),J(this,`cleanup`,async()=>{let e=this.pairings.getAll().filter(e=>Hn(e.expiry));await Promise.all(e.map(e=>this.deletePairing(e.topic)))}),J(this,`onRelayEventRequest`,async e=>{let{topic:t,payload:n}=e;switch(n.method){case`wc_pairingPing`:return await this.onPairingPingRequest(t,n);case`wc_pairingDelete`:return await this.onPairingDeleteRequest(t,n);default:return await this.onUnknownRpcMethodRequest(t,n)}}),J(this,`onRelayEventResponse`,async e=>{let{topic:t,payload:n}=e,r=(await this.core.history.get(t,n.id)).request.method;switch(r){case`wc_pairingPing`:return this.onPairingPingResponse(t,n);default:return this.onUnknownRpcMethodResponse(r)}}),J(this,`onPairingPingRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult(n,e,!0),this.events.emit(uu.ping,{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),J(this,`onPairingPingResponse`,(e,t)=>{let{id:n}=t;setTimeout(()=>{A(t)?this.events.emit(B(`pairing_ping`,n),{}):j(t)&&this.events.emit(B(`pairing_ping`,n),{error:t.error})},500)}),J(this,`onPairingDeleteRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidDisconnect({topic:e}),await this.deletePairing(e),this.events.emit(uu.delete,{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),J(this,`onUnknownRpcMethodRequest`,async(e,t)=>{let{id:n,method:r}=t;try{if(this.registeredMethods.includes(r))return;let t=W(`WC_METHOD_UNSUPPORTED`,r);await this.sendError(n,e,t),this.logger.error(t)}catch(t){await this.sendError(n,e,t),this.logger.error(t)}}),J(this,`onUnknownRpcMethodResponse`,e=>{this.registeredMethods.includes(e)||this.logger.error(W(`WC_METHOD_UNSUPPORTED`,e))}),J(this,`isValidPair`,(e,t)=>{var n;if(!Qc(e)){let{message:n}=U(`MISSING_OR_INVALID`,`pair() params: ${e}`);throw t.setError(Cu.malformed_pairing_uri),Error(n)}if(!Ic(e.uri)){let{message:n}=U(`MISSING_OR_INVALID`,`pair() uri: ${e.uri}`);throw t.setError(Cu.malformed_pairing_uri),Error(n)}let r=nc(e?.uri);if(!((n=r?.relay)!=null&&n.protocol)){let{message:e}=U(`MISSING_OR_INVALID`,`pair() uri#relay-protocol`);throw t.setError(Cu.malformed_pairing_uri),Error(e)}if(!(r!=null&&r.symKey)){let{message:e}=U(`MISSING_OR_INVALID`,`pair() uri#symKey`);throw t.setError(Cu.malformed_pairing_uri),Error(e)}if(r!=null&&r.expiryTimestamp&&(0,z.toMiliseconds)(r?.expiryTimestamp)<Date.now()){t.setError(Cu.pairing_expired);let{message:e}=U(`EXPIRED`,`pair() URI has expired. Please try again with a new connection URI.`);throw Error(e)}}),J(this,`isValidPing`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),J(this,`isValidDisconnect`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidPairingTopic(t)}),J(this,`isValidPairingTopic`,async e=>{if(!jc(e,!1)){let{message:t}=U(`MISSING_OR_INVALID`,`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.pairings.keys.includes(e)){let{message:t}=U(`NO_MATCHING_KEY`,`pairing topic doesn't exist: ${e}`);throw Error(t)}if(Hn(this.pairings.get(e).expiry)){await this.deletePairing(e);let{message:t}=U(`EXPIRED`,`pairing topic: ${e}`);throw Error(t)}}),this.core=e,this.logger=Ie(t,this.name),this.pairings=new rm(this.core,this.logger,this.name,this.storagePrefix)}get context(){return Pe(this.logger)}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}registerRelayerEvents(){this.core.relayer.on(tu.message,async e=>{let{topic:t,message:n,transportType:r}=e;if(this.pairings.keys.includes(t)&&r!==G.link_mode&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(n)))try{let e=await this.core.crypto.decode(t,n);T(e)?(this.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e})):v(e)&&(await this.core.history.resolve(e),await this.onRelayEventResponse({topic:t,payload:e}),this.core.history.delete(t,e.id)),await this.core.relayer.messages.ack(t,n)}catch(e){this.logger.error(e)}})}registerExpirerEvents(){this.core.expirer.on(mu.expired,async e=>{let{topic:t}=Bn(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(uu.expire,{topic:t}))})}},sm=Object.defineProperty,cm=(e,t,n)=>t in e?sm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,lm=(e,t,n)=>cm(e,typeof t==`symbol`?t:t+``,n),um=class extends Ol{constructor(e,t){super(e,t),this.core=e,this.logger=t,lm(this,`records`,new Map),lm(this,`events`,new fe.EventEmitter),lm(this,`name`,fu),lm(this,`version`,`0.3`),lm(this,`cached`,[]),lm(this,`initialized`,!1),lm(this,`storagePrefix`,Wl),lm(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>this.records.set(e.id,e)),this.cached=[],this.registerEventListeners(),!0)}),lm(this,`set`,(e,t,n)=>{if(this.isInitialized(),this.logger.debug(`Setting JSON-RPC request history record`),this.logger.trace({type:`method`,method:`set`,topic:e,request:t,chainId:n}),this.records.has(t.id))return;let r={id:t.id,topic:e,request:{method:t.method,params:t.params||null},chainId:n,expiry:Vn(z.THIRTY_DAYS)};this.records.set(r.id,r),this.persist(),this.events.emit(du.created,r)}),lm(this,`resolve`,async e=>{if(this.isInitialized(),this.logger.debug(`Updating JSON-RPC response history record`),this.logger.trace({type:`method`,method:`update`,response:e}),!this.records.has(e.id))return;let t=await this.getRecord(e.id);typeof t.response>`u`&&(t.response=j(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.persist(),this.events.emit(du.updated,t))}),lm(this,`get`,async(e,t)=>(this.isInitialized(),this.logger.debug(`Getting record`),this.logger.trace({type:`method`,method:`get`,topic:e,id:t}),await this.getRecord(t))),lm(this,`delete`,(e,t)=>{this.isInitialized(),this.logger.debug(`Deleting record`),this.logger.trace({type:`method`,method:`delete`,id:t}),this.values.forEach(n=>{if(n.topic===e){if(typeof t<`u`&&n.id!==t)return;this.records.delete(n.id),this.events.emit(du.deleted,n)}}),this.persist()}),lm(this,`exists`,async(e,t)=>(this.isInitialized(),this.records.has(t)?(await this.getRecord(t)).topic===e:!1)),lm(this,`on`,(e,t)=>{this.events.on(e,t)}),lm(this,`once`,(e,t)=>{this.events.once(e,t)}),lm(this,`off`,(e,t)=>{this.events.off(e,t)}),lm(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.logger=Ie(t,this.name)}get context(){return Pe(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){let e=[];return this.values.forEach(t=>{if(typeof t.response<`u`)return;let n={topic:t.topic,request:D(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(n)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();let t=this.records.get(e);if(!t){let{message:t}=U(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(du.sync)}async restore(){try{let e=await this.getJsonRpcRecords();if(typeof e>`u`||!e.length)return;if(this.records.size){let{message:e}=U(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:`method`,method:`restore`,records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(du.created,e=>{let t=du.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.events.on(du.updated,e=>{let t=du.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.events.on(du.deleted,e=>{let t=du.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,record:e})}),this.core.heartbeat.on(f.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{(0,z.toMiliseconds)(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(du.deleted,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}},dm=Object.defineProperty,fm=(e,t,n)=>t in e?dm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,pm=(e,t,n)=>fm(e,typeof t==`symbol`?t:t+``,n),mm=class extends Pl{constructor(e,t){super(e,t),this.core=e,this.logger=t,pm(this,`expirations`,new Map),pm(this,`events`,new fe.EventEmitter),pm(this,`name`,pu),pm(this,`version`,`0.3`),pm(this,`cached`,[]),pm(this,`initialized`,!1),pm(this,`storagePrefix`,Wl),pm(this,`init`,async()=>{this.initialized||=(this.logger.trace(`Initialized`),await this.restore(),this.cached.forEach(e=>this.expirations.set(e.target,e)),this.cached=[],this.registerEventListeners(),!0)}),pm(this,`has`,e=>{try{let t=this.formatTarget(e);return typeof this.getExpiration(t)<`u`}catch{return!1}}),pm(this,`set`,(e,t)=>{this.isInitialized();let n=this.formatTarget(e),r={target:n,expiry:t};this.expirations.set(n,r),this.checkExpiry(n,r),this.events.emit(mu.created,{target:n,expiration:r})}),pm(this,`get`,e=>{this.isInitialized();let t=this.formatTarget(e);return this.getExpiration(t)}),pm(this,`del`,e=>{if(this.isInitialized(),this.has(e)){let t=this.formatTarget(e),n=this.getExpiration(t);this.expirations.delete(t),this.events.emit(mu.deleted,{target:t,expiration:n})}}),pm(this,`on`,(e,t)=>{this.events.on(e,t)}),pm(this,`once`,(e,t)=>{this.events.once(e,t)}),pm(this,`off`,(e,t)=>{this.events.off(e,t)}),pm(this,`removeListener`,(e,t)=>{this.events.removeListener(e,t)}),this.logger=Ie(t,this.name)}get context(){return Pe(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//`+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if(typeof e==`string`)return Rn(e);if(typeof e==`number`)return zn(e);let{message:t}=U(`UNKNOWN_TYPE`,`Target type: ${typeof e}`);throw Error(t)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(mu.sync)}async restore(){try{let e=await this.getExpirations();if(typeof e>`u`||!e.length)return;if(this.expirations.size){let{message:e}=U(`RESTORE_WILL_OVERRIDE`,this.name);throw this.logger.error(e),Error(e)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:`method`,method:`restore`,expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){let t=this.expirations.get(e);if(!t){let{message:t}=U(`NO_MATCHING_KEY`,`${this.name}: ${e}`);throw this.logger.warn(t),Error(t)}return t}checkExpiry(e,t){let{expiry:n}=t;(0,z.toMiliseconds)(n)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(mu.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(f.pulse,()=>this.checkExpirations()),this.events.on(mu.created,e=>{let t=mu.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()}),this.events.on(mu.expired,e=>{let t=mu.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()}),this.events.on(mu.deleted,e=>{let t=mu.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:`event`,event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}},hm=Object.defineProperty,gm=(e,t,n)=>t in e?hm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_m=(e,t,n)=>gm(e,typeof t==`symbol`?t:t+``,n),vm=class extends Fl{constructor(e,t,n){super(e,t,n),this.core=e,this.logger=t,this.store=n,_m(this,`name`,hu),_m(this,`abortController`),_m(this,`isDevEnv`),_m(this,`verifyUrlV3`,vu),_m(this,`storagePrefix`,Wl),_m(this,`version`,2),_m(this,`publicKey`),_m(this,`fetchPromise`),_m(this,`init`,async()=>{this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&(0,z.toMiliseconds)(this.publicKey?.expiresAt)<Date.now()&&(this.logger.debug(`verify v2 public key expired`),await this.removePublicKey()))}),_m(this,`register`,async e=>{if(!Sn()||this.isDevEnv)return;let t=window.location.origin,{id:n,decryptedId:r}=e,i=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${t}&id=${n}&decryptedId=${r}`;try{let e=(0,qt.getDocument)(),t=this.startAbortTimer(z.ONE_SECOND*5),r=await new Promise((r,a)=>{let o=()=>{window.removeEventListener(`message`,c),e.body.removeChild(s),a(`attestation aborted`)};this.abortController.signal.addEventListener(`abort`,o);let s=e.createElement(`iframe`);s.src=i,s.style.display=`none`,s.addEventListener(`error`,o,{signal:this.abortController.signal});let c=i=>{if(i.data&&typeof i.data==`string`)try{let a=JSON.parse(i.data);if(a.type===`verify_attestation`){if(h(a.attestation).payload.id!==n)return;clearInterval(t),e.body.removeChild(s),this.abortController.signal.removeEventListener(`abort`,o),window.removeEventListener(`message`,c),r(a.attestation===null?``:a.attestation)}}catch(e){this.logger.warn(e)}};e.body.appendChild(s),window.addEventListener(`message`,c,{signal:this.abortController.signal})});return this.logger.debug(`jwt attestation`,r),r}catch(e){this.logger.warn(e)}return``}),_m(this,`resolve`,async e=>{if(this.isDevEnv)return``;let{attestationId:t,hash:n,encryptedId:r}=e;if(t===``){this.logger.debug(`resolve: attestationId is empty, skipping`);return}if(t){if(h(t).payload.id!==r)return;let e=await this.isValidJwtAttestation(t);if(e){if(!e.isVerified){this.logger.warn(`resolve: jwt attestation: origin url not verified`);return}return e}}if(!n)return;let i=this.getVerifyUrl(e?.verifyUrl);return this.fetchAttestation(n,i)}),_m(this,`fetchAttestation`,async(e,t)=>{this.logger.debug(`resolving attestation: ${e} from url: ${t}`);let n=this.startAbortTimer(z.ONE_SECOND*5),r=await fetch(`${t}/attestation/${e}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(n),r.status===200?await r.json():void 0}),_m(this,`getVerifyUrl`,e=>{let t=e||`https://verify.walletconnect.org`;return yu.includes(t)||(this.logger.info(`verify url: ${t}, not included in trusted list, assigning default: https://verify.walletconnect.org`),t=`https://verify.walletconnect.org`),t}),_m(this,`fetchPublicKey`,async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);let e=this.startAbortTimer(z.FIVE_SECONDS),t=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(e),await t.json()}catch(e){this.logger.warn(e)}}),_m(this,`persistPublicKey`,async e=>{this.logger.debug(`persisting public key to local storage`,e),await this.store.setItem(this.storeKey,e),this.publicKey=e}),_m(this,`removePublicKey`,async()=>{this.logger.debug(`removing verify v2 public key from storage`),await this.store.removeItem(this.storeKey),this.publicKey=void 0}),_m(this,`isValidJwtAttestation`,async e=>{let t=await this.getPublicKey();try{if(t)return this.validateAttestation(e,t)}catch(e){this.logger.error(e),this.logger.warn(`error validating attestation`)}let n=await this.fetchAndPersistPublicKey();try{if(n)return this.validateAttestation(e,n)}catch(e){this.logger.error(e),this.logger.warn(`error validating attestation`)}}),_m(this,`getPublicKey`,async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey()),_m(this,`fetchAndPersistPublicKey`,async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async e=>{let t=await this.fetchPublicKey();t&&(await this.persistPublicKey(t),e(t))});let e=await this.fetchPromise;return this.fetchPromise=void 0,e}),_m(this,`validateAttestation`,(e,t)=>{let n=Qs(e,t.publicKey),r={hasExpired:(0,z.toMiliseconds)(n.exp)<Date.now(),payload:n};if(r.hasExpired)throw this.logger.warn(`resolve: jwt attestation expired`),Error(`JWT attestation expired`);return{origin:r.payload.origin,isScam:r.payload.isScam,isVerified:r.payload.isVerified}}),this.logger=Ie(t,this.name),this.abortController=new AbortController,this.isDevEnv=Xn(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+`//verify:public:key`}get context(){return Pe(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),(0,z.toMiliseconds)(e))}},ym=Object.defineProperty,bm=(e,t,n)=>t in e?ym(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,xm=(e,t,n)=>bm(e,typeof t==`symbol`?t:t+``,n),Sm=class extends Il{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,xm(this,`context`,bu),xm(this,`registerDeviceToken`,async e=>{let{clientId:t,token:n,notificationType:r,enableEncrypted:i=!1}=e,a=`${xu}/${this.projectId}/clients`;await fetch(a,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({client_id:t,type:r,token:n,always_raw:i})})}),this.logger=Ie(t,this.context)}},Cm=Object.defineProperty,wm=Object.getOwnPropertySymbols,Tm=Object.prototype.hasOwnProperty,Em=Object.prototype.propertyIsEnumerable,Dm=(e,t,n)=>t in e?Cm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Om=(e,t)=>{for(var n in t||={})Tm.call(t,n)&&Dm(e,n,t[n]);if(wm)for(var n of wm(t))Em.call(t,n)&&Dm(e,n,t[n]);return e},km=(e,t,n)=>Dm(e,typeof t==`symbol`?t:t+``,n),Am=class extends Ll{constructor(e,t,n=!0){super(e,t,n),this.core=e,this.logger=t,km(this,`context`,ku),km(this,`storagePrefix`,Wl),km(this,`storageVersion`,Ou),km(this,`events`,new Map),km(this,`shouldPersist`,!1),km(this,`init`,async()=>{if(!Xn())try{let e={eventId:Yn(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:`INIT`,type:``,properties:{client_id:await this.core.crypto.getClientId(),user_agent:An(this.core.relayer.protocol,this.core.relayer.version,ru)}}};await this.sendEvent([e])}catch(e){this.logger.warn(e)}}),km(this,`createEvent`,e=>{let{event:t=`ERROR`,type:n=``,properties:{topic:r,trace:i}}=e,a=Yn(),o=this.core.projectId||``,s=Om({eventId:a,timestamp:Date.now(),props:{event:t,type:n,properties:{topic:r,trace:i}},bundleId:o,domain:this.getAppDomain()},this.setMethods(a));return this.telemetryEnabled&&(this.events.set(a,s),this.shouldPersist=!0),s}),km(this,`getEvent`,e=>{let{eventId:t,topic:n}=e;if(t)return this.events.get(t);let r=Array.from(this.events.values()).find(e=>e.props.properties.topic===n);if(r)return Om(Om({},r),this.setMethods(r.eventId))}),km(this,`deleteEvent`,e=>{let{eventId:t}=e;this.events.delete(t),this.shouldPersist=!0}),km(this,`setEventListeners`,()=>{this.core.heartbeat.on(f.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(e=>{(0,z.fromMiliseconds)(Date.now())-(0,z.fromMiliseconds)(e.timestamp)>86400&&(this.events.delete(e.eventId),this.shouldPersist=!0)})})}),km(this,`setMethods`,e=>({addTrace:t=>this.addTrace(e,t),setError:t=>this.setError(e,t)})),km(this,`addTrace`,(e,t)=>{let n=this.events.get(e);n&&(n.props.properties.trace.push(t),this.events.set(e,n),this.shouldPersist=!0)}),km(this,`setError`,(e,t)=>{let n=this.events.get(e);n&&(n.props.type=t,n.timestamp=Date.now(),this.events.set(e,n),this.shouldPersist=!0)}),km(this,`persist`,async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1}),km(this,`restore`,async()=>{try{let e=await this.core.storage.getItem(this.storageKey)||[];if(!e.length)return;e.forEach(e=>{this.events.set(e.eventId,Om(Om({},e),this.setMethods(e.eventId)))})}catch(e){this.logger.warn(e)}}),km(this,`submit`,async()=>{if(!this.telemetryEnabled||this.events.size===0)return;let e=[];for(let[t,n]of this.events)n.props.type&&e.push(n);if(e.length!==0)try{if((await this.sendEvent(e)).ok)for(let t of e)this.events.delete(t.eventId),this.shouldPersist=!0}catch(e){this.logger.warn(e)}}),km(this,`sendEvent`,async e=>{let t=this.getAppDomain()?``:`&sp=desktop`;return await fetch(`${Au}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${ru}${t}`,{method:`POST`,body:JSON.stringify(e)})}),km(this,`getAppDomain`,()=>Dn().url),this.logger=Ie(t,this.context),this.telemetryEnabled=n,n?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+`//`+this.context}},jm=Object.defineProperty,Mm=Object.getOwnPropertySymbols,Nm=Object.prototype.hasOwnProperty,Pm=Object.prototype.propertyIsEnumerable,Fm=(e,t,n)=>t in e?jm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Im=(e,t)=>{for(var n in t||={})Nm.call(t,n)&&Fm(e,n,t[n]);if(Mm)for(var n of Mm(t))Pm.call(t,n)&&Fm(e,n,t[n]);return e},Y=(e,t,n)=>Fm(e,typeof t==`symbol`?t:t+``,n),Lm=class e extends wl{constructor(e){var t;super(e),Y(this,`protocol`,`wc`),Y(this,`version`,2),Y(this,`name`,Ul),Y(this,`relayUrl`),Y(this,`projectId`),Y(this,`customStoragePrefix`),Y(this,`events`,new fe.EventEmitter),Y(this,`logger`),Y(this,`heartbeat`),Y(this,`relayer`),Y(this,`crypto`),Y(this,`storage`),Y(this,`history`),Y(this,`expirer`),Y(this,`pairing`),Y(this,`verify`),Y(this,`echoClient`),Y(this,`linkModeSupportedApps`),Y(this,`eventClient`),Y(this,`initialized`,!1),Y(this,`logChunkController`),Y(this,`on`,(e,t)=>this.events.on(e,t)),Y(this,`once`,(e,t)=>this.events.once(e,t)),Y(this,`off`,(e,t)=>this.events.off(e,t)),Y(this,`removeListener`,(e,t)=>this.events.removeListener(e,t)),Y(this,`dispatchEnvelope`,({topic:e,message:t,sessionExists:n})=>{if(!e||!t)return;let r={topic:e,message:t,publishedAt:Date.now(),transportType:G.link_mode};this.relayer.onLinkMessageEvent(r,{sessionExists:n})});let n=this.getGlobalCore(e?.customStoragePrefix);if(n)try{return this.customStoragePrefix=n.customStoragePrefix,this.logger=n.logger,this.heartbeat=n.heartbeat,this.crypto=n.crypto,this.history=n.history,this.expirer=n.expirer,this.storage=n.storage,this.relayer=n.relayer,this.pairing=n.pairing,this.verify=n.verify,this.echoClient=n.echoClient,this.linkModeSupportedApps=n.linkModeSupportedApps,this.eventClient=n.eventClient,this.initialized=n.initialized,this.logChunkController=n.logChunkController,n}catch(e){console.warn(`Failed to copy global core`,e)}this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||`wss://relay.walletconnect.org`,this.customStoragePrefix=e!=null&&e.customStoragePrefix?`:${e.customStoragePrefix}`:``;let{logger:r,chunkLoggerController:i}=ze({opts:je({level:typeof e?.logger==`string`&&e.logger?e.logger:Gl.logger,name:Ul}),maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=i,(t=this.logChunkController)!=null&&t.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var e,t;(e=this.logChunkController)!=null&&e.downloadLogsBlobInBrowser&&((t=this.logChunkController)==null||t.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=Ie(r,this.name),this.heartbeat=new p,this.crypto=new Tf(this,this.logger,e?.keychain),this.history=new um(this,this.logger),this.expirer=new mm(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new d(Im(Im({},Kl),e?.storageOptions)),this.relayer=new mp({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new om(this,this.logger),this.verify=new vm(this,this.logger,this.storage),this.echoClient=new Sm(this.projectId||``,this.logger),this.linkModeSupportedApps=[],this.eventClient=new Am(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(t){let n=new e(t);await n.initialize();let r=await n.crypto.getClientId();return await n.storage.setItem(au,r),n}get context(){return Pe(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){return this.logChunkController?.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(`WALLETCONNECT_LINK_MODE_APPS`,this.linkModeSupportedApps))}async initialize(){this.logger.trace(`Initialized`);try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.linkModeSupportedApps=await this.storage.getItem(`WALLETCONNECT_LINK_MODE_APPS`)||[],this.initialized=!0,this.logger.info(`Core Initialization Success`)}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}getGlobalCore(e=``){try{if(this.isGlobalCoreDisabled())return;let t=`_walletConnectCore_${e}`,n=`${t}_count`;return globalThis[n]=(globalThis[n]||0)+1,globalThis[n]>1&&console.warn(`WalletConnect Core is already initialized. This is probably a mistake and can lead to unexpected behavior. Init() was called ${globalThis[n]} times.`),globalThis[t]}catch(e){console.warn(`Failed to get global WalletConnect core`,e);return}}setGlobalCore(e){try{if(this.isGlobalCoreDisabled())return;let t=`_walletConnectCore_${e.opts?.customStoragePrefix||``}`;globalThis[t]=e}catch(e){console.warn(`Failed to set global WalletConnect core`,e)}}isGlobalCoreDisabled(){try{return typeof n<`u`&&{}.DISABLE_GLOBAL_CORE===`true`}catch{return!0}}};a();var Rm=`client`,zm=`wc@2:${Rm}:`,Bm={name:Rm,logger:`error`,controller:!1,relayUrl:`wss://relay.walletconnect.org`},Vm=`WALLETCONNECT_DEEPLINK_CHOICE`,Hm=`proposal`,Um=`Proposal expired`,Wm=`session`,Gm=z.SEVEN_DAYS,Km=`engine`,qm={wc_sessionPropose:{req:{ttl:z.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:z.ONE_DAY,prompt:!1,tag:1104},res:{ttl:z.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:z.ONE_DAY,prompt:!1,tag:1106},res:{ttl:z.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:z.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:z.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:z.ONE_DAY,prompt:!1,tag:1112},res:{ttl:z.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:z.ONE_DAY,prompt:!1,tag:1114},res:{ttl:z.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:z.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:z.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:z.FIVE_MINUTES,prompt:!1,tag:1119}}},Jm={min:z.FIVE_MINUTES,max:z.SEVEN_DAYS},Ym={idle:`IDLE`,active:`ACTIVE`},Xm={eth_sendTransaction:{key:``},eth_sendRawTransaction:{key:``},wallet_sendCalls:{key:``},solana_signTransaction:{key:`signature`},solana_signAllTransactions:{key:`transactions`},solana_signAndSendTransaction:{key:`signature`}},Zm=`request`,Qm=[`wc_sessionPropose`,`wc_sessionRequest`,`wc_authRequest`,`wc_sessionAuthenticate`],$m=`auth`,eh=`authKeys`,th=`pairingTopics`,nh=`requests`,rh=`wc@1.5:${$m}:`,ih=`${rh}:PUB_KEY`,ah=Object.defineProperty,oh=Object.defineProperties,sh=Object.getOwnPropertyDescriptors,ch=Object.getOwnPropertySymbols,lh=Object.prototype.hasOwnProperty,uh=Object.prototype.propertyIsEnumerable,dh=(e,t,n)=>t in e?ah(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,X=(e,t)=>{for(var n in t||={})lh.call(t,n)&&dh(e,n,t[n]);if(ch)for(var n of ch(t))uh.call(t,n)&&dh(e,n,t[n]);return e},fh=(e,t)=>oh(e,sh(t)),Z=(e,t,n)=>dh(e,typeof t==`symbol`?t:t+``,n),ph=class extends Hl{constructor(e){super(e),Z(this,`name`,Km),Z(this,`events`,new fe.default),Z(this,`initialized`,!1),Z(this,`requestQueue`,{state:Ym.idle,queue:[]}),Z(this,`sessionRequestQueue`,{state:Ym.idle,queue:[]}),Z(this,`requestQueueDelay`,z.ONE_SECOND),Z(this,`expectedPairingMethodMap`,new Map),Z(this,`recentlyDeletedMap`,new Map),Z(this,`recentlyDeletedLimit`,200),Z(this,`relayMessageCache`,[]),Z(this,`pendingSessions`,new Map),Z(this,`init`,async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(qm)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},(0,z.toMiliseconds)(this.requestQueueDelay)))}),Z(this,`connect`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();let t=fh(X({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t),t.optionalNamespaces=Tc(t.requiredNamespaces,t.optionalNamespaces),t.requiredNamespaces={};let{pairingTopic:n,requiredNamespaces:r,optionalNamespaces:i,sessionProperties:a,scopedProperties:o,relays:s}=t,c=n,l,u=!1;try{if(c){let e=this.client.core.pairing.pairings.get(c);this.client.logger.warn(`connect() with existing pairing topic is deprecated and will be removed in the next major release.`),u=e.active}}catch(e){throw this.client.logger.error(`connect() -> pairing.get(${c}) failed`),e}if(!c||!u){let{topic:e,uri:t}=await this.client.core.pairing.create();c=e,l=t}if(!c){let{message:e}=U(`NO_MATCHING_KEY`,`connect() pairing topic: ${c}`);throw Error(e)}let d=await this.client.core.crypto.generateKeyPair(),f=qm.wc_sessionPropose.req.ttl||z.FIVE_MINUTES,p=Vn(f),m=fh(X(X({requiredNamespaces:r,optionalNamespaces:i,relays:s??[{protocol:`irn`}],proposer:{publicKey:d,metadata:this.client.metadata},expiryTimestamp:p,pairingTopic:c},a&&{sessionProperties:a}),o&&{scopedProperties:o}),{id:S()}),h=B(`session_connect`,m.id),{reject:g,resolve:_,done:v}=Fn(f,Um),y=({id:e})=>{e===m.id&&(this.client.events.off(`proposal_expire`,y),this.pendingSessions.delete(m.id),this.events.emit(h,{error:{message:`Proposal expired`,code:0}}))};return this.client.events.on(`proposal_expire`,y),this.events.once(h,({error:e,session:t})=>{this.client.events.off(`proposal_expire`,y),e?g(e):t&&_(t)}),await this.sendRequest({topic:c,method:`wc_sessionPropose`,params:m,throwOnFailedPublish:!0,clientRpcId:m.id}),await this.setProposal(m.id,m),{uri:l,approval:v}}),Z(this,`pair`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(e){throw this.client.logger.error(`pair() failed`),e}}),Z(this,`approve`,async e=>{let t=this.client.core.eventClient.createEvent({properties:{topic:(e?.id)?.toString(),trace:[wu.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(e){throw t.setError(Tu.no_internet_connection),e}try{await this.isValidProposalId(e?.id)}catch(n){throw this.client.logger.error(`approve() -> proposal.get(${e?.id}) failed`),t.setError(Tu.proposal_not_found),n}try{await this.isValidApprove(e)}catch(e){throw this.client.logger.error(`approve() -> isValidApprove() failed`),t.setError(Tu.session_approve_namespace_validation_failure),e}let{id:n,relayProtocol:r,namespaces:i,sessionProperties:a,scopedProperties:o,sessionConfig:s}=e,c=this.client.proposal.get(n);this.client.core.eventClient.deleteEvent({eventId:t.eventId});let{pairingTopic:l,proposer:u,requiredNamespaces:d,optionalNamespaces:f}=c,p=this.client.core.eventClient?.getEvent({topic:l});p||=this.client.core.eventClient?.createEvent({type:wu.session_approve_started,properties:{topic:l,trace:[wu.session_approve_started,wu.session_namespaces_validation_success]}});let m=await this.client.core.crypto.generateKeyPair(),h=u.publicKey,g=await this.client.core.crypto.generateSharedKey(m,h),_=X(X(X({relay:{protocol:r??`irn`},namespaces:i,controller:{publicKey:m,metadata:this.client.metadata},expiry:Vn(Gm)},a&&{sessionProperties:a}),o&&{scopedProperties:o}),s&&{sessionConfig:s}),v=G.relay;p.addTrace(wu.subscribing_session_topic);try{await this.client.core.relayer.subscribe(g,{transportType:v})}catch(e){throw p.setError(Tu.subscribe_session_topic_failure),e}p.addTrace(wu.subscribe_session_topic_success);let y=fh(X({},_),{topic:g,requiredNamespaces:d,optionalNamespaces:f,pairingTopic:l,acknowledged:!1,self:_.controller,peer:{publicKey:u.publicKey,metadata:u.metadata},controller:m,transportType:G.relay});await this.client.session.set(g,y),p.addTrace(wu.store_session);try{p.addTrace(wu.publishing_session_settle),await this.sendRequest({topic:g,method:`wc_sessionSettle`,params:_,throwOnFailedPublish:!0}).catch(e=>{throw p?.setError(Tu.session_settle_publish_failure),e}),p.addTrace(wu.session_settle_publish_success),p.addTrace(wu.publishing_session_approve),await this.sendResult({id:n,topic:l,result:{relay:{protocol:r??`irn`},responderPublicKey:m},throwOnFailedPublish:!0}).catch(e=>{throw p?.setError(Tu.session_approve_publish_failure),e}),p.addTrace(wu.session_approve_publish_success)}catch(e){throw this.client.logger.error(e),this.client.session.delete(g,W(`USER_DISCONNECTED`)),await this.client.core.relayer.unsubscribe(g),e}return this.client.core.eventClient.deleteEvent({eventId:p.eventId}),await this.client.core.pairing.updateMetadata({topic:l,metadata:u.metadata}),await this.client.proposal.delete(n,W(`USER_DISCONNECTED`)),await this.client.core.pairing.activate({topic:l}),await this.setExpiry(g,Vn(Gm)),{topic:g,acknowledged:()=>Promise.resolve(this.client.session.get(g))}}),Z(this,`reject`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(e){throw this.client.logger.error(`reject() -> isValidReject() failed`),e}let{id:t,reason:n}=e,r;try{r=this.client.proposal.get(t).pairingTopic}catch(e){throw this.client.logger.error(`reject() -> proposal.get(${t}) failed`),e}r&&(await this.sendError({id:t,topic:r,error:n,rpcOpts:qm.wc_sessionPropose.reject}),await this.client.proposal.delete(t,W(`USER_DISCONNECTED`)))}),Z(this,`update`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(e){throw this.client.logger.error(`update() -> isValidUpdate() failed`),e}let{topic:t,namespaces:n}=e,{done:r,resolve:i,reject:a}=Fn(),o=S(),s=x().toString(),c=this.client.session.get(t).namespaces;return this.events.once(B(`session_update`,o),({error:e})=>{e?a(e):i()}),await this.client.session.update(t,{namespaces:n}),await this.sendRequest({topic:t,method:`wc_sessionUpdate`,params:{namespaces:n},throwOnFailedPublish:!0,clientRpcId:o,relayRpcId:s}).catch(e=>{this.client.logger.error(e),this.client.session.update(t,{namespaces:c}),a(e)}),{acknowledged:r}}),Z(this,`extend`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(e){throw this.client.logger.error(`extend() -> isValidExtend() failed`),e}let{topic:t}=e,n=S(),{done:r,resolve:i,reject:a}=Fn();return this.events.once(B(`session_extend`,n),({error:e})=>{e?a(e):i()}),await this.setExpiry(t,Vn(Gm)),this.sendRequest({topic:t,method:`wc_sessionExtend`,params:{},clientRpcId:n,throwOnFailedPublish:!0}).catch(e=>{a(e)}),{acknowledged:r}}),Z(this,`request`,async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(e){throw this.client.logger.error(`request() -> isValidRequest() failed`),e}let{chainId:t,request:n,topic:r,expiry:i=qm.wc_sessionRequest.req.ttl}=e,a=this.client.session.get(r);a?.transportType===G.relay&&await this.confirmOnlineStateOrThrow();let o=S(),s=x().toString(),{done:c,resolve:l,reject:u}=Fn(i,`Request expired. Please try again.`);this.events.once(B(`session_request`,o),({error:e,result:t})=>{e?u(e):l(t)});let d=`wc_sessionRequest`,f=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);if(f)return await this.sendRequest({clientRpcId:o,relayRpcId:s,topic:r,method:d,params:{request:fh(X({},n),{expiryTimestamp:Vn(i)}),chainId:t},expiry:i,throwOnFailedPublish:!0,appLink:f}).catch(e=>u(e)),this.client.events.emit(`session_request_sent`,{topic:r,request:n,chainId:t,id:o}),await c();let p={request:fh(X({},n),{expiryTimestamp:Vn(i)}),chainId:t},m=this.shouldSetTVF(d,p);return await Promise.all([new Promise(async e=>{await this.sendRequest(X({clientRpcId:o,relayRpcId:s,topic:r,method:d,params:p,expiry:i,throwOnFailedPublish:!0},m&&{tvf:this.getTVFParams(o,p)})).catch(e=>u(e)),this.client.events.emit(`session_request_sent`,{topic:r,request:n,chainId:t,id:o}),e()}),new Promise(async e=>{var t;if(!((t=a.sessionConfig)!=null&&t.disableDeepLink)){let e=await qn(this.client.core.storage,Vm);await Wn({id:o,topic:r,wcDeepLink:e})}e()}),c()]).then(e=>e[2])}),Z(this,`respond`,async e=>{this.isInitialized(),await this.isValidRespond(e);let{topic:t,response:n}=e,{id:r}=n,i=this.client.session.get(t);i.transportType===G.relay&&await this.confirmOnlineStateOrThrow();let a=this.getAppLinkIfEnabled(i.peer.metadata,i.transportType);A(n)?await this.sendResult({id:r,topic:t,result:n.result,throwOnFailedPublish:!0,appLink:a}):j(n)&&await this.sendError({id:r,topic:t,error:n.error,appLink:a}),this.cleanupAfterResponse(e)}),Z(this,`ping`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(e){throw this.client.logger.error(`ping() -> isValidPing() failed`),e}let{topic:t}=e;if(this.client.session.keys.includes(t)){let e=S(),n=x().toString(),{done:r,resolve:i,reject:a}=Fn();this.events.once(B(`session_ping`,e),({error:e})=>{e?a(e):i()}),await Promise.all([this.sendRequest({topic:t,method:`wc_sessionPing`,params:{},throwOnFailedPublish:!0,clientRpcId:e,relayRpcId:n}),r()])}else this.client.core.pairing.pairings.keys.includes(t)&&(this.client.logger.warn(`ping() on pairing topic is deprecated and will be removed in the next major release.`),await this.client.core.pairing.ping({topic:t}))}),Z(this,`emit`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);let{topic:t,event:n,chainId:r}=e,i=x().toString(),a=S();await this.sendRequest({topic:t,method:`wc_sessionEvent`,params:{event:n,chainId:r},throwOnFailedPublish:!0,relayRpcId:i,clientRpcId:a})}),Z(this,`disconnect`,async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);let{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:`wc_sessionDelete`,params:W(`USER_DISCONNECTED`),throwOnFailedPublish:!0}),await this.deleteSession({topic:t,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(t))await this.client.core.pairing.disconnect({topic:t});else{let{message:e}=U(`MISMATCHED_TOPIC`,`Session or pairing topic not found: ${t}`);throw Error(e)}}),Z(this,`find`,e=>(this.isInitialized(),this.client.session.getAll().filter(t=>Nc(t,e)))),Z(this,`getPendingSessionRequests`,()=>this.client.pendingRequest.getAll()),Z(this,`authenticate`,async(e,t)=>{this.isInitialized(),this.isValidAuthenticate(e);let n=t&&this.client.core.linkModeSupportedApps.includes(t)&&this.client.metadata.redirect?.linkMode,r=n?G.link_mode:G.relay;r===G.relay&&await this.confirmOnlineStateOrThrow();let{chains:i,statement:a=``,uri:o,domain:s,nonce:c,type:l,exp:u,nbf:d,methods:f=[],expiry:p}=e,m=[...e.resources||[]],{topic:h,uri:g}=await this.client.core.pairing.create({methods:[`wc_sessionAuthenticate`],transportType:r});this.client.logger.info({message:`Generated new pairing`,pairing:{topic:h,uri:g}});let _=await this.client.core.crypto.generateKeyPair(),v=Fs(_);if(await Promise.all([this.client.auth.authKeys.set(ih,{responseTopic:v,publicKey:_}),this.client.auth.pairingTopics.set(v,{topic:v,pairingTopic:h})]),await this.client.core.relayer.subscribe(v,{transportType:r}),this.client.logger.info(`sending request to new pairing topic: ${h}`),f.length>0){let{namespace:e}=an(i[0]),t=xi(e,`request`,f);Oi(m)&&(t=Ci(t,m.pop())),m.push(t)}let y=p&&p>qm.wc_sessionAuthenticate.req.ttl?p:qm.wc_sessionAuthenticate.req.ttl,b={authPayload:{type:l??`caip122`,chains:i,statement:a,aud:o,domain:s,version:`1`,nonce:c,iat:new Date().toISOString(),exp:u,nbf:d,resources:m},requester:{publicKey:_,metadata:this.client.metadata},expiryTimestamp:Vn(y)},x={requiredNamespaces:{},optionalNamespaces:{eip155:{chains:i,methods:[...new Set([`personal_sign`,...f])],events:[`chainChanged`,`accountsChanged`]}},relays:[{protocol:`irn`}],pairingTopic:h,proposer:{publicKey:_,metadata:this.client.metadata},expiryTimestamp:Vn(qm.wc_sessionPropose.req.ttl),id:S()},{done:C,resolve:w,reject:T}=Fn(y,`Request expired`),E=S(),O=B(`session_connect`,x.id),k=B(`session_request`,E),A=async({error:e,session:t})=>{this.events.off(k,j),e?T(e):t&&w({session:t})},j=async e=>{var n,i,a;if(await this.deletePendingAuthRequest(E,{message:`fulfilled`,code:0}),e.error){let t=W(`WC_METHOD_UNSUPPORTED`,`wc_sessionAuthenticate`);return e.error.code===t.code?void 0:(this.events.off(O,A),T(e.error.message))}await this.deleteProposal(x.id),this.events.off(O,A);let{cacaos:o,responder:s}=e.result,c=[],l=[];for(let e of o){await fi({cacao:e,projectId:this.client.core.projectId})||(this.client.logger.error(e,`Signature verification failed`),T(W(`SESSION_SETTLEMENT_FAILED`,`Signature verification failed`)));let{p:t}=e,n=Oi(t.resources),r=[ui(t.iss)],i=di(t.iss);if(n){let e=Ei(n),t=Di(n);c.push(...e),r.push(...t)}for(let e of r)l.push(`${e}:${i}`)}let u=await this.client.core.crypto.generateSharedKey(_,s.publicKey),d;c.length>0&&(d={topic:u,acknowledged:!0,self:{publicKey:_,metadata:this.client.metadata},peer:s,controller:s.publicKey,expiry:Vn(Gm),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:`irn`},pairingTopic:h,namespaces:wc([...new Set(c)],[...new Set(l)]),transportType:r},await this.client.core.relayer.subscribe(u,{transportType:r}),await this.client.session.set(u,d),h&&await this.client.core.pairing.updateMetadata({topic:h,metadata:s.metadata}),d=this.client.session.get(u)),(n=this.client.metadata.redirect)!=null&&n.linkMode&&(i=s.metadata.redirect)!=null&&i.linkMode&&(a=s.metadata.redirect)!=null&&a.universal&&t&&(this.client.core.addLinkModeSupportedApp(s.metadata.redirect.universal),this.client.session.update(u,{transportType:G.link_mode})),w({auths:o,session:d})};this.events.once(O,A),this.events.once(k,j);let M;try{if(n){let e=D(`wc_sessionAuthenticate`,b,E);this.client.core.history.set(h,e),M=oc(t,h,await this.client.core.crypto.encode(``,e,{type:2,encoding:Es}))}else await Promise.all([this.sendRequest({topic:h,method:`wc_sessionAuthenticate`,params:b,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:E}),this.sendRequest({topic:h,method:`wc_sessionPropose`,params:x,expiry:qm.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:x.id})])}catch(e){throw this.events.off(O,A),this.events.off(k,j),e}return await this.setProposal(x.id,x),await this.setAuthRequest(E,{request:fh(X({},b),{verifyContext:{}}),pairingTopic:h,transportType:r}),{uri:M??g,response:C}}),Z(this,`approveSessionAuthenticate`,async e=>{let{id:t,auths:n}=e,r=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[Eu.authenticated_session_approve_started]}});try{this.isInitialized()}catch(e){throw r.setError(Du.no_internet_connection),e}let i=this.getPendingAuthRequest(t);if(!i)throw r.setError(Du.authenticated_session_pending_request_not_found),Error(`Could not find pending auth request with id ${t}`);let a=i.transportType||G.relay;a===G.relay&&await this.confirmOnlineStateOrThrow();let o=i.requester.publicKey,s=await this.client.core.crypto.generateKeyPair(),c=Fs(o),l={type:1,receiverPublicKey:o,senderPublicKey:s},u=[],d=[];for(let e of n){if(!await fi({cacao:e,projectId:this.client.core.projectId})){r.setError(Du.invalid_cacao);let e=W(`SESSION_SETTLEMENT_FAILED`,`Signature verification failed`);throw await this.sendError({id:t,topic:c,error:e,encodeOpts:l}),Error(e.message)}r.addTrace(Eu.cacaos_verified);let{p:n}=e,i=Oi(n.resources),a=[ui(n.iss)],o=di(n.iss);if(i){let e=Ei(i),t=Di(i);u.push(...e),a.push(...t)}for(let e of a)d.push(`${e}:${o}`)}let f=await this.client.core.crypto.generateSharedKey(s,o);r.addTrace(Eu.create_authenticated_session_topic);let p;if(u?.length>0){p={topic:f,acknowledged:!0,self:{publicKey:s,metadata:this.client.metadata},peer:{publicKey:o,metadata:i.requester.metadata},controller:o,expiry:Vn(Gm),authentication:n,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:`irn`},pairingTopic:i.pairingTopic,namespaces:wc([...new Set(u)],[...new Set(d)]),transportType:a},r.addTrace(Eu.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(f,{transportType:a})}catch(e){throw r.setError(Du.subscribe_authenticated_session_topic_failure),e}r.addTrace(Eu.subscribe_authenticated_session_topic_success),await this.client.session.set(f,p),r.addTrace(Eu.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:i.pairingTopic,metadata:i.requester.metadata})}r.addTrace(Eu.publishing_authenticated_session_approve);try{await this.sendResult({topic:c,id:t,result:{cacaos:n,responder:{publicKey:s,metadata:this.client.metadata}},encodeOpts:l,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(i.requester.metadata,a)})}catch(e){throw r.setError(Du.authenticated_session_approve_publish_failure),e}return await this.client.auth.requests.delete(t,{message:`fulfilled`,code:0}),await this.client.core.pairing.activate({topic:i.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:r.eventId}),{session:p}}),Z(this,`rejectSessionAuthenticate`,async e=>{this.isInitialized();let{id:t,reason:n}=e,r=this.getPendingAuthRequest(t);if(!r)throw Error(`Could not find pending auth request with id ${t}`);r.transportType===G.relay&&await this.confirmOnlineStateOrThrow();let i=r.requester.publicKey,a=await this.client.core.crypto.generateKeyPair(),o=Fs(i),s={type:1,receiverPublicKey:i,senderPublicKey:a};await this.sendError({id:t,topic:o,error:n,encodeOpts:s,rpcOpts:qm.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(r.requester.metadata,r.transportType)}),await this.client.auth.requests.delete(t,{message:`rejected`,code:0}),await this.client.proposal.delete(t,W(`USER_DISCONNECTED`))}),Z(this,`formatAuthMessage`,e=>{this.isInitialized();let{request:t,iss:n}=e;return pi(t,n)}),Z(this,`processRelayMessageCache`,()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{let e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)}),Z(this,`cleanupDuplicatePairings`,async e=>{if(e.pairingTopic)try{let t=this.client.core.pairing.pairings.get(e.pairingTopic),n=this.client.core.pairing.pairings.getAll().filter(n=>n.peerMetadata?.url&&n.peerMetadata?.url===e.peer.metadata.url&&n.topic&&n.topic!==t.topic);if(n.length===0)return;this.client.logger.info(`Cleaning up ${n.length} duplicate pairing(s)`),await Promise.all(n.map(e=>this.client.core.pairing.disconnect({topic:e.topic}))),this.client.logger.info(`Duplicate pairings clean up finished`)}catch(e){this.client.logger.error(e)}}),Z(this,`deleteSession`,async e=>{let{topic:t,expirerHasDeleted:n=!1,emitEvent:r=!0,id:i=0}=e,{self:a}=this.client.session.get(t);await this.client.core.relayer.unsubscribe(t),await this.client.session.delete(t,W(`USER_DISCONNECTED`)),this.addToRecentlyDeleted(t,`session`),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(t)&&await this.client.core.crypto.deleteSymKey(t),n||this.client.core.expirer.del(t),this.client.core.storage.removeItem(Vm).catch(e=>this.client.logger.warn(e)),this.getPendingSessionRequests().forEach(e=>{e.topic===t&&this.deletePendingSessionRequest(e.id,W(`USER_DISCONNECTED`))}),t===this.sessionRequestQueue.queue[0]?.topic&&(this.sessionRequestQueue.state=Ym.idle),r&&this.client.events.emit(`session_delete`,{id:i,topic:t})}),Z(this,`deleteProposal`,async(e,t)=>{if(t)try{let t=this.client.proposal.get(e);this.client.core.eventClient.getEvent({topic:t.pairingTopic})?.setError(Tu.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,W(`USER_DISCONNECTED`)),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,`proposal`)}),Z(this,`deletePendingSessionRequest`,async(e,t,n=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),n?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,`request`),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(t=>t.id!==e),n&&(this.sessionRequestQueue.state=Ym.idle,this.client.events.emit(`session_request_expire`,{id:e}))}),Z(this,`deletePendingAuthRequest`,async(e,t,n=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),n?Promise.resolve():this.client.core.expirer.del(e)])}),Z(this,`setExpiry`,async(e,t)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,t),await this.client.session.update(e,{expiry:t}))}),Z(this,`setProposal`,async(e,t)=>{this.client.core.expirer.set(e,Vn(qm.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)}),Z(this,`setAuthRequest`,async(e,t)=>{let{request:n,pairingTopic:r,transportType:i=G.relay}=t;this.client.core.expirer.set(e,n.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:n.authPayload,requester:n.requester,expiryTimestamp:n.expiryTimestamp,id:e,pairingTopic:r,verifyContext:n.verifyContext,transportType:i})}),Z(this,`setPendingSessionRequest`,async e=>{let{id:t,topic:n,params:r,verifyContext:i}=e,a=r.request.expiryTimestamp||Vn(qm.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,a),await this.client.pendingRequest.set(t,{id:t,topic:n,params:r,verifyContext:i})}),Z(this,`sendRequest`,async e=>{let{topic:t,method:n,params:r,expiry:i,relayRpcId:a,clientRpcId:s,throwOnFailedPublish:c,appLink:l,tvf:u}=e,d=D(n,r,s),f,p=!!l;try{let e=p?Es:Ts;f=await this.client.core.crypto.encode(t,d,{encoding:e})}catch(e){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),e}let m;if(Qm.includes(n)){let e=Is(JSON.stringify(d)),t=Is(f);m=await this.client.core.verify.register({id:t,decryptedId:e})}let h=qm[n].req;if(h.attestation=m,i&&(h.ttl=i),a&&(h.id=a),this.client.core.history.set(t,d),p){let e=oc(l,t,f);await o.Linking.openURL(e,this.client.name)}else{let e=qm[n].req;i&&(e.ttl=i),a&&(e.id=a),e.tvf=fh(X({},u),{correlationId:d.id}),c?(e.internal=fh(X({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,f,e)):this.client.core.relayer.publish(t,f,e).catch(e=>this.client.logger.error(e))}return d.id}),Z(this,`sendResult`,async e=>{let{id:t,topic:n,result:r,throwOnFailedPublish:i,encodeOpts:a,appLink:s}=e,c=N(t,r),l,u=s&&typeof o?.Linking<`u`;try{let e=u?Es:Ts;l=await this.client.core.crypto.encode(n,c,fh(X({},a||{}),{encoding:e}))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${n} failed`),e}let d,f;try{d=await this.client.core.history.get(n,t);let e=d.request;try{this.shouldSetTVF(e.method,e.params)&&(f=this.getTVFParams(t,e.params,r))}catch(e){this.client.logger.warn(`sendResult() -> getTVFParams() failed`,e)}}catch(e){throw this.client.logger.error(`sendResult() -> history.get(${n}, ${t}) failed`),e}if(u){let e=oc(s,n,l);await o.Linking.openURL(e,this.client.name)}else{let e=qm[d.request.method].res;e.tvf=fh(X({},f),{correlationId:t}),i?(e.internal=fh(X({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(n,l,e)):this.client.core.relayer.publish(n,l,e).catch(e=>this.client.logger.error(e))}await this.client.core.history.resolve(c)}),Z(this,`sendError`,async e=>{let{id:t,topic:n,error:r,encodeOpts:i,rpcOpts:a,appLink:s}=e,c=b(t,r),l,u=s&&typeof o?.Linking<`u`;try{let e=u?Es:Ts;l=await this.client.core.crypto.encode(n,c,fh(X({},i||{}),{encoding:e}))}catch(e){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${n} failed`),e}let d;try{d=await this.client.core.history.get(n,t)}catch(e){throw this.client.logger.error(`sendError() -> history.get(${n}, ${t}) failed`),e}if(u){let e=oc(s,n,l);await o.Linking.openURL(e,this.client.name)}else{let e=d.request.method,t=a||qm[e].res;this.client.core.relayer.publish(n,l,t)}await this.client.core.history.resolve(c)}),Z(this,`cleanup`,async()=>{let e=[],t=[];this.client.session.getAll().forEach(t=>{let n=!1;Hn(t.expiry)&&(n=!0),this.client.core.crypto.keychain.has(t.topic)||(n=!0),n&&e.push(t.topic)}),this.client.proposal.getAll().forEach(e=>{Hn(e.expiryTimestamp)&&t.push(e.id)}),await Promise.all([...e.map(e=>this.deleteSession({topic:e})),...t.map(e=>this.deleteProposal(e))])}),Z(this,`onProviderMessageEvent`,async e=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(e):await this.onRelayMessage(e)}),Z(this,`onRelayEventRequest`,async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()}),Z(this,`processRequestsQueue`,async()=>{if(this.requestQueue.state===Ym.active){this.client.logger.info(`Request queue already active, skipping...`);return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=Ym.active;let e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(e){this.client.logger.warn(e)}}this.requestQueue.state=Ym.idle}),Z(this,`processRequest`,async e=>{let{topic:t,payload:n,attestation:r,transportType:i,encryptedId:a}=e,o=n.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:o}))switch(o){case`wc_sessionPropose`:return await this.onSessionProposeRequest({topic:t,payload:n,attestation:r,encryptedId:a});case`wc_sessionSettle`:return await this.onSessionSettleRequest(t,n);case`wc_sessionUpdate`:return await this.onSessionUpdateRequest(t,n);case`wc_sessionExtend`:return await this.onSessionExtendRequest(t,n);case`wc_sessionPing`:return await this.onSessionPingRequest(t,n);case`wc_sessionDelete`:return await this.onSessionDeleteRequest(t,n);case`wc_sessionRequest`:return await this.onSessionRequest({topic:t,payload:n,attestation:r,encryptedId:a,transportType:i});case`wc_sessionEvent`:return await this.onSessionEventRequest(t,n);case`wc_sessionAuthenticate`:return await this.onSessionAuthenticateRequest({topic:t,payload:n,attestation:r,encryptedId:a,transportType:i});default:return this.client.logger.info(`Unsupported request method ${o}`)}}),Z(this,`onRelayEventResponse`,async e=>{let{topic:t,payload:n,transportType:r}=e,i=(await this.client.core.history.get(t,n.id)).request.method;switch(i){case`wc_sessionPropose`:return this.onSessionProposeResponse(t,n,r);case`wc_sessionSettle`:return this.onSessionSettleResponse(t,n);case`wc_sessionUpdate`:return this.onSessionUpdateResponse(t,n);case`wc_sessionExtend`:return this.onSessionExtendResponse(t,n);case`wc_sessionPing`:return this.onSessionPingResponse(t,n);case`wc_sessionRequest`:return this.onSessionRequestResponse(t,n);case`wc_sessionAuthenticate`:return this.onSessionAuthenticateResponse(t,n);default:return this.client.logger.info(`Unsupported response method ${i}`)}}),Z(this,`onRelayEventUnknownPayload`,e=>{let{topic:t}=e,{message:n}=U(`MISSING_OR_INVALID`,`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw Error(n)}),Z(this,`shouldIgnorePairingRequest`,e=>{let{topic:t,requestMethod:n}=e,r=this.expectedPairingMethodMap.get(t);return!r||r.includes(n)?!1:!!(r.includes(`wc_sessionAuthenticate`)&&this.client.events.listenerCount(`session_authenticate`)>0)}),Z(this,`onSessionProposeRequest`,async e=>{let{topic:t,payload:n,attestation:r,encryptedId:i}=e,{params:a,id:o}=n;try{let e=this.client.core.eventClient.getEvent({topic:t});this.client.events.listenerCount(`session_proposal`)===0&&(console.warn(`No listener for session_proposal event`),e?.setError(Cu.proposal_listener_not_found)),this.isValidConnect(X({},n.params));let s=X({id:o,pairingTopic:t,expiryTimestamp:a.expiryTimestamp||Vn(qm.wc_sessionPropose.req.ttl)},a);await this.setProposal(o,s);let c=await this.getVerifyContext({attestationId:r,hash:Is(JSON.stringify(n)),encryptedId:i,metadata:s.proposer.metadata});e?.addTrace(Su.emit_session_proposal),this.client.events.emit(`session_proposal`,{id:o,params:s,verifyContext:c})}catch(e){await this.sendError({id:o,topic:t,error:e,rpcOpts:qm.wc_sessionPropose.autoReject}),this.client.logger.error(e)}}),Z(this,`onSessionProposeResponse`,async(e,t,n)=>{let{id:r}=t;if(A(t)){let{result:i}=t;this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,result:i});let a=this.client.proposal.get(r);this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,proposal:a});let o=a.proposer.publicKey;this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,selfPublicKey:o});let s=i.responderPublicKey;this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,peerPublicKey:s});let c=await this.client.core.crypto.generateSharedKey(o,s);this.pendingSessions.set(r,{sessionTopic:c,pairingTopic:e,proposalId:r,publicKey:o});let l=await this.client.core.relayer.subscribe(c,{transportType:n});this.client.logger.trace({type:`method`,method:`onSessionProposeResponse`,subscriptionId:l}),await this.client.core.pairing.activate({topic:e})}else if(j(t)){await this.client.proposal.delete(r,W(`USER_DISCONNECTED`));let e=B(`session_connect`,r);if(this.events.listenerCount(e)===0)throw Error(`emitting ${e} without any listeners, 954`);this.events.emit(e,{error:t.error})}}),Z(this,`onSessionSettleRequest`,async(e,t)=>{let{id:n,params:r}=t;try{this.isValidSessionSettleRequest(r);let{relay:n,controller:i,expiry:a,namespaces:o,sessionProperties:s,scopedProperties:c,sessionConfig:l}=t.params,u=[...this.pendingSessions.values()].find(t=>t.sessionTopic===e);if(!u)return this.client.logger.error(`Pending session not found for topic ${e}`);let d=this.client.proposal.get(u.proposalId),f=fh(X(X(X({topic:e,relay:n,expiry:a,namespaces:o,acknowledged:!0,pairingTopic:u.pairingTopic,requiredNamespaces:d.requiredNamespaces,optionalNamespaces:d.optionalNamespaces,controller:i.publicKey,self:{publicKey:u.publicKey,metadata:this.client.metadata},peer:{publicKey:i.publicKey,metadata:i.metadata}},s&&{sessionProperties:s}),c&&{scopedProperties:c}),l&&{sessionConfig:l}),{transportType:G.relay});await this.client.session.set(f.topic,f),await this.setExpiry(f.topic,f.expiry),await this.client.core.pairing.updateMetadata({topic:u.pairingTopic,metadata:f.peer.metadata}),this.client.events.emit(`session_connect`,{session:f}),this.events.emit(B(`session_connect`,u.proposalId),{session:f}),this.pendingSessions.delete(u.proposalId),this.deleteProposal(u.proposalId,!1),this.cleanupDuplicatePairings(f),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),Z(this,`onSessionSettleResponse`,async(e,t)=>{let{id:n}=t;A(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(B(`session_approve`,n),{})):j(t)&&(await this.client.session.delete(e,W(`USER_DISCONNECTED`)),this.events.emit(B(`session_approve`,n),{error:t.error}))}),Z(this,`onSessionUpdateRequest`,async(e,t)=>{let{params:n,id:r}=t;try{let t=`${e}_session_update`,i=bl.get(t);if(i&&this.isRequestOutOfSync(i,r)){this.client.logger.warn(`Discarding out of sync request - ${r}`),this.sendError({id:r,topic:e,error:W(`INVALID_UPDATE_REQUEST`)});return}this.isValidUpdate(X({topic:e},n));try{bl.set(t,r),await this.client.session.update(e,{namespaces:n.namespaces}),await this.sendResult({id:r,topic:e,result:!0,throwOnFailedPublish:!0})}catch(e){throw bl.delete(t),e}this.client.events.emit(`session_update`,{id:r,topic:e,params:n})}catch(t){await this.sendError({id:r,topic:e,error:t}),this.client.logger.error(t)}}),Z(this,`isRequestOutOfSync`,(e,t)=>t.toString().slice(0,-3)<e.toString().slice(0,-3)),Z(this,`onSessionUpdateResponse`,(e,t)=>{let{id:n}=t,r=B(`session_update`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);A(t)?this.events.emit(B(`session_update`,n),{}):j(t)&&this.events.emit(B(`session_update`,n),{error:t.error})}),Z(this,`onSessionExtendRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,Vn(Gm)),await this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(`session_extend`,{id:n,topic:e})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),Z(this,`onSessionExtendResponse`,(e,t)=>{let{id:n}=t,r=B(`session_extend`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);A(t)?this.events.emit(B(`session_extend`,n),{}):j(t)&&this.events.emit(B(`session_extend`,n),{error:t.error})}),Z(this,`onSessionPingRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(`session_ping`,{id:n,topic:e})}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),Z(this,`onSessionPingResponse`,(e,t)=>{let{id:n}=t,r=B(`session_ping`,n);setTimeout(()=>{if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners 2176`);A(t)?this.events.emit(B(`session_ping`,n),{}):j(t)&&this.events.emit(B(`session_ping`,n),{error:t.error})},500)}),Z(this,`onSessionDeleteRequest`,async(e,t)=>{let{id:n}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise(t=>{this.client.core.relayer.once(tu.publish,async()=>{t(await this.deleteSession({topic:e,id:n}))})}),this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:W(`USER_DISCONNECTED`)})]).catch(e=>this.client.logger.error(e))}catch(e){this.client.logger.error(e)}}),Z(this,`onSessionRequest`,async e=>{var t,n;let{topic:r,payload:i,attestation:a,encryptedId:o,transportType:s}=e,{id:c,params:l}=i;try{await this.isValidRequest(X({topic:r},l));let e=this.client.session.get(r),i={id:c,topic:r,params:l,verifyContext:await this.getVerifyContext({attestationId:a,hash:Is(JSON.stringify(D(`wc_sessionRequest`,l,c))),encryptedId:o,metadata:e.peer.metadata,transportType:s})};await this.setPendingSessionRequest(i),s===G.link_mode&&(t=e.peer.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(e.peer.metadata.redirect?.universal),(n=this.client.signConfig)!=null&&n.disableRequestQueue?this.emitSessionRequest(i):(this.addSessionRequestToSessionRequestQueue(i),this.processSessionRequestQueue())}catch(e){await this.sendError({id:c,topic:r,error:e}),this.client.logger.error(e)}}),Z(this,`onSessionRequestResponse`,(e,t)=>{let{id:n}=t,r=B(`session_request`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);A(t)?this.events.emit(B(`session_request`,n),{result:t.result}):j(t)&&this.events.emit(B(`session_request`,n),{error:t.error})}),Z(this,`onSessionEventRequest`,async(e,t)=>{let{id:n,params:r}=t;try{let t=`${e}_session_event_${r.event.name}`,i=bl.get(t);if(i&&this.isRequestOutOfSync(i,n)){this.client.logger.info(`Discarding out of sync request - ${n}`);return}this.isValidEmit(X({topic:e},r)),this.client.events.emit(`session_event`,{id:n,topic:e,params:r}),bl.set(t,n)}catch(t){await this.sendError({id:n,topic:e,error:t}),this.client.logger.error(t)}}),Z(this,`onSessionAuthenticateResponse`,(e,t)=>{let{id:n}=t;this.client.logger.trace({type:`method`,method:`onSessionAuthenticateResponse`,topic:e,payload:t}),A(t)?this.events.emit(B(`session_request`,n),{result:t.result}):j(t)&&this.events.emit(B(`session_request`,n),{error:t.error})}),Z(this,`onSessionAuthenticateRequest`,async e=>{var t;let{topic:n,payload:r,attestation:i,encryptedId:a,transportType:o}=e;try{let{requester:e,authPayload:s,expiryTimestamp:c}=r.params,l=await this.getVerifyContext({attestationId:i,hash:Is(JSON.stringify(r)),encryptedId:a,metadata:e.metadata,transportType:o}),u={requester:e,pairingTopic:n,id:r.id,authPayload:s,verifyContext:l,expiryTimestamp:c};await this.setAuthRequest(r.id,{request:u,pairingTopic:n,transportType:o}),o===G.link_mode&&(t=e.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(e.metadata.redirect.universal),this.client.events.emit(`session_authenticate`,{topic:n,params:r.params,id:r.id,verifyContext:l})}catch(e){this.client.logger.error(e);let t=r.params.requester.publicKey,i=await this.client.core.crypto.generateKeyPair(),a=this.getAppLinkIfEnabled(r.params.requester.metadata,o),s={type:1,receiverPublicKey:t,senderPublicKey:i};await this.sendError({id:r.id,topic:n,error:e,encodeOpts:s,rpcOpts:qm.wc_sessionAuthenticate.autoReject,appLink:a})}}),Z(this,`addSessionRequestToSessionRequestQueue`,e=>{this.sessionRequestQueue.queue.push(e)}),Z(this,`cleanupAfterResponse`,e=>{this.deletePendingSessionRequest(e.response.id,{message:`fulfilled`,code:0}),setTimeout(()=>{this.sessionRequestQueue.state=Ym.idle,this.processSessionRequestQueue()},(0,z.toMiliseconds)(this.requestQueueDelay))}),Z(this,`cleanupPendingSentRequestsForTopic`,({topic:e,error:t})=>{let n=this.client.core.history.pending;n.length>0&&n.filter(t=>t.topic===e&&t.request.method===`wc_sessionRequest`).forEach(e=>{let n=e.request.id,r=B(`session_request`,n);if(this.events.listenerCount(r)===0)throw Error(`emitting ${r} without any listeners`);this.events.emit(B(`session_request`,e.request.id),{error:t})})}),Z(this,`processSessionRequestQueue`,()=>{if(this.sessionRequestQueue.state===Ym.active){this.client.logger.info(`session request queue is already active.`);return}let e=this.sessionRequestQueue.queue[0];if(!e){this.client.logger.info(`session request queue is empty.`);return}try{this.sessionRequestQueue.state=Ym.active,this.emitSessionRequest(e)}catch(e){this.client.logger.error(e)}}),Z(this,`emitSessionRequest`,e=>{this.client.events.emit(`session_request`,e)}),Z(this,`onPairingCreated`,e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;let t=this.client.proposal.getAll().find(t=>t.pairingTopic===e.topic);t&&this.onSessionProposeRequest({topic:e.topic,payload:D(`wc_sessionPropose`,fh(X({},t),{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties,scopedProperties:t.scopedProperties}),t.id)})}),Z(this,`isValidConnect`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`connect() params: ${JSON.stringify(e)}`);throw Error(t)}let{pairingTopic:t,requiredNamespaces:n,optionalNamespaces:r,sessionProperties:i,scopedProperties:a,relays:o}=e;if(Ac(t)||await this.isValidPairingTopic(t),!Xc(o,!0)){let{message:e}=U(`MISSING_OR_INVALID`,`connect() relays: ${o}`);throw Error(e)}if(!Ac(n)&&kc(n)!==0){let e=`requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces`;[`fatal`,`error`,`silent`].includes(this.client.logger.level)?console.warn(e):this.client.logger.warn(e),this.validateNamespaces(n,`requiredNamespaces`)}if(!Ac(r)&&kc(r)!==0&&this.validateNamespaces(r,`optionalNamespaces`),Ac(i)||this.validateSessionProps(i,`sessionProperties`),!Ac(a)){this.validateSessionProps(a,`scopedProperties`);let e=Object.keys(n||{}).concat(Object.keys(r||{}));if(!Object.keys(a).every(t=>e.includes(t)))throw Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(a)}, required/optional namespaces: ${JSON.stringify(e)}`)}}),Z(this,`validateNamespaces`,(e,t)=>{let n=qc(e,`connect()`,t);if(n)throw Error(n.message)}),Z(this,`isValidApprove`,async e=>{if(!Qc(e))throw Error(U(`MISSING_OR_INVALID`,`approve() params: ${e}`).message);let{id:t,namespaces:n,relayProtocol:r,sessionProperties:i,scopedProperties:a}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);let o=this.client.proposal.get(t),s=Jc(n,`approve()`);if(s)throw Error(s.message);let c=ol(o.requiredNamespaces,n,`approve()`);if(c)throw Error(c.message);if(!jc(r,!0)){let{message:e}=U(`MISSING_OR_INVALID`,`approve() relayProtocol: ${r}`);throw Error(e)}if(Ac(i)||this.validateSessionProps(i,`sessionProperties`),!Ac(a)){this.validateSessionProps(a,`scopedProperties`);let e=new Set(Object.keys(n));if(!Object.keys(a).every(t=>e.has(t)))throw Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(a)}, approved namespaces: ${Array.from(e).join(`, `)}`)}}),Z(this,`isValidReject`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`reject() params: ${e}`);throw Error(t)}let{id:t,reason:n}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!$c(n)){let{message:e}=U(`MISSING_OR_INVALID`,`reject() reason: ${JSON.stringify(n)}`);throw Error(e)}}),Z(this,`isValidSessionSettleRequest`,e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`onSessionSettleRequest() params: ${e}`);throw Error(t)}let{relay:t,controller:n,namespaces:r,expiry:i}=e;if(!Yc(t)){let{message:e}=U(`MISSING_OR_INVALID`,`onSessionSettleRequest() relay protocol should be a string`);throw Error(e)}let a=zc(n,`onSessionSettleRequest()`);if(a)throw Error(a.message);let o=Jc(r,`onSessionSettleRequest()`);if(o)throw Error(o.message);if(Hn(i)){let{message:e}=U(`EXPIRED`,`onSessionSettleRequest()`);throw Error(e)}}),Z(this,`isValidUpdate`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`update() params: ${e}`);throw Error(t)}let{topic:t,namespaces:n}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);let r=this.client.session.get(t),i=Jc(n,`update()`);if(i)throw Error(i.message);let a=ol(r.requiredNamespaces,n,`update()`);if(a)throw Error(a.message)}),Z(this,`isValidExtend`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`extend() params: ${e}`);throw Error(t)}let{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)}),Z(this,`isValidRequest`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`request() params: ${e}`);throw Error(t)}let{topic:t,request:n,chainId:r,expiry:i}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);let{namespaces:a}=this.client.session.get(t);if(!rl(a,r)){let{message:e}=U(`MISSING_OR_INVALID`,`request() chainId: ${r}`);throw Error(e)}if(!el(n)){let{message:e}=U(`MISSING_OR_INVALID`,`request() ${JSON.stringify(n)}`);throw Error(e)}if(!il(a,r,n.method)){let{message:e}=U(`MISSING_OR_INVALID`,`request() method: ${n.method}`);throw Error(e)}if(i&&!ul(i,Jm)){let{message:e}=U(`MISSING_OR_INVALID`,`request() expiry: ${i}. Expiry must be a number (in seconds) between ${Jm.min} and ${Jm.max}`);throw Error(e)}}),Z(this,`isValidRespond`,async e=>{var t;if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`respond() params: ${e}`);throw Error(t)}let{topic:n,response:r}=e;try{await this.isValidSessionTopic(n)}catch(n){throw(t=e?.response)!=null&&t.id&&this.cleanupAfterResponse(e),n}if(!tl(r)){let{message:e}=U(`MISSING_OR_INVALID`,`respond() response: ${JSON.stringify(r)}`);throw Error(e)}}),Z(this,`isValidPing`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`ping() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),Z(this,`isValidEmit`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`emit() params: ${e}`);throw Error(t)}let{topic:t,event:n,chainId:r}=e;await this.isValidSessionTopic(t);let{namespaces:i}=this.client.session.get(t);if(!rl(i,r)){let{message:e}=U(`MISSING_OR_INVALID`,`emit() chainId: ${r}`);throw Error(e)}if(!nl(n)){let{message:e}=U(`MISSING_OR_INVALID`,`emit() event: ${JSON.stringify(n)}`);throw Error(e)}if(!al(i,r,n.name)){let{message:e}=U(`MISSING_OR_INVALID`,`emit() event: ${JSON.stringify(n)}`);throw Error(e)}}),Z(this,`isValidDisconnect`,async e=>{if(!Qc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`disconnect() params: ${e}`);throw Error(t)}let{topic:t}=e;await this.isValidSessionOrPairingTopic(t)}),Z(this,`isValidAuthenticate`,e=>{let{chains:t,uri:n,domain:r,nonce:i}=e;if(!Array.isArray(t)||t.length===0)throw Error(`chains is required and must be a non-empty array`);if(!jc(n,!1))throw Error(`uri is required parameter`);if(!jc(r,!1))throw Error(`domain is required parameter`);if(!jc(i,!1))throw Error(`nonce is required parameter`);if([...new Set(t.map(e=>an(e).namespace))].length>1)throw Error(`Multi-namespace requests are not supported. Please request single namespace only.`);let{namespace:a}=an(t[0]);if(a!==`eip155`)throw Error(`Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.`)}),Z(this,`getVerifyContext`,async e=>{let{attestationId:t,hash:n,encryptedId:r,metadata:i,transportType:a}=e,o={verified:{verifyUrl:i.verifyUrl||`https://verify.walletconnect.org`,validation:`UNKNOWN`,origin:i.url||``}};try{if(a===G.link_mode){let e=this.getAppLinkIfEnabled(i,a);return o.verified.validation=e&&new URL(e).origin===new URL(i.url).origin?`VALID`:`INVALID`,o}let e=await this.client.core.verify.resolve({attestationId:t,hash:n,encryptedId:r,verifyUrl:i.verifyUrl});e&&(o.verified.origin=e.origin,o.verified.isScam=e.isScam,o.verified.validation=e.origin===new URL(i.url).origin?`VALID`:`INVALID`)}catch(e){this.client.logger.warn(e)}return this.client.logger.debug(`Verify context: ${JSON.stringify(o)}`),o}),Z(this,`validateSessionProps`,(e,t)=>{Object.values(e).forEach((n,r)=>{if(n==null){let{message:i}=U(`MISSING_OR_INVALID`,`${t} must contain an existing value for each key. Received: ${n} for key ${Object.keys(e)[r]}`);throw Error(i)}})}),Z(this,`getPendingAuthRequest`,e=>{let t=this.client.auth.requests.get(e);return typeof t==`object`?t:void 0}),Z(this,`addToRecentlyDeleted`,(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let e=0,t=this.recentlyDeletedLimit/2;for(let n of this.recentlyDeletedMap.keys()){if(e++>=t)break;this.recentlyDeletedMap.delete(n)}}}),Z(this,`checkRecentlyDeleted`,e=>{let t=this.recentlyDeletedMap.get(e);if(t){let{message:n}=U(`MISSING_OR_INVALID`,`Record was recently deleted - ${t}: ${e}`);throw Error(n)}}),Z(this,`isLinkModeEnabled`,(e,t)=>!e||t!==G.link_mode?!1:this.client.metadata?.redirect?.linkMode===!0&&this.client.metadata?.redirect?.universal!==void 0&&this.client.metadata?.redirect?.universal!==``&&e?.redirect?.universal!==void 0&&e?.redirect?.universal!==``&&e?.redirect?.linkMode===!0&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&typeof o?.Linking<`u`),Z(this,`getAppLinkIfEnabled`,(e,t)=>this.isLinkModeEnabled(e,t)?e?.redirect?.universal:void 0),Z(this,`handleLinkModeMessage`,({url:e})=>{if(!e||!e.includes(`wc_ev`)||!e.includes(`topic`))return;let t=Jn(e,`topic`)||``,n=decodeURIComponent(Jn(e,`wc_ev`)||``),r=this.client.session.keys.includes(t);r&&this.client.session.update(t,{transportType:G.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:n,sessionExists:r})}),Z(this,`registerLinkModeListeners`,async()=>{var e;if(Xn()||yn()&&(e=this.client.metadata.redirect)!=null&&e.linkMode){let e=o?.Linking;if(typeof e<`u`){e.addEventListener(`url`,this.handleLinkModeMessage,this.client.name);let t=await e.getInitialURL();t&&setTimeout(()=>{this.handleLinkModeMessage({url:t})},50)}}}),Z(this,`shouldSetTVF`,(e,t)=>{if(!t||e!==`wc_sessionRequest`)return!1;let{request:n}=t;return Object.keys(Xm).includes(n.method)}),Z(this,`getTVFParams`,(e,t,n)=>{try{let r=t.request.method,i=this.extractTxHashesFromResult(r,n);return fh(X({correlationId:e,rpcMethods:[r],chainId:t.chainId},this.isValidContractData(t.request.params)&&{contractAddresses:[t.request.params?.[0]?.to]}),{txHashes:i})}catch(e){this.client.logger.warn(`Error getting TVF params`,e)}return{}}),Z(this,`isValidContractData`,e=>{if(!e)return!1;try{let t=e?.data||e?.[0]?.data;if(!t.startsWith(`0x`))return!1;let n=t.slice(2);return/^[0-9a-fA-F]*$/.test(n)?n.length%2==0:!1}catch{}return!1}),Z(this,`extractTxHashesFromResult`,(e,t)=>{try{let n=Xm[e];if(typeof t==`string`)return[t];let r=t[n.key];if(Oc(r))return e===`solana_signAllTransactions`?r.map(e=>Zr(e)):r;if(typeof r==`string`)return[r]}catch(e){this.client.logger.warn(`Error extracting tx hashes from result`,e)}return[]})}async processPendingMessageEvents(){try{let e=this.client.session.keys,t=this.client.core.relayer.messages.getWithoutAck(e);for(let[e,n]of Object.entries(t))for(let t of n)try{await this.onProviderMessageEvent({topic:e,message:t,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${e}, message: ${t}`)}}catch(e){this.client.logger.warn(`processPendingMessageEvents failed`,e)}}isInitialized(){if(!this.initialized){let{message:e}=U(`NOT_INITIALIZED`,this.name);throw Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(tu.message,e=>{this.onProviderMessageEvent(e)})}async onRelayMessage(e){let{topic:t,message:n,attestation:r,transportType:i}=e,{publicKey:a}=this.client.auth.authKeys.keys.includes(ih)?this.client.auth.authKeys.get(ih):{responseTopic:void 0,publicKey:void 0};try{let e=await this.client.core.crypto.decode(t,n,{receiverPublicKey:a,encoding:i===G.link_mode?Es:Ts});T(e)?(this.client.core.history.set(t,e),await this.onRelayEventRequest({topic:t,payload:e,attestation:r,transportType:i,encryptedId:Is(n)})):v(e)?(await this.client.core.history.resolve(e),await this.onRelayEventResponse({topic:t,payload:e,transportType:i}),this.client.core.history.delete(t,e.id)):await this.onRelayEventUnknownPayload({topic:t,payload:e,transportType:i}),await this.client.core.relayer.messages.ack(t,n)}catch(e){this.client.logger.error(e)}}registerExpirerEvents(){this.client.core.expirer.on(mu.expired,async e=>{let{topic:t,id:n}=Bn(e.target);if(n&&this.client.pendingRequest.keys.includes(n))return await this.deletePendingSessionRequest(n,U(`EXPIRED`),!0);if(n&&this.client.auth.requests.keys.includes(n))return await this.deletePendingAuthRequest(n,U(`EXPIRED`),!0);t?this.client.session.keys.includes(t)&&(await this.deleteSession({topic:t,expirerHasDeleted:!0}),this.client.events.emit(`session_expire`,{topic:t})):n&&(await this.deleteProposal(n,!0),this.client.events.emit(`proposal_expire`,{id:n}))})}registerPairingEvents(){this.client.core.pairing.events.on(uu.create,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(uu.delete,e=>{this.addToRecentlyDeleted(e.topic,`pairing`)})}isValidPairingTopic(e){if(!jc(e,!1)){let{message:t}=U(`MISSING_OR_INVALID`,`pairing topic should be a string: ${e}`);throw Error(t)}if(!this.client.core.pairing.pairings.keys.includes(e)){let{message:t}=U(`NO_MATCHING_KEY`,`pairing topic doesn't exist: ${e}`);throw Error(t)}if(Hn(this.client.core.pairing.pairings.get(e).expiry)){let{message:t}=U(`EXPIRED`,`pairing topic: ${e}`);throw Error(t)}}async isValidSessionTopic(e){if(!jc(e,!1)){let{message:t}=U(`MISSING_OR_INVALID`,`session topic should be a string: ${e}`);throw Error(t)}if(this.checkRecentlyDeleted(e),!this.client.session.keys.includes(e)){let{message:t}=U(`NO_MATCHING_KEY`,`session topic doesn't exist: ${e}`);throw Error(t)}if(Hn(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});let{message:t}=U(`EXPIRED`,`session topic: ${e}`);throw Error(t)}if(!this.client.core.crypto.keychain.has(e)){let{message:t}=U(`MISSING_OR_INVALID`,`session topic does not exist in keychain: ${e}`);throw await this.deleteSession({topic:e}),Error(t)}}async isValidSessionOrPairingTopic(e){if(this.checkRecentlyDeleted(e),this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else if(this.client.core.pairing.pairings.keys.includes(e))this.isValidPairingTopic(e);else if(jc(e,!1)){let{message:t}=U(`NO_MATCHING_KEY`,`session or pairing topic doesn't exist: ${e}`);throw Error(t)}else{let{message:t}=U(`MISSING_OR_INVALID`,`session or pairing topic should be a string: ${e}`);throw Error(t)}}async isValidProposalId(e){if(!Zc(e)){let{message:t}=U(`MISSING_OR_INVALID`,`proposal id should be a number: ${e}`);throw Error(t)}if(!this.client.proposal.keys.includes(e)){let{message:t}=U(`NO_MATCHING_KEY`,`proposal id doesn't exist: ${e}`);throw Error(t)}if(Hn(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);let{message:t}=U(`EXPIRED`,`proposal id: ${e}`);throw Error(t)}}},mh=class extends rm{constructor(e,t){super(e,t,Hm,zm),this.core=e,this.logger=t}},hh=class extends rm{constructor(e,t){super(e,t,Wm,zm),this.core=e,this.logger=t}},gh=class extends rm{constructor(e,t){super(e,t,Zm,zm,e=>e.id),this.core=e,this.logger=t}},_h=class extends rm{constructor(e,t){super(e,t,eh,rh,()=>ih),this.core=e,this.logger=t}},vh=class extends rm{constructor(e,t){super(e,t,th,rh),this.core=e,this.logger=t}},yh=class extends rm{constructor(e,t){super(e,t,nh,rh,e=>e.id),this.core=e,this.logger=t}},bh=Object.defineProperty,xh=(e,t,n)=>t in e?bh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Sh=(e,t,n)=>xh(e,typeof t==`symbol`?t:t+``,n),Ch=class{constructor(e,t){this.core=e,this.logger=t,Sh(this,`authKeys`),Sh(this,`pairingTopics`),Sh(this,`requests`),this.authKeys=new _h(this.core,this.logger),this.pairingTopics=new vh(this.core,this.logger),this.requests=new yh(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}},wh=Object.defineProperty,Th=(e,t,n)=>t in e?wh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Q=(e,t,n)=>Th(e,typeof t==`symbol`?t:t+``,n),Eh=class e extends Vl{constructor(e){super(e),Q(this,`protocol`,`wc`),Q(this,`version`,2),Q(this,`name`,Bm.name),Q(this,`metadata`),Q(this,`core`),Q(this,`logger`),Q(this,`events`,new fe.EventEmitter),Q(this,`engine`),Q(this,`session`),Q(this,`proposal`),Q(this,`pendingRequest`),Q(this,`auth`),Q(this,`signConfig`),Q(this,`on`,(e,t)=>this.events.on(e,t)),Q(this,`once`,(e,t)=>this.events.once(e,t)),Q(this,`off`,(e,t)=>this.events.off(e,t)),Q(this,`removeListener`,(e,t)=>this.events.removeListener(e,t)),Q(this,`removeAllListeners`,e=>this.events.removeAllListeners(e)),Q(this,`connect`,async e=>{try{return await this.engine.connect(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`pair`,async e=>{try{return await this.engine.pair(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`approve`,async e=>{try{return await this.engine.approve(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`reject`,async e=>{try{return await this.engine.reject(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`update`,async e=>{try{return await this.engine.update(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`extend`,async e=>{try{return await this.engine.extend(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`request`,async e=>{try{return await this.engine.request(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`respond`,async e=>{try{return await this.engine.respond(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`ping`,async e=>{try{return await this.engine.ping(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`emit`,async e=>{try{return await this.engine.emit(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`disconnect`,async e=>{try{return await this.engine.disconnect(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`find`,e=>{try{return this.engine.find(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`getPendingSessionRequests`,()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}}),Q(this,`authenticate`,async(e,t)=>{try{return await this.engine.authenticate(e,t)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`formatAuthMessage`,e=>{try{return this.engine.formatAuthMessage(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`approveSessionAuthenticate`,async e=>{try{return await this.engine.approveSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),Q(this,`rejectSessionAuthenticate`,async e=>{try{return await this.engine.rejectSessionAuthenticate(e)}catch(e){throw this.logger.error(e.message),e}}),this.name=e?.name||Bm.name,this.metadata=En(e?.metadata),this.signConfig=e?.signConfig;let t=typeof e?.logger<`u`&&typeof e?.logger!=`string`?e.logger:(0,pe.default)(je({level:e?.logger||Bm.logger}));this.core=e?.core||new Lm(e),this.logger=Ie(t,this.name),this.session=new hh(this.core,this.logger),this.proposal=new mh(this.core,this.logger),this.pendingRequest=new gh(this.core,this.logger),this.engine=new ph(this),this.auth=new Ch(this.core,this.logger)}static async init(t){let n=new e(t);return await n.initialize(),n}get context(){return Pe(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace(`Initialized`);try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info(`SignClient Initialization Success`),setTimeout(()=>{this.engine.processRelayMessageCache()},(0,z.toMiliseconds)(z.ONE_SECOND))}catch(e){throw this.logger.info(`SignClient Initialization Failure`),this.logger.error(e.message),e}}};s();var Dh=`error`,Oh=`wss://relay.walletconnect.org`,kh=`wc@2:universal_provider:`,Ah=`https://rpc.walletconnect.org/v1/`,jh=`generic`,Mh=`${Ah}bundler`,Nh={DEFAULT_CHAIN_CHANGED:`default_chain_changed`};function Ph(){}function Fh(e){return e==null||typeof e!=`object`&&typeof e!=`function`}function Ih(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Lh(e){if(Fh(e))return e;if(Array.isArray(e)||Ih(e)||e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);let t=Object.getPrototypeOf(e),n=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new n(e);if(e instanceof RegExp){let t=new n(e);return t.lastIndex=e.lastIndex,t}if(e instanceof DataView)return new n(e.buffer.slice(0));if(e instanceof Error){let t=new n(e.message);return t.stack=e.stack,t.name=e.name,t.cause=e.cause,t}if(typeof File<`u`&&e instanceof File)return new n([e],e.name,{type:e.type,lastModified:e.lastModified});if(typeof e==`object`){let n=Object.create(t);return Object.assign(n,e)}return e}function Rh(e){return typeof e==`object`&&!!e}function zh(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function Bh(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var Vh=`[object RegExp]`,Hh=`[object String]`,Uh=`[object Number]`,Wh=`[object Boolean]`,Gh=`[object Arguments]`,Kh=`[object Symbol]`,qh=`[object Date]`,Jh=`[object Map]`,Yh=`[object Set]`,Xh=`[object Array]`,Zh=`[object ArrayBuffer]`,Qh=`[object Object]`,$h=`[object DataView]`,eg=`[object Uint8Array]`,tg=`[object Uint8ClampedArray]`,ng=`[object Uint16Array]`,rg=`[object Uint32Array]`,ig=`[object Int8Array]`,ag=`[object Int16Array]`,og=`[object Int32Array]`,sg=`[object Float32Array]`,cg=`[object Float64Array]`;function lg(e,t){return ug(e,void 0,e,new Map,t)}function ug(e,t,n,r=new Map,i=void 0){let a=i?.(e,t,n,r);if(a!=null)return a;if(Fh(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=ug(e[a],a,n,r,i);return Object.hasOwn(e,`index`)&&(t.index=e.index),Object.hasOwn(e,`input`)&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){let t=new Map;r.set(e,t);for(let[a,o]of e)t.set(a,ug(o,a,n,r,i));return t}if(e instanceof Set){let t=new Set;r.set(e,t);for(let a of e)t.add(ug(a,void 0,n,r,i));return t}if(typeof c<`u`&&c.isBuffer(e))return e.subarray();if(Ih(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=ug(e[a],a,n,r,i);return t}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){let t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),dg(t,e,n,r,i),t}if(typeof File<`u`&&e instanceof File){let t=new File([e],e.name,{type:e.type});return r.set(e,t),dg(t,e,n,r,i),t}if(e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),dg(t,e,n,r,i),t}if(e instanceof Error){let t=new e.constructor;return r.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,dg(t,e,n,r,i),t}if(typeof e==`object`&&fg(e)){let t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),dg(t,e,n,r,i),t}return e}function dg(e,t,n=e,r,i){let a=[...Object.keys(t),...zh(t)];for(let o=0;o<a.length;o++){let s=a[o],c=Object.getOwnPropertyDescriptor(e,s);(c==null||c.writable)&&(e[s]=ug(t[s],s,n,r,i))}}function fg(e){switch(Bh(e)){case Gh:case Xh:case Zh:case $h:case Wh:case qh:case sg:case cg:case ig:case ag:case og:case Jh:case Uh:case Qh:case Vh:case Yh:case Hh:case Kh:case eg:case tg:case ng:case rg:return!0;default:return!1}}function pg(e,t){return lg(e,(n,r,i,a)=>{let o=t?.(n,r,i,a);if(o!=null)return o;if(typeof e==`object`)switch(Object.prototype.toString.call(e)){case Uh:case Hh:case Wh:{let t=new e.constructor(e?.valueOf());return dg(t,e),t}case Gh:{let t={};return dg(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}})}function mg(e){return pg(e)}function hg(e){return typeof e==`object`&&!!e&&Bh(e)===`[object Arguments]`}function gg(e){return Ih(e)}function _g(e){if(typeof e!=`object`||!e)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!==`[object Object]`){let t=e[Symbol.toStringTag];return t==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${t}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function vg(e,...t){let n=t.slice(0,-1),r=t[t.length-1],i=e;for(let e=0;e<n.length;e++){let t=n[e];i=yg(i,t,r,new Map)}return i}function yg(e,t,n,r){if(Fh(e)&&(e=Object(e)),typeof t!=`object`||!t)return e;if(r.has(t))return Lh(r.get(t));if(r.set(t,e),Array.isArray(t)){t=t.slice();for(let e=0;e<t.length;e++)t[e]=t[e]??void 0}let i=[...Object.keys(t),...zh(t)];for(let a=0;a<i.length;a++){let o=i[a],s=t[o],l=e[o];if(hg(s)&&(s={...s}),hg(l)&&(l={...l}),typeof c<`u`&&c.isBuffer(s)&&(s=mg(s)),Array.isArray(s)){if(typeof l==`object`&&l){let e=[],t=Reflect.ownKeys(l);for(let n=0;n<t.length;n++){let r=t[n];e[r]=l[r]}l=e}else l=[]}let u=n(l,s,o,e,t,r);u==null?Array.isArray(s)||Rh(l)&&Rh(s)?e[o]=yg(l,s,n,r):l==null&&_g(s)?e[o]=yg({},s,n,r):l==null&&gg(s)?e[o]=mg(s):(l===void 0||s!==void 0)&&(e[o]=s):e[o]=u}return e}function bg(e,...t){return vg(e,...t,Ph)}var xg=Object.defineProperty,Sg=Object.defineProperties,Cg=Object.getOwnPropertyDescriptors,wg=Object.getOwnPropertySymbols,Tg=Object.prototype.hasOwnProperty,Eg=Object.prototype.propertyIsEnumerable,Dg=(e,t,n)=>t in e?xg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Og=(e,t)=>{for(var n in t||={})Tg.call(t,n)&&Dg(e,n,t[n]);if(wg)for(var n of wg(t))Eg.call(t,n)&&Dg(e,n,t[n]);return e},kg=(e,t)=>Sg(e,Cg(t));function Ag(e,t,n){let r=an(e);return t.rpcMap?.[r.reference]||`${Ah}?chainId=${r.namespace}:${r.reference}&projectId=${n}`}function jg(e){return e.includes(`:`)?e.split(`:`)[1]:e}function Mg(e){return e.map(e=>`${e.split(`:`)[0]}:${e.split(`:`)[1]}`)}function Ng(e,t){let n=Object.keys(t.namespaces).filter(t=>t.includes(e));if(!n.length)return[];let r=[];return n.forEach(e=>{let n=t.namespaces[e].accounts;r.push(...n)}),r}function Pg(e={},t={}){return bg(Fg(e),Fg(t))}function Fg(e){let t={};if(!kc(e))return t;for(let[n,r]of Object.entries(e)){let e=bc(n)?[n]:r.chains,i=r.methods||[],a=r.events||[],o=r.rpcMap||{},s=xc(n);t[s]=kg(Og(Og({},t[s]),r),{chains:Un(e,t[s]?.chains),methods:Un(i,t[s]?.methods),events:Un(a,t[s]?.events)}),(kc(o)||kc(t[s]?.rpcMap||{}))&&(t[s].rpcMap=Og(Og({},o),t[s]?.rpcMap))}return t}function Ig(e){return e.includes(`:`)?e.split(`:`)[2]:e}function Lg(e){let t={};for(let[n,r]of Object.entries(e)){let e=r.methods||[],i=r.events||[],a=r.accounts||[];t[n]={chains:bc(n)?[n]:r.chains?r.chains:Mg(r.accounts),methods:e,events:i,accounts:a}}return t}function Rg(e){return typeof e==`number`?e:e.includes(`0x`)?parseInt(e,16):(e=e.includes(`:`)?e.split(`:`)[1]:e,isNaN(Number(e))?e:Number(e))}var zg={},$=e=>zg[e],Bg=(e,t)=>{zg[e]=t},Vg=Object.defineProperty,Hg=(e,t,n)=>t in e?Vg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ug=(e,t,n)=>Hg(e,typeof t==`symbol`?t:t+``,n),Wg=class{constructor(e){Ug(this,`name`,`polkadot`),Ug(this,`client`),Ug(this,`httpProviders`),Ug(this,`events`),Ug(this,`namespace`),Ug(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=jg(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},Gg=Object.defineProperty,Kg=Object.defineProperties,qg=Object.getOwnPropertyDescriptors,Jg=Object.getOwnPropertySymbols,Yg=Object.prototype.hasOwnProperty,Xg=Object.prototype.propertyIsEnumerable,Zg=(e,t,n)=>t in e?Gg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qg=(e,t)=>{for(var n in t||={})Yg.call(t,n)&&Zg(e,n,t[n]);if(Jg)for(var n of Jg(t))Xg.call(t,n)&&Zg(e,n,t[n]);return e},$g=(e,t)=>Kg(e,qg(t)),e_=(e,t,n)=>Zg(e,typeof t==`symbol`?t:t+``,n),t_=class{constructor(e){e_(this,`name`,`eip155`),e_(this,`client`),e_(this,`chainId`),e_(this,`namespace`),e_(this,`httpProviders`),e_(this,`events`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(e){switch(e.request.method){case`eth_requestAccounts`:return this.getAccounts();case`eth_accounts`:return this.getAccounts();case`wallet_switchEthereumChain`:return await this.handleSwitchChain(e);case`eth_chainId`:return parseInt(this.getDefaultChain());case`wallet_getCapabilities`:return await this.getCapabilities(e);case`wallet_getCallsStatus`:return await this.getCallStatus(e)}return this.namespace.methods.includes(e.request.method)?await this.client.request(e):this.getHttpProvider().request(e.request)}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(parseInt(e),t),this.chainId=parseInt(e),this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}createHttpProvider(e,t){let n=t||Ag(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=parseInt(jg(t));e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}getHttpProvider(){let e=this.chainId,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}async handleSwitchChain(e){let t=e.request.params?e.request.params[0]?.chainId:`0x0`;t=t.startsWith(`0x`)?t:`0x${t}`;let n=parseInt(t,16);if(this.isChainApproved(n))this.setDefaultChain(`${n}`);else if(this.namespace.methods.includes(`wallet_switchEthereumChain`))await this.client.request({topic:e.topic,request:{method:e.request.method,params:[{chainId:t}]},chainId:this.namespace.chains?.[0]}),this.setDefaultChain(`${n}`);else throw Error(`Failed to switch to chain 'eip155:${n}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(e){return this.namespace.chains.includes(`${this.name}:${e}`)}async getCapabilities(e){let t=e.request?.params?.[0],n=`${t}${(e.request?.params?.[1]||[]).join(`,`)}`;if(!t)throw Error("Missing address parameter in `wallet_getCapabilities` request");let r=this.client.session.get(e.topic),i=r?.sessionProperties?.capabilities||{};if(i!=null&&i[n])return i?.[n];let a=await this.client.request(e);try{await this.client.session.update(e.topic,{sessionProperties:$g(Qg({},r.sessionProperties||{}),{capabilities:$g(Qg({},i||{}),{[n]:a})})})}catch(e){console.warn(`Failed to update session with capabilities`,e)}return a}async getCallStatus(e){let t=this.client.session.get(e.topic),n=t.sessionProperties?.bundler_name;if(n){let t=this.getBundlerUrl(e.chainId,n);try{return await this.getUserOperationReceipt(t,e)}catch(e){console.warn(`Failed to fetch call status from bundler`,e,t)}}let r=t.sessionProperties?.bundler_url;if(r)try{return await this.getUserOperationReceipt(r,e)}catch(e){console.warn(`Failed to fetch call status from custom bundler`,e,r)}if(this.namespace.methods.includes(e.request.method))return await this.client.request(e);throw Error(`Fetching call status not approved by the wallet.`)}async getUserOperationReceipt(e,t){let n=new URL(e),r=await fetch(n,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(D(`eth_getUserOperationReceipt`,[t.request.params?.[0]]))});if(!r.ok)throw Error(`Failed to fetch user operation receipt - ${r.status}`);return await r.json()}getBundlerUrl(e,t){return`${Mh}?projectId=${this.client.core.projectId}&chainId=${e}&bundler=${t}`}},n_=Object.defineProperty,r_=(e,t,n)=>t in e?n_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,i_=(e,t,n)=>r_(e,typeof t==`symbol`?t:t+``,n),a_=class{constructor(e){i_(this,`name`,`solana`),i_(this,`client`),i_(this,`httpProviders`),i_(this,`events`),i_(this,`namespace`),i_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=jg(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},o_=Object.defineProperty,s_=(e,t,n)=>t in e?o_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,c_=(e,t,n)=>s_(e,typeof t==`symbol`?t:t+``,n),l_=class{constructor(e){c_(this,`name`,`cosmos`),c_(this,`client`),c_(this,`httpProviders`),c_(this,`events`),c_(this,`namespace`),c_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=jg(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},u_=Object.defineProperty,d_=(e,t,n)=>t in e?u_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,f_=(e,t,n)=>d_(e,typeof t==`symbol`?t:t+``,n),p_=class{constructor(e){f_(this,`name`,`algorand`),f_(this,`client`),f_(this,`httpProviders`),f_(this,`events`),f_(this,`namespace`),f_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(!this.httpProviders[e]){let n=t||Ag(`${this.name}:${e}`,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);return typeof n>`u`?void 0:new k(new le(n,$(`disableProviderPing`)))}},m_=Object.defineProperty,h_=(e,t,n)=>t in e?m_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,g_=(e,t,n)=>h_(e,typeof t==`symbol`?t:t+``,n),__=class{constructor(e){g_(this,`name`,`cip34`),g_(this,`client`),g_(this,`httpProviders`),g_(this,`events`),g_(this,`namespace`),g_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=this.getCardanoRPCUrl(t),r=jg(t);e[r]=this.createHttpProvider(r,n)}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}getCardanoRPCUrl(e){let t=this.namespace.rpcMap;if(t)return t[e]}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||this.getCardanoRPCUrl(e);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},v_=Object.defineProperty,y_=(e,t,n)=>t in e?v_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,b_=(e,t,n)=>y_(e,typeof t==`symbol`?t:t+``,n),x_=class{constructor(e){b_(this,`name`,`elrond`),b_(this,`client`),b_(this,`httpProviders`),b_(this,`events`),b_(this,`namespace`),b_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=jg(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},S_=Object.defineProperty,C_=(e,t,n)=>t in e?S_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,w_=(e,t,n)=>C_(e,typeof t==`symbol`?t:t+``,n),T_=class{constructor(e){w_(this,`name`,`multiversx`),w_(this,`client`),w_(this,`httpProviders`),w_(this,`events`),w_(this,`namespace`),w_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{let n=jg(t);e[n]=this.createHttpProvider(n,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},E_=Object.defineProperty,D_=(e,t,n)=>t in e?E_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,O_=(e,t,n)=>D_(e,typeof t==`symbol`?t:t+``,n),k_=class{constructor(e){O_(this,`name`,`near`),O_(this,`client`),O_(this,`httpProviders`),O_(this,`events`),O_(this,`namespace`),O_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){let n=t||Ag(`${this.name}:${e}`,this.namespace);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t,this.namespace.rpcMap?.[t])}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace);return typeof n>`u`?void 0:new k(new le(n,$(`disableProviderPing`)))}},A_=Object.defineProperty,j_=(e,t,n)=>t in e?A_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,M_=(e,t,n)=>j_(e,typeof t==`symbol`?t:t+``,n),N_=class{constructor(e){M_(this,`name`,`tezos`),M_(this,`client`),M_(this,`httpProviders`),M_(this,`events`),M_(this,`namespace`),M_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace=Object.assign(this.namespace,e)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider().request(e.request)}setDefaultChain(e,t){if(this.chainId=e,!this.httpProviders[e]){let n=t||Ag(`${this.name}:${e}`,this.namespace);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);this.setHttpProvider(e,n)}this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){let e=this.namespace.accounts;return e&&e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2])||[]}createHttpProviders(){let e={};return this.namespace.chains.forEach(t=>{e[t]=this.createHttpProvider(t)}),e}getHttpProvider(){let e=`${this.name}:${this.chainId}`,t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace);return typeof n>`u`?void 0:new k(new le(n))}},P_=Object.defineProperty,F_=(e,t,n)=>t in e?P_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,I_=(e,t,n)=>F_(e,typeof t==`symbol`?t:t+``,n),L_=class{constructor(e){I_(this,`name`,jh),I_(this,`client`),I_(this,`httpProviders`),I_(this,`events`),I_(this,`namespace`),I_(this,`chainId`),this.namespace=e.namespace,this.events=$(`events`),this.client=$(`client`),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(e){this.namespace.chains=[...new Set((this.namespace.chains||[]).concat(e.chains||[]))],this.namespace.accounts=[...new Set((this.namespace.accounts||[]).concat(e.accounts||[]))],this.namespace.methods=[...new Set((this.namespace.methods||[]).concat(e.methods||[]))],this.namespace.events=[...new Set((this.namespace.events||[]).concat(e.events||[]))],this.httpProviders=this.createHttpProviders()}requestAccounts(){return this.getAccounts()}request(e){return this.namespace.methods.includes(e.request.method)?this.client.request(e):this.getHttpProvider(e.chainId).request(e.request)}setDefaultChain(e,t){this.httpProviders[e]||this.setHttpProvider(e,t),this.chainId=e,this.events.emit(Nh.DEFAULT_CHAIN_CHANGED,`${this.name}:${e}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;let e=this.namespace.chains[0];if(!e)throw Error(`ChainId not found`);return e.split(`:`)[1]}getAccounts(){let e=this.namespace.accounts;return e?[...new Set(e.filter(e=>e.split(`:`)[1]===this.chainId.toString()).map(e=>e.split(`:`)[2]))]:[]}createHttpProviders(){var e;let t={};return(e=this.namespace?.accounts)==null||e.forEach(e=>{let n=an(e);t[`${n.namespace}:${n.reference}`]=this.createHttpProvider(e)}),t}getHttpProvider(e){let t=this.httpProviders[e];if(typeof t>`u`)throw Error(`JSON-RPC provider for ${e} not found`);return t}setHttpProvider(e,t){let n=this.createHttpProvider(e,t);n&&(this.httpProviders[e]=n)}createHttpProvider(e,t){let n=t||Ag(e,this.namespace,this.client.core.projectId);if(!n)throw Error(`No RPC url provided for chainId: ${e}`);return new k(new le(n,$(`disableProviderPing`)))}},R_=Object.defineProperty,z_=Object.defineProperties,B_=Object.getOwnPropertyDescriptors,V_=Object.getOwnPropertySymbols,H_=Object.prototype.hasOwnProperty,U_=Object.prototype.propertyIsEnumerable,W_=(e,t,n)=>t in e?R_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,G_=(e,t)=>{for(var n in t||={})H_.call(t,n)&&W_(e,n,t[n]);if(V_)for(var n of V_(t))U_.call(t,n)&&W_(e,n,t[n]);return e},K_=(e,t)=>z_(e,B_(t)),q_=(e,t,n)=>W_(e,typeof t==`symbol`?t:t+``,n),J_=class e{constructor(e){q_(this,`client`),q_(this,`namespaces`),q_(this,`optionalNamespaces`),q_(this,`sessionProperties`),q_(this,`scopedProperties`),q_(this,`events`,new fe.default),q_(this,`rpcProviders`,{}),q_(this,`session`),q_(this,`providerOpts`),q_(this,`logger`),q_(this,`uri`),q_(this,`disableProviderPing`,!1),this.providerOpts=e,this.logger=typeof e?.logger<`u`&&typeof e?.logger!=`string`?e.logger:(0,pe.default)(je({level:e?.logger||Dh})),this.disableProviderPing=e?.disableProviderPing||!1}static async init(t){let n=new e(t);return await n.initialize(),n}async request(e,t,n){let[r,i]=this.validateChain(t);if(!this.session)throw Error(`Please call connect() before request()`);return await this.getProvider(r).request({request:G_({},e),chainId:`${r}:${i}`,topic:this.session.topic,expiry:n})}sendAsync(e,t,n,r){let i=new Date().getTime();this.request(e,n,r).then(e=>t(null,N(i,e))).catch(e=>t(e,void 0))}async enable(){if(!this.client)throw Error(`Sign Client not initialized`);return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties}),await this.requestAccounts()}async disconnect(){if(!this.session)throw Error(`Please call connect() before enable()`);await this.client.disconnect({topic:this.session?.topic,reason:W(`USER_DISCONNECTED`)}),await this.cleanup()}async connect(e){if(!this.client)throw Error(`Sign Client not initialized`);if(this.setNamespaces(e),await this.cleanupPendingPairings(),!e.skipPairing)return await this.pair(e.pairingTopic)}async authenticate(e,t){if(!this.client)throw Error(`Sign Client not initialized`);this.setNamespaces(e),await this.cleanupPendingPairings();let{uri:n,response:r}=await this.client.authenticate(e,t);n&&(this.uri=n,this.events.emit(`display_uri`,n));let i=await r();if(this.session=i.session,this.session){let e=Lg(this.session.namespaces);this.namespaces=Pg(this.namespaces,e),await this.persist(`namespaces`,this.namespaces),this.onConnect()}return i}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}removeListener(e,t){this.events.removeListener(e,t)}off(e,t){this.events.off(e,t)}get isWalletConnect(){return!0}async pair(e){let{uri:t,approval:n}=await this.client.connect({pairingTopic:e,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties});t&&(this.uri=t,this.events.emit(`display_uri`,t));let r=await n();this.session=r;let i=Lg(r.namespaces);return this.namespaces=Pg(this.namespaces,i),await this.persist(`namespaces`,this.namespaces),await this.persist(`optionalNamespaces`,this.optionalNamespaces),this.onConnect(),this.session}setDefaultChain(e,t){try{if(!this.session)return;let[n,r]=this.validateChain(e),i=this.getProvider(n);i.name===jh?i.setDefaultChain(`${n}:${r}`,t):i.setDefaultChain(r,t)}catch(e){if(!/Please call connect/.test(e.message))throw e}}async cleanupPendingPairings(e={}){this.logger.info(`Cleaning up inactive pairings...`);let t=this.client.pairing.getAll();if(Oc(t)){for(let n of t)e.deletePairings?this.client.core.expirer.set(n.topic,0):await this.client.core.relayer.subscriber.unsubscribe(n.topic);this.logger.info(`Inactive pairings cleared: ${t.length}`)}}abortPairingAttempt(){this.logger.warn(`abortPairingAttempt is deprecated. This is now a no-op.`)}async checkStorage(){this.namespaces=await this.getFromStore(`namespaces`)||{},this.optionalNamespaces=await this.getFromStore(`optionalNamespaces`)||{},this.session&&this.createProviders()}async initialize(){this.logger.trace(`Initialized`),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){if(this.client=this.providerOpts.client||await Eh.init({core:this.providerOpts.core,logger:this.providerOpts.logger||Dh,relayUrl:this.providerOpts.relayUrl||Oh,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name,customStoragePrefix:this.providerOpts.customStoragePrefix,telemetryEnabled:this.providerOpts.telemetryEnabled}),this.providerOpts.session)try{this.session=this.client.session.get(this.providerOpts.session.topic)}catch(e){throw this.logger.error(`Failed to get session`,e),Error(`The provided session: ${this.providerOpts?.session?.topic} doesn't exist in the Sign client`)}else{let e=this.client.session.getAll();this.session=e[0]}this.logger.trace(`SignClient Initialized`)}createProviders(){if(!this.client)throw Error(`Sign Client not initialized`);if(!this.session)throw Error(`Session not initialized. Please call connect() before enable()`);let e=[...new Set(Object.keys(this.session.namespaces).map(e=>xc(e)))];Bg(`client`,this.client),Bg(`events`,this.events),Bg(`disableProviderPing`,this.disableProviderPing),e.forEach(e=>{if(!this.session)return;let t=Ng(e,this.session),n=Mg(t),r=K_(G_({},Pg(this.namespaces,this.optionalNamespaces)[e]),{accounts:t,chains:n});switch(e){case`eip155`:this.rpcProviders[e]=new t_({namespace:r});break;case`algorand`:this.rpcProviders[e]=new p_({namespace:r});break;case`solana`:this.rpcProviders[e]=new a_({namespace:r});break;case`cosmos`:this.rpcProviders[e]=new l_({namespace:r});break;case`polkadot`:this.rpcProviders[e]=new Wg({namespace:r});break;case`cip34`:this.rpcProviders[e]=new __({namespace:r});break;case`elrond`:this.rpcProviders[e]=new x_({namespace:r});break;case`multiversx`:this.rpcProviders[e]=new T_({namespace:r});break;case`near`:this.rpcProviders[e]=new k_({namespace:r});break;case`tezos`:this.rpcProviders[e]=new N_({namespace:r});break;default:this.rpcProviders[jh]?this.rpcProviders[jh].updateNamespace(r):this.rpcProviders[jh]=new L_({namespace:r})}})}registerEventListeners(){if(typeof this.client>`u`)throw Error(`Sign Client is not initialized`);this.client.on(`session_ping`,e=>{let{topic:t}=e;t===this.session?.topic&&this.events.emit(`session_ping`,e)}),this.client.on(`session_event`,e=>{let{params:t,topic:n}=e;if(n!==this.session?.topic)return;let{event:r}=t;if(r.name===`accountsChanged`){let e=r.data;e&&Oc(e)&&this.events.emit(`accountsChanged`,e.map(Ig))}else if(r.name===`chainChanged`){let e=t.chainId,n=t.event.data,r=xc(e),i=Rg(e)===Rg(n)?e:`${r}:${Rg(n)}`;this.onChainChanged(i)}else this.events.emit(r.name,r.data);this.events.emit(`session_event`,e)}),this.client.on(`session_update`,({topic:e,params:t})=>{if(e!==this.session?.topic)return;let{namespaces:n}=t,r=this.client?.session.get(e);this.session=K_(G_({},r),{namespaces:n}),this.onSessionUpdate(),this.events.emit(`session_update`,{topic:e,params:t})}),this.client.on(`session_delete`,async e=>{e.topic===this.session?.topic&&(await this.cleanup(),this.events.emit(`session_delete`,e),this.events.emit(`disconnect`,K_(G_({},W(`USER_DISCONNECTED`)),{data:e.topic})))}),this.on(Nh.DEFAULT_CHAIN_CHANGED,e=>{this.onChainChanged(e,!0)})}getProvider(e){return this.rpcProviders[e]||this.rpcProviders[jh]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(e=>{this.getProvider(e).updateNamespace(this.session?.namespaces[e])})}setNamespaces(e){let{namespaces:t={},optionalNamespaces:n={},sessionProperties:r,scopedProperties:i}=e;this.optionalNamespaces=Pg(t,n),this.sessionProperties=r,this.scopedProperties=i}validateChain(e){let[t,n]=e?.split(`:`)||[``,``];if(!this.namespaces||!Object.keys(this.namespaces).length)return[t,n];if(t&&!Object.keys(this.namespaces||{}).map(e=>xc(e)).includes(t))throw Error(`Namespace '${t}' is not configured. Please call connect() first with namespace config.`);if(t&&n)return[t,n];let r=xc(Object.keys(this.namespaces)[0]);return[r,this.rpcProviders[r].getDefaultChain()]}async requestAccounts(){let[e]=this.validateChain();return await this.getProvider(e).requestAccounts()}async onChainChanged(e,t=!1){if(!this.namespaces)return;let[n,r]=this.validateChain(e);if(!r)return;this.updateNamespaceChain(n,r),this.events.emit(`chainChanged`,r);let i=this.getProvider(n).getDefaultChain();t||this.getProvider(n).setDefaultChain(r),this.emitAccountsChangedOnChainChange({namespace:n,previousChainId:i,newChainId:e}),await this.persist(`namespaces`,this.namespaces)}emitAccountsChangedOnChainChange({namespace:e,previousChainId:t,newChainId:n}){try{if(t===n)return;let r=this.session?.namespaces[e]?.accounts;if(!r)return;let i=r.filter(e=>e.includes(`${n}:`)).map(Ig);if(!Oc(i))return;this.events.emit(`accountsChanged`,i)}catch(e){this.logger.warn(`Failed to emit accountsChanged on chain change`,e)}}updateNamespaceChain(e,t){if(!this.namespaces)return;let n=this.namespaces[e]?e:`${e}:${t}`,r={chains:[],methods:[],events:[],defaultChain:t};this.namespaces[n]?this.namespaces[n]&&(this.namespaces[n].defaultChain=t):this.namespaces[n]=r}onConnect(){this.createProviders(),this.events.emit(`connect`,{session:this.session})}async cleanup(){this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,await this.deleteFromStore(`namespaces`),await this.deleteFromStore(`optionalNamespaces`),await this.deleteFromStore(`sessionProperties`),this.session=void 0,await this.cleanupPendingPairings({deletePairings:!0}),await this.cleanupStorage()}async persist(e,t){let n=this.session?.topic||``;await this.client.core.storage.setItem(`${kh}/${e}${n}`,t)}async getFromStore(e){let t=this.session?.topic||``;return await this.client.core.storage.getItem(`${kh}/${e}${t}`)}async deleteFromStore(e){let t=this.session?.topic||``;await this.client.core.storage.removeItem(`${kh}/${e}${t}`)}async cleanupStorage(){try{if(this.client?.session.length>0)return;let e=await this.client.core.storage.getKeys();for(let t of e)t.startsWith(kh)&&await this.client.core.storage.removeItem(t)}catch(e){this.logger.warn(`Failed to cleanup storage`,e)}}},Y_=`wc@2:ethereum_provider:`,X_=`https://rpc.walletconnect.org/v1/`,Z_=[`eth_sendTransaction`,`personal_sign`],Q_=[`eth_accounts`,`eth_requestAccounts`,`eth_sendRawTransaction`,`eth_sign`,`eth_signTransaction`,`eth_signTypedData`,`eth_signTypedData_v3`,`eth_signTypedData_v4`,`eth_sendTransaction`,`personal_sign`,`wallet_switchEthereumChain`,`wallet_addEthereumChain`,`wallet_getPermissions`,`wallet_requestPermissions`,`wallet_registerOnboarding`,`wallet_watchAsset`,`wallet_scanQRCode`,`wallet_sendCalls`,`wallet_getCapabilities`,`wallet_getCallsStatus`,`wallet_showCallsStatus`],$_=[`chainChanged`,`accountsChanged`],ev=[`chainChanged`,`accountsChanged`,`message`,`disconnect`,`connect`],tv=async()=>{let{createAppKit:e}=await i(async()=>{let{createAppKit:e}=await import(`./core-BiDQVY37.js`);return{createAppKit:e}},__vite__mapDeps([3,4,5,6,1,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]));return e},nv=Object.defineProperty,rv=Object.defineProperties,iv=Object.getOwnPropertyDescriptors,av=Object.getOwnPropertySymbols,ov=Object.prototype.hasOwnProperty,sv=Object.prototype.propertyIsEnumerable,cv=(e,t,n)=>t in e?nv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,lv=(e,t)=>{for(var n in t||={})ov.call(t,n)&&cv(e,n,t[n]);if(av)for(var n of av(t))sv.call(t,n)&&cv(e,n,t[n]);return e},uv=(e,t)=>rv(e,iv(t)),dv=(e,t,n)=>cv(e,typeof t==`symbol`?t:t+``,n);function fv(e){return Number(e[0].split(`:`)[1])}function pv(e){return`0x${e.toString(16)}`}function mv(e){let{chains:t,optionalChains:n,methods:r,optionalMethods:i,events:a,optionalEvents:o,rpcMap:s}=e;if(!Oc(t))throw Error(`Invalid chains`);let c={chains:t,methods:r||Z_,events:a||$_,rpcMap:lv({},t.length?{[fv(t)]:s[fv(t)]}:{})},l=a?.filter(e=>!$_.includes(e)),u=r?.filter(e=>!Z_.includes(e));if(!n&&!o&&!i&&!(l!=null&&l.length)&&!(u!=null&&u.length))return{required:t.length?c:void 0};let d=l?.length&&u?.length||!n,f={chains:[...new Set(d?c.chains.concat(n||[]):n)],methods:[...new Set(c.methods.concat(i!=null&&i.length?i:Q_))],events:[...new Set(c.events.concat(o!=null&&o.length?o:ev))],rpcMap:s};return{required:t.length?c:void 0,optional:n.length?f:void 0}}var hv=class e{constructor(){dv(this,`events`,new fe.EventEmitter),dv(this,`namespace`,`eip155`),dv(this,`accounts`,[]),dv(this,`signer`),dv(this,`chainId`,1),dv(this,`modal`),dv(this,`rpc`),dv(this,`STORAGE_KEY`,Y_),dv(this,`on`,(e,t)=>(this.events.on(e,t),this)),dv(this,`once`,(e,t)=>(this.events.once(e,t),this)),dv(this,`removeListener`,(e,t)=>(this.events.removeListener(e,t),this)),dv(this,`off`,(e,t)=>(this.events.off(e,t),this)),dv(this,`parseAccount`,e=>this.isCompatibleChainId(e)?this.parseAccountId(e).address:e),this.signer={},this.rpc={}}static async init(t){let n=new e;return await n.initialize(t),n}async request(e,t){return await this.signer.request(e,this.formatChainId(this.chainId),t)}sendAsync(e,t,n){this.signer.sendAsync(e,t,this.formatChainId(this.chainId),n)}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:`eth_requestAccounts`})}async connect(e){var t;if(!this.signer.client)throw Error(`Provider not initialized. Call init() first`);this.loadConnectOpts(e);let{required:n,optional:r}=mv(this.rpc);try{let t=await new Promise(async(t,i)=>{var a,o;this.rpc.showQrModal&&((a=this.modal)==null||a.open(),(o=this.modal)==null||o.subscribeState(e=>{!e.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),i(Error(`Connection request reset. Please try again.`)))}));let s=e!=null&&e.scopedProperties?{[this.namespace]:e.scopedProperties}:void 0;await this.signer.connect(uv(lv({namespaces:lv({},n&&{[this.namespace]:n})},r&&{optionalNamespaces:{[this.namespace]:r}}),{pairingTopic:e?.pairingTopic,scopedProperties:s})).then(e=>{t(e)}).catch(e=>{var t;(t=this.modal)==null||t.showErrorMessage(`Unable to connect`),i(Error(e.message))})});if(!t)return;let i=on(t.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:i),this.setAccounts(i),this.events.emit(`connect`,{chainId:pv(this.chainId)})}catch(e){throw this.signer.logger.error(e),e}finally{(t=this.modal)==null||t.close()}}async authenticate(e,t){var n;if(!this.signer.client)throw Error(`Provider not initialized. Call init() first`);this.loadConnectOpts({chains:e?.chains});try{let n=await new Promise(async(n,r)=>{var i,a;this.rpc.showQrModal&&((i=this.modal)==null||i.open(),(a=this.modal)==null||a.subscribeState(e=>{!e.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),r(Error(`Connection request reset. Please try again.`)))})),await this.signer.authenticate(uv(lv({},e),{chains:this.rpc.chains}),t).then(e=>{n(e)}).catch(e=>{var t;(t=this.modal)==null||t.showErrorMessage(`Unable to connect`),r(Error(e.message))})}),r=n.session;if(r){let e=on(r.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:e),this.setAccounts(e),this.events.emit(`connect`,{chainId:pv(this.chainId)})}return n}catch(e){throw this.signer.logger.error(e),e}finally{(n=this.modal)==null||n.close()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on(`session_event`,e=>{let{params:t}=e,{event:n}=t;n.name===`accountsChanged`?(this.accounts=this.parseAccounts(n.data),this.events.emit(`accountsChanged`,this.accounts)):n.name===`chainChanged`?this.setChainId(this.formatChainId(n.data)):this.events.emit(n.name,n.data),this.events.emit(`session_event`,e)}),this.signer.on(`accountsChanged`,e=>{this.accounts=this.parseAccounts(e),this.events.emit(`accountsChanged`,this.accounts)}),this.signer.on(`chainChanged`,e=>{let t=parseInt(e);this.chainId=t,this.events.emit(`chainChanged`,pv(this.chainId)),this.persist()}),this.signer.on(`session_update`,e=>{this.events.emit(`session_update`,e)}),this.signer.on(`session_delete`,e=>{this.reset(),this.events.emit(`session_delete`,e),this.events.emit(`disconnect`,uv(lv({},W(`USER_DISCONNECTED`)),{data:e.topic,name:`USER_DISCONNECTED`}))}),this.signer.on(`display_uri`,e=>{this.events.emit(`display_uri`,e)})}switchEthereumChain(e){this.request({method:`wallet_switchEthereumChain`,params:[{chainId:e.toString(16)}]})}isCompatibleChainId(e){return typeof e==`string`&&e.startsWith(`${this.namespace}:`)}formatChainId(e){return`${this.namespace}:${e}`}parseChainId(e){return Number(e.split(`:`)[1])}setChainIds(e){let t=e.filter(e=>this.isCompatibleChainId(e)).map(e=>this.parseChainId(e));t.length&&(this.chainId=t[0],this.events.emit(`chainChanged`,pv(this.chainId)),this.persist())}setChainId(e){if(this.isCompatibleChainId(e)){let t=this.parseChainId(e);this.chainId=t,this.switchEthereumChain(t)}}parseAccountId(e){let[t,n,r]=e.split(`:`);return{chainId:`${t}:${n}`,address:r}}setAccounts(e){this.accounts=e.filter(e=>this.parseChainId(this.parseAccountId(e).chainId)===this.chainId).map(e=>this.parseAccountId(e).address),this.events.emit(`accountsChanged`,this.accounts)}getRpcConfig(e){let t=e?.chains??[],n=e?.optionalChains??[],r=t.concat(n);if(!r.length)throw Error("No chains specified in either `chains` or `optionalChains`");let i=t.length?e?.methods||Z_:[],a=t.length?e?.events||$_:[],o=e?.optionalMethods||[],s=e?.optionalEvents||[],c=e?.rpcMap||this.buildRpcMap(r,e.projectId),l=e?.qrModalOptions||void 0;return{chains:t?.map(e=>this.formatChainId(e)),optionalChains:n.map(e=>this.formatChainId(e)),methods:i,events:a,optionalMethods:o,optionalEvents:s,rpcMap:c,showQrModal:!!(e!=null&&e.showQrModal),qrModalOptions:l,projectId:e.projectId,metadata:e.metadata}}buildRpcMap(e,t){let n={};return e.forEach(e=>{n[e]=this.getRpcUrl(e,t)}),n}async initialize(e){if(this.rpc=this.getRpcConfig(e),this.chainId=this.rpc.chains.length?fv(this.rpc.chains):fv(this.rpc.optionalChains),this.signer=await J_.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:e.disableProviderPing,relayUrl:e.relayUrl,storage:e.storage,storageOptions:e.storageOptions,customStoragePrefix:e.customStoragePrefix,telemetryEnabled:e.telemetryEnabled,logger:e.logger}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let e;try{let t=await tv(),{convertWCMToAppKitOptions:n}=await Promise.resolve().then(function(){return kv}),r=n(uv(lv({},this.rpc.qrModalOptions),{chains:[...new Set([...this.rpc.chains,...this.rpc.optionalChains])],metadata:this.rpc.metadata,projectId:this.rpc.projectId}));if(!r.networks.length)throw Error(`No networks found for WalletConnect·`);e=t(uv(lv({},r),{universalProvider:this.signer,manualWCControl:!0}))}catch(e){throw console.warn(e),Error(`To use QR modal, please install @reown/appkit package`)}if(e)try{this.modal=e}catch(e){throw this.signer.logger.error(e),Error(`Could not generate WalletConnectModal Instance`)}}}loadConnectOpts(e){if(!e)return;let{chains:t,optionalChains:n,rpcMap:r}=e;t&&Oc(t)&&(this.rpc.chains=t.map(e=>this.formatChainId(e)),t.forEach(e=>{this.rpc.rpcMap[e]=r?.[e]||this.getRpcUrl(e)})),n&&Oc(n)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=n?.map(e=>this.formatChainId(e)),n.forEach(e=>{this.rpc.rpcMap[e]=r?.[e]||this.getRpcUrl(e)}))}getRpcUrl(e,t){return this.rpc.rpcMap?.[e]||`${X_}?chainId=eip155:${e}&projectId=${t||this.rpc.projectId}`}async loadPersistedSession(){if(this.session)try{let e=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),t=this.session.namespaces[`${this.namespace}:${e}`]?this.session.namespaces[`${this.namespace}:${e}`]:this.session.namespaces[this.namespace];this.setChainIds(e?[this.formatChainId(e)]:t?.accounts),this.setAccounts(t?.accounts)}catch(e){this.signer.logger.error(`Failed to load persisted session, clearing state...`),this.signer.logger.error(e),await this.disconnect().catch(e=>this.signer.logger.warn(e))}}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(e){return typeof e==`string`||e instanceof String?[this.parseAccount(e)]:e.map(e=>this.parseAccount(e))}},gv=Object.defineProperty,_v=Object.defineProperties,vv=Object.getOwnPropertyDescriptors,yv=Object.getOwnPropertySymbols,bv=Object.prototype.hasOwnProperty,xv=Object.prototype.propertyIsEnumerable,Sv=(e,t,n)=>t in e?gv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Cv=(e,t)=>{for(var n in t||={})bv.call(t,n)&&Sv(e,n,t[n]);if(yv)for(var n of yv(t))xv.call(t,n)&&Sv(e,n,t[n]);return e},wv=(e,t)=>_v(e,vv(t));function Tv(e){if(e)return{"--w3m-font-family":e[`--wcm-font-family`],"--w3m-accent":e[`--wcm-accent-color`],"--w3m-color-mix":e[`--wcm-background-color`],"--w3m-z-index":e[`--wcm-z-index`]?Number(e[`--wcm-z-index`]):void 0,"--w3m-qr-color":e[`--wcm-accent-color`],"--w3m-font-size-master":e[`--wcm-text-medium-regular-size`],"--w3m-border-radius-master":e[`--wcm-container-border-radius`],"--w3m-color-mix-strength":0}}var Ev=e=>{let[t,n]=e.split(`:`);return Ov({id:n,caipNetworkId:e,chainNamespace:t,name:``,nativeCurrency:{name:``,symbol:``,decimals:8},rpcUrls:{default:{http:[`https://rpc.walletconnect.org/v1`]}}})};function Dv(e){var t,n;let r=e.chains?.map(Ev).filter(Boolean);if(r.length===0)throw Error(`At least one chain must be specified`);let i=r.find(t=>t.id===e.defaultChain?.id),a={projectId:e.projectId,networks:r,themeMode:e.themeMode,themeVariables:Tv(e.themeVariables),chainImages:e.chainImages,connectorImages:e.walletImages,defaultNetwork:i,metadata:wv(Cv({},e.metadata),{name:e.metadata?.name||`WalletConnect`,description:e.metadata?.description||`Connect to WalletConnect-compatible wallets`,url:e.metadata?.url||`https://walletconnect.org`,icons:e.metadata?.icons||[`https://walletconnect.org/walletconnect-logo.png`]}),showWallets:!0,featuredWalletIds:e.explorerRecommendedWalletIds===`NONE`?[]:Array.isArray(e.explorerRecommendedWalletIds)?e.explorerRecommendedWalletIds:[],excludeWalletIds:e.explorerExcludedWalletIds===`ALL`?[]:Array.isArray(e.explorerExcludedWalletIds)?e.explorerExcludedWalletIds:[],enableEIP6963:!1,enableInjected:!1,enableCoinbase:!0,enableWalletConnect:!0,features:{email:!1,socials:!1}};if((t=e.mobileWallets)!=null&&t.length||(n=e.desktopWallets)!=null&&n.length){let t=[...(e.mobileWallets||[]).map(e=>({id:e.id,name:e.name,links:e.links})),...(e.desktopWallets||[]).map(e=>({id:e.id,name:e.name,links:{native:e.links.native,universal:e.links.universal}}))],n=[...a.featuredWalletIds||[],...a.excludeWalletIds||[]],r=t.filter(e=>!n.includes(e.id));r.length&&(a.customWallets=r)}return a}function Ov(e){return Cv({formatters:void 0,fees:void 0,serializers:void 0},e)}var kv=Object.freeze({__proto__:null,convertWCMToAppKitOptions:Dv,defineChain:Ov});export{hv as EthereumProvider};
|