@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/es/index.mjs
CHANGED
|
@@ -2,5 +2,5 @@ var xt=Object.create;var re=Object.defineProperty,Nt=Object.defineProperties,$t=
|
|
|
2
2
|
- Extension \`${t.name}\` supports version(s) \`${r}\``:r||(e+=`
|
|
3
3
|
- Extension \`${t.name}\` does not support ${m.platform} environments.`)}),new N(X.IncompatibleExtensions,e)}function at(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 N(X.InvalidArgument,`Invalid ${e(n.argument)} argument given to \`${n.procedure}\`.
|
|
4
4
|
Expected: \`${n.expected}\`
|
|
5
|
-
Received: \`${n.received}\``)}function Rr(){return new j(de.DuplicateIframe,"Duplicate iframes found.")}function ct(){return new j(de.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 lt(){return new j(de.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 L(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(de.DeprecationNotice,a)}import{MagicPayloadMethod as x,DeviceVerificationEventEmit as yt,LoginWithEmailOTPEventEmit as he}from"@magic-sdk/types";import{MagicOutgoingWindowMessage as _n,MagicIncomingWindowMessage as kn,MagicPayloadMethod as qn}from"@magic-sdk/types";function*An(){let n=0;for(;;)n<Number.MAX_SAFE_INTEGER?yield++n:n=0}var Cn=An();function Ne(){return Cn.next().value}var ut=Symbol("Payload pre-processed by Magic SDK");function dt(n){return Object.defineProperty(n,ut,{value:!0,enumerable:!1}),n}function Sn(n){return!!n[ut]}function F(n){var e,t,r;return Sn(n)||(n.jsonrpc=(e=n.jsonrpc)!=null?e:"2.0",n.id=Ne(),n.method=(t=n.method)!=null?t:"noop",n.params=(r=n.params)!=null?r:[],dt(n)),n}function d(n,e=[]){return dt({params:e,method:n,jsonrpc:"2.0",id:Ne()})}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):et(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 ht=qt(mt()),Ae=class extends ht.default{};function me(){let n=new Ae;return{emitter:n,createChainingEmitterMethod:(r,o)=>(...s)=>(n[r].apply(n,s),o),createBoundEmitterMethod:r=>(...o)=>n[r].apply(n,o)}}var Et=Symbol("isPromiEvent");function ft(n){return!!n[Et]}function V(n){let e=Ce(n),{createBoundEmitterMethod:t,createChainingEmitterMethod:r}=me(),o=Symbol("Promise.then"),s=Symbol("Promise.catch"),a=Symbol("Promise.finally"),i=(u,p)=>(...P)=>{let k=p[u].apply(p,P);return c(k)},c=u=>Object.assign(u,{[Et]:!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 Ce(n){return new Promise((e,t)=>{let r=n(e,t);Promise.resolve(r).catch(t)})}var b=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){let t=this.overlay.post(_n.MAGIC_HANDLE_REQUEST,F(e)),r=V((s,a)=>{t.then(i=>{if(o(),i.hasError)a(new S(i.payload.error));else if(i.hasResult)s(i.payload.result);else throw st()}).catch(i=>{o(),a(i)})}),o=this.overlay.on(kn.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(qn.IntermediaryEvent,[{payloadId:t,eventType:e,args:o}]);this.request(s)}}};function gt(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"},Ee=class extends b{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&>(m.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&L({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?x.LoginWithMagicLinkTestMode:x.LoginWithMagicLink,[{email:r,showUI:o,redirectURI:s,overrides:a}]);return this.request(i)}loginWithSMS(e){let{phoneNumber:t}=e,r=d(this.sdk.testMode?x.LoginWithSmsTestMode:x.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?x.LoginWithEmailOTPTestMode:x.LoginWithEmailOTP,[{email:t,showUI:r,deviceCheckUI:o,overrides:s}]),i=this.request(a);return!o&&i&&i.on(yt.Retry,()=>{this.createIntermediaryEvent(yt.Retry,a.id)()}),!r&&i&&(i.on(he.VerifyEmailOtp,c=>{this.createIntermediaryEvent(he.VerifyEmailOtp,a.id)(c)}),i.on(he.Cancel,()=>{this.createIntermediaryEvent(he.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?x.LoginWithCredentialTestMode:x.LoginWithCredential,[t]);return this.request(r)}setAuthorizationToken(e){let t=d(x.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:r=!0}=e,o=d(this.sdk.testMode?x.UpdateEmailTestMode:x.UpdateEmail,[{email:t,showUI:r}]);return this.request(o)}};import{MagicPayloadMethod as g}from"@magic-sdk/types";var te={};_t(te,{clear:()=>Dn,getItem:()=>w,iterate:()=>Fn,key:()=>Un,keys:()=>Jn,length:()=>Wn,removeItem:()=>J,setItem:()=>O});var fe;function U(n){return(...e)=>E(this,null,function*(){return fe||(fe=yield m.configureStorage()),yield fe.ready(),fe[n](...e)})}var w=U("getItem"),O=U("setItem"),J=U("removeItem"),Dn=U("clear"),Wn=U("length"),Un=U("key"),Jn=U("keys"),Fn=U("iterate");var ge=class extends b{constructor(){super(...arguments);this.localForageKey="mc_active_wallet"}getIdToken(t){let r=d(this.sdk.testMode?g.GetIdTokenTestMode:g.GetIdToken,[t]);return this.request(r)}generateIdToken(t){let r=d(this.sdk.testMode?g.GenerateIdTokenTestMode:g.GenerateIdToken,[t]);return this.request(r)}getInfo(){return E(this,null,function*(){let t=yield w(this.localForageKey),r=d(g.GetInfo,[{walletType:t}]);return this.request(r)})}isLoggedIn(){let t=d(this.sdk.testMode?g.IsLoggedInTestMode:g.IsLoggedIn);return this.request(t)}logout(){J(this.localForageKey);let t=d(this.sdk.testMode?g.LogoutTestMode:g.Logout);return this.request(t)}requestInfoWithUI(t){let r=d(g.RequestUserInfoWithUI,t?[t]:[]);return this.request(r)}showSettings(t){let r=d(this.sdk.testMode?g.UserSettingsTestMode:g.UserSettings,[t]);return this.request(r)}recoverAccount(t){let r=d(this.sdk.testMode?g.RecoverAccountTestMode:g.RecoverAccount,[t]);return this.request(r)}getMetadata(){L({method:"user.getMetadata()",removalVersions:W,useInstead:"user.getInfo()"}).log();let t=d(this.sdk.testMode?g.GetMetadataTestMode:g.GetMetadata);return this.request(t)}updateEmail(t){L({method:"user.updateEmail()",removalVersions:W,useInstead:"auth.updateEmailWithUI()"}).log();let{email:r,showUI:o=!0}=t,s=d(this.sdk.testMode?g.UpdateEmailTestMode:g.UpdateEmail,[{email:r,showUI:o}]);return this.request(s)}};import{Events as Oe,MagicPayloadMethod as M,Wallets as $}from"@magic-sdk/types";function Se(n,e){return e?new URL(n,e):new URL(n)}function Rt(){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 Le="STORE_KEY_PRIVATE_KEY",ye="STORE_KEY_PUBLIC_JWK",Tt="ECDSA",Gn="P-256",Kn={name:Tt,namedCurve:Gn};function ys(){J(ye),J(Le)}function It(){return E(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 w(Le);if(!t||!e){console.info("unable to find private key or webcrypto unsupported");return}let r={iat:Math.floor(new Date().getTime()/1e3),jti:Rt()},o={typ:"dpop+jwt",alg:"ES256",jwk:n},s={protected:vt(JSON.stringify(o)),claims:vt(JSON.stringify(r))},a=Vn(`${s.protected}.${s.claims}`),i={name:Tt,hash:{name:"SHA-256"}},c=zn(new Uint8Array(yield e.sign(i,t,a)));return`${s.protected}.${s.claims}.${c}`})}function jn(){return E(this,null,function*(){if(!Xn()){console.info("webcrypto is not supported");return}return(yield w(ye))||(yield Bn()),w(ye)})}function Bn(){return E(this,null,function*(){let{subtle:n}=window.crypto,e=yield n.generateKey(Kn,!1,["sign"]),t=yield n.exportKey("jwk",e.publicKey);yield O(Le,e.privateKey),yield O(ye,t)})}function Xn(){let n=typeof window!="undefined"&&!!window.crypto,e=n&&!!window.crypto.subtle;return n&&e}function vt(n){return bt(Hn(n))}function Vn(n){return new TextEncoder().encode(n)}function bt(n){return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function Hn(n){return encodeURIComponent(n).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}function zn(n){let e="";return n.forEach(t=>{e+=String.fromCharCode(t)}),bt(e)}var Re=class extends b{constructor(){super(...arguments);this.localForageKey="mc_active_wallet"}connectWithUI(){let t=V((r,o)=>E(this,null,function*(){try{if(this.isMetaMaskBrowser()&&(yield this.isWalletEnabled($.MetaMask))){let l=yield this.autoConnectIfWalletBrowser($.MetaMask);r(l);return}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled($.CoinbaseWallet))){let l=yield this.autoConnectIfWalletBrowser($.CoinbaseWallet);r(l);return}let s=this.getUserEnv(),a=d(M.Login,[s]),i=this.request(a);i.on(Oe.WalletSelected,l=>this.handleWalletSelected(se(G({},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(M.ShowUI))}showAddress(){return this.request(d(M.ShowAddress))}showSendTokensUI(){return this.request(d(M.ShowSendTokensUI))}showOnRamp(){return this.request(d(M.ShowOnRamp))}showNFTs(){return this.request(d(M.ShowNFTs))}showBalances(){return this.request(d(M.ShowBalances))}sendGaslessTransaction(t,r){return this.request(d(M.SendGaslessTransaction,[t,r]))}getInfo(){return E(this,null,function*(){L({method:"wallet.getInfo()",removalVersions:W,useInstead:"user.getInfo()"}).log();let t=yield w(this.localForageKey),r=d(M.GetInfo,[{walletType:t}]);return this.request(r)})}disconnect(){L({method:"wallet.disconnect()",removalVersions:W,useInstead:"user.logout()"}).log(),J(this.localForageKey);let t=d(M.Disconnect);return this.request(t)}requestUserInfoWithUI(t){L({method:"wallet.requestUserInfoWithUI()",removalVersions:W,useInstead:"user.requestUserInfoWithUI()"}).log();let r=d(M.RequestUserInfoWithUI,t?[t]:[]);return this.request(r)}getProvider(){return E(this,null,function*(){switch(yield w(this.localForageKey)){case $.MetaMask:return this.getMetaMaskProvider();case $.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 $.MetaMask:return this.connectToMetaMask();case $.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 E(this,null,function*(){try{let r=yield this.connectToThirdPartyWallet(t.wallet);yield O(this.localForageKey,t.wallet),this.createIntermediaryEvent(Oe.WalletConnected,t.payloadId)(r)}catch(r){console.error(r),this.createIntermediaryEvent(Oe.WalletRejected,t.payloadId)()}})}autoConnectIfWalletBrowser(t){return E(this,null,function*(){let r;t===$.MetaMask&&(r=yield this.getMetaMaskProvider().request({method:"eth_requestAccounts"})),t===$.CoinbaseWallet&&(r=yield this.getCoinbaseProvider().request({method:"eth_requestAccounts"})),yield O(this.localForageKey,t);let o=d(M.AutoConnect,[{wallet:t,address:r}]);return this.request(o)})}};import{MagicOutgoingWindowMessage as Pt,MagicPayloadMethod as Yn}from"@magic-sdk/types";var{createBoundEmitterMethod:ve,createChainingEmitterMethod:H}=me(),Te=class extends b{constructor(){super(...arguments);this.isMagic=!0;this.on=H("on",this);this.once=H("once",this);this.addListener=H("addListener",this);this.off=H("off",this);this.removeListener=H("removeListener",this);this.removeAllListeners=H("removeAllListeners",this);this.emit=ve("emit");this.eventNames=ve("eventNames");this.listeners=ve("listeners");this.listenerCount=ve("listenerCount")}sendAsync(t,r){if(!r)throw at({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:r===null?"null":typeof r});if(Array.isArray(t))this.overlay.post(Pt.MAGIC_HANDLE_REQUEST,t.map(o=>{let s=F(o);return this.prefixPayloadMethodForTestMode(s),s})).then(o=>{r(null,o.map(s=>se(G({},s.payload),{error:s.hasError?new S(s.payload.error):null})))});else{let o=F(t);this.prefixPayloadMethodForTestMode(o),this.overlay.post(Pt.MAGIC_HANDLE_REQUEST,o).then(s=>{r(s.hasError?new S(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=ct();return o.log(),new D(t).applyError({code:-32603,message:o.rawMessage}).payload}enable(){let t=d(Yn.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 Zn(n){let e=Object.getPrototypeOf(n),t=[e];for(;e!==b.prototype;)e=Object.getPrototypeOf(e),t.push(e);return t}var Ie=class extends b{constructor(){super(void 0);this.__sdk_access_field_descriptors__=new Map;this.__is_initialized__=!1;this.utils={createPromiEvent:V,isPromiEvent:ft,encodeJSON:ce,decodeJSON:Qe,createJsonRpcRequestPayload:d,standardizeJsonRpcRequestPayload:F,storage:te};let t=[this,...Zn(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 ot(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 Q(this,"DEPRECATION_NOTICE",i)}createWarning(t,r){return new Q(this,t,r)}createError(t,r,o){return new B(this,t,r,o)}},_e=class extends Ie{},_=class extends Ie{};_.Internal=_e,_.Anonymous="anonymous extension";import{MagicPayloadMethod as ke}from"@magic-sdk/types";var be=class extends b{purchase(e){let t=d(ke.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=d(ke.NFTCheckout,[e]);return this.request(t)}transfer(e){let t=d(ke.NFTTransfer,[e]);return this.request(t)}};function Mt(n){return n.compat&&n.compat[m.sdkName]!=null?typeof n.compat[m.sdkName]=="string"?Ye(Ze(m.version),n.compat[m.sdkName]):!!n.compat[m.sdkName]:!0}function Qn(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!==_.Anonymous)&&(this[s.name]=s),s instanceof _.Internal&&(ue(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 _.Internal&&(ue(a.config)||(t[e[s].name]=a.config))}else r.push(e[s])}),r.length)throw it(r);return t}var ne=class{constructor(e,t){this.apiKey=e;var a;if(!e)throw rt();m.platform==="react-native"&&(t==null?void 0:t.endpoint)&<().log();let{defaultEndpoint:r,version:o}=m;this.testMode=!!(t!=null&&t.testMode),this.endpoint=Se((a=t==null?void 0:t.endpoint)!=null?a:r).origin,this.auth=new Ee(this),this.user=new ge(this),this.wallet=new Re(this),this.nft=new be(this),this.rpcProvider=new Te(this);let s=Qn.call(this,t);this.parameters=ce(G({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,host:Se(this.endpoint).host,sdk:nt[m.sdkName],version:o,ext:ue(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(!ne.__overlays__.has(this.parameters)){let e=new m.ViewController(this.endpoint,this.parameters);e.init(),ne.__overlays__.set(this.parameters,e)}return ne.__overlays__.get(this.parameters)}preload(){return E(this,null,function*(){yield this.overlay.ready})}},Pe=ne;Pe.__overlays__=new Map;import{MagicIncomingWindowMessage as we}from"@magic-sdk/types";function er(n,e){return e&&Array.isArray(n)?n.find(t=>t.id===e):n}function tr(n,e){var o;let t=(o=e.data.response)==null?void 0:o.id,r=er(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 nr(n,e){return E(this,null,function*(){let t=yield w("rt"),r;if(m.platform==="web")try{r=yield It()}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 rr(n){return E(this,null,function*(){!n.data.rt||(yield O("rt",n.data.rt))})}var qe=class{constructor(e,t){this.endpoint=e;this.parameters=t;this.messageHandlers=new Set;this.ready=this.waitForReady(),this.listen()}post(e,t){return E(this,null,function*(){return Ce(r=>E(this,null,function*(){yield this.ready;let o=[],s=Array.isArray(t)?t.map(l=>l.id):[],a=yield nr(`${e}-${this.parameters}`,t);yield this._post(a);let i=l=>u=>{let{id:p,response:P}=tr(t,u);rr(u),p&&P&&Array.isArray(t)&&s.includes(p)?(o.push(P),o.length===t.length&&(l(),r(o))):p&&P&&!Array.isArray(t)&&p===t.id&&(l(),r(P))},c=this.on(we.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(we.MAGIC_OVERLAY_READY,()=>e())})}listen(){this.on(we.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(we.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()})}};export{_ as Extension,B as MagicExtensionError,Q as MagicExtensionWarning,S as MagicRPCError,N as MagicSDKError,j as MagicSDKWarning,Pe as SDKBase,Le as STORE_KEY_PRIVATE_KEY,ye as STORE_KEY_PUBLIC_JWK,Ae as TypedEmitter,qe as ViewController,ys as clearKeys,L as createDeprecationWarning,Rr as createDuplicateIframeWarning,ot as createExtensionNotInitializedError,it as createIncompatibleExtensionsError,at as createInvalidArgumentError,It as createJwt,st as createMalformedResponseError,rt as createMissingApiKeyError,yr as createModalNotReadyError,V as createPromiEvent,Ce as createPromise,lt as createReactNativeEndpointConfigurationWarning,Nn as createSDK,ct as createSynchronousWeb3MethodWarning,me as createTypedEmitter,Se as createURL,Qe as decodeJSON,ce as encodeJSON,Ne as getPayloadId,ue as isEmpty,tt as isJsonRpcErrorCode,ur as isJsonRpcRequestPayload,et as isJsonRpcResponsePayload,dr as isMagicPayloadMethod,gt as isMajorVersionAtLeast,ft as isPromiEvent,te as storage,Rt as uuid};
|
|
5
|
+
Received: \`${n.received}\``)}function Rr(){return new j(de.DuplicateIframe,"Duplicate iframes found.")}function ct(){return new j(de.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 lt(){return new j(de.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 L(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(de.DeprecationNotice,a)}import{MagicPayloadMethod as x,DeviceVerificationEventEmit as yt,LoginWithEmailOTPEventEmit as he}from"@magic-sdk/types";import{MagicOutgoingWindowMessage as _n,MagicIncomingWindowMessage as kn,MagicPayloadMethod as qn}from"@magic-sdk/types";function*An(){let n=0;for(;;)n<Number.MAX_SAFE_INTEGER?yield++n:n=0}var Cn=An();function Ne(){return Cn.next().value}var ut=Symbol("Payload pre-processed by Magic SDK");function dt(n){return Object.defineProperty(n,ut,{value:!0,enumerable:!1}),n}function Sn(n){return!!n[ut]}function F(n){var e,t,r;return Sn(n)||(n.jsonrpc=(e=n.jsonrpc)!=null?e:"2.0",n.id=Ne(),n.method=(t=n.method)!=null?t:"noop",n.params=(r=n.params)!=null?r:[],dt(n)),n}function d(n,e=[]){return dt({params:e,method:n,jsonrpc:"2.0",id:Ne()})}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):et(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 ht=qt(mt()),Ae=class extends ht.default{};function me(){let n=new Ae;return{emitter:n,createChainingEmitterMethod:(r,o)=>(...s)=>(n[r].apply(n,s),o),createBoundEmitterMethod:r=>(...o)=>n[r].apply(n,o)}}var Et=Symbol("isPromiEvent");function ft(n){return!!n[Et]}function V(n){let e=Ce(n),{createBoundEmitterMethod:t,createChainingEmitterMethod:r}=me(),o=Symbol("Promise.then"),s=Symbol("Promise.catch"),a=Symbol("Promise.finally"),i=(u,p)=>(...P)=>{let k=p[u].apply(p,P);return c(k)},c=u=>Object.assign(u,{[Et]:!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 Ce(n){return new Promise((e,t)=>{let r=n(e,t);Promise.resolve(r).catch(t)})}var b=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){let t=this.overlay.post(_n.MAGIC_HANDLE_REQUEST,F(e)),r=V((s,a)=>{t.then(i=>{if(o(),i.hasError)a(new S(i.payload.error));else if(i.hasResult)s(i.payload.result);else throw st()}).catch(i=>{o(),a(i)})}),o=this.overlay.on(kn.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(qn.IntermediaryEvent,[{payloadId:t,eventType:e,args:o}]);this.request(s)}}};function gt(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"},Ee=class extends b{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&>(m.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&L({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?x.LoginWithMagicLinkTestMode:x.LoginWithMagicLink,[{email:r,showUI:o,redirectURI:s,overrides:a}]);return this.request(i)}loginWithSMS(e){let{phoneNumber:t}=e,r=d(this.sdk.testMode?x.LoginWithSmsTestMode:x.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?x.LoginWithEmailOTPTestMode:x.LoginWithEmailOTP,[{email:t,showUI:r,deviceCheckUI:o,overrides:s}]),i=this.request(a);return!o&&i&&i.on(yt.Retry,()=>{this.createIntermediaryEvent(yt.Retry,a.id)()}),!r&&i&&(i.on(he.VerifyEmailOtp,c=>{this.createIntermediaryEvent(he.VerifyEmailOtp,a.id)(c)}),i.on(he.Cancel,()=>{this.createIntermediaryEvent(he.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?x.LoginWithCredentialTestMode:x.LoginWithCredential,[t]);return this.request(r)}setAuthorizationToken(e){let t=d(x.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:r=!0}=e,o=d(this.sdk.testMode?x.UpdateEmailTestMode:x.UpdateEmail,[{email:t,showUI:r}]);return this.request(o)}};import{MagicPayloadMethod as g}from"@magic-sdk/types";var te={};_t(te,{clear:()=>Dn,getItem:()=>w,iterate:()=>Fn,key:()=>Un,keys:()=>Jn,length:()=>Wn,removeItem:()=>J,setItem:()=>O});var fe;function U(n){return(...e)=>E(this,null,function*(){return fe||(fe=yield m.configureStorage()),yield fe.ready(),fe[n](...e)})}var w=U("getItem"),O=U("setItem"),J=U("removeItem"),Dn=U("clear"),Wn=U("length"),Un=U("key"),Jn=U("keys"),Fn=U("iterate");var ge=class extends b{constructor(){super(...arguments);this.localForageKey="mc_active_wallet"}getIdToken(t){let r=d(this.sdk.testMode?g.GetIdTokenTestMode:g.GetIdToken,[t]);return this.request(r)}generateIdToken(t){let r=d(this.sdk.testMode?g.GenerateIdTokenTestMode:g.GenerateIdToken,[t]);return this.request(r)}getInfo(){return E(this,null,function*(){let t=yield w(this.localForageKey),r=d(g.GetInfo,[{walletType:t}]);return this.request(r)})}isLoggedIn(){let t=d(this.sdk.testMode?g.IsLoggedInTestMode:g.IsLoggedIn);return this.request(t)}logout(){J(this.localForageKey);let t=d(this.sdk.testMode?g.LogoutTestMode:g.Logout);return this.request(t)}requestInfoWithUI(t){let r=d(g.RequestUserInfoWithUI,t?[t]:[]);return this.request(r)}showSettings(t){let r=d(this.sdk.testMode?g.UserSettingsTestMode:g.UserSettings,[t]);return this.request(r)}recoverAccount(t){let r=d(this.sdk.testMode?g.RecoverAccountTestMode:g.RecoverAccount,[t]);return this.request(r)}getMetadata(){L({method:"user.getMetadata()",removalVersions:W,useInstead:"user.getInfo()"}).log();let t=d(this.sdk.testMode?g.GetMetadataTestMode:g.GetMetadata);return this.request(t)}updateEmail(t){L({method:"user.updateEmail()",removalVersions:W,useInstead:"auth.updateEmailWithUI()"}).log();let{email:r,showUI:o=!0}=t,s=d(this.sdk.testMode?g.UpdateEmailTestMode:g.UpdateEmail,[{email:r,showUI:o}]);return this.request(s)}};import{Events as Oe,MagicPayloadMethod as M,Wallets as $}from"@magic-sdk/types";function Se(n,e){return e?new URL(n,e):new URL(n)}function Rt(){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 Le="STORE_KEY_PRIVATE_KEY",ye="STORE_KEY_PUBLIC_JWK",Tt="ECDSA",Gn="P-256",Kn={name:Tt,namedCurve:Gn};function ys(){J(ye),J(Le)}function It(){return E(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 w(Le);if(!t||!e){console.info("unable to find private key or webcrypto unsupported");return}let r={iat:Math.floor(new Date().getTime()/1e3),jti:Rt()},o={typ:"dpop+jwt",alg:"ES256",jwk:n},s={protected:vt(JSON.stringify(o)),claims:vt(JSON.stringify(r))},a=Vn(`${s.protected}.${s.claims}`),i={name:Tt,hash:{name:"SHA-256"}},c=zn(new Uint8Array(yield e.sign(i,t,a)));return`${s.protected}.${s.claims}.${c}`})}function jn(){return E(this,null,function*(){if(!Xn()){console.info("webcrypto is not supported");return}return(yield w(ye))||(yield Bn()),w(ye)})}function Bn(){return E(this,null,function*(){let{subtle:n}=window.crypto,e=yield n.generateKey(Kn,!1,["sign"]),t=yield n.exportKey("jwk",e.publicKey);yield O(Le,e.privateKey),yield O(ye,t)})}function Xn(){let n=typeof window!="undefined"&&!!window.crypto,e=n&&!!window.crypto.subtle;return n&&e}function vt(n){return bt(Hn(n))}function Vn(n){return new TextEncoder().encode(n)}function bt(n){return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function Hn(n){return encodeURIComponent(n).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}function zn(n){let e="";return n.forEach(t=>{e+=String.fromCharCode(t)}),bt(e)}var Re=class extends b{constructor(){super(...arguments);this.localForageKey="mc_active_wallet"}connectWithUI(){let t=V((r,o)=>E(this,null,function*(){try{if(this.isMetaMaskBrowser()&&(yield this.isWalletEnabled($.MetaMask))){let l=yield this.autoConnectIfWalletBrowser($.MetaMask);r(l);return}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled($.CoinbaseWallet))){let l=yield this.autoConnectIfWalletBrowser($.CoinbaseWallet);r(l);return}let s=this.getUserEnv(),a=d(M.Login,[s]),i=this.request(a);i.on(Oe.WalletSelected,l=>this.handleWalletSelected(se(G({},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(M.ShowUI))}showAddress(){return this.request(d(M.ShowAddress))}showSendTokensUI(){return this.request(d(M.ShowSendTokensUI))}showOnRamp(){return this.request(d(M.ShowOnRamp))}showNFTs(){return this.request(d(M.ShowNFTs))}showBalances(){return this.request(d(M.ShowBalances))}sendGaslessTransaction(t,r){return this.request(d(M.SendGaslessTransaction,[t,r]))}getInfo(){return E(this,null,function*(){L({method:"wallet.getInfo()",removalVersions:W,useInstead:"user.getInfo()"}).log();let t=yield w(this.localForageKey),r=d(M.GetInfo,[{walletType:t}]);return this.request(r)})}disconnect(){L({method:"wallet.disconnect()",removalVersions:W,useInstead:"user.logout()"}).log(),J(this.localForageKey);let t=d(M.Disconnect);return this.request(t)}requestUserInfoWithUI(t){L({method:"wallet.requestUserInfoWithUI()",removalVersions:W,useInstead:"user.requestUserInfoWithUI()"}).log();let r=d(M.RequestUserInfoWithUI,t?[t]:[]);return this.request(r)}getProvider(){return E(this,null,function*(){switch(yield w(this.localForageKey)){case $.MetaMask:return this.getMetaMaskProvider();case $.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 $.MetaMask:return this.connectToMetaMask();case $.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 E(this,null,function*(){try{let r=yield this.connectToThirdPartyWallet(t.wallet);yield O(this.localForageKey,t.wallet),this.createIntermediaryEvent(Oe.WalletConnected,t.payloadId)(r)}catch(r){console.error(r),this.createIntermediaryEvent(Oe.WalletRejected,t.payloadId)()}})}autoConnectIfWalletBrowser(t){return E(this,null,function*(){let r;t===$.MetaMask&&(r=yield this.getMetaMaskProvider().request({method:"eth_requestAccounts"})),t===$.CoinbaseWallet&&(r=yield this.getCoinbaseProvider().request({method:"eth_requestAccounts"})),yield O(this.localForageKey,t);let o=d(M.AutoConnect,[{wallet:t,address:r}]);return this.request(o)})}};import{MagicOutgoingWindowMessage as Pt,MagicPayloadMethod as Yn}from"@magic-sdk/types";var{createBoundEmitterMethod:ve,createChainingEmitterMethod:H}=me(),Te=class extends b{constructor(){super(...arguments);this.isMagic=!0;this.on=H("on",this);this.once=H("once",this);this.addListener=H("addListener",this);this.off=H("off",this);this.removeListener=H("removeListener",this);this.removeAllListeners=H("removeAllListeners",this);this.emit=ve("emit");this.eventNames=ve("eventNames");this.listeners=ve("listeners");this.listenerCount=ve("listenerCount")}sendAsync(t,r){if(!r)throw at({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:r===null?"null":typeof r});if(Array.isArray(t))this.overlay.post(Pt.MAGIC_HANDLE_REQUEST,t.map(o=>{let s=F(o);return this.prefixPayloadMethodForTestMode(s),s})).then(o=>{r(null,o.map(s=>se(G({},s.payload),{error:s.hasError?new S(s.payload.error):null})))});else{let o=F(t);this.prefixPayloadMethodForTestMode(o),this.overlay.post(Pt.MAGIC_HANDLE_REQUEST,o).then(s=>{r(s.hasError?new S(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=ct();return o.log(),new D(t).applyError({code:-32603,message:o.rawMessage}).payload}enable(){let t=d(Yn.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 Zn(n){let e=Object.getPrototypeOf(n),t=[e];for(;e!==b.prototype;)e=Object.getPrototypeOf(e),t.push(e);return t}var Ie=class extends b{constructor(){super(void 0);this.__sdk_access_field_descriptors__=new Map;this.__is_initialized__=!1;this.utils={createPromiEvent:V,isPromiEvent:ft,encodeJSON:ce,decodeJSON:Qe,createJsonRpcRequestPayload:d,standardizeJsonRpcRequestPayload:F,storage:te};let t=[this,...Zn(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 ot(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 Q(this,"DEPRECATION_NOTICE",i)}createWarning(t,r){return new Q(this,t,r)}createError(t,r,o){return new B(this,t,r,o)}},_e=class extends Ie{},_=class extends Ie{};_.Internal=_e,_.Anonymous="anonymous extension";import{MagicPayloadMethod as ke}from"@magic-sdk/types";var be=class extends b{purchase(e){let t=d(ke.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=d(ke.NFTCheckout,[e]);return this.request(t)}transfer(e){let t=d(ke.NFTTransfer,[e]);return this.request(t)}};function Mt(n){return n.compat&&n.compat[m.sdkName]!=null?typeof n.compat[m.sdkName]=="string"?Ye(Ze(m.version),n.compat[m.sdkName]):!!n.compat[m.sdkName]:!0}function Qn(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!==_.Anonymous)&&(this[s.name]=s),s instanceof _.Internal&&(ue(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 _.Internal&&(ue(a.config)||(t[e[s].name]=a.config))}else r.push(e[s])}),r.length)throw it(r);return t}var ne=class{constructor(e,t){this.apiKey=e;var a;if(!e)throw rt();m.platform==="react-native"&&(t==null?void 0:t.endpoint)&<().log();let{defaultEndpoint:r,version:o}=m;this.testMode=!!(t!=null&&t.testMode),this.endpoint=Se((a=t==null?void 0:t.endpoint)!=null?a:r).origin,this.auth=new Ee(this),this.user=new ge(this),this.wallet=new Re(this),this.nft=new be(this),this.rpcProvider=new Te(this);let s=Qn.call(this,t);this.parameters=ce(G({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,host:Se(this.endpoint).host,sdk:nt[m.sdkName],version:o,ext:ue(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(!ne.__overlays__.has(this.parameters)){let e=new m.ViewController(this.endpoint,this.parameters);e.init(),ne.__overlays__.set(this.parameters,e)}return ne.__overlays__.get(this.parameters)}preload(){return E(this,null,function*(){yield this.overlay.ready})}},Pe=ne;Pe.__overlays__=new Map;import{MagicIncomingWindowMessage as we}from"@magic-sdk/types";function er(n,e){return e&&Array.isArray(n)?n.find(t=>t.id===e):n}function tr(n,e){var o;let t=(o=e.data.response)==null?void 0:o.id,r=er(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 nr(n,e){return E(this,null,function*(){var o;let t=yield w("rt"),r;if(m.platform==="web")try{r=(o=yield w("jwt"))!=null?o:yield It()}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 rr(n){return E(this,null,function*(){!n.data.rt||(yield O("rt",n.data.rt))})}var qe=class{constructor(e,t){this.endpoint=e;this.parameters=t;this.messageHandlers=new Set;this.ready=this.waitForReady(),this.listen()}post(e,t){return E(this,null,function*(){return Ce(r=>E(this,null,function*(){yield this.ready;let o=[],s=Array.isArray(t)?t.map(l=>l.id):[],a=yield nr(`${e}-${this.parameters}`,t);yield this._post(a);let i=l=>u=>{let{id:p,response:P}=tr(t,u);rr(u),p&&P&&Array.isArray(t)&&s.includes(p)?(o.push(P),o.length===t.length&&(l(),r(o))):p&&P&&!Array.isArray(t)&&p===t.id&&(l(),r(P))},c=this.on(we.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(we.MAGIC_OVERLAY_READY,()=>e())})}listen(){this.on(we.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(we.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()})}};export{_ as Extension,B as MagicExtensionError,Q as MagicExtensionWarning,S as MagicRPCError,N as MagicSDKError,j as MagicSDKWarning,Pe as SDKBase,Le as STORE_KEY_PRIVATE_KEY,ye as STORE_KEY_PUBLIC_JWK,Ae as TypedEmitter,qe as ViewController,ys as clearKeys,L as createDeprecationWarning,Rr as createDuplicateIframeWarning,ot as createExtensionNotInitializedError,it as createIncompatibleExtensionsError,at as createInvalidArgumentError,It as createJwt,st as createMalformedResponseError,rt as createMissingApiKeyError,yr as createModalNotReadyError,V as createPromiEvent,Ce as createPromise,lt as createReactNativeEndpointConfigurationWarning,Nn as createSDK,ct as createSynchronousWeb3MethodWarning,me as createTypedEmitter,Se as createURL,Qe as decodeJSON,ce as encodeJSON,Ne as getPayloadId,ue as isEmpty,tt as isJsonRpcErrorCode,ur as isJsonRpcRequestPayload,et as isJsonRpcResponsePayload,dr as isMagicPayloadMethod,gt as isMajorVersionAtLeast,ft as isPromiEvent,te as storage,Rt as uuid};
|
|
6
6
|
//# sourceMappingURL=index.mjs.map
|