magic-sdk 18.2.2-canary.561.5479214841.0 → 18.2.2-canary.561.5480302415.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.
Files changed (2) hide show
  1. package/dist/magic.js +1 -1
  2. package/package.json +5 -5
package/dist/magic.js CHANGED
@@ -2,5 +2,5 @@
2
2
  - Extension \`${n.name}\` supports version(s) \`${o}\``:o||(t+=`
3
3
  - Extension \`${n.name}\` does not support ${H.platform} environments.`)}),new ve(pe.IncompatibleExtensions,t)}function oo(e){let t=n=>{let o=n+1,a=o%10,l=o%100;return a===1&&l!==11?`${o}st`:a===2&&l!==12?`${o}nd`:a===3&&l!==13?`${o}rd`:`${o}th`};return new ve(pe.InvalidArgument,`Invalid ${t(e.argument)} argument given to \`${e.procedure}\`.
4
4
  Expected: \`${e.expected}\`
5
- Received: \`${e.received}\``)}function Pr(){return new ke(Re.DuplicateIframe,"Duplicate iframes found.")}function ao(){return new ke(Re.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 so(){return new ke(Re.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 \`${H.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function ce(e){let{method:t,removalVersions:n,useInstead:o}=e,a=n[H.sdkName],l=o?` Use \`${o}\` instead.`:"",m=`\`${t}\` will be removed from \`${H.sdkName}\` in version \`${a}\`.${l}`;return new ke(Re.DeprecationNotice,m)}function*lo(){let e=0;for(;;)e<Number.MAX_SAFE_INTEGER?yield++e:e=0}var uo=lo();function Cr(){return uo.next().value}var $r=Symbol("Payload pre-processed by Magic SDK");function Dr(e){return Object.defineProperty(e,$r,{value:!0,enumerable:!1}),e}function co(e){return!!e[$r]}function at(e){var t,n,o;return co(e)||(e.jsonrpc=(t=e.jsonrpc)!=null?t:"2.0",e.id=Cr(),e.method=(n=e.method)!=null?n:"noop",e.params=(o=e.params)!=null?o:[],Dr(e)),e}function j(e,t=[]){return Dr({params:t,method:e,jsonrpc:"2.0",id:Cr()})}var St=class{constructor(e){e instanceof St?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):Qi(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}}},fo=ai(si()),ho=class extends fo.default{};function xr(){let e=new ho;return{emitter:e,createChainingEmitterMethod:(t,n)=>(...o)=>(e[t].apply(e,o),n),createBoundEmitterMethod:t=>(...n)=>e[t].apply(e,n)}}var Ur=Symbol("isPromiEvent");function Nt(e){return!!e[Ur]}function Mt(e){let t=kr(e),{createBoundEmitterMethod:n,createChainingEmitterMethod:o}=xr(),a=Symbol("Promise.then"),l=Symbol("Promise.catch"),m=Symbol("Promise.finally"),h=(y,N)=>(...I)=>{let M=N[y].apply(N,I);return v(M)},v=y=>Object.assign(y,{[Ur]:!0,[a]:y[a]||y.then,[l]:y[l]||y.catch,[m]:y[m]||y.finally,then:h(a,y),catch:h(l,y),finally:h(m,y),on:o("on",y),once:o("once",y),addListener:o("addListener",y),off:o("off",y),removeListener:o("removeListener",y),removeAllListeners:o("removeAllListeners",y),emit:n("emit"),eventNames:n("eventNames"),listeners:n("listeners"),listenerCount:n("listenerCount")}),g=v(t.then(y=>(g.emit("done",y),g.emit("settled"),y),y=>{throw g.emit("error",y),g.emit("settled"),y}));return g}function kr(e){return new Promise((t,n)=>{let o=e(t,n);Promise.resolve(o).catch(n)})}var Ne=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){let t=this.overlay.post(Ae.MAGIC_HANDLE_REQUEST,at(e)),n=Mt((a,l)=>{t.then(m=>{if(o(),m.hasError)l(new De(m.payload.error));else if(m.hasResult)a(m.payload.result);else throw ro()}).catch(m=>{o(),l(m)})}),o=this.overlay.on(me.MAGIC_HANDLE_EVENT,a=>{var l;let{response:m}=a.data;if(m.id===e.id&&((l=m.result)==null?void 0:l.event)){let{event:h,params:v=[]}=m.result;n.emit(h,...v)}});return n}createIntermediaryEvent(e,t){return n=>{let o=j(O.IntermediaryEvent,[{payloadId:t,eventType:e,args:n}]);this.request(o)}}};function po(e,t){let[n]=e.split(".").map(Number);return n>=t}var fe={"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"},mo=class extends Ne{loginWithMagicLink(e){let t=H.sdkName==="@magic-sdk/react-native"||H.sdkName==="@magic-sdk/react-native-bare"||H.sdkName==="@magic-sdk/react-native-expo";if(t&&po(H.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");ce({method:"auth.loginWithMagicLink()",removalVersions:fe,useInstead:t?"@magic-ext/auth auth.loginWithEmailOTP()":"@magic-ext/auth auth.loginWithMagicLink()"}).log();let{email:n,showUI:o=!0,redirectURI:a}=e,l=j(this.sdk.testMode?O.LoginWithMagicLinkTestMode:O.LoginWithMagicLink,[{email:n,showUI:o,redirectURI:a}]);return this.request(l)}loginWithSMS(e){ce({method:"auth.loginWithSMS()",removalVersions:fe,useInstead:"@magic-ext/auth auth.loginWithSMS()"}).log();let{phoneNumber:t}=e,n=j(this.sdk.testMode?O.LoginWithSmsTestMode:O.LoginWithSms,[{phoneNumber:t,showUI:!0}]);return this.request(n)}loginWithEmailOTP(e){ce({method:"auth.loginWithEmailOTP()",removalVersions:fe,useInstead:"@magic-ext/auth auth.loginWithEmailOTP()"}).log();let{email:t,showUI:n}=e,o=j(this.sdk.testMode?O.LoginWithEmailOTPTestMode:O.LoginWithEmailOTP,[{email:t,showUI:n}]);if(!n){let a=this.request(o);return a&&(a.on("verify-email-otp",l=>{this.createIntermediaryEvent("verify-email-otp",o.id)(l)}),a.on("cancel",()=>{this.createIntermediaryEvent("cancel",o.id)()})),a}return this.request(o)}loginWithCredential(e){ce({method:"auth.loginWithCredential()",removalVersions:fe,useInstead:"@magic-ext/auth auth.loginWithCredential()"}).log();let t=e!=null?e:"";if(!e&&H.platform==="web"){t=window.location.search;let o=window.location.origin+window.location.pathname;window.history.replaceState(null,"",o)}let n=j(this.sdk.testMode?O.LoginWithCredentialTestMode:O.LoginWithCredential,[t]);return this.request(n)}setAuthorizationToken(e){ce({method:"auth.setAuthorizationToken()",removalVersions:fe,useInstead:"@magic-ext/auth auth.setAuthorizationToken()"}).log();let t=j(O.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){ce({method:"auth.updateEmailWithUI()",removalVersions:fe,useInstead:"@magic-ext/auth auth.updateEmailWithUI()"}).log();let{email:t,showUI:n=!0}=e,o=j(this.sdk.testMode?O.UpdateEmailTestMode:O.UpdateEmail,[{email:t,showUI:n}]);return this.request(o)}updatePhoneNumberWithUI(){ce({method:"auth.updatePhoneNumberWithUI()",removalVersions:fe,useInstead:"@magic-ext/auth auth.updatePhoneNumberWithUI()"}).log();let e=j(this.sdk.testMode?O.UpdatePhoneNumberTestMode:O.UpdatePhoneNumber);return this.request(e)}},Wr={};ii(Wr,{clear:()=>vo,getItem:()=>_e,iterate:()=>_o,key:()=>yo,keys:()=>Eo,length:()=>go,removeItem:()=>He,setItem:()=>xe});var rt;function Ie(e){return(...t)=>ne(this,null,function*(){return rt||(rt=yield H.configureStorage()),yield rt.ready(),rt[e](...t)})}var _e=Ie("getItem"),xe=Ie("setItem"),He=Ie("removeItem"),vo=Ie("clear"),go=Ie("length"),yo=Ie("key"),Eo=Ie("keys"),_o=Ie("iterate");function Io(){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 Tt="STORE_KEY_PRIVATE_KEY",st="STORE_KEY_PUBLIC_JWK",Ot="ECDSA",Br="P-256",bo={name:Ot,namedCurve:Br},wo={name:Ot,namedCurve:Br};function Fr(){He(st),He(Tt)}function Ro(){return ne(this,null,function*(){let e=yield Ao();if(!e){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:t}=window.crypto,n=yield _e(Tt);if(!n||!t){console.info("unable to find private key or webcrypto unsupported");return}let o={iat:Math.floor(new Date().getTime()/1e3),jti:Io()},a={typ:"dpop+jwt",alg:"ES256",jwk:e},l={protected:br(JSON.stringify(a)),claims:br(JSON.stringify(o))},m=Mo(`${l.protected}.${l.claims}`),h={name:Ot,hash:{name:"SHA-256"}},v=Oo(new Uint8Array(yield t.sign(h,n,m)));return`${l.protected}.${l.claims}.${v}`})}function Ao(){return ne(this,null,function*(){if(!No()){console.info("webcrypto is not supported");return}return(yield _e(st))||(yield So()),_e(st)})}function So(){return ne(this,null,function*(){let e=null,{subtle:t}=window.crypto,n=yield t.generateKey(bo,!0,["sign"]),o=yield t.exportKey("jwk",n.privateKey);e=yield t.exportKey("jwk",n.publicKey);let a=yield t.importKey("jwk",o,wo,!1,["sign"]);yield xe(Tt,a),yield xe(st,e)})}function No(){let e=typeof window!="undefined"&&!!window.crypto,t=e&&!!window.crypto.subtle;return e&&t}function br(e){return Gr(To(e))}function Mo(e){return new TextEncoder().encode(e)}function Gr(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function To(e){return encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function Oo(e){let t="";return e.forEach(n=>{t+=String.fromCharCode(n)}),Gr(t)}var Lo=class extends Ne{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}getIdToken(e){let t=j(this.sdk.testMode?O.GetIdTokenTestMode:O.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=j(this.sdk.testMode?O.GenerateIdTokenTestMode:O.GenerateIdToken,[e]);return this.request(t)}getInfo(){return ne(this,null,function*(){let e=yield _e(this.localForageKey),t=j(O.GetInfo,[{walletType:e}]);return this.request(t)})}isLoggedIn(){let e=j(this.sdk.testMode?O.IsLoggedInTestMode:O.IsLoggedIn);return this.request(e)}logout(){Fr(),He(this.localForageKey);let e=j(this.sdk.testMode?O.LogoutTestMode:O.Logout);return this.request(e)}requestInfoWithUI(e){let t=j(O.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let t=j(this.sdk.testMode?O.UserSettingsTestMode:O.UserSettings,[e]);return this.request(t)}recoverAccount(e){let t=j(this.sdk.testMode?O.RecoverAccountTestMode:O.RecoverAccount,[e]);return this.request(t)}getMetadata(){ce({method:"user.getMetadata()",removalVersions:fe,useInstead:"user.getInfo()"}).log();let e=j(this.sdk.testMode?O.GetMetadataTestMode:O.GetMetadata);return this.request(e)}updateEmail(e){ce({method:"user.updateEmail()",removalVersions:fe,useInstead:"auth.updateEmailWithUI()"}).log();let{email:t,showUI:n=!0}=e,o=j(this.sdk.testMode?O.UpdateEmailTestMode:O.UpdateEmail,[{email:t,showUI:n}]);return this.request(o)}updatePhoneNumber(){ce({method:"user.updatePhoneNumber()",removalVersions:fe,useInstead:"auth.updatePhoneNumberWithUI()"}).log();let e=j(this.sdk.testMode?O.UpdatePhoneNumberTestMode:O.UpdatePhoneNumber);return this.request(e)}};function Xe(e,t){return t?new URL(e,t):new URL(e)}var Po=class extends Ne{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}connectWithUI(){let e=Mt((t,n)=>ne(this,null,function*(){try{if(this.isMetaMaskBrowser()&&(yield this.isWalletEnabled(ue.MetaMask))){let h=yield this.autoConnectIfWalletBrowser(ue.MetaMask);t(h)}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled(ue.CoinbaseWallet))){let h=yield this.autoConnectIfWalletBrowser(ue.CoinbaseWallet);t(h)}let o=this.getUserEnv(),a=j(O.Login,[o]),l=this.request(a);l.on(Pe.WalletSelected,h=>this.handleWalletSelected(Sr(Rt({},h),{payloadId:a.id}))),l.on("id-token-created",h=>{e.emit("id-token-created",h)});let m=yield l;m.error&&n(m),t(m)}catch(o){n(o)}}));return e}showUI(){let e=j(O.ShowUI);return this.request(e)}getInfo(){return ne(this,null,function*(){ce({method:"wallet.getInfo()",removalVersions:fe,useInstead:"user.getInfo()"}).log();let e=yield _e(this.localForageKey),t=j(O.GetInfo,[{walletType:e}]);return this.request(t)})}disconnect(){ce({method:"wallet.disconnect()",removalVersions:fe,useInstead:"user.logout()"}).log(),Fr(),He(this.localForageKey);let e=j(O.Disconnect);return this.request(e)}requestUserInfoWithUI(e){ce({method:"wallet.requestUserInfoWithUI()",removalVersions:fe,useInstead:"user.requestUserInfoWithUI()"}).log();let t=j(O.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}getProvider(){return ne(this,null,function*(){switch(yield _e(this.localForageKey)){case ue.MetaMask:return this.getMetaMaskProvider();case ue.CoinbaseWallet:return this.getCoinbaseProvider();default:return this.sdk.rpcProvider}})}isMetaMaskInstalled(){var e,t,n;return((e=window.ethereum)==null?void 0:e.isMetaMask)||!!((n=(t=window.ethereum)==null?void 0:t.providers)!=null&&n.find(o=>o==null?void 0:o.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(n=>n==null?void 0:n.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,n;return((e=window.ethereum)==null?void 0:e.isCoinbaseWallet)||!!((n=(t=window.ethereum)==null?void 0:t.providers)!=null&&n.find(o=>o==null?void 0:o.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(n=>n==null?void 0:n.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 ue.MetaMask:return this.connectToMetaMask();case ue.CoinbaseWallet:return this.connectToCoinbaseWallet();default:throw new Error(`Invalid provider: ${e}. Must be one of "metamask" or "coinbase_wallet".`)}}isWalletEnabled(e){let t=j("mc_is_wallet_enabled",[{wallet:e}]);return this.request(t)}handleWalletSelected(e){return ne(this,null,function*(){try{let t=yield this.connectToThirdPartyWallet(e.wallet);yield xe(this.localForageKey,e.wallet),this.createIntermediaryEvent(Pe.WalletConnected,e.payloadId)(t)}catch(t){console.error(t),this.createIntermediaryEvent(Pe.WalletRejected,e.payloadId)()}})}autoConnectIfWalletBrowser(e){return ne(this,null,function*(){let t;e===ue.MetaMask&&(t=yield this.getMetaMaskProvider().request({method:"eth_requestAccounts"})),e===ue.CoinbaseWallet&&(t=yield this.getCoinbaseProvider().request({method:"eth_requestAccounts"})),yield xe(this.localForageKey,e);let n=j(O.AutoConnect,[{wallet:e,address:t}]);return this.request(n)})}},{createBoundEmitterMethod:nt,createChainingEmitterMethod:Ce}=xr(),Co=class extends Ne{constructor(){super(...arguments),this.isMagic=!0,this.on=Ce("on",this),this.once=Ce("once",this),this.addListener=Ce("addListener",this),this.off=Ce("off",this),this.removeListener=Ce("removeListener",this),this.removeAllListeners=Ce("removeAllListeners",this),this.emit=nt("emit"),this.eventNames=nt("eventNames"),this.listeners=nt("listeners"),this.listenerCount=nt("listenerCount")}sendAsync(e,t){if(!t)throw oo({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:t===null?"null":typeof t});if(Array.isArray(e))this.overlay.post(Ae.MAGIC_HANDLE_REQUEST,e.map(n=>{let o=at(n);return this.prefixPayloadMethodForTestMode(o),o})).then(n=>{t(null,n.map(o=>Sr(Rt({},o.payload),{error:o.hasError?new De(o.payload.error):null})))});else{let n=at(e);this.prefixPayloadMethodForTestMode(n),this.overlay.post(Ae.MAGIC_HANDLE_REQUEST,n).then(o=>{t(o.hasError?new De(o.payload.error):null,o.payload)})}}send(e,t){if(typeof e=="string"){let o=j(e,Array.isArray(t)?t:[]);return this.request(o)}if(Array.isArray(e)||!!t){this.sendAsync(e,t);return}let n=ao();return n.log(),new St(e).applyError({code:-32603,message:n.rawMessage}).payload}enable(){let e=j(O.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}`)}},wr=["request","overlay","sdk"];function $o(e){let t=Object.getPrototypeOf(e),n=[t];for(;t!==Ne.prototype;)t=Object.getPrototypeOf(t),n.push(t);return n}var jr=class extends Ne{constructor(){super(void 0),this.__sdk_access_field_descriptors__=new Map,this.__is_initialized__=!1,this.utils={createPromiEvent:Mt,isPromiEvent:Nt,encodeJSON:Mr,decodeJSON:zi,createJsonRpcRequestPayload:j,standardizeJsonRpcRequestPayload:at,storage:Wr};let e=[this,...$o(this)];wr.forEach(t=>{let n=e.map(m=>Object.getOwnPropertyDescriptor(m,t)),o=n.findIndex(m=>!!m),a=o>0,l=n[o];l&&(this.__sdk_access_field_descriptors__.set(t,{descriptor:l,isPrototypeField:a}),Object.defineProperty(this,t,{configurable:!0,get:()=>{throw no(t)}}))})}init(e){this.__is_initialized__||(wr.forEach(t=>{if(this.__sdk_access_field_descriptors__.has(t)){let{descriptor:n,isPrototypeField:o}=this.__sdk_access_field_descriptors__.get(t);o?delete this[t]:Object.defineProperty(this,t,n)}}),this.sdk=e,this.__is_initialized__=!0)}createDeprecationWarning(e){let{method:t,removalVersion:n,useInstead:o}=e,a=o?` Use \`${o}\` instead.`:"",l=`\`${t}\` will be removed from this Extension in version \`${n}\`.${a}`;return new ot(this,"DEPRECATION_NOTICE",l)}createWarning(e,t){return new ot(this,e,t)}createError(e,t,n){return new ut(this,e,t,n)}},Do=class extends jr{},Se=class extends jr{};Se.Internal=Do,Se.Anonymous="anonymous extension";var xo=class extends Ne{purchase(e){let t=j(O.NFTPurchase,[e]);return this.request(t)}checkout(e){return ne(this,null,function*(){let t=j(O.NFTCheckout,[e]);return this.request(t)})}};function Rr(e){return e.compat&&e.compat[H.sdkName]!=null?typeof e.compat[H.sdkName]=="string"?Fi(Ki(H.version),e.compat[H.sdkName]):!!e.compat[H.sdkName]:!0}function Uo(e){var t;let n=(t=e==null?void 0:e.extensions)!=null?t:[],o={},a=[];if(Array.isArray(n)?n.forEach(l=>{Rr(l)?(l.init(this),(l.name||l.name!==Se.Anonymous)&&(this[l.name]=l),l instanceof Se.Internal&&(wt(l.config)||(o[l.name]=l.config))):a.push(l)}):Object.keys(n).forEach(l=>{if(Rr(n[l])){n[l].init(this);let m=n[l];this[l]=m,m instanceof Se.Internal&&(wt(m.config)||(o[n[l].name]=m.config))}else a.push(n[l])}),a.length)throw io(a);return o}var it=class{constructor(e,t){this.apiKey=e;var n;if(!e)throw to();H.platform==="react-native"&&(t==null?void 0:t.endpoint)&&so().log();let{defaultEndpoint:o,version:a}=H;this.testMode=!!(t!=null&&t.testMode),this.endpoint=Xe((n=t==null?void 0:t.endpoint)!=null?n:o).origin,this.auth=new mo(this),this.user=new Lo(this),this.wallet=new Po(this),this.nft=new xo(this),this.rpcProvider=new Co(this);let l=Uo.call(this,t);this.parameters=Mr(Rt({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,host:Xe(this.endpoint).host,sdk:eo[H.sdkName],version:a,ext:wt(l)?void 0:l,locale:(t==null?void 0:t.locale)||"en_US"},H.bundleId?{bundleId:H.bundleId}:{}))}get overlay(){if(!it.__overlays__.has(this.parameters)){let e=new H.ViewController(this.endpoint,this.parameters);e.init(),it.__overlays__.set(this.parameters,e)}return it.__overlays__.get(this.parameters)}preload(){return ne(this,null,function*(){yield this.overlay.ready})}},Lt=it;Lt.__overlays__=new Map;function ko(e,t){return t&&Array.isArray(e)?e.find(n=>n.id===t):e}function Wo(e,t){var n;let o=(n=t.data.response)==null?void 0:n.id,a=ko(e,o);if(o&&a){let l=new St(a).applyResult(t.data.response.result).applyError(t.data.response.error);return{id:o,response:l}}return{}}function Bo(e,t){return ne(this,null,function*(){let n=yield _e("rt"),o;if(H.platform==="web")try{o=yield Ro()}catch(a){console.error("webcrypto error",a)}return o?n?{msgType:e,payload:t,jwt:o,rt:n}:{msgType:e,payload:t,jwt:o}:{msgType:e,payload:t}})}function Fo(e){return ne(this,null,function*(){!e.data.rt||(yield xe("rt",e.data.rt))})}var Vr=class{constructor(e,t){this.endpoint=e,this.parameters=t,this.messageHandlers=new Set,this.ready=this.waitForReady(),this.listen()}post(e,t){return ne(this,null,function*(){return kr(n=>ne(this,null,function*(){yield this.ready;let o=[],a=Array.isArray(t)?t.map(v=>v.id):[],l=yield Bo(`${e}-${this.parameters}`,t);yield this._post(l);let m=v=>g=>{let{id:y,response:N}=Wo(t,g);Fo(g),y&&N&&Array.isArray(t)&&a.includes(y)?(o.push(N),o.length===t.length&&(v(),n(o))):y&&N&&!Array.isArray(t)&&y===t.id&&(v(),n(N))},h=this.on(me.MAGIC_HANDLE_RESPONSE,m(()=>h()))}))})}on(e,t){let n=t.bind(window),o=a=>{a.data.msgType===`${e}-${this.parameters}`&&n(a)};return this.messageHandlers.add(o),()=>this.messageHandlers.delete(o)}waitForReady(){return new Promise(e=>{this.on(me.MAGIC_OVERLAY_READY,()=>e())})}listen(){this.on(me.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(me.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()})}};var Pt={};or(Pt,{DeepLinkPage:()=>lr,EthChainType:()=>ur,Events:()=>Pe,Extension:()=>Se,ExtensionError:()=>ut,ExtensionWarning:()=>ot,MagicIncomingWindowMessage:()=>me,MagicOutgoingWindowMessage:()=>Ae,MagicPayloadMethod:()=>O,RPCError:()=>De,RPCErrorCode:()=>Le,RecoveryMethodType:()=>cr,SDKError:()=>ve,SDKErrorCode:()=>pe,SDKWarning:()=>ke,SDKWarningCode:()=>Re,Wallets:()=>ue,isPromiEvent:()=>Nt});var dt=sr(qr()),$t=sr(Hr());var Go={display:"none",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",zIndex:"2147483647"};function jo(e){for(let[t,n]of Object.entries(Go))e.style[t]=n}function Vo(e){let t=[].slice.call(document.querySelectorAll(".magic-iframe"));return Boolean(t.find(n=>n.src.includes(e)))}var ft=class extends Vr{constructor(){super(...arguments);this.activeElement=null}init(){this.test="hello",this.iframe=new Promise(n=>{let o=()=>{if(Vo(encodeURIComponent(this.parameters)))Pr().log();else{let a=document.createElement("iframe");a.classList.add("magic-iframe"),a.dataset.magicIframeLabel=Xe(this.endpoint).host,a.title="Secure Modal",a.src=Xe(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href,jo(a),document.body.appendChild(a),n(a)}};["loaded","interactive","complete"].includes(document.readyState)?o():window.addEventListener("load",o,!1)}),window.addEventListener("message",n=>{var o;if(n.origin===this.endpoint&&n.data&&n.data.msgType&&this.messageHandlers.size){n.data.response=(o=n.data.response)!=null?o:{};for(let a of this.messageHandlers.values())a(n)}})}showOverlay(){return Oe(this,null,function*(){let n=yield this.iframe;n.style.display="block",this.activeElement=document.activeElement,n.focus()})}hideOverlay(){return Oe(this,null,function*(){var o;let n=yield this.iframe;n.style.display="none",(o=this.activeElement)!=null&&o.focus&&this.activeElement.focus(),this.activeElement=null})}_post(n){return Oe(this,null,function*(){let o=yield this.iframe;if(o&&o.contentWindow)o.contentWindow.postMessage(n,this.endpoint);else throw Lr()})}};var Ko=Object.assign(Or(Lt,{platform:"web",sdkName:"magic-sdk",version:"18.2.1",defaultEndpoint:"https://auth.magic.link/",ViewController:ft,configureStorage:()=>Oe(void 0,null,function*(){let e=dt.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return yield e.defineDriver($t),yield e.setDriver([dt.default.INDEXEDDB,dt.default.LOCALSTORAGE,$t._driver]),e})}),nr({},Pt)),qo=Ko;return Xn(Yo);})();
5
+ Received: \`${e.received}\``)}function Pr(){return new ke(Re.DuplicateIframe,"Duplicate iframes found.")}function ao(){return new ke(Re.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 so(){return new ke(Re.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 \`${H.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function ce(e){let{method:t,removalVersions:n,useInstead:o}=e,a=n[H.sdkName],l=o?` Use \`${o}\` instead.`:"",m=`\`${t}\` will be removed from \`${H.sdkName}\` in version \`${a}\`.${l}`;return new ke(Re.DeprecationNotice,m)}function*lo(){let e=0;for(;;)e<Number.MAX_SAFE_INTEGER?yield++e:e=0}var uo=lo();function Cr(){return uo.next().value}var $r=Symbol("Payload pre-processed by Magic SDK");function Dr(e){return Object.defineProperty(e,$r,{value:!0,enumerable:!1}),e}function co(e){return!!e[$r]}function at(e){var t,n,o;return co(e)||(e.jsonrpc=(t=e.jsonrpc)!=null?t:"2.0",e.id=Cr(),e.method=(n=e.method)!=null?n:"noop",e.params=(o=e.params)!=null?o:[],Dr(e)),e}function j(e,t=[]){return Dr({params:t,method:e,jsonrpc:"2.0",id:Cr()})}var St=class{constructor(e){e instanceof St?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):Qi(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}}},fo=ai(si()),ho=class extends fo.default{};function xr(){let e=new ho;return{emitter:e,createChainingEmitterMethod:(t,n)=>(...o)=>(e[t].apply(e,o),n),createBoundEmitterMethod:t=>(...n)=>e[t].apply(e,n)}}var Ur=Symbol("isPromiEvent");function Nt(e){return!!e[Ur]}function Mt(e){let t=kr(e),{createBoundEmitterMethod:n,createChainingEmitterMethod:o}=xr(),a=Symbol("Promise.then"),l=Symbol("Promise.catch"),m=Symbol("Promise.finally"),h=(y,N)=>(...I)=>{let M=N[y].apply(N,I);return v(M)},v=y=>Object.assign(y,{[Ur]:!0,[a]:y[a]||y.then,[l]:y[l]||y.catch,[m]:y[m]||y.finally,then:h(a,y),catch:h(l,y),finally:h(m,y),on:o("on",y),once:o("once",y),addListener:o("addListener",y),off:o("off",y),removeListener:o("removeListener",y),removeAllListeners:o("removeAllListeners",y),emit:n("emit"),eventNames:n("eventNames"),listeners:n("listeners"),listenerCount:n("listenerCount")}),g=v(t.then(y=>(g.emit("done",y),g.emit("settled"),y),y=>{throw g.emit("error",y),g.emit("settled"),y}));return g}function kr(e){return new Promise((t,n)=>{let o=e(t,n);Promise.resolve(o).catch(n)})}var Ne=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){let t=this.overlay.post(Ae.MAGIC_HANDLE_REQUEST,at(e)),n=Mt((a,l)=>{t.then(m=>{if(o(),m.hasError)l(new De(m.payload.error));else if(m.hasResult)a(m.payload.result);else throw ro()}).catch(m=>{o(),l(m)})}),o=this.overlay.on(me.MAGIC_HANDLE_EVENT,a=>{var l;let{response:m}=a.data;if(m.id===e.id&&((l=m.result)==null?void 0:l.event)){let{event:h,params:v=[]}=m.result;n.emit(h,...v)}});return n}createIntermediaryEvent(e,t){return n=>{let o=j(O.IntermediaryEvent,[{payloadId:t,eventType:e,args:n}]);this.request(o)}}};function po(e,t){let[n]=e.split(".").map(Number);return n>=t}var fe={"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"},mo=class extends Ne{loginWithMagicLink(e){let t=H.sdkName==="@magic-sdk/react-native"||H.sdkName==="@magic-sdk/react-native-bare"||H.sdkName==="@magic-sdk/react-native-expo";if(t&&po(H.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");ce({method:"auth.loginWithMagicLink()",removalVersions:fe,useInstead:t?"@magic-ext/auth auth.loginWithEmailOTP()":"@magic-ext/auth auth.loginWithMagicLink()"}).log();let{email:n,showUI:o=!0,redirectURI:a}=e,l=j(this.sdk.testMode?O.LoginWithMagicLinkTestMode:O.LoginWithMagicLink,[{email:n,showUI:o,redirectURI:a}]);return this.request(l)}loginWithSMS(e){ce({method:"auth.loginWithSMS()",removalVersions:fe,useInstead:"@magic-ext/auth auth.loginWithSMS()"}).log();let{phoneNumber:t}=e,n=j(this.sdk.testMode?O.LoginWithSmsTestMode:O.LoginWithSms,[{phoneNumber:t,showUI:!0}]);return this.request(n)}loginWithEmailOTP(e){ce({method:"auth.loginWithEmailOTP()",removalVersions:fe,useInstead:"@magic-ext/auth auth.loginWithEmailOTP()"}).log();let{email:t,showUI:n}=e,o=j(this.sdk.testMode?O.LoginWithEmailOTPTestMode:O.LoginWithEmailOTP,[{email:t,showUI:n}]);if(!n){let a=this.request(o);return a&&(a.on("verify-email-otp",l=>{this.createIntermediaryEvent("verify-email-otp",o.id)(l)}),a.on("cancel",()=>{this.createIntermediaryEvent("cancel",o.id)()})),a}return this.request(o)}loginWithCredential(e){ce({method:"auth.loginWithCredential()",removalVersions:fe,useInstead:"@magic-ext/auth auth.loginWithCredential()"}).log();let t=e!=null?e:"";if(!e&&H.platform==="web"){t=window.location.search;let o=window.location.origin+window.location.pathname;window.history.replaceState(null,"",o)}let n=j(this.sdk.testMode?O.LoginWithCredentialTestMode:O.LoginWithCredential,[t]);return this.request(n)}setAuthorizationToken(e){ce({method:"auth.setAuthorizationToken()",removalVersions:fe,useInstead:"@magic-ext/auth auth.setAuthorizationToken()"}).log();let t=j(O.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){ce({method:"auth.updateEmailWithUI()",removalVersions:fe,useInstead:"@magic-ext/auth auth.updateEmailWithUI()"}).log();let{email:t,showUI:n=!0}=e,o=j(this.sdk.testMode?O.UpdateEmailTestMode:O.UpdateEmail,[{email:t,showUI:n}]);return this.request(o)}updatePhoneNumberWithUI(){ce({method:"auth.updatePhoneNumberWithUI()",removalVersions:fe,useInstead:"@magic-ext/auth auth.updatePhoneNumberWithUI()"}).log();let e=j(this.sdk.testMode?O.UpdatePhoneNumberTestMode:O.UpdatePhoneNumber);return this.request(e)}},Wr={};ii(Wr,{clear:()=>vo,getItem:()=>_e,iterate:()=>_o,key:()=>yo,keys:()=>Eo,length:()=>go,removeItem:()=>He,setItem:()=>xe});var rt;function Ie(e){return(...t)=>ne(this,null,function*(){return rt||(rt=yield H.configureStorage()),yield rt.ready(),rt[e](...t)})}var _e=Ie("getItem"),xe=Ie("setItem"),He=Ie("removeItem"),vo=Ie("clear"),go=Ie("length"),yo=Ie("key"),Eo=Ie("keys"),_o=Ie("iterate");function Io(){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 Tt="STORE_KEY_PRIVATE_KEY",st="STORE_KEY_PUBLIC_JWK",Ot="ECDSA",Br="P-256",bo={name:Ot,namedCurve:Br},wo={name:Ot,namedCurve:Br};function Fr(){He(st),He(Tt)}function Ro(){return ne(this,null,function*(){let e=yield Ao();if(!e){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:t}=window.crypto,n=yield _e(Tt);if(!n||!t){console.info("unable to find private key or webcrypto unsupported");return}let o={iat:Math.floor(new Date().getTime()/1e3),jti:Io()},a={typ:"dpop+jwt",alg:"ES256",jwk:e},l={protected:br(JSON.stringify(a)),claims:br(JSON.stringify(o))},m=Mo(`${l.protected}.${l.claims}`),h={name:Ot,hash:{name:"SHA-256"}},v=Oo(new Uint8Array(yield t.sign(h,n,m)));return`${l.protected}.${l.claims}.${v}`})}function Ao(){return ne(this,null,function*(){if(!No()){console.info("webcrypto is not supported");return}return(yield _e(st))||(yield So()),_e(st)})}function So(){return ne(this,null,function*(){let e=null,{subtle:t}=window.crypto,n=yield t.generateKey(bo,!0,["sign"]),o=yield t.exportKey("jwk",n.privateKey);e=yield t.exportKey("jwk",n.publicKey);let a=yield t.importKey("jwk",o,wo,!1,["sign"]);yield xe(Tt,a),yield xe(st,e)})}function No(){let e=typeof window!="undefined"&&!!window.crypto,t=e&&!!window.crypto.subtle;return e&&t}function br(e){return Gr(To(e))}function Mo(e){return new TextEncoder().encode(e)}function Gr(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function To(e){return encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function Oo(e){let t="";return e.forEach(n=>{t+=String.fromCharCode(n)}),Gr(t)}var Lo=class extends Ne{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}getIdToken(e){let t=j(this.sdk.testMode?O.GetIdTokenTestMode:O.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=j(this.sdk.testMode?O.GenerateIdTokenTestMode:O.GenerateIdToken,[e]);return this.request(t)}getInfo(){return ne(this,null,function*(){let e=yield _e(this.localForageKey),t=j(O.GetInfo,[{walletType:e}]);return this.request(t)})}isLoggedIn(){let e=j(this.sdk.testMode?O.IsLoggedInTestMode:O.IsLoggedIn);return this.request(e)}logout(){Fr(),He(this.localForageKey);let e=j(this.sdk.testMode?O.LogoutTestMode:O.Logout);return this.request(e)}requestInfoWithUI(e){let t=j(O.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let t=j(this.sdk.testMode?O.UserSettingsTestMode:O.UserSettings,[e]);return this.request(t)}recoverAccount(e){let t=j(this.sdk.testMode?O.RecoverAccountTestMode:O.RecoverAccount,[e]);return this.request(t)}getMetadata(){ce({method:"user.getMetadata()",removalVersions:fe,useInstead:"user.getInfo()"}).log();let e=j(this.sdk.testMode?O.GetMetadataTestMode:O.GetMetadata);return this.request(e)}updateEmail(e){ce({method:"user.updateEmail()",removalVersions:fe,useInstead:"auth.updateEmailWithUI()"}).log();let{email:t,showUI:n=!0}=e,o=j(this.sdk.testMode?O.UpdateEmailTestMode:O.UpdateEmail,[{email:t,showUI:n}]);return this.request(o)}updatePhoneNumber(){ce({method:"user.updatePhoneNumber()",removalVersions:fe,useInstead:"auth.updatePhoneNumberWithUI()"}).log();let e=j(this.sdk.testMode?O.UpdatePhoneNumberTestMode:O.UpdatePhoneNumber);return this.request(e)}};function Xe(e,t){return t?new URL(e,t):new URL(e)}var Po=class extends Ne{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}connectWithUI(){let e=Mt((t,n)=>ne(this,null,function*(){try{if(this.isMetaMaskBrowser()&&(yield this.isWalletEnabled(ue.MetaMask))){let h=yield this.autoConnectIfWalletBrowser(ue.MetaMask);t(h);return}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled(ue.CoinbaseWallet))){let h=yield this.autoConnectIfWalletBrowser(ue.CoinbaseWallet);t(h);return}let o=this.getUserEnv(),a=j(O.Login,[o]),l=this.request(a);l.on(Pe.WalletSelected,h=>this.handleWalletSelected(Sr(Rt({},h),{payloadId:a.id}))),l.on("id-token-created",h=>{e.emit("id-token-created",h)});let m=yield l;m.error&&n(m),t(m)}catch(o){n(o)}}));return e}showUI(){let e=j(O.ShowUI);return this.request(e)}getInfo(){return ne(this,null,function*(){ce({method:"wallet.getInfo()",removalVersions:fe,useInstead:"user.getInfo()"}).log();let e=yield _e(this.localForageKey),t=j(O.GetInfo,[{walletType:e}]);return this.request(t)})}disconnect(){ce({method:"wallet.disconnect()",removalVersions:fe,useInstead:"user.logout()"}).log(),Fr(),He(this.localForageKey);let e=j(O.Disconnect);return this.request(e)}requestUserInfoWithUI(e){ce({method:"wallet.requestUserInfoWithUI()",removalVersions:fe,useInstead:"user.requestUserInfoWithUI()"}).log();let t=j(O.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}getProvider(){return ne(this,null,function*(){switch(yield _e(this.localForageKey)){case ue.MetaMask:return this.getMetaMaskProvider();case ue.CoinbaseWallet:return this.getCoinbaseProvider();default:return this.sdk.rpcProvider}})}isMetaMaskInstalled(){var e,t,n;return((e=window.ethereum)==null?void 0:e.isMetaMask)||!!((n=(t=window.ethereum)==null?void 0:t.providers)!=null&&n.find(o=>o==null?void 0:o.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(n=>n==null?void 0:n.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,n;return((e=window.ethereum)==null?void 0:e.isCoinbaseWallet)||!!((n=(t=window.ethereum)==null?void 0:t.providers)!=null&&n.find(o=>o==null?void 0:o.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(n=>n==null?void 0:n.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 ue.MetaMask:return this.connectToMetaMask();case ue.CoinbaseWallet:return this.connectToCoinbaseWallet();default:throw new Error(`Invalid provider: ${e}. Must be one of "metamask" or "coinbase_wallet".`)}}isWalletEnabled(e){let t=j("mc_is_wallet_enabled",[{wallet:e}]);return this.request(t)}handleWalletSelected(e){return ne(this,null,function*(){try{let t=yield this.connectToThirdPartyWallet(e.wallet);yield xe(this.localForageKey,e.wallet),this.createIntermediaryEvent(Pe.WalletConnected,e.payloadId)(t)}catch(t){console.error(t),this.createIntermediaryEvent(Pe.WalletRejected,e.payloadId)()}})}autoConnectIfWalletBrowser(e){return ne(this,null,function*(){let t;e===ue.MetaMask&&(t=yield this.getMetaMaskProvider().request({method:"eth_requestAccounts"})),e===ue.CoinbaseWallet&&(t=yield this.getCoinbaseProvider().request({method:"eth_requestAccounts"})),yield xe(this.localForageKey,e);let n=j(O.AutoConnect,[{wallet:e,address:t}]);return this.request(n)})}},{createBoundEmitterMethod:nt,createChainingEmitterMethod:Ce}=xr(),Co=class extends Ne{constructor(){super(...arguments),this.isMagic=!0,this.on=Ce("on",this),this.once=Ce("once",this),this.addListener=Ce("addListener",this),this.off=Ce("off",this),this.removeListener=Ce("removeListener",this),this.removeAllListeners=Ce("removeAllListeners",this),this.emit=nt("emit"),this.eventNames=nt("eventNames"),this.listeners=nt("listeners"),this.listenerCount=nt("listenerCount")}sendAsync(e,t){if(!t)throw oo({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:t===null?"null":typeof t});if(Array.isArray(e))this.overlay.post(Ae.MAGIC_HANDLE_REQUEST,e.map(n=>{let o=at(n);return this.prefixPayloadMethodForTestMode(o),o})).then(n=>{t(null,n.map(o=>Sr(Rt({},o.payload),{error:o.hasError?new De(o.payload.error):null})))});else{let n=at(e);this.prefixPayloadMethodForTestMode(n),this.overlay.post(Ae.MAGIC_HANDLE_REQUEST,n).then(o=>{t(o.hasError?new De(o.payload.error):null,o.payload)})}}send(e,t){if(typeof e=="string"){let o=j(e,Array.isArray(t)?t:[]);return this.request(o)}if(Array.isArray(e)||!!t){this.sendAsync(e,t);return}let n=ao();return n.log(),new St(e).applyError({code:-32603,message:n.rawMessage}).payload}enable(){let e=j(O.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}`)}},wr=["request","overlay","sdk"];function $o(e){let t=Object.getPrototypeOf(e),n=[t];for(;t!==Ne.prototype;)t=Object.getPrototypeOf(t),n.push(t);return n}var jr=class extends Ne{constructor(){super(void 0),this.__sdk_access_field_descriptors__=new Map,this.__is_initialized__=!1,this.utils={createPromiEvent:Mt,isPromiEvent:Nt,encodeJSON:Mr,decodeJSON:zi,createJsonRpcRequestPayload:j,standardizeJsonRpcRequestPayload:at,storage:Wr};let e=[this,...$o(this)];wr.forEach(t=>{let n=e.map(m=>Object.getOwnPropertyDescriptor(m,t)),o=n.findIndex(m=>!!m),a=o>0,l=n[o];l&&(this.__sdk_access_field_descriptors__.set(t,{descriptor:l,isPrototypeField:a}),Object.defineProperty(this,t,{configurable:!0,get:()=>{throw no(t)}}))})}init(e){this.__is_initialized__||(wr.forEach(t=>{if(this.__sdk_access_field_descriptors__.has(t)){let{descriptor:n,isPrototypeField:o}=this.__sdk_access_field_descriptors__.get(t);o?delete this[t]:Object.defineProperty(this,t,n)}}),this.sdk=e,this.__is_initialized__=!0)}createDeprecationWarning(e){let{method:t,removalVersion:n,useInstead:o}=e,a=o?` Use \`${o}\` instead.`:"",l=`\`${t}\` will be removed from this Extension in version \`${n}\`.${a}`;return new ot(this,"DEPRECATION_NOTICE",l)}createWarning(e,t){return new ot(this,e,t)}createError(e,t,n){return new ut(this,e,t,n)}},Do=class extends jr{},Se=class extends jr{};Se.Internal=Do,Se.Anonymous="anonymous extension";var xo=class extends Ne{purchase(e){let t=j(O.NFTPurchase,[e]);return this.request(t)}checkout(e){return ne(this,null,function*(){let t=j(O.NFTCheckout,[e]);return this.request(t)})}};function Rr(e){return e.compat&&e.compat[H.sdkName]!=null?typeof e.compat[H.sdkName]=="string"?Fi(Ki(H.version),e.compat[H.sdkName]):!!e.compat[H.sdkName]:!0}function Uo(e){var t;let n=(t=e==null?void 0:e.extensions)!=null?t:[],o={},a=[];if(Array.isArray(n)?n.forEach(l=>{Rr(l)?(l.init(this),(l.name||l.name!==Se.Anonymous)&&(this[l.name]=l),l instanceof Se.Internal&&(wt(l.config)||(o[l.name]=l.config))):a.push(l)}):Object.keys(n).forEach(l=>{if(Rr(n[l])){n[l].init(this);let m=n[l];this[l]=m,m instanceof Se.Internal&&(wt(m.config)||(o[n[l].name]=m.config))}else a.push(n[l])}),a.length)throw io(a);return o}var it=class{constructor(e,t){this.apiKey=e;var n;if(!e)throw to();H.platform==="react-native"&&(t==null?void 0:t.endpoint)&&so().log();let{defaultEndpoint:o,version:a}=H;this.testMode=!!(t!=null&&t.testMode),this.endpoint=Xe((n=t==null?void 0:t.endpoint)!=null?n:o).origin,this.auth=new mo(this),this.user=new Lo(this),this.wallet=new Po(this),this.nft=new xo(this),this.rpcProvider=new Co(this);let l=Uo.call(this,t);this.parameters=Mr(Rt({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,host:Xe(this.endpoint).host,sdk:eo[H.sdkName],version:a,ext:wt(l)?void 0:l,locale:(t==null?void 0:t.locale)||"en_US"},H.bundleId?{bundleId:H.bundleId}:{}))}get overlay(){if(!it.__overlays__.has(this.parameters)){let e=new H.ViewController(this.endpoint,this.parameters);e.init(),it.__overlays__.set(this.parameters,e)}return it.__overlays__.get(this.parameters)}preload(){return ne(this,null,function*(){yield this.overlay.ready})}},Lt=it;Lt.__overlays__=new Map;function ko(e,t){return t&&Array.isArray(e)?e.find(n=>n.id===t):e}function Wo(e,t){var n;let o=(n=t.data.response)==null?void 0:n.id,a=ko(e,o);if(o&&a){let l=new St(a).applyResult(t.data.response.result).applyError(t.data.response.error);return{id:o,response:l}}return{}}function Bo(e,t){return ne(this,null,function*(){let n=yield _e("rt"),o;if(H.platform==="web")try{o=yield Ro()}catch(a){console.error("webcrypto error",a)}return o?n?{msgType:e,payload:t,jwt:o,rt:n}:{msgType:e,payload:t,jwt:o}:{msgType:e,payload:t}})}function Fo(e){return ne(this,null,function*(){!e.data.rt||(yield xe("rt",e.data.rt))})}var Vr=class{constructor(e,t){this.endpoint=e,this.parameters=t,this.messageHandlers=new Set,this.ready=this.waitForReady(),this.listen()}post(e,t){return ne(this,null,function*(){return kr(n=>ne(this,null,function*(){yield this.ready;let o=[],a=Array.isArray(t)?t.map(v=>v.id):[],l=yield Bo(`${e}-${this.parameters}`,t);yield this._post(l);let m=v=>g=>{let{id:y,response:N}=Wo(t,g);Fo(g),y&&N&&Array.isArray(t)&&a.includes(y)?(o.push(N),o.length===t.length&&(v(),n(o))):y&&N&&!Array.isArray(t)&&y===t.id&&(v(),n(N))},h=this.on(me.MAGIC_HANDLE_RESPONSE,m(()=>h()))}))})}on(e,t){let n=t.bind(window),o=a=>{a.data.msgType===`${e}-${this.parameters}`&&n(a)};return this.messageHandlers.add(o),()=>this.messageHandlers.delete(o)}waitForReady(){return new Promise(e=>{this.on(me.MAGIC_OVERLAY_READY,()=>e())})}listen(){this.on(me.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(me.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()})}};var Pt={};or(Pt,{DeepLinkPage:()=>lr,EthChainType:()=>ur,Events:()=>Pe,Extension:()=>Se,ExtensionError:()=>ut,ExtensionWarning:()=>ot,MagicIncomingWindowMessage:()=>me,MagicOutgoingWindowMessage:()=>Ae,MagicPayloadMethod:()=>O,RPCError:()=>De,RPCErrorCode:()=>Le,RecoveryMethodType:()=>cr,SDKError:()=>ve,SDKErrorCode:()=>pe,SDKWarning:()=>ke,SDKWarningCode:()=>Re,Wallets:()=>ue,isPromiEvent:()=>Nt});var dt=sr(qr()),$t=sr(Hr());var Go={display:"none",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",zIndex:"2147483647"};function jo(e){for(let[t,n]of Object.entries(Go))e.style[t]=n}function Vo(e){let t=[].slice.call(document.querySelectorAll(".magic-iframe"));return Boolean(t.find(n=>n.src.includes(e)))}var ft=class extends Vr{constructor(){super(...arguments);this.activeElement=null}init(){this.test="hello",this.iframe=new Promise(n=>{let o=()=>{if(Vo(encodeURIComponent(this.parameters)))Pr().log();else{let a=document.createElement("iframe");a.classList.add("magic-iframe"),a.dataset.magicIframeLabel=Xe(this.endpoint).host,a.title="Secure Modal",a.src=Xe(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href,jo(a),document.body.appendChild(a),n(a)}};["loaded","interactive","complete"].includes(document.readyState)?o():window.addEventListener("load",o,!1)}),window.addEventListener("message",n=>{var o;if(n.origin===this.endpoint&&n.data&&n.data.msgType&&this.messageHandlers.size){n.data.response=(o=n.data.response)!=null?o:{};for(let a of this.messageHandlers.values())a(n)}})}showOverlay(){return Oe(this,null,function*(){let n=yield this.iframe;n.style.display="block",this.activeElement=document.activeElement,n.focus()})}hideOverlay(){return Oe(this,null,function*(){var o;let n=yield this.iframe;n.style.display="none",(o=this.activeElement)!=null&&o.focus&&this.activeElement.focus(),this.activeElement=null})}_post(n){return Oe(this,null,function*(){let o=yield this.iframe;if(o&&o.contentWindow)o.contentWindow.postMessage(n,this.endpoint);else throw Lr()})}};var Ko=Object.assign(Or(Lt,{platform:"web",sdkName:"magic-sdk",version:"18.2.1",defaultEndpoint:"https://auth.magic.link/",ViewController:ft,configureStorage:()=>Oe(void 0,null,function*(){let e=dt.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return yield e.defineDriver($t),yield e.setDriver([dt.default.INDEXEDDB,dt.default.LOCALSTORAGE,$t._driver]),e})}),nr({},Pt)),qo=Ko;return Xn(Yo);})();
6
6
  if (Magic && Magic.default != null) { Magic = Object.assign(Magic.default, Magic); delete Magic.default; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "magic-sdk",
3
- "version": "18.2.2-canary.561.5479214841.0",
3
+ "version": "18.2.2-canary.561.5480302415.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": "14.2.2-canary.561.5479214841.0",
33
- "@magic-sdk/provider": "18.2.2-canary.561.5479214841.0",
34
- "@magic-sdk/types": "15.6.1-canary.561.5479214841.0",
32
+ "@magic-sdk/commons": "14.2.2-canary.561.5480302415.0",
33
+ "@magic-sdk/provider": "18.2.2-canary.561.5480302415.0",
34
+ "@magic-sdk/types": "15.6.1-canary.561.5480302415.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": "53b11ac56812ea5dd765f41558ac99adf7dfa0ac"
43
+ "gitHead": "47027b7ce0fb1efefb5ed12fbdf73313e595dcc6"
44
44
  }