mirror of
				https://github.com/Instadapp/assembly.git
				synced 2024-07-29 22:37:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import SVGCompound from "@/assets/logo/compound.svg?inline";
 | |
| import SVGMakerDAO from "@/assets/logo/makerdao.svg?inline";
 | |
| import SVGAave from "@/assets/logo/aave.svg?inline";
 | |
| import SVGAaveV2 from "@/assets/logo/aave-v2.svg?inline";
 | |
| import SVGUniswap from "@/assets/logo/uniswap.svg?inline";
 | |
| import SVGInstadapp from "@/assets/logo/instadapp-logo-icon.svg?inline";
 | |
| import SVGDefault from "@/assets/logo/default.svg?inline";
 | |
| import { computed } from "@nuxtjs/composition-api";
 | |
| 
 | |
| const protocols = {
 | |
|   makerdao: {
 | |
|     title: "MakerDAO",
 | |
|     logo: SVGMakerDAO,
 | |
|     protocol: "makerdao",
 | |
|     supportedNetworks: ["mainnet"]
 | |
|   },
 | |
|   compound: {
 | |
|     title: "Compound",
 | |
|     logo: SVGCompound,
 | |
|     protocol: "compound",
 | |
|     supportedNetworks: ["mainnet"]
 | |
|   },
 | |
|   aave: {
 | |
|     title: "Aave",
 | |
|     logo: SVGAave,
 | |
|     protocol: "aave",
 | |
|     supportedNetworks: ["mainnet"]
 | |
|   },
 | |
|   "aave-v2": {
 | |
|     title: "Aave V2",
 | |
|     logo: SVGAaveV2,
 | |
|     protocol: "aave-v2",
 | |
|     supportedNetworks: ["mainnet", "matic"]
 | |
|   },
 | |
|   uniswap: {
 | |
|     title: "Uniswap",
 | |
|     logo: SVGUniswap,
 | |
|     protocol: "uniswap",
 | |
|     supportedNetworks: ["mainnet"]
 | |
|   },
 | |
|   instadapp: {
 | |
|     title: "Instadapp",
 | |
|     logo: SVGInstadapp,
 | |
|     protocol: "guniswap",
 | |
|     supportedNetworks: ["mainnet"]
 | |
|   },
 | |
|   default: {
 | |
|     title: "Balance",
 | |
|     logo: SVGDefault,
 | |
|     protocol: "default",
 | |
|     supportedNetworks: ["mainnet"]
 | |
|   }
 | |
| };
 | |
| 
 | |
| export function useProtocolData(protocol) {
 | |
|   protocol = String(protocol).toLowerCase();
 | |
| 
 | |
|   const data = computed(() => protocols[protocol]);
 | |
|   const title = computed(() => (data.value ? data.value.title : null));
 | |
|   const logo = computed(() => (data.value ? data.value.logo : null));
 | |
| 
 | |
|   const protocolName = computed(() =>
 | |
|     data.value ? data.value.protocol : null
 | |
|   );
 | |
| 
 | |
|   const leverageableProtocols = computed(() =>
 | |
|     //@ts-ignore
 | |
|     Object.values(protocols).filter(protocol => protocol.supportLeverageEth)
 | |
|   );
 | |
| 
 | |
|   function networkIsSupported(network) {
 | |
|     return data.value.supportedNetworks.includes(network);
 | |
|   }
 | |
| 
 | |
|   return {
 | |
|     title,
 | |
|     logo,
 | |
|     protocolName,
 | |
|     leverageableProtocols,
 | |
|     networkIsSupported
 | |
|   };
 | |
| }
 | 
