magic-sdk 18.6.0 → 18.6.1-canary.596.5674472989.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 +1 -1
- 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 io(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 Lr(){return new ke(Re.DuplicateIframe,"Duplicate iframes found.")}function oo(){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 ao(){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*so(){let e=0;for(;;)e<Number.MAX_SAFE_INTEGER?yield++e:e=0}var lo=so();function Pr(){return lo.next().value}var Cr=Symbol("Payload pre-processed by Magic SDK");function $r(e){return Object.defineProperty(e,Cr,{value:!0,enumerable:!1}),e}function uo(e){return!!e[Cr]}function ot(e){var t,n,o;return uo(e)||(e.jsonrpc=(t=e.jsonrpc)!=null?t:"2.0",e.id=Pr(),e.method=(n=e.method)!=null?n:"noop",e.params=(o=e.params)!=null?o:[],$r(e)),e}function B(e,t=[]){return $r({params:t,method:e,jsonrpc:"2.0",id:Pr()})}var At=class{constructor(e){e instanceof At?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):Ji(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}}},co=oi(ai()),fo=class extends co.default{};function Dr(){let e=new fo;return{emitter:e,createChainingEmitterMethod:(t,n)=>(...o)=>(e[t].apply(e,o),n),createBoundEmitterMethod:t=>(...n)=>e[t].apply(e,n)}}var xr=Symbol("isPromiEvent");function St(e){return!!e[xr]}function Nt(e){let t=Ur(e),{createBoundEmitterMethod:n,createChainingEmitterMethod:o}=Dr(),a=Symbol("Promise.then"),l=Symbol("Promise.catch"),m=Symbol("Promise.finally"),h=(y,N)=>(...I)=>{let T=N[y].apply(N,I);return v(T)},v=y=>Object.assign(y,{[xr]:!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 Ur(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,ot(e)),n=Nt((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 to()}).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=B(O.IntermediaryEvent,[{payloadId:t,eventType:e,args:n}]);this.request(o)}}};function ho(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"},po=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&&ho(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=B(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=B(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=B(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=B(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=B(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=B(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=B(this.sdk.testMode?O.UpdatePhoneNumberTestMode:O.UpdatePhoneNumber);return this.request(e)}},kr={};ni(kr,{clear:()=>mo,getItem:()=>_e,iterate:()=>Eo,key:()=>go,keys:()=>yo,length:()=>vo,removeItem:()=>Tt,setItem:()=>xe});var tt;function Ie(e){return(...t)=>ne(this,null,function*(){return tt||(tt=yield H.configureStorage()),yield tt.ready(),tt[e](...t)})}var _e=Ie("getItem"),xe=Ie("setItem"),Tt=Ie("removeItem"),mo=Ie("clear"),vo=Ie("length"),go=Ie("key"),yo=Ie("keys"),Eo=Ie("iterate"),_o=class extends Ne{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}getIdToken(e){let t=B(this.sdk.testMode?O.GetIdTokenTestMode:O.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=B(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=B(O.GetInfo,[{walletType:e}]);return this.request(t)})}isLoggedIn(){let e=B(this.sdk.testMode?O.IsLoggedInTestMode:O.IsLoggedIn);return this.request(e)}logout(){Tt(this.localForageKey);let e=B(this.sdk.testMode?O.LogoutTestMode:O.Logout);return this.request(e)}requestInfoWithUI(e){let t=B(O.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let t=B(this.sdk.testMode?O.UserSettingsTestMode:O.UserSettings,[e]);return this.request(t)}recoverAccount(e){let t=B(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=B(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=B(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=B(this.sdk.testMode?O.UpdatePhoneNumberTestMode:O.UpdatePhoneNumber);return this.request(e)}};function He(e,t){return t?new URL(e,t):new URL(e)}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 Wr="STORE_KEY_PRIVATE_KEY",wt="STORE_KEY_PUBLIC_JWK",Mt="ECDSA",Br="P-256",wo={name:Mt,namedCurve:Br},bo={name:Mt,namedCurve:Br};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(Wr);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:Ir(JSON.stringify(a)),claims:Ir(JSON.stringify(o))},m=To(`${l.protected}.${l.claims}`),h={name:Mt,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(wt))||(yield So()),_e(wt)})}function So(){return ne(this,null,function*(){let e=null,{subtle:t}=window.crypto,n=yield t.generateKey(wo,!0,["sign"]),o=yield t.exportKey("jwk",n.privateKey);e=yield t.exportKey("jwk",n.publicKey);let a=yield t.importKey("jwk",o,bo,!1,["sign"]);yield xe(Wr,a),yield xe(wt,e)})}function No(){let e=typeof window!="undefined"&&!!window.crypto,t=e&&!!window.crypto.subtle;return e&&t}function Ir(e){return Fr(Mo(e))}function To(e){return new TextEncoder().encode(e)}function Fr(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function Mo(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)}),Fr(t)}var Lo=class extends Ne{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}connectWithUI(){let e=Nt((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=B(O.Login,[o]),l=this.request(a);l.on(Pe.WalletSelected,h=>this.handleWalletSelected(Ar(bt({},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(){return this.request(B(O.ShowUI))}showAddress(){return this.request(B(O.ShowAddress))}showSendTokensUI(){return this.request(B(O.ShowSendTokensUI))}showOnRamp(){return this.request(B(O.ShowOnRamp))}showNFTs(){return this.request(B(O.ShowNFTs))}showBalances(){return this.request(B(O.ShowBalances))}getInfo(){return ne(this,null,function*(){ce({method:"wallet.getInfo()",removalVersions:fe,useInstead:"user.getInfo()"}).log();let e=yield _e(this.localForageKey),t=B(O.GetInfo,[{walletType:e}]);return this.request(t)})}disconnect(){ce({method:"wallet.disconnect()",removalVersions:fe,useInstead:"user.logout()"}).log(),Tt(this.localForageKey);let e=B(O.Disconnect);return this.request(e)}requestUserInfoWithUI(e){ce({method:"wallet.requestUserInfoWithUI()",removalVersions:fe,useInstead:"user.requestUserInfoWithUI()"}).log();let t=B(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=B("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=B(O.AutoConnect,[{wallet:e,address:t}]);return this.request(n)})}},{createBoundEmitterMethod:rt,createChainingEmitterMethod:Ce}=Dr(),Po=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=rt("emit"),this.eventNames=rt("eventNames"),this.listeners=rt("listeners"),this.listenerCount=rt("listenerCount")}sendAsync(e,t){if(!t)throw io({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=ot(n);return this.prefixPayloadMethodForTestMode(o),o})).then(n=>{t(null,n.map(o=>Ar(bt({},o.payload),{error:o.hasError?new De(o.payload.error):null})))});else{let n=ot(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=B(e,Array.isArray(t)?t:[]);return this.request(o)}if(Array.isArray(e)||!!t){this.sendAsync(e,t);return}let n=oo();return n.log(),new At(e).applyError({code:-32603,message:n.rawMessage}).payload}enable(){let e=B(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 Co(e){let t=Object.getPrototypeOf(e),n=[t];for(;t!==Ne.prototype;)t=Object.getPrototypeOf(t),n.push(t);return n}var Gr=class extends Ne{constructor(){super(void 0),this.__sdk_access_field_descriptors__=new Map,this.__is_initialized__=!1,this.utils={createPromiEvent:Nt,isPromiEvent:St,encodeJSON:Nr,decodeJSON:Xi,createJsonRpcRequestPayload:B,standardizeJsonRpcRequestPayload:ot,storage:kr};let e=[this,...Co(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 ro(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 it(this,"DEPRECATION_NOTICE",l)}createWarning(e,t){return new it(this,e,t)}createError(e,t,n){return new st(this,e,t,n)}},$o=class extends Gr{},Se=class extends Gr{};Se.Internal=$o,Se.Anonymous="anonymous extension";var Do=class extends Ne{purchase(e){let t=B(O.NFTPurchase,[e]);return this.request(t)}checkout(e){return ne(this,null,function*(){let t=B(O.NFTCheckout,[e]);return this.request(t)})}};function br(e){return e.compat&&e.compat[H.sdkName]!=null?typeof e.compat[H.sdkName]=="string"?Bi(Vi(H.version),e.compat[H.sdkName]):!!e.compat[H.sdkName]:!0}function xo(e){var t;let n=(t=e==null?void 0:e.extensions)!=null?t:[],o={},a=[];if(Array.isArray(n)?n.forEach(l=>{br(l)?(l.init(this),(l.name||l.name!==Se.Anonymous)&&(this[l.name]=l),l instanceof Se.Internal&&(It(l.config)||(o[l.name]=l.config))):a.push(l)}):Object.keys(n).forEach(l=>{if(br(n[l])){n[l].init(this);let m=n[l];this[l]=m,m instanceof Se.Internal&&(It(m.config)||(o[n[l].name]=m.config))}else a.push(n[l])}),a.length)throw no(a);return o}var nt=class{constructor(e,t){this.apiKey=e;var n,o;if(!e)throw eo();H.platform==="react-native"&&(t==null?void 0:t.endpoint)&&ao().log();let{defaultEndpoint:a,defaultNFTEndpoint:l,version:m}=H;this.testMode=!!(t!=null&&t.testMode),this.endpoint=He((n=t==null?void 0:t.endpoint)!=null?n:a).origin,this.auth=new po(this),this.user=new _o(this),this.wallet=new Lo(this),this.nft=new Do(this),this.rpcProvider=new Po(this);let h=xo.call(this,t);this.parameters=Nr(bt({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,nftEndpoint:(o=t==null?void 0:t.nftEndpoint)!=null?o:l,host:He(this.endpoint).host,sdk:Zi[H.sdkName],version:m,ext:It(h)?void 0:h,locale:(t==null?void 0:t.locale)||"en_US"},H.bundleId?{bundleId:H.bundleId}:{}))}get overlay(){if(!nt.__overlays__.has(this.parameters)){let e=new H.ViewController(this.endpoint,this.parameters);e.init(),nt.__overlays__.set(this.parameters,e)}return nt.__overlays__.get(this.parameters)}preload(){return ne(this,null,function*(){yield this.overlay.ready})}},Ot=nt;Ot.__overlays__=new Map;function Uo(e,t){return t&&Array.isArray(e)?e.find(n=>n.id===t):e}function ko(e,t){var n;let o=(n=t.data.response)==null?void 0:n.id,a=Uo(e,o);if(o&&a){let l=new At(a).applyResult(t.data.response.result).applyError(t.data.response.error);return{id:o,response:l}}return{}}function Wo(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 Bo(e){return ne(this,null,function*(){!e.data.rt||(yield xe("rt",e.data.rt))})}var jr=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 Ur(n=>ne(this,null,function*(){yield this.ready;let o=[],a=Array.isArray(t)?t.map(v=>v.id):[],l=yield Wo(`${e}-${this.parameters}`,t);yield this._post(l);let m=v=>g=>{let{id:y,response:N}=ko(t,g);Bo(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 Lt={};ir(Lt,{DeepLinkPage:()=>sr,EthChainType:()=>lr,Events:()=>Pe,Extension:()=>Se,ExtensionError:()=>st,ExtensionWarning:()=>it,MagicIncomingWindowMessage:()=>me,MagicOutgoingWindowMessage:()=>Ae,MagicPayloadMethod:()=>O,RPCError:()=>De,RPCErrorCode:()=>Le,RecoveryMethodType:()=>ur,SDKError:()=>ve,SDKErrorCode:()=>pe,SDKWarning:()=>ke,SDKWarningCode:()=>Re,Wallets:()=>ue,isPromiEvent:()=>St});var ct=ar(qr()),Ct=ar(Yr());var Fo={display:"none",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",zIndex:"2147483647"};function Go(e){for(let[t,n]of Object.entries(Fo))e.style[t]=n}function jo(e){let t=[].slice.call(document.querySelectorAll(".magic-iframe"));return Boolean(t.find(n=>n.src.includes(e)))}var ut=class extends jr{constructor(){super(...arguments);this.activeElement=null}init(){this.test="hello",this.iframe=new Promise(n=>{let o=()=>{if(jo(encodeURIComponent(this.parameters)))Lr().log();else{let a=document.createElement("iframe");a.classList.add("magic-iframe"),a.dataset.magicIframeLabel=He(this.endpoint).host,a.title="Secure Modal",a.src=He(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href,Go(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 Or()})}};var Vo=Object.assign(Mr(Ot,{platform:"web",sdkName:"magic-sdk",version:"18.6.0",defaultEndpoint:"https://auth.magic.link/",defaultNFTEndpoint:"https://nft-api.magic.link/",ViewController:ut,configureStorage:()=>Oe(void 0,null,function*(){let e=ct.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return yield e.defineDriver(Ct),yield e.setDriver([ct.default.INDEXEDDB,ct.default.LOCALSTORAGE,Ct._driver]),e})}),rr({},Lt)),qo=Vo;return Hn(Ko);})();
|
5
|
+
Received: \`${e.received}\``)}function Lr(){return new ke(Re.DuplicateIframe,"Duplicate iframes found.")}function oo(){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 ao(){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*so(){let e=0;for(;;)e<Number.MAX_SAFE_INTEGER?yield++e:e=0}var lo=so();function Pr(){return lo.next().value}var Cr=Symbol("Payload pre-processed by Magic SDK");function $r(e){return Object.defineProperty(e,Cr,{value:!0,enumerable:!1}),e}function uo(e){return!!e[Cr]}function ot(e){var t,n,o;return uo(e)||(e.jsonrpc=(t=e.jsonrpc)!=null?t:"2.0",e.id=Pr(),e.method=(n=e.method)!=null?n:"noop",e.params=(o=e.params)!=null?o:[],$r(e)),e}function B(e,t=[]){return $r({params:t,method:e,jsonrpc:"2.0",id:Pr()})}var At=class{constructor(e){e instanceof At?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):Ji(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}}},co=oi(ai()),fo=class extends co.default{};function Dr(){let e=new fo;return{emitter:e,createChainingEmitterMethod:(t,n)=>(...o)=>(e[t].apply(e,o),n),createBoundEmitterMethod:t=>(...n)=>e[t].apply(e,n)}}var xr=Symbol("isPromiEvent");function St(e){return!!e[xr]}function Nt(e){let t=Ur(e),{createBoundEmitterMethod:n,createChainingEmitterMethod:o}=Dr(),a=Symbol("Promise.then"),l=Symbol("Promise.catch"),m=Symbol("Promise.finally"),h=(y,N)=>(...I)=>{let T=N[y].apply(N,I);return v(T)},v=y=>Object.assign(y,{[xr]:!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 Ur(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,ot(e)),n=Nt((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 to()}).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=B(O.IntermediaryEvent,[{payloadId:t,eventType:e,args:n}]);this.request(o)}}};function ho(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"},po=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&&ho(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=B(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=B(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,deviceCheckUI:o}=e,a=B(this.sdk.testMode?O.LoginWithEmailOTPTestMode:O.LoginWithEmailOTP,[{email:t,showUI:n,deviceCheckUI:o}]);if(!n){let l=this.request(a);return l&&(l.on("verify-email-otp",m=>{this.createIntermediaryEvent("verify-email-otp",a.id)(m)}),l.on("cancel",()=>{this.createIntermediaryEvent("cancel",a.id)()})),l}return this.request(a)}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=B(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=B(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=B(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=B(this.sdk.testMode?O.UpdatePhoneNumberTestMode:O.UpdatePhoneNumber);return this.request(e)}},kr={};ni(kr,{clear:()=>mo,getItem:()=>_e,iterate:()=>Eo,key:()=>go,keys:()=>yo,length:()=>vo,removeItem:()=>Tt,setItem:()=>xe});var tt;function Ie(e){return(...t)=>ne(this,null,function*(){return tt||(tt=yield H.configureStorage()),yield tt.ready(),tt[e](...t)})}var _e=Ie("getItem"),xe=Ie("setItem"),Tt=Ie("removeItem"),mo=Ie("clear"),vo=Ie("length"),go=Ie("key"),yo=Ie("keys"),Eo=Ie("iterate"),_o=class extends Ne{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}getIdToken(e){let t=B(this.sdk.testMode?O.GetIdTokenTestMode:O.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=B(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=B(O.GetInfo,[{walletType:e}]);return this.request(t)})}isLoggedIn(){let e=B(this.sdk.testMode?O.IsLoggedInTestMode:O.IsLoggedIn);return this.request(e)}logout(){Tt(this.localForageKey);let e=B(this.sdk.testMode?O.LogoutTestMode:O.Logout);return this.request(e)}requestInfoWithUI(e){let t=B(O.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let t=B(this.sdk.testMode?O.UserSettingsTestMode:O.UserSettings,[e]);return this.request(t)}recoverAccount(e){let t=B(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=B(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=B(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=B(this.sdk.testMode?O.UpdatePhoneNumberTestMode:O.UpdatePhoneNumber);return this.request(e)}};function He(e,t){return t?new URL(e,t):new URL(e)}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 Wr="STORE_KEY_PRIVATE_KEY",wt="STORE_KEY_PUBLIC_JWK",Mt="ECDSA",Br="P-256",wo={name:Mt,namedCurve:Br},bo={name:Mt,namedCurve:Br};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(Wr);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:Ir(JSON.stringify(a)),claims:Ir(JSON.stringify(o))},m=To(`${l.protected}.${l.claims}`),h={name:Mt,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(wt))||(yield So()),_e(wt)})}function So(){return ne(this,null,function*(){let e=null,{subtle:t}=window.crypto,n=yield t.generateKey(wo,!0,["sign"]),o=yield t.exportKey("jwk",n.privateKey);e=yield t.exportKey("jwk",n.publicKey);let a=yield t.importKey("jwk",o,bo,!1,["sign"]);yield xe(Wr,a),yield xe(wt,e)})}function No(){let e=typeof window!="undefined"&&!!window.crypto,t=e&&!!window.crypto.subtle;return e&&t}function Ir(e){return Fr(Mo(e))}function To(e){return new TextEncoder().encode(e)}function Fr(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function Mo(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)}),Fr(t)}var Lo=class extends Ne{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}connectWithUI(){let e=Nt((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=B(O.Login,[o]),l=this.request(a);l.on(Pe.WalletSelected,h=>this.handleWalletSelected(Ar(bt({},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(){return this.request(B(O.ShowUI))}showAddress(){return this.request(B(O.ShowAddress))}showSendTokensUI(){return this.request(B(O.ShowSendTokensUI))}showOnRamp(){return this.request(B(O.ShowOnRamp))}showNFTs(){return this.request(B(O.ShowNFTs))}showBalances(){return this.request(B(O.ShowBalances))}getInfo(){return ne(this,null,function*(){ce({method:"wallet.getInfo()",removalVersions:fe,useInstead:"user.getInfo()"}).log();let e=yield _e(this.localForageKey),t=B(O.GetInfo,[{walletType:e}]);return this.request(t)})}disconnect(){ce({method:"wallet.disconnect()",removalVersions:fe,useInstead:"user.logout()"}).log(),Tt(this.localForageKey);let e=B(O.Disconnect);return this.request(e)}requestUserInfoWithUI(e){ce({method:"wallet.requestUserInfoWithUI()",removalVersions:fe,useInstead:"user.requestUserInfoWithUI()"}).log();let t=B(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=B("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=B(O.AutoConnect,[{wallet:e,address:t}]);return this.request(n)})}},{createBoundEmitterMethod:rt,createChainingEmitterMethod:Ce}=Dr(),Po=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=rt("emit"),this.eventNames=rt("eventNames"),this.listeners=rt("listeners"),this.listenerCount=rt("listenerCount")}sendAsync(e,t){if(!t)throw io({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=ot(n);return this.prefixPayloadMethodForTestMode(o),o})).then(n=>{t(null,n.map(o=>Ar(bt({},o.payload),{error:o.hasError?new De(o.payload.error):null})))});else{let n=ot(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=B(e,Array.isArray(t)?t:[]);return this.request(o)}if(Array.isArray(e)||!!t){this.sendAsync(e,t);return}let n=oo();return n.log(),new At(e).applyError({code:-32603,message:n.rawMessage}).payload}enable(){let e=B(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 Co(e){let t=Object.getPrototypeOf(e),n=[t];for(;t!==Ne.prototype;)t=Object.getPrototypeOf(t),n.push(t);return n}var Gr=class extends Ne{constructor(){super(void 0),this.__sdk_access_field_descriptors__=new Map,this.__is_initialized__=!1,this.utils={createPromiEvent:Nt,isPromiEvent:St,encodeJSON:Nr,decodeJSON:Xi,createJsonRpcRequestPayload:B,standardizeJsonRpcRequestPayload:ot,storage:kr};let e=[this,...Co(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 ro(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 it(this,"DEPRECATION_NOTICE",l)}createWarning(e,t){return new it(this,e,t)}createError(e,t,n){return new st(this,e,t,n)}},$o=class extends Gr{},Se=class extends Gr{};Se.Internal=$o,Se.Anonymous="anonymous extension";var Do=class extends Ne{purchase(e){let t=B(O.NFTPurchase,[e]);return this.request(t)}checkout(e){return ne(this,null,function*(){let t=B(O.NFTCheckout,[e]);return this.request(t)})}};function br(e){return e.compat&&e.compat[H.sdkName]!=null?typeof e.compat[H.sdkName]=="string"?Bi(Vi(H.version),e.compat[H.sdkName]):!!e.compat[H.sdkName]:!0}function xo(e){var t;let n=(t=e==null?void 0:e.extensions)!=null?t:[],o={},a=[];if(Array.isArray(n)?n.forEach(l=>{br(l)?(l.init(this),(l.name||l.name!==Se.Anonymous)&&(this[l.name]=l),l instanceof Se.Internal&&(It(l.config)||(o[l.name]=l.config))):a.push(l)}):Object.keys(n).forEach(l=>{if(br(n[l])){n[l].init(this);let m=n[l];this[l]=m,m instanceof Se.Internal&&(It(m.config)||(o[n[l].name]=m.config))}else a.push(n[l])}),a.length)throw no(a);return o}var nt=class{constructor(e,t){this.apiKey=e;var n,o;if(!e)throw eo();H.platform==="react-native"&&(t==null?void 0:t.endpoint)&&ao().log();let{defaultEndpoint:a,defaultNFTEndpoint:l,version:m}=H;this.testMode=!!(t!=null&&t.testMode),this.endpoint=He((n=t==null?void 0:t.endpoint)!=null?n:a).origin,this.auth=new po(this),this.user=new _o(this),this.wallet=new Lo(this),this.nft=new Do(this),this.rpcProvider=new Po(this);let h=xo.call(this,t);this.parameters=Nr(bt({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,nftEndpoint:(o=t==null?void 0:t.nftEndpoint)!=null?o:l,host:He(this.endpoint).host,sdk:Zi[H.sdkName],version:m,ext:It(h)?void 0:h,locale:(t==null?void 0:t.locale)||"en_US"},H.bundleId?{bundleId:H.bundleId}:{}))}get overlay(){if(!nt.__overlays__.has(this.parameters)){let e=new H.ViewController(this.endpoint,this.parameters);e.init(),nt.__overlays__.set(this.parameters,e)}return nt.__overlays__.get(this.parameters)}preload(){return ne(this,null,function*(){yield this.overlay.ready})}},Ot=nt;Ot.__overlays__=new Map;function Uo(e,t){return t&&Array.isArray(e)?e.find(n=>n.id===t):e}function ko(e,t){var n;let o=(n=t.data.response)==null?void 0:n.id,a=Uo(e,o);if(o&&a){let l=new At(a).applyResult(t.data.response.result).applyError(t.data.response.error);return{id:o,response:l}}return{}}function Wo(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 Bo(e){return ne(this,null,function*(){!e.data.rt||(yield xe("rt",e.data.rt))})}var jr=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 Ur(n=>ne(this,null,function*(){yield this.ready;let o=[],a=Array.isArray(t)?t.map(v=>v.id):[],l=yield Wo(`${e}-${this.parameters}`,t);yield this._post(l);let m=v=>g=>{let{id:y,response:N}=ko(t,g);Bo(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 Lt={};ir(Lt,{DeepLinkPage:()=>sr,EthChainType:()=>lr,Events:()=>Pe,Extension:()=>Se,ExtensionError:()=>st,ExtensionWarning:()=>it,MagicIncomingWindowMessage:()=>me,MagicOutgoingWindowMessage:()=>Ae,MagicPayloadMethod:()=>O,RPCError:()=>De,RPCErrorCode:()=>Le,RecoveryMethodType:()=>ur,SDKError:()=>ve,SDKErrorCode:()=>pe,SDKWarning:()=>ke,SDKWarningCode:()=>Re,Wallets:()=>ue,isPromiEvent:()=>St});var ct=ar(qr()),Ct=ar(Yr());var Fo={display:"none",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",zIndex:"2147483647"};function Go(e){for(let[t,n]of Object.entries(Fo))e.style[t]=n}function jo(e){let t=[].slice.call(document.querySelectorAll(".magic-iframe"));return Boolean(t.find(n=>n.src.includes(e)))}var ut=class extends jr{constructor(){super(...arguments);this.activeElement=null}init(){this.test="hello",this.iframe=new Promise(n=>{let o=()=>{if(jo(encodeURIComponent(this.parameters)))Lr().log();else{let a=document.createElement("iframe");a.classList.add("magic-iframe"),a.dataset.magicIframeLabel=He(this.endpoint).host,a.title="Secure Modal",a.src=He(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href,Go(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 Or()})}};var Vo=Object.assign(Mr(Ot,{platform:"web",sdkName:"magic-sdk",version:"18.6.0",defaultEndpoint:"https://auth.magic.link/",defaultNFTEndpoint:"https://nft-api.magic.link/",ViewController:ut,configureStorage:()=>Oe(void 0,null,function*(){let e=ct.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return yield e.defineDriver(Ct),yield e.setDriver([ct.default.INDEXEDDB,ct.default.LOCALSTORAGE,Ct._driver]),e})}),rr({},Lt)),qo=Vo;return Hn(Ko);})();
|
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.6.0",
|
3
|
+
"version": "18.6.1-canary.596.5674472989.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": "
|
33
|
-
"@magic-sdk/provider": "
|
34
|
-
"@magic-sdk/types": "
|
32
|
+
"@magic-sdk/commons": "14.6.1-canary.596.5674472989.0",
|
33
|
+
"@magic-sdk/provider": "18.6.1-canary.596.5674472989.0",
|
34
|
+
"@magic-sdk/types": "15.8.1-canary.596.5674472989.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": "
|
43
|
+
"gitHead": "133c147f5f0be3882378d6c1e6bcd605b4999ae2"
|
44
44
|
}
|