magic-sdk 28.19.0-canary.835.11980874875.0 → 28.19.1-canary.3013de0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/magic.js CHANGED
@@ -2,5 +2,5 @@
2
2
  - Extension \`${r.name}\` supports version(s) \`${i}\``:i||(t+=`
3
3
  - Extension \`${r.name}\` does not support ${Y.platform} environments.`)}),new Ae(Ie.IncompatibleExtensions,t)}function Go(e){let t=r=>{let i=r+1,a=i%10,s=i%100;return a===1&&s!==11?`${i}st`:a===2&&s!==12?`${i}nd`:a===3&&s!==13?`${i}rd`:`${i}th`};return new Ae(Ie.InvalidArgument,`Invalid ${t(e.argument)} argument given to \`${e.procedure}\`.
4
4
  Expected: \`${e.expected}\`
5
- Received: \`${e.received}\``)}function un(){return new De(we.DuplicateIframe,"Duplicate iframes found.")}function Vo(){return new De(we.SyncWeb3Method,"Non-async web3 methods are deprecated in web3 > 1.0 and are not supported by the Magic web3 provider. Please use an async method instead.")}function jo(){return new De(we.ReactNativeEndpointConfiguration,`CUSTOM DOMAINS ARE NOT SUPPORTED WHEN USING MAGIC SDK WITH REACT NATIVE! The \`endpoint\` parameter SHOULD NOT be provided. The Magic \`<iframe>\` is automatically wrapped by a WebView pointed at \`${Y.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function tt(e){let{method:t,removalVersions:r,useInstead:i}=e,a=r[Y.sdkName],s=i?` Use \`${i}\` instead.`:"",m=`\`${t}\` will be removed from \`${Y.sdkName}\` in version \`${a}\`.${s}`;return new De(we.DeprecationNotice,m)}function*qo(){let e=0;for(;;)e<Number.MAX_SAFE_INTEGER?yield++e:e=0}var Ko=qo();function dn(){return Ko.next().value}var fn=Symbol("Payload pre-processed by Magic SDK");function hn(e){return Object.defineProperty(e,fn,{value:!0,enumerable:!1}),e}function Ho(e){return!!e[fn]}function gt(e){var t,r,i;return Ho(e)||(e.jsonrpc=(t=e.jsonrpc)!=null?t:"2.0",e.id=dn(),e.method=(r=e.method)!=null?r:"noop",e.params=(i=e.params)!=null?i:[],hn(e)),e}function W(e,t=[]){return hn({params:t,method:e,jsonrpc:"2.0",id:dn()})}var Bt=class{constructor(e){e instanceof Bt?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):Do(e)?(this._jsonrpc=e.jsonrpc,this._id=e.id,this._result=e.result,this._error=e.error):(this._jsonrpc=e.jsonrpc,this._id=e.id,this._result=void 0,this._error=void 0)}applyError(e){return this._error=e,this}applyResult(e){return this._result=e,this}get hasError(){return typeof this._error!="undefined"&&this._error!==null}get hasResult(){return typeof this._result!="undefined"}get payload(){return{jsonrpc:this._jsonrpc,id:this._id,result:this._result,error:this._error}}},Yo=Gi(Vi()),Xo=class extends Yo.default{};function mn(){let e=new Xo;return{emitter:e,createChainingEmitterMethod:(t,r)=>(...i)=>(e[t].apply(e,i),r),createBoundEmitterMethod:t=>(...r)=>e[t].apply(e,r)}}var vn=Symbol("isPromiEvent");function Gt(e){return!!e[vn]}function it(e){let t=pn(e),{createBoundEmitterMethod:r,createChainingEmitterMethod:i}=mn(),a=Symbol("Promise.then"),s=Symbol("Promise.catch"),m=Symbol("Promise.finally"),f=(E,N)=>(..._)=>{let O=N[E].apply(N,_);return p(O)},p=E=>Object.assign(E,{[vn]:!0,[a]:E[a]||E.then,[s]:E[s]||E.catch,[m]:E[m]||E.finally,then:f(a,E),catch:f(s,E),finally:f(m,E),on:i("on",E),once:i("once",E),addListener:i("addListener",E),off:i("off",E),removeListener:i("removeListener",E),removeAllListeners:i("removeAllListeners",E),emit:r("emit"),eventNames:r("eventNames"),listeners:r("listeners"),listenerCount:r("listenerCount")}),y=p(t.then(E=>(y.emit("done",E),y.emit("settled"),E),E=>{throw y.emit("error",E),y.emit("settled"),E}));return y.on(ut.ClosedByUser,()=>{y.emit(ct.ClosedByUser)}),y}function pn(e){return new Promise((t,r)=>{let i=e(t,r);Promise.resolve(i).catch(r)})}var Ue=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){let t=this.overlay.post(be.MAGIC_HANDLE_REQUEST,gt(e)),r=it((a,s)=>{t.then(m=>{if(i(),m.hasError)s(new je(m.payload.error));else if(m.hasResult)a(m.payload.result);else throw ko()}).catch(m=>{i(),s(m)})}),i=this.overlay.on(ve.MAGIC_HANDLE_EVENT,a=>{var s;let{response:m}=a.data;if(m.id===e.id&&((s=m.result)==null?void 0:s.event)){let{event:f,params:p=[]}=m.result;r.emit(f,...p)}});return r}createIntermediaryEvent(e,t){return r=>{let i=W(T.IntermediaryEvent,[{payloadId:t,eventType:e,args:r}]);this.request(i)}}};function zo(e,t){let[r]=e.split(".").map(Number);return r>=t}var rt={"magic-sdk":"v18.0.0","@magic-sdk/react-native":"v14.0.0","@magic-sdk/react-native-bare":"v19.0.0","@magic-sdk/react-native-expo":"v19.0.0"},Jo=class extends Ue{loginWithMagicLink(e){let t=Y.sdkName==="@magic-sdk/react-native"||Y.sdkName==="@magic-sdk/react-native-bare"||Y.sdkName==="@magic-sdk/react-native-expo";if(t&&zo(Y.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&tt({method:"auth.loginWithMagicLink()",removalVersions:rt,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:r,showUI:i=!0,redirectURI:a,overrides:s,lifespan:m}=e,f=W(this.sdk.testMode?T.LoginWithMagicLinkTestMode:T.LoginWithMagicLink,[{email:r,showUI:i,redirectURI:a,overrides:s,lifespan:m}]);return this.request(f)}loginWithSMS(e){let{phoneNumber:t,showUI:r=!0,lifespan:i}=e,a=W(this.sdk.testMode?T.LoginWithSmsTestMode:T.LoginWithSms,[{phoneNumber:t,showUI:r,lifespan:i}]),s=this.request(a);return!r&&s&&(s.on(Le.VerifySmsOtp,m=>{this.createIntermediaryEvent(Le.VerifySmsOtp,a.id)(m)}),s.on(Le.Cancel,()=>{this.createIntermediaryEvent(Le.Cancel,a.id)()})),s}loginWithEmailOTP(e){let{email:t,showUI:r,deviceCheckUI:i,overrides:a,lifespan:s}=e,m=W(this.sdk.testMode?T.LoginWithEmailOTPTestMode:T.LoginWithEmailOTP,[{email:t,showUI:r,deviceCheckUI:i,overrides:a,lifespan:s}]),f=this.request(m);return!i&&f&&f.on(Je.Retry,()=>{this.createIntermediaryEvent(Je.Retry,m.id)()}),!r&&f&&(f.on(he.VerifyEmailOtp,p=>{this.createIntermediaryEvent(he.VerifyEmailOtp,m.id)(p)}),f.on(he.VerifyMFACode,p=>{this.createIntermediaryEvent(he.VerifyMFACode,m.id)(p)}),f.on(he.LostDevice,()=>{this.createIntermediaryEvent(he.LostDevice,m.id)()}),f.on(he.VerifyRecoveryCode,p=>{this.createIntermediaryEvent(he.VerifyRecoveryCode,m.id)(p)}),f.on(he.Cancel,()=>{this.createIntermediaryEvent(he.Cancel,m.id)()})),f}loginWithCredential(e){let{credentialOrQueryString:t,lifespan:r}=e||{},i=t!=null?t:"";if(!t&&Y.platform==="web"){i=window.location.search;let s=window.location.origin+window.location.pathname;window.history.replaceState(null,"",s)}let a=W(this.sdk.testMode?T.LoginWithCredentialTestMode:T.LoginWithCredential,[i,r]);return this.request(a)}setAuthorizationToken(e){let t=W(T.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:r=!0}=e,i=W(this.sdk.testMode?T.UpdateEmailTestMode:T.UpdateEmail,[{email:t,showUI:r}]),a=this.request(i);return r||(a.on(de.Retry,()=>{this.createIntermediaryEvent(de.Retry,i.id)()}),a.on(de.Cancel,()=>{this.createIntermediaryEvent(de.Cancel,i.id)()}),a.on(de.VerifyEmailOtp,s=>{this.createIntermediaryEvent(de.VerifyEmailOtp,i.id)(s)}),a.on(de.VerifyMFACode,s=>{this.createIntermediaryEvent(de.VerifyMFACode,i.id)(s)}),a.on(ne.RetryWithNewEmail,s=>{this.createIntermediaryEvent(ne.RetryWithNewEmail,i.id)(s)}),a.on(ne.Cancel,()=>{this.createIntermediaryEvent(ne.Cancel,i.id)()}),a.on(ne.VerifyEmailOtp,s=>{this.createIntermediaryEvent(ne.VerifyEmailOtp,i.id)(s)})),a}},yn={};Wi(yn,{clear:()=>Qo,getItem:()=>le,iterate:()=>En,key:()=>ea,keys:()=>ta,length:()=>Zo,removeItem:()=>Ve,setItem:()=>_e});var mt;function Me(e){return(...t)=>X(this,null,function*(){return mt||(mt=yield Y.configureStorage()),yield mt.ready(),mt[e](...t)})}var le=Me("getItem"),_e=Me("setItem"),Ve=Me("removeItem"),Qo=Me("clear"),Zo=Me("length"),ea=Me("key"),ta=Me("keys"),En=Me("iterate");function ra(){let e=window.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&191|128;let t="";return t+=e[0].toString(16),t+=e[1].toString(16),t+=e[2].toString(16),t+=e[3].toString(16),t+="-",t+=e[4].toString(16),t+=e[5].toString(16),t+="-",t+=e[6].toString(16),t+=e[7].toString(16),t+="-",t+=e[8].toString(16),t+=e[9].toString(16),t+="-",t+=e[10].toString(16),t+=e[11].toString(16),t+=e[12].toString(16),t+=e[13].toString(16),t+=e[14].toString(16),t+=e[15].toString(16),t}var gn="STORE_KEY_PRIVATE_KEY",xt="STORE_KEY_PUBLIC_JWK",_n="ECDSA",na="P-256",ia={name:_n,namedCurve:na};function bt(){let e=typeof window!="undefined"&&!!window.crypto,t=e&&!!window.crypto.subtle;return e&&t}function oa(){return X(this,null,function*(){let e=yield aa();if(!e){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:t}=window.crypto,r=yield le(gn);if(!r||!t){console.info("unable to find private key or webcrypto unsupported");return}let i={iat:Math.floor(new Date().getTime()/1e3),jti:ra()},a={typ:"dpop+jwt",alg:"ES256",jwk:e},s={protected:tn(JSON.stringify(a)),claims:tn(JSON.stringify(i))},m=la(`${s.protected}.${s.claims}`),f={name:_n,hash:{name:"SHA-256"}},p=ua(new Uint8Array(yield t.sign(f,r,m)));return`${s.protected}.${s.claims}.${p}`})}function aa(){return X(this,null,function*(){if(!bt()){console.info("webcrypto is not supported");return}return(yield le(xt))||(yield sa()),le(xt)})}function sa(){return X(this,null,function*(){let{subtle:e}=window.crypto,t=yield e.generateKey(ia,!1,["sign"]),r=yield e.exportKey("jwk",t.publicKey);yield _e(gn,t.privateKey),yield _e(xt,r)})}function tn(e){return In(ca(e))}function la(e){return new TextEncoder().encode(e)}function In(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function ca(e){return encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}function ua(e){let t="";return e.forEach(r=>{t+=String.fromCharCode(r)}),In(t)}var Vt="ds",jt="ek",qt="iv",Kt="AES-GCM",da=256;function Ht(){return X(this,null,function*(){let e=[];yield En((t,r,i)=>{r.startsWith(`${Vt}_`)&&e.push(r)});for(let t of e)yield Ve(t)})}function wn(e){let t="",r=new Uint8Array(e),i=r.byteLength;for(let a=0;a<i;a++)t+=String.fromCharCode(r[a]);return window.btoa(t)}function bn(e){let t=window.atob(e),r=t.length,i=new Uint8Array(r);for(let a=0;a<r;a++)i[a]=t.charCodeAt(a);return i.buffer}function fa(){return X(this,null,function*(){if(!bt()){console.info("webcrypto is not supported");return}let{crypto:e}=window;return(yield le(qt))||e.getRandomValues(new Uint8Array(12))})}function ha(){return X(this,null,function*(){if(!bt()){console.info("webcrypto is not supported");return}let{subtle:e}=window.crypto;return(yield le(jt))||(yield e.generateKey({name:Kt,length:da},!1,["encrypt","decrypt"]))})}function ma(e,t){return X(this,null,function*(){let r=yield fa(),i=yield ha();if(!r||!i||!e)return;let a=bn(e),{subtle:s}=window.crypto,m=yield s.encrypt({name:Kt,iv:r},i,a),f=wn(m);yield _e(`${Vt}_${t}`,f),yield _e(jt,i),yield _e(qt,r)})}function va(e){return X(this,null,function*(){let t=yield le(`${Vt}_${e}`),r=yield le(qt),i=yield le(jt);if(!r||!t||!i||!bt())return;let{subtle:a}=window.crypto,s=yield a.decrypt({name:Kt,iv:r},i,bn(t));return wn(s)})}function ot(e,t){return t?new URL(e,t):new URL(e)}var pa=class extends Ue{constructor(){super(...arguments),this.localForageKey="mc_active_wallet",this.localForageIsLoggedInKey="magic_auth_is_logged_in",this.userLoggedOutCallbacks=[]}getIdToken(e){let t=W(this.sdk.testMode?T.GetIdTokenTestMode:T.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=W(this.sdk.testMode?T.GenerateIdTokenTestMode:T.GenerateIdToken,[e]);return this.request(t)}getInfo(){return X(this,null,function*(){let e=yield le(this.localForageKey),t=W(T.GetInfo,[{walletType:e}]);return this.request(t)})}isLoggedIn(){return it((e,t)=>X(this,null,function*(){try{let r=!1;this.sdk.useStorageCache&&(r=(yield le(this.localForageIsLoggedInKey))==="true",r&&e(!0));let i=W(this.sdk.testMode?T.IsLoggedInTestMode:T.IsLoggedIn),a=yield this.request(i);this.sdk.useStorageCache&&(a?_e(this.localForageIsLoggedInKey,!0):Ve(this.localForageIsLoggedInKey),r&&!a&&this.emitUserLoggedOut(!0)),e(a)}catch(r){t(r)}}))}logout(){return Ve(this.localForageKey),Ve(this.localForageIsLoggedInKey),Ht(),it((e,t)=>X(this,null,function*(){try{let r=W(this.sdk.testMode?T.LogoutTestMode:T.Logout),i=yield this.request(r);this.sdk.useStorageCache&&this.emitUserLoggedOut(i),e(i)}catch(r){t(r)}}))}requestInfoWithUI(e){let t=W(T.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let{showUI:t=!0}=e||{},r=W(this.sdk.testMode?T.UserSettingsTestMode:T.UserSettings,[e]),i=this.request(r);return!t&&i&&(i.on(ye.SendNewPhoneNumber,a=>{this.createIntermediaryEvent(ye.SendNewPhoneNumber,r.id)(a)}),i.on(ye.SendOtpCode,a=>{this.createIntermediaryEvent(ye.SendOtpCode,r.id)(a)}),i.on(ye.StartEditPhoneNumber,()=>{this.createIntermediaryEvent(ye.StartEditPhoneNumber,r.id)()}),i.on(ye.Cancel,()=>{this.createIntermediaryEvent(ye.Cancel,r.id)()}),i.on(de.VerifyEmailOtp,a=>{this.createIntermediaryEvent(de.VerifyEmailOtp,r.id)(a)})),i}recoverAccount(e){let{email:t,showUI:r}=e,i=W(this.sdk.testMode?T.RecoverAccountTestMode:T.RecoverAccount,[{email:t,showUI:r}]),a=this.request(i);return!r&&a&&(a.on(Ee.Cancel,()=>{this.createIntermediaryEvent(Ee.Cancel,i.id)()}),a.on(Ee.ResendSms,()=>{this.createIntermediaryEvent(Ee.ResendSms,i.id)()}),a.on(Ee.VerifyOtp,s=>{this.createIntermediaryEvent(Ee.VerifyOtp,i.id)(s)}),a.on(Ee.UpdateEmail,s=>{this.createIntermediaryEvent(Ee.UpdateEmail,i.id)(s)}),a.on(ne.Cancel,()=>{this.createIntermediaryEvent(ne.Cancel,i.id)()}),a.on(ne.RetryWithNewEmail,s=>{this.createIntermediaryEvent(ne.RetryWithNewEmail,i.id)(s)}),a.on(ne.VerifyEmailOtp,s=>{this.createIntermediaryEvent(ne.VerifyEmailOtp,i.id)(s)})),a}revealPrivateKey(){let e=W(T.RevealPK);return this.request(e)}getMetadata(){tt({method:"user.getMetadata()",removalVersions:rt,useInstead:"user.getInfo()"}).log();let e=W(this.sdk.testMode?T.GetMetadataTestMode:T.GetMetadata);return this.request(e)}onUserLoggedOut(e){this.userLoggedOutCallbacks.push(e)}enableMFA(e){let{showUI:t=!0}=e,r=W(T.EnableMFA,[{showUI:t}]),i=this.request(r);return!t&&i&&(i.on(Pe.VerifyMFACode,a=>{this.createIntermediaryEvent(Pe.VerifyMFACode,r.id)(a)}),i.on(Pe.Cancel,()=>{this.createIntermediaryEvent(Pe.Cancel,r.id)()})),i}disableMFA(e){let{showUI:t=!0}=e,r=W(T.DisableMFA,[{showUI:t}]),i=this.request(r);return!t&&i&&(i.on(Re.VerifyMFACode,a=>{this.createIntermediaryEvent(Re.VerifyMFACode,r.id)(a)}),i.on(Re.LostDevice,a=>{this.createIntermediaryEvent(Re.LostDevice,r.id)(a)}),i.on(Re.Cancel,()=>{this.createIntermediaryEvent(Re.Cancel,r.id)()})),i}emitUserLoggedOut(e){this.userLoggedOutCallbacks.forEach(t=>{t(e)})}},ya=class extends Ue{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}connectWithUI(){let e=it((t,r)=>X(this,null,function*(){try{if(this.isMetaMaskBrowser()&&(yield this.isWalletEnabled(fe.MetaMask))){let f=yield this.autoConnectIfWalletBrowser(fe.MetaMask);t(f);return}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled(fe.CoinbaseWallet))){let f=yield this.autoConnectIfWalletBrowser(fe.CoinbaseWallet);t(f);return}let i=this.getUserEnv(),a=W(T.Login,[i]),s=this.request(a);s.on(We.WalletSelected,f=>this.handleWalletSelected(kt(Ft({},f),{payloadId:a.id}))),s.on("id-token-created",f=>{e.emit("id-token-created",f)});let m=yield s;m.error&&r(m),t(m)}catch(i){r(i)}}));return e}showUI(e){return this.request(W(T.ShowUI,[e]))}showAddress(){return this.request(W(T.ShowAddress))}showSendTokensUI(){return this.request(W(T.ShowSendTokensUI))}showOnRamp(){return this.request(W(T.ShowOnRamp))}showNFTs(){return this.request(W(T.ShowNFTs))}showBalances(){return this.request(W(T.ShowBalances))}sendGaslessTransaction(e,t){return this.request(W(T.SendGaslessTransaction,[e,t]))}getInfo(){return X(this,null,function*(){tt({method:"wallet.getInfo()",removalVersions:rt,useInstead:"user.getInfo()"}).log();let e=yield le(this.localForageKey),t=W(T.GetInfo,[{walletType:e}]);return this.request(t)})}disconnect(){tt({method:"wallet.disconnect()",removalVersions:rt,useInstead:"user.logout()"}).log(),Ve(this.localForageKey),Ht();let e=W(T.Disconnect);return this.request(e)}requestUserInfoWithUI(e){tt({method:"wallet.requestUserInfoWithUI()",removalVersions:rt,useInstead:"user.requestUserInfoWithUI()"}).log();let t=W(T.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}getProvider(){return X(this,null,function*(){switch(yield le(this.localForageKey)){case fe.MetaMask:return this.getMetaMaskProvider();case fe.CoinbaseWallet:return this.getCoinbaseProvider();default:return this.sdk.rpcProvider}})}isMetaMaskInstalled(){var e,t,r;return((e=window.ethereum)==null?void 0:e.isMetaMask)||!!((r=(t=window.ethereum)==null?void 0:t.providers)!=null&&r.find(i=>i==null?void 0:i.isMetaMask))}isMetaMaskBrowser(){return this.isMobile()&&this.isMetaMaskInstalled()}getMetaMaskProvider(){var e,t;return((t=(e=window.ethereum)==null?void 0:e.providers)==null?void 0:t.find(r=>r==null?void 0:r.isMetaMask))||window.ethereum}connectToMetaMask(){if(this.isMobile()&&!this.isMetaMaskInstalled()){let e=`https://metamask.app.link/dapp/${window.location.href.replace(/(^\w+:|^)\/\//,"")}`;window.location.href=e}return this.getMetaMaskProvider().request({method:"eth_requestAccounts"})}isCoinbaseWalletInstalled(){var e,t,r;return((e=window.ethereum)==null?void 0:e.isCoinbaseWallet)||!!((r=(t=window.ethereum)==null?void 0:t.providers)!=null&&r.find(i=>i==null?void 0:i.isCoinbaseWallet))}isCoinbaseWalletBrowser(){var e;return!!((e=window.ethereum)!=null&&e.isCoinbaseBrowser)}getCoinbaseProvider(){var e,t;return((t=(e=window.ethereum)==null?void 0:e.providers)==null?void 0:t.find(r=>r==null?void 0:r.isCoinbaseWallet))||window.ethereum}connectToCoinbaseWallet(){if(this.isMobile()&&!this.isCoinbaseWalletBrowser()){let e=`https://go.cb-w.com/dapp?cb_url=${encodeURIComponent(window.location.href)}`;window.location.href=e}return this.getCoinbaseProvider().request({method:"eth_requestAccounts"})}isMobile(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Silk|Opera Mini/i.test(navigator.userAgent)}getUserEnv(){return{env:{isMetaMaskInstalled:this.isMetaMaskInstalled(),isCoinbaseWalletInstalled:this.isCoinbaseWalletInstalled()}}}connectToThirdPartyWallet(e){switch(e){case fe.MetaMask:return this.connectToMetaMask();case fe.CoinbaseWallet:return this.connectToCoinbaseWallet();default:throw new Error(`Invalid provider: ${e}. Must be one of "metamask" or "coinbase_wallet".`)}}isWalletEnabled(e){let t=W("mc_is_wallet_enabled",[{wallet:e}]);return this.request(t)}handleWalletSelected(e){return X(this,null,function*(){try{let t=yield this.connectToThirdPartyWallet(e.wallet);yield _e(this.localForageKey,e.wallet),this.createIntermediaryEvent(We.WalletConnected,e.payloadId)(t)}catch(t){console.error(t),this.createIntermediaryEvent(We.WalletRejected,e.payloadId)()}})}autoConnectIfWalletBrowser(e){return X(this,null,function*(){let t;e===fe.MetaMask&&(t=yield this.getMetaMaskProvider().request({method:"eth_requestAccounts"})),e===fe.CoinbaseWallet&&(t=yield this.getCoinbaseProvider().request({method:"eth_requestAccounts"})),yield _e(this.localForageKey,e);let r=W(T.AutoConnect,[{wallet:e,address:t}]);return this.request(r)})}},{createBoundEmitterMethod:vt,createChainingEmitterMethod:Be}=mn(),Ea=class extends Ue{constructor(){super(...arguments),this.isMagic=!0,this.on=Be("on",this),this.once=Be("once",this),this.addListener=Be("addListener",this),this.off=Be("off",this),this.removeListener=Be("removeListener",this),this.removeAllListeners=Be("removeAllListeners",this),this.emit=vt("emit"),this.eventNames=vt("eventNames"),this.listeners=vt("listeners"),this.listenerCount=vt("listenerCount")}sendAsync(e,t){if(!t)throw Go({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:t===null?"null":typeof t});if(Array.isArray(e))this.overlay.post(be.MAGIC_HANDLE_REQUEST,e.map(r=>{let i=gt(r);return this.prefixPayloadMethodForTestMode(i),i})).then(r=>{t(null,r.map(i=>kt(Ft({},i.payload),{error:i.hasError?new je(i.payload.error):null})))});else{let r=gt(e);this.prefixPayloadMethodForTestMode(r),this.overlay.post(be.MAGIC_HANDLE_REQUEST,r).then(i=>{t(i.hasError?new je(i.payload.error):null,i.payload)})}}send(e,t){if(typeof e=="string"){let i=W(e,Array.isArray(t)?t:[]);return this.request(i)}if(Array.isArray(e)||!!t){this.sendAsync(e,t);return}let r=Vo();return r.log(),new Bt(e).applyError({code:-32603,message:r.rawMessage}).payload}enable(){let e=W(T.Login);return this.request(e)}request(e){return this.prefixPayloadMethodForTestMode(e),super.request(e)}prefixPayloadMethodForTestMode(e){let t="testMode/eth/";this.sdk.testMode&&(e.method=`${t}${e.method}`)}},rn=["request","overlay","sdk"];function ga(e){let t=Object.getPrototypeOf(e),r=[t];for(;t!==Ue.prototype;)t=Object.getPrototypeOf(t),r.push(t);return r}var Rn=class extends Ue{constructor(){super(void 0),this.__sdk_access_field_descriptors__=new Map,this.__is_initialized__=!1,this.utils={createPromiEvent:it,isPromiEvent:Gt,encodeJSON:sn,decodeJSON:Po,createJsonRpcRequestPayload:W,standardizeJsonRpcRequestPayload:gt,storage:yn};let e=[this,...ga(this)];rn.forEach(t=>{let r=e.map(m=>Object.getOwnPropertyDescriptor(m,t)),i=r.findIndex(m=>!!m),a=i>0,s=r[i];s&&(this.__sdk_access_field_descriptors__.set(t,{descriptor:s,isPrototypeField:a}),Object.defineProperty(this,t,{configurable:!0,get:()=>{throw Wo(t)}}))})}init(e){this.__is_initialized__||(rn.forEach(t=>{if(this.__sdk_access_field_descriptors__.has(t)){let{descriptor:r,isPrototypeField:i}=this.__sdk_access_field_descriptors__.get(t);i?delete this[t]:Object.defineProperty(this,t,r)}}),this.sdk=e,this.__is_initialized__=!0)}createDeprecationWarning(e){let{method:t,removalVersion:r,useInstead:i}=e,a=i?` Use \`${i}\` instead.`:"",s=`\`${t}\` will be removed from this Extension in version \`${r}\`.${a}`;return new Et(this,"DEPRECATION_NOTICE",s)}createWarning(e,t){return new Et(this,e,t)}createError(e,t,r){return new It(this,e,t,r)}},_a=class extends Rn{},$e=class extends Rn{};$e.Internal=_a,$e.Anonymous="anonymous extension";var Ia=class extends Ue{purchase(e){let t=W(T.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=W(T.NFTCheckout,[e]);return this.request(t)}transfer(e){let t=W(T.NFTTransfer,[e]);return this.request(t)}};function nn(e){return e.compat&&e.compat[Y.sdkName]!=null?typeof e.compat[Y.sdkName]=="string"?Ro(No(Y.version),e.compat[Y.sdkName]):!!e.compat[Y.sdkName]:!0}function wa(e,t,r){return!t&&!r?`${e}_eth_mainnet`:r?`${e}_${JSON.stringify(r)}`:t?typeof t=="string"?`${e}_eth_${t}`:`${e}_${t.rpcUrl}_${t.chainId}_${t.chainType}`:`${e}_unknown`}function ba(e){var t;let r=(t=e==null?void 0:e.extensions)!=null?t:[],i={},a=[];if(Array.isArray(r)?r.forEach(s=>{nn(s)?(s.init(this),(s.name||s.name!==$e.Anonymous)&&(this[s.name]=s),s instanceof $e.Internal&&(yt(s.config)||(i[s.name]=s.config))):a.push(s)}):Object.keys(r).forEach(s=>{if(nn(r[s])){r[s].init(this);let m=r[s];this[s]=m,m instanceof $e.Internal&&(yt(m.config)||(i[r[s].name]=m.config))}else a.push(r[s])}),a.length)throw Bo(a);return i}var pt=class{constructor(e,t){this.apiKey=e;var r;if(!e)throw Fo();Y.platform==="react-native"&&(t==null?void 0:t.endpoint)&&jo().log();let{defaultEndpoint:i,version:a}=Y;this.testMode=!!(t!=null&&t.testMode),this.useStorageCache=!!(t!=null&&t.useStorageCache),this.endpoint=ot((r=t==null?void 0:t.endpoint)!=null?r:i).origin,this.auth=new Jo(this),this.user=new pa(this),this.wallet=new ya(this),this.nft=new Ia(this),this.rpcProvider=new Ea(this);let s=ba.call(this,t);this.parameters=sn(kt(Ft({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,host:ot(this.endpoint).host,sdk:xo[Y.sdkName],version:a,ext:yt(s)?void 0:s,locale:(t==null?void 0:t.locale)||"en_US"},Y.bundleId?{bundleId:Y.bundleId}:{}),{meta:t==null?void 0:t.meta})),this.networkHash=wa(this.apiKey,t==null?void 0:t.network,yt(s)?void 0:s),t!=null&&t.deferPreload||this.preload()}get overlay(){if(!pt.__overlays__.has(this.parameters)){let e=new Y.ViewController(this.endpoint,this.parameters,this.networkHash);e.init(),pt.__overlays__.set(this.parameters,e)}return pt.__overlays__.get(this.parameters)}preload(){return X(this,null,function*(){yield this.overlay.checkIsReadyForRequest})}},Yt=pt;Yt.__overlays__=new Map;function Ra(e,t){return t&&Array.isArray(e)?e.find(r=>r.id===t):e}function Aa(e,t){var r;let i=(r=t.data.response)==null?void 0:r.id,a=Ra(e,i);if(i&&a){let s=new Bt(a).applyResult(t.data.response.result).applyError(t.data.response.error);return{id:i,response:s}}return{}}function Sa(e,t,r){return X(this,null,function*(){var i;let a=yield le("rt"),s;if(Y.platform==="web")try{s=(i=yield le("jwt"))!=null?i:yield oa()}catch(p){console.error("webcrypto error",p)}let m={msgType:e,payload:t};s&&(m.jwt=s),s&&a&&(m.rt=a);let f=yield va(r);return f&&(m.deviceShare=f),m})}function Oa(e){return X(this,null,function*(){!e.data.rt||(yield _e("rt",e.data.rt))})}var An=class{constructor(e,t,r){this.endpoint=e,this.parameters=t,this.networkHash=r,this.messageHandlers=new Set,this.isConnectedToInternet=!0,this.checkIsReadyForRequest=this.waitForReady(),this.isReadyForRequest=!1,this.listen()}post(e,t){return X(this,null,function*(){return pn((r,i)=>X(this,null,function*(){if(!this.isConnectedToInternet){let y=wt();i(y)}this.isReadyForRequest||(yield this.waitForReady());let a=[],s=Array.isArray(t)?t.map(y=>y.id):[],m=yield Sa(`${e}-${this.parameters}`,t,this.networkHash);yield this._post(m);let f=y=>E=>{var N;let{id:_,response:O}=Aa(t,E);if(Oa(E),((N=O==null?void 0:O.payload.error)==null?void 0:N.message)==="User denied account access.")Ht();else if(E.data.deviceShare){let{deviceShare:C}=E.data;ma(C,this.networkHash)}_&&O&&Array.isArray(t)&&s.includes(_)?(a.push(O),a.length===t.length&&(y(),r(a))):_&&O&&!Array.isArray(t)&&_===t.id&&(y(),r(O))},p=this.on(ve.MAGIC_HANDLE_RESPONSE,f(()=>p()))}))})}on(e,t){let r=t.bind(window),i=a=>{a.data.msgType===`${e}-${this.parameters}`&&r(a)};return this.messageHandlers.add(i),()=>this.messageHandlers.delete(i)}waitForReady(){return new Promise(e=>{let t=this.on(ve.MAGIC_OVERLAY_READY,()=>{this.isReadyForRequest=!0,e(),t()});setTimeout(()=>{this.isReadyForRequest=!0,e(),t()},15e3)})}listen(){this.on(ve.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(ve.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()}),this.on(ve.MAGIC_SEND_PRODUCT_ANNOUNCEMENT,e=>{e.data.response.result.product_announcement&&new De(we.ProductAnnouncement,e.data.response.result.product_announcement).log()})}};var Xt={};wr(Xt,{AuthEventOnReceived:()=>Pr,DeepLinkPage:()=>Ar,DeviceVerificationEventEmit:()=>Je,DeviceVerificationEventOnReceived:()=>Tr,DisableMFAEventEmit:()=>Re,DisableMFAEventOnReceived:()=>Ur,EnableMFAEventEmit:()=>Pe,EnableMFAEventOnReceived:()=>Dr,EthChainType:()=>xr,Events:()=>We,Extension:()=>$e,ExtensionError:()=>It,ExtensionWarning:()=>Et,FarcasterLoginEventEmit:()=>$r,LoginWithEmailOTPEventEmit:()=>he,LoginWithEmailOTPEventOnReceived:()=>Mr,LoginWithMagicLinkEventEmit:()=>Sr,LoginWithMagicLinkEventOnReceived:()=>Or,LoginWithSmsOTPEventEmit:()=>Le,LoginWithSmsOTPEventOnReceived:()=>Nr,MagicIncomingWindowMessage:()=>ve,MagicOutgoingWindowMessage:()=>be,MagicPayloadMethod:()=>T,NftCheckoutIntermediaryEvents:()=>Br,RPCError:()=>je,RPCErrorCode:()=>ke,RecencyCheckEventEmit:()=>de,RecencyCheckEventOnReceived:()=>Cr,RecoverAccountEventEmit:()=>Ee,RecoverAccountEventOnReceived:()=>Wr,RecoveryFactorEventEmit:()=>ye,RecoveryFactorEventOnReceived:()=>Fr,RecoveryMethodType:()=>kr,SDKError:()=>Ae,SDKErrorCode:()=>Ie,SDKWarning:()=>De,SDKWarningCode:()=>we,UiEventsEmit:()=>Vr,UpdateEmailEventEmit:()=>ne,UpdateEmailEventOnReceived:()=>Lr,UserEventsEmit:()=>ct,UserEventsOnReceived:()=>ut,WalletEventOnReceived:()=>Gr,Wallets:()=>fe,isPromiEvent:()=>Gt});var St=Rr(On()),Jt=Rr(Mn());var Na={display:"block",visibility:"hidden",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",zIndex:"2147483647",opacity:"0"};function Ma(e){for(let[t,r]of Object.entries(Na))e.style[t]=r}function Ta(e){let t=[].slice.call(document.querySelectorAll(".magic-iframe"));return Boolean(t.find(r=>r.src.includes(e)))}var Tn=1e3,Cn=60*Tn,Ca=15*Tn,La=2*Cn,Pa=60*Cn,At=class extends An{constructor(){super(...arguments);this.activeElement=null;this.lastPingTime=Date.now();this.intervalTimer=null;this.timeoutTimer=null}getIframeSrc(){return ot(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href}init(){this.test="hello",this.iframe=new Promise(r=>{let i=()=>{if(Ta(encodeURIComponent(this.parameters)))un().log();else{let a=document.createElement("iframe");a.classList.add("magic-iframe"),a.dataset.magicIframeLabel=ot(this.endpoint).host,a.title="Secure Modal",a.src=this.getIframeSrc(),a.allow="clipboard-read; clipboard-write",Ma(a),document.body.appendChild(a),r(a)}};["loaded","interactive","complete"].includes(document.readyState)?i():window.addEventListener("load",i,!1)}),this.iframe.then(r=>{r instanceof HTMLIFrameElement&&r.addEventListener("load",()=>ge(this,null,function*(){yield this.startHeartBeat()}))}),window.addEventListener("message",r=>{var i;if(r.origin===this.endpoint&&r.data&&r.data.msgType&&this.messageHandlers.size){r.data.msgType.includes(ve.MAGIC_PONG)&&(this.lastPingTime=Date.now()),r.data.response=(i=r.data.response)!=null?i:{};for(let s of this.messageHandlers.values())s(r)}}),window.addEventListener("beforeunload",()=>{this.stopHeartBeat()})}showOverlay(){return ge(this,null,function*(){let r=yield this.iframe;r.style.visibility="visible",r.style.opacity="1",this.activeElement=document.activeElement,r.focus()})}hideOverlay(){return ge(this,null,function*(){var i;let r=yield this.iframe;r.style.visibility="hidden",r.style.opacity="0",(i=this.activeElement)!=null&&i.focus&&this.activeElement.focus(),this.activeElement=null})}_post(r){return ge(this,null,function*(){let i=yield this.iframe;if(i&&i.contentWindow)i.contentWindow.postMessage(r,this.endpoint);else throw wt()})}heartBeatCheck(){this.intervalTimer=setInterval(()=>ge(this,null,function*(){let r={msgType:`${be.MAGIC_PING}-${this.parameters}`,payload:[]};yield this._post(r),Date.now()-this.lastPingTime>Ca&&(yield this.reloadIframe(),this.lastPingTime=Date.now())}),La)}startHeartBeat(){return ge(this,null,function*(){(yield this.iframe)&&(this.timeoutTimer=setTimeout(()=>this.heartBeatCheck(),Pa))})}stopHeartBeat(){this.timeoutTimer&&(clearTimeout(this.timeoutTimer),this.timeoutTimer=null),this.intervalTimer&&(clearInterval(this.intervalTimer),this.intervalTimer=null)}reloadIframe(){return ge(this,null,function*(){let r=yield this.iframe;if(r)r.src=this.getIframeSrc();else throw wt()})}};var $a=Object.assign(cn(Yt,{platform:"web",sdkName:"magic-sdk",version:"28.18.0",defaultEndpoint:"https://auth.magic.link/",ViewController:At,configureStorage:()=>ge(void 0,null,function*(){let e=St.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return yield e.defineDriver(Jt),yield e.setDriver([St.default.INDEXEDDB,St.default.LOCALSTORAGE,Jt._driver]),e})}),_r({},Xt)),Da=$a;return Ci(Ua);})();
5
+ Received: \`${e.received}\``)}function un(){return new De(we.DuplicateIframe,"Duplicate iframes found.")}function Vo(){return new De(we.SyncWeb3Method,"Non-async web3 methods are deprecated in web3 > 1.0 and are not supported by the Magic web3 provider. Please use an async method instead.")}function jo(){return new De(we.ReactNativeEndpointConfiguration,`CUSTOM DOMAINS ARE NOT SUPPORTED WHEN USING MAGIC SDK WITH REACT NATIVE! The \`endpoint\` parameter SHOULD NOT be provided. The Magic \`<iframe>\` is automatically wrapped by a WebView pointed at \`${Y.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function tt(e){let{method:t,removalVersions:r,useInstead:i}=e,a=r[Y.sdkName],s=i?` Use \`${i}\` instead.`:"",m=`\`${t}\` will be removed from \`${Y.sdkName}\` in version \`${a}\`.${s}`;return new De(we.DeprecationNotice,m)}function*qo(){let e=0;for(;;)e<Number.MAX_SAFE_INTEGER?yield++e:e=0}var Ko=qo();function dn(){return Ko.next().value}var fn=Symbol("Payload pre-processed by Magic SDK");function hn(e){return Object.defineProperty(e,fn,{value:!0,enumerable:!1}),e}function Ho(e){return!!e[fn]}function gt(e){var t,r,i;return Ho(e)||(e.jsonrpc=(t=e.jsonrpc)!=null?t:"2.0",e.id=dn(),e.method=(r=e.method)!=null?r:"noop",e.params=(i=e.params)!=null?i:[],hn(e)),e}function W(e,t=[]){return hn({params:t,method:e,jsonrpc:"2.0",id:dn()})}var Bt=class{constructor(e){e instanceof Bt?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):Do(e)?(this._jsonrpc=e.jsonrpc,this._id=e.id,this._result=e.result,this._error=e.error):(this._jsonrpc=e.jsonrpc,this._id=e.id,this._result=void 0,this._error=void 0)}applyError(e){return this._error=e,this}applyResult(e){return this._result=e,this}get hasError(){return typeof this._error!="undefined"&&this._error!==null}get hasResult(){return typeof this._result!="undefined"}get payload(){return{jsonrpc:this._jsonrpc,id:this._id,result:this._result,error:this._error}}},Yo=Gi(Vi()),Xo=class extends Yo.default{};function mn(){let e=new Xo;return{emitter:e,createChainingEmitterMethod:(t,r)=>(...i)=>(e[t].apply(e,i),r),createBoundEmitterMethod:t=>(...r)=>e[t].apply(e,r)}}var vn=Symbol("isPromiEvent");function Gt(e){return!!e[vn]}function it(e){let t=pn(e),{createBoundEmitterMethod:r,createChainingEmitterMethod:i}=mn(),a=Symbol("Promise.then"),s=Symbol("Promise.catch"),m=Symbol("Promise.finally"),f=(E,N)=>(..._)=>{let O=N[E].apply(N,_);return p(O)},p=E=>Object.assign(E,{[vn]:!0,[a]:E[a]||E.then,[s]:E[s]||E.catch,[m]:E[m]||E.finally,then:f(a,E),catch:f(s,E),finally:f(m,E),on:i("on",E),once:i("once",E),addListener:i("addListener",E),off:i("off",E),removeListener:i("removeListener",E),removeAllListeners:i("removeAllListeners",E),emit:r("emit"),eventNames:r("eventNames"),listeners:r("listeners"),listenerCount:r("listenerCount")}),y=p(t.then(E=>(y.emit("done",E),y.emit("settled"),E),E=>{throw y.emit("error",E),y.emit("settled"),E}));return y.on(ut.ClosedByUser,()=>{y.emit(ct.ClosedByUser)}),y}function pn(e){return new Promise((t,r)=>{let i=e(t,r);Promise.resolve(i).catch(r)})}var Ue=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){let t=this.overlay.post(be.MAGIC_HANDLE_REQUEST,gt(e)),r=it((a,s)=>{t.then(m=>{if(i(),m.hasError)s(new je(m.payload.error));else if(m.hasResult)a(m.payload.result);else throw ko()}).catch(m=>{i(),s(m)})}),i=this.overlay.on(ve.MAGIC_HANDLE_EVENT,a=>{var s;let{response:m}=a.data;if(m.id===e.id&&((s=m.result)==null?void 0:s.event)){let{event:f,params:p=[]}=m.result;r.emit(f,...p)}});return r}createIntermediaryEvent(e,t){return r=>{let i=W(T.IntermediaryEvent,[{payloadId:t,eventType:e,args:r}]);this.request(i)}}};function zo(e,t){let[r]=e.split(".").map(Number);return r>=t}var rt={"magic-sdk":"v18.0.0","@magic-sdk/react-native":"v14.0.0","@magic-sdk/react-native-bare":"v19.0.0","@magic-sdk/react-native-expo":"v19.0.0"},Jo=class extends Ue{loginWithMagicLink(e){let t=Y.sdkName==="@magic-sdk/react-native"||Y.sdkName==="@magic-sdk/react-native-bare"||Y.sdkName==="@magic-sdk/react-native-expo";if(t&&zo(Y.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&tt({method:"auth.loginWithMagicLink()",removalVersions:rt,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:r,showUI:i=!0,redirectURI:a,overrides:s,lifespan:m}=e,f=W(this.sdk.testMode?T.LoginWithMagicLinkTestMode:T.LoginWithMagicLink,[{email:r,showUI:i,redirectURI:a,overrides:s,lifespan:m}]);return this.request(f)}loginWithSMS(e){let{phoneNumber:t,showUI:r=!0,lifespan:i}=e,a=W(this.sdk.testMode?T.LoginWithSmsTestMode:T.LoginWithSms,[{phoneNumber:t,showUI:r,lifespan:i}]),s=this.request(a);return!r&&s&&(s.on(Le.VerifySmsOtp,m=>{this.createIntermediaryEvent(Le.VerifySmsOtp,a.id)(m)}),s.on(Le.Cancel,()=>{this.createIntermediaryEvent(Le.Cancel,a.id)()})),s}loginWithEmailOTP(e){let{email:t,showUI:r,deviceCheckUI:i,overrides:a,lifespan:s}=e,m=W(this.sdk.testMode?T.LoginWithEmailOTPTestMode:T.LoginWithEmailOTP,[{email:t,showUI:r,deviceCheckUI:i,overrides:a,lifespan:s}]),f=this.request(m);return!i&&f&&f.on(Je.Retry,()=>{this.createIntermediaryEvent(Je.Retry,m.id)()}),!r&&f&&(f.on(he.VerifyEmailOtp,p=>{this.createIntermediaryEvent(he.VerifyEmailOtp,m.id)(p)}),f.on(he.VerifyMFACode,p=>{this.createIntermediaryEvent(he.VerifyMFACode,m.id)(p)}),f.on(he.LostDevice,()=>{this.createIntermediaryEvent(he.LostDevice,m.id)()}),f.on(he.VerifyRecoveryCode,p=>{this.createIntermediaryEvent(he.VerifyRecoveryCode,m.id)(p)}),f.on(he.Cancel,()=>{this.createIntermediaryEvent(he.Cancel,m.id)()})),f}loginWithCredential(e){let{credentialOrQueryString:t,lifespan:r}=e||{},i=t!=null?t:"";if(!t&&Y.platform==="web"){i=window.location.search;let s=window.location.origin+window.location.pathname;window.history.replaceState(null,"",s)}let a=W(this.sdk.testMode?T.LoginWithCredentialTestMode:T.LoginWithCredential,[i,r]);return this.request(a)}setAuthorizationToken(e){let t=W(T.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:r=!0}=e,i=W(this.sdk.testMode?T.UpdateEmailTestMode:T.UpdateEmail,[{email:t,showUI:r}]),a=this.request(i);return r||(a.on(de.Retry,()=>{this.createIntermediaryEvent(de.Retry,i.id)()}),a.on(de.Cancel,()=>{this.createIntermediaryEvent(de.Cancel,i.id)()}),a.on(de.VerifyEmailOtp,s=>{this.createIntermediaryEvent(de.VerifyEmailOtp,i.id)(s)}),a.on(de.VerifyMFACode,s=>{this.createIntermediaryEvent(de.VerifyMFACode,i.id)(s)}),a.on(ne.RetryWithNewEmail,s=>{this.createIntermediaryEvent(ne.RetryWithNewEmail,i.id)(s)}),a.on(ne.Cancel,()=>{this.createIntermediaryEvent(ne.Cancel,i.id)()}),a.on(ne.VerifyEmailOtp,s=>{this.createIntermediaryEvent(ne.VerifyEmailOtp,i.id)(s)})),a}},yn={};Wi(yn,{clear:()=>Qo,getItem:()=>le,iterate:()=>En,key:()=>ea,keys:()=>ta,length:()=>Zo,removeItem:()=>Ve,setItem:()=>_e});var mt;function Me(e){return(...t)=>X(this,null,function*(){return mt||(mt=yield Y.configureStorage()),yield mt.ready(),mt[e](...t)})}var le=Me("getItem"),_e=Me("setItem"),Ve=Me("removeItem"),Qo=Me("clear"),Zo=Me("length"),ea=Me("key"),ta=Me("keys"),En=Me("iterate");function ra(){let e=window.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&191|128;let t="";return t+=e[0].toString(16),t+=e[1].toString(16),t+=e[2].toString(16),t+=e[3].toString(16),t+="-",t+=e[4].toString(16),t+=e[5].toString(16),t+="-",t+=e[6].toString(16),t+=e[7].toString(16),t+="-",t+=e[8].toString(16),t+=e[9].toString(16),t+="-",t+=e[10].toString(16),t+=e[11].toString(16),t+=e[12].toString(16),t+=e[13].toString(16),t+=e[14].toString(16),t+=e[15].toString(16),t}var gn="STORE_KEY_PRIVATE_KEY",xt="STORE_KEY_PUBLIC_JWK",_n="ECDSA",na="P-256",ia={name:_n,namedCurve:na};function bt(){let e=typeof window!="undefined"&&!!window.crypto,t=e&&!!window.crypto.subtle;return e&&t}function oa(){return X(this,null,function*(){let e=yield aa();if(!e){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:t}=window.crypto,r=yield le(gn);if(!r||!t){console.info("unable to find private key or webcrypto unsupported");return}let i={iat:Math.floor(new Date().getTime()/1e3),jti:ra()},a={typ:"dpop+jwt",alg:"ES256",jwk:e},s={protected:tn(JSON.stringify(a)),claims:tn(JSON.stringify(i))},m=la(`${s.protected}.${s.claims}`),f={name:_n,hash:{name:"SHA-256"}},p=ua(new Uint8Array(yield t.sign(f,r,m)));return`${s.protected}.${s.claims}.${p}`})}function aa(){return X(this,null,function*(){if(!bt()){console.info("webcrypto is not supported");return}return(yield le(xt))||(yield sa()),le(xt)})}function sa(){return X(this,null,function*(){let{subtle:e}=window.crypto,t=yield e.generateKey(ia,!1,["sign"]),r=yield e.exportKey("jwk",t.publicKey);yield _e(gn,t.privateKey),yield _e(xt,r)})}function tn(e){return In(ca(e))}function la(e){return new TextEncoder().encode(e)}function In(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function ca(e){return encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}function ua(e){let t="";return e.forEach(r=>{t+=String.fromCharCode(r)}),In(t)}var Vt="ds",jt="ek",qt="iv",Kt="AES-GCM",da=256;function Ht(){return X(this,null,function*(){let e=[];yield En((t,r,i)=>{r.startsWith(`${Vt}_`)&&e.push(r)});for(let t of e)yield Ve(t)})}function wn(e){let t="",r=new Uint8Array(e),i=r.byteLength;for(let a=0;a<i;a++)t+=String.fromCharCode(r[a]);return window.btoa(t)}function bn(e){let t=window.atob(e),r=t.length,i=new Uint8Array(r);for(let a=0;a<r;a++)i[a]=t.charCodeAt(a);return i.buffer}function fa(){return X(this,null,function*(){if(!bt()){console.info("webcrypto is not supported");return}let{crypto:e}=window;return(yield le(qt))||e.getRandomValues(new Uint8Array(12))})}function ha(){return X(this,null,function*(){if(!bt()){console.info("webcrypto is not supported");return}let{subtle:e}=window.crypto;return(yield le(jt))||(yield e.generateKey({name:Kt,length:da},!1,["encrypt","decrypt"]))})}function ma(e,t){return X(this,null,function*(){let r=yield fa(),i=yield ha();if(!r||!i||!e)return;let a=bn(e),{subtle:s}=window.crypto,m=yield s.encrypt({name:Kt,iv:r},i,a),f=wn(m);yield _e(`${Vt}_${t}`,f),yield _e(jt,i),yield _e(qt,r)})}function va(e){return X(this,null,function*(){let t=yield le(`${Vt}_${e}`),r=yield le(qt),i=yield le(jt);if(!r||!t||!i||!bt())return;let{subtle:a}=window.crypto,s=yield a.decrypt({name:Kt,iv:r},i,bn(t));return wn(s)})}function ot(e,t){return t?new URL(e,t):new URL(e)}var pa=class extends Ue{constructor(){super(...arguments),this.localForageKey="mc_active_wallet",this.localForageIsLoggedInKey="magic_auth_is_logged_in",this.userLoggedOutCallbacks=[]}getIdToken(e){let t=W(this.sdk.testMode?T.GetIdTokenTestMode:T.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=W(this.sdk.testMode?T.GenerateIdTokenTestMode:T.GenerateIdToken,[e]);return this.request(t)}getInfo(){return X(this,null,function*(){let e=yield le(this.localForageKey),t=W(T.GetInfo,[{walletType:e}]);return this.request(t)})}isLoggedIn(){return it((e,t)=>X(this,null,function*(){try{let r=!1;this.sdk.useStorageCache&&(r=(yield le(this.localForageIsLoggedInKey))==="true",r&&e(!0));let i=W(this.sdk.testMode?T.IsLoggedInTestMode:T.IsLoggedIn),a=yield this.request(i);this.sdk.useStorageCache&&(a?_e(this.localForageIsLoggedInKey,!0):Ve(this.localForageIsLoggedInKey),r&&!a&&this.emitUserLoggedOut(!0)),e(a)}catch(r){t(r)}}))}logout(){return Ve(this.localForageKey),Ve(this.localForageIsLoggedInKey),Ht(),it((e,t)=>X(this,null,function*(){try{let r=W(this.sdk.testMode?T.LogoutTestMode:T.Logout),i=yield this.request(r);this.sdk.useStorageCache&&this.emitUserLoggedOut(i),e(i)}catch(r){t(r)}}))}requestInfoWithUI(e){let t=W(T.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let{showUI:t=!0}=e||{},r=W(this.sdk.testMode?T.UserSettingsTestMode:T.UserSettings,[e]),i=this.request(r);return!t&&i&&(i.on(ye.SendNewPhoneNumber,a=>{this.createIntermediaryEvent(ye.SendNewPhoneNumber,r.id)(a)}),i.on(ye.SendOtpCode,a=>{this.createIntermediaryEvent(ye.SendOtpCode,r.id)(a)}),i.on(ye.StartEditPhoneNumber,()=>{this.createIntermediaryEvent(ye.StartEditPhoneNumber,r.id)()}),i.on(ye.Cancel,()=>{this.createIntermediaryEvent(ye.Cancel,r.id)()}),i.on(de.VerifyEmailOtp,a=>{this.createIntermediaryEvent(de.VerifyEmailOtp,r.id)(a)})),i}recoverAccount(e){let{email:t,showUI:r}=e,i=W(this.sdk.testMode?T.RecoverAccountTestMode:T.RecoverAccount,[{email:t,showUI:r}]),a=this.request(i);return!r&&a&&(a.on(Ee.Cancel,()=>{this.createIntermediaryEvent(Ee.Cancel,i.id)()}),a.on(Ee.ResendSms,()=>{this.createIntermediaryEvent(Ee.ResendSms,i.id)()}),a.on(Ee.VerifyOtp,s=>{this.createIntermediaryEvent(Ee.VerifyOtp,i.id)(s)}),a.on(Ee.UpdateEmail,s=>{this.createIntermediaryEvent(Ee.UpdateEmail,i.id)(s)}),a.on(ne.Cancel,()=>{this.createIntermediaryEvent(ne.Cancel,i.id)()}),a.on(ne.RetryWithNewEmail,s=>{this.createIntermediaryEvent(ne.RetryWithNewEmail,i.id)(s)}),a.on(ne.VerifyEmailOtp,s=>{this.createIntermediaryEvent(ne.VerifyEmailOtp,i.id)(s)})),a}revealPrivateKey(){let e=W(T.RevealPK);return this.request(e)}getMetadata(){tt({method:"user.getMetadata()",removalVersions:rt,useInstead:"user.getInfo()"}).log();let e=W(this.sdk.testMode?T.GetMetadataTestMode:T.GetMetadata);return this.request(e)}onUserLoggedOut(e){this.userLoggedOutCallbacks.push(e)}enableMFA(e){let{showUI:t=!0}=e,r=W(T.EnableMFA,[{showUI:t}]),i=this.request(r);return!t&&i&&(i.on(Pe.VerifyMFACode,a=>{this.createIntermediaryEvent(Pe.VerifyMFACode,r.id)(a)}),i.on(Pe.Cancel,()=>{this.createIntermediaryEvent(Pe.Cancel,r.id)()})),i}disableMFA(e){let{showUI:t=!0}=e,r=W(T.DisableMFA,[{showUI:t}]),i=this.request(r);return!t&&i&&(i.on(Re.VerifyMFACode,a=>{this.createIntermediaryEvent(Re.VerifyMFACode,r.id)(a)}),i.on(Re.LostDevice,a=>{this.createIntermediaryEvent(Re.LostDevice,r.id)(a)}),i.on(Re.Cancel,()=>{this.createIntermediaryEvent(Re.Cancel,r.id)()})),i}emitUserLoggedOut(e){this.userLoggedOutCallbacks.forEach(t=>{t(e)})}},ya=class extends Ue{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}connectWithUI(){let e=it((t,r)=>X(this,null,function*(){try{if(this.isMetaMaskBrowser()&&(yield this.isWalletEnabled(fe.MetaMask))){let f=yield this.autoConnectIfWalletBrowser(fe.MetaMask);t(f);return}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled(fe.CoinbaseWallet))){let f=yield this.autoConnectIfWalletBrowser(fe.CoinbaseWallet);t(f);return}let i=this.getUserEnv(),a=W(T.Login,[i]),s=this.request(a);s.on(We.WalletSelected,f=>this.handleWalletSelected(kt(Ft({},f),{payloadId:a.id}))),s.on("id-token-created",f=>{e.emit("id-token-created",f)});let m=yield s;m.error&&r(m),t(m)}catch(i){r(i)}}));return e}showUI(e){return this.request(W(T.ShowUI,[e]))}showAddress(){return this.request(W(T.ShowAddress))}showSendTokensUI(){return this.request(W(T.ShowSendTokensUI))}showOnRamp(){return this.request(W(T.ShowOnRamp))}showNFTs(){return this.request(W(T.ShowNFTs))}showBalances(){return this.request(W(T.ShowBalances))}sendGaslessTransaction(e,t){return this.request(W(T.SendGaslessTransaction,[e,t]))}getInfo(){return X(this,null,function*(){tt({method:"wallet.getInfo()",removalVersions:rt,useInstead:"user.getInfo()"}).log();let e=yield le(this.localForageKey),t=W(T.GetInfo,[{walletType:e}]);return this.request(t)})}disconnect(){tt({method:"wallet.disconnect()",removalVersions:rt,useInstead:"user.logout()"}).log(),Ve(this.localForageKey),Ht();let e=W(T.Disconnect);return this.request(e)}requestUserInfoWithUI(e){tt({method:"wallet.requestUserInfoWithUI()",removalVersions:rt,useInstead:"user.requestUserInfoWithUI()"}).log();let t=W(T.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}getProvider(){return X(this,null,function*(){switch(yield le(this.localForageKey)){case fe.MetaMask:return this.getMetaMaskProvider();case fe.CoinbaseWallet:return this.getCoinbaseProvider();default:return this.sdk.rpcProvider}})}isMetaMaskInstalled(){var e,t,r;return((e=window.ethereum)==null?void 0:e.isMetaMask)||!!((r=(t=window.ethereum)==null?void 0:t.providers)!=null&&r.find(i=>i==null?void 0:i.isMetaMask))}isMetaMaskBrowser(){return this.isMobile()&&this.isMetaMaskInstalled()}getMetaMaskProvider(){var e,t;return((t=(e=window.ethereum)==null?void 0:e.providers)==null?void 0:t.find(r=>r==null?void 0:r.isMetaMask))||window.ethereum}connectToMetaMask(){if(this.isMobile()&&!this.isMetaMaskInstalled()){let e=`https://metamask.app.link/dapp/${window.location.href.replace(/(^\w+:|^)\/\//,"")}`;window.location.href=e}return this.getMetaMaskProvider().request({method:"eth_requestAccounts"})}isCoinbaseWalletInstalled(){var e,t,r;return((e=window.ethereum)==null?void 0:e.isCoinbaseWallet)||!!((r=(t=window.ethereum)==null?void 0:t.providers)!=null&&r.find(i=>i==null?void 0:i.isCoinbaseWallet))}isCoinbaseWalletBrowser(){var e;return!!((e=window.ethereum)!=null&&e.isCoinbaseBrowser)}getCoinbaseProvider(){var e,t;return((t=(e=window.ethereum)==null?void 0:e.providers)==null?void 0:t.find(r=>r==null?void 0:r.isCoinbaseWallet))||window.ethereum}connectToCoinbaseWallet(){if(this.isMobile()&&!this.isCoinbaseWalletBrowser()){let e=`https://go.cb-w.com/dapp?cb_url=${encodeURIComponent(window.location.href)}`;window.location.href=e}return this.getCoinbaseProvider().request({method:"eth_requestAccounts"})}isMobile(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Silk|Opera Mini/i.test(navigator.userAgent)}getUserEnv(){return{env:{isMetaMaskInstalled:this.isMetaMaskInstalled(),isCoinbaseWalletInstalled:this.isCoinbaseWalletInstalled()}}}connectToThirdPartyWallet(e){switch(e){case fe.MetaMask:return this.connectToMetaMask();case fe.CoinbaseWallet:return this.connectToCoinbaseWallet();default:throw new Error(`Invalid provider: ${e}. Must be one of "metamask" or "coinbase_wallet".`)}}isWalletEnabled(e){let t=W("mc_is_wallet_enabled",[{wallet:e}]);return this.request(t)}handleWalletSelected(e){return X(this,null,function*(){try{let t=yield this.connectToThirdPartyWallet(e.wallet);yield _e(this.localForageKey,e.wallet),this.createIntermediaryEvent(We.WalletConnected,e.payloadId)(t)}catch(t){console.error(t),this.createIntermediaryEvent(We.WalletRejected,e.payloadId)()}})}autoConnectIfWalletBrowser(e){return X(this,null,function*(){let t;e===fe.MetaMask&&(t=yield this.getMetaMaskProvider().request({method:"eth_requestAccounts"})),e===fe.CoinbaseWallet&&(t=yield this.getCoinbaseProvider().request({method:"eth_requestAccounts"})),yield _e(this.localForageKey,e);let r=W(T.AutoConnect,[{wallet:e,address:t}]);return this.request(r)})}},{createBoundEmitterMethod:vt,createChainingEmitterMethod:Be}=mn(),Ea=class extends Ue{constructor(){super(...arguments),this.isMagic=!0,this.on=Be("on",this),this.once=Be("once",this),this.addListener=Be("addListener",this),this.off=Be("off",this),this.removeListener=Be("removeListener",this),this.removeAllListeners=Be("removeAllListeners",this),this.emit=vt("emit"),this.eventNames=vt("eventNames"),this.listeners=vt("listeners"),this.listenerCount=vt("listenerCount")}sendAsync(e,t){if(!t)throw Go({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:t===null?"null":typeof t});if(Array.isArray(e))this.overlay.post(be.MAGIC_HANDLE_REQUEST,e.map(r=>{let i=gt(r);return this.prefixPayloadMethodForTestMode(i),i})).then(r=>{t(null,r.map(i=>kt(Ft({},i.payload),{error:i.hasError?new je(i.payload.error):null})))});else{let r=gt(e);this.prefixPayloadMethodForTestMode(r),this.overlay.post(be.MAGIC_HANDLE_REQUEST,r).then(i=>{t(i.hasError?new je(i.payload.error):null,i.payload)})}}send(e,t){if(typeof e=="string"){let i=W(e,Array.isArray(t)?t:[]);return this.request(i)}if(Array.isArray(e)||!!t){this.sendAsync(e,t);return}let r=Vo();return r.log(),new Bt(e).applyError({code:-32603,message:r.rawMessage}).payload}enable(){let e=W(T.Login);return this.request(e)}request(e){return this.prefixPayloadMethodForTestMode(e),super.request(e)}prefixPayloadMethodForTestMode(e){let t="testMode/eth/";this.sdk.testMode&&(e.method=`${t}${e.method}`)}},rn=["request","overlay","sdk"];function ga(e){let t=Object.getPrototypeOf(e),r=[t];for(;t!==Ue.prototype;)t=Object.getPrototypeOf(t),r.push(t);return r}var Rn=class extends Ue{constructor(){super(void 0),this.__sdk_access_field_descriptors__=new Map,this.__is_initialized__=!1,this.utils={createPromiEvent:it,isPromiEvent:Gt,encodeJSON:sn,decodeJSON:Po,createJsonRpcRequestPayload:W,standardizeJsonRpcRequestPayload:gt,storage:yn};let e=[this,...ga(this)];rn.forEach(t=>{let r=e.map(m=>Object.getOwnPropertyDescriptor(m,t)),i=r.findIndex(m=>!!m),a=i>0,s=r[i];s&&(this.__sdk_access_field_descriptors__.set(t,{descriptor:s,isPrototypeField:a}),Object.defineProperty(this,t,{configurable:!0,get:()=>{throw Wo(t)}}))})}init(e){this.__is_initialized__||(rn.forEach(t=>{if(this.__sdk_access_field_descriptors__.has(t)){let{descriptor:r,isPrototypeField:i}=this.__sdk_access_field_descriptors__.get(t);i?delete this[t]:Object.defineProperty(this,t,r)}}),this.sdk=e,this.__is_initialized__=!0)}createDeprecationWarning(e){let{method:t,removalVersion:r,useInstead:i}=e,a=i?` Use \`${i}\` instead.`:"",s=`\`${t}\` will be removed from this Extension in version \`${r}\`.${a}`;return new Et(this,"DEPRECATION_NOTICE",s)}createWarning(e,t){return new Et(this,e,t)}createError(e,t,r){return new It(this,e,t,r)}},_a=class extends Rn{},$e=class extends Rn{};$e.Internal=_a,$e.Anonymous="anonymous extension";var Ia=class extends Ue{purchase(e){let t=W(T.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=W(T.NFTCheckout,[e]);return this.request(t)}transfer(e){let t=W(T.NFTTransfer,[e]);return this.request(t)}};function nn(e){return e.compat&&e.compat[Y.sdkName]!=null?typeof e.compat[Y.sdkName]=="string"?Ro(No(Y.version),e.compat[Y.sdkName]):!!e.compat[Y.sdkName]:!0}function wa(e,t,r){return!t&&!r?`${e}_eth_mainnet`:r?`${e}_${JSON.stringify(r)}`:t?typeof t=="string"?`${e}_eth_${t}`:`${e}_${t.rpcUrl}_${t.chainId}_${t.chainType}`:`${e}_unknown`}function ba(e){var t;let r=(t=e==null?void 0:e.extensions)!=null?t:[],i={},a=[];if(Array.isArray(r)?r.forEach(s=>{nn(s)?(s.init(this),(s.name||s.name!==$e.Anonymous)&&(this[s.name]=s),s instanceof $e.Internal&&(yt(s.config)||(i[s.name]=s.config))):a.push(s)}):Object.keys(r).forEach(s=>{if(nn(r[s])){r[s].init(this);let m=r[s];this[s]=m,m instanceof $e.Internal&&(yt(m.config)||(i[r[s].name]=m.config))}else a.push(r[s])}),a.length)throw Bo(a);return i}var pt=class{constructor(e,t){this.apiKey=e;var r;if(!e)throw Fo();Y.platform==="react-native"&&(t==null?void 0:t.endpoint)&&jo().log();let{defaultEndpoint:i,version:a}=Y;this.testMode=!!(t!=null&&t.testMode),this.useStorageCache=!!(t!=null&&t.useStorageCache),this.endpoint=ot((r=t==null?void 0:t.endpoint)!=null?r:i).origin,this.auth=new Jo(this),this.user=new pa(this),this.wallet=new ya(this),this.nft=new Ia(this),this.rpcProvider=new Ea(this);let s=ba.call(this,t);this.parameters=sn(kt(Ft({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,host:ot(this.endpoint).host,sdk:xo[Y.sdkName],version:a,ext:yt(s)?void 0:s,locale:(t==null?void 0:t.locale)||"en_US"},Y.bundleId?{bundleId:Y.bundleId}:{}),{meta:t==null?void 0:t.meta})),this.networkHash=wa(this.apiKey,t==null?void 0:t.network,yt(s)?void 0:s),t!=null&&t.deferPreload||this.preload()}get overlay(){if(!pt.__overlays__.has(this.parameters)){let e=new Y.ViewController(this.endpoint,this.parameters,this.networkHash);e.init(),pt.__overlays__.set(this.parameters,e)}return pt.__overlays__.get(this.parameters)}preload(){return X(this,null,function*(){yield this.overlay.checkIsReadyForRequest})}},Yt=pt;Yt.__overlays__=new Map;function Ra(e,t){return t&&Array.isArray(e)?e.find(r=>r.id===t):e}function Aa(e,t){var r;let i=(r=t.data.response)==null?void 0:r.id,a=Ra(e,i);if(i&&a){let s=new Bt(a).applyResult(t.data.response.result).applyError(t.data.response.error);return{id:i,response:s}}return{}}function Sa(e,t,r){return X(this,null,function*(){var i;let a=yield le("rt"),s;if(Y.platform==="web")try{s=(i=yield le("jwt"))!=null?i:yield oa()}catch(p){console.error("webcrypto error",p)}let m={msgType:e,payload:t};s&&(m.jwt=s),s&&a&&(m.rt=a);let f=yield va(r);return f&&(m.deviceShare=f),m})}function Oa(e){return X(this,null,function*(){!e.data.rt||(yield _e("rt",e.data.rt))})}var An=class{constructor(e,t,r){this.endpoint=e,this.parameters=t,this.networkHash=r,this.messageHandlers=new Set,this.isConnectedToInternet=!0,this.checkIsReadyForRequest=this.waitForReady(),this.isReadyForRequest=!1,this.listen()}post(e,t){return X(this,null,function*(){return pn((r,i)=>X(this,null,function*(){if(!this.isConnectedToInternet){let y=wt();i(y)}this.isReadyForRequest||(yield this.waitForReady());let a=[],s=Array.isArray(t)?t.map(y=>y.id):[],m=yield Sa(`${e}-${this.parameters}`,t,this.networkHash);yield this._post(m);let f=y=>E=>{var N;let{id:_,response:O}=Aa(t,E);if(Oa(E),((N=O==null?void 0:O.payload.error)==null?void 0:N.message)==="User denied account access.")Ht();else if(E.data.deviceShare){let{deviceShare:C}=E.data;ma(C,this.networkHash)}_&&O&&Array.isArray(t)&&s.includes(_)?(a.push(O),a.length===t.length&&(y(),r(a))):_&&O&&!Array.isArray(t)&&_===t.id&&(y(),r(O))},p=this.on(ve.MAGIC_HANDLE_RESPONSE,f(()=>p()))}))})}on(e,t){let r=t.bind(window),i=a=>{a.data.msgType===`${e}-${this.parameters}`&&r(a)};return this.messageHandlers.add(i),()=>this.messageHandlers.delete(i)}waitForReady(){return new Promise(e=>{let t=this.on(ve.MAGIC_OVERLAY_READY,()=>{this.isReadyForRequest=!0,e(),t()});setTimeout(()=>{this.isReadyForRequest=!0,e(),t()},15e3)})}listen(){this.on(ve.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(ve.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()}),this.on(ve.MAGIC_SEND_PRODUCT_ANNOUNCEMENT,e=>{e.data.response.result.product_announcement&&new De(we.ProductAnnouncement,e.data.response.result.product_announcement).log()})}};var Xt={};wr(Xt,{AuthEventOnReceived:()=>Pr,DeepLinkPage:()=>Ar,DeviceVerificationEventEmit:()=>Je,DeviceVerificationEventOnReceived:()=>Tr,DisableMFAEventEmit:()=>Re,DisableMFAEventOnReceived:()=>Ur,EnableMFAEventEmit:()=>Pe,EnableMFAEventOnReceived:()=>Dr,EthChainType:()=>xr,Events:()=>We,Extension:()=>$e,ExtensionError:()=>It,ExtensionWarning:()=>Et,FarcasterLoginEventEmit:()=>$r,LoginWithEmailOTPEventEmit:()=>he,LoginWithEmailOTPEventOnReceived:()=>Mr,LoginWithMagicLinkEventEmit:()=>Sr,LoginWithMagicLinkEventOnReceived:()=>Or,LoginWithSmsOTPEventEmit:()=>Le,LoginWithSmsOTPEventOnReceived:()=>Nr,MagicIncomingWindowMessage:()=>ve,MagicOutgoingWindowMessage:()=>be,MagicPayloadMethod:()=>T,NftCheckoutIntermediaryEvents:()=>Br,RPCError:()=>je,RPCErrorCode:()=>ke,RecencyCheckEventEmit:()=>de,RecencyCheckEventOnReceived:()=>Cr,RecoverAccountEventEmit:()=>Ee,RecoverAccountEventOnReceived:()=>Wr,RecoveryFactorEventEmit:()=>ye,RecoveryFactorEventOnReceived:()=>Fr,RecoveryMethodType:()=>kr,SDKError:()=>Ae,SDKErrorCode:()=>Ie,SDKWarning:()=>De,SDKWarningCode:()=>we,UiEventsEmit:()=>Vr,UpdateEmailEventEmit:()=>ne,UpdateEmailEventOnReceived:()=>Lr,UserEventsEmit:()=>ct,UserEventsOnReceived:()=>ut,WalletEventOnReceived:()=>Gr,Wallets:()=>fe,isPromiEvent:()=>Gt});var St=Rr(On()),Jt=Rr(Mn());var Na={display:"block",visibility:"hidden",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",zIndex:"2147483647",opacity:"0"};function Ma(e){for(let[t,r]of Object.entries(Na))e.style[t]=r}function Ta(e){let t=[].slice.call(document.querySelectorAll(".magic-iframe"));return Boolean(t.find(r=>r.src.includes(e)))}var Tn=1e3,Cn=60*Tn,Ca=15*Tn,La=2*Cn,Pa=60*Cn,At=class extends An{constructor(){super(...arguments);this.activeElement=null;this.lastPingTime=Date.now();this.intervalTimer=null;this.timeoutTimer=null}getIframeSrc(){return ot(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href}init(){this.test="hello",this.iframe=new Promise(r=>{let i=()=>{if(Ta(encodeURIComponent(this.parameters)))un().log();else{let a=document.createElement("iframe");a.classList.add("magic-iframe"),a.dataset.magicIframeLabel=ot(this.endpoint).host,a.title="Secure Modal",a.src=this.getIframeSrc(),a.allow="clipboard-read; clipboard-write",Ma(a),document.body.appendChild(a),r(a)}};["loaded","interactive","complete"].includes(document.readyState)?i():window.addEventListener("load",i,!1)}),this.iframe.then(r=>{r instanceof HTMLIFrameElement&&r.addEventListener("load",()=>ge(this,null,function*(){yield this.startHeartBeat()}))}),window.addEventListener("message",r=>{var i;if(r.origin===this.endpoint&&r.data&&r.data.msgType&&this.messageHandlers.size){r.data.msgType.includes(ve.MAGIC_PONG)&&(this.lastPingTime=Date.now()),r.data.response=(i=r.data.response)!=null?i:{};for(let s of this.messageHandlers.values())s(r)}}),window.addEventListener("beforeunload",()=>{this.stopHeartBeat()})}showOverlay(){return ge(this,null,function*(){let r=yield this.iframe;r.style.visibility="visible",r.style.opacity="1",this.activeElement=document.activeElement,r.focus()})}hideOverlay(){return ge(this,null,function*(){var i;let r=yield this.iframe;r.style.visibility="hidden",r.style.opacity="0",(i=this.activeElement)!=null&&i.focus&&this.activeElement.focus(),this.activeElement=null})}_post(r){return ge(this,null,function*(){let i=yield this.iframe;if(i&&i.contentWindow)i.contentWindow.postMessage(r,this.endpoint);else throw wt()})}heartBeatCheck(){this.intervalTimer=setInterval(()=>ge(this,null,function*(){let r={msgType:`${be.MAGIC_PING}-${this.parameters}`,payload:[]};yield this._post(r),Date.now()-this.lastPingTime>Ca&&(yield this.reloadIframe(),this.lastPingTime=Date.now())}),La)}startHeartBeat(){return ge(this,null,function*(){(yield this.iframe)&&(this.timeoutTimer=setTimeout(()=>this.heartBeatCheck(),Pa))})}stopHeartBeat(){this.timeoutTimer&&(clearTimeout(this.timeoutTimer),this.timeoutTimer=null),this.intervalTimer&&(clearInterval(this.intervalTimer),this.intervalTimer=null)}reloadIframe(){return ge(this,null,function*(){let r=yield this.iframe;if(r)r.src=this.getIframeSrc();else throw wt()})}};var $a=Object.assign(cn(Yt,{platform:"web",sdkName:"magic-sdk",version:"28.19.0",defaultEndpoint:"https://auth.magic.link/",ViewController:At,configureStorage:()=>ge(void 0,null,function*(){let e=St.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return yield e.defineDriver(Jt),yield e.setDriver([St.default.INDEXEDDB,St.default.LOCALSTORAGE,Jt._driver]),e})}),_r({},Xt)),Da=$a;return Ci(Ua);})();
6
6
  if (Magic && Magic.default != null) { Magic = Object.assign(Magic.default, Magic); delete Magic.default; }
@@ -1,4 +1,4 @@
1
1
  import { SDKBase, InstanceWithExtensions, MagicSDKExtensionsOption } from '@magic-sdk/provider';
2
2
  export * from '@magic-sdk/commons';
3
3
  export declare const Magic: import("@magic-sdk/provider").WithExtensions<SDKBase>;
4
- export declare type Magic<T extends MagicSDKExtensionsOption<any> = MagicSDKExtensionsOption> = InstanceWithExtensions<SDKBase, T>;
4
+ export type Magic<T extends MagicSDKExtensionsOption<any> = MagicSDKExtensionsOption> = InstanceWithExtensions<SDKBase, T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "magic-sdk",
3
- "version": "28.19.0-canary.835.11980874875.0",
3
+ "version": "28.19.1-canary.3013de0.0",
4
4
  "description": "Passwordless authentication for the web.",
5
5
  "author": "Magic Labs <team@magic.link> (https://magic.link/)",
6
6
  "license": "MIT",
@@ -29,9 +29,9 @@
29
29
  ]
30
30
  },
31
31
  "dependencies": {
32
- "@magic-sdk/commons": "24.18.0-canary.835.11980874875.0",
33
- "@magic-sdk/provider": "28.18.0-canary.835.11980874875.0",
34
- "@magic-sdk/types": "24.16.0-canary.835.11980874875.0",
32
+ "@magic-sdk/commons": "24.18.1-canary.3013de0.0",
33
+ "@magic-sdk/provider": "28.18.1-canary.3013de0.0",
34
+ "@magic-sdk/types": "24.16.1-canary.3013de0.0",
35
35
  "localforage": "^1.7.4"
36
36
  },
37
37
  "devDependencies": {
@@ -40,5 +40,5 @@
40
40
  "@babel/runtime": "^7.9.6",
41
41
  "localforage-driver-memory": "^1.0.5"
42
42
  },
43
- "gitHead": "1199acf2693fbf4417d6b4a19310033705769281"
43
+ "gitHead": "3013de00b44d997e38f5c951f368f8f09b67b63f"
44
44
  }