@quirks/store
Version:
2 lines (1 loc) • 2.78 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@quirks/core"),c=require("./index5.cjs"),r={walletName:void 0,wallet:void 0,status:c.ConnectionStates.DISCONNECTED,setupStatus:c.SetupStates.DEINITIALIZED,connectionError:void 0,connecting:!1,options:{autoSuggestions:!0,autoAccountChange:!0}},u=(o,n)=>({...r,setWallet:async e=>{var t,a,i,s;o(()=>({wallet:e,setupStatus:c.SetupStates.DEINITIALIZED})),e&&((t=n().wallet)==null||t.addListeners(),n().options.autoAccountChange&&((a=n().wallet)==null||a.events.on("keystorechange",()=>{n().getWalletData()})),(i=n().wallet)==null||i.events.on("session_delete",()=>{n().disconnect()}),(s=n().wallet)==null||s.events.on("session_expire",()=>{n().disconnect()}),o(()=>({setupStatus:c.SetupStates.INITIALIZED})),await n().getWalletData())},getWalletData:async()=>{const e=n().wallet;if(e){const t=[];let a="";for(const i of n().chains){const s=await e.getAccount(i.chain_id);s&&(a=s.name,t.push({...s,chainId:i.chain_id,chainName:i.chain_name}))}o({accountName:a,accounts:t})}},suggestChains:async e=>{const t=n().wallets.find(a=>a.options.wallet_name===e);if(t){const a=n().chains.map(i=>({chain:i,name:i.chain_name,assetList:n().assetsLists.find(s=>s.chain_name===i.chain_name)}));return t.suggestChains(a)}},connect:async e=>{try{const t=n().wallets.find(a=>a.options.wallet_name===e);if(!t)throw l.createInvalidWalletName(e);if(o(()=>({walletName:e,status:c.ConnectionStates.DISCONNECTED,connecting:!0})),t.options.connection_type==="wallet_connect"){o({pairingURI:void 0}),await t.init(n().providerOpts);const a=t;a.events.on("display_uri",i=>{o({pairingURI:i}),l.openWCDeeplink(a,n().openDeeplink,a.pairingDeeplinks)}),await a.generateURI({namespaces:n().namespaces})}n().options.autoSuggestions&&await n().suggestChains(e),await t.enable(n().chains.map(a=>a.chain_id)),await n().setWallet(t),o(()=>({status:c.ConnectionStates.CONNECTED}))}catch(t){const a=t instanceof Error?t:new Error(t==="string"?t:JSON.stringify(t));throw o(()=>({connectionError:a,status:c.ConnectionStates.REJECTED})),a}finally{o(()=>({connecting:!1}))}},reconnect:async e=>{try{const t=n().wallets.find(i=>i.options.wallet_name===e);if(!t)throw l.createInvalidWalletName(e);const a=t.options.connection_type==="wallet_connect"?n().providerOpts:void 0;await t.init(a),o(()=>({connecting:!0})),n().options.autoSuggestions&&await n().suggestChains(e),await t.enable(n().chains.map(i=>i.chain_id)),await n().setWallet(t)}catch(t){throw console.error(t),n().disconnect(),t}finally{o(()=>({connecting:!1}))}},disconnect:()=>{var e,t;(e=n().wallet)==null||e.disable(n().chains.map(a=>a.chain_id)),(t=n().wallet)==null||t.removeListeners(),n().reset()}});exports.connectInitialState=r;exports.createConnectSlice=u;