@rango-dev/wallets-shared 0.17.0 → 0.17.1-next.1

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/CHANGELOG.md CHANGED
@@ -1,7 +1,3 @@
1
- # [0.17.0](https://github.com/rango-exchange/rango-client/compare/wallets-shared@0.16.0...wallets-shared@0.17.0) (2023-10-18)
2
-
3
-
4
-
5
1
  # [0.14.0](https://github.com/rango-exchange/rango-client/compare/wallets-shared@0.13.0...wallets-shared@0.14.0) (2023-08-03)
6
2
 
7
3
 
@@ -1,5 +1,5 @@
1
+ import type { Connect, Suggest } from './rango';
1
2
  import type { CosmosBlockchainMeta, CosmosChainInfo } from 'rango-types';
2
- import { Connect } from './rango';
3
3
  export interface CosmosInfo extends Omit<CosmosChainInfo, 'experimental'> {
4
4
  chainId: string;
5
5
  }
@@ -12,4 +12,5 @@ export type CosmosExperimentalChainsInfo = {
12
12
  };
13
13
  export declare const getCosmosExperimentalChainInfo: (blockchains: CosmosBlockchainMeta[]) => CosmosExperimentalChainsInfo;
14
14
  export declare const getCosmosAccounts: Connect;
15
+ export declare const suggestCosmosChain: Suggest;
15
16
  //# sourceMappingURL=getCosmosAccounts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getCosmosAccounts.d.ts","sourceRoot":"","sources":["../src/getCosmosAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EACpB,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,OAAO,EAAyB,MAAM,SAAS,CAAC;AAGzD,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC;IACvE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,CAAC,CAAC,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC;CACtE,CAAC;AAmBF,eAAO,MAAM,8BAA8B,gBAC5B,oBAAoB,EAAE,iCAoChC,CAAC;AA2EN,eAAO,MAAM,iBAAiB,EAAE,OA+C/B,CAAC"}
