@magic-sdk/provider 21.2.0 → 21.2.1-canary.dbcc5c9.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/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/es/index.js +1 -1
- package/dist/es/index.js.map +2 -2
- package/dist/es/index.mjs +1 -1
- package/dist/es/index.mjs.map +2 -2
- package/package.json +2 -2
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 $(x.SDKErrorCode.IncompatibleExtensions,e)}function Fe(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 $(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 F(x.SDKWarningCode.DuplicateIframe,"Duplicate iframes found.")}function Ge(){return new F(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 Ke(){return new F(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 C(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 F(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 ft=Symbol("Payload pre-processed by Magic SDK");function gt(n){return Object.defineProperty(n,ft,{value:!0,enumerable:!1}),n}function Cn(n){return!!n[ft]}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:[],gt(n)),n}function d(n,e=[]){return gt({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 vt=_t(Rt()),Re=class extends vt.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 Tt=Symbol("isPromiEvent");function Be(n){return!!n[Tt]}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=(u,p)=>(...M)=>{let k=p[u].apply(p,M);return c(k)},c=u=>Object.assign(u,{[Tt]:!0,[o]:u[o]||u.then,[s]:u[s]||u.catch,[a]:u[a]||u.finally,then:i(o,u),catch:i(s,u),finally:i(a,u),on:r("on",u),once:r("once",u),addListener:r("addListener",u),off:r("off",u),removeListener:r("removeListener",u),removeAllListeners:r("removeAllListeners",u),emit:t("emit"),eventNames:t("eventNames"),listeners:t("listeners"),listenerCount:t("listenerCount")}),l=c(e.then(u=>(l.emit("done",u),l.emit("settled"),u),u=>{throw l.emit("error",u),l.emit("settled"),u}));return l}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 A(i.payload.error));else if(i.hasResult)s(i.payload.result);else throw We()}).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:l=[]}=a.result;r.emit(c,...l)}});return r}createIntermediaryEvent(e,t){return o=>{let s=d(H.MagicPayloadMethod.IntermediaryEvent,[{payloadId:t,eventType:e,args:o}]);this.request(s)}}};function Xe(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&&Xe(m.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&C({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={};et(z,{clear:()=>On,getItem:()=>N,iterate:()=>Dn,key:()=>kn,keys:()=>qn,length:()=>_n,removeItem:()=>J,setItem:()=>_});var Ie;function U(n){return(...e)=>f(this,null,function*(){return Ie||(Ie=yield m.configureStorage()),yield Ie.ready(),Ie[n](...e)})}var N=U("getItem"),_=U("setItem"),J=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 N(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(){J(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(){C({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){C({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 Ve(){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",bt="ECDSA",Wn="P-256",Un={name:bt,namedCurve:Wn};function Jn(){J(ie),J(we)}function He(){return f(this,null,function*(){let n=yield Fn();if(!n){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:e}=window.crypto,t=yield N(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:Ve()},o={typ:"dpop+jwt",alg:"ES256",jwk:n},s={protected:It(JSON.stringify(o)),claims:It(JSON.stringify(r))},a=jn(`${s.protected}.${s.claims}`),i={name:bt,hash:{name:"SHA-256"}},c=Xn(new Uint8Array(yield e.sign(i,t,a)));return`${s.protected}.${s.claims}.${c}`})}function Fn(){return f(this,null,function*(){if(!Kn()){console.info("webcrypto is not supported");return}return(yield N(ie))||(yield Gn()),N(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 _(we,e.privateKey),yield _(ie,t)})}function Kn(){let n=typeof window!="undefined"&&!!window.crypto,e=n&&!!window.crypto.subtle;return n&&e}function It(n){return Pt(Bn(n))}function jn(n){return new TextEncoder().encode(n)}function Pt(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)}),Pt(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 l=yield this.autoConnectIfWalletBrowser(E.Wallets.MetaMask);r(l);return}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled(E.Wallets.CoinbaseWallet))){let l=yield this.autoConnectIfWalletBrowser(E.Wallets.CoinbaseWallet);r(l);return}let s=this.getUserEnv(),a=d(E.MagicPayloadMethod.Login,[s]),i=this.request(a);i.on(E.Events.WalletSelected,l=>this.handleWalletSelected(de(B({},l),{payloadId:a.id}))),i.on("id-token-created",l=>{t.emit("id-token-created",l)});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*(){C({method:"wallet.getInfo()",removalVersions:W,useInstead:"user.getInfo()"}).log();let t=yield N(this.localForageKey),r=d(E.MagicPayloadMethod.GetInfo,[{walletType:t}]);return this.request(r)})}disconnect(){C({method:"wallet.disconnect()",removalVersions:W,useInstead:"user.logout()"}).log(),J(this.localForageKey);let t=d(E.MagicPayloadMethod.Disconnect);return this.request(t)}requestUserInfoWithUI(t){C({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 N(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 _(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 _(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 Fe({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 A(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 A(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=Ge();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 wt=["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:Be,encodeJSON:ne,decodeJSON:_e,createJsonRpcRequestPayload:d,standardizeJsonRpcRequestPayload:K,storage:z};let t=[this,...Vn(this)];wt.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 Ue(r)}}))})}init(t){this.__is_initialized__||(wt.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)}},ze=class extends $e{},S=class extends $e{};S.Internal=ze,S.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 Mt(n){return n.compat&&n.compat[m.sdkName]!=null?typeof n.compat[m.sdkName]=="string"?pt(mt(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=>{Mt(s)?(s.init(this),(s.name||s.name!==S.Anonymous)&&(this[s.name]=s),s instanceof S.Internal&&(re(s.config)||(t[s.name]=s.config))):r.push(s)}):Object.keys(e).forEach(s=>{if(Mt(e[s])){e[s].init(this);let a=e[s];this[s]=a,a instanceof S.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)&&Ke().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:Et[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.ready})}},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*(){let t=yield N("rt"),r;if(m.platform==="web")try{r=yield He()}catch(o){console.error("webcrypto error",o)}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 _("rt",n.data.rt))})}var Se=class{constructor(e,t){this.endpoint=e;this.parameters=t;this.messageHandlers=new Set;this.ready=this.waitForReady(),this.listen()}post(e,t){return f(this,null,function*(){return ve(r=>f(this,null,function*(){yield this.ready;let o=[],s=Array.isArray(t)?t.map(l=>l.id):[],a=yield Zn(`${e}-${this.parameters}`,t);yield this._post(a);let i=l=>u=>{let{id:p,response:M}=Yn(t,u);Qn(u),p&&M&&Array.isArray(t)&&s.includes(p)?(o.push(M),o.length===t.length&&(l(),r(o))):p&&M&&!Array.isArray(t)&&p===t.id&&(l(),r(M))},c=this.on(ue.MagicIncomingWindowMessage.MAGIC_HANDLE_RESPONSE,i(()=>c()))}))})}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 F(x.SDKWarningCode.DuplicateIframe,"Duplicate iframes found.")}function Ge(){return new F(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 Ke(){return new F(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 C(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 F(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 ft=Symbol("Payload pre-processed by Magic SDK");function gt(n){return Object.defineProperty(n,ft,{value:!0,enumerable:!1}),n}function Cn(n){return!!n[ft]}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:[],gt(n)),n}function d(n,e=[]){return gt({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 vt=_t(Rt()),Re=class extends vt.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 Tt=Symbol("isPromiEvent");function Be(n){return!!n[Tt]}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=(u,p)=>(...M)=>{let k=p[u].apply(p,M);return c(k)},c=u=>Object.assign(u,{[Tt]:!0,[o]:u[o]||u.then,[s]:u[s]||u.catch,[a]:u[a]||u.finally,then:i(o,u),catch:i(s,u),finally:i(a,u),on:r("on",u),once:r("once",u),addListener:r("addListener",u),off:r("off",u),removeListener:r("removeListener",u),removeAllListeners:r("removeAllListeners",u),emit:t("emit"),eventNames:t("eventNames"),listeners:t("listeners"),listenerCount:t("listenerCount")}),l=c(e.then(u=>(l.emit("done",u),l.emit("settled"),u),u=>{throw l.emit("error",u),l.emit("settled"),u}));return l}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 A(i.payload.error));else if(i.hasResult)s(i.payload.result);else throw We()}).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:l=[]}=a.result;r.emit(c,...l)}});return r}createIntermediaryEvent(e,t){return o=>{let s=d(H.MagicPayloadMethod.IntermediaryEvent,[{payloadId:t,eventType:e,args:o}]);this.request(s)}}};function Xe(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&&Xe(m.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&C({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={};et(z,{clear:()=>On,getItem:()=>N,iterate:()=>Dn,key:()=>kn,keys:()=>qn,length:()=>_n,removeItem:()=>J,setItem:()=>_});var Ie;function U(n){return(...e)=>f(this,null,function*(){return Ie||(Ie=yield m.configureStorage()),yield Ie.ready(),Ie[n](...e)})}var N=U("getItem"),_=U("setItem"),J=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 N(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(){J(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(){C({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){C({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 Ve(){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",bt="ECDSA",Wn="P-256",Un={name:bt,namedCurve:Wn};function Jn(){J(ie),J(we)}function He(){return f(this,null,function*(){let n=yield Fn();if(!n){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:e}=window.crypto,t=yield N(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:Ve()},o={typ:"dpop+jwt",alg:"ES256",jwk:n},s={protected:It(JSON.stringify(o)),claims:It(JSON.stringify(r))},a=jn(`${s.protected}.${s.claims}`),i={name:bt,hash:{name:"SHA-256"}},c=Xn(new Uint8Array(yield e.sign(i,t,a)));return`${s.protected}.${s.claims}.${c}`})}function Fn(){return f(this,null,function*(){if(!Kn()){console.info("webcrypto is not supported");return}return(yield N(ie))||(yield Gn()),N(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 _(we,e.privateKey),yield _(ie,t)})}function Kn(){let n=typeof window!="undefined"&&!!window.crypto,e=n&&!!window.crypto.subtle;return n&&e}function It(n){return Pt(Bn(n))}function jn(n){return new TextEncoder().encode(n)}function Pt(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)}),Pt(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 l=yield this.autoConnectIfWalletBrowser(E.Wallets.MetaMask);r(l);return}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled(E.Wallets.CoinbaseWallet))){let l=yield this.autoConnectIfWalletBrowser(E.Wallets.CoinbaseWallet);r(l);return}let s=this.getUserEnv(),a=d(E.MagicPayloadMethod.Login,[s]),i=this.request(a);i.on(E.Events.WalletSelected,l=>this.handleWalletSelected(de(B({},l),{payloadId:a.id}))),i.on("id-token-created",l=>{t.emit("id-token-created",l)});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*(){C({method:"wallet.getInfo()",removalVersions:W,useInstead:"user.getInfo()"}).log();let t=yield N(this.localForageKey),r=d(E.MagicPayloadMethod.GetInfo,[{walletType:t}]);return this.request(r)})}disconnect(){C({method:"wallet.disconnect()",removalVersions:W,useInstead:"user.logout()"}).log(),J(this.localForageKey);let t=d(E.MagicPayloadMethod.Disconnect);return this.request(t)}requestUserInfoWithUI(t){C({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 N(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 _(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 _(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 Fe({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 A(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 A(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=Ge();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 wt=["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:Be,encodeJSON:ne,decodeJSON:_e,createJsonRpcRequestPayload:d,standardizeJsonRpcRequestPayload:K,storage:z};let t=[this,...Vn(this)];wt.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 Ue(r)}}))})}init(t){this.__is_initialized__||(wt.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)}},ze=class extends $e{},S=class extends $e{};S.Internal=ze,S.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 Mt(n){return n.compat&&n.compat[m.sdkName]!=null?typeof n.compat[m.sdkName]=="string"?pt(mt(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=>{Mt(s)?(s.init(this),(s.name||s.name!==S.Anonymous)&&(this[s.name]=s),s instanceof S.Internal&&(re(s.config)||(t[s.name]=s.config))):r.push(s)}):Object.keys(e).forEach(s=>{if(Mt(e[s])){e[s].init(this);let a=e[s];this[s]=a,a instanceof S.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)&&Ke().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:Et[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.ready})}},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 N("rt"),r;if(m.platform==="web")try{r=(o=yield N("jwt"))!=null?o:yield He()}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 _("rt",n.data.rt))})}var Se=class{constructor(e,t){this.endpoint=e;this.parameters=t;this.messageHandlers=new Set;this.ready=this.waitForReady(),this.listen()}post(e,t){return f(this,null,function*(){return ve(r=>f(this,null,function*(){yield this.ready;let o=[],s=Array.isArray(t)?t.map(l=>l.id):[],a=yield Zn(`${e}-${this.parameters}`,t);yield this._post(a);let i=l=>u=>{let{id:p,response:M}=Yn(t,u);Qn(u),p&&M&&Array.isArray(t)&&s.includes(p)?(o.push(M),o.length===t.length&&(l(),r(o))):p&&M&&!Array.isArray(t)&&p===t.id&&(l(),r(M))},c=this.on(ue.MagicIncomingWindowMessage.MAGIC_HANDLE_RESPONSE,i(()=>c()))}))})}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
|