diff --git a/components/StatsPanel.jsx b/components/StatsPanel.jsx index 7e6ae7e..d233dd1 100644 --- a/components/StatsPanel.jsx +++ b/components/StatsPanel.jsx @@ -8,14 +8,25 @@ import { PublicKey, Connection } from "@solana/web3.js"; import FloatingElement from "./FloatingElement"; const CLUSTER = "mainnet-beta"; -const DEFAULT_MANGO_GROUP = "BTC_ETH_USDT"; +const DEFAULT_MANGO_GROUP = "BTC_ETH_SOL_SRM_USDC"; const icons = { BTC: "/tokens/btc.svg", ETH: "/tokens/eth.svg", + SOL: "/tokens/sol.svg", + SRM: "/tokens/srm.svg", + USDC: "/tokens/usdc.svg", USDT: "/tokens/usdt.svg", }; +const decimals = { + BTC: 2, + ETH: 2, + SOL: 1, + SRM: 0, + USDC: 0, +} + const stubStats = { depositInterest: 0, borrowInterest: 0, @@ -81,9 +92,9 @@ export default function StatsPanel() { - + - Mango Stats + Mango Stats Asset Total Deposits @@ -92,7 +103,7 @@ export default function StatsPanel() { Borrow Interest Utilization - {stats.map((stat, i) => ( + {stats.map((stat) => (
@@ -100,8 +111,8 @@ export default function StatsPanel() { {stat.symbol} {stat.symbol} - {stat.totalDeposits.toFixed(2 - i)} - {stat.totalBorrows.toFixed(2 - i)} + {stat.totalDeposits.toFixed(decimals[stat.symbol])} + {stat.totalBorrows.toFixed(decimals[stat.symbol])} {(100 * stat.depositInterest).toFixed(2)}% {(100 * stat.borrowInterest).toFixed(2)}% {(parseFloat(stat.utilization) * 100).toFixed(2)}% diff --git a/package.json b/package.json index 4779dd2..e7508c0 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "type-check": "tsc" }, "dependencies": { - "@blockworks-foundation/mango-client": "^0.1.2", + "@blockworks-foundation/mango-client": "https://github.com/blockworks-foundation/mango-client-ts#5_tokens", "antd": "^4.12.3", "autoprefixer": "^10.2.4", "babel-plugin-import": "^1.13.3", diff --git a/public/tokens/sol.svg b/public/tokens/sol.svg new file mode 100644 index 0000000..bd349af --- /dev/null +++ b/public/tokens/sol.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/public/tokens/srm.svg b/public/tokens/srm.svg new file mode 100644 index 0000000..d819b32 --- /dev/null +++ b/public/tokens/srm.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/public/tokens/usdc.svg b/public/tokens/usdc.svg new file mode 100644 index 0000000..80ccddb --- /dev/null +++ b/public/tokens/usdc.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 9f783d3..da7e0aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -197,15 +197,15 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@blockworks-foundation/mango-client@^0.1.2": - version "0.1.16" - resolved "https://registry.yarnpkg.com/@blockworks-foundation/mango-client/-/mango-client-0.1.16.tgz#3bf96836bd5d6310e561ed09de8a8f9c0c72c574" - integrity sha512-hzX5cXwYI1vzI0FuLn5YWIzVWjMtB57Ba1cmB7j0/2CVf3hgLK9NIBI/PfIxKywAAVTOwNUbOLUIjdxKFfmG6Q== +"@blockworks-foundation/mango-client@https://github.com/blockworks-foundation/mango-client-ts#5_tokens": + version "0.1.19" + resolved "https://github.com/blockworks-foundation/mango-client-ts#9bf82ed3b11297c078117cf369c463850a14e66a" dependencies: + "@project-serum/common" "^0.0.1-beta.3" "@project-serum/serum" "^0.13.20" "@project-serum/sol-wallet-adapter" "^0.1.4" "@solana/spl-token" "0.0.13" - "@solana/web3.js" "^0.90.0" + "@solana/web3.js" "^0.95.0" bn.js "^5.1.2" borsh "https://github.com/defactojob/borsh-js#field-mapper" buffer-layout "^1.2.0" @@ -308,6 +308,15 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/context-base/-/context-base-0.14.0.tgz#c67fc20a4d891447ca1a855d7d70fa79a3533001" integrity sha512-sDOAZcYwynHFTbLo6n8kIbLiVF3a3BLkrmehJUyEbT9F+Smbi47kLGS2gG2g0fjBLR/Lr1InPD7kXL7FaTqEkw== +"@project-serum/common@^0.0.1-beta.3": + version "0.0.1-beta.3" + resolved "https://registry.yarnpkg.com/@project-serum/common/-/common-0.0.1-beta.3.tgz#53586eaff9d9fd7e8938b1e12080c935b8b6ad07" + integrity sha512-gnQE/eUydTtto5okCgLWj1M97R9RRPJqnhKklikYI7jP/pnNhDmngSXC/dmfzED2GXSJEIKNIlxVw1k+E2Aw3w== + dependencies: + "@project-serum/serum" "^0.13.21" + bn.js "^5.1.2" + superstruct "0.8.3" + "@project-serum/serum@^0.13.20": version "0.13.34" resolved "https://registry.yarnpkg.com/@project-serum/serum/-/serum-0.13.34.tgz#c76477c27e14d975afa38b6c352b3abe92af6e52" @@ -317,6 +326,15 @@ bn.js "^5.1.2" buffer-layout "^1.2.0" +"@project-serum/serum@^0.13.21": + version "0.13.38" + resolved "https://registry.yarnpkg.com/@project-serum/serum/-/serum-0.13.38.tgz#ef50a0f50bd69fd7b51309fbb44ad995a1e6e210" + integrity sha512-TOph1Hxoi5kOUg72tWbbNGviqBw29SrP4BH70gXtqUDiFTQJLrE2yfS5HC7p0JaU8p9WdrYGnxcFKCddZJ3ing== + dependencies: + "@solana/web3.js" "^0.90.0" + bn.js "^5.1.2" + buffer-layout "^1.2.0" + "@project-serum/sol-wallet-adapter@^0.1.4": version "0.1.8" resolved "https://registry.yarnpkg.com/@project-serum/sol-wallet-adapter/-/sol-wallet-adapter-0.1.8.tgz#90c6c1da793d32ed4ba3c67c5702a5bc804ef197" @@ -383,6 +401,25 @@ tweetnacl "^1.0.0" ws "^7.0.0" +"@solana/web3.js@^0.95.0": + version "0.95.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-0.95.0.tgz#c028c800bf078bec90945240370df51026f8bdab" + integrity sha512-jdjAESYTChAYI1aZwH1RggcoT22BxdB9tDKBOt2Iw9SSpZ1Bb81ydrP+7eksE1AwQj6lpzrgtVt2d3sFosqupQ== + dependencies: + "@babel/runtime" "^7.12.5" + bn.js "^5.0.0" + bs58 "^4.0.1" + buffer "6.0.1" + buffer-layout "^1.2.0" + crypto-hash "^1.2.2" + jayson "^3.4.4" + js-sha3 "^0.8.0" + node-fetch "^2.6.1" + rpc-websockets "^7.4.2" + secp256k1 "^4.0.2" + superstruct "^0.14.2" + tweetnacl "^1.0.0" + "@types/bn.js@^4.11.5": version "4.11.6" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" @@ -1015,9 +1052,9 @@ boolbase@~1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= -"borsh@git+https://github.com/defactojob/borsh-js.git#field-mapper": +"borsh@https://github.com/defactojob/borsh-js#field-mapper": version "0.3.1" - resolved "git+https://github.com/defactojob/borsh-js.git#33a0d24af281112c0a48efb3fa503f3212443de9" + resolved "https://github.com/defactojob/borsh-js#33a0d24af281112c0a48efb3fa503f3212443de9" dependencies: "@types/bn.js" "^4.11.5" bn.js "^5.0.0" @@ -1173,6 +1210,14 @@ buffer@5.6.0: base64-js "^1.0.2" ieee754 "^1.1.4" +buffer@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.1.tgz#3cbea8c1463e5a0779e30b66d4c88c6ffa182ac2" + integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + buffer@^4.3.0: version "4.9.2" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" @@ -2869,6 +2914,23 @@ jayson@^3.0.1: lodash "^4.17.20" uuid "^3.4.0" +jayson@^3.4.4: + version "3.6.3" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.6.3.tgz#b0bb8d2e37e34e39e68044ab925fd92f103f1bd9" + integrity sha512-H/JuWKaJwU8FbwofPHROvtGoMF6R3DB0GGPpYyIaRzXU50Ser/4likFVfo/bpTGe0csB7n/+uybxJpBvX40VOQ== + dependencies: + "@types/connect" "^3.4.33" + "@types/express-serve-static-core" "^4.17.9" + "@types/lodash" "^4.14.159" + "@types/node" "^12.12.54" + JSONStream "^1.3.5" + commander "^2.20.3" + es6-promisify "^5.0.0" + eyes "^0.1.8" + json-stringify-safe "^5.0.1" + lodash "^4.17.20" + uuid "^3.4.0" + jest-worker@24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" @@ -2877,6 +2939,11 @@ jest-worker@24.9.0: merge-stream "^2.0.0" supports-color "^6.1.0" +js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -3547,7 +3614,7 @@ node-emoji@^1.8.1: dependencies: lodash.toarray "^4.4.0" -node-fetch@2.6.1, node-fetch@^2.2.0: +node-fetch@2.6.1, node-fetch@^2.2.0, node-fetch@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== @@ -5206,6 +5273,19 @@ stylis@3.5.4: resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe" integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q== +superstruct@0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.8.3.tgz#fb4d8901aca3bf9f79afab1bbab7a7f335cc4ef2" + integrity sha512-LbtbFpktW1FcwxVIJlxdk7bCyBq/GzOx2FSFLRLTUhWIA1gHkYPIl3aXRG5mBdGZtnPNT6t+4eEcLDCMOuBHww== + dependencies: + kind-of "^6.0.2" + tiny-invariant "^1.0.6" + +superstruct@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" + integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== + superstruct@^0.8.3: version "0.8.4" resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.8.4.tgz#478a19649f6b02c6319c02044db6a1f5863c391f"