diff --git a/components/AccountBalanceCard/index.tsx b/components/AccountBalanceCard/index.tsx index 38aa0876..60a8ecb9 100644 --- a/components/AccountBalanceCard/index.tsx +++ b/components/AccountBalanceCard/index.tsx @@ -14,7 +14,7 @@ import { import useTranslation from 'next-translate/useTranslation' import React from 'react' import get from 'lodash/get' -import { PieChart, Pie, Cell, ResponsiveContainer } from 'recharts' +import { PieChart, Pie, Cell } from 'recharts' import useStyles from './styles' import { CustomTheme } from '../../misc/theme' import { formatCrypto, formatCurrency } from '../../misc/utils' @@ -78,28 +78,26 @@ const AccountBalanceCard: React.FC = ({ accountBalance, {t('balance')} - - - !!d.value)} - innerRadius={theme.spacing(8.5)} - outerRadius={theme.spacing(8.5)} - paddingAngle={12} - dataKey="value" - > - {data - .filter((d) => !!d.value) - .map((d) => ( - - ))} - - - + + !!d.value)} + innerRadius={theme.spacing(8.5)} + outerRadius={theme.spacing(8.5)} + paddingAngle={12} + dataKey="value" + > + {data + .filter((d) => !!d.value) + .map((d) => ( + + ))} + + {data.map((d) => ( diff --git a/graphql/client.ts b/graphql/client.ts index 98dc06e8..71cec2f8 100644 --- a/graphql/client.ts +++ b/graphql/client.ts @@ -29,6 +29,8 @@ Object.keys(cryptocurrencies).forEach((crypto) => { uri: cryptocurrencies[crypto].graphqlWsUrl, options: { reconnect: true, + lazy: true, + inactivityTimeout: 30000, }, webSocketImpl: WebSocket, }) diff --git a/package.json b/package.json index 4ae4d9a0..cb5a8221 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "forbole-x", - "version": "0.4.5", + "version": "0.4.6", "private": true, "scripts": { "dev": "next dev", diff --git a/pages/account/[address].tsx b/pages/account/[address].tsx index 94fa7623..0b74cedc 100644 --- a/pages/account/[address].tsx +++ b/pages/account/[address].tsx @@ -34,6 +34,7 @@ const Account: React.FC = () => { const account = accounts.find((a) => a.address === router.query.address) const wallet = wallets.filter((x) => x.id === account?.walletId)[0] const crypto = account ? cryptocurrencies[account.crypto] : Object.values(cryptocurrencies)[0] + const { data: validatorsData } = useSubscription( gql` ${getValidators(crypto.name)} diff --git a/patches/@cosmjs+stargate+0.26.0.patch b/patches/@cosmjs+stargate+0.26.0.patch index 0da0e688..2acb8926 100644 --- a/patches/@cosmjs+stargate+0.26.0.patch +++ b/patches/@cosmjs+stargate+0.26.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/@cosmjs/stargate/build/accounts.js b/node_modules/@cosmjs/stargate/build/accounts.js -index 55753d0..849f1ec 100644 +index 55753d0..ec8b325 100644 --- a/node_modules/@cosmjs/stargate/build/accounts.js +++ b/node_modules/@cosmjs/stargate/build/accounts.js @@ -58,6 +58,11 @@ function accountFromAny(input) { @@ -8,8 +8,8 @@ index 55753d0..849f1ec 100644 } + // custom + case "/desmos.profiles.v1beta1.Profile": { -+ const baseAccount = auth_1.ProfileAccount.decode(value).baseAccount; -+ return accountFromBaseAccount(baseAccount); ++ const account = auth_1.ProfileAccount.decode(value).account; ++ return accountFromAny(account); + } default: throw new Error(`Unsupported type: '${typeUrl}'`); diff --git a/patches/cosmjs-types+0.2.0.patch b/patches/cosmjs-types+0.2.0.patch index d3a1f054..e1060caa 100644 --- a/patches/cosmjs-types+0.2.0.patch +++ b/patches/cosmjs-types+0.2.0.patch @@ -1,31 +1,88 @@ diff --git a/node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js b/node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js -index 0673e21..adc499d 100644 +index 0673e21..41ebbd1 100644 --- a/node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js +++ b/node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js -@@ -355,4 +355,25 @@ if (minimal_1.default.util.Long !== long_1.default) { +@@ -8,6 +8,7 @@ exports.Params = exports.ModuleAccount = exports.BaseAccount = exports.protobufP + const long_1 = __importDefault(require("long")); + const minimal_1 = __importDefault(require("protobufjs/minimal")); + const any_1 = require("../../../google/protobuf/any"); ++const timestamp_1 = require("../../../google/protobuf/timestamp"); + exports.protobufPackage = "cosmos.auth.v1beta1"; + const baseBaseAccount = { address: "", accountNumber: long_1.default.UZERO, sequence: long_1.default.UZERO }; + exports.BaseAccount = { +@@ -355,4 +356,74 @@ if (minimal_1.default.util.Long !== long_1.default) { minimal_1.default.util.Long = long_1.default; minimal_1.default.configure(); } + -+exports.ProfileAccount = { ++// Desmos Profile ++ ++function fromTimestamp(t) { ++ let millis = t.seconds * 1_000 ++ millis += t.nanos / 1_000_000 ++ return new Date(millis) ++} ++ ++const Pictures = { + decode(input, length) { ++ const basePictures = { profile: '', cover: '' } + const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input); -+ let end = length === undefined ? reader.len : reader.pos + length; -+ const message = Object.assign({}, baseModuleAccount); -+ message.permissions = []; ++ let end = length === undefined ? reader.len : reader.pos + length ++ const message = { ...basePictures } + while (reader.pos < end) { -+ const tag = reader.uint32(); ++ const tag = reader.uint32() + switch (tag >>> 3) { -+ case 1: -+ message.baseAccount = exports.BaseAccount.decode(any_1.Any.decode(reader, reader.uint32()).value); -+ break; -+ default: -+ reader.skipType(tag & 7); -+ break; ++ case 1: ++ message.profile = reader.string() ++ break ++ case 2: ++ message.cover = reader.string() ++ break ++ default: ++ reader.skipType(tag & 7) ++ break + } + } -+ return message; ++ return message + }, ++} ++ ++exports.ProfileAccount = { ++ decode(input, length) { ++ const baseProfile = { dtag: '', nickname: '', bio: '' } ++ const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input); ++ let end = length === undefined ? reader.len : reader.pos + length ++ const message = { ...baseProfile } ++ while (reader.pos < end) { ++ const tag = reader.uint32() ++ switch (tag >>> 3) { ++ case 1: ++ message.account = any_1.Any.decode(reader, reader.uint32()) ++ break ++ case 2: ++ message.dtag = reader.string() ++ break ++ case 3: ++ message.nickname = reader.string() ++ break ++ case 4: ++ message.bio = reader.string() ++ break ++ case 5: ++ message.pictures = Pictures.decode(reader, reader.uint32()) ++ break ++ case 6: ++ message.creationDate = fromTimestamp( ++ timestamp_1.Timestamp.decode(reader, reader.uint32()) ++ ) ++ break ++ default: ++ reader.skipType(tag & 7) ++ break ++ } ++ } ++ return message ++ }, +}; //# sourceMappingURL=auth.js.map \ No newline at end of file