diff --git a/.eslintignore b/.eslintignore
index 7e639c0a8e..bb3dcdb03d 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -7,3 +7,4 @@
**/cypress/fixtures/*
**/src/graphql/types.tsx
**/src/graphql/desmos_profile.ts
+**/src/pages/_document.tsx
diff --git a/.eslintrc.json b/.eslintrc.json
index 90d6141cea..b6dd299b4e 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -64,6 +64,9 @@
}
],
"rules": {
+ "max-len": "off",
+ "no-console": "off",
+ "camelcase": "off",
"react/destructuring-assignment": "off",
"no-bitwise": "off",
"@typescript-eslint/ban-types": "warn",
@@ -73,12 +76,15 @@
"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"no-unused-vars": "off",
- "@typescript-eslint/no-unused-vars": ["error", {
- "ignoreRestSiblings": true,
- "varsIgnorePattern": "^_",
- "argsIgnorePattern": "^_"
- }],
- "no-param-reassign": "warn",
+ "@typescript-eslint/no-unused-vars": [
+ "error",
+ {
+ "ignoreRestSiblings": true,
+ "varsIgnorePattern": "^_",
+ "argsIgnorePattern": "^_"
+ }
+ ],
+ "no-param-reassign": "off",
"no-restricted-globals": "warn",
"react/prop-types": "off",
"jsx-a11y/interactive-supports-focus": "off",
@@ -138,4 +144,4 @@
}
]
}
-}
+}
\ No newline at end of file
diff --git a/.github/workflows/docker_production.yml b/.github/workflows/docker_production.yml
deleted file mode 100644
index fcafdb8568..0000000000
--- a/.github/workflows/docker_production.yml
+++ /dev/null
@@ -1,90 +0,0 @@
-name: Docker-Production
-
-on:
- push:
- tags:
- - desmos-morpheus-apollo-1-v*
-
-jobs:
- Build-and-Publish:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v2
- - name: Prepare tags
- id: prep
- run: |
- DOCKER_IMAGE=forbole/big-dipper-2.0-cosmos
- VERSION=edge
- if [[ $GITHUB_REF == refs/tags/* ]]; then
- VERSION=${GITHUB_REF#refs/tags/}
- fi
- TAGS="${DOCKER_IMAGE}:${VERSION}"
- echo ::set-output name=version::${VERSION}
- echo ::set-output name=tags::${TAGS}
- echo ::set-output name=created::$(date -u +'%Y-%m-%dT%H:%M:%SZ')
- - name: Prepare docker build env
- id: dockerPrep
- run: |
- NEXT_PUBLIC_GRAPHQL_URL=
- NEXT_PUBLIC_GRAPHQL_WS=
- NEXT_PUBLIC_URL=
- NEXT_PUBLIC_RPC_WEBSOCKET=
- NEXT_PUBLIC_CHAIN_TYPE=
- NODE_ENV="production"
- PORT=3000
- if [[ $GITHUB_REF == refs/tags/desmos-morpheus-apollo-1* ]]; then
- NEXT_PUBLIC_GRAPHQL_URL="https://gql.morpheus.desmos.network/v1/graphql"
- NEXT_PUBLIC_GRAPHQL_WS="wss://gql.morpheus.desmos.network/v1/graphql"
- NEXT_PUBLIC_URL="https://morpheus.desmos.network"
- NEXT_PUBLIC_RPC_WEBSOCKET="wss://rpc.morpheus.desmos.network/websocket"
- NEXT_PUBLIC_CHAIN_TYPE="testnet"
- fi
- echo ::set-output name=NEXT_PUBLIC_GRAPHQL_URL::${NEXT_PUBLIC_GRAPHQL_URL}
- echo ::set-output name=NEXT_PUBLIC_GRAPHQL_WS::${NEXT_PUBLIC_GRAPHQL_WS}
- echo ::set-output name=NEXT_PUBLIC_URL::${NEXT_PUBLIC_URL}
- echo ::set-output name=NEXT_PUBLIC_RPC_WEBSOCKET::${NEXT_PUBLIC_RPC_WEBSOCKET}
- echo ::set-output name=NEXT_PUBLIC_CHAIN_TYPE::${NEXT_PUBLIC_CHAIN_TYPE}
- echo ::set-output name=NODE_ENV::${NODE_ENV}
- echo ::set-output name=PORT::${PORT}
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v1
- - name: Login to DockerHub
- uses: docker/login-action@v1
- with:
- username: ${{ secrets.DOCKER_USERNAME }}
- password: ${{ secrets.DOCKER_PASSWORD }}
-
- - name: Build and push
- uses: docker/build-push-action@v2
- with:
- context: .
- file: ./Dockerfile
- push: true
- tags: ${{ steps.prep.outputs.tags }}
- build-args: |
- "NEXT_PUBLIC_GRAPHQL_URL=${{ steps.dockerPrep.outputs.NEXT_PUBLIC_GRAPHQL_URL }}"
- "NEXT_PUBLIC_GRAPHQL_WS=${{ steps.dockerPrep.outputs.NEXT_PUBLIC_GRAPHQL_WS }}"
- "NEXT_PUBLIC_URL=${{ steps.dockerPrep.outputs.NEXT_PUBLIC_URL }}"
- "NEXT_PUBLIC_RPC_WEBSOCKET=${{ steps.dockerPrep.outputs.NEXT_PUBLIC_RPC_WEBSOCKET }}"
- "NEXT_PUBLIC_CHAIN_TYPE=${{ steps.dockerPrep.outputs.NEXT_PUBLIC_CHAIN_TYPE }}"
- "NODE_ENV=${{ steps.dockerPrep.outputs.NODE_ENV }}"
- "PORT=${{ steps.dockerPrep.outputs.PORT }}"
- labels: |
- org.opencontainers.image.source=${{ github.event.repository.html_url }}
- org.opencontainers.image.created=${{ steps.prep.outputs.created }}
- org.opencontainers.image.revision=${{ github.sha }}
- - name: Deploy to Akash 🌐
- env:
- DESMOS_AKASH_WEBHOOK_URL: ${{ secrets.DESMOS_AKASH_WEBHOOK_URL }}
- AKASH_WEBHOOK_SECRET: ${{ secrets.AKASH_WEBHOOK_SECRET }}
- run: |
- BRANCH=${GITHUB_REF}
- WEBHOOK_URL=''
- if [[ $GITHUB_REF == refs/tags/desmos-morpheus-apollo-1* ]]; then
- echo 'Deploying to Desmos morpheus-apollo-1'
- WEBHOOK_URL=$DESMOS_AKASH_WEBHOOK_URL
- fi
- curl -i -X POST -H "Content-Type: application/json" -d '{"parameters":{"tag": "${{ steps.prep.outputs.version }}"}}' -k $WEBHOOK_URL -u "deploy:$AKASH_WEBHOOK_SECRET"
-
-
diff --git a/.github/workflows/docker_staging.yml b/.github/workflows/docker_staging.yml
deleted file mode 100644
index c635441100..0000000000
--- a/.github/workflows/docker_staging.yml
+++ /dev/null
@@ -1,69 +0,0 @@
-name: Docker-Staging
-
-on:
- pull_request:
- push:
- branches:
- - chains/desmos
-
-jobs:
- Build-and-Publish:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v2
- - name: Prepare tags
- id: prep
- run: |
- BRANCH=${GITHUB_REF#refs/heads/}
- if [[ $GITHUB_REF == refs/heads/chains/desmos ]]; then
- BRANCH="desmos"
- elif [[ $GITHUB_REF == refs/pull/* ]]; then
- BRANCH="build-test"
- fi
- echo ::set-output name=created::$(date -u +'%Y-%m-%dT%H:%M:%SZ')
- echo ::set-output name=branch::${BRANCH}
- - name: Prepare docker build env
- id: dockerPrep
- run: |
- NEXT_PUBLIC_GRAPHQL_URL="https://gql.morpheus.desmos.network/v1/graphql"
- NEXT_PUBLIC_GRAPHQL_WS="wss://gql.morpheus.desmos.network/v1/graphql"
- NEXT_PUBLIC_URL="https://morpheus.desmos.network"
- NEXT_PUBLIC_RPC_WEBSOCKET="wss://rpc.morpheus.desmos.network/websocket"
- NEXT_PUBLIC_CHAIN_TYPE="mainnet"
- NODE_ENV="production"
- PORT=3000
- echo ::set-output name=NEXT_PUBLIC_GRAPHQL_URL::${NEXT_PUBLIC_GRAPHQL_URL}
- echo ::set-output name=NEXT_PUBLIC_GRAPHQL_WS::${NEXT_PUBLIC_GRAPHQL_WS}
- echo ::set-output name=NEXT_PUBLIC_URL::${NEXT_PUBLIC_URL}
- echo ::set-output name=NEXT_PUBLIC_RPC_WEBSOCKET::${NEXT_PUBLIC_RPC_WEBSOCKET}
- echo ::set-output name=NEXT_PUBLIC_CHAIN_TYPE::${NEXT_PUBLIC_CHAIN_TYPE}
- echo ::set-output name=NODE_ENV::${NODE_ENV}
- echo ::set-output name=PORT::${PORT}
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v1
- - name: Login to DockerHub
- if: github.event_name != 'pull_request'
- uses: docker/login-action@v1
- with:
- username: ${{ secrets.DOCKER_USERNAME }}
- password: ${{ secrets.DOCKER_PASSWORD }}
- - name: Build and push
- uses: docker/build-push-action@v2
- with:
- context: .
- file: ./Dockerfile
- push: ${{ github.event_name != 'pull_request' }}
- build-args: |
- "NEXT_PUBLIC_GRAPHQL_URL=${{ steps.dockerPrep.outputs.NEXT_PUBLIC_GRAPHQL_URL }}"
- "NEXT_PUBLIC_GRAPHQL_WS=${{ steps.dockerPrep.outputs.NEXT_PUBLIC_GRAPHQL_WS }}"
- "NEXT_PUBLIC_URL=${{ steps.dockerPrep.outputs.NEXT_PUBLIC_URL }}"
- "NEXT_PUBLIC_RPC_WEBSOCKET=${{ steps.dockerPrep.outputs.NEXT_PUBLIC_RPC_WEBSOCKET }}"
- "NEXT_PUBLIC_CHAIN_TYPE=${{ steps.dockerPrep.outputs.NEXT_PUBLIC_CHAIN_TYPE }}"
- "NODE_ENV=${{ steps.dockerPrep.outputs.NODE_ENV }}"
- "PORT=${{ steps.dockerPrep.outputs.PORT }}"
- tags: "forbole/big-dipper-2.0-cosmos:${{ steps.prep.outputs.branch }}-staging"
- labels: |
- org.opencontainers.image.source=${{ github.event.repository.html_url }}
- org.opencontainers.image.created=${{ steps.prep.outputs.created }}
- org.opencontainers.image.revision=${{ github.sha }}
diff --git a/.gitignore b/.gitignore
index 9e3c4b7fc0..8975c009bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,3 +35,4 @@ yarn-error.log*
test.js
+/.project
diff --git a/README.md b/README.md
index d6f9ce6dcd..b97699d348 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
# Big Dipper 2.0 ✨ (Cosmos Based Chains)
-Big Dipper is an open-source block explorer and token management tool serving over 10 proof-of-stake blockchains. It has been forked more than 100 times on GitHub and has served audiences from 140 countries and regions.
+The CUDOS explorer allows you to visualise blocks, network statistics & transaction history for the CUDOS network | Powering the Metaverse, NFTs, Web3, & gaming
**This repo contains the UI of big dipper 2.0 only**
diff --git a/public/locales/en/common.json b/public/locales/en/common.json
index 35618e1bf4..c1fdb7a35c 100644
--- a/public/locales/en/common.json
+++ b/public/locales/en/common.json
@@ -45,7 +45,10 @@
"nothingToShow": "Nothing to show",
"notFound": "Not Found",
"useValidatorAddress": "Please use a validator address instead",
- "description": "Big Dipper is an open-source block explorer and token management tool serving over 10 proof-of-stake blockchains. It has been forked more than 100 times on GitHub and has served audiences from 140 countries and regions.",
+ "description": "The CUDOS explorer allows you to visualise blocks, network statistics & transaction history for the CUDOS network | Powering the Metaverse, NFTs, Web3, & gaming.",
+ "homeTitleDescription": "Visualise blocks, transactions & network metrics",
+ "transactionsTitle": "CUDOS Blockchain transactions | View & search transactions",
+ "transactionsDescription": "Use the CUDOS blockchain explorer to search for transactions on the network via tx hash, block height / address",
"supply": "Supply",
"blockTimeAgo": "Latest block displayed was {{time}}",
"settings": "Settings",
diff --git a/public/locales/en/message_contents.json b/public/locales/en/message_contents.json
index 3b519e2603..e560817a9f 100644
--- a/public/locales/en/message_contents.json
+++ b/public/locales/en/message_contents.json
@@ -57,7 +57,7 @@
"MsgCreateVestingAccount": "Vesting account created for <0>{{toAddress}}0>",
"MsgCreatePeriodicVestingAccount": "Periodic vesting account created for <0>{{toAddress}}0>",
"txStoreCode": "<0>{{sender}}0> stored code",
- "txInstantiateContract": "<0>{{sender}}0> initiated contract with code ID <1>{{codeId}}1>",
+ "txInstantiateContract": "<0>{{sender}}0> instantiated <1>{{contractType}}1>contract <2>{{contractAddress}}2> with code ID <3>{{codeId}}3>",
"txExecuteContract": "<0>{{user}}0> executed <1>{{method}}1> on <2>{{address}}2>",
"txMigrateContract": "<0>{{admin}}0> migrated contract <1>{{contract}}1> to <1>{{newCodeId}}1>",
"txUpdateContractAdmin": "<0>{{admin}}0> updated contract <1>{{contract}}1> admin to <2>{{newAdmin}}2>",
diff --git a/src/components/footer/__snapshots__/index.test.tsx.snap b/src/components/footer/__snapshots__/index.test.tsx.snap
index f093f48ed1..d044677889 100644
--- a/src/components/footer/__snapshots__/index.test.tsx.snap
+++ b/src/components/footer/__snapshots__/index.test.tsx.snap
@@ -33,7 +33,7 @@ exports[`component: layout/footer matches snapshot 1`] = `
rel="noreferrer"
target="_blank"
>
- common:Cudos
+ common:cudos
- common:about
+ common:blog
- common:blog
+ common:about
+
+
+
+
+
+
+
+
@@ -30,7 +30,7 @@ exports[`component: layout/footer matches snapshot 1`] = `
@@ -55,7 +55,7 @@ exports[`component: layout/footer matches snapshot 1`] = `
@@ -79,7 +79,7 @@ exports[`component: layout/footer matches snapshot 1`] = `
diff --git a/src/components/msg/cosmwasm/instantiate_contract/index.tsx b/src/components/msg/cosmwasm/instantiate_contract/index.tsx
index a3496e3804..1965069d6a 100644
--- a/src/components/msg/cosmwasm/instantiate_contract/index.tsx
+++ b/src/components/msg/cosmwasm/instantiate_contract/index.tsx
@@ -1,19 +1,38 @@
-import React from 'react';
+import React, {
+ useEffect,
+ useState,
+} from 'react';
import numeral from 'numeral';
import Trans from 'next-translate/Trans';
import { Typography } from '@material-ui/core';
import { Name } from '@components';
import { MsgInstantiateContract } from '@models';
import { useProfileRecoil } from '@recoil/profiles';
+import { fetchCW20TokenInfo } from '@src/screens/token_details/utils';
const InstantiateContract = (props: {
- message: MsgInstantiateContract;
- }) => {
+ message: MsgInstantiateContract;
+}) => {
const { message } = props;
-
+ const [isCW20, setIsCW20] = useState(false);
const sender = useProfileRecoil(message.sender);
const senderMoniker = sender ? sender?.name : message.sender;
+ useEffect(() => {
+ const setCW20 = async (address: string) => {
+ const result = await fetchCW20TokenInfo(address);
+ if (result.address === address) {
+ setIsCW20(true);
+ return;
+ }
+ setIsCW20(false);
+ };
+
+ if (message.contractAddress) {
+ setCW20(message.contractAddress);
+ }
+ }, []);
+
return (
),
,
+ (
+
+ ),
+ ,
]}
values={{
+ contractType: isCW20 ? 'CW20 Token ' : '',
codeId: numeral(message.codeId).format('0,0'),
}}
/>
diff --git a/src/components/msg/utils.tsx b/src/components/msg/utils.tsx
index deffbaf3a0..e65cd20b7a 100644
--- a/src/components/msg/utils.tsx
+++ b/src/components/msg/utils.tsx
@@ -521,7 +521,8 @@ export const convertMsgsToModels = (transaction: any) => {
const messages = R.pathOr([], ['messages'], transaction).map((msg, i) => {
const model = getMessageModelByType(msg?.['@type']);
if (model === MODELS.MsgWithdrawDelegatorReward
- || model === MODELS.MsgWithdrawValidatorCommission) {
+ || model === MODELS.MsgWithdrawValidatorCommission
+ || model === MODELS.MsgInstantiateContract) {
const log = R.pathOr(null, ['logs', i], transaction);
return model.fromJson(msg, log);
}
diff --git a/src/components/nav/__snapshots__/index.test.tsx.snap b/src/components/nav/__snapshots__/index.test.tsx.snap
index 5c16dd8297..223d3a926b 100644
--- a/src/components/nav/__snapshots__/index.test.tsx.snap
+++ b/src/components/nav/__snapshots__/index.test.tsx.snap
@@ -1,8 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`Component: Nav it renders 1`] = `
-
-`;
+exports[`Component: Nav it renders 1`] = `null`;
diff --git a/src/components/nav/components/desktop/__snapshots__/index.test.tsx.snap b/src/components/nav/components/desktop/__snapshots__/index.test.tsx.snap
index b29df8a27d..e01a41d2de 100644
--- a/src/components/nav/components/desktop/__snapshots__/index.test.tsx.snap
+++ b/src/components/nav/components/desktop/__snapshots__/index.test.tsx.snap
@@ -3,8 +3,6 @@
exports[`screen: Nav/Desktop hook toggles correctly 1`] = `
+
,
`;
diff --git a/src/components/nav/components/seach_bar/hooks.test.ts b/src/components/nav/components/seach_bar/hooks.test.ts
index 472228f509..4f8f6f0994 100644
--- a/src/components/nav/components/seach_bar/hooks.test.ts
+++ b/src/components/nav/components/seach_bar/hooks.test.ts
@@ -23,8 +23,8 @@ describe('misc: useSearchBar', () => {
const { result } = renderHook(() => useSearchBar(t), {
wrapper: RecoilRoot,
});
- act(() => {
- result.current.handleOnSubmit('desmosvaloper1jrld5g998gqm4yx26l6cvhxz7y5adgxqzfdpes');
+ await act(async () => {
+ await result.current.handleOnSubmit('desmosvaloper1jrld5g998gqm4yx26l6cvhxz7y5adgxqzfdpes');
});
expect(mockPush).toBeCalledWith('/validators/desmosvaloper1jrld5g998gqm4yx26l6cvhxz7y5adgxqzfdpes');
});
@@ -33,8 +33,8 @@ describe('misc: useSearchBar', () => {
const { result } = renderHook(() => useSearchBar(t), {
wrapper: RecoilRoot,
});
- act(() => {
- result.current.handleOnSubmit('desmosvalcons1rzhewpmmdl72lhnxj6zmxr4v94f522s4hyz467');
+ await act(async () => {
+ await result.current.handleOnSubmit('desmosvalcons1rzhewpmmdl72lhnxj6zmxr4v94f522s4hyz467');
});
expect(mockPush).toBeCalledTimes(0);
});
@@ -43,8 +43,8 @@ describe('misc: useSearchBar', () => {
const { result } = renderHook(() => useSearchBar(t), {
wrapper: RecoilRoot,
});
- act(() => {
- result.current.handleOnSubmit('desmos1jrld5g998gqm4yx26l6cvhxz7y5adgxquy94nz');
+ await act(async () => {
+ await result.current.handleOnSubmit('desmos1jrld5g998gqm4yx26l6cvhxz7y5adgxquy94nz');
});
expect(mockPush).toBeCalledWith('/accounts/desmos1jrld5g998gqm4yx26l6cvhxz7y5adgxquy94nz');
});
@@ -53,8 +53,8 @@ describe('misc: useSearchBar', () => {
const { result } = renderHook(() => useSearchBar(t), {
wrapper: RecoilRoot,
});
- act(() => {
- result.current.handleOnSubmit('@desmos1jrld5g998gqm4yx26l6cvhxz7y5adgxquy94nz');
+ await act(async () => {
+ await result.current.handleOnSubmit('@desmos1jrld5g998gqm4yx26l6cvhxz7y5adgxquy94nz');
});
expect(mockPush).toBeCalledWith('/@desmos1jrld5g998gqm4yx26l6cvhxz7y5adgxquy94nz');
});
@@ -63,8 +63,8 @@ describe('misc: useSearchBar', () => {
const { result } = renderHook(() => useSearchBar(t), {
wrapper: RecoilRoot,
});
- act(() => {
- result.current.handleOnSubmit('300,000');
+ await act(async () => {
+ await result.current.handleOnSubmit('300,000');
});
expect(mockPush).toBeCalledWith('/blocks/300000');
});
@@ -73,8 +73,8 @@ describe('misc: useSearchBar', () => {
const { result } = renderHook(() => useSearchBar(t), {
wrapper: RecoilRoot,
});
- act(() => {
- result.current.handleOnSubmit('FF4ED0EA688507EF3469804580136B4925116FC9B5F5658AF2B65E987A2138E0');
+ await act(async () => {
+ await result.current.handleOnSubmit('FF4ED0EA688507EF3469804580136B4925116FC9B5F5658AF2B65E987A2138E0');
});
expect(mockPush).toBeCalledWith('/transactions/FF4ED0EA688507EF3469804580136B4925116FC9B5F5658AF2B65E987A2138E0');
});
diff --git a/src/components/single_proposal/index.tsx b/src/components/single_proposal/index.tsx
index 77fc806ac6..48ec5ac57e 100644
--- a/src/components/single_proposal/index.tsx
+++ b/src/components/single_proposal/index.tsx
@@ -2,7 +2,10 @@ import React from 'react';
import classnames from 'classnames';
import useTranslation from 'next-translate/useTranslation';
import { Typography } from '@material-ui/core';
-import { Tag } from '@components';
+import {
+ Markdown,
+ Tag,
+} from '@components';
import { useStyles } from './styles';
import { getStatusInfo } from './utils';
@@ -47,9 +50,7 @@ const SingleProposal: React.FC<{
)}
{!!description && (
-
- {description}
-
+
)}
{/* ================= */}
diff --git a/src/configs/chain_config.mainnet.json b/src/configs/chain_config.mainnet.json
index 817bfd2637..c86e8f895c 100644
--- a/src/configs/chain_config.mainnet.json
+++ b/src/configs/chain_config.mainnet.json
@@ -1,5 +1,5 @@
{
- "title": "Cudos Block Explorer",
+ "title": "CUDOS Blockchain explorer",
"network": "cudos-1",
"icon": "https://wallet.cudos.org/img/logo-icon.cb505cad.svg?sanitize=true",
"logo": {
diff --git a/src/configs/chain_config.testnet.json b/src/configs/chain_config.testnet.json
index 341cd4753b..fe6201eb87 100644
--- a/src/configs/chain_config.testnet.json
+++ b/src/configs/chain_config.testnet.json
@@ -1,5 +1,5 @@
{
- "title": "Cudos Block Explorer",
+ "title": "CUDOS Blockchain explorer",
"network": "cudos-testnet-public-3",
"icon": "https://wallet.cudos.org/img/logo-icon.cb505cad.svg?sanitize=true",
"logo": {
diff --git a/src/graphql/block_details.graphql b/src/graphql/block_details.graphql
index e9c1530a53..418aa19fe6 100644
--- a/src/graphql/block_details.graphql
+++ b/src/graphql/block_details.graphql
@@ -1,4 +1,4 @@
-query BlockDetails($height: bigint, $signatureHeight: bigint) {
+query BlockDetails($height: bigint) {
transaction(where: {height: {_eq: $height}}) {
height
hash
@@ -16,19 +16,19 @@ query BlockDetails($height: bigint, $signatureHeight: bigint) {
operatorAddress: operator_address
}
}
- }
- preCommitsAggregate: pre_commit_aggregate(where: {height: {_eq: $signatureHeight}}) {
- aggregate{
- sum {
- votingPower: voting_power
- }
- }
- }
- preCommits: pre_commit(where: {height: {_eq: $signatureHeight}}) {
- validator {
+ preCommits: pre_commits {
+ validator {
validatorInfo: validator_info {
operatorAddress: operator_address
}
}
+ }
+ preCommitsAggregate: pre_commits_aggregate {
+ aggregate {
+ sum {
+ votingPower: voting_power
+ }
+ }
+ }
}
}
diff --git a/src/graphql/types.tsx b/src/graphql/types.tsx
index 5d0a42adf5..d1d38f8697 100644
--- a/src/graphql/types.tsx
+++ b/src/graphql/types.tsx
@@ -14,6 +14,7 @@ export type Scalars = {
Float: number;
ActionCoin: any;
ActionDelegation: any;
+ ActionNftTransferEvent: any;
ActionPagination: any;
ActionRedelegation: any;
ActionUnbondingDelegation: any;
@@ -25,8 +26,11 @@ export type Scalars = {
json: any;
jsonb: any;
numeric: any;
+ proposal_executor_result: any;
+ proposal_status: any;
smallint: any;
timestamp: any;
+ vote_option: any;
};
@@ -55,6 +59,12 @@ export type ActionDelegationReward = {
};
+export type ActionNftTransferEventsResponse = {
+ __typename?: 'ActionNftTransferEventsResponse';
+ events?: Maybe>>;
+};
+
+
export type ActionRedelegationResponse = {
__typename?: 'ActionRedelegationResponse';
@@ -2576,6 +2586,376 @@ export type Cosmwasm_Update_Admin_Variance_Fields = {
index?: Maybe;
};
+/** columns and relationships of "cw20token_balance" */
+export type Cw20token_Balance = {
+ __typename?: 'cw20token_balance';
+ address: Scalars['String'];
+ balance: Scalars['String'];
+ /** An object relationship */
+ cw20token_info: Cw20token_Info;
+ token: Scalars['String'];
+};
+
+/** aggregated selection of "cw20token_balance" */
+export type Cw20token_Balance_Aggregate = {
+ __typename?: 'cw20token_balance_aggregate';
+ aggregate?: Maybe;
+ nodes: Array;
+};
+
+/** aggregate fields of "cw20token_balance" */
+export type Cw20token_Balance_Aggregate_Fields = {
+ __typename?: 'cw20token_balance_aggregate_fields';
+ count: Scalars['Int'];
+ max?: Maybe;
+ min?: Maybe;
+};
+
+
+/** aggregate fields of "cw20token_balance" */
+export type Cw20token_Balance_Aggregate_FieldsCountArgs = {
+ columns?: Maybe>;
+ distinct?: Maybe;
+};
+
+/** order by aggregate values of table "cw20token_balance" */
+export type Cw20token_Balance_Aggregate_Order_By = {
+ count?: Maybe;
+ max?: Maybe;
+ min?: Maybe;
+};
+
+/** Boolean expression to filter rows from the table "cw20token_balance". All fields are combined with a logical 'AND'. */
+export type Cw20token_Balance_Bool_Exp = {
+ _and?: Maybe>;
+ _not?: Maybe;
+ _or?: Maybe>;
+ address?: Maybe;
+ balance?: Maybe;
+ cw20token_info?: Maybe;
+ token?: Maybe;
+};
+
+/** aggregate max on columns */
+export type Cw20token_Balance_Max_Fields = {
+ __typename?: 'cw20token_balance_max_fields';
+ address?: Maybe;
+ balance?: Maybe;
+ token?: Maybe;
+};
+
+/** order by max() on columns of table "cw20token_balance" */
+export type Cw20token_Balance_Max_Order_By = {
+ address?: Maybe;
+ balance?: Maybe;
+ token?: Maybe;
+};
+
+/** aggregate min on columns */
+export type Cw20token_Balance_Min_Fields = {
+ __typename?: 'cw20token_balance_min_fields';
+ address?: Maybe;
+ balance?: Maybe;
+ token?: Maybe;
+};
+
+/** order by min() on columns of table "cw20token_balance" */
+export type Cw20token_Balance_Min_Order_By = {
+ address?: Maybe;
+ balance?: Maybe;
+ token?: Maybe;
+};
+
+/** Ordering options when selecting data from "cw20token_balance". */
+export type Cw20token_Balance_Order_By = {
+ address?: Maybe;
+ balance?: Maybe;
+ cw20token_info?: Maybe;
+ token?: Maybe;
+};
+
+/** select columns of table "cw20token_balance" */
+export enum Cw20token_Balance_Select_Column {
+ /** column name */
+ Address = 'address',
+ /** column name */
+ Balance = 'balance',
+ /** column name */
+ Token = 'token'
+}
+
+/** columns and relationships of "cw20token_code_id" */
+export type Cw20token_Code_Id = {
+ __typename?: 'cw20token_code_id';
+ id: Scalars['Int'];
+};
+
+/** Boolean expression to filter rows from the table "cw20token_code_id". All fields are combined with a logical 'AND'. */
+export type Cw20token_Code_Id_Bool_Exp = {
+ _and?: Maybe>;
+ _not?: Maybe;
+ _or?: Maybe>;
+ id?: Maybe;
+};
+
+/** Ordering options when selecting data from "cw20token_code_id". */
+export type Cw20token_Code_Id_Order_By = {
+ id?: Maybe;
+};
+
+/** select columns of table "cw20token_code_id" */
+export enum Cw20token_Code_Id_Select_Column {
+ /** column name */
+ Id = 'id'
+}
+
+/** columns and relationships of "cw20token_info" */
+export type Cw20token_Info = {
+ __typename?: 'cw20token_info';
+ address: Scalars['String'];
+ /** An array relationship */
+ balances: Array;
+ /** An aggregate relationship */
+ balances_aggregate: Cw20token_Balance_Aggregate;
+ circulating_supply: Scalars['String'];
+ code_id: Scalars['Int'];
+ creator: Scalars['String'];
+ decimals: Scalars['Int'];
+ description?: Maybe;
+ initial_supply: Scalars['String'];
+ logo?: Maybe;
+ marketing_admin?: Maybe;
+ max_supply?: Maybe;
+ minter?: Maybe;
+ name: Scalars['String'];
+ project_url?: Maybe;
+ symbol: Scalars['String'];
+ type?: Maybe;
+};
+
+
+/** columns and relationships of "cw20token_info" */
+export type Cw20token_InfoBalancesArgs = {
+ distinct_on?: Maybe>;
+ limit?: Maybe;
+ offset?: Maybe;
+ order_by?: Maybe>;
+ where?: Maybe;
+};
+
+
+/** columns and relationships of "cw20token_info" */
+export type Cw20token_InfoBalances_AggregateArgs = {
+ distinct_on?: Maybe>;
+ limit?: Maybe;
+ offset?: Maybe;
+ order_by?: Maybe>;
+ where?: Maybe;
+};
+
+/** aggregated selection of "cw20token_info" */
+export type Cw20token_Info_Aggregate = {
+ __typename?: 'cw20token_info_aggregate';
+ aggregate?: Maybe;
+ nodes: Array;
+};
+
+/** aggregate fields of "cw20token_info" */
+export type Cw20token_Info_Aggregate_Fields = {
+ __typename?: 'cw20token_info_aggregate_fields';
+ avg?: Maybe;
+ count: Scalars['Int'];
+ max?: Maybe;
+ min?: Maybe;
+ stddev?: Maybe;
+ stddev_pop?: Maybe;
+ stddev_samp?: Maybe;
+ sum?: Maybe;
+ var_pop?: Maybe;
+ var_samp?: Maybe;
+ variance?: Maybe;
+};
+
+
+/** aggregate fields of "cw20token_info" */
+export type Cw20token_Info_Aggregate_FieldsCountArgs = {
+ columns?: Maybe>;
+ distinct?: Maybe;
+};
+
+/** aggregate avg on columns */
+export type Cw20token_Info_Avg_Fields = {
+ __typename?: 'cw20token_info_avg_fields';
+ code_id?: Maybe;
+ decimals?: Maybe;
+};
+
+/** Boolean expression to filter rows from the table "cw20token_info". All fields are combined with a logical 'AND'. */
+export type Cw20token_Info_Bool_Exp = {
+ _and?: Maybe>;
+ _not?: Maybe;
+ _or?: Maybe>;
+ address?: Maybe;
+ balances?: Maybe;
+ circulating_supply?: Maybe;
+ code_id?: Maybe;
+ creator?: Maybe;
+ decimals?: Maybe;
+ description?: Maybe;
+ initial_supply?: Maybe;
+ logo?: Maybe;
+ marketing_admin?: Maybe;
+ max_supply?: Maybe;
+ minter?: Maybe;
+ name?: Maybe;
+ project_url?: Maybe;
+ symbol?: Maybe;
+ type?: Maybe;
+};
+
+/** aggregate max on columns */
+export type Cw20token_Info_Max_Fields = {
+ __typename?: 'cw20token_info_max_fields';
+ address?: Maybe;
+ circulating_supply?: Maybe;
+ code_id?: Maybe;
+ creator?: Maybe;
+ decimals?: Maybe;
+ description?: Maybe;
+ initial_supply?: Maybe;
+ logo?: Maybe;
+ marketing_admin?: Maybe;
+ max_supply?: Maybe;
+ minter?: Maybe;
+ name?: Maybe;
+ project_url?: Maybe;
+ symbol?: Maybe;
+ type?: Maybe;
+};
+
+/** aggregate min on columns */
+export type Cw20token_Info_Min_Fields = {
+ __typename?: 'cw20token_info_min_fields';
+ address?: Maybe;
+ circulating_supply?: Maybe;
+ code_id?: Maybe;
+ creator?: Maybe;
+ decimals?: Maybe;
+ description?: Maybe;
+ initial_supply?: Maybe;
+ logo?: Maybe;
+ marketing_admin?: Maybe;
+ max_supply?: Maybe;
+ minter?: Maybe;
+ name?: Maybe;
+ project_url?: Maybe;
+ symbol?: Maybe;
+ type?: Maybe;
+};
+
+/** Ordering options when selecting data from "cw20token_info". */
+export type Cw20token_Info_Order_By = {
+ address?: Maybe;
+ balances_aggregate?: Maybe;
+ circulating_supply?: Maybe;
+ code_id?: Maybe;
+ creator?: Maybe;
+ decimals?: Maybe;
+ description?: Maybe;
+ initial_supply?: Maybe;
+ logo?: Maybe;
+ marketing_admin?: Maybe;
+ max_supply?: Maybe;
+ minter?: Maybe;
+ name?: Maybe;
+ project_url?: Maybe;
+ symbol?: Maybe;
+ type?: Maybe;
+};
+
+/** select columns of table "cw20token_info" */
+export enum Cw20token_Info_Select_Column {
+ /** column name */
+ Address = 'address',
+ /** column name */
+ CirculatingSupply = 'circulating_supply',
+ /** column name */
+ CodeId = 'code_id',
+ /** column name */
+ Creator = 'creator',
+ /** column name */
+ Decimals = 'decimals',
+ /** column name */
+ Description = 'description',
+ /** column name */
+ InitialSupply = 'initial_supply',
+ /** column name */
+ Logo = 'logo',
+ /** column name */
+ MarketingAdmin = 'marketing_admin',
+ /** column name */
+ MaxSupply = 'max_supply',
+ /** column name */
+ Minter = 'minter',
+ /** column name */
+ Name = 'name',
+ /** column name */
+ ProjectUrl = 'project_url',
+ /** column name */
+ Symbol = 'symbol',
+ /** column name */
+ Type = 'type'
+}
+
+/** aggregate stddev on columns */
+export type Cw20token_Info_Stddev_Fields = {
+ __typename?: 'cw20token_info_stddev_fields';
+ code_id?: Maybe;
+ decimals?: Maybe;
+};
+
+/** aggregate stddev_pop on columns */
+export type Cw20token_Info_Stddev_Pop_Fields = {
+ __typename?: 'cw20token_info_stddev_pop_fields';
+ code_id?: Maybe;
+ decimals?: Maybe;
+};
+
+/** aggregate stddev_samp on columns */
+export type Cw20token_Info_Stddev_Samp_Fields = {
+ __typename?: 'cw20token_info_stddev_samp_fields';
+ code_id?: Maybe;
+ decimals?: Maybe;
+};
+
+/** aggregate sum on columns */
+export type Cw20token_Info_Sum_Fields = {
+ __typename?: 'cw20token_info_sum_fields';
+ code_id?: Maybe;
+ decimals?: Maybe;
+};
+
+/** aggregate var_pop on columns */
+export type Cw20token_Info_Var_Pop_Fields = {
+ __typename?: 'cw20token_info_var_pop_fields';
+ code_id?: Maybe;
+ decimals?: Maybe;
+};
+
+/** aggregate var_samp on columns */
+export type Cw20token_Info_Var_Samp_Fields = {
+ __typename?: 'cw20token_info_var_samp_fields';
+ code_id?: Maybe;
+ decimals?: Maybe;
+};
+
+/** aggregate variance on columns */
+export type Cw20token_Info_Variance_Fields = {
+ __typename?: 'cw20token_info_variance_fields';
+ code_id?: Maybe;
+ decimals?: Maybe;
+};
+
/** columns and relationships of "delegation" */
export type Delegation = {
__typename?: 'delegation';
@@ -2674,116 +3054,287 @@ export enum Delegation_Select_Column {
ValidatorAddress = 'validator_address'
}
-/** columns and relationships of "distribution_params" */
-export type Distribution_Params = {
- __typename?: 'distribution_params';
- height: Scalars['bigint'];
- one_row_id: Scalars['Boolean'];
- params: Scalars['jsonb'];
+export type Denoms_By_Data_Property_Args = {
+ limit?: Maybe;
+ offset?: Maybe;
+ property_name?: Maybe;
+ property_value?: Maybe;
+};
+
+/** columns and relationships of "distinct_message" */
+export type Distinct_Message = {
+ __typename?: 'distinct_message';
+ height?: Maybe;
+ index?: Maybe;
+ involved_accounts_addresses?: Maybe;
+ /** An object relationship */
+ transaction: Transaction;
+ transaction_hash: Scalars['String'];
+ type?: Maybe;
+ value?: Maybe;
};
-/** columns and relationships of "distribution_params" */
-export type Distribution_ParamsParamsArgs = {
+/** columns and relationships of "distinct_message" */
+export type Distinct_MessageValueArgs = {
path?: Maybe;
};
-/** aggregated selection of "distribution_params" */
-export type Distribution_Params_Aggregate = {
- __typename?: 'distribution_params_aggregate';
- aggregate?: Maybe;
- nodes: Array;
+/** aggregated selection of "distinct_message" */
+export type Distinct_Message_Aggregate = {
+ __typename?: 'distinct_message_aggregate';
+ aggregate?: Maybe;
+ nodes: Array;
};
-/** aggregate fields of "distribution_params" */
-export type Distribution_Params_Aggregate_Fields = {
- __typename?: 'distribution_params_aggregate_fields';
- avg?: Maybe;
+/** aggregate fields of "distinct_message" */
+export type Distinct_Message_Aggregate_Fields = {
+ __typename?: 'distinct_message_aggregate_fields';
+ avg?: Maybe;
count: Scalars['Int'];
- max?: Maybe;
- min?: Maybe;
- stddev?: Maybe;
- stddev_pop?: Maybe;
- stddev_samp?: Maybe;
- sum?: Maybe;
- var_pop?: Maybe;
- var_samp?: Maybe;
- variance?: Maybe;
+ max?: Maybe;
+ min?: Maybe;
+ stddev?: Maybe;
+ stddev_pop?: Maybe;
+ stddev_samp?: Maybe;
+ sum?: Maybe;
+ var_pop?: Maybe;
+ var_samp?: Maybe;
+ variance?: Maybe;
};
-/** aggregate fields of "distribution_params" */
-export type Distribution_Params_Aggregate_FieldsCountArgs = {
- columns?: Maybe>;
+/** aggregate fields of "distinct_message" */
+export type Distinct_Message_Aggregate_FieldsCountArgs = {
+ columns?: Maybe>;
distinct?: Maybe;
};
/** aggregate avg on columns */
-export type Distribution_Params_Avg_Fields = {
- __typename?: 'distribution_params_avg_fields';
+export type Distinct_Message_Avg_Fields = {
+ __typename?: 'distinct_message_avg_fields';
height?: Maybe;
+ index?: Maybe;
};
-/** Boolean expression to filter rows from the table "distribution_params". All fields are combined with a logical 'AND'. */
-export type Distribution_Params_Bool_Exp = {
- _and?: Maybe>;
- _not?: Maybe;
- _or?: Maybe>;
+/** Boolean expression to filter rows from the table "distinct_message". All fields are combined with a logical 'AND'. */
+export type Distinct_Message_Bool_Exp = {
+ _and?: Maybe>;
+ _not?: Maybe;
+ _or?: Maybe>;
height?: Maybe;
- one_row_id?: Maybe;
- params?: Maybe;
+ index?: Maybe;
+ involved_accounts_addresses?: Maybe<_Text_Comparison_Exp>;
+ transaction?: Maybe;
+ transaction_hash?: Maybe;
+ type?: Maybe;
+ value?: Maybe;
};
/** aggregate max on columns */
-export type Distribution_Params_Max_Fields = {
- __typename?: 'distribution_params_max_fields';
+export type Distinct_Message_Max_Fields = {
+ __typename?: 'distinct_message_max_fields';
height?: Maybe;
+ index?: Maybe;
+ transaction_hash?: Maybe;
+ type?: Maybe;
};
/** aggregate min on columns */
-export type Distribution_Params_Min_Fields = {
- __typename?: 'distribution_params_min_fields';
+export type Distinct_Message_Min_Fields = {
+ __typename?: 'distinct_message_min_fields';
height?: Maybe;
+ index?: Maybe;
+ transaction_hash?: Maybe;
+ type?: Maybe;
};
-/** Ordering options when selecting data from "distribution_params". */
-export type Distribution_Params_Order_By = {
+/** Ordering options when selecting data from "distinct_message". */
+export type Distinct_Message_Order_By = {
height?: Maybe;
- one_row_id?: Maybe;
- params?: Maybe;
+ index?: Maybe;
+ involved_accounts_addresses?: Maybe;
+ transaction?: Maybe;
+ transaction_hash?: Maybe;
+ type?: Maybe;
+ value?: Maybe;
};
-/** select columns of table "distribution_params" */
-export enum Distribution_Params_Select_Column {
+/** select columns of table "distinct_message" */
+export enum Distinct_Message_Select_Column {
/** column name */
Height = 'height',
/** column name */
- OneRowId = 'one_row_id',
+ Index = 'index',
/** column name */
- Params = 'params'
+ InvolvedAccountsAddresses = 'involved_accounts_addresses',
+ /** column name */
+ TransactionHash = 'transaction_hash',
+ /** column name */
+ Type = 'type',
+ /** column name */
+ Value = 'value'
}
/** aggregate stddev on columns */
-export type Distribution_Params_Stddev_Fields = {
- __typename?: 'distribution_params_stddev_fields';
+export type Distinct_Message_Stddev_Fields = {
+ __typename?: 'distinct_message_stddev_fields';
height?: Maybe;
+ index?: Maybe;
};
/** aggregate stddev_pop on columns */
-export type Distribution_Params_Stddev_Pop_Fields = {
- __typename?: 'distribution_params_stddev_pop_fields';
+export type Distinct_Message_Stddev_Pop_Fields = {
+ __typename?: 'distinct_message_stddev_pop_fields';
height?: Maybe;
+ index?: Maybe;
};
/** aggregate stddev_samp on columns */
-export type Distribution_Params_Stddev_Samp_Fields = {
- __typename?: 'distribution_params_stddev_samp_fields';
+export type Distinct_Message_Stddev_Samp_Fields = {
+ __typename?: 'distinct_message_stddev_samp_fields';
height?: Maybe;
+ index?: Maybe;
};
/** aggregate sum on columns */
-export type Distribution_Params_Sum_Fields = {
- __typename?: 'distribution_params_sum_fields';
+export type Distinct_Message_Sum_Fields = {
+ __typename?: 'distinct_message_sum_fields';
+ height?: Maybe;
+ index?: Maybe;
+};
+
+/** aggregate var_pop on columns */
+export type Distinct_Message_Var_Pop_Fields = {
+ __typename?: 'distinct_message_var_pop_fields';
+ height?: Maybe;
+ index?: Maybe;
+};
+
+/** aggregate var_samp on columns */
+export type Distinct_Message_Var_Samp_Fields = {
+ __typename?: 'distinct_message_var_samp_fields';
+ height?: Maybe;
+ index?: Maybe;
+};
+
+/** aggregate variance on columns */
+export type Distinct_Message_Variance_Fields = {
+ __typename?: 'distinct_message_variance_fields';
+ height?: Maybe;
+ index?: Maybe;
+};
+
+/** columns and relationships of "distribution_params" */
+export type Distribution_Params = {
+ __typename?: 'distribution_params';
+ height: Scalars['bigint'];
+ one_row_id: Scalars['Boolean'];
+ params: Scalars['jsonb'];
+};
+
+
+/** columns and relationships of "distribution_params" */
+export type Distribution_ParamsParamsArgs = {
+ path?: Maybe;
+};
+
+/** aggregated selection of "distribution_params" */
+export type Distribution_Params_Aggregate = {
+ __typename?: 'distribution_params_aggregate';
+ aggregate?: Maybe;
+ nodes: Array;
+};
+
+/** aggregate fields of "distribution_params" */
+export type Distribution_Params_Aggregate_Fields = {
+ __typename?: 'distribution_params_aggregate_fields';
+ avg?: Maybe;
+ count: Scalars['Int'];
+ max?: Maybe;
+ min?: Maybe;
+ stddev?: Maybe;
+ stddev_pop?: Maybe;
+ stddev_samp?: Maybe;
+ sum?: Maybe;
+ var_pop?: Maybe;
+ var_samp?: Maybe;
+ variance?: Maybe;
+};
+
+
+/** aggregate fields of "distribution_params" */
+export type Distribution_Params_Aggregate_FieldsCountArgs = {
+ columns?: Maybe>;
+ distinct?: Maybe