hunt-mint-swap
Version:
A React component library for swapping MINT / HUNT buildings
4 lines • 99.2 kB
JavaScript
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ve=require("viem"),Ae=require("./index-BpveEvCF.cjs");class J{constructor(e,n){this.scope=e,this.module=n}storeObject(e,n){this.setItem(e,JSON.stringify(n))}loadObject(e){const n=this.getItem(e);return n?JSON.parse(n):void 0}setItem(e,n){localStorage.setItem(this.scopedKey(e),n)}getItem(e){return localStorage.getItem(this.scopedKey(e))}removeItem(e){localStorage.removeItem(this.scopedKey(e))}clear(){const e=this.scopedKey(""),n=[];for(let s=0;s<localStorage.length;s++){const r=localStorage.key(s);typeof r=="string"&&r.startsWith(e)&&n.push(r)}n.forEach(s=>localStorage.removeItem(s))}scopedKey(e){return`-${this.scope}${this.module?`:${this.module}`:""}:${e}`}static clearAll(){new J("CBWSDK").clear(),new J("walletlink").clear()}}const j={rpc:{invalidInput:-32e3,resourceNotFound:-32001,resourceUnavailable:-32002,transactionRejected:-32003,methodNotSupported:-32004,limitExceeded:-32005,parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603},provider:{userRejectedRequest:4001,unauthorized:4100,unsupportedMethod:4200,disconnected:4900,chainDisconnected:4901,unsupportedChain:4902}},$e={"-32700":{standard:"JSON RPC 2.0",message:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."},"-32600":{standard:"JSON RPC 2.0",message:"The JSON sent is not a valid Request object."},"-32601":{standard:"JSON RPC 2.0",message:"The method does not exist / is not available."},"-32602":{standard:"JSON RPC 2.0",message:"Invalid method parameter(s)."},"-32603":{standard:"JSON RPC 2.0",message:"Internal JSON-RPC error."},"-32000":{standard:"EIP-1474",message:"Invalid input."},"-32001":{standard:"EIP-1474",message:"Resource not found."},"-32002":{standard:"EIP-1474",message:"Resource unavailable."},"-32003":{standard:"EIP-1474",message:"Transaction rejected."},"-32004":{standard:"EIP-1474",message:"Method not supported."},"-32005":{standard:"EIP-1474",message:"Request limit exceeded."},4001:{standard:"EIP-1193",message:"User rejected the request."},4100:{standard:"EIP-1193",message:"The requested account and/or method has not been authorized by the user."},4200:{standard:"EIP-1193",message:"The requested method is not supported by this Ethereum provider."},4900:{standard:"EIP-1193",message:"The provider is disconnected from all chains."},4901:{standard:"EIP-1193",message:"The provider is disconnected from the specified chain."},4902:{standard:"EIP-3085",message:"Unrecognized chain ID."}},Jt="Unspecified error message.",On="Unspecified server error.";function nt(t,e=Jt){if(t&&Number.isInteger(t)){const n=t.toString();if(Ge($e,n))return $e[n].message;if(Qt(t))return On}return e}function Dn(t){if(!Number.isInteger(t))return!1;const e=t.toString();return!!($e[e]||Qt(t))}function Un(t,{shouldIncludeStack:e=!1}={}){const n={};if(t&&typeof t=="object"&&!Array.isArray(t)&&Ge(t,"code")&&Dn(t.code)){const s=t;n.code=s.code,s.message&&typeof s.message=="string"?(n.message=s.message,Ge(s,"data")&&(n.data=s.data)):(n.message=nt(n.code),n.data={originalError:pt(t)})}else n.code=j.rpc.internal,n.message=gt(t,"message")?t.message:Jt,n.data={originalError:pt(t)};return e&&(n.stack=gt(t,"stack")?t.stack:void 0),n}function Qt(t){return t>=-32099&&t<=-32e3}function pt(t){return t&&typeof t=="object"&&!Array.isArray(t)?Object.assign({},t):t}function Ge(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function gt(t,e){return typeof t=="object"&&t!==null&&e in t&&typeof t[e]=="string"}const P={rpc:{parse:t=>G(j.rpc.parse,t),invalidRequest:t=>G(j.rpc.invalidRequest,t),invalidParams:t=>G(j.rpc.invalidParams,t),methodNotFound:t=>G(j.rpc.methodNotFound,t),internal:t=>G(j.rpc.internal,t),server:t=>{if(!t||typeof t!="object"||Array.isArray(t))throw new Error("Ethereum RPC Server errors must provide single object argument.");const{code:e}=t;if(!Number.isInteger(e)||e>-32005||e<-32099)throw new Error('"code" must be an integer such that: -32099 <= code <= -32005');return G(e,t)},invalidInput:t=>G(j.rpc.invalidInput,t),resourceNotFound:t=>G(j.rpc.resourceNotFound,t),resourceUnavailable:t=>G(j.rpc.resourceUnavailable,t),transactionRejected:t=>G(j.rpc.transactionRejected,t),methodNotSupported:t=>G(j.rpc.methodNotSupported,t),limitExceeded:t=>G(j.rpc.limitExceeded,t)},provider:{userRejectedRequest:t=>oe(j.provider.userRejectedRequest,t),unauthorized:t=>oe(j.provider.unauthorized,t),unsupportedMethod:t=>oe(j.provider.unsupportedMethod,t),disconnected:t=>oe(j.provider.disconnected,t),chainDisconnected:t=>oe(j.provider.chainDisconnected,t),unsupportedChain:t=>oe(j.provider.unsupportedChain,t),custom:t=>{if(!t||typeof t!="object"||Array.isArray(t))throw new Error("Ethereum Provider custom errors must provide single object argument.");const{code:e,message:n,data:s}=t;if(!n||typeof n!="string")throw new Error('"message" must be a nonempty string');return new en(e,n,s)}}};function G(t,e){const[n,s]=Zt(e);return new Xt(t,n||nt(t),s)}function oe(t,e){const[n,s]=Zt(e);return new en(t,n||nt(t),s)}function Zt(t){if(t){if(typeof t=="string")return[t];if(typeof t=="object"&&!Array.isArray(t)){const{message:e,data:n}=t;if(e&&typeof e!="string")throw new Error("Must specify string message.");return[e||void 0,n]}}return[]}class Xt extends Error{constructor(e,n,s){if(!Number.isInteger(e))throw new Error('"code" must be an integer.');if(!n||typeof n!="string")throw new Error('"message" must be a nonempty string.');super(n),this.code=e,s!==void 0&&(this.data=s)}}class en extends Xt{constructor(e,n,s){if(!jn(e))throw new Error('"code" must be an integer such that: 1000 <= code <= 4999');super(e,n,s)}}function jn(t){return Number.isInteger(t)&&t>=1e3&&t<=4999}function st(){return t=>t}const _e=st(),Bn=st(),Hn=st();function Q(t){return Math.floor(t)}const tn=/^[0-9]*$/,nn=/^[a-f0-9]*$/;function ie(t){return it(crypto.getRandomValues(new Uint8Array(t)))}function it(t){return[...t].map(e=>e.toString(16).padStart(2,"0")).join("")}function ke(t){return new Uint8Array(t.match(/.{1,2}/g).map(e=>Number.parseInt(e,16)))}function he(t,e=!1){const n=t.toString("hex");return _e(e?`0x${n}`:n)}function De(t){return he(Ye(t),!0)}function Y(t){return Hn(t.toString(10))}function ne(t){return _e(`0x${BigInt(t).toString(16)}`)}function sn(t){return t.startsWith("0x")||t.startsWith("0X")}function rt(t){return sn(t)?t.slice(2):t}function rn(t){return sn(t)?`0x${t.slice(2)}`:`0x${t}`}function Re(t){if(typeof t!="string")return!1;const e=rt(t).toLowerCase();return nn.test(e)}function Wn(t,e=!1){if(typeof t=="string"){const n=rt(t).toLowerCase();if(nn.test(n))return _e(e?`0x${n}`:n)}throw P.rpc.invalidParams(`"${String(t)}" is not a hexadecimal string`)}function at(t,e=!1){let n=Wn(t,!1);return n.length%2===1&&(n=_e(`0${n}`)),e?_e(`0x${n}`):n}function ee(t){if(typeof t=="string"){const e=rt(t).toLowerCase();if(Re(e)&&e.length===40)return Bn(rn(e))}throw P.rpc.invalidParams(`Invalid Ethereum address: ${String(t)}`)}function Ye(t){if(Buffer.isBuffer(t))return t;if(typeof t=="string"){if(Re(t)){const e=at(t,!1);return Buffer.from(e,"hex")}return Buffer.from(t,"utf8")}throw P.rpc.invalidParams(`Not binary data: ${String(t)}`)}function fe(t){if(typeof t=="number"&&Number.isInteger(t))return Q(t);if(typeof t=="string"){if(tn.test(t))return Q(Number(t));if(Re(t))return Q(Number(BigInt(at(t,!0))))}throw P.rpc.invalidParams(`Not an integer: ${String(t)}`)}function le(t){if(t!==null&&(typeof t=="bigint"||Kn(t)))return BigInt(t.toString(10));if(typeof t=="number")return BigInt(fe(t));if(typeof t=="string"){if(tn.test(t))return BigInt(t);if(Re(t))return BigInt(at(t,!0))}throw P.rpc.invalidParams(`Not an integer: ${String(t)}`)}function qn(t){if(typeof t=="string")return JSON.parse(t);if(typeof t=="object")return t;throw P.rpc.invalidParams(`Not a JSON string or an object: ${String(t)}`)}function Kn(t){if(t==null||typeof t.constructor!="function")return!1;const{constructor:e}=t;return typeof e.config=="function"&&typeof e.EUCLID=="number"}async function Fn(){return crypto.subtle.generateKey({name:"ECDH",namedCurve:"P-256"},!0,["deriveKey"])}async function zn(t,e){return crypto.subtle.deriveKey({name:"ECDH",public:e},t,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function $n(t,e){const n=crypto.getRandomValues(new Uint8Array(12)),s=await crypto.subtle.encrypt({name:"AES-GCM",iv:n},t,new TextEncoder().encode(e));return{iv:n,cipherText:s}}async function Gn(t,{iv:e,cipherText:n}){const s=await crypto.subtle.decrypt({name:"AES-GCM",iv:e},t,n);return new TextDecoder().decode(s)}function an(t){switch(t){case"public":return"spki";case"private":return"pkcs8"}}async function on(t,e){const n=an(t),s=await crypto.subtle.exportKey(n,e);return it(new Uint8Array(s))}async function cn(t,e){const n=an(t),s=ke(e).buffer;return await crypto.subtle.importKey(n,new Uint8Array(s),{name:"ECDH",namedCurve:"P-256"},!0,t==="private"?["deriveKey"]:[])}async function Yn(t,e){const n=JSON.stringify(t,(s,r)=>{if(!(r instanceof Error))return r;const i=r;return Object.assign(Object.assign({},i.code?{code:i.code}:{}),{message:i.message})});return $n(e,n)}async function Vn(t,e){return JSON.parse(await Gn(e,t))}const Ue={storageKey:"ownPrivateKey",keyType:"private"},je={storageKey:"ownPublicKey",keyType:"public"},Be={storageKey:"peerPublicKey",keyType:"public"};class Jn{constructor(){this.storage=new J("CBWSDK","SCWKeyManager"),this.ownPrivateKey=null,this.ownPublicKey=null,this.peerPublicKey=null,this.sharedSecret=null}async getOwnPublicKey(){return await this.loadKeysIfNeeded(),this.ownPublicKey}async getSharedSecret(){return await this.loadKeysIfNeeded(),this.sharedSecret}async setPeerPublicKey(e){this.sharedSecret=null,this.peerPublicKey=e,await this.storeKey(Be,e),await this.loadKeysIfNeeded()}async clear(){this.ownPrivateKey=null,this.ownPublicKey=null,this.peerPublicKey=null,this.sharedSecret=null,this.storage.removeItem(je.storageKey),this.storage.removeItem(Ue.storageKey),this.storage.removeItem(Be.storageKey)}async generateKeyPair(){const e=await Fn();this.ownPrivateKey=e.privateKey,this.ownPublicKey=e.publicKey,await this.storeKey(Ue,e.privateKey),await this.storeKey(je,e.publicKey)}async loadKeysIfNeeded(){if(this.ownPrivateKey===null&&(this.ownPrivateKey=await this.loadKey(Ue)),this.ownPublicKey===null&&(this.ownPublicKey=await this.loadKey(je)),(this.ownPrivateKey===null||this.ownPublicKey===null)&&await this.generateKeyPair(),this.peerPublicKey===null&&(this.peerPublicKey=await this.loadKey(Be)),this.sharedSecret===null){if(this.ownPrivateKey===null||this.peerPublicKey===null)return;this.sharedSecret=await zn(this.ownPrivateKey,this.peerPublicKey)}}async loadKey(e){const n=this.storage.getItem(e.storageKey);return n?cn(e.keyType,n):null}async storeKey(e,n){const s=await on(e.keyType,n);this.storage.setItem(e.storageKey,s)}}function Qn(t){if(!t||!Array.isArray(t)||t.length!==1&&t.length!==2||typeof t[0]!="string"||!ve.isAddress(t[0]))throw P.rpc.invalidParams();if(t.length===2){if(!Array.isArray(t[1]))throw P.rpc.invalidParams();for(const e of t[1])if(typeof e!="string"||!e.startsWith("0x"))throw P.rpc.invalidParams()}}const me="4.3.7",dn="@coinbase/wallet-sdk";async function ot(t,e){const n=Object.assign(Object.assign({},t),{jsonrpc:"2.0",id:crypto.randomUUID()}),s=await window.fetch(e,{method:"POST",body:JSON.stringify(n),mode:"cors",headers:{"Content-Type":"application/json","X-Cbw-Sdk-Version":me,"X-Cbw-Sdk-Platform":dn}}),{result:r,error:i}=await s.json();if(i)throw i;return r}function Zn(){return globalThis.coinbaseWalletExtension}function Xn(){var t,e;try{const n=globalThis;return(e=(t=n.top)===null||t===void 0?void 0:t.ethereum)!==null&&e!==void 0?e:n.ethereum}catch{return}}function es({metadata:t,preference:e}){var n,s;const{appName:r,appLogoUrl:i,appChainIds:a}=t;if(e.options!=="smartWalletOnly"){const h=Zn();if(h)return(n=h.setAppInfo)===null||n===void 0||n.call(h,r,i,a,e),h}const o=Xn();if(o?.isCoinbaseBrowser)return(s=o.setAppInfo)===null||s===void 0||s.call(o,r,i,a,e),o}function ts(t){if(!t||typeof t!="object"||Array.isArray(t))throw P.rpc.invalidParams({message:"Expected a single, non-array, object argument.",data:t});const{method:e,params:n}=t;if(typeof e!="string"||e.length===0)throw P.rpc.invalidParams({message:"'args.method' must be a non-empty string.",data:t});if(n!==void 0&&!Array.isArray(n)&&(typeof n!="object"||n===null))throw P.rpc.invalidParams({message:"'args.params' must be an object or array if provided.",data:t});switch(e){case"eth_sign":case"eth_signTypedData_v2":case"eth_subscribe":case"eth_unsubscribe":throw P.provider.unsupportedMethod()}}const _t="accounts",mt="activeChain",yt="availableChains",bt="walletCapabilities";class ns{constructor(e){var n,s,r;this.metadata=e.metadata,this.communicator=e.communicator,this.callback=e.callback,this.keyManager=new Jn,this.storage=new J("CBWSDK","SCWStateManager"),this.accounts=(n=this.storage.loadObject(_t))!==null&&n!==void 0?n:[],this.chain=this.storage.loadObject(mt)||{id:(r=(s=e.metadata.appChainIds)===null||s===void 0?void 0:s[0])!==null&&r!==void 0?r:1},this.handshake=this.handshake.bind(this),this.request=this.request.bind(this),this.createRequestMessage=this.createRequestMessage.bind(this),this.decryptResponseMessage=this.decryptResponseMessage.bind(this)}async handshake(e){var n,s,r,i;await((s=(n=this.communicator).waitForPopupLoaded)===null||s===void 0?void 0:s.call(n));const a=await this.createRequestMessage({handshake:{method:e.method,params:Object.assign({},this.metadata,(r=e.params)!==null&&r!==void 0?r:{})}}),o=await this.communicator.postRequestAndWaitForResponse(a);if("failure"in o.content)throw o.content.failure;const h=await cn("public",o.sender);await this.keyManager.setPeerPublicKey(h);const g=(await this.decryptResponseMessage(o)).result;if("error"in g)throw g.error;if(e.method==="eth_requestAccounts"){const d=g.value;this.accounts=d,this.storage.storeObject(_t,d),(i=this.callback)===null||i===void 0||i.call(this,"accountsChanged",d)}}async request(e){var n;if(this.accounts.length===0){if(e.method==="wallet_sendCalls")return this.sendRequestToPopup(e);throw P.provider.unauthorized()}switch(e.method){case"eth_requestAccounts":return(n=this.callback)===null||n===void 0||n.call(this,"connect",{chainId:ne(this.chain.id)}),this.accounts;case"eth_accounts":return this.accounts;case"eth_coinbase":return this.accounts[0];case"net_version":return this.chain.id;case"eth_chainId":return ne(this.chain.id);case"wallet_getCapabilities":return this.handleGetCapabilitiesRequest(e);case"wallet_switchEthereumChain":return this.handleSwitchChainRequest(e);case"eth_ecRecover":case"personal_sign":case"wallet_sign":case"personal_ecRecover":case"eth_signTransaction":case"eth_sendTransaction":case"eth_signTypedData_v1":case"eth_signTypedData_v3":case"eth_signTypedData_v4":case"eth_signTypedData":case"wallet_addEthereumChain":case"wallet_watchAsset":case"wallet_sendCalls":case"wallet_showCallsStatus":case"wallet_grantPermissions":return this.sendRequestToPopup(e);default:if(!this.chain.rpcUrl)throw P.rpc.internal("No RPC URL set for chain");return ot(e,this.chain.rpcUrl)}}async sendRequestToPopup(e){var n,s;await((s=(n=this.communicator).waitForPopupLoaded)===null||s===void 0?void 0:s.call(n));const r=await this.sendEncryptedRequest(e),a=(await this.decryptResponseMessage(r)).result;if("error"in a)throw a.error;return a.value}async cleanup(){var e,n;this.storage.clear(),await this.keyManager.clear(),this.accounts=[],this.chain={id:(n=(e=this.metadata.appChainIds)===null||e===void 0?void 0:e[0])!==null&&n!==void 0?n:1}}async handleSwitchChainRequest(e){var n;const s=e.params;if(!s||!(!((n=s[0])===null||n===void 0)&&n.chainId))throw P.rpc.invalidParams();const r=fe(s[0].chainId);if(this.updateChain(r))return null;const a=await this.sendRequestToPopup(e);return a===null&&this.updateChain(r),a}async handleGetCapabilitiesRequest(e){Qn(e.params);const n=e.params[0],s=e.params[1];if(!this.accounts.some(o=>ve.isAddressEqual(o,n)))throw P.provider.unauthorized("no active account found");const r=this.storage.loadObject(bt);if(!r)return{};if(!s||s.length===0)return r;const i=new Set(s.map(o=>ve.hexToNumber(o)));return Object.fromEntries(Object.entries(r).filter(([o])=>{try{const h=ve.hexToNumber(o);return i.has(h)}catch{return!1}}))}async sendEncryptedRequest(e){const n=await this.keyManager.getSharedSecret();if(!n)throw P.provider.unauthorized("No valid session found, try requestAccounts before other methods");const s=await Yn({action:e,chainId:this.chain.id},n),r=await this.createRequestMessage({encrypted:s});return this.communicator.postRequestAndWaitForResponse(r)}async createRequestMessage(e){const n=await on("public",await this.keyManager.getOwnPublicKey());return{id:crypto.randomUUID(),sender:n,content:e,timestamp:new Date}}async decryptResponseMessage(e){var n,s;const r=e.content;if("failure"in r)throw r.failure;const i=await this.keyManager.getSharedSecret();if(!i)throw P.provider.unauthorized("Invalid session");const a=await Vn(r.encrypted,i),o=(n=a.data)===null||n===void 0?void 0:n.chains;if(o){const u=Object.entries(o).map(([g,d])=>({id:Number(g),rpcUrl:d}));this.storage.storeObject(yt,u),this.updateChain(this.chain.id,u)}const h=(s=a.data)===null||s===void 0?void 0:s.capabilities;return h&&this.storage.storeObject(bt,h),a}updateChain(e,n){var s;const r=n??this.storage.loadObject(yt),i=r?.find(a=>a.id===e);return i?(i!==this.chain&&(this.chain=i,this.storage.storeObject(mt,i),(s=this.callback)===null||s===void 0||s.call(this,"chainChanged",ne(i.id))),!0):!1}}var T={},A={},wt;function ss(){if(wt)return A;wt=1,Object.defineProperty(A,"__esModule",{value:!0}),A.toBig=A.shrSL=A.shrSH=A.rotrSL=A.rotrSH=A.rotrBL=A.rotrBH=A.rotr32L=A.rotr32H=A.rotlSL=A.rotlSH=A.rotlBL=A.rotlBH=A.add5L=A.add5H=A.add4L=A.add4H=A.add3L=A.add3H=void 0,A.add=v,A.fromBig=n,A.split=s;const t=BigInt(2**32-1),e=BigInt(32);function n(m,_=!1){return _?{h:Number(m&t),l:Number(m>>e&t)}:{h:Number(m>>e&t)|0,l:Number(m&t)|0}}function s(m,_=!1){const b=m.length;let U=new Uint32Array(b),W=new Uint32Array(b);for(let q=0;q<b;q++){const{h:re,l:ae}=n(m[q],_);[U[q],W[q]]=[re,ae]}return[U,W]}const r=(m,_)=>BigInt(m>>>0)<<e|BigInt(_>>>0);A.toBig=r;const i=(m,_,b)=>m>>>b;A.shrSH=i;const a=(m,_,b)=>m<<32-b|_>>>b;A.shrSL=a;const o=(m,_,b)=>m>>>b|_<<32-b;A.rotrSH=o;const h=(m,_,b)=>m<<32-b|_>>>b;A.rotrSL=h;const u=(m,_,b)=>m<<64-b|_>>>b-32;A.rotrBH=u;const g=(m,_,b)=>m>>>b-32|_<<64-b;A.rotrBL=g;const d=(m,_)=>_;A.rotr32H=d;const l=(m,_)=>m;A.rotr32L=l;const c=(m,_,b)=>m<<b|_>>>32-b;A.rotlSH=c;const p=(m,_,b)=>_<<b|m>>>32-b;A.rotlSL=p;const S=(m,_,b)=>_<<b-32|m>>>64-b;A.rotlBH=S;const w=(m,_,b)=>m<<b-32|_>>>64-b;A.rotlBL=w;function v(m,_,b,U){const W=(_>>>0)+(U>>>0);return{h:m+b+(W/2**32|0)|0,l:W|0}}const E=(m,_,b)=>(m>>>0)+(_>>>0)+(b>>>0);A.add3L=E;const L=(m,_,b,U)=>_+b+U+(m/2**32|0)|0;A.add3H=L;const k=(m,_,b,U)=>(m>>>0)+(_>>>0)+(b>>>0)+(U>>>0);A.add4L=k;const y=(m,_,b,U,W)=>_+b+U+W+(m/2**32|0)|0;A.add4H=y;const C=(m,_,b,U,W)=>(m>>>0)+(_>>>0)+(b>>>0)+(U>>>0)+(W>>>0);A.add5L=C;const x=(m,_,b,U,W,q)=>_+b+U+W+q+(m/2**32|0)|0;A.add5H=x;const M={fromBig:n,split:s,toBig:r,shrSH:i,shrSL:a,rotrSH:o,rotrSL:h,rotrBH:u,rotrBL:g,rotr32H:d,rotr32L:l,rotlSH:c,rotlSL:p,rotlBH:S,rotlBL:w,add:v,add3L:E,add3H:L,add4L:k,add4H:y,add5H:x,add5L:C};return A.default=M,A}var He={},ue={},vt;function is(){return vt||(vt=1,Object.defineProperty(ue,"__esModule",{value:!0}),ue.crypto=void 0,ue.crypto=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0),ue}var kt;function rs(){return kt||(kt=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.wrapXOFConstructorWithOpts=t.wrapConstructorWithOpts=t.wrapConstructor=t.Hash=t.nextTick=t.swap32IfBE=t.byteSwapIfBE=t.swap8IfBE=t.isLE=void 0,t.isBytes=n,t.anumber=s,t.abytes=r,t.ahash=i,t.aexists=a,t.aoutput=o,t.u8=h,t.u32=u,t.clean=g,t.createView=d,t.rotr=l,t.rotl=c,t.byteSwap=p,t.byteSwap32=S,t.bytesToHex=E,t.hexToBytes=y,t.asyncLoop=x,t.utf8ToBytes=M,t.bytesToUtf8=m,t.toBytes=_,t.kdfInputToBytes=b,t.concatBytes=U,t.checkOpts=W,t.createHasher=re,t.createOptHasher=ae,t.createXOFer=se,t.randomBytes=Tn;const e=is();function n(f){return f instanceof Uint8Array||ArrayBuffer.isView(f)&&f.constructor.name==="Uint8Array"}function s(f){if(!Number.isSafeInteger(f)||f<0)throw new Error("positive integer expected, got "+f)}function r(f,...I){if(!n(f))throw new Error("Uint8Array expected");if(I.length>0&&!I.includes(f.length))throw new Error("Uint8Array expected of length "+I+", got length="+f.length)}function i(f){if(typeof f!="function"||typeof f.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");s(f.outputLen),s(f.blockLen)}function a(f,I=!0){if(f.destroyed)throw new Error("Hash instance has been destroyed");if(I&&f.finished)throw new Error("Hash#digest() has already been called")}function o(f,I){r(f);const O=I.outputLen;if(f.length<O)throw new Error("digestInto() expects output buffer of length at least "+O)}function h(f){return new Uint8Array(f.buffer,f.byteOffset,f.byteLength)}function u(f){return new Uint32Array(f.buffer,f.byteOffset,Math.floor(f.byteLength/4))}function g(...f){for(let I=0;I<f.length;I++)f[I].fill(0)}function d(f){return new DataView(f.buffer,f.byteOffset,f.byteLength)}function l(f,I){return f<<32-I|f>>>I}function c(f,I){return f<<I|f>>>32-I>>>0}t.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function p(f){return f<<24&4278190080|f<<8&16711680|f>>>8&65280|f>>>24&255}t.swap8IfBE=t.isLE?f=>f:f=>p(f),t.byteSwapIfBE=t.swap8IfBE;function S(f){for(let I=0;I<f.length;I++)f[I]=p(f[I]);return f}t.swap32IfBE=t.isLE?f=>f:S;const w=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",v=Array.from({length:256},(f,I)=>I.toString(16).padStart(2,"0"));function E(f){if(r(f),w)return f.toHex();let I="";for(let O=0;O<f.length;O++)I+=v[f[O]];return I}const L={_0:48,_9:57,A:65,F:70,a:97,f:102};function k(f){if(f>=L._0&&f<=L._9)return f-L._0;if(f>=L.A&&f<=L.F)return f-(L.A-10);if(f>=L.a&&f<=L.f)return f-(L.a-10)}function y(f){if(typeof f!="string")throw new Error("hex string expected, got "+typeof f);if(w)return Uint8Array.fromHex(f);const I=f.length,O=I/2;if(I%2)throw new Error("hex string expected, got unpadded hex of length "+I);const D=new Uint8Array(O);for(let K=0,z=0;K<O;K++,z+=2){const ht=k(f.charCodeAt(z)),ft=k(f.charCodeAt(z+1));if(ht===void 0||ft===void 0){const Nn=f[z]+f[z+1];throw new Error('hex string expected, got non-hex character "'+Nn+'" at index '+z)}D[K]=ht*16+ft}return D}const C=async()=>{};t.nextTick=C;async function x(f,I,O){let D=Date.now();for(let K=0;K<f;K++){O(K);const z=Date.now()-D;z>=0&&z<I||(await(0,t.nextTick)(),D+=z)}}function M(f){if(typeof f!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(f))}function m(f){return new TextDecoder().decode(f)}function _(f){return typeof f=="string"&&(f=M(f)),r(f),f}function b(f){return typeof f=="string"&&(f=M(f)),r(f),f}function U(...f){let I=0;for(let D=0;D<f.length;D++){const K=f[D];r(K),I+=K.length}const O=new Uint8Array(I);for(let D=0,K=0;D<f.length;D++){const z=f[D];O.set(z,K),K+=z.length}return O}function W(f,I){if(I!==void 0&&{}.toString.call(I)!=="[object Object]")throw new Error("options should be object or undefined");return Object.assign(f,I)}class q{}t.Hash=q;function re(f){const I=D=>f().update(_(D)).digest(),O=f();return I.outputLen=O.outputLen,I.blockLen=O.blockLen,I.create=()=>f(),I}function ae(f){const I=(D,K)=>f(K).update(_(D)).digest(),O=f({});return I.outputLen=O.outputLen,I.blockLen=O.blockLen,I.create=D=>f(D),I}function se(f){const I=(D,K)=>f(K).update(_(D)).digest(),O=f({});return I.outputLen=O.outputLen,I.blockLen=O.blockLen,I.create=D=>f(D),I}t.wrapConstructor=re,t.wrapConstructorWithOpts=ae,t.wrapXOFConstructorWithOpts=se;function Tn(f=32){if(e.crypto&&typeof e.crypto.getRandomValues=="function")return e.crypto.getRandomValues(new Uint8Array(f));if(e.crypto&&typeof e.crypto.randomBytes=="function")return Uint8Array.from(e.crypto.randomBytes(f));throw new Error("crypto.getRandomValues must be defined")}})(He)),He}var Et;function as(){if(Et)return T;Et=1,Object.defineProperty(T,"__esModule",{value:!0}),T.shake256=T.shake128=T.keccak_512=T.keccak_384=T.keccak_256=T.keccak_224=T.sha3_512=T.sha3_384=T.sha3_256=T.sha3_224=T.Keccak=void 0,T.keccakP=w;const t=ss(),e=rs(),n=BigInt(0),s=BigInt(1),r=BigInt(2),i=BigInt(7),a=BigInt(256),o=BigInt(113),h=[],u=[],g=[];for(let k=0,y=s,C=1,x=0;k<24;k++){[C,x]=[x,(2*C+3*x)%5],h.push(2*(5*x+C)),u.push((k+1)*(k+2)/2%64);let M=n;for(let m=0;m<7;m++)y=(y<<s^(y>>i)*o)%a,y&r&&(M^=s<<(s<<BigInt(m))-s);g.push(M)}const d=(0,t.split)(g,!0),l=d[0],c=d[1],p=(k,y,C)=>C>32?(0,t.rotlBH)(k,y,C):(0,t.rotlSH)(k,y,C),S=(k,y,C)=>C>32?(0,t.rotlBL)(k,y,C):(0,t.rotlSL)(k,y,C);function w(k,y=24){const C=new Uint32Array(10);for(let x=24-y;x<24;x++){for(let _=0;_<10;_++)C[_]=k[_]^k[_+10]^k[_+20]^k[_+30]^k[_+40];for(let _=0;_<10;_+=2){const b=(_+8)%10,U=(_+2)%10,W=C[U],q=C[U+1],re=p(W,q,1)^C[b],ae=S(W,q,1)^C[b+1];for(let se=0;se<50;se+=10)k[_+se]^=re,k[_+se+1]^=ae}let M=k[2],m=k[3];for(let _=0;_<24;_++){const b=u[_],U=p(M,m,b),W=S(M,m,b),q=h[_];M=k[q],m=k[q+1],k[q]=U,k[q+1]=W}for(let _=0;_<50;_+=10){for(let b=0;b<10;b++)C[b]=k[_+b];for(let b=0;b<10;b++)k[_+b]^=~C[(b+2)%10]&C[(b+4)%10]}k[0]^=l[x],k[1]^=c[x]}(0,e.clean)(C)}class v extends e.Hash{constructor(y,C,x,M=!1,m=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=y,this.suffix=C,this.outputLen=x,this.enableXOF=M,this.rounds=m,(0,e.anumber)(x),!(0<y&&y<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=(0,e.u32)(this.state)}clone(){return this._cloneInto()}keccak(){(0,e.swap32IfBE)(this.state32),w(this.state32,this.rounds),(0,e.swap32IfBE)(this.state32),this.posOut=0,this.pos=0}update(y){(0,e.aexists)(this),y=(0,e.toBytes)(y),(0,e.abytes)(y);const{blockLen:C,state:x}=this,M=y.length;for(let m=0;m<M;){const _=Math.min(C-this.pos,M-m);for(let b=0;b<_;b++)x[this.pos++]^=y[m++];this.pos===C&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:y,suffix:C,pos:x,blockLen:M}=this;y[x]^=C,(C&128)!==0&&x===M-1&&this.keccak(),y[M-1]^=128,this.keccak()}writeInto(y){(0,e.aexists)(this,!1),(0,e.abytes)(y),this.finish();const C=this.state,{blockLen:x}=this;for(let M=0,m=y.length;M<m;){this.posOut>=x&&this.keccak();const _=Math.min(x-this.posOut,m-M);y.set(C.subarray(this.posOut,this.posOut+_),M),this.posOut+=_,M+=_}return y}xofInto(y){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(y)}xof(y){return(0,e.anumber)(y),this.xofInto(new Uint8Array(y))}digestInto(y){if((0,e.aoutput)(y,this),this.finished)throw new Error("digest() was already called");return this.writeInto(y),this.destroy(),y}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,(0,e.clean)(this.state)}_cloneInto(y){const{blockLen:C,suffix:x,outputLen:M,rounds:m,enableXOF:_}=this;return y||(y=new v(C,x,M,_,m)),y.state32.set(this.state32),y.pos=this.pos,y.posOut=this.posOut,y.finished=this.finished,y.rounds=m,y.suffix=x,y.outputLen=M,y.enableXOF=_,y.destroyed=this.destroyed,y}}T.Keccak=v;const E=(k,y,C)=>(0,e.createHasher)(()=>new v(y,k,C));T.sha3_224=E(6,144,224/8),T.sha3_256=E(6,136,256/8),T.sha3_384=E(6,104,384/8),T.sha3_512=E(6,72,512/8),T.keccak_224=E(1,144,224/8),T.keccak_256=E(1,136,256/8),T.keccak_384=E(1,104,384/8),T.keccak_512=E(1,72,512/8);const L=(k,y,C)=>(0,e.createXOFer)((x={})=>new v(y,k,x.dkLen===void 0?C:x.dkLen,!0));return T.shake128=L(31,168,128/8),T.shake256=L(31,136,256/8),T}var We,It;function ln(){if(It)return We;It=1;const{keccak_256:t}=as();function e(c){return Buffer.allocUnsafe(c).fill(0)}function n(c){return c.toString(2).length}function s(c,p){let S=c.toString(16);S.length%2!==0&&(S="0"+S);const w=S.match(/.{1,2}/g).map(v=>parseInt(v,16));for(;w.length<p;)w.unshift(0);return Buffer.from(w)}function r(c,p){const S=c<0n;let w;if(S){const v=(1n<<BigInt(p))-1n;w=(~c&v)+1n}else w=c;return w&=(1n<<BigInt(p))-1n,w}function i(c,p,S){const w=e(p);return c=o(c),S?c.length<p?(c.copy(w),w):c.slice(0,p):c.length<p?(c.copy(w,p-c.length),w):c.slice(-p)}function a(c,p){return i(c,p,!0)}function o(c){if(!Buffer.isBuffer(c))if(Array.isArray(c))c=Buffer.from(c);else if(typeof c=="string")d(c)?c=Buffer.from(g(l(c)),"hex"):c=Buffer.from(c);else if(typeof c=="number")c=intToBuffer(c);else if(c==null)c=Buffer.allocUnsafe(0);else if(typeof c=="bigint")c=s(c);else if(c.toArray)c=Buffer.from(c.toArray());else throw new Error("invalid type");return c}function h(c){return c=o(c),"0x"+c.toString("hex")}function u(c,p){if(c=o(c),p||(p=256),p!==256)throw new Error("unsupported");return Buffer.from(t(new Uint8Array(c)))}function g(c){return c.length%2?"0"+c:c}function d(c){return typeof c=="string"&&c.match(/^0x[0-9A-Fa-f]*$/)}function l(c){return typeof c=="string"&&c.startsWith("0x")?c.slice(2):c}return We={zeros:e,setLength:i,setLengthRight:a,isHexString:d,stripHexPrefix:l,toBuffer:o,bufferToHex:h,keccak:u,bitLengthFromBigInt:n,bufferBEFromBigInt:s,twosFromBigInt:r},We}var qe,St;function os(){if(St)return qe;St=1;const t=ln();function e(l){return l.startsWith("int[")?"int256"+l.slice(3):l==="int"?"int256":l.startsWith("uint[")?"uint256"+l.slice(4):l==="uint"?"uint256":l.startsWith("fixed[")?"fixed128x128"+l.slice(5):l==="fixed"?"fixed128x128":l.startsWith("ufixed[")?"ufixed128x128"+l.slice(6):l==="ufixed"?"ufixed128x128":l}function n(l){return Number.parseInt(/^\D+(\d+)$/.exec(l)[1],10)}function s(l){var c=/^\D+(\d+)x(\d+)$/.exec(l);return[Number.parseInt(c[1],10),Number.parseInt(c[2],10)]}function r(l){var c=l.match(/(.*)\[(.*?)\]$/);return c?c[2]===""?"dynamic":Number.parseInt(c[2],10):null}function i(l){var c=typeof l;if(c==="string"||c==="number")return BigInt(l);if(c==="bigint")return l;throw new Error("Argument is not a number")}function a(l,c){var p,S,w,v;if(l==="address")return a("uint160",i(c));if(l==="bool")return a("uint8",c?1:0);if(l==="string")return a("bytes",new Buffer(c,"utf8"));if(h(l)){if(typeof c.length>"u")throw new Error("Not an array?");if(p=r(l),p!=="dynamic"&&p!==0&&c.length>p)throw new Error("Elements exceed array size: "+p);w=[],l=l.slice(0,l.lastIndexOf("[")),typeof c=="string"&&(c=JSON.parse(c));for(v in c)w.push(a(l,c[v]));if(p==="dynamic"){var E=a("uint256",c.length);w.unshift(E)}return Buffer.concat(w)}else{if(l==="bytes")return c=new Buffer(c),w=Buffer.concat([a("uint256",c.length),c]),c.length%32!==0&&(w=Buffer.concat([w,t.zeros(32-c.length%32)])),w;if(l.startsWith("bytes")){if(p=n(l),p<1||p>32)throw new Error("Invalid bytes<N> width: "+p);return t.setLengthRight(c,32)}else if(l.startsWith("uint")){if(p=n(l),p%8||p<8||p>256)throw new Error("Invalid uint<N> width: "+p);S=i(c);const L=t.bitLengthFromBigInt(S);if(L>p)throw new Error("Supplied uint exceeds width: "+p+" vs "+L);if(S<0)throw new Error("Supplied uint is negative");return t.bufferBEFromBigInt(S,32)}else if(l.startsWith("int")){if(p=n(l),p%8||p<8||p>256)throw new Error("Invalid int<N> width: "+p);S=i(c);const L=t.bitLengthFromBigInt(S);if(L>p)throw new Error("Supplied int exceeds width: "+p+" vs "+L);const k=t.twosFromBigInt(S,256);return t.bufferBEFromBigInt(k,32)}else if(l.startsWith("ufixed")){if(p=s(l),S=i(c),S<0)throw new Error("Supplied ufixed is negative");return a("uint256",S*BigInt(2)**BigInt(p[1]))}else if(l.startsWith("fixed"))return p=s(l),a("int256",i(c)*BigInt(2)**BigInt(p[1]))}throw new Error("Unsupported or invalid type: "+l)}function o(l){return l==="string"||l==="bytes"||r(l)==="dynamic"}function h(l){return l.lastIndexOf("]")===l.length-1}function u(l,c){var p=[],S=[],w=32*l.length;for(var v in l){var E=e(l[v]),L=c[v],k=a(E,L);o(E)?(p.push(a("uint256",w)),S.push(k),w+=k.length):p.push(k)}return Buffer.concat(p.concat(S))}function g(l,c){if(l.length!==c.length)throw new Error("Number of types are not matching the values");for(var p,S,w=[],v=0;v<l.length;v++){var E=e(l[v]),L=c[v];if(E==="bytes")w.push(L);else if(E==="string")w.push(new Buffer(L,"utf8"));else if(E==="bool")w.push(new Buffer(L?"01":"00","hex"));else if(E==="address")w.push(t.setLength(L,20));else if(E.startsWith("bytes")){if(p=n(E),p<1||p>32)throw new Error("Invalid bytes<N> width: "+p);w.push(t.setLengthRight(L,p))}else if(E.startsWith("uint")){if(p=n(E),p%8||p<8||p>256)throw new Error("Invalid uint<N> width: "+p);S=i(L);const k=t.bitLengthFromBigInt(S);if(k>p)throw new Error("Supplied uint exceeds width: "+p+" vs "+k);w.push(t.bufferBEFromBigInt(S,p/8))}else if(E.startsWith("int")){if(p=n(E),p%8||p<8||p>256)throw new Error("Invalid int<N> width: "+p);S=i(L);const k=t.bitLengthFromBigInt(S);if(k>p)throw new Error("Supplied int exceeds width: "+p+" vs "+k);const y=t.twosFromBigInt(S,p);w.push(t.bufferBEFromBigInt(y,p/8))}else throw new Error("Unsupported or invalid type: "+E)}return Buffer.concat(w)}function d(l,c){return t.keccak(g(l,c))}return qe={rawEncode:u,solidityPack:g,soliditySHA3:d},qe}var Ke,Ct;function cs(){if(Ct)return Ke;Ct=1;const t=ln(),e=os(),n={type:"object",properties:{types:{type:"object",additionalProperties:{type:"array",items:{type:"object",properties:{name:{type:"string"},type:{type:"string"}},required:["name","type"]}}},primaryType:{type:"string"},domain:{type:"object"},message:{type:"object"}},required:["types","primaryType","domain","message"]},s={encodeData(i,a,o,h=!0){const u=["bytes32"],g=[this.hashType(i,o)];if(h){const d=(l,c,p)=>{if(o[c]!==void 0)return["bytes32",p==null?"0x0000000000000000000000000000000000000000000000000000000000000000":t.keccak(this.encodeData(c,p,o,h))];if(p===void 0)throw new Error(`missing value for field ${l} of type ${c}`);if(c==="bytes")return["bytes32",t.keccak(p)];if(c==="string")return typeof p=="string"&&(p=Buffer.from(p,"utf8")),["bytes32",t.keccak(p)];if(c.lastIndexOf("]")===c.length-1){const S=c.slice(0,c.lastIndexOf("[")),w=p.map(v=>d(l,S,v));return["bytes32",t.keccak(e.rawEncode(w.map(([v])=>v),w.map(([,v])=>v)))]}return[c,p]};for(const l of o[i]){const[c,p]=d(l.name,l.type,a[l.name]);u.push(c),g.push(p)}}else for(const d of o[i]){let l=a[d.name];if(l!==void 0)if(d.type==="bytes")u.push("bytes32"),l=t.keccak(l),g.push(l);else if(d.type==="string")u.push("bytes32"),typeof l=="string"&&(l=Buffer.from(l,"utf8")),l=t.keccak(l),g.push(l);else if(o[d.type]!==void 0)u.push("bytes32"),l=t.keccak(this.encodeData(d.type,l,o,h)),g.push(l);else{if(d.type.lastIndexOf("]")===d.type.length-1)throw new Error("Arrays currently unimplemented in encodeData");u.push(d.type),g.push(l)}}return e.rawEncode(u,g)},encodeType(i,a){let o="",h=this.findTypeDependencies(i,a).filter(u=>u!==i);h=[i].concat(h.sort());for(const u of h){if(!a[u])throw new Error("No type definition specified: "+u);o+=u+"("+a[u].map(({name:d,type:l})=>l+" "+d).join(",")+")"}return o},findTypeDependencies(i,a,o=[]){if(i=i.match(/^\w*/)[0],o.includes(i)||a[i]===void 0)return o;o.push(i);for(const h of a[i])for(const u of this.findTypeDependencies(h.type,a,o))!o.includes(u)&&o.push(u);return o},hashStruct(i,a,o,h=!0){return t.keccak(this.encodeData(i,a,o,h))},hashType(i,a){return t.keccak(this.encodeType(i,a))},sanitizeData(i){const a={};for(const o in n.properties)i[o]&&(a[o]=i[o]);return a.types&&(a.types=Object.assign({EIP712Domain:[]},a.types)),a},hash(i,a=!0){const o=this.sanitizeData(i),h=[Buffer.from("1901","hex")];return h.push(this.hashStruct("EIP712Domain",o.domain,o.types,a)),o.primaryType!=="EIP712Domain"&&h.push(this.hashStruct(o.primaryType,o.message,o.types,a)),t.keccak(Buffer.concat(h))}};Ke={TYPED_MESSAGE_SCHEMA:n,TypedDataUtils:s,hashForSignTypedDataLegacy:function(i){return r(i.data)},hashForSignTypedData_v3:function(i){return s.hash(i.data,!1)},hashForSignTypedData_v4:function(i){return s.hash(i.data)}};function r(i){const a=new Error("Expect argument to be non-empty array");if(typeof i!="object"||!i.length)throw a;const o=i.map(function(g){return g.type==="bytes"?t.toBuffer(g.value):g.value}),h=i.map(function(g){return g.type}),u=i.map(function(g){if(!g.name)throw a;return g.type+" "+g.name});return e.soliditySHA3(["bytes32","bytes32"],[e.soliditySHA3(new Array(i.length).fill("string"),u),e.soliditySHA3(h,o)])}return Ke}var ds=cs();const ye=Ae.getDefaultExportFromCjs(ds),ls="walletUsername",Ve="Addresses",us="AppVersion";function F(t){return t.errorMessage!==void 0}class hs{constructor(e){this.secret=e}async encrypt(e){const n=this.secret;if(n.length!==64)throw Error("secret must be 256 bits");const s=crypto.getRandomValues(new Uint8Array(12)),r=await crypto.subtle.importKey("raw",ke(n),{name:"aes-gcm"},!1,["encrypt","decrypt"]),i=new TextEncoder,a=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:s},r,i.encode(e)),o=16,h=a.slice(a.byteLength-o),u=a.slice(0,a.byteLength-o),g=new Uint8Array(h),d=new Uint8Array(u),l=new Uint8Array([...s,...g,...d]);return it(l)}async decrypt(e){const n=this.secret;if(n.length!==64)throw Error("secret must be 256 bits");return new Promise((s,r)=>{(async function(){const i=await crypto.subtle.importKey("raw",ke(n),{name:"aes-gcm"},!1,["encrypt","decrypt"]),a=ke(e),o=a.slice(0,12),h=a.slice(12,28),u=a.slice(28),g=new Uint8Array([...u,...h]),d={name:"AES-GCM",iv:new Uint8Array(o)};try{const l=await window.crypto.subtle.decrypt(d,i,g),c=new TextDecoder;s(c.decode(l))}catch(l){r(l)}})()})}}class fs{constructor(e,n,s){this.linkAPIUrl=e,this.sessionId=n;const r=`${n}:${s}`;this.auth=`Basic ${btoa(r)}`}async markUnseenEventsAsSeen(e){return Promise.all(e.map(n=>fetch(`${this.linkAPIUrl}/events/${n.eventId}/seen`,{method:"POST",headers:{Authorization:this.auth}}))).catch(n=>console.error("Unabled to mark event as failed:",n))}async fetchUnseenEvents(){var e;const n=await fetch(`${this.linkAPIUrl}/events?unseen=true`,{headers:{Authorization:this.auth}});if(n.ok){const{events:s,error:r}=await n.json();if(r)throw new Error(`Check unseen events failed: ${r}`);const i=(e=s?.filter(a=>a.event==="Web3Response").map(a=>({type:"Event",sessionId:this.sessionId,eventId:a.id,event:a.event,data:a.data})))!==null&&e!==void 0?e:[];return this.markUnseenEventsAsSeen(i),i}throw new Error(`Check unseen events failed: ${n.status}`)}}var V;(function(t){t[t.DISCONNECTED=0]="DISCONNECTED",t[t.CONNECTING=1]="CONNECTING",t[t.CONNECTED=2]="CONNECTED"})(V||(V={}));class ${setConnectionStateListener(e){this.connectionStateListener=e}setIncomingDataListener(e){this.incomingDataListener=e}constructor(e,n=WebSocket){this.WebSocketClass=n,this.webSocket=null,this.isDisconnecting=!1,this.url=e.replace(/^http/,"ws"),this.instanceId=$.instanceCounter++,$.activeInstances.add(this.instanceId)}async connect(){if(this.webSocket)throw new Error("webSocket object is not null");if(this.isDisconnecting)throw new Error("WebSocket is disconnecting, cannot reconnect on same instance");return new Promise((e,n)=>{var s;let r;try{this.webSocket=r=new this.WebSocketClass(this.url)}catch(i){n(i);return}(s=this.connectionStateListener)===null||s===void 0||s.call(this,V.CONNECTING),r.onclose=i=>{var a;this.clearWebSocket(),r.readyState!==WebSocket.OPEN&&n(new Error(`websocket error ${i.code}: ${i.reason}`)),(a=this.connectionStateListener)===null||a===void 0||a.call(this,V.DISCONNECTED)},r.onopen=i=>{var a;e(),(a=this.connectionStateListener)===null||a===void 0||a.call(this,V.CONNECTED),$.pendingData.length>0&&([...$.pendingData].forEach(h=>this.sendData(h)),$.pendingData=[])},r.onmessage=i=>{var a,o;if(i.data==="h")(a=this.incomingDataListener)===null||a===void 0||a.call(this,{type:"Heartbeat"});else try{const h=JSON.parse(i.data);(o=this.incomingDataListener)===null||o===void 0||o.call(this,h)}catch{}}})}disconnect(){var e;const{webSocket:n}=this;if(n){this.isDisconnecting=!0,this.clearWebSocket(),(e=this.connectionStateListener)===null||e===void 0||e.call(this,V.DISCONNECTED),this.connectionStateListener=void 0,this.incomingDataListener=void 0;try{n.close()}catch{}}}sendData(e){const{webSocket:n}=this;if(!n){$.pendingData.push(e),this.isDisconnecting||this.connect();return}if(n.readyState!==WebSocket.OPEN){$.pendingData.push(e);return}n.send(e)}clearWebSocket(){const{webSocket:e}=this;e&&(this.webSocket=null,e.onclose=null,e.onerror=null,e.onmessage=null,e.onopen=null)}cleanup(){$.activeInstances.delete(this.instanceId)}}$.instanceCounter=0;$.activeInstances=new Set;$.pendingData=[];const At=1e4,ps=6e4;class gs{constructor({session:e,linkAPIUrl:n,listener:s}){this.destroyed=!1,this.lastHeartbeatResponse=0,this.nextReqId=Q(1),this.reconnectAttempts=0,this.isReconnecting=!1,this._connected=!1,this._linked=!1,this.requestResolutions=new Map,this.handleSessionMetadataUpdated=i=>{if(!i)return;new Map([["__destroyed",this.handleDestroyed],["EthereumAddress",this.handleAccountUpdated],["WalletUsername",this.handleWalletUsernameUpdated],["AppVersion",this.handleAppVersionUpdated],["ChainId",o=>i.JsonRpcUrl&&this.handleChainUpdated(o,i.JsonRpcUrl)]]).forEach((o,h)=>{const u=i[h];u!==void 0&&o(u)})},this.handleDestroyed=i=>{var a;i==="1"&&((a=this.listener)===null||a===void 0||a.resetAndReload())},this.handleAccountUpdated=async i=>{var a;try{const o=await this.cipher.decrypt(i);(a=this.listener)===null||a===void 0||a.accountUpdated(o)}catch{}},this.handleMetadataUpdated=async(i,a)=>{var o;try{const h=await this.cipher.decrypt(a);(o=this.listener)===null||o===void 0||o.metadataUpdated(i,h)}catch{}},this.handleWalletUsernameUpdated=async i=>{this.handleMetadataUpdated(ls,i)},this.handleAppVersionUpdated=async i=>{this.handleMetadataUpdated(us,i)},this.handleChainUpdated=async(i,a)=>{var o;try{const h=await this.cipher.decrypt(i),u=await this.cipher.decrypt(a);(o=this.listener)===null||o===void 0||o.chainUpdated(h,u)}catch{}},this.session=e,this.cipher=new hs(e.secret),this.listener=s,this.linkAPIUrl=n,this.WebSocketClass=WebSocket;const r=this.createWebSocket();this.ws=r,this.http=new fs(n,e.id,e.key),this.setupVisibilityChangeHandler()}createWebSocket(){const e=new $(`${this.linkAPIUrl}/rpc`,this.WebSocketClass);return this.activeWsInstance=e,e.setConnectionStateListener(async n=>{if(e!==this.activeWsInstance)return;let s=!1;switch(n){case V.DISCONNECTED:this.heartbeatIntervalId&&(clearInterval(this.heartbeatIntervalId),this.heartbeatIntervalId=void 0),this.lastHeartbeatResponse=0,s=!1,this.destroyed||(async()=>{if(this.isReconnecting)return;this.isReconnecting=!0;const i=this.reconnectAttempts===0?0:3e3;await new Promise(a=>setTimeout(a,i)),!this.destroyed&&e===this.activeWsInstance?(this.reconnectAttempts++,"cleanup"in this.ws&&typeof this.ws.cleanup=="function"&&this.ws.cleanup(),this.ws=this.createWebSocket(),this.ws.connect().catch(()=>{}).finally(()=>{this.isReconnecting=!1})):this.isReconnecting=!1})();break;case V.CONNECTED:this.reconnectAttempts=0;try{s=await this.handleConnected(),this.fetchUnseenEventsAPI().catch(()=>{})}catch{break}this.connected=s,this.updateLastHeartbeat(),this.heartbeatIntervalId&&clearInterval(this.heartbeatIntervalId),this.heartbeatIntervalId=window.setInterval(()=>{this.heartbeat()},At),setTimeout(()=>{this.heartbeat()},100);break;case V.CONNECTING:break}n!==V.CONNECTED&&(this.connected=s)}),e.setIncomingDataListener(n=>{var s;switch(n.type){case"Heartbeat":this.updateLastHeartbeat();return;case"IsLinkedOK":case"Linked":{const r=n.type==="IsLinkedOK"?n.linked:void 0;this.linked=r||n.onlineGuests>0;break}case"GetSessionConfigOK":case"SessionConfigUpdated":{this.handleSessionMetadataUpdated(n.metadata);break}case"Event":{this.handleIncomingEvent(n);break}}n.id!==void 0&&((s=this.requestResolutions.get(n.id))===null||s===void 0||s(n))}),e}setupVisibilityChangeHandler(){this.visibilityChangeHandler=()=>{!document.hidden&&!this.destroyed&&(this.connected?this.heartbeat():this.reconnectWithFreshWebSocket())},this.focusHandler=()=>{!this.destroyed&&!this.connected&&this.reconnectWithFreshWebSocket()},document.addEventListener("visibilitychange",this.visibilityChangeHandler),window.addEventListener("focus",this.focusHandler),window.addEventListener("pageshow",e=>{e.persisted&&this.focusHandler&&this.focusHandler()})}reconnectWithFreshWebSocket(){if(this.destroyed)return;const e=this.ws;this.activeWsInstance=void 0,e.disconnect(),"cleanup"in e&&typeof e.cleanup=="function"&&e.cleanup(),this.ws=this.createWebSocket(),this.ws.connect().catch(()=>{})}connect(){if(this.destroyed)throw new Error("instance is destroyed");this.ws.connect()}async destroy(){this.destroyed||(await this.makeRequest({type:"SetSessionConfig",id:Q(this.nextReqId++),sessionId:this.session.id,metadata:{__destroyed:"1"}},{timeout:1e3}),this.destroyed=!0,this.activeWsInstance=void 0,this.heartbeatIntervalId&&(clearInterval(this.heartbeatIntervalId),this.heartbeatIntervalId=void 0),this.visibilityChangeHandler&&document.removeEventListener("visibilitychange",this.visibilityChangeHandler),this.focusHandler&&window.removeEventListener("focus",this.focusHandler),this.ws.disconnect(),"cleanup"in this.ws&&typeof this.ws.cleanup=="function"&&this.ws.cleanup(),this.listener=void 0)}get connected(){return this._connected}set connected(e){this._connected=e}get linked(){return this._linked}set linked(e){var n,s;this._linked=e,e&&((n=this.onceLinked)===null||n===void 0||n.call(this)),(s=this.listener)===null||s===void 0||s.linkedUpdated(e)}setOnceLinked(e){return new Promise(n=>{this.linked?e().then(n):this.onceLinked=()=>{e().then(n),this.onceLinked=void 0}})}async handleIncomingEvent(e){var n;if(!(e.type!=="Event"||e.event!=="Web3Response"))try{const s=await this.cipher.decrypt(e.data),r=JSON.parse(s);if(r.type!=="WEB3_RESPONSE")return;(n=this.listener)===null||n===void 0||n.handleWeb3ResponseMessage(r.id,r.response)}catch{}}async checkUnseenEvents(){await new Promise(e=>setTimeout(e,250));try{await this.fetchUnseenEventsAPI()}catch(e){console.error("Unable to check for unseen events",e)}}async fetchUnseenEventsAPI(){try{(await this.http.fetchUnseenEvents()).forEach(n=>{this.handleIncomingEvent(n)})}catch{}}async publishEvent(e,n,s=!1){const r=await this.cipher.encrypt(JSON.stringify(Object.assign(Object.assign({},n),{origin:location.origin,location:location.href,relaySource:"coinbaseWalletExtension"in window&&window.coinbaseWalletExtension?"injected_sdk":"sdk"}))),i={type:"PublishEvent",id:Q(this.nextReqId++),sessionId:this.session.id,event:e,data:r,callWebhook:s};return this.setOnceLinked(async()=>{const a=await this.makeRequest(i);if(a.type==="Fail")throw new Error(a.error||"failed to publish event");return a.eventId})}sendData(e){this.ws.sendData(JSON.stringify(e))}updateLastHeartbeat(){this.lastHeartbeatResponse=Date.now()}heartbeat(){if(Date.now()-this.lastHeartbeatResponse>At*2){this.ws.disconnect();return}if(this.connected)try{this.ws.sendData("h")}catch{}}async makeRequest(e,n={timeout:ps}){const s=e.id;this.sendData(e);let r;return Promise.race([new Promise((i,a)=>{r=window.setTimeout(()=>{a(new Error(`request ${s} timed out`))},n.timeout)}),new Promise(i=>{this.requestResolutions.set(s,a=>{clearTimeout(r),i(a),this.requestResolutions.delete(s)})})])}async handleConnected(){return(await this.makeRequest({type:"HostSession",id:Q(this.nextReqId++),sessionId:this.session.id,sessionKey:this.session.key})).type==="Fail"?!1:(this.sendData({type:"IsLinked",id:Q(this.nextReqId++),sessionId:this.session.id}),this.sendData({type:"GetSessionConfig",id:Q(this.nextReqId++),sessionId:this.session.id}),!0)}}class _s{constructor(){this._nextRequestId=0,this.callbacks=new Map}makeRequestId(){this._nextRequestId=(this._nextRequestId+1)%2147483647;const e=this._nextRequestId,n=rn(e.toString(16));return this.callbacks.get(n)&&this.callbacks.delete(n),e}}const Lt="session:id",Pt="session:secret",xt="session:linked";class ce{constructor(e,n,s,r=!1){this.storage=e,this.id=n,this.secret=s,this.key=Ae.bytesToHex(Ae.sha256(`${n}, ${s} WalletLink`)),this._linked=!!r}static create(e){const n=ie(16),s=ie(32);return new ce(e,n,s).save()}static load(e){const n=e.getItem(Lt),s=e.getItem(xt),r=e.getItem(Pt);return n&&r?new ce(e,n,r,s==="1"):null}get linked(){return this._linked}set linked(e){this._linked=e,this.persistLinked()}save(){return this.storage.setItem(Lt,this.id),this.storage.setItem(Pt,this.secret),this.persistLinked(),this}persistLinked(){this.storage.setItem(xt,this._linked?"1":"0")}}function ms(){try{return window.frameElement!==null}catch{return!1}}function ys(){try{return ms()&&window.top?window.top.location:window.location}catch{return window.location}}function bs(){var t;return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test((t=window?.navigator)===null||t===void 0?void 0:t.userAgent)}function un(){var t,e;return(e=(t=window?.matchMedia)===null||t===void 0?void 0:t.call(window,"(prefers-color-scheme: dark)").matches)!==null&&e!==void 0?e:!1}const ws='@namespace svg "http://www.w3.org/2000/svg";.-cbwsdk-css-reset,.-cbwsdk-css-reset *{animation:none;animation-delay:0;animation-direction:normal;animation-duration:0;animation-fill-mode:none;animation-iteration-count:1;animation-name:none;animation-play-state:running;animation-timing-function:ease;backface-visibility:visible;background:0;background-attachment:scroll;background-clip:border-box;background-color:rgba(0,0,0,0);background-image:none;background-origin:padding-box;background-position:0 0;background-position-x:0;background-position-y:0;background-repeat:repeat;background-size:auto auto;border:0;border-style:none;border-width:medium;border-color:inherit;border-bottom:0;border-bottom-color:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-style:none;border-bottom-width:medium;border-collapse:separate;border-image:none;border-left:0;border-left-color:inherit;border-left-style:none;border-left-width:medium;border-radius:0;border-right:0;border-right-color:inherit;border-right-style:none;border-right-width:medium;border-spacing:0;border-top:0;border-top-color:inherit;border-top-left-radius:0;border-top-right-radius:0;border-top-style:none;border-top-width:medium;box-shadow:none;box-sizing:border-box;caption-side:top;clear:none;clip:auto;color:inherit;columns:auto;column-count:auto;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-rule-color:currentColor;column-rule-style:none;column-rule-width:none;column-span:1;column-width:auto;counter-increment:none;counter-reset:none;direction:ltr;empty-cells:show;float:none;font:normal;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;height:auto;hyphens:none;letter-spacing:normal;line-height:normal;list-style:none;list-style-image:none;list-style-position:outside;list-style-type:disc;margin:0;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;opacity:1;orphans:0;outline:0;outline-color:invert;outline-style:none;outline-width:medium;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;pointer-events:auto;position:static;quotes:"\\201C" "\\201D" "\\2018" "\\2019";tab-size:8;table-layout:auto;text-align:inherit;text-align-last:auto;text-decoration:none;text-decoration-color:inherit;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-shadow:none;text-transform:none;transform:none;transform-style:flat;transition:none;transition-delay:0s;transition-duration:0s;transition-property:none;transition-timing-function:ease;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:0;word-spacing:normal;z-index:auto}.-cbwsdk-css-reset strong{font-weight:bold}.-cbwsdk-css-reset *{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;line-height:1}.-cbwsdk-css-reset [class*=container]{margin:0;padding:0}.-cbwsdk-css-reset style{display:none}';function hn(){const t=document.createElement("style");t.type="text/css",t.appendChild(document.createTextNode(ws)),document.documentElement.appendChild(t)}function fn(t){var e,n,s="";if(typeof t=="string"||typeof t=="number")s+=t;else if(typeof t=="object")if(Array.isArray(t))for(e=0;e<t.length;e++)t[e]&&(n=fn(t[e]))&&(s&&(s+=" "),s+=n);else for(e in t)t[e]&&(s&&(s+=" "),s+=e);return s}function pe(){for(var t,e,n=0,s="";n<arguments.length;)(t=arguments[n++])&&(e=fn(t))&&(s&&(s+=" "),s+=e);return s}var Te,N,pn,te,Mt,gn,_n,Fe,Ee,ge,mn,ct,Je,Qe,Le={},Pe=[],vs=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Ne=Array.isArray;function X(t,e){for(var n in e)t[n]=e[n];return t}function dt(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function R(t,e,n){var s,r,i,a={};for(i in e)i=="key"?s=e[i]:i=="ref"?r=e[i]:a[i]=e[i];if(arguments.length>2&&(a.children=arguments.length>3?Te.call(arguments,2):n),typeof t=="function"&&t.defaultProps!=null)for(i in t.defaultProps)a[i]===void 0&&(a[i]=t.defaultProps[i]);return Ie(t,a,s,r,null)}function Ie(t,e,n,s,r){var i={type:t,props:e,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:r??++pn,__i:-1,__u:0};return r==null&&N.vnode!=null&&N.vnode(i),i}function Oe(t){return t.children}function Se(t,e){this.props=t,this.context=e}function de(t,e){if(e==null)return t.__?de(t.__,t.__i+1):null;for(var n;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null)return n.__e;return typeof t.type=="function"?de(t):null}function ks(t){if(t.__P&&t.__d){var e=t.__v,n=e.__e,s=[],r=[],i=X({},e);i.__v=e.__v+1,N.vnode&&N.vnode(i),lt(t.__P,i,e,t.__n,t.__P.namespaceURI,32&e.__u?[n]:null,s,n??de(e),!!(32&e.__u),r),i.__v=e.__v,i.__.__k[i.__i]=i,vn(s,i,r),e.__e=e.__=null,i.__e!=n&&yn(i)}}function yn(t){if((t=t.__)!=null&&t.__c!=null)return t.__e=t.__c.base=null,t.__k.some(function(e){if(e!=null&&e.__e!=null)return t.__e=t.__c.base=e.__e}),yn(t)}function Rt(t){(!t.__d&&(t.__d=!0)&&te.push(t)&&!xe.__r++||Mt!=N.debounceRendering)&&((Mt=N.debounceRendering)||gn)(xe)}function xe(){try{for(var t,e=1;te.length;)te.length>e&&te.sort(_n),t=te.shift(),e=te.length,ks(t)}finally{te.length=xe.__r=0}}function bn(t,e,n,s,r,i,a,o,h,u,g){var d,l,c,p,S,w,v,E=s&&s.__k||Pe,L=e.length;for(h=Es(n,e,E,h,L),d=0;d<L;d++)(c=n.__k[d])!=null&&(l=c.__i!=-1&&E[c.__i]||Le,c.__i=d,w=lt(t,c,l,r,i,a,o,h,u,g),p=c.__e,c.ref&&l.ref!=c.ref&&(l.ref&&ut(l.ref,null,c),g.push(c.ref,c.__c||p,c)),S==null&&p!=null&&(S=p),(v=!!(4&c.__u))||l.__k===c.__k?(h=wn(c,h,t,v),v&&l.__e&&(l.__e=null)):typeof c.type=="function"&&w!==void 0?h=w:p&&(h=p.nextSibling),c.__u&=-7);return n.__e=S,h}function Es(t,e,n,s,r){var i,a,o,h,u,g=n.length,d=g,l=0;for(t.__k=new Array(r),i=0;i<r;i++)(a=e[i])!=null&&typeof a!="boolean"&&typeof a!="function"?(typeof a=="string"||typeof a=="number"||typeof a=="bigint"||a.constructor==String?a=t.__k[i]=Ie(null,a,null,null,null):Ne(a)?a=t.__k[i]=Ie(Oe,{children:a},null,null,null):a.constructor===void 0&&a.__b>0?a=t.__k[i]=Ie(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):t.__k[i]=a,h=i+l,a.__=t,a.__b=t.__b+1,o=null,(u=a.__i=Is(a,n,h,d))!=-1&&(d--,(o=n[u])&&(o.__u|=2)),o==null||o.__v==null?(u==-1&&(r>g?l--:r<g&&l++),typeof a.type!="function"&&(a.__u|=4)):u!=h&&(u==h-1?l--:u==h+1?l++:(u>h?l--:l++,a.__u|=4))):t.__k[i]=null;if(d)for(i=0;i<g;i++)(o=n[i])!=null&&(2&o.__u)==0&&(o.__e==s&&(s=de(o)),En(o,o));return s}function wn(t,e,n,s){var r,i;if(typeof t.type=="function"){for(r=t.__k,i=0;r&&i<r.length;i++)r[i]&&(r[i].__=t,e=wn(r[i],e,n,s));return e}t.__e!=e&&(s&&(e&&t.type&&!e.parentNode&&(e=de(t)),n.insertBefore(t.__e,e||null)),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType==8);return e}function Is(t,e,n,s){var r,i,a,o=t.key,h=t.type,u=e[n],g=u!=null&&(2&u.__u)==0;if(u===null&&o==null||g&&o==u.key&&h==u.type)return n;if(s>(g?1:0)){for(r=n-1,i=n+1;r>=0||i<e.length;)if((u=e[a=r>=0?r--:i++])!=null&&(2&u.__u)==0&&o==u.key&&h==u.type)return a}return-1}function Tt(t,e,n){e[0]=="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||vs.test(e)?n:n+"px"}function be(t,e,n,s,r){var i,a;e:if(e=="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof s=="string"&&(t.style.cssText=s=""),s)for(e in s)n&&e in n||Tt(t.style,e,"");if(n)for(e in n)s&&n[e]==s[e]||Tt(t.style,e,n[e])}else if(e[0]=="o"&&e[1]=="n")i=e!=(e=e.replace(mn,"$1")),a=e.toLowerCase(),e=a in t||e=="onFocusOut"||e=="onFocusIn"?a.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+i]=n,n?s?n[ge]=s[ge]:(n[ge]=ct,t.addEventListener(e,i?Qe:Je,i)):t.removeEventListener(e,i?Qe:Je,i);else{if(r=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function Nt(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e[Ee]==null)e[Ee]=ct++;else if(e[Ee]<n[ge])return;return n(N.event?N.event(e):e)}}}function lt(t,e,n,s,r,i,a,o,h,u){var g,d,l,c,p,S,w,v,E,L,k,y,C,x,M,m=e.type;if(e.constructor!==void 0)return null;128&n.__u&&(h=!!(32&n.__u),i=[o=e.__e=n.__e]),(g=N.__b)&&g(e);e:if(typeof m=="function")try{if(v=e.props,E=m.prototype&&m.prototype.render,L=(g=m.contextType)&&s[g.__c],k=g?L?L.props.value:g.__:s,n.__c?w=(d=e.__c=n.__c).__=d.__E:(E?e.__c=d=new m(v,k):(e.__c=d=new Se(v,k),d.constructor=m,d.render=Cs),L&&L.sub(d),d.state||(d.state={}),d.__n=s,l=d.__d=!0,d.__h=[],d._sb=[]),E&&d.__s==null&&(d.__s=d.state),E&&m.getDerivedStateFromProps!=null&&(d.__s==d.state&&(d.__s=X({},d.__s)),X(d.__s,m.getDerivedStateFromProps(v,d.__s))),c=d.props,p=d.state,d.__v=e,l)E&&m.getDerivedStateFromProps==null&&d.componentWillMount!=null&&d.componentWillMount(),E&&d.componentDidMount!=null&&d.__h.push(d.componentDidMount);else{if(E&&m.getDerivedStateFromProps==null&&v!==c&&d.componentWillReceiveProps!=null&&d.componentWillReceiveProps(v,k),e.__v==n.__v||!d.__e&&d.shouldComponentUpdate!=null&&d.shouldComponentUpdate(v,d.__s,k)===!1){e.__v!=n.__v&&(d.props=v,d.state=d.__s,d.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.some(function(_){_&&(_.__=e)}),Pe.push.apply(d.__h,d._sb),d._sb=[],d.__h.length&&a.push(d);break e}d.componentWillUpdate!=null&&d.componentWillUpdate(v,d.__s,k),E&&d.componentDidUpdate!=null&&d.__h.push(function(){d.componentDidUpdate(c,p,S)})}if(d.context=k,d.props=v,d.__P=t,d.__e=!1,y=N.__r,C=0,E)d.state=d.__s,d.__d=!1,y&&y(e),g=d.render(d.props,d.state,d.context),Pe.push.apply(d.__h,d._sb),d._sb=[];else do d.__d=!1,y&&y(e),g=d.render(d.props,d.state,d.context),d.state=d.__s;while(d.__d&&++C<25);d.state=d.__s,d.getChildContext!=null&&(s=X(X({},s),d.getChildContext())),E&&!l&&d.getSnapshotBeforeUpdate!=null&&(S=d.getSnapshotBeforeUpdate(c,p)),x=g!=null&&g.type===Oe&&g.key==null?kn(g.props.children):g,o=bn(t,Ne(x)?x:[x],e,n,s,r,i,a,o,h,u),d.base=e.__e,e.__u&=-161,d.__h.length&&a.push(d),w&&(d.__E=d.__=null)}catch(_){if(e.__v=null,h||i!=null)if(_.then){for(e.__u|=h?160:128;o&&o.nodeType==8&&o.nextSibling;)o=o.nextSibling;i[i.indexOf(o)]=null,e.__e=o}else{for(M=i.length;M--;)dt(i[M]);Ze(e)}else e.__e=n.__e,e.__k=n.__k,_.then||Ze(e);N.__e(_,e,n)}else i==null&&e.__v==n.__v?(e.__k=n.__k,e.__e=n.__e):o=e.__e=Ss(n.__e,e,n,s,r,i,a,h,u);return(g=N.diffed)&&g(e),128&e.__u?void 0:o}function Ze(t){t&&(t.__c&&(t.__c.__e=!0),t.__k&&t.__k.some(Ze))}function vn(t,e,n){for(var s=0;s<n.length;s++)ut(n[s],n[++s],n[++s]);N.__c&&N.__c(e,t),t.some(function(r){try{t=r.__h,r.__h=[],t.some(function(i){i.call(r)})}catch(i){N.__e(i,r.__v)}})}function kn(t){return typeof t!="object"||t==null||t.__b>0?t:Ne(t)?t.map(kn):X({},t)}function Ss(t,e,n,s,r,i,a,o,h){var u,g,d,l,c,p,S,w=n.props||Le,v=e.props,E=e.type;if(E=="svg"?r="http://www.w3.org/2000/svg":E=="math"?r="http://www.w3.org/1998/Math/MathML":r||(r="http://www.w3.org/1999/xhtml"),i!=null){for(u=0;u<i.length;u++)if((c=i[u])&&"setAttribute"in c==!!E&&(E?c.localName==E:c.nodeType==3)){t=c,i[u]=null;break}}if(t==null){if(E==null)return document.createTextNode(v);t=document.createElementNS(r,E,v.is&&v),o&&(N.__m&&N.__m(e,i),o=!1),i=null}if(E==null)w===v||o&&t.data==v||(t.data=v);else{if(i=i&&Te.call(t.childNodes),!o&&i!=null)for(w={},u=0;u<t.attributes.length;u++)w[(c=t.attributes[u]).name]=c.value;for(u in w)c=w[u],u=="dangerouslySetInnerHTML"?d=c:u=="children"||u in v||u=="value"&&"defaultValue"in v||u=="checked"&&"defaultChecked"in v||be(t,u,null,c,r);for(u in v)c=v[u],u=="children"?l=c:u=="dangerouslySetInnerHTML"?g=c:u=="value"?p=c:u=="checked"?S=c:o&&typeof c!="function"||w[u]===c||be(t,u,c,w[u],r);if(g)o||d&&(g.__html==d.__html||g.__html==t.innerHTML)||(t.innerHTML=g.__html),e.__k=[];else if(d&&(t.innerHTML=""),bn(e.type=="template"?t.content:t,Ne(l)?l:[l],e,n,s,E=="foreignObject"?"http://www.w3.org/1999/xhtml":r,i,a,i?i[0]:n.__k&&de(n,0),o,h),i!=null)for(u=i.length;u--;)dt(i[u]);o||(u="value",E=="progress"&&p==null?t.removeAttribute("value"):p!=null&&(p!==t[u]||E=="progress"&&!p||E=="option"&&p!=w[u])&&be(t,u,p,w[u],r),u="checked",S!=null&&S!=t[u]&&be(t,u,S,w[u],r))}return t}function ut(t,e,n){try{if(typeof t=="function"){var s=typeof t.__u=="function";s&&t.__u(),s&&e==null||(t.__u=t(e))}else t.current=e}catch(r){N.__e(r,n)}}function En(t,e,n){var s,r;if(N.unmount&&N.unmount(t),(s=t.ref)&&(s.current&&s.current!=t.__e||ut(s,null,e)),(s=t.__c)!=null){if(s.componentWillUnmount)try{s.componentWillUnmount()}catch(i){N.__e(i,e)}s.base=s.__P=null}if(s=t.__k)for(r=0;r<s.length;r++)s[r]&&En(s[r],e,n||typeof t.type!="function");n||dt(t.__e),t.__c=t.__=t.__e=void 0}function Cs(t,e,n){return this.constructor(t,n)}function Xe(t,e,n){var s,r,i,a;e==document&&(e=document.documentElement),N.__&&N.__(t,e),r=(s=!1)?null:e.__k,i=[],a=[],lt(e,t=e.__k=R(Oe,null,[t]),r||Le,Le,e.namespaceURI,r?null:e.firstChild?Te.call(e.childNodes):null,i,r?r.__e:e.firstChild,s,a),vn(i,t,a)}Te=Pe.slice,N={__e:function(t,e,n,s){for(var r,i,a;e=e.__;)if((r=e.__c)&&!r.__)try{if((i=r.constructor)&&i.getDerivedStateFromError!=null&&(r.setState(i.getDerivedStateFromError(t)),a=r.__d),r.componentDidCatch!=null&&(r.componentDidCatch(t,s||{}),a=r.__d),a)return r.__E=r}catch(o){t=o}throw t}},pn=0,Se.prototype.setState=function(t,e){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=X({},this.state),typeof t=="function"&&(t=t(X({},n),this.props)),t&&X(n,t),t!=null&&this.__v&&(e&&this._sb.push(e),Rt(this))},Se.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),Rt(this))},Se.prototype.render=Oe,te=[],gn=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,_n=function(t,e){return t.__v.__b-e.__v.__b},xe.__r=0,Fe=Math.random().toString(8),Ee="__d"+Fe,ge="__a"+Fe,mn=/(PointerCapture)$|Capture$/i,ct=0,Je=Nt(!1),Qe=Nt(!0);var Me,B,ze,Ot,et=0,In=[],H=N,Dt=H.__b,Ut=H.__r,jt=H.diffed,Bt=H.__c,Ht=H.unmount,Wt=H.__;function Sn(t,e){H.__h&&H.__h(B,t,et||e),et=0;var n=B.__H||(B.__H={__:[],__h:[]});return t>=n.__.length&&n.__.push({}),n.__[t]}function qt(t){return et=1,As(Cn,t)}function As(t,e,n){var s=Sn(Me++,2);if(s.t=t,!s.__c&&(s.__=[Cn(void 0,e),function(o){var h=s.__N?s.__N[0]:s.__[0],u=s.t(h,o);h!==u&&(s.__N=[u,s.__[1]],s.__c.setState({}))}],s.__c=B,!B.__f)){var r=function(o,h,u){if(!s.__c.__H)return!0;var g=s.__c.__H.__.filter(function(l){return l.__c});if(g.every(function(l){return!l.__N}))return!i||i.call(this,o,h,u);var d=s.__c.props!==o;return g.some(function(l){if(l.__N){var c=l.__[0];l.__=l.__N,l.__N=void 0,c!==l.__[0]&&(d=!0)}}),i&&i.call(this,o,h,u)||d};B.__f=!0;var i=B.shouldComponentUpdate,a=B.componentWillUpdate;B.componentWillUpdate=function(o,h,u){if(this.__e){var g=i;i=void 0,r(o,h,u),i=g}a&&a.call(this,o,h,u)},B.shouldComponentUpdate=r}return s.__N||s.__}function Ls(t,e){var n=Sn(Me++,3);!H.__s&&Ms(n.__H,e)&&(n.__=t,n.u=e,B.__H.__h.push(n))}function Ps(){for(var t;t=In.shift();){var e=t.__H;if(t.__P&&e)try{e.__h.some(Ce),e.__h.some(tt),e.__h=[]}catch(n){e.__h=[],H.__e(n,t.__v)}}}H.__b=function(t){B=null,Dt&&Dt(t)},H.__=function(t,e){t&&e.__k&&e.__k.__m&&(t.__m=e.__k.__m),Wt&&Wt(t,e)},H.__r=function(t){Ut&&Ut(t),Me=0;var e=(B=t.__c).__H;e&&(ze===B?(e.__h=[],B.__h=[],e.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(e.__h.some(Ce),e.__h.some(tt),e.__h=[],Me=0)),ze=B},H.diffed=function(t){jt&&jt(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(In.push(e)!==1&&Ot===H.requestAnimationFrame||((Ot=H.requestAnimationFrame)||xs)(Ps)),e.__H.__.some(function(n){n.u&&(n.__H=n.u),n.u=void 0})),ze=B=null},H.__c=function(t,e){e.some(function(n){try{n.__h.some(Ce),n.__h=n.__h.filter(function(s){return!s.__||tt(s)})}catch(s){e.some(function(r){r.__h&&(r.__h=[])}),e=[],H.__e(s,n.__v)}}),Bt&&Bt(t,e)},H.unmount=function(t){Ht&&Ht(t);var e,n=t.__c;n&&n.__H&&(n.__H.__.some(function(s){try{Ce(s)}catch(r){e=r}}),n.__H=void 0,e&&H.__e(e,n.__v))};var Kt=typeof requestAnimationFrame=="function";function xs(t){var e,n=function(){clearTimeout(s),Kt&&cancelAnimationFrame(e),setTimeout(t)},s=setTimeout(n,35);Kt&&(e=requestAnimationFrame(n))}function Ce(t){var e=B,n=t.__c;typeof n=="function"&&(t.__c=void 0,n()),B=e}function tt(t){var e=B;t.__c=t.__(),B=e}function Ms(t,e){return!t||t.length!==e.length||e.some(function(n,s){return n!==t[s]})}function Cn(t,e){return typeof e=="function"?e(t):e}const Rs=".-cbwsdk-css-reset .-gear-container{margin-left:16px !important;margin-right:9px !important;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:opacity .25s}.-cbwsdk-css-reset .-gear-container *{user-select:none}.-cbwsdk-css-reset .-gear-container svg{opacity:0;position:absolute}.-cbwsdk-css-reset .-gear-icon{height:12px;width:12px;z-index:10000}.-cbwsdk-css-reset .-cbwsdk-snackbar{align-items:flex-end;display:flex;flex-direction:column;position:fixed;right:0;top:0;z-index:2147483647}.-cbwsdk-css-reset .-cbwsdk-snackbar *{user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance{display:flex;flex-direction:column;margin:8px 16px 0 16px;overflow:visible;text-align:left;transform:translateX(0);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header:hover .-gear-container svg{opacity:1}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header{display:flex;align-items:center;background:#fff;overflow:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-cblogo{margin:8px 8px 8px 8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-message{color:#000;font-size:13px;line-height:1.5;user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu{background:#fff;transition:opacity .25s ease-in-out,transform .25s linear,visibility 0s;visibility:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;opacity:0;flex-direction:column;padding-left:8px;padding-right:8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:last-child{margin-bottom:8px !important}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover{background:#f5f7f8;border-radius:6px;transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover span{color:#050f19;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover svg path{fill:#000;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item{visibility:inherit;height:35px;margin-top:8px;margin-bottom:0;display:flex;flex-direction:row;align-items:center;padding:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item *{visibility:inherit;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover{background:rgba(223,95,103,.2);transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover svg path{fill:#df5f67;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover span{color:#df5f67;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-info{color:#aaa;font-size:13px;margin:0 8px 0 32px;position:absolute}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-hidden{opacity:0;text-align:left;transform:translateX(25%);transition:opacity .5s linear}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-expanded .-cbwsdk-snackbar-instance-menu{opacity:1;display:flex;transform:translateY(8px);visibility:visible}",Ts="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNDkyIDEwLjQxOWE4LjkzIDguOTMgMCAwMTguOTMtOC45M2gxMS4xNjNhOC45MyA4LjkzIDAgMDE4LjkzIDguOTN2MTEuMTYzYTguOTMgOC45MyAwIDAxLTguOTMgOC45M0gxMC40MjJhOC45MyA4LjkzIDAgMDEtOC45My04LjkzVjEwLjQxOXoiIGZpbGw9IiMxNjUyRjAiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjQxOSAwSDIxLjU4QzI3LjMzNSAwIDMyIDQuNjY1IDMyIDEwLjQxOVYyMS41OEMzMiAyNy4zMzUgMjcuMzM1IDMyIDIxLjU4MSAzMkgxMC40MkM0LjY2NSAzMiAwIDI3LjMzNSAwIDIxLjU4MVYxMC40MkMwIDQuNjY1IDQuNjY1IDAgMTAuNDE5IDB6bTAgMS40ODhhOC45MyA4LjkzIDAgMDAtOC45MyA4LjkzdjExLjE2M2E4LjkzIDguOTMgMCAwMDguOTMgOC45M0gyMS41OGE4LjkzIDguOTMgMCAwMDguOTMtOC45M1YxMC40MmE4LjkzIDguOTMgMCAwMC04LjkzLTguOTNIMTAuNDJ6IiBmaWxsPSIjZmZmIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS45OTggMjYuMDQ5Yy01LjU0OSAwLTEwLjA0Ny00LjQ5OC0xMC4wNDctMTAuMDQ3IDAtNS41NDggNC40OTgtMTAuMDQ2IDEwLjA0Ny0xMC4wNDYgNS41NDggMCAxMC4wNDYgNC40OTggMTAuMDQ2IDEwLjA0NiAwIDUuNTQ5LTQuNDk4IDEwLjA0Ny0xMC4wNDYgMTAuMDQ3eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMi43NjIgMTQuMjU0YzAtLjgyMi42NjctMS40ODkgMS40ODktMS40ODloMy40OTdjLjgyMiAwIDEuNDg4LjY2NiAxLjQ4OCAxLjQ4OXYzLjQ5N2MwIC44MjItLjY2NiAxLjQ4OC0xLjQ4OCAxLjQ4OGgtMy40OTdhMS40ODggMS40ODggMCAwMS0xLjQ4OS0xLjQ4OHYtMy40OTh6IiBmaWxsPSIjMTY1MkYwIi8+PC9zdmc+",Ns="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDYuNzV2LTEuNWwtMS43Mi0uNTdjLS4wOC0uMjctLjE5LS41Mi0uMzItLjc3bC44MS0xLjYyLTEuMDYtMS4wNi0xLjYyLjgxYy0uMjQtLjEzLS41LS4yNC0uNzctLjMyTDYuNzUgMGgtMS41bC0uNTcgMS43MmMtLjI3LjA4LS41My4xOS0uNzcuMzJsLTEuNjItLjgxLTEuMDYgMS4wNi44MSAxLjYyYy0uMTMuMjQtLjI0LjUtLjMyLjc3TDAgNS4yNXYxLjVsMS43Mi41N2MuMDguMjcuMTkuNTMuMzIuNzdsLS44MSAxLjYyIDEuMDYgMS4wNiAxLjYyLS44MWMuMjQuMTMuNS4yMy43Ny4zMkw1LjI1IDEyaDEuNWwuNTctMS43MmMuMjctLjA4LjUyLS4xOS43Ny0uMzJsMS42Mi44MSAxLjA2LTEuMDYtLjgxLTEuNjJjLjEzLS4yNC4yMy0uNS4zMi0uNzdMMTIgNi43NXpNNiA4LjVhMi41IDIuNSAwIDAxMC01IDIuNSAyLjUgMCAwMTAgNXoiIGZpbGw9IiMwNTBGMTkiLz48L3N2Zz4=";class An{constructor(){this.items=new Map,this.nextItemKey=0,this.root=null,this.darkMode=un()}attach(e){this.root=document.createElement("div"),this.root.className="-cbwsdk-snackbar-root",e.appendChild(this.root),this.render()}presentItem(e){const n=this.nextItemKey++;return this.items.set(n,e),this.render(),()=>{this.items.delete(n),this.render()}}clear(){this.items.clear(),this.render()}render(){this.root&&Xe(R("div",null,R(Ln,{darkMode:this.darkMode},Array.from(this.items.entries()).map(([e,n])=>R(Os,Object.assign({},n,{key:e}))))),this.root)}}const Ln=t=>R("div",{class:pe("-cbwsdk-snackbar-container")},R("style",null,Rs),R("div",{class:"-cbwsdk-snackbar"},t.children)),Os=({autoExpand:t,message:e,menuItems:n})=>{const[s,r]=qt(!0),[i,a]=qt(t??!1);Ls(()=>{const h=[window.setTimeout(()=>{r(!1)},1),window.setTimeout(()=>{a(!0)},1e4)];return()=>{h.forEach(window.clearTimeout)}});const o=()=>{a(!i)};return R("div",{class:pe("-cbwsdk-snackbar-instance",s&&"-cbwsdk-snackbar-instance-hidden",i&&"-cbwsdk-snackbar-instance-expanded")},R("div",{class:"-cbwsdk-snackbar-instance-header",onClick:o},R("img",{src:Ts,class:"-cbwsdk-snackbar-instance-header-cblogo"})," ",R("div",{class:"-cbwsdk-snackbar-instance-header-message"},e),R("div",{class:"-gear-container"},!i&&R("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},R("circle",{cx:"12",cy:"12",r:"12",fill:"#F5F7F8"})),R("img",{src:Ns,class:"-gear-icon",title:"Expand"}))),n&&n.length>0&&R("div",{class:"-cbwsdk-snackbar-instance-menu"},n.map((h,u)=>R("div",{class:pe("-cbwsdk-snackbar-instance-menu-item",h.isRed&&"-cbwsdk-snackbar-instance-menu-item-is-red"),onClick:h.onClick,key:u},R("svg",{width:h.svgWidth,height:h.svgHeight,viewBox:"0 0 10 11",fill:"none",xmlns:"http://www.w3.org/2000/svg"},R("path",{"fill-rule":h.defaultFillRule,"clip-rule":h.defaultClipRule,d:h.path,fill:"#AAAAAA"})),R("span",{class:pe("-cbwsdk-snackbar-instance-menu-item-info",h.isRed&&"-cbwsdk-snackbar-instance-menu-item-info-is-red")},h.info)))))},Pn="M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z";class Ds{constructor(){this.attached=!1,this.snackbar=new An}attach(){if(this.attached)throw new Error("Coinbase Wallet SDK UI is already attached");const e=document.documentElement,n=document.createElement("div");n.className="-cbwsdk-css-reset",e.appendChild(n),this.snackbar.attach(n),this.attached=!0,hn()}showConnecting(e){let n;return e.isUnlinkedErrorState?n={autoExpand:!0,message:"Connection lost",menuItems:[{isRed:!1,info:"Reset connection",svgWidth:"10",svgHeight:"11",path:"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z",defaultFillRule:"evenodd",defaultClipRule:"evenodd",onClick:e.onResetConnection}]}:n={message:"Confirm on phone",menuItems:[{isRed:!0,info:"Cancel transaction",svgWidth:"11",svgHeight:"11",path:"M10.3711 1.52346L9.21775 0.370117L5.37109 4.21022L1.52444 0.370117L0.371094 1.52346L4.2112 5.37012L0.371094 9.21677L1.52444 10.3701L5.37109 6.53001L9.21775 10.3701L10.3711 9.21677L6.53099 5.37012L10.3711 1.52346Z",defaultFillRule:"inherit",defaultClipRule:"inherit",onClick:e.onCancel},{isRed:!1,info:"Reset connection",svgWidth:"10",svgHeight:"11",path:Pn,defaultFillRule:"evenodd",defaultClipRule:"evenodd",onClick:e.onResetConnection}]},this.snackbar.presentItem(n)}}const Us=".-cbwsdk-css-reset .-cbwsdk-redirect-dialog-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;transition:opacity .25s;background-color:rgba(10,11,13,.5)}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-backdrop-hidden{opacity:0}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box{display:block;position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);padding:20px;border-radius:8px;background-color:#fff;color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box p{display:block;font-weight:400;font-size:14px;line-height:20px;padding-bottom:12px;color:#5b636e}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box button{appearance:none;border:none;background:none;color:#0052ff;padding:0;text-decoration:none;display:block;font-weight:600;font-size:16px;line-height:24px}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.dark{background-color:#0a0b0d;color:#fff}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.dark button{color:#0052ff}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.light{background-color:#fff;color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.light button{color:#0052ff}";class js{constructor(){this.root=null,this.darkMode=un()}attach(){const e=document.documentElement;this.root=document.createElement("div"),this.root.className="-cbwsdk-css-reset",e.appendChild(this.root),hn()}present(e){this.render(e)}clear(){this.render(null)}render(e){this.root&&(Xe(null,this.root),e&&Xe(R(Bs,Object.assign({},e,{onDismiss:()=>{this.clear()},darkMode:this.darkMode})),this.root))}}const Bs=({title:t,buttonText:e,darkMode:n,onButtonClick:s,onDismiss:r})=>{const i=n?"dark":"light";return R(Ln,{darkMode:n},R("div",{class:"-cbwsdk-redirect-dialog"},R("style",null,Us),R("div",{class:"-cbwsdk-redirect-dialog-backdrop",onClick:r}),R("div",{class:pe("-cbwsdk-redirect-dialog-box",i)},R("p",null,t),R("button",{onClick:s},e))))},Hs="https://keys.coinbase.com/connect",Ws="https://rpc.wallet.coinbase.com",Ft="https://www.walletlink.org",qs="https://go.cb-w.com/walletlink";class zt{constructor(){this.attached=!1,this.redirectDialog=new js}attach(){if(this.attached)throw new Error("Coinbase Wallet SDK UI is already attached");this.redirectDialog.attach(),this.attached=!0}redirectToCoinbaseWallet(e){const n=new URL(qs);n.searchParams.append("redirect_url",ys().href),e&&n.searchParams.append("wl_url",e);const s=document.createElement("a");s.target="cbw-opener",s.href=n.href,s.rel="noreferrer noopener",s.click()}openCoinbaseWalletDeeplink(e){this.redirectToCoinbaseWallet(e),setTimeout(()=>{this.redirectDialog.present({title:"Redirecting to Coinbase Wallet...",buttonText:"Open",onButtonClick:()=>{this.redirectToCoinbaseWallet(e)}})},99)}showConnecting(e){return()=>{this.redirectDialog.clear()}}}class Z{constructor(e){this.chainCallbackParams={chainId:"",jsonRpcUrl:""},this.isMobileWeb=bs(),this.linkedUpdated=i=>{this.isLinked=i;const a=this.storage.getItem(Ve);if(i&&(this._session.linked=i),this.isUnlinkedErrorState=!1,a){const o=a.split(" "),h=this.storage.getItem("IsStandaloneSigning")==="true";o[0]!==""&&!i&&this._session.linked&&!h&&(this.isUnlinkedErrorState=!0)}},this.metadataUpdated=(i,a)=>{this.storage.setItem(i,a)},this.chainUpdated=(i,a)=>{this.chainCallbackParams.chainId===i&&this.chainCallbackParams.jsonRpcUrl===a||(this.chainCallbackParams={chainId:i,jsonRpcUrl:a},this.chainCallback&&this.chainCallback(a,Number.parseInt(i,10)))},this.accountUpdated=i=>{this.accountsCallback&&this.accountsCallback([i]),Z.accountRequestCallbackIds.size>0&&(Array.from(Z.accountRequestCallbackIds.values()).forEach(a=>{this.invokeCallback(a,{method:"requestEthereumAccounts",result:[i]})}),Z.accountRequestCallbackIds.clear())},this.resetAndReload=this.resetAndReload.bind(this),this.linkAPIUrl=e.linkAPIUrl,this.storage=e.storage,this.metadata=e.metadata,this.accountsCallback=e.accountsCallback,this.chainCallback=e.chainCallback;const{session:n,ui:s,connection:r}=this.subscribe();this._session=n,this.connection=r,this.relayEventManager=new _s,this.ui=s,this.ui.attach()}subscribe(){const e=ce.load(this.storage)||ce.create(this.storage),{linkAPIUrl:n}=this,s=new gs({session:e,linkAPIUrl:n,listener:this}),r=this.isMobileWeb?new zt:new Ds;return s.connect(),{session:e,ui:r,connection:s}}resetAndReload(){this.connection.destroy().then(()=>{const e=ce.load(this.storage);e?.id===this._session.id&&J.clearAll(),document.location.reload()}).catch(e=>{})}signEthereumTransaction(e){return this.sendRequest({method:"signEthereumTransaction",params:{fromAddress:e.fromAddress,toAddress:e.toAddress,weiValue:Y(e.weiValue),data:he(e.data,!0),nonce:e.nonce,gasPriceInWei:e.gasPriceInWei?Y(e.gasPriceInWei):null,maxFeePerGas:e.gasPriceInWei?Y(e.gasPriceInWei):null,maxPriorityFeePerGas:e.gasPriceInWei?Y(e.gasPriceInWei):null,gasLimit:e.gasLimit?Y(e.gasLimit):null,chainId:e.chainId,shouldSubmit:!1}})}signAndSubmitEthereumTransaction(e){return this.sendRequest({method:"signEthereumTransaction",params:{fromAddress:e.fromAddress,toAddress:e.toAddress,weiValue:Y(e.weiValue),data:he(e.data,!0),nonce:e.nonce,gasPriceInWei:e.gasPriceInWei?Y(e.gasPriceInWei):null,maxFeePerGas:e.maxFeePerGas?Y(e.maxFeePerGas):null,maxPriorityFeePerGas:e.maxPriorityFeePerGas?Y(e.maxPriorityFeePerGas):null,gasLimit:e.gasLimit?Y(e.gasLimit):null,chainId:e.chainId,shouldSubmit:!0}})}submitEthereumTransaction(e,n){return this.sendRequest({method:"submitEthereumTransaction",params:{signedTransaction:he(e,!0),chainId:n}})}getWalletLinkSession(){return this._session}sendRequest(e){let n=null;const s=ie(8),r=i=>{this.publishWeb3RequestCanceledEvent(s),this.handleErrorResponse(s,e.method,i),n?.()};return new Promise((i,a)=>{n=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:r,onResetConnection:this.resetAndReload}),this.relayEventManager.callbacks.set(s,o=>{if(n?.(),F(o))return a(new Error(o.errorMessage));i(o)}),this.publishWeb3RequestEvent(s,e)})}publishWeb3RequestEvent(e,n){const s={type:"WEB3_REQUEST",id:e,request:n};this.publishEvent("Web3Request",s,!0).then(r=>{}).catch(r=>{this.handleWeb3ResponseMessage(s.id,{method:n.method,errorMessage:r.message})}),this.isMobileWeb&&this.openCoinbaseWalletDeeplink(n.method)}openCoinbaseWalletDeeplink(e){if(this.ui instanceof zt)switch(e){case"requestEthereumAccounts":case"switchEthereumChain":return;default:window.addEventListener("blur",()=>{window.addEventListener("focus",()=>{this.connection.checkUnseenEvents()},{once:!0})},{once:!0}),this.ui.openCoinbaseWalletDeeplink();break}}publishWeb3RequestCanceledEvent(e){const n={type:"WEB3_REQUEST_CANCELED",id:e};this.publishEvent("Web3RequestCanceled",n,!1).then()}publishEvent(e,n,s){return this.connection.publishEvent(e,n,s)}handleWeb3ResponseMessage(e,n){if(n.method==="requestEthereumAccounts"){Z.accountRequestCallbackIds.forEach(s=>this.invokeCallback(s,n)),Z.accountRequestCallbackIds.clear();return}this.invokeCallback(e,n)}handleErrorResponse(e,n,s){var r;const i=(r=s?.message)!==null&&r!==void 0?r:"Unspecified error message.";this.handleWeb3ResponseMessage(e,{method:n,errorMessage:i})}invokeCallback(e,n){const s=this.relayEventManager.callbacks.get(e);s&&(s(n),this.relayEventManager.callbacks.delete(e))}requestEthereumAccounts(){const{appName:e,appLogoUrl:n}=this.metadata,s={method:"requestEthereumAccounts",params:{appName:e,appLogoUrl:n}},r=ie(8);return new Promise((i,a)=>{this.relayEventManager.callbacks.set(r,o=>{if(F(o))return a(new Error(o.errorMessage));i(o)}),Z.accountRequestCallbackIds.add(r),this.publishWeb3RequestEvent(r,s)})}watchAsset(e,n,s,r,i,a){const o={method:"watchAsset",params:{type:e,options:{address:n,symbol:s,decimals:r,image:i},chainId:a}};let h=null;const u=ie(8),g=d=>{this.publishWeb3RequestCanceledEvent(u),this.handleErrorResponse(u,o.method,d),h?.()};return h=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:g,onResetConnection:this.resetAndReload}),new Promise((d,l)=>{this.relayEventManager.callbacks.set(u,c=>{if(h?.(),F(c))return l(new Error(c.errorMessage));d(c)}),this.publishWeb3RequestEvent(u,o)})}addEthereumChain(e,n,s,r,i,a){const o={method:"addEthereumChain",params:{chainId:e,rpcUrls:n,blockExplorerUrls:r,chainName:i,iconUrls:s,nativeCurrency:a}};let h=null;const u=ie(8),g=d=>{this.publishWeb3RequestCanceledEvent(u),this.handleErrorResponse(u,o.method,d),h?.()};return h=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:g,onResetConnection:this.resetAndReload}),new Promise((d,l)=>{this.relayEventManager.callbacks.set(u,c=>{if(h?.(),F(c))return l(new Error(c.errorMessage));d(c)}),this.publishWeb3RequestEvent(u,o)})}switchEthereumChain(e,n){const s={method:"switchEthereumChain",params:Object.assign({chainId:e},{address:n})};let r=null;const i=ie(8),a=o=>{this.publishWeb3RequestCanceledEvent(i),this.handleErrorResponse(i,s.method,o),r?.()};return r=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:a,onResetConnection:this.resetAndReload}),new Promise((o,h)=>{this.relayEventManager.callbacks.set(i,u=>{if(r?.(),F(u)&&u.errorCode)return h(P.provider.custom({code:u.errorCode,message:"Unrecognized chain ID. Try adding the chain using addEthereumChain first."}));if(F(u))return h(new Error(u.errorMessage));o(u)}),this.publishWeb3RequestEvent(i,s)})}}Z.accountRequestCallbackIds=new Set;const $t="DefaultChainId",Gt="DefaultJsonRpcUrl";class xn{constructor(e){this._relay=null,this._addresses=[],this.metadata=e.metadata,this._storage=new J("walletlink",Ft),this.callback=e.callback||null;const n=this._storage.getItem(Ve);if(n){const s=n.split(" ");s[0]!==""&&(this._addresses=s.map(r=>ee(r)))}this.initializeRelay()}getSession(){const e=this.initializeRelay(),{id:n,secret:s}=e.getWalletLinkSession();return{id:n,secret:s}}async handshake(){await this._eth_requestAccounts()}get selectedAddress(){return this._addresses[0]||void 0}get jsonRpcUrl(){var e;return(e=this._storage.getItem(Gt))!==null&&e!==void 0?e:void 0}set jsonRpcUrl(e){this._storage.setItem(Gt,e)}updateProviderInfo(e,n){var s;this.jsonRpcUrl=e;const r=this.getChainId();this._storage.setItem($t,n.toString(10)),fe(n)!==r&&((s=this.callback)===null||s===void 0||s.call(this,"chainChanged",ne(n)))}async watchAsset(e){const n=Array.isArray(e)?e[0]:e;if(!n.type)throw P.rpc.invalidParams("Type is required");if(n?.type!=="ERC20")throw P.rpc.invalidParams(`Asset of type '${n.type}' is not supported`);if(!n?.options)throw P.rpc.invalidParams("Options are required");if(!n?.options.address)throw P.rpc.invalidParams("Address is required");const s=this.getChainId(),{address:r,symbol:i,image:a,decimals:o}=n.options,u=await this.initializeRelay().watchAsset(n.type,r,i,o,a,s?.toString());return F(u)?!1:!!u.result}async addEthereumChain(e){var n,s;const r=e[0];if(((n=r.rpcUrls)===null||n===void 0?void 0:n.length)===0)throw P.rpc.invalidParams("please pass in at least 1 rpcUrl");if(!r.chainName||r.chainName.trim()==="")throw P.rpc.invalidParams("chainName is a required field");if(!r.nativeCurrency)throw P.rpc.invalidParams("nativeCurrency is a required field");const i=Number.parseInt(r.chainId,16);if(i===this.getChainId())return!1;const a=this.initializeRelay(),{rpcUrls:o=[],blockExplorerUrls:h=[],chainName:u,iconUrls:g=[],nativeCurrency:d}=r,l=await a.addEthereumChain(i.toString(),o,g,h,u,d);if(F(l))return!1;if(((s=l.result)===null||s===void 0?void 0:s.isApproved)===!0)return this.updateProviderInfo(o[0],i),null;throw P.rpc.internal("unable to add ethereum chain")}async switchEthereumChain(e){const n=e[0],s=Number.parseInt(n.chainId,16),i=await this.initializeRelay().switchEthereumChain(s.toString(10),this.selectedAddress||void 0);if(F(i))throw i;const a=i.result;return a.isApproved&&a.rpcUrl.length>0&&this.updateProviderInfo(a.rpcUrl,s),null}async cleanup(){this.callback=null,this._relay&&this._relay.resetAndReload(),this._storage.clear()}_setAddresses(e,n){var s;if(!Array.isArray(e))throw new Error("addresses is not an array");const r=e.map(i=>ee(i));JSON.stringify(r)!==JSON.stringify(this._addresses)&&(this._addresses=r,(s=this.callback)===null||s===void 0||s.call(this,"accountsChanged",r),this._storage.setItem(Ve,r.join(" ")))}async request(e){const n=e.params||[];switch(e.method){case"eth_accounts":return[...this._addresses];case"eth_coinbase":return this.selectedAddress||null;case"net_version":return this.getChainId().toString(10);case"eth_chainId":return ne(this.getChainId());case"eth_requestAccounts":return this._eth_requestAccounts();case"eth_ecRecover":case"personal_ecRecover":return this.ecRecover(e);case"personal_sign":return this.personalSign(e);case"eth_signTransaction":return this._eth_signTransaction(n);case"eth_sendRawTransaction":return this._eth_sendRawTransaction(n);case"eth_sendTransaction":return this._eth_sendTransaction(n);case"eth_signTypedData_v1":case"eth_signTypedData_v3":case"eth_signTypedData_v4":case"eth_signTypedData":return this.signTypedData(e);case"wallet_addEthereumChain":return this.addEthereumChain(n);case"wallet_switchEthereumChain":return this.switchEthereumChain(n);case"wallet_watchAsset":return this.watchAsset(n);default:if(!this.jsonRpcUrl)throw P.rpc.internal("No RPC URL set for chain");return ot(e,this.jsonRpcUrl)}}_ensureKnownAddress(e){const n=ee(e);if(!this._addresses.map(r=>ee(r)).includes(n))throw new Error("Unknown Ethereum address")}_prepareTransactionParams(e){const n=e.from?ee(e.from):this.selectedAddress;if(!n)throw new Error("Ethereum address is unavailable");this._ensureKnownAddress(n);const s=e.to?ee(e.to):null,r=e.value!=null?le(e.value):BigInt(0),i=e.data?Ye(e.data):Buffer.alloc(0),a=e.nonce!=null?fe(e.nonce):null,o=e.gasPrice!=null?le(e.gasPrice):null,h=e.maxFeePerGas!=null?le(e.maxFeePerGas):null,u=e.maxPriorityFeePerGas!=null?le(e.maxPriorityFeePerGas):null,g=e.gas!=null?le(e.gas):null,d=e.chainId?fe(e.chainId):this.getChainId();return{fromAddress:n,toAddress:s,weiValue:r,data:i,nonce:a,gasPriceInWei:o,maxFeePerGas:h,maxPriorityFeePerGas:u,gasLimit:g,chainId:d}}async ecRecover(e){const{method:n,params:s}=e;if(!Array.isArray(s))throw P.rpc.invalidParams();const i=await this.initializeRelay().sendRequest({method:"ethereumAddressFromSignedMessage",params:{message:De(s[0]),signature:De(s[1]),addPrefix:n==="personal_ecRecover"}});if(F(i))throw i;return i.result}getChainId(){var e;return Number.parseInt((e=this._storage.getItem($t))!==null&&e!==void 0?e:"1",10)}async _eth_requestAccounts(){var e,n;if(this._addresses.length>0)return(e=this.callback)===null||e===void 0||e.call(this,"connect",{chainId:ne(this.getChainId())}),this._addresses;const r=await this.initializeRelay().requestEthereumAccounts();if(F(r))throw r;if(!r.result)throw new Error("accounts received is empty");return this._setAddresses(r.result),(n=this.callback)===null||n===void 0||n.call(this,"connect",{chainId:ne(this.getChainId())}),this._addresses}async personalSign({params:e}){if(!Array.isArray(e))throw P.rpc.invalidParams();const n=e[1],s=e[0];this._ensureKnownAddress(n);const i=await this.initializeRelay().sendRequest({method:"signEthereumMessage",params:{address:ee(n),message:De(s),addPrefix:!0,typedDataJson:null}});if(F(i))throw i;return i.result}async _eth_signTransaction(e){const n=this._prepareTransactionParams(e[0]||{}),r=await this.initializeRelay().signEthereumTransaction(n);if(F(r))throw r;return r.result}async _eth_sendRawTransaction(e){const n=Ye(e[0]),r=await this.initializeRelay().submitEthereumTransaction(n,this.getChainId());if(F(r))throw r;return r.result}async _eth_sendTransaction(e){const n=this._prepareTransactionParams(e[0]||{}),r=await this.initializeRelay().signAndSubmitEthereumTransaction(n);if(F(r))throw r;return r.result}async signTypedData(e){const{method:n,params:s}=e;if(!Array.isArray(s))throw P.rpc.invalidParams();const r=u=>{const g={eth_signTypedData_v1:ye.hashForSignTypedDataLegacy,eth_signTypedData_v3:ye.hashForSignTypedData_v3,eth_signTypedData_v4:ye.hashForSignTypedData_v4,eth_signTypedData:ye.hashForSignTypedData_v4};return he(g[n]({data:qn(u)}),!0)},i=s[n==="eth_signTypedData_v1"?1:0],a=s[n==="eth_signTypedData_v1"?0:1];this._ensureKnownAddress(i);const h=await this.initializeRelay().sendRequest({method:"signEthereumMessage",params:{address:ee(i),message:r(a),typedDataJson:JSON.stringify(a,null,2),addPrefix:!1}});if(F(h))throw h;return h.result}initializeRelay(){return this._relay||(this._relay=new Z({linkAPIUrl:Ft,storage:this._storage,metadata:this.metadata,accountsCallback:this._setAddresses.bind(this),chainCallback:this.updateProviderInfo.bind(this)})),this._relay}}const Mn="SignerType",Rn=new J("CBWSDK","SignerConfigurator");function Ks(){return Rn.getItem(Mn)}function Fs(t){Rn.setItem(Mn,t)}async function zs(t){const{communicator:e,metadata:n,handshakeRequest:s,callback:r}=t;Gs(e,n,r).catch(()=>{});const i={id:crypto.randomUUID(),event:"selectSignerType",data:Object.assign(Object.assign({},t.preference),{handshakeRequest:s})},{data:a}=await e.postRequestAndWaitForResponse(i);return a}function $s(t){const{signerType:e,metadata:n,communicator:s,callback:r}=t;switch(e){case"scw":return new ns({metadata:n,callback:r,communicator:s});case"walletlink":return new xn({metadata:n,callback:r})}}async function Gs(t,e,n){await t.onMessage(({event:r})=>r==="WalletLinkSessionRequest");const s=new xn({metadata:e,callback:n});t.postMessage({event:"WalletLinkUpdate",data:{session:s.getSession()}}),await s.handshake(),t.postMessage({event:"WalletLinkUpdate",data:{connected:!0}})}const Ys=`Coinbase Wallet SDK requires the Cross-Origin-Opener-Policy header to not be set to 'same-origin'. This is to ensure that the SDK can communicate with the Coinbase Smart Wallet app.
Please see https://www.smartwallet.dev/guides/tips/popup-tips#cross-origin-opener-policy for more information.`,Vs=()=>{let t;return{getCrossOriginOpenerPolicy:()=>t===void 0?"undefined":t,checkCrossOriginOpenerPolicy:async()=>{if(typeof window>"u"){t="non-browser-env";return}try{const e=`${window.location.origin}${window.location.pathname}`,n=await fetch(e,{method:"HEAD"});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);const s=n.headers.get("Cross-Origin-Opener-Policy");t=s??"null",t==="same-origin"&&console.error(Ys)}catch(e){console.error("Error checking Cross-Origin-Opener-Policy:",e.message),t="error"}}}},{checkCrossOriginOpenerPolicy:Js,getCrossOriginOpenerPolicy:Qs}=Vs(),Yt=420,Vt=540,Zs={isRed:!1,info:"Retry",svgWidth:"10",svgHeight:"11",path:Pn,defaultFillRule:"evenodd",defaultClipRule:"evenodd"},Xs="Popup was blocked. Try again.";let we=null;function ei(t){const e=(window.innerWidth-Yt)/2+window.screenX,n=(window.innerHeight-Vt)/2+window.screenY;ni(t);function s(){const i=`wallet_${crypto.randomUUID()}`,a=window.open(t,i,`width=${Yt}, height=${Vt}, left=${e}, top=${n}`);return a?.focus(),a||null}let r=s();if(!r){const i=si();return new Promise((a,o)=>{i.presentItem({autoExpand:!0,message:Xs,menuItems:[Object.assign(Object.assign({},Zs),{onClick:()=>{r=s(),r?a(r):o(P.rpc.internal("Popup window was blocked")),i.clear()}})]})})}return Promise.resolve(r)}function ti(t){t&&!t.closed&&t.close()}function ni(t){const e={sdkName:dn,sdkVersion:me,origin:window.location.origin,coop:Qs()};for(const[n,s]of Object.entries(e))t.searchParams.append(n,s.toString())}function si(){if(!we){const t=document.createElement("div");t.className="-cbwsdk-css-reset",document.body.appendChild(t),we=new An,we.attach(t)}return we}class ii{constructor({url:e=Hs,metadata:n,preference:s}){this.popup=null,this.listeners=new Map,this.postMessage=async r=>{(await this.waitForPopupLoaded()).postMessage(r,this.url.origin)},this.postRequestAndWaitForResponse=async r=>{const i=this.onMessage(({requestId:a})=>a===r.id);return this.postMessage(r),await i},this.onMessage=async r=>new Promise((i,a)=>{const o=h=>{if(h.origin!==this.url.origin)return;const u=h.data;r(u)&&(i(u),window.removeEventListener("message",o),this.listeners.delete(o))};window.addEventListener("message",o),this.listeners.set(o,{reject:a})}),this.disconnect=()=>{ti(this.popup),this.popup=null,this.listeners.forEach(({reject:r},i)=>{r(P.provider.userRejectedRequest("Request rejected")),window.removeEventListener("message",i)}),this.listeners.clear()},this.waitForPopupLoaded=async()=>this.popup&&!this.popup.closed?(this.popup.focus(),this.popup):(this.popup=await ei(this.url),this.onMessage(({event:r})=>r==="PopupUnload").then(this.disconnect).catch(()=>{}),this.onMessage(({event:r})=>r==="PopupLoaded").then(r=>{this.postMessage({requestId:r.id,data:{version:me,metadata:this.metadata,preference:this.preference,location:window.location.toString()}})}).then(()=>{if(!this.popup)throw P.rpc.internal();return this.popup})),this.url=new URL(e),this.metadata=n,this.preference=s}}function ri(t){const e=Un(ai(t),{shouldIncludeStack:!0}),n=new URL("https://docs.cloud.coinbase.com/wallet-sdk/docs/errors");return n.searchParams.set("version",me),n.searchParams.set("code",e.code.toString()),n.searchParams.set("message",e.message),Object.assign(Object.assign({},e),{docUrl:n.href})}function ai(t){var e;if(typeof t=="string")return{message:t,code:j.rpc.internal};if(F(t)){const n=t.errorMessage,s=(e=t.errorCode)!==null&&e!==void 0?e:n.match(/(denied|rejected)/i)?j.provider.userRejectedRequest:void 0;return Object.assign(Object.assign({},t),{message:n,code:s,data:{method:t.method}})}return t}class oi extends Ae.EventEmitter{}var ci=function(t,e){var n={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(n[s]=t[s]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,s=Object.getOwnPropertySymbols(t);r<s.length;r++)e.indexOf(s[r])<0&&Object.prototype.propertyIsEnumerable.call(t,s[r])&&(n[s[r]]=t[s[r]]);return n};class di extends oi{constructor(e){var{metadata:n}=e,s=e.preference,{keysUrl:r}=s,i=ci(s,["keysUrl"]);super(),this.signer=null,this.isCoinbaseWallet=!0,this.metadata=n,this.preference=i,this.communicator=new ii({url:r,metadata:n,preference:i});const a=Ks();a&&(this.signer=this.initSigner(a))}async request(e){try{if(ts(e),!this.signer)switch(e.method){case"eth_requestAccounts":{const n=await this.requestSignerSelection(e),s=this.initSigner(n);await s.handshake(e),this.signer=s,Fs(n);break}case"wallet_sendCalls":{const n=this.initSigner("scw");await n.handshake({method:"handshake"});const s=await n.request(e);return await n.cleanup(),s}case"wallet_getCallsStatus":return ot(e,Ws);case"net_version":return 1;case"eth_chainId":return ne(1);default:throw P.provider.unauthorized("Must call 'eth_requestAccounts' before other methods")}return await this.signer.request(e)}catch(n){const{code:s}=n;return s===j.provider.unauthorized&&this.disconnect(),Promise.reject(ri(n))}}async enable(){return console.warn('.enable() has been deprecated. Please use .request({ method: "eth_requestAccounts" }) instead.'),await this.request({method:"eth_requestAccounts"})}async disconnect(){var e;await((e=this.signer)===null||e===void 0?void 0:e.cleanup()),this.signer=null,J.clearAll(),this.emit("disconnect",P.provider.disconnected("User initiated disconnection"))}requestSignerSelection(e){return zs({communicator:this.communicator,preference:this.preference,metadata:this.metadata,handshakeRequest:e,callback:this.emit.bind(this)})}initSigner(e){return $s({signerType:e,metadata:this.metadata,communicator:this.communicator,callback:this.emit.bind(this)})}}function li(t){if(t){if(!["all","smartWalletOnly","eoaOnly"].includes(t.options))throw new Error(`Invalid options: ${t.options}`);if(t.attribution&&t.attribution.auto!==void 0&&t.attribution.dataSuffix!==void 0)throw new Error("Attribution cannot contain both auto and dataSuffix properties")}}function ui(t){var e;const n={metadata:t.metadata,preference:t.preference};return(e=es(n))!==null&&e!==void 0?e:new di(n)}const hi={options:"all"};function fi(t){var e;new J("CBWSDK").setItem("VERSION",me),Js();const s={metadata:{appName:t.appName||"Dapp",appLogoUrl:t.appLogoUrl||"",appChainIds:t.appChainIds||[]},preference:Object.assign(hi,(e=t.preference)!==null&&e!==void 0?e:{})};li(s.preference);let r=null;return{getProvider:()=>(r||(r=ui(s)),r)}}exports.createCoinbaseWalletSDK=fi;