1
+ {"version":3,"file":"getCosmosAccounts.d.ts","sourceRoot":"","sources":["../src/getCosmosAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAyB,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvE,OAAO,KAAK,EAEV,oBAAoB,EACpB,eAAe,EAChB,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC;IACvE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,CAAC,CAAC,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC;CACtE,CAAC;AAmBF,eAAO,MAAM,8BAA8B,gBAC5B,oBAAoB,EAAE,iCAsChC,CAAC;AA+EN,eAAO,MAAM,iBAAiB,EAAE,OA8C/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAchC,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var S=Object.defineProperty;var a=(e,n)=>S(e,"name",{value:n,configurable:!0});var w=!process.env.NODE_ENV||process.env.NODE_ENV==="development",L=a((e,n)=>(e=typeof e=="string"&&e.startsWith("0x")?parseInt(e):e,Object.values(E).includes(String(e))?e:e==="Binance-Chain-Tigris"?"BNB":n.filter(r=>!!r.chainId).find(r=>(r.chainId?.startsWith("0x")?parseInt(r.chainId):r.chainId)==e)?.name||null),"getBlockChainNameFromId"),U=a((e,n)=>n[e]?.chainId||null,"getBlockchainChainIdByName"),H=a(e=>Buffer.from(e).toString("hex"),"uint8ArrayToHex"),N=(i=>(i.META_MASK="metamask",i.WALLET_CONNECT_2="wallet-connect-2",i.TRUST_WALLET="trust-wallet",i.KEPLR="keplr",i.PHANTOM="phantom",i.BINANCE_CHAIN="binance-chain",i.BITGET="bitget",i.TRON_LINK="tron-link",i.COINBASE="coinbase",i.XDEFI="xdefi",i.CLOVER="clover",i.ARGENTX="argentx",i.FRONTIER="frontier",i.COSMOSTATION="cosmostation",i.COIN98="coin98",i.SAFEPAL="safepal",i.SAFE="safe",i.TOKEN_POCKET="token-pocket",i.BRAVE="brave",i.BRAAVOS="braavos",i.MATH="math",i.EXODUS="exodus",i.OKX="okx",i.HALO="halo",i.LEAP="leap",i.LEAP_COSMOS="leap-cosmos",i.STATION="station",i.ENKRYPT="enkrypt",i.TAHO="taho",i.MY_TON_WALLET="mytonwallet",i))(N||{}),E=(o=>(o.BTC="BTC",o.BSC="BSC",o.LTC="LTC",o.THORCHAIN="THOR",o.BCH="BCH",o.BINANCE="BNB",o.ETHEREUM="ETH",o.POLYGON="POLYGON",o.TERRA="TERRA",o.POLKADOT="",o.TRON="TRON",o.DOGE="DOGE",o.HARMONY="HARMONY",o.AVAX_CCHAIN="AVAX_CCHAIN",o.FANTOM="FANTOM",o.MOONBEAM="MOONBEAM",o.ARBITRUM="ARBITRUM",o.BOBA="BOBA",o.OPTIMISM="OPTIMISM",o.FUSE="FUSE",o.CRONOS="CRONOS",o.SOLANA="SOLANA",o.MOONRIVER="MOONRIVER",o.GNOSIS="GNOSIS",o.COSMOS="COSMOS",o.OSMOSIS="OSMOSIS",o.AKASH="AKASH",o.IRIS="IRIS",o.PERSISTENCE="PERSISTENCE",o.SENTINEL="SENTINEL",o.REGEN="REGEN",o.CRYPTO_ORG="CRYPTO_ORG",o.SIF="SIF",o.CHIHUAHUA="CHIHUAHUA",o.JUNO="JUNO",o.KUJIRA="KUJIRA",o.STARNAME="STARNAME",o.COMDEX="COMDEX",o.STARGAZE="STARGAZE",o.DESMOS="DESMOS",o.BITCANNA="BITCANNA",o.SECRET="SECRET",o.INJECTIVE="INJECTIVE",o.LUMNETWORK="LUMNETWORK",o.BANDCHAIN="BANDCHAIN",o.EMONEY="EMONEY",o.BITSONG="BITSONG",o.KI="KI",o.MEDIBLOC="MEDIBLOC",o.KONSTELLATION="KONSTELLATION",o.UMEE="UMEE",o.STARKNET="STARKNET",o.TON="TON",o.Unknown="Unkown",o))(E||{}),_=["BTC","LTC","THOR","BCH","BNB"],D=["keplr","cosmostation"];import{isAddress as re}from"ethers/lib/utils.js";function p(e){let n;if(e==null||typeof e!="object")return e;if(e instanceof Date)return n=new Date,n.setTime(e.getTime()),n;if(e instanceof Array){n=[];for(let t=0,r=e.length;t<r;t++)n[t]=p(e[t]);return n}if(e instanceof Object){n={};for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=p(e[t]));return n}throw new Error("Unable to copy obj! Its type isn't supported.")}a(p,"deepCopy");async function I(e,n,t){let r=t[n];try{await e.request({method:"wallet_switchEthereumChain",params:[{chainId:r?.chainId}]})}catch(s){let m=s;if(r)(m.code===4902||!m.code)&&await e.request({method:"wallet_addEthereumChain",params:[r]});else throw new Error(`It seems you don't have ${n} network on your wallet. Please add it manually.`);throw s}}a(I,"switchOrAddNetworkForMetamaskCompatibleWallets");function Z(e,n){let t=new Promise((r,s)=>{setTimeout(()=>{s("Timeout!")},n)});return Promise.race([e,t])}a(Z,"timeout");var A=a(e=>e.reduce((n,t)=>(n[t.name]={chainName:t.info.chainName,chainId:t.chainId,nativeCurrency:t.info.nativeCurrency,rpcUrls:t.info.rpcUrls,blockExplorerUrls:t.info.blockExplorerUrls},n),{}),"convertEvmBlockchainMetaToEvmChainInfo"),$=a(e=>Object.fromEntries(new Map(Object.keys(e).map(n=>{let t=e[n];return t?[parseInt(t.chainId),t.rpcUrls[0]]:[0,""]}))),"evmChainsToRpcMap"),j=a(async({instance:e})=>({accounts:[(await e.connect()).publicKey.toString()],chainId:"SOLANA"}),"getSolanaAccounts");function W(e="coinbase"){let{ethereum:n,coinbaseSolana:t}=window,r=new Map;if(n){let s=e==="metamask"?"isMetaMask":"isCoinbaseWallet";if(e==="coinbase"&&n[s])r.set("ETH",n);else if(n.providers?.length){let m=n.providers.find(c=>c[s]);r.set("ETH",m)}}return t&&e==="coinbase"&&r.set("SOLANA",t),r.size===0?null:e==="metamask"?r.get("ETH"):r}a(W,"getCoinbaseInstance");function Q(e){return e.sort((n,t)=>Number(t.connected)-Number(n.connected)||Number(t.extensionAvailable)-Number(n.extensionAvailable))}a(Q,"sortWalletsBasedOnState");function M(){let e=!1,n=navigator;return n.brave&&n.brave.isBrave&&n.brave.isBrave().then(t=>{t&&(e=!0)}),e}a(M,"isBrave");function ee(e){if(typeof e!="object")return e;{let n;return M()?n=e.BRAVE:navigator.userAgent?.toLowerCase().indexOf("chrome")!==-1?n=e.CHROME:navigator.userAgent?.toLowerCase().indexOf("firefox")!==-1?n=e.FIREFOX:navigator.userAgent?.toLowerCase().indexOf("edge")!==-1&&(n=e.EDGE),n||e.DEFAULT}}a(ee,"detectInstallLink");function ne(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}a(ne,"detectMobileScreens");import{isEvmBlockchain as O}from"rango-types";async function de(e){let[n,t]=await Promise.all([e.request({method:"eth_requestAccounts"}),e.request({method:"eth_chainId"})]);return{accounts:n,chainId:t}}a(de,"getEvmAccounts");var fe=a(({instance:e,state:n,updateChainId:t,updateAccounts:r})=>{e?.on("accountsChanged",s=>{n.connected&&r(s)}),e?.on("chainChanged",s=>{t(s)})},"subscribeToEvm"),Ce=a(async({instance:e})=>{try{return!!(await e.request({method:"eth_accounts"})).length}catch{return!1}},"canEagerlyConnectToEvm"),Ie=a(async({instance:e,network:n,meta:t})=>{let r=t.filter(O),s=T(e,"ETH");await I(s,n,A(r))},"switchNetworkForEvm"),Ae=a(({network:e,meta:n})=>C(n).includes(e),"canSwitchNetworkToEvm");function C(e){return e.filter(O).map(n=>n.name)}a(C,"evmNetworkNames");function B(e,n){return e&&C(n).includes(e)?"ETH":null}a(B,"getEthChainsInstance");function x(e,n){return e?C(n).includes(e):!1}a(x,"isEvmNetwork");function Oe(e,n,t){t=t||"ETH";let r=x(t,n)?B(t,n):t;return e&&r?e.get(r):null}a(Oe,"chooseInstance");function T(e,n){return e.size?e.get(n):e}a(T,"getNetworkInstance");var R=a(e=>e.filter(n=>!n.info?.experimental).map(n=>n.chainId).filter(n=>!!n),"getCosmosMainChainsIds"),v=a(e=>e.filter(n=>n.info?.experimental).map(n=>n.chainId).filter(n=>!!n),"getCosmosMiscChainsIds"),y=a(e=>e.filter(n=>!!n.info).filter(n=>!!n.chainId).reduce((n,t)=>{let r=p(t.info);r.stakeCurrency.coinImageUrl=window.location.origin+r.stakeCurrency.coinImageUrl,r.currencies=r.currencies.map(c=>({...c,coinImageUrl:window.location.origin+c.coinImageUrl})),r.feeCurrencies=r.feeCurrencies.map(c=>({...c,coinImageUrl:window.location.origin+c.coinImageUrl})),r.gasPriceStep||delete r.gasPriceStep;let{experimental:s,...m}=r;return n[t.name]={id:t.chainId,info:{...m,chainId:t.chainId},experimental:s},n},{}),"getCosmosExperimentalChainInfo");async function b({desiredChainIds:e,instance:n}){let t=e.map(c=>({signer:n.getOfflineSigner(c),chainId:c})).filter(Boolean),r=t.map(({signer:c})=>c.getAccounts()),s=await Promise.allSettled(r),m=[];return s.forEach((c,l)=>{if(c.status!=="fulfilled")return;let u=c.value,{chainId:h}=t[l],d=u.map(f=>f.address);m.push({accounts:d,chainId:h})}),m}a(b,"getMainAccounts");async function P({excludedChain:e,instance:n,meta:t}){let r=v(t).filter(l=>l!==e).map(l=>({signer:n.getOfflineSigner(l),chainId:l})),s=r.map(({signer:l})=>l.getAccounts()),m=await Promise.allSettled(s),c=[];return m.forEach((l,u)=>{if(l.status!=="fulfilled")return;let h=l.value,{chainId:d}=r[u],f=h.map(g=>g.address);c.push({accounts:f,chainId:d})}),c}a(P,"tryRequestMiscAccounts");var Me=a(async({instance:e,network:n,meta:t})=>{let r=n?y(t)[n]:null;if(n&&!r)throw new Error(`You need to add ${n} to "COSMOS_EXPERIMENTAL_CHAINS_INFO" first.`);r&&await e.experimentalSuggestChain(r.info);let s=R(t);r&&s.push(r.id),s=Array.from(new Set(s)).filter(Boolean),await e.enable(s);let m=await b({desiredChainIds:s,instance:e}),c=r?r.id:void 0,l=c?await P({instance:e,meta:t,excludedChain:c}):[];return[...m,...l]},"getCosmosAccounts");export{w as IS_DEV,D as KEPLR_COMPATIBLE_WALLETS,E as Networks,N as WalletTypes,_ as XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS,Ce as canEagerlyConnectToEvm,Ae as canSwitchNetworkToEvm,Oe as chooseInstance,A as convertEvmBlockchainMetaToEvmChainInfo,p as deepCopy,ee as detectInstallLink,ne as detectMobileScreens,$ as evmChainsToRpcMap,C as evmNetworkNames,L as getBlockChainNameFromId,U as getBlockchainChainIdByName,W as getCoinbaseInstance,Me as getCosmosAccounts,y as getCosmosExperimentalChainInfo,B as getEthChainsInstance,de as getEvmAccounts,T as getNetworkInstance,j as getSolanaAccounts,re as isEvmAddress,Q as sortWalletsBasedOnState,fe as subscribeToEvm,Ie as switchNetworkForEvm,I as switchOrAddNetworkForMetamaskCompatibleWallets,Z as timeout,H as uint8ArrayToHex};
1
+ var N=Object.defineProperty;var a=(e,n)=>N(e,"name",{value:n,configurable:!0});var w=!process.env.NODE_ENV||process.env.NODE_ENV==="development",L=a((e,n)=>(e=typeof e=="string"&&e.startsWith("0x")?parseInt(e):e,Object.values(p).includes(String(e))?e:e==="Binance-Chain-Tigris"?"BNB":n.filter(r=>!!r.chainId).find(r=>(r.chainId?.startsWith("0x")?parseInt(r.chainId):r.chainId)==e)?.name||null),"getBlockChainNameFromId"),U=a((e,n)=>n[e]?.chainId||null,"getBlockchainChainIdByName"),H=a(e=>Buffer.from(e).toString("hex"),"uint8ArrayToHex"),M=(s=>(s.META_MASK="metamask",s.WALLET_CONNECT_2="wallet-connect-2",s.TRUST_WALLET="trust-wallet",s.KEPLR="keplr",s.PHANTOM="phantom",s.BINANCE_CHAIN="binance-chain",s.BITGET="bitget",s.TRON_LINK="tron-link",s.COINBASE="coinbase",s.XDEFI="xdefi",s.CLOVER="clover",s.ARGENTX="argentx",s.FRONTIER="frontier",s.COSMOSTATION="cosmostation",s.COIN98="coin98",s.SAFEPAL="safepal",s.SAFE="safe",s.TOKEN_POCKET="token-pocket",s.BRAVE="brave",s.BRAAVOS="braavos",s.MATH="math",s.EXODUS="exodus",s.OKX="okx",s.HALO="halo",s.LEAP="leap",s.LEAP_COSMOS="leap-cosmos",s.STATION="station",s.ENKRYPT="enkrypt",s.TAHO="taho",s.MY_TON_WALLET="mytonwallet",s))(M||{}),p=(o=>(o.BTC="BTC",o.BSC="BSC",o.LTC="LTC",o.THORCHAIN="THOR",o.BCH="BCH",o.BINANCE="BNB",o.ETHEREUM="ETH",o.POLYGON="POLYGON",o.TERRA="TERRA",o.POLKADOT="",o.TRON="TRON",o.DOGE="DOGE",o.HARMONY="HARMONY",o.AVAX_CCHAIN="AVAX_CCHAIN",o.FANTOM="FANTOM",o.MOONBEAM="MOONBEAM",o.ARBITRUM="ARBITRUM",o.BOBA="BOBA",o.OPTIMISM="OPTIMISM",o.FUSE="FUSE",o.CRONOS="CRONOS",o.SOLANA="SOLANA",o.MOONRIVER="MOONRIVER",o.GNOSIS="GNOSIS",o.COSMOS="COSMOS",o.OSMOSIS="OSMOSIS",o.AKASH="AKASH",o.IRIS="IRIS",o.PERSISTENCE="PERSISTENCE",o.SENTINEL="SENTINEL",o.REGEN="REGEN",o.CRYPTO_ORG="CRYPTO_ORG",o.SIF="SIF",o.CHIHUAHUA="CHIHUAHUA",o.JUNO="JUNO",o.KUJIRA="KUJIRA",o.STARNAME="STARNAME",o.COMDEX="COMDEX",o.STARGAZE="STARGAZE",o.DESMOS="DESMOS",o.BITCANNA="BITCANNA",o.SECRET="SECRET",o.INJECTIVE="INJECTIVE",o.LUMNETWORK="LUMNETWORK",o.BANDCHAIN="BANDCHAIN",o.EMONEY="EMONEY",o.BITSONG="BITSONG",o.KI="KI",o.MEDIBLOC="MEDIBLOC",o.KONSTELLATION="KONSTELLATION",o.UMEE="UMEE",o.STARKNET="STARKNET",o.TON="TON",o.Unknown="Unkown",o))(p||{}),_=["BTC","LTC","THOR","BCH","BNB"],D=["keplr","cosmostation","leap-cosmos"];import{isAddress as re}from"ethers/lib/utils.js";function E(e){let n;if(e==null||typeof e!="object")return e;if(e instanceof Date)return n=new Date,n.setTime(e.getTime()),n;if(e instanceof Array){n=[];for(let t=0,r=e.length;t<r;t++)n[t]=E(e[t]);return n}if(e instanceof Object){n={};for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=E(e[t]));return n}throw new Error("Unable to copy obj! Its type isn't supported.")}a(E,"deepCopy");async function I(e,n,t){let r=t[n];try{await e.request({method:"wallet_switchEthereumChain",params:[{chainId:r?.chainId}]})}catch(i){let m=i;if(r)(m.code===4902||!m.code)&&await e.request({method:"wallet_addEthereumChain",params:[r]});else throw new Error(`It seems you don't have ${n} network on your wallet. Please add it manually.`);throw i}}a(I,"switchOrAddNetworkForMetamaskCompatibleWallets");function $(e,n){let t=new Promise((r,i)=>{setTimeout(()=>{i("Timeout!")},n)});return Promise.race([e,t])}a($,"timeout");var A=a(e=>e.reduce((n,t)=>(n[t.name]={chainName:t.info.chainName,chainId:t.chainId,nativeCurrency:t.info.nativeCurrency,rpcUrls:t.info.rpcUrls,blockExplorerUrls:t.info.blockExplorerUrls},n),{}),"convertEvmBlockchainMetaToEvmChainInfo"),z=a(e=>Object.fromEntries(new Map(Object.keys(e).map(n=>{let t=e[n];return t?[parseInt(t.chainId),t.rpcUrls[0]]:[0,""]}))),"evmChainsToRpcMap"),Z=a(async({instance:e})=>({accounts:[(await e.connect()).publicKey.toString()],chainId:"SOLANA"}),"getSolanaAccounts");function j(e="coinbase"){let{ethereum:n,coinbaseSolana:t}=window,r=new Map;if(n){let i=e==="metamask"?"isMetaMask":"isCoinbaseWallet";if(e==="coinbase"&&n[i])r.set("ETH",n);else if(n.providers?.length){let m=n.providers.find(c=>c[i]);r.set("ETH",m)}}return t&&e==="coinbase"&&r.set("SOLANA",t),r.size===0?null:e==="metamask"?r.get("ETH"):r}a(j,"getCoinbaseInstance");function Q(e){return e.sort((n,t)=>Number(t.connected)-Number(n.connected)||Number(t.extensionAvailable)-Number(n.extensionAvailable))}a(Q,"sortWalletsBasedOnState");function B(){let e=!1,n=navigator;return n.brave&&n.brave.isBrave&&n.brave.isBrave().then(t=>{t&&(e=!0)}),e}a(B,"isBrave");function ee(e){if(typeof e!="object")return e;{let n;return B()?n=e.BRAVE:navigator.userAgent?.toLowerCase().indexOf("chrome")!==-1?n=e.CHROME:navigator.userAgent?.toLowerCase().indexOf("firefox")!==-1?n=e.FIREFOX:navigator.userAgent?.toLowerCase().indexOf("edge")!==-1&&(n=e.EDGE),n||e.DEFAULT}}a(ee,"detectInstallLink");function ne(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}a(ne,"detectMobileScreens");import{isEvmBlockchain as O}from"rango-types";async function de(e){let[n,t]=await Promise.all([e.request({method:"eth_requestAccounts"}),e.request({method:"eth_chainId"})]);return{accounts:n,chainId:t}}a(de,"getEvmAccounts");var Ce=a(({instance:e,state:n,updateChainId:t,updateAccounts:r})=>{e?.on("accountsChanged",i=>{n.connected&&r(i)}),e?.on("chainChanged",i=>{t(i)})},"subscribeToEvm"),fe=a(async({instance:e})=>{try{return!!(await e.request({method:"eth_accounts"})).length}catch{return!1}},"canEagerlyConnectToEvm"),Ie=a(async({instance:e,network:n,meta:t})=>{let r=t.filter(O),i=T(e,"ETH");await I(i,n,A(r))},"switchNetworkForEvm"),Ae=a(({network:e,meta:n})=>f(n).includes(e),"canSwitchNetworkToEvm");function f(e){return e.filter(O).map(n=>n.name)}a(f,"evmNetworkNames");function x(e,n){return e&&f(n).includes(e)?"ETH":null}a(x,"getEthChainsInstance");function y(e,n){return e?f(n).includes(e):!1}a(y,"isEvmNetwork");function Oe(e,n,t){t=t||"ETH";let r=y(t,n)?x(t,n):t;return e&&r?e.get(r):null}a(Oe,"chooseInstance");function T(e,n){return e.size?e.get(n):e}a(T,"getNetworkInstance");var R=a(e=>e.filter(n=>!n.info?.experimental).map(n=>n.chainId).filter(n=>!!n),"getCosmosMainChainsIds"),v=a(e=>e.filter(n=>n.info?.experimental).map(n=>n.chainId).filter(n=>!!n),"getCosmosMiscChainsIds"),g=a(e=>e.filter(n=>!!n.info).filter(n=>!!n.chainId).reduce((n,t)=>{let r=E(t.info);r.stakeCurrency.coinImageUrl=window.location.origin+r.stakeCurrency.coinImageUrl,r.currencies=r.currencies.map(c=>({...c,coinImageUrl:window.location.origin+c.coinImageUrl})),r.feeCurrencies=r.feeCurrencies.map(c=>({...c,coinImageUrl:window.location.origin+c.coinImageUrl})),r.gasPriceStep||delete r.gasPriceStep;let{experimental:i,...m}=r;return n[t.name]={id:t.chainId,info:{...m,chainId:t.chainId},experimental:i},n},{}),"getCosmosExperimentalChainInfo");async function P({desiredChainIds:e,instance:n}){let t=e.map(c=>({signer:n.getOfflineSigner(c),chainId:c})).filter(Boolean),r=t.map(({signer:c})=>c.getAccounts()),i=await Promise.allSettled(r),m=[];return i.forEach((c,l)=>{if(c.status!=="fulfilled")return;let u=c.value,{chainId:h}=t[l],d=u.map(C=>C.address);m.push({accounts:d,chainId:h})}),m}a(P,"getMainAccounts");async function k({excludedChain:e,instance:n,meta:t}){let r=v(t).filter(l=>l!==e).map(l=>({signer:n.getOfflineSigner(l),chainId:l})),i=r.map(async({signer:l})=>l.getAccounts()),m=await Promise.allSettled(i),c=[];return m.forEach((l,u)=>{if(l.status!=="fulfilled")return;let h=l.value,{chainId:d}=r[u],C=h.map(S=>S.address);c.push({accounts:C,chainId:d})}),c}a(k,"tryRequestMiscAccounts");var Me=a(async({instance:e,network:n,meta:t})=>{let r=n?g(t)[n]:null;if(n&&!r)throw new Error(`You need to add ${n} to "COSMOS_EXPERIMENTAL_CHAINS_INFO" first.`);r&&await e.experimentalSuggestChain(r.info);let i=R(t);r&&i.push(r.id),i=Array.from(new Set(i)).filter(Boolean),await e.enable(i);let m=await P({desiredChainIds:i,instance:e}),c=r?r.id:void 0,l=c?await k({instance:e,meta:t,excludedChain:c}):[];return[...m,...l]},"getCosmosAccounts"),Be=a(async e=>{let{instance:n,meta:t,network:r}=e,i=r?g(t)[r]:null;if(!i)throw new Error(`You need to add ${r} to "COSMOS_EXPERIMENTAL_CHAINS_INFO" first.`);await n.experimentalSuggestChain(i.info)},"suggestCosmosChain");export{w as IS_DEV,D as KEPLR_COMPATIBLE_WALLETS,p as Networks,M as WalletTypes,_ as XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS,fe as canEagerlyConnectToEvm,Ae as canSwitchNetworkToEvm,Oe as chooseInstance,A as convertEvmBlockchainMetaToEvmChainInfo,E as deepCopy,ee as detectInstallLink,ne as detectMobileScreens,z as evmChainsToRpcMap,f as evmNetworkNames,L as getBlockChainNameFromId,U as getBlockchainChainIdByName,j as getCoinbaseInstance,Me as getCosmosAccounts,g as getCosmosExperimentalChainInfo,x as getEthChainsInstance,de as getEvmAccounts,T as getNetworkInstance,Z as getSolanaAccounts,re as isEvmAddress,Q as sortWalletsBasedOnState,Ce as subscribeToEvm,Be as suggestCosmosChain,Ie as switchNetworkForEvm,I as switchOrAddNetworkForMetamaskCompatibleWallets,$ as timeout,H as uint8ArrayToHex};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/rango.ts", "../src/helpers.ts", "../src/providers.ts", "../src/getCosmosAccounts.ts"],
4
- "sourcesContent": ["import type { BlockchainMeta, EvmBlockchainMeta } from 'rango-types';\n\nexport const IS_DEV =\n !process.env.NODE_ENV || process.env.NODE_ENV === 'development';\n\nexport const getBlockChainNameFromId = (\n chainId: string | number,\n blockchains: BlockchainMeta[]\n): Network | null => {\n chainId =\n typeof chainId === 'string' && chainId.startsWith('0x')\n ? parseInt(chainId)\n : chainId;\n\n /*\n * Sometimes providers are passing `Network` as chainId.\n * If chainId is a `Network`, we return itself.\n */\n const allNetworks = Object.values(Networks) as string[];\n if (allNetworks.includes(String(chainId))) {\n return chainId as Networks;\n }\n\n if (chainId === 'Binance-Chain-Tigris') {\n return Networks.BINANCE;\n }\n return (\n blockchains\n .filter((blockchainMeta) => !!blockchainMeta.chainId)\n .find((blockchainMeta) => {\n const blockchainChainId = blockchainMeta.chainId?.startsWith('0x')\n ? parseInt(blockchainMeta.chainId)\n : blockchainMeta.chainId;\n return blockchainChainId == chainId;\n })?.name || null\n );\n};\n\nexport const getBlockchainChainIdByName = (\n netwok: Network,\n allBlockChains: AllBlockchains\n) => allBlockChains[netwok]?.chainId || null;\n\nexport const uint8ArrayToHex = (buffer: Uint8Array): string => {\n return Buffer.from(buffer).toString('hex');\n};\n\nexport type WalletType = string;\nexport type Network = string;\n\nexport enum WalletTypes {\n META_MASK = 'metamask',\n WALLET_CONNECT_2 = 'wallet-connect-2',\n TRUST_WALLET = 'trust-wallet',\n KEPLR = 'keplr',\n PHANTOM = 'phantom',\n BINANCE_CHAIN = 'binance-chain',\n BITGET = 'bitget',\n TRON_LINK = 'tron-link',\n COINBASE = 'coinbase',\n XDEFI = 'xdefi',\n CLOVER = 'clover',\n ARGENTX = 'argentx',\n FRONTIER = 'frontier',\n COSMOSTATION = 'cosmostation',\n COIN98 = 'coin98',\n SAFEPAL = 'safepal',\n SAFE = 'safe',\n TOKEN_POCKET = 'token-pocket',\n BRAVE = 'brave',\n BRAAVOS = 'braavos',\n MATH = 'math',\n EXODUS = 'exodus',\n OKX = 'okx',\n HALO = 'halo',\n LEAP = 'leap',\n LEAP_COSMOS = 'leap-cosmos',\n STATION = 'station',\n ENKRYPT = 'enkrypt',\n TAHO = 'taho',\n MY_TON_WALLET = 'mytonwallet',\n}\n\nexport enum Networks {\n BTC = 'BTC',\n BSC = 'BSC',\n LTC = 'LTC',\n THORCHAIN = 'THOR',\n BCH = 'BCH',\n BINANCE = 'BNB',\n ETHEREUM = 'ETH',\n POLYGON = 'POLYGON',\n TERRA = 'TERRA',\n POLKADOT = '',\n TRON = 'TRON',\n DOGE = 'DOGE',\n HARMONY = 'HARMONY',\n AVAX_CCHAIN = 'AVAX_CCHAIN',\n FANTOM = 'FANTOM',\n MOONBEAM = 'MOONBEAM',\n ARBITRUM = 'ARBITRUM',\n BOBA = 'BOBA',\n OPTIMISM = 'OPTIMISM',\n FUSE = 'FUSE',\n CRONOS = 'CRONOS',\n SOLANA = 'SOLANA',\n MOONRIVER = 'MOONRIVER',\n GNOSIS = 'GNOSIS',\n COSMOS = 'COSMOS',\n OSMOSIS = 'OSMOSIS',\n AKASH = 'AKASH',\n IRIS = 'IRIS',\n PERSISTENCE = 'PERSISTENCE',\n SENTINEL = 'SENTINEL',\n REGEN = 'REGEN',\n CRYPTO_ORG = 'CRYPTO_ORG',\n SIF = 'SIF',\n CHIHUAHUA = 'CHIHUAHUA',\n JUNO = 'JUNO',\n KUJIRA = 'KUJIRA',\n STARNAME = 'STARNAME',\n COMDEX = 'COMDEX',\n STARGAZE = 'STARGAZE',\n DESMOS = 'DESMOS',\n BITCANNA = 'BITCANNA',\n SECRET = 'SECRET',\n INJECTIVE = 'INJECTIVE',\n LUMNETWORK = 'LUMNETWORK',\n BANDCHAIN = 'BANDCHAIN',\n EMONEY = 'EMONEY',\n BITSONG = 'BITSONG',\n KI = 'KI',\n MEDIBLOC = 'MEDIBLOC',\n KONSTELLATION = 'KONSTELLATION',\n UMEE = 'UMEE',\n STARKNET = 'STARKNET',\n TON = 'TON',\n\n // Using instead of null\n Unknown = 'Unkown',\n}\n\nexport const XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS: string[] = [\n Networks.BTC,\n Networks.LTC,\n Networks.THORCHAIN,\n Networks.BCH,\n Networks.BINANCE,\n];\n\nexport const KEPLR_COMPATIBLE_WALLETS: string[] = [\n WalletTypes.KEPLR,\n WalletTypes.COSMOSTATION,\n];\n\nexport type Asset = {\n blockchain: Network;\n symbol: string;\n address: string | null;\n};\n\nexport type AllBlockchains = { [key: string]: BlockchainMeta };\n\nexport type AddEthereumChainParameter = {\n chainId: string; // A 0x-prefixed hexadecimal string\n chainName: string;\n nativeCurrency: {\n name: string;\n symbol: string; // 2-6 characters long\n decimals: number;\n };\n rpcUrls: string[];\n blockExplorerUrls?: string[];\n iconUrls?: string[]; // Currently ignored.\n};\n\nexport type EvmNetworksChainInfo = { [key: string]: AddEthereumChainParameter };\n\nexport interface Meta {\n blockchains: AllBlockchains;\n evmNetworkChainInfo: EvmNetworksChainInfo;\n getSupportedChainNames: (type: WalletType) => Network[] | null;\n evmBasedChains: EvmBlockchainMeta[];\n}\n\n// core\n\n// wallets/core/src/wallet.ts -> State\nexport interface WalletState {\n connected: boolean;\n connecting: boolean;\n reachable: boolean;\n installed: boolean;\n accounts: string[] | null;\n network: Network | null;\n}\n\nexport interface WalletConfig {\n type: WalletType;\n defaultNetwork?: Network;\n checkInstallation?: boolean;\n isAsyncInstance?: boolean;\n}\n\nexport type GetInstanceOptions = {\n network?: Network;\n currentProvider: any;\n meta: BlockchainMeta[];\n force?: boolean;\n updateChainId: (chainId: number | string) => void;\n getState: () => WalletState;\n};\n\nexport type TryGetInstance =\n | (() => any)\n | ((options: Pick<GetInstanceOptions, 'force' | 'network'>) => Promise<any>);\n\nexport type GetInstance =\n | (() => any)\n | ((options: GetInstanceOptions) => Promise<any>);\n\nexport type ProviderConnectResult = {\n accounts: string[];\n chainId: string;\n};\n\nexport type Connect = (options: {\n instance: any;\n network?: Network;\n meta: BlockchainMeta[];\n}) => Promise<ProviderConnectResult | ProviderConnectResult[]>;\n\nexport type Disconnect = (options: {\n instance: any;\n destroyInstance: () => void;\n}) => Promise<void>;\n\nexport type Subscribe = (options: {\n instance: any;\n state: WalletState;\n meta: BlockchainMeta[];\n updateChainId: (chainId: string) => void;\n updateAccounts: (accounts: string[], chainId?: string) => void;\n connect: (network?: Network) => void;\n disconnect: () => void;\n}) => void;\n\nexport type CanEagerConnect = (options: {\n instance: any;\n meta: BlockchainMeta[];\n}) => Promise<boolean>;\n\nexport type SwitchNetwork = (options: {\n instance: any;\n network: Network;\n meta: BlockchainMeta[];\n newInstance?: TryGetInstance;\n}) => Promise<void>;\n\nexport type CanSwitchNetwork = (options: {\n network: Network;\n meta: BlockchainMeta[];\n provider: any;\n}) => boolean;\n\nexport type InstallObjects = {\n CHROME?: string;\n FIREFOX?: string;\n EDGE?: string;\n BRAVE?: string;\n DEFAULT: string;\n};\n\nexport type WalletInfo = {\n name: string;\n img: string;\n installLink: InstallObjects | string;\n color: string;\n supportedChains: BlockchainMeta[];\n showOnMobile?: boolean;\n mobileWallet?: boolean;\n};\n\nexport interface Wallet {\n type: WalletType;\n extensionAvailable: boolean;\n connected: boolean;\n info: Omit<WalletInfo, 'color' | 'supportedChains'>;\n}\n", "import type { EvmBlockchainMeta } from 'rango-types';\nimport {\n EvmNetworksChainInfo,\n AddEthereumChainParameter,\n Network,\n Networks,\n Connect,\n Wallet,\n InstallObjects,\n} from './rango';\n\nexport { isAddress as isEvmAddress } from 'ethers/lib/utils.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function deepCopy(obj: any): any {\n let copy;\n\n // Handle the 3 simple types, and null or undefined\n if (null == obj || 'object' != typeof obj) return obj;\n\n // Handle Date\n if (obj instanceof Date) {\n copy = new Date();\n copy.setTime(obj.getTime());\n return copy;\n }\n\n // Handle Array\n if (obj instanceof Array) {\n copy = [];\n for (let i = 0, len = obj.length; i < len; i++) {\n copy[i] = deepCopy(obj[i]);\n }\n return copy;\n }\n\n // Handle Object\n if (obj instanceof Object) {\n copy = {} as any;\n for (const attr in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, attr))\n copy[attr] = deepCopy(obj[attr]);\n }\n return copy;\n }\n\n throw new Error(\"Unable to copy obj! Its type isn't supported.\");\n}\n\nexport async function switchOrAddNetworkForMetamaskCompatibleWallets(\n instance: any,\n network: Network,\n evmNetworksChainInfo: EvmNetworksChainInfo\n) {\n const targetChain = evmNetworksChainInfo[network];\n\n try {\n await instance.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: targetChain?.chainId }],\n });\n } catch (switchError) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // To resolve this error: Catch clause variable type annotation must be any or unknown if specified\n const error = switchError as { code: number };\n\n if (!targetChain) {\n throw new Error(\n `It seems you don't have ${network} network on your wallet. Please add it manually.`\n );\n } else if (error.code === 4902 || !error.code) {\n // Note: on WalletConnect `code` is undefined so we have to use !switchError.code as fallback.\n // This error code indicates that the chain has not been added to wallet.\n await instance.request({\n method: 'wallet_addEthereumChain',\n params: [targetChain],\n });\n }\n throw switchError;\n }\n}\n\nexport function timeout<T = any>(\n forPromise: Promise<any>,\n time: number\n): Promise<T> {\n const timeoutPromise = new Promise((_, reject) => {\n setTimeout(() => {\n reject('Timeout!');\n }, time);\n });\n\n return Promise.race([forPromise, timeoutPromise]);\n}\n\nexport const convertEvmBlockchainMetaToEvmChainInfo = (\n evmBlockchains: EvmBlockchainMeta[]\n) =>\n evmBlockchains.reduce(\n (\n evmNetWorksChainInfo: { [key: string]: AddEthereumChainParameter },\n blockchainMeta\n ) => (\n (evmNetWorksChainInfo[blockchainMeta.name] = {\n chainName: blockchainMeta.info.chainName,\n chainId: blockchainMeta.chainId,\n nativeCurrency: blockchainMeta.info.nativeCurrency,\n rpcUrls: blockchainMeta.info.rpcUrls,\n blockExplorerUrls: blockchainMeta.info.blockExplorerUrls,\n }),\n evmNetWorksChainInfo\n ),\n {}\n );\n\nexport const evmChainsToRpcMap = (\n evmNetworkChainInfo: EvmNetworksChainInfo\n) => {\n return Object.fromEntries(\n new Map(\n Object.keys(evmNetworkChainInfo).map((chainName) => {\n const info = evmNetworkChainInfo[chainName];\n\n // This `if` is only used for satisfying typescript,\n // Because we iterating over Object.keys(EVM_NETWORKS_CHAIN_INFO)\n // And obviously it cannot be `undefined` and always has a value.\n if (info) {\n return [parseInt(info.chainId), info.rpcUrls[0]];\n }\n return [0, ''];\n })\n )\n );\n};\n\nexport const getSolanaAccounts: Connect = async ({ instance }) => {\n // Asking for account from wallet.\n const solanaResponse = await instance.connect();\n\n const account = solanaResponse.publicKey.toString();\n return {\n accounts: [account],\n chainId: Networks.SOLANA,\n };\n};\n\nexport function getCoinbaseInstance(\n lookingFor: 'coinbase' | 'metamask' = 'coinbase'\n) {\n const { ethereum, coinbaseSolana } = window;\n const instances = new Map();\n if (ethereum) {\n const checker =\n lookingFor === 'metamask' ? 'isMetaMask' : 'isCoinbaseWallet';\n\n // If only Coinbase Wallet is installed\n if (lookingFor === 'coinbase' && ethereum[checker]) {\n instances.set(Networks.ETHEREUM, ethereum);\n }\n // If Coinbase Wallet and Metamask is installed at the same time.\n else if (ethereum.providers?.length) {\n const ethInstance = ethereum.providers.find((provider: any) => {\n return provider[checker];\n });\n instances.set(Networks.ETHEREUM, ethInstance);\n }\n }\n if (!!coinbaseSolana && lookingFor === 'coinbase')\n instances.set(Networks.SOLANA, coinbaseSolana);\n\n if (instances.size === 0) return null;\n\n if (lookingFor === 'metamask') return instances.get(Networks.ETHEREUM);\n\n return instances;\n}\n\nexport function sortWalletsBasedOnState(wallets: Wallet[]): Wallet[] {\n return wallets.sort(\n (a, b) =>\n Number(b.connected) - Number(a.connected) ||\n Number(b.extensionAvailable) - Number(a.extensionAvailable)\n );\n}\n\nfunction isBrave() {\n let isBrave = false;\n const nav: any = navigator;\n if (nav.brave && nav.brave.isBrave) {\n nav.brave.isBrave().then((res: boolean) => {\n if (res) isBrave = true;\n });\n }\n\n return isBrave;\n}\n\nexport function detectInstallLink(install: InstallObjects | string): string {\n if (typeof install !== 'object') {\n return install;\n } else {\n let link;\n if (isBrave()) {\n link = install.BRAVE;\n } else if (navigator.userAgent?.toLowerCase().indexOf('chrome') !== -1) {\n link = install.CHROME;\n } else if (navigator.userAgent?.toLowerCase().indexOf('firefox') !== -1) {\n link = install.FIREFOX;\n } else if (navigator.userAgent?.toLowerCase().indexOf('edge') !== -1) {\n link = install.EDGE;\n }\n return link || install.DEFAULT;\n }\n}\n\nexport function detectMobileScreens(): boolean {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n}\n", "import {\n Network,\n CanSwitchNetwork,\n Subscribe,\n SwitchNetwork,\n Networks,\n CanEagerConnect,\n} from './rango';\nimport { convertEvmBlockchainMetaToEvmChainInfo } from './helpers';\nimport { switchOrAddNetworkForMetamaskCompatibleWallets } from './helpers';\nimport type { BlockchainMeta } from 'rango-types';\nimport { isEvmBlockchain } from 'rango-types';\n\nexport async function getEvmAccounts(instance: any) {\n const [accounts, chainId] = await Promise.all([\n instance.request({ method: 'eth_requestAccounts' }) as Promise<string[]>,\n instance.request({ method: 'eth_chainId' }) as Promise<string>,\n ]);\n\n return {\n accounts,\n chainId,\n };\n}\n\nexport const subscribeToEvm: Subscribe = ({\n instance,\n state,\n updateChainId,\n updateAccounts,\n}) => {\n instance?.on('accountsChanged', (addresses: string[]) => {\n // TODO: after enabling autoconnect, we can consider this condition\n // to be removed.\n // The problem was if a user already connected its wallet,\n // Metamask is triggering this event on first load, so when autoconnect is disabled,\n // it's automaticlally change the state of wallet to `connected`.\n if (state.connected) {\n updateAccounts(addresses);\n }\n });\n\n instance?.on('chainChanged', (chainId: string) => {\n updateChainId(chainId);\n });\n};\n\nexport const canEagerlyConnectToEvm: CanEagerConnect = async ({ instance }) => {\n try {\n const accounts: string[] = await instance.request({\n method: 'eth_accounts',\n });\n if (accounts.length) return true;\n else return false;\n } catch (error) {\n return false;\n }\n};\n\nexport const switchNetworkForEvm: SwitchNetwork = async ({\n instance,\n network,\n meta,\n}) => {\n const evmBlockchains = meta.filter(isEvmBlockchain);\n const evmInstance = getNetworkInstance(instance, Networks.ETHEREUM);\n await switchOrAddNetworkForMetamaskCompatibleWallets(\n evmInstance,\n network,\n convertEvmBlockchainMetaToEvmChainInfo(evmBlockchains)\n );\n};\n\nexport const canSwitchNetworkToEvm: CanSwitchNetwork = ({ network, meta }) => {\n return evmNetworkNames(meta).includes(network);\n};\n\nexport function evmNetworkNames(meta: BlockchainMeta[]) {\n return meta.filter(isEvmBlockchain).map((blockchain) => blockchain.name);\n}\nexport function getEthChainsInstance(\n network: Network | null,\n meta: BlockchainMeta[]\n): Network | null {\n if (!network) return null;\n const evmBlockchains = evmNetworkNames(meta);\n return evmBlockchains.includes(network) ? Networks.ETHEREUM : null;\n}\n\nfunction isEvmNetwork(network: Network | null, meta: BlockchainMeta[]) {\n if (!network) return false;\n\n return evmNetworkNames(meta).includes(network);\n}\n\nexport function chooseInstance(\n instances: null | Map<any, any>,\n meta: BlockchainMeta[],\n network?: Network | null\n) {\n // If there is no `network` we fallback to default network.\n network = network || Networks.ETHEREUM;\n const instance_network_name = isEvmNetwork(network, meta)\n ? getEthChainsInstance(network, meta)\n : network;\n const instance =\n !!instances && !!instance_network_name\n ? instances.get(instance_network_name)\n : null;\n\n return instance;\n}\n\nexport function getNetworkInstance(provider: any, network: Network) {\n return provider.size ? provider.get(network) : provider;\n}\n", "import type {\n BlockchainMeta,\n CosmosBlockchainMeta,\n CosmosChainInfo,\n} from 'rango-types';\nimport { deepCopy } from './helpers';\nimport { Connect, ProviderConnectResult } from './rango';\nimport { Keplr as InstanceType } from '@keplr-wallet/types';\n\nexport interface CosmosInfo extends Omit<CosmosChainInfo, 'experimental'> {\n chainId: string;\n}\n\nexport type CosmosExperimentalChainsInfo = {\n [k: string]: { id: string; info: CosmosInfo; experimental: boolean };\n};\n\ninterface CosmosBlockchainMetaWithChainId\n extends Omit<CosmosBlockchainMeta, 'chainId'> {\n chainId: string;\n}\n\nconst getCosmosMainChainsIds = (blockchains: CosmosBlockchainMeta[]) =>\n blockchains\n .filter((blockchain) => !blockchain.info?.experimental)\n .map((blockchain) => blockchain.chainId)\n .filter((chainId): chainId is string => !!chainId);\n\nconst getCosmosMiscChainsIds = (blockchains: CosmosBlockchainMeta[]) =>\n blockchains\n .filter((blockchain) => blockchain.info?.experimental)\n .map((blockchain) => blockchain.chainId)\n .filter((chainId): chainId is string => !!chainId);\n\nexport const getCosmosExperimentalChainInfo = (\n blockchains: CosmosBlockchainMeta[]\n) =>\n blockchains\n .filter((blockchain) => !!blockchain.info)\n .filter(\n (blockchain): blockchain is CosmosBlockchainMetaWithChainId =>\n !!blockchain.chainId\n )\n .reduce(\n (\n cosmosExperimentalChainsInfo: CosmosExperimentalChainsInfo,\n blockchain\n ) => {\n const info = deepCopy(blockchain.info) as CosmosChainInfo;\n info.stakeCurrency.coinImageUrl =\n window.location.origin + info.stakeCurrency.coinImageUrl;\n info.currencies = info.currencies.map((currency) => ({\n ...currency,\n coinImageUrl: window.location.origin + currency.coinImageUrl,\n }));\n info.feeCurrencies = info.feeCurrencies.map((currency) => ({\n ...currency,\n coinImageUrl: window.location.origin + currency.coinImageUrl,\n }));\n if (!info.gasPriceStep) delete info.gasPriceStep;\n const { experimental, ...otherProperties } = info;\n return (\n (cosmosExperimentalChainsInfo[blockchain.name] = {\n id: blockchain.chainId,\n info: { ...otherProperties, chainId: blockchain.chainId },\n experimental: experimental,\n }),\n cosmosExperimentalChainsInfo\n );\n },\n {}\n );\n\nasync function getMainAccounts({\n desiredChainIds,\n instance,\n}: {\n desiredChainIds: string[];\n instance: any;\n}): Promise<ProviderConnectResult[]> {\n // Trying to get accounts from all chains\n const offlineSigners = desiredChainIds\n .map((chainId) => {\n const signer = instance.getOfflineSigner(chainId);\n return {\n signer,\n chainId,\n };\n })\n .filter(Boolean);\n const accountsPromises = offlineSigners.map(({ signer }) =>\n signer.getAccounts()\n );\n const availableAccountForChains = await Promise.allSettled(accountsPromises);\n const resolvedAccounts: ProviderConnectResult[] = [];\n availableAccountForChains.forEach((result, index) => {\n if (result.status !== 'fulfilled') return;\n\n const accounts = result.value;\n const { chainId } = offlineSigners[index];\n const addresses = accounts.map(\n (account: { address: any }) => account.address\n );\n\n resolvedAccounts.push({ accounts: addresses, chainId });\n });\n return resolvedAccounts;\n}\n\nasync function tryRequestMiscAccounts({\n excludedChain,\n instance,\n meta,\n}: {\n excludedChain?: string;\n instance: InstanceType;\n meta: BlockchainMeta[];\n}): Promise<ProviderConnectResult[]> {\n const offlineSigners = getCosmosMiscChainsIds(meta as CosmosBlockchainMeta[])\n .filter((id) => id !== excludedChain)\n .map((chainId) => {\n const signer = instance.getOfflineSigner(chainId);\n return {\n signer,\n chainId,\n };\n });\n const accountsPromises = offlineSigners.map(({ signer }) =>\n signer.getAccounts()\n );\n const availableAccountForChains = await Promise.allSettled(accountsPromises);\n\n const resolvedAccounts: ProviderConnectResult[] = [];\n availableAccountForChains.forEach((result, index) => {\n if (result.status !== 'fulfilled') return;\n\n const accounts = result.value;\n const { chainId } = offlineSigners[index];\n const addresses = accounts.map((account) => account.address);\n\n resolvedAccounts.push({ accounts: addresses, chainId });\n });\n\n return resolvedAccounts;\n}\n\nexport const getCosmosAccounts: Connect = async ({\n instance,\n network,\n meta,\n}) => {\n const chainInfo = network\n ? getCosmosExperimentalChainInfo(meta as CosmosBlockchainMeta[])[network]\n : null;\n\n if (!!network && !chainInfo) {\n throw new Error(\n `You need to add ${network} to \"COSMOS_EXPERIMENTAL_CHAINS_INFO\" first.`\n );\n }\n\n // Asking for connect to wallet.\n if (!!chainInfo) {\n await instance.experimentalSuggestChain(chainInfo.info);\n }\n\n // Getting main chains + target network\n let desiredChainIds: string[] = getCosmosMainChainsIds(\n meta as CosmosBlockchainMeta[]\n );\n if (!!chainInfo) {\n desiredChainIds.push(chainInfo!.id);\n }\n desiredChainIds = Array.from(new Set(desiredChainIds)).filter(Boolean);\n\n await instance.enable(desiredChainIds);\n\n const mainAccounts = await getMainAccounts({\n desiredChainIds,\n instance,\n });\n\n const exclude = !!chainInfo ? chainInfo.id : undefined;\n const miscAccounts = exclude\n ? await tryRequestMiscAccounts({\n instance,\n meta,\n excludedChain: exclude,\n })\n : [];\n\n const results = [...mainAccounts, ...miscAccounts];\n return results;\n};\n"],
5
- "mappings": "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",
6
- "names": ["IS_DEV", "getBlockChainNameFromId", "__name", "chainId", "blockchains", "Networks", "blockchainMeta", "getBlockchainChainIdByName", "netwok", "allBlockChains", "uint8ArrayToHex", "buffer", "WalletTypes", "XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS", "KEPLR_COMPATIBLE_WALLETS", "isAddress", "deepCopy", "obj", "copy", "i", "len", "attr", "__name", "switchOrAddNetworkForMetamaskCompatibleWallets", "instance", "network", "evmNetworksChainInfo", "targetChain", "switchError", "error", "timeout", "forPromise", "time", "timeoutPromise", "_", "reject", "convertEvmBlockchainMetaToEvmChainInfo", "evmBlockchains", "evmNetWorksChainInfo", "blockchainMeta", "evmChainsToRpcMap", "evmNetworkChainInfo", "chainName", "info", "getSolanaAccounts", "getCoinbaseInstance", "lookingFor", "ethereum", "coinbaseSolana", "instances", "checker", "ethInstance", "provider", "sortWalletsBasedOnState", "wallets", "a", "b", "isBrave", "nav", "res", "detectInstallLink", "install", "link", "detectMobileScreens", "isEvmBlockchain", "getEvmAccounts", "instance", "accounts", "chainId", "__name", "subscribeToEvm", "state", "updateChainId", "updateAccounts", "addresses", "canEagerlyConnectToEvm", "switchNetworkForEvm", "network", "meta", "evmBlockchains", "isEvmBlockchain", "evmInstance", "getNetworkInstance", "switchOrAddNetworkForMetamaskCompatibleWallets", "convertEvmBlockchainMetaToEvmChainInfo", "canSwitchNetworkToEvm", "evmNetworkNames", "blockchain", "getEthChainsInstance", "isEvmNetwork", "chooseInstance", "instances", "instance_network_name", "provider", "getCosmosMainChainsIds", "__name", "blockchains", "blockchain", "chainId", "getCosmosMiscChainsIds", "getCosmosExperimentalChainInfo", "cosmosExperimentalChainsInfo", "info", "deepCopy", "currency", "experimental", "otherProperties", "getMainAccounts", "desiredChainIds", "instance", "offlineSigners", "accountsPromises", "signer", "availableAccountForChains", "resolvedAccounts", "result", "index", "accounts", "addresses", "account", "tryRequestMiscAccounts", "excludedChain", "meta", "id", "getCosmosAccounts", "network", "chainInfo", "mainAccounts", "exclude", "miscAccounts"]
4
+ "sourcesContent": ["import type { BlockchainMeta, EvmBlockchainMeta } from 'rango-types';\n\nexport const IS_DEV =\n !process.env.NODE_ENV || process.env.NODE_ENV === 'development';\n\nexport const getBlockChainNameFromId = (\n chainId: string | number,\n blockchains: BlockchainMeta[]\n): Network | null => {\n chainId =\n typeof chainId === 'string' && chainId.startsWith('0x')\n ? parseInt(chainId)\n : chainId;\n\n /*\n * Sometimes providers are passing `Network` as chainId.\n * If chainId is a `Network`, we return itself.\n */\n const allNetworks = Object.values(Networks) as string[];\n if (allNetworks.includes(String(chainId))) {\n return chainId as Networks;\n }\n\n if (chainId === 'Binance-Chain-Tigris') {\n return Networks.BINANCE;\n }\n return (\n blockchains\n .filter((blockchainMeta) => !!blockchainMeta.chainId)\n .find((blockchainMeta) => {\n const blockchainChainId = blockchainMeta.chainId?.startsWith('0x')\n ? parseInt(blockchainMeta.chainId)\n : blockchainMeta.chainId;\n return blockchainChainId == chainId;\n })?.name || null\n );\n};\n\nexport const getBlockchainChainIdByName = (\n netwok: Network,\n allBlockChains: AllBlockchains\n) => allBlockChains[netwok]?.chainId || null;\n\nexport const uint8ArrayToHex = (buffer: Uint8Array): string => {\n return Buffer.from(buffer).toString('hex');\n};\n\nexport type WalletType = string;\nexport type Network = string;\n\nexport enum WalletTypes {\n META_MASK = 'metamask',\n WALLET_CONNECT_2 = 'wallet-connect-2',\n TRUST_WALLET = 'trust-wallet',\n KEPLR = 'keplr',\n PHANTOM = 'phantom',\n BINANCE_CHAIN = 'binance-chain',\n BITGET = 'bitget',\n TRON_LINK = 'tron-link',\n COINBASE = 'coinbase',\n XDEFI = 'xdefi',\n CLOVER = 'clover',\n ARGENTX = 'argentx',\n FRONTIER = 'frontier',\n COSMOSTATION = 'cosmostation',\n COIN98 = 'coin98',\n SAFEPAL = 'safepal',\n SAFE = 'safe',\n TOKEN_POCKET = 'token-pocket',\n BRAVE = 'brave',\n BRAAVOS = 'braavos',\n MATH = 'math',\n EXODUS = 'exodus',\n OKX = 'okx',\n HALO = 'halo',\n LEAP = 'leap',\n LEAP_COSMOS = 'leap-cosmos',\n STATION = 'station',\n ENKRYPT = 'enkrypt',\n TAHO = 'taho',\n MY_TON_WALLET = 'mytonwallet',\n}\n\nexport enum Networks {\n BTC = 'BTC',\n BSC = 'BSC',\n LTC = 'LTC',\n THORCHAIN = 'THOR',\n BCH = 'BCH',\n BINANCE = 'BNB',\n ETHEREUM = 'ETH',\n POLYGON = 'POLYGON',\n TERRA = 'TERRA',\n POLKADOT = '',\n TRON = 'TRON',\n DOGE = 'DOGE',\n HARMONY = 'HARMONY',\n AVAX_CCHAIN = 'AVAX_CCHAIN',\n FANTOM = 'FANTOM',\n MOONBEAM = 'MOONBEAM',\n ARBITRUM = 'ARBITRUM',\n BOBA = 'BOBA',\n OPTIMISM = 'OPTIMISM',\n FUSE = 'FUSE',\n CRONOS = 'CRONOS',\n SOLANA = 'SOLANA',\n MOONRIVER = 'MOONRIVER',\n GNOSIS = 'GNOSIS',\n COSMOS = 'COSMOS',\n OSMOSIS = 'OSMOSIS',\n AKASH = 'AKASH',\n IRIS = 'IRIS',\n PERSISTENCE = 'PERSISTENCE',\n SENTINEL = 'SENTINEL',\n REGEN = 'REGEN',\n CRYPTO_ORG = 'CRYPTO_ORG',\n SIF = 'SIF',\n CHIHUAHUA = 'CHIHUAHUA',\n JUNO = 'JUNO',\n KUJIRA = 'KUJIRA',\n STARNAME = 'STARNAME',\n COMDEX = 'COMDEX',\n STARGAZE = 'STARGAZE',\n DESMOS = 'DESMOS',\n BITCANNA = 'BITCANNA',\n SECRET = 'SECRET',\n INJECTIVE = 'INJECTIVE',\n LUMNETWORK = 'LUMNETWORK',\n BANDCHAIN = 'BANDCHAIN',\n EMONEY = 'EMONEY',\n BITSONG = 'BITSONG',\n KI = 'KI',\n MEDIBLOC = 'MEDIBLOC',\n KONSTELLATION = 'KONSTELLATION',\n UMEE = 'UMEE',\n STARKNET = 'STARKNET',\n TON = 'TON',\n\n // Using instead of null\n Unknown = 'Unkown',\n}\n\nexport const XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS: string[] = [\n Networks.BTC,\n Networks.LTC,\n Networks.THORCHAIN,\n Networks.BCH,\n Networks.BINANCE,\n];\n\nexport const KEPLR_COMPATIBLE_WALLETS: string[] = [\n WalletTypes.KEPLR,\n WalletTypes.COSMOSTATION,\n WalletTypes.LEAP_COSMOS,\n];\n\nexport type Asset = {\n blockchain: Network;\n symbol: string;\n address: string | null;\n};\n\nexport type AllBlockchains = { [key: string]: BlockchainMeta };\n\nexport type AddEthereumChainParameter = {\n chainId: string; // A 0x-prefixed hexadecimal string\n chainName: string;\n nativeCurrency: {\n name: string;\n symbol: string; // 2-6 characters long\n decimals: number;\n };\n rpcUrls: string[];\n blockExplorerUrls?: string[];\n iconUrls?: string[]; // Currently ignored.\n};\n\nexport type EvmNetworksChainInfo = { [key: string]: AddEthereumChainParameter };\n\nexport interface Meta {\n blockchains: AllBlockchains;\n evmNetworkChainInfo: EvmNetworksChainInfo;\n getSupportedChainNames: (type: WalletType) => Network[] | null;\n evmBasedChains: EvmBlockchainMeta[];\n}\n\n// core\n\n// wallets/core/src/wallet.ts -> State\nexport interface WalletState {\n connected: boolean;\n connecting: boolean;\n reachable: boolean;\n installed: boolean;\n accounts: string[] | null;\n network: Network | null;\n}\n\nexport interface WalletConfig {\n type: WalletType;\n defaultNetwork?: Network;\n checkInstallation?: boolean;\n isAsyncInstance?: boolean;\n}\n\nexport type GetInstanceOptions = {\n network?: Network;\n currentProvider: any;\n meta: BlockchainMeta[];\n force?: boolean;\n updateChainId: (chainId: number | string) => void;\n getState: () => WalletState;\n};\n\nexport type TryGetInstance =\n | (() => any)\n | ((options: Pick<GetInstanceOptions, 'force' | 'network'>) => Promise<any>);\n\nexport type GetInstance =\n | (() => any)\n | ((options: GetInstanceOptions) => Promise<any>);\n\nexport type ProviderConnectResult = {\n accounts: string[];\n chainId: string;\n};\n\nexport type Connect = (options: {\n instance: any;\n network?: Network;\n meta: BlockchainMeta[];\n}) => Promise<ProviderConnectResult | ProviderConnectResult[]>;\n\nexport type Disconnect = (options: {\n instance: any;\n destroyInstance: () => void;\n}) => Promise<void>;\n\nexport type Subscribe = (options: {\n instance: any;\n state: WalletState;\n meta: BlockchainMeta[];\n updateChainId: (chainId: string) => void;\n updateAccounts: (accounts: string[], chainId?: string) => void;\n connect: (network?: Network) => void;\n disconnect: () => void;\n}) => void;\n\nexport type CanEagerConnect = (options: {\n instance: any;\n meta: BlockchainMeta[];\n}) => Promise<boolean>;\n\nexport type SwitchNetwork = (options: {\n instance: any;\n network: Network;\n meta: BlockchainMeta[];\n newInstance?: TryGetInstance;\n}) => Promise<void>;\n\nexport type Suggest = (options: {\n instance: any;\n network: Network;\n meta: BlockchainMeta[];\n}) => Promise<void>;\n\nexport type CanSwitchNetwork = (options: {\n network: Network;\n meta: BlockchainMeta[];\n provider: any;\n}) => boolean;\n\nexport type InstallObjects = {\n CHROME?: string;\n FIREFOX?: string;\n EDGE?: string;\n BRAVE?: string;\n DEFAULT: string;\n};\n\nexport type WalletInfo = {\n name: string;\n img: string;\n installLink: InstallObjects | string;\n color: string;\n supportedChains: BlockchainMeta[];\n showOnMobile?: boolean;\n hideWhenNotInstalled?: boolean;\n mobileWallet?: boolean;\n};\n\nexport interface Wallet {\n type: WalletType;\n extensionAvailable: boolean;\n connected: boolean;\n info: Omit<WalletInfo, 'color' | 'supportedChains'>;\n}\n", "import type { EvmBlockchainMeta } from 'rango-types';\nimport {\n EvmNetworksChainInfo,\n AddEthereumChainParameter,\n Network,\n Networks,\n Connect,\n Wallet,\n InstallObjects,\n} from './rango';\n\nexport { isAddress as isEvmAddress } from 'ethers/lib/utils.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function deepCopy(obj: any): any {\n let copy;\n\n // Handle the 3 simple types, and null or undefined\n if (null == obj || 'object' != typeof obj) return obj;\n\n // Handle Date\n if (obj instanceof Date) {\n copy = new Date();\n copy.setTime(obj.getTime());\n return copy;\n }\n\n // Handle Array\n if (obj instanceof Array) {\n copy = [];\n for (let i = 0, len = obj.length; i < len; i++) {\n copy[i] = deepCopy(obj[i]);\n }\n return copy;\n }\n\n // Handle Object\n if (obj instanceof Object) {\n copy = {} as any;\n for (const attr in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, attr))\n copy[attr] = deepCopy(obj[attr]);\n }\n return copy;\n }\n\n throw new Error(\"Unable to copy obj! Its type isn't supported.\");\n}\n\nexport async function switchOrAddNetworkForMetamaskCompatibleWallets(\n instance: any,\n network: Network,\n evmNetworksChainInfo: EvmNetworksChainInfo\n) {\n const targetChain = evmNetworksChainInfo[network];\n\n try {\n await instance.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: targetChain?.chainId }],\n });\n } catch (switchError) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // To resolve this error: Catch clause variable type annotation must be any or unknown if specified\n const error = switchError as { code: number };\n\n if (!targetChain) {\n throw new Error(\n `It seems you don't have ${network} network on your wallet. Please add it manually.`\n );\n } else if (error.code === 4902 || !error.code) {\n // Note: on WalletConnect `code` is undefined so we have to use !switchError.code as fallback.\n // This error code indicates that the chain has not been added to wallet.\n await instance.request({\n method: 'wallet_addEthereumChain',\n params: [targetChain],\n });\n }\n throw switchError;\n }\n}\n\nexport function timeout<T = any>(\n forPromise: Promise<any>,\n time: number\n): Promise<T> {\n const timeoutPromise = new Promise((_, reject) => {\n setTimeout(() => {\n reject('Timeout!');\n }, time);\n });\n\n return Promise.race([forPromise, timeoutPromise]);\n}\n\nexport const convertEvmBlockchainMetaToEvmChainInfo = (\n evmBlockchains: EvmBlockchainMeta[]\n) =>\n evmBlockchains.reduce(\n (\n evmNetWorksChainInfo: { [key: string]: AddEthereumChainParameter },\n blockchainMeta\n ) => (\n (evmNetWorksChainInfo[blockchainMeta.name] = {\n chainName: blockchainMeta.info.chainName,\n chainId: blockchainMeta.chainId,\n nativeCurrency: blockchainMeta.info.nativeCurrency,\n rpcUrls: blockchainMeta.info.rpcUrls,\n blockExplorerUrls: blockchainMeta.info.blockExplorerUrls,\n }),\n evmNetWorksChainInfo\n ),\n {}\n );\n\nexport const evmChainsToRpcMap = (\n evmNetworkChainInfo: EvmNetworksChainInfo\n) => {\n return Object.fromEntries(\n new Map(\n Object.keys(evmNetworkChainInfo).map((chainName) => {\n const info = evmNetworkChainInfo[chainName];\n\n // This `if` is only used for satisfying typescript,\n // Because we iterating over Object.keys(EVM_NETWORKS_CHAIN_INFO)\n // And obviously it cannot be `undefined` and always has a value.\n if (info) {\n return [parseInt(info.chainId), info.rpcUrls[0]];\n }\n return [0, ''];\n })\n )\n );\n};\n\nexport const getSolanaAccounts: Connect = async ({ instance }) => {\n // Asking for account from wallet.\n const solanaResponse = await instance.connect();\n\n const account = solanaResponse.publicKey.toString();\n return {\n accounts: [account],\n chainId: Networks.SOLANA,\n };\n};\n\nexport function getCoinbaseInstance(\n lookingFor: 'coinbase' | 'metamask' = 'coinbase'\n) {\n const { ethereum, coinbaseSolana } = window;\n const instances = new Map();\n if (ethereum) {\n const checker =\n lookingFor === 'metamask' ? 'isMetaMask' : 'isCoinbaseWallet';\n\n // If only Coinbase Wallet is installed\n if (lookingFor === 'coinbase' && ethereum[checker]) {\n instances.set(Networks.ETHEREUM, ethereum);\n }\n // If Coinbase Wallet and Metamask is installed at the same time.\n else if (ethereum.providers?.length) {\n const ethInstance = ethereum.providers.find((provider: any) => {\n return provider[checker];\n });\n instances.set(Networks.ETHEREUM, ethInstance);\n }\n }\n if (!!coinbaseSolana && lookingFor === 'coinbase')\n instances.set(Networks.SOLANA, coinbaseSolana);\n\n if (instances.size === 0) return null;\n\n if (lookingFor === 'metamask') return instances.get(Networks.ETHEREUM);\n\n return instances;\n}\n\nexport function sortWalletsBasedOnState(wallets: Wallet[]): Wallet[] {\n return wallets.sort(\n (a, b) =>\n Number(b.connected) - Number(a.connected) ||\n Number(b.extensionAvailable) - Number(a.extensionAvailable)\n );\n}\n\nfunction isBrave() {\n let isBrave = false;\n const nav: any = navigator;\n if (nav.brave && nav.brave.isBrave) {\n nav.brave.isBrave().then((res: boolean) => {\n if (res) isBrave = true;\n });\n }\n\n return isBrave;\n}\n\nexport function detectInstallLink(install: InstallObjects | string): string {\n if (typeof install !== 'object') {\n return install;\n } else {\n let link;\n if (isBrave()) {\n link = install.BRAVE;\n } else if (navigator.userAgent?.toLowerCase().indexOf('chrome') !== -1) {\n link = install.CHROME;\n } else if (navigator.userAgent?.toLowerCase().indexOf('firefox') !== -1) {\n link = install.FIREFOX;\n } else if (navigator.userAgent?.toLowerCase().indexOf('edge') !== -1) {\n link = install.EDGE;\n }\n return link || install.DEFAULT;\n }\n}\n\nexport function detectMobileScreens(): boolean {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n}\n", "import {\n Network,\n CanSwitchNetwork,\n Subscribe,\n SwitchNetwork,\n Networks,\n CanEagerConnect,\n} from './rango';\nimport { convertEvmBlockchainMetaToEvmChainInfo } from './helpers';\nimport { switchOrAddNetworkForMetamaskCompatibleWallets } from './helpers';\nimport type { BlockchainMeta } from 'rango-types';\nimport { isEvmBlockchain } from 'rango-types';\n\nexport async function getEvmAccounts(instance: any) {\n const [accounts, chainId] = await Promise.all([\n instance.request({ method: 'eth_requestAccounts' }) as Promise<string[]>,\n instance.request({ method: 'eth_chainId' }) as Promise<string>,\n ]);\n\n return {\n accounts,\n chainId,\n };\n}\n\nexport const subscribeToEvm: Subscribe = ({\n instance,\n state,\n updateChainId,\n updateAccounts,\n}) => {\n instance?.on('accountsChanged', (addresses: string[]) => {\n // TODO: after enabling autoconnect, we can consider this condition\n // to be removed.\n // The problem was if a user already connected its wallet,\n // Metamask is triggering this event on first load, so when autoconnect is disabled,\n // it's automaticlally change the state of wallet to `connected`.\n if (state.connected) {\n updateAccounts(addresses);\n }\n });\n\n instance?.on('chainChanged', (chainId: string) => {\n updateChainId(chainId);\n });\n};\n\nexport const canEagerlyConnectToEvm: CanEagerConnect = async ({ instance }) => {\n try {\n const accounts: string[] = await instance.request({\n method: 'eth_accounts',\n });\n if (accounts.length) return true;\n else return false;\n } catch (error) {\n return false;\n }\n};\n\nexport const switchNetworkForEvm: SwitchNetwork = async ({\n instance,\n network,\n meta,\n}) => {\n const evmBlockchains = meta.filter(isEvmBlockchain);\n const evmInstance = getNetworkInstance(instance, Networks.ETHEREUM);\n await switchOrAddNetworkForMetamaskCompatibleWallets(\n evmInstance,\n network,\n convertEvmBlockchainMetaToEvmChainInfo(evmBlockchains)\n );\n};\n\nexport const canSwitchNetworkToEvm: CanSwitchNetwork = ({ network, meta }) => {\n return evmNetworkNames(meta).includes(network);\n};\n\nexport function evmNetworkNames(meta: BlockchainMeta[]) {\n return meta.filter(isEvmBlockchain).map((blockchain) => blockchain.name);\n}\nexport function getEthChainsInstance(\n network: Network | null,\n meta: BlockchainMeta[]\n): Network | null {\n if (!network) return null;\n const evmBlockchains = evmNetworkNames(meta);\n return evmBlockchains.includes(network) ? Networks.ETHEREUM : null;\n}\n\nfunction isEvmNetwork(network: Network | null, meta: BlockchainMeta[]) {\n if (!network) return false;\n\n return evmNetworkNames(meta).includes(network);\n}\n\nexport function chooseInstance(\n instances: null | Map<any, any>,\n meta: BlockchainMeta[],\n network?: Network | null\n) {\n // If there is no `network` we fallback to default network.\n network = network || Networks.ETHEREUM;\n const instance_network_name = isEvmNetwork(network, meta)\n ? getEthChainsInstance(network, meta)\n : network;\n const instance =\n !!instances && !!instance_network_name\n ? instances.get(instance_network_name)\n : null;\n\n return instance;\n}\n\nexport function getNetworkInstance(provider: any, network: Network) {\n return provider.size ? provider.get(network) : provider;\n}\n", "import type { Connect, ProviderConnectResult, Suggest } from './rango';\nimport type { Keplr as InstanceType } from '@keplr-wallet/types';\nimport type {\n BlockchainMeta,\n CosmosBlockchainMeta,\n CosmosChainInfo,\n} from 'rango-types';\n\nimport { deepCopy } from './helpers';\n\nexport interface CosmosInfo extends Omit<CosmosChainInfo, 'experimental'> {\n chainId: string;\n}\n\nexport type CosmosExperimentalChainsInfo = {\n [k: string]: { id: string; info: CosmosInfo; experimental: boolean };\n};\n\ninterface CosmosBlockchainMetaWithChainId\n extends Omit<CosmosBlockchainMeta, 'chainId'> {\n chainId: string;\n}\n\nconst getCosmosMainChainsIds = (blockchains: CosmosBlockchainMeta[]) =>\n blockchains\n .filter((blockchain) => !blockchain.info?.experimental)\n .map((blockchain) => blockchain.chainId)\n .filter((chainId): chainId is string => !!chainId);\n\nconst getCosmosMiscChainsIds = (blockchains: CosmosBlockchainMeta[]) =>\n blockchains\n .filter((blockchain) => blockchain.info?.experimental)\n .map((blockchain) => blockchain.chainId)\n .filter((chainId): chainId is string => !!chainId);\n\nexport const getCosmosExperimentalChainInfo = (\n blockchains: CosmosBlockchainMeta[]\n) =>\n blockchains\n .filter((blockchain) => !!blockchain.info)\n .filter(\n (blockchain): blockchain is CosmosBlockchainMetaWithChainId =>\n !!blockchain.chainId\n )\n .reduce(\n (\n cosmosExperimentalChainsInfo: CosmosExperimentalChainsInfo,\n blockchain\n ) => {\n const info = deepCopy(blockchain.info) as CosmosChainInfo;\n info.stakeCurrency.coinImageUrl =\n window.location.origin + info.stakeCurrency.coinImageUrl;\n info.currencies = info.currencies.map((currency) => ({\n ...currency,\n coinImageUrl: window.location.origin + currency.coinImageUrl,\n }));\n info.feeCurrencies = info.feeCurrencies.map((currency) => ({\n ...currency,\n coinImageUrl: window.location.origin + currency.coinImageUrl,\n }));\n if (!info.gasPriceStep) {\n delete info.gasPriceStep;\n }\n const { experimental, ...otherProperties } = info;\n return (\n (cosmosExperimentalChainsInfo[blockchain.name] = {\n id: blockchain.chainId,\n info: { ...otherProperties, chainId: blockchain.chainId },\n experimental: experimental,\n }),\n cosmosExperimentalChainsInfo\n );\n },\n {}\n );\n\nasync function getMainAccounts({\n desiredChainIds,\n instance,\n}: {\n desiredChainIds: string[];\n instance: any;\n}): Promise<ProviderConnectResult[]> {\n // Trying to get accounts from all chains\n const offlineSigners = desiredChainIds\n .map((chainId) => {\n const signer = instance.getOfflineSigner(chainId);\n return {\n signer,\n chainId,\n };\n })\n .filter(Boolean);\n const accountsPromises = offlineSigners.map(({ signer }) =>\n signer.getAccounts()\n );\n const availableAccountForChains = await Promise.allSettled(accountsPromises);\n const resolvedAccounts: ProviderConnectResult[] = [];\n availableAccountForChains.forEach((result, index) => {\n if (result.status !== 'fulfilled') {\n return;\n }\n\n const accounts = result.value;\n const { chainId } = offlineSigners[index];\n const addresses = accounts.map(\n (account: { address: any }) => account.address\n );\n\n resolvedAccounts.push({ accounts: addresses, chainId });\n });\n return resolvedAccounts;\n}\n\nasync function tryRequestMiscAccounts({\n excludedChain,\n instance,\n meta,\n}: {\n excludedChain?: string;\n instance: InstanceType;\n meta: BlockchainMeta[];\n}): Promise<ProviderConnectResult[]> {\n const offlineSigners = getCosmosMiscChainsIds(meta as CosmosBlockchainMeta[])\n .filter((id) => id !== excludedChain)\n .map((chainId) => {\n const signer = instance.getOfflineSigner(chainId);\n return {\n signer,\n chainId,\n };\n });\n const accountsPromises = offlineSigners.map(async ({ signer }) =>\n signer.getAccounts()\n );\n const availableAccountForChains = await Promise.allSettled(accountsPromises);\n\n const resolvedAccounts: ProviderConnectResult[] = [];\n availableAccountForChains.forEach((result, index) => {\n if (result.status !== 'fulfilled') {\n return;\n }\n\n const accounts = result.value;\n const { chainId } = offlineSigners[index];\n const addresses = accounts.map((account) => account.address);\n\n resolvedAccounts.push({ accounts: addresses, chainId });\n });\n\n return resolvedAccounts;\n}\n\nexport const getCosmosAccounts: Connect = async ({\n instance,\n network,\n meta,\n}) => {\n const chainInfo = network\n ? getCosmosExperimentalChainInfo(meta as CosmosBlockchainMeta[])[network]\n : null;\n\n if (!!network && !chainInfo) {\n throw new Error(\n `You need to add ${network} to \"COSMOS_EXPERIMENTAL_CHAINS_INFO\" first.`\n );\n }\n\n // Asking for connect to wallet.\n if (!!chainInfo) {\n await instance.experimentalSuggestChain(chainInfo.info);\n }\n // Getting main chains + target network\n let desiredChainIds: string[] = getCosmosMainChainsIds(\n meta as CosmosBlockchainMeta[]\n );\n if (!!chainInfo) {\n desiredChainIds.push(chainInfo.id);\n }\n desiredChainIds = Array.from(new Set(desiredChainIds)).filter(Boolean);\n\n await instance.enable(desiredChainIds);\n\n const mainAccounts = await getMainAccounts({\n desiredChainIds,\n instance,\n });\n\n const exclude = !!chainInfo ? chainInfo.id : undefined;\n const miscAccounts = exclude\n ? await tryRequestMiscAccounts({\n instance,\n meta,\n excludedChain: exclude,\n })\n : [];\n\n const results = [...mainAccounts, ...miscAccounts];\n return results;\n};\n\nexport const suggestCosmosChain: Suggest = async (options) => {\n const { instance, meta, network } = options;\n const chainInfo = network\n ? getCosmosExperimentalChainInfo(meta as CosmosBlockchainMeta[])[network]\n : null;\n\n if (!chainInfo) {\n throw new Error(\n `You need to add ${network} to \"COSMOS_EXPERIMENTAL_CHAINS_INFO\" first.`\n );\n }\n\n // Asking for add experimental chain to wallet.\n await instance.experimentalSuggestChain(chainInfo.info);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["IS_DEV", "getBlockChainNameFromId", "__name", "chainId", "blockchains", "Networks", "blockchainMeta", "getBlockchainChainIdByName", "netwok", "allBlockChains", "uint8ArrayToHex", "buffer", "WalletTypes", "XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS", "KEPLR_COMPATIBLE_WALLETS", "isAddress", "deepCopy", "obj", "copy", "i", "len", "attr", "__name", "switchOrAddNetworkForMetamaskCompatibleWallets", "instance", "network", "evmNetworksChainInfo", "targetChain", "switchError", "error", "timeout", "forPromise", "time", "timeoutPromise", "_", "reject", "convertEvmBlockchainMetaToEvmChainInfo", "evmBlockchains", "evmNetWorksChainInfo", "blockchainMeta", "evmChainsToRpcMap", "evmNetworkChainInfo", "chainName", "info", "getSolanaAccounts", "getCoinbaseInstance", "lookingFor", "ethereum", "coinbaseSolana", "instances", "checker", "ethInstance", "provider", "sortWalletsBasedOnState", "wallets", "a", "b", "isBrave", "nav", "res", "detectInstallLink", "install", "link", "detectMobileScreens", "isEvmBlockchain", "getEvmAccounts", "instance", "accounts", "chainId", "__name", "subscribeToEvm", "state", "updateChainId", "updateAccounts", "addresses", "canEagerlyConnectToEvm", "switchNetworkForEvm", "network", "meta", "evmBlockchains", "isEvmBlockchain", "evmInstance", "getNetworkInstance", "switchOrAddNetworkForMetamaskCompatibleWallets", "convertEvmBlockchainMetaToEvmChainInfo", "canSwitchNetworkToEvm", "evmNetworkNames", "blockchain", "getEthChainsInstance", "isEvmNetwork", "chooseInstance", "instances", "instance_network_name", "provider", "getCosmosMainChainsIds", "__name", "blockchains", "blockchain", "chainId", "getCosmosMiscChainsIds", "getCosmosExperimentalChainInfo", "cosmosExperimentalChainsInfo", "info", "deepCopy", "currency", "experimental", "otherProperties", "getMainAccounts", "desiredChainIds", "instance", "offlineSigners", "accountsPromises", "signer", "availableAccountForChains", "resolvedAccounts", "result", "index", "accounts", "addresses", "account", "tryRequestMiscAccounts", "excludedChain", "meta", "id", "getCosmosAccounts", "network", "chainInfo", "mainAccounts", "exclude", "miscAccounts", "suggestCosmosChain", "options"]
7
7
  }
package/dist/rango.d.ts CHANGED
@@ -180,6 +180,11 @@ export type SwitchNetwork = (options: {
180
180
  meta: BlockchainMeta[];
181
181
  newInstance?: TryGetInstance;
182
182
  }) => Promise<void>;
183
+ export type Suggest = (options: {
184
+ instance: any;
185
+ network: Network;
186
+ meta: BlockchainMeta[];
187
+ }) => Promise<void>;
183
188
  export type CanSwitchNetwork = (options: {
184
189
  network: Network;
185
190
  meta: BlockchainMeta[];
@@ -199,6 +204,7 @@ export type WalletInfo = {
199
204
  color: string;
200
205
  supportedChains: BlockchainMeta[];
201
206
  showOnMobile?: boolean;
207
+ hideWhenNotInstalled?: boolean;
202
208
  mobileWallet?: boolean;
203
209
  };
204
210
  export interface Wallet {
@@ -1 +1 @@
1
- {"version":3,"file":"rango.d.ts","sourceRoot":"","sources":["../src/rango.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rango.d.ts","sourceRoot":"","sources":["../src/rango.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErE,eAAO,MAAM,MAAM,SAC8C,CAAC;AAElE,eAAO,MAAM,uBAAuB,YACzB,MAAM,GAAG,MAAM,eACX,cAAc,EAAE,KAC5B,OAAO,GAAG,IA4BZ,CAAC;AAEF,eAAO,MAAM,0BAA0B,WAC7B,OAAO,kBACC,cAAc,kBACY,CAAC;AAE7C,eAAO,MAAM,eAAe,WAAY,UAAU,KAAG,MAEpD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,oBAAY,WAAW;IACrB,SAAS,aAAa;IACtB,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,aAAa,gBAAgB;CAC9B;AAED,oBAAY,QAAQ;IAClB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,SAAS,SAAS;IAClB,GAAG,QAAQ;IACX,OAAO,QAAQ;IACf,QAAQ,QAAQ;IAChB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,QAAQ,KAAK;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,EAAE,OAAO;IACT,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,GAAG,QAAQ;IAGX,OAAO,WAAW;CACnB;AAED,eAAO,MAAM,oCAAoC,EAAE,MAAM,EAMxD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,MAAM,EAI5C,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,CAAA;CAAE,CAAC;AAEhF,MAAM,WAAW,IAAI;IACnB,WAAW,EAAE,cAAc,CAAC;IAC5B,mBAAmB,EAAE,oBAAoB,CAAC;IAC1C,sBAAsB,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/D,cAAc,EAAE,iBAAiB,EAAE,CAAC;CACrC;AAKD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,GAAG,CAAC;IACrB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAClD,QAAQ,EAAE,MAAM,WAAW,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB,CAAC,MAAM,GAAG,CAAC,GACX,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,SAAS,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,WAAW,GACnB,CAAC,MAAM,GAAG,CAAC,GACX,CAAC,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAEpD,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE;IAC9B,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,cAAc,EAAE,CAAC;CACxB,KAAK,OAAO,CAAC,qBAAqB,GAAG,qBAAqB,EAAE,CAAC,CAAC;AAE/D,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE;IACjC,QAAQ,EAAE,GAAG,CAAC;IACd,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE;IAChC,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,KAAK,IAAI,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE;IACtC,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,cAAc,EAAE,CAAC;CACxB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvB,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE;IACpC,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,cAAc,CAAC;CAC9B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE;IAC9B,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,cAAc,EAAE,CAAC;CACxB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,QAAQ,EAAE,GAAG,CAAC;CACf,KAAK,OAAO,CAAC;AAEd,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,cAAc,GAAG,MAAM,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,iBAAiB,CAAC,CAAC;CACrD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/wallets-shared",
3
- "version": "0.17.0",
3
+ "version": "0.17.1-next.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -1,11 +1,12 @@
1
+ import type { Connect, ProviderConnectResult, Suggest } from './rango';
2
+ import type { Keplr as InstanceType } from '@keplr-wallet/types';
1
3
  import type {
2
4
  BlockchainMeta,
3
5
  CosmosBlockchainMeta,
4
6
  CosmosChainInfo,
5
7
  } from 'rango-types';
8
+
6
9
  import { deepCopy } from './helpers';
7
- import { Connect, ProviderConnectResult } from './rango';
8
- import { Keplr as InstanceType } from '@keplr-wallet/types';
9
10
 
10
11
  export interface CosmosInfo extends Omit<CosmosChainInfo, 'experimental'> {
11
12
  chainId: string;
@@ -57,7 +58,9 @@ export const getCosmosExperimentalChainInfo = (
57
58
  ...currency,
58
59
  coinImageUrl: window.location.origin + currency.coinImageUrl,
59
60
  }));
60
- if (!info.gasPriceStep) delete info.gasPriceStep;
61
+ if (!info.gasPriceStep) {
62
+ delete info.gasPriceStep;
63
+ }
61
64
  const { experimental, ...otherProperties } = info;
62
65
  return (
63
66
  (cosmosExperimentalChainsInfo[blockchain.name] = {
@@ -94,7 +97,9 @@ async function getMainAccounts({
94
97
  const availableAccountForChains = await Promise.allSettled(accountsPromises);
95
98
  const resolvedAccounts: ProviderConnectResult[] = [];
96
99
  availableAccountForChains.forEach((result, index) => {
97
- if (result.status !== 'fulfilled') return;
100
+ if (result.status !== 'fulfilled') {
101
+ return;
102
+ }
98
103
 
99
104
  const accounts = result.value;
100
105
  const { chainId } = offlineSigners[index];
@@ -125,14 +130,16 @@ async function tryRequestMiscAccounts({
125
130
  chainId,
126
131
  };
127
132
  });
128
- const accountsPromises = offlineSigners.map(({ signer }) =>
133
+ const accountsPromises = offlineSigners.map(async ({ signer }) =>
129
134
  signer.getAccounts()
130
135
  );
131
136
  const availableAccountForChains = await Promise.allSettled(accountsPromises);
132
137
 
133
138
  const resolvedAccounts: ProviderConnectResult[] = [];
134
139
  availableAccountForChains.forEach((result, index) => {
135
- if (result.status !== 'fulfilled') return;
140
+ if (result.status !== 'fulfilled') {
141
+ return;
142
+ }
136
143
 
137
144
  const accounts = result.value;
138
145
  const { chainId } = offlineSigners[index];
@@ -163,13 +170,12 @@ export const getCosmosAccounts: Connect = async ({
163
170
  if (!!chainInfo) {
164
171
  await instance.experimentalSuggestChain(chainInfo.info);
165
172
  }
166
-
167
173
  // Getting main chains + target network
168
174
  let desiredChainIds: string[] = getCosmosMainChainsIds(
169
175
  meta as CosmosBlockchainMeta[]
170
176
  );
171
177
  if (!!chainInfo) {
172
- desiredChainIds.push(chainInfo!.id);
178
+ desiredChainIds.push(chainInfo.id);
173
179
  }
174
180
  desiredChainIds = Array.from(new Set(desiredChainIds)).filter(Boolean);
175
181
 
@@ -192,3 +198,19 @@ export const getCosmosAccounts: Connect = async ({
192
198
  const results = [...mainAccounts, ...miscAccounts];
193
199
  return results;
194
200
  };
201
+
202
+ export const suggestCosmosChain: Suggest = async (options) => {
203
+ const { instance, meta, network } = options;
204
+ const chainInfo = network
205
+ ? getCosmosExperimentalChainInfo(meta as CosmosBlockchainMeta[])[network]
206
+ : null;
207
+
208
+ if (!chainInfo) {
209
+ throw new Error(
210
+ `You need to add ${network} to "COSMOS_EXPERIMENTAL_CHAINS_INFO" first.`
211
+ );
212
+ }
213
+
214
+ // Asking for add experimental chain to wallet.
215
+ await instance.experimentalSuggestChain(chainInfo.info);
216
+ };
package/src/rango.ts CHANGED
@@ -151,6 +151,7 @@ export const XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS: string[] = [
151
151
  export const KEPLR_COMPATIBLE_WALLETS: string[] = [
152
152
  WalletTypes.KEPLR,
153
153
  WalletTypes.COSMOSTATION,
154
+ WalletTypes.LEAP_COSMOS,
154
155
  ];
155
156
 
156
157
  export type Asset = {
@@ -257,6 +258,12 @@ export type SwitchNetwork = (options: {
257
258
  newInstance?: TryGetInstance;
258
259
  }) => Promise<void>;
259
260
 
261
+ export type Suggest = (options: {
262
+ instance: any;
263
+ network: Network;
264
+ meta: BlockchainMeta[];
265
+ }) => Promise<void>;
266
+
260
267
  export type CanSwitchNetwork = (options: {
261
268
  network: Network;
262
269
  meta: BlockchainMeta[];
@@ -278,6 +285,7 @@ export type WalletInfo = {
278
285
  color: string;
279
286
  supportedChains: BlockchainMeta[];
280
287
  showOnMobile?: boolean;
288
+ hideWhenNotInstalled?: boolean;
281
289
  mobileWallet?: boolean;
282
290
  };
283
291