@rango-dev/wallets-react 0.0.0-experimental-487dd292-20260929 → 0.0.0-experimental-13ba3b9f-20260930

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.
@@ -1,10 +1,8 @@
1
1
  import type { UseAdapterParams } from './useHubAdapter.js';
2
2
  import type { Hub, Provider, WalletType } from '@hub3js/core';
3
- import { type WalletEventEmitter } from '../events.js';
4
3
  export declare function autoConnect(deps: {
5
4
  getHub: () => Hub;
6
5
  allBlockChains: UseAdapterParams['allBlockChains'];
7
6
  wallets?: (WalletType | Provider)[];
8
- emitter: WalletEventEmitter;
9
7
  }): Promise<void>;
10
8
  //# sourceMappingURL=autoConnect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autoConnect.d.ts","sourceRoot":"","sources":["../../src/hub/autoConnect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM9D,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,cAAc,CAAC;AA0MtB,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,MAAM,EAAE,MAAM,GAAG,CAAC;IAClB,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;IACpC,OAAO,EAAE,kBAAkB,CAAC;CAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,CA8EhB"}
1
+ {"version":3,"file":"autoConnect.d.ts","sourceRoot":"","sources":["../../src/hub/autoConnect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAiL9D,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,MAAM,EAAE,MAAM,GAAG,CAAC;IAClB,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;CACrC,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DhB"}
@@ -1,3 +1,2 @@
1
1
  export declare const HUB_LAST_CONNECTED_WALLETS = "hub-v1-last-connected-wallets";
2
- export declare const WALLET_DETECTED_SKIPPED_IDS: string[];
3
2
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/hub/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B,kCAAkC,CAAC;AAG1E,eAAO,MAAM,2BAA2B,EAAE,MAAM,EAO/C,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/hub/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,kCAAkC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useHubAdapter.d.ts","sourceRoot":"","sources":["../../src/hub/useHubAdapter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AAqCzD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG;IAChE,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,CAugBvE"}
1
+ {"version":3,"file":"useHubAdapter.d.ts","sourceRoot":"","sources":["../../src/hub/useHubAdapter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AA6BzD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG;IAChE,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,CAydvE"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,5 @@
1
1
  export { default as Provider } from './provider.js';
2
2
  export { useWallets } from './hooks.js';
3
3
  export type * from './types.js';
4
- export { WalletEventChannel, WalletEventTypes } from './events.js';
5
- export type { Emitter, WalletConnectedEventPayload, WalletConnectFailedEventPayload, WalletConnectInitiatedEventPayload, WalletConnectOrigin, WalletDetectedEventPayload, WalletDisconnectedEventPayload, WalletEventData, WalletEvents, } from './events.js';
6
4
  export * from './legacy/types.js';
7
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnE,YAAY,EACV,OAAO,EACP,2BAA2B,EAC3B,+BAA+B,EAC/B,kCAAkC,EAClC,mBAAmB,EACnB,0BAA0B,EAC1B,8BAA8B,EAC9B,eAAe,EACf,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,mBAAmB,YAAY,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var he=Object.defineProperty;var o=(e,t)=>he(e,"name",{value:t,configurable:!0});import Je from"react";import{createContext as Ee}from"react";var A="Context hasn't been initialized yet.",ye={async connect(){throw new Error(A)},async disconnect(){throw new Error(A)},async disconnectAll(){throw new Error(A)},async suggestAndConnect(){throw new Error(A)},state(){throw new Error(A)},canSwitchNetworkTo(){throw new Error(A)},getWalletInfo(){throw new Error(A)},getSigners(){throw new Error(A)},hubProvider(){throw new Error(A)}},O=Ee(ye);import{convertEvmBlockchainMetaToEvmChainInfo as xe,formatAddressWithNetwork as be,getBlockChainNameFromId as Se,getSupportedChainsFromProvider as Le}from"@rango-dev/internal-blockchains";import{AccountId as De}from"caip";import{isEvmBlockchain as _e}from"rango-types";var B=(m=>(m.CONNECTED="connected",m.CONNECTING="connecting",m.REACHABLE="reachable",m.INSTALLED="installed",m.ACCOUNTS="accounts",m.NETWORK="network",m.NAMESPACE_DISCONNECTED="namespace_disconnected",m.PROVIDER_DISCONNECTED="provider_disconnected",m))(B||{});import{WalletTypes as b}from"@rango-dev/provider-all";var P="hub-v1-last-connected-wallets",X=[b.LEDGER,b.TREZOR,b.LEDGER_WALLET,b.WALLET_CONNECT_2,b.TON_CONNECT,b.DEFAULT];import{CAIP_BITCOIN_CHAIN_ID as ve,CAIP_BITCOINCASH_CHAIN_ID as we,CAIP_DOGECOIN_CHAIN_ID as Ne,CAIP_LITECOIN_CHAIN_ID as ge,CAIP_ZCASH_CHAIN_ID as Pe}from"@hub3js/bip122";import{CAIP_TRON_CHAIN_ID as Te}from"@hub3js/tron";import{CAIP_NAMESPACE as ke}from"@hub3js/tvm";import{formatAddressWithNetwork as Ae}from"@rango-dev/internal-blockchains";import{AccountId as We}from"caip";import{Err as U,Ok as Z}from"ts-results";function Ie(e){return typeof e=="string"?e:["solana","xrpl","stellar"].includes(e.namespace.toLowerCase())?e.namespace.toUpperCase():e.namespace.toLowerCase()==="eip155"?"ETH":e.reference===ve?"BTC":e.reference===Pe?"ZCASH":e.reference===ge?"LTC":e.reference===Ne?"DOGE":e.reference===we?"BCH":e.namespace.toLowerCase()===ke?"TON":e.namespace==="sui"||e.reference===Te?e.reference.toUpperCase():e.namespace==="starknet"?e.namespace.toUpperCase():e.reference}o(Ie,"mapCaipNamespaceToLegacyNetworkName");function L(e){let{chainId:t,address:n}=We.parse(e),l=Ie(t);return Ae(n,l)}o(L,"fromAccountIdToLegacyAddressFormat");async function q(e){return e.reduce(async(t,n)=>{let l=await t;try{let s=await n();return[...l,new Z(s)]}catch(s){return[...l,new U(s)]}},Promise.resolve([]))}o(q,"runSequentiallyWithoutFailure");function J(e){return typeof e=="object"&&!Array.isArray(e)}o(J,"isConnectResultEvm");function ee(e){return Array.isArray(e)}o(ee,"isConnectResultSolana");function te(e){let t=new Set,n=[],l=o((u,d)=>{n=n.filter(m=>m.key!==u?!0:(m.resolve(d),!1))},"removeKeyFromQueue"),s=o(async()=>{let u=n.find(f=>!t.has(f.key));if(!u)return;let{task:d,resolve:m,key:w}=u;t.add(w);try{let f=await d();m(new Z(f))}catch(f){e?.onError&&e.onError(f,{removeCurrentKeyFromQueue:()=>l(w,new U(f))}),m(new U(f))}finally{let f=n.findIndex(a=>a.key===w);f>=0&&n.splice(f,1),t.delete(w),s()}},"processQueue");return o(async(u,d)=>new Promise(m=>{n.push({task:u,resolve:m,key:d}),s()}),"queueTask")}o(te,"createQueue");function ne(e){return!!e.allBlockChains?.length&&!!e.autoConnect}o(ne,"shouldTryAutoConnect");var I=class{static{o(this,"Persistor")}getItem(t){let n=localStorage.getItem(t);return n?JSON.parse(n):null}setItem(t,n){localStorage.setItem(t,JSON.stringify(n))}removeItem(t){localStorage.removeItem(t)}};var W=class{static{o(this,"LastConnectedWalletsFromStorage")}#e;constructor(t){this.#e=t}addWallet(t,n){if(this.#e===P)return this.#t(t,n);throw new Error("Not implemented")}removeWallets(t){if(this.#e===P)return this.#n(t);throw new Error("Not implemented")}list(){if(this.#e===P)return this.#o();throw new Error("Not implemented")}removeNamespacesFromWallet(t,n){if(this.#e===P)return this.#r(t,n);throw new Error("Not implemented")}#o(){return new I().getItem(P)||{}}#t(t,n){let l=new I,s=l.getItem(this.#e)||{},C=n;if(s[t]){let u=s[t];C=u.concat(n.filter(d=>!u.some(m=>m.namespace===d.namespace)))}l.setItem(this.#e,{...s,[t]:C})}#n(t){let n=new I,l=n.getItem(this.#e)||{};if(!t){n.setItem(this.#e,{});return}t.forEach(s=>{l[s]&&delete l[s]}),n.setItem(this.#e,l)}#r(t,n){let u=(new I().getItem(this.#e)||{})[t]?.filter(d=>!n.includes(d.namespace));this.#n([t]),u?.length>0&&this.#t(t,u)}};function K(e,t){return e.find(n=>n.id===t)}o(K,"findProviderByType");var Oe=new W(P);function oe(e,t,n,l){let s=e.get(t.provider);if(!s)throw new Error("Currently all the events have assigned to a provider. The event doesn't include one.",{cause:t});let C=t.namespace,u=C?s.findByNamespace(C):void 0,d=null,m=null,w;if(u){let[i]=u.state();d=i().accounts,m=i().network,l.lastConnectAttemptParams[t.provider]&&(w=l.lastConnectAttemptParams[t.provider].find(p=>p.namespace===C)?.derivationPath)}let[f]=s.state(),a={connected:f().connected,connecting:f().connecting,installed:f().installed,accounts:d,network:m,reachable:!0,derivationPath:w},r=s.info()?.metadata.properties?.find(i=>i.name==="details"),c={supportedBlockchains:Le(s,l.allBlockChains),isContractWallet:r?.value?.isContractWallet??!1,isHub:!0,namespace:C};switch(t.type){case"provider_detected":n(t.provider,"installed",!0,a,c);break;case"provider_connecting":n(t.provider,"connecting",t.value,a,c);break;case"provider_connected":n(t.provider,"connected",!0,a,c);break;case"provider_disconnected":n(t.provider,"provider_disconnected",t.provider,a,c),n(t.provider,"connected",!1,a,c),n(t.provider,"accounts",null,a,c);break;case"namespace_disconnected":Oe.removeNamespacesFromWallet(t.provider,[t.namespace]),n(t.provider,"namespace_disconnected",t.namespace,a,{...c,namespace:t.namespace});break;case"namespace_connected":case"namespace_account_switched":{t.type==="namespace_account_switched"&&n(t.provider,"namespace_disconnected",t.namespace,a,c);let i=[];c.isContractWallet?i=t.accounts.map(p=>{let{chainId:E,address:N}=De.parse(p);if(typeof E=="string")throw new Error("Should be in CAIP format");let y=Se(E.reference,c.supportedBlockchains);return y?be(N,y):L(p)}):i=t.accounts.map(p=>L(p)),n(t.provider,"accounts",i,a,{...c,namespace:t.namespace})}break;case"namespace_network_switched":n(t.provider,"network",t.network,a,{...c,namespace:t.namespace});break}}o(oe,"mapHubEventsToLegacy");function $(e,t){if(!e.network)return;let n=t.filter(_e);return xe(n)[e.network]}o($,"convertNamespaceNetworkToEvmChainId");function re(e,t){return $(e,t)||e.network}o(re,"tryConvertNamespaceNetworkToChainInfo");function R(e){return J(e)?{accounts:e.accounts,network:e.network}:ee(e)?{accounts:e,network:null}:{accounts:[e],network:null}}o(R,"transformHubResultToLegacyResult");function ae(e,t){let n=e.getAll();t.filter(s=>!n.get(s.id)).forEach(s=>{e.add(s.id,s),s.init()}),n.forEach(s=>{t.some(u=>u.id===s.id)||e.remove(s.id)})}o(ae,"synchronizeHubWithConfigProviders");function se(e){return e.namespaceId==="Solana"}o(se,"isSolanaNamespace");function F(e){return e.namespaceId==="EVM"}o(F,"isEvmNamespace");function ce(e){return e.namespaceId==="UTXO"}o(ce,"isUtxoNamespace");import{utils as Ye}from"@hub3js/evm";import{getSupportedChainsFromNamespace as Qe,getSupportedChainsFromProvider as Ve}from"@rango-dev/internal-blockchains";import{useEffect as Y,useRef as Q,useState as ze}from"react";import{Ok as Xe,Result as Ze}from"ts-results";import{getBlockChainNameFromId as Be}from"@rango-dev/internal-blockchains";var T="walletEvent",H=(C=>(C.WALLET_DETECTED="walletDetected",C.WALLET_CONNECT_INITIATED="walletConnectInitiated",C.WALLET_CONNECTED="walletConnected",C.WALLET_CONNECT_FAILED="walletConnectFailed",C.WALLET_DISCONNECTED="walletDisconnected",C))(H||{}),ie=new Set;function le(e,t){ie.has(t)||X.includes(t)||(ie.add(t),e.emit(T,{type:"walletDetected",payload:{walletName:t}}))}o(le,"emitWalletDetectedOnce");function j(e,t){return e?Be(e,t||[]):null}o(j,"toBlockchainName");import{debug as Re}from"@rango-dev/logging-core";function pe(e,t,n){let l=n instanceof Error?n:new Error(String(n));Re(l,{context:{method:e,args:t},tags:{type:"wallet-error"}})}o(pe,"logError");function Fe(e,t){return(...n)=>{try{let l=t(...n);return l instanceof Promise?l.catch(s=>{throw pe(e,n,s),s}):l}catch(l){throw pe(e,n,l),l}}}o(Fe,"withErrorLogging");function ue(e){let t=Object.entries(e).map(([n,l])=>[n,Fe(n,l.bind(e))]);return Object.fromEntries(t)}o(ue,"withErrorLoggingApi");import{Result as He}from"ts-results";function G(e,t){return{walletName:e,namespace:t.namespace,chain:t.network||null,origin:"auto"}}o(G,"autoConnectEventPayload");function je(e){return e.namespace==="EVM"}o(je,"isEvmNamespaceInput");var M=new W(P);async function Me(e,t,n){let{getHub:l,allBlockChains:s,emitter:C}=n,u=l().get(e);if(!u)throw new Error(`You should add ${e} to provider first then call 'connect'.`);if(!t)throw new Error("Passing namespace to `connect` is required. ");let d=[];t.forEach(r=>{let c=r.namespace,i=u.findByNamespace(c);if(!i)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${r.namespace})`);d.push([r,i])});let m=d.map(([r,c])=>{let p=(je(r)?$(r,s||[]):void 0)||r.network;return async()=>{let E;F(c)?E=o(async()=>c.connect(p),"connectNamespacePromise"):E=o(async()=>c.connect(),"connectNamespacePromise");let N=G(e,r);try{let y=await E();C.emit(T,{type:"walletConnected",payload:{...N,chain:j(R(y).network,s)}})}catch(y){throw C.emit(T,{type:"walletConnectFailed",payload:N}),y instanceof Error?y:new Error(y)}}}),w=await q(m),f=d.filter((r,c)=>w[c].err).map(r=>r[0]);if(f.length>0&&M.removeNamespacesFromWallet(e,f.map(r=>r.namespace)),!w.some(r=>r.ok))throw new Error(`No namespace connected for ${e}`);return He.all(...w.filter(r=>r.ok)).unwrap()}o(Me,"eagerConnect");async function Ue(e,t){let n=[],l=[],s=[],C=[];e.forEach(d=>{let m=t.findByNamespace(d.namespace);m?(n.push(d),C.push(async()=>await m.canEagerConnect())):s.push(d)});let u=await q(C);return n.forEach((d,m)=>{u[m].ok&&u[m].val?l.push(d):s.push(d)}),{successNamespaces:l,failedNamespaces:s}}o(Ue,"tryRunCanEagerConnect");async function me(e){let{getHub:t,allBlockChains:n,wallets:l,emitter:s}=e,C=M.list(),u=Object.keys(C),d=[];if(u.length){let m=[],w=l?.map(f=>typeof f=="string"?f:f.id);u.forEach(async f=>{if(w&&!w.includes(f)){console.warn("Trying to run auto connect for a wallet which is not included in config. Desired wallet:",f),d.push(f);return}let a=t().get(f),r=C[f].map(p=>({namespace:p.namespace,network:p.network}));if(!r.length||!a){d.push(f);return}r.forEach(p=>{s.emit(T,{type:"walletConnectInitiated",payload:G(f,p)})});let{successNamespaces:c,failedNamespaces:i}=await Ue(r,a);if(i.forEach(p=>{s.emit(T,{type:"walletConnectFailed",payload:G(f,p)})}),c.length)i.length&&M.removeNamespacesFromWallet(a.id,i.map(p=>p.namespace));else{d.push(f);return}m.push(Me(f,c,{allBlockChains:n,getHub:t,emitter:s}).catch(p=>console.warn(p)))}),M.removeWallets(d),await Promise.all(m)}}o(me,"autoConnect");import{useEffect as qe,useRef as Ke}from"react";function de(e){let t=Ke(!1);qe(()=>{ne(e)&&!t.current&&(t.current=!0,e.autoConnectHandler())},[e.autoConnect,e.allBlockChains])}o(de,"useAutoConnect");import{createStore as $e,Hub as Ge}from"@hub3js/core";import{useRef as fe}from"react";function Ce(e){let t=fe(null),n=fe(null);function l(){let u=new Ge({store:s()});return e.forEach(d=>{u.add(d.id,d)}),n.current=u,u}o(l,"createHub");function s(){if(t.current!==null)return t.current;let u=$e();return t.current=u,u}o(s,"getStore");function C(){let u=n.current?.getAll();return!n.current||!u?l():(ae(n.current,e),n.current)}return o(C,"getHub"),{getStore:s,getHub:C}}o(Ce,"useHubRefs");function V(e){let{getStore:t,getHub:n}=Ce(e.providers),[,l]=ze(0),s=Q({onUpdateState:e.onUpdateState,allBlockChains:e.allBlockChains,emitter:e.emitter}),C=Q(!1),u=Q({}),d=o((a,r)=>{u.current[a]=r||[]},"updateLastConnectAttemptParams"),m=te({onError:(a,r)=>{Ye.isUserRejectionError(a)&&r.removeCurrentKeyFromQueue()}});Y(()=>{s.current={onUpdateState:e.onUpdateState,allBlockChains:e.allBlockChains,emitter:e.emitter}},[e]),Y(()=>{let a=o((c,i,p,E,N)=>{i==="installed"&&E.installed&&le(s.current.emitter,c),s.current.onUpdateState?.(c,i,p,E,N)},"onUpdateState"),r=o(c=>{try{oe(n(),c,a,{allBlockChains:s.current.allBlockChains,lastConnectAttemptParams:u.current})}catch(i){console.error(i)}l(i=>i+1)},"onStoreEvent");t().subscribe(r).flushEvents()},[]),Y(()=>{C.current||!e.allBlockChains?.length||(n().init(e.configs?.walletOptions),l(a=>a+1),C.current=!0)},[e.allBlockChains,e.configs?.walletOptions]),de({autoConnect:e.autoConnect,allBlockChains:e.allBlockChains,autoConnectHandler:()=>{me({allBlockChains:e.allBlockChains,getHub:n,wallets:e.configs?.wallets,emitter:s.current.emitter})}});let w=new W(P);return ue({canSwitchNetworkTo(a,r,c){let i=n().get(a);if(!i)return!1;if(!c)throw new Error("Passing namespace to `canSwitchNetworkTo` is required.");let p=i.findByNamespace(c.namespace);if(!p)throw new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${c.namespace})`);if(!("canSwitchNetwork"in p))return!1;let E=i.info()?.metadata?.properties?.find(g=>g.name==="namespaces");if(!s.current.allBlockChains)throw new Error("Blockchains are not available");let N=E?.value.data.find(g=>g.value===c.namespace);if(!N)throw new Error(`NamespaceMeta is not defined for requested namespace: ${c.namespace}`);let y=Qe(N,s.current.allBlockChains);return p.canSwitchNetwork({network:r,supportedChains:y})},async connect(a,r){let c=n().get(a);if(!c)throw new Error(`You should add ${a} to provider first then call 'connect'.`);if(!r)throw new Error("Passing namespace to `connect` is required.");d(a,r);let i=[];r.forEach(h=>{let v=h.namespace,k=c.findByNamespace(v);if(!k)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${h.namespace})`);i.push([h,k])});let p=i.map(async([h,v])=>{let k=re(h,e.allBlockChains||[]),x;se(v)?x=o(async()=>v.connect({derivationPath:h.derivationPath}),"connectNamespacePromise"):F(v)?x=o(async()=>v.connect(k,{derivationPath:h.derivationPath}),"connectNamespacePromise"):ce(v)?x=o(async()=>v.connect({derivationPath:h.derivationPath}),"connectNamespacePromise"):x=o(async()=>v.connect(),"connectNamespacePromise");let D=o(async()=>x().then(R).then(S=>({response:S,input:{namespace:h.namespace,network:h.network,supportsEagerConnect:"canEagerConnect"in v}})),"connectNamespaceProcess");return m(o(async()=>{if(v.state()[0]().connected)return D();let S={walletName:a,namespace:h.namespace,origin:"manual"},z=h.network||null;e.emitter.emit(T,{type:"walletConnectInitiated",payload:{...S,chain:z}});try{let _=await D();return e.emitter.emit(T,{type:"walletConnected",payload:{...S,chain:j(_.response.network,e.allBlockChains)}}),_}catch(_){throw e.emitter.emit(T,{type:"walletConnectFailed",payload:{...S,chain:z}}),_}},"connectNamespaceProcessWithEvents"),a)}),E=await Promise.all(p),N=E.filter(h=>h.ok).filter(h=>h.val.input.supportsEagerConnect).map(h=>({namespace:h.val.input.namespace,network:h.val.input.network}));N.length>0&&w.addWallet(a,N);let y=E.map(h=>h.andThen(v=>new Xe(v.response))),g=Ze.all(...y);if(g.err)throw g.val;return g.unwrap()},async disconnect(a,r){let c=n().get(a);if(!c)throw new Error(`You should add ${a} to provider first then call 'disconnect'.`);c.getAll().forEach(i=>{let p=!r||r.includes(i.namespaceId),E=i.state()[0]().connected;if(p&&E)return e.emitter.emit(T,{type:"walletDisconnected",payload:{walletName:a,namespace:i.namespaceId}}),i.disconnect()}),e.autoConnect&&(r?w.removeNamespacesFromWallet(a,r):w.removeWallets([a]))},async disconnectAll(){let a=Array.from(n().getAll().values()).map(async r=>this.disconnect(r.id));return await Promise.allSettled(a)},async getSigners(a){let r=n().get(a);if(!r)throw new Error(`You should add ${a} to provider first.`);let c=r.info();if(!c)throw new Error("Your provider should have required `info`.");let p=c.metadata.properties?.find(E=>E.name==="signers");if(!p)throw new Error("Your provider should contain signers property.");return p.value.getSigners()},getWalletInfo(a){let r=n().get(a);if(!r)throw new Error(`You should add ${a} to provider first.`);let c=r.info();if(!c)throw new Error("Your provider should have required `info`.");let i={DEFAULT:""},{metadata:p}=c,{extensions:E}=p;Object.keys(E).forEach(v=>{let k=v;if(k==="homepage"&&(i.DEFAULT=E[k]||""),["firefox","chrome","brave","edge"].includes(k)){let D=k.toUpperCase();i[D]=E[k]||""}});let N=p.properties,y=N?.find(v=>v.name==="namespaces"),g=N?.find(v=>v.name==="derivationPath"),h=N?.find(v=>v.name==="details");return{name:p.name,img:p.icon,installLink:i,color:"red",supportedChains:Ve(r,s.current.allBlockChains),isContractWallet:h?.value?.isContractWallet,mobileWallet:h?.value?.mobileWallet,showOnMobile:h?.value?.showOnMobile,needsNamespace:y?.value,needsDerivationPath:g?.value,isHub:!0,properties:p.properties}},state(a){let r=n().state(),c=n().get(a),i=r[a];if(!i||!c)return{connected:!1,connecting:!1,installed:!1,reachable:!1,accounts:null,network:null,namespaces:new Map};let p=i.namespaces.filter(y=>y.connected).flatMap(y=>y.accounts?.map(g=>L(g))).filter(y=>!!y),E=new Map(Array.from(c.getAll(),([y,g])=>[g.namespaceId,g.state()[0]()]));return{connected:i.connected,connecting:i.connecting,installed:i.installed,reachable:!0,accounts:p,network:null,namespaces:E}},async suggestAndConnect(a,r){let c=n().get(a);if(!c)throw new Error(`You should add ${a} to provider first then call 'suggestAndConnect'.`);let i=c.findByNamespace(r.namespace);throw i?"suggest"in i?r.network?new Error(`Suggest has not been implemented for given chain: ${r.network}`):new Error("You should pass network to the suggest and connect"):new Error("Suggest is not implemented on the provider"):new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${r.namespace})`)},hubProvider(a){let r=K(e.providers,a);if(!r)throw new Error(`You're trying to access ${a} provider which is not found in hub providers. it may not be registered yet.`);return r}})}o(V,"useHubAdapter");function et(e){let t=V(e);return Je.createElement(O.Provider,{value:t},e.children)}o(et,"Provider");var tt=et;import{useContext as nt}from"react";function ot(){let e=nt(O);if(!e)throw Error("useWallet can only be used within the Provider component");return e}o(ot,"useWallets");export{B as Events,tt as Provider,T as WalletEventChannel,H as WalletEventTypes,ot as useWallets};
1
+ var ae=Object.defineProperty;var r=(e,t)=>ae(e,"name",{value:t,configurable:!0});import Ue from"react";import{createContext as ce}from"react";var A="Context hasn't been initialized yet.",ie={async connect(){throw new Error(A)},async disconnect(){throw new Error(A)},async disconnectAll(){throw new Error(A)},async suggestAndConnect(){throw new Error(A)},state(){throw new Error(A)},canSwitchNetworkTo(){throw new Error(A)},getWalletInfo(){throw new Error(A)},getSigners(){throw new Error(A)},hubProvider(){throw new Error(A)}},x=ce(ie);import{convertEvmBlockchainMetaToEvmChainInfo as ye,formatAddressWithNetwork as Ne,getBlockChainNameFromId as ve,getSupportedChainsFromProvider as Pe}from"@rango-dev/internal-blockchains";import{AccountId as ke}from"caip";import{isEvmBlockchain as Ee}from"rango-types";var R=(u=>(u.CONNECTED="connected",u.CONNECTING="connecting",u.REACHABLE="reachable",u.INSTALLED="installed",u.ACCOUNTS="accounts",u.NETWORK="network",u.NAMESPACE_DISCONNECTED="namespace_disconnected",u.PROVIDER_DISCONNECTED="provider_disconnected",u))(R||{});var k="hub-v1-last-connected-wallets";import{CAIP_BITCOIN_CHAIN_ID as le,CAIP_BITCOINCASH_CHAIN_ID as pe,CAIP_DOGECOIN_CHAIN_ID as ue,CAIP_LITECOIN_CHAIN_ID as me,CAIP_ZCASH_CHAIN_ID as de}from"@hub3js/bip122";import{CAIP_TRON_CHAIN_ID as fe}from"@hub3js/tron";import{CAIP_NAMESPACE as he}from"@hub3js/tvm";import{formatAddressWithNetwork as Ce}from"@rango-dev/internal-blockchains";import{AccountId as we}from"caip";import{Err as H,Ok as U}from"ts-results";function ge(e){return typeof e=="string"?e:["solana","xrpl","stellar"].includes(e.namespace.toLowerCase())?e.namespace.toUpperCase():e.namespace.toLowerCase()==="eip155"?"ETH":e.reference===le?"BTC":e.reference===de?"ZCASH":e.reference===me?"LTC":e.reference===ue?"DOGE":e.reference===pe?"BCH":e.namespace.toLowerCase()===he?"TON":e.namespace==="sui"||e.reference===fe?e.reference.toUpperCase():e.namespace==="starknet"?e.namespace.toUpperCase():e.reference}r(ge,"mapCaipNamespaceToLegacyNetworkName");function S(e){let{chainId:t,address:n}=we.parse(e),c=ge(t);return Ce(n,c)}r(S,"fromAccountIdToLegacyAddressFormat");async function F(e){return e.reduce(async(t,n)=>{let c=await t;try{let s=await n();return[...c,new U(s)]}catch(s){return[...c,new H(s)]}},Promise.resolve([]))}r(F,"runSequentiallyWithoutFailure");function q(e){return typeof e=="object"&&!Array.isArray(e)}r(q,"isConnectResultEvm");function $(e){return Array.isArray(e)}r($,"isConnectResultSolana");function K(e){let t=new Set,n=[],c=r((p,m)=>{n=n.filter(u=>u.key!==p?!0:(u.resolve(m),!1))},"removeKeyFromQueue"),s=r(async()=>{let p=n.find(g=>!t.has(g.key));if(!p)return;let{task:m,resolve:u,key:f}=p;t.add(f);try{let g=await m();u(new U(g))}catch(g){e?.onError&&e.onError(g,{removeCurrentKeyFromQueue:()=>c(f,new H(g))}),u(new H(g))}finally{let g=n.findIndex(o=>o.key===f);g>=0&&n.splice(g,1),t.delete(f),s()}},"processQueue");return r(async(p,m)=>new Promise(u=>{n.push({task:p,resolve:u,key:m}),s()}),"queueTask")}r(K,"createQueue");function Y(e){return!!e.allBlockChains?.length&&!!e.autoConnect}r(Y,"shouldTryAutoConnect");var T=class{static{r(this,"Persistor")}getItem(t){let n=localStorage.getItem(t);return n?JSON.parse(n):null}setItem(t,n){localStorage.setItem(t,JSON.stringify(n))}removeItem(t){localStorage.removeItem(t)}};var I=class{static{r(this,"LastConnectedWalletsFromStorage")}#e;constructor(t){this.#e=t}addWallet(t,n){if(this.#e===k)return this.#t(t,n);throw new Error("Not implemented")}removeWallets(t){if(this.#e===k)return this.#n(t);throw new Error("Not implemented")}list(){if(this.#e===k)return this.#o();throw new Error("Not implemented")}removeNamespacesFromWallet(t,n){if(this.#e===k)return this.#r(t,n);throw new Error("Not implemented")}#o(){return new T().getItem(k)||{}}#t(t,n){let c=new T,s=c.getItem(this.#e)||{},h=n;if(s[t]){let p=s[t];h=p.concat(n.filter(m=>!p.some(u=>u.namespace===m.namespace)))}c.setItem(this.#e,{...s,[t]:h})}#n(t){let n=new T,c=n.getItem(this.#e)||{};if(!t){n.setItem(this.#e,{});return}t.forEach(s=>{c[s]&&delete c[s]}),n.setItem(this.#e,c)}#r(t,n){let p=(new T().getItem(this.#e)||{})[t]?.filter(m=>!n.includes(m.namespace));this.#n([t]),p?.length>0&&this.#t(t,p)}};function L(e,t){return e.find(n=>n.id===t)}r(L,"findProviderByType");var Ae=new I(k);function Q(e,t,n,c){let s=e.get(t.provider);if(!s)throw new Error("Currently all the events have assigned to a provider. The event doesn't include one.",{cause:t});let h=t.namespace,p=h?s.findByNamespace(h):void 0,m=null,u=null,f;if(p){let[l]=p.state();m=l().accounts,u=l().network,c.lastConnectAttemptParams[t.provider]&&(f=c.lastConnectAttemptParams[t.provider].find(d=>d.namespace===h)?.derivationPath)}let[g]=s.state(),o={connected:g().connected,connecting:g().connecting,installed:g().installed,accounts:m,network:u,reachable:!0,derivationPath:f},a=s.info()?.metadata.properties?.find(l=>l.name==="details"),i={supportedBlockchains:Pe(s,c.allBlockChains),isContractWallet:a?.value?.isContractWallet??!1,isHub:!0,namespace:h};switch(t.type){case"provider_detected":n(t.provider,"installed",!0,o,i);break;case"provider_connecting":n(t.provider,"connecting",t.value,o,i);break;case"provider_connected":n(t.provider,"connected",!0,o,i);break;case"provider_disconnected":n(t.provider,"provider_disconnected",t.provider,o,i),n(t.provider,"connected",!1,o,i),n(t.provider,"accounts",null,o,i);break;case"namespace_disconnected":Ae.removeNamespacesFromWallet(t.provider,[t.namespace]),n(t.provider,"namespace_disconnected",t.namespace,o,{...i,namespace:t.namespace});break;case"namespace_connected":case"namespace_account_switched":{t.type==="namespace_account_switched"&&n(t.provider,"namespace_disconnected",t.namespace,o,i);let l=[];i.isContractWallet?l=t.accounts.map(d=>{let{chainId:w,address:P}=ke.parse(d);if(typeof w=="string")throw new Error("Should be in CAIP format");let N=ve(w.reference,i.supportedBlockchains);return N?Ne(P,N):S(d)}):l=t.accounts.map(d=>S(d)),n(t.provider,"accounts",l,o,{...i,namespace:t.namespace})}break;case"namespace_network_switched":n(t.provider,"network",t.network,o,{...i,namespace:t.namespace});break}}r(Q,"mapHubEventsToLegacy");function O(e,t){if(!e.network)return;let n=t.filter(Ee);return ye(n)[e.network]}r(O,"convertNamespaceNetworkToEvmChainId");function G(e,t){return O(e,t)||e.network}r(G,"tryConvertNamespaceNetworkToChainInfo");function V(e){return q(e)?{accounts:e.accounts,network:e.network}:$(e)?{accounts:e,network:null}:{accounts:[e],network:null}}r(V,"transformHubResultToLegacyResult");function z(e,t){let n=e.getAll();t.filter(s=>!n.get(s.id)).forEach(s=>{e.add(s.id,s),s.init()}),n.forEach(s=>{t.some(p=>p.id===s.id)||e.remove(s.id)})}r(z,"synchronizeHubWithConfigProviders");function X(e){return e.namespaceId==="Solana"}r(X,"isSolanaNamespace");function W(e){return e.namespaceId==="EVM"}r(W,"isEvmNamespace");function J(e){return e.namespaceId==="UTXO"}r(J,"isUtxoNamespace");import{utils as Le}from"@hub3js/evm";import{getSupportedChainsFromNamespace as Oe,getSupportedChainsFromProvider as _e}from"@rango-dev/internal-blockchains";import{useEffect as _,useRef as D,useState as De}from"react";import{Ok as je,Result as Me}from"ts-results";import{debug as Ie}from"@rango-dev/logging-core";function Z(e,t,n){let c=n instanceof Error?n:new Error(String(n));Ie(c,{context:{method:e,args:t},tags:{type:"wallet-error"}})}r(Z,"logError");function Te(e,t){return(...n)=>{try{let c=t(...n);return c instanceof Promise?c.catch(s=>{throw Z(e,n,s),s}):c}catch(c){throw Z(e,n,c),c}}}r(Te,"withErrorLogging");function ee(e){let t=Object.entries(e).map(([n,c])=>[n,Te(n,c.bind(e))]);return Object.fromEntries(t)}r(ee,"withErrorLoggingApi");import{Result as be}from"ts-results";function Se(e){return e.namespace==="EVM"}r(Se,"isEvmNamespaceInput");var B=new I(k);async function xe(e,t,n){let{getHub:c,allBlockChains:s}=n,h=c().get(e);if(!h)throw new Error(`You should add ${e} to provider first then call 'connect'.`);if(!t)throw new Error("Passing namespace to `connect` is required. ");let p=[];t.forEach(o=>{let a=o.namespace,i=h.findByNamespace(a);if(!i)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${o.namespace})`);p.push([o,i])});let m=p.map(([o,a])=>{let l=(Se(o)?O(o,s||[]):void 0)||o.network;return async()=>{let d;W(a)?d=r(async()=>a.connect(l),"connectNamespacePromise"):d=r(async()=>a.connect(),"connectNamespacePromise");try{await d()}catch(w){throw w instanceof Error?w:new Error(w)}}}),u=await F(m),f=p.filter((o,a)=>u[a].err).map(o=>o[0]);if(f.length>0&&B.removeNamespacesFromWallet(e,f.map(o=>o.namespace)),!u.some(o=>o.ok))throw new Error(`No namespace connected for ${e}`);return be.all(...u.filter(o=>o.ok)).unwrap()}r(xe,"eagerConnect");async function We(e,t){let n=[],c=[],s=[],h=[];e.forEach(m=>{let u=t.findByNamespace(m.namespace);u?(n.push(m),h.push(async()=>await u.canEagerConnect())):s.push(m)});let p=await F(h);return n.forEach((m,u)=>{p[u].ok&&p[u].val?c.push(m):s.push(m)}),{successNamespaces:c,failedNamespaces:s}}r(We,"tryRunCanEagerConnect");async function te(e){let{getHub:t,allBlockChains:n,wallets:c}=e,s=B.list(),h=Object.keys(s),p=[];if(h.length){let m=[],u=c?.map(f=>typeof f=="string"?f:f.id);h.forEach(async f=>{if(u&&!u.includes(f)){console.warn("Trying to run auto connect for a wallet which is not included in config. Desired wallet:",f),p.push(f);return}let g=t().get(f),o=s[f].map(l=>({namespace:l.namespace,network:l.network}));if(!o.length||!g){p.push(f);return}let{successNamespaces:a,failedNamespaces:i}=await We(o,g);if(a.length)i.length&&B.removeNamespacesFromWallet(g.id,i.map(l=>l.namespace));else{p.push(f);return}m.push(xe(f,a,{allBlockChains:n,getHub:t}).catch(l=>console.warn(l)))}),B.removeWallets(p),await Promise.all(m)}}r(te,"autoConnect");import{useEffect as Be,useRef as Re}from"react";function ne(e){let t=Re(!1);Be(()=>{Y(e)&&!t.current&&(t.current=!0,e.autoConnectHandler())},[e.autoConnect,e.allBlockChains])}r(ne,"useAutoConnect");import{createStore as He,Hub as Fe}from"@hub3js/core";import{useRef as oe}from"react";function re(e){let t=oe(null),n=oe(null);function c(){let p=new Fe({store:s()});return e.forEach(m=>{p.add(m.id,m)}),n.current=p,p}r(c,"createHub");function s(){if(t.current!==null)return t.current;let p=He();return t.current=p,p}r(s,"getStore");function h(){let p=n.current?.getAll();return!n.current||!p?c():(z(n.current,e),n.current)}return r(h,"getHub"),{getStore:s,getHub:h}}r(re,"useHubRefs");function j(e){let{getStore:t,getHub:n}=re(e.providers),[,c]=De(0),s=D({onUpdateState:e.onUpdateState,allBlockChains:e.allBlockChains}),h=D(!1),p=D({}),m=r((o,a)=>{p.current[o]=a||[]},"updateLastConnectAttemptParams"),u=K({onError:(o,a)=>{Le.isUserRejectionError(o)&&a.removeCurrentKeyFromQueue()}});_(()=>{s.current={onUpdateState:e.onUpdateState,allBlockChains:e.allBlockChains}},[e]),_(()=>{t().subscribe(o=>{if(s.current.onUpdateState)try{Q(n(),o,s.current.onUpdateState,{allBlockChains:s.current.allBlockChains,lastConnectAttemptParams:p.current})}catch(a){console.error(a)}c(a=>a+1)}).flushEvents()},[]),_(()=>{h.current||!e.allBlockChains?.length||(n().init(e.configs?.walletOptions),c(o=>o+1),h.current=!0)},[e.allBlockChains,e.configs?.walletOptions]),ne({autoConnect:e.autoConnect,allBlockChains:e.allBlockChains,autoConnectHandler:()=>{te({allBlockChains:e.allBlockChains,getHub:n,wallets:e.configs?.wallets})}});let f=new I(k);return ee({canSwitchNetworkTo(o,a,i){let l=n().get(o);if(!l)return!1;if(!i)throw new Error("Passing namespace to `canSwitchNetworkTo` is required.");let d=l.findByNamespace(i.namespace);if(!d)throw new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${i.namespace})`);if(!("canSwitchNetwork"in d))return!1;let w=l.info()?.metadata?.properties?.find(v=>v.name==="namespaces");if(!s.current.allBlockChains)throw new Error("Blockchains are not available");let P=w?.value.data.find(v=>v.value===i.namespace);if(!P)throw new Error(`NamespaceMeta is not defined for requested namespace: ${i.namespace}`);let N=Oe(P,s.current.allBlockChains);return d.canSwitchNetwork({network:a,supportedChains:N})},async connect(o,a){let i=n().get(o);if(!i)throw new Error(`You should add ${o} to provider first then call 'connect'.`);if(!a)throw new Error("Passing namespace to `connect` is required.");m(o,a);let l=[];a.forEach(C=>{let y=C.namespace,E=i.findByNamespace(y);if(!E)throw new Error(`We couldn't find any provider matched with your request namespace. (requested namespace: ${C.namespace})`);l.push([C,E])});let d=l.map(async([C,y])=>{let E=G(C,e.allBlockChains||[]),b;return X(y)?b=r(async()=>y.connect({derivationPath:C.derivationPath}),"connectNamespacePromise"):W(y)?b=r(async()=>y.connect(E,{derivationPath:C.derivationPath}),"connectNamespacePromise"):J(y)?b=r(async()=>y.connect({derivationPath:C.derivationPath}),"connectNamespacePromise"):b=r(async()=>y.connect(),"connectNamespacePromise"),u(r(async()=>b().then(V).then(se=>({response:se,input:{namespace:C.namespace,network:C.network,supportsEagerConnect:"canEagerConnect"in y}})),"connectNamespaceProcess"),o)}),w=await Promise.all(d),P=w.filter(C=>C.ok).filter(C=>C.val.input.supportsEagerConnect).map(C=>({namespace:C.val.input.namespace,network:C.val.input.network}));P.length>0&&f.addWallet(o,P);let N=w.map(C=>C.andThen(y=>new je(y.response))),v=Me.all(...N);if(v.err)throw v.val;return v.unwrap()},async disconnect(o,a){let i=n().get(o);if(!i)throw new Error(`You should add ${o} to provider first then call 'disconnect'.`);i.getAll().forEach(l=>{let d=!a||a.includes(l.namespaceId),w=l.state()[0]().connected;if(d&&w)return l.disconnect()}),e.autoConnect&&(a?f.removeNamespacesFromWallet(o,a):f.removeWallets([o]))},async disconnectAll(){let o=Array.from(n().getAll().values()).map(async a=>this.disconnect(a.id));return await Promise.allSettled(o)},async getSigners(o){let a=n().get(o);if(!a)throw new Error(`You should add ${o} to provider first.`);let i=a.info();if(!i)throw new Error("Your provider should have required `info`.");let d=i.metadata.properties?.find(w=>w.name==="signers");if(!d)throw new Error("Your provider should contain signers property.");return d.value.getSigners()},getWalletInfo(o){let a=n().get(o);if(!a)throw new Error(`You should add ${o} to provider first.`);let i=a.info();if(!i)throw new Error("Your provider should have required `info`.");let l={DEFAULT:""},{metadata:d}=i,{extensions:w}=d;Object.keys(w).forEach(y=>{let E=y;if(E==="homepage"&&(l.DEFAULT=w[E]||""),["firefox","chrome","brave","edge"].includes(E)){let M=E.toUpperCase();l[M]=w[E]||""}});let P=d.properties,N=P?.find(y=>y.name==="namespaces"),v=P?.find(y=>y.name==="derivationPath"),C=P?.find(y=>y.name==="details");return{name:d.name,img:d.icon,installLink:l,color:"red",supportedChains:_e(a,s.current.allBlockChains),isContractWallet:C?.value?.isContractWallet,mobileWallet:C?.value?.mobileWallet,showOnMobile:C?.value?.showOnMobile,needsNamespace:N?.value,needsDerivationPath:v?.value,isHub:!0,properties:d.properties}},state(o){let a=n().state(),i=n().get(o),l=a[o];if(!l||!i)return{connected:!1,connecting:!1,installed:!1,reachable:!1,accounts:null,network:null,namespaces:new Map};let d=l.namespaces.filter(N=>N.connected).flatMap(N=>N.accounts?.map(v=>S(v))).filter(N=>!!N),w=new Map(Array.from(i.getAll(),([N,v])=>[v.namespaceId,v.state()[0]()]));return{connected:l.connected,connecting:l.connecting,installed:l.installed,reachable:!0,accounts:d,network:null,namespaces:w}},async suggestAndConnect(o,a){let i=n().get(o);if(!i)throw new Error(`You should add ${o} to provider first then call 'suggestAndConnect'.`);let l=i.findByNamespace(a.namespace);throw l?"suggest"in l?a.network?new Error(`Suggest has not been implemented for given chain: ${a.network}`):new Error("You should pass network to the suggest and connect"):new Error("Suggest is not implemented on the provider"):new Error(`We couldn't find any matched namespace on your request provider. (requested namespace: ${a.namespace})`)},hubProvider(o){let a=L(e.providers,o);if(!a)throw new Error(`You're trying to access ${o} provider which is not found in hub providers. it may not be registered yet.`);return a}})}r(j,"useHubAdapter");function qe(e){let t=j(e);return Ue.createElement(x.Provider,{value:t},e.children)}r(qe,"Provider");var $e=qe;import{useContext as Ke}from"react";function Ye(){let e=Ke(x);if(!e)throw Error("useWallet can only be used within the Provider component");return e}r(Ye,"useWallets");export{R as Events,$e as Provider,Ye as useWallets};
2
2
  //# sourceMappingURL=index.js.map