From 639dd118a3f145d3034ca12d20ce30c23356a49d Mon Sep 17 00:00:00 2001 From: Georges KABBOUCHI Date: Thu, 22 Jul 2021 01:08:46 +0300 Subject: [PATCH] WIP --- assets/icons/currencies/1inch.svg | 1 + assets/icons/currencies/aave.svg | 1 + assets/icons/currencies/bal.svg | 1 + assets/icons/currencies/bat.svg | 1 + assets/icons/currencies/bnb.svg | 1 + assets/icons/currencies/btc2xfli.svg | 24 +++ assets/icons/currencies/busd.svg | 1 + assets/icons/currencies/cbat.svg | 1 + assets/icons/currencies/cbtc.svg | 1 + assets/icons/currencies/cdai.svg | 1 + assets/icons/currencies/ceth.svg | 1 + assets/icons/currencies/comp.svg | 1 + assets/icons/currencies/crep.svg | 1 + assets/icons/currencies/crv.svg | 56 +++++ assets/icons/currencies/csai.svg | 1 + assets/icons/currencies/cusdc.svg | 1 + assets/icons/currencies/cusdt.svg | 1 + assets/icons/currencies/custom.svg | 11 + assets/icons/currencies/czrx.svg | 1 + assets/icons/currencies/dai.svg | 1 + assets/icons/currencies/dgx.svg | 1 + assets/icons/currencies/dpi.svg | 1 + assets/icons/currencies/enj.svg | 1 + assets/icons/currencies/eth.svg | 1 + assets/icons/currencies/eth2xfli.svg | 22 ++ assets/icons/currencies/gusd.svg | 1 + assets/icons/currencies/inst.svg | 11 + assets/icons/currencies/knc.svg | 1 + assets/icons/currencies/lend.svg | 1 + assets/icons/currencies/link.svg | 1 + assets/icons/currencies/lrc.svg | 1 + assets/icons/currencies/mana.svg | 1 + assets/icons/currencies/matic.svg | 16 ++ assets/icons/currencies/mkr.svg | 1 + assets/icons/currencies/omg.svg | 1 + assets/icons/currencies/pax.svg | 1 + assets/icons/currencies/poly.svg | 1 + assets/icons/currencies/rai.svg | 35 +++ assets/icons/currencies/ren.svg | 1 + assets/icons/currencies/renbtc.svg | 1 + assets/icons/currencies/rep.svg | 1 + assets/icons/currencies/sai.svg | 1 + assets/icons/currencies/salt.svg | 1 + assets/icons/currencies/sbtc.svg | 1 + assets/icons/currencies/snt.svg | 1 + assets/icons/currencies/snx.svg | 1 + assets/icons/currencies/stkaave.svg | 1 + assets/icons/currencies/susd.svg | 1 + assets/icons/currencies/sushi.svg | 24 +++ assets/icons/currencies/tusd.svg | 1 + assets/icons/currencies/uni.svg | 1 + assets/icons/currencies/uniaaveeth.svg | 25 +++ assets/icons/currencies/unidaieth.svg | 25 +++ assets/icons/currencies/unidaiusdt.svg | 21 ++ assets/icons/currencies/unidaiwbtc.svg | 25 +++ assets/icons/currencies/unidaiyfi.svg | 21 ++ assets/icons/currencies/unilinketh.svg | 18 ++ assets/icons/currencies/uniunieth.svg | 29 +++ assets/icons/currencies/uniusdcdai.svg | 25 +++ assets/icons/currencies/uniusdceth.svg | 25 +++ assets/icons/currencies/uniusdteth.svg | 21 ++ assets/icons/currencies/uniwbtceth.svg | 25 +++ assets/icons/currencies/usdc.svg | 1 + assets/icons/currencies/usdt.svg | 1 + assets/icons/currencies/wbtc.svg | 1 + assets/icons/currencies/weth.svg | 1 + assets/icons/currencies/xsushi.svg | 24 +++ assets/icons/currencies/yfi.svg | 1 + assets/icons/currencies/zil.svg | 1 + assets/icons/currencies/zrx.svg | 1 + assets/icons/search.svg | 1 + components/CardAave.vue | 287 +++++++++++++++++++++++++ components/IconCurrency.vue | 238 ++++++++++++++++++++ components/SearchInput.vue | 39 ++++ composables/useAaveV2Position.ts | 123 ++++++++++- composables/useNetwork.ts | 2 - composables/usePosition.ts | 31 +++ composables/useSearchFilter.ts | 29 +++ composables/useToken.ts | 20 ++ pages/polygon/aave-v2.vue | 88 ++++++-- 80 files changed, 1374 insertions(+), 17 deletions(-) create mode 100644 assets/icons/currencies/1inch.svg create mode 100644 assets/icons/currencies/aave.svg create mode 100644 assets/icons/currencies/bal.svg create mode 100644 assets/icons/currencies/bat.svg create mode 100644 assets/icons/currencies/bnb.svg create mode 100644 assets/icons/currencies/btc2xfli.svg create mode 100644 assets/icons/currencies/busd.svg create mode 100644 assets/icons/currencies/cbat.svg create mode 100644 assets/icons/currencies/cbtc.svg create mode 100644 assets/icons/currencies/cdai.svg create mode 100644 assets/icons/currencies/ceth.svg create mode 100644 assets/icons/currencies/comp.svg create mode 100644 assets/icons/currencies/crep.svg create mode 100644 assets/icons/currencies/crv.svg create mode 100644 assets/icons/currencies/csai.svg create mode 100644 assets/icons/currencies/cusdc.svg create mode 100644 assets/icons/currencies/cusdt.svg create mode 100644 assets/icons/currencies/custom.svg create mode 100644 assets/icons/currencies/czrx.svg create mode 100644 assets/icons/currencies/dai.svg create mode 100644 assets/icons/currencies/dgx.svg create mode 100644 assets/icons/currencies/dpi.svg create mode 100644 assets/icons/currencies/enj.svg create mode 100644 assets/icons/currencies/eth.svg create mode 100644 assets/icons/currencies/eth2xfli.svg create mode 100644 assets/icons/currencies/gusd.svg create mode 100644 assets/icons/currencies/inst.svg create mode 100644 assets/icons/currencies/knc.svg create mode 100644 assets/icons/currencies/lend.svg create mode 100644 assets/icons/currencies/link.svg create mode 100644 assets/icons/currencies/lrc.svg create mode 100644 assets/icons/currencies/mana.svg create mode 100644 assets/icons/currencies/matic.svg create mode 100644 assets/icons/currencies/mkr.svg create mode 100644 assets/icons/currencies/omg.svg create mode 100644 assets/icons/currencies/pax.svg create mode 100644 assets/icons/currencies/poly.svg create mode 100644 assets/icons/currencies/rai.svg create mode 100644 assets/icons/currencies/ren.svg create mode 100644 assets/icons/currencies/renbtc.svg create mode 100644 assets/icons/currencies/rep.svg create mode 100644 assets/icons/currencies/sai.svg create mode 100644 assets/icons/currencies/salt.svg create mode 100644 assets/icons/currencies/sbtc.svg create mode 100644 assets/icons/currencies/snt.svg create mode 100644 assets/icons/currencies/snx.svg create mode 100644 assets/icons/currencies/stkaave.svg create mode 100644 assets/icons/currencies/susd.svg create mode 100644 assets/icons/currencies/sushi.svg create mode 100644 assets/icons/currencies/tusd.svg create mode 100644 assets/icons/currencies/uni.svg create mode 100644 assets/icons/currencies/uniaaveeth.svg create mode 100644 assets/icons/currencies/unidaieth.svg create mode 100644 assets/icons/currencies/unidaiusdt.svg create mode 100644 assets/icons/currencies/unidaiwbtc.svg create mode 100644 assets/icons/currencies/unidaiyfi.svg create mode 100644 assets/icons/currencies/unilinketh.svg create mode 100644 assets/icons/currencies/uniunieth.svg create mode 100644 assets/icons/currencies/uniusdcdai.svg create mode 100644 assets/icons/currencies/uniusdceth.svg create mode 100644 assets/icons/currencies/uniusdteth.svg create mode 100644 assets/icons/currencies/uniwbtceth.svg create mode 100644 assets/icons/currencies/usdc.svg create mode 100644 assets/icons/currencies/usdt.svg create mode 100644 assets/icons/currencies/wbtc.svg create mode 100644 assets/icons/currencies/weth.svg create mode 100644 assets/icons/currencies/xsushi.svg create mode 100644 assets/icons/currencies/yfi.svg create mode 100644 assets/icons/currencies/zil.svg create mode 100644 assets/icons/currencies/zrx.svg create mode 100644 assets/icons/search.svg create mode 100644 components/CardAave.vue create mode 100644 components/IconCurrency.vue create mode 100644 components/SearchInput.vue create mode 100644 composables/usePosition.ts create mode 100644 composables/useSearchFilter.ts create mode 100644 composables/useToken.ts diff --git a/assets/icons/currencies/1inch.svg b/assets/icons/currencies/1inch.svg new file mode 100644 index 0000000..90dcaaa --- /dev/null +++ b/assets/icons/currencies/1inch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/aave.svg b/assets/icons/currencies/aave.svg new file mode 100644 index 0000000..55017cd --- /dev/null +++ b/assets/icons/currencies/aave.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/bal.svg b/assets/icons/currencies/bal.svg new file mode 100644 index 0000000..23a2557 --- /dev/null +++ b/assets/icons/currencies/bal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/bat.svg b/assets/icons/currencies/bat.svg new file mode 100644 index 0000000..9edf63d --- /dev/null +++ b/assets/icons/currencies/bat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/bnb.svg b/assets/icons/currencies/bnb.svg new file mode 100644 index 0000000..7b6b182 --- /dev/null +++ b/assets/icons/currencies/bnb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/btc2xfli.svg b/assets/icons/currencies/btc2xfli.svg new file mode 100644 index 0000000..042a1a7 --- /dev/null +++ b/assets/icons/currencies/btc2xfli.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/busd.svg b/assets/icons/currencies/busd.svg new file mode 100644 index 0000000..28828a7 --- /dev/null +++ b/assets/icons/currencies/busd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/cbat.svg b/assets/icons/currencies/cbat.svg new file mode 100644 index 0000000..d2eb2c6 --- /dev/null +++ b/assets/icons/currencies/cbat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/cbtc.svg b/assets/icons/currencies/cbtc.svg new file mode 100644 index 0000000..635d310 --- /dev/null +++ b/assets/icons/currencies/cbtc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/cdai.svg b/assets/icons/currencies/cdai.svg new file mode 100644 index 0000000..3f6fd64 --- /dev/null +++ b/assets/icons/currencies/cdai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/ceth.svg b/assets/icons/currencies/ceth.svg new file mode 100644 index 0000000..f9c815c --- /dev/null +++ b/assets/icons/currencies/ceth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/comp.svg b/assets/icons/currencies/comp.svg new file mode 100644 index 0000000..727123f --- /dev/null +++ b/assets/icons/currencies/comp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/crep.svg b/assets/icons/currencies/crep.svg new file mode 100644 index 0000000..ed3991f --- /dev/null +++ b/assets/icons/currencies/crep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/crv.svg b/assets/icons/currencies/crv.svg new file mode 100644 index 0000000..aeb98f6 --- /dev/null +++ b/assets/icons/currencies/crv.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/csai.svg b/assets/icons/currencies/csai.svg new file mode 100644 index 0000000..ad232c2 --- /dev/null +++ b/assets/icons/currencies/csai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/cusdc.svg b/assets/icons/currencies/cusdc.svg new file mode 100644 index 0000000..e213d1f --- /dev/null +++ b/assets/icons/currencies/cusdc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/cusdt.svg b/assets/icons/currencies/cusdt.svg new file mode 100644 index 0000000..208e142 --- /dev/null +++ b/assets/icons/currencies/cusdt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/custom.svg b/assets/icons/currencies/custom.svg new file mode 100644 index 0000000..0edfc40 --- /dev/null +++ b/assets/icons/currencies/custom.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/icons/currencies/czrx.svg b/assets/icons/currencies/czrx.svg new file mode 100644 index 0000000..e18f668 --- /dev/null +++ b/assets/icons/currencies/czrx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/dai.svg b/assets/icons/currencies/dai.svg new file mode 100644 index 0000000..17c657d --- /dev/null +++ b/assets/icons/currencies/dai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/dgx.svg b/assets/icons/currencies/dgx.svg new file mode 100644 index 0000000..3ade063 --- /dev/null +++ b/assets/icons/currencies/dgx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/dpi.svg b/assets/icons/currencies/dpi.svg new file mode 100644 index 0000000..5e061a5 --- /dev/null +++ b/assets/icons/currencies/dpi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/enj.svg b/assets/icons/currencies/enj.svg new file mode 100644 index 0000000..c9846fd --- /dev/null +++ b/assets/icons/currencies/enj.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/eth.svg b/assets/icons/currencies/eth.svg new file mode 100644 index 0000000..ad46b15 --- /dev/null +++ b/assets/icons/currencies/eth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/eth2xfli.svg b/assets/icons/currencies/eth2xfli.svg new file mode 100644 index 0000000..e1aa9e8 --- /dev/null +++ b/assets/icons/currencies/eth2xfli.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/gusd.svg b/assets/icons/currencies/gusd.svg new file mode 100644 index 0000000..723d5b2 --- /dev/null +++ b/assets/icons/currencies/gusd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/inst.svg b/assets/icons/currencies/inst.svg new file mode 100644 index 0000000..d98d6a5 --- /dev/null +++ b/assets/icons/currencies/inst.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/icons/currencies/knc.svg b/assets/icons/currencies/knc.svg new file mode 100644 index 0000000..40d519f --- /dev/null +++ b/assets/icons/currencies/knc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/lend.svg b/assets/icons/currencies/lend.svg new file mode 100644 index 0000000..d635b24 --- /dev/null +++ b/assets/icons/currencies/lend.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/link.svg b/assets/icons/currencies/link.svg new file mode 100644 index 0000000..3526582 --- /dev/null +++ b/assets/icons/currencies/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/lrc.svg b/assets/icons/currencies/lrc.svg new file mode 100644 index 0000000..b94291a --- /dev/null +++ b/assets/icons/currencies/lrc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/mana.svg b/assets/icons/currencies/mana.svg new file mode 100644 index 0000000..c161e3d --- /dev/null +++ b/assets/icons/currencies/mana.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/matic.svg b/assets/icons/currencies/matic.svg new file mode 100644 index 0000000..b312d9d --- /dev/null +++ b/assets/icons/currencies/matic.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/mkr.svg b/assets/icons/currencies/mkr.svg new file mode 100644 index 0000000..98caa06 --- /dev/null +++ b/assets/icons/currencies/mkr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/omg.svg b/assets/icons/currencies/omg.svg new file mode 100644 index 0000000..0b22138 --- /dev/null +++ b/assets/icons/currencies/omg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/pax.svg b/assets/icons/currencies/pax.svg new file mode 100644 index 0000000..6bdeff0 --- /dev/null +++ b/assets/icons/currencies/pax.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/poly.svg b/assets/icons/currencies/poly.svg new file mode 100644 index 0000000..754f601 --- /dev/null +++ b/assets/icons/currencies/poly.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/rai.svg b/assets/icons/currencies/rai.svg new file mode 100644 index 0000000..16e95ce --- /dev/null +++ b/assets/icons/currencies/rai.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/ren.svg b/assets/icons/currencies/ren.svg new file mode 100644 index 0000000..d93c2cf --- /dev/null +++ b/assets/icons/currencies/ren.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/renbtc.svg b/assets/icons/currencies/renbtc.svg new file mode 100644 index 0000000..de709a3 --- /dev/null +++ b/assets/icons/currencies/renbtc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/rep.svg b/assets/icons/currencies/rep.svg new file mode 100644 index 0000000..7ed3f6c --- /dev/null +++ b/assets/icons/currencies/rep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/sai.svg b/assets/icons/currencies/sai.svg new file mode 100644 index 0000000..6a03982 --- /dev/null +++ b/assets/icons/currencies/sai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/salt.svg b/assets/icons/currencies/salt.svg new file mode 100644 index 0000000..22db03e --- /dev/null +++ b/assets/icons/currencies/salt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/sbtc.svg b/assets/icons/currencies/sbtc.svg new file mode 100644 index 0000000..c0d6134 --- /dev/null +++ b/assets/icons/currencies/sbtc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/snt.svg b/assets/icons/currencies/snt.svg new file mode 100644 index 0000000..dd5630e --- /dev/null +++ b/assets/icons/currencies/snt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/snx.svg b/assets/icons/currencies/snx.svg new file mode 100644 index 0000000..d742e2f --- /dev/null +++ b/assets/icons/currencies/snx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/stkaave.svg b/assets/icons/currencies/stkaave.svg new file mode 100644 index 0000000..3b82704 --- /dev/null +++ b/assets/icons/currencies/stkaave.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/susd.svg b/assets/icons/currencies/susd.svg new file mode 100644 index 0000000..effb3bd --- /dev/null +++ b/assets/icons/currencies/susd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/sushi.svg b/assets/icons/currencies/sushi.svg new file mode 100644 index 0000000..aae127a --- /dev/null +++ b/assets/icons/currencies/sushi.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/tusd.svg b/assets/icons/currencies/tusd.svg new file mode 100644 index 0000000..b42820c --- /dev/null +++ b/assets/icons/currencies/tusd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/uni.svg b/assets/icons/currencies/uni.svg new file mode 100644 index 0000000..95a649d --- /dev/null +++ b/assets/icons/currencies/uni.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/uniaaveeth.svg b/assets/icons/currencies/uniaaveeth.svg new file mode 100644 index 0000000..efd3efa --- /dev/null +++ b/assets/icons/currencies/uniaaveeth.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/unidaieth.svg b/assets/icons/currencies/unidaieth.svg new file mode 100644 index 0000000..739f581 --- /dev/null +++ b/assets/icons/currencies/unidaieth.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/unidaiusdt.svg b/assets/icons/currencies/unidaiusdt.svg new file mode 100644 index 0000000..79478bd --- /dev/null +++ b/assets/icons/currencies/unidaiusdt.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/unidaiwbtc.svg b/assets/icons/currencies/unidaiwbtc.svg new file mode 100644 index 0000000..49f880e --- /dev/null +++ b/assets/icons/currencies/unidaiwbtc.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/unidaiyfi.svg b/assets/icons/currencies/unidaiyfi.svg new file mode 100644 index 0000000..242385d --- /dev/null +++ b/assets/icons/currencies/unidaiyfi.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/unilinketh.svg b/assets/icons/currencies/unilinketh.svg new file mode 100644 index 0000000..024450d --- /dev/null +++ b/assets/icons/currencies/unilinketh.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/uniunieth.svg b/assets/icons/currencies/uniunieth.svg new file mode 100644 index 0000000..5440eb6 --- /dev/null +++ b/assets/icons/currencies/uniunieth.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/uniusdcdai.svg b/assets/icons/currencies/uniusdcdai.svg new file mode 100644 index 0000000..ae5a5de --- /dev/null +++ b/assets/icons/currencies/uniusdcdai.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/uniusdceth.svg b/assets/icons/currencies/uniusdceth.svg new file mode 100644 index 0000000..cbcb2c5 --- /dev/null +++ b/assets/icons/currencies/uniusdceth.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/uniusdteth.svg b/assets/icons/currencies/uniusdteth.svg new file mode 100644 index 0000000..ac8ab44 --- /dev/null +++ b/assets/icons/currencies/uniusdteth.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/uniwbtceth.svg b/assets/icons/currencies/uniwbtceth.svg new file mode 100644 index 0000000..9708b0a --- /dev/null +++ b/assets/icons/currencies/uniwbtceth.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/usdc.svg b/assets/icons/currencies/usdc.svg new file mode 100644 index 0000000..3a2045e --- /dev/null +++ b/assets/icons/currencies/usdc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/usdt.svg b/assets/icons/currencies/usdt.svg new file mode 100644 index 0000000..e4c673a --- /dev/null +++ b/assets/icons/currencies/usdt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/wbtc.svg b/assets/icons/currencies/wbtc.svg new file mode 100644 index 0000000..442f017 --- /dev/null +++ b/assets/icons/currencies/wbtc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/weth.svg b/assets/icons/currencies/weth.svg new file mode 100644 index 0000000..a2c3293 --- /dev/null +++ b/assets/icons/currencies/weth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/xsushi.svg b/assets/icons/currencies/xsushi.svg new file mode 100644 index 0000000..aae127a --- /dev/null +++ b/assets/icons/currencies/xsushi.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/currencies/yfi.svg b/assets/icons/currencies/yfi.svg new file mode 100644 index 0000000..efacd25 --- /dev/null +++ b/assets/icons/currencies/yfi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/zil.svg b/assets/icons/currencies/zil.svg new file mode 100644 index 0000000..2ead664 --- /dev/null +++ b/assets/icons/currencies/zil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/currencies/zrx.svg b/assets/icons/currencies/zrx.svg new file mode 100644 index 0000000..97fcd31 --- /dev/null +++ b/assets/icons/currencies/zrx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/search.svg b/assets/icons/search.svg new file mode 100644 index 0000000..e2736c0 --- /dev/null +++ b/assets/icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/components/CardAave.vue b/components/CardAave.vue new file mode 100644 index 0000000..c253dcf --- /dev/null +++ b/components/CardAave.vue @@ -0,0 +1,287 @@ + + + + diff --git a/components/IconCurrency.vue b/components/IconCurrency.vue new file mode 100644 index 0000000..4ed82f9 --- /dev/null +++ b/components/IconCurrency.vue @@ -0,0 +1,238 @@ + + + diff --git a/components/SearchInput.vue b/components/SearchInput.vue new file mode 100644 index 0000000..9e73c1a --- /dev/null +++ b/components/SearchInput.vue @@ -0,0 +1,39 @@ + + + diff --git a/composables/useAaveV2Position.ts b/composables/useAaveV2Position.ts index b6fafbb..e169254 100644 --- a/composables/useAaveV2Position.ts +++ b/composables/useAaveV2Position.ts @@ -9,7 +9,11 @@ import atokensV2 from "~/constant/atokensV2"; import tokens from "~/constant/tokens"; import { Network } from "./useNetwork"; import { useBigNumber } from "./useBigNumber"; -const { times, isZero, div, max } = useBigNumber(); +import { usePosition } from "./usePosition"; +import { useToken } from "./useToken"; + +const { times, isZero, div, max, gt, minus, ensureValue } = useBigNumber(); +const { getType } = usePosition(); const position = ref({ totalSupplyInEth: new BigNumber(0), @@ -18,7 +22,8 @@ const position = ref({ totalBorrowVariableInEth: new BigNumber(0), maxBorrowLimitInEth: new BigNumber(0), maxBorrowLiquidityLimitInEth: new BigNumber(0), - ethPriceInUsd: "0" + ethPriceInUsd: "0", + data: [] }); const totalSupply = computed(() => position.value @@ -59,6 +64,7 @@ const status = computed(() => { export function useAaveV2Position() { const { web3, chainId, networkName } = useWeb3(); const { activeAccount } = useDSA(); + const { getTokenByKey, allATokensV2 } = useToken(); const resolver = chainId.value === 1 @@ -112,7 +118,120 @@ export function useAaveV2Position() { { immediate: true } ); + const rewardTokenPriceInUsd = computed(() => { + if (networkName.value === Network.Polygon) { + return ensureValue( + position.value.data.find(position => position.key === "matic") + ?.priceInUsd + ); + } + return ensureValue( + position.value.data.find(position => position.key === "aave")?.priceInUsd + ); + }); + + const displayPositions = computed(() => { + if (!position.value) { + return []; + } + + return allATokensV2.value + .flatMap(atoken => { + const token = getTokenByKey(atoken.root); + + const atokenPosition = position.value.data.find( + x => x.key === atoken.root + ); + + const p = getPositionOrDefaultPosition(token, atokenPosition); + + if (gt(p.supply, "0") && gt(p.borrow, "0")) { + return [ + { ...p, type: "supply" }, + { ...p, type: "borrow" } + ]; + } else { + return [p]; + } + }) + .sort((a, b) => + minus( + max(b.supplyUsd, b.borrowUsd), + max(a.supplyUsd, a.borrowUsd) + ).toNumber() + ); + }); + + function getPositionOrDefaultPosition(token, position) { + if (!position) { + const defaultPosition = { + key: token.key, + aTokenKey: "", + aTokenBal: "0", + aDecimals: "0", + cf: "0", + ll: "0", + supply: "0", + supplyUsd: "0", + supplyRate: "0", + borrow: "0", + borrowUsd: "0", + borrowRate: "0", + type: "no", + isEnabledAsCollateral: true, + borrowEnabled: true, + availableLiquidity: "0", + stableBorrowEnabled: true, + borrowStable: "0", + borrowStableRate: "0", + supplyRewardRate: "0", + borrowRewardRate: "0" + }; + + return defaultPosition; + } + + return { + key: token.key, + aTokenKey: position.aTokenKey, + aTokenBal: position.aTokenBal, + aDecimals: position.aDecimals, + cf: position.factor, + ll: position.liquidation, + factor: position.factor, + liquidation: position.liquidation, + supply: position.supply, + supplyUsd: times(position.supply, position.priceInUsd).toFixed(), + supplyRate: position.supplyRate, + borrow: position.borrow, + borrowUsd: times(position.borrow, position.priceInUsd).toFixed(), + borrowRate: position.borrowRate, + priceInEth: position.priceInEth, + type: getType(position), + isEnabledAsCollateral: position.isEnabledAsCollateral, + borrowEnabled: position.borrowEnabled, + availableLiquidity: position.availableLiquidity, + borrowStableUsd: times( + position.borrowStable, + position.priceInUsd + ).toFixed(), + stableBorrowEnabled: position.stableBorrowEnabled, + borrowStable: position.borrowStable, + borrowStableRate: position.borrowStableRate, + priceInUsd: position.priceInUsd, + supplyRewardRate: times( + position.supplyRewardRate, + rewardTokenPriceInUsd.value + ).toFixed(), + borrowRewardRate: times( + position.borrowRewardRate, + rewardTokenPriceInUsd.value + ).toFixed() + }; + } + return { + displayPositions, position, fetchPosition, totalSupply, diff --git a/composables/useNetwork.ts b/composables/useNetwork.ts index 10036a0..5a27c31 100644 --- a/composables/useNetwork.ts +++ b/composables/useNetwork.ts @@ -15,8 +15,6 @@ const networks = [ { id: "polygon", chainId: 136, name: "Polygon", icon: PolygonSVG } ]; -console.log(Network.Polygon) - const activeNetworkId = ref(Network.Polygon); const activeNetwork = computed( () => networks.find(n => n.id === activeNetworkId.value) || networks[0] diff --git a/composables/usePosition.ts b/composables/usePosition.ts new file mode 100644 index 0000000..46b456f --- /dev/null +++ b/composables/usePosition.ts @@ -0,0 +1,31 @@ +import { useBigNumber } from './useBigNumber' + +export function usePosition() { + const { isZero, minus, gt, lt, plus } = useBigNumber() + + function getType(position) { + const supply = position.supply + let borrow = position.borrow + if (!isZero(position.borrowStable)) { + borrow = plus(borrow, position.borrowStable) + } + + const diff = minus(supply, borrow) + + if (isZero(diff)) return 'no' + if (gt(diff, '0')) return 'supply' + if (lt(diff, '0')) return 'borrow' + } + + function translateType(type) { + if (type === 'borrow') { + return 'Borrowed' + } else if (type === 'supply') { + return 'Supplied' + } else if (type === 'no') { + return 'No position' + } + } + + return { getType, translateType } +} diff --git a/composables/useSearchFilter.ts b/composables/useSearchFilter.ts new file mode 100644 index 0000000..86457c9 --- /dev/null +++ b/composables/useSearchFilter.ts @@ -0,0 +1,29 @@ +import { computed, ref } from '@nuxtjs/composition-api' + +/** + * Simple filtering of objects by search term. + * + * @param {Ref<{}[]>} collectionRef Ref of object array with objects which items will get filtered + * @param {...string} propertyNames Names of properties that will be compared with the search term + */ +export function useSearchFilter(collectionRef, ...propertyNames) { + const search = ref('') + + const filtered = computed(() => { + if (!search.value) return collectionRef.value + + const term = search.value.toLowerCase() + + return collectionRef.value.filter((item) => { + const properties = propertyNames.map((propertyName) => item[propertyName]).filter((p) => !!p) + + const isTermIncludedInProperties = properties + .map((property) => property.toString().toLowerCase()) + .some((property) => property.includes(term)) + + return isTermIncludedInProperties + }) + }) + + return { filtered, search } +} diff --git a/composables/useToken.ts b/composables/useToken.ts new file mode 100644 index 0000000..fd66826 --- /dev/null +++ b/composables/useToken.ts @@ -0,0 +1,20 @@ +import { computed } from "@nuxtjs/composition-api"; +import atokensV2 from "~/constant/atokensV2"; +import tokens from "~/constant/tokens"; +import { useWeb3 } from "./useWeb3"; + +export function useToken() { + const { networkName } = useWeb3(); + + const getTokenByKey = key => + tokens[networkName.value].allTokens.find( + token => String(token.key).toLowerCase() === String(key).toLowerCase() + ); + + const allATokensV2 = computed(() => atokensV2[networkName.value].allTokens); + + return { + getTokenByKey, + allATokensV2 + }; +} diff --git a/pages/polygon/aave-v2.vue b/pages/polygon/aave-v2.vue index c72ab9f..4ea3ab8 100644 --- a/pages/polygon/aave-v2.vue +++ b/pages/polygon/aave-v2.vue @@ -57,20 +57,34 @@

Borrowed

- - - - - - + + + + +

- {{ formatPercent(status) }} - - {{ formatPercent(position.maxLiquidation)}} + {{ formatPercent(status) }} - + {{ formatPercent(position.maxLiquidation) }}

D/C (%)

@@ -99,34 +113,82 @@
-

Your Positions

+
+

Your Positions

-
{{ position }}
+
+ +
+
+
+
+ +
+