From 3916136eecc5db901ead50bcdef1a479be0aa524 Mon Sep 17 00:00:00 2001 From: d1ll0n Date: Tue, 26 Jan 2021 12:24:40 -0600 Subject: [PATCH 1/6] add client for indexed subgraph --- src/apollo/client.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/apollo/client.js b/src/apollo/client.js index 5c5b80b9..ba67f99e 100644 --- a/src/apollo/client.js +++ b/src/apollo/client.js @@ -17,3 +17,11 @@ export const compoundClient = new ApolloClient({ cache: new InMemoryCache(), shouldBatch: true }) + +export const indexedClient = new ApolloClient({ + link: new HttpLink({ + uri: 'https://api.thegraph.com/subgraphs/name/indexed-finance/indexed-governance' + }), + cache: new InMemoryCache(), + shouldBatch: true +}) From 6a164ff56703b1554fc5b57fc72bc607896f1dc4 Mon Sep 17 00:00:00 2001 From: d1ll0n Date: Tue, 26 Jan 2021 12:24:56 -0600 Subject: [PATCH 2/6] add NDX logo --- src/assets/images/ndxLogo.png | Bin 0 -> 2619 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/assets/images/ndxLogo.png diff --git a/src/assets/images/ndxLogo.png b/src/assets/images/ndxLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..1fef05090573838c4b051b65a1ca9aa6a4cd1033 GIT binary patch literal 2619 zcmcgu{X5h98~^On(juKrq2_4~$#J4H&%|a{qbr6{^GwIn@eo3bvW?^@r|FbRMl7QA zpkp)=>zp14W16RERw;QFXC^ehALk$V{_?%PKfJH|b=~*-eZ5}SeZQ{zdY|`jC#x!> zl>q=yb#)@i_0(!tdllMw_a7bHBb^KqJOK-k zS=z8pARJ%=+8K%PYy=X;!amAj+4sMziGNEADxdECp2{fM!|~%vQu&RM!{bYnb90F* zQC9^L5D5_0Rl1BU0Ybifol$)DNpB;{ikC#fN zvr|*`yRZc3@{UNm;tD-oUEP}u0A@jIJ2U#vlDJFH@r;YpGlxIGIwE=|e)#Fq8q?O! z?$FLZ?DfG~ua#AqnI4`|B#fBZ0_*AO?d|>2Rnm9|^eR-vD68yI!gon?xy>8z1!>jw-C6d6Z0*M2v^wc#< zdR6uTR^d{wTwKiIaJJjMb4Hbh^!X0enC=Gig^)X%vAfebmns zXoj(ounQmV4pClQy`fKHfzi_XGl7N#ph4W;^JP|KOH|IcoP_M-n3-Ya@H)&sj&Qwlcqaz2kDLSen%_A5q}DlL(^gxs z^$B_=CU{^rgnbDN4^$-*I|05t9&eiiLA>At!Y`R!d2Nu~WspRocYtx( z3tAOxsCE6pN(1KOMR6!hj8~zfZl1F$k==`g%^Q9;>Q>rym4&!uxnb(YemwrV3X0Gi z5ERs$zG5}A+<|IeYS}wROruDLhgWBq9mJOmkjEy`vqTK(9Ir`rlz#c;qrJXnwaN9Uggh?~u(i;k)Gb`5Cl*S!l{o-X7-VhgzcO<#ivI$O}&q8Z!KVLd@>TnKat7gk-1Zf$*I}d-wGikrZz^J z{Hb{1mM)L74uRaS%z+oVS2{f8RbY_O?5IVW>f;ixnhBU4*6gOl3bw*X?Jf|SP{>qI3^7_tI()C^Hb$PhM$)%&_nF4kFhpKQT)Ajp3m znP%wDzubv#Da4U23|QD${0(oMzc85{zIM-)&?hKu=})c^j1*4-&%cuG5<5UXX4U5Um#_GfrD`L zm4`=w-hXipVCZ>cI&$QmM7>(6$C%X?i|1I9dzy3uxIk5{B37jB$=_Q`gn9qE^442+ zk3px!fp-Sv;y)Pn<6yUhfu%+6dRpAM=PIJqc&H0lEH73%|1YK_d&f>7m(Xxg>2#&O z$^Fe5=$S!v0tXuS(;n^a!Hm?GDy6>A`uapWORl)Kmvt=;-z3m~vlus>z-oDOG}F01 zUHtO&{!cMy4_As!eUB|StJ9fx5)2EbD_c@CBl46@>r6-z2_st&sJ@s^bH8is5yda@ zRyksY_A=#{^PazI)QY==)hDPxDqVu39ZS~yRyrei8oad=|0Xm4t{CKh!`k%7sZE={ z86~}lvPg^N%)_6_#UpL5)J?=b4Dh%__blP;m%pz&s76olT8y*ur*7*_(8m3LV=6EE zQyVm_m#Gmc3l}wRrY+ZS_olRr%zgO4#nu}PQKC-tVr~yyczmHfU?f^9$|gSWJe1*? z4G`n-(irL3S+ajw&V%h65v5XhN_z=a_E(vk=ZpJ(Fc2Z^WDc&OCH}W9=Yu0#0|Bo7 z{98qJ)d$_z%-gnfSXN(i*9_C`a*pHiJI1)+fG$6P>ob0Ni)HQT@rxb&!LYq7k@ejC z`3X_07;S5fZaWG%_caSnBqjawUS8i>@Sw$t3d?d&Ke?rit9ld;0|y4)Puf^(Hm!=# zsfGF{wiBYJS8iFYRgg{_P?AV&Fvo;&bW9O;sFsYgAcq;TM8>V^I8P;RXvNLVnElg1 zsXlM=$G&c)l|j-Qjy5lBA=*C8p3o$W+4%E76$eJOWetuTX222+(uL=CP;Wi2eqL+H z68Z72k4ScARRw6a9{>`07aevN%MXukyK+yBaI>!3xLYIh+2}@OVNm7AI!xZd7$?l8 zq!*)FzZ4f22L=Tx1?~@QkPcH87Zji4k_VK#2W04x9i0R-^> i1ON38<$+y8g#d1hA0tSDL1*aW2e=+^Cp{#FWc~+JN_tuV literal 0 HcmV?d00001 From 7daa9c4c1f2161ec8494e0ff1c5cfb14ef87a743 Mon Sep 17 00:00:00 2001 From: d1ll0n Date: Tue, 26 Jan 2021 12:45:06 -0600 Subject: [PATCH 3/6] add dropdown display fix from @Ulydev in #34 --- src/components/governance/Dropdown.tsx | 57 +++++++++++++++----------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/src/components/governance/Dropdown.tsx b/src/components/governance/Dropdown.tsx index 3a0341f1..3637d925 100644 --- a/src/components/governance/Dropdown.tsx +++ b/src/components/governance/Dropdown.tsx @@ -8,6 +8,7 @@ import { TYPE } from '../../theme' import { ChevronDown } from 'react-feather' import { SUPPORTED_PROTOCOLS } from '../../state/governance/reducer' import useOnClickOutside from '../../hooks/useClickOutside' +import Column from '../Column' const Wrapper = styled.div<{ backgroundColor?: string; open: boolean }>` width: 100%; @@ -26,20 +27,26 @@ const Wrapper = styled.div<{ backgroundColor?: string; open: boolean }>` // dont pass style props to DOM link element // eslint-disable-next-line @typescript-eslint/no-unused-vars -const Flyout = styled(({ backgroundColor, ...props }) => )` +const FlyoutContainer = styled(({ ...props }) => )` width: 100%; - padding: 1rem; position: absolute; - bottom: -68px; + top: 68px; left: 0px; border-bottom-left-radius: 20px; border-bottom-right-radius: 20px; box-shadow: 0 10px 34px rgb(236 236 236 / 16%), 0 5px 6px rgb(140 140 140 / 23%); background-color: white; - text-decoration: none; z-index: 3; ` +// dont pass style props to DOM link element +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const Flyout = styled(({ backgroundColor, ...props }) => )` + width: 100%; + padding: 1rem; + text-decoration: none; +` + export default function Dropdown() { const [activeProtocol] = useActiveProtocol() @@ -57,26 +64,28 @@ export default function Dropdown() { - {open && - activeProtocol && - Object.keys(SUPPORTED_PROTOCOLS) - .filter(k => SUPPORTED_PROTOCOLS[k].name !== activeProtocol.name) - .map((k, i) => ( - - - - - - {SUPPORTED_PROTOCOLS[k].name} - - - - - ))} + {open && activeProtocol && ( + + {Object.keys(SUPPORTED_PROTOCOLS) + .filter(k => SUPPORTED_PROTOCOLS[k].name !== activeProtocol.name) + .map((k, i) => ( + + + + + + {SUPPORTED_PROTOCOLS[k].name} + + + + + ))} + + )} ) } From 365e76c5eedeae3ff609a9d1b2e61b12e7df6206 Mon Sep 17 00:00:00 2001 From: d1ll0n Date: Tue, 26 Jan 2021 12:45:43 -0600 Subject: [PATCH 4/6] check second line for title if none on first --- src/data/governance.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/governance.ts b/src/data/governance.ts index 86c2d1a5..2315a691 100644 --- a/src/data/governance.ts +++ b/src/data/governance.ts @@ -217,7 +217,7 @@ export async function fetchProposals(client: any, key: string): Promise Date: Tue, 26 Jan 2021 12:46:10 -0600 Subject: [PATCH 5/6] add indexed client to switch --- src/state/application/hooks.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/state/application/hooks.ts b/src/state/application/hooks.ts index c7a4ca5a..e75febec 100644 --- a/src/state/application/hooks.ts +++ b/src/state/application/hooks.ts @@ -4,8 +4,8 @@ import { useActiveWeb3React } from '../../hooks' import { AppDispatch, AppState } from '../index' import { addPopup, ApplicationModal, PopupContent, removePopup, setOpenModal, setModalDelegatee } from './actions' import { useActiveProtocol } from '../governance/hooks' -import { UNISWAP_GOVERNANCE, COMPOUND_GOVERNANCE } from '../governance/reducer' -import { uniswapClient, compoundClient } from '../../apollo/client' +import { UNISWAP_GOVERNANCE, COMPOUND_GOVERNANCE, INDEXED_GOVERNANCE } from '../governance/reducer' +import { uniswapClient, compoundClient, indexedClient } from '../../apollo/client' export function useBlockNumber(): number | undefined { const { chainId } = useActiveWeb3React() @@ -88,5 +88,9 @@ export function useSubgraphClient() { return compoundClient } + if (activeProtocol?.id === INDEXED_GOVERNANCE.id) { + return indexedClient + } + return undefined } From 2737d66b2ef867b11ed58442c78f389ae3e65049 Mon Sep 17 00:00:00 2001 From: d1ll0n Date: Tue, 26 Jan 2021 12:46:45 -0600 Subject: [PATCH 6/6] add Indexed data to governance reducer --- src/state/governance/reducer.ts | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/state/governance/reducer.ts b/src/state/governance/reducer.ts index 973bbe1b..fc0929e2 100644 --- a/src/state/governance/reducer.ts +++ b/src/state/governance/reducer.ts @@ -12,6 +12,7 @@ import { import { createReducer } from '@reduxjs/toolkit' import UniLogo from '../../assets/images/uni-logo.png' import CompLogo from '../../assets/images/compLogo.png' +import NdxLogo from '../../assets/images/ndxLogo.png' import { serializeToken } from '../user/hooks' export interface GovernanceInfo { @@ -44,6 +45,10 @@ export const COMP_GOVERNANCE_ADDRESS = '0xc0dA01a04C3f3E0be433606045bB7017A7323E export const COMP_ADDRESS = '0xc00e94cb662c3520282e6f5717214004a7f26888' const COMP = new Token(ChainId.MAINNET, COMP_ADDRESS, 18, 'COMP', 'Compound Governance Token') +export const NDX_GOVERNANCE_ADDRESS = '0x95129751769f99CC39824a0793eF4933DD8Bb74B' +export const NDX_ADDRESS = '0x86772b1409b61c639EaAc9Ba0AcfBb6E238e5F83' +const NDX = new Token(ChainId.MAINNET, NDX_ADDRESS, 18, 'NDX', 'Indexed') + export const UNISWAP_GOVERNANCE: GovernanceInfo = { id: 'uniswap', name: 'Uniswap Governance', @@ -68,10 +73,23 @@ export const COMPOUND_GOVERNANCE: GovernanceInfo = { emoji: '🏦' } +export const INDEXED_GOVERNANCE: GovernanceInfo = { + id: 'indexed', + name: 'Indexed Governance', + logo: NdxLogo, + primaryColor: '#111111', + secondaryColor: '#f2f2f2', + token: serializeToken(NDX), + governanceAddress: NDX_GOVERNANCE_ADDRESS, + social: '@ndxfi', + emoji: '🏦' +} + // mapping for routing export const SUPPORTED_PROTOCOLS: { [id: string]: GovernanceInfo } = { uniswap: UNISWAP_GOVERNANCE, - compound: COMPOUND_GOVERNANCE + compound: COMPOUND_GOVERNANCE, + indexed: INDEXED_GOVERNANCE } export const FETCHING_INTERVAL = 50