@magic-sdk/provider 21.3.1-canary.673.7023578997.0 β†’ 21.3.1

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/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ # v21.3.1 (Tue Nov 28 2023)
2
+
3
+ #### πŸ› Bug Fix
4
+
5
+ - Fix: Allow implementers of `view-controller`Β to set if it's connected to the internet, and reject requests when `isConnectedToInternet` is `false` [#673](https://github.com/magiclabs/magic-js/pull/673) ([@romin-halltari](https://github.com/romin-halltari))
6
+ - Fix: Remove check for isReadyForRequest, add isConnectedToInternet ([@romin-halltari](https://github.com/romin-halltari))
7
+
8
+ #### Authors: 1
9
+
10
+ - [@romin-halltari](https://github.com/romin-halltari)
11
+
12
+ ---
13
+
1
14
  # v21.3.0 (Mon Nov 20 2023)
2
15
 
3
16
  #### πŸš€ Enhancement
package/dist/cjs/index.js CHANGED
@@ -2,5 +2,5 @@
2
2
  - Extension \`${t.name}\` supports version(s) \`${r}\``:r||(e+=`
3
3
  - Extension \`${t.name}\` does not support ${m.platform} environments.`)}),new A(x.SDKErrorCode.IncompatibleExtensions,e)}function Ge(n){let e=t=>{let r=t+1,o=r%10,s=r%100;return o===1&&s!==11?`${r}st`:o===2&&s!==12?`${r}nd`:o===3&&s!==13?`${r}rd`:`${r}th`};return new A(x.SDKErrorCode.InvalidArgument,`Invalid ${e(n.argument)} argument given to \`${n.procedure}\`.
4
4
  Expected: \`${n.expected}\`
5
- Received: \`${n.received}\``)}function Nn(){return new J(x.SDKWarningCode.DuplicateIframe,"Duplicate iframes found.")}function Ke(){return new J(x.SDKWarningCode.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 je(){return new J(x.SDKWarningCode.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 \`${m.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function S(n){let{method:e,removalVersions:t,useInstead:r}=n,o=t[m.sdkName],s=r?` Use \`${r}\` instead.`:"",a=`\`${e}\` will be removed from \`${m.sdkName}\` in version \`${o}\`.${s}`;return new J(x.SDKWarningCode.DeprecationNotice,a)}var y=require("@magic-sdk/types");var H=require("@magic-sdk/types");function*$n(){let n=0;for(;;)n<Number.MAX_SAFE_INTEGER?yield++n:n=0}var An=$n();function ge(){return An.next().value}var gt=Symbol("Payload pre-processed by Magic SDK");function yt(n){return Object.defineProperty(n,gt,{value:!0,enumerable:!1}),n}function Cn(n){return!!n[gt]}function K(n){var e,t,r;return Cn(n)||(n.jsonrpc=(e=n.jsonrpc)!=null?e:"2.0",n.id=ge(),n.method=(t=n.method)!=null?t:"noop",n.params=(r=n.params)!=null?r:[],yt(n)),n}function d(n,e=[]){return yt({params:e,method:n,jsonrpc:"2.0",id:ge()})}var D=class{constructor(e){e instanceof D?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):ke(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}}};var Tt=kt(vt()),Re=class extends Tt.default{};function oe(){let n=new Re;return{emitter:n,createChainingEmitterMethod:(r,o)=>(...s)=>(n[r].apply(n,s),o),createBoundEmitterMethod:r=>(...o)=>n[r].apply(n,o)}}var It=Symbol("isPromiEvent");function Xe(n){return!!n[It]}function j(n){let e=ve(n),{createBoundEmitterMethod:t,createChainingEmitterMethod:r}=oe(),o=Symbol("Promise.then"),s=Symbol("Promise.catch"),a=Symbol("Promise.finally"),i=(l,p)=>(...M)=>{let N=p[l].apply(p,M);return c(N)},c=l=>Object.assign(l,{[It]:!0,[o]:l[o]||l.then,[s]:l[s]||l.catch,[a]:l[a]||l.finally,then:i(o,l),catch:i(s,l),finally:i(a,l),on:r("on",l),once:r("once",l),addListener:r("addListener",l),off:r("off",l),removeListener:r("removeListener",l),removeAllListeners:r("removeAllListeners",l),emit:t("emit"),eventNames:t("eventNames"),listeners:t("listeners"),listenerCount:t("listenerCount")}),u=c(e.then(l=>(u.emit("done",l),u.emit("settled"),l),l=>{throw u.emit("error",l),u.emit("settled"),l}));return u}function ve(n){return new Promise((e,t)=>{let r=n(e,t);Promise.resolve(r).catch(t)})}var w=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){let t=this.overlay.post(H.MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST,K(e)),r=j((s,a)=>{t.then(i=>{if(o(),i.hasError)a(new C(i.payload.error));else if(i.hasResult)s(i.payload.result);else throw Ue()}).catch(i=>{o(),a(i)})}),o=this.overlay.on(H.MagicIncomingWindowMessage.MAGIC_HANDLE_EVENT,s=>{var i;let{response:a}=s.data;if(a.id===e.id&&((i=a.result)==null?void 0:i.event)){let{event:c,params:u=[]}=a.result;r.emit(c,...u)}});return r}createIntermediaryEvent(e,t){return o=>{let s=d(H.MagicPayloadMethod.IntermediaryEvent,[{payloadId:t,eventType:e,args:o}]);this.request(s)}}};function Ve(n,e){let[t]=n.split(".").map(Number);return t>=e}var W={"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"},Te=class extends w{loginWithMagicLink(e){let t=m.sdkName==="@magic-sdk/react-native"||m.sdkName==="@magic-sdk/react-native-bare"||m.sdkName==="@magic-sdk/react-native-expo";if(t&&Ve(m.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&S({method:"auth.loginWithMagicLink()",removalVersions:W,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:r,showUI:o=!0,redirectURI:s,overrides:a}=e,i=d(this.sdk.testMode?y.MagicPayloadMethod.LoginWithMagicLinkTestMode:y.MagicPayloadMethod.LoginWithMagicLink,[{email:r,showUI:o,redirectURI:s,overrides:a}]);return this.request(i)}loginWithSMS(e){let{phoneNumber:t}=e,r=d(this.sdk.testMode?y.MagicPayloadMethod.LoginWithSmsTestMode:y.MagicPayloadMethod.LoginWithSms,[{phoneNumber:t,showUI:!0}]);return this.request(r)}loginWithEmailOTP(e){let{email:t,showUI:r,deviceCheckUI:o,overrides:s}=e,a=d(this.sdk.testMode?y.MagicPayloadMethod.LoginWithEmailOTPTestMode:y.MagicPayloadMethod.LoginWithEmailOTP,[{email:t,showUI:r,deviceCheckUI:o,overrides:s}]),i=this.request(a);return!o&&i&&i.on(y.DeviceVerificationEventEmit.Retry,()=>{this.createIntermediaryEvent(y.DeviceVerificationEventEmit.Retry,a.id)()}),!r&&i&&(i.on(y.LoginWithEmailOTPEventEmit.VerifyEmailOtp,c=>{this.createIntermediaryEvent(y.LoginWithEmailOTPEventEmit.VerifyEmailOtp,a.id)(c)}),i.on(y.LoginWithEmailOTPEventEmit.Cancel,()=>{this.createIntermediaryEvent(y.LoginWithEmailOTPEventEmit.Cancel,a.id)()})),i}loginWithCredential(e){let t=e!=null?e:"";if(!e&&m.platform==="web"){t=window.location.search;let o=window.location.origin+window.location.pathname;window.history.replaceState(null,"",o)}let r=d(this.sdk.testMode?y.MagicPayloadMethod.LoginWithCredentialTestMode:y.MagicPayloadMethod.LoginWithCredential,[t]);return this.request(r)}setAuthorizationToken(e){let t=d(y.MagicPayloadMethod.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:r=!0}=e,o=d(this.sdk.testMode?y.MagicPayloadMethod.UpdateEmailTestMode:y.MagicPayloadMethod.UpdateEmail,[{email:t,showUI:r}]);return this.request(o)}};var R=require("@magic-sdk/types");var z={};tt(z,{clear:()=>On,getItem:()=>$,iterate:()=>Dn,key:()=>kn,keys:()=>qn,length:()=>_n,removeItem:()=>F,setItem:()=>k});var Ie;function U(n){return(...e)=>f(this,null,function*(){return Ie||(Ie=yield m.configureStorage()),yield Ie.ready(),Ie[n](...e)})}var $=U("getItem"),k=U("setItem"),F=U("removeItem"),On=U("clear"),_n=U("length"),kn=U("key"),qn=U("keys"),Dn=U("iterate");var be=class extends w{constructor(){super(...arguments);this.localForageKey="mc_active_wallet"}getIdToken(t){let r=d(this.sdk.testMode?R.MagicPayloadMethod.GetIdTokenTestMode:R.MagicPayloadMethod.GetIdToken,[t]);return this.request(r)}generateIdToken(t){let r=d(this.sdk.testMode?R.MagicPayloadMethod.GenerateIdTokenTestMode:R.MagicPayloadMethod.GenerateIdToken,[t]);return this.request(r)}getInfo(){return f(this,null,function*(){let t=yield $(this.localForageKey),r=d(R.MagicPayloadMethod.GetInfo,[{walletType:t}]);return this.request(r)})}isLoggedIn(){let t=d(this.sdk.testMode?R.MagicPayloadMethod.IsLoggedInTestMode:R.MagicPayloadMethod.IsLoggedIn);return this.request(t)}logout(){F(this.localForageKey);let t=d(this.sdk.testMode?R.MagicPayloadMethod.LogoutTestMode:R.MagicPayloadMethod.Logout);return this.request(t)}requestInfoWithUI(t){let r=d(R.MagicPayloadMethod.RequestUserInfoWithUI,t?[t]:[]);return this.request(r)}showSettings(t){let r=d(this.sdk.testMode?R.MagicPayloadMethod.UserSettingsTestMode:R.MagicPayloadMethod.UserSettings,[t]);return this.request(r)}recoverAccount(t){let r=d(this.sdk.testMode?R.MagicPayloadMethod.RecoverAccountTestMode:R.MagicPayloadMethod.RecoverAccount,[t]);return this.request(r)}getMetadata(){S({method:"user.getMetadata()",removalVersions:W,useInstead:"user.getInfo()"}).log();let t=d(this.sdk.testMode?R.MagicPayloadMethod.GetMetadataTestMode:R.MagicPayloadMethod.GetMetadata);return this.request(t)}updateEmail(t){S({method:"user.updateEmail()",removalVersions:W,useInstead:"auth.updateEmailWithUI()"}).log();let{email:r,showUI:o=!0}=t,s=d(this.sdk.testMode?R.MagicPayloadMethod.UpdateEmailTestMode:R.MagicPayloadMethod.UpdateEmail,[{email:r,showUI:o}]);return this.request(s)}};var E=require("@magic-sdk/types");function Pe(n,e){return e?new URL(n,e):new URL(n)}function He(){let n=window.crypto.getRandomValues(new Uint8Array(16));n[6]=n[6]&15|64,n[8]=n[8]&191|128;let e="";return e+=n[0].toString(16),e+=n[1].toString(16),e+=n[2].toString(16),e+=n[3].toString(16),e+="-",e+=n[4].toString(16),e+=n[5].toString(16),e+="-",e+=n[6].toString(16),e+=n[7].toString(16),e+="-",e+=n[8].toString(16),e+=n[9].toString(16),e+="-",e+=n[10].toString(16),e+=n[11].toString(16),e+=n[12].toString(16),e+=n[13].toString(16),e+=n[14].toString(16),e+=n[15].toString(16),e}var we="STORE_KEY_PRIVATE_KEY",ie="STORE_KEY_PUBLIC_JWK",Pt="ECDSA",Wn="P-256",Un={name:Pt,namedCurve:Wn};function Fn(){F(ie),F(we)}function ze(){return f(this,null,function*(){let n=yield Jn();if(!n){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:e}=window.crypto,t=yield $(we);if(!t||!e){console.info("unable to find private key or webcrypto unsupported");return}let r={iat:Math.floor(new Date().getTime()/1e3),jti:He()},o={typ:"dpop+jwt",alg:"ES256",jwk:n},s={protected:bt(JSON.stringify(o)),claims:bt(JSON.stringify(r))},a=jn(`${s.protected}.${s.claims}`),i={name:Pt,hash:{name:"SHA-256"}},c=Xn(new Uint8Array(yield e.sign(i,t,a)));return`${s.protected}.${s.claims}.${c}`})}function Jn(){return f(this,null,function*(){if(!Kn()){console.info("webcrypto is not supported");return}return(yield $(ie))||(yield Gn()),$(ie)})}function Gn(){return f(this,null,function*(){let{subtle:n}=window.crypto,e=yield n.generateKey(Un,!1,["sign"]),t=yield n.exportKey("jwk",e.publicKey);yield k(we,e.privateKey),yield k(ie,t)})}function Kn(){let n=typeof window!="undefined"&&!!window.crypto,e=n&&!!window.crypto.subtle;return n&&e}function bt(n){return wt(Bn(n))}function jn(n){return new TextEncoder().encode(n)}function wt(n){return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function Bn(n){return encodeURIComponent(n).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}function Xn(n){let e="";return n.forEach(t=>{e+=String.fromCharCode(t)}),wt(e)}var Me=class extends w{constructor(){super(...arguments);this.localForageKey="mc_active_wallet"}connectWithUI(){let t=j((r,o)=>f(this,null,function*(){try{if(this.isMetaMaskBrowser()&&(yield this.isWalletEnabled(E.Wallets.MetaMask))){let u=yield this.autoConnectIfWalletBrowser(E.Wallets.MetaMask);r(u);return}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled(E.Wallets.CoinbaseWallet))){let u=yield this.autoConnectIfWalletBrowser(E.Wallets.CoinbaseWallet);r(u);return}let s=this.getUserEnv(),a=d(E.MagicPayloadMethod.Login,[s]),i=this.request(a);i.on(E.Events.WalletSelected,u=>this.handleWalletSelected(de(B({},u),{payloadId:a.id}))),i.on("id-token-created",u=>{t.emit("id-token-created",u)});let c=yield i;c.error&&o(c),r(c)}catch(s){o(s)}}));return t}showUI(){return this.request(d(E.MagicPayloadMethod.ShowUI))}showAddress(){return this.request(d(E.MagicPayloadMethod.ShowAddress))}showSendTokensUI(){return this.request(d(E.MagicPayloadMethod.ShowSendTokensUI))}showOnRamp(){return this.request(d(E.MagicPayloadMethod.ShowOnRamp))}showNFTs(){return this.request(d(E.MagicPayloadMethod.ShowNFTs))}showBalances(){return this.request(d(E.MagicPayloadMethod.ShowBalances))}sendGaslessTransaction(t,r){return this.request(d(E.MagicPayloadMethod.SendGaslessTransaction,[t,r]))}getInfo(){return f(this,null,function*(){S({method:"wallet.getInfo()",removalVersions:W,useInstead:"user.getInfo()"}).log();let t=yield $(this.localForageKey),r=d(E.MagicPayloadMethod.GetInfo,[{walletType:t}]);return this.request(r)})}disconnect(){S({method:"wallet.disconnect()",removalVersions:W,useInstead:"user.logout()"}).log(),F(this.localForageKey);let t=d(E.MagicPayloadMethod.Disconnect);return this.request(t)}requestUserInfoWithUI(t){S({method:"wallet.requestUserInfoWithUI()",removalVersions:W,useInstead:"user.requestUserInfoWithUI()"}).log();let r=d(E.MagicPayloadMethod.RequestUserInfoWithUI,t?[t]:[]);return this.request(r)}getProvider(){return f(this,null,function*(){switch(yield $(this.localForageKey)){case E.Wallets.MetaMask:return this.getMetaMaskProvider();case E.Wallets.CoinbaseWallet:return this.getCoinbaseProvider();default:return this.sdk.rpcProvider}})}isMetaMaskInstalled(){var t,r,o;return((t=window.ethereum)==null?void 0:t.isMetaMask)||!!((o=(r=window.ethereum)==null?void 0:r.providers)!=null&&o.find(s=>s==null?void 0:s.isMetaMask))}isMetaMaskBrowser(){return this.isMobile()&&this.isMetaMaskInstalled()}getMetaMaskProvider(){var t,r;return((r=(t=window.ethereum)==null?void 0:t.providers)==null?void 0:r.find(o=>o==null?void 0:o.isMetaMask))||window.ethereum}connectToMetaMask(){if(this.isMobile()&&!this.isMetaMaskInstalled()){let t=`https://metamask.app.link/dapp/${window.location.href.replace(/(^\w+:|^)\/\//,"")}`;window.location.href=t}return this.getMetaMaskProvider().request({method:"eth_requestAccounts"})}isCoinbaseWalletInstalled(){var t,r,o;return((t=window.ethereum)==null?void 0:t.isCoinbaseWallet)||!!((o=(r=window.ethereum)==null?void 0:r.providers)!=null&&o.find(s=>s==null?void 0:s.isCoinbaseWallet))}isCoinbaseWalletBrowser(){var t;return!!((t=window.ethereum)!=null&&t.isCoinbaseBrowser)}getCoinbaseProvider(){var t,r;return((r=(t=window.ethereum)==null?void 0:t.providers)==null?void 0:r.find(o=>o==null?void 0:o.isCoinbaseWallet))||window.ethereum}connectToCoinbaseWallet(){if(this.isMobile()&&!this.isCoinbaseWalletBrowser()){let r=`https://go.cb-w.com/dapp?cb_url=${encodeURIComponent(window.location.href)}`;window.location.href=r}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(t){switch(t){case E.Wallets.MetaMask:return this.connectToMetaMask();case E.Wallets.CoinbaseWallet:return this.connectToCoinbaseWallet();default:throw new Error(`Invalid provider: ${t}. Must be one of "metamask" or "coinbase_wallet".`)}}isWalletEnabled(t){let r=d("mc_is_wallet_enabled",[{wallet:t}]);return this.request(r)}handleWalletSelected(t){return f(this,null,function*(){try{let r=yield this.connectToThirdPartyWallet(t.wallet);yield k(this.localForageKey,t.wallet),this.createIntermediaryEvent(E.Events.WalletConnected,t.payloadId)(r)}catch(r){console.error(r),this.createIntermediaryEvent(E.Events.WalletRejected,t.payloadId)()}})}autoConnectIfWalletBrowser(t){return f(this,null,function*(){let r;t===E.Wallets.MetaMask&&(r=yield this.getMetaMaskProvider().request({method:"eth_requestAccounts"})),t===E.Wallets.CoinbaseWallet&&(r=yield this.getCoinbaseProvider().request({method:"eth_requestAccounts"})),yield k(this.localForageKey,t);let o=d(E.MagicPayloadMethod.AutoConnect,[{wallet:t,address:r}]);return this.request(o)})}};var ae=require("@magic-sdk/types");var{createBoundEmitterMethod:xe,createChainingEmitterMethod:Y}=oe(),Ne=class extends w{constructor(){super(...arguments);this.isMagic=!0;this.on=Y("on",this);this.once=Y("once",this);this.addListener=Y("addListener",this);this.off=Y("off",this);this.removeListener=Y("removeListener",this);this.removeAllListeners=Y("removeAllListeners",this);this.emit=xe("emit");this.eventNames=xe("eventNames");this.listeners=xe("listeners");this.listenerCount=xe("listenerCount")}sendAsync(t,r){if(!r)throw Ge({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:r===null?"null":typeof r});if(Array.isArray(t))this.overlay.post(ae.MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST,t.map(o=>{let s=K(o);return this.prefixPayloadMethodForTestMode(s),s})).then(o=>{r(null,o.map(s=>de(B({},s.payload),{error:s.hasError?new C(s.payload.error):null})))});else{let o=K(t);this.prefixPayloadMethodForTestMode(o),this.overlay.post(ae.MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST,o).then(s=>{r(s.hasError?new C(s.payload.error):null,s.payload)})}}send(t,r){if(typeof t=="string"){let s=d(t,Array.isArray(r)?r:[]);return this.request(s)}if(Array.isArray(t)||!!r){this.sendAsync(t,r);return}let o=Ke();return o.log(),new D(t).applyError({code:-32603,message:o.rawMessage}).payload}enable(){let t=d(ae.MagicPayloadMethod.Login);return this.request(t)}request(t){return this.prefixPayloadMethodForTestMode(t),super.request(t)}prefixPayloadMethodForTestMode(t){let r="testMode/eth/";this.sdk.testMode&&(t.method=`${r}${t.method}`)}};var Mt=["request","overlay","sdk"];function Vn(n){let e=Object.getPrototypeOf(n),t=[e];for(;e!==w.prototype;)e=Object.getPrototypeOf(e),t.push(e);return t}var $e=class extends w{constructor(){super(void 0);this.__sdk_access_field_descriptors__=new Map;this.__is_initialized__=!1;this.utils={createPromiEvent:j,isPromiEvent:Xe,encodeJSON:ne,decodeJSON:_e,createJsonRpcRequestPayload:d,standardizeJsonRpcRequestPayload:K,storage:z};let t=[this,...Vn(this)];Mt.forEach(r=>{let o=t.map(c=>Object.getOwnPropertyDescriptor(c,r)),s=o.findIndex(c=>!!c),a=s>0,i=o[s];i&&(this.__sdk_access_field_descriptors__.set(r,{descriptor:i,isPrototypeField:a}),Object.defineProperty(this,r,{configurable:!0,get:()=>{throw Fe(r)}}))})}init(t){this.__is_initialized__||(Mt.forEach(r=>{if(this.__sdk_access_field_descriptors__.has(r)){let{descriptor:o,isPrototypeField:s}=this.__sdk_access_field_descriptors__.get(r);s?delete this[r]:Object.defineProperty(this,r,o)}}),this.sdk=t,this.__is_initialized__=!0)}createDeprecationWarning(t){let{method:r,removalVersion:o,useInstead:s}=t,a=s?` Use \`${s}\` instead.`:"",i=`\`${r}\` will be removed from this Extension in version \`${o}\`.${a}`;return new V(this,"DEPRECATION_NOTICE",i)}createWarning(t,r){return new V(this,t,r)}createError(t,r,o){return new G(this,t,r,o)}},Ye=class extends $e{},L=class extends $e{};L.Internal=Ye,L.Anonymous="anonymous extension";var Ae=require("@magic-sdk/types");var Ce=class extends w{purchase(e){let t=d(Ae.MagicPayloadMethod.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=d(Ae.MagicPayloadMethod.NFTCheckout,[e]);return this.request(t)}transfer(e){let t=d(Ae.MagicPayloadMethod.NFTTransfer,[e]);return this.request(t)}};function xt(n){return n.compat&&n.compat[m.sdkName]!=null?typeof n.compat[m.sdkName]=="string"?mt(ht(m.version),n.compat[m.sdkName]):!!n.compat[m.sdkName]:!0}function Hn(n){var o;let e=(o=n==null?void 0:n.extensions)!=null?o:[],t={},r=[];if(Array.isArray(e)?e.forEach(s=>{xt(s)?(s.init(this),(s.name||s.name!==L.Anonymous)&&(this[s.name]=s),s instanceof L.Internal&&(re(s.config)||(t[s.name]=s.config))):r.push(s)}):Object.keys(e).forEach(s=>{if(xt(e[s])){e[s].init(this);let a=e[s];this[s]=a,a instanceof L.Internal&&(re(a.config)||(t[e[s].name]=a.config))}else r.push(e[s])}),r.length)throw Je(r);return t}var le=class{constructor(e,t){this.apiKey=e;var a;if(!e)throw De();m.platform==="react-native"&&(t==null?void 0:t.endpoint)&&je().log();let{defaultEndpoint:r,version:o}=m;this.testMode=!!(t!=null&&t.testMode),this.endpoint=Pe((a=t==null?void 0:t.endpoint)!=null?a:r).origin,this.auth=new Te(this),this.user=new be(this),this.wallet=new Me(this),this.nft=new Ce(this),this.rpcProvider=new Ne(this);let s=Hn.call(this,t);this.parameters=ne(B({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,host:Pe(this.endpoint).host,sdk:ft[m.sdkName],version:o,ext:re(s)?void 0:s,locale:(t==null?void 0:t.locale)||"en_US"},m.bundleId?{bundleId:m.bundleId}:{})),t!=null&&t.deferPreload||this.preload()}get overlay(){if(!le.__overlays__.has(this.parameters)){let e=new m.ViewController(this.endpoint,this.parameters);e.init(),le.__overlays__.set(this.parameters,e)}return le.__overlays__.get(this.parameters)}preload(){return f(this,null,function*(){yield this.overlay.checkIsReadyForRequest})}},ce=le;ce.__overlays__=new Map;var ue=require("@magic-sdk/types");function zn(n,e){return e&&Array.isArray(n)?n.find(t=>t.id===e):n}function Yn(n,e){var o;let t=(o=e.data.response)==null?void 0:o.id,r=zn(n,t);if(t&&r){let s=new D(r).applyResult(e.data.response.result).applyError(e.data.response.error);return{id:t,response:s}}return{}}function Zn(n,e){return f(this,null,function*(){var o;let t=yield $("rt"),r;if(m.platform==="web")try{r=(o=yield $("jwt"))!=null?o:yield ze()}catch(s){console.error("webcrypto error",s)}return r?t?{msgType:n,payload:e,jwt:r,rt:t}:{msgType:n,payload:e,jwt:r}:{msgType:n,payload:e}})}function Qn(n){return f(this,null,function*(){!n.data.rt||(yield k("rt",n.data.rt))})}var Se=class{constructor(e,t){this.endpoint=e;this.parameters=t;this.messageHandlers=new Set;this.isConnectedToInternet=!0;this.checkIsReadyForRequest=this.waitForReady(),this.listen()}post(e,t){return f(this,null,function*(){return ve((r,o)=>f(this,null,function*(){if(!this.isConnectedToInternet){let l=We();o(l)}let s=[],a=Array.isArray(t)?t.map(l=>l.id):[],i=yield Zn(`${e}-${this.parameters}`,t);yield this._post(i);let c=l=>p=>{let{id:M,response:N}=Yn(t,p);Qn(p),M&&N&&Array.isArray(t)&&a.includes(M)?(s.push(N),s.length===t.length&&(l(),r(s))):M&&N&&!Array.isArray(t)&&M===t.id&&(l(),r(N))},u=this.on(ue.MagicIncomingWindowMessage.MAGIC_HANDLE_RESPONSE,c(()=>u()))}))})}on(e,t){let r=t.bind(window),o=s=>{s.data.msgType===`${e}-${this.parameters}`&&r(s)};return this.messageHandlers.add(o),()=>this.messageHandlers.delete(o)}waitForReady(){return new Promise(e=>{this.on(ue.MagicIncomingWindowMessage.MAGIC_OVERLAY_READY,()=>{e()})})}listen(){this.on(ue.MagicIncomingWindowMessage.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(ue.MagicIncomingWindowMessage.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()})}};
5
+ Received: \`${n.received}\``)}function Nn(){return new J(x.SDKWarningCode.DuplicateIframe,"Duplicate iframes found.")}function Ke(){return new J(x.SDKWarningCode.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 je(){return new J(x.SDKWarningCode.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 \`${m.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function S(n){let{method:e,removalVersions:t,useInstead:r}=n,o=t[m.sdkName],s=r?` Use \`${r}\` instead.`:"",a=`\`${e}\` will be removed from \`${m.sdkName}\` in version \`${o}\`.${s}`;return new J(x.SDKWarningCode.DeprecationNotice,a)}var y=require("@magic-sdk/types");var H=require("@magic-sdk/types");function*$n(){let n=0;for(;;)n<Number.MAX_SAFE_INTEGER?yield++n:n=0}var An=$n();function ge(){return An.next().value}var gt=Symbol("Payload pre-processed by Magic SDK");function yt(n){return Object.defineProperty(n,gt,{value:!0,enumerable:!1}),n}function Cn(n){return!!n[gt]}function K(n){var e,t,r;return Cn(n)||(n.jsonrpc=(e=n.jsonrpc)!=null?e:"2.0",n.id=ge(),n.method=(t=n.method)!=null?t:"noop",n.params=(r=n.params)!=null?r:[],yt(n)),n}function d(n,e=[]){return yt({params:e,method:n,jsonrpc:"2.0",id:ge()})}var D=class{constructor(e){e instanceof D?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):ke(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}}};var Tt=kt(vt()),Re=class extends Tt.default{};function oe(){let n=new Re;return{emitter:n,createChainingEmitterMethod:(r,o)=>(...s)=>(n[r].apply(n,s),o),createBoundEmitterMethod:r=>(...o)=>n[r].apply(n,o)}}var It=Symbol("isPromiEvent");function Xe(n){return!!n[It]}function j(n){let e=ve(n),{createBoundEmitterMethod:t,createChainingEmitterMethod:r}=oe(),o=Symbol("Promise.then"),s=Symbol("Promise.catch"),a=Symbol("Promise.finally"),i=(l,p)=>(...M)=>{let N=p[l].apply(p,M);return c(N)},c=l=>Object.assign(l,{[It]:!0,[o]:l[o]||l.then,[s]:l[s]||l.catch,[a]:l[a]||l.finally,then:i(o,l),catch:i(s,l),finally:i(a,l),on:r("on",l),once:r("once",l),addListener:r("addListener",l),off:r("off",l),removeListener:r("removeListener",l),removeAllListeners:r("removeAllListeners",l),emit:t("emit"),eventNames:t("eventNames"),listeners:t("listeners"),listenerCount:t("listenerCount")}),u=c(e.then(l=>(u.emit("done",l),u.emit("settled"),l),l=>{throw u.emit("error",l),u.emit("settled"),l}));return u}function ve(n){return new Promise((e,t)=>{let r=n(e,t);Promise.resolve(r).catch(t)})}var w=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){let t=this.overlay.post(H.MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST,K(e)),r=j((s,a)=>{t.then(i=>{if(o(),i.hasError)a(new C(i.payload.error));else if(i.hasResult)s(i.payload.result);else throw Ue()}).catch(i=>{o(),a(i)})}),o=this.overlay.on(H.MagicIncomingWindowMessage.MAGIC_HANDLE_EVENT,s=>{var i;let{response:a}=s.data;if(a.id===e.id&&((i=a.result)==null?void 0:i.event)){let{event:c,params:u=[]}=a.result;r.emit(c,...u)}});return r}createIntermediaryEvent(e,t){return o=>{let s=d(H.MagicPayloadMethod.IntermediaryEvent,[{payloadId:t,eventType:e,args:o}]);this.request(s)}}};function Ve(n,e){let[t]=n.split(".").map(Number);return t>=e}var W={"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"},Te=class extends w{loginWithMagicLink(e){let t=m.sdkName==="@magic-sdk/react-native"||m.sdkName==="@magic-sdk/react-native-bare"||m.sdkName==="@magic-sdk/react-native-expo";if(t&&Ve(m.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&S({method:"auth.loginWithMagicLink()",removalVersions:W,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:r,showUI:o=!0,redirectURI:s,overrides:a}=e,i=d(this.sdk.testMode?y.MagicPayloadMethod.LoginWithMagicLinkTestMode:y.MagicPayloadMethod.LoginWithMagicLink,[{email:r,showUI:o,redirectURI:s,overrides:a}]);return this.request(i)}loginWithSMS(e){let{phoneNumber:t}=e,r=d(this.sdk.testMode?y.MagicPayloadMethod.LoginWithSmsTestMode:y.MagicPayloadMethod.LoginWithSms,[{phoneNumber:t,showUI:!0}]);return this.request(r)}loginWithEmailOTP(e){let{email:t,showUI:r,deviceCheckUI:o,overrides:s}=e,a=d(this.sdk.testMode?y.MagicPayloadMethod.LoginWithEmailOTPTestMode:y.MagicPayloadMethod.LoginWithEmailOTP,[{email:t,showUI:r,deviceCheckUI:o,overrides:s}]),i=this.request(a);return!o&&i&&i.on(y.DeviceVerificationEventEmit.Retry,()=>{this.createIntermediaryEvent(y.DeviceVerificationEventEmit.Retry,a.id)()}),!r&&i&&(i.on(y.LoginWithEmailOTPEventEmit.VerifyEmailOtp,c=>{this.createIntermediaryEvent(y.LoginWithEmailOTPEventEmit.VerifyEmailOtp,a.id)(c)}),i.on(y.LoginWithEmailOTPEventEmit.Cancel,()=>{this.createIntermediaryEvent(y.LoginWithEmailOTPEventEmit.Cancel,a.id)()})),i}loginWithCredential(e){let t=e!=null?e:"";if(!e&&m.platform==="web"){t=window.location.search;let o=window.location.origin+window.location.pathname;window.history.replaceState(null,"",o)}let r=d(this.sdk.testMode?y.MagicPayloadMethod.LoginWithCredentialTestMode:y.MagicPayloadMethod.LoginWithCredential,[t]);return this.request(r)}setAuthorizationToken(e){let t=d(y.MagicPayloadMethod.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:r=!0}=e,o=d(this.sdk.testMode?y.MagicPayloadMethod.UpdateEmailTestMode:y.MagicPayloadMethod.UpdateEmail,[{email:t,showUI:r}]);return this.request(o)}};var R=require("@magic-sdk/types");var z={};tt(z,{clear:()=>On,getItem:()=>$,iterate:()=>Dn,key:()=>kn,keys:()=>qn,length:()=>_n,removeItem:()=>F,setItem:()=>k});var Ie;function U(n){return(...e)=>f(this,null,function*(){return Ie||(Ie=yield m.configureStorage()),yield Ie.ready(),Ie[n](...e)})}var $=U("getItem"),k=U("setItem"),F=U("removeItem"),On=U("clear"),_n=U("length"),kn=U("key"),qn=U("keys"),Dn=U("iterate");var be=class extends w{constructor(){super(...arguments);this.localForageKey="mc_active_wallet"}getIdToken(t){let r=d(this.sdk.testMode?R.MagicPayloadMethod.GetIdTokenTestMode:R.MagicPayloadMethod.GetIdToken,[t]);return this.request(r)}generateIdToken(t){let r=d(this.sdk.testMode?R.MagicPayloadMethod.GenerateIdTokenTestMode:R.MagicPayloadMethod.GenerateIdToken,[t]);return this.request(r)}getInfo(){return f(this,null,function*(){let t=yield $(this.localForageKey),r=d(R.MagicPayloadMethod.GetInfo,[{walletType:t}]);return this.request(r)})}isLoggedIn(){let t=d(this.sdk.testMode?R.MagicPayloadMethod.IsLoggedInTestMode:R.MagicPayloadMethod.IsLoggedIn);return this.request(t)}logout(){F(this.localForageKey);let t=d(this.sdk.testMode?R.MagicPayloadMethod.LogoutTestMode:R.MagicPayloadMethod.Logout);return this.request(t)}requestInfoWithUI(t){let r=d(R.MagicPayloadMethod.RequestUserInfoWithUI,t?[t]:[]);return this.request(r)}showSettings(t){let r=d(this.sdk.testMode?R.MagicPayloadMethod.UserSettingsTestMode:R.MagicPayloadMethod.UserSettings,[t]);return this.request(r)}recoverAccount(t){let r=d(this.sdk.testMode?R.MagicPayloadMethod.RecoverAccountTestMode:R.MagicPayloadMethod.RecoverAccount,[t]);return this.request(r)}getMetadata(){S({method:"user.getMetadata()",removalVersions:W,useInstead:"user.getInfo()"}).log();let t=d(this.sdk.testMode?R.MagicPayloadMethod.GetMetadataTestMode:R.MagicPayloadMethod.GetMetadata);return this.request(t)}updateEmail(t){S({method:"user.updateEmail()",removalVersions:W,useInstead:"auth.updateEmailWithUI()"}).log();let{email:r,showUI:o=!0}=t,s=d(this.sdk.testMode?R.MagicPayloadMethod.UpdateEmailTestMode:R.MagicPayloadMethod.UpdateEmail,[{email:r,showUI:o}]);return this.request(s)}};var E=require("@magic-sdk/types");function Pe(n,e){return e?new URL(n,e):new URL(n)}function He(){let n=window.crypto.getRandomValues(new Uint8Array(16));n[6]=n[6]&15|64,n[8]=n[8]&191|128;let e="";return e+=n[0].toString(16),e+=n[1].toString(16),e+=n[2].toString(16),e+=n[3].toString(16),e+="-",e+=n[4].toString(16),e+=n[5].toString(16),e+="-",e+=n[6].toString(16),e+=n[7].toString(16),e+="-",e+=n[8].toString(16),e+=n[9].toString(16),e+="-",e+=n[10].toString(16),e+=n[11].toString(16),e+=n[12].toString(16),e+=n[13].toString(16),e+=n[14].toString(16),e+=n[15].toString(16),e}var we="STORE_KEY_PRIVATE_KEY",ie="STORE_KEY_PUBLIC_JWK",Pt="ECDSA",Wn="P-256",Un={name:Pt,namedCurve:Wn};function Fn(){F(ie),F(we)}function ze(){return f(this,null,function*(){let n=yield Jn();if(!n){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:e}=window.crypto,t=yield $(we);if(!t||!e){console.info("unable to find private key or webcrypto unsupported");return}let r={iat:Math.floor(new Date().getTime()/1e3),jti:He()},o={typ:"dpop+jwt",alg:"ES256",jwk:n},s={protected:bt(JSON.stringify(o)),claims:bt(JSON.stringify(r))},a=jn(`${s.protected}.${s.claims}`),i={name:Pt,hash:{name:"SHA-256"}},c=Xn(new Uint8Array(yield e.sign(i,t,a)));return`${s.protected}.${s.claims}.${c}`})}function Jn(){return f(this,null,function*(){if(!Kn()){console.info("webcrypto is not supported");return}return(yield $(ie))||(yield Gn()),$(ie)})}function Gn(){return f(this,null,function*(){let{subtle:n}=window.crypto,e=yield n.generateKey(Un,!1,["sign"]),t=yield n.exportKey("jwk",e.publicKey);yield k(we,e.privateKey),yield k(ie,t)})}function Kn(){let n=typeof window!="undefined"&&!!window.crypto,e=n&&!!window.crypto.subtle;return n&&e}function bt(n){return wt(Bn(n))}function jn(n){return new TextEncoder().encode(n)}function wt(n){return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function Bn(n){return encodeURIComponent(n).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}function Xn(n){let e="";return n.forEach(t=>{e+=String.fromCharCode(t)}),wt(e)}var Me=class extends w{constructor(){super(...arguments);this.localForageKey="mc_active_wallet"}connectWithUI(){let t=j((r,o)=>f(this,null,function*(){try{if(this.isMetaMaskBrowser()&&(yield this.isWalletEnabled(E.Wallets.MetaMask))){let u=yield this.autoConnectIfWalletBrowser(E.Wallets.MetaMask);r(u);return}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled(E.Wallets.CoinbaseWallet))){let u=yield this.autoConnectIfWalletBrowser(E.Wallets.CoinbaseWallet);r(u);return}let s=this.getUserEnv(),a=d(E.MagicPayloadMethod.Login,[s]),i=this.request(a);i.on(E.Events.WalletSelected,u=>this.handleWalletSelected(de(B({},u),{payloadId:a.id}))),i.on("id-token-created",u=>{t.emit("id-token-created",u)});let c=yield i;c.error&&o(c),r(c)}catch(s){o(s)}}));return t}showUI(){return this.request(d(E.MagicPayloadMethod.ShowUI))}showAddress(){return this.request(d(E.MagicPayloadMethod.ShowAddress))}showSendTokensUI(){return this.request(d(E.MagicPayloadMethod.ShowSendTokensUI))}showOnRamp(){return this.request(d(E.MagicPayloadMethod.ShowOnRamp))}showNFTs(){return this.request(d(E.MagicPayloadMethod.ShowNFTs))}showBalances(){return this.request(d(E.MagicPayloadMethod.ShowBalances))}sendGaslessTransaction(t,r){return this.request(d(E.MagicPayloadMethod.SendGaslessTransaction,[t,r]))}getInfo(){return f(this,null,function*(){S({method:"wallet.getInfo()",removalVersions:W,useInstead:"user.getInfo()"}).log();let t=yield $(this.localForageKey),r=d(E.MagicPayloadMethod.GetInfo,[{walletType:t}]);return this.request(r)})}disconnect(){S({method:"wallet.disconnect()",removalVersions:W,useInstead:"user.logout()"}).log(),F(this.localForageKey);let t=d(E.MagicPayloadMethod.Disconnect);return this.request(t)}requestUserInfoWithUI(t){S({method:"wallet.requestUserInfoWithUI()",removalVersions:W,useInstead:"user.requestUserInfoWithUI()"}).log();let r=d(E.MagicPayloadMethod.RequestUserInfoWithUI,t?[t]:[]);return this.request(r)}getProvider(){return f(this,null,function*(){switch(yield $(this.localForageKey)){case E.Wallets.MetaMask:return this.getMetaMaskProvider();case E.Wallets.CoinbaseWallet:return this.getCoinbaseProvider();default:return this.sdk.rpcProvider}})}isMetaMaskInstalled(){var t,r,o;return((t=window.ethereum)==null?void 0:t.isMetaMask)||!!((o=(r=window.ethereum)==null?void 0:r.providers)!=null&&o.find(s=>s==null?void 0:s.isMetaMask))}isMetaMaskBrowser(){return this.isMobile()&&this.isMetaMaskInstalled()}getMetaMaskProvider(){var t,r;return((r=(t=window.ethereum)==null?void 0:t.providers)==null?void 0:r.find(o=>o==null?void 0:o.isMetaMask))||window.ethereum}connectToMetaMask(){if(this.isMobile()&&!this.isMetaMaskInstalled()){let t=`https://metamask.app.link/dapp/${window.location.href.replace(/(^\w+:|^)\/\//,"")}`;window.location.href=t}return this.getMetaMaskProvider().request({method:"eth_requestAccounts"})}isCoinbaseWalletInstalled(){var t,r,o;return((t=window.ethereum)==null?void 0:t.isCoinbaseWallet)||!!((o=(r=window.ethereum)==null?void 0:r.providers)!=null&&o.find(s=>s==null?void 0:s.isCoinbaseWallet))}isCoinbaseWalletBrowser(){var t;return!!((t=window.ethereum)!=null&&t.isCoinbaseBrowser)}getCoinbaseProvider(){var t,r;return((r=(t=window.ethereum)==null?void 0:t.providers)==null?void 0:r.find(o=>o==null?void 0:o.isCoinbaseWallet))||window.ethereum}connectToCoinbaseWallet(){if(this.isMobile()&&!this.isCoinbaseWalletBrowser()){let r=`https://go.cb-w.com/dapp?cb_url=${encodeURIComponent(window.location.href)}`;window.location.href=r}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(t){switch(t){case E.Wallets.MetaMask:return this.connectToMetaMask();case E.Wallets.CoinbaseWallet:return this.connectToCoinbaseWallet();default:throw new Error(`Invalid provider: ${t}. Must be one of "metamask" or "coinbase_wallet".`)}}isWalletEnabled(t){let r=d("mc_is_wallet_enabled",[{wallet:t}]);return this.request(r)}handleWalletSelected(t){return f(this,null,function*(){try{let r=yield this.connectToThirdPartyWallet(t.wallet);yield k(this.localForageKey,t.wallet),this.createIntermediaryEvent(E.Events.WalletConnected,t.payloadId)(r)}catch(r){console.error(r),this.createIntermediaryEvent(E.Events.WalletRejected,t.payloadId)()}})}autoConnectIfWalletBrowser(t){return f(this,null,function*(){let r;t===E.Wallets.MetaMask&&(r=yield this.getMetaMaskProvider().request({method:"eth_requestAccounts"})),t===E.Wallets.CoinbaseWallet&&(r=yield this.getCoinbaseProvider().request({method:"eth_requestAccounts"})),yield k(this.localForageKey,t);let o=d(E.MagicPayloadMethod.AutoConnect,[{wallet:t,address:r}]);return this.request(o)})}};var ae=require("@magic-sdk/types");var{createBoundEmitterMethod:xe,createChainingEmitterMethod:Y}=oe(),Ne=class extends w{constructor(){super(...arguments);this.isMagic=!0;this.on=Y("on",this);this.once=Y("once",this);this.addListener=Y("addListener",this);this.off=Y("off",this);this.removeListener=Y("removeListener",this);this.removeAllListeners=Y("removeAllListeners",this);this.emit=xe("emit");this.eventNames=xe("eventNames");this.listeners=xe("listeners");this.listenerCount=xe("listenerCount")}sendAsync(t,r){if(!r)throw Ge({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:r===null?"null":typeof r});if(Array.isArray(t))this.overlay.post(ae.MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST,t.map(o=>{let s=K(o);return this.prefixPayloadMethodForTestMode(s),s})).then(o=>{r(null,o.map(s=>de(B({},s.payload),{error:s.hasError?new C(s.payload.error):null})))});else{let o=K(t);this.prefixPayloadMethodForTestMode(o),this.overlay.post(ae.MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST,o).then(s=>{r(s.hasError?new C(s.payload.error):null,s.payload)})}}send(t,r){if(typeof t=="string"){let s=d(t,Array.isArray(r)?r:[]);return this.request(s)}if(Array.isArray(t)||!!r){this.sendAsync(t,r);return}let o=Ke();return o.log(),new D(t).applyError({code:-32603,message:o.rawMessage}).payload}enable(){let t=d(ae.MagicPayloadMethod.Login);return this.request(t)}request(t){return this.prefixPayloadMethodForTestMode(t),super.request(t)}prefixPayloadMethodForTestMode(t){let r="testMode/eth/";this.sdk.testMode&&(t.method=`${r}${t.method}`)}};var Mt=["request","overlay","sdk"];function Vn(n){let e=Object.getPrototypeOf(n),t=[e];for(;e!==w.prototype;)e=Object.getPrototypeOf(e),t.push(e);return t}var $e=class extends w{constructor(){super(void 0);this.__sdk_access_field_descriptors__=new Map;this.__is_initialized__=!1;this.utils={createPromiEvent:j,isPromiEvent:Xe,encodeJSON:ne,decodeJSON:_e,createJsonRpcRequestPayload:d,standardizeJsonRpcRequestPayload:K,storage:z};let t=[this,...Vn(this)];Mt.forEach(r=>{let o=t.map(c=>Object.getOwnPropertyDescriptor(c,r)),s=o.findIndex(c=>!!c),a=s>0,i=o[s];i&&(this.__sdk_access_field_descriptors__.set(r,{descriptor:i,isPrototypeField:a}),Object.defineProperty(this,r,{configurable:!0,get:()=>{throw Fe(r)}}))})}init(t){this.__is_initialized__||(Mt.forEach(r=>{if(this.__sdk_access_field_descriptors__.has(r)){let{descriptor:o,isPrototypeField:s}=this.__sdk_access_field_descriptors__.get(r);s?delete this[r]:Object.defineProperty(this,r,o)}}),this.sdk=t,this.__is_initialized__=!0)}createDeprecationWarning(t){let{method:r,removalVersion:o,useInstead:s}=t,a=s?` Use \`${s}\` instead.`:"",i=`\`${r}\` will be removed from this Extension in version \`${o}\`.${a}`;return new V(this,"DEPRECATION_NOTICE",i)}createWarning(t,r){return new V(this,t,r)}createError(t,r,o){return new G(this,t,r,o)}},Ye=class extends $e{},L=class extends $e{};L.Internal=Ye,L.Anonymous="anonymous extension";var Ae=require("@magic-sdk/types");var Ce=class extends w{purchase(e){let t=d(Ae.MagicPayloadMethod.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=d(Ae.MagicPayloadMethod.NFTCheckout,[e]);return this.request(t)}transfer(e){let t=d(Ae.MagicPayloadMethod.NFTTransfer,[e]);return this.request(t)}};function xt(n){return n.compat&&n.compat[m.sdkName]!=null?typeof n.compat[m.sdkName]=="string"?mt(ht(m.version),n.compat[m.sdkName]):!!n.compat[m.sdkName]:!0}function Hn(n){var o;let e=(o=n==null?void 0:n.extensions)!=null?o:[],t={},r=[];if(Array.isArray(e)?e.forEach(s=>{xt(s)?(s.init(this),(s.name||s.name!==L.Anonymous)&&(this[s.name]=s),s instanceof L.Internal&&(re(s.config)||(t[s.name]=s.config))):r.push(s)}):Object.keys(e).forEach(s=>{if(xt(e[s])){e[s].init(this);let a=e[s];this[s]=a,a instanceof L.Internal&&(re(a.config)||(t[e[s].name]=a.config))}else r.push(e[s])}),r.length)throw Je(r);return t}var le=class{constructor(e,t){this.apiKey=e;var a;if(!e)throw De();m.platform==="react-native"&&(t==null?void 0:t.endpoint)&&je().log();let{defaultEndpoint:r,version:o}=m;this.testMode=!!(t!=null&&t.testMode),this.endpoint=Pe((a=t==null?void 0:t.endpoint)!=null?a:r).origin,this.auth=new Te(this),this.user=new be(this),this.wallet=new Me(this),this.nft=new Ce(this),this.rpcProvider=new Ne(this);let s=Hn.call(this,t);this.parameters=ne(B({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,host:Pe(this.endpoint).host,sdk:ft[m.sdkName],version:o,ext:re(s)?void 0:s,locale:(t==null?void 0:t.locale)||"en_US"},m.bundleId?{bundleId:m.bundleId}:{})),t!=null&&t.deferPreload||this.preload()}get overlay(){if(!le.__overlays__.has(this.parameters)){let e=new m.ViewController(this.endpoint,this.parameters);e.init(),le.__overlays__.set(this.parameters,e)}return le.__overlays__.get(this.parameters)}preload(){return f(this,null,function*(){yield this.overlay.checkIsReadyForRequest})}},ce=le;ce.__overlays__=new Map;var ue=require("@magic-sdk/types");function zn(n,e){return e&&Array.isArray(n)?n.find(t=>t.id===e):n}function Yn(n,e){var o;let t=(o=e.data.response)==null?void 0:o.id,r=zn(n,t);if(t&&r){let s=new D(r).applyResult(e.data.response.result).applyError(e.data.response.error);return{id:t,response:s}}return{}}function Zn(n,e){return f(this,null,function*(){var o;let t=yield $("rt"),r;if(m.platform==="web")try{r=(o=yield $("jwt"))!=null?o:yield ze()}catch(s){console.error("webcrypto error",s)}return r?t?{msgType:n,payload:e,jwt:r,rt:t}:{msgType:n,payload:e,jwt:r}:{msgType:n,payload:e}})}function Qn(n){return f(this,null,function*(){!n.data.rt||(yield k("rt",n.data.rt))})}var Se=class{constructor(e,t){this.endpoint=e;this.parameters=t;this.messageHandlers=new Set;this.isConnectedToInternet=!0;this.checkIsReadyForRequest=this.waitForReady(),this.listen()}post(e,t){return f(this,null,function*(){return ve((r,o)=>f(this,null,function*(){if(!this.isConnectedToInternet){let l=We();o(l)}yield this.checkIsReadyForRequest;let s=[],a=Array.isArray(t)?t.map(l=>l.id):[],i=yield Zn(`${e}-${this.parameters}`,t);yield this._post(i);let c=l=>p=>{let{id:M,response:N}=Yn(t,p);Qn(p),M&&N&&Array.isArray(t)&&a.includes(M)?(s.push(N),s.length===t.length&&(l(),r(s))):M&&N&&!Array.isArray(t)&&M===t.id&&(l(),r(N))},u=this.on(ue.MagicIncomingWindowMessage.MAGIC_HANDLE_RESPONSE,c(()=>u()))}))})}on(e,t){let r=t.bind(window),o=s=>{s.data.msgType===`${e}-${this.parameters}`&&r(s)};return this.messageHandlers.add(o),()=>this.messageHandlers.delete(o)}waitForReady(){return new Promise(e=>{this.on(ue.MagicIncomingWindowMessage.MAGIC_OVERLAY_READY,()=>{e()})})}listen(){this.on(ue.MagicIncomingWindowMessage.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(ue.MagicIncomingWindowMessage.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()})}};
6
6
  //# sourceMappingURL=index.js.map