UNPKG

@coinmeca/wallet-sdk

Version:
3 lines (2 loc) 11.1 kB
import{C as e}from"./core-DZgYDyNF.js";import{fetchFromProvider as t}from"@ethereumjs/util";import{formatChainId as r,loadStorage as a,openWindow as s,getAppName as n,getFaviconUri as i,parseChainId as o,parse as c}from"./utils.js";import"eventemitter3";import"crypto-js";import"ethereum-cryptography/utils";const h=d;function d(e,t){const r=w();return(d=function(e,t){return r[e-=369]})(e,t)}!function(){const e=d,t=w();for(;;)try{if(683399===parseInt(e(404))/1+-parseInt(e(416))/2+parseInt(e(447))/3+-parseInt(e(434))/4+-parseInt(e(464))/5+parseInt(e(454))/6+parseInt(e(379))/7)break;t.push(t.shift())}catch(e){t.push(t.shift())}}();class l extends e{#e=h(419);#t;#r=new Map;constructor(e){const t=h;super();const r=typeof window!==t(431)?window[t(457)]?.[t(483)]:void 0,a=r?.initDataUnsafe?.[t(486)],s=!(!r||!a?.id)?r?.[t(425)]:localStorage,{chainId:n,rpcUrls:i,nativeCurrency:o}=e?.[t(437)]||{};n&&i&&i[t(449)]&&o&&o?.[t(388)]&&this.#a(e?.[t(437)]);window.addEventListener(t(402),(e=>{const r=t;if(e[r(370)]!==s||!e[r(372)])return;const{key:a,newValue:n}=e,i=c(n);switch(a){case this.#e+":address":this.#s(i);break;case this.#e+":chain":this.#a(i[r(393)]);break;case this.#e+r(391):this.#a(i)}}));const d=new CustomEvent("eip6963:announceProvider",{detail:{info:{name:"Coinmeca Wallet",icon:t(442),uuid:crypto[t(467)](),rdns:t(400)},provider:this}});window[t(438)](d),window[t(441)](t(378),(()=>window.dispatchEvent(d))),window.addEventListener(t(374),this.#n[t(479)](this)),window[t(412)]={...window.ethereum,providers:[...window?.[t(412)]?.[t(473)]?.[t(376)]((e=>e?.[t(423)]))||[],this],providerMap:new Map([...window[t(412)]?.providerMap||[],["CoinmecaWallet",this]])},Object[t(384)](this)}get#i(){const e=h;return typeof window!==e(431)?window[e(457)]?.[e(483)]:void 0}get#o(){const e=h,t=this.#i?.[e(481)]?.[e(486)];return!(!this.#i||!t?.id)}get[h(423)](){return!0}get[h(460)](){const e=h;return this.#c({storage:sessionStorage})?.get("address")||this.#c()?.[e(450)](e(460))}get chain(){const e=h;return this.#c()?.[e(450)]("chain")}get[h(393)](){const e=h;return r(this[e(437)]?.[e(393)])||e(470)}async[h(411)](){return this[h(460)]}async[h(458)](){const e=h;return await this.#h[e(456)](e(373),[this[e(460)],"latest"])}#c(e){const t=h,r=a(this.#e,e?.[t(402)]||(this.#o?this.#i?.[t(425)]:localStorage),!e?.[t(402)]&&this.#o,e?.[t(401)]);return Object.freeze(r)}#s(e){const t=h;this.#c({storage:sessionStorage})?.[t(377)](t(460),e),this.#c()?.[t(377)](t(460),e)}#a(e){const t=h;"object"==typeof e&&(this.#c()?.[t(377)](t(437),e),e=e?.[t(393)]),typeof window!==t(431)&&(window[t(412)][t(393)]=r(e)),this.#c({storage:sessionStorage})?.[t(377)](t(393),e),this.#c()?.[t(377)](t(393),e)}#d(e,t=h(474),r){const a=h,n=crypto.randomUUID(),i={target:a(369),id:n,strategy:t,request:e,time:Math.floor((new Date).getTime()/1e3)};let o;if(t===a(474))o=this.#t?this.#t:this.#t=s("https://wallet.coinmeca.net/request/"+e?.method,r);else if("proxy"===t){const t=document[a(415)]("iframe");Object[a(482)](t.style,{position:a(484),display:a(476),bottom:"0",left:"0",width:"0",height:"0",margin:"0",padding:"0",opacity:"0",zIndex:"-100",border:a(476),pointerEvents:a(476)}),t[a(445)]=(a(399)||window[a(433)].origin)+"/proxy/request/"+e?.[a(414)],t.id=a(418)+n,document.body[a(471)](t),o=t[a(387)]}const c=e=>{const t=a;e?.[t(468)]?.[t(435)]===t(369)&&e?.[t(468)]?.state===t(394)&&(o.postMessage(i,t(399)||window.location.origin),window.removeEventListener("message",c))};return window[a(441)]("message",c),{id:n,portal:o,strategy:t}}async#l(e,t){const r=h,a={method:e,params:t?.[r(386)],chainId:this[r(437)]?.[r(393)],app:{url:window[r(433)][r(385)],name:n(),logo:await i()}},s=t?.[r(383)],o=t?.strategy||r(474);return new Promise((async(e,t)=>{const n=r,{portal:i,id:c}=this.#d(a,o,s);if(this.#r[n(377)](c,{method:a[n(414)],resolve:e,reject:t}),i&&o===n(474)){const e=setInterval((()=>{const r=n;(!i||i?.[r(380)])&&(this.#t=void 0,clearInterval(e),this.#r.size&&(this.#r[r(451)]((({method:e,reject:t},a)=>{const s=r;try{t(new Error("Request '"+e+s(390)))}catch(t){console[s(392)](s(413)+e+"':",t)}})),this.#r[r(436)](),t(new Error("User closed the window before approving the request."))))}),100)}this.#r.set(c,{method:a.method,resolve:e,reject:t})}))}#n(e){const t=h,{target:r,id:a,result:s,error:n,close:i}=e.data,o=this.#r[t(450)](a)?.resolve,c=this.#r[t(450)](a)?.[t(395)];r===t(369)&&a&&this.#r[t(448)](a)&&(typeof s!==t(431)&&o&&o(e.data[t(444)]),typeof n!==t(431)&&(c&&c(new Error(e[t(468)][t(392)])),i&&1===this.#r[t(383)]?this.#t=void 0:new Error(e[t(468)][t(392)])),this.#r[t(462)](a))}#h={wallet:async(e,t)=>{const r=h,a=t?.params?.[r(468)];return a&&a?.[r(463)]("0x095ea7b3")?await this.#l(r(420),t):await this.#l(e,t)},rpc:async(e,r)=>{const a=h,s=this[a(437)]?.[a(446)]?.[0];if(!s)return new Error(a(406));const n=await t(s,{method:e,params:r});if(n[a(468)].error)throw new Error(a(429)+n[a(468)][a(392)].message);return n.data[a(444)]}};async[h(475)]({method:e,params:t}){const r=h;switch(e){case r(422):return this[r(460)];case r(405):return this[r(393)];case"net_version":return o(this[r(393)]);case r(459):if(Array[r(407)](t)?!t?.[r(449)]:!t)throw new Error("No transaction parameters provided");return await this.#h.rpc(e,t);case r(469):return await this.#h.rpc(e,[this[r(460)],r(397)]);case"eth_getCode":return await this.#h[r(456)](e,[(t?.[0]||t)?.[r(460)],r(397)]);case r(443):return await this.#h[r(426)](e,{strategy:"proxy"});case r(410):return await this.#h[r(426)](e).then((e=>{if(e)return this.#s(e?.[0]),e}));case r(373):return await this[r(458)]();case r(472):throw new Error("'eth_sign' is depreacted request method. Please request again with 'personal_sign' or 'eth_signTypedData'.");case r(461):if(!t||!t.length)throw new Error("The given parameter is incorrect.");return await this.#h[r(426)](e,{params:t})[r(432)]((e=>{if(e)return e}));case r(487):case"eth_signTypedData_v4":case r(427):if(!t||!t?.[r(449)])throw new Error(r(396));return await this.#h.wallet(r(371),{params:t})[r(432)]((e=>{if(e)return e}));case r(421):throw new Error(r(480));case r(381):if(Array.isArray(t)?!t?.[r(449)]:!t)throw new Error(r(409));return await this.#h[r(426)](e,{params:t?.[0]||t})[r(432)]((e=>{if(e)return e}));case r(453):if(Array.isArray(t)?!t?.[r(449)]:!t)throw new Error(r(382));return await this.#h[r(426)](e,{params:t?.[0]||t})[r(432)]((e=>{if(e)return this.#a(e),e}));case"wallet_switchEthereumChain":if(Array[r(407)](t)?!t?.length:!t)throw new Error(r(478));if((t?.[0]||t)?.[r(393)]===this[r(437)]?.chainId)return;return await this.#h[r(426)](e,{params:t?.[0]||t}).then((e=>{if(e)return this.#a(e),e}));case r(424):if(Array[r(407)](t)?!t?.length:!t)throw new Error(r(465));return await this.#h.wallet(e,{params:t?.[0]||t})[r(432)]((e=>{if(e)return e}));case r(452):case r(375):return await this.#h[r(456)](e,t);case"eth_uninstallFilter":if(Array.isArray(t)?!t?.[r(449)]:!t)throw new Error("No filter ID provided");return await this.#h.rpc(e,t);case r(428):if(Array[r(407)](t)?!t?.[r(449)]:!t)throw new Error("No address or position provided");return await this.#h[r(456)](e,t);case r(398):case r(440):case r(430):case r(477):case r(417):case r(389):return await this.#h.rpc(e);case r(455):case r(408):throw new Error(e+r(485));default:throw new Error(r(439)+e+r(403))}}}function w(){const e=["wallet","eth_signTypedData_v5","eth_getStorageAt","RPC Error: ","eth_protocolVersion","undefined","then","location","4026028GmCNtf","target","clear","chain","dispatchEvent","Method '","eth_gasPrice","addEventListener","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFT0lEQVR4AbVWBWxbVxQ975ND3+GkzBBORmVmZqYxB8bMvBXGaQdWmSHpmJkXLDMF1YBaq3O5Z35WubYbPNKR7E/vwrmAqsLeeF3okeavTSlvOsJW3CYxa39is7I9XcJP7xkaePrAjIDyg0/5Z9kXB3x0/F//ydxuhqGuUG5ujyryX23bYNxxaL3SnrMQwBRonCwUjhSCoxTBqarg/T6C74ULftdDcM+L6mH7j8b8438Y8agp/sJf1h2WrTN/UtMdr6E7RyKE7aAzCIIWgKqTylnK3/JaiADjFHCaLzg/HtzxmuJw5Bozy7bBRHWQZZRH/aRtynsdz7IfYhgBX2oQBFAl6k42U8DpAeDnw8GKb5S849uNKFQF/+j/3bBc2VoyAw+zJVpQh0oANaJFgDcY4PsJYPEqpfREiX4DvGGN0/M56o7S/niUoWhM4cXrqlJxsq0GzmwHFq9WSugpErawMvNxy4G8G/AKrWhKnD28LijOGpGeAFZ8q+RW/AUrLkdySNnMeLGcJuKueriqqgwMDGTjxo0l5W957aqRkOn4fAToyDdm4mKMb1UQn+SX4wgQYyhgePyIj48PR4wYwYyMDBYWFvLo0aMuFhQUcN26dRw2bBgtFotXTUw3wZ1vKI7j5Rel4trWRfMD1HepioYeX27atCkzMzN56tQpesLJkyddxjVs6OU7Kjg/ATzyu2GDxHWT7WFhTTYe1sQ4AprHw7Ozs1kVnDlzhqmpqV5LdJofuO9V7RALzVBETq6crJuZFKK9+7BZLNJztwdJjyXl73PX5s2bRz8/P696iFPB73oJHs+1ToE5rugjYbxOIMjtw8OHD3cdcjH27dvHlJQUxsbGMi4ujsnJydy9ezfT09OvejjOdsx3IwXtS/xt8Bm9K0to9xAw3Kpdiuti7N27lzExMRTiQqXI3yEhITQMo2oNysn7fQUPPu2fBWPs5nKhjifcdDxZXlLhF4f93nvvrXVfUJ2cqgkW3GyWQZ+afxraMHe1L2tcltnFKpdhr5PuKKfo3uFBzrPv8GxAo0aN6s0AOcr3dAt3nv3IpjJYJhJQ3KZANpyLUyDFJ4SodQomC5X7k5qXQ5uzLQsByVUWoawAKUIAl4gwNDS0yiI0nEyBweK2iVnQ1++1oclMQgl2+7BsvbL7XW6ELL1zZZiWluYqw7lz51apDOVSM0uYrGw++kMYWwumYEAGoUV76v+yvdZpI2oHg+uVKDpavDEZsNtDldezDyFgktdWnJOTw6rgrE48Hq5BcCRCudFy12G2+zEMEvofu21ITCe0xlcdRtJjT5CpkprxNowi4MfX0YNF/hnzcQ5G+d4o8dpfDlgnEcL7OJatWaZENqjLx7G8520ca1DZH7H8WZ3nOBJcEI+LoW3eMxNDVhCWa+tlIREQbIUWfAPPc49l10xcgYqdVuXrTXmIn03orep0JQOEa8e8EY/wN217XhnKTLiDYS+OUlbklaDti3VohKAVzTgAj3OlsqN0u3E8Ct6glx+4QVmRW+qKhM+1bjRRdQoYtCKeHfEq31J3leTqJ25AVSBFqXyzOQ9DVxCBk89Wh1aNwzXXemeKsUxQVvAp36Lcr03peXVQts2UwnRVR1I6YU4i9GhCCTobFcVJcZbyt0GIINdmpTkPNtX3mOSf50gNqZy5JKTCiprCqCyI13/fNV+ZmX1YDMwgms0irMmEz0TCGEahS4538h4qljdoWDMZ3nTToWvbHrTd1M4ehbqCaS8OM7YWTdY/3feh/ta2LOcULdfvzD+tT99w2jJhS5nvmN1ZzvXO1mhq5ZQOM+yhqCL+B+AWe5nrKa3ZAAAAAElFTkSuQmCC","eth_accounts","result","src","rpcUrls","382989NNPLYZ","has","length","get","forEach","eth_newFilter","wallet_addEthereumChain","1189206LLwERh","eth_subscribe","rpc","Telegram","balance","eth_estimateGas","address","personal_sign","delete","startsWith","2049015nSGKXj","No asset information provided","origin","randomUUID","data","eth_getTransactionCount","0x1","appendChild","eth_sign","providers","popup","request","none","eth_syncing","No chainId provided","bind","'eth_signTransaction' is depreacted request method.","initDataUnsafe","assign","WebApp","absolute"," is not supported. Subscription methods are not available in this wallet","user","eth_signTypedData_v3","coinmeca-wallet","storageArea","eth_signTypedData","newValue","eth_getBalance","message","eth_filterChanges","filter","set","eip6963:requestProvider","16188634QTtDfK","closed","eth_sendTransaction","No chain information provided","size","freeze","host","params","contentWindow","decimals","eth_hashrate","' was rejected.",":chainId","error","chainId","ready","reject","The given parameter is incorrect.","latest","eth_blockNumber","https://wallet.coinmeca.net","net.coinmeca.wallet","key","storage","' not supported","36325IqPNzP","eth_chainId","Provider URL was not setup yet.","isArray","eth_unsubscribe","No transaction parameters provided","eth_requestAccounts","getAddress","ethereum","Error rejecting '","method","createElement","1150284tbtcPr","eth_mining","coinmeca-wallet-proxy-","coinmeca:wallet","erc20_approve","eth_signTransaction","eth_coinbase","isCoinmecaWallet","wallet_watchAsset","CloudStorage"];return(w=function(){return e})()}export{l as CoinmecaWalletAdapter}; //# sourceMappingURL=adapter.js.map