starknetkit
Version:
<!-- logo --> <p align="center"> <img width='300' src="https://starknetkit-website-git-blo-1541-argentlabs.vercel.app/starknetKit-logo.svg"> </p>
2 lines (1 loc) • 3.8 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("./core-40df00f1.cjs"),r=require("./Modal-0ef58a76.cjs"),l=require("./index-7ba3f4da.cjs");require("starknet");require("./connector-e4ffe813.cjs");const B=require("./argentX.cjs");require("./trpc-23773a5d.cjs");const I=require("./braavosMobile.cjs"),$=require("./keplrMobile.cjs"),D=require("./controllerConnector.cjs"),j=require("./braavos.cjs"),v=require("./fordefi.cjs"),M=require("./keplr.cjs"),W=require("./xverse.cjs"),q=require("./metamask.cjs"),k=require("./lastConnected-2e5632be.cjs");require("./index-3ed0d8c7.cjs");const x=()=>{const e=navigator.userAgent.toLowerCase(),i=/android|webos|iphone|ipad|ipod|blackberry|windows phone/.test(e),u="ontouchstart"in window||navigator.maxTouchPoints>0,g=window.innerWidth<=768;return i&&(u||g)},E=()=>typeof window<"u"?/^((?!chrome|android).)*safari/i.test(navigator.userAgent):!1,F=()=>{const e=[];return e.push(new B.ArgentX),E()||(e.push(new j.Braavos),q.MetaMask.isWalletInjected()&&e.push(new q.MetaMask),v.Fordefi.isWalletInjected()&&e.push(new v.Fordefi),M.Keplr.isWalletInjected()&&e.push(new M.Keplr),W.Xverse.isWalletInjected()&&e.push(new W.Xverse)),e.push(new D.ControllerConnector),x()&&(e.push(new I.BraavosMobileBaseConnector),e.push(new $.KeplrMobileBaseConnector)),e},R=e=>({starknetkitConnectModal:async()=>await b({...e,skipEmit:!0,resultType:void 0})});let o=null;const b=async({modalMode:e="canAsk",storeVersion:i=l.getStoreVersionFromBrowser(),modalTheme:u,dappName:g,resultType:h="wallet",skipEmit:S=!1,...d})=>{const{connectors:s}=d;o=null;const w=!s||s.length===0?F():s;S&&w?.map(t=>{l.isCompoundConnector(t)&&"connector"in t&&"_options"in t.connector&&(t.connector._options.shouldEmit=!1)});const f=localStorage.getItem("starknetLastConnectedWallet");if(e==="neverAsk")try{const t=l.findConnectorById(w,f);let c=null;return t&&h==="wallet"&&(c=await t.connect({onlyQRCode:!0})),{connector:t,wallet:t?.wallet??null,connectorData:c}}catch(t){throw k.removeStarknetLastConnectedWallet(),new Error(t)}const y=await C.main.getAvailableWallets(d);if(e==="canAsk"&&f&&((await C.main.getAuthorizedWallets(d)).find(n=>n.id===f)??y.length===1?y[0]:void 0)){const n=l.findConnectorById(w,f);let a=null;return h==="wallet"&&(a=await n?.connect({onlyQRCode:!0})??null),n&&(o=n),{connector:o,connectorData:a,wallet:n?.wallet??null}}const m=(await C.main.getDiscoveryWallets(d)).map(t=>t.id.toLowerCase()==="argentx"?{...t,name:"Ready Wallet (formerly Argent)"}:t),L=l.mapModalWallets({availableConnectors:w,installedWallets:y,discoveryWallets:m,storeVersion:i,customOrder:s?s?.length>0:!1});return new Promise((t,c)=>{const n=new r.Modal({target:r.getModalTarget(),props:{dappName:g,callback:async(a,A=!1)=>{try{if(!a)throw new Error("Connector error");if(n.$set({selectedWallet:a}),!a.installed){n.$set({layout:r.Layout.download});return}if(o=l.extractConnector(a.connector,A),h==="wallet"){o instanceof l.ArgentMobileBaseConnector?n.$set({layout:r.Layout.qrCode}):n.$set({layout:r.Layout.connecting});const p=await o?.connect({onlyQRCode:!0})??null;o!==null&&k.setStarknetLastConnectedWallet(o.id),t({connector:o,connectorData:p,wallet:o?.wallet??null}),n.$set({layout:r.Layout.success}),setTimeout(()=>n.$destroy(),500)}else t({connector:o,wallet:null,connectorData:null}),n.$destroy()}catch(p){[r.Layout.connecting,r.Layout.qrCode].includes(n.getLayout())?n.$set({layout:r.Layout.loginFailure}):c(p)}},theme:u==="system"?null:u??null,modalWallets:L,discoveryWallets:m,installedWallets:y}})})},X=()=>o?o.wallet:null,z=async(e={})=>(k.removeStarknetLastConnectedWallet(),o&&await o.disconnect(),o=null,C.main.disconnect(e));exports.connect=b;exports.disconnect=z;exports.getSelectedConnectorWallet=X;exports.useStarknetkitConnectModal=R